/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/wdio-intercept-service@4.4.1/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
"use strict";const interceptor=require("./lib/interceptor"),PKG_PREFIX="[wdio-intercept-service]: ";class InterceptServiceError extends Error{constructor(e,...t){super(PKG_PREFIX+e,...t)}}const issueDeprecation=(e,t,r)=>{e[t]||(console.warn(`${PKG_PREFIX}${r} is deprecated and will no longer work in v5`),e[t]=!0)};class WebdriverAjax{constructor(){this._wdajaxExpectations=null,this._deprecations={}}beforeTest(){this._wdajaxExpectations=[]}beforeScenario(){this._wdajaxExpectations=[]}before(){const e=void 0===arguments[2]?globalThis.browser:arguments[2];if(!e||"function"!=typeof e.addCommand)throw new Error("you can't use WebdriverAjax with this version of WebdriverIO");function t(e={}){return r(void 0,e)}async function r(t,r={}){const o="number"==typeof t;if(void 0!==t&&!o)throw new TypeError(`${PKG_PREFIX}the "index" property must be a non-negative integer`);if(o&&t<0)throw new RangeError(`${PKG_PREFIX}the "index" property must be a non-negative integer`);const s=await e.execute(interceptor.getRequest,o?t:void 0,r);if(!s){if(o)throw new Error("Could not find request with index "+t);return[]}return Array.isArray(s)?s.map(n):"object"==typeof s[0]?function(e,t){const r=[],n=Math.max.apply(Math,Object.keys(e).map(Number));for(let o=0;o<=n;o++)r.push(t(e[o],o));return r}(s,n):n(s)}function n(e){if(!e)return;const t={url:e.url,method:e.method&&e.method.toUpperCase(),headers:o(e.requestHeaders),body:i(e.requestBody),pending:!0};return e.__fulfilled&&(t.pending=!1,t.response={headers:s(e.headers),body:i(e.body),statusCode:e.statusCode},e.headers||console.warn(`${t.method} request to ${e.url} (HTTP ${e.statusCode}) had no response headers!`)),t}function o(e){const t={};return Object.keys(e).forEach((r=>{t[r.toLowerCase()]=e[r]})),t}function s(e){const t={};if(!e)return t;const r=e.trim().split(/(?:\r?\n)+/);for(const e of r){const r=e.split(/(?<=^[^:]*):/),n=r[0].trim().toLowerCase(),o=r[1].trim();void 0===t[n]?t[n]=o:"string"==typeof t[n]&&(t[n]=t[n]+", "+o)}return t}function i(e){let t;try{t=JSON.parse(e)}catch(r){t=e}return t}e.addCommand("setupInterceptor",function(){return e.executeAsync(interceptor.setup)}.bind(this)),e.addCommand("disableInterceptor",function(){return e.executeAsync(interceptor.disableInterceptor)}.bind(this)),e.addCommand("excludeUrls",function(t){return t=t.map((function(e){return"object"==typeof e?{source:e.source,flags:e.flags}:{source:e,flags:void 0}})),e.executeAsync(interceptor.excludeUrls,t)}.bind(this)),e.addCommand("getExpectations",function(){return this._wdajaxExpectations}.bind(this)),e.addCommand("resetExpectations",function(){return this._wdajaxExpectations=[],e}.bind(this)),e.addCommand("expectRequest",function(t,r,n){return this._wdajaxExpectations.push({method:t.toUpperCase(),url:r,statusCode:n}),e}.bind(this)),e.addCommand("assertRequests",function(r={}){const n=this._wdajaxExpectations;if(!n.length)return Promise.reject(new Error("No expectations found. Call .expectRequest() first"));if(r.includePending)throw new InterceptServiceError("passing `includePending` option to `assertRequests` is not supported!");return t(r).then((t=>{if(n.length!==t.length)return Promise.reject(new Error("Expected "+n.length+" requests but was "+t.length));for(let e=0;e<n.length;e++){const r=n[e],o=t[e];if(o.method!==r.method)return Promise.reject(new Error("Expected request to URL "+o.url+" to have method "+r.method+" but was "+o.method));if(r.url instanceof RegExp&&o.url&&!o.url.match(r.url))return Promise.reject(new Error("Expected request "+e+" to match "+r.url.toString()+" but was "+o.url));if("string"==typeof r.url&&o.url!==r.url)return Promise.reject(new Error("Expected request "+e+" to have URL "+r.url+" but was "+o.url));if(o.response.statusCode!==r.statusCode)return Promise.reject(new Error("Expected request to URL "+o.url+" to have status "+r.statusCode+" but was "+o.response.statusCode))}return e}))}.bind(this)),e.addCommand("assertExpectedRequestsOnly",function(r){const n=this._wdajaxExpectations;let o=!0,s={};"boolean"==typeof r?(issueDeprecation(this._deprecations,"inOrder","Calling `assertExpectedRequestsOnly` with a boolean parameter"),o=r):r&&"object"==typeof r&&(s=r,o=!("inOrder"in r)||r.inOrder,delete s.inOrder);if(s.includePending)throw new InterceptServiceError("passing `includePending` option to `assertExpectedRequestsOnly` is not supported!");return t(s).then((t=>{const r=t.slice(),s=[];for(let e=0;e<n.length;e++){const t=n[e],o=r.findIndex((e=>!(!e||e.method!==t.method||t.url instanceof RegExp&&e.url&&!e.url.match(t.url)||"string"==typeof t.url&&e.url!==t.url||e.response.statusCode!==t.statusCode)));if(-1===o)return Promise.reject(new Error("Expected request was not found. method: "+t.method+" url: "+t.url+" statusCode: "+t.statusCode));s.push(o),delete r[o]}return s.length!==n.length?Promise.reject(new Error("Expected "+n.length+" requests but found "+s.length+" matching requests")):o&&JSON.stringify(s)!==JSON.stringify(s.slice().sort())?Promise.reject(new Error("Requests not received in the expected order")):e}))}.bind(this)),e.addCommand("hasPendingRequests",(function(){return e.execute(interceptor.hasPending)})),e.addCommand("getRequest",r),e.addCommand("getRequests",t)}}exports.default=WebdriverAjax;
//# sourceMappingURL=/sm/30a6d1cda2ded9a995232068525084ecd85e9e7db55dcddf96ab5c87ea1d4645.map