easyproctor 0.0.16 → 0.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/esm/index.js CHANGED
@@ -136,7 +136,7 @@ async function makeRequest(data) {
136
136
  }
137
137
 
138
138
  // src/index.ts
139
- var azureBlobUrl = "https://iarisprod.azureedge.net/iaris";
139
+ var azureBlobUrl = "https://iarisprod.blob.core.windows.net/iaris";
140
140
  function useProctoring(proctoringOptions) {
141
141
  ["examId", "clientId", "token"].forEach((el) => {
142
142
  const key = el;
@@ -214,15 +214,9 @@ function useProctoring(proctoringOptions) {
214
214
  async function start(options = { override: false }) {
215
215
  const { override } = options;
216
216
  if (override) {
217
- await Promise.all([
218
- clearBuffers("cameraBuffers"),
219
- clearBuffers("screenBuffers")
220
- ]);
217
+ await Promise.all([clearBuffers("cameraBuffers"), clearBuffers("screenBuffers")]);
221
218
  } else {
222
- const [storedCameraBuffers, storedScreenBuffers] = await Promise.all([
223
- getBuffers("cameraBuffers"),
224
- getBuffers("screenBuffers")
225
- ]);
219
+ const [storedCameraBuffers, storedScreenBuffers] = await Promise.all([getBuffers("cameraBuffers"), getBuffers("screenBuffers")]);
226
220
  if (storedCameraBuffers.length > 0 || storedScreenBuffers.length > 0) {
227
221
  throw "Existe uma grava\xE7\xE3o iniciada, por favor, execute o m\xE9todo resume() para retomar, ou utilize o parametro start({ override: true }) para limpar os dados";
228
222
  }
@@ -257,32 +251,22 @@ function useProctoring(proctoringOptions) {
257
251
  }
258
252
  const cameraFileName = `EP_${proctoringId}_camera_0.webm`;
259
253
  const screenFIleName = `EP_${proctoringId}_screen_0.webm`;
260
- const cameraFile = new File(finalCameraBuffer, cameraFileName, {
261
- type: "video/webm"
262
- });
263
- const screenFile = new File(finalScreenBuffer, screenFIleName, {
264
- type: "video/webm"
265
- });
254
+ const cameraFile = new File(finalCameraBuffer, cameraFileName, { type: "video/webm" });
255
+ const screenFile = new File(finalScreenBuffer, screenFIleName, { type: "video/webm" });
266
256
  let cameraProgress = 0;
267
257
  const screenProgress = 0;
268
258
  const handleOnProgress = () => {
269
259
  onProgress && onProgress((cameraProgress + screenProgress) / 2);
270
260
  };
271
261
  await Promise.all([
272
- upload_default({
273
- file: cameraFile,
274
- onProgress: (progress) => {
275
- cameraProgress = progress;
276
- handleOnProgress();
277
- }
278
- }),
279
- upload_default({
280
- file: screenFile,
281
- onProgress: (progress) => {
282
- cameraProgress = progress;
283
- handleOnProgress();
284
- }
285
- })
262
+ upload_default({ file: cameraFile, onProgress: (progress) => {
263
+ cameraProgress = progress;
264
+ handleOnProgress();
265
+ } }),
266
+ upload_default({ file: screenFile, onProgress: (progress) => {
267
+ cameraProgress = progress;
268
+ handleOnProgress();
269
+ } })
286
270
  ]);
287
271
  _removeListeners();
288
272
  await makeRequest({
@@ -304,10 +288,7 @@ function useProctoring(proctoringOptions) {
304
288
  },
305
289
  jwt: proctoringOptions.token
306
290
  });
307
- await Promise.all([
308
- clearBuffers("cameraBuffers"),
309
- clearBuffers("screenBuffers")
310
- ]);
291
+ await Promise.all([clearBuffers("cameraBuffers"), clearBuffers("screenBuffers")]);
311
292
  cameraBuffer = [];
312
293
  screenBuffer = [];
313
294
  alerts = [];
package/index.js CHANGED
@@ -166,7 +166,7 @@ async function makeRequest(data) {
166
166
  }
167
167
 
168
168
  // src/index.ts
169
- var azureBlobUrl = "https://iarisprod.azureedge.net/iaris";
169
+ var azureBlobUrl = "https://iarisprod.blob.core.windows.net/iaris";
170
170
  function useProctoring(proctoringOptions) {
171
171
  ["examId", "clientId", "token"].forEach((el) => {
172
172
  const key = el;
@@ -244,15 +244,9 @@ function useProctoring(proctoringOptions) {
244
244
  async function start(options = { override: false }) {
245
245
  const { override } = options;
246
246
  if (override) {
247
- await Promise.all([
248
- clearBuffers("cameraBuffers"),
249
- clearBuffers("screenBuffers")
250
- ]);
247
+ await Promise.all([clearBuffers("cameraBuffers"), clearBuffers("screenBuffers")]);
251
248
  } else {
252
- const [storedCameraBuffers, storedScreenBuffers] = await Promise.all([
253
- getBuffers("cameraBuffers"),
254
- getBuffers("screenBuffers")
255
- ]);
249
+ const [storedCameraBuffers, storedScreenBuffers] = await Promise.all([getBuffers("cameraBuffers"), getBuffers("screenBuffers")]);
256
250
  if (storedCameraBuffers.length > 0 || storedScreenBuffers.length > 0) {
257
251
  throw "Existe uma grava\xE7\xE3o iniciada, por favor, execute o m\xE9todo resume() para retomar, ou utilize o parametro start({ override: true }) para limpar os dados";
258
252
  }
@@ -287,32 +281,22 @@ function useProctoring(proctoringOptions) {
287
281
  }
288
282
  const cameraFileName = `EP_${proctoringId}_camera_0.webm`;
289
283
  const screenFIleName = `EP_${proctoringId}_screen_0.webm`;
290
- const cameraFile = new File(finalCameraBuffer, cameraFileName, {
291
- type: "video/webm"
292
- });
293
- const screenFile = new File(finalScreenBuffer, screenFIleName, {
294
- type: "video/webm"
295
- });
284
+ const cameraFile = new File(finalCameraBuffer, cameraFileName, { type: "video/webm" });
285
+ const screenFile = new File(finalScreenBuffer, screenFIleName, { type: "video/webm" });
296
286
  let cameraProgress = 0;
297
287
  const screenProgress = 0;
298
288
  const handleOnProgress = () => {
299
289
  onProgress && onProgress((cameraProgress + screenProgress) / 2);
300
290
  };
301
291
  await Promise.all([
302
- upload_default({
303
- file: cameraFile,
304
- onProgress: (progress) => {
305
- cameraProgress = progress;
306
- handleOnProgress();
307
- }
308
- }),
309
- upload_default({
310
- file: screenFile,
311
- onProgress: (progress) => {
312
- cameraProgress = progress;
313
- handleOnProgress();
314
- }
315
- })
292
+ upload_default({ file: cameraFile, onProgress: (progress) => {
293
+ cameraProgress = progress;
294
+ handleOnProgress();
295
+ } }),
296
+ upload_default({ file: screenFile, onProgress: (progress) => {
297
+ cameraProgress = progress;
298
+ handleOnProgress();
299
+ } })
316
300
  ]);
317
301
  _removeListeners();
318
302
  await makeRequest({
@@ -334,10 +318,7 @@ function useProctoring(proctoringOptions) {
334
318
  },
335
319
  jwt: proctoringOptions.token
336
320
  });
337
- await Promise.all([
338
- clearBuffers("cameraBuffers"),
339
- clearBuffers("screenBuffers")
340
- ]);
321
+ await Promise.all([clearBuffers("cameraBuffers"), clearBuffers("screenBuffers")]);
341
322
  cameraBuffer = [];
342
323
  screenBuffer = [];
343
324
  alerts = [];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "easyproctor",
3
- "version": "0.0.16",
3
+ "version": "0.0.17",
4
4
  "description": "Modulo web de gravação do EasyProctor",
5
5
  "main": "./index.js",
6
6
  "module": "./esm/index.js",
@@ -5,7 +5,7 @@
5
5
  `),i=e.computeHMACSHA256(n);return new wt(a.version,i,s,void 0,void 0,a.protocol,a.startsOn,a.expiresOn,a.ipRange,a.identifier,t,a.cacheControl,a.contentDisposition,a.contentEncoding,a.contentLanguage,a.contentType)}function Ax(a,e){if(a=xs(a),!a.permissions||!a.expiresOn)throw new RangeError("Must provide 'permissions' and 'expiresOn' for Blob SAS generation when generating user delegation SAS.");let t="c",r=a.snapshotTime;a.blobName&&(t="b",a.snapshotTime?t="bs":a.versionId&&(t="bv",r=a.versionId));let s;a.permissions&&(a.blobName?s=pt.parse(a.permissions.toString()).toString():s=ut.parse(a.permissions.toString()).toString());let n=[s||"",a.startsOn?U(a.startsOn,!1):"",a.expiresOn?U(a.expiresOn,!1):"",gs(e.accountName,a.containerName,a.blobName),e.userDelegationKey.signedObjectId,e.userDelegationKey.signedTenantId,e.userDelegationKey.signedStartsOn?U(e.userDelegationKey.signedStartsOn,!1):"",e.userDelegationKey.signedExpiresOn?U(e.userDelegationKey.signedExpiresOn,!1):"",e.userDelegationKey.signedService,e.userDelegationKey.signedVersion,a.ipRange?ft(a.ipRange):"",a.protocol?a.protocol:"",a.version,t,r,a.cacheControl,a.contentDisposition,a.contentEncoding,a.contentLanguage,a.contentType].join(`
6
6
  `),i=e.computeHMACSHA256(n);return new wt(a.version,i,s,void 0,void 0,a.protocol,a.startsOn,a.expiresOn,a.ipRange,a.identifier,t,a.cacheControl,a.contentDisposition,a.contentEncoding,a.contentLanguage,a.contentType,e.userDelegationKey)}function Lx(a,e){if(a=xs(a),!a.permissions||!a.expiresOn)throw new RangeError("Must provide 'permissions' and 'expiresOn' for Blob SAS generation when generating user delegation SAS.");let t="c",r=a.snapshotTime;a.blobName&&(t="b",a.snapshotTime?t="bs":a.versionId&&(t="bv",r=a.versionId));let s;a.permissions&&(a.blobName?s=pt.parse(a.permissions.toString()).toString():s=ut.parse(a.permissions.toString()).toString());let n=[s||"",a.startsOn?U(a.startsOn,!1):"",a.expiresOn?U(a.expiresOn,!1):"",gs(e.accountName,a.containerName,a.blobName),e.userDelegationKey.signedObjectId,e.userDelegationKey.signedTenantId,e.userDelegationKey.signedStartsOn?U(e.userDelegationKey.signedStartsOn,!1):"",e.userDelegationKey.signedExpiresOn?U(e.userDelegationKey.signedExpiresOn,!1):"",e.userDelegationKey.signedService,e.userDelegationKey.signedVersion,a.preauthorizedAgentObjectId,void 0,a.correlationId,a.ipRange?ft(a.ipRange):"",a.protocol?a.protocol:"",a.version,t,r,a.cacheControl,a.contentDisposition,a.contentEncoding,a.contentLanguage,a.contentType].join(`
7
7
  `),i=e.computeHMACSHA256(n);return new wt(a.version,i,s,void 0,void 0,a.protocol,a.startsOn,a.expiresOn,a.ipRange,a.identifier,t,a.cacheControl,a.contentDisposition,a.contentEncoding,a.contentLanguage,a.contentType,e.userDelegationKey,a.preauthorizedAgentObjectId,a.correlationId)}function gs(a,e,t){let r=[`/blob/${a}/${e}`];return t&&r.push(`/${t}`),r.join("")}function xs(a){let e=a.version?a.version:Dr;if(a.snapshotTime&&e<"2018-11-09")throw RangeError("'version' must be >= '2018-11-09' when providing 'snapshotTime'.");if(a.blobName===void 0&&a.snapshotTime)throw RangeError("Must provide 'blobName' when providing 'snapshotTime'.");if(a.versionId&&e<"2019-10-10")throw RangeError("'version' must be >= '2019-10-10' when providing 'versionId'.");if(a.blobName===void 0&&a.versionId)throw RangeError("Must provide 'blobName' when providing 'versionId'.");if(a.permissions&&a.permissions.setImmutabilityPolicy&&e<"2020-08-04")throw RangeError("'version' must be >= '2020-08-04' when provided 'i' permission.");if(a.permissions&&a.permissions.deleteVersion&&e<"2019-10-10")throw RangeError("'version' must be >= '2019-10-10' when providing 'x' permission.");if(a.permissions&&a.permissions.tag&&e<"2019-12-12")throw RangeError("'version' must be >= '2019-12-12' when providing 't' permission.");if(e<"2020-02-10"&&a.permissions&&(a.permissions.move||a.permissions.execute))throw RangeError("'version' must be >= '2020-02-10' when providing the 'm' or 'e' permission.");if(e<"2020-02-10"&&(a.preauthorizedAgentObjectId||a.correlationId))throw RangeError("'version' must be >= '2020-02-10' when providing 'preauthorizedAgentObjectId' or 'correlationId'.");return a.version=e,a}var jr=class{constructor(e,t){let r=new zt(e.url,e.pipeline.toServiceClientOptions());this._url=e.url,e.name===void 0?(this._isContainer=!0,this._containerOrBlobOperation=new et(r)):(this._isContainer=!1,this._containerOrBlobOperation=new sr(r)),t||(t=ye()),this._leaseId=t}get leaseId(){return this._leaseId}get url(){return this._url}async acquireLease(e,t={}){var r,s,n,i,o,m;let{span:c,updatedOptions:l}=x("BlobLeaseClient-acquireLease",t);if(this._isContainer&&(((r=t.conditions)===null||r===void 0?void 0:r.ifMatch)&&((s=t.conditions)===null||s===void 0?void 0:s.ifMatch)!==Me||((n=t.conditions)===null||n===void 0?void 0:n.ifNoneMatch)&&((i=t.conditions)===null||i===void 0?void 0:i.ifNoneMatch)!==Me||((o=t.conditions)===null||o===void 0?void 0:o.tagConditions)))throw new RangeError("The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable.");try{return await this._containerOrBlobOperation.acquireLease(Object.assign({abortSignal:t.abortSignal,duration:e,modifiedAccessConditions:Object.assign(Object.assign({},t.conditions),{ifTags:(m=t.conditions)===null||m===void 0?void 0:m.tagConditions}),proposedLeaseId:this._leaseId},R(l)))}catch(u){throw c.setStatus({code:g.ERROR,message:u.message}),u}finally{c.end()}}async changeLease(e,t={}){var r,s,n,i,o,m;let{span:c,updatedOptions:l}=x("BlobLeaseClient-changeLease",t);if(this._isContainer&&(((r=t.conditions)===null||r===void 0?void 0:r.ifMatch)&&((s=t.conditions)===null||s===void 0?void 0:s.ifMatch)!==Me||((n=t.conditions)===null||n===void 0?void 0:n.ifNoneMatch)&&((i=t.conditions)===null||i===void 0?void 0:i.ifNoneMatch)!==Me||((o=t.conditions)===null||o===void 0?void 0:o.tagConditions)))throw new RangeError("The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable.");try{let u=await this._containerOrBlobOperation.changeLease(this._leaseId,e,Object.assign({abortSignal:t.abortSignal,modifiedAccessConditions:Object.assign(Object.assign({},t.conditions),{ifTags:(m=t.conditions)===null||m===void 0?void 0:m.tagConditions})},R(l)));return this._leaseId=e,u}catch(u){throw c.setStatus({code:g.ERROR,message:u.message}),u}finally{c.end()}}async releaseLease(e={}){var t,r,s,n,i,o;let{span:m,updatedOptions:c}=x("BlobLeaseClient-releaseLease",e);if(this._isContainer&&(((t=e.conditions)===null||t===void 0?void 0:t.ifMatch)&&((r=e.conditions)===null||r===void 0?void 0:r.ifMatch)!==Me||((s=e.conditions)===null||s===void 0?void 0:s.ifNoneMatch)&&((n=e.conditions)===null||n===void 0?void 0:n.ifNoneMatch)!==Me||((i=e.conditions)===null||i===void 0?void 0:i.tagConditions)))throw new RangeError("The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable.");try{return await this._containerOrBlobOperation.releaseLease(this._leaseId,Object.assign({abortSignal:e.abortSignal,modifiedAccessConditions:Object.assign(Object.assign({},e.conditions),{ifTags:(o=e.conditions)===null||o===void 0?void 0:o.tagConditions})},R(c)))}catch(l){throw m.setStatus({code:g.ERROR,message:l.message}),l}finally{m.end()}}async renewLease(e={}){var t,r,s,n,i,o;let{span:m,updatedOptions:c}=x("BlobLeaseClient-renewLease",e);if(this._isContainer&&(((t=e.conditions)===null||t===void 0?void 0:t.ifMatch)&&((r=e.conditions)===null||r===void 0?void 0:r.ifMatch)!==Me||((s=e.conditions)===null||s===void 0?void 0:s.ifNoneMatch)&&((n=e.conditions)===null||n===void 0?void 0:n.ifNoneMatch)!==Me||((i=e.conditions)===null||i===void 0?void 0:i.tagConditions)))throw new RangeError("The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable.");try{return await this._containerOrBlobOperation.renewLease(this._leaseId,Object.assign({abortSignal:e.abortSignal,modifiedAccessConditions:Object.assign(Object.assign({},e.conditions),{ifTags:(o=e.conditions)===null||o===void 0?void 0:o.tagConditions})},R(c)))}catch(l){throw m.setStatus({code:g.ERROR,message:l.message}),l}finally{m.end()}}async breakLease(e,t={}){var r,s,n,i,o,m;let{span:c,updatedOptions:l}=x("BlobLeaseClient-breakLease",t);if(this._isContainer&&(((r=t.conditions)===null||r===void 0?void 0:r.ifMatch)&&((s=t.conditions)===null||s===void 0?void 0:s.ifMatch)!==Me||((n=t.conditions)===null||n===void 0?void 0:n.ifNoneMatch)&&((i=t.conditions)===null||i===void 0?void 0:i.ifNoneMatch)!==Me||((o=t.conditions)===null||o===void 0?void 0:o.tagConditions)))throw new RangeError("The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable.");try{let u=Object.assign({abortSignal:t.abortSignal,breakPeriod:e,modifiedAccessConditions:Object.assign(Object.assign({},t.conditions),{ifTags:(m=t.conditions)===null||m===void 0?void 0:m.tagConditions})},R(l));return await this._containerOrBlobOperation.breakLease(u)}catch(u){throw c.setStatus({code:g.ERROR,message:u.message}),u}finally{c.end()}}};var gu=1;var di=class{constructor(e,t={}){this.originalResponse=e}get acceptRanges(){return this.originalResponse.acceptRanges}get cacheControl(){return this.originalResponse.cacheControl}get contentDisposition(){return this.originalResponse.contentDisposition}get contentEncoding(){return this.originalResponse.contentEncoding}get contentLanguage(){return this.originalResponse.contentLanguage}get blobSequenceNumber(){return this.originalResponse.blobSequenceNumber}get blobType(){return this.originalResponse.blobType}get contentLength(){return this.originalResponse.contentLength}get contentMD5(){return this.originalResponse.contentMD5}get contentRange(){return this.originalResponse.contentRange}get contentType(){return this.originalResponse.contentType}get copyCompletedOn(){}get copyId(){return this.originalResponse.copyId}get copyProgress(){return this.originalResponse.copyProgress}get copySource(){return this.originalResponse.copySource}get copyStatus(){return this.originalResponse.copyStatus}get copyStatusDescription(){return this.originalResponse.copyStatusDescription}get leaseDuration(){return this.originalResponse.leaseDuration}get leaseState(){return this.originalResponse.leaseState}get leaseStatus(){return this.originalResponse.leaseStatus}get date(){return this.originalResponse.date}get blobCommittedBlockCount(){return this.originalResponse.blobCommittedBlockCount}get etag(){return this.originalResponse.etag}get errorCode(){return this.originalResponse.errorCode}get isServerEncrypted(){return this.originalResponse.isServerEncrypted}get blobContentMD5(){return this.originalResponse.blobContentMD5}get lastModified(){return this.originalResponse.lastModified}get metadata(){return this.originalResponse.metadata}get requestId(){return this.originalResponse.requestId}get clientRequestId(){return this.originalResponse.clientRequestId}get version(){return this.originalResponse.version}get encryptionKeySha256(){return this.originalResponse.encryptionKeySha256}get contentCrc64(){return this.originalResponse.contentCrc64}get blobBody(){throw Error("Quick query in browser is not supported yet.")}get readableStreamBody(){}get _response(){return this.originalResponse._response}};var xu;(function(a){a.Hot="Hot",a.Cool="Cool",a.Archive="Archive"})(xu||(xu={}));var hu;(function(a){a.P4="P4",a.P6="P6",a.P10="P10",a.P15="P15",a.P20="P20",a.P30="P30",a.P40="P40",a.P50="P50",a.P60="P60",a.P70="P70",a.P80="P80"})(hu||(hu={}));function Ft(a){if(a!==void 0)return a}function ee(a,e){if(a&&!e)throw new RangeError("Customer-provided encryption key must be used over HTTPS.");a&&!a.encryptionAlgorithm&&(a.encryptionAlgorithm=su)}function hs(a){let e=(a._response.parsedBody.pageRange||[]).map(r=>({offset:r.start,count:r.end-r.start})),t=(a._response.parsedBody.clearRange||[]).map(r=>({offset:r.start,count:r.end-r.start}));return Object.assign(Object.assign({},a),{pageRange:e,clearRange:t,_response:Object.assign(Object.assign({},a._response),{parsedBody:{pageRange:e,clearRange:t}})})}var bs=class extends Error{constructor(e){super(e);this.name="PollerStoppedError",Object.setPrototypeOf(this,bs.prototype)}},Ns=class extends Error{constructor(e){super(e);this.name="PollerCancelledError",Object.setPrototypeOf(this,Ns.prototype)}},pi=class{constructor(e){this.stopped=!0,this.pollProgressCallbacks=[],this.operation=e,this.promise=new Promise((t,r)=>{this.resolve=t,this.reject=r}),this.promise.catch(()=>{})}async startPolling(){for(this.stopped&&(this.stopped=!1);!this.isStopped()&&!this.isDone();)await this.poll(),await this.delay()}async pollOnce(e={}){try{this.isDone()||(this.operation=await this.operation.update({abortSignal:e.abortSignal,fireProgress:this.fireProgress.bind(this)}),this.isDone()&&this.resolve&&this.resolve(this.operation.state.result))}catch(t){throw this.operation.state.error=t,this.reject&&this.reject(t),t}}fireProgress(e){for(let t of this.pollProgressCallbacks)t(e)}async cancelOnce(e={}){this.operation=await this.operation.cancel(e),this.reject&&this.reject(new Ns("Poller cancelled"))}poll(e={}){if(!this.pollOncePromise){this.pollOncePromise=this.pollOnce(e);let t=()=>{this.pollOncePromise=void 0};this.pollOncePromise.then(t,t).catch(this.reject)}return this.pollOncePromise}async pollUntilDone(){return this.stopped&&this.startPolling().catch(this.reject),this.promise}onProgress(e){return this.pollProgressCallbacks.push(e),()=>{this.pollProgressCallbacks=this.pollProgressCallbacks.filter(t=>t!==e)}}isDone(){let e=this.operation.state;return Boolean(e.isCompleted||e.isCancelled||e.error)}stopPolling(){this.stopped||(this.stopped=!0,this.reject&&this.reject(new bs("This poller is already stopped")))}isStopped(){return this.stopped}cancelOperation(e={}){if(this.stopped||(this.stopped=!0),!this.cancelPromise)this.cancelPromise=this.cancelOnce(e);else if(e.abortSignal)throw new Error("A cancel request is currently pending");return this.cancelPromise}getOperationState(){return this.operation.state}getResult(){return this.operation.state.result}toString(){return this.operation.toString()}};var ui=class extends pi{constructor(e){let{blobClient:t,copySource:r,intervalInMs:s=15e3,onProgress:n,resumeFrom:i,startCopyFromURLOptions:o}=e,m;i&&(m=JSON.parse(i).state);let c=Fr(Object.assign(Object.assign({},m),{blobClient:t,copySource:r,startCopyFromURLOptions:o}));super(c);typeof n=="function"&&this.onProgress(n),this.intervalInMs=s}delay(){return ge(this.intervalInMs)}},Dx=async function(e={}){let t=this.state,{copyId:r}=t;return t.isCompleted?Fr(t):r?(await t.blobClient.abortCopyFromURL(r,{abortSignal:e.abortSignal}),t.isCancelled=!0,Fr(t)):(t.isCancelled=!0,Fr(t))},kx=async function(e={}){let t=this.state,{blobClient:r,copySource:s,startCopyFromURLOptions:n}=t;if(t.isStarted){if(!t.isCompleted)try{let i=await t.blobClient.getProperties({abortSignal:e.abortSignal}),{copyStatus:o,copyProgress:m}=i,c=t.copyProgress;m&&(t.copyProgress=m),o==="pending"&&m!==c&&typeof e.fireProgress=="function"?e.fireProgress(t):o==="success"?(t.result=i,t.isCompleted=!0):o==="failed"&&(t.error=new Error(`Blob copy failed with reason: "${i.copyStatusDescription||"unknown"}"`),t.isCompleted=!0)}catch(i){t.error=i,t.isCompleted=!0}}else{t.isStarted=!0;let i=await r.startCopyFromURL(s,n);t.copyId=i.copyId,i.copyStatus==="success"&&(t.result=i,t.isCompleted=!0)}return Fr(t)},Ux=function(){return JSON.stringify({state:this.state},(e,t)=>{if(e!=="blobClient")return t})};function Fr(a){return{state:Object.assign({},a),cancel:Dx,toString:Ux,update:kx}}function ze(a){if(a.offset<0)throw new RangeError("Range.offset cannot be smaller than 0.");if(a.count&&a.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 a.count?`bytes=${a.offset}-${a.offset+a.count-1}`:`bytes=${a.offset}-`}var _u=Wr(Tu()),Kr;(function(a){a[a.Good=0]="Good",a[a.Error=1]="Error"})(Kr||(Kr={}));var Cs=class{constructor(e=5){if(this.actives=0,this.completed=0,this.offset=0,this.operations=[],this.state=Kr.Good,e<1)throw new RangeError("concurrency must be larger than 0");this.concurrency=e,this.emitter=new _u.EventEmitter}addOperation(e){this.operations.push(async()=>{try{this.actives++,await e(),this.actives--,this.completed++,this.parallelExecute()}catch(t){this.emitter.emit("error",t)}})}async do(){return this.operations.length===0?Promise.resolve():(this.parallelExecute(),new Promise((e,t)=>{this.emitter.on("finish",e),this.emitter.on("error",r=>{this.state=Kr.Error,t(r)})}))}nextOperation(){return this.offset<this.operations.length?this.operations[this.offset++]:null}parallelExecute(){if(this.state!==Kr.Error){if(this.completed>=this.operations.length){this.emitter.emit("finish");return}for(;this.actives<this.concurrency;){let e=this.nextOperation();if(e)e();else return}}}};var yi=class{};async function Bu(a){let e=new FileReader;return new Promise((t,r)=>{e.onloadend=s=>{t(s.target.result)},e.onerror=r,e.readAsText(a)})}function Ou(){}function Mu(){}var Iu=function(){},qu=function(){};var fe=class extends jt{constructor(e,t,r,s){s=s||{};let n,i;if(qe(t))i=e,n=t;else if(M&&t instanceof K||t instanceof A||Y(t))i=e,s=r,n=L(t,s);else if(!t&&typeof t!="string")i=e,n=L(new A,s);else if(t&&typeof t=="string"&&r&&typeof r=="string"){let o=t,m=r,c=dt(e);if(c.kind==="AccountConnString")if(M){let l=new K(c.accountName,c.accountKey);i=F(F(c.url,encodeURIComponent(o)),encodeURIComponent(m)),s.proxyOptions=Ue(c.proxyUri),n=L(l,s)}else throw new Error("Account connection string is only supported in Node.js environment");else if(c.kind==="SASConnString")i=F(F(c.url,encodeURIComponent(o)),encodeURIComponent(m))+"?"+c.accountSas,n=L(new A,s);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(i,n);({blobName:this._name,containerName:this._containerName}=this.getBlobAndContainerNamesFromUrl()),this.blobContext=new sr(this.storageClientContext),this._snapshot=Yn(this.url,Ne.Parameters.SNAPSHOT),this._versionId=Yn(this.url,Ne.Parameters.VERSIONID)}get name(){return this._name}get containerName(){return this._containerName}withSnapshot(e){return new fe(tt(this.url,Ne.Parameters.SNAPSHOT,e.length===0?void 0:e),this.pipeline)}withVersion(e){return new fe(tt(this.url,Ne.Parameters.VERSIONID,e.length===0?void 0:e),this.pipeline)}getAppendBlobClient(){return new dr(this.url,this.pipeline)}getBlockBlobClient(){return new pr(this.url,this.pipeline)}getPageBlobClient(){return new ur(this.url,this.pipeline)}async download(e=0,t,r={}){var s;r.conditions=r.conditions||{},r.conditions=r.conditions||{},ee(r.customerProvidedKey,this.isHttps);let{span:n,updatedOptions:i}=x("BlobClient-download",r);try{let o=await this.blobContext.download(Object.assign({abortSignal:r.abortSignal,leaseAccessConditions:r.conditions,modifiedAccessConditions:Object.assign(Object.assign({},r.conditions),{ifTags:(s=r.conditions)===null||s===void 0?void 0:s.tagConditions}),requestOptions:{onDownloadProgress:M?void 0:r.onProgress},range:e===0&&!t?void 0:ze({offset:e,count:t}),rangeGetContentMD5:r.rangeGetContentMD5,rangeGetContentCRC64:r.rangeGetContentCrc64,snapshot:r.snapshot,cpkInfo:r.customerProvidedKey},R(i))),m=Object.assign(Object.assign({},o),{_response:o._response,objectReplicationDestinationPolicyId:o.objectReplicationPolicyId,objectReplicationSourceProperties:or(o.objectReplicationRules)});if(!M)return m;if((r.maxRetryRequests===void 0||r.maxRetryRequests<0)&&(r.maxRetryRequests=ru),o.contentLength===void 0)throw new RangeError("File download response doesn't contain valid content length header");if(!o.etag)throw new RangeError("File download response doesn't contain valid etag header");return new gu(m,async c=>{var l;let u={leaseAccessConditions:r.conditions,modifiedAccessConditions:{ifMatch:r.conditions.ifMatch||o.etag,ifModifiedSince:r.conditions.ifModifiedSince,ifNoneMatch:r.conditions.ifNoneMatch,ifUnmodifiedSince:r.conditions.ifUnmodifiedSince,ifTags:(l=r.conditions)===null||l===void 0?void 0:l.tagConditions},range:ze({count:e+o.contentLength-c,offset:c}),rangeGetContentMD5:r.rangeGetContentMD5,rangeGetContentCRC64:r.rangeGetContentCrc64,snapshot:r.snapshot,cpkInfo:r.customerProvidedKey};return(await this.blobContext.download(Object.assign({abortSignal:r.abortSignal},u))).readableStreamBody},e,o.contentLength,{maxRetryRequests:r.maxRetryRequests,onProgress:r.onProgress})}catch(o){throw n.setStatus({code:g.ERROR,message:o.message}),o}finally{n.end()}}async exists(e={}){let{span:t,updatedOptions:r}=x("BlobClient-exists",e);try{return ee(e.customerProvidedKey,this.isHttps),await this.getProperties({abortSignal:e.abortSignal,customerProvidedKey:e.customerProvidedKey,conditions:e.conditions,tracingOptions:r.tracingOptions}),!0}catch(s){if(s.statusCode===404)return t.setStatus({code:g.ERROR,message:"Expected exception when checking blob existence"}),!1;throw t.setStatus({code:g.ERROR,message:s.message}),s}finally{t.end()}}async getProperties(e={}){var t;let{span:r,updatedOptions:s}=x("BlobClient-getProperties",e);try{e.conditions=e.conditions||{},ee(e.customerProvidedKey,this.isHttps);let n=await this.blobContext.getProperties(Object.assign({abortSignal:e.abortSignal,leaseAccessConditions:e.conditions,modifiedAccessConditions:Object.assign(Object.assign({},e.conditions),{ifTags:(t=e.conditions)===null||t===void 0?void 0:t.tagConditions}),cpkInfo:e.customerProvidedKey},R(s)));return Object.assign(Object.assign({},n),{_response:n._response,objectReplicationDestinationPolicyId:n.objectReplicationPolicyId,objectReplicationSourceProperties:or(n.objectReplicationRules)})}catch(n){throw r.setStatus({code:g.ERROR,message:n.message}),n}finally{r.end()}}async delete(e={}){var t;let{span:r,updatedOptions:s}=x("BlobClient-delete",e);e.conditions=e.conditions||{};try{return await this.blobContext.delete(Object.assign({abortSignal:e.abortSignal,deleteSnapshots:e.deleteSnapshots,leaseAccessConditions:e.conditions,modifiedAccessConditions:Object.assign(Object.assign({},e.conditions),{ifTags:(t=e.conditions)===null||t===void 0?void 0:t.tagConditions})},R(s)))}catch(n){throw r.setStatus({code:g.ERROR,message:n.message}),n}finally{r.end()}}async deleteIfExists(e={}){var t,r;let{span:s,updatedOptions:n}=x("BlobClient-deleteIfExists",e);try{let i=await this.delete(n);return Object.assign(Object.assign({succeeded:!0},i),{_response:i._response})}catch(i){if(((t=i.details)===null||t===void 0?void 0:t.errorCode)==="BlobNotFound")return s.setStatus({code:g.ERROR,message:"Expected exception when deleting a blob or snapshot only if it exists."}),Object.assign(Object.assign({succeeded:!1},(r=i.response)===null||r===void 0?void 0:r.parsedHeaders),{_response:i.response});throw s.setStatus({code:g.ERROR,message:i.message}),i}finally{s.end()}}async undelete(e={}){let{span:t,updatedOptions:r}=x("BlobClient-undelete",e);try{return await this.blobContext.undelete(Object.assign({abortSignal:e.abortSignal},R(r)))}catch(s){throw t.setStatus({code:g.ERROR,message:s.message}),s}finally{t.end()}}async setHTTPHeaders(e,t={}){var r;let{span:s,updatedOptions:n}=x("BlobClient-setHTTPHeaders",t);t.conditions=t.conditions||{};try{return ee(t.customerProvidedKey,this.isHttps),await this.blobContext.setHttpHeaders(Object.assign({abortSignal:t.abortSignal,blobHttpHeaders:e,leaseAccessConditions:t.conditions,modifiedAccessConditions:Object.assign(Object.assign({},t.conditions),{ifTags:(r=t.conditions)===null||r===void 0?void 0:r.tagConditions})},R(n)))}catch(i){throw s.setStatus({code:g.ERROR,message:i.message}),i}finally{s.end()}}async setMetadata(e,t={}){var r;let{span:s,updatedOptions:n}=x("BlobClient-setMetadata",t);t.conditions=t.conditions||{};try{return ee(t.customerProvidedKey,this.isHttps),await this.blobContext.setMetadata(Object.assign({abortSignal:t.abortSignal,leaseAccessConditions:t.conditions,metadata:e,modifiedAccessConditions:Object.assign(Object.assign({},t.conditions),{ifTags:(r=t.conditions)===null||r===void 0?void 0:r.tagConditions}),cpkInfo:t.customerProvidedKey,encryptionScope:t.encryptionScope},R(n)))}catch(i){throw s.setStatus({code:g.ERROR,message:i.message}),i}finally{s.end()}}async setTags(e,t={}){var r;let{span:s,updatedOptions:n}=x("BlobClient-setTags",t);try{return await this.blobContext.setTags(Object.assign(Object.assign({abortSignal:t.abortSignal,leaseAccessConditions:t.conditions,modifiedAccessConditions:Object.assign(Object.assign({},t.conditions),{ifTags:(r=t.conditions)===null||r===void 0?void 0:r.tagConditions})},R(n)),{tags:uu(e)}))}catch(i){throw s.setStatus({code:g.ERROR,message:i.message}),i}finally{s.end()}}async getTags(e={}){var t;let{span:r,updatedOptions:s}=x("BlobClient-getTags",e);try{let n=await this.blobContext.getTags(Object.assign({abortSignal:e.abortSignal,leaseAccessConditions:e.conditions,modifiedAccessConditions:Object.assign(Object.assign({},e.conditions),{ifTags:(t=e.conditions)===null||t===void 0?void 0:t.tagConditions})},R(s)));return Object.assign(Object.assign({},n),{_response:n._response,tags:Ut({blobTagSet:n.blobTagSet})||{}})}catch(n){throw r.setStatus({code:g.ERROR,message:n.message}),n}finally{r.end()}}getBlobLeaseClient(e){return new jr(this,e)}async createSnapshot(e={}){var t;let{span:r,updatedOptions:s}=x("BlobClient-createSnapshot",e);e.conditions=e.conditions||{};try{return ee(e.customerProvidedKey,this.isHttps),await this.blobContext.createSnapshot(Object.assign({abortSignal:e.abortSignal,leaseAccessConditions:e.conditions,metadata:e.metadata,modifiedAccessConditions:Object.assign(Object.assign({},e.conditions),{ifTags:(t=e.conditions)===null||t===void 0?void 0:t.tagConditions}),cpkInfo:e.customerProvidedKey,encryptionScope:e.encryptionScope},R(s)))}catch(n){throw r.setStatus({code:g.ERROR,message:n.message}),n}finally{r.end()}}async beginCopyFromURL(e,t={}){let r={abortCopyFromURL:(...n)=>this.abortCopyFromURL(...n),getProperties:(...n)=>this.getProperties(...n),startCopyFromURL:(...n)=>this.startCopyFromURL(...n)},s=new ui({blobClient:r,copySource:e,intervalInMs:t.intervalInMs,onProgress:t.onProgress,resumeFrom:t.resumeFrom,startCopyFromURLOptions:t});return await s.poll(),s}async abortCopyFromURL(e,t={}){let{span:r,updatedOptions:s}=x("BlobClient-abortCopyFromURL",t);try{return await this.blobContext.abortCopyFromURL(e,Object.assign({abortSignal:t.abortSignal,leaseAccessConditions:t.conditions},R(s)))}catch(n){throw r.setStatus({code:g.ERROR,message:n.message}),n}finally{r.end()}}async syncCopyFromURL(e,t={}){var r,s,n;let{span:i,updatedOptions:o}=x("BlobClient-syncCopyFromURL",t);t.conditions=t.conditions||{},t.sourceConditions=t.sourceConditions||{};try{return await this.blobContext.copyFromURL(e,Object.assign({abortSignal:t.abortSignal,metadata:t.metadata,leaseAccessConditions:t.conditions,modifiedAccessConditions:Object.assign(Object.assign({},t.conditions),{ifTags:(r=t.conditions)===null||r===void 0?void 0:r.tagConditions}),sourceModifiedAccessConditions:{sourceIfMatch:t.sourceConditions.ifMatch,sourceIfModifiedSince:t.sourceConditions.ifModifiedSince,sourceIfNoneMatch:t.sourceConditions.ifNoneMatch,sourceIfUnmodifiedSince:t.sourceConditions.ifUnmodifiedSince},sourceContentMD5:t.sourceContentMD5,copySourceAuthorization:mr(t.sourceAuthorization),blobTagsString:Rt(t.tags),immutabilityPolicyExpiry:(s=t.immutabilityPolicy)===null||s===void 0?void 0:s.expiriesOn,immutabilityPolicyMode:(n=t.immutabilityPolicy)===null||n===void 0?void 0:n.policyMode,legalHold:t.legalHold},R(o)))}catch(m){throw i.setStatus({code:g.ERROR,message:m.message}),m}finally{i.end()}}async setAccessTier(e,t={}){var r;let{span:s,updatedOptions:n}=x("BlobClient-setAccessTier",t);try{return await this.blobContext.setTier(Ft(e),Object.assign({abortSignal:t.abortSignal,leaseAccessConditions:t.conditions,modifiedAccessConditions:Object.assign(Object.assign({},t.conditions),{ifTags:(r=t.conditions)===null||r===void 0?void 0:r.tagConditions}),rehydratePriority:t.rehydratePriority},R(n)))}catch(i){throw s.setStatus({code:g.ERROR,message:i.message}),i}finally{s.end()}}async downloadToBuffer(e,t,r,s={}){let n,i=0,o=0,m=s;e instanceof Buffer?(n=e,i=t||0,o=typeof r=="number"?r:0):(i=typeof e=="number"?e:0,o=typeof t=="number"?t:0,m=r||{});let{span:c,updatedOptions:l}=x("BlobClient-downloadToBuffer",m);try{if(m.blockSize||(m.blockSize=0),m.blockSize<0)throw new RangeError("blockSize option must be >= 0");if(m.blockSize===0&&(m.blockSize=os),i<0)throw new RangeError("offset option must be >= 0");if(o&&o<=0)throw new RangeError("count option must be greater than 0");if(m.conditions||(m.conditions={}),!o){let f=await this.getProperties(Object.assign(Object.assign({},m),{tracingOptions:Object.assign(Object.assign({},m.tracingOptions),R(l))}));if(o=f.contentLength-i,o<0)throw new RangeError(`offset ${i} shouldn't be larger than blob size ${f.contentLength}`)}if(!n)try{n=Buffer.alloc(o)}catch(f){throw new Error(`Unable to allocate the buffer of size: ${o}(in bytes). Please try passing your own buffer to the "downloadToBuffer" method or try using other methods like "download" or "downloadToFile". ${f.message}`)}if(n.length<o)throw new RangeError(`The buffer's size should be equal to or larger than the request count of bytes: ${o}`);let u=0,d=new Cs(m.concurrency);for(let f=i;f<i+o;f=f+m.blockSize)d.addOperation(async()=>{let h=i+o;f+m.blockSize<h&&(h=f+m.blockSize);let y=(await this.download(f,h-f,{abortSignal:m.abortSignal,conditions:m.conditions,maxRetryRequests:m.maxRetryRequestsPerBlock,customerProvidedKey:m.customerProvidedKey,tracingOptions:Object.assign(Object.assign({},m.tracingOptions),R(l))})).readableStreamBody;await Ou(y,n,f-i,h-i),u+=h-f,m.onProgress&&m.onProgress({loadedBytes:u})});return await d.do(),n}catch(u){throw c.setStatus({code:g.ERROR,message:u.message}),u}finally{c.end()}}async downloadToFile(e,t=0,r,s={}){let{span:n,updatedOptions:i}=x("BlobClient-downloadToFile",s);try{let o=await this.download(t,r,Object.assign(Object.assign({},s),{tracingOptions:Object.assign(Object.assign({},s.tracingOptions),R(i))}));return o.readableStreamBody&&await Mu(o.readableStreamBody,e),o.blobDownloadStream=void 0,o}catch(o){throw n.setStatus({code:g.ERROR,message:o.message}),o}finally{n.end()}}getBlobAndContainerNamesFromUrl(){let e,t;try{let r=k.parse(this.url);if(r.getHost().split(".")[1]==="blob"){let s=r.getPath().match("/([^/]*)(/(.*))?");e=s[1],t=s[3]}else if(Ur(r)){let s=r.getPath().match("/([^/]*)/([^/]*)(/(.*))?");e=s[2],t=s[4]}else{let s=r.getPath().match("/([^/]*)(/(.*))?");e=s[1],t=s[3]}if(e=decodeURIComponent(e),t=decodeURIComponent(t),t=t.replace(/\\/g,"/"),!e)throw new Error("Provided containerName is invalid.");return{blobName:t,containerName:e}}catch{throw new Error("Unable to extract blobName and containerName with provided information.")}}async startCopyFromURL(e,t={}){var r,s,n;let{span:i,updatedOptions:o}=x("BlobClient-startCopyFromURL",t);t.conditions=t.conditions||{},t.sourceConditions=t.sourceConditions||{};try{return await this.blobContext.startCopyFromURL(e,Object.assign({abortSignal:t.abortSignal,leaseAccessConditions:t.conditions,metadata:t.metadata,modifiedAccessConditions:Object.assign(Object.assign({},t.conditions),{ifTags:(r=t.conditions)===null||r===void 0?void 0:r.tagConditions}),sourceModifiedAccessConditions:{sourceIfMatch:t.sourceConditions.ifMatch,sourceIfModifiedSince:t.sourceConditions.ifModifiedSince,sourceIfNoneMatch:t.sourceConditions.ifNoneMatch,sourceIfUnmodifiedSince:t.sourceConditions.ifUnmodifiedSince,sourceIfTags:t.sourceConditions.tagConditions},immutabilityPolicyExpiry:(s=t.immutabilityPolicy)===null||s===void 0?void 0:s.expiriesOn,immutabilityPolicyMode:(n=t.immutabilityPolicy)===null||n===void 0?void 0:n.policyMode,legalHold:t.legalHold,rehydratePriority:t.rehydratePriority,tier:Ft(t.tier),blobTagsString:Rt(t.tags),sealBlob:t.sealBlob},R(o)))}catch(m){throw i.setStatus({code:g.ERROR,message:m.message}),m}finally{i.end()}}generateSasUrl(e){return new Promise(t=>{if(!(this.credential instanceof K))throw new RangeError("Can only generate the SAS when the client is initialized with a shared key credential");let r=ys(Object.assign({containerName:this._containerName,blobName:this._name,snapshotTime:this._snapshot,versionId:this._versionId},e),this.credential).toString();t(ir(this.url,r))})}async deleteImmutabilityPolicy(e){let{span:t,updatedOptions:r}=x("BlobClient-deleteImmutabilityPolicy",e);try{return await this.blobContext.deleteImmutabilityPolicy(Object.assign({abortSignal:e==null?void 0:e.abortSignal},R(r)))}catch(s){throw t.setStatus({code:g.ERROR,message:s.message}),s}finally{t.end()}}async setImmutabilityPolicy(e,t){let{span:r,updatedOptions:s}=x("BlobClient-setImmutabilityPolicy",t);try{return await this.blobContext.setImmutabilityPolicy(Object.assign({abortSignal:t==null?void 0:t.abortSignal,immutabilityPolicyExpiry:e.expiriesOn,immutabilityPolicyMode:e.policyMode,modifiedAccessConditions:t==null?void 0:t.modifiedAccessCondition},R(s)))}catch(n){throw r.setStatus({code:g.ERROR,message:n.message}),n}finally{r.end()}}async setLegalHold(e,t){let{span:r,updatedOptions:s}=x("BlobClient-setLegalHold",t);try{return await this.blobContext.setLegalHold(e,Object.assign({abortSignal:t==null?void 0:t.abortSignal},R(s)))}catch(n){throw r.setStatus({code:g.ERROR,message:n.message}),n}finally{r.end()}}},dr=class extends fe{constructor(e,t,r,s){let n,i;if(s=s||{},qe(t))i=e,n=t;else if(M&&t instanceof K||t instanceof A||Y(t))i=e,s=r,n=L(t,s);else if(!t&&typeof t!="string")i=e,n=L(new A,s);else if(t&&typeof t=="string"&&r&&typeof r=="string"){let o=t,m=r,c=dt(e);if(c.kind==="AccountConnString")if(M){let l=new K(c.accountName,c.accountKey);i=F(F(c.url,encodeURIComponent(o)),encodeURIComponent(m)),s.proxyOptions=Ue(c.proxyUri),n=L(l,s)}else throw new Error("Account connection string is only supported in Node.js environment");else if(c.kind==="SASConnString")i=F(F(c.url,encodeURIComponent(o)),encodeURIComponent(m))+"?"+c.accountSas,n=L(new A,s);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(i,n);this.appendBlobContext=new Gn(this.storageClientContext)}withSnapshot(e){return new dr(tt(this.url,Ne.Parameters.SNAPSHOT,e.length===0?void 0:e),this.pipeline)}async create(e={}){var t,r,s;let{span:n,updatedOptions:i}=x("AppendBlobClient-create",e);e.conditions=e.conditions||{};try{return ee(e.customerProvidedKey,this.isHttps),await this.appendBlobContext.create(0,Object.assign({abortSignal:e.abortSignal,blobHttpHeaders:e.blobHTTPHeaders,leaseAccessConditions:e.conditions,metadata:e.metadata,modifiedAccessConditions:Object.assign(Object.assign({},e.conditions),{ifTags:(t=e.conditions)===null||t===void 0?void 0:t.tagConditions}),cpkInfo:e.customerProvidedKey,encryptionScope:e.encryptionScope,immutabilityPolicyExpiry:(r=e.immutabilityPolicy)===null||r===void 0?void 0:r.expiriesOn,immutabilityPolicyMode:(s=e.immutabilityPolicy)===null||s===void 0?void 0:s.policyMode,legalHold:e.legalHold,blobTagsString:Rt(e.tags)},R(i)))}catch(o){throw n.setStatus({code:g.ERROR,message:o.message}),o}finally{n.end()}}async createIfNotExists(e={}){var t,r;let{span:s,updatedOptions:n}=x("AppendBlobClient-createIfNotExists",e),i={ifNoneMatch:Vn};try{let o=await this.create(Object.assign(Object.assign({},n),{conditions:i}));return Object.assign(Object.assign({succeeded:!0},o),{_response:o._response})}catch(o){if(((t=o.details)===null||t===void 0?void 0:t.errorCode)==="BlobAlreadyExists")return s.setStatus({code:g.ERROR,message:"Expected exception when creating a blob only if it does not already exist."}),Object.assign(Object.assign({succeeded:!1},(r=o.response)===null||r===void 0?void 0:r.parsedHeaders),{_response:o.response});throw s.setStatus({code:g.ERROR,message:o.message}),o}finally{s.end()}}async seal(e={}){var t;let{span:r,updatedOptions:s}=x("AppendBlobClient-seal",e);e.conditions=e.conditions||{};try{return await this.appendBlobContext.seal(Object.assign({abortSignal:e.abortSignal,appendPositionAccessConditions:e.conditions,leaseAccessConditions:e.conditions,modifiedAccessConditions:Object.assign(Object.assign({},e.conditions),{ifTags:(t=e.conditions)===null||t===void 0?void 0:t.tagConditions})},R(s)))}catch(n){throw r.setStatus({code:g.ERROR,message:n.message}),n}finally{r.end()}}async appendBlock(e,t,r={}){var s;let{span:n,updatedOptions:i}=x("AppendBlobClient-appendBlock",r);r.conditions=r.conditions||{};try{return ee(r.customerProvidedKey,this.isHttps),await this.appendBlobContext.appendBlock(t,e,Object.assign({abortSignal:r.abortSignal,appendPositionAccessConditions:r.conditions,leaseAccessConditions:r.conditions,modifiedAccessConditions:Object.assign(Object.assign({},r.conditions),{ifTags:(s=r.conditions)===null||s===void 0?void 0:s.tagConditions}),requestOptions:{onUploadProgress:r.onProgress},transactionalContentMD5:r.transactionalContentMD5,transactionalContentCrc64:r.transactionalContentCrc64,cpkInfo:r.customerProvidedKey,encryptionScope:r.encryptionScope},R(i)))}catch(o){throw n.setStatus({code:g.ERROR,message:o.message}),o}finally{n.end()}}async appendBlockFromURL(e,t,r,s={}){var n;let{span:i,updatedOptions:o}=x("AppendBlobClient-appendBlockFromURL",s);s.conditions=s.conditions||{},s.sourceConditions=s.sourceConditions||{};try{return ee(s.customerProvidedKey,this.isHttps),await this.appendBlobContext.appendBlockFromUrl(e,0,Object.assign({abortSignal:s.abortSignal,sourceRange:ze({offset:t,count:r}),sourceContentMD5:s.sourceContentMD5,sourceContentCrc64:s.sourceContentCrc64,leaseAccessConditions:s.conditions,appendPositionAccessConditions:s.conditions,modifiedAccessConditions:Object.assign(Object.assign({},s.conditions),{ifTags:(n=s.conditions)===null||n===void 0?void 0:n.tagConditions}),sourceModifiedAccessConditions:{sourceIfMatch:s.sourceConditions.ifMatch,sourceIfModifiedSince:s.sourceConditions.ifModifiedSince,sourceIfNoneMatch:s.sourceConditions.ifNoneMatch,sourceIfUnmodifiedSince:s.sourceConditions.ifUnmodifiedSince},copySourceAuthorization:mr(s.sourceAuthorization),cpkInfo:s.customerProvidedKey,encryptionScope:s.encryptionScope},R(o)))}catch(m){throw i.setStatus({code:g.ERROR,message:m.message}),m}finally{i.end()}}},pr=class extends fe{constructor(e,t,r,s){let n,i;if(s=s||{},qe(t))i=e,n=t;else if(M&&t instanceof K||t instanceof A||Y(t))i=e,s=r,n=L(t,s);else if(!t&&typeof t!="string")i=e,n=L(new A,s);else if(t&&typeof t=="string"&&r&&typeof r=="string"){let o=t,m=r,c=dt(e);if(c.kind==="AccountConnString")if(M){let l=new K(c.accountName,c.accountKey);i=F(F(c.url,encodeURIComponent(o)),encodeURIComponent(m)),s.proxyOptions=Ue(c.proxyUri),n=L(l,s)}else throw new Error("Account connection string is only supported in Node.js environment");else if(c.kind==="SASConnString")i=F(F(c.url,encodeURIComponent(o)),encodeURIComponent(m))+"?"+c.accountSas,n=L(new A,s);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(i,n);this.blockBlobContext=new Qn(this.storageClientContext),this._blobContext=new sr(this.storageClientContext)}withSnapshot(e){return new pr(tt(this.url,Ne.Parameters.SNAPSHOT,e.length===0?void 0:e),this.pipeline)}async query(e,t={}){var r;ee(t.customerProvidedKey,this.isHttps);let{span:s,updatedOptions:n}=x("BlockBlobClient-query",t);try{if(!M)throw new Error("This operation currently is only supported in Node.js.");let i=await this._blobContext.query(Object.assign({abortSignal:t.abortSignal,queryRequest:{queryType:"SQL",expression:e,inputSerialization:ei(t.inputTextConfiguration),outputSerialization:ei(t.outputTextConfiguration)},leaseAccessConditions:t.conditions,modifiedAccessConditions:Object.assign(Object.assign({},t.conditions),{ifTags:(r=t.conditions)===null||r===void 0?void 0:r.tagConditions})},R(n)));return new di(i,{abortSignal:t.abortSignal,onProgress:t.onProgress,onError:t.onError})}catch(i){throw s.setStatus({code:g.ERROR,message:i.message}),i}finally{s.end()}}async upload(e,t,r={}){var s,n,i;r.conditions=r.conditions||{};let{span:o,updatedOptions:m}=x("BlockBlobClient-upload",r);try{return ee(r.customerProvidedKey,this.isHttps),await this.blockBlobContext.upload(t,e,Object.assign({abortSignal:r.abortSignal,blobHttpHeaders:r.blobHTTPHeaders,leaseAccessConditions:r.conditions,metadata:r.metadata,modifiedAccessConditions:Object.assign(Object.assign({},r.conditions),{ifTags:(s=r.conditions)===null||s===void 0?void 0:s.tagConditions}),requestOptions:{onUploadProgress:r.onProgress},cpkInfo:r.customerProvidedKey,encryptionScope:r.encryptionScope,immutabilityPolicyExpiry:(n=r.immutabilityPolicy)===null||n===void 0?void 0:n.expiriesOn,immutabilityPolicyMode:(i=r.immutabilityPolicy)===null||i===void 0?void 0:i.policyMode,legalHold:r.legalHold,tier:Ft(r.tier),blobTagsString:Rt(r.tags)},R(m)))}catch(c){throw o.setStatus({code:g.ERROR,message:c.message}),c}finally{o.end()}}async syncUploadFromURL(e,t={}){var r,s,n,i,o;t.conditions=t.conditions||{};let{span:m,updatedOptions:c}=x("BlockBlobClient-syncUploadFromURL",t);try{return ee(t.customerProvidedKey,this.isHttps),await this.blockBlobContext.putBlobFromUrl(0,e,Object.assign(Object.assign(Object.assign({},t),{blobHttpHeaders:t.blobHTTPHeaders,leaseAccessConditions:t.conditions,modifiedAccessConditions:Object.assign(Object.assign({},t.conditions),{ifTags:t.conditions.tagConditions}),sourceModifiedAccessConditions:{sourceIfMatch:(r=t.sourceConditions)===null||r===void 0?void 0:r.ifMatch,sourceIfModifiedSince:(s=t.sourceConditions)===null||s===void 0?void 0:s.ifModifiedSince,sourceIfNoneMatch:(n=t.sourceConditions)===null||n===void 0?void 0:n.ifNoneMatch,sourceIfUnmodifiedSince:(i=t.sourceConditions)===null||i===void 0?void 0:i.ifUnmodifiedSince,sourceIfTags:(o=t.sourceConditions)===null||o===void 0?void 0:o.tagConditions},cpkInfo:t.customerProvidedKey,copySourceAuthorization:mr(t.sourceAuthorization),tier:Ft(t.tier),blobTagsString:Rt(t.tags)}),R(c)))}catch(l){throw m.setStatus({code:g.ERROR,message:l.message}),l}finally{m.end()}}async stageBlock(e,t,r,s={}){let{span:n,updatedOptions:i}=x("BlockBlobClient-stageBlock",s);try{return ee(s.customerProvidedKey,this.isHttps),await this.blockBlobContext.stageBlock(e,r,t,Object.assign({abortSignal:s.abortSignal,leaseAccessConditions:s.conditions,requestOptions:{onUploadProgress:s.onProgress},transactionalContentMD5:s.transactionalContentMD5,transactionalContentCrc64:s.transactionalContentCrc64,cpkInfo:s.customerProvidedKey,encryptionScope:s.encryptionScope},R(i)))}catch(o){throw n.setStatus({code:g.ERROR,message:o.message}),o}finally{n.end()}}async stageBlockFromURL(e,t,r=0,s,n={}){let{span:i,updatedOptions:o}=x("BlockBlobClient-stageBlockFromURL",n);try{return ee(n.customerProvidedKey,this.isHttps),await this.blockBlobContext.stageBlockFromURL(e,0,t,Object.assign({abortSignal:n.abortSignal,leaseAccessConditions:n.conditions,sourceContentMD5:n.sourceContentMD5,sourceContentCrc64:n.sourceContentCrc64,sourceRange:r===0&&!s?void 0:ze({offset:r,count:s}),cpkInfo:n.customerProvidedKey,encryptionScope:n.encryptionScope,copySourceAuthorization:mr(n.sourceAuthorization)},R(o)))}catch(m){throw i.setStatus({code:g.ERROR,message:m.message}),m}finally{i.end()}}async commitBlockList(e,t={}){var r,s,n;t.conditions=t.conditions||{};let{span:i,updatedOptions:o}=x("BlockBlobClient-commitBlockList",t);try{return ee(t.customerProvidedKey,this.isHttps),await this.blockBlobContext.commitBlockList({latest:e},Object.assign({abortSignal:t.abortSignal,blobHttpHeaders:t.blobHTTPHeaders,leaseAccessConditions:t.conditions,metadata:t.metadata,modifiedAccessConditions:Object.assign(Object.assign({},t.conditions),{ifTags:(r=t.conditions)===null||r===void 0?void 0:r.tagConditions}),cpkInfo:t.customerProvidedKey,encryptionScope:t.encryptionScope,immutabilityPolicyExpiry:(s=t.immutabilityPolicy)===null||s===void 0?void 0:s.expiriesOn,immutabilityPolicyMode:(n=t.immutabilityPolicy)===null||n===void 0?void 0:n.policyMode,legalHold:t.legalHold,tier:Ft(t.tier),blobTagsString:Rt(t.tags)},R(o)))}catch(m){throw i.setStatus({code:g.ERROR,message:m.message}),m}finally{i.end()}}async getBlockList(e,t={}){var r;let{span:s,updatedOptions:n}=x("BlockBlobClient-getBlockList",t);try{let i=await this.blockBlobContext.getBlockList(e,Object.assign({abortSignal:t.abortSignal,leaseAccessConditions:t.conditions,modifiedAccessConditions:Object.assign(Object.assign({},t.conditions),{ifTags:(r=t.conditions)===null||r===void 0?void 0:r.tagConditions})},R(n)));return i.committedBlocks||(i.committedBlocks=[]),i.uncommittedBlocks||(i.uncommittedBlocks=[]),i}catch(i){throw s.setStatus({code:g.ERROR,message:i.message}),i}finally{s.end()}}async uploadData(e,t={}){let{span:r,updatedOptions:s}=x("BlockBlobClient-uploadData",t);try{if(M){let n;return e instanceof Buffer?n=e:e instanceof ArrayBuffer?n=Buffer.from(e):(e=e,n=Buffer.from(e.buffer,e.byteOffset,e.byteLength)),this.uploadSeekableInternal((i,o)=>n.slice(i,i+o),n.byteLength,s)}else{let n=new Blob([e]);return this.uploadSeekableInternal((i,o)=>n.slice(i,i+o),n.size,s)}}catch(n){throw r.setStatus({code:g.ERROR,message:n.message}),n}finally{r.end()}}async uploadBrowserData(e,t={}){let{span:r,updatedOptions:s}=x("BlockBlobClient-uploadBrowserData",t);try{let n=new Blob([e]);return await this.uploadSeekableInternal((i,o)=>n.slice(i,i+o),n.size,s)}catch(n){throw r.setStatus({code:g.ERROR,message:n.message}),n}finally{r.end()}}async uploadSeekableInternal(e,t,r={}){if(r.blockSize||(r.blockSize=0),r.blockSize<0||r.blockSize>is)throw new RangeError(`blockSize option must be >= 0 and <= ${is}`);if(r.maxSingleShotSize!==0&&!r.maxSingleShotSize&&(r.maxSingleShotSize=ns),r.maxSingleShotSize<0||r.maxSingleShotSize>ns)throw new RangeError(`maxSingleShotSize option must be >= 0 and <= ${ns}`);if(r.blockSize===0){if(t>is*kr)throw new RangeError(`${t} is too larger to upload to a block blob.`);t>r.maxSingleShotSize&&(r.blockSize=Math.ceil(t/kr),r.blockSize<os&&(r.blockSize=os))}r.blobHTTPHeaders||(r.blobHTTPHeaders={}),r.conditions||(r.conditions={});let{span:s,updatedOptions:n}=x("BlockBlobClient-uploadSeekableInternal",r);try{if(t<=r.maxSingleShotSize)return await this.upload(e(0,t),t,n);let i=Math.floor((t-1)/r.blockSize)+1;if(i>kr)throw new RangeError(`The buffer's size is too big or the BlockSize is too small;the number of blocks must be <= ${kr}`);let o=[],m=ye(),c=0,l=new Cs(r.concurrency);for(let u=0;u<i;u++)l.addOperation(async()=>{let d=Jn(m,u),f=r.blockSize*u,p=(u===i-1?t:f+r.blockSize)-f;o.push(d),await this.stageBlock(d,e(f,p),p,{abortSignal:r.abortSignal,conditions:r.conditions,encryptionScope:r.encryptionScope,tracingOptions:n.tracingOptions}),c+=p,r.onProgress&&r.onProgress({loadedBytes:c})});return await l.do(),this.commitBlockList(o,n)}catch(i){throw s.setStatus({code:g.ERROR,message:i.message}),i}finally{s.end()}}async uploadFile(e,t={}){let{span:r,updatedOptions:s}=x("BlockBlobClient-uploadFile",t);try{let n=(await Iu(e)).size;return await this.uploadSeekableInternal((i,o)=>()=>qu(e,{autoClose:!0,end:o?i+o-1:1/0,start:i}),n,Object.assign(Object.assign({},t),{tracingOptions:Object.assign(Object.assign({},t.tracingOptions),R(s))}))}catch(n){throw r.setStatus({code:g.ERROR,message:n.message}),n}finally{r.end()}}async uploadStream(e,t=tu,r=5,s={}){s.blobHTTPHeaders||(s.blobHTTPHeaders={}),s.conditions||(s.conditions={});let{span:n,updatedOptions:i}=x("BlockBlobClient-uploadStream",s);try{let o=0,m=ye(),c=0,l=[];return await new yi(e,t,r,async(d,f)=>{let h=Jn(m,o);l.push(h),o++,await this.stageBlock(h,d,f,{conditions:s.conditions,encryptionScope:s.encryptionScope,tracingOptions:i.tracingOptions}),c+=f,s.onProgress&&s.onProgress({loadedBytes:c})},Math.ceil(r/4*3)).do(),await this.commitBlockList(l,Object.assign(Object.assign({},s),{tracingOptions:Object.assign(Object.assign({},s.tracingOptions),R(i))}))}catch(o){throw n.setStatus({code:g.ERROR,message:o.message}),o}finally{n.end()}}},ur=class extends fe{constructor(e,t,r,s){let n,i;if(s=s||{},qe(t))i=e,n=t;else if(M&&t instanceof K||t instanceof A||Y(t))i=e,s=r,n=L(t,s);else if(!t&&typeof t!="string")i=e,n=L(new A,s);else if(t&&typeof t=="string"&&r&&typeof r=="string"){let o=t,m=r,c=dt(e);if(c.kind==="AccountConnString")if(M){let l=new K(c.accountName,c.accountKey);i=F(F(c.url,encodeURIComponent(o)),encodeURIComponent(m)),s.proxyOptions=Ue(c.proxyUri),n=L(l,s)}else throw new Error("Account connection string is only supported in Node.js environment");else if(c.kind==="SASConnString")i=F(F(c.url,encodeURIComponent(o)),encodeURIComponent(m))+"?"+c.accountSas,n=L(new A,s);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(i,n);this.pageBlobContext=new $n(this.storageClientContext)}withSnapshot(e){return new ur(tt(this.url,Ne.Parameters.SNAPSHOT,e.length===0?void 0:e),this.pipeline)}async create(e,t={}){var r,s,n;t.conditions=t.conditions||{};let{span:i,updatedOptions:o}=x("PageBlobClient-create",t);try{return ee(t.customerProvidedKey,this.isHttps),await this.pageBlobContext.create(0,e,Object.assign({abortSignal:t.abortSignal,blobHttpHeaders:t.blobHTTPHeaders,blobSequenceNumber:t.blobSequenceNumber,leaseAccessConditions:t.conditions,metadata:t.metadata,modifiedAccessConditions:Object.assign(Object.assign({},t.conditions),{ifTags:(r=t.conditions)===null||r===void 0?void 0:r.tagConditions}),cpkInfo:t.customerProvidedKey,encryptionScope:t.encryptionScope,immutabilityPolicyExpiry:(s=t.immutabilityPolicy)===null||s===void 0?void 0:s.expiriesOn,immutabilityPolicyMode:(n=t.immutabilityPolicy)===null||n===void 0?void 0:n.policyMode,legalHold:t.legalHold,tier:Ft(t.tier),blobTagsString:Rt(t.tags)},R(o)))}catch(m){throw i.setStatus({code:g.ERROR,message:m.message}),m}finally{i.end()}}async createIfNotExists(e,t={}){var r,s;let{span:n,updatedOptions:i}=x("PageBlobClient-createIfNotExists",t);try{let o={ifNoneMatch:Vn},m=await this.create(e,Object.assign(Object.assign({},t),{conditions:o,tracingOptions:i.tracingOptions}));return Object.assign(Object.assign({succeeded:!0},m),{_response:m._response})}catch(o){if(((r=o.details)===null||r===void 0?void 0:r.errorCode)==="BlobAlreadyExists")return n.setStatus({code:g.ERROR,message:"Expected exception when creating a blob only if it does not already exist."}),Object.assign(Object.assign({succeeded:!1},(s=o.response)===null||s===void 0?void 0:s.parsedHeaders),{_response:o.response});throw n.setStatus({code:g.ERROR,message:o.message}),o}finally{n.end()}}async uploadPages(e,t,r,s={}){var n;s.conditions=s.conditions||{};let{span:i,updatedOptions:o}=x("PageBlobClient-uploadPages",s);try{return ee(s.customerProvidedKey,this.isHttps),await this.pageBlobContext.uploadPages(r,e,Object.assign({abortSignal:s.abortSignal,leaseAccessConditions:s.conditions,modifiedAccessConditions:Object.assign(Object.assign({},s.conditions),{ifTags:(n=s.conditions)===null||n===void 0?void 0:n.tagConditions}),requestOptions:{onUploadProgress:s.onProgress},range:ze({offset:t,count:r}),sequenceNumberAccessConditions:s.conditions,transactionalContentMD5:s.transactionalContentMD5,transactionalContentCrc64:s.transactionalContentCrc64,cpkInfo:s.customerProvidedKey,encryptionScope:s.encryptionScope},R(o)))}catch(m){throw i.setStatus({code:g.ERROR,message:m.message}),m}finally{i.end()}}async uploadPagesFromURL(e,t,r,s,n={}){var i;n.conditions=n.conditions||{},n.sourceConditions=n.sourceConditions||{};let{span:o,updatedOptions:m}=x("PageBlobClient-uploadPagesFromURL",n);try{return ee(n.customerProvidedKey,this.isHttps),await this.pageBlobContext.uploadPagesFromURL(e,ze({offset:t,count:s}),0,ze({offset:r,count:s}),Object.assign({abortSignal:n.abortSignal,sourceContentMD5:n.sourceContentMD5,sourceContentCrc64:n.sourceContentCrc64,leaseAccessConditions:n.conditions,sequenceNumberAccessConditions:n.conditions,modifiedAccessConditions:Object.assign(Object.assign({},n.conditions),{ifTags:(i=n.conditions)===null||i===void 0?void 0:i.tagConditions}),sourceModifiedAccessConditions:{sourceIfMatch:n.sourceConditions.ifMatch,sourceIfModifiedSince:n.sourceConditions.ifModifiedSince,sourceIfNoneMatch:n.sourceConditions.ifNoneMatch,sourceIfUnmodifiedSince:n.sourceConditions.ifUnmodifiedSince},cpkInfo:n.customerProvidedKey,encryptionScope:n.encryptionScope,copySourceAuthorization:mr(n.sourceAuthorization)},R(m)))}catch(c){throw o.setStatus({code:g.ERROR,message:c.message}),c}finally{o.end()}}async clearPages(e=0,t,r={}){var s;r.conditions=r.conditions||{};let{span:n,updatedOptions:i}=x("PageBlobClient-clearPages",r);try{return await this.pageBlobContext.clearPages(0,Object.assign({abortSignal:r.abortSignal,leaseAccessConditions:r.conditions,modifiedAccessConditions:Object.assign(Object.assign({},r.conditions),{ifTags:(s=r.conditions)===null||s===void 0?void 0:s.tagConditions}),range:ze({offset:e,count:t}),sequenceNumberAccessConditions:r.conditions,cpkInfo:r.customerProvidedKey,encryptionScope:r.encryptionScope},R(i)))}catch(o){throw n.setStatus({code:g.ERROR,message:o.message}),o}finally{n.end()}}async getPageRanges(e=0,t,r={}){var s;r.conditions=r.conditions||{};let{span:n,updatedOptions:i}=x("PageBlobClient-getPageRanges",r);try{return await this.pageBlobContext.getPageRanges(Object.assign({abortSignal:r.abortSignal,leaseAccessConditions:r.conditions,modifiedAccessConditions:Object.assign(Object.assign({},r.conditions),{ifTags:(s=r.conditions)===null||s===void 0?void 0:s.tagConditions}),range:ze({offset:e,count:t})},R(i))).then(hs)}catch(o){throw n.setStatus({code:g.ERROR,message:o.message}),o}finally{n.end()}}async getPageRangesDiff(e,t,r,s={}){var n;s.conditions=s.conditions||{};let{span:i,updatedOptions:o}=x("PageBlobClient-getPageRangesDiff",s);try{return await this.pageBlobContext.getPageRangesDiff(Object.assign({abortSignal:s.abortSignal,leaseAccessConditions:s.conditions,modifiedAccessConditions:Object.assign(Object.assign({},s.conditions),{ifTags:(n=s.conditions)===null||n===void 0?void 0:n.tagConditions}),prevsnapshot:r,range:ze({offset:e,count:t})},R(o))).then(hs)}catch(m){throw i.setStatus({code:g.ERROR,message:m.message}),m}finally{i.end()}}async getPageRangesDiffForManagedDisks(e,t,r,s={}){var n;s.conditions=s.conditions||{};let{span:i,updatedOptions:o}=x("PageBlobClient-GetPageRangesDiffForManagedDisks",s);try{return await this.pageBlobContext.getPageRangesDiff(Object.assign({abortSignal:s.abortSignal,leaseAccessConditions:s.conditions,modifiedAccessConditions:Object.assign(Object.assign({},s.conditions),{ifTags:(n=s.conditions)===null||n===void 0?void 0:n.tagConditions}),prevSnapshotUrl:r,range:ze({offset:e,count:t})},R(o))).then(hs)}catch(m){throw i.setStatus({code:g.ERROR,message:m.message}),m}finally{i.end()}}async resize(e,t={}){var r;t.conditions=t.conditions||{};let{span:s,updatedOptions:n}=x("PageBlobClient-resize",t);try{return await this.pageBlobContext.resize(e,Object.assign({abortSignal:t.abortSignal,leaseAccessConditions:t.conditions,modifiedAccessConditions:Object.assign(Object.assign({},t.conditions),{ifTags:(r=t.conditions)===null||r===void 0?void 0:r.tagConditions}),encryptionScope:t.encryptionScope},R(n)))}catch(i){throw s.setStatus({code:g.ERROR,message:i.message}),i}finally{s.end()}}async updateSequenceNumber(e,t,r={}){var s;r.conditions=r.conditions||{};let{span:n,updatedOptions:i}=x("PageBlobClient-updateSequenceNumber",r);try{return await this.pageBlobContext.updateSequenceNumber(e,Object.assign({abortSignal:r.abortSignal,blobSequenceNumber:t,leaseAccessConditions:r.conditions,modifiedAccessConditions:Object.assign(Object.assign({},r.conditions),{ifTags:(s=r.conditions)===null||s===void 0?void 0:s.tagConditions})},R(i)))}catch(o){throw n.setStatus({code:g.ERROR,message:o.message}),o}finally{n.end()}}async startCopyIncremental(e,t={}){var r;let{span:s,updatedOptions:n}=x("PageBlobClient-startCopyIncremental",t);try{return await this.pageBlobContext.copyIncremental(e,Object.assign({abortSignal:t.abortSignal,modifiedAccessConditions:Object.assign(Object.assign({},t.conditions),{ifTags:(r=t.conditions)===null||r===void 0?void 0:r.tagConditions})},R(n)))}catch(i){throw s.setStatus({code:g.ERROR,message:i.message}),i}finally{s.end()}}};async function Hu(a){let e=await a.blobBody;return Bu(e)}function Au(a){return new Blob([a]).size}var vs=": ",Lu=" ",Du=-1,gi=class{constructor(e,t){if(!e||!e.contentType)throw new RangeError("batchResponse is malformed or doesn't contain valid content-type.");if(!t||t.size===0)throw new RangeError("Invalid state: subRequests is not provided or size is 0.");this.batchResponse=e,this.subRequests=t,this.responseBatchBoundary=this.batchResponse.contentType.split("=")[1],this.perResponsePrefix=`--${this.responseBatchBoundary}${Ie}`,this.batchResponseEnding=`--${this.responseBatchBoundary}--`}async parseBatchResponse(){if(this.batchResponse._response.status!==au.HTTP_ACCEPTED)throw new Error(`Invalid state: batch request failed with status: '${this.batchResponse._response.status}'.`);let t=(await Hu(this.batchResponse)).split(this.batchResponseEnding)[0].split(this.perResponsePrefix).slice(1),r=t.length;if(r!==this.subRequests.size&&r!==1)throw new Error("Invalid state: sub responses' count is not equal to sub requests' count.");let s=new Array(r),n=0,i=0;for(let o=0;o<r;o++){let m=t[o],c={};c.headers=new te;let l=m.split(`${Ie}`),u=!1,d=!1,f=!1,h=Du;for(let p of l){if(!u){if(p.startsWith(le.CONTENT_ID)&&(h=parseInt(p.split(vs)[1])),p.startsWith(cs)){u=!0;let y=p.split(Lu);c.status=parseInt(y[1]),c.statusMessage=y.slice(2).join(Lu)}continue}if(p.trim()===""){d||(d=!0);continue}if(d)c.bodyAsText||(c.bodyAsText=""),c.bodyAsText+=p;else{if(p.indexOf(vs)===-1)throw new Error(`Invalid state: find non-empty line '${p}' without HTTP header delimiter '${vs}'.`);let y=p.split(vs);c.headers.set(y[0],y[1]),y[0]===le.X_MS_ERROR_CODE&&(c.errorCode=y[1],f=!0)}}h!==Du&&Number.isInteger(h)&&h>=0&&h<this.subRequests.size&&s[h]===void 0?(c._request=this.subRequests.get(h),s[h]=c):be.error(`subResponses[${o}] is dropped as the Content-ID is not found or invalid, Content-ID: ${h}`),f?i++:n++}return{subResponses:s,subResponsesSucceededCount:n,subResponsesFailedCount:i}}};var fr;(function(a){a[a.LOCKED=0]="LOCKED",a[a.UNLOCKED=1]="UNLOCKED"})(fr||(fr={}));var yr=class{static async lock(e){return new Promise(t=>{this.keys[e]===void 0||this.keys[e]===fr.UNLOCKED?(this.keys[e]=fr.LOCKED,t()):this.onUnlockEvent(e,()=>{this.keys[e]=fr.LOCKED,t()})})}static async unlock(e){return new Promise(t=>{this.keys[e]===fr.LOCKED&&this.emitUnlockEvent(e),delete this.keys[e],t()})}static onUnlockEvent(e,t){this.listeners[e]===void 0?this.listeners[e]=[t]:this.listeners[e].push(t)}static emitUnlockEvent(e){if(this.listeners[e]!==void 0&&this.listeners[e].length>0){let t=this.listeners[e].shift();setImmediate(()=>{t.call(this)})}}};yr.keys={};yr.listeners={};var $r=class{constructor(){this.batch="batch",this.batchRequest=new ku}getMultiPartContentType(){return this.batchRequest.getMultipartContentType()}getHttpRequestBody(){return this.batchRequest.getHttpRequestBody()}getSubRequests(){return this.batchRequest.getSubRequests()}async addSubRequestInternal(e,t){await yr.lock(this.batch);try{this.batchRequest.preAddSubRequest(e),await t(),this.batchRequest.postAddSubRequest(e)}finally{await yr.unlock(this.batch)}}setBatchType(e){if(this.batchType||(this.batchType=e),this.batchType!==e)throw new RangeError(`BlobBatch only supports one operation type per batch and it already is being used for ${this.batchType} operations.`)}async deleteBlob(e,t,r){let s,n;if(typeof e=="string"&&(M&&t instanceof K||t instanceof A||Y(t)))s=e,n=t;else if(e instanceof fe)s=e.url,n=e.credential,r=t;else throw new RangeError("Invalid arguments. Either url and credential, or BlobClient need be provided.");r||(r={});let{span:i,updatedOptions:o}=x("BatchDeleteRequest-addSubRequest",r);try{this.setBatchType("delete"),await this.addSubRequestInternal({url:s,credential:n},async()=>{await new fe(s,this.batchRequest.createPipeline(n)).delete(o)})}catch(m){throw i.setStatus({code:g.ERROR,message:m.message}),m}finally{i.end()}}async setBlobAccessTier(e,t,r,s){let n,i,o;if(typeof e=="string"&&(M&&t instanceof K||t instanceof A||Y(t)))n=e,i=t,o=r;else if(e instanceof fe)n=e.url,i=e.credential,o=t,s=r;else throw new RangeError("Invalid arguments. Either url and credential, or BlobClient need be provided.");s||(s={});let{span:m,updatedOptions:c}=x("BatchSetTierRequest-addSubRequest",s);try{this.setBatchType("setAccessTier"),await this.addSubRequestInternal({url:n,credential:i},async()=>{await new fe(n,this.batchRequest.createPipeline(i)).setAccessTier(o,c)})}catch(l){throw m.setStatus({code:g.ERROR,message:l.message}),l}finally{m.end()}}},ku=class{constructor(){this.operationCount=0,this.body="";let e=ye();this.boundary=`batch_${e}`,this.subRequestPrefix=`--${this.boundary}${Ie}${le.CONTENT_TYPE}: application/http${Ie}${le.CONTENT_TRANSFER_ENCODING}: binary`,this.multipartContentType=`multipart/mixed; boundary=${this.boundary}`,this.batchRequestEnding=`--${this.boundary}--`,this.subRequests=new Map}createPipeline(e){let t=e instanceof A,r=3+(t?0:1),s=new Array(r);return s[0]=Ot(),s[1]=new Ku,t||(s[2]=Y(e)?ps(Mt(e,ms),e):e),s[r-1]=new ju(this),new fs(s,{})}appendSubRequestToBody(e){this.body+=[this.subRequestPrefix,`${le.CONTENT_ID}: ${this.operationCount}`,"",`${e.method.toString()} ${du(e.url)} ${cs}${Ie}`].join(Ie);for(let t of e.headers.headersArray())this.body+=`${t.name}: ${t.value}${Ie}`;this.body+=Ie}preAddSubRequest(e){if(this.operationCount>=Wn)throw new RangeError(`Cannot exceed ${Wn} sub requests in a single batch`);let t=ls(e.url);if(!t||t==="")throw new RangeError(`Invalid url for sub request: '${e.url}'`)}postAddSubRequest(e){this.subRequests.set(this.operationCount,e),this.operationCount++}getHttpRequestBody(){return`${this.body}${this.batchRequestEnding}${Ie}`}getMultipartContentType(){return this.multipartContentType}getSubRequests(){return this.subRequests}},Uu=class extends B{constructor(e,t,r){super(t,r);this.dummyResponse={request:new Le,status:200,headers:new te},this.batchRequest=e}async sendRequest(e){return await this.batchRequest.appendSubRequestToBody(e),this.dummyResponse}},ju=class{constructor(e){this.batchRequest=e}create(e,t){return new Uu(this.batchRequest,e,t)}},Fu=class extends B{constructor(e,t){super(e,t)}async sendRequest(e){let t="";for(let r of e.headers.headersArray())ds(r.name,le.X_MS_VERSION)&&(t=r.name);return t!==""&&e.headers.remove(t),this._nextPolicy.sendRequest(e)}},Ku=class{create(e,t){return new Fu(e,t)}};var Gr=class{constructor(e,t,r){let s;qe(t)?s=t:t?s=L(t,r):s=L(new A,r);let n=new zt(e,s.toServiceClientOptions()),i=ls(e);i&&i!=="/"?this.serviceOrContainerContext=new et(n):this.serviceOrContainerContext=new Lr(n)}createBatch(){return new $r}async deleteBlobs(e,t,r){let s=new $r;for(let n of e)typeof n=="string"?await s.deleteBlob(n,t,r):await s.deleteBlob(n,t);return this.submitBatch(s)}async setBlobsAccessTier(e,t,r,s){let n=new $r;for(let i of e)typeof i=="string"?await n.setBlobAccessTier(i,t,r,s):await n.setBlobAccessTier(i,t,r);return this.submitBatch(n)}async submitBatch(e,t={}){if(!e||e.getSubRequests().size===0)throw new RangeError("Batch request should contain one or more sub requests.");let{span:r,updatedOptions:s}=x("BlobBatchClient-submitBatch",t);try{let n=e.getHttpRequestBody(),i=await this.serviceOrContainerContext.submitBatch(Au(n),e.getMultiPartContentType(),n,Object.assign(Object.assign({},t),R(s))),m=await new gi(i,e.getSubRequests()).parseBatchResponse();return{_response:i._response,contentType:i.contentType,errorCode:i.errorCode,requestId:i.requestId,clientRequestId:i.clientRequestId,version:i.version,subResponses:m.subResponses,subResponsesSucceededCount:m.subResponsesSucceededCount,subResponsesFailedCount:m.subResponsesFailedCount}}catch(n){throw r.setStatus({code:g.ERROR,message:n.message}),n}finally{r.end()}}};var xi=class extends jt{constructor(e,t,r){let s,n;if(r=r||{},qe(t))n=e,s=t;else if(M&&t instanceof K||t instanceof A||Y(t))n=e,s=L(t,r);else if(!t&&typeof t!="string")n=e,s=L(new A,r);else if(t&&typeof t=="string"){let i=t,o=dt(e);if(o.kind==="AccountConnString")if(M){let m=new K(o.accountName,o.accountKey);n=F(o.url,encodeURIComponent(i)),r.proxyOptions=Ue(o.proxyUri),s=L(m,r)}else throw new Error("Account connection string is only supported in Node.js environment");else if(o.kind==="SASConnString")n=F(o.url,encodeURIComponent(i))+"?"+o.accountSas,s=L(new A,r);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(n,s);this._containerName=this.getContainerNameFromUrl(),this.containerContext=new et(this.storageClientContext)}get containerName(){return this._containerName}async create(e={}){let{span:t,updatedOptions:r}=x("ContainerClient-create",e);try{return await this.containerContext.create(Object.assign(Object.assign({},e),R(r)))}catch(s){throw t.setStatus({code:g.ERROR,message:s.message}),s}finally{t.end()}}async createIfNotExists(e={}){var t,r;let{span:s,updatedOptions:n}=x("ContainerClient-createIfNotExists",e);try{let i=await this.create(n);return Object.assign(Object.assign({succeeded:!0},i),{_response:i._response})}catch(i){if(((t=i.details)===null||t===void 0?void 0:t.errorCode)==="ContainerAlreadyExists")return s.setStatus({code:g.ERROR,message:"Expected exception when creating a container only if it does not already exist."}),Object.assign(Object.assign({succeeded:!1},(r=i.response)===null||r===void 0?void 0:r.parsedHeaders),{_response:i.response});throw s.setStatus({code:g.ERROR,message:i.message}),i}finally{s.end()}}async exists(e={}){let{span:t,updatedOptions:r}=x("ContainerClient-exists",e);try{return await this.getProperties({abortSignal:e.abortSignal,tracingOptions:r.tracingOptions}),!0}catch(s){if(s.statusCode===404)return t.setStatus({code:g.ERROR,message:"Expected exception when checking container existence"}),!1;throw t.setStatus({code:g.ERROR,message:s.message}),s}finally{t.end()}}getBlobClient(e){return new fe(F(this.url,encodeURIComponent(e)),this.pipeline)}getAppendBlobClient(e){return new dr(F(this.url,encodeURIComponent(e)),this.pipeline)}getBlockBlobClient(e){return new pr(F(this.url,encodeURIComponent(e)),this.pipeline)}getPageBlobClient(e){return new ur(F(this.url,encodeURIComponent(e)),this.pipeline)}async getProperties(e={}){e.conditions||(e.conditions={});let{span:t,updatedOptions:r}=x("ContainerClient-getProperties",e);try{return await this.containerContext.getProperties(Object.assign(Object.assign({abortSignal:e.abortSignal},e.conditions),R(r)))}catch(s){throw t.setStatus({code:g.ERROR,message:s.message}),s}finally{t.end()}}async delete(e={}){e.conditions||(e.conditions={});let{span:t,updatedOptions:r}=x("ContainerClient-delete",e);try{return await this.containerContext.delete(Object.assign({abortSignal:e.abortSignal,leaseAccessConditions:e.conditions,modifiedAccessConditions:e.conditions},R(r)))}catch(s){throw t.setStatus({code:g.ERROR,message:s.message}),s}finally{t.end()}}async deleteIfExists(e={}){var t,r;let{span:s,updatedOptions:n}=x("ContainerClient-deleteIfExists",e);try{let i=await this.delete(n);return Object.assign(Object.assign({succeeded:!0},i),{_response:i._response})}catch(i){if(((t=i.details)===null||t===void 0?void 0:t.errorCode)==="ContainerNotFound")return s.setStatus({code:g.ERROR,message:"Expected exception when deleting a container only if it exists."}),Object.assign(Object.assign({succeeded:!1},(r=i.response)===null||r===void 0?void 0:r.parsedHeaders),{_response:i.response});throw s.setStatus({code:g.ERROR,message:i.message}),i}finally{s.end()}}async setMetadata(e,t={}){if(t.conditions||(t.conditions={}),t.conditions.ifUnmodifiedSince)throw new RangeError("the IfUnmodifiedSince must have their default values because they are ignored by the blob service");let{span:r,updatedOptions:s}=x("ContainerClient-setMetadata",t);try{return await this.containerContext.setMetadata(Object.assign({abortSignal:t.abortSignal,leaseAccessConditions:t.conditions,metadata:e,modifiedAccessConditions:t.conditions},R(s)))}catch(n){throw r.setStatus({code:g.ERROR,message:n.message}),n}finally{r.end()}}async getAccessPolicy(e={}){e.conditions||(e.conditions={});let{span:t,updatedOptions:r}=x("ContainerClient-getAccessPolicy",e);try{let s=await this.containerContext.getAccessPolicy(Object.assign({abortSignal:e.abortSignal,leaseAccessConditions:e.conditions},R(r))),n={_response:s._response,blobPublicAccess:s.blobPublicAccess,date:s.date,etag:s.etag,errorCode:s.errorCode,lastModified:s.lastModified,requestId:s.requestId,clientRequestId:s.clientRequestId,signedIdentifiers:[],version:s.version};for(let i of s){let o;i.accessPolicy&&(o={permissions:i.accessPolicy.permissions},i.accessPolicy.expiresOn&&(o.expiresOn=new Date(i.accessPolicy.expiresOn)),i.accessPolicy.startsOn&&(o.startsOn=new Date(i.accessPolicy.startsOn))),n.signedIdentifiers.push({accessPolicy:o,id:i.id})}return n}catch(s){throw t.setStatus({code:g.ERROR,message:s.message}),s}finally{t.end()}}async setAccessPolicy(e,t,r={}){r.conditions=r.conditions||{};let{span:s,updatedOptions:n}=x("ContainerClient-setAccessPolicy",r);try{let i=[];for(let o of t||[])i.push({accessPolicy:{expiresOn:o.accessPolicy.expiresOn?U(o.accessPolicy.expiresOn):"",permissions:o.accessPolicy.permissions,startsOn:o.accessPolicy.startsOn?U(o.accessPolicy.startsOn):""},id:o.id});return await this.containerContext.setAccessPolicy(Object.assign({abortSignal:r.abortSignal,access:e,containerAcl:i,leaseAccessConditions:r.conditions,modifiedAccessConditions:r.conditions},R(n)))}catch(i){throw s.setStatus({code:g.ERROR,message:i.message}),i}finally{s.end()}}getBlobLeaseClient(e){return new jr(this,e)}async uploadBlockBlob(e,t,r,s={}){let{span:n,updatedOptions:i}=x("ContainerClient-uploadBlockBlob",s);try{let o=this.getBlockBlobClient(e),m=await o.upload(t,r,i);return{blockBlobClient:o,response:m}}catch(o){throw n.setStatus({code:g.ERROR,message:o.message}),o}finally{n.end()}}async deleteBlob(e,t={}){let{span:r,updatedOptions:s}=x("ContainerClient-deleteBlob",t);try{let n=this.getBlobClient(e);return t.versionId&&(n=n.withVersion(t.versionId)),await n.delete(s)}catch(n){throw r.setStatus({code:g.ERROR,message:n.message}),n}finally{r.end()}}async listBlobFlatSegment(e,t={}){let{span:r,updatedOptions:s}=x("ContainerClient-listBlobFlatSegment",t);try{let n=await this.containerContext.listBlobFlatSegment(Object.assign(Object.assign({marker:e},t),R(s)));return Object.assign(Object.assign({},n),{_response:n._response,segment:Object.assign(Object.assign({},n.segment),{blobItems:n.segment.blobItems.map(o=>Object.assign(Object.assign({},o),{tags:Ut(o.blobTags),objectReplicationSourceProperties:or(o.objectReplicationMetadata)}))})})}catch(n){throw r.setStatus({code:g.ERROR,message:n.message}),n}finally{r.end()}}async listBlobHierarchySegment(e,t,r={}){let{span:s,updatedOptions:n}=x("ContainerClient-listBlobHierarchySegment",r);try{let i=await this.containerContext.listBlobHierarchySegment(e,Object.assign(Object.assign({marker:t},r),R(n)));return Object.assign(Object.assign({},i),{_response:i._response,segment:Object.assign(Object.assign({},i.segment),{blobItems:i.segment.blobItems.map(m=>Object.assign(Object.assign({},m),{tags:Ut(m.blobTags),objectReplicationSourceProperties:or(m.objectReplicationMetadata)}))})})}catch(i){throw s.setStatus({code:g.ERROR,message:i.message}),i}finally{s.end()}}listSegments(e,t={}){return je(this,arguments,function*(){let s;if(!!e||e===void 0)do s=yield j(this.listBlobFlatSegment(e,t)),e=s.continuationToken,yield yield j(yield j(s));while(e)})}listItems(e={}){return je(this,arguments,function*(){var r,s;let n;try{for(var i=it(this.listSegments(n,e)),o;o=yield j(i.next()),!o.done;){let m=o.value;yield j(yield*Ir(it(m.segment.blobItems)))}}catch(m){r={error:m}}finally{try{o&&!o.done&&(s=i.return)&&(yield j(s.call(i)))}finally{if(r)throw r.error}}})}listBlobsFlat(e={}){let t=[];e.includeCopy&&t.push("copy"),e.includeDeleted&&t.push("deleted"),e.includeMetadata&&t.push("metadata"),e.includeSnapshots&&t.push("snapshots"),e.includeVersions&&t.push("versions"),e.includeUncommitedBlobs&&t.push("uncommittedblobs"),e.includeTags&&t.push("tags"),e.includeDeletedWithVersions&&t.push("deletedwithversions"),e.includeImmutabilityPolicy&&t.push("immutabilitypolicy"),e.includeLegalHold&&t.push("legalhold"),e.prefix===""&&(e.prefix=void 0);let r=Object.assign(Object.assign({},e),t.length>0?{include:t}:{}),s=this.listItems(r);return{next(){return s.next()},[Symbol.asyncIterator](){return this},byPage:(n={})=>this.listSegments(n.continuationToken,Object.assign({maxPageSize:n.maxPageSize},r))}}listHierarchySegments(e,t,r={}){return je(this,arguments,function*(){let n;if(!!t||t===void 0)do n=yield j(this.listBlobHierarchySegment(e,t,r)),t=n.continuationToken,yield yield j(yield j(n));while(t)})}listItemsByHierarchy(e,t={}){return je(this,arguments,function*(){var s,n;let i;try{for(var o=it(this.listHierarchySegments(e,i,t)),m;m=yield j(o.next()),!m.done;){let l=m.value.segment;if(l.blobPrefixes)for(let u of l.blobPrefixes)yield yield j(Object.assign({kind:"prefix"},u));for(let u of l.blobItems)yield yield j(Object.assign({kind:"blob"},u))}}catch(c){s={error:c}}finally{try{m&&!m.done&&(n=o.return)&&(yield j(n.call(o)))}finally{if(s)throw s.error}}})}listBlobsByHierarchy(e,t={}){if(e==="")throw new RangeError("delimiter should contain one or more characters");let r=[];t.includeCopy&&r.push("copy"),t.includeDeleted&&r.push("deleted"),t.includeMetadata&&r.push("metadata"),t.includeSnapshots&&r.push("snapshots"),t.includeVersions&&r.push("versions"),t.includeUncommitedBlobs&&r.push("uncommittedblobs"),t.includeTags&&r.push("tags"),t.includeDeletedWithVersions&&r.push("deletedwithversions"),t.includeImmutabilityPolicy&&r.push("immutabilitypolicy"),t.includeLegalHold&&r.push("legalhold"),t.prefix===""&&(t.prefix=void 0);let s=Object.assign(Object.assign({},t),r.length>0?{include:r}:{}),n=this.listItemsByHierarchy(e,s);return{async next(){return n.next()},[Symbol.asyncIterator](){return this},byPage:(i={})=>this.listHierarchySegments(e,i.continuationToken,Object.assign({maxPageSize:i.maxPageSize},s))}}getContainerNameFromUrl(){let e;try{let t=k.parse(this.url);if(t.getHost().split(".")[1]==="blob"?e=t.getPath().split("/")[1]:Ur(t)?e=t.getPath().split("/")[2]:e=t.getPath().split("/")[1],e=decodeURIComponent(e),!e)throw new Error("Provided containerName is invalid.");return e}catch{throw new Error("Unable to extract containerName with provided information.")}}generateSasUrl(e){return new Promise(t=>{if(!(this.credential instanceof K))throw new RangeError("Can only generate the SAS when the client is initialized with a shared key credential");let r=ys(Object.assign({containerName:this._containerName},e),this.credential).toString();t(ir(this.url,r))})}getBlobBatchClient(){return new Gr(this.url,this.pipeline)}};var Tt=class{constructor(){this.read=!1,this.write=!1,this.delete=!1,this.deleteVersion=!1,this.list=!1,this.add=!1,this.create=!1,this.update=!1,this.process=!1,this.tag=!1,this.filter=!1,this.setImmutabilityPolicy=!1}static parse(e){let t=new Tt;for(let r of e)switch(r){case"r":t.read=!0;break;case"w":t.write=!0;break;case"d":t.delete=!0;break;case"x":t.deleteVersion=!0;break;case"l":t.list=!0;break;case"a":t.add=!0;break;case"c":t.create=!0;break;case"u":t.update=!0;break;case"p":t.process=!0;break;case"t":t.tag=!0;break;case"f":t.filter=!0;break;case"i":t.setImmutabilityPolicy=!0;break;default:throw new RangeError(`Invalid permission character: ${r}`)}return t}static from(e){let t=new Tt;return e.read&&(t.read=!0),e.write&&(t.write=!0),e.delete&&(t.delete=!0),e.deleteVersion&&(t.deleteVersion=!0),e.filter&&(t.filter=!0),e.tag&&(t.tag=!0),e.list&&(t.list=!0),e.add&&(t.add=!0),e.create&&(t.create=!0),e.update&&(t.update=!0),e.process&&(t.process=!0),e.setImmutabilityPolicy&&(t.setImmutabilityPolicy=!0),t}toString(){let e=[];return this.read&&e.push("r"),this.write&&e.push("w"),this.delete&&e.push("d"),this.deleteVersion&&e.push("x"),this.filter&&e.push("f"),this.tag&&e.push("t"),this.list&&e.push("l"),this.add&&e.push("a"),this.create&&e.push("c"),this.update&&e.push("u"),this.process&&e.push("p"),this.setImmutabilityPolicy&&e.push("i"),e.join("")}};var Xr=class{constructor(){this.service=!1,this.container=!1,this.object=!1}static parse(e){let t=new Xr;for(let r of e)switch(r){case"s":t.service=!0;break;case"c":t.container=!0;break;case"o":t.object=!0;break;default:throw new RangeError(`Invalid resource type: ${r}`)}return t}toString(){let e=[];return this.service&&e.push("s"),this.container&&e.push("c"),this.object&&e.push("o"),e.join("")}};var Kt=class{constructor(){this.blob=!1,this.file=!1,this.queue=!1,this.table=!1}static parse(e){let t=new Kt;for(let r of e)switch(r){case"b":t.blob=!0;break;case"f":t.file=!0;break;case"q":t.queue=!0;break;case"t":t.table=!0;break;default:throw new RangeError(`Invalid service character: ${r}`)}return t}toString(){let e=[];return this.blob&&e.push("b"),this.table&&e.push("t"),this.queue&&e.push("q"),this.file&&e.push("f"),e.join("")}};function $u(a,e){let t=a.version?a.version:Dr;if(a.permissions&&a.permissions.setImmutabilityPolicy&&t<"2020-08-04")throw RangeError("'version' must be >= '2020-08-04' when provided 'i' permission.");if(a.permissions&&a.permissions.deleteVersion&&t<"2019-10-10")throw RangeError("'version' must be >= '2019-10-10' when provided 'x' permission.");if(a.permissions&&a.permissions.tag&&t<"2019-12-12")throw RangeError("'version' must be >= '2019-12-12' when provided 't' permission.");if(a.permissions&&a.permissions.filter&&t<"2019-12-12")throw RangeError("'version' must be >= '2019-12-12' when provided 'f' permission.");let r=Tt.parse(a.permissions.toString()),s=Kt.parse(a.services).toString(),n=Xr.parse(a.resourceTypes).toString(),i=[e.accountName,r,s,n,a.startsOn?U(a.startsOn,!1):"",U(a.expiresOn,!1),a.ipRange?ft(a.ipRange):"",a.protocol?a.protocol:"",t,""].join(`
8
- `),o=e.computeHMACSHA256(i);return new wt(t,o,r.toString(),s,n,a.protocol,a.startsOn,a.expiresOn,a.ipRange)}var gr=class extends jt{constructor(e,t,r){let s;qe(t)?s=t:M&&t instanceof K||t instanceof A||Y(t)?s=L(t,r):s=L(new A,r);super(e,s);this.serviceContext=new Lr(this.storageClientContext)}static fromConnectionString(e,t){t=t||{};let r=dt(e);if(r.kind==="AccountConnString")if(M){let s=new K(r.accountName,r.accountKey);t.proxyOptions=Ue(r.proxyUri);let n=L(s,t);return new gr(r.url,n)}else throw new Error("Account connection string is only supported in Node.js environment");else if(r.kind==="SASConnString"){let s=L(new A,t);return new gr(r.url+"?"+r.accountSas,s)}else throw new Error("Connection string must be either an Account connection string or a SAS connection string")}getContainerClient(e){return new xi(F(this.url,encodeURIComponent(e)),this.pipeline)}async createContainer(e,t={}){let{span:r,updatedOptions:s}=x("BlobServiceClient-createContainer",t);try{let n=this.getContainerClient(e),i=await n.create(s);return{containerClient:n,containerCreateResponse:i}}catch(n){throw r.setStatus({code:g.ERROR,message:n.message}),n}finally{r.end()}}async deleteContainer(e,t={}){let{span:r,updatedOptions:s}=x("BlobServiceClient-deleteContainer",t);try{return await this.getContainerClient(e).delete(s)}catch(n){throw r.setStatus({code:g.ERROR,message:n.message}),n}finally{r.end()}}async undeleteContainer(e,t,r={}){let{span:s,updatedOptions:n}=x("BlobServiceClient-undeleteContainer",r);try{let i=this.getContainerClient(r.destinationContainerName||e),m=await new et(i.storageClientContext).restore(Object.assign({deletedContainerName:e,deletedContainerVersion:t},n));return{containerClient:i,containerUndeleteResponse:m}}catch(i){throw s.setStatus({code:g.ERROR,message:i.message}),i}finally{s.end()}}async renameContainer(e,t,r={}){var s;let{span:n,updatedOptions:i}=x("BlobServiceClient-renameContainer",r);try{let o=this.getContainerClient(t),c=await new et(o.storageClientContext).rename(e,Object.assign(Object.assign({},i),{sourceLeaseId:(s=r.sourceCondition)===null||s===void 0?void 0:s.leaseId}));return{containerClient:o,containerRenameResponse:c}}catch(o){throw n.setStatus({code:g.ERROR,message:o.message}),o}finally{n.end()}}async getProperties(e={}){let{span:t,updatedOptions:r}=x("BlobServiceClient-getProperties",e);try{return await this.serviceContext.getProperties(Object.assign({abortSignal:e.abortSignal},R(r)))}catch(s){throw t.setStatus({code:g.ERROR,message:s.message}),s}finally{t.end()}}async setProperties(e,t={}){let{span:r,updatedOptions:s}=x("BlobServiceClient-setProperties",t);try{return await this.serviceContext.setProperties(e,Object.assign({abortSignal:t.abortSignal},R(s)))}catch(n){throw r.setStatus({code:g.ERROR,message:n.message}),n}finally{r.end()}}async getStatistics(e={}){let{span:t,updatedOptions:r}=x("BlobServiceClient-getStatistics",e);try{return await this.serviceContext.getStatistics(Object.assign({abortSignal:e.abortSignal},R(r)))}catch(s){throw t.setStatus({code:g.ERROR,message:s.message}),s}finally{t.end()}}async getAccountInfo(e={}){let{span:t,updatedOptions:r}=x("BlobServiceClient-getAccountInfo",e);try{return await this.serviceContext.getAccountInfo(Object.assign({abortSignal:e.abortSignal},R(r)))}catch(s){throw t.setStatus({code:g.ERROR,message:s.message}),s}finally{t.end()}}async listContainersSegment(e,t={}){let{span:r,updatedOptions:s}=x("BlobServiceClient-listContainersSegment",t);try{return await this.serviceContext.listContainersSegment(Object.assign(Object.assign(Object.assign({abortSignal:t.abortSignal,marker:e},t),{include:typeof t.include=="string"?[t.include]:t.include}),R(s)))}catch(n){throw r.setStatus({code:g.ERROR,message:n.message}),n}finally{r.end()}}async findBlobsByTagsSegment(e,t,r={}){let{span:s,updatedOptions:n}=x("BlobServiceClient-findBlobsByTagsSegment",r);try{let i=await this.serviceContext.filterBlobs(Object.assign({abortSignal:r.abortSignal,where:e,marker:t,maxPageSize:r.maxPageSize},R(n)));return Object.assign(Object.assign({},i),{_response:i._response,blobs:i.blobs.map(m=>{var c;let l="";return((c=m.tags)===null||c===void 0?void 0:c.blobTagSet.length)===1&&(l=m.tags.blobTagSet[0].value),Object.assign(Object.assign({},m),{tags:Ut(m.tags),tagValue:l})})})}catch(i){throw s.setStatus({code:g.ERROR,message:i.message}),i}finally{s.end()}}findBlobsByTagsSegments(e,t,r={}){return je(this,arguments,function*(){let n;if(!!t||t===void 0)do n=yield j(this.findBlobsByTagsSegment(e,t,r)),n.blobs=n.blobs||[],t=n.continuationToken,yield yield j(n);while(t)})}findBlobsByTagsItems(e,t={}){return je(this,arguments,function*(){var s,n;let i;try{for(var o=it(this.findBlobsByTagsSegments(e,i,t)),m;m=yield j(o.next()),!m.done;){let c=m.value;yield j(yield*Ir(it(c.blobs)))}}catch(c){s={error:c}}finally{try{m&&!m.done&&(n=o.return)&&(yield j(n.call(o)))}finally{if(s)throw s.error}}})}findBlobsByTags(e,t={}){let r=Object.assign({},t),s=this.findBlobsByTagsItems(e,r);return{next(){return s.next()},[Symbol.asyncIterator](){return this},byPage:(n={})=>this.findBlobsByTagsSegments(e,n.continuationToken,Object.assign({maxPageSize:n.maxPageSize},r))}}listSegments(e,t={}){return je(this,arguments,function*(){let s;if(!!e||e===void 0)do s=yield j(this.listContainersSegment(e,t)),s.containerItems=s.containerItems||[],e=s.continuationToken,yield yield j(yield j(s));while(e)})}listItems(e={}){return je(this,arguments,function*(){var r,s;let n;try{for(var i=it(this.listSegments(n,e)),o;o=yield j(i.next()),!o.done;){let m=o.value;yield j(yield*Ir(it(m.containerItems)))}}catch(m){r={error:m}}finally{try{o&&!o.done&&(s=i.return)&&(yield j(s.call(i)))}finally{if(r)throw r.error}}})}listContainers(e={}){e.prefix===""&&(e.prefix=void 0);let t=[];e.includeDeleted&&t.push("deleted"),e.includeMetadata&&t.push("metadata");let r=Object.assign(Object.assign({},e),t.length>0?{include:t}:{}),s=this.listItems(r);return{next(){return s.next()},[Symbol.asyncIterator](){return this},byPage:(n={})=>this.listSegments(n.continuationToken,Object.assign({maxPageSize:n.maxPageSize},r))}}async getUserDelegationKey(e,t,r={}){let{span:s,updatedOptions:n}=x("BlobServiceClient-getUserDelegationKey",r);try{let i=await this.serviceContext.getUserDelegationKey({startsOn:U(e,!1),expiresOn:U(t,!1)},Object.assign({abortSignal:r.abortSignal},R(n))),o={signedObjectId:i.signedObjectId,signedTenantId:i.signedTenantId,signedStartsOn:new Date(i.signedStartsOn),signedExpiresOn:new Date(i.signedExpiresOn),signedService:i.signedService,signedVersion:i.signedVersion,value:i.value};return Object.assign({_response:i._response,requestId:i.requestId,clientRequestId:i.clientRequestId,version:i.version,date:i.date,errorCode:i.errorCode},o)}catch(i){throw s.setStatus({code:g.ERROR,message:i.message}),i}finally{s.end()}}getBlobBatchClient(){return new Gr(this.url,this.pipeline)}generateAccountSasUrl(e,t=Tt.parse("r"),r="sco",s={}){if(!(this.credential instanceof K))throw RangeError("Can only generate the account SAS when the client is initialized with a shared key credential");if(e===void 0){let i=new Date;e=new Date(i.getTime()+3600*1e3)}let n=$u(Object.assign({permissions:t,expiresOn:e,resourceTypes:r,services:Kt.parse("b").toString()},s),this.credential).toString();return ir(this.url,n)}};var Qx="iarisprod",Vx="iaris",Wx="?sv=2020-08-04&ss=bfqt&srt=sco&sp=rwdlacupitfx&se=2025-12-28T06:34:02Z&st=2021-12-27T22:34:02Z&spr=https&sig=1rsgx389pHZCnJYd44peuWSfeCUdN8bQ9EfcLoMOdDc%3D",Yx=new gr(`https://${Qx}.blob.core.windows.net${Wx}`);async function Jx(a){let{file:e,onProgress:t}=a,s=Yx.getContainerClient(Vx).getBlockBlobClient(e.name),n=i=>{let o=i.loadedBytes/e.size*100;t&&t(Math.round(o))};await s.upload(e,e.size,{onProgress:n})}var hi=Jx;var Zx="https://iaris.easyproctor.tech/api";async function Rs(a){let{url:e,method:t,body:r,jwt:s}=a,n=await fetch(Zx+e,{method:t,body:r!=null?JSON.stringify(r):void 0,headers:{Authorization:`Bearer ${s}`,"Content-Type":"application/json"}});if(n.status>=400)throw"N\xE3o foi poss\xEDvel realizar a requisi\xE7\xE3o, tente novamente mais tarde";return n.headers.get("content-type")?.includes("application/json")?await n.json():null}var Gu="https://iarisprod.azureedge.net/iaris";function eh(a){if(["examId","clientId","token"].forEach(p=>{let y=p;if(!a[y])throw`O campo ${y} \xE9 obrigat\xF3rio`}),!navigator.mediaDevices.getDisplayMedia)throw"Voc\xEA est\xE1 utilizando uma vers\xE3o muito antiga do navegador, por favor, atualize a vers\xE3o";if(!window.indexedDB)throw"Voc\xEA est\xE1 usando uma vers\xE3o muito antiga do navegador, n\xE3o \xE9 poss\xEDvel relizar a requisi\xE7\xE3o";function e(p){let y=URL.createObjectURL(p),E=document.createElement("a");document.body.appendChild(E),E.style.display="none",E.href=y,E.download=p.name,E.click(),window.URL.revokeObjectURL(y)}let t=[],r=[],s="",n=0,i=[],o=null;async function m(){if(!document.body)throw"A execu\xE7\xE3o do script deve ser feita por algum elemento dentro do <body> da p\xE1gina html";if(o!=null)throw"Uma grava\xE7\xE3o ja est\xE1 em andamento";let p=null,y=null;try{y=await Ts(r),p=await ws(t),o=async function(){await Promise.all([p(),y()])}}catch{throw o=null,y&&await y(),p&&await p(),t=[],r=[],"N\xE3o foi poss\xEDvel iniciar a captura, por favor, verifique as permiss\xF5es de camera e microfone"}}let c=()=>{i.push({begin:Date.now()-n,alert:25,end:0})},l=()=>{let p=i[i.length-1];p&&(p.end=Date.now()-n)},u=()=>{window.addEventListener("blur",c),window.addEventListener("focus",l)},d=()=>{window.removeEventListener("blur",c),window.removeEventListener("focus",l)};async function f(p={override:!1}){let{override:y}=p;if(y)await Promise.all([xr("cameraBuffers"),xr("screenBuffers")]);else{let[E,O]=await Promise.all([zs("cameraBuffers"),zs("screenBuffers")]);if(E.length>0||O.length>0)throw"Existe uma grava\xE7\xE3o iniciada, por favor, execute o m\xE9todo resume() para retomar, ou utilize o parametro start({ override: true }) para limpar os dados"}await m(),n=Date.now();try{let E=await Rs({url:`/proctoring/start/${a.examId}`,method:"POST",body:{clientId:a.clientId},jwt:a.token});return s=E.id,u(),E}catch(E){throw o&&o(),E}}async function h(p={}){let{onProgress:y}=p;o&&await o();let E=new Date().toISOString(),O=t,$=r;if(O.length==0||$.length==0)throw"N\xE3o existe nenhuma grava\xE7\xE3o iniciada";let de=`EP_${s}_camera_0.webm`,rt=`EP_${s}_screen_0.webm`,He=new File(O,de,{type:"video/webm"}),_t=new File($,rt,{type:"video/webm"}),yt=0,Xu=0,bi=()=>{y&&y((yt+Xu)/2)};await Promise.all([hi({file:He,onProgress:Es=>{yt=Es,bi()}}),hi({file:_t,onProgress:Es=>{yt=Es,bi()}})]),d(),await Rs({url:"/proctoring/save-screen",method:"POST",jwt:a.token,body:{proctoringId:s,alerts:[...i]}}),await Rs({url:`/proctoring/finish/${a.examId}`,method:"POST",body:{endDate:E,videoCameraUrl:`${Gu}/${de}`,videoScreenUrl:`${Gu}/${rt}`},jwt:a.token}),await Promise.all([xr("cameraBuffers"),xr("screenBuffers")]),t=[],r=[],i=[],o=null}return{start:f,finish:h,download:e}}typeof window!="undefined"&&(window.useProctoring=eh);})();
8
+ `),o=e.computeHMACSHA256(i);return new wt(t,o,r.toString(),s,n,a.protocol,a.startsOn,a.expiresOn,a.ipRange)}var gr=class extends jt{constructor(e,t,r){let s;qe(t)?s=t:M&&t instanceof K||t instanceof A||Y(t)?s=L(t,r):s=L(new A,r);super(e,s);this.serviceContext=new Lr(this.storageClientContext)}static fromConnectionString(e,t){t=t||{};let r=dt(e);if(r.kind==="AccountConnString")if(M){let s=new K(r.accountName,r.accountKey);t.proxyOptions=Ue(r.proxyUri);let n=L(s,t);return new gr(r.url,n)}else throw new Error("Account connection string is only supported in Node.js environment");else if(r.kind==="SASConnString"){let s=L(new A,t);return new gr(r.url+"?"+r.accountSas,s)}else throw new Error("Connection string must be either an Account connection string or a SAS connection string")}getContainerClient(e){return new xi(F(this.url,encodeURIComponent(e)),this.pipeline)}async createContainer(e,t={}){let{span:r,updatedOptions:s}=x("BlobServiceClient-createContainer",t);try{let n=this.getContainerClient(e),i=await n.create(s);return{containerClient:n,containerCreateResponse:i}}catch(n){throw r.setStatus({code:g.ERROR,message:n.message}),n}finally{r.end()}}async deleteContainer(e,t={}){let{span:r,updatedOptions:s}=x("BlobServiceClient-deleteContainer",t);try{return await this.getContainerClient(e).delete(s)}catch(n){throw r.setStatus({code:g.ERROR,message:n.message}),n}finally{r.end()}}async undeleteContainer(e,t,r={}){let{span:s,updatedOptions:n}=x("BlobServiceClient-undeleteContainer",r);try{let i=this.getContainerClient(r.destinationContainerName||e),m=await new et(i.storageClientContext).restore(Object.assign({deletedContainerName:e,deletedContainerVersion:t},n));return{containerClient:i,containerUndeleteResponse:m}}catch(i){throw s.setStatus({code:g.ERROR,message:i.message}),i}finally{s.end()}}async renameContainer(e,t,r={}){var s;let{span:n,updatedOptions:i}=x("BlobServiceClient-renameContainer",r);try{let o=this.getContainerClient(t),c=await new et(o.storageClientContext).rename(e,Object.assign(Object.assign({},i),{sourceLeaseId:(s=r.sourceCondition)===null||s===void 0?void 0:s.leaseId}));return{containerClient:o,containerRenameResponse:c}}catch(o){throw n.setStatus({code:g.ERROR,message:o.message}),o}finally{n.end()}}async getProperties(e={}){let{span:t,updatedOptions:r}=x("BlobServiceClient-getProperties",e);try{return await this.serviceContext.getProperties(Object.assign({abortSignal:e.abortSignal},R(r)))}catch(s){throw t.setStatus({code:g.ERROR,message:s.message}),s}finally{t.end()}}async setProperties(e,t={}){let{span:r,updatedOptions:s}=x("BlobServiceClient-setProperties",t);try{return await this.serviceContext.setProperties(e,Object.assign({abortSignal:t.abortSignal},R(s)))}catch(n){throw r.setStatus({code:g.ERROR,message:n.message}),n}finally{r.end()}}async getStatistics(e={}){let{span:t,updatedOptions:r}=x("BlobServiceClient-getStatistics",e);try{return await this.serviceContext.getStatistics(Object.assign({abortSignal:e.abortSignal},R(r)))}catch(s){throw t.setStatus({code:g.ERROR,message:s.message}),s}finally{t.end()}}async getAccountInfo(e={}){let{span:t,updatedOptions:r}=x("BlobServiceClient-getAccountInfo",e);try{return await this.serviceContext.getAccountInfo(Object.assign({abortSignal:e.abortSignal},R(r)))}catch(s){throw t.setStatus({code:g.ERROR,message:s.message}),s}finally{t.end()}}async listContainersSegment(e,t={}){let{span:r,updatedOptions:s}=x("BlobServiceClient-listContainersSegment",t);try{return await this.serviceContext.listContainersSegment(Object.assign(Object.assign(Object.assign({abortSignal:t.abortSignal,marker:e},t),{include:typeof t.include=="string"?[t.include]:t.include}),R(s)))}catch(n){throw r.setStatus({code:g.ERROR,message:n.message}),n}finally{r.end()}}async findBlobsByTagsSegment(e,t,r={}){let{span:s,updatedOptions:n}=x("BlobServiceClient-findBlobsByTagsSegment",r);try{let i=await this.serviceContext.filterBlobs(Object.assign({abortSignal:r.abortSignal,where:e,marker:t,maxPageSize:r.maxPageSize},R(n)));return Object.assign(Object.assign({},i),{_response:i._response,blobs:i.blobs.map(m=>{var c;let l="";return((c=m.tags)===null||c===void 0?void 0:c.blobTagSet.length)===1&&(l=m.tags.blobTagSet[0].value),Object.assign(Object.assign({},m),{tags:Ut(m.tags),tagValue:l})})})}catch(i){throw s.setStatus({code:g.ERROR,message:i.message}),i}finally{s.end()}}findBlobsByTagsSegments(e,t,r={}){return je(this,arguments,function*(){let n;if(!!t||t===void 0)do n=yield j(this.findBlobsByTagsSegment(e,t,r)),n.blobs=n.blobs||[],t=n.continuationToken,yield yield j(n);while(t)})}findBlobsByTagsItems(e,t={}){return je(this,arguments,function*(){var s,n;let i;try{for(var o=it(this.findBlobsByTagsSegments(e,i,t)),m;m=yield j(o.next()),!m.done;){let c=m.value;yield j(yield*Ir(it(c.blobs)))}}catch(c){s={error:c}}finally{try{m&&!m.done&&(n=o.return)&&(yield j(n.call(o)))}finally{if(s)throw s.error}}})}findBlobsByTags(e,t={}){let r=Object.assign({},t),s=this.findBlobsByTagsItems(e,r);return{next(){return s.next()},[Symbol.asyncIterator](){return this},byPage:(n={})=>this.findBlobsByTagsSegments(e,n.continuationToken,Object.assign({maxPageSize:n.maxPageSize},r))}}listSegments(e,t={}){return je(this,arguments,function*(){let s;if(!!e||e===void 0)do s=yield j(this.listContainersSegment(e,t)),s.containerItems=s.containerItems||[],e=s.continuationToken,yield yield j(yield j(s));while(e)})}listItems(e={}){return je(this,arguments,function*(){var r,s;let n;try{for(var i=it(this.listSegments(n,e)),o;o=yield j(i.next()),!o.done;){let m=o.value;yield j(yield*Ir(it(m.containerItems)))}}catch(m){r={error:m}}finally{try{o&&!o.done&&(s=i.return)&&(yield j(s.call(i)))}finally{if(r)throw r.error}}})}listContainers(e={}){e.prefix===""&&(e.prefix=void 0);let t=[];e.includeDeleted&&t.push("deleted"),e.includeMetadata&&t.push("metadata");let r=Object.assign(Object.assign({},e),t.length>0?{include:t}:{}),s=this.listItems(r);return{next(){return s.next()},[Symbol.asyncIterator](){return this},byPage:(n={})=>this.listSegments(n.continuationToken,Object.assign({maxPageSize:n.maxPageSize},r))}}async getUserDelegationKey(e,t,r={}){let{span:s,updatedOptions:n}=x("BlobServiceClient-getUserDelegationKey",r);try{let i=await this.serviceContext.getUserDelegationKey({startsOn:U(e,!1),expiresOn:U(t,!1)},Object.assign({abortSignal:r.abortSignal},R(n))),o={signedObjectId:i.signedObjectId,signedTenantId:i.signedTenantId,signedStartsOn:new Date(i.signedStartsOn),signedExpiresOn:new Date(i.signedExpiresOn),signedService:i.signedService,signedVersion:i.signedVersion,value:i.value};return Object.assign({_response:i._response,requestId:i.requestId,clientRequestId:i.clientRequestId,version:i.version,date:i.date,errorCode:i.errorCode},o)}catch(i){throw s.setStatus({code:g.ERROR,message:i.message}),i}finally{s.end()}}getBlobBatchClient(){return new Gr(this.url,this.pipeline)}generateAccountSasUrl(e,t=Tt.parse("r"),r="sco",s={}){if(!(this.credential instanceof K))throw RangeError("Can only generate the account SAS when the client is initialized with a shared key credential");if(e===void 0){let i=new Date;e=new Date(i.getTime()+3600*1e3)}let n=$u(Object.assign({permissions:t,expiresOn:e,resourceTypes:r,services:Kt.parse("b").toString()},s),this.credential).toString();return ir(this.url,n)}};var Qx="iarisprod",Vx="iaris",Wx="?sv=2020-08-04&ss=bfqt&srt=sco&sp=rwdlacupitfx&se=2025-12-28T06:34:02Z&st=2021-12-27T22:34:02Z&spr=https&sig=1rsgx389pHZCnJYd44peuWSfeCUdN8bQ9EfcLoMOdDc%3D",Yx=new gr(`https://${Qx}.blob.core.windows.net${Wx}`);async function Jx(a){let{file:e,onProgress:t}=a,s=Yx.getContainerClient(Vx).getBlockBlobClient(e.name),n=i=>{let o=i.loadedBytes/e.size*100;t&&t(Math.round(o))};await s.upload(e,e.size,{onProgress:n})}var hi=Jx;var Zx="https://iaris.easyproctor.tech/api";async function Rs(a){let{url:e,method:t,body:r,jwt:s}=a,n=await fetch(Zx+e,{method:t,body:r!=null?JSON.stringify(r):void 0,headers:{Authorization:`Bearer ${s}`,"Content-Type":"application/json"}});if(n.status>=400)throw"N\xE3o foi poss\xEDvel realizar a requisi\xE7\xE3o, tente novamente mais tarde";return n.headers.get("content-type")?.includes("application/json")?await n.json():null}var Gu="https://iarisprod.blob.core.windows.net/iaris";function eh(a){if(["examId","clientId","token"].forEach(p=>{let y=p;if(!a[y])throw`O campo ${y} \xE9 obrigat\xF3rio`}),!navigator.mediaDevices.getDisplayMedia)throw"Voc\xEA est\xE1 utilizando uma vers\xE3o muito antiga do navegador, por favor, atualize a vers\xE3o";if(!window.indexedDB)throw"Voc\xEA est\xE1 usando uma vers\xE3o muito antiga do navegador, n\xE3o \xE9 poss\xEDvel relizar a requisi\xE7\xE3o";function e(p){let y=URL.createObjectURL(p),E=document.createElement("a");document.body.appendChild(E),E.style.display="none",E.href=y,E.download=p.name,E.click(),window.URL.revokeObjectURL(y)}let t=[],r=[],s="",n=0,i=[],o=null;async function m(){if(!document.body)throw"A execu\xE7\xE3o do script deve ser feita por algum elemento dentro do <body> da p\xE1gina html";if(o!=null)throw"Uma grava\xE7\xE3o ja est\xE1 em andamento";let p=null,y=null;try{y=await Ts(r),p=await ws(t),o=async function(){await Promise.all([p(),y()])}}catch{throw o=null,y&&await y(),p&&await p(),t=[],r=[],"N\xE3o foi poss\xEDvel iniciar a captura, por favor, verifique as permiss\xF5es de camera e microfone"}}let c=()=>{i.push({begin:Date.now()-n,alert:25,end:0})},l=()=>{let p=i[i.length-1];p&&(p.end=Date.now()-n)},u=()=>{window.addEventListener("blur",c),window.addEventListener("focus",l)},d=()=>{window.removeEventListener("blur",c),window.removeEventListener("focus",l)};async function f(p={override:!1}){let{override:y}=p;if(y)await Promise.all([xr("cameraBuffers"),xr("screenBuffers")]);else{let[E,O]=await Promise.all([zs("cameraBuffers"),zs("screenBuffers")]);if(E.length>0||O.length>0)throw"Existe uma grava\xE7\xE3o iniciada, por favor, execute o m\xE9todo resume() para retomar, ou utilize o parametro start({ override: true }) para limpar os dados"}await m(),n=Date.now();try{let E=await Rs({url:`/proctoring/start/${a.examId}`,method:"POST",body:{clientId:a.clientId},jwt:a.token});return s=E.id,u(),E}catch(E){throw o&&o(),E}}async function h(p={}){let{onProgress:y}=p;o&&await o();let E=new Date().toISOString(),O=t,$=r;if(O.length==0||$.length==0)throw"N\xE3o existe nenhuma grava\xE7\xE3o iniciada";let de=`EP_${s}_camera_0.webm`,rt=`EP_${s}_screen_0.webm`,He=new File(O,de,{type:"video/webm"}),_t=new File($,rt,{type:"video/webm"}),yt=0,Xu=0,bi=()=>{y&&y((yt+Xu)/2)};await Promise.all([hi({file:He,onProgress:Es=>{yt=Es,bi()}}),hi({file:_t,onProgress:Es=>{yt=Es,bi()}})]),d(),await Rs({url:"/proctoring/save-screen",method:"POST",jwt:a.token,body:{proctoringId:s,alerts:[...i]}}),await Rs({url:`/proctoring/finish/${a.examId}`,method:"POST",body:{endDate:E,videoCameraUrl:`${Gu}/${de}`,videoScreenUrl:`${Gu}/${rt}`},jwt:a.token}),await Promise.all([xr("cameraBuffers"),xr("screenBuffers")]),t=[],r=[],i=[],o=null}return{start:f,finish:h,download:e}}typeof window!="undefined"&&(window.useProctoring=eh);})();
9
9
  /*! *****************************************************************************
10
10
  Copyright (c) Microsoft Corporation.
11
11