diff --git a/.nvmrc b/.nvmrc index 0828ab7..85aee5a 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v18 \ No newline at end of file +v20 \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index f71b6f4..d5696db 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## v2.0.6 + +**improvements** + +updated dependencies, fixing [#159](https://github.com/natelindev/tsdav/issues/159) + ## v2.0.5 **features** diff --git a/dist/package.json b/dist/package.json index 78c7115..925f7ce 100644 --- a/dist/package.json +++ b/dist/package.json @@ -1,6 +1,6 @@ { "name": "tsdav", - "version": "2.0.5", + "version": "2.0.6", "description": "WebDAV, CALDAV, and CARDDAV client for Nodejs and the Browser", "keywords": [ "dav", @@ -49,42 +49,42 @@ }, "dependencies": { "base-64": "1.0.0", - "cross-fetch": "3.1.6", + "cross-fetch": "4.0.0", "debug": "4.3.4", "xml-js": "1.6.11" }, "devDependencies": { - "@rollup/plugin-commonjs": "25.0.2", - "@rollup/plugin-node-resolve": "15.1.0", - "@rollup/plugin-typescript": "11.1.1", - "@types/base-64": "1.0.0", - "@types/debug": "4.1.8", - "@types/jest": "29.5.2", - "@types/node": "20.3.1", - "@typescript-eslint/eslint-plugin": "5.60.0", - "@typescript-eslint/parser": "5.60.0", + "@rollup/plugin-commonjs": "25.0.7", + "@rollup/plugin-node-resolve": "15.2.3", + "@rollup/plugin-typescript": "11.1.5", + "@types/base-64": "1.0.2", + "@types/debug": "4.1.12", + "@types/jest": "29.5.9", + "@types/node": "20.9.3", + "@typescript-eslint/eslint-plugin": "6.12.0", + "@typescript-eslint/parser": "6.12.0", "copyfiles": "2.4.1", "cross-env": "7.0.3", "dotenv": "16.3.1", - "eslint": "8.43.0", + "eslint": "8.54.0", "eslint-config-airbnb": "19.0.4", - "eslint-config-airbnb-typescript": "17.0.0", - "eslint-config-prettier": "8.8.0", + "eslint-config-airbnb-typescript": "17.1.0", + "eslint-config-prettier": "9.0.0", "eslint-module-utils": "2.8.0", - "eslint-plugin-import": "2.27.5", - "eslint-plugin-prettier": "4.2.1", - "jest": "29.5.0", - "prettier": "2.8.8", - "rimraf": "5.0.1", - "rollup": "3.25.1", - "rollup-plugin-dts": "5.3.0", + "eslint-plugin-import": "2.29.0", + "eslint-plugin-prettier": "5.0.1", + "jest": "29.7.0", + "prettier": "3.1.0", + "rimraf": "5.0.5", + "rollup": "4.5.0", + "rollup-plugin-dts": "6.1.0", "rollup-plugin-node-builtins": "2.1.2", - "rollup-plugin-polyfill-node": "0.12.0", + "rollup-plugin-polyfill-node": "0.13.0", "rollup-plugin-terser": "7.0.2", - "sort-package-json": "2.4.1", - "ts-jest": "29.1.0", - "tslib": "2.5.3", - "typescript": "5.1.3" + "sort-package-json": "2.6.0", + "ts-jest": "29.1.1", + "tslib": "2.6.2", + "typescript": "5.2.2" }, "engines": { "node": ">=10" diff --git a/dist/tsdav.cjs b/dist/tsdav.cjs index 34f4add..ee889ea 100644 --- a/dist/tsdav.cjs +++ b/dist/tsdav.cjs @@ -21,7 +21,7 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */ -/* global Reflect, Promise */ +/* global Reflect, Promise, SuppressedError, Symbol */ function __rest(s, e) { @@ -46,6 +46,11 @@ function __awaiter(thisArg, _arguments, P, generator) { }); } +typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) { + var e = new Error(message); + return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e; +}; + exports.DAVNamespace = void 0; (function (DAVNamespace) { DAVNamespace["CALENDAR_SERVER"] = "http://calendarserver.org/ns/"; diff --git a/dist/tsdav.cjs.js b/dist/tsdav.cjs.js index 34f4add..ee889ea 100644 --- a/dist/tsdav.cjs.js +++ b/dist/tsdav.cjs.js @@ -21,7 +21,7 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */ -/* global Reflect, Promise */ +/* global Reflect, Promise, SuppressedError, Symbol */ function __rest(s, e) { @@ -46,6 +46,11 @@ function __awaiter(thisArg, _arguments, P, generator) { }); } +typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) { + var e = new Error(message); + return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e; +}; + exports.DAVNamespace = void 0; (function (DAVNamespace) { DAVNamespace["CALENDAR_SERVER"] = "http://calendarserver.org/ns/"; diff --git a/dist/tsdav.d.ts b/dist/tsdav.d.ts index d1eac00..d863ea8 100644 --- a/dist/tsdav.d.ts +++ b/dist/tsdav.d.ts @@ -999,4 +999,4 @@ declare const _default: { }; }; -export { DAVAccount, DAVAddressBook, DAVAttributeMap, DAVCalendar, DAVCalendarObject, DAVClient, DAVCollection, DAVCredentials, DAVDepth, DAVMethods, DAVNamespace, DAVNamespaceShort, DAVObject, DAVRequest, DAVResponse, DAVTokens, DAVVCard, addressBookQuery, calendarMultiGet, calendarQuery, cleanupFalsy, collectionQuery, createAccount, createCalendarObject, createDAVClient, createObject, createVCard, davRequest, _default as default, deleteCalendarObject, deleteObject, deleteVCard, fetchAddressBooks, fetchCalendarObjects, fetchCalendars, fetchOauthTokens, fetchVCards, freeBusyQuery, getBasicAuthHeaders, getDAVAttribute, getOauthHeaders, isCollectionDirty, makeCalendar, propfind, refreshAccessToken, smartCollectionSync, supportedReportSet, syncCalendars, syncCollection, updateCalendarObject, updateObject, updateVCard, urlContains, urlEquals }; +export { type DAVAccount, type DAVAddressBook, DAVAttributeMap, type DAVCalendar, type DAVCalendarObject, DAVClient, type DAVCollection, type DAVCredentials, type DAVDepth, type DAVMethods, DAVNamespace, DAVNamespaceShort, type DAVObject, type DAVRequest, type DAVResponse, type DAVTokens, type DAVVCard, addressBookQuery, calendarMultiGet, calendarQuery, cleanupFalsy, collectionQuery, createAccount, createCalendarObject, createDAVClient, createObject, createVCard, davRequest, _default as default, deleteCalendarObject, deleteObject, deleteVCard, fetchAddressBooks, fetchCalendarObjects, fetchCalendars, fetchOauthTokens, fetchVCards, freeBusyQuery, getBasicAuthHeaders, getDAVAttribute, getOauthHeaders, isCollectionDirty, makeCalendar, propfind, refreshAccessToken, smartCollectionSync, supportedReportSet, syncCalendars, syncCollection, updateCalendarObject, updateObject, updateVCard, urlContains, urlEquals }; diff --git a/dist/tsdav.esm.js b/dist/tsdav.esm.js index aacac24..8a747bd 100644 --- a/dist/tsdav.esm.js +++ b/dist/tsdav.esm.js @@ -17,7 +17,7 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */ -/* global Reflect, Promise */ +/* global Reflect, Promise, SuppressedError, Symbol */ function __rest(s, e) { @@ -42,6 +42,11 @@ function __awaiter(thisArg, _arguments, P, generator) { }); } +typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) { + var e = new Error(message); + return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e; +}; + var DAVNamespace; (function (DAVNamespace) { DAVNamespace["CALENDAR_SERVER"] = "http://calendarserver.org/ns/"; diff --git a/dist/tsdav.js b/dist/tsdav.js index 7fa9f08..6165fc1 100644 --- a/dist/tsdav.js +++ b/dist/tsdav.js @@ -12,7 +12,7 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */ -/* global Reflect, Promise */ +/* global Reflect, Promise, SuppressedError, Symbol */ function __rest(s, e) { @@ -37,6 +37,11 @@ function __awaiter(thisArg, _arguments, P, generator) { }); } +typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) { + var e = new Error(message); + return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e; +}; + var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; function getDefaultExportFromCjs (x) { @@ -49,10 +54,7 @@ function getAugmentedNamespace(n) { if (typeof f == "function") { var a = function a () { if (this instanceof a) { - var args = [null]; - args.push.apply(args, arguments); - var Ctor = Function.bind.apply(f, args); - return new Ctor(); + return Reflect.construct(f, arguments, this.constructor); } return f.apply(this, arguments); }; @@ -74,25 +76,37 @@ function getAugmentedNamespace(n) { var browserPonyfill = {exports: {}}; (function (module, exports) { - var global = typeof self !== 'undefined' ? self : commonjsGlobal; - var __self__ = (function () { + // Save global object in a variable + var __global__ = + (typeof globalThis !== 'undefined' && globalThis) || + (typeof self !== 'undefined' && self) || + (typeof commonjsGlobal !== 'undefined' && commonjsGlobal); + // Create an object that extends from __global__ without the fetch function + var __globalThis__ = (function () { function F() { this.fetch = false; - this.DOMException = global.DOMException; + this.DOMException = __global__.DOMException; } - F.prototype = global; + F.prototype = __global__; // Needed for feature detection on whatwg-fetch's code return new F(); })(); - (function(self) { + // Wraps whatwg-fetch with a function scope to hijack the global object + // "globalThis" that's going to be patched + (function(globalThis) { ((function (exports) { + var global = + (typeof globalThis !== 'undefined' && globalThis) || + (typeof self !== 'undefined' && self) || + (typeof global !== 'undefined' && global); + var support = { - searchParams: 'URLSearchParams' in self, - iterable: 'Symbol' in self && 'iterator' in Symbol, + searchParams: 'URLSearchParams' in global, + iterable: 'Symbol' in global && 'iterator' in Symbol, blob: - 'FileReader' in self && - 'Blob' in self && + 'FileReader' in global && + 'Blob' in global && (function() { try { new Blob(); @@ -101,8 +115,8 @@ var browserPonyfill = {exports: {}}; return false } })(), - formData: 'FormData' in self, - arrayBuffer: 'ArrayBuffer' in self + formData: 'FormData' in global, + arrayBuffer: 'ArrayBuffer' in global }; function isDataView(obj) { @@ -133,8 +147,8 @@ var browserPonyfill = {exports: {}}; if (typeof name !== 'string') { name = String(name); } - if (/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(name)) { - throw new TypeError('Invalid character in header field name') + if (/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(name) || name === '') { + throw new TypeError('Invalid character in header field name: "' + name + '"') } return name.toLowerCase() } @@ -298,6 +312,17 @@ var browserPonyfill = {exports: {}}; this.bodyUsed = false; this._initBody = function(body) { + /* + fetch-mock wraps the Response object in an ES6 Proxy to + provide useful test harness features such as flush. However, on + ES5 browsers without fetch or Proxy support pollyfills must be used; + the proxy-pollyfill is unable to proxy an attribute unless it exists + on the object before the Proxy is created. This change ensures + Response.bodyUsed exists on the instance, while maintaining the + semantic of setting Request.bodyUsed in the constructor before + _initBody is called. + */ + this.bodyUsed = this.bodyUsed; this._bodyInit = body; if (!body) { this._bodyText = ''; @@ -350,7 +375,20 @@ var browserPonyfill = {exports: {}}; this.arrayBuffer = function() { if (this._bodyArrayBuffer) { - return consumed(this) || Promise.resolve(this._bodyArrayBuffer) + var isConsumed = consumed(this); + if (isConsumed) { + return isConsumed + } + if (ArrayBuffer.isView(this._bodyArrayBuffer)) { + return Promise.resolve( + this._bodyArrayBuffer.buffer.slice( + this._bodyArrayBuffer.byteOffset, + this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength + ) + ) + } else { + return Promise.resolve(this._bodyArrayBuffer) + } } else { return this.blob().then(readBlobAsArrayBuffer) } @@ -396,6 +434,10 @@ var browserPonyfill = {exports: {}}; } function Request(input, options) { + if (!(this instanceof Request)) { + throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.') + } + options = options || {}; var body = options.body; @@ -432,6 +474,21 @@ var browserPonyfill = {exports: {}}; throw new TypeError('Body not allowed for GET or HEAD requests') } this._initBody(body); + + if (this.method === 'GET' || this.method === 'HEAD') { + if (options.cache === 'no-store' || options.cache === 'no-cache') { + // Search for a '_' parameter in the query string + var reParamSearch = /([?&])_=[^&]*/; + if (reParamSearch.test(this.url)) { + // If it already exists then set the value with the current time + this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime()); + } else { + // Otherwise add a new '_' parameter to the end with the current time + var reQueryString = /\?/; + this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime(); + } + } + } } Request.prototype.clone = function() { @@ -459,20 +516,31 @@ var browserPonyfill = {exports: {}}; // Replace instances of \r\n and \n followed by at least one space or horizontal tab with a space // https://tools.ietf.org/html/rfc7230#section-3.2 var preProcessedHeaders = rawHeaders.replace(/\r?\n[\t ]+/g, ' '); - preProcessedHeaders.split(/\r?\n/).forEach(function(line) { - var parts = line.split(':'); - var key = parts.shift().trim(); - if (key) { - var value = parts.join(':').trim(); - headers.append(key, value); - } - }); + // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill + // https://github.com/github/fetch/issues/748 + // https://github.com/zloirock/core-js/issues/751 + preProcessedHeaders + .split('\r') + .map(function(header) { + return header.indexOf('\n') === 0 ? header.substr(1, header.length) : header + }) + .forEach(function(line) { + var parts = line.split(':'); + var key = parts.shift().trim(); + if (key) { + var value = parts.join(':').trim(); + headers.append(key, value); + } + }); return headers } Body.call(Request.prototype); function Response(bodyInit, options) { + if (!(this instanceof Response)) { + throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.') + } if (!options) { options = {}; } @@ -480,7 +548,7 @@ var browserPonyfill = {exports: {}}; this.type = 'default'; this.status = options.status === undefined ? 200 : options.status; this.ok = this.status >= 200 && this.status < 300; - this.statusText = 'statusText' in options ? options.statusText : 'OK'; + this.statusText = options.statusText === undefined ? '' : '' + options.statusText; this.headers = new Headers(options.headers); this.url = options.url || ''; this._initBody(bodyInit); @@ -513,7 +581,7 @@ var browserPonyfill = {exports: {}}; return new Response(null, {status: status, headers: {location: url}}) }; - exports.DOMException = self.DOMException; + exports.DOMException = global.DOMException; try { new exports.DOMException(); } catch (err) { @@ -549,22 +617,38 @@ var browserPonyfill = {exports: {}}; }; options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL'); var body = 'response' in xhr ? xhr.response : xhr.responseText; - resolve(new Response(body, options)); + setTimeout(function() { + resolve(new Response(body, options)); + }, 0); }; xhr.onerror = function() { - reject(new TypeError('Network request failed')); + setTimeout(function() { + reject(new TypeError('Network request failed')); + }, 0); }; xhr.ontimeout = function() { - reject(new TypeError('Network request failed')); + setTimeout(function() { + reject(new TypeError('Network request failed')); + }, 0); }; xhr.onabort = function() { - reject(new exports.DOMException('Aborted', 'AbortError')); + setTimeout(function() { + reject(new exports.DOMException('Aborted', 'AbortError')); + }, 0); }; - xhr.open(request.method, request.url, true); + function fixUrl(url) { + try { + return url === '' && global.location.href ? global.location.href : url + } catch (e) { + return url + } + } + + xhr.open(request.method, fixUrl(request.url), true); if (request.credentials === 'include') { xhr.withCredentials = true; @@ -572,13 +656,27 @@ var browserPonyfill = {exports: {}}; xhr.withCredentials = false; } - if ('responseType' in xhr && support.blob) { - xhr.responseType = 'blob'; + if ('responseType' in xhr) { + if (support.blob) { + xhr.responseType = 'blob'; + } else if ( + support.arrayBuffer && + request.headers.get('Content-Type') && + request.headers.get('Content-Type').indexOf('application/octet-stream') !== -1 + ) { + xhr.responseType = 'arraybuffer'; + } } - request.headers.forEach(function(value, name) { - xhr.setRequestHeader(name, value); - }); + if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers)) { + Object.getOwnPropertyNames(init.headers).forEach(function(name) { + xhr.setRequestHeader(name, normalizeValue(init.headers[name])); + }); + } else { + request.headers.forEach(function(value, name) { + xhr.setRequestHeader(name, value); + }); + } if (request.signal) { request.signal.addEventListener('abort', abortXhr); @@ -597,11 +695,11 @@ var browserPonyfill = {exports: {}}; fetch.polyfill = true; - if (!self.fetch) { - self.fetch = fetch; - self.Headers = Headers; - self.Request = Request; - self.Response = Response; + if (!global.fetch) { + global.fetch = fetch; + global.Headers = Headers; + global.Request = Request; + global.Response = Response; } exports.Headers = Headers; @@ -609,18 +707,15 @@ var browserPonyfill = {exports: {}}; exports.Response = Response; exports.fetch = fetch; - Object.defineProperty(exports, '__esModule', { value: true }); - return exports; }))({}); - })(__self__); - __self__.fetch.ponyfill = true; - // Remove "polyfill" property added by whatwg-fetch - delete __self__.fetch.polyfill; - // Choose between native implementation (global) or custom implementation (__self__) - // var ctx = global.fetch ? global : __self__; - var ctx = __self__; // this line disable service worker support temporarily + })(__globalThis__); + // This is a ponyfill, so... + __globalThis__.fetch.ponyfill = true; + delete __globalThis__.fetch.polyfill; + // Choose between native implementation (__global__) or custom implementation (__globalThis__) + var ctx = __global__.fetch ? __global__ : __globalThis__; exports = ctx.fetch; // To enable: import fetch from 'cross-fetch' exports.default = ctx.fetch; // For TypeScript consumers without esModuleInterop. exports.fetch = ctx.fetch; // To enable: import {fetch} from 'cross-fetch' @@ -1818,6 +1913,8 @@ var isArray$4 = Array.isArray || function (arr) { * @author Feross Aboukhadijeh * @license MIT */ +/* eslint-disable no-proto */ + var INSPECT_MAX_BYTES = 50; diff --git a/dist/tsdav.min.cjs b/dist/tsdav.min.cjs index c71a711..81f1b1c 100644 --- a/dist/tsdav.min.cjs +++ b/dist/tsdav.min.cjs @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("cross-fetch"),r=require("debug"),o=require("xml-js"),a=require("base-64");function s(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(o=Object.getOwnPropertySymbols(e);a{const t=Number(e);if(!Number.isNaN(t))return t;const r=e.toLowerCase();return"true"===r||"false"!==r&&e},u=(e,t)=>{if(!e&&!t)return!0;if(!e||!t)return!1;const r=e.trim(),o=t.trim();if(Math.abs(r.length-o.length)>1)return!1;const a="/"===r.slice(-1)?r.slice(0,-1):r,s="/"===o.slice(-1)?o.slice(0,-1):o;return e.includes(s)||t.includes(a)},p=(e,t)=>{if(!e&&!t)return!0;if(!e||!t)return!1;const r=e.trim(),o=t.trim(),a="/"===r.slice(-1)?r.slice(0,-1):r,s="/"===o.slice(-1)?o.slice(0,-1):o;return e.includes(s)||t.includes(a)},h=e=>e.reduce(((e,t)=>Object.assign(Object.assign({},e),{[d[t]]:t})),{}),v=e=>Object.entries(e).reduce(((e,[t,r])=>r?Object.assign(Object.assign({},e),{[t]:r}):e),{}),f=(e,t)=>t?{[e]:t}:{};var m=Object.freeze({__proto__:null,cleanupFalsy:v,conditionalParam:f,getDAVAttribute:h,urlContains:p,urlEquals:u});const A=r("tsdav:request"),D=e=>n(void 0,void 0,void 0,(function*(){var r;const{url:a,init:s,convertIncoming:n=!0,parseOutgoing:d=!0}=e,{headers:i={},body:c,namespace:u,method:p,attributes:h}=s,f=n?o.js2xml(Object.assign(Object.assign({_declaration:{_attributes:{version:"1.0",encoding:"utf-8"}}},c),{_attributes:h}),{compact:!0,spaces:2,elementNameFn:e=>u&&!/^.+:.+/.test(e)?`${u}:${e}`:e}):c,m=yield t.fetch(a,{headers:Object.assign({"Content-Type":"text/xml;charset=UTF-8"},v(i)),body:f,method:p}),D=yield m.text();if(!m.ok||!(null===(r=m.headers.get("content-type"))||void 0===r?void 0:r.includes("xml"))||!d)return[{href:m.url,ok:m.ok,status:m.status,statusText:m.statusText,raw:D}];const g=o.xml2js(D,{compact:!0,trim:!0,textFn:(e,t)=>{try{const r=t._parent,o=Object.keys(r),a=o[o.length-1],s=r[a];if(s.length>0){s[s.length-1]=l(e)}else r[a]=l(e)}catch(e){A(e.stack)}},elementNameFn:e=>e.replace(/^.+:/,"").replace(/([-_]\w)/g,(e=>e[1].toUpperCase())),attributesFn:e=>{const t=Object.assign({},e);return delete t.xmlns,t},ignoreDeclaration:!0});return(Array.isArray(g.multistatus.response)?g.multistatus.response:[g.multistatus.response]).map((e=>{var t,r;if(!e)return{status:m.status,statusText:m.statusText,ok:m.ok};const o=/^\S+\s(?\d+)\s(?.+)$/.exec(e.status);return{raw:g,href:e.href,status:(null==o?void 0:o.groups)?Number.parseInt(null==o?void 0:o.groups.status,10):m.status,statusText:null!==(r=null===(t=null==o?void 0:o.groups)||void 0===t?void 0:t.statusText)&&void 0!==r?r:m.statusText,ok:!e.error,error:e.error,responsedescription:e.responsedescription,props:(Array.isArray(e.propstat)?e.propstat:[e.propstat]).reduce(((e,t)=>Object.assign(Object.assign({},e),null==t?void 0:t.prop)),{})}}))})),g=e=>n(void 0,void 0,void 0,(function*(){const{url:t,props:r,depth:o,headers:a}=e;return D({url:t,init:{method:"PROPFIND",headers:v(Object.assign({depth:o},a)),namespace:exports.DAVNamespaceShort.DAV,body:{propfind:{_attributes:h([exports.DAVNamespace.CALDAV,exports.DAVNamespace.CALDAV_APPLE,exports.DAVNamespace.CALENDAR_SERVER,exports.DAVNamespace.CARDDAV,exports.DAVNamespace.DAV]),prop:r}}}})})),y=e=>n(void 0,void 0,void 0,(function*(){const{url:r,data:o,headers:a}=e;return t.fetch(r,{method:"PUT",body:o,headers:a})})),b=e=>n(void 0,void 0,void 0,(function*(){const{url:r,data:o,etag:a,headers:s}=e;return t.fetch(r,{method:"PUT",body:o,headers:v(Object.assign({"If-Match":a},s))})})),V=e=>n(void 0,void 0,void 0,(function*(){const{url:r,headers:o,etag:a}=e;return t.fetch(r,{method:"DELETE",headers:v(Object.assign({"If-Match":a},o))})}));var O=Object.freeze({__proto__:null,createObject:y,davRequest:D,deleteObject:V,propfind:g,updateObject:b});function x(e,t){const r=e=>t.every((t=>e[t]));return Array.isArray(e)?e.every((e=>r(e))):r(e)}const C=(e,t)=>t.reduce(((t,r)=>e[r]?t:`${t.length?`${t},`:""}${r.toString()}`),""),j=r("tsdav:collection"),S=e=>n(void 0,void 0,void 0,(function*(){const{url:t,body:r,depth:o,defaultNamespace:a=exports.DAVNamespaceShort.DAV,headers:s}=e,n=yield D({url:t,init:{method:"REPORT",headers:v(Object.assign({depth:o},s)),namespace:a,body:r}});return 1!==n.length||n[0].raw?n:[]})),N=e=>n(void 0,void 0,void 0,(function*(){const{url:t,props:r,depth:o,headers:a}=e;return D({url:t,init:{method:"MKCOL",headers:v(Object.assign({depth:o},a)),namespace:exports.DAVNamespaceShort.DAV,body:r?{mkcol:{set:{prop:r}}}:void 0}})})),k=e=>n(void 0,void 0,void 0,(function*(){var t,r,o,a,s;const{collection:n,headers:d}=e;return null!==(s=null===(a=null===(o=null===(r=null===(t=(yield g({url:n.url,props:{[`${exports.DAVNamespaceShort.DAV}:supported-report-set`]:{}},depth:"0",headers:d}))[0])||void 0===t?void 0:t.props)||void 0===r?void 0:r.supportedReportSet)||void 0===o?void 0:o.supportedReport)||void 0===a?void 0:a.map((e=>Object.keys(e.report)[0])))&&void 0!==s?s:[]})),$=e=>n(void 0,void 0,void 0,(function*(){var t,r,o;const{collection:a,headers:s}=e,n=(yield g({url:a.url,props:{[`${exports.DAVNamespaceShort.CALENDAR_SERVER}:getctag`]:{}},depth:"0",headers:s})).filter((e=>p(a.url,e.href)))[0];if(!n)throw new Error("Collection does not exist on server");return{isDirty:a.ctag!==(null===(t=n.props)||void 0===t?void 0:t.getctag),newCtag:null===(o=null===(r=n.props)||void 0===r?void 0:r.getctag)||void 0===o?void 0:o.toString()}})),w=e=>{const{url:t,props:r,headers:o,syncLevel:a,syncToken:s}=e;return D({url:t,init:{method:"REPORT",namespace:exports.DAVNamespaceShort.DAV,headers:Object.assign({},o),body:{"sync-collection":{_attributes:h([exports.DAVNamespace.CALDAV,exports.DAVNamespace.CARDDAV,exports.DAVNamespace.DAV]),"sync-level":a,"sync-token":s,[`${exports.DAVNamespaceShort.DAV}:prop`]:r}}}})},_=e=>n(void 0,void 0,void 0,(function*(){var t,r,o,a,s,n,d,i,c,l,u;const{collection:h,method:v,headers:f,account:m,detailedResult:A}=e,D=["accountType","homeUrl"];if(!m||!x(m,D)){if(!m)throw new Error("no account for smartCollectionSync");throw new Error(`account must have ${C(m,D)} before smartCollectionSync`)}const g=null!=v?v:(null===(t=h.reports)||void 0===t?void 0:t.includes("syncCollection"))?"webdav":"basic";if(j(`smart collection sync with type ${m.accountType} and method ${g}`),"webdav"===g){const e=yield w({url:h.url,props:{[`${exports.DAVNamespaceShort.DAV}:getetag`]:{},[`${"caldav"===m.accountType?exports.DAVNamespaceShort.CALDAV:exports.DAVNamespaceShort.CARDDAV}:${"caldav"===m.accountType?"calendar-data":"address-data"}`]:{},[`${exports.DAVNamespaceShort.DAV}:displayname`]:{}},syncLevel:1,syncToken:h.syncToken,headers:f}),t=e.filter((e=>{var t;const r="caldav"===m.accountType?".ics":".vcf";return(null===(t=e.href)||void 0===t?void 0:t.slice(-4))===r})),c=t.filter((e=>404!==e.status)).map((e=>e.href)),l=t.filter((e=>404===e.status)).map((e=>e.href)),u=(c.length&&null!==(o=yield null===(r=null==h?void 0:h.objectMultiGet)||void 0===r?void 0:r.call(h,{url:h.url,props:{[`${exports.DAVNamespaceShort.DAV}:getetag`]:{},[`${"caldav"===m.accountType?exports.DAVNamespaceShort.CALDAV:exports.DAVNamespaceShort.CARDDAV}:${"caldav"===m.accountType?"calendar-data":"address-data"}`]:{}},objectUrls:c,depth:"1",headers:f}))&&void 0!==o?o:[]).map((e=>{var t,r,o,a,s,n,d,i,c,l;return{url:null!==(t=e.href)&&void 0!==t?t:"",etag:null===(r=e.props)||void 0===r?void 0:r.getetag,data:"caldav"===(null==m?void 0:m.accountType)?null!==(s=null===(a=null===(o=e.props)||void 0===o?void 0:o.calendarData)||void 0===a?void 0:a._cdata)&&void 0!==s?s:null===(n=e.props)||void 0===n?void 0:n.calendarData:null!==(c=null===(i=null===(d=e.props)||void 0===d?void 0:d.addressData)||void 0===i?void 0:i._cdata)&&void 0!==c?c:null===(l=e.props)||void 0===l?void 0:l.addressData}})),v=null!==(a=h.objects)&&void 0!==a?a:[],D=u.filter((e=>v.every((t=>!p(t.url,e.url))))),g=v.reduce(((e,t)=>{const r=u.find((e=>p(e.url,t.url)));return r&&r.etag&&r.etag!==t.etag?[...e,r]:e}),[]),y=l.map((e=>({url:e,etag:""}))),b=v.filter((e=>u.some((t=>p(e.url,t.url)&&t.etag===e.etag))));return Object.assign(Object.assign({},h),{objects:A?{created:D,updated:g,deleted:y}:[...b,...D,...g],syncToken:null!==(i=null===(d=null===(n=null===(s=e[0])||void 0===s?void 0:s.raw)||void 0===n?void 0:n.multistatus)||void 0===d?void 0:d.syncToken)&&void 0!==i?i:h.syncToken})}if("basic"===g){const{isDirty:e,newCtag:t}=yield $({collection:h,headers:f}),r=null!==(c=h.objects)&&void 0!==c?c:[],o=null!==(u=yield null===(l=h.fetchObjects)||void 0===l?void 0:l.call(h,{collection:h,headers:f}))&&void 0!==u?u:[],a=o.filter((e=>r.every((t=>!p(t.url,e.url))))),s=r.reduce(((e,t)=>{const r=o.find((e=>p(e.url,t.url)));return r&&r.etag&&r.etag!==t.etag?[...e,r]:e}),[]),n=r.filter((e=>o.every((t=>!p(t.url,e.url))))),d=r.filter((e=>o.some((t=>p(e.url,t.url)&&t.etag===e.etag))));if(e)return Object.assign(Object.assign({},h),{objects:A?{created:a,updated:s,deleted:n}:[...d,...a,...s],ctag:t})}return A?Object.assign(Object.assign({},h),{objects:{created:[],updated:[],deleted:[]}}):h}));var R=Object.freeze({__proto__:null,collectionQuery:S,isCollectionDirty:$,makeCollection:N,smartCollectionSync:_,supportedReportSet:k,syncCollection:w});const U=r("tsdav:addressBook"),E=e=>n(void 0,void 0,void 0,(function*(){const{url:t,props:r,filters:o,depth:a,headers:s}=e;return S({url:t,body:{"addressbook-query":{_attributes:h([exports.DAVNamespace.CARDDAV,exports.DAVNamespace.DAV]),[`${exports.DAVNamespaceShort.DAV}:prop`]:r,filter:null!=o?o:{"prop-filter":{_attributes:{name:"FN"}}}}},defaultNamespace:exports.DAVNamespaceShort.CARDDAV,depth:a,headers:s})})),T=e=>n(void 0,void 0,void 0,(function*(){const{url:t,props:r,objectUrls:o,depth:a,headers:s}=e;return S({url:t,body:{"addressbook-multiget":{_attributes:h([exports.DAVNamespace.DAV,exports.DAVNamespace.CARDDAV]),[`${exports.DAVNamespaceShort.DAV}:prop`]:r,[`${exports.DAVNamespaceShort.DAV}:href`]:o}},defaultNamespace:exports.DAVNamespaceShort.CARDDAV,depth:a,headers:s})})),L=e=>n(void 0,void 0,void 0,(function*(){const{account:t,headers:r,props:o}=null!=e?e:{},a=["homeUrl","rootUrl"];if(!t||!x(t,a)){if(!t)throw new Error("no account for fetchAddressBooks");throw new Error(`account must have ${C(t,a)} before fetchAddressBooks`)}const s=yield g({url:t.homeUrl,props:null!=o?o:{[`${exports.DAVNamespaceShort.DAV}:displayname`]:{},[`${exports.DAVNamespaceShort.CALENDAR_SERVER}:getctag`]:{},[`${exports.DAVNamespaceShort.DAV}:resourcetype`]:{},[`${exports.DAVNamespaceShort.DAV}:sync-token`]:{}},depth:"1",headers:r});return Promise.all(s.filter((e=>{var t,r;return Object.keys(null!==(r=null===(t=e.props)||void 0===t?void 0:t.resourcetype)&&void 0!==r?r:{}).includes("addressbook")})).map((e=>{var r,o,a,s,n,d,i,c,l;const u=null!==(a=null===(o=null===(r=e.props)||void 0===r?void 0:r.displayname)||void 0===o?void 0:o._cdata)&&void 0!==a?a:null===(s=e.props)||void 0===s?void 0:s.displayname;return U(`Found address book named ${"string"==typeof u?u:""},\n props: ${JSON.stringify(e.props)}`),{url:new URL(null!==(n=e.href)&&void 0!==n?n:"",null!==(d=t.rootUrl)&&void 0!==d?d:"").href,ctag:null===(i=e.props)||void 0===i?void 0:i.getctag,displayName:"string"==typeof u?u:"",resourcetype:Object.keys(null===(c=e.props)||void 0===c?void 0:c.resourcetype),syncToken:null===(l=e.props)||void 0===l?void 0:l.syncToken}})).map((e=>n(void 0,void 0,void 0,(function*(){return Object.assign(Object.assign({},e),{reports:yield k({collection:e,headers:r})})})))))})),P=e=>n(void 0,void 0,void 0,(function*(){const{addressBook:t,headers:r,objectUrls:o,urlFilter:a=(e=>e),useMultiGet:s=!0}=e;U(`Fetching vcards from ${null==t?void 0:t.url}`);const n=["url"];if(!t||!x(t,n)){if(!t)throw new Error("cannot fetchVCards for undefined addressBook");throw new Error(`addressBook must have ${C(t,n)} before fetchVCards`)}const d=(null!=o?o:(yield E({url:t.url,props:{[`${exports.DAVNamespaceShort.DAV}:getetag`]:{}},depth:"1",headers:r})).map((e=>{var t;return e.ok&&null!==(t=e.href)&&void 0!==t?t:""}))).map((e=>e.startsWith("http")||!e?e:new URL(e,t.url).href)).filter(a).map((e=>new URL(e).pathname));let i=[];return d.length>0&&(i=s?yield T({url:t.url,props:{[`${exports.DAVNamespaceShort.DAV}:getetag`]:{},[`${exports.DAVNamespaceShort.CARDDAV}:address-data`]:{}},objectUrls:d,depth:"1",headers:r}):yield E({url:t.url,props:{[`${exports.DAVNamespaceShort.DAV}:getetag`]:{},[`${exports.DAVNamespaceShort.CARDDAV}:address-data`]:{}},depth:"1",headers:r})),i.map((e=>{var r,o,a,s,n,d;return{url:new URL(null!==(r=e.href)&&void 0!==r?r:"",t.url).href,etag:null===(o=e.props)||void 0===o?void 0:o.getetag,data:null!==(n=null===(s=null===(a=e.props)||void 0===a?void 0:a.addressData)||void 0===s?void 0:s._cdata)&&void 0!==n?n:null===(d=e.props)||void 0===d?void 0:d.addressData}}))})),H=e=>n(void 0,void 0,void 0,(function*(){const{addressBook:t,vCardString:r,filename:o,headers:a}=e;return y({url:new URL(o,t.url).href,data:r,headers:Object.assign({"content-type":"text/vcard; charset=utf-8","If-None-Match":"*"},a)})})),B=e=>n(void 0,void 0,void 0,(function*(){const{vCard:t,headers:r}=e;return b({url:t.url,data:t.data,etag:t.etag,headers:Object.assign({"content-type":"text/vcard; charset=utf-8"},r)})})),I=e=>n(void 0,void 0,void 0,(function*(){const{vCard:t,headers:r}=e;return V({url:t.url,etag:t.etag,headers:r})}));var M=Object.freeze({__proto__:null,addressBookMultiGet:T,addressBookQuery:E,createVCard:H,deleteVCard:I,fetchAddressBooks:L,fetchVCards:P,updateVCard:B});const F=r("tsdav:calendar"),z=e=>n(void 0,void 0,void 0,(function*(){const{url:t,props:r,filters:o,timezone:a,depth:s,headers:n}=e;return S({url:t,body:{"calendar-query":v({_attributes:h([exports.DAVNamespace.CALDAV,exports.DAVNamespace.CALENDAR_SERVER,exports.DAVNamespace.CALDAV_APPLE,exports.DAVNamespace.DAV]),[`${exports.DAVNamespaceShort.DAV}:prop`]:r,filter:o,timezone:a})},defaultNamespace:exports.DAVNamespaceShort.CALDAV,depth:s,headers:n})})),Z=e=>n(void 0,void 0,void 0,(function*(){const{url:t,props:r,objectUrls:o,filters:a,timezone:s,depth:n,headers:d}=e;return S({url:t,body:{"calendar-multiget":Object.assign(Object.assign({_attributes:h([exports.DAVNamespace.DAV,exports.DAVNamespace.CALDAV]),[`${exports.DAVNamespaceShort.DAV}:prop`]:r,[`${exports.DAVNamespaceShort.DAV}:href`]:o},f("filter",a)),{timezone:s})},defaultNamespace:exports.DAVNamespaceShort.CALDAV,depth:n,headers:d})})),q=e=>n(void 0,void 0,void 0,(function*(){const{url:t,props:r,depth:o,headers:a}=e;return D({url:t,init:{method:"MKCALENDAR",headers:v(Object.assign({depth:o},a)),namespace:exports.DAVNamespaceShort.DAV,body:{[`${exports.DAVNamespaceShort.CALDAV}:mkcalendar`]:{_attributes:h([exports.DAVNamespace.DAV,exports.DAVNamespace.CALDAV,exports.DAVNamespace.CALDAV_APPLE]),set:{prop:r}}}}})})),Q=e=>n(void 0,void 0,void 0,(function*(){const{headers:t,account:r,props:o,projectedProps:a}=null!=e?e:{},s=["homeUrl","rootUrl"];if(!r||!x(r,s)){if(!r)throw new Error("no account for fetchCalendars");throw new Error(`account must have ${C(r,s)} before fetchCalendars`)}const d=yield g({url:r.homeUrl,props:null!=o?o:{[`${exports.DAVNamespaceShort.CALDAV}:calendar-description`]:{},[`${exports.DAVNamespaceShort.CALDAV}:calendar-timezone`]:{},[`${exports.DAVNamespaceShort.DAV}:displayname`]:{},[`${exports.DAVNamespaceShort.CALDAV_APPLE}:calendar-color`]:{},[`${exports.DAVNamespaceShort.CALENDAR_SERVER}:getctag`]:{},[`${exports.DAVNamespaceShort.DAV}:resourcetype`]:{},[`${exports.DAVNamespaceShort.CALDAV}:supported-calendar-component-set`]:{},[`${exports.DAVNamespaceShort.DAV}:sync-token`]:{}},depth:"1",headers:t});return Promise.all(d.filter((e=>{var t,r;return Object.keys(null!==(r=null===(t=e.props)||void 0===t?void 0:t.resourcetype)&&void 0!==r?r:{}).includes("calendar")})).filter((e=>{var t,r,o;return(Array.isArray(null===(t=e.props)||void 0===t?void 0:t.supportedCalendarComponentSet.comp)?null===(r=e.props)||void 0===r?void 0:r.supportedCalendarComponentSet.comp.map((e=>e._attributes.name)):[null===(o=e.props)||void 0===o?void 0:o.supportedCalendarComponentSet.comp._attributes.name]||[]).some((e=>Object.values(c).includes(e)))})).map((e=>{var t,o,s,n,d,i,c,l,u,p,h,v,m,A,D;const g=null===(t=e.props)||void 0===t?void 0:t.calendarDescription,y=null===(o=e.props)||void 0===o?void 0:o.calendarTimezone;return Object.assign({description:"string"==typeof g?g:"",timezone:"string"==typeof y?y:"",url:new URL(null!==(s=e.href)&&void 0!==s?s:"",null!==(n=r.rootUrl)&&void 0!==n?n:"").href,ctag:null===(d=e.props)||void 0===d?void 0:d.getctag,calendarColor:null===(i=e.props)||void 0===i?void 0:i.calendarColor,displayName:null!==(l=null===(c=e.props)||void 0===c?void 0:c.displayname._cdata)&&void 0!==l?l:null===(u=e.props)||void 0===u?void 0:u.displayname,components:Array.isArray(null===(p=e.props)||void 0===p?void 0:p.supportedCalendarComponentSet.comp)?null===(h=e.props)||void 0===h?void 0:h.supportedCalendarComponentSet.comp.map((e=>e._attributes.name)):[null===(v=e.props)||void 0===v?void 0:v.supportedCalendarComponentSet.comp._attributes.name],resourcetype:Object.keys(null===(m=e.props)||void 0===m?void 0:m.resourcetype),syncToken:null===(A=e.props)||void 0===A?void 0:A.syncToken},f("projectedProps",Object.fromEntries(Object.entries(null!==(D=e.props)&&void 0!==D?D:{}).filter((([e])=>null==a?void 0:a[e])))))})).map((e=>n(void 0,void 0,void 0,(function*(){return Object.assign(Object.assign({},e),{reports:yield k({collection:e,headers:t})})})))))})),G=e=>n(void 0,void 0,void 0,(function*(){const{calendar:t,objectUrls:r,filters:o,timeRange:a,headers:s,expand:n,urlFilter:d=(e=>Boolean(null==e?void 0:e.includes(".ics"))),useMultiGet:i=!0}=e;if(a){const e=/^\d{4}(-\d\d(-\d\d(T\d\d:\d\d(:\d\d)?(\.\d+)?(([+-]\d\d:\d\d)|Z)?)?)?)?$/i,t=/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(\.\d+)?(([+-]\d\d:\d\d)|Z)?$/i;if(!(e.test(a.start)&&e.test(a.end)||t.test(a.start)&&t.test(a.end)))throw new Error("invalid timeRange format, not in ISO8601")}F(`Fetching calendar objects from ${null==t?void 0:t.url}`);const c=["url"];if(!t||!x(t,c)){if(!t)throw new Error("cannot fetchCalendarObjects for undefined calendar");throw new Error(`calendar must have ${C(t,c)} before fetchCalendarObjects`)}const l=null!=o?o:[{"comp-filter":{_attributes:{name:"VCALENDAR"},"comp-filter":Object.assign({_attributes:{name:"VEVENT"}},a?{"time-range":{_attributes:{start:`${new Date(a.start).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`,end:`${new Date(a.end).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`}}}:{})}}],u=(null!=r?r:(yield z({url:t.url,props:{[`${exports.DAVNamespaceShort.DAV}:getetag`]:Object.assign({},n&&a?{[`${exports.DAVNamespaceShort.CALDAV}:expand`]:{_attributes:{start:`${new Date(a.start).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`,end:`${new Date(a.end).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`}}}:{})},filters:l,depth:"1",headers:s})).map((e=>{var t;return null!==(t=e.href)&&void 0!==t?t:""}))).map((e=>e.startsWith("http")||!e?e:new URL(e,t.url).href)).filter(d).map((e=>new URL(e).pathname));let p=[];return u.length>0&&(p=!i||n?yield z({url:t.url,props:{[`${exports.DAVNamespaceShort.DAV}:getetag`]:{},[`${exports.DAVNamespaceShort.CALDAV}:calendar-data`]:Object.assign({},n&&a?{[`${exports.DAVNamespaceShort.CALDAV}:expand`]:{_attributes:{start:`${new Date(a.start).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`,end:`${new Date(a.end).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`}}}:{})},filters:l,depth:"1",headers:s}):yield Z({url:t.url,props:{[`${exports.DAVNamespaceShort.DAV}:getetag`]:{},[`${exports.DAVNamespaceShort.CALDAV}:calendar-data`]:Object.assign({},n&&a?{[`${exports.DAVNamespaceShort.CALDAV}:expand`]:{_attributes:{start:`${new Date(a.start).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`,end:`${new Date(a.end).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`}}}:{})},objectUrls:u,depth:"1",headers:s})),p.map((e=>{var r,o,a,s,n,d;return{url:new URL(null!==(r=e.href)&&void 0!==r?r:"",t.url).href,etag:`${null===(o=e.props)||void 0===o?void 0:o.getetag}`,data:null!==(n=null===(s=null===(a=e.props)||void 0===a?void 0:a.calendarData)||void 0===s?void 0:s._cdata)&&void 0!==n?n:null===(d=e.props)||void 0===d?void 0:d.calendarData}}))})),J=e=>n(void 0,void 0,void 0,(function*(){const{calendar:t,iCalString:r,filename:o,headers:a}=e;return y({url:new URL(o,t.url).href,data:r,headers:Object.assign({"content-type":"text/calendar; charset=utf-8","If-None-Match":"*"},a)})})),K=e=>n(void 0,void 0,void 0,(function*(){const{calendarObject:t,headers:r}=e;return b({url:t.url,data:t.data,etag:t.etag,headers:Object.assign({"content-type":"text/calendar; charset=utf-8"},r)})})),W=e=>n(void 0,void 0,void 0,(function*(){const{calendarObject:t,headers:r}=e;return V({url:t.url,etag:t.etag,headers:r})})),Y=e=>n(void 0,void 0,void 0,(function*(){var t;const{oldCalendars:r,account:o,detailedResult:a,headers:s}=e;if(!o)throw new Error("Must have account before syncCalendars");const d=null!==(t=null!=r?r:o.calendars)&&void 0!==t?t:[],i=yield Q({account:o,headers:s}),c=i.filter((e=>d.every((t=>!p(t.url,e.url)))));F(`new calendars: ${c.map((e=>e.displayName))}`);const l=d.reduce(((e,t)=>{const r=i.find((e=>p(e.url,t.url)));return r&&(r.syncToken&&r.syncToken!==t.syncToken||r.ctag&&r.ctag!==t.ctag)?[...e,r]:e}),[]);F(`updated calendars: ${l.map((e=>e.displayName))}`);const u=yield Promise.all(l.map((e=>n(void 0,void 0,void 0,(function*(){return yield _({collection:Object.assign(Object.assign({},e),{objectMultiGet:Z}),method:"webdav",headers:s,account:o})}))))),h=d.filter((e=>i.every((t=>!p(t.url,e.url)))));F(`deleted calendars: ${h.map((e=>e.displayName))}`);const v=d.filter((e=>i.some((t=>p(t.url,e.url)&&(t.syncToken&&t.syncToken!==e.syncToken||t.ctag&&t.ctag!==e.ctag)))));return a?{created:c,updated:l,deleted:h}:[...v,...c,...u]})),X=e=>n(void 0,void 0,void 0,(function*(){const{url:t,timeRange:r,depth:o,headers:a}=e;if(!r)throw new Error("timeRange is required");{const e=/^\d{4}(-\d\d(-\d\d(T\d\d:\d\d(:\d\d)?(\.\d+)?(([+-]\d\d:\d\d)|Z)?)?)?)?$/i,t=/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(\.\d+)?(([+-]\d\d:\d\d)|Z)?$/i;if(!(e.test(r.start)&&e.test(r.end)||t.test(r.start)&&t.test(r.end)))throw new Error("invalid timeRange format, not in ISO8601")}return(yield S({url:t,body:{"free-busy-query":v({_attributes:h([exports.DAVNamespace.CALDAV]),[`${exports.DAVNamespaceShort.CALDAV}:time-range`]:{_attributes:{start:`${new Date(r.start).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`,end:`${new Date(r.end).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`}}})},defaultNamespace:exports.DAVNamespaceShort.CALDAV,depth:o,headers:a}))[0]}));var ee=Object.freeze({__proto__:null,calendarMultiGet:Z,calendarQuery:z,createCalendarObject:J,deleteCalendarObject:W,fetchCalendarObjects:G,fetchCalendars:Q,freeBusyQuery:X,makeCalendar:q,syncCalendars:Y,updateCalendarObject:K});const te=r("tsdav:account"),re=e=>n(void 0,void 0,void 0,(function*(){var r,o;te("Service discovery...");const{account:a,headers:s}=e,n=new URL(a.serverUrl),d=new URL(`/.well-known/${a.accountType}`,n);d.protocol=null!==(r=n.protocol)&&void 0!==r?r:"http";try{const e=yield t.fetch(d.href,{headers:s,method:"PROPFIND",redirect:"manual"});if(e.status>=300&&e.status<400){const t=e.headers.get("Location");if("string"==typeof t&&t.length){te(`Service discovery redirected to ${t}`);const e=new URL(t,n);return e.hostname===d.hostname&&d.port&&!e.port&&(e.port=d.port),e.protocol=null!==(o=n.protocol)&&void 0!==o?o:"http",e.href}}}catch(e){te(`Service discovery failed: ${e.stack}`)}return n.href})),oe=e=>n(void 0,void 0,void 0,(function*(){var t,r,o,a,s;const{account:n,headers:d}=e,i=["rootUrl"];if(!x(n,i))throw new Error(`account must have ${C(n,i)} before fetchPrincipalUrl`);te(`Fetching principal url from path ${n.rootUrl}`);const[c]=yield g({url:n.rootUrl,props:{[`${exports.DAVNamespaceShort.DAV}:current-user-principal`]:{}},depth:"0",headers:d});if(!c.ok&&(te(`Fetch principal url failed: ${c.statusText}`),401===c.status))throw new Error("Invalid credentials");return te(`Fetched principal url ${null===(r=null===(t=c.props)||void 0===t?void 0:t.currentUserPrincipal)||void 0===r?void 0:r.href}`),new URL(null!==(s=null===(a=null===(o=c.props)||void 0===o?void 0:o.currentUserPrincipal)||void 0===a?void 0:a.href)&&void 0!==s?s:"",n.rootUrl).href})),ae=e=>n(void 0,void 0,void 0,(function*(){var t,r;const{account:o,headers:a}=e,s=["principalUrl","rootUrl"];if(!x(o,s))throw new Error(`account must have ${C(o,s)} before fetchHomeUrl`);te(`Fetch home url from ${o.principalUrl}`);const n=(yield g({url:o.principalUrl,props:"caldav"===o.accountType?{[`${exports.DAVNamespaceShort.CALDAV}:calendar-home-set`]:{}}:{[`${exports.DAVNamespaceShort.CARDDAV}:addressbook-home-set`]:{}},depth:"0",headers:a})).find((e=>p(o.principalUrl,e.href)));if(!n||!n.ok)throw new Error("cannot find homeUrl");const d=new URL("caldav"===o.accountType?null===(t=null==n?void 0:n.props)||void 0===t?void 0:t.calendarHomeSet.href:null===(r=null==n?void 0:n.props)||void 0===r?void 0:r.addressbookHomeSet.href,o.rootUrl).href;return te(`Fetched home url ${d}`),d})),se=e=>n(void 0,void 0,void 0,(function*(){const{account:t,headers:r,loadCollections:o=!1,loadObjects:a=!1}=e,s=Object.assign({},t);return s.rootUrl=yield re({account:t,headers:r}),s.principalUrl=yield oe({account:s,headers:r}),s.homeUrl=yield ae({account:s,headers:r}),(o||a)&&("caldav"===t.accountType?s.calendars=yield Q({headers:r,account:s}):"carddav"===t.accountType&&(s.addressBooks=yield L({headers:r,account:s}))),a&&("caldav"===t.accountType&&s.calendars?s.calendars=yield Promise.all(s.calendars.map((e=>n(void 0,void 0,void 0,(function*(){return Object.assign(Object.assign({},e),{objects:yield G({calendar:e,headers:r})})}))))):"carddav"===t.accountType&&s.addressBooks&&(s.addressBooks=yield Promise.all(s.addressBooks.map((e=>n(void 0,void 0,void 0,(function*(){return Object.assign(Object.assign({},e),{objects:yield P({addressBook:e,headers:r})})}))))))),s}));var ne=Object.freeze({__proto__:null,createAccount:se,fetchHomeUrl:ae,fetchPrincipalUrl:oe,serviceDiscovery:re});const de=r("tsdav:authHelper"),ie=(e,t)=>(...r)=>e(Object.assign(Object.assign({},t),r[0])),ce=e=>(de(`Basic auth token generated: ${a.encode(`${e.username}:${e.password}`)}`),{authorization:`Basic ${a.encode(`${e.username}:${e.password}`)}`}),le=e=>n(void 0,void 0,void 0,(function*(){const r=["authorizationCode","redirectUrl","clientId","clientSecret","tokenUrl"];if(!x(e,r))throw new Error(`Oauth credentials missing: ${C(e,r)}`);const o=new URLSearchParams({grant_type:"authorization_code",code:e.authorizationCode,redirect_uri:e.redirectUrl,client_id:e.clientId,client_secret:e.clientSecret});de(e.tokenUrl),de(o.toString());const a=yield t.fetch(e.tokenUrl,{method:"POST",body:o.toString(),headers:{"content-length":`${o.toString().length}`,"content-type":"application/x-www-form-urlencoded"}});if(a.ok){return yield a.json()}return de(`Fetch Oauth tokens failed: ${yield a.text()}`),{}})),ue=e=>n(void 0,void 0,void 0,(function*(){const r=["refreshToken","clientId","clientSecret","tokenUrl"];if(!x(e,r))throw new Error(`Oauth credentials missing: ${C(e,r)}`);const o=new URLSearchParams({client_id:e.clientId,client_secret:e.clientSecret,refresh_token:e.refreshToken,grant_type:"refresh_token"}),a=yield t.fetch(e.tokenUrl,{method:"POST",body:o.toString(),headers:{"Content-Type":"application/x-www-form-urlencoded"}});if(a.ok){return yield a.json()}return de(`Refresh access token failed: ${yield a.text()}`),{}})),pe=e=>n(void 0,void 0,void 0,(function*(){var t;de("Fetching oauth headers");let r={};return e.refreshToken?(e.refreshToken&&!e.accessToken||Date.now()>(null!==(t=e.expiration)&&void 0!==t?t:0))&&(r=yield ue(e)):r=yield le(e),de(`Oauth tokens fetched: ${r.access_token}`),{tokens:r,headers:{authorization:`Bearer ${r.access_token}`}}}));var he=Object.freeze({__proto__:null,defaultParam:ie,fetchOauthTokens:le,getBasicAuthHeaders:ce,getOauthHeaders:pe,refreshAccessToken:ue});const ve=e=>n(void 0,void 0,void 0,(function*(){var t;const{serverUrl:r,credentials:o,authMethod:a,defaultAccountType:d,authFunction:i}=e;let c={};switch(a){case"Basic":c=ce(o);break;case"Oauth":c=(yield pe(o)).headers;break;case"Digest":c={Authorization:`Digest ${o.digestString}`};break;case"Custom":c=null!==(t=yield null==i?void 0:i(o))&&void 0!==t?t:{};break;default:throw new Error("Invalid auth method")}const l=d?yield se({account:{serverUrl:r,credentials:o,accountType:d},headers:c}):void 0,u=ie(y,{url:r,headers:c}),p=ie(b,{headers:c,url:r}),h=ie(V,{headers:c,url:r}),v=ie(g,{headers:c}),f=ie(S,{headers:c}),m=ie(N,{headers:c}),A=ie(w,{headers:c}),O=ie(k,{headers:c}),x=ie($,{headers:c}),C=ie(_,{headers:c,account:l}),j=ie(z,{headers:c}),R=ie(Z,{headers:c}),U=ie(q,{headers:c}),M=ie(Q,{headers:c,account:l}),F=ie(G,{headers:c}),X=ie(J,{headers:c}),ee=ie(K,{headers:c}),te=ie(W,{headers:c}),re=ie(Y,{account:l,headers:c}),oe=ie(E,{headers:c}),ae=ie(T,{headers:c});return{davRequest:e=>n(void 0,void 0,void 0,(function*(){const{init:t}=e,r=s(e,["init"]),{headers:o}=t,a=s(t,["headers"]);return D(Object.assign(Object.assign({},r),{init:Object.assign(Object.assign({},a),{headers:Object.assign(Object.assign({},c),o)})}))})),propfind:v,createAccount:e=>n(void 0,void 0,void 0,(function*(){const{account:t,headers:a,loadCollections:s,loadObjects:n}=e;return se({account:Object.assign({serverUrl:r,credentials:o},t),headers:Object.assign(Object.assign({},c),a),loadCollections:s,loadObjects:n})})),createObject:u,updateObject:p,deleteObject:h,calendarQuery:j,addressBookQuery:oe,collectionQuery:f,makeCollection:m,calendarMultiGet:R,makeCalendar:U,syncCollection:A,supportedReportSet:O,isCollectionDirty:x,smartCollectionSync:C,fetchCalendars:M,fetchCalendarObjects:F,createCalendarObject:X,updateCalendarObject:ee,deleteCalendarObject:te,syncCalendars:re,fetchAddressBooks:ie(L,{account:l,headers:c}),addressBookMultiGet:ae,fetchVCards:ie(P,{headers:c}),createVCard:ie(H,{headers:c}),updateVCard:ie(B,{headers:c}),deleteVCard:ie(I,{headers:c})}}));class fe{constructor(e){var t,r;this.serverUrl=e.serverUrl,this.credentials=e.credentials,this.authMethod=null!==(t=e.authMethod)&&void 0!==t?t:"Basic",this.accountType=null!==(r=e.defaultAccountType)&&void 0!==r?r:"caldav"}login(){var e;return n(this,void 0,void 0,(function*(){switch(this.authMethod){case"Basic":this.authHeaders=ce(this.credentials);break;case"Oauth":this.authHeaders=(yield pe(this.credentials)).headers;break;case"Digest":this.authHeaders={Authorization:`Digest ${this.credentials.digestString}`};break;case"Custom":this.authHeaders=yield null===(e=this.authFunction)||void 0===e?void 0:e.call(this,this.credentials);break;default:throw new Error("Invalid auth method")}this.account=this.accountType?yield se({account:{serverUrl:this.serverUrl,credentials:this.credentials,accountType:this.accountType},headers:this.authHeaders}):void 0}))}davRequest(e){return n(this,void 0,void 0,(function*(){const{init:t}=e,r=s(e,["init"]),{headers:o}=t,a=s(t,["headers"]);return D(Object.assign(Object.assign({},r),{init:Object.assign(Object.assign({},a),{headers:Object.assign(Object.assign({},this.authHeaders),o)})}))}))}createObject(...e){return n(this,void 0,void 0,(function*(){return ie(y,{url:this.serverUrl,headers:this.authHeaders})(e[0])}))}updateObject(...e){return n(this,void 0,void 0,(function*(){return ie(b,{headers:this.authHeaders,url:this.serverUrl})(e[0])}))}deleteObject(...e){return n(this,void 0,void 0,(function*(){return ie(V,{headers:this.authHeaders,url:this.serverUrl})(e[0])}))}propfind(...e){return n(this,void 0,void 0,(function*(){return ie(g,{headers:this.authHeaders})(e[0])}))}createAccount(e){return n(this,void 0,void 0,(function*(){const{account:t,headers:r,loadCollections:o,loadObjects:a}=e;return se({account:Object.assign({serverUrl:this.serverUrl,credentials:this.credentials},t),headers:Object.assign(Object.assign({},this.authHeaders),r),loadCollections:o,loadObjects:a})}))}collectionQuery(...e){return n(this,void 0,void 0,(function*(){return ie(S,{headers:this.authHeaders})(e[0])}))}makeCollection(...e){return n(this,void 0,void 0,(function*(){return ie(N,{headers:this.authHeaders})(e[0])}))}syncCollection(...e){return n(this,void 0,void 0,(function*(){return ie(w,{headers:this.authHeaders})(e[0])}))}supportedReportSet(...e){return n(this,void 0,void 0,(function*(){return ie(k,{headers:this.authHeaders})(e[0])}))}isCollectionDirty(...e){return n(this,void 0,void 0,(function*(){return ie($,{headers:this.authHeaders})(e[0])}))}smartCollectionSync(...e){return n(this,void 0,void 0,(function*(){return ie(_,{headers:this.authHeaders,account:this.account})(e[0])}))}calendarQuery(...e){return n(this,void 0,void 0,(function*(){return ie(z,{headers:this.authHeaders})(e[0])}))}makeCalendar(...e){return n(this,void 0,void 0,(function*(){return ie(q,{headers:this.authHeaders})(e[0])}))}calendarMultiGet(...e){return n(this,void 0,void 0,(function*(){return ie(Z,{headers:this.authHeaders})(e[0])}))}fetchCalendars(...e){return n(this,void 0,void 0,(function*(){return ie(Q,{headers:this.authHeaders,account:this.account})(null==e?void 0:e[0])}))}fetchCalendarObjects(...e){return n(this,void 0,void 0,(function*(){return ie(G,{headers:this.authHeaders})(e[0])}))}createCalendarObject(...e){return n(this,void 0,void 0,(function*(){return ie(J,{headers:this.authHeaders})(e[0])}))}updateCalendarObject(...e){return n(this,void 0,void 0,(function*(){return ie(K,{headers:this.authHeaders})(e[0])}))}deleteCalendarObject(...e){return n(this,void 0,void 0,(function*(){return ie(W,{headers:this.authHeaders})(e[0])}))}syncCalendars(...e){return n(this,void 0,void 0,(function*(){return ie(Y,{headers:this.authHeaders,account:this.account})(e[0])}))}addressBookQuery(...e){return n(this,void 0,void 0,(function*(){return ie(E,{headers:this.authHeaders})(e[0])}))}addressBookMultiGet(...e){return n(this,void 0,void 0,(function*(){return ie(T,{headers:this.authHeaders})(e[0])}))}fetchAddressBooks(...e){return n(this,void 0,void 0,(function*(){return ie(L,{headers:this.authHeaders,account:this.account})(null==e?void 0:e[0])}))}fetchVCards(...e){return n(this,void 0,void 0,(function*(){return ie(P,{headers:this.authHeaders})(e[0])}))}createVCard(...e){return n(this,void 0,void 0,(function*(){return ie(H,{headers:this.authHeaders})(e[0])}))}updateVCard(...e){return n(this,void 0,void 0,(function*(){return ie(B,{headers:this.authHeaders})(e[0])}))}deleteVCard(...e){return n(this,void 0,void 0,(function*(){return ie(I,{headers:this.authHeaders})(e[0])}))}}var me=Object.freeze({__proto__:null,DAVClient:fe,createDAVClient:ve}),Ae=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({DAVNamespace:exports.DAVNamespace,DAVNamespaceShort:exports.DAVNamespaceShort,DAVAttributeMap:d},me),O),R),ne),M),ee),he),m);exports.DAVAttributeMap=d,exports.DAVClient=fe,exports.addressBookQuery=E,exports.calendarMultiGet=Z,exports.calendarQuery=z,exports.cleanupFalsy=v,exports.collectionQuery=S,exports.createAccount=se,exports.createCalendarObject=J,exports.createDAVClient=ve,exports.createObject=y,exports.createVCard=H,exports.davRequest=D,exports.default=Ae,exports.deleteCalendarObject=W,exports.deleteObject=V,exports.deleteVCard=I,exports.fetchAddressBooks=L,exports.fetchCalendarObjects=G,exports.fetchCalendars=Q,exports.fetchOauthTokens=le,exports.fetchVCards=P,exports.freeBusyQuery=X,exports.getBasicAuthHeaders=ce,exports.getDAVAttribute=h,exports.getOauthHeaders=pe,exports.isCollectionDirty=$,exports.makeCalendar=q,exports.propfind=g,exports.refreshAccessToken=ue,exports.smartCollectionSync=_,exports.supportedReportSet=k,exports.syncCalendars=Y,exports.syncCollection=w,exports.updateCalendarObject=K,exports.updateObject=b,exports.updateVCard=B,exports.urlContains=p,exports.urlEquals=u; +"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("cross-fetch"),r=require("debug"),o=require("xml-js"),a=require("base-64");function s(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(o=Object.getOwnPropertySymbols(e);a{const t=Number(e);if(!Number.isNaN(t))return t;const r=e.toLowerCase();return"true"===r||"false"!==r&&e},u=(e,t)=>{if(!e&&!t)return!0;if(!e||!t)return!1;const r=e.trim(),o=t.trim();if(Math.abs(r.length-o.length)>1)return!1;const a="/"===r.slice(-1)?r.slice(0,-1):r,s="/"===o.slice(-1)?o.slice(0,-1):o;return e.includes(s)||t.includes(a)},p=(e,t)=>{if(!e&&!t)return!0;if(!e||!t)return!1;const r=e.trim(),o=t.trim(),a="/"===r.slice(-1)?r.slice(0,-1):r,s="/"===o.slice(-1)?o.slice(0,-1):o;return e.includes(s)||t.includes(a)},h=e=>e.reduce(((e,t)=>Object.assign(Object.assign({},e),{[d[t]]:t})),{}),v=e=>Object.entries(e).reduce(((e,[t,r])=>r?Object.assign(Object.assign({},e),{[t]:r}):e),{}),f=(e,t)=>t?{[e]:t}:{};var m=Object.freeze({__proto__:null,cleanupFalsy:v,conditionalParam:f,getDAVAttribute:h,urlContains:p,urlEquals:u});const A=r("tsdav:request"),D=e=>n(void 0,void 0,void 0,(function*(){var r;const{url:a,init:s,convertIncoming:n=!0,parseOutgoing:d=!0}=e,{headers:i={},body:c,namespace:u,method:p,attributes:h}=s,f=n?o.js2xml(Object.assign(Object.assign({_declaration:{_attributes:{version:"1.0",encoding:"utf-8"}}},c),{_attributes:h}),{compact:!0,spaces:2,elementNameFn:e=>u&&!/^.+:.+/.test(e)?`${u}:${e}`:e}):c,m=yield t.fetch(a,{headers:Object.assign({"Content-Type":"text/xml;charset=UTF-8"},v(i)),body:f,method:p}),D=yield m.text();if(!m.ok||!(null===(r=m.headers.get("content-type"))||void 0===r?void 0:r.includes("xml"))||!d)return[{href:m.url,ok:m.ok,status:m.status,statusText:m.statusText,raw:D}];const g=o.xml2js(D,{compact:!0,trim:!0,textFn:(e,t)=>{try{const r=t._parent,o=Object.keys(r),a=o[o.length-1],s=r[a];if(s.length>0){s[s.length-1]=l(e)}else r[a]=l(e)}catch(e){A(e.stack)}},elementNameFn:e=>e.replace(/^.+:/,"").replace(/([-_]\w)/g,(e=>e[1].toUpperCase())),attributesFn:e=>{const t=Object.assign({},e);return delete t.xmlns,t},ignoreDeclaration:!0});return(Array.isArray(g.multistatus.response)?g.multistatus.response:[g.multistatus.response]).map((e=>{var t,r;if(!e)return{status:m.status,statusText:m.statusText,ok:m.ok};const o=/^\S+\s(?\d+)\s(?.+)$/.exec(e.status);return{raw:g,href:e.href,status:(null==o?void 0:o.groups)?Number.parseInt(null==o?void 0:o.groups.status,10):m.status,statusText:null!==(r=null===(t=null==o?void 0:o.groups)||void 0===t?void 0:t.statusText)&&void 0!==r?r:m.statusText,ok:!e.error,error:e.error,responsedescription:e.responsedescription,props:(Array.isArray(e.propstat)?e.propstat:[e.propstat]).reduce(((e,t)=>Object.assign(Object.assign({},e),null==t?void 0:t.prop)),{})}}))})),g=e=>n(void 0,void 0,void 0,(function*(){const{url:t,props:r,depth:o,headers:a}=e;return D({url:t,init:{method:"PROPFIND",headers:v(Object.assign({depth:o},a)),namespace:exports.DAVNamespaceShort.DAV,body:{propfind:{_attributes:h([exports.DAVNamespace.CALDAV,exports.DAVNamespace.CALDAV_APPLE,exports.DAVNamespace.CALENDAR_SERVER,exports.DAVNamespace.CARDDAV,exports.DAVNamespace.DAV]),prop:r}}}})})),y=e=>n(void 0,void 0,void 0,(function*(){const{url:r,data:o,headers:a}=e;return t.fetch(r,{method:"PUT",body:o,headers:a})})),b=e=>n(void 0,void 0,void 0,(function*(){const{url:r,data:o,etag:a,headers:s}=e;return t.fetch(r,{method:"PUT",body:o,headers:v(Object.assign({"If-Match":a},s))})})),V=e=>n(void 0,void 0,void 0,(function*(){const{url:r,headers:o,etag:a}=e;return t.fetch(r,{method:"DELETE",headers:v(Object.assign({"If-Match":a},o))})}));var O=Object.freeze({__proto__:null,createObject:y,davRequest:D,deleteObject:V,propfind:g,updateObject:b});function x(e,t){const r=e=>t.every((t=>e[t]));return Array.isArray(e)?e.every((e=>r(e))):r(e)}const C=(e,t)=>t.reduce(((t,r)=>e[r]?t:`${t.length?`${t},`:""}${r.toString()}`),""),j=r("tsdav:collection"),S=e=>n(void 0,void 0,void 0,(function*(){const{url:t,body:r,depth:o,defaultNamespace:a=exports.DAVNamespaceShort.DAV,headers:s}=e,n=yield D({url:t,init:{method:"REPORT",headers:v(Object.assign({depth:o},s)),namespace:a,body:r}});return 1!==n.length||n[0].raw?n:[]})),N=e=>n(void 0,void 0,void 0,(function*(){const{url:t,props:r,depth:o,headers:a}=e;return D({url:t,init:{method:"MKCOL",headers:v(Object.assign({depth:o},a)),namespace:exports.DAVNamespaceShort.DAV,body:r?{mkcol:{set:{prop:r}}}:void 0}})})),k=e=>n(void 0,void 0,void 0,(function*(){var t,r,o,a,s;const{collection:n,headers:d}=e;return null!==(s=null===(a=null===(o=null===(r=null===(t=(yield g({url:n.url,props:{[`${exports.DAVNamespaceShort.DAV}:supported-report-set`]:{}},depth:"0",headers:d}))[0])||void 0===t?void 0:t.props)||void 0===r?void 0:r.supportedReportSet)||void 0===o?void 0:o.supportedReport)||void 0===a?void 0:a.map((e=>Object.keys(e.report)[0])))&&void 0!==s?s:[]})),$=e=>n(void 0,void 0,void 0,(function*(){var t,r,o;const{collection:a,headers:s}=e,n=(yield g({url:a.url,props:{[`${exports.DAVNamespaceShort.CALENDAR_SERVER}:getctag`]:{}},depth:"0",headers:s})).filter((e=>p(a.url,e.href)))[0];if(!n)throw new Error("Collection does not exist on server");return{isDirty:a.ctag!==(null===(t=n.props)||void 0===t?void 0:t.getctag),newCtag:null===(o=null===(r=n.props)||void 0===r?void 0:r.getctag)||void 0===o?void 0:o.toString()}})),w=e=>{const{url:t,props:r,headers:o,syncLevel:a,syncToken:s}=e;return D({url:t,init:{method:"REPORT",namespace:exports.DAVNamespaceShort.DAV,headers:Object.assign({},o),body:{"sync-collection":{_attributes:h([exports.DAVNamespace.CALDAV,exports.DAVNamespace.CARDDAV,exports.DAVNamespace.DAV]),"sync-level":a,"sync-token":s,[`${exports.DAVNamespaceShort.DAV}:prop`]:r}}}})},_=e=>n(void 0,void 0,void 0,(function*(){var t,r,o,a,s,n,d,i,c,l,u;const{collection:h,method:v,headers:f,account:m,detailedResult:A}=e,D=["accountType","homeUrl"];if(!m||!x(m,D)){if(!m)throw new Error("no account for smartCollectionSync");throw new Error(`account must have ${C(m,D)} before smartCollectionSync`)}const g=null!=v?v:(null===(t=h.reports)||void 0===t?void 0:t.includes("syncCollection"))?"webdav":"basic";if(j(`smart collection sync with type ${m.accountType} and method ${g}`),"webdav"===g){const e=yield w({url:h.url,props:{[`${exports.DAVNamespaceShort.DAV}:getetag`]:{},[`${"caldav"===m.accountType?exports.DAVNamespaceShort.CALDAV:exports.DAVNamespaceShort.CARDDAV}:${"caldav"===m.accountType?"calendar-data":"address-data"}`]:{},[`${exports.DAVNamespaceShort.DAV}:displayname`]:{}},syncLevel:1,syncToken:h.syncToken,headers:f}),t=e.filter((e=>{var t;const r="caldav"===m.accountType?".ics":".vcf";return(null===(t=e.href)||void 0===t?void 0:t.slice(-4))===r})),c=t.filter((e=>404!==e.status)).map((e=>e.href)),l=t.filter((e=>404===e.status)).map((e=>e.href)),u=(c.length&&null!==(o=yield null===(r=null==h?void 0:h.objectMultiGet)||void 0===r?void 0:r.call(h,{url:h.url,props:{[`${exports.DAVNamespaceShort.DAV}:getetag`]:{},[`${"caldav"===m.accountType?exports.DAVNamespaceShort.CALDAV:exports.DAVNamespaceShort.CARDDAV}:${"caldav"===m.accountType?"calendar-data":"address-data"}`]:{}},objectUrls:c,depth:"1",headers:f}))&&void 0!==o?o:[]).map((e=>{var t,r,o,a,s,n,d,i,c,l;return{url:null!==(t=e.href)&&void 0!==t?t:"",etag:null===(r=e.props)||void 0===r?void 0:r.getetag,data:"caldav"===(null==m?void 0:m.accountType)?null!==(s=null===(a=null===(o=e.props)||void 0===o?void 0:o.calendarData)||void 0===a?void 0:a._cdata)&&void 0!==s?s:null===(n=e.props)||void 0===n?void 0:n.calendarData:null!==(c=null===(i=null===(d=e.props)||void 0===d?void 0:d.addressData)||void 0===i?void 0:i._cdata)&&void 0!==c?c:null===(l=e.props)||void 0===l?void 0:l.addressData}})),v=null!==(a=h.objects)&&void 0!==a?a:[],D=u.filter((e=>v.every((t=>!p(t.url,e.url))))),g=v.reduce(((e,t)=>{const r=u.find((e=>p(e.url,t.url)));return r&&r.etag&&r.etag!==t.etag?[...e,r]:e}),[]),y=l.map((e=>({url:e,etag:""}))),b=v.filter((e=>u.some((t=>p(e.url,t.url)&&t.etag===e.etag))));return Object.assign(Object.assign({},h),{objects:A?{created:D,updated:g,deleted:y}:[...b,...D,...g],syncToken:null!==(i=null===(d=null===(n=null===(s=e[0])||void 0===s?void 0:s.raw)||void 0===n?void 0:n.multistatus)||void 0===d?void 0:d.syncToken)&&void 0!==i?i:h.syncToken})}if("basic"===g){const{isDirty:e,newCtag:t}=yield $({collection:h,headers:f}),r=null!==(c=h.objects)&&void 0!==c?c:[],o=null!==(u=yield null===(l=h.fetchObjects)||void 0===l?void 0:l.call(h,{collection:h,headers:f}))&&void 0!==u?u:[],a=o.filter((e=>r.every((t=>!p(t.url,e.url))))),s=r.reduce(((e,t)=>{const r=o.find((e=>p(e.url,t.url)));return r&&r.etag&&r.etag!==t.etag?[...e,r]:e}),[]),n=r.filter((e=>o.every((t=>!p(t.url,e.url))))),d=r.filter((e=>o.some((t=>p(e.url,t.url)&&t.etag===e.etag))));if(e)return Object.assign(Object.assign({},h),{objects:A?{created:a,updated:s,deleted:n}:[...d,...a,...s],ctag:t})}return A?Object.assign(Object.assign({},h),{objects:{created:[],updated:[],deleted:[]}}):h}));var R=Object.freeze({__proto__:null,collectionQuery:S,isCollectionDirty:$,makeCollection:N,smartCollectionSync:_,supportedReportSet:k,syncCollection:w});const E=r("tsdav:addressBook"),U=e=>n(void 0,void 0,void 0,(function*(){const{url:t,props:r,filters:o,depth:a,headers:s}=e;return S({url:t,body:{"addressbook-query":{_attributes:h([exports.DAVNamespace.CARDDAV,exports.DAVNamespace.DAV]),[`${exports.DAVNamespaceShort.DAV}:prop`]:r,filter:null!=o?o:{"prop-filter":{_attributes:{name:"FN"}}}}},defaultNamespace:exports.DAVNamespaceShort.CARDDAV,depth:a,headers:s})})),T=e=>n(void 0,void 0,void 0,(function*(){const{url:t,props:r,objectUrls:o,depth:a,headers:s}=e;return S({url:t,body:{"addressbook-multiget":{_attributes:h([exports.DAVNamespace.DAV,exports.DAVNamespace.CARDDAV]),[`${exports.DAVNamespaceShort.DAV}:prop`]:r,[`${exports.DAVNamespaceShort.DAV}:href`]:o}},defaultNamespace:exports.DAVNamespaceShort.CARDDAV,depth:a,headers:s})})),L=e=>n(void 0,void 0,void 0,(function*(){const{account:t,headers:r,props:o}=null!=e?e:{},a=["homeUrl","rootUrl"];if(!t||!x(t,a)){if(!t)throw new Error("no account for fetchAddressBooks");throw new Error(`account must have ${C(t,a)} before fetchAddressBooks`)}const s=yield g({url:t.homeUrl,props:null!=o?o:{[`${exports.DAVNamespaceShort.DAV}:displayname`]:{},[`${exports.DAVNamespaceShort.CALENDAR_SERVER}:getctag`]:{},[`${exports.DAVNamespaceShort.DAV}:resourcetype`]:{},[`${exports.DAVNamespaceShort.DAV}:sync-token`]:{}},depth:"1",headers:r});return Promise.all(s.filter((e=>{var t,r;return Object.keys(null!==(r=null===(t=e.props)||void 0===t?void 0:t.resourcetype)&&void 0!==r?r:{}).includes("addressbook")})).map((e=>{var r,o,a,s,n,d,i,c,l;const u=null!==(a=null===(o=null===(r=e.props)||void 0===r?void 0:r.displayname)||void 0===o?void 0:o._cdata)&&void 0!==a?a:null===(s=e.props)||void 0===s?void 0:s.displayname;return E(`Found address book named ${"string"==typeof u?u:""},\n props: ${JSON.stringify(e.props)}`),{url:new URL(null!==(n=e.href)&&void 0!==n?n:"",null!==(d=t.rootUrl)&&void 0!==d?d:"").href,ctag:null===(i=e.props)||void 0===i?void 0:i.getctag,displayName:"string"==typeof u?u:"",resourcetype:Object.keys(null===(c=e.props)||void 0===c?void 0:c.resourcetype),syncToken:null===(l=e.props)||void 0===l?void 0:l.syncToken}})).map((e=>n(void 0,void 0,void 0,(function*(){return Object.assign(Object.assign({},e),{reports:yield k({collection:e,headers:r})})})))))})),P=e=>n(void 0,void 0,void 0,(function*(){const{addressBook:t,headers:r,objectUrls:o,urlFilter:a=(e=>e),useMultiGet:s=!0}=e;E(`Fetching vcards from ${null==t?void 0:t.url}`);const n=["url"];if(!t||!x(t,n)){if(!t)throw new Error("cannot fetchVCards for undefined addressBook");throw new Error(`addressBook must have ${C(t,n)} before fetchVCards`)}const d=(null!=o?o:(yield U({url:t.url,props:{[`${exports.DAVNamespaceShort.DAV}:getetag`]:{}},depth:"1",headers:r})).map((e=>{var t;return e.ok&&null!==(t=e.href)&&void 0!==t?t:""}))).map((e=>e.startsWith("http")||!e?e:new URL(e,t.url).href)).filter(a).map((e=>new URL(e).pathname));let i=[];return d.length>0&&(i=s?yield T({url:t.url,props:{[`${exports.DAVNamespaceShort.DAV}:getetag`]:{},[`${exports.DAVNamespaceShort.CARDDAV}:address-data`]:{}},objectUrls:d,depth:"1",headers:r}):yield U({url:t.url,props:{[`${exports.DAVNamespaceShort.DAV}:getetag`]:{},[`${exports.DAVNamespaceShort.CARDDAV}:address-data`]:{}},depth:"1",headers:r})),i.map((e=>{var r,o,a,s,n,d;return{url:new URL(null!==(r=e.href)&&void 0!==r?r:"",t.url).href,etag:null===(o=e.props)||void 0===o?void 0:o.getetag,data:null!==(n=null===(s=null===(a=e.props)||void 0===a?void 0:a.addressData)||void 0===s?void 0:s._cdata)&&void 0!==n?n:null===(d=e.props)||void 0===d?void 0:d.addressData}}))})),H=e=>n(void 0,void 0,void 0,(function*(){const{addressBook:t,vCardString:r,filename:o,headers:a}=e;return y({url:new URL(o,t.url).href,data:r,headers:Object.assign({"content-type":"text/vcard; charset=utf-8","If-None-Match":"*"},a)})})),B=e=>n(void 0,void 0,void 0,(function*(){const{vCard:t,headers:r}=e;return b({url:t.url,data:t.data,etag:t.etag,headers:Object.assign({"content-type":"text/vcard; charset=utf-8"},r)})})),I=e=>n(void 0,void 0,void 0,(function*(){const{vCard:t,headers:r}=e;return V({url:t.url,etag:t.etag,headers:r})}));var M=Object.freeze({__proto__:null,addressBookMultiGet:T,addressBookQuery:U,createVCard:H,deleteVCard:I,fetchAddressBooks:L,fetchVCards:P,updateVCard:B});const F=r("tsdav:calendar"),z=e=>n(void 0,void 0,void 0,(function*(){const{url:t,props:r,filters:o,timezone:a,depth:s,headers:n}=e;return S({url:t,body:{"calendar-query":v({_attributes:h([exports.DAVNamespace.CALDAV,exports.DAVNamespace.CALENDAR_SERVER,exports.DAVNamespace.CALDAV_APPLE,exports.DAVNamespace.DAV]),[`${exports.DAVNamespaceShort.DAV}:prop`]:r,filter:o,timezone:a})},defaultNamespace:exports.DAVNamespaceShort.CALDAV,depth:s,headers:n})})),Z=e=>n(void 0,void 0,void 0,(function*(){const{url:t,props:r,objectUrls:o,filters:a,timezone:s,depth:n,headers:d}=e;return S({url:t,body:{"calendar-multiget":Object.assign(Object.assign({_attributes:h([exports.DAVNamespace.DAV,exports.DAVNamespace.CALDAV]),[`${exports.DAVNamespaceShort.DAV}:prop`]:r,[`${exports.DAVNamespaceShort.DAV}:href`]:o},f("filter",a)),{timezone:s})},defaultNamespace:exports.DAVNamespaceShort.CALDAV,depth:n,headers:d})})),q=e=>n(void 0,void 0,void 0,(function*(){const{url:t,props:r,depth:o,headers:a}=e;return D({url:t,init:{method:"MKCALENDAR",headers:v(Object.assign({depth:o},a)),namespace:exports.DAVNamespaceShort.DAV,body:{[`${exports.DAVNamespaceShort.CALDAV}:mkcalendar`]:{_attributes:h([exports.DAVNamespace.DAV,exports.DAVNamespace.CALDAV,exports.DAVNamespace.CALDAV_APPLE]),set:{prop:r}}}}})})),Q=e=>n(void 0,void 0,void 0,(function*(){const{headers:t,account:r,props:o,projectedProps:a}=null!=e?e:{},s=["homeUrl","rootUrl"];if(!r||!x(r,s)){if(!r)throw new Error("no account for fetchCalendars");throw new Error(`account must have ${C(r,s)} before fetchCalendars`)}const d=yield g({url:r.homeUrl,props:null!=o?o:{[`${exports.DAVNamespaceShort.CALDAV}:calendar-description`]:{},[`${exports.DAVNamespaceShort.CALDAV}:calendar-timezone`]:{},[`${exports.DAVNamespaceShort.DAV}:displayname`]:{},[`${exports.DAVNamespaceShort.CALDAV_APPLE}:calendar-color`]:{},[`${exports.DAVNamespaceShort.CALENDAR_SERVER}:getctag`]:{},[`${exports.DAVNamespaceShort.DAV}:resourcetype`]:{},[`${exports.DAVNamespaceShort.CALDAV}:supported-calendar-component-set`]:{},[`${exports.DAVNamespaceShort.DAV}:sync-token`]:{}},depth:"1",headers:t});return Promise.all(d.filter((e=>{var t,r;return Object.keys(null!==(r=null===(t=e.props)||void 0===t?void 0:t.resourcetype)&&void 0!==r?r:{}).includes("calendar")})).filter((e=>{var t,r,o;return(Array.isArray(null===(t=e.props)||void 0===t?void 0:t.supportedCalendarComponentSet.comp)?null===(r=e.props)||void 0===r?void 0:r.supportedCalendarComponentSet.comp.map((e=>e._attributes.name)):[null===(o=e.props)||void 0===o?void 0:o.supportedCalendarComponentSet.comp._attributes.name]||[]).some((e=>Object.values(c).includes(e)))})).map((e=>{var t,o,s,n,d,i,c,l,u,p,h,v,m,A,D;const g=null===(t=e.props)||void 0===t?void 0:t.calendarDescription,y=null===(o=e.props)||void 0===o?void 0:o.calendarTimezone;return Object.assign({description:"string"==typeof g?g:"",timezone:"string"==typeof y?y:"",url:new URL(null!==(s=e.href)&&void 0!==s?s:"",null!==(n=r.rootUrl)&&void 0!==n?n:"").href,ctag:null===(d=e.props)||void 0===d?void 0:d.getctag,calendarColor:null===(i=e.props)||void 0===i?void 0:i.calendarColor,displayName:null!==(l=null===(c=e.props)||void 0===c?void 0:c.displayname._cdata)&&void 0!==l?l:null===(u=e.props)||void 0===u?void 0:u.displayname,components:Array.isArray(null===(p=e.props)||void 0===p?void 0:p.supportedCalendarComponentSet.comp)?null===(h=e.props)||void 0===h?void 0:h.supportedCalendarComponentSet.comp.map((e=>e._attributes.name)):[null===(v=e.props)||void 0===v?void 0:v.supportedCalendarComponentSet.comp._attributes.name],resourcetype:Object.keys(null===(m=e.props)||void 0===m?void 0:m.resourcetype),syncToken:null===(A=e.props)||void 0===A?void 0:A.syncToken},f("projectedProps",Object.fromEntries(Object.entries(null!==(D=e.props)&&void 0!==D?D:{}).filter((([e])=>null==a?void 0:a[e])))))})).map((e=>n(void 0,void 0,void 0,(function*(){return Object.assign(Object.assign({},e),{reports:yield k({collection:e,headers:t})})})))))})),G=e=>n(void 0,void 0,void 0,(function*(){const{calendar:t,objectUrls:r,filters:o,timeRange:a,headers:s,expand:n,urlFilter:d=(e=>Boolean(null==e?void 0:e.includes(".ics"))),useMultiGet:i=!0}=e;if(a){const e=/^\d{4}(-\d\d(-\d\d(T\d\d:\d\d(:\d\d)?(\.\d+)?(([+-]\d\d:\d\d)|Z)?)?)?)?$/i,t=/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(\.\d+)?(([+-]\d\d:\d\d)|Z)?$/i;if(!(e.test(a.start)&&e.test(a.end)||t.test(a.start)&&t.test(a.end)))throw new Error("invalid timeRange format, not in ISO8601")}F(`Fetching calendar objects from ${null==t?void 0:t.url}`);const c=["url"];if(!t||!x(t,c)){if(!t)throw new Error("cannot fetchCalendarObjects for undefined calendar");throw new Error(`calendar must have ${C(t,c)} before fetchCalendarObjects`)}const l=null!=o?o:[{"comp-filter":{_attributes:{name:"VCALENDAR"},"comp-filter":Object.assign({_attributes:{name:"VEVENT"}},a?{"time-range":{_attributes:{start:`${new Date(a.start).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`,end:`${new Date(a.end).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`}}}:{})}}],u=(null!=r?r:(yield z({url:t.url,props:{[`${exports.DAVNamespaceShort.DAV}:getetag`]:Object.assign({},n&&a?{[`${exports.DAVNamespaceShort.CALDAV}:expand`]:{_attributes:{start:`${new Date(a.start).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`,end:`${new Date(a.end).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`}}}:{})},filters:l,depth:"1",headers:s})).map((e=>{var t;return null!==(t=e.href)&&void 0!==t?t:""}))).map((e=>e.startsWith("http")||!e?e:new URL(e,t.url).href)).filter(d).map((e=>new URL(e).pathname));let p=[];return u.length>0&&(p=!i||n?yield z({url:t.url,props:{[`${exports.DAVNamespaceShort.DAV}:getetag`]:{},[`${exports.DAVNamespaceShort.CALDAV}:calendar-data`]:Object.assign({},n&&a?{[`${exports.DAVNamespaceShort.CALDAV}:expand`]:{_attributes:{start:`${new Date(a.start).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`,end:`${new Date(a.end).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`}}}:{})},filters:l,depth:"1",headers:s}):yield Z({url:t.url,props:{[`${exports.DAVNamespaceShort.DAV}:getetag`]:{},[`${exports.DAVNamespaceShort.CALDAV}:calendar-data`]:Object.assign({},n&&a?{[`${exports.DAVNamespaceShort.CALDAV}:expand`]:{_attributes:{start:`${new Date(a.start).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`,end:`${new Date(a.end).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`}}}:{})},objectUrls:u,depth:"1",headers:s})),p.map((e=>{var r,o,a,s,n,d;return{url:new URL(null!==(r=e.href)&&void 0!==r?r:"",t.url).href,etag:`${null===(o=e.props)||void 0===o?void 0:o.getetag}`,data:null!==(n=null===(s=null===(a=e.props)||void 0===a?void 0:a.calendarData)||void 0===s?void 0:s._cdata)&&void 0!==n?n:null===(d=e.props)||void 0===d?void 0:d.calendarData}}))})),J=e=>n(void 0,void 0,void 0,(function*(){const{calendar:t,iCalString:r,filename:o,headers:a}=e;return y({url:new URL(o,t.url).href,data:r,headers:Object.assign({"content-type":"text/calendar; charset=utf-8","If-None-Match":"*"},a)})})),K=e=>n(void 0,void 0,void 0,(function*(){const{calendarObject:t,headers:r}=e;return b({url:t.url,data:t.data,etag:t.etag,headers:Object.assign({"content-type":"text/calendar; charset=utf-8"},r)})})),W=e=>n(void 0,void 0,void 0,(function*(){const{calendarObject:t,headers:r}=e;return V({url:t.url,etag:t.etag,headers:r})})),Y=e=>n(void 0,void 0,void 0,(function*(){var t;const{oldCalendars:r,account:o,detailedResult:a,headers:s}=e;if(!o)throw new Error("Must have account before syncCalendars");const d=null!==(t=null!=r?r:o.calendars)&&void 0!==t?t:[],i=yield Q({account:o,headers:s}),c=i.filter((e=>d.every((t=>!p(t.url,e.url)))));F(`new calendars: ${c.map((e=>e.displayName))}`);const l=d.reduce(((e,t)=>{const r=i.find((e=>p(e.url,t.url)));return r&&(r.syncToken&&r.syncToken!==t.syncToken||r.ctag&&r.ctag!==t.ctag)?[...e,r]:e}),[]);F(`updated calendars: ${l.map((e=>e.displayName))}`);const u=yield Promise.all(l.map((e=>n(void 0,void 0,void 0,(function*(){return yield _({collection:Object.assign(Object.assign({},e),{objectMultiGet:Z}),method:"webdav",headers:s,account:o})}))))),h=d.filter((e=>i.every((t=>!p(t.url,e.url)))));F(`deleted calendars: ${h.map((e=>e.displayName))}`);const v=d.filter((e=>i.some((t=>p(t.url,e.url)&&(t.syncToken&&t.syncToken!==e.syncToken||t.ctag&&t.ctag!==e.ctag)))));return a?{created:c,updated:l,deleted:h}:[...v,...c,...u]})),X=e=>n(void 0,void 0,void 0,(function*(){const{url:t,timeRange:r,depth:o,headers:a}=e;if(!r)throw new Error("timeRange is required");{const e=/^\d{4}(-\d\d(-\d\d(T\d\d:\d\d(:\d\d)?(\.\d+)?(([+-]\d\d:\d\d)|Z)?)?)?)?$/i,t=/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(\.\d+)?(([+-]\d\d:\d\d)|Z)?$/i;if(!(e.test(r.start)&&e.test(r.end)||t.test(r.start)&&t.test(r.end)))throw new Error("invalid timeRange format, not in ISO8601")}return(yield S({url:t,body:{"free-busy-query":v({_attributes:h([exports.DAVNamespace.CALDAV]),[`${exports.DAVNamespaceShort.CALDAV}:time-range`]:{_attributes:{start:`${new Date(r.start).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`,end:`${new Date(r.end).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`}}})},defaultNamespace:exports.DAVNamespaceShort.CALDAV,depth:o,headers:a}))[0]}));var ee=Object.freeze({__proto__:null,calendarMultiGet:Z,calendarQuery:z,createCalendarObject:J,deleteCalendarObject:W,fetchCalendarObjects:G,fetchCalendars:Q,freeBusyQuery:X,makeCalendar:q,syncCalendars:Y,updateCalendarObject:K});const te=r("tsdav:account"),re=e=>n(void 0,void 0,void 0,(function*(){var r,o;te("Service discovery...");const{account:a,headers:s}=e,n=new URL(a.serverUrl),d=new URL(`/.well-known/${a.accountType}`,n);d.protocol=null!==(r=n.protocol)&&void 0!==r?r:"http";try{const e=yield t.fetch(d.href,{headers:s,method:"PROPFIND",redirect:"manual"});if(e.status>=300&&e.status<400){const t=e.headers.get("Location");if("string"==typeof t&&t.length){te(`Service discovery redirected to ${t}`);const e=new URL(t,n);return e.hostname===d.hostname&&d.port&&!e.port&&(e.port=d.port),e.protocol=null!==(o=n.protocol)&&void 0!==o?o:"http",e.href}}}catch(e){te(`Service discovery failed: ${e.stack}`)}return n.href})),oe=e=>n(void 0,void 0,void 0,(function*(){var t,r,o,a,s;const{account:n,headers:d}=e,i=["rootUrl"];if(!x(n,i))throw new Error(`account must have ${C(n,i)} before fetchPrincipalUrl`);te(`Fetching principal url from path ${n.rootUrl}`);const[c]=yield g({url:n.rootUrl,props:{[`${exports.DAVNamespaceShort.DAV}:current-user-principal`]:{}},depth:"0",headers:d});if(!c.ok&&(te(`Fetch principal url failed: ${c.statusText}`),401===c.status))throw new Error("Invalid credentials");return te(`Fetched principal url ${null===(r=null===(t=c.props)||void 0===t?void 0:t.currentUserPrincipal)||void 0===r?void 0:r.href}`),new URL(null!==(s=null===(a=null===(o=c.props)||void 0===o?void 0:o.currentUserPrincipal)||void 0===a?void 0:a.href)&&void 0!==s?s:"",n.rootUrl).href})),ae=e=>n(void 0,void 0,void 0,(function*(){var t,r;const{account:o,headers:a}=e,s=["principalUrl","rootUrl"];if(!x(o,s))throw new Error(`account must have ${C(o,s)} before fetchHomeUrl`);te(`Fetch home url from ${o.principalUrl}`);const n=(yield g({url:o.principalUrl,props:"caldav"===o.accountType?{[`${exports.DAVNamespaceShort.CALDAV}:calendar-home-set`]:{}}:{[`${exports.DAVNamespaceShort.CARDDAV}:addressbook-home-set`]:{}},depth:"0",headers:a})).find((e=>p(o.principalUrl,e.href)));if(!n||!n.ok)throw new Error("cannot find homeUrl");const d=new URL("caldav"===o.accountType?null===(t=null==n?void 0:n.props)||void 0===t?void 0:t.calendarHomeSet.href:null===(r=null==n?void 0:n.props)||void 0===r?void 0:r.addressbookHomeSet.href,o.rootUrl).href;return te(`Fetched home url ${d}`),d})),se=e=>n(void 0,void 0,void 0,(function*(){const{account:t,headers:r,loadCollections:o=!1,loadObjects:a=!1}=e,s=Object.assign({},t);return s.rootUrl=yield re({account:t,headers:r}),s.principalUrl=yield oe({account:s,headers:r}),s.homeUrl=yield ae({account:s,headers:r}),(o||a)&&("caldav"===t.accountType?s.calendars=yield Q({headers:r,account:s}):"carddav"===t.accountType&&(s.addressBooks=yield L({headers:r,account:s}))),a&&("caldav"===t.accountType&&s.calendars?s.calendars=yield Promise.all(s.calendars.map((e=>n(void 0,void 0,void 0,(function*(){return Object.assign(Object.assign({},e),{objects:yield G({calendar:e,headers:r})})}))))):"carddav"===t.accountType&&s.addressBooks&&(s.addressBooks=yield Promise.all(s.addressBooks.map((e=>n(void 0,void 0,void 0,(function*(){return Object.assign(Object.assign({},e),{objects:yield P({addressBook:e,headers:r})})}))))))),s}));var ne=Object.freeze({__proto__:null,createAccount:se,fetchHomeUrl:ae,fetchPrincipalUrl:oe,serviceDiscovery:re});const de=r("tsdav:authHelper"),ie=(e,t)=>(...r)=>e(Object.assign(Object.assign({},t),r[0])),ce=e=>(de(`Basic auth token generated: ${a.encode(`${e.username}:${e.password}`)}`),{authorization:`Basic ${a.encode(`${e.username}:${e.password}`)}`}),le=e=>n(void 0,void 0,void 0,(function*(){const r=["authorizationCode","redirectUrl","clientId","clientSecret","tokenUrl"];if(!x(e,r))throw new Error(`Oauth credentials missing: ${C(e,r)}`);const o=new URLSearchParams({grant_type:"authorization_code",code:e.authorizationCode,redirect_uri:e.redirectUrl,client_id:e.clientId,client_secret:e.clientSecret});de(e.tokenUrl),de(o.toString());const a=yield t.fetch(e.tokenUrl,{method:"POST",body:o.toString(),headers:{"content-length":`${o.toString().length}`,"content-type":"application/x-www-form-urlencoded"}});if(a.ok){return yield a.json()}return de(`Fetch Oauth tokens failed: ${yield a.text()}`),{}})),ue=e=>n(void 0,void 0,void 0,(function*(){const r=["refreshToken","clientId","clientSecret","tokenUrl"];if(!x(e,r))throw new Error(`Oauth credentials missing: ${C(e,r)}`);const o=new URLSearchParams({client_id:e.clientId,client_secret:e.clientSecret,refresh_token:e.refreshToken,grant_type:"refresh_token"}),a=yield t.fetch(e.tokenUrl,{method:"POST",body:o.toString(),headers:{"Content-Type":"application/x-www-form-urlencoded"}});if(a.ok){return yield a.json()}return de(`Refresh access token failed: ${yield a.text()}`),{}})),pe=e=>n(void 0,void 0,void 0,(function*(){var t;de("Fetching oauth headers");let r={};return e.refreshToken?(e.refreshToken&&!e.accessToken||Date.now()>(null!==(t=e.expiration)&&void 0!==t?t:0))&&(r=yield ue(e)):r=yield le(e),de(`Oauth tokens fetched: ${r.access_token}`),{tokens:r,headers:{authorization:`Bearer ${r.access_token}`}}}));var he=Object.freeze({__proto__:null,defaultParam:ie,fetchOauthTokens:le,getBasicAuthHeaders:ce,getOauthHeaders:pe,refreshAccessToken:ue});const ve=e=>n(void 0,void 0,void 0,(function*(){var t;const{serverUrl:r,credentials:o,authMethod:a,defaultAccountType:d,authFunction:i}=e;let c={};switch(a){case"Basic":c=ce(o);break;case"Oauth":c=(yield pe(o)).headers;break;case"Digest":c={Authorization:`Digest ${o.digestString}`};break;case"Custom":c=null!==(t=yield null==i?void 0:i(o))&&void 0!==t?t:{};break;default:throw new Error("Invalid auth method")}const l=d?yield se({account:{serverUrl:r,credentials:o,accountType:d},headers:c}):void 0,u=ie(y,{url:r,headers:c}),p=ie(b,{headers:c,url:r}),h=ie(V,{headers:c,url:r}),v=ie(g,{headers:c}),f=ie(S,{headers:c}),m=ie(N,{headers:c}),A=ie(w,{headers:c}),O=ie(k,{headers:c}),x=ie($,{headers:c}),C=ie(_,{headers:c,account:l}),j=ie(z,{headers:c}),R=ie(Z,{headers:c}),E=ie(q,{headers:c}),M=ie(Q,{headers:c,account:l}),F=ie(G,{headers:c}),X=ie(J,{headers:c}),ee=ie(K,{headers:c}),te=ie(W,{headers:c}),re=ie(Y,{account:l,headers:c}),oe=ie(U,{headers:c}),ae=ie(T,{headers:c});return{davRequest:e=>n(void 0,void 0,void 0,(function*(){const{init:t}=e,r=s(e,["init"]),{headers:o}=t,a=s(t,["headers"]);return D(Object.assign(Object.assign({},r),{init:Object.assign(Object.assign({},a),{headers:Object.assign(Object.assign({},c),o)})}))})),propfind:v,createAccount:e=>n(void 0,void 0,void 0,(function*(){const{account:t,headers:a,loadCollections:s,loadObjects:n}=e;return se({account:Object.assign({serverUrl:r,credentials:o},t),headers:Object.assign(Object.assign({},c),a),loadCollections:s,loadObjects:n})})),createObject:u,updateObject:p,deleteObject:h,calendarQuery:j,addressBookQuery:oe,collectionQuery:f,makeCollection:m,calendarMultiGet:R,makeCalendar:E,syncCollection:A,supportedReportSet:O,isCollectionDirty:x,smartCollectionSync:C,fetchCalendars:M,fetchCalendarObjects:F,createCalendarObject:X,updateCalendarObject:ee,deleteCalendarObject:te,syncCalendars:re,fetchAddressBooks:ie(L,{account:l,headers:c}),addressBookMultiGet:ae,fetchVCards:ie(P,{headers:c}),createVCard:ie(H,{headers:c}),updateVCard:ie(B,{headers:c}),deleteVCard:ie(I,{headers:c})}}));class fe{constructor(e){var t,r;this.serverUrl=e.serverUrl,this.credentials=e.credentials,this.authMethod=null!==(t=e.authMethod)&&void 0!==t?t:"Basic",this.accountType=null!==(r=e.defaultAccountType)&&void 0!==r?r:"caldav"}login(){var e;return n(this,void 0,void 0,(function*(){switch(this.authMethod){case"Basic":this.authHeaders=ce(this.credentials);break;case"Oauth":this.authHeaders=(yield pe(this.credentials)).headers;break;case"Digest":this.authHeaders={Authorization:`Digest ${this.credentials.digestString}`};break;case"Custom":this.authHeaders=yield null===(e=this.authFunction)||void 0===e?void 0:e.call(this,this.credentials);break;default:throw new Error("Invalid auth method")}this.account=this.accountType?yield se({account:{serverUrl:this.serverUrl,credentials:this.credentials,accountType:this.accountType},headers:this.authHeaders}):void 0}))}davRequest(e){return n(this,void 0,void 0,(function*(){const{init:t}=e,r=s(e,["init"]),{headers:o}=t,a=s(t,["headers"]);return D(Object.assign(Object.assign({},r),{init:Object.assign(Object.assign({},a),{headers:Object.assign(Object.assign({},this.authHeaders),o)})}))}))}createObject(...e){return n(this,void 0,void 0,(function*(){return ie(y,{url:this.serverUrl,headers:this.authHeaders})(e[0])}))}updateObject(...e){return n(this,void 0,void 0,(function*(){return ie(b,{headers:this.authHeaders,url:this.serverUrl})(e[0])}))}deleteObject(...e){return n(this,void 0,void 0,(function*(){return ie(V,{headers:this.authHeaders,url:this.serverUrl})(e[0])}))}propfind(...e){return n(this,void 0,void 0,(function*(){return ie(g,{headers:this.authHeaders})(e[0])}))}createAccount(e){return n(this,void 0,void 0,(function*(){const{account:t,headers:r,loadCollections:o,loadObjects:a}=e;return se({account:Object.assign({serverUrl:this.serverUrl,credentials:this.credentials},t),headers:Object.assign(Object.assign({},this.authHeaders),r),loadCollections:o,loadObjects:a})}))}collectionQuery(...e){return n(this,void 0,void 0,(function*(){return ie(S,{headers:this.authHeaders})(e[0])}))}makeCollection(...e){return n(this,void 0,void 0,(function*(){return ie(N,{headers:this.authHeaders})(e[0])}))}syncCollection(...e){return n(this,void 0,void 0,(function*(){return ie(w,{headers:this.authHeaders})(e[0])}))}supportedReportSet(...e){return n(this,void 0,void 0,(function*(){return ie(k,{headers:this.authHeaders})(e[0])}))}isCollectionDirty(...e){return n(this,void 0,void 0,(function*(){return ie($,{headers:this.authHeaders})(e[0])}))}smartCollectionSync(...e){return n(this,void 0,void 0,(function*(){return ie(_,{headers:this.authHeaders,account:this.account})(e[0])}))}calendarQuery(...e){return n(this,void 0,void 0,(function*(){return ie(z,{headers:this.authHeaders})(e[0])}))}makeCalendar(...e){return n(this,void 0,void 0,(function*(){return ie(q,{headers:this.authHeaders})(e[0])}))}calendarMultiGet(...e){return n(this,void 0,void 0,(function*(){return ie(Z,{headers:this.authHeaders})(e[0])}))}fetchCalendars(...e){return n(this,void 0,void 0,(function*(){return ie(Q,{headers:this.authHeaders,account:this.account})(null==e?void 0:e[0])}))}fetchCalendarObjects(...e){return n(this,void 0,void 0,(function*(){return ie(G,{headers:this.authHeaders})(e[0])}))}createCalendarObject(...e){return n(this,void 0,void 0,(function*(){return ie(J,{headers:this.authHeaders})(e[0])}))}updateCalendarObject(...e){return n(this,void 0,void 0,(function*(){return ie(K,{headers:this.authHeaders})(e[0])}))}deleteCalendarObject(...e){return n(this,void 0,void 0,(function*(){return ie(W,{headers:this.authHeaders})(e[0])}))}syncCalendars(...e){return n(this,void 0,void 0,(function*(){return ie(Y,{headers:this.authHeaders,account:this.account})(e[0])}))}addressBookQuery(...e){return n(this,void 0,void 0,(function*(){return ie(U,{headers:this.authHeaders})(e[0])}))}addressBookMultiGet(...e){return n(this,void 0,void 0,(function*(){return ie(T,{headers:this.authHeaders})(e[0])}))}fetchAddressBooks(...e){return n(this,void 0,void 0,(function*(){return ie(L,{headers:this.authHeaders,account:this.account})(null==e?void 0:e[0])}))}fetchVCards(...e){return n(this,void 0,void 0,(function*(){return ie(P,{headers:this.authHeaders})(e[0])}))}createVCard(...e){return n(this,void 0,void 0,(function*(){return ie(H,{headers:this.authHeaders})(e[0])}))}updateVCard(...e){return n(this,void 0,void 0,(function*(){return ie(B,{headers:this.authHeaders})(e[0])}))}deleteVCard(...e){return n(this,void 0,void 0,(function*(){return ie(I,{headers:this.authHeaders})(e[0])}))}}var me=Object.freeze({__proto__:null,DAVClient:fe,createDAVClient:ve}),Ae=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({DAVNamespace:exports.DAVNamespace,DAVNamespaceShort:exports.DAVNamespaceShort,DAVAttributeMap:d},me),O),R),ne),M),ee),he),m);exports.DAVAttributeMap=d,exports.DAVClient=fe,exports.addressBookQuery=U,exports.calendarMultiGet=Z,exports.calendarQuery=z,exports.cleanupFalsy=v,exports.collectionQuery=S,exports.createAccount=se,exports.createCalendarObject=J,exports.createDAVClient=ve,exports.createObject=y,exports.createVCard=H,exports.davRequest=D,exports.default=Ae,exports.deleteCalendarObject=W,exports.deleteObject=V,exports.deleteVCard=I,exports.fetchAddressBooks=L,exports.fetchCalendarObjects=G,exports.fetchCalendars=Q,exports.fetchOauthTokens=le,exports.fetchVCards=P,exports.freeBusyQuery=X,exports.getBasicAuthHeaders=ce,exports.getDAVAttribute=h,exports.getOauthHeaders=pe,exports.isCollectionDirty=$,exports.makeCalendar=q,exports.propfind=g,exports.refreshAccessToken=ue,exports.smartCollectionSync=_,exports.supportedReportSet=k,exports.syncCalendars=Y,exports.syncCollection=w,exports.updateCalendarObject=K,exports.updateObject=b,exports.updateVCard=B,exports.urlContains=p,exports.urlEquals=u; diff --git a/dist/tsdav.min.js b/dist/tsdav.min.js index 4c4e84c..1b16e75 100644 --- a/dist/tsdav.min.js +++ b/dist/tsdav.min.js @@ -1,2 +1,2 @@ -function e(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols(e);i-1};function c(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()}function l(e){return"string"!=typeof e&&(e=String(e)),e}function d(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return n&&(t[Symbol.iterator]=function(){return t}),t}function h(e){this.map={},e instanceof h?e.forEach((function(e,t){this.append(t,e)}),this):Array.isArray(e)?e.forEach((function(e){this.append(e[0],e[1])}),this):e&&Object.getOwnPropertyNames(e).forEach((function(t){this.append(t,e[t])}),this)}function f(e){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}function p(e){return new Promise((function(t,r){e.onload=function(){t(e.result)},e.onerror=function(){r(e.error)}}))}function g(e){var t=new FileReader,r=p(t);return t.readAsArrayBuffer(e),r}function y(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function v(){return this.bodyUsed=!1,this._initBody=function(e){var t;this._bodyInit=e,e?"string"==typeof e?this._bodyText=e:i&&Blob.prototype.isPrototypeOf(e)?this._bodyBlob=e:o&&FormData.prototype.isPrototypeOf(e)?this._bodyFormData=e:r&&URLSearchParams.prototype.isPrototypeOf(e)?this._bodyText=e.toString():a&&i&&((t=e)&&DataView.prototype.isPrototypeOf(t))?(this._bodyArrayBuffer=y(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):a&&(ArrayBuffer.prototype.isPrototypeOf(e)||u(e))?this._bodyArrayBuffer=y(e):this._bodyText=e=Object.prototype.toString.call(e):this._bodyText="",this.headers.get("content-type")||("string"==typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):r&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},i&&(this.blob=function(){var e=f(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?f(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(g)}),this.text=function(){var e,t,r,n=f(this);if(n)return n;if(this._bodyBlob)return e=this._bodyBlob,t=new FileReader,r=p(t),t.readAsText(e),r;if(this._bodyArrayBuffer)return Promise.resolve(function(e){for(var t=new Uint8Array(e),r=new Array(t.length),n=0;n-1?t:e}(t.method||this.method||"GET"),this.mode=t.mode||this.mode||null,this.signal=t.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&r)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(r)}function w(e){var t=new FormData;return e.trim().split("&").forEach((function(e){if(e){var r=e.split("="),n=r.shift().replace(/\+/g," "),i=r.join("=").replace(/\+/g," ");t.append(decodeURIComponent(n),decodeURIComponent(i))}})),t}function E(e,t){t||(t={}),this.type="default",this.status=void 0===t.status?200:t.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new h(t.headers),this.url=t.url||"",this._initBody(e)}b.prototype.clone=function(){return new b(this,{body:this._bodyInit})},v.call(b.prototype),v.call(E.prototype),E.prototype.clone=function(){return new E(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new h(this.headers),url:this.url})},E.error=function(){var e=new E(null,{status:0,statusText:""});return e.type="error",e};var A=[301,302,303,307,308];E.redirect=function(e,t){if(-1===A.indexOf(t))throw new RangeError("Invalid status code");return new E(null,{status:t,headers:{location:e}})},t.DOMException=e.DOMException;try{new t.DOMException}catch(e){t.DOMException=function(e,t){this.message=e,this.name=t;var r=Error(e);this.stack=r.stack},t.DOMException.prototype=Object.create(Error.prototype),t.DOMException.prototype.constructor=t.DOMException}function T(e,r){return new Promise((function(n,o){var a=new b(e,r);if(a.signal&&a.signal.aborted)return o(new t.DOMException("Aborted","AbortError"));var s=new XMLHttpRequest;function u(){s.abort()}s.onload=function(){var e,t,r={status:s.status,statusText:s.statusText,headers:(e=s.getAllResponseHeaders()||"",t=new h,e.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach((function(e){var r=e.split(":"),n=r.shift().trim();if(n){var i=r.join(":").trim();t.append(n,i)}})),t)};r.url="responseURL"in s?s.responseURL:r.headers.get("X-Request-URL");var i="response"in s?s.response:s.responseText;n(new E(i,r))},s.onerror=function(){o(new TypeError("Network request failed"))},s.ontimeout=function(){o(new TypeError("Network request failed"))},s.onabort=function(){o(new t.DOMException("Aborted","AbortError"))},s.open(a.method,a.url,!0),"include"===a.credentials?s.withCredentials=!0:"omit"===a.credentials&&(s.withCredentials=!1),"responseType"in s&&i&&(s.responseType="blob"),a.headers.forEach((function(e,t){s.setRequestHeader(t,e)})),a.signal&&(a.signal.addEventListener("abort",u),s.onreadystatechange=function(){4===s.readyState&&a.signal.removeEventListener("abort",u)}),s.send(void 0===a._bodyInit?null:a._bodyInit)}))}T.polyfill=!0,e.fetch||(e.fetch=T,e.Headers=h,e.Request=b,e.Response=E),t.Headers=h,t.Request=b,t.Response=E,t.fetch=T,Object.defineProperty(t,"__esModule",{value:!0})}({})}(i),i.fetch.ponyfill=!0,delete i.fetch.polyfill;var o=i;(t=o.fetch).default=o.fetch,t.fetch=o.fetch,t.Headers=o.Headers,t.Request=o.Request,t.Response=o.Response,e.exports=t}(o,o.exports);var a=o.exports,s="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{};function u(){throw new Error("setTimeout has not been defined")}function c(){throw new Error("clearTimeout has not been defined")}var l=u,d=c;function h(e){if(l===setTimeout)return setTimeout(e,0);if((l===u||!l)&&setTimeout)return l=setTimeout,setTimeout(e,0);try{return l(e,0)}catch(t){try{return l.call(null,e,0)}catch(t){return l.call(this,e,0)}}}"function"==typeof s.setTimeout&&(l=setTimeout),"function"==typeof s.clearTimeout&&(d=clearTimeout);var f,p=[],g=!1,y=-1;function v(){g&&f&&(g=!1,f.length?p=f.concat(p):y=-1,p.length&&m())}function m(){if(!g){var e=h(v);g=!0;for(var t=p.length;t;){for(f=p,p=[];++y1)for(var r=1;r=1.5*r;return Math.round(e/r)+" "+n+(i?"s":"")}return N=function(s,u){u=u||{};var c=typeof s;if("string"===c&&s.length>0)return function(a){if((a=String(a)).length>100)return;var s=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(a);if(!s)return;var u=parseFloat(s[1]);switch((s[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return u*o;case"weeks":case"week":case"w":return u*i;case"days":case"day":case"d":return u*n;case"hours":case"hour":case"hrs":case"hr":case"h":return u*r;case"minutes":case"minute":case"mins":case"min":case"m":return u*t;case"seconds":case"second":case"secs":case"sec":case"s":return u*e;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return u;default:return}}(s);if("number"===c&&isFinite(s))return u.long?function(i){var o=Math.abs(i);if(o>=n)return a(i,o,n,"day");if(o>=r)return a(i,o,r,"hour");if(o>=t)return a(i,o,t,"minute");if(o>=e)return a(i,o,e,"second");return i+" ms"}(s):function(i){var o=Math.abs(i);if(o>=n)return Math.round(i/n)+"d";if(o>=r)return Math.round(i/r)+"h";if(o>=t)return Math.round(i/t)+"m";if(o>=e)return Math.round(i/e)+"s";return i+"ms"}(s);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(s))},N}var P=function(e){function t(e){let n,i,o,a=null;function s(...e){if(!s.enabled)return;const r=s,i=Number(new Date),o=i-(n||i);r.diff=o,r.prev=n,r.curr=i,n=i,e[0]=t.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let a=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,((n,i)=>{if("%%"===n)return"%";a++;const o=t.formatters[i];if("function"==typeof o){const t=e[a];n=o.call(r,t),e.splice(a,1),a--}return n})),t.formatArgs.call(r,e);(r.log||t.log).apply(r,e)}return s.namespace=e,s.useColors=t.useColors(),s.color=t.selectColor(e),s.extend=r,s.destroy=t.destroy,Object.defineProperty(s,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==a?a:(i!==t.namespaces&&(i=t.namespaces,o=t.enabled(e)),o),set:e=>{a=e}}),"function"==typeof t.init&&t.init(s),s}function r(e,r){const n=t(this.namespace+(void 0===r?":":r)+e);return n.log=this.log,n}function n(e){return e.toString().substring(2,e.toString().length-2).replace(/\.\*\?$/,"*")}return t.debug=t,t.default=t,t.coerce=function(e){if(e instanceof Error)return e.stack||e.message;return e},t.disable=function(){const e=[...t.names.map(n),...t.skips.map(n).map((e=>"-"+e))].join(",");return t.enable(""),e},t.enable=function(e){let r;t.save(e),t.namespaces=e,t.names=[],t.skips=[];const n=("string"==typeof e?e:"").split(/[\s,]+/),i=n.length;for(r=0;r{t[r]=e[r]})),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let r=0;for(let t=0;t{"%%"!==e&&(n++,"%c"===e&&(i=n))})),t.splice(i,0,r)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(e){}},t.load=function(){let e;try{e=t.storage.getItem("debug")}catch(e){}!e&&void 0!==L&&"env"in L&&(e=L.env.DEBUG);return e},t.useColors=function(){if("undefined"!=typeof window&&window.process&&("renderer"===window.process.type||window.process.__nwjs))return!0;if("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;return"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},t.storage=function(){try{return localStorage}catch(e){}}(),t.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.log=console.debug||console.log||(()=>{}),e.exports=P(t);const{formatters:r}=e.exports;r.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}}(k,k.exports);var U,B=n(k.exports);!function(e){e.CALENDAR_SERVER="http://calendarserver.org/ns/",e.CALDAV_APPLE="http://apple.com/ns/ical/",e.CALDAV="urn:ietf:params:xml:ns:caldav",e.CARDDAV="urn:ietf:params:xml:ns:carddav",e.DAV="DAV:"}(U||(U={}));const M={[U.CALDAV]:"xmlns:c",[U.CARDDAV]:"xmlns:card",[U.CALENDAR_SERVER]:"xmlns:cs",[U.CALDAV_APPLE]:"xmlns:ca",[U.DAV]:"xmlns:d"};var V,K;!function(e){e.CALDAV="c",e.CARDDAV="card",e.CALENDAR_SERVER="cs",e.CALDAV_APPLE="ca",e.DAV="d"}(V||(V={})),function(e){e.VEVENT="VEVENT",e.VTODO="VTODO",e.VJOURNAL="VJOURNAL",e.VFREEBUSY="VFREEBUSY",e.VTIMEZONE="VTIMEZONE",e.VALARM="VALARM"}(K||(K={}));var $=[],H=[],Y="undefined"!=typeof Uint8Array?Uint8Array:Array,z=!1;function q(){z=!0;for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=0,r=e.length;t>18&63]+$[i>>12&63]+$[i>>6&63]+$[63&i]);return o.join("")}function W(e){var t;z||q();for(var r=e.length,n=r%3,i="",o=[],a=16383,s=0,u=r-n;su?u:s+a));return 1===n?(t=e[r-1],i+=$[t>>2],i+=$[t<<4&63],i+="=="):2===n&&(t=(e[r-2]<<8)+e[r-1],i+=$[t>>10],i+=$[t>>4&63],i+=$[t<<2&63],i+="="),o.push(i),o.join("")}function Q(e,t,r,n,i){var o,a,s=8*i-n-1,u=(1<>1,l=-7,d=r?i-1:0,h=r?-1:1,f=e[t+d];for(d+=h,o=f&(1<<-l)-1,f>>=-l,l+=s;l>0;o=256*o+e[t+d],d+=h,l-=8);for(a=o&(1<<-l)-1,o>>=-l,l+=n;l>0;a=256*a+e[t+d],d+=h,l-=8);if(0===o)o=1-c;else{if(o===u)return a?NaN:1/0*(f?-1:1);a+=Math.pow(2,n),o-=c}return(f?-1:1)*a*Math.pow(2,o-n)}function X(e,t,r,n,i,o){var a,s,u,c=8*o-i-1,l=(1<>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=n?0:o-1,p=n?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-a))<1&&(a--,u*=2),(t+=a+d>=1?h/u:h*Math.pow(2,1-d))*u>=2&&(a++,u/=2),a+d>=l?(s=0,a=l):a+d>=1?(s=(t*u-1)*Math.pow(2,i),a+=d):(s=t*Math.pow(2,d-1)*Math.pow(2,i),a=0));i>=8;e[r+f]=255&s,f+=p,s/=256,i-=8);for(a=a<0;e[r+f]=255&a,f+=p,a/=256,c-=8);e[r+f-p]|=128*g}var Z={}.toString,J=Array.isArray||function(e){return"[object Array]"==Z.call(e)};function ee(){return re.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function te(e,t){if(ee()=ee())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+ee().toString(16)+" bytes");return 0|e}function ue(e){return!(null==e||!e._isBuffer)}function ce(e,t){if(ue(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return ke(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return Ie(e).length;default:if(n)return ke(e).length;t=(""+t).toLowerCase(),n=!0}}function le(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return _e(this,t,r);case"utf8":case"utf-8":return Ee(this,t,r);case"ascii":return Ae(this,t,r);case"latin1":case"binary":return Te(this,t,r);case"base64":return we(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Ce(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function de(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function he(e,t,r,n,i){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof t&&(t=re.from(t,n)),ue(t))return 0===t.length?-1:fe(e,t,r,n,i);if("number"==typeof t)return t&=255,re.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):fe(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function fe(e,t,r,n,i){var o,a=1,s=e.length,u=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;a=2,s/=2,u/=2,r/=2}function c(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(i){var l=-1;for(o=r;os&&(r=s-u),o=r;o>=0;o--){for(var d=!0,h=0;hi&&(n=i):n=i;var o=t.length;if(o%2!=0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var a=0;a>8,i=r%256,o.push(i),o.push(n);return o}(t,e.length-r),e,r,n)}function we(e,t,r){return 0===t&&r===e.length?W(e):W(e.slice(t,r))}function Ee(e,t,r){r=Math.min(e.length,r);for(var n=[],i=t;i239?4:c>223?3:c>191?2:1;if(i+d<=r)switch(d){case 1:c<128&&(l=c);break;case 2:128==(192&(o=e[i+1]))&&(u=(31&c)<<6|63&o)>127&&(l=u);break;case 3:o=e[i+1],a=e[i+2],128==(192&o)&&128==(192&a)&&(u=(15&c)<<12|(63&o)<<6|63&a)>2047&&(u<55296||u>57343)&&(l=u);break;case 4:o=e[i+1],a=e[i+2],s=e[i+3],128==(192&o)&&128==(192&a)&&128==(192&s)&&(u=(15&c)<<18|(63&o)<<12|(63&a)<<6|63&s)>65535&&u<1114112&&(l=u)}null===l?(l=65533,d=1):l>65535&&(l-=65536,n.push(l>>>10&1023|55296),l=56320|1023&l),n.push(l),i+=d}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var r="",n=0;for(;n0&&(e=this.toString("hex",0,50).match(/.{2}/g).join(" "),this.length>50&&(e+=" ... ")),""},re.prototype.compare=function(e,t,r,n,i){if(!ue(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(this===e)return 0;for(var o=(i>>>=0)-(n>>>=0),a=(r>>>=0)-(t>>>=0),s=Math.min(o,a),u=this.slice(n,i),c=e.slice(t,r),l=0;li)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return pe(this,e,t,r);case"utf8":case"utf-8":return ge(this,e,t,r);case"ascii":return ye(this,e,t,r);case"latin1":case"binary":return ve(this,e,t,r);case"base64":return me(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return be(this,e,t,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},re.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Ae(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;in)&&(r=n);for(var i="",o=t;or)throw new RangeError("Trying to access beyond buffer length")}function De(e,t,r,n,i,o){if(!ue(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function xe(e,t,r,n){t<0&&(t=65535+t+1);for(var i=0,o=Math.min(e.length-r,2);i>>8*(n?i:1-i)}function Re(e,t,r,n){t<0&&(t=4294967295+t+1);for(var i=0,o=Math.min(e.length-r,4);i>>8*(n?i:3-i)&255}function Fe(e,t,r,n,i,o){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function Se(e,t,r,n,i){return i||Fe(e,0,r,4),X(e,t,r,n,23,4),r+4}function Ne(e,t,r,n,i){return i||Fe(e,0,r,8),X(e,t,r,n,52,8),r+8}re.prototype.slice=function(e,t){var r,n=this.length;if((e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t0&&(i*=256);)n+=this[e+--t]*i;return n},re.prototype.readUInt8=function(e,t){return t||Oe(e,1,this.length),this[e]},re.prototype.readUInt16LE=function(e,t){return t||Oe(e,2,this.length),this[e]|this[e+1]<<8},re.prototype.readUInt16BE=function(e,t){return t||Oe(e,2,this.length),this[e]<<8|this[e+1]},re.prototype.readUInt32LE=function(e,t){return t||Oe(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},re.prototype.readUInt32BE=function(e,t){return t||Oe(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},re.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||Oe(e,t,this.length);for(var n=this[e],i=1,o=0;++o=(i*=128)&&(n-=Math.pow(2,8*t)),n},re.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||Oe(e,t,this.length);for(var n=t,i=1,o=this[e+--n];n>0&&(i*=256);)o+=this[e+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*t)),o},re.prototype.readInt8=function(e,t){return t||Oe(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},re.prototype.readInt16LE=function(e,t){t||Oe(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},re.prototype.readInt16BE=function(e,t){t||Oe(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},re.prototype.readInt32LE=function(e,t){return t||Oe(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},re.prototype.readInt32BE=function(e,t){return t||Oe(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},re.prototype.readFloatLE=function(e,t){return t||Oe(e,4,this.length),Q(this,e,!0,23,4)},re.prototype.readFloatBE=function(e,t){return t||Oe(e,4,this.length),Q(this,e,!1,23,4)},re.prototype.readDoubleLE=function(e,t){return t||Oe(e,8,this.length),Q(this,e,!0,52,8)},re.prototype.readDoubleBE=function(e,t){return t||Oe(e,8,this.length),Q(this,e,!1,52,8)},re.prototype.writeUIntLE=function(e,t,r,n){(e=+e,t|=0,r|=0,n)||De(this,e,t,r,Math.pow(2,8*r)-1,0);var i=1,o=0;for(this[t]=255&e;++o=0&&(o*=256);)this[t+i]=e/o&255;return t+r},re.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||De(this,e,t,1,255,0),re.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},re.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||De(this,e,t,2,65535,0),re.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):xe(this,e,t,!0),t+2},re.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||De(this,e,t,2,65535,0),re.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):xe(this,e,t,!1),t+2},re.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||De(this,e,t,4,4294967295,0),re.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):Re(this,e,t,!0),t+4},re.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||De(this,e,t,4,4294967295,0),re.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):Re(this,e,t,!1),t+4},re.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);De(this,e,t,r,i-1,-i)}var o=0,a=1,s=0;for(this[t]=255&e;++o>0)-s&255;return t+r},re.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);De(this,e,t,r,i-1,-i)}var o=r-1,a=1,s=0;for(this[t+o]=255&e;--o>=0&&(a*=256);)e<0&&0===s&&0!==this[t+o+1]&&(s=1),this[t+o]=(e/a>>0)-s&255;return t+r},re.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||De(this,e,t,1,127,-128),re.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},re.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||De(this,e,t,2,32767,-32768),re.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):xe(this,e,t,!0),t+2},re.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||De(this,e,t,2,32767,-32768),re.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):xe(this,e,t,!1),t+2},re.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||De(this,e,t,4,2147483647,-2147483648),re.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):Re(this,e,t,!0),t+4},re.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||De(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),re.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):Re(this,e,t,!1),t+4},re.prototype.writeFloatLE=function(e,t,r){return Se(this,e,t,!0,r)},re.prototype.writeFloatBE=function(e,t,r){return Se(this,e,t,!1,r)},re.prototype.writeDoubleLE=function(e,t,r){return Ne(this,e,t,!0,r)},re.prototype.writeDoubleBE=function(e,t,r){return Ne(this,e,t,!1,r)},re.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t=0;--i)e[i+t]=this[i+r];else if(o<1e3||!re.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(o=t;o55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(a+1===n){(t-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function Ie(e){return function(e){var t,r,n,i,o,a;z||q();var s=e.length;if(s%4>0)throw new Error("Invalid string. Length must be a multiple of 4");o="="===e[s-2]?2:"="===e[s-1]?1:0,a=new Y(3*s/4-o),n=o>0?s-4:s;var u=0;for(t=0,r=0;t>16&255,a[u++]=i>>8&255,a[u++]=255&i;return 2===o?(i=H[e.charCodeAt(t)]<<2|H[e.charCodeAt(t+1)]>>4,a[u++]=255&i):1===o&&(i=H[e.charCodeAt(t)]<<10|H[e.charCodeAt(t+1)]<<4|H[e.charCodeAt(t+2)]>>2,a[u++]=i>>8&255,a[u++]=255&i),a}(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(je,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function Pe(e,t,r,n){for(var i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function Ue(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}var Be={};function Me(){}function Ve(){Ve.init.call(this)}function Ke(e){return void 0===e._maxListeners?Ve.defaultMaxListeners:e._maxListeners}function $e(e,t,r){if(t)e.call(r);else for(var n=e.length,i=Xe(e,n),o=0;o0&&a.length>i){a.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+t+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=e,u.type=t,u.count=a.length,s=u,"function"==typeof console.warn?console.warn(s):console.log(s)}}else a=o[t]=r,++e._eventsCount;return e}function We(e,t,r){var n=!1;function i(){e.removeListener(t,i),n||(n=!0,r.apply(e,arguments))}return i.listener=r,i}function Qe(e){var t=this._events;if(t){var r=t[e];if("function"==typeof r)return 1;if(r)return r.length}return 0}function Xe(e,t){for(var r=new Array(t);t--;)r[t]=e[t];return r}Me.prototype=Object.create(null),Ve.EventEmitter=Ve,Ve.usingDomains=!1,Ve.prototype.domain=void 0,Ve.prototype._events=void 0,Ve.prototype._maxListeners=void 0,Ve.defaultMaxListeners=10,Ve.init=function(){this.domain=null,Ve.usingDomains&&undefined.active,this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new Me,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},Ve.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw new TypeError('"n" argument must be a positive number');return this._maxListeners=e,this},Ve.prototype.getMaxListeners=function(){return Ke(this)},Ve.prototype.emit=function(e){var t,r,n,i,o,a,s,u="error"===e;if(a=this._events)u=u&&null==a.error;else if(!u)return!1;if(s=this.domain,u){if(t=arguments[1],!s){if(t instanceof Error)throw t;var c=new Error('Uncaught, unspecified "error" event. ('+t+")");throw c.context=t,c}return t||(t=new Error('Uncaught, unspecified "error" event')),t.domainEmitter=this,t.domain=s,t.domainThrown=!1,s.emit("error",t),!1}if(!(r=a[e]))return!1;var l="function"==typeof r;switch(n=arguments.length){case 1:$e(r,l,this);break;case 2:He(r,l,this,arguments[1]);break;case 3:Ye(r,l,this,arguments[1],arguments[2]);break;case 4:ze(r,l,this,arguments[1],arguments[2],arguments[3]);break;default:for(i=new Array(n-1),o=1;o0;)if(r[o]===t||r[o].listener&&r[o].listener===t){a=r[o].listener,i=o;break}if(i<0)return this;if(1===r.length){if(r[0]=void 0,0==--this._eventsCount)return this._events=new Me,this;delete n[e]}else!function(e,t){for(var r=t,n=r+1,i=e.length;n0?Reflect.ownKeys(this._events):[]};var Ze="function"==typeof Object.create?function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:function(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e},Je=/%[sdj%]/g;function et(e){if(!ht(e)){for(var t=[],r=0;r=i)return e;switch(e){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(e){return"[Circular]"}default:return e}})),a=n[r];r=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),lt(t)?r.showHidden=t:t&&wt(r,t),ft(r.showHidden)&&(r.showHidden=!1),ft(r.depth)&&(r.depth=2),ft(r.colors)&&(r.colors=!1),ft(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=ot),st(r,e,r.depth)}function ot(e,t){var r=it.styles[t];return r?"["+it.colors[r][0]+"m"+e+"["+it.colors[r][1]+"m":e}function at(e,t){return e}function st(e,t,r){if(e.customInspect&&t&&mt(t.inspect)&&t.inspect!==it&&(!t.constructor||t.constructor.prototype!==t)){var n=t.inspect(r,e);return ht(n)||(n=st(e,n,r)),n}var i=function(e,t){if(ft(t))return e.stylize("undefined","undefined");if(ht(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}if(n=t,"number"==typeof n)return e.stylize(""+t,"number");var n;if(lt(t))return e.stylize(""+t,"boolean");if(dt(t))return e.stylize("null","null")}(e,t);if(i)return i;var o=Object.keys(t),a=function(e){var t={};return e.forEach((function(e,r){t[e]=!0})),t}(o);if(e.showHidden&&(o=Object.getOwnPropertyNames(t)),vt(t)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return ut(t);if(0===o.length){if(mt(t)){var s=t.name?": "+t.name:"";return e.stylize("[Function"+s+"]","special")}if(pt(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(yt(t))return e.stylize(Date.prototype.toString.call(t),"date");if(vt(t))return ut(t)}var u,c,l="",d=!1,h=["{","}"];(u=t,Array.isArray(u)&&(d=!0,h=["[","]"]),mt(t))&&(l=" [Function"+(t.name?": "+t.name:"")+"]");return pt(t)&&(l=" "+RegExp.prototype.toString.call(t)),yt(t)&&(l=" "+Date.prototype.toUTCString.call(t)),vt(t)&&(l=" "+ut(t)),0!==o.length||d&&0!=t.length?r<0?pt(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special"):(e.seen.push(t),c=d?function(e,t,r,n,i){for(var o=[],a=0,s=t.length;a60)return r[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+r[1];return r[0]+t+" "+e.join(", ")+" "+r[1]}(c,l,h)):h[0]+l+h[1]}function ut(e){return"["+Error.prototype.toString.call(e)+"]"}function ct(e,t,r,n,i,o){var a,s,u;if((u=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]}).get?s=u.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):u.set&&(s=e.stylize("[Setter]","special")),Et(n,i)||(a="["+i+"]"),s||(e.seen.indexOf(u.value)<0?(s=dt(r)?st(e,u.value,null):st(e,u.value,r-1)).indexOf("\n")>-1&&(s=o?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),ft(a)){if(o&&i.match(/^\d+$/))return s;(a=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function lt(e){return"boolean"==typeof e}function dt(e){return null===e}function ht(e){return"string"==typeof e}function ft(e){return void 0===e}function pt(e){return gt(e)&&"[object RegExp]"===bt(e)}function gt(e){return"object"==typeof e&&null!==e}function yt(e){return gt(e)&&"[object Date]"===bt(e)}function vt(e){return gt(e)&&("[object Error]"===bt(e)||e instanceof Error)}function mt(e){return"function"==typeof e}function bt(e){return Object.prototype.toString.call(e)}function wt(e,t){if(!t||!gt(t))return e;for(var r=Object.keys(t),n=r.length;n--;)e[r[n]]=t[r[n]];return e}function Et(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function At(){this.head=null,this.tail=null,this.length=0}it.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},it.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},At.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},At.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},At.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},At.prototype.clear=function(){this.head=this.tail=null,this.length=0},At.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r},At.prototype.concat=function(e){if(0===this.length)return re.alloc(0);if(1===this.length)return this.head.data;for(var t=re.allocUnsafe(e>>>0),r=this.head,n=0;r;)r.data.copy(t,n),n+=r.data.length,r=r.next;return t};var Tt=re.isEncoding||function(e){switch(e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function _t(e){switch(this.encoding=(e||"utf8").toLowerCase().replace(/[-_]/,""),function(e){if(e&&!Tt(e))throw new Error("Unknown encoding: "+e)}(e),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=Ot;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=Dt;break;default:return void(this.write=Ct)}this.charBuffer=new re(6),this.charReceived=0,this.charLength=0}function Ct(e){return e.toString(this.encoding)}function Ot(e){this.charReceived=e.length%2,this.charLength=this.charReceived?2:0}function Dt(e){this.charReceived=e.length%3,this.charLength=this.charReceived?3:0}_t.prototype.write=function(e){for(var t="";this.charLength;){var r=e.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:e.length;if(e.copy(this.charBuffer,this.charReceived,0,r),this.charReceived+=r,this.charReceived=55296&&i<=56319)){if(this.charReceived=this.charLength=0,0===e.length)return t;break}this.charLength+=this.surrogateSize,t=""}this.detectIncompleteChar(e);var n=e.length;this.charLength&&(e.copy(this.charBuffer,0,e.length-this.charReceived,n),n-=this.charReceived);var i;n=(t+=e.toString(this.encoding,0,n)).length-1;if((i=t.charCodeAt(n))>=55296&&i<=56319){var o=this.surrogateSize;return this.charLength+=o,this.charReceived+=o,this.charBuffer.copy(this.charBuffer,o,0,o),e.copy(this.charBuffer,0,0,o),t.substring(0,n)}return t},_t.prototype.detectIncompleteChar=function(e){for(var t=e.length>=3?3:e.length;t>0;t--){var r=e[e.length-t];if(1==t&&r>>5==6){this.charLength=2;break}if(t<=2&&r>>4==14){this.charLength=3;break}if(t<=3&&r>>3==30){this.charLength=4;break}}this.charReceived=t},_t.prototype.end=function(e){var t="";if(e&&e.length&&(t=this.write(e)),this.charReceived){var r=this.charReceived,n=this.charBuffer,i=this.encoding;t+=n.slice(0,r).toString(i)}return t};var xt=Object.freeze({__proto__:null,StringDecoder:_t});St.ReadableState=Ft;var Rt=function(e){if(ft(rt)&&(rt=L.env.NODE_DEBUG||""),e=e.toUpperCase(),!nt[e])if(new RegExp("\\b"+e+"\\b","i").test(rt)){nt[e]=function(){var t=et.apply(null,arguments);console.error("%s %d: %s",e,0,t)}}else nt[e]=function(){};return nt[e]}("stream");function Ft(e,t){e=e||{},this.objectMode=!!e.objectMode,t instanceof ir&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var r=e.highWaterMark,n=this.objectMode?16:16384;this.highWaterMark=r||0===r?r:n,this.highWaterMark=~~this.highWaterMark,this.buffer=new At,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(this.decoder=new _t(e.encoding),this.encoding=e.encoding)}function St(e){if(!(this instanceof St))return new St(e);this._readableState=new Ft(e,this),this.readable=!0,e&&"function"==typeof e.read&&(this._read=e.read),Ve.call(this)}function Nt(e,t,r,n,i){var o=function(e,t){var r=null;re.isBuffer(t)||"string"==typeof t||null==t||e.objectMode||(r=new TypeError("Invalid non-string/buffer chunk"));return r}(t,r);if(o)e.emit("error",o);else if(null===r)t.reading=!1,function(e,t){if(t.ended)return;if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,Lt(e)}(e,t);else if(t.objectMode||r&&r.length>0)if(t.ended&&!i){var a=new Error("stream.push() after EOF");e.emit("error",a)}else if(t.endEmitted&&i){var s=new Error("stream.unshift() after end event");e.emit("error",s)}else{var u;!t.decoder||i||n||(r=t.decoder.write(r),u=!t.objectMode&&0===r.length),i||(t.reading=!1),u||(t.flowing&&0===t.length&&!t.sync?(e.emit("data",r),e.read(0)):(t.length+=t.objectMode?1:r.length,i?t.buffer.unshift(r):t.buffer.push(r),t.needReadable&&Lt(e))),function(e,t){t.readingMore||(t.readingMore=!0,b(It,e,t))}(e,t)}else i||(t.reading=!1);return function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function Lt(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(Rt("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?b(kt,e):kt(e))}function kt(e){Rt("emit readable"),e.emit("readable"),Bt(e)}function It(e,t){for(var r=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):r=function(e,t,r){var n;eo.length?o.length:e;if(a===o.length?i+=o:i+=o.slice(0,e),0===(e-=a)){a===o.length?(++n,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=o.slice(a));break}++n}return t.length-=n,i}(e,t):function(e,t){var r=re.allocUnsafe(e),n=t.head,i=1;n.data.copy(r),e-=n.data.length;for(;n=n.next;){var o=n.data,a=e>o.length?o.length:e;if(o.copy(r,r.length-e,0,a),0===(e-=a)){a===o.length?(++i,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=o.slice(a));break}++i}return t.length-=i,r}(e,t);return n}(e,t.buffer,t.decoder),r);var r}function Vt(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,b(Kt,t,e))}function Kt(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function $t(e,t){for(var r=0,n=e.length;r=t.highWaterMark||t.ended))return Rt("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?Vt(this):Lt(this),null;if(0===(e=jt(e,t))&&t.ended)return 0===t.length&&Vt(this),null;var n,i=t.needReadable;return Rt("need readable",i),(0===t.length||t.length-e0?Mt(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&Vt(this)),null!==n&&this.emit("data",n),n},St.prototype._read=function(e){this.emit("error",new Error("not implemented"))},St.prototype.pipe=function(e,t){var r=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=e;break;case 1:n.pipes=[n.pipes,e];break;default:n.pipes.push(e)}n.pipesCount+=1,Rt("pipe count=%d opts=%j",n.pipesCount,t);var i=!t||!1!==t.end?a:c;function o(e){Rt("onunpipe"),e===r&&c()}function a(){Rt("onend"),e.end()}n.endEmitted?b(i):r.once("end",i),e.on("unpipe",o);var s=function(e){return function(){var t=e._readableState;Rt("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&e.listeners("data").length&&(t.flowing=!0,Bt(e))}}(r);e.on("drain",s);var u=!1;function c(){Rt("cleanup"),e.removeListener("close",f),e.removeListener("finish",p),e.removeListener("drain",s),e.removeListener("error",h),e.removeListener("unpipe",o),r.removeListener("end",a),r.removeListener("end",c),r.removeListener("data",d),u=!0,!n.awaitDrain||e._writableState&&!e._writableState.needDrain||s()}var l=!1;function d(t){Rt("ondata"),l=!1,!1!==e.write(t)||l||((1===n.pipesCount&&n.pipes===e||n.pipesCount>1&&-1!==$t(n.pipes,e))&&!u&&(Rt("false write response, pause",r._readableState.awaitDrain),r._readableState.awaitDrain++,l=!0),r.pause())}function h(t){var r;Rt("onerror",t),g(),e.removeListener("error",h),0===(r="error",e.listeners(r).length)&&e.emit("error",t)}function f(){e.removeListener("finish",p),g()}function p(){Rt("onfinish"),e.removeListener("close",f),g()}function g(){Rt("unpipe"),r.unpipe(e)}return r.on("data",d),function(e,t,r){if("function"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}(e,"error",h),e.once("close",f),e.once("finish",p),e.emit("pipe",r),n.flowing||(Rt("pipe resume"),r.resume()),e},St.prototype.unpipe=function(e){var t=this._readableState;if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this)),this;if(!e){var r=t.pipes,n=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},qt.prototype._write=function(e,t,r){r(new Error("not implemented"))},qt.prototype._writev=null,qt.prototype.end=function(e,t,r){var n=this._writableState;"function"==typeof e?(r=e,e=null,t=null):"function"==typeof t&&(r=t,t=null),null!=e&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||n.finished||function(e,t,r){t.ending=!0,Jt(e,t),r&&(t.finished?b(r):e.once("finish",r));t.ended=!0,e.writable=!1}(this,n,r)},Ze(ir,St);for(var tr=Object.keys(qt.prototype),rr=0;rr"===o?(_(n,"onsgmldeclaration",n.sgmlDecl),n.sgmlDecl="",n.state=E.TEXT):p(o)?(n.state=E.SGML_DECL_QUOTED,n.sgmlDecl+=o):n.sgmlDecl+=o;continue;case E.SGML_DECL_QUOTED:o===n.q&&(n.state=E.SGML_DECL,n.q=""),n.sgmlDecl+=o;continue;case E.DOCTYPE:">"===o?(n.state=E.TEXT,_(n,"ondoctype",n.doctype),n.doctype=!0):(n.doctype+=o,"["===o?n.state=E.DOCTYPE_DTD:p(o)&&(n.state=E.DOCTYPE_QUOTED,n.q=o));continue;case E.DOCTYPE_QUOTED:n.doctype+=o,o===n.q&&(n.q="",n.state=E.DOCTYPE);continue;case E.DOCTYPE_DTD:n.doctype+=o,"]"===o?n.state=E.DOCTYPE:p(o)&&(n.state=E.DOCTYPE_DTD_QUOTED,n.q=o);continue;case E.DOCTYPE_DTD_QUOTED:n.doctype+=o,o===n.q&&(n.state=E.DOCTYPE_DTD,n.q="");continue;case E.COMMENT:"-"===o?n.state=E.COMMENT_ENDING:n.comment+=o;continue;case E.COMMENT_ENDING:"-"===o?(n.state=E.COMMENT_ENDED,n.comment=O(n.opt,n.comment),n.comment&&_(n,"oncomment",n.comment),n.comment=""):(n.comment+="-"+o,n.state=E.COMMENT);continue;case E.COMMENT_ENDED:">"!==o?(R(n,"Malformed comment"),n.comment+="--"+o,n.state=E.COMMENT):n.state=E.TEXT;continue;case E.CDATA:"]"===o?n.state=E.CDATA_ENDING:n.cdata+=o;continue;case E.CDATA_ENDING:"]"===o?n.state=E.CDATA_ENDING_2:(n.cdata+="]"+o,n.state=E.CDATA);continue;case E.CDATA_ENDING_2:">"===o?(n.cdata&&_(n,"oncdata",n.cdata),_(n,"onclosecdata"),n.cdata="",n.state=E.TEXT):"]"===o?n.cdata+="]":(n.cdata+="]]"+o,n.state=E.CDATA);continue;case E.PROC_INST:"?"===o?n.state=E.PROC_INST_ENDING:f(o)?n.state=E.PROC_INST_BODY:n.procInstName+=o;continue;case E.PROC_INST_BODY:if(!n.procInstBody&&f(o))continue;"?"===o?n.state=E.PROC_INST_ENDING:n.procInstBody+=o;continue;case E.PROC_INST_ENDING:">"===o?(_(n,"onprocessinginstruction",{name:n.procInstName,body:n.procInstBody}),n.procInstName=n.procInstBody="",n.state=E.TEXT):(n.procInstBody+="?"+o,n.state=E.PROC_INST_BODY);continue;case E.OPEN_TAG:y(l,o)?n.tagName+=o:(F(n),">"===o?j(n):"/"===o?n.state=E.OPEN_TAG_SLASH:(f(o)||R(n,"Invalid character in tag name"),n.state=E.ATTRIB));continue;case E.OPEN_TAG_SLASH:">"===o?(j(n,!0),L(n)):(R(n,"Forward-slash in opening tag not followed by >"),n.state=E.ATTRIB);continue;case E.ATTRIB:if(f(o))continue;">"===o?j(n):"/"===o?n.state=E.OPEN_TAG_SLASH:y(c,o)?(n.attribName=o,n.attribValue="",n.state=E.ATTRIB_NAME):R(n,"Invalid attribute name");continue;case E.ATTRIB_NAME:"="===o?n.state=E.ATTRIB_VALUE:">"===o?(R(n,"Attribute without value"),n.attribValue=n.attribName,N(n),j(n)):f(o)?n.state=E.ATTRIB_NAME_SAW_WHITE:y(l,o)?n.attribName+=o:R(n,"Invalid attribute name");continue;case E.ATTRIB_NAME_SAW_WHITE:if("="===o)n.state=E.ATTRIB_VALUE;else{if(f(o))continue;R(n,"Attribute without value"),n.tag.attributes[n.attribName]="",n.attribValue="",_(n,"onattribute",{name:n.attribName,value:""}),n.attribName="",">"===o?j(n):y(c,o)?(n.attribName=o,n.state=E.ATTRIB_NAME):(R(n,"Invalid attribute name"),n.state=E.ATTRIB)}continue;case E.ATTRIB_VALUE:if(f(o))continue;p(o)?(n.q=o,n.state=E.ATTRIB_VALUE_QUOTED):(R(n,"Unquoted attribute value"),n.state=E.ATTRIB_VALUE_UNQUOTED,n.attribValue=o);continue;case E.ATTRIB_VALUE_QUOTED:if(o!==n.q){"&"===o?n.state=E.ATTRIB_VALUE_ENTITY_Q:n.attribValue+=o;continue}N(n),n.q="",n.state=E.ATTRIB_VALUE_CLOSED;continue;case E.ATTRIB_VALUE_CLOSED:f(o)?n.state=E.ATTRIB:">"===o?j(n):"/"===o?n.state=E.OPEN_TAG_SLASH:y(c,o)?(R(n,"No whitespace between attributes"),n.attribName=o,n.attribValue="",n.state=E.ATTRIB_NAME):R(n,"Invalid attribute name");continue;case E.ATTRIB_VALUE_UNQUOTED:if(!g(o)){"&"===o?n.state=E.ATTRIB_VALUE_ENTITY_U:n.attribValue+=o;continue}N(n),">"===o?j(n):n.state=E.ATTRIB;continue;case E.CLOSE_TAG:if(n.tagName)">"===o?L(n):y(l,o)?n.tagName+=o:n.script?(n.script+=""===o?L(n):R(n,"Invalid characters in closing tag");continue;case E.TEXT_ENTITY:case E.ATTRIB_VALUE_ENTITY_Q:case E.ATTRIB_VALUE_ENTITY_U:var u,m;switch(n.state){case E.TEXT_ENTITY:u=E.TEXT,m="textNode";break;case E.ATTRIB_VALUE_ENTITY_Q:u=E.ATTRIB_VALUE_QUOTED,m="attribValue";break;case E.ATTRIB_VALUE_ENTITY_U:u=E.ATTRIB_VALUE_UNQUOTED,m="attribValue"}";"===o?(n[m]+=k(n),n.entity="",n.state=u):y(n.entity.length?h:d,o)?n.entity+=o:(R(n,"Invalid character in entity name"),n[m]+="&"+n.entity+o,n.entity="",n.state=u);continue;default:throw new Error(n,"Unknown state: "+n.state)}return n.position>=n.bufferCheckPosition&&function(t){for(var n=Math.max(e.MAX_BUFFER_LENGTH,10),i=0,o=0,a=r.length;on)switch(r[o]){case"textNode":C(t);break;case"cdata":_(t,"oncdata",t.cdata),t.cdata="";break;case"script":_(t,"onscript",t.script),t.script="";break;default:D(t,"Max buffer length exceeded: "+r[o])}i=Math.max(i,s)}var u=e.MAX_BUFFER_LENGTH-i;t.bufferCheckPosition=u+t.position}(n),n} -/*! http://mths.be/fromcodepoint v0.1.0 by @mathias */,resume:function(){return this.error=null,this},close:function(){return this.write(null)},flush:function(){var e;C(e=this),""!==e.cdata&&(_(e,"oncdata",e.cdata),e.cdata=""),""!==e.script&&(_(e,"onscript",e.script),e.script="")}};try{t=hr.Stream}catch(e){t=function(){}}var i=e.EVENTS.filter((function(e){return"error"!==e&&"end"!==e}));function o(e,r){if(!(this instanceof o))return new o(e,r);t.apply(this),this._parser=new n(e,r),this.writable=!0,this.readable=!0;var a=this;this._parser.onend=function(){a.emit("end")},this._parser.onerror=function(e){a.emit("error",e),a._parser.error=null},this._decoder=null,i.forEach((function(e){Object.defineProperty(a,"on"+e,{get:function(){return a._parser["on"+e]},set:function(t){if(!t)return a.removeAllListeners(e),a._parser["on"+e]=t,t;a.on(e,t)},enumerable:!0,configurable:!1})}))}o.prototype=Object.create(t.prototype,{constructor:{value:o}}),o.prototype.write=function(e){if("function"==typeof re.isBuffer&&re.isBuffer(e)){if(!this._decoder){var t=fr.StringDecoder;this._decoder=new t("utf8")}e=this._decoder.write(e)}return this._parser.write(e.toString()),this.emit("data",e),!0},o.prototype.end=function(e){return e&&e.length&&this.write(e),this._parser.end(),!0},o.prototype.on=function(e,r){var n=this;return n._parser["on"+e]||-1===i.indexOf(e)||(n._parser["on"+e]=function(){var t=1===arguments.length?[arguments[0]]:Array.apply(null,arguments);t.splice(0,0,e),n.emit.apply(n,t)}),t.prototype.on.call(n,e,r)};var a="http://www.w3.org/XML/1998/namespace",s="http://www.w3.org/2000/xmlns/",u={xml:a,xmlns:s},c=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,l=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/,d=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,h=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/;function f(e){return" "===e||"\n"===e||"\r"===e||"\t"===e}function p(e){return'"'===e||"'"===e}function g(e){return">"===e||f(e)}function y(e,t){return e.test(t)}function v(e,t){return!y(e,t)}var m,b,w,E=0;for(var A in e.STATE={BEGIN:E++,BEGIN_WHITESPACE:E++,TEXT:E++,TEXT_ENTITY:E++,OPEN_WAKA:E++,SGML_DECL:E++,SGML_DECL_QUOTED:E++,DOCTYPE:E++,DOCTYPE_QUOTED:E++,DOCTYPE_DTD:E++,DOCTYPE_DTD_QUOTED:E++,COMMENT_STARTING:E++,COMMENT:E++,COMMENT_ENDING:E++,COMMENT_ENDED:E++,CDATA:E++,CDATA_ENDING:E++,CDATA_ENDING_2:E++,PROC_INST:E++,PROC_INST_BODY:E++,PROC_INST_ENDING:E++,OPEN_TAG:E++,OPEN_TAG_SLASH:E++,ATTRIB:E++,ATTRIB_NAME:E++,ATTRIB_NAME_SAW_WHITE:E++,ATTRIB_VALUE:E++,ATTRIB_VALUE_QUOTED:E++,ATTRIB_VALUE_CLOSED:E++,ATTRIB_VALUE_UNQUOTED:E++,ATTRIB_VALUE_ENTITY_Q:E++,ATTRIB_VALUE_ENTITY_U:E++,CLOSE_TAG:E++,CLOSE_TAG_SAW_WHITE:E++,SCRIPT:E++,SCRIPT_ENDING:E++},e.XML_ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'"},e.ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'",AElig:198,Aacute:193,Acirc:194,Agrave:192,Aring:197,Atilde:195,Auml:196,Ccedil:199,ETH:208,Eacute:201,Ecirc:202,Egrave:200,Euml:203,Iacute:205,Icirc:206,Igrave:204,Iuml:207,Ntilde:209,Oacute:211,Ocirc:212,Ograve:210,Oslash:216,Otilde:213,Ouml:214,THORN:222,Uacute:218,Ucirc:219,Ugrave:217,Uuml:220,Yacute:221,aacute:225,acirc:226,aelig:230,agrave:224,aring:229,atilde:227,auml:228,ccedil:231,eacute:233,ecirc:234,egrave:232,eth:240,euml:235,iacute:237,icirc:238,igrave:236,iuml:239,ntilde:241,oacute:243,ocirc:244,ograve:242,oslash:248,otilde:245,ouml:246,szlig:223,thorn:254,uacute:250,ucirc:251,ugrave:249,uuml:252,yacute:253,yuml:255,copy:169,reg:174,nbsp:160,iexcl:161,cent:162,pound:163,curren:164,yen:165,brvbar:166,sect:167,uml:168,ordf:170,laquo:171,not:172,shy:173,macr:175,deg:176,plusmn:177,sup1:185,sup2:178,sup3:179,acute:180,micro:181,para:182,middot:183,cedil:184,ordm:186,raquo:187,frac14:188,frac12:189,frac34:190,iquest:191,times:215,divide:247,OElig:338,oelig:339,Scaron:352,scaron:353,Yuml:376,fnof:402,circ:710,tilde:732,Alpha:913,Beta:914,Gamma:915,Delta:916,Epsilon:917,Zeta:918,Eta:919,Theta:920,Iota:921,Kappa:922,Lambda:923,Mu:924,Nu:925,Xi:926,Omicron:927,Pi:928,Rho:929,Sigma:931,Tau:932,Upsilon:933,Phi:934,Chi:935,Psi:936,Omega:937,alpha:945,beta:946,gamma:947,delta:948,epsilon:949,zeta:950,eta:951,theta:952,iota:953,kappa:954,lambda:955,mu:956,nu:957,xi:958,omicron:959,pi:960,rho:961,sigmaf:962,sigma:963,tau:964,upsilon:965,phi:966,chi:967,psi:968,omega:969,thetasym:977,upsih:978,piv:982,ensp:8194,emsp:8195,thinsp:8201,zwnj:8204,zwj:8205,lrm:8206,rlm:8207,ndash:8211,mdash:8212,lsquo:8216,rsquo:8217,sbquo:8218,ldquo:8220,rdquo:8221,bdquo:8222,dagger:8224,Dagger:8225,bull:8226,hellip:8230,permil:8240,prime:8242,Prime:8243,lsaquo:8249,rsaquo:8250,oline:8254,frasl:8260,euro:8364,image:8465,weierp:8472,real:8476,trade:8482,alefsym:8501,larr:8592,uarr:8593,rarr:8594,darr:8595,harr:8596,crarr:8629,lArr:8656,uArr:8657,rArr:8658,dArr:8659,hArr:8660,forall:8704,part:8706,exist:8707,empty:8709,nabla:8711,isin:8712,notin:8713,ni:8715,prod:8719,sum:8721,minus:8722,lowast:8727,radic:8730,prop:8733,infin:8734,ang:8736,and:8743,or:8744,cap:8745,cup:8746,int:8747,there4:8756,sim:8764,cong:8773,asymp:8776,ne:8800,equiv:8801,le:8804,ge:8805,sub:8834,sup:8835,nsub:8836,sube:8838,supe:8839,oplus:8853,otimes:8855,perp:8869,sdot:8901,lceil:8968,rceil:8969,lfloor:8970,rfloor:8971,lang:9001,rang:9002,loz:9674,spades:9824,clubs:9827,hearts:9829,diams:9830},Object.keys(e.ENTITIES).forEach((function(t){var r=e.ENTITIES[t],n="number"==typeof r?String.fromCharCode(r):r;e.ENTITIES[t]=n})),e.STATE)e.STATE[e.STATE[A]]=A;function T(e,t,r){e[t]&&e[t](r)}function _(e,t,r){e.textNode&&C(e),T(e,t,r)}function C(e){e.textNode=O(e.opt,e.textNode),e.textNode&&T(e,"ontext",e.textNode),e.textNode=""}function O(e,t){return e.trim&&(t=t.trim()),e.normalize&&(t=t.replace(/\s+/g," ")),t}function D(e,t){return C(e),e.trackPosition&&(t+="\nLine: "+e.line+"\nColumn: "+e.column+"\nChar: "+e.c),t=new Error(t),e.error=t,T(e,"onerror",t),e}function x(e){return e.sawRoot&&!e.closedRoot&&R(e,"Unclosed root tag"),e.state!==E.BEGIN&&e.state!==E.BEGIN_WHITESPACE&&e.state!==E.TEXT&&D(e,"Unexpected end"),C(e),e.c="",e.closed=!0,T(e,"onend"),n.call(e,e.strict,e.opt),e}function R(e,t){if("object"!=typeof e||!(e instanceof n))throw new Error("bad call to strictFail");e.strict&&D(e,t)}function F(e){e.strict||(e.tagName=e.tagName[e.looseCase]());var t=e.tags[e.tags.length-1]||e,r=e.tag={name:e.tagName,attributes:{}};e.opt.xmlns&&(r.ns=t.ns),e.attribList.length=0,_(e,"onopentagstart",r)}function S(e,t){var r=e.indexOf(":")<0?["",e]:e.split(":"),n=r[0],i=r[1];return t&&"xmlns"===e&&(n="xmlns",i=""),{prefix:n,local:i}}function N(e){if(e.strict||(e.attribName=e.attribName[e.looseCase]()),-1!==e.attribList.indexOf(e.attribName)||e.tag.attributes.hasOwnProperty(e.attribName))e.attribName=e.attribValue="";else{if(e.opt.xmlns){var t=S(e.attribName,!0),r=t.prefix,n=t.local;if("xmlns"===r)if("xml"===n&&e.attribValue!==a)R(e,"xml: prefix must be bound to "+a+"\nActual: "+e.attribValue);else if("xmlns"===n&&e.attribValue!==s)R(e,"xmlns: prefix must be bound to "+s+"\nActual: "+e.attribValue);else{var i=e.tag,o=e.tags[e.tags.length-1]||e;i.ns===o.ns&&(i.ns=Object.create(o.ns)),i.ns[n]=e.attribValue}e.attribList.push([e.attribName,e.attribValue])}else e.tag.attributes[e.attribName]=e.attribValue,_(e,"onattribute",{name:e.attribName,value:e.attribValue});e.attribName=e.attribValue=""}}function j(e,t){if(e.opt.xmlns){var r=e.tag,n=S(e.tagName);r.prefix=n.prefix,r.local=n.local,r.uri=r.ns[n.prefix]||"",r.prefix&&!r.uri&&(R(e,"Unbound namespace prefix: "+JSON.stringify(e.tagName)),r.uri=n.prefix);var i=e.tags[e.tags.length-1]||e;r.ns&&i.ns!==r.ns&&Object.keys(r.ns).forEach((function(t){_(e,"onopennamespace",{prefix:t,uri:r.ns[t]})}));for(var o=0,a=e.attribList.length;o",e.tagName="",void(e.state=E.SCRIPT);_(e,"onscript",e.script),e.script=""}var t=e.tags.length,r=e.tagName;e.strict||(r=r[e.looseCase]());for(var n=r;t--&&e.tags[t].name!==n;)R(e,"Unexpected close tag");if(t<0)return R(e,"Unmatched closing tag: "+e.tagName),e.textNode+="",void(e.state=E.TEXT);e.tagName=r;for(var i=e.tags.length;i-- >t;){var o=e.tag=e.tags.pop();e.tagName=e.tag.name,_(e,"onclosetag",e.tagName);var a={};for(var s in o.ns)a[s]=o.ns[s];var u=e.tags[e.tags.length-1]||e;e.opt.xmlns&&o.ns!==u.ns&&Object.keys(o.ns).forEach((function(t){var r=o.ns[t];_(e,"onclosenamespace",{prefix:t,uri:r})}))}0===t&&(e.closedRoot=!0),e.tagName=e.attribValue=e.attribName="",e.attribList.length=0,e.state=E.TEXT}function k(e){var t,r=e.entity,n=r.toLowerCase(),i="";return e.ENTITIES[r]?e.ENTITIES[r]:e.ENTITIES[n]?e.ENTITIES[n]:("#"===(r=n).charAt(0)&&("x"===r.charAt(1)?(r=r.slice(2),i=(t=parseInt(r,16)).toString(16)):(r=r.slice(1),i=(t=parseInt(r,10)).toString(10))),r=r.replace(/^0+/,""),isNaN(t)||i.toLowerCase()!==r?(R(e,"Invalid character entity"),"&"+e.entity+";"):String.fromCodePoint(t))}function I(e,t){"<"===t?(e.state=E.OPEN_WAKA,e.startTagPosition=e.position):f(t)||(R(e,"Non-whitespace before first tag."),e.textNode=t,e.state=E.TEXT)}function P(e,t){var r="";return t1114111||b(s)!==s)throw RangeError("Invalid code point: "+s);s<=65535?n.push(s):(e=55296+((s-=65536)>>10),t=s%1024+56320,n.push(e,t)),(i+1===o||n.length>r)&&(a+=m.apply(null,n),n.length=0)}return a},Object.defineProperty?Object.defineProperty(String,"fromCodePoint",{value:w,configurable:!0,writable:!0}):String.fromCodePoint=w)}(Be);var pr,gr,yr=function(e){return Array.isArray?Array.isArray(e):"[object Array]"===Object.prototype.toString.call(e)},vr=yr,mr={copyOptions:function(e){var t,r={};for(t in e)e.hasOwnProperty(t)&&(r[t]=e[t]);return r},ensureFlagExists:function(e,t){e in t&&"boolean"==typeof t[e]||(t[e]=!1)},ensureSpacesExists:function(e){(!("spaces"in e)||"number"!=typeof e.spaces&&"string"!=typeof e.spaces)&&(e.spaces=0)},ensureAlwaysArrayExists:function(e){"alwaysArray"in e&&("boolean"==typeof e.alwaysArray||vr(e.alwaysArray))||(e.alwaysArray=!1)},ensureKeyExists:function(e,t){e+"Key"in t&&"string"==typeof t[e+"Key"]||(t[e+"Key"]=t.compact?"_"+e:e)},checkFnExists:function(e,t){return e+"Fn"in t}},br=Be,wr=mr,Er=yr;function Ar(e){var t=Number(e);if(!isNaN(t))return t;var r=e.toLowerCase();return"true"===r||"false"!==r&&e}function Tr(e,t){var r;if(pr.compact){if(!gr[pr[e+"Key"]]&&(Er(pr.alwaysArray)?-1!==pr.alwaysArray.indexOf(pr[e+"Key"]):pr.alwaysArray)&&(gr[pr[e+"Key"]]=[]),gr[pr[e+"Key"]]&&!Er(gr[pr[e+"Key"]])&&(gr[pr[e+"Key"]]=[gr[pr[e+"Key"]]]),e+"Fn"in pr&&"string"==typeof t&&(t=pr[e+"Fn"](t,gr)),"instruction"===e&&("instructionFn"in pr||"instructionNameFn"in pr))for(r in t)if(t.hasOwnProperty(r))if("instructionFn"in pr)t[r]=pr.instructionFn(t[r],r,gr);else{var n=t[r];delete t[r],t[pr.instructionNameFn(r,n,gr)]=n}Er(gr[pr[e+"Key"]])?gr[pr[e+"Key"]].push(t):gr[pr[e+"Key"]]=t}else{gr[pr.elementsKey]||(gr[pr.elementsKey]=[]);var i={};if(i[pr.typeKey]=e,"instruction"===e){for(r in t)if(t.hasOwnProperty(r))break;i[pr.nameKey]="instructionNameFn"in pr?pr.instructionNameFn(r,t,gr):r,pr.instructionHasAttributes?(i[pr.attributesKey]=t[r][pr.attributesKey],"instructionFn"in pr&&(i[pr.attributesKey]=pr.instructionFn(i[pr.attributesKey],r,gr))):("instructionFn"in pr&&(t[r]=pr.instructionFn(t[r],r,gr)),i[pr.instructionKey]=t[r])}else e+"Fn"in pr&&(t=pr[e+"Fn"](t,gr)),i[pr[e+"Key"]]=t;pr.addParent&&(i[pr.parentKey]=gr),gr[pr.elementsKey].push(i)}}function _r(e){var t;if("attributesFn"in pr&&e&&(e=pr.attributesFn(e,gr)),(pr.trim||"attributeValueFn"in pr||"attributeNameFn"in pr||pr.nativeTypeAttributes)&&e)for(t in e)if(e.hasOwnProperty(t)&&(pr.trim&&(e[t]=e[t].trim()),pr.nativeTypeAttributes&&(e[t]=Ar(e[t])),"attributeValueFn"in pr&&(e[t]=pr.attributeValueFn(e[t],t,gr)),"attributeNameFn"in pr)){var r=e[t];delete e[t],e[pr.attributeNameFn(t,e[t],gr)]=r}return e}function Cr(e){var t={};if(e.body&&("xml"===e.name.toLowerCase()||pr.instructionHasAttributes)){for(var r,n=/([\w:-]+)\s*=\s*(?:"([^"]*)"|'([^']*)'|(\w+))\s*/g;null!==(r=n.exec(e.body));)t[r[1]]=r[2]||r[3]||r[4];t=_r(t)}if("xml"===e.name.toLowerCase()){if(pr.ignoreDeclaration)return;gr[pr.declarationKey]={},Object.keys(t).length&&(gr[pr.declarationKey][pr.attributesKey]=t),pr.addParent&&(gr[pr.declarationKey][pr.parentKey]=gr)}else{if(pr.ignoreInstruction)return;pr.trim&&(e.body=e.body.trim());var i={};pr.instructionHasAttributes&&Object.keys(t).length?(i[e.name]={},i[e.name][pr.attributesKey]=t):i[e.name]=e.body,Tr("instruction",i)}}function Or(e,t){var r;if("object"==typeof e&&(t=e.attributes,e=e.name),t=_r(t),"elementNameFn"in pr&&(e=pr.elementNameFn(e,gr)),pr.compact){var n;if(r={},!pr.ignoreAttributes&&t&&Object.keys(t).length)for(n in r[pr.attributesKey]={},t)t.hasOwnProperty(n)&&(r[pr.attributesKey][n]=t[n]);!(e in gr)&&(Er(pr.alwaysArray)?-1!==pr.alwaysArray.indexOf(e):pr.alwaysArray)&&(gr[e]=[]),gr[e]&&!Er(gr[e])&&(gr[e]=[gr[e]]),Er(gr[e])?gr[e].push(r):gr[e]=r}else gr[pr.elementsKey]||(gr[pr.elementsKey]=[]),(r={})[pr.typeKey]="element",r[pr.nameKey]=e,!pr.ignoreAttributes&&t&&Object.keys(t).length&&(r[pr.attributesKey]=t),pr.alwaysChildren&&(r[pr.elementsKey]=[]),gr[pr.elementsKey].push(r);r[pr.parentKey]=gr,gr=r}function Dr(e){pr.ignoreText||(e.trim()||pr.captureSpacesBetweenElements)&&(pr.trim&&(e=e.trim()),pr.nativeType&&(e=Ar(e)),pr.sanitize&&(e=e.replace(/&/g,"&").replace(//g,">")),Tr("text",e))}function xr(e){pr.ignoreComment||(pr.trim&&(e=e.trim()),Tr("comment",e))}function Rr(e){var t=gr[pr.parentKey];pr.addParent||delete gr[pr.parentKey],gr=t}function Fr(e){pr.ignoreCdata||(pr.trim&&(e=e.trim()),Tr("cdata",e))}function Sr(e){pr.ignoreDoctype||(e=e.replace(/^ /,""),pr.trim&&(e=e.trim()),Tr("doctype",e))}function Nr(e){e.note=e}var jr=function(e,t){var r=br.parser(!0,{}),n={};if(gr=n,pr=function(e){return pr=wr.copyOptions(e),wr.ensureFlagExists("ignoreDeclaration",pr),wr.ensureFlagExists("ignoreInstruction",pr),wr.ensureFlagExists("ignoreAttributes",pr),wr.ensureFlagExists("ignoreText",pr),wr.ensureFlagExists("ignoreComment",pr),wr.ensureFlagExists("ignoreCdata",pr),wr.ensureFlagExists("ignoreDoctype",pr),wr.ensureFlagExists("compact",pr),wr.ensureFlagExists("alwaysChildren",pr),wr.ensureFlagExists("addParent",pr),wr.ensureFlagExists("trim",pr),wr.ensureFlagExists("nativeType",pr),wr.ensureFlagExists("nativeTypeAttributes",pr),wr.ensureFlagExists("sanitize",pr),wr.ensureFlagExists("instructionHasAttributes",pr),wr.ensureFlagExists("captureSpacesBetweenElements",pr),wr.ensureAlwaysArrayExists(pr),wr.ensureKeyExists("declaration",pr),wr.ensureKeyExists("instruction",pr),wr.ensureKeyExists("attributes",pr),wr.ensureKeyExists("text",pr),wr.ensureKeyExists("comment",pr),wr.ensureKeyExists("cdata",pr),wr.ensureKeyExists("doctype",pr),wr.ensureKeyExists("type",pr),wr.ensureKeyExists("name",pr),wr.ensureKeyExists("elements",pr),wr.ensureKeyExists("parent",pr),wr.checkFnExists("doctype",pr),wr.checkFnExists("instruction",pr),wr.checkFnExists("cdata",pr),wr.checkFnExists("comment",pr),wr.checkFnExists("text",pr),wr.checkFnExists("instructionName",pr),wr.checkFnExists("elementName",pr),wr.checkFnExists("attributeName",pr),wr.checkFnExists("attributeValue",pr),wr.checkFnExists("attributes",pr),pr}(t),r.opt={strictEntities:!0},r.onopentag=Or,r.ontext=Dr,r.oncomment=xr,r.onclosetag=Rr,r.onerror=Nr,r.oncdata=Fr,r.ondoctype=Sr,r.onprocessinginstruction=Cr,r.write(e).close(),n[pr.elementsKey]){var i=n[pr.elementsKey];delete n[pr.elementsKey],n[pr.elementsKey]=i,delete n.text}return n},Lr=mr,kr=jr;var Ir,Pr,Ur=mr,Br=yr;function Mr(e,t,r){return(!r&&e.spaces?"\n":"")+Array(t+1).join(e.spaces)}function Vr(e,t,r){if(t.ignoreAttributes)return"";"attributesFn"in t&&(e=t.attributesFn(e,Pr,Ir));var n,i,o,a,s=[];for(n in e)e.hasOwnProperty(n)&&null!==e[n]&&void 0!==e[n]&&(a=t.noQuotesForNativeAttributes&&"string"!=typeof e[n]?"":'"',i=(i=""+e[n]).replace(/"/g,"""),o="attributeNameFn"in t?t.attributeNameFn(n,i,Pr,Ir):n,s.push(t.spaces&&t.indentAttributes?Mr(t,r+1,!1):" "),s.push(o+"="+a+("attributeValueFn"in t?t.attributeValueFn(i,n,Pr,Ir):i)+a));return e&&Object.keys(e).length&&t.spaces&&t.indentAttributes&&s.push(Mr(t,r,!1)),s.join("")}function Kr(e,t,r){return Ir=e,Pr="xml",t.ignoreDeclaration?"":""}function $r(e,t,r){if(t.ignoreInstruction)return"";var n;for(n in e)if(e.hasOwnProperty(n))break;var i="instructionNameFn"in t?t.instructionNameFn(n,e[n],Pr,Ir):n;if("object"==typeof e[n])return Ir=e,Pr=i,"";var o=e[n]?e[n]:"";return"instructionFn"in t&&(o=t.instructionFn(o,n,Pr,Ir)),""}function Hr(e,t){return t.ignoreComment?"":"\x3c!--"+("commentFn"in t?t.commentFn(e,Pr,Ir):e)+"--\x3e"}function Yr(e,t){return t.ignoreCdata?"":"","]]]]>"))+"]]>"}function zr(e,t){return t.ignoreDoctype?"":""}function qr(e,t){return t.ignoreText?"":(e=(e=(e=""+e).replace(/&/g,"&")).replace(/&/g,"&").replace(//g,">"),"textFn"in t?t.textFn(e,Pr,Ir):e)}function Gr(e,t,r,n){return e.reduce((function(e,i){var o=Mr(t,r,n&&!e);switch(i.type){case"element":return e+o+function(e,t,r){Ir=e,Pr=e.name;var n=[],i="elementNameFn"in t?t.elementNameFn(e.name,e):e.name;n.push("<"+i),e[t.attributesKey]&&n.push(Vr(e[t.attributesKey],t,r));var o=e[t.elementsKey]&&e[t.elementsKey].length||e[t.attributesKey]&&"preserve"===e[t.attributesKey]["xml:space"];return o||(o="fullTagEmptyElementFn"in t?t.fullTagEmptyElementFn(e.name,e):t.fullTagEmptyElement),o?(n.push(">"),e[t.elementsKey]&&e[t.elementsKey].length&&(n.push(Gr(e[t.elementsKey],t,r+1)),Ir=e,Pr=e.name),n.push(t.spaces&&function(e,t){var r;if(e.elements&&e.elements.length)for(r=0;r")):n.push("/>"),n.join("")}(i,t,r);case"comment":return e+o+Hr(i[t.commentKey],t);case"doctype":return e+o+zr(i[t.doctypeKey],t);case"cdata":return e+(t.indentCdata?o:"")+Yr(i[t.cdataKey],t);case"text":return e+(t.indentText?o:"")+qr(i[t.textKey],t);case"instruction":var a={};return a[i[t.nameKey]]=i[t.attributesKey]?i:i[t.instructionKey],e+(t.indentInstruction?o:"")+$r(a,t,r)}}),"")}function Wr(e,t,r){var n;for(n in e)if(e.hasOwnProperty(n))switch(n){case t.parentKey:case t.attributesKey:break;case t.textKey:if(t.indentText||r)return!0;break;case t.cdataKey:if(t.indentCdata||r)return!0;break;case t.instructionKey:if(t.indentInstruction||r)return!0;break;case t.doctypeKey:case t.commentKey:default:return!0}return!1}function Qr(e,t,r,n,i){Ir=e,Pr=t;var o="elementNameFn"in r?r.elementNameFn(t,e):t;if(null==e||""===e)return"fullTagEmptyElementFn"in r&&r.fullTagEmptyElementFn(t,e)||r.fullTagEmptyElement?"<"+o+">":"<"+o+"/>";var a=[];if(t){if(a.push("<"+o),"object"!=typeof e)return a.push(">"+qr(e,r)+""),a.join("");e[r.attributesKey]&&a.push(Vr(e[r.attributesKey],r,n));var s=Wr(e,r,!0)||e[r.attributesKey]&&"preserve"===e[r.attributesKey]["xml:space"];if(s||(s="fullTagEmptyElementFn"in r?r.fullTagEmptyElementFn(t,e):r.fullTagEmptyElement),!s)return a.push("/>"),a.join("");a.push(">")}return a.push(Xr(e,r,n+1,!1)),Ir=e,Pr=t,t&&a.push((i?Mr(r,n,!1):"")+""),a.join("")}function Xr(e,t,r,n){var i,o,a,s=[];for(o in e)if(e.hasOwnProperty(o))for(a=Br(e[o])?e[o]:[e[o]],i=0;i{const t=Number(e);if(!Number.isNaN(t))return t;const r=e.toLowerCase();return"true"===r||"false"!==r&&e},on=(e,t)=>{if(!e&&!t)return!0;if(!e||!t)return!1;const r=e.trim(),n=t.trim();if(Math.abs(r.length-n.length)>1)return!1;const i="/"===r.slice(-1)?r.slice(0,-1):r,o="/"===n.slice(-1)?n.slice(0,-1):n;return e.includes(o)||t.includes(i)},an=(e,t)=>{if(!e&&!t)return!0;if(!e||!t)return!1;const r=e.trim(),n=t.trim(),i="/"===r.slice(-1)?r.slice(0,-1):r,o="/"===n.slice(-1)?n.slice(0,-1):n;return e.includes(o)||t.includes(i)},sn=e=>e.reduce(((e,t)=>Object.assign(Object.assign({},e),{[M[t]]:t})),{}),un=e=>Object.entries(e).reduce(((e,[t,r])=>r?Object.assign(Object.assign({},e),{[t]:r}):e),{}),cn=(e,t)=>t?{[e]:t}:{};var ln=Object.freeze({__proto__:null,cleanupFalsy:un,conditionalParam:cn,getDAVAttribute:sn,urlContains:an,urlEquals:on});const dn=B("tsdav:request"),hn=e=>t(void 0,void 0,void 0,(function*(){var t;const{url:r,init:n,convertIncoming:i=!0,parseOutgoing:o=!0}=e,{headers:s={},body:u,namespace:c,method:l,attributes:d}=n,h=i?rn.js2xml(Object.assign(Object.assign({_declaration:{_attributes:{version:"1.0",encoding:"utf-8"}}},u),{_attributes:d}),{compact:!0,spaces:2,elementNameFn:e=>c&&!/^.+:.+/.test(e)?`${c}:${e}`:e}):u,f=yield a.fetch(r,{headers:Object.assign({"Content-Type":"text/xml;charset=UTF-8"},un(s)),body:h,method:l}),p=yield f.text();if(!f.ok||!(null===(t=f.headers.get("content-type"))||void 0===t?void 0:t.includes("xml"))||!o)return[{href:f.url,ok:f.ok,status:f.status,statusText:f.statusText,raw:p}];const g=rn.xml2js(p,{compact:!0,trim:!0,textFn:(e,t)=>{try{const r=t._parent,n=Object.keys(r),i=n[n.length-1],o=r[i];if(o.length>0){o[o.length-1]=nn(e)}else r[i]=nn(e)}catch(e){dn(e.stack)}},elementNameFn:e=>e.replace(/^.+:/,"").replace(/([-_]\w)/g,(e=>e[1].toUpperCase())),attributesFn:e=>{const t=Object.assign({},e);return delete t.xmlns,t},ignoreDeclaration:!0});return(Array.isArray(g.multistatus.response)?g.multistatus.response:[g.multistatus.response]).map((e=>{var t,r;if(!e)return{status:f.status,statusText:f.statusText,ok:f.ok};const n=/^\S+\s(?\d+)\s(?.+)$/.exec(e.status);return{raw:g,href:e.href,status:(null==n?void 0:n.groups)?Number.parseInt(null==n?void 0:n.groups.status,10):f.status,statusText:null!==(r=null===(t=null==n?void 0:n.groups)||void 0===t?void 0:t.statusText)&&void 0!==r?r:f.statusText,ok:!e.error,error:e.error,responsedescription:e.responsedescription,props:(Array.isArray(e.propstat)?e.propstat:[e.propstat]).reduce(((e,t)=>Object.assign(Object.assign({},e),null==t?void 0:t.prop)),{})}}))})),fn=e=>t(void 0,void 0,void 0,(function*(){const{url:t,props:r,depth:n,headers:i}=e;return hn({url:t,init:{method:"PROPFIND",headers:un(Object.assign({depth:n},i)),namespace:V.DAV,body:{propfind:{_attributes:sn([U.CALDAV,U.CALDAV_APPLE,U.CALENDAR_SERVER,U.CARDDAV,U.DAV]),prop:r}}}})})),pn=e=>t(void 0,void 0,void 0,(function*(){const{url:t,data:r,headers:n}=e;return a.fetch(t,{method:"PUT",body:r,headers:n})})),gn=e=>t(void 0,void 0,void 0,(function*(){const{url:t,data:r,etag:n,headers:i}=e;return a.fetch(t,{method:"PUT",body:r,headers:un(Object.assign({"If-Match":n},i))})})),yn=e=>t(void 0,void 0,void 0,(function*(){const{url:t,headers:r,etag:n}=e;return a.fetch(t,{method:"DELETE",headers:un(Object.assign({"If-Match":n},r))})}));var vn=Object.freeze({__proto__:null,createObject:pn,davRequest:hn,deleteObject:yn,propfind:fn,updateObject:gn});function mn(e,t){const r=e=>t.every((t=>e[t]));return Array.isArray(e)?e.every((e=>r(e))):r(e)}const bn=(e,t)=>t.reduce(((t,r)=>e[r]?t:`${t.length?`${t},`:""}${r.toString()}`),""),wn=B("tsdav:collection"),En=e=>t(void 0,void 0,void 0,(function*(){const{url:t,body:r,depth:n,defaultNamespace:i=V.DAV,headers:o}=e,a=yield hn({url:t,init:{method:"REPORT",headers:un(Object.assign({depth:n},o)),namespace:i,body:r}});return 1!==a.length||a[0].raw?a:[]})),An=e=>t(void 0,void 0,void 0,(function*(){const{url:t,props:r,depth:n,headers:i}=e;return hn({url:t,init:{method:"MKCOL",headers:un(Object.assign({depth:n},i)),namespace:V.DAV,body:r?{mkcol:{set:{prop:r}}}:void 0}})})),Tn=e=>t(void 0,void 0,void 0,(function*(){var t,r,n,i,o;const{collection:a,headers:s}=e;return null!==(o=null===(i=null===(n=null===(r=null===(t=(yield fn({url:a.url,props:{[`${V.DAV}:supported-report-set`]:{}},depth:"0",headers:s}))[0])||void 0===t?void 0:t.props)||void 0===r?void 0:r.supportedReportSet)||void 0===n?void 0:n.supportedReport)||void 0===i?void 0:i.map((e=>Object.keys(e.report)[0])))&&void 0!==o?o:[]})),_n=e=>t(void 0,void 0,void 0,(function*(){var t,r,n;const{collection:i,headers:o}=e,a=(yield fn({url:i.url,props:{[`${V.CALENDAR_SERVER}:getctag`]:{}},depth:"0",headers:o})).filter((e=>an(i.url,e.href)))[0];if(!a)throw new Error("Collection does not exist on server");return{isDirty:i.ctag!==(null===(t=a.props)||void 0===t?void 0:t.getctag),newCtag:null===(n=null===(r=a.props)||void 0===r?void 0:r.getctag)||void 0===n?void 0:n.toString()}})),Cn=e=>{const{url:t,props:r,headers:n,syncLevel:i,syncToken:o}=e;return hn({url:t,init:{method:"REPORT",namespace:V.DAV,headers:Object.assign({},n),body:{"sync-collection":{_attributes:sn([U.CALDAV,U.CARDDAV,U.DAV]),"sync-level":i,"sync-token":o,[`${V.DAV}:prop`]:r}}}})},On=e=>t(void 0,void 0,void 0,(function*(){var t,r,n,i,o,a,s,u,c,l,d;const{collection:h,method:f,headers:p,account:g,detailedResult:y}=e,v=["accountType","homeUrl"];if(!g||!mn(g,v)){if(!g)throw new Error("no account for smartCollectionSync");throw new Error(`account must have ${bn(g,v)} before smartCollectionSync`)}const m=null!=f?f:(null===(t=h.reports)||void 0===t?void 0:t.includes("syncCollection"))?"webdav":"basic";if(wn(`smart collection sync with type ${g.accountType} and method ${m}`),"webdav"===m){const e=yield Cn({url:h.url,props:{[`${V.DAV}:getetag`]:{},[`${"caldav"===g.accountType?V.CALDAV:V.CARDDAV}:${"caldav"===g.accountType?"calendar-data":"address-data"}`]:{},[`${V.DAV}:displayname`]:{}},syncLevel:1,syncToken:h.syncToken,headers:p}),t=e.filter((e=>{var t;const r="caldav"===g.accountType?".ics":".vcf";return(null===(t=e.href)||void 0===t?void 0:t.slice(-4))===r})),c=t.filter((e=>404!==e.status)).map((e=>e.href)),l=t.filter((e=>404===e.status)).map((e=>e.href)),d=(c.length&&null!==(n=yield null===(r=null==h?void 0:h.objectMultiGet)||void 0===r?void 0:r.call(h,{url:h.url,props:{[`${V.DAV}:getetag`]:{},[`${"caldav"===g.accountType?V.CALDAV:V.CARDDAV}:${"caldav"===g.accountType?"calendar-data":"address-data"}`]:{}},objectUrls:c,depth:"1",headers:p}))&&void 0!==n?n:[]).map((e=>{var t,r,n,i,o,a,s,u,c,l;return{url:null!==(t=e.href)&&void 0!==t?t:"",etag:null===(r=e.props)||void 0===r?void 0:r.getetag,data:"caldav"===(null==g?void 0:g.accountType)?null!==(o=null===(i=null===(n=e.props)||void 0===n?void 0:n.calendarData)||void 0===i?void 0:i._cdata)&&void 0!==o?o:null===(a=e.props)||void 0===a?void 0:a.calendarData:null!==(c=null===(u=null===(s=e.props)||void 0===s?void 0:s.addressData)||void 0===u?void 0:u._cdata)&&void 0!==c?c:null===(l=e.props)||void 0===l?void 0:l.addressData}})),f=null!==(i=h.objects)&&void 0!==i?i:[],v=d.filter((e=>f.every((t=>!an(t.url,e.url))))),m=f.reduce(((e,t)=>{const r=d.find((e=>an(e.url,t.url)));return r&&r.etag&&r.etag!==t.etag?[...e,r]:e}),[]),b=l.map((e=>({url:e,etag:""}))),w=f.filter((e=>d.some((t=>an(e.url,t.url)&&t.etag===e.etag))));return Object.assign(Object.assign({},h),{objects:y?{created:v,updated:m,deleted:b}:[...w,...v,...m],syncToken:null!==(u=null===(s=null===(a=null===(o=e[0])||void 0===o?void 0:o.raw)||void 0===a?void 0:a.multistatus)||void 0===s?void 0:s.syncToken)&&void 0!==u?u:h.syncToken})}if("basic"===m){const{isDirty:e,newCtag:t}=yield _n({collection:h,headers:p}),r=null!==(c=h.objects)&&void 0!==c?c:[],n=null!==(d=yield null===(l=h.fetchObjects)||void 0===l?void 0:l.call(h,{collection:h,headers:p}))&&void 0!==d?d:[],i=n.filter((e=>r.every((t=>!an(t.url,e.url))))),o=r.reduce(((e,t)=>{const r=n.find((e=>an(e.url,t.url)));return r&&r.etag&&r.etag!==t.etag?[...e,r]:e}),[]),a=r.filter((e=>n.every((t=>!an(t.url,e.url))))),s=r.filter((e=>n.some((t=>an(e.url,t.url)&&t.etag===e.etag))));if(e)return Object.assign(Object.assign({},h),{objects:y?{created:i,updated:o,deleted:a}:[...s,...i,...o],ctag:t})}return y?Object.assign(Object.assign({},h),{objects:{created:[],updated:[],deleted:[]}}):h}));var Dn=Object.freeze({__proto__:null,collectionQuery:En,isCollectionDirty:_n,makeCollection:An,smartCollectionSync:On,supportedReportSet:Tn,syncCollection:Cn});const xn=B("tsdav:addressBook"),Rn=e=>t(void 0,void 0,void 0,(function*(){const{url:t,props:r,filters:n,depth:i,headers:o}=e;return En({url:t,body:{"addressbook-query":{_attributes:sn([U.CARDDAV,U.DAV]),[`${V.DAV}:prop`]:r,filter:null!=n?n:{"prop-filter":{_attributes:{name:"FN"}}}}},defaultNamespace:V.CARDDAV,depth:i,headers:o})})),Fn=e=>t(void 0,void 0,void 0,(function*(){const{url:t,props:r,objectUrls:n,depth:i,headers:o}=e;return En({url:t,body:{"addressbook-multiget":{_attributes:sn([U.DAV,U.CARDDAV]),[`${V.DAV}:prop`]:r,[`${V.DAV}:href`]:n}},defaultNamespace:V.CARDDAV,depth:i,headers:o})})),Sn=e=>t(void 0,void 0,void 0,(function*(){const{account:r,headers:n,props:i}=null!=e?e:{},o=["homeUrl","rootUrl"];if(!r||!mn(r,o)){if(!r)throw new Error("no account for fetchAddressBooks");throw new Error(`account must have ${bn(r,o)} before fetchAddressBooks`)}const a=yield fn({url:r.homeUrl,props:null!=i?i:{[`${V.DAV}:displayname`]:{},[`${V.CALENDAR_SERVER}:getctag`]:{},[`${V.DAV}:resourcetype`]:{},[`${V.DAV}:sync-token`]:{}},depth:"1",headers:n});return Promise.all(a.filter((e=>{var t,r;return Object.keys(null!==(r=null===(t=e.props)||void 0===t?void 0:t.resourcetype)&&void 0!==r?r:{}).includes("addressbook")})).map((e=>{var t,n,i,o,a,s,u,c,l;const d=null!==(i=null===(n=null===(t=e.props)||void 0===t?void 0:t.displayname)||void 0===n?void 0:n._cdata)&&void 0!==i?i:null===(o=e.props)||void 0===o?void 0:o.displayname;return xn(`Found address book named ${"string"==typeof d?d:""},\n props: ${JSON.stringify(e.props)}`),{url:new URL(null!==(a=e.href)&&void 0!==a?a:"",null!==(s=r.rootUrl)&&void 0!==s?s:"").href,ctag:null===(u=e.props)||void 0===u?void 0:u.getctag,displayName:"string"==typeof d?d:"",resourcetype:Object.keys(null===(c=e.props)||void 0===c?void 0:c.resourcetype),syncToken:null===(l=e.props)||void 0===l?void 0:l.syncToken}})).map((e=>t(void 0,void 0,void 0,(function*(){return Object.assign(Object.assign({},e),{reports:yield Tn({collection:e,headers:n})})})))))})),Nn=e=>t(void 0,void 0,void 0,(function*(){const{addressBook:t,headers:r,objectUrls:n,urlFilter:i=(e=>e),useMultiGet:o=!0}=e;xn(`Fetching vcards from ${null==t?void 0:t.url}`);const a=["url"];if(!t||!mn(t,a)){if(!t)throw new Error("cannot fetchVCards for undefined addressBook");throw new Error(`addressBook must have ${bn(t,a)} before fetchVCards`)}const s=(null!=n?n:(yield Rn({url:t.url,props:{[`${V.DAV}:getetag`]:{}},depth:"1",headers:r})).map((e=>{var t;return e.ok&&null!==(t=e.href)&&void 0!==t?t:""}))).map((e=>e.startsWith("http")||!e?e:new URL(e,t.url).href)).filter(i).map((e=>new URL(e).pathname));let u=[];return s.length>0&&(u=o?yield Fn({url:t.url,props:{[`${V.DAV}:getetag`]:{},[`${V.CARDDAV}:address-data`]:{}},objectUrls:s,depth:"1",headers:r}):yield Rn({url:t.url,props:{[`${V.DAV}:getetag`]:{},[`${V.CARDDAV}:address-data`]:{}},depth:"1",headers:r})),u.map((e=>{var r,n,i,o,a,s;return{url:new URL(null!==(r=e.href)&&void 0!==r?r:"",t.url).href,etag:null===(n=e.props)||void 0===n?void 0:n.getetag,data:null!==(a=null===(o=null===(i=e.props)||void 0===i?void 0:i.addressData)||void 0===o?void 0:o._cdata)&&void 0!==a?a:null===(s=e.props)||void 0===s?void 0:s.addressData}}))})),jn=e=>t(void 0,void 0,void 0,(function*(){const{addressBook:t,vCardString:r,filename:n,headers:i}=e;return pn({url:new URL(n,t.url).href,data:r,headers:Object.assign({"content-type":"text/vcard; charset=utf-8","If-None-Match":"*"},i)})})),Ln=e=>t(void 0,void 0,void 0,(function*(){const{vCard:t,headers:r}=e;return gn({url:t.url,data:t.data,etag:t.etag,headers:Object.assign({"content-type":"text/vcard; charset=utf-8"},r)})})),kn=e=>t(void 0,void 0,void 0,(function*(){const{vCard:t,headers:r}=e;return yn({url:t.url,etag:t.etag,headers:r})}));var In=Object.freeze({__proto__:null,addressBookMultiGet:Fn,addressBookQuery:Rn,createVCard:jn,deleteVCard:kn,fetchAddressBooks:Sn,fetchVCards:Nn,updateVCard:Ln});const Pn=B("tsdav:calendar"),Un=e=>t(void 0,void 0,void 0,(function*(){const{url:t,props:r,filters:n,timezone:i,depth:o,headers:a}=e;return En({url:t,body:{"calendar-query":un({_attributes:sn([U.CALDAV,U.CALENDAR_SERVER,U.CALDAV_APPLE,U.DAV]),[`${V.DAV}:prop`]:r,filter:n,timezone:i})},defaultNamespace:V.CALDAV,depth:o,headers:a})})),Bn=e=>t(void 0,void 0,void 0,(function*(){const{url:t,props:r,objectUrls:n,filters:i,timezone:o,depth:a,headers:s}=e;return En({url:t,body:{"calendar-multiget":Object.assign(Object.assign({_attributes:sn([U.DAV,U.CALDAV]),[`${V.DAV}:prop`]:r,[`${V.DAV}:href`]:n},cn("filter",i)),{timezone:o})},defaultNamespace:V.CALDAV,depth:a,headers:s})})),Mn=e=>t(void 0,void 0,void 0,(function*(){const{url:t,props:r,depth:n,headers:i}=e;return hn({url:t,init:{method:"MKCALENDAR",headers:un(Object.assign({depth:n},i)),namespace:V.DAV,body:{[`${V.CALDAV}:mkcalendar`]:{_attributes:sn([U.DAV,U.CALDAV,U.CALDAV_APPLE]),set:{prop:r}}}}})})),Vn=e=>t(void 0,void 0,void 0,(function*(){const{headers:r,account:n,props:i,projectedProps:o}=null!=e?e:{},a=["homeUrl","rootUrl"];if(!n||!mn(n,a)){if(!n)throw new Error("no account for fetchCalendars");throw new Error(`account must have ${bn(n,a)} before fetchCalendars`)}const s=yield fn({url:n.homeUrl,props:null!=i?i:{[`${V.CALDAV}:calendar-description`]:{},[`${V.CALDAV}:calendar-timezone`]:{},[`${V.DAV}:displayname`]:{},[`${V.CALDAV_APPLE}:calendar-color`]:{},[`${V.CALENDAR_SERVER}:getctag`]:{},[`${V.DAV}:resourcetype`]:{},[`${V.CALDAV}:supported-calendar-component-set`]:{},[`${V.DAV}:sync-token`]:{}},depth:"1",headers:r});return Promise.all(s.filter((e=>{var t,r;return Object.keys(null!==(r=null===(t=e.props)||void 0===t?void 0:t.resourcetype)&&void 0!==r?r:{}).includes("calendar")})).filter((e=>{var t,r,n;return(Array.isArray(null===(t=e.props)||void 0===t?void 0:t.supportedCalendarComponentSet.comp)?null===(r=e.props)||void 0===r?void 0:r.supportedCalendarComponentSet.comp.map((e=>e._attributes.name)):[null===(n=e.props)||void 0===n?void 0:n.supportedCalendarComponentSet.comp._attributes.name]||[]).some((e=>Object.values(K).includes(e)))})).map((e=>{var t,r,i,a,s,u,c,l,d,h,f,p,g,y,v;const m=null===(t=e.props)||void 0===t?void 0:t.calendarDescription,b=null===(r=e.props)||void 0===r?void 0:r.calendarTimezone;return Object.assign({description:"string"==typeof m?m:"",timezone:"string"==typeof b?b:"",url:new URL(null!==(i=e.href)&&void 0!==i?i:"",null!==(a=n.rootUrl)&&void 0!==a?a:"").href,ctag:null===(s=e.props)||void 0===s?void 0:s.getctag,calendarColor:null===(u=e.props)||void 0===u?void 0:u.calendarColor,displayName:null!==(l=null===(c=e.props)||void 0===c?void 0:c.displayname._cdata)&&void 0!==l?l:null===(d=e.props)||void 0===d?void 0:d.displayname,components:Array.isArray(null===(h=e.props)||void 0===h?void 0:h.supportedCalendarComponentSet.comp)?null===(f=e.props)||void 0===f?void 0:f.supportedCalendarComponentSet.comp.map((e=>e._attributes.name)):[null===(p=e.props)||void 0===p?void 0:p.supportedCalendarComponentSet.comp._attributes.name],resourcetype:Object.keys(null===(g=e.props)||void 0===g?void 0:g.resourcetype),syncToken:null===(y=e.props)||void 0===y?void 0:y.syncToken},cn("projectedProps",Object.fromEntries(Object.entries(null!==(v=e.props)&&void 0!==v?v:{}).filter((([e])=>null==o?void 0:o[e])))))})).map((e=>t(void 0,void 0,void 0,(function*(){return Object.assign(Object.assign({},e),{reports:yield Tn({collection:e,headers:r})})})))))})),Kn=e=>t(void 0,void 0,void 0,(function*(){const{calendar:t,objectUrls:r,filters:n,timeRange:i,headers:o,expand:a,urlFilter:s=(e=>Boolean(null==e?void 0:e.includes(".ics"))),useMultiGet:u=!0}=e;if(i){const e=/^\d{4}(-\d\d(-\d\d(T\d\d:\d\d(:\d\d)?(\.\d+)?(([+-]\d\d:\d\d)|Z)?)?)?)?$/i,t=/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(\.\d+)?(([+-]\d\d:\d\d)|Z)?$/i;if(!(e.test(i.start)&&e.test(i.end)||t.test(i.start)&&t.test(i.end)))throw new Error("invalid timeRange format, not in ISO8601")}Pn(`Fetching calendar objects from ${null==t?void 0:t.url}`);const c=["url"];if(!t||!mn(t,c)){if(!t)throw new Error("cannot fetchCalendarObjects for undefined calendar");throw new Error(`calendar must have ${bn(t,c)} before fetchCalendarObjects`)}const l=null!=n?n:[{"comp-filter":{_attributes:{name:"VCALENDAR"},"comp-filter":Object.assign({_attributes:{name:"VEVENT"}},i?{"time-range":{_attributes:{start:`${new Date(i.start).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`,end:`${new Date(i.end).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`}}}:{})}}],d=(null!=r?r:(yield Un({url:t.url,props:{[`${V.DAV}:getetag`]:Object.assign({},a&&i?{[`${V.CALDAV}:expand`]:{_attributes:{start:`${new Date(i.start).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`,end:`${new Date(i.end).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`}}}:{})},filters:l,depth:"1",headers:o})).map((e=>{var t;return null!==(t=e.href)&&void 0!==t?t:""}))).map((e=>e.startsWith("http")||!e?e:new URL(e,t.url).href)).filter(s).map((e=>new URL(e).pathname));let h=[];return d.length>0&&(h=!u||a?yield Un({url:t.url,props:{[`${V.DAV}:getetag`]:{},[`${V.CALDAV}:calendar-data`]:Object.assign({},a&&i?{[`${V.CALDAV}:expand`]:{_attributes:{start:`${new Date(i.start).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`,end:`${new Date(i.end).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`}}}:{})},filters:l,depth:"1",headers:o}):yield Bn({url:t.url,props:{[`${V.DAV}:getetag`]:{},[`${V.CALDAV}:calendar-data`]:Object.assign({},a&&i?{[`${V.CALDAV}:expand`]:{_attributes:{start:`${new Date(i.start).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`,end:`${new Date(i.end).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`}}}:{})},objectUrls:d,depth:"1",headers:o})),h.map((e=>{var r,n,i,o,a,s;return{url:new URL(null!==(r=e.href)&&void 0!==r?r:"",t.url).href,etag:`${null===(n=e.props)||void 0===n?void 0:n.getetag}`,data:null!==(a=null===(o=null===(i=e.props)||void 0===i?void 0:i.calendarData)||void 0===o?void 0:o._cdata)&&void 0!==a?a:null===(s=e.props)||void 0===s?void 0:s.calendarData}}))})),$n=e=>t(void 0,void 0,void 0,(function*(){const{calendar:t,iCalString:r,filename:n,headers:i}=e;return pn({url:new URL(n,t.url).href,data:r,headers:Object.assign({"content-type":"text/calendar; charset=utf-8","If-None-Match":"*"},i)})})),Hn=e=>t(void 0,void 0,void 0,(function*(){const{calendarObject:t,headers:r}=e;return gn({url:t.url,data:t.data,etag:t.etag,headers:Object.assign({"content-type":"text/calendar; charset=utf-8"},r)})})),Yn=e=>t(void 0,void 0,void 0,(function*(){const{calendarObject:t,headers:r}=e;return yn({url:t.url,etag:t.etag,headers:r})})),zn=e=>t(void 0,void 0,void 0,(function*(){var r;const{oldCalendars:n,account:i,detailedResult:o,headers:a}=e;if(!i)throw new Error("Must have account before syncCalendars");const s=null!==(r=null!=n?n:i.calendars)&&void 0!==r?r:[],u=yield Vn({account:i,headers:a}),c=u.filter((e=>s.every((t=>!an(t.url,e.url)))));Pn(`new calendars: ${c.map((e=>e.displayName))}`);const l=s.reduce(((e,t)=>{const r=u.find((e=>an(e.url,t.url)));return r&&(r.syncToken&&r.syncToken!==t.syncToken||r.ctag&&r.ctag!==t.ctag)?[...e,r]:e}),[]);Pn(`updated calendars: ${l.map((e=>e.displayName))}`);const d=yield Promise.all(l.map((e=>t(void 0,void 0,void 0,(function*(){return yield On({collection:Object.assign(Object.assign({},e),{objectMultiGet:Bn}),method:"webdav",headers:a,account:i})}))))),h=s.filter((e=>u.every((t=>!an(t.url,e.url)))));Pn(`deleted calendars: ${h.map((e=>e.displayName))}`);const f=s.filter((e=>u.some((t=>an(t.url,e.url)&&(t.syncToken&&t.syncToken!==e.syncToken||t.ctag&&t.ctag!==e.ctag)))));return o?{created:c,updated:l,deleted:h}:[...f,...c,...d]})),qn=e=>t(void 0,void 0,void 0,(function*(){const{url:t,timeRange:r,depth:n,headers:i}=e;if(!r)throw new Error("timeRange is required");{const e=/^\d{4}(-\d\d(-\d\d(T\d\d:\d\d(:\d\d)?(\.\d+)?(([+-]\d\d:\d\d)|Z)?)?)?)?$/i,t=/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(\.\d+)?(([+-]\d\d:\d\d)|Z)?$/i;if(!(e.test(r.start)&&e.test(r.end)||t.test(r.start)&&t.test(r.end)))throw new Error("invalid timeRange format, not in ISO8601")}return(yield En({url:t,body:{"free-busy-query":un({_attributes:sn([U.CALDAV]),[`${V.CALDAV}:time-range`]:{_attributes:{start:`${new Date(r.start).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`,end:`${new Date(r.end).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`}}})},defaultNamespace:V.CALDAV,depth:n,headers:i}))[0]}));var Gn=Object.freeze({__proto__:null,calendarMultiGet:Bn,calendarQuery:Un,createCalendarObject:$n,deleteCalendarObject:Yn,fetchCalendarObjects:Kn,fetchCalendars:Vn,freeBusyQuery:qn,makeCalendar:Mn,syncCalendars:zn,updateCalendarObject:Hn});const Wn=B("tsdav:account"),Qn=e=>t(void 0,void 0,void 0,(function*(){var t,r;Wn("Service discovery...");const{account:n,headers:i}=e,o=new URL(n.serverUrl),s=new URL(`/.well-known/${n.accountType}`,o);s.protocol=null!==(t=o.protocol)&&void 0!==t?t:"http";try{const e=yield a.fetch(s.href,{headers:i,method:"PROPFIND",redirect:"manual"});if(e.status>=300&&e.status<400){const t=e.headers.get("Location");if("string"==typeof t&&t.length){Wn(`Service discovery redirected to ${t}`);const e=new URL(t,o);return e.hostname===s.hostname&&s.port&&!e.port&&(e.port=s.port),e.protocol=null!==(r=o.protocol)&&void 0!==r?r:"http",e.href}}}catch(e){Wn(`Service discovery failed: ${e.stack}`)}return o.href})),Xn=e=>t(void 0,void 0,void 0,(function*(){var t,r,n,i,o;const{account:a,headers:s}=e,u=["rootUrl"];if(!mn(a,u))throw new Error(`account must have ${bn(a,u)} before fetchPrincipalUrl`);Wn(`Fetching principal url from path ${a.rootUrl}`);const[c]=yield fn({url:a.rootUrl,props:{[`${V.DAV}:current-user-principal`]:{}},depth:"0",headers:s});if(!c.ok&&(Wn(`Fetch principal url failed: ${c.statusText}`),401===c.status))throw new Error("Invalid credentials");return Wn(`Fetched principal url ${null===(r=null===(t=c.props)||void 0===t?void 0:t.currentUserPrincipal)||void 0===r?void 0:r.href}`),new URL(null!==(o=null===(i=null===(n=c.props)||void 0===n?void 0:n.currentUserPrincipal)||void 0===i?void 0:i.href)&&void 0!==o?o:"",a.rootUrl).href})),Zn=e=>t(void 0,void 0,void 0,(function*(){var t,r;const{account:n,headers:i}=e,o=["principalUrl","rootUrl"];if(!mn(n,o))throw new Error(`account must have ${bn(n,o)} before fetchHomeUrl`);Wn(`Fetch home url from ${n.principalUrl}`);const a=(yield fn({url:n.principalUrl,props:"caldav"===n.accountType?{[`${V.CALDAV}:calendar-home-set`]:{}}:{[`${V.CARDDAV}:addressbook-home-set`]:{}},depth:"0",headers:i})).find((e=>an(n.principalUrl,e.href)));if(!a||!a.ok)throw new Error("cannot find homeUrl");const s=new URL("caldav"===n.accountType?null===(t=null==a?void 0:a.props)||void 0===t?void 0:t.calendarHomeSet.href:null===(r=null==a?void 0:a.props)||void 0===r?void 0:r.addressbookHomeSet.href,n.rootUrl).href;return Wn(`Fetched home url ${s}`),s})),Jn=e=>t(void 0,void 0,void 0,(function*(){const{account:r,headers:n,loadCollections:i=!1,loadObjects:o=!1}=e,a=Object.assign({},r);return a.rootUrl=yield Qn({account:r,headers:n}),a.principalUrl=yield Xn({account:a,headers:n}),a.homeUrl=yield Zn({account:a,headers:n}),(i||o)&&("caldav"===r.accountType?a.calendars=yield Vn({headers:n,account:a}):"carddav"===r.accountType&&(a.addressBooks=yield Sn({headers:n,account:a}))),o&&("caldav"===r.accountType&&a.calendars?a.calendars=yield Promise.all(a.calendars.map((e=>t(void 0,void 0,void 0,(function*(){return Object.assign(Object.assign({},e),{objects:yield Kn({calendar:e,headers:n})})}))))):"carddav"===r.accountType&&a.addressBooks&&(a.addressBooks=yield Promise.all(a.addressBooks.map((e=>t(void 0,void 0,void 0,(function*(){return Object.assign(Object.assign({},e),{objects:yield Nn({addressBook:e,headers:n})})}))))))),a}));var ei,ti,ri=Object.freeze({__proto__:null,createAccount:Jn,fetchHomeUrl:Zn,fetchPrincipalUrl:Xn,serviceDiscovery:Qn}),ni={exports:{}};ei=ni,ti=ni.exports,function(e){var t=ti,n=ei&&ei.exports==t&&ei,i="object"==typeof r&&r;i.global!==i&&i.window!==i||(e=i);var o=function(e){this.message=e};(o.prototype=new Error).name="InvalidCharacterError";var a=function(e){throw new o(e)},s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",u=/[\t\n\f\r ]/g,c={encode:function(e){e=String(e),/[^\0-\xFF]/.test(e)&&a("The string to be encoded contains characters outside of the Latin1 range.");for(var t,r,n,i,o=e.length%3,u="",c=-1,l=e.length-o;++c>18&63)+s.charAt(i>>12&63)+s.charAt(i>>6&63)+s.charAt(63&i);return 2==o?(t=e.charCodeAt(c)<<8,r=e.charCodeAt(++c),u+=s.charAt((i=t+r)>>10)+s.charAt(i>>4&63)+s.charAt(i<<2&63)+"="):1==o&&(i=e.charCodeAt(c),u+=s.charAt(i>>2)+s.charAt(i<<4&63)+"=="),u},decode:function(e){var t=(e=String(e).replace(u,"")).length;t%4==0&&(t=(e=e.replace(/==?$/,"")).length),(t%4==1||/[^+a-zA-Z0-9/]/.test(e))&&a("Invalid character: the string to be decoded is not correctly encoded.");for(var r,n,i=0,o="",c=-1;++c>(-2*i&6)));return o},version:"1.0.0"};if(t&&!t.nodeType)if(n)n.exports=c;else for(var l in c)c.hasOwnProperty(l)&&(t[l]=c[l]);else e.base64=c}(r);var ii=ni.exports;const oi=B("tsdav:authHelper"),ai=(e,t)=>(...r)=>e(Object.assign(Object.assign({},t),r[0])),si=e=>(oi(`Basic auth token generated: ${ii.encode(`${e.username}:${e.password}`)}`),{authorization:`Basic ${ii.encode(`${e.username}:${e.password}`)}`}),ui=e=>t(void 0,void 0,void 0,(function*(){const t=["authorizationCode","redirectUrl","clientId","clientSecret","tokenUrl"];if(!mn(e,t))throw new Error(`Oauth credentials missing: ${bn(e,t)}`);const r=new URLSearchParams({grant_type:"authorization_code",code:e.authorizationCode,redirect_uri:e.redirectUrl,client_id:e.clientId,client_secret:e.clientSecret});oi(e.tokenUrl),oi(r.toString());const n=yield a.fetch(e.tokenUrl,{method:"POST",body:r.toString(),headers:{"content-length":`${r.toString().length}`,"content-type":"application/x-www-form-urlencoded"}});if(n.ok){return yield n.json()}return oi(`Fetch Oauth tokens failed: ${yield n.text()}`),{}})),ci=e=>t(void 0,void 0,void 0,(function*(){const t=["refreshToken","clientId","clientSecret","tokenUrl"];if(!mn(e,t))throw new Error(`Oauth credentials missing: ${bn(e,t)}`);const r=new URLSearchParams({client_id:e.clientId,client_secret:e.clientSecret,refresh_token:e.refreshToken,grant_type:"refresh_token"}),n=yield a.fetch(e.tokenUrl,{method:"POST",body:r.toString(),headers:{"Content-Type":"application/x-www-form-urlencoded"}});if(n.ok){return yield n.json()}return oi(`Refresh access token failed: ${yield n.text()}`),{}})),li=e=>t(void 0,void 0,void 0,(function*(){var t;oi("Fetching oauth headers");let r={};return e.refreshToken?(e.refreshToken&&!e.accessToken||Date.now()>(null!==(t=e.expiration)&&void 0!==t?t:0))&&(r=yield ci(e)):r=yield ui(e),oi(`Oauth tokens fetched: ${r.access_token}`),{tokens:r,headers:{authorization:`Bearer ${r.access_token}`}}}));var di=Object.freeze({__proto__:null,defaultParam:ai,fetchOauthTokens:ui,getBasicAuthHeaders:si,getOauthHeaders:li,refreshAccessToken:ci});const hi=r=>t(void 0,void 0,void 0,(function*(){var n;const{serverUrl:i,credentials:o,authMethod:a,defaultAccountType:s,authFunction:u}=r;let c={};switch(a){case"Basic":c=si(o);break;case"Oauth":c=(yield li(o)).headers;break;case"Digest":c={Authorization:`Digest ${o.digestString}`};break;case"Custom":c=null!==(n=yield null==u?void 0:u(o))&&void 0!==n?n:{};break;default:throw new Error("Invalid auth method")}const l=s?yield Jn({account:{serverUrl:i,credentials:o,accountType:s},headers:c}):void 0,d=ai(pn,{url:i,headers:c}),h=ai(gn,{headers:c,url:i}),f=ai(yn,{headers:c,url:i}),p=ai(fn,{headers:c}),g=ai(En,{headers:c}),y=ai(An,{headers:c}),v=ai(Cn,{headers:c}),m=ai(Tn,{headers:c}),b=ai(_n,{headers:c}),w=ai(On,{headers:c,account:l}),E=ai(Un,{headers:c}),A=ai(Bn,{headers:c}),T=ai(Mn,{headers:c}),_=ai(Vn,{headers:c,account:l}),C=ai(Kn,{headers:c}),O=ai($n,{headers:c}),D=ai(Hn,{headers:c}),x=ai(Yn,{headers:c}),R=ai(zn,{account:l,headers:c}),F=ai(Rn,{headers:c}),S=ai(Fn,{headers:c});return{davRequest:r=>t(void 0,void 0,void 0,(function*(){const{init:t}=r,n=e(r,["init"]),{headers:i}=t,o=e(t,["headers"]);return hn(Object.assign(Object.assign({},n),{init:Object.assign(Object.assign({},o),{headers:Object.assign(Object.assign({},c),i)})}))})),propfind:p,createAccount:e=>t(void 0,void 0,void 0,(function*(){const{account:t,headers:r,loadCollections:n,loadObjects:a}=e;return Jn({account:Object.assign({serverUrl:i,credentials:o},t),headers:Object.assign(Object.assign({},c),r),loadCollections:n,loadObjects:a})})),createObject:d,updateObject:h,deleteObject:f,calendarQuery:E,addressBookQuery:F,collectionQuery:g,makeCollection:y,calendarMultiGet:A,makeCalendar:T,syncCollection:v,supportedReportSet:m,isCollectionDirty:b,smartCollectionSync:w,fetchCalendars:_,fetchCalendarObjects:C,createCalendarObject:O,updateCalendarObject:D,deleteCalendarObject:x,syncCalendars:R,fetchAddressBooks:ai(Sn,{account:l,headers:c}),addressBookMultiGet:S,fetchVCards:ai(Nn,{headers:c}),createVCard:ai(jn,{headers:c}),updateVCard:ai(Ln,{headers:c}),deleteVCard:ai(kn,{headers:c})}}));class fi{constructor(e){var t,r;this.serverUrl=e.serverUrl,this.credentials=e.credentials,this.authMethod=null!==(t=e.authMethod)&&void 0!==t?t:"Basic",this.accountType=null!==(r=e.defaultAccountType)&&void 0!==r?r:"caldav"}login(){var e;return t(this,void 0,void 0,(function*(){switch(this.authMethod){case"Basic":this.authHeaders=si(this.credentials);break;case"Oauth":this.authHeaders=(yield li(this.credentials)).headers;break;case"Digest":this.authHeaders={Authorization:`Digest ${this.credentials.digestString}`};break;case"Custom":this.authHeaders=yield null===(e=this.authFunction)||void 0===e?void 0:e.call(this,this.credentials);break;default:throw new Error("Invalid auth method")}this.account=this.accountType?yield Jn({account:{serverUrl:this.serverUrl,credentials:this.credentials,accountType:this.accountType},headers:this.authHeaders}):void 0}))}davRequest(r){return t(this,void 0,void 0,(function*(){const{init:t}=r,n=e(r,["init"]),{headers:i}=t,o=e(t,["headers"]);return hn(Object.assign(Object.assign({},n),{init:Object.assign(Object.assign({},o),{headers:Object.assign(Object.assign({},this.authHeaders),i)})}))}))}createObject(...e){return t(this,void 0,void 0,(function*(){return ai(pn,{url:this.serverUrl,headers:this.authHeaders})(e[0])}))}updateObject(...e){return t(this,void 0,void 0,(function*(){return ai(gn,{headers:this.authHeaders,url:this.serverUrl})(e[0])}))}deleteObject(...e){return t(this,void 0,void 0,(function*(){return ai(yn,{headers:this.authHeaders,url:this.serverUrl})(e[0])}))}propfind(...e){return t(this,void 0,void 0,(function*(){return ai(fn,{headers:this.authHeaders})(e[0])}))}createAccount(e){return t(this,void 0,void 0,(function*(){const{account:t,headers:r,loadCollections:n,loadObjects:i}=e;return Jn({account:Object.assign({serverUrl:this.serverUrl,credentials:this.credentials},t),headers:Object.assign(Object.assign({},this.authHeaders),r),loadCollections:n,loadObjects:i})}))}collectionQuery(...e){return t(this,void 0,void 0,(function*(){return ai(En,{headers:this.authHeaders})(e[0])}))}makeCollection(...e){return t(this,void 0,void 0,(function*(){return ai(An,{headers:this.authHeaders})(e[0])}))}syncCollection(...e){return t(this,void 0,void 0,(function*(){return ai(Cn,{headers:this.authHeaders})(e[0])}))}supportedReportSet(...e){return t(this,void 0,void 0,(function*(){return ai(Tn,{headers:this.authHeaders})(e[0])}))}isCollectionDirty(...e){return t(this,void 0,void 0,(function*(){return ai(_n,{headers:this.authHeaders})(e[0])}))}smartCollectionSync(...e){return t(this,void 0,void 0,(function*(){return ai(On,{headers:this.authHeaders,account:this.account})(e[0])}))}calendarQuery(...e){return t(this,void 0,void 0,(function*(){return ai(Un,{headers:this.authHeaders})(e[0])}))}makeCalendar(...e){return t(this,void 0,void 0,(function*(){return ai(Mn,{headers:this.authHeaders})(e[0])}))}calendarMultiGet(...e){return t(this,void 0,void 0,(function*(){return ai(Bn,{headers:this.authHeaders})(e[0])}))}fetchCalendars(...e){return t(this,void 0,void 0,(function*(){return ai(Vn,{headers:this.authHeaders,account:this.account})(null==e?void 0:e[0])}))}fetchCalendarObjects(...e){return t(this,void 0,void 0,(function*(){return ai(Kn,{headers:this.authHeaders})(e[0])}))}createCalendarObject(...e){return t(this,void 0,void 0,(function*(){return ai($n,{headers:this.authHeaders})(e[0])}))}updateCalendarObject(...e){return t(this,void 0,void 0,(function*(){return ai(Hn,{headers:this.authHeaders})(e[0])}))}deleteCalendarObject(...e){return t(this,void 0,void 0,(function*(){return ai(Yn,{headers:this.authHeaders})(e[0])}))}syncCalendars(...e){return t(this,void 0,void 0,(function*(){return ai(zn,{headers:this.authHeaders,account:this.account})(e[0])}))}addressBookQuery(...e){return t(this,void 0,void 0,(function*(){return ai(Rn,{headers:this.authHeaders})(e[0])}))}addressBookMultiGet(...e){return t(this,void 0,void 0,(function*(){return ai(Fn,{headers:this.authHeaders})(e[0])}))}fetchAddressBooks(...e){return t(this,void 0,void 0,(function*(){return ai(Sn,{headers:this.authHeaders,account:this.account})(null==e?void 0:e[0])}))}fetchVCards(...e){return t(this,void 0,void 0,(function*(){return ai(Nn,{headers:this.authHeaders})(e[0])}))}createVCard(...e){return t(this,void 0,void 0,(function*(){return ai(jn,{headers:this.authHeaders})(e[0])}))}updateVCard(...e){return t(this,void 0,void 0,(function*(){return ai(Ln,{headers:this.authHeaders})(e[0])}))}deleteVCard(...e){return t(this,void 0,void 0,(function*(){return ai(kn,{headers:this.authHeaders})(e[0])}))}}var pi=Object.freeze({__proto__:null,DAVClient:fi,createDAVClient:hi}),gi=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({DAVNamespace:U,DAVNamespaceShort:V,DAVAttributeMap:M},pi),vn),Dn),ri),In),Gn),di),ln);export{M as DAVAttributeMap,fi as DAVClient,U as DAVNamespace,V as DAVNamespaceShort,Rn as addressBookQuery,Bn as calendarMultiGet,Un as calendarQuery,un as cleanupFalsy,En as collectionQuery,Jn as createAccount,$n as createCalendarObject,hi as createDAVClient,pn as createObject,jn as createVCard,hn as davRequest,gi as default,Yn as deleteCalendarObject,yn as deleteObject,kn as deleteVCard,Sn as fetchAddressBooks,Kn as fetchCalendarObjects,Vn as fetchCalendars,ui as fetchOauthTokens,Nn as fetchVCards,qn as freeBusyQuery,si as getBasicAuthHeaders,sn as getDAVAttribute,li as getOauthHeaders,_n as isCollectionDirty,Mn as makeCalendar,fn as propfind,ci as refreshAccessToken,On as smartCollectionSync,Tn as supportedReportSet,zn as syncCalendars,Cn as syncCollection,Hn as updateCalendarObject,gn as updateObject,Ln as updateVCard,an as urlContains,on as urlEquals}; +function e(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols(e);i-1};function l(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(e)||""===e)throw new TypeError('Invalid character in header field name: "'+e+'"');return e.toLowerCase()}function d(e){return"string"!=typeof e&&(e=String(e)),e}function h(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return i&&(t[Symbol.iterator]=function(){return t}),t}function f(e){this.map={},e instanceof f?e.forEach((function(e,t){this.append(t,e)}),this):Array.isArray(e)?e.forEach((function(e){this.append(e[0],e[1])}),this):e&&Object.getOwnPropertyNames(e).forEach((function(t){this.append(t,e[t])}),this)}function p(e){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}function g(e){return new Promise((function(t,r){e.onload=function(){t(e.result)},e.onerror=function(){r(e.error)}}))}function y(e){var t=new FileReader,r=g(t);return t.readAsArrayBuffer(e),r}function v(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function m(){return this.bodyUsed=!1,this._initBody=function(e){var t;this.bodyUsed=this.bodyUsed,this._bodyInit=e,e?"string"==typeof e?this._bodyText=e:o&&Blob.prototype.isPrototypeOf(e)?this._bodyBlob=e:a&&FormData.prototype.isPrototypeOf(e)?this._bodyFormData=e:n&&URLSearchParams.prototype.isPrototypeOf(e)?this._bodyText=e.toString():s&&o&&((t=e)&&DataView.prototype.isPrototypeOf(t))?(this._bodyArrayBuffer=v(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):s&&(ArrayBuffer.prototype.isPrototypeOf(e)||c(e))?this._bodyArrayBuffer=v(e):this._bodyText=e=Object.prototype.toString.call(e):this._bodyText="",this.headers.get("content-type")||("string"==typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):n&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},o&&(this.blob=function(){var e=p(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){if(this._bodyArrayBuffer){var e=p(this);return e||(ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer))}return this.blob().then(y)}),this.text=function(){var e,t,r,n=p(this);if(n)return n;if(this._bodyBlob)return e=this._bodyBlob,t=new FileReader,r=g(t),t.readAsText(e),r;if(this._bodyArrayBuffer)return Promise.resolve(function(e){for(var t=new Uint8Array(e),r=new Array(t.length),n=0;n-1?t:e}(t.method||this.method||"GET"),this.mode=t.mode||this.mode||null,this.signal=t.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&r)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(r),!("GET"!==this.method&&"HEAD"!==this.method||"no-store"!==t.cache&&"no-cache"!==t.cache)){var n=/([?&])_=[^&]*/;if(n.test(this.url))this.url=this.url.replace(n,"$1_="+(new Date).getTime());else{this.url+=(/\?/.test(this.url)?"&":"?")+"_="+(new Date).getTime()}}}function E(e){var t=new FormData;return e.trim().split("&").forEach((function(e){if(e){var r=e.split("="),n=r.shift().replace(/\+/g," "),i=r.join("=").replace(/\+/g," ");t.append(decodeURIComponent(n),decodeURIComponent(i))}})),t}function A(e,t){if(!(this instanceof A))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');t||(t={}),this.type="default",this.status=void 0===t.status?200:t.status,this.ok=this.status>=200&&this.status<300,this.statusText=void 0===t.statusText?"":""+t.statusText,this.headers=new f(t.headers),this.url=t.url||"",this._initBody(e)}w.prototype.clone=function(){return new w(this,{body:this._bodyInit})},m.call(w.prototype),m.call(A.prototype),A.prototype.clone=function(){return new A(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new f(this.headers),url:this.url})},A.error=function(){var e=new A(null,{status:0,statusText:""});return e.type="error",e};var T=[301,302,303,307,308];A.redirect=function(e,t){if(-1===T.indexOf(t))throw new RangeError("Invalid status code");return new A(null,{status:t,headers:{location:e}})},t.DOMException=r.DOMException;try{new t.DOMException}catch(e){t.DOMException=function(e,t){this.message=e,this.name=t;var r=Error(e);this.stack=r.stack},t.DOMException.prototype=Object.create(Error.prototype),t.DOMException.prototype.constructor=t.DOMException}function _(e,n){return new Promise((function(i,a){var u=new w(e,n);if(u.signal&&u.signal.aborted)return a(new t.DOMException("Aborted","AbortError"));var c=new XMLHttpRequest;function l(){c.abort()}c.onload=function(){var e,t,r={status:c.status,statusText:c.statusText,headers:(e=c.getAllResponseHeaders()||"",t=new f,e.replace(/\r?\n[\t ]+/g," ").split("\r").map((function(e){return 0===e.indexOf("\n")?e.substr(1,e.length):e})).forEach((function(e){var r=e.split(":"),n=r.shift().trim();if(n){var i=r.join(":").trim();t.append(n,i)}})),t)};r.url="responseURL"in c?c.responseURL:r.headers.get("X-Request-URL");var n="response"in c?c.response:c.responseText;setTimeout((function(){i(new A(n,r))}),0)},c.onerror=function(){setTimeout((function(){a(new TypeError("Network request failed"))}),0)},c.ontimeout=function(){setTimeout((function(){a(new TypeError("Network request failed"))}),0)},c.onabort=function(){setTimeout((function(){a(new t.DOMException("Aborted","AbortError"))}),0)},c.open(u.method,function(e){try{return""===e&&r.location.href?r.location.href:e}catch(t){return e}}(u.url),!0),"include"===u.credentials?c.withCredentials=!0:"omit"===u.credentials&&(c.withCredentials=!1),"responseType"in c&&(o?c.responseType="blob":s&&u.headers.get("Content-Type")&&-1!==u.headers.get("Content-Type").indexOf("application/octet-stream")&&(c.responseType="arraybuffer")),!n||"object"!=typeof n.headers||n.headers instanceof f?u.headers.forEach((function(e,t){c.setRequestHeader(t,e)})):Object.getOwnPropertyNames(n.headers).forEach((function(e){c.setRequestHeader(e,d(n.headers[e]))})),u.signal&&(u.signal.addEventListener("abort",l),c.onreadystatechange=function(){4===c.readyState&&u.signal.removeEventListener("abort",l)}),c.send(void 0===u._bodyInit?null:u._bodyInit)}))}_.polyfill=!0,r.fetch||(r.fetch=_,r.Headers=f,r.Request=w,r.Response=A),t.Headers=f,t.Request=w,t.Response=A,t.fetch=_}({})}(i),i.fetch.ponyfill=!0,delete i.fetch.polyfill;var o=n.fetch?n:i;(t=o.fetch).default=o.fetch,t.fetch=o.fetch,t.Headers=o.Headers,t.Request=o.Request,t.Response=o.Response,e.exports=t}(o,o.exports);var a=o.exports,s="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{};function u(){throw new Error("setTimeout has not been defined")}function c(){throw new Error("clearTimeout has not been defined")}var l=u,d=c;function h(e){if(l===setTimeout)return setTimeout(e,0);if((l===u||!l)&&setTimeout)return l=setTimeout,setTimeout(e,0);try{return l(e,0)}catch(t){try{return l.call(null,e,0)}catch(t){return l.call(this,e,0)}}}"function"==typeof s.setTimeout&&(l=setTimeout),"function"==typeof s.clearTimeout&&(d=clearTimeout);var f,p=[],g=!1,y=-1;function v(){g&&f&&(g=!1,f.length?p=f.concat(p):y=-1,p.length&&m())}function m(){if(!g){var e=h(v);g=!0;for(var t=p.length;t;){for(f=p,p=[];++y1)for(var r=1;r=1.5*r;return Math.round(e/r)+" "+n+(i?"s":"")}return N=function(s,u){u=u||{};var c=typeof s;if("string"===c&&s.length>0)return function(a){if((a=String(a)).length>100)return;var s=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(a);if(!s)return;var u=parseFloat(s[1]);switch((s[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return u*o;case"weeks":case"week":case"w":return u*i;case"days":case"day":case"d":return u*n;case"hours":case"hour":case"hrs":case"hr":case"h":return u*r;case"minutes":case"minute":case"mins":case"min":case"m":return u*t;case"seconds":case"second":case"secs":case"sec":case"s":return u*e;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return u;default:return}}(s);if("number"===c&&isFinite(s))return u.long?function(i){var o=Math.abs(i);if(o>=n)return a(i,o,n,"day");if(o>=r)return a(i,o,r,"hour");if(o>=t)return a(i,o,t,"minute");if(o>=e)return a(i,o,e,"second");return i+" ms"}(s):function(i){var o=Math.abs(i);if(o>=n)return Math.round(i/n)+"d";if(o>=r)return Math.round(i/r)+"h";if(o>=t)return Math.round(i/t)+"m";if(o>=e)return Math.round(i/e)+"s";return i+"ms"}(s);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(s))},N}var P=function(e){function t(e){let n,i,o,a=null;function s(...e){if(!s.enabled)return;const r=s,i=Number(new Date),o=i-(n||i);r.diff=o,r.prev=n,r.curr=i,n=i,e[0]=t.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let a=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,((n,i)=>{if("%%"===n)return"%";a++;const o=t.formatters[i];if("function"==typeof o){const t=e[a];n=o.call(r,t),e.splice(a,1),a--}return n})),t.formatArgs.call(r,e);(r.log||t.log).apply(r,e)}return s.namespace=e,s.useColors=t.useColors(),s.color=t.selectColor(e),s.extend=r,s.destroy=t.destroy,Object.defineProperty(s,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==a?a:(i!==t.namespaces&&(i=t.namespaces,o=t.enabled(e)),o),set:e=>{a=e}}),"function"==typeof t.init&&t.init(s),s}function r(e,r){const n=t(this.namespace+(void 0===r?":":r)+e);return n.log=this.log,n}function n(e){return e.toString().substring(2,e.toString().length-2).replace(/\.\*\?$/,"*")}return t.debug=t,t.default=t,t.coerce=function(e){if(e instanceof Error)return e.stack||e.message;return e},t.disable=function(){const e=[...t.names.map(n),...t.skips.map(n).map((e=>"-"+e))].join(",");return t.enable(""),e},t.enable=function(e){let r;t.save(e),t.namespaces=e,t.names=[],t.skips=[];const n=("string"==typeof e?e:"").split(/[\s,]+/),i=n.length;for(r=0;r{t[r]=e[r]})),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let r=0;for(let t=0;t{"%%"!==e&&(n++,"%c"===e&&(i=n))})),t.splice(i,0,r)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(e){}},t.load=function(){let e;try{e=t.storage.getItem("debug")}catch(e){}!e&&void 0!==L&&"env"in L&&(e=L.env.DEBUG);return e},t.useColors=function(){if("undefined"!=typeof window&&window.process&&("renderer"===window.process.type||window.process.__nwjs))return!0;if("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;return"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},t.storage=function(){try{return localStorage}catch(e){}}(),t.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.log=console.debug||console.log||(()=>{}),e.exports=P(t);const{formatters:r}=e.exports;r.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}}(k,k.exports);var U,B=n(k.exports);!function(e){e.CALENDAR_SERVER="http://calendarserver.org/ns/",e.CALDAV_APPLE="http://apple.com/ns/ical/",e.CALDAV="urn:ietf:params:xml:ns:caldav",e.CARDDAV="urn:ietf:params:xml:ns:carddav",e.DAV="DAV:"}(U||(U={}));const M={[U.CALDAV]:"xmlns:c",[U.CARDDAV]:"xmlns:card",[U.CALENDAR_SERVER]:"xmlns:cs",[U.CALDAV_APPLE]:"xmlns:ca",[U.DAV]:"xmlns:d"};var V,K;!function(e){e.CALDAV="c",e.CARDDAV="card",e.CALENDAR_SERVER="cs",e.CALDAV_APPLE="ca",e.DAV="d"}(V||(V={})),function(e){e.VEVENT="VEVENT",e.VTODO="VTODO",e.VJOURNAL="VJOURNAL",e.VFREEBUSY="VFREEBUSY",e.VTIMEZONE="VTIMEZONE",e.VALARM="VALARM"}(K||(K={}));var $=[],H=[],Y="undefined"!=typeof Uint8Array?Uint8Array:Array,z=!1;function q(){z=!0;for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=0,r=e.length;t>18&63]+$[i>>12&63]+$[i>>6&63]+$[63&i]);return o.join("")}function W(e){var t;z||q();for(var r=e.length,n=r%3,i="",o=[],a=16383,s=0,u=r-n;su?u:s+a));return 1===n?(t=e[r-1],i+=$[t>>2],i+=$[t<<4&63],i+="=="):2===n&&(t=(e[r-2]<<8)+e[r-1],i+=$[t>>10],i+=$[t>>4&63],i+=$[t<<2&63],i+="="),o.push(i),o.join("")}function Q(e,t,r,n,i){var o,a,s=8*i-n-1,u=(1<>1,l=-7,d=r?i-1:0,h=r?-1:1,f=e[t+d];for(d+=h,o=f&(1<<-l)-1,f>>=-l,l+=s;l>0;o=256*o+e[t+d],d+=h,l-=8);for(a=o&(1<<-l)-1,o>>=-l,l+=n;l>0;a=256*a+e[t+d],d+=h,l-=8);if(0===o)o=1-c;else{if(o===u)return a?NaN:1/0*(f?-1:1);a+=Math.pow(2,n),o-=c}return(f?-1:1)*a*Math.pow(2,o-n)}function X(e,t,r,n,i,o){var a,s,u,c=8*o-i-1,l=(1<>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=n?0:o-1,p=n?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-a))<1&&(a--,u*=2),(t+=a+d>=1?h/u:h*Math.pow(2,1-d))*u>=2&&(a++,u/=2),a+d>=l?(s=0,a=l):a+d>=1?(s=(t*u-1)*Math.pow(2,i),a+=d):(s=t*Math.pow(2,d-1)*Math.pow(2,i),a=0));i>=8;e[r+f]=255&s,f+=p,s/=256,i-=8);for(a=a<0;e[r+f]=255&a,f+=p,a/=256,c-=8);e[r+f-p]|=128*g}var Z={}.toString,J=Array.isArray||function(e){return"[object Array]"==Z.call(e)};function ee(){return re.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function te(e,t){if(ee()=ee())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+ee().toString(16)+" bytes");return 0|e}function ue(e){return!(null==e||!e._isBuffer)}function ce(e,t){if(ue(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return ke(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return Ie(e).length;default:if(n)return ke(e).length;t=(""+t).toLowerCase(),n=!0}}function le(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return _e(this,t,r);case"utf8":case"utf-8":return Ee(this,t,r);case"ascii":return Ae(this,t,r);case"latin1":case"binary":return Te(this,t,r);case"base64":return we(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Ce(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function de(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function he(e,t,r,n,i){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof t&&(t=re.from(t,n)),ue(t))return 0===t.length?-1:fe(e,t,r,n,i);if("number"==typeof t)return t&=255,re.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):fe(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function fe(e,t,r,n,i){var o,a=1,s=e.length,u=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;a=2,s/=2,u/=2,r/=2}function c(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(i){var l=-1;for(o=r;os&&(r=s-u),o=r;o>=0;o--){for(var d=!0,h=0;hi&&(n=i):n=i;var o=t.length;if(o%2!=0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var a=0;a>8,i=r%256,o.push(i),o.push(n);return o}(t,e.length-r),e,r,n)}function we(e,t,r){return 0===t&&r===e.length?W(e):W(e.slice(t,r))}function Ee(e,t,r){r=Math.min(e.length,r);for(var n=[],i=t;i239?4:c>223?3:c>191?2:1;if(i+d<=r)switch(d){case 1:c<128&&(l=c);break;case 2:128==(192&(o=e[i+1]))&&(u=(31&c)<<6|63&o)>127&&(l=u);break;case 3:o=e[i+1],a=e[i+2],128==(192&o)&&128==(192&a)&&(u=(15&c)<<12|(63&o)<<6|63&a)>2047&&(u<55296||u>57343)&&(l=u);break;case 4:o=e[i+1],a=e[i+2],s=e[i+3],128==(192&o)&&128==(192&a)&&128==(192&s)&&(u=(15&c)<<18|(63&o)<<12|(63&a)<<6|63&s)>65535&&u<1114112&&(l=u)}null===l?(l=65533,d=1):l>65535&&(l-=65536,n.push(l>>>10&1023|55296),l=56320|1023&l),n.push(l),i+=d}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var r="",n=0;for(;n0&&(e=this.toString("hex",0,50).match(/.{2}/g).join(" "),this.length>50&&(e+=" ... ")),""},re.prototype.compare=function(e,t,r,n,i){if(!ue(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(this===e)return 0;for(var o=(i>>>=0)-(n>>>=0),a=(r>>>=0)-(t>>>=0),s=Math.min(o,a),u=this.slice(n,i),c=e.slice(t,r),l=0;li)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return pe(this,e,t,r);case"utf8":case"utf-8":return ge(this,e,t,r);case"ascii":return ye(this,e,t,r);case"latin1":case"binary":return ve(this,e,t,r);case"base64":return me(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return be(this,e,t,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},re.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Ae(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;in)&&(r=n);for(var i="",o=t;or)throw new RangeError("Trying to access beyond buffer length")}function De(e,t,r,n,i,o){if(!ue(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function xe(e,t,r,n){t<0&&(t=65535+t+1);for(var i=0,o=Math.min(e.length-r,2);i>>8*(n?i:1-i)}function Re(e,t,r,n){t<0&&(t=4294967295+t+1);for(var i=0,o=Math.min(e.length-r,4);i>>8*(n?i:3-i)&255}function Se(e,t,r,n,i,o){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function Fe(e,t,r,n,i){return i||Se(e,0,r,4),X(e,t,r,n,23,4),r+4}function Ne(e,t,r,n,i){return i||Se(e,0,r,8),X(e,t,r,n,52,8),r+8}re.prototype.slice=function(e,t){var r,n=this.length;if((e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t0&&(i*=256);)n+=this[e+--t]*i;return n},re.prototype.readUInt8=function(e,t){return t||Oe(e,1,this.length),this[e]},re.prototype.readUInt16LE=function(e,t){return t||Oe(e,2,this.length),this[e]|this[e+1]<<8},re.prototype.readUInt16BE=function(e,t){return t||Oe(e,2,this.length),this[e]<<8|this[e+1]},re.prototype.readUInt32LE=function(e,t){return t||Oe(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},re.prototype.readUInt32BE=function(e,t){return t||Oe(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},re.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||Oe(e,t,this.length);for(var n=this[e],i=1,o=0;++o=(i*=128)&&(n-=Math.pow(2,8*t)),n},re.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||Oe(e,t,this.length);for(var n=t,i=1,o=this[e+--n];n>0&&(i*=256);)o+=this[e+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*t)),o},re.prototype.readInt8=function(e,t){return t||Oe(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},re.prototype.readInt16LE=function(e,t){t||Oe(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},re.prototype.readInt16BE=function(e,t){t||Oe(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},re.prototype.readInt32LE=function(e,t){return t||Oe(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},re.prototype.readInt32BE=function(e,t){return t||Oe(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},re.prototype.readFloatLE=function(e,t){return t||Oe(e,4,this.length),Q(this,e,!0,23,4)},re.prototype.readFloatBE=function(e,t){return t||Oe(e,4,this.length),Q(this,e,!1,23,4)},re.prototype.readDoubleLE=function(e,t){return t||Oe(e,8,this.length),Q(this,e,!0,52,8)},re.prototype.readDoubleBE=function(e,t){return t||Oe(e,8,this.length),Q(this,e,!1,52,8)},re.prototype.writeUIntLE=function(e,t,r,n){(e=+e,t|=0,r|=0,n)||De(this,e,t,r,Math.pow(2,8*r)-1,0);var i=1,o=0;for(this[t]=255&e;++o=0&&(o*=256);)this[t+i]=e/o&255;return t+r},re.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||De(this,e,t,1,255,0),re.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},re.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||De(this,e,t,2,65535,0),re.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):xe(this,e,t,!0),t+2},re.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||De(this,e,t,2,65535,0),re.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):xe(this,e,t,!1),t+2},re.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||De(this,e,t,4,4294967295,0),re.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):Re(this,e,t,!0),t+4},re.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||De(this,e,t,4,4294967295,0),re.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):Re(this,e,t,!1),t+4},re.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);De(this,e,t,r,i-1,-i)}var o=0,a=1,s=0;for(this[t]=255&e;++o>0)-s&255;return t+r},re.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);De(this,e,t,r,i-1,-i)}var o=r-1,a=1,s=0;for(this[t+o]=255&e;--o>=0&&(a*=256);)e<0&&0===s&&0!==this[t+o+1]&&(s=1),this[t+o]=(e/a>>0)-s&255;return t+r},re.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||De(this,e,t,1,127,-128),re.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},re.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||De(this,e,t,2,32767,-32768),re.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):xe(this,e,t,!0),t+2},re.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||De(this,e,t,2,32767,-32768),re.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):xe(this,e,t,!1),t+2},re.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||De(this,e,t,4,2147483647,-2147483648),re.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):Re(this,e,t,!0),t+4},re.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||De(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),re.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):Re(this,e,t,!1),t+4},re.prototype.writeFloatLE=function(e,t,r){return Fe(this,e,t,!0,r)},re.prototype.writeFloatBE=function(e,t,r){return Fe(this,e,t,!1,r)},re.prototype.writeDoubleLE=function(e,t,r){return Ne(this,e,t,!0,r)},re.prototype.writeDoubleBE=function(e,t,r){return Ne(this,e,t,!1,r)},re.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t=0;--i)e[i+t]=this[i+r];else if(o<1e3||!re.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(o=t;o55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(a+1===n){(t-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function Ie(e){return function(e){var t,r,n,i,o,a;z||q();var s=e.length;if(s%4>0)throw new Error("Invalid string. Length must be a multiple of 4");o="="===e[s-2]?2:"="===e[s-1]?1:0,a=new Y(3*s/4-o),n=o>0?s-4:s;var u=0;for(t=0,r=0;t>16&255,a[u++]=i>>8&255,a[u++]=255&i;return 2===o?(i=H[e.charCodeAt(t)]<<2|H[e.charCodeAt(t+1)]>>4,a[u++]=255&i):1===o&&(i=H[e.charCodeAt(t)]<<10|H[e.charCodeAt(t+1)]<<4|H[e.charCodeAt(t+2)]>>2,a[u++]=i>>8&255,a[u++]=255&i),a}(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(je,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function Pe(e,t,r,n){for(var i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function Ue(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}var Be={};function Me(){}function Ve(){Ve.init.call(this)}function Ke(e){return void 0===e._maxListeners?Ve.defaultMaxListeners:e._maxListeners}function $e(e,t,r){if(t)e.call(r);else for(var n=e.length,i=Xe(e,n),o=0;o0&&a.length>i){a.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+t+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=e,u.type=t,u.count=a.length,s=u,"function"==typeof console.warn?console.warn(s):console.log(s)}}else a=o[t]=r,++e._eventsCount;return e}function We(e,t,r){var n=!1;function i(){e.removeListener(t,i),n||(n=!0,r.apply(e,arguments))}return i.listener=r,i}function Qe(e){var t=this._events;if(t){var r=t[e];if("function"==typeof r)return 1;if(r)return r.length}return 0}function Xe(e,t){for(var r=new Array(t);t--;)r[t]=e[t];return r}Me.prototype=Object.create(null),Ve.EventEmitter=Ve,Ve.usingDomains=!1,Ve.prototype.domain=void 0,Ve.prototype._events=void 0,Ve.prototype._maxListeners=void 0,Ve.defaultMaxListeners=10,Ve.init=function(){this.domain=null,Ve.usingDomains&&undefined.active,this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new Me,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},Ve.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw new TypeError('"n" argument must be a positive number');return this._maxListeners=e,this},Ve.prototype.getMaxListeners=function(){return Ke(this)},Ve.prototype.emit=function(e){var t,r,n,i,o,a,s,u="error"===e;if(a=this._events)u=u&&null==a.error;else if(!u)return!1;if(s=this.domain,u){if(t=arguments[1],!s){if(t instanceof Error)throw t;var c=new Error('Uncaught, unspecified "error" event. ('+t+")");throw c.context=t,c}return t||(t=new Error('Uncaught, unspecified "error" event')),t.domainEmitter=this,t.domain=s,t.domainThrown=!1,s.emit("error",t),!1}if(!(r=a[e]))return!1;var l="function"==typeof r;switch(n=arguments.length){case 1:$e(r,l,this);break;case 2:He(r,l,this,arguments[1]);break;case 3:Ye(r,l,this,arguments[1],arguments[2]);break;case 4:ze(r,l,this,arguments[1],arguments[2],arguments[3]);break;default:for(i=new Array(n-1),o=1;o0;)if(r[o]===t||r[o].listener&&r[o].listener===t){a=r[o].listener,i=o;break}if(i<0)return this;if(1===r.length){if(r[0]=void 0,0==--this._eventsCount)return this._events=new Me,this;delete n[e]}else!function(e,t){for(var r=t,n=r+1,i=e.length;n0?Reflect.ownKeys(this._events):[]};var Ze="function"==typeof Object.create?function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:function(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e},Je=/%[sdj%]/g;function et(e){if(!ht(e)){for(var t=[],r=0;r=i)return e;switch(e){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(e){return"[Circular]"}default:return e}})),a=n[r];r=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),lt(t)?r.showHidden=t:t&&wt(r,t),ft(r.showHidden)&&(r.showHidden=!1),ft(r.depth)&&(r.depth=2),ft(r.colors)&&(r.colors=!1),ft(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=ot),st(r,e,r.depth)}function ot(e,t){var r=it.styles[t];return r?"["+it.colors[r][0]+"m"+e+"["+it.colors[r][1]+"m":e}function at(e,t){return e}function st(e,t,r){if(e.customInspect&&t&&mt(t.inspect)&&t.inspect!==it&&(!t.constructor||t.constructor.prototype!==t)){var n=t.inspect(r,e);return ht(n)||(n=st(e,n,r)),n}var i=function(e,t){if(ft(t))return e.stylize("undefined","undefined");if(ht(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}if(n=t,"number"==typeof n)return e.stylize(""+t,"number");var n;if(lt(t))return e.stylize(""+t,"boolean");if(dt(t))return e.stylize("null","null")}(e,t);if(i)return i;var o=Object.keys(t),a=function(e){var t={};return e.forEach((function(e,r){t[e]=!0})),t}(o);if(e.showHidden&&(o=Object.getOwnPropertyNames(t)),vt(t)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return ut(t);if(0===o.length){if(mt(t)){var s=t.name?": "+t.name:"";return e.stylize("[Function"+s+"]","special")}if(pt(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(yt(t))return e.stylize(Date.prototype.toString.call(t),"date");if(vt(t))return ut(t)}var u,c,l="",d=!1,h=["{","}"];(u=t,Array.isArray(u)&&(d=!0,h=["[","]"]),mt(t))&&(l=" [Function"+(t.name?": "+t.name:"")+"]");return pt(t)&&(l=" "+RegExp.prototype.toString.call(t)),yt(t)&&(l=" "+Date.prototype.toUTCString.call(t)),vt(t)&&(l=" "+ut(t)),0!==o.length||d&&0!=t.length?r<0?pt(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special"):(e.seen.push(t),c=d?function(e,t,r,n,i){for(var o=[],a=0,s=t.length;a60)return r[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+r[1];return r[0]+t+" "+e.join(", ")+" "+r[1]}(c,l,h)):h[0]+l+h[1]}function ut(e){return"["+Error.prototype.toString.call(e)+"]"}function ct(e,t,r,n,i,o){var a,s,u;if((u=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]}).get?s=u.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):u.set&&(s=e.stylize("[Setter]","special")),Et(n,i)||(a="["+i+"]"),s||(e.seen.indexOf(u.value)<0?(s=dt(r)?st(e,u.value,null):st(e,u.value,r-1)).indexOf("\n")>-1&&(s=o?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),ft(a)){if(o&&i.match(/^\d+$/))return s;(a=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function lt(e){return"boolean"==typeof e}function dt(e){return null===e}function ht(e){return"string"==typeof e}function ft(e){return void 0===e}function pt(e){return gt(e)&&"[object RegExp]"===bt(e)}function gt(e){return"object"==typeof e&&null!==e}function yt(e){return gt(e)&&"[object Date]"===bt(e)}function vt(e){return gt(e)&&("[object Error]"===bt(e)||e instanceof Error)}function mt(e){return"function"==typeof e}function bt(e){return Object.prototype.toString.call(e)}function wt(e,t){if(!t||!gt(t))return e;for(var r=Object.keys(t),n=r.length;n--;)e[r[n]]=t[r[n]];return e}function Et(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function At(){this.head=null,this.tail=null,this.length=0}it.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},it.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},At.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},At.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},At.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},At.prototype.clear=function(){this.head=this.tail=null,this.length=0},At.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r},At.prototype.concat=function(e){if(0===this.length)return re.alloc(0);if(1===this.length)return this.head.data;for(var t=re.allocUnsafe(e>>>0),r=this.head,n=0;r;)r.data.copy(t,n),n+=r.data.length,r=r.next;return t};var Tt=re.isEncoding||function(e){switch(e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function _t(e){switch(this.encoding=(e||"utf8").toLowerCase().replace(/[-_]/,""),function(e){if(e&&!Tt(e))throw new Error("Unknown encoding: "+e)}(e),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=Ot;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=Dt;break;default:return void(this.write=Ct)}this.charBuffer=new re(6),this.charReceived=0,this.charLength=0}function Ct(e){return e.toString(this.encoding)}function Ot(e){this.charReceived=e.length%2,this.charLength=this.charReceived?2:0}function Dt(e){this.charReceived=e.length%3,this.charLength=this.charReceived?3:0}_t.prototype.write=function(e){for(var t="";this.charLength;){var r=e.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:e.length;if(e.copy(this.charBuffer,this.charReceived,0,r),this.charReceived+=r,this.charReceived=55296&&i<=56319)){if(this.charReceived=this.charLength=0,0===e.length)return t;break}this.charLength+=this.surrogateSize,t=""}this.detectIncompleteChar(e);var n=e.length;this.charLength&&(e.copy(this.charBuffer,0,e.length-this.charReceived,n),n-=this.charReceived);var i;n=(t+=e.toString(this.encoding,0,n)).length-1;if((i=t.charCodeAt(n))>=55296&&i<=56319){var o=this.surrogateSize;return this.charLength+=o,this.charReceived+=o,this.charBuffer.copy(this.charBuffer,o,0,o),e.copy(this.charBuffer,0,0,o),t.substring(0,n)}return t},_t.prototype.detectIncompleteChar=function(e){for(var t=e.length>=3?3:e.length;t>0;t--){var r=e[e.length-t];if(1==t&&r>>5==6){this.charLength=2;break}if(t<=2&&r>>4==14){this.charLength=3;break}if(t<=3&&r>>3==30){this.charLength=4;break}}this.charReceived=t},_t.prototype.end=function(e){var t="";if(e&&e.length&&(t=this.write(e)),this.charReceived){var r=this.charReceived,n=this.charBuffer,i=this.encoding;t+=n.slice(0,r).toString(i)}return t};var xt=Object.freeze({__proto__:null,StringDecoder:_t});Ft.ReadableState=St;var Rt=function(e){if(ft(rt)&&(rt=L.env.NODE_DEBUG||""),e=e.toUpperCase(),!nt[e])if(new RegExp("\\b"+e+"\\b","i").test(rt)){nt[e]=function(){var t=et.apply(null,arguments);console.error("%s %d: %s",e,0,t)}}else nt[e]=function(){};return nt[e]}("stream");function St(e,t){e=e||{},this.objectMode=!!e.objectMode,t instanceof ir&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var r=e.highWaterMark,n=this.objectMode?16:16384;this.highWaterMark=r||0===r?r:n,this.highWaterMark=~~this.highWaterMark,this.buffer=new At,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(this.decoder=new _t(e.encoding),this.encoding=e.encoding)}function Ft(e){if(!(this instanceof Ft))return new Ft(e);this._readableState=new St(e,this),this.readable=!0,e&&"function"==typeof e.read&&(this._read=e.read),Ve.call(this)}function Nt(e,t,r,n,i){var o=function(e,t){var r=null;re.isBuffer(t)||"string"==typeof t||null==t||e.objectMode||(r=new TypeError("Invalid non-string/buffer chunk"));return r}(t,r);if(o)e.emit("error",o);else if(null===r)t.reading=!1,function(e,t){if(t.ended)return;if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,Lt(e)}(e,t);else if(t.objectMode||r&&r.length>0)if(t.ended&&!i){var a=new Error("stream.push() after EOF");e.emit("error",a)}else if(t.endEmitted&&i){var s=new Error("stream.unshift() after end event");e.emit("error",s)}else{var u;!t.decoder||i||n||(r=t.decoder.write(r),u=!t.objectMode&&0===r.length),i||(t.reading=!1),u||(t.flowing&&0===t.length&&!t.sync?(e.emit("data",r),e.read(0)):(t.length+=t.objectMode?1:r.length,i?t.buffer.unshift(r):t.buffer.push(r),t.needReadable&&Lt(e))),function(e,t){t.readingMore||(t.readingMore=!0,b(It,e,t))}(e,t)}else i||(t.reading=!1);return function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function Lt(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(Rt("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?b(kt,e):kt(e))}function kt(e){Rt("emit readable"),e.emit("readable"),Bt(e)}function It(e,t){for(var r=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):r=function(e,t,r){var n;eo.length?o.length:e;if(a===o.length?i+=o:i+=o.slice(0,e),0===(e-=a)){a===o.length?(++n,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=o.slice(a));break}++n}return t.length-=n,i}(e,t):function(e,t){var r=re.allocUnsafe(e),n=t.head,i=1;n.data.copy(r),e-=n.data.length;for(;n=n.next;){var o=n.data,a=e>o.length?o.length:e;if(o.copy(r,r.length-e,0,a),0===(e-=a)){a===o.length?(++i,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=o.slice(a));break}++i}return t.length-=i,r}(e,t);return n}(e,t.buffer,t.decoder),r);var r}function Vt(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,b(Kt,t,e))}function Kt(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function $t(e,t){for(var r=0,n=e.length;r=t.highWaterMark||t.ended))return Rt("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?Vt(this):Lt(this),null;if(0===(e=jt(e,t))&&t.ended)return 0===t.length&&Vt(this),null;var n,i=t.needReadable;return Rt("need readable",i),(0===t.length||t.length-e0?Mt(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&Vt(this)),null!==n&&this.emit("data",n),n},Ft.prototype._read=function(e){this.emit("error",new Error("not implemented"))},Ft.prototype.pipe=function(e,t){var r=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=e;break;case 1:n.pipes=[n.pipes,e];break;default:n.pipes.push(e)}n.pipesCount+=1,Rt("pipe count=%d opts=%j",n.pipesCount,t);var i=!t||!1!==t.end?a:c;function o(e){Rt("onunpipe"),e===r&&c()}function a(){Rt("onend"),e.end()}n.endEmitted?b(i):r.once("end",i),e.on("unpipe",o);var s=function(e){return function(){var t=e._readableState;Rt("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&e.listeners("data").length&&(t.flowing=!0,Bt(e))}}(r);e.on("drain",s);var u=!1;function c(){Rt("cleanup"),e.removeListener("close",f),e.removeListener("finish",p),e.removeListener("drain",s),e.removeListener("error",h),e.removeListener("unpipe",o),r.removeListener("end",a),r.removeListener("end",c),r.removeListener("data",d),u=!0,!n.awaitDrain||e._writableState&&!e._writableState.needDrain||s()}var l=!1;function d(t){Rt("ondata"),l=!1,!1!==e.write(t)||l||((1===n.pipesCount&&n.pipes===e||n.pipesCount>1&&-1!==$t(n.pipes,e))&&!u&&(Rt("false write response, pause",r._readableState.awaitDrain),r._readableState.awaitDrain++,l=!0),r.pause())}function h(t){var r;Rt("onerror",t),g(),e.removeListener("error",h),0===(r="error",e.listeners(r).length)&&e.emit("error",t)}function f(){e.removeListener("finish",p),g()}function p(){Rt("onfinish"),e.removeListener("close",f),g()}function g(){Rt("unpipe"),r.unpipe(e)}return r.on("data",d),function(e,t,r){if("function"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}(e,"error",h),e.once("close",f),e.once("finish",p),e.emit("pipe",r),n.flowing||(Rt("pipe resume"),r.resume()),e},Ft.prototype.unpipe=function(e){var t=this._readableState;if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this)),this;if(!e){var r=t.pipes,n=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},qt.prototype._write=function(e,t,r){r(new Error("not implemented"))},qt.prototype._writev=null,qt.prototype.end=function(e,t,r){var n=this._writableState;"function"==typeof e?(r=e,e=null,t=null):"function"==typeof t&&(r=t,t=null),null!=e&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||n.finished||function(e,t,r){t.ending=!0,Jt(e,t),r&&(t.finished?b(r):e.once("finish",r));t.ended=!0,e.writable=!1}(this,n,r)},Ze(ir,Ft);for(var tr=Object.keys(qt.prototype),rr=0;rr"===o?(_(n,"onsgmldeclaration",n.sgmlDecl),n.sgmlDecl="",n.state=E.TEXT):p(o)?(n.state=E.SGML_DECL_QUOTED,n.sgmlDecl+=o):n.sgmlDecl+=o;continue;case E.SGML_DECL_QUOTED:o===n.q&&(n.state=E.SGML_DECL,n.q=""),n.sgmlDecl+=o;continue;case E.DOCTYPE:">"===o?(n.state=E.TEXT,_(n,"ondoctype",n.doctype),n.doctype=!0):(n.doctype+=o,"["===o?n.state=E.DOCTYPE_DTD:p(o)&&(n.state=E.DOCTYPE_QUOTED,n.q=o));continue;case E.DOCTYPE_QUOTED:n.doctype+=o,o===n.q&&(n.q="",n.state=E.DOCTYPE);continue;case E.DOCTYPE_DTD:n.doctype+=o,"]"===o?n.state=E.DOCTYPE:p(o)&&(n.state=E.DOCTYPE_DTD_QUOTED,n.q=o);continue;case E.DOCTYPE_DTD_QUOTED:n.doctype+=o,o===n.q&&(n.state=E.DOCTYPE_DTD,n.q="");continue;case E.COMMENT:"-"===o?n.state=E.COMMENT_ENDING:n.comment+=o;continue;case E.COMMENT_ENDING:"-"===o?(n.state=E.COMMENT_ENDED,n.comment=O(n.opt,n.comment),n.comment&&_(n,"oncomment",n.comment),n.comment=""):(n.comment+="-"+o,n.state=E.COMMENT);continue;case E.COMMENT_ENDED:">"!==o?(R(n,"Malformed comment"),n.comment+="--"+o,n.state=E.COMMENT):n.state=E.TEXT;continue;case E.CDATA:"]"===o?n.state=E.CDATA_ENDING:n.cdata+=o;continue;case E.CDATA_ENDING:"]"===o?n.state=E.CDATA_ENDING_2:(n.cdata+="]"+o,n.state=E.CDATA);continue;case E.CDATA_ENDING_2:">"===o?(n.cdata&&_(n,"oncdata",n.cdata),_(n,"onclosecdata"),n.cdata="",n.state=E.TEXT):"]"===o?n.cdata+="]":(n.cdata+="]]"+o,n.state=E.CDATA);continue;case E.PROC_INST:"?"===o?n.state=E.PROC_INST_ENDING:f(o)?n.state=E.PROC_INST_BODY:n.procInstName+=o;continue;case E.PROC_INST_BODY:if(!n.procInstBody&&f(o))continue;"?"===o?n.state=E.PROC_INST_ENDING:n.procInstBody+=o;continue;case E.PROC_INST_ENDING:">"===o?(_(n,"onprocessinginstruction",{name:n.procInstName,body:n.procInstBody}),n.procInstName=n.procInstBody="",n.state=E.TEXT):(n.procInstBody+="?"+o,n.state=E.PROC_INST_BODY);continue;case E.OPEN_TAG:y(l,o)?n.tagName+=o:(S(n),">"===o?j(n):"/"===o?n.state=E.OPEN_TAG_SLASH:(f(o)||R(n,"Invalid character in tag name"),n.state=E.ATTRIB));continue;case E.OPEN_TAG_SLASH:">"===o?(j(n,!0),L(n)):(R(n,"Forward-slash in opening tag not followed by >"),n.state=E.ATTRIB);continue;case E.ATTRIB:if(f(o))continue;">"===o?j(n):"/"===o?n.state=E.OPEN_TAG_SLASH:y(c,o)?(n.attribName=o,n.attribValue="",n.state=E.ATTRIB_NAME):R(n,"Invalid attribute name");continue;case E.ATTRIB_NAME:"="===o?n.state=E.ATTRIB_VALUE:">"===o?(R(n,"Attribute without value"),n.attribValue=n.attribName,N(n),j(n)):f(o)?n.state=E.ATTRIB_NAME_SAW_WHITE:y(l,o)?n.attribName+=o:R(n,"Invalid attribute name");continue;case E.ATTRIB_NAME_SAW_WHITE:if("="===o)n.state=E.ATTRIB_VALUE;else{if(f(o))continue;R(n,"Attribute without value"),n.tag.attributes[n.attribName]="",n.attribValue="",_(n,"onattribute",{name:n.attribName,value:""}),n.attribName="",">"===o?j(n):y(c,o)?(n.attribName=o,n.state=E.ATTRIB_NAME):(R(n,"Invalid attribute name"),n.state=E.ATTRIB)}continue;case E.ATTRIB_VALUE:if(f(o))continue;p(o)?(n.q=o,n.state=E.ATTRIB_VALUE_QUOTED):(R(n,"Unquoted attribute value"),n.state=E.ATTRIB_VALUE_UNQUOTED,n.attribValue=o);continue;case E.ATTRIB_VALUE_QUOTED:if(o!==n.q){"&"===o?n.state=E.ATTRIB_VALUE_ENTITY_Q:n.attribValue+=o;continue}N(n),n.q="",n.state=E.ATTRIB_VALUE_CLOSED;continue;case E.ATTRIB_VALUE_CLOSED:f(o)?n.state=E.ATTRIB:">"===o?j(n):"/"===o?n.state=E.OPEN_TAG_SLASH:y(c,o)?(R(n,"No whitespace between attributes"),n.attribName=o,n.attribValue="",n.state=E.ATTRIB_NAME):R(n,"Invalid attribute name");continue;case E.ATTRIB_VALUE_UNQUOTED:if(!g(o)){"&"===o?n.state=E.ATTRIB_VALUE_ENTITY_U:n.attribValue+=o;continue}N(n),">"===o?j(n):n.state=E.ATTRIB;continue;case E.CLOSE_TAG:if(n.tagName)">"===o?L(n):y(l,o)?n.tagName+=o:n.script?(n.script+=""===o?L(n):R(n,"Invalid characters in closing tag");continue;case E.TEXT_ENTITY:case E.ATTRIB_VALUE_ENTITY_Q:case E.ATTRIB_VALUE_ENTITY_U:var u,m;switch(n.state){case E.TEXT_ENTITY:u=E.TEXT,m="textNode";break;case E.ATTRIB_VALUE_ENTITY_Q:u=E.ATTRIB_VALUE_QUOTED,m="attribValue";break;case E.ATTRIB_VALUE_ENTITY_U:u=E.ATTRIB_VALUE_UNQUOTED,m="attribValue"}";"===o?(n[m]+=k(n),n.entity="",n.state=u):y(n.entity.length?h:d,o)?n.entity+=o:(R(n,"Invalid character in entity name"),n[m]+="&"+n.entity+o,n.entity="",n.state=u);continue;default:throw new Error(n,"Unknown state: "+n.state)}return n.position>=n.bufferCheckPosition&&function(t){for(var n=Math.max(e.MAX_BUFFER_LENGTH,10),i=0,o=0,a=r.length;on)switch(r[o]){case"textNode":C(t);break;case"cdata":_(t,"oncdata",t.cdata),t.cdata="";break;case"script":_(t,"onscript",t.script),t.script="";break;default:D(t,"Max buffer length exceeded: "+r[o])}i=Math.max(i,s)}var u=e.MAX_BUFFER_LENGTH-i;t.bufferCheckPosition=u+t.position}(n),n} +/*! http://mths.be/fromcodepoint v0.1.0 by @mathias */,resume:function(){return this.error=null,this},close:function(){return this.write(null)},flush:function(){var e;C(e=this),""!==e.cdata&&(_(e,"oncdata",e.cdata),e.cdata=""),""!==e.script&&(_(e,"onscript",e.script),e.script="")}};try{t=hr.Stream}catch(e){t=function(){}}var i=e.EVENTS.filter((function(e){return"error"!==e&&"end"!==e}));function o(e,r){if(!(this instanceof o))return new o(e,r);t.apply(this),this._parser=new n(e,r),this.writable=!0,this.readable=!0;var a=this;this._parser.onend=function(){a.emit("end")},this._parser.onerror=function(e){a.emit("error",e),a._parser.error=null},this._decoder=null,i.forEach((function(e){Object.defineProperty(a,"on"+e,{get:function(){return a._parser["on"+e]},set:function(t){if(!t)return a.removeAllListeners(e),a._parser["on"+e]=t,t;a.on(e,t)},enumerable:!0,configurable:!1})}))}o.prototype=Object.create(t.prototype,{constructor:{value:o}}),o.prototype.write=function(e){if("function"==typeof re.isBuffer&&re.isBuffer(e)){if(!this._decoder){var t=fr.StringDecoder;this._decoder=new t("utf8")}e=this._decoder.write(e)}return this._parser.write(e.toString()),this.emit("data",e),!0},o.prototype.end=function(e){return e&&e.length&&this.write(e),this._parser.end(),!0},o.prototype.on=function(e,r){var n=this;return n._parser["on"+e]||-1===i.indexOf(e)||(n._parser["on"+e]=function(){var t=1===arguments.length?[arguments[0]]:Array.apply(null,arguments);t.splice(0,0,e),n.emit.apply(n,t)}),t.prototype.on.call(n,e,r)};var a="http://www.w3.org/XML/1998/namespace",s="http://www.w3.org/2000/xmlns/",u={xml:a,xmlns:s},c=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,l=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/,d=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,h=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/;function f(e){return" "===e||"\n"===e||"\r"===e||"\t"===e}function p(e){return'"'===e||"'"===e}function g(e){return">"===e||f(e)}function y(e,t){return e.test(t)}function v(e,t){return!y(e,t)}var m,b,w,E=0;for(var A in e.STATE={BEGIN:E++,BEGIN_WHITESPACE:E++,TEXT:E++,TEXT_ENTITY:E++,OPEN_WAKA:E++,SGML_DECL:E++,SGML_DECL_QUOTED:E++,DOCTYPE:E++,DOCTYPE_QUOTED:E++,DOCTYPE_DTD:E++,DOCTYPE_DTD_QUOTED:E++,COMMENT_STARTING:E++,COMMENT:E++,COMMENT_ENDING:E++,COMMENT_ENDED:E++,CDATA:E++,CDATA_ENDING:E++,CDATA_ENDING_2:E++,PROC_INST:E++,PROC_INST_BODY:E++,PROC_INST_ENDING:E++,OPEN_TAG:E++,OPEN_TAG_SLASH:E++,ATTRIB:E++,ATTRIB_NAME:E++,ATTRIB_NAME_SAW_WHITE:E++,ATTRIB_VALUE:E++,ATTRIB_VALUE_QUOTED:E++,ATTRIB_VALUE_CLOSED:E++,ATTRIB_VALUE_UNQUOTED:E++,ATTRIB_VALUE_ENTITY_Q:E++,ATTRIB_VALUE_ENTITY_U:E++,CLOSE_TAG:E++,CLOSE_TAG_SAW_WHITE:E++,SCRIPT:E++,SCRIPT_ENDING:E++},e.XML_ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'"},e.ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'",AElig:198,Aacute:193,Acirc:194,Agrave:192,Aring:197,Atilde:195,Auml:196,Ccedil:199,ETH:208,Eacute:201,Ecirc:202,Egrave:200,Euml:203,Iacute:205,Icirc:206,Igrave:204,Iuml:207,Ntilde:209,Oacute:211,Ocirc:212,Ograve:210,Oslash:216,Otilde:213,Ouml:214,THORN:222,Uacute:218,Ucirc:219,Ugrave:217,Uuml:220,Yacute:221,aacute:225,acirc:226,aelig:230,agrave:224,aring:229,atilde:227,auml:228,ccedil:231,eacute:233,ecirc:234,egrave:232,eth:240,euml:235,iacute:237,icirc:238,igrave:236,iuml:239,ntilde:241,oacute:243,ocirc:244,ograve:242,oslash:248,otilde:245,ouml:246,szlig:223,thorn:254,uacute:250,ucirc:251,ugrave:249,uuml:252,yacute:253,yuml:255,copy:169,reg:174,nbsp:160,iexcl:161,cent:162,pound:163,curren:164,yen:165,brvbar:166,sect:167,uml:168,ordf:170,laquo:171,not:172,shy:173,macr:175,deg:176,plusmn:177,sup1:185,sup2:178,sup3:179,acute:180,micro:181,para:182,middot:183,cedil:184,ordm:186,raquo:187,frac14:188,frac12:189,frac34:190,iquest:191,times:215,divide:247,OElig:338,oelig:339,Scaron:352,scaron:353,Yuml:376,fnof:402,circ:710,tilde:732,Alpha:913,Beta:914,Gamma:915,Delta:916,Epsilon:917,Zeta:918,Eta:919,Theta:920,Iota:921,Kappa:922,Lambda:923,Mu:924,Nu:925,Xi:926,Omicron:927,Pi:928,Rho:929,Sigma:931,Tau:932,Upsilon:933,Phi:934,Chi:935,Psi:936,Omega:937,alpha:945,beta:946,gamma:947,delta:948,epsilon:949,zeta:950,eta:951,theta:952,iota:953,kappa:954,lambda:955,mu:956,nu:957,xi:958,omicron:959,pi:960,rho:961,sigmaf:962,sigma:963,tau:964,upsilon:965,phi:966,chi:967,psi:968,omega:969,thetasym:977,upsih:978,piv:982,ensp:8194,emsp:8195,thinsp:8201,zwnj:8204,zwj:8205,lrm:8206,rlm:8207,ndash:8211,mdash:8212,lsquo:8216,rsquo:8217,sbquo:8218,ldquo:8220,rdquo:8221,bdquo:8222,dagger:8224,Dagger:8225,bull:8226,hellip:8230,permil:8240,prime:8242,Prime:8243,lsaquo:8249,rsaquo:8250,oline:8254,frasl:8260,euro:8364,image:8465,weierp:8472,real:8476,trade:8482,alefsym:8501,larr:8592,uarr:8593,rarr:8594,darr:8595,harr:8596,crarr:8629,lArr:8656,uArr:8657,rArr:8658,dArr:8659,hArr:8660,forall:8704,part:8706,exist:8707,empty:8709,nabla:8711,isin:8712,notin:8713,ni:8715,prod:8719,sum:8721,minus:8722,lowast:8727,radic:8730,prop:8733,infin:8734,ang:8736,and:8743,or:8744,cap:8745,cup:8746,int:8747,there4:8756,sim:8764,cong:8773,asymp:8776,ne:8800,equiv:8801,le:8804,ge:8805,sub:8834,sup:8835,nsub:8836,sube:8838,supe:8839,oplus:8853,otimes:8855,perp:8869,sdot:8901,lceil:8968,rceil:8969,lfloor:8970,rfloor:8971,lang:9001,rang:9002,loz:9674,spades:9824,clubs:9827,hearts:9829,diams:9830},Object.keys(e.ENTITIES).forEach((function(t){var r=e.ENTITIES[t],n="number"==typeof r?String.fromCharCode(r):r;e.ENTITIES[t]=n})),e.STATE)e.STATE[e.STATE[A]]=A;function T(e,t,r){e[t]&&e[t](r)}function _(e,t,r){e.textNode&&C(e),T(e,t,r)}function C(e){e.textNode=O(e.opt,e.textNode),e.textNode&&T(e,"ontext",e.textNode),e.textNode=""}function O(e,t){return e.trim&&(t=t.trim()),e.normalize&&(t=t.replace(/\s+/g," ")),t}function D(e,t){return C(e),e.trackPosition&&(t+="\nLine: "+e.line+"\nColumn: "+e.column+"\nChar: "+e.c),t=new Error(t),e.error=t,T(e,"onerror",t),e}function x(e){return e.sawRoot&&!e.closedRoot&&R(e,"Unclosed root tag"),e.state!==E.BEGIN&&e.state!==E.BEGIN_WHITESPACE&&e.state!==E.TEXT&&D(e,"Unexpected end"),C(e),e.c="",e.closed=!0,T(e,"onend"),n.call(e,e.strict,e.opt),e}function R(e,t){if("object"!=typeof e||!(e instanceof n))throw new Error("bad call to strictFail");e.strict&&D(e,t)}function S(e){e.strict||(e.tagName=e.tagName[e.looseCase]());var t=e.tags[e.tags.length-1]||e,r=e.tag={name:e.tagName,attributes:{}};e.opt.xmlns&&(r.ns=t.ns),e.attribList.length=0,_(e,"onopentagstart",r)}function F(e,t){var r=e.indexOf(":")<0?["",e]:e.split(":"),n=r[0],i=r[1];return t&&"xmlns"===e&&(n="xmlns",i=""),{prefix:n,local:i}}function N(e){if(e.strict||(e.attribName=e.attribName[e.looseCase]()),-1!==e.attribList.indexOf(e.attribName)||e.tag.attributes.hasOwnProperty(e.attribName))e.attribName=e.attribValue="";else{if(e.opt.xmlns){var t=F(e.attribName,!0),r=t.prefix,n=t.local;if("xmlns"===r)if("xml"===n&&e.attribValue!==a)R(e,"xml: prefix must be bound to "+a+"\nActual: "+e.attribValue);else if("xmlns"===n&&e.attribValue!==s)R(e,"xmlns: prefix must be bound to "+s+"\nActual: "+e.attribValue);else{var i=e.tag,o=e.tags[e.tags.length-1]||e;i.ns===o.ns&&(i.ns=Object.create(o.ns)),i.ns[n]=e.attribValue}e.attribList.push([e.attribName,e.attribValue])}else e.tag.attributes[e.attribName]=e.attribValue,_(e,"onattribute",{name:e.attribName,value:e.attribValue});e.attribName=e.attribValue=""}}function j(e,t){if(e.opt.xmlns){var r=e.tag,n=F(e.tagName);r.prefix=n.prefix,r.local=n.local,r.uri=r.ns[n.prefix]||"",r.prefix&&!r.uri&&(R(e,"Unbound namespace prefix: "+JSON.stringify(e.tagName)),r.uri=n.prefix);var i=e.tags[e.tags.length-1]||e;r.ns&&i.ns!==r.ns&&Object.keys(r.ns).forEach((function(t){_(e,"onopennamespace",{prefix:t,uri:r.ns[t]})}));for(var o=0,a=e.attribList.length;o",e.tagName="",void(e.state=E.SCRIPT);_(e,"onscript",e.script),e.script=""}var t=e.tags.length,r=e.tagName;e.strict||(r=r[e.looseCase]());for(var n=r;t--&&e.tags[t].name!==n;)R(e,"Unexpected close tag");if(t<0)return R(e,"Unmatched closing tag: "+e.tagName),e.textNode+="",void(e.state=E.TEXT);e.tagName=r;for(var i=e.tags.length;i-- >t;){var o=e.tag=e.tags.pop();e.tagName=e.tag.name,_(e,"onclosetag",e.tagName);var a={};for(var s in o.ns)a[s]=o.ns[s];var u=e.tags[e.tags.length-1]||e;e.opt.xmlns&&o.ns!==u.ns&&Object.keys(o.ns).forEach((function(t){var r=o.ns[t];_(e,"onclosenamespace",{prefix:t,uri:r})}))}0===t&&(e.closedRoot=!0),e.tagName=e.attribValue=e.attribName="",e.attribList.length=0,e.state=E.TEXT}function k(e){var t,r=e.entity,n=r.toLowerCase(),i="";return e.ENTITIES[r]?e.ENTITIES[r]:e.ENTITIES[n]?e.ENTITIES[n]:("#"===(r=n).charAt(0)&&("x"===r.charAt(1)?(r=r.slice(2),i=(t=parseInt(r,16)).toString(16)):(r=r.slice(1),i=(t=parseInt(r,10)).toString(10))),r=r.replace(/^0+/,""),isNaN(t)||i.toLowerCase()!==r?(R(e,"Invalid character entity"),"&"+e.entity+";"):String.fromCodePoint(t))}function I(e,t){"<"===t?(e.state=E.OPEN_WAKA,e.startTagPosition=e.position):f(t)||(R(e,"Non-whitespace before first tag."),e.textNode=t,e.state=E.TEXT)}function P(e,t){var r="";return t1114111||b(s)!==s)throw RangeError("Invalid code point: "+s);s<=65535?n.push(s):(e=55296+((s-=65536)>>10),t=s%1024+56320,n.push(e,t)),(i+1===o||n.length>r)&&(a+=m.apply(null,n),n.length=0)}return a},Object.defineProperty?Object.defineProperty(String,"fromCodePoint",{value:w,configurable:!0,writable:!0}):String.fromCodePoint=w)}(Be);var pr,gr,yr=function(e){return Array.isArray?Array.isArray(e):"[object Array]"===Object.prototype.toString.call(e)},vr=yr,mr={copyOptions:function(e){var t,r={};for(t in e)e.hasOwnProperty(t)&&(r[t]=e[t]);return r},ensureFlagExists:function(e,t){e in t&&"boolean"==typeof t[e]||(t[e]=!1)},ensureSpacesExists:function(e){(!("spaces"in e)||"number"!=typeof e.spaces&&"string"!=typeof e.spaces)&&(e.spaces=0)},ensureAlwaysArrayExists:function(e){"alwaysArray"in e&&("boolean"==typeof e.alwaysArray||vr(e.alwaysArray))||(e.alwaysArray=!1)},ensureKeyExists:function(e,t){e+"Key"in t&&"string"==typeof t[e+"Key"]||(t[e+"Key"]=t.compact?"_"+e:e)},checkFnExists:function(e,t){return e+"Fn"in t}},br=Be,wr=mr,Er=yr;function Ar(e){var t=Number(e);if(!isNaN(t))return t;var r=e.toLowerCase();return"true"===r||"false"!==r&&e}function Tr(e,t){var r;if(pr.compact){if(!gr[pr[e+"Key"]]&&(Er(pr.alwaysArray)?-1!==pr.alwaysArray.indexOf(pr[e+"Key"]):pr.alwaysArray)&&(gr[pr[e+"Key"]]=[]),gr[pr[e+"Key"]]&&!Er(gr[pr[e+"Key"]])&&(gr[pr[e+"Key"]]=[gr[pr[e+"Key"]]]),e+"Fn"in pr&&"string"==typeof t&&(t=pr[e+"Fn"](t,gr)),"instruction"===e&&("instructionFn"in pr||"instructionNameFn"in pr))for(r in t)if(t.hasOwnProperty(r))if("instructionFn"in pr)t[r]=pr.instructionFn(t[r],r,gr);else{var n=t[r];delete t[r],t[pr.instructionNameFn(r,n,gr)]=n}Er(gr[pr[e+"Key"]])?gr[pr[e+"Key"]].push(t):gr[pr[e+"Key"]]=t}else{gr[pr.elementsKey]||(gr[pr.elementsKey]=[]);var i={};if(i[pr.typeKey]=e,"instruction"===e){for(r in t)if(t.hasOwnProperty(r))break;i[pr.nameKey]="instructionNameFn"in pr?pr.instructionNameFn(r,t,gr):r,pr.instructionHasAttributes?(i[pr.attributesKey]=t[r][pr.attributesKey],"instructionFn"in pr&&(i[pr.attributesKey]=pr.instructionFn(i[pr.attributesKey],r,gr))):("instructionFn"in pr&&(t[r]=pr.instructionFn(t[r],r,gr)),i[pr.instructionKey]=t[r])}else e+"Fn"in pr&&(t=pr[e+"Fn"](t,gr)),i[pr[e+"Key"]]=t;pr.addParent&&(i[pr.parentKey]=gr),gr[pr.elementsKey].push(i)}}function _r(e){var t;if("attributesFn"in pr&&e&&(e=pr.attributesFn(e,gr)),(pr.trim||"attributeValueFn"in pr||"attributeNameFn"in pr||pr.nativeTypeAttributes)&&e)for(t in e)if(e.hasOwnProperty(t)&&(pr.trim&&(e[t]=e[t].trim()),pr.nativeTypeAttributes&&(e[t]=Ar(e[t])),"attributeValueFn"in pr&&(e[t]=pr.attributeValueFn(e[t],t,gr)),"attributeNameFn"in pr)){var r=e[t];delete e[t],e[pr.attributeNameFn(t,e[t],gr)]=r}return e}function Cr(e){var t={};if(e.body&&("xml"===e.name.toLowerCase()||pr.instructionHasAttributes)){for(var r,n=/([\w:-]+)\s*=\s*(?:"([^"]*)"|'([^']*)'|(\w+))\s*/g;null!==(r=n.exec(e.body));)t[r[1]]=r[2]||r[3]||r[4];t=_r(t)}if("xml"===e.name.toLowerCase()){if(pr.ignoreDeclaration)return;gr[pr.declarationKey]={},Object.keys(t).length&&(gr[pr.declarationKey][pr.attributesKey]=t),pr.addParent&&(gr[pr.declarationKey][pr.parentKey]=gr)}else{if(pr.ignoreInstruction)return;pr.trim&&(e.body=e.body.trim());var i={};pr.instructionHasAttributes&&Object.keys(t).length?(i[e.name]={},i[e.name][pr.attributesKey]=t):i[e.name]=e.body,Tr("instruction",i)}}function Or(e,t){var r;if("object"==typeof e&&(t=e.attributes,e=e.name),t=_r(t),"elementNameFn"in pr&&(e=pr.elementNameFn(e,gr)),pr.compact){var n;if(r={},!pr.ignoreAttributes&&t&&Object.keys(t).length)for(n in r[pr.attributesKey]={},t)t.hasOwnProperty(n)&&(r[pr.attributesKey][n]=t[n]);!(e in gr)&&(Er(pr.alwaysArray)?-1!==pr.alwaysArray.indexOf(e):pr.alwaysArray)&&(gr[e]=[]),gr[e]&&!Er(gr[e])&&(gr[e]=[gr[e]]),Er(gr[e])?gr[e].push(r):gr[e]=r}else gr[pr.elementsKey]||(gr[pr.elementsKey]=[]),(r={})[pr.typeKey]="element",r[pr.nameKey]=e,!pr.ignoreAttributes&&t&&Object.keys(t).length&&(r[pr.attributesKey]=t),pr.alwaysChildren&&(r[pr.elementsKey]=[]),gr[pr.elementsKey].push(r);r[pr.parentKey]=gr,gr=r}function Dr(e){pr.ignoreText||(e.trim()||pr.captureSpacesBetweenElements)&&(pr.trim&&(e=e.trim()),pr.nativeType&&(e=Ar(e)),pr.sanitize&&(e=e.replace(/&/g,"&").replace(//g,">")),Tr("text",e))}function xr(e){pr.ignoreComment||(pr.trim&&(e=e.trim()),Tr("comment",e))}function Rr(e){var t=gr[pr.parentKey];pr.addParent||delete gr[pr.parentKey],gr=t}function Sr(e){pr.ignoreCdata||(pr.trim&&(e=e.trim()),Tr("cdata",e))}function Fr(e){pr.ignoreDoctype||(e=e.replace(/^ /,""),pr.trim&&(e=e.trim()),Tr("doctype",e))}function Nr(e){e.note=e}var jr=function(e,t){var r=br.parser(!0,{}),n={};if(gr=n,pr=function(e){return pr=wr.copyOptions(e),wr.ensureFlagExists("ignoreDeclaration",pr),wr.ensureFlagExists("ignoreInstruction",pr),wr.ensureFlagExists("ignoreAttributes",pr),wr.ensureFlagExists("ignoreText",pr),wr.ensureFlagExists("ignoreComment",pr),wr.ensureFlagExists("ignoreCdata",pr),wr.ensureFlagExists("ignoreDoctype",pr),wr.ensureFlagExists("compact",pr),wr.ensureFlagExists("alwaysChildren",pr),wr.ensureFlagExists("addParent",pr),wr.ensureFlagExists("trim",pr),wr.ensureFlagExists("nativeType",pr),wr.ensureFlagExists("nativeTypeAttributes",pr),wr.ensureFlagExists("sanitize",pr),wr.ensureFlagExists("instructionHasAttributes",pr),wr.ensureFlagExists("captureSpacesBetweenElements",pr),wr.ensureAlwaysArrayExists(pr),wr.ensureKeyExists("declaration",pr),wr.ensureKeyExists("instruction",pr),wr.ensureKeyExists("attributes",pr),wr.ensureKeyExists("text",pr),wr.ensureKeyExists("comment",pr),wr.ensureKeyExists("cdata",pr),wr.ensureKeyExists("doctype",pr),wr.ensureKeyExists("type",pr),wr.ensureKeyExists("name",pr),wr.ensureKeyExists("elements",pr),wr.ensureKeyExists("parent",pr),wr.checkFnExists("doctype",pr),wr.checkFnExists("instruction",pr),wr.checkFnExists("cdata",pr),wr.checkFnExists("comment",pr),wr.checkFnExists("text",pr),wr.checkFnExists("instructionName",pr),wr.checkFnExists("elementName",pr),wr.checkFnExists("attributeName",pr),wr.checkFnExists("attributeValue",pr),wr.checkFnExists("attributes",pr),pr}(t),r.opt={strictEntities:!0},r.onopentag=Or,r.ontext=Dr,r.oncomment=xr,r.onclosetag=Rr,r.onerror=Nr,r.oncdata=Sr,r.ondoctype=Fr,r.onprocessinginstruction=Cr,r.write(e).close(),n[pr.elementsKey]){var i=n[pr.elementsKey];delete n[pr.elementsKey],n[pr.elementsKey]=i,delete n.text}return n},Lr=mr,kr=jr;var Ir,Pr,Ur=mr,Br=yr;function Mr(e,t,r){return(!r&&e.spaces?"\n":"")+Array(t+1).join(e.spaces)}function Vr(e,t,r){if(t.ignoreAttributes)return"";"attributesFn"in t&&(e=t.attributesFn(e,Pr,Ir));var n,i,o,a,s=[];for(n in e)e.hasOwnProperty(n)&&null!==e[n]&&void 0!==e[n]&&(a=t.noQuotesForNativeAttributes&&"string"!=typeof e[n]?"":'"',i=(i=""+e[n]).replace(/"/g,"""),o="attributeNameFn"in t?t.attributeNameFn(n,i,Pr,Ir):n,s.push(t.spaces&&t.indentAttributes?Mr(t,r+1,!1):" "),s.push(o+"="+a+("attributeValueFn"in t?t.attributeValueFn(i,n,Pr,Ir):i)+a));return e&&Object.keys(e).length&&t.spaces&&t.indentAttributes&&s.push(Mr(t,r,!1)),s.join("")}function Kr(e,t,r){return Ir=e,Pr="xml",t.ignoreDeclaration?"":""}function $r(e,t,r){if(t.ignoreInstruction)return"";var n;for(n in e)if(e.hasOwnProperty(n))break;var i="instructionNameFn"in t?t.instructionNameFn(n,e[n],Pr,Ir):n;if("object"==typeof e[n])return Ir=e,Pr=i,"";var o=e[n]?e[n]:"";return"instructionFn"in t&&(o=t.instructionFn(o,n,Pr,Ir)),""}function Hr(e,t){return t.ignoreComment?"":"\x3c!--"+("commentFn"in t?t.commentFn(e,Pr,Ir):e)+"--\x3e"}function Yr(e,t){return t.ignoreCdata?"":"","]]]]>"))+"]]>"}function zr(e,t){return t.ignoreDoctype?"":""}function qr(e,t){return t.ignoreText?"":(e=(e=(e=""+e).replace(/&/g,"&")).replace(/&/g,"&").replace(//g,">"),"textFn"in t?t.textFn(e,Pr,Ir):e)}function Gr(e,t,r,n){return e.reduce((function(e,i){var o=Mr(t,r,n&&!e);switch(i.type){case"element":return e+o+function(e,t,r){Ir=e,Pr=e.name;var n=[],i="elementNameFn"in t?t.elementNameFn(e.name,e):e.name;n.push("<"+i),e[t.attributesKey]&&n.push(Vr(e[t.attributesKey],t,r));var o=e[t.elementsKey]&&e[t.elementsKey].length||e[t.attributesKey]&&"preserve"===e[t.attributesKey]["xml:space"];return o||(o="fullTagEmptyElementFn"in t?t.fullTagEmptyElementFn(e.name,e):t.fullTagEmptyElement),o?(n.push(">"),e[t.elementsKey]&&e[t.elementsKey].length&&(n.push(Gr(e[t.elementsKey],t,r+1)),Ir=e,Pr=e.name),n.push(t.spaces&&function(e,t){var r;if(e.elements&&e.elements.length)for(r=0;r")):n.push("/>"),n.join("")}(i,t,r);case"comment":return e+o+Hr(i[t.commentKey],t);case"doctype":return e+o+zr(i[t.doctypeKey],t);case"cdata":return e+(t.indentCdata?o:"")+Yr(i[t.cdataKey],t);case"text":return e+(t.indentText?o:"")+qr(i[t.textKey],t);case"instruction":var a={};return a[i[t.nameKey]]=i[t.attributesKey]?i:i[t.instructionKey],e+(t.indentInstruction?o:"")+$r(a,t,r)}}),"")}function Wr(e,t,r){var n;for(n in e)if(e.hasOwnProperty(n))switch(n){case t.parentKey:case t.attributesKey:break;case t.textKey:if(t.indentText||r)return!0;break;case t.cdataKey:if(t.indentCdata||r)return!0;break;case t.instructionKey:if(t.indentInstruction||r)return!0;break;case t.doctypeKey:case t.commentKey:default:return!0}return!1}function Qr(e,t,r,n,i){Ir=e,Pr=t;var o="elementNameFn"in r?r.elementNameFn(t,e):t;if(null==e||""===e)return"fullTagEmptyElementFn"in r&&r.fullTagEmptyElementFn(t,e)||r.fullTagEmptyElement?"<"+o+">":"<"+o+"/>";var a=[];if(t){if(a.push("<"+o),"object"!=typeof e)return a.push(">"+qr(e,r)+""),a.join("");e[r.attributesKey]&&a.push(Vr(e[r.attributesKey],r,n));var s=Wr(e,r,!0)||e[r.attributesKey]&&"preserve"===e[r.attributesKey]["xml:space"];if(s||(s="fullTagEmptyElementFn"in r?r.fullTagEmptyElementFn(t,e):r.fullTagEmptyElement),!s)return a.push("/>"),a.join("");a.push(">")}return a.push(Xr(e,r,n+1,!1)),Ir=e,Pr=t,t&&a.push((i?Mr(r,n,!1):"")+""),a.join("")}function Xr(e,t,r,n){var i,o,a,s=[];for(o in e)if(e.hasOwnProperty(o))for(a=Br(e[o])?e[o]:[e[o]],i=0;i{const t=Number(e);if(!Number.isNaN(t))return t;const r=e.toLowerCase();return"true"===r||"false"!==r&&e},on=(e,t)=>{if(!e&&!t)return!0;if(!e||!t)return!1;const r=e.trim(),n=t.trim();if(Math.abs(r.length-n.length)>1)return!1;const i="/"===r.slice(-1)?r.slice(0,-1):r,o="/"===n.slice(-1)?n.slice(0,-1):n;return e.includes(o)||t.includes(i)},an=(e,t)=>{if(!e&&!t)return!0;if(!e||!t)return!1;const r=e.trim(),n=t.trim(),i="/"===r.slice(-1)?r.slice(0,-1):r,o="/"===n.slice(-1)?n.slice(0,-1):n;return e.includes(o)||t.includes(i)},sn=e=>e.reduce(((e,t)=>Object.assign(Object.assign({},e),{[M[t]]:t})),{}),un=e=>Object.entries(e).reduce(((e,[t,r])=>r?Object.assign(Object.assign({},e),{[t]:r}):e),{}),cn=(e,t)=>t?{[e]:t}:{};var ln=Object.freeze({__proto__:null,cleanupFalsy:un,conditionalParam:cn,getDAVAttribute:sn,urlContains:an,urlEquals:on});const dn=B("tsdav:request"),hn=e=>t(void 0,void 0,void 0,(function*(){var t;const{url:r,init:n,convertIncoming:i=!0,parseOutgoing:o=!0}=e,{headers:s={},body:u,namespace:c,method:l,attributes:d}=n,h=i?rn.js2xml(Object.assign(Object.assign({_declaration:{_attributes:{version:"1.0",encoding:"utf-8"}}},u),{_attributes:d}),{compact:!0,spaces:2,elementNameFn:e=>c&&!/^.+:.+/.test(e)?`${c}:${e}`:e}):u,f=yield a.fetch(r,{headers:Object.assign({"Content-Type":"text/xml;charset=UTF-8"},un(s)),body:h,method:l}),p=yield f.text();if(!f.ok||!(null===(t=f.headers.get("content-type"))||void 0===t?void 0:t.includes("xml"))||!o)return[{href:f.url,ok:f.ok,status:f.status,statusText:f.statusText,raw:p}];const g=rn.xml2js(p,{compact:!0,trim:!0,textFn:(e,t)=>{try{const r=t._parent,n=Object.keys(r),i=n[n.length-1],o=r[i];if(o.length>0){o[o.length-1]=nn(e)}else r[i]=nn(e)}catch(e){dn(e.stack)}},elementNameFn:e=>e.replace(/^.+:/,"").replace(/([-_]\w)/g,(e=>e[1].toUpperCase())),attributesFn:e=>{const t=Object.assign({},e);return delete t.xmlns,t},ignoreDeclaration:!0});return(Array.isArray(g.multistatus.response)?g.multistatus.response:[g.multistatus.response]).map((e=>{var t,r;if(!e)return{status:f.status,statusText:f.statusText,ok:f.ok};const n=/^\S+\s(?\d+)\s(?.+)$/.exec(e.status);return{raw:g,href:e.href,status:(null==n?void 0:n.groups)?Number.parseInt(null==n?void 0:n.groups.status,10):f.status,statusText:null!==(r=null===(t=null==n?void 0:n.groups)||void 0===t?void 0:t.statusText)&&void 0!==r?r:f.statusText,ok:!e.error,error:e.error,responsedescription:e.responsedescription,props:(Array.isArray(e.propstat)?e.propstat:[e.propstat]).reduce(((e,t)=>Object.assign(Object.assign({},e),null==t?void 0:t.prop)),{})}}))})),fn=e=>t(void 0,void 0,void 0,(function*(){const{url:t,props:r,depth:n,headers:i}=e;return hn({url:t,init:{method:"PROPFIND",headers:un(Object.assign({depth:n},i)),namespace:V.DAV,body:{propfind:{_attributes:sn([U.CALDAV,U.CALDAV_APPLE,U.CALENDAR_SERVER,U.CARDDAV,U.DAV]),prop:r}}}})})),pn=e=>t(void 0,void 0,void 0,(function*(){const{url:t,data:r,headers:n}=e;return a.fetch(t,{method:"PUT",body:r,headers:n})})),gn=e=>t(void 0,void 0,void 0,(function*(){const{url:t,data:r,etag:n,headers:i}=e;return a.fetch(t,{method:"PUT",body:r,headers:un(Object.assign({"If-Match":n},i))})})),yn=e=>t(void 0,void 0,void 0,(function*(){const{url:t,headers:r,etag:n}=e;return a.fetch(t,{method:"DELETE",headers:un(Object.assign({"If-Match":n},r))})}));var vn=Object.freeze({__proto__:null,createObject:pn,davRequest:hn,deleteObject:yn,propfind:fn,updateObject:gn});function mn(e,t){const r=e=>t.every((t=>e[t]));return Array.isArray(e)?e.every((e=>r(e))):r(e)}const bn=(e,t)=>t.reduce(((t,r)=>e[r]?t:`${t.length?`${t},`:""}${r.toString()}`),""),wn=B("tsdav:collection"),En=e=>t(void 0,void 0,void 0,(function*(){const{url:t,body:r,depth:n,defaultNamespace:i=V.DAV,headers:o}=e,a=yield hn({url:t,init:{method:"REPORT",headers:un(Object.assign({depth:n},o)),namespace:i,body:r}});return 1!==a.length||a[0].raw?a:[]})),An=e=>t(void 0,void 0,void 0,(function*(){const{url:t,props:r,depth:n,headers:i}=e;return hn({url:t,init:{method:"MKCOL",headers:un(Object.assign({depth:n},i)),namespace:V.DAV,body:r?{mkcol:{set:{prop:r}}}:void 0}})})),Tn=e=>t(void 0,void 0,void 0,(function*(){var t,r,n,i,o;const{collection:a,headers:s}=e;return null!==(o=null===(i=null===(n=null===(r=null===(t=(yield fn({url:a.url,props:{[`${V.DAV}:supported-report-set`]:{}},depth:"0",headers:s}))[0])||void 0===t?void 0:t.props)||void 0===r?void 0:r.supportedReportSet)||void 0===n?void 0:n.supportedReport)||void 0===i?void 0:i.map((e=>Object.keys(e.report)[0])))&&void 0!==o?o:[]})),_n=e=>t(void 0,void 0,void 0,(function*(){var t,r,n;const{collection:i,headers:o}=e,a=(yield fn({url:i.url,props:{[`${V.CALENDAR_SERVER}:getctag`]:{}},depth:"0",headers:o})).filter((e=>an(i.url,e.href)))[0];if(!a)throw new Error("Collection does not exist on server");return{isDirty:i.ctag!==(null===(t=a.props)||void 0===t?void 0:t.getctag),newCtag:null===(n=null===(r=a.props)||void 0===r?void 0:r.getctag)||void 0===n?void 0:n.toString()}})),Cn=e=>{const{url:t,props:r,headers:n,syncLevel:i,syncToken:o}=e;return hn({url:t,init:{method:"REPORT",namespace:V.DAV,headers:Object.assign({},n),body:{"sync-collection":{_attributes:sn([U.CALDAV,U.CARDDAV,U.DAV]),"sync-level":i,"sync-token":o,[`${V.DAV}:prop`]:r}}}})},On=e=>t(void 0,void 0,void 0,(function*(){var t,r,n,i,o,a,s,u,c,l,d;const{collection:h,method:f,headers:p,account:g,detailedResult:y}=e,v=["accountType","homeUrl"];if(!g||!mn(g,v)){if(!g)throw new Error("no account for smartCollectionSync");throw new Error(`account must have ${bn(g,v)} before smartCollectionSync`)}const m=null!=f?f:(null===(t=h.reports)||void 0===t?void 0:t.includes("syncCollection"))?"webdav":"basic";if(wn(`smart collection sync with type ${g.accountType} and method ${m}`),"webdav"===m){const e=yield Cn({url:h.url,props:{[`${V.DAV}:getetag`]:{},[`${"caldav"===g.accountType?V.CALDAV:V.CARDDAV}:${"caldav"===g.accountType?"calendar-data":"address-data"}`]:{},[`${V.DAV}:displayname`]:{}},syncLevel:1,syncToken:h.syncToken,headers:p}),t=e.filter((e=>{var t;const r="caldav"===g.accountType?".ics":".vcf";return(null===(t=e.href)||void 0===t?void 0:t.slice(-4))===r})),c=t.filter((e=>404!==e.status)).map((e=>e.href)),l=t.filter((e=>404===e.status)).map((e=>e.href)),d=(c.length&&null!==(n=yield null===(r=null==h?void 0:h.objectMultiGet)||void 0===r?void 0:r.call(h,{url:h.url,props:{[`${V.DAV}:getetag`]:{},[`${"caldav"===g.accountType?V.CALDAV:V.CARDDAV}:${"caldav"===g.accountType?"calendar-data":"address-data"}`]:{}},objectUrls:c,depth:"1",headers:p}))&&void 0!==n?n:[]).map((e=>{var t,r,n,i,o,a,s,u,c,l;return{url:null!==(t=e.href)&&void 0!==t?t:"",etag:null===(r=e.props)||void 0===r?void 0:r.getetag,data:"caldav"===(null==g?void 0:g.accountType)?null!==(o=null===(i=null===(n=e.props)||void 0===n?void 0:n.calendarData)||void 0===i?void 0:i._cdata)&&void 0!==o?o:null===(a=e.props)||void 0===a?void 0:a.calendarData:null!==(c=null===(u=null===(s=e.props)||void 0===s?void 0:s.addressData)||void 0===u?void 0:u._cdata)&&void 0!==c?c:null===(l=e.props)||void 0===l?void 0:l.addressData}})),f=null!==(i=h.objects)&&void 0!==i?i:[],v=d.filter((e=>f.every((t=>!an(t.url,e.url))))),m=f.reduce(((e,t)=>{const r=d.find((e=>an(e.url,t.url)));return r&&r.etag&&r.etag!==t.etag?[...e,r]:e}),[]),b=l.map((e=>({url:e,etag:""}))),w=f.filter((e=>d.some((t=>an(e.url,t.url)&&t.etag===e.etag))));return Object.assign(Object.assign({},h),{objects:y?{created:v,updated:m,deleted:b}:[...w,...v,...m],syncToken:null!==(u=null===(s=null===(a=null===(o=e[0])||void 0===o?void 0:o.raw)||void 0===a?void 0:a.multistatus)||void 0===s?void 0:s.syncToken)&&void 0!==u?u:h.syncToken})}if("basic"===m){const{isDirty:e,newCtag:t}=yield _n({collection:h,headers:p}),r=null!==(c=h.objects)&&void 0!==c?c:[],n=null!==(d=yield null===(l=h.fetchObjects)||void 0===l?void 0:l.call(h,{collection:h,headers:p}))&&void 0!==d?d:[],i=n.filter((e=>r.every((t=>!an(t.url,e.url))))),o=r.reduce(((e,t)=>{const r=n.find((e=>an(e.url,t.url)));return r&&r.etag&&r.etag!==t.etag?[...e,r]:e}),[]),a=r.filter((e=>n.every((t=>!an(t.url,e.url))))),s=r.filter((e=>n.some((t=>an(e.url,t.url)&&t.etag===e.etag))));if(e)return Object.assign(Object.assign({},h),{objects:y?{created:i,updated:o,deleted:a}:[...s,...i,...o],ctag:t})}return y?Object.assign(Object.assign({},h),{objects:{created:[],updated:[],deleted:[]}}):h}));var Dn=Object.freeze({__proto__:null,collectionQuery:En,isCollectionDirty:_n,makeCollection:An,smartCollectionSync:On,supportedReportSet:Tn,syncCollection:Cn});const xn=B("tsdav:addressBook"),Rn=e=>t(void 0,void 0,void 0,(function*(){const{url:t,props:r,filters:n,depth:i,headers:o}=e;return En({url:t,body:{"addressbook-query":{_attributes:sn([U.CARDDAV,U.DAV]),[`${V.DAV}:prop`]:r,filter:null!=n?n:{"prop-filter":{_attributes:{name:"FN"}}}}},defaultNamespace:V.CARDDAV,depth:i,headers:o})})),Sn=e=>t(void 0,void 0,void 0,(function*(){const{url:t,props:r,objectUrls:n,depth:i,headers:o}=e;return En({url:t,body:{"addressbook-multiget":{_attributes:sn([U.DAV,U.CARDDAV]),[`${V.DAV}:prop`]:r,[`${V.DAV}:href`]:n}},defaultNamespace:V.CARDDAV,depth:i,headers:o})})),Fn=e=>t(void 0,void 0,void 0,(function*(){const{account:r,headers:n,props:i}=null!=e?e:{},o=["homeUrl","rootUrl"];if(!r||!mn(r,o)){if(!r)throw new Error("no account for fetchAddressBooks");throw new Error(`account must have ${bn(r,o)} before fetchAddressBooks`)}const a=yield fn({url:r.homeUrl,props:null!=i?i:{[`${V.DAV}:displayname`]:{},[`${V.CALENDAR_SERVER}:getctag`]:{},[`${V.DAV}:resourcetype`]:{},[`${V.DAV}:sync-token`]:{}},depth:"1",headers:n});return Promise.all(a.filter((e=>{var t,r;return Object.keys(null!==(r=null===(t=e.props)||void 0===t?void 0:t.resourcetype)&&void 0!==r?r:{}).includes("addressbook")})).map((e=>{var t,n,i,o,a,s,u,c,l;const d=null!==(i=null===(n=null===(t=e.props)||void 0===t?void 0:t.displayname)||void 0===n?void 0:n._cdata)&&void 0!==i?i:null===(o=e.props)||void 0===o?void 0:o.displayname;return xn(`Found address book named ${"string"==typeof d?d:""},\n props: ${JSON.stringify(e.props)}`),{url:new URL(null!==(a=e.href)&&void 0!==a?a:"",null!==(s=r.rootUrl)&&void 0!==s?s:"").href,ctag:null===(u=e.props)||void 0===u?void 0:u.getctag,displayName:"string"==typeof d?d:"",resourcetype:Object.keys(null===(c=e.props)||void 0===c?void 0:c.resourcetype),syncToken:null===(l=e.props)||void 0===l?void 0:l.syncToken}})).map((e=>t(void 0,void 0,void 0,(function*(){return Object.assign(Object.assign({},e),{reports:yield Tn({collection:e,headers:n})})})))))})),Nn=e=>t(void 0,void 0,void 0,(function*(){const{addressBook:t,headers:r,objectUrls:n,urlFilter:i=(e=>e),useMultiGet:o=!0}=e;xn(`Fetching vcards from ${null==t?void 0:t.url}`);const a=["url"];if(!t||!mn(t,a)){if(!t)throw new Error("cannot fetchVCards for undefined addressBook");throw new Error(`addressBook must have ${bn(t,a)} before fetchVCards`)}const s=(null!=n?n:(yield Rn({url:t.url,props:{[`${V.DAV}:getetag`]:{}},depth:"1",headers:r})).map((e=>{var t;return e.ok&&null!==(t=e.href)&&void 0!==t?t:""}))).map((e=>e.startsWith("http")||!e?e:new URL(e,t.url).href)).filter(i).map((e=>new URL(e).pathname));let u=[];return s.length>0&&(u=o?yield Sn({url:t.url,props:{[`${V.DAV}:getetag`]:{},[`${V.CARDDAV}:address-data`]:{}},objectUrls:s,depth:"1",headers:r}):yield Rn({url:t.url,props:{[`${V.DAV}:getetag`]:{},[`${V.CARDDAV}:address-data`]:{}},depth:"1",headers:r})),u.map((e=>{var r,n,i,o,a,s;return{url:new URL(null!==(r=e.href)&&void 0!==r?r:"",t.url).href,etag:null===(n=e.props)||void 0===n?void 0:n.getetag,data:null!==(a=null===(o=null===(i=e.props)||void 0===i?void 0:i.addressData)||void 0===o?void 0:o._cdata)&&void 0!==a?a:null===(s=e.props)||void 0===s?void 0:s.addressData}}))})),jn=e=>t(void 0,void 0,void 0,(function*(){const{addressBook:t,vCardString:r,filename:n,headers:i}=e;return pn({url:new URL(n,t.url).href,data:r,headers:Object.assign({"content-type":"text/vcard; charset=utf-8","If-None-Match":"*"},i)})})),Ln=e=>t(void 0,void 0,void 0,(function*(){const{vCard:t,headers:r}=e;return gn({url:t.url,data:t.data,etag:t.etag,headers:Object.assign({"content-type":"text/vcard; charset=utf-8"},r)})})),kn=e=>t(void 0,void 0,void 0,(function*(){const{vCard:t,headers:r}=e;return yn({url:t.url,etag:t.etag,headers:r})}));var In=Object.freeze({__proto__:null,addressBookMultiGet:Sn,addressBookQuery:Rn,createVCard:jn,deleteVCard:kn,fetchAddressBooks:Fn,fetchVCards:Nn,updateVCard:Ln});const Pn=B("tsdav:calendar"),Un=e=>t(void 0,void 0,void 0,(function*(){const{url:t,props:r,filters:n,timezone:i,depth:o,headers:a}=e;return En({url:t,body:{"calendar-query":un({_attributes:sn([U.CALDAV,U.CALENDAR_SERVER,U.CALDAV_APPLE,U.DAV]),[`${V.DAV}:prop`]:r,filter:n,timezone:i})},defaultNamespace:V.CALDAV,depth:o,headers:a})})),Bn=e=>t(void 0,void 0,void 0,(function*(){const{url:t,props:r,objectUrls:n,filters:i,timezone:o,depth:a,headers:s}=e;return En({url:t,body:{"calendar-multiget":Object.assign(Object.assign({_attributes:sn([U.DAV,U.CALDAV]),[`${V.DAV}:prop`]:r,[`${V.DAV}:href`]:n},cn("filter",i)),{timezone:o})},defaultNamespace:V.CALDAV,depth:a,headers:s})})),Mn=e=>t(void 0,void 0,void 0,(function*(){const{url:t,props:r,depth:n,headers:i}=e;return hn({url:t,init:{method:"MKCALENDAR",headers:un(Object.assign({depth:n},i)),namespace:V.DAV,body:{[`${V.CALDAV}:mkcalendar`]:{_attributes:sn([U.DAV,U.CALDAV,U.CALDAV_APPLE]),set:{prop:r}}}}})})),Vn=e=>t(void 0,void 0,void 0,(function*(){const{headers:r,account:n,props:i,projectedProps:o}=null!=e?e:{},a=["homeUrl","rootUrl"];if(!n||!mn(n,a)){if(!n)throw new Error("no account for fetchCalendars");throw new Error(`account must have ${bn(n,a)} before fetchCalendars`)}const s=yield fn({url:n.homeUrl,props:null!=i?i:{[`${V.CALDAV}:calendar-description`]:{},[`${V.CALDAV}:calendar-timezone`]:{},[`${V.DAV}:displayname`]:{},[`${V.CALDAV_APPLE}:calendar-color`]:{},[`${V.CALENDAR_SERVER}:getctag`]:{},[`${V.DAV}:resourcetype`]:{},[`${V.CALDAV}:supported-calendar-component-set`]:{},[`${V.DAV}:sync-token`]:{}},depth:"1",headers:r});return Promise.all(s.filter((e=>{var t,r;return Object.keys(null!==(r=null===(t=e.props)||void 0===t?void 0:t.resourcetype)&&void 0!==r?r:{}).includes("calendar")})).filter((e=>{var t,r,n;return(Array.isArray(null===(t=e.props)||void 0===t?void 0:t.supportedCalendarComponentSet.comp)?null===(r=e.props)||void 0===r?void 0:r.supportedCalendarComponentSet.comp.map((e=>e._attributes.name)):[null===(n=e.props)||void 0===n?void 0:n.supportedCalendarComponentSet.comp._attributes.name]||[]).some((e=>Object.values(K).includes(e)))})).map((e=>{var t,r,i,a,s,u,c,l,d,h,f,p,g,y,v;const m=null===(t=e.props)||void 0===t?void 0:t.calendarDescription,b=null===(r=e.props)||void 0===r?void 0:r.calendarTimezone;return Object.assign({description:"string"==typeof m?m:"",timezone:"string"==typeof b?b:"",url:new URL(null!==(i=e.href)&&void 0!==i?i:"",null!==(a=n.rootUrl)&&void 0!==a?a:"").href,ctag:null===(s=e.props)||void 0===s?void 0:s.getctag,calendarColor:null===(u=e.props)||void 0===u?void 0:u.calendarColor,displayName:null!==(l=null===(c=e.props)||void 0===c?void 0:c.displayname._cdata)&&void 0!==l?l:null===(d=e.props)||void 0===d?void 0:d.displayname,components:Array.isArray(null===(h=e.props)||void 0===h?void 0:h.supportedCalendarComponentSet.comp)?null===(f=e.props)||void 0===f?void 0:f.supportedCalendarComponentSet.comp.map((e=>e._attributes.name)):[null===(p=e.props)||void 0===p?void 0:p.supportedCalendarComponentSet.comp._attributes.name],resourcetype:Object.keys(null===(g=e.props)||void 0===g?void 0:g.resourcetype),syncToken:null===(y=e.props)||void 0===y?void 0:y.syncToken},cn("projectedProps",Object.fromEntries(Object.entries(null!==(v=e.props)&&void 0!==v?v:{}).filter((([e])=>null==o?void 0:o[e])))))})).map((e=>t(void 0,void 0,void 0,(function*(){return Object.assign(Object.assign({},e),{reports:yield Tn({collection:e,headers:r})})})))))})),Kn=e=>t(void 0,void 0,void 0,(function*(){const{calendar:t,objectUrls:r,filters:n,timeRange:i,headers:o,expand:a,urlFilter:s=(e=>Boolean(null==e?void 0:e.includes(".ics"))),useMultiGet:u=!0}=e;if(i){const e=/^\d{4}(-\d\d(-\d\d(T\d\d:\d\d(:\d\d)?(\.\d+)?(([+-]\d\d:\d\d)|Z)?)?)?)?$/i,t=/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(\.\d+)?(([+-]\d\d:\d\d)|Z)?$/i;if(!(e.test(i.start)&&e.test(i.end)||t.test(i.start)&&t.test(i.end)))throw new Error("invalid timeRange format, not in ISO8601")}Pn(`Fetching calendar objects from ${null==t?void 0:t.url}`);const c=["url"];if(!t||!mn(t,c)){if(!t)throw new Error("cannot fetchCalendarObjects for undefined calendar");throw new Error(`calendar must have ${bn(t,c)} before fetchCalendarObjects`)}const l=null!=n?n:[{"comp-filter":{_attributes:{name:"VCALENDAR"},"comp-filter":Object.assign({_attributes:{name:"VEVENT"}},i?{"time-range":{_attributes:{start:`${new Date(i.start).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`,end:`${new Date(i.end).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`}}}:{})}}],d=(null!=r?r:(yield Un({url:t.url,props:{[`${V.DAV}:getetag`]:Object.assign({},a&&i?{[`${V.CALDAV}:expand`]:{_attributes:{start:`${new Date(i.start).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`,end:`${new Date(i.end).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`}}}:{})},filters:l,depth:"1",headers:o})).map((e=>{var t;return null!==(t=e.href)&&void 0!==t?t:""}))).map((e=>e.startsWith("http")||!e?e:new URL(e,t.url).href)).filter(s).map((e=>new URL(e).pathname));let h=[];return d.length>0&&(h=!u||a?yield Un({url:t.url,props:{[`${V.DAV}:getetag`]:{},[`${V.CALDAV}:calendar-data`]:Object.assign({},a&&i?{[`${V.CALDAV}:expand`]:{_attributes:{start:`${new Date(i.start).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`,end:`${new Date(i.end).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`}}}:{})},filters:l,depth:"1",headers:o}):yield Bn({url:t.url,props:{[`${V.DAV}:getetag`]:{},[`${V.CALDAV}:calendar-data`]:Object.assign({},a&&i?{[`${V.CALDAV}:expand`]:{_attributes:{start:`${new Date(i.start).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`,end:`${new Date(i.end).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`}}}:{})},objectUrls:d,depth:"1",headers:o})),h.map((e=>{var r,n,i,o,a,s;return{url:new URL(null!==(r=e.href)&&void 0!==r?r:"",t.url).href,etag:`${null===(n=e.props)||void 0===n?void 0:n.getetag}`,data:null!==(a=null===(o=null===(i=e.props)||void 0===i?void 0:i.calendarData)||void 0===o?void 0:o._cdata)&&void 0!==a?a:null===(s=e.props)||void 0===s?void 0:s.calendarData}}))})),$n=e=>t(void 0,void 0,void 0,(function*(){const{calendar:t,iCalString:r,filename:n,headers:i}=e;return pn({url:new URL(n,t.url).href,data:r,headers:Object.assign({"content-type":"text/calendar; charset=utf-8","If-None-Match":"*"},i)})})),Hn=e=>t(void 0,void 0,void 0,(function*(){const{calendarObject:t,headers:r}=e;return gn({url:t.url,data:t.data,etag:t.etag,headers:Object.assign({"content-type":"text/calendar; charset=utf-8"},r)})})),Yn=e=>t(void 0,void 0,void 0,(function*(){const{calendarObject:t,headers:r}=e;return yn({url:t.url,etag:t.etag,headers:r})})),zn=e=>t(void 0,void 0,void 0,(function*(){var r;const{oldCalendars:n,account:i,detailedResult:o,headers:a}=e;if(!i)throw new Error("Must have account before syncCalendars");const s=null!==(r=null!=n?n:i.calendars)&&void 0!==r?r:[],u=yield Vn({account:i,headers:a}),c=u.filter((e=>s.every((t=>!an(t.url,e.url)))));Pn(`new calendars: ${c.map((e=>e.displayName))}`);const l=s.reduce(((e,t)=>{const r=u.find((e=>an(e.url,t.url)));return r&&(r.syncToken&&r.syncToken!==t.syncToken||r.ctag&&r.ctag!==t.ctag)?[...e,r]:e}),[]);Pn(`updated calendars: ${l.map((e=>e.displayName))}`);const d=yield Promise.all(l.map((e=>t(void 0,void 0,void 0,(function*(){return yield On({collection:Object.assign(Object.assign({},e),{objectMultiGet:Bn}),method:"webdav",headers:a,account:i})}))))),h=s.filter((e=>u.every((t=>!an(t.url,e.url)))));Pn(`deleted calendars: ${h.map((e=>e.displayName))}`);const f=s.filter((e=>u.some((t=>an(t.url,e.url)&&(t.syncToken&&t.syncToken!==e.syncToken||t.ctag&&t.ctag!==e.ctag)))));return o?{created:c,updated:l,deleted:h}:[...f,...c,...d]})),qn=e=>t(void 0,void 0,void 0,(function*(){const{url:t,timeRange:r,depth:n,headers:i}=e;if(!r)throw new Error("timeRange is required");{const e=/^\d{4}(-\d\d(-\d\d(T\d\d:\d\d(:\d\d)?(\.\d+)?(([+-]\d\d:\d\d)|Z)?)?)?)?$/i,t=/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(\.\d+)?(([+-]\d\d:\d\d)|Z)?$/i;if(!(e.test(r.start)&&e.test(r.end)||t.test(r.start)&&t.test(r.end)))throw new Error("invalid timeRange format, not in ISO8601")}return(yield En({url:t,body:{"free-busy-query":un({_attributes:sn([U.CALDAV]),[`${V.CALDAV}:time-range`]:{_attributes:{start:`${new Date(r.start).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`,end:`${new Date(r.end).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`}}})},defaultNamespace:V.CALDAV,depth:n,headers:i}))[0]}));var Gn=Object.freeze({__proto__:null,calendarMultiGet:Bn,calendarQuery:Un,createCalendarObject:$n,deleteCalendarObject:Yn,fetchCalendarObjects:Kn,fetchCalendars:Vn,freeBusyQuery:qn,makeCalendar:Mn,syncCalendars:zn,updateCalendarObject:Hn});const Wn=B("tsdav:account"),Qn=e=>t(void 0,void 0,void 0,(function*(){var t,r;Wn("Service discovery...");const{account:n,headers:i}=e,o=new URL(n.serverUrl),s=new URL(`/.well-known/${n.accountType}`,o);s.protocol=null!==(t=o.protocol)&&void 0!==t?t:"http";try{const e=yield a.fetch(s.href,{headers:i,method:"PROPFIND",redirect:"manual"});if(e.status>=300&&e.status<400){const t=e.headers.get("Location");if("string"==typeof t&&t.length){Wn(`Service discovery redirected to ${t}`);const e=new URL(t,o);return e.hostname===s.hostname&&s.port&&!e.port&&(e.port=s.port),e.protocol=null!==(r=o.protocol)&&void 0!==r?r:"http",e.href}}}catch(e){Wn(`Service discovery failed: ${e.stack}`)}return o.href})),Xn=e=>t(void 0,void 0,void 0,(function*(){var t,r,n,i,o;const{account:a,headers:s}=e,u=["rootUrl"];if(!mn(a,u))throw new Error(`account must have ${bn(a,u)} before fetchPrincipalUrl`);Wn(`Fetching principal url from path ${a.rootUrl}`);const[c]=yield fn({url:a.rootUrl,props:{[`${V.DAV}:current-user-principal`]:{}},depth:"0",headers:s});if(!c.ok&&(Wn(`Fetch principal url failed: ${c.statusText}`),401===c.status))throw new Error("Invalid credentials");return Wn(`Fetched principal url ${null===(r=null===(t=c.props)||void 0===t?void 0:t.currentUserPrincipal)||void 0===r?void 0:r.href}`),new URL(null!==(o=null===(i=null===(n=c.props)||void 0===n?void 0:n.currentUserPrincipal)||void 0===i?void 0:i.href)&&void 0!==o?o:"",a.rootUrl).href})),Zn=e=>t(void 0,void 0,void 0,(function*(){var t,r;const{account:n,headers:i}=e,o=["principalUrl","rootUrl"];if(!mn(n,o))throw new Error(`account must have ${bn(n,o)} before fetchHomeUrl`);Wn(`Fetch home url from ${n.principalUrl}`);const a=(yield fn({url:n.principalUrl,props:"caldav"===n.accountType?{[`${V.CALDAV}:calendar-home-set`]:{}}:{[`${V.CARDDAV}:addressbook-home-set`]:{}},depth:"0",headers:i})).find((e=>an(n.principalUrl,e.href)));if(!a||!a.ok)throw new Error("cannot find homeUrl");const s=new URL("caldav"===n.accountType?null===(t=null==a?void 0:a.props)||void 0===t?void 0:t.calendarHomeSet.href:null===(r=null==a?void 0:a.props)||void 0===r?void 0:r.addressbookHomeSet.href,n.rootUrl).href;return Wn(`Fetched home url ${s}`),s})),Jn=e=>t(void 0,void 0,void 0,(function*(){const{account:r,headers:n,loadCollections:i=!1,loadObjects:o=!1}=e,a=Object.assign({},r);return a.rootUrl=yield Qn({account:r,headers:n}),a.principalUrl=yield Xn({account:a,headers:n}),a.homeUrl=yield Zn({account:a,headers:n}),(i||o)&&("caldav"===r.accountType?a.calendars=yield Vn({headers:n,account:a}):"carddav"===r.accountType&&(a.addressBooks=yield Fn({headers:n,account:a}))),o&&("caldav"===r.accountType&&a.calendars?a.calendars=yield Promise.all(a.calendars.map((e=>t(void 0,void 0,void 0,(function*(){return Object.assign(Object.assign({},e),{objects:yield Kn({calendar:e,headers:n})})}))))):"carddav"===r.accountType&&a.addressBooks&&(a.addressBooks=yield Promise.all(a.addressBooks.map((e=>t(void 0,void 0,void 0,(function*(){return Object.assign(Object.assign({},e),{objects:yield Nn({addressBook:e,headers:n})})}))))))),a}));var ei,ti,ri=Object.freeze({__proto__:null,createAccount:Jn,fetchHomeUrl:Zn,fetchPrincipalUrl:Xn,serviceDiscovery:Qn}),ni={exports:{}};ei=ni,ti=ni.exports,function(e){var t=ti,n=ei&&ei.exports==t&&ei,i="object"==typeof r&&r;i.global!==i&&i.window!==i||(e=i);var o=function(e){this.message=e};(o.prototype=new Error).name="InvalidCharacterError";var a=function(e){throw new o(e)},s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",u=/[\t\n\f\r ]/g,c={encode:function(e){e=String(e),/[^\0-\xFF]/.test(e)&&a("The string to be encoded contains characters outside of the Latin1 range.");for(var t,r,n,i,o=e.length%3,u="",c=-1,l=e.length-o;++c>18&63)+s.charAt(i>>12&63)+s.charAt(i>>6&63)+s.charAt(63&i);return 2==o?(t=e.charCodeAt(c)<<8,r=e.charCodeAt(++c),u+=s.charAt((i=t+r)>>10)+s.charAt(i>>4&63)+s.charAt(i<<2&63)+"="):1==o&&(i=e.charCodeAt(c),u+=s.charAt(i>>2)+s.charAt(i<<4&63)+"=="),u},decode:function(e){var t=(e=String(e).replace(u,"")).length;t%4==0&&(t=(e=e.replace(/==?$/,"")).length),(t%4==1||/[^+a-zA-Z0-9/]/.test(e))&&a("Invalid character: the string to be decoded is not correctly encoded.");for(var r,n,i=0,o="",c=-1;++c>(-2*i&6)));return o},version:"1.0.0"};if(t&&!t.nodeType)if(n)n.exports=c;else for(var l in c)c.hasOwnProperty(l)&&(t[l]=c[l]);else e.base64=c}(r);var ii=ni.exports;const oi=B("tsdav:authHelper"),ai=(e,t)=>(...r)=>e(Object.assign(Object.assign({},t),r[0])),si=e=>(oi(`Basic auth token generated: ${ii.encode(`${e.username}:${e.password}`)}`),{authorization:`Basic ${ii.encode(`${e.username}:${e.password}`)}`}),ui=e=>t(void 0,void 0,void 0,(function*(){const t=["authorizationCode","redirectUrl","clientId","clientSecret","tokenUrl"];if(!mn(e,t))throw new Error(`Oauth credentials missing: ${bn(e,t)}`);const r=new URLSearchParams({grant_type:"authorization_code",code:e.authorizationCode,redirect_uri:e.redirectUrl,client_id:e.clientId,client_secret:e.clientSecret});oi(e.tokenUrl),oi(r.toString());const n=yield a.fetch(e.tokenUrl,{method:"POST",body:r.toString(),headers:{"content-length":`${r.toString().length}`,"content-type":"application/x-www-form-urlencoded"}});if(n.ok){return yield n.json()}return oi(`Fetch Oauth tokens failed: ${yield n.text()}`),{}})),ci=e=>t(void 0,void 0,void 0,(function*(){const t=["refreshToken","clientId","clientSecret","tokenUrl"];if(!mn(e,t))throw new Error(`Oauth credentials missing: ${bn(e,t)}`);const r=new URLSearchParams({client_id:e.clientId,client_secret:e.clientSecret,refresh_token:e.refreshToken,grant_type:"refresh_token"}),n=yield a.fetch(e.tokenUrl,{method:"POST",body:r.toString(),headers:{"Content-Type":"application/x-www-form-urlencoded"}});if(n.ok){return yield n.json()}return oi(`Refresh access token failed: ${yield n.text()}`),{}})),li=e=>t(void 0,void 0,void 0,(function*(){var t;oi("Fetching oauth headers");let r={};return e.refreshToken?(e.refreshToken&&!e.accessToken||Date.now()>(null!==(t=e.expiration)&&void 0!==t?t:0))&&(r=yield ci(e)):r=yield ui(e),oi(`Oauth tokens fetched: ${r.access_token}`),{tokens:r,headers:{authorization:`Bearer ${r.access_token}`}}}));var di=Object.freeze({__proto__:null,defaultParam:ai,fetchOauthTokens:ui,getBasicAuthHeaders:si,getOauthHeaders:li,refreshAccessToken:ci});const hi=r=>t(void 0,void 0,void 0,(function*(){var n;const{serverUrl:i,credentials:o,authMethod:a,defaultAccountType:s,authFunction:u}=r;let c={};switch(a){case"Basic":c=si(o);break;case"Oauth":c=(yield li(o)).headers;break;case"Digest":c={Authorization:`Digest ${o.digestString}`};break;case"Custom":c=null!==(n=yield null==u?void 0:u(o))&&void 0!==n?n:{};break;default:throw new Error("Invalid auth method")}const l=s?yield Jn({account:{serverUrl:i,credentials:o,accountType:s},headers:c}):void 0,d=ai(pn,{url:i,headers:c}),h=ai(gn,{headers:c,url:i}),f=ai(yn,{headers:c,url:i}),p=ai(fn,{headers:c}),g=ai(En,{headers:c}),y=ai(An,{headers:c}),v=ai(Cn,{headers:c}),m=ai(Tn,{headers:c}),b=ai(_n,{headers:c}),w=ai(On,{headers:c,account:l}),E=ai(Un,{headers:c}),A=ai(Bn,{headers:c}),T=ai(Mn,{headers:c}),_=ai(Vn,{headers:c,account:l}),C=ai(Kn,{headers:c}),O=ai($n,{headers:c}),D=ai(Hn,{headers:c}),x=ai(Yn,{headers:c}),R=ai(zn,{account:l,headers:c}),S=ai(Rn,{headers:c}),F=ai(Sn,{headers:c});return{davRequest:r=>t(void 0,void 0,void 0,(function*(){const{init:t}=r,n=e(r,["init"]),{headers:i}=t,o=e(t,["headers"]);return hn(Object.assign(Object.assign({},n),{init:Object.assign(Object.assign({},o),{headers:Object.assign(Object.assign({},c),i)})}))})),propfind:p,createAccount:e=>t(void 0,void 0,void 0,(function*(){const{account:t,headers:r,loadCollections:n,loadObjects:a}=e;return Jn({account:Object.assign({serverUrl:i,credentials:o},t),headers:Object.assign(Object.assign({},c),r),loadCollections:n,loadObjects:a})})),createObject:d,updateObject:h,deleteObject:f,calendarQuery:E,addressBookQuery:S,collectionQuery:g,makeCollection:y,calendarMultiGet:A,makeCalendar:T,syncCollection:v,supportedReportSet:m,isCollectionDirty:b,smartCollectionSync:w,fetchCalendars:_,fetchCalendarObjects:C,createCalendarObject:O,updateCalendarObject:D,deleteCalendarObject:x,syncCalendars:R,fetchAddressBooks:ai(Fn,{account:l,headers:c}),addressBookMultiGet:F,fetchVCards:ai(Nn,{headers:c}),createVCard:ai(jn,{headers:c}),updateVCard:ai(Ln,{headers:c}),deleteVCard:ai(kn,{headers:c})}}));class fi{constructor(e){var t,r;this.serverUrl=e.serverUrl,this.credentials=e.credentials,this.authMethod=null!==(t=e.authMethod)&&void 0!==t?t:"Basic",this.accountType=null!==(r=e.defaultAccountType)&&void 0!==r?r:"caldav"}login(){var e;return t(this,void 0,void 0,(function*(){switch(this.authMethod){case"Basic":this.authHeaders=si(this.credentials);break;case"Oauth":this.authHeaders=(yield li(this.credentials)).headers;break;case"Digest":this.authHeaders={Authorization:`Digest ${this.credentials.digestString}`};break;case"Custom":this.authHeaders=yield null===(e=this.authFunction)||void 0===e?void 0:e.call(this,this.credentials);break;default:throw new Error("Invalid auth method")}this.account=this.accountType?yield Jn({account:{serverUrl:this.serverUrl,credentials:this.credentials,accountType:this.accountType},headers:this.authHeaders}):void 0}))}davRequest(r){return t(this,void 0,void 0,(function*(){const{init:t}=r,n=e(r,["init"]),{headers:i}=t,o=e(t,["headers"]);return hn(Object.assign(Object.assign({},n),{init:Object.assign(Object.assign({},o),{headers:Object.assign(Object.assign({},this.authHeaders),i)})}))}))}createObject(...e){return t(this,void 0,void 0,(function*(){return ai(pn,{url:this.serverUrl,headers:this.authHeaders})(e[0])}))}updateObject(...e){return t(this,void 0,void 0,(function*(){return ai(gn,{headers:this.authHeaders,url:this.serverUrl})(e[0])}))}deleteObject(...e){return t(this,void 0,void 0,(function*(){return ai(yn,{headers:this.authHeaders,url:this.serverUrl})(e[0])}))}propfind(...e){return t(this,void 0,void 0,(function*(){return ai(fn,{headers:this.authHeaders})(e[0])}))}createAccount(e){return t(this,void 0,void 0,(function*(){const{account:t,headers:r,loadCollections:n,loadObjects:i}=e;return Jn({account:Object.assign({serverUrl:this.serverUrl,credentials:this.credentials},t),headers:Object.assign(Object.assign({},this.authHeaders),r),loadCollections:n,loadObjects:i})}))}collectionQuery(...e){return t(this,void 0,void 0,(function*(){return ai(En,{headers:this.authHeaders})(e[0])}))}makeCollection(...e){return t(this,void 0,void 0,(function*(){return ai(An,{headers:this.authHeaders})(e[0])}))}syncCollection(...e){return t(this,void 0,void 0,(function*(){return ai(Cn,{headers:this.authHeaders})(e[0])}))}supportedReportSet(...e){return t(this,void 0,void 0,(function*(){return ai(Tn,{headers:this.authHeaders})(e[0])}))}isCollectionDirty(...e){return t(this,void 0,void 0,(function*(){return ai(_n,{headers:this.authHeaders})(e[0])}))}smartCollectionSync(...e){return t(this,void 0,void 0,(function*(){return ai(On,{headers:this.authHeaders,account:this.account})(e[0])}))}calendarQuery(...e){return t(this,void 0,void 0,(function*(){return ai(Un,{headers:this.authHeaders})(e[0])}))}makeCalendar(...e){return t(this,void 0,void 0,(function*(){return ai(Mn,{headers:this.authHeaders})(e[0])}))}calendarMultiGet(...e){return t(this,void 0,void 0,(function*(){return ai(Bn,{headers:this.authHeaders})(e[0])}))}fetchCalendars(...e){return t(this,void 0,void 0,(function*(){return ai(Vn,{headers:this.authHeaders,account:this.account})(null==e?void 0:e[0])}))}fetchCalendarObjects(...e){return t(this,void 0,void 0,(function*(){return ai(Kn,{headers:this.authHeaders})(e[0])}))}createCalendarObject(...e){return t(this,void 0,void 0,(function*(){return ai($n,{headers:this.authHeaders})(e[0])}))}updateCalendarObject(...e){return t(this,void 0,void 0,(function*(){return ai(Hn,{headers:this.authHeaders})(e[0])}))}deleteCalendarObject(...e){return t(this,void 0,void 0,(function*(){return ai(Yn,{headers:this.authHeaders})(e[0])}))}syncCalendars(...e){return t(this,void 0,void 0,(function*(){return ai(zn,{headers:this.authHeaders,account:this.account})(e[0])}))}addressBookQuery(...e){return t(this,void 0,void 0,(function*(){return ai(Rn,{headers:this.authHeaders})(e[0])}))}addressBookMultiGet(...e){return t(this,void 0,void 0,(function*(){return ai(Sn,{headers:this.authHeaders})(e[0])}))}fetchAddressBooks(...e){return t(this,void 0,void 0,(function*(){return ai(Fn,{headers:this.authHeaders,account:this.account})(null==e?void 0:e[0])}))}fetchVCards(...e){return t(this,void 0,void 0,(function*(){return ai(Nn,{headers:this.authHeaders})(e[0])}))}createVCard(...e){return t(this,void 0,void 0,(function*(){return ai(jn,{headers:this.authHeaders})(e[0])}))}updateVCard(...e){return t(this,void 0,void 0,(function*(){return ai(Ln,{headers:this.authHeaders})(e[0])}))}deleteVCard(...e){return t(this,void 0,void 0,(function*(){return ai(kn,{headers:this.authHeaders})(e[0])}))}}var pi=Object.freeze({__proto__:null,DAVClient:fi,createDAVClient:hi}),gi=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({DAVNamespace:U,DAVNamespaceShort:V,DAVAttributeMap:M},pi),vn),Dn),ri),In),Gn),di),ln);export{M as DAVAttributeMap,fi as DAVClient,U as DAVNamespace,V as DAVNamespaceShort,Rn as addressBookQuery,Bn as calendarMultiGet,Un as calendarQuery,un as cleanupFalsy,En as collectionQuery,Jn as createAccount,$n as createCalendarObject,hi as createDAVClient,pn as createObject,jn as createVCard,hn as davRequest,gi as default,Yn as deleteCalendarObject,yn as deleteObject,kn as deleteVCard,Fn as fetchAddressBooks,Kn as fetchCalendarObjects,Vn as fetchCalendars,ui as fetchOauthTokens,Nn as fetchVCards,qn as freeBusyQuery,si as getBasicAuthHeaders,sn as getDAVAttribute,li as getOauthHeaders,_n as isCollectionDirty,Mn as makeCalendar,fn as propfind,ci as refreshAccessToken,On as smartCollectionSync,Tn as supportedReportSet,zn as syncCalendars,Cn as syncCollection,Hn as updateCalendarObject,gn as updateObject,Ln as updateVCard,an as urlContains,on as urlEquals}; diff --git a/dist/tsdav.min.mjs b/dist/tsdav.min.mjs index 402228c..cdc47c1 100644 --- a/dist/tsdav.min.mjs +++ b/dist/tsdav.min.mjs @@ -1 +1 @@ -import{fetch as e}from"cross-fetch";import t from"debug";import r from"xml-js";import{encode as o}from"base-64";function a(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(o=Object.getOwnPropertySymbols(e);a{const t=Number(e);if(!Number.isNaN(t))return t;const r=e.toLowerCase();return"true"===r||"false"!==r&&e},u=(e,t)=>{if(!e&&!t)return!0;if(!e||!t)return!1;const r=e.trim(),o=t.trim();if(Math.abs(r.length-o.length)>1)return!1;const a="/"===r.slice(-1)?r.slice(0,-1):r,n="/"===o.slice(-1)?o.slice(0,-1):o;return e.includes(n)||t.includes(a)},h=(e,t)=>{if(!e&&!t)return!0;if(!e||!t)return!1;const r=e.trim(),o=t.trim(),a="/"===r.slice(-1)?r.slice(0,-1):r,n="/"===o.slice(-1)?o.slice(0,-1):o;return e.includes(n)||t.includes(a)},p=e=>e.reduce(((e,t)=>Object.assign(Object.assign({},e),{[d[t]]:t})),{}),v=e=>Object.entries(e).reduce(((e,[t,r])=>r?Object.assign(Object.assign({},e),{[t]:r}):e),{}),f=(e,t)=>t?{[e]:t}:{};var g=Object.freeze({__proto__:null,cleanupFalsy:v,conditionalParam:f,getDAVAttribute:p,urlContains:h,urlEquals:u});const m=t("tsdav:request"),y=t=>n(void 0,void 0,void 0,(function*(){var o;const{url:a,init:n,convertIncoming:s=!0,parseOutgoing:d=!0}=t,{headers:i={},body:c,namespace:u,method:h,attributes:p}=n,f=s?r.js2xml(Object.assign(Object.assign({_declaration:{_attributes:{version:"1.0",encoding:"utf-8"}}},c),{_attributes:p}),{compact:!0,spaces:2,elementNameFn:e=>u&&!/^.+:.+/.test(e)?`${u}:${e}`:e}):c,g=yield e(a,{headers:Object.assign({"Content-Type":"text/xml;charset=UTF-8"},v(i)),body:f,method:h}),y=yield g.text();if(!g.ok||!(null===(o=g.headers.get("content-type"))||void 0===o?void 0:o.includes("xml"))||!d)return[{href:g.url,ok:g.ok,status:g.status,statusText:g.statusText,raw:y}];const b=r.xml2js(y,{compact:!0,trim:!0,textFn:(e,t)=>{try{const r=t._parent,o=Object.keys(r),a=o[o.length-1],n=r[a];if(n.length>0){n[n.length-1]=l(e)}else r[a]=l(e)}catch(e){m(e.stack)}},elementNameFn:e=>e.replace(/^.+:/,"").replace(/([-_]\w)/g,(e=>e[1].toUpperCase())),attributesFn:e=>{const t=Object.assign({},e);return delete t.xmlns,t},ignoreDeclaration:!0});return(Array.isArray(b.multistatus.response)?b.multistatus.response:[b.multistatus.response]).map((e=>{var t,r;if(!e)return{status:g.status,statusText:g.statusText,ok:g.ok};const o=/^\S+\s(?\d+)\s(?.+)$/.exec(e.status);return{raw:b,href:e.href,status:(null==o?void 0:o.groups)?Number.parseInt(null==o?void 0:o.groups.status,10):g.status,statusText:null!==(r=null===(t=null==o?void 0:o.groups)||void 0===t?void 0:t.statusText)&&void 0!==r?r:g.statusText,ok:!e.error,error:e.error,responsedescription:e.responsedescription,props:(Array.isArray(e.propstat)?e.propstat:[e.propstat]).reduce(((e,t)=>Object.assign(Object.assign({},e),null==t?void 0:t.prop)),{})}}))})),b=e=>n(void 0,void 0,void 0,(function*(){const{url:t,props:r,depth:o,headers:a}=e;return y({url:t,init:{method:"PROPFIND",headers:v(Object.assign({depth:o},a)),namespace:i.DAV,body:{propfind:{_attributes:p([s.CALDAV,s.CALDAV_APPLE,s.CALENDAR_SERVER,s.CARDDAV,s.DAV]),prop:r}}}})})),A=t=>n(void 0,void 0,void 0,(function*(){const{url:r,data:o,headers:a}=t;return e(r,{method:"PUT",body:o,headers:a})})),O=t=>n(void 0,void 0,void 0,(function*(){const{url:r,data:o,etag:a,headers:n}=t;return e(r,{method:"PUT",body:o,headers:v(Object.assign({"If-Match":a},n))})})),D=t=>n(void 0,void 0,void 0,(function*(){const{url:r,headers:o,etag:a}=t;return e(r,{method:"DELETE",headers:v(Object.assign({"If-Match":a},o))})}));var j=Object.freeze({__proto__:null,createObject:A,davRequest:y,deleteObject:D,propfind:b,updateObject:O});function C(e,t){const r=e=>t.every((t=>e[t]));return Array.isArray(e)?e.every((e=>r(e))):r(e)}const V=(e,t)=>t.reduce(((t,r)=>e[r]?t:`${t.length?`${t},`:""}${r.toString()}`),""),$=t("tsdav:collection"),w=e=>n(void 0,void 0,void 0,(function*(){const{url:t,body:r,depth:o,defaultNamespace:a=i.DAV,headers:n}=e,s=yield y({url:t,init:{method:"REPORT",headers:v(Object.assign({depth:o},n)),namespace:a,body:r}});return 1!==s.length||s[0].raw?s:[]})),k=e=>n(void 0,void 0,void 0,(function*(){const{url:t,props:r,depth:o,headers:a}=e;return y({url:t,init:{method:"MKCOL",headers:v(Object.assign({depth:o},a)),namespace:i.DAV,body:r?{mkcol:{set:{prop:r}}}:void 0}})})),_=e=>n(void 0,void 0,void 0,(function*(){var t,r,o,a,n;const{collection:s,headers:d}=e;return null!==(n=null===(a=null===(o=null===(r=null===(t=(yield b({url:s.url,props:{[`${i.DAV}:supported-report-set`]:{}},depth:"0",headers:d}))[0])||void 0===t?void 0:t.props)||void 0===r?void 0:r.supportedReportSet)||void 0===o?void 0:o.supportedReport)||void 0===a?void 0:a.map((e=>Object.keys(e.report)[0])))&&void 0!==n?n:[]})),R=e=>n(void 0,void 0,void 0,(function*(){var t,r,o;const{collection:a,headers:n}=e,s=(yield b({url:a.url,props:{[`${i.CALENDAR_SERVER}:getctag`]:{}},depth:"0",headers:n})).filter((e=>h(a.url,e.href)))[0];if(!s)throw new Error("Collection does not exist on server");return{isDirty:a.ctag!==(null===(t=s.props)||void 0===t?void 0:t.getctag),newCtag:null===(o=null===(r=s.props)||void 0===r?void 0:r.getctag)||void 0===o?void 0:o.toString()}})),U=e=>{const{url:t,props:r,headers:o,syncLevel:a,syncToken:n}=e;return y({url:t,init:{method:"REPORT",namespace:i.DAV,headers:Object.assign({},o),body:{"sync-collection":{_attributes:p([s.CALDAV,s.CARDDAV,s.DAV]),"sync-level":a,"sync-token":n,[`${i.DAV}:prop`]:r}}}})},E=e=>n(void 0,void 0,void 0,(function*(){var t,r,o,a,n,s,d,c,l,u,p;const{collection:v,method:f,headers:g,account:m,detailedResult:y}=e,b=["accountType","homeUrl"];if(!m||!C(m,b)){if(!m)throw new Error("no account for smartCollectionSync");throw new Error(`account must have ${V(m,b)} before smartCollectionSync`)}const A=null!=f?f:(null===(t=v.reports)||void 0===t?void 0:t.includes("syncCollection"))?"webdav":"basic";if($(`smart collection sync with type ${m.accountType} and method ${A}`),"webdav"===A){const e=yield U({url:v.url,props:{[`${i.DAV}:getetag`]:{},[`${"caldav"===m.accountType?i.CALDAV:i.CARDDAV}:${"caldav"===m.accountType?"calendar-data":"address-data"}`]:{},[`${i.DAV}:displayname`]:{}},syncLevel:1,syncToken:v.syncToken,headers:g}),t=e.filter((e=>{var t;const r="caldav"===m.accountType?".ics":".vcf";return(null===(t=e.href)||void 0===t?void 0:t.slice(-4))===r})),l=t.filter((e=>404!==e.status)).map((e=>e.href)),u=t.filter((e=>404===e.status)).map((e=>e.href)),p=(l.length&&null!==(o=yield null===(r=null==v?void 0:v.objectMultiGet)||void 0===r?void 0:r.call(v,{url:v.url,props:{[`${i.DAV}:getetag`]:{},[`${"caldav"===m.accountType?i.CALDAV:i.CARDDAV}:${"caldav"===m.accountType?"calendar-data":"address-data"}`]:{}},objectUrls:l,depth:"1",headers:g}))&&void 0!==o?o:[]).map((e=>{var t,r,o,a,n,s,d,i,c,l;return{url:null!==(t=e.href)&&void 0!==t?t:"",etag:null===(r=e.props)||void 0===r?void 0:r.getetag,data:"caldav"===(null==m?void 0:m.accountType)?null!==(n=null===(a=null===(o=e.props)||void 0===o?void 0:o.calendarData)||void 0===a?void 0:a._cdata)&&void 0!==n?n:null===(s=e.props)||void 0===s?void 0:s.calendarData:null!==(c=null===(i=null===(d=e.props)||void 0===d?void 0:d.addressData)||void 0===i?void 0:i._cdata)&&void 0!==c?c:null===(l=e.props)||void 0===l?void 0:l.addressData}})),f=null!==(a=v.objects)&&void 0!==a?a:[],b=p.filter((e=>f.every((t=>!h(t.url,e.url))))),A=f.reduce(((e,t)=>{const r=p.find((e=>h(e.url,t.url)));return r&&r.etag&&r.etag!==t.etag?[...e,r]:e}),[]),O=u.map((e=>({url:e,etag:""}))),D=f.filter((e=>p.some((t=>h(e.url,t.url)&&t.etag===e.etag))));return Object.assign(Object.assign({},v),{objects:y?{created:b,updated:A,deleted:O}:[...D,...b,...A],syncToken:null!==(c=null===(d=null===(s=null===(n=e[0])||void 0===n?void 0:n.raw)||void 0===s?void 0:s.multistatus)||void 0===d?void 0:d.syncToken)&&void 0!==c?c:v.syncToken})}if("basic"===A){const{isDirty:e,newCtag:t}=yield R({collection:v,headers:g}),r=null!==(l=v.objects)&&void 0!==l?l:[],o=null!==(p=yield null===(u=v.fetchObjects)||void 0===u?void 0:u.call(v,{collection:v,headers:g}))&&void 0!==p?p:[],a=o.filter((e=>r.every((t=>!h(t.url,e.url))))),n=r.reduce(((e,t)=>{const r=o.find((e=>h(e.url,t.url)));return r&&r.etag&&r.etag!==t.etag?[...e,r]:e}),[]),s=r.filter((e=>o.every((t=>!h(t.url,e.url))))),d=r.filter((e=>o.some((t=>h(e.url,t.url)&&t.etag===e.etag))));if(e)return Object.assign(Object.assign({},v),{objects:y?{created:a,updated:n,deleted:s}:[...d,...a,...n],ctag:t})}return y?Object.assign(Object.assign({},v),{objects:{created:[],updated:[],deleted:[]}}):v}));var L=Object.freeze({__proto__:null,collectionQuery:w,isCollectionDirty:R,makeCollection:k,smartCollectionSync:E,supportedReportSet:_,syncCollection:U});const T=t("tsdav:addressBook"),S=e=>n(void 0,void 0,void 0,(function*(){const{url:t,props:r,filters:o,depth:a,headers:n}=e;return w({url:t,body:{"addressbook-query":{_attributes:p([s.CARDDAV,s.DAV]),[`${i.DAV}:prop`]:r,filter:null!=o?o:{"prop-filter":{_attributes:{name:"FN"}}}}},defaultNamespace:i.CARDDAV,depth:a,headers:n})})),x=e=>n(void 0,void 0,void 0,(function*(){const{url:t,props:r,objectUrls:o,depth:a,headers:n}=e;return w({url:t,body:{"addressbook-multiget":{_attributes:p([s.DAV,s.CARDDAV]),[`${i.DAV}:prop`]:r,[`${i.DAV}:href`]:o}},defaultNamespace:i.CARDDAV,depth:a,headers:n})})),N=e=>n(void 0,void 0,void 0,(function*(){const{account:t,headers:r,props:o}=null!=e?e:{},a=["homeUrl","rootUrl"];if(!t||!C(t,a)){if(!t)throw new Error("no account for fetchAddressBooks");throw new Error(`account must have ${V(t,a)} before fetchAddressBooks`)}const s=yield b({url:t.homeUrl,props:null!=o?o:{[`${i.DAV}:displayname`]:{},[`${i.CALENDAR_SERVER}:getctag`]:{},[`${i.DAV}:resourcetype`]:{},[`${i.DAV}:sync-token`]:{}},depth:"1",headers:r});return Promise.all(s.filter((e=>{var t,r;return Object.keys(null!==(r=null===(t=e.props)||void 0===t?void 0:t.resourcetype)&&void 0!==r?r:{}).includes("addressbook")})).map((e=>{var r,o,a,n,s,d,i,c,l;const u=null!==(a=null===(o=null===(r=e.props)||void 0===r?void 0:r.displayname)||void 0===o?void 0:o._cdata)&&void 0!==a?a:null===(n=e.props)||void 0===n?void 0:n.displayname;return T(`Found address book named ${"string"==typeof u?u:""},\n props: ${JSON.stringify(e.props)}`),{url:new URL(null!==(s=e.href)&&void 0!==s?s:"",null!==(d=t.rootUrl)&&void 0!==d?d:"").href,ctag:null===(i=e.props)||void 0===i?void 0:i.getctag,displayName:"string"==typeof u?u:"",resourcetype:Object.keys(null===(c=e.props)||void 0===c?void 0:c.resourcetype),syncToken:null===(l=e.props)||void 0===l?void 0:l.syncToken}})).map((e=>n(void 0,void 0,void 0,(function*(){return Object.assign(Object.assign({},e),{reports:yield _({collection:e,headers:r})})})))))})),P=e=>n(void 0,void 0,void 0,(function*(){const{addressBook:t,headers:r,objectUrls:o,urlFilter:a=(e=>e),useMultiGet:n=!0}=e;T(`Fetching vcards from ${null==t?void 0:t.url}`);const s=["url"];if(!t||!C(t,s)){if(!t)throw new Error("cannot fetchVCards for undefined addressBook");throw new Error(`addressBook must have ${V(t,s)} before fetchVCards`)}const d=(null!=o?o:(yield S({url:t.url,props:{[`${i.DAV}:getetag`]:{}},depth:"1",headers:r})).map((e=>{var t;return e.ok&&null!==(t=e.href)&&void 0!==t?t:""}))).map((e=>e.startsWith("http")||!e?e:new URL(e,t.url).href)).filter(a).map((e=>new URL(e).pathname));let c=[];return d.length>0&&(c=n?yield x({url:t.url,props:{[`${i.DAV}:getetag`]:{},[`${i.CARDDAV}:address-data`]:{}},objectUrls:d,depth:"1",headers:r}):yield S({url:t.url,props:{[`${i.DAV}:getetag`]:{},[`${i.CARDDAV}:address-data`]:{}},depth:"1",headers:r})),c.map((e=>{var r,o,a,n,s,d;return{url:new URL(null!==(r=e.href)&&void 0!==r?r:"",t.url).href,etag:null===(o=e.props)||void 0===o?void 0:o.getetag,data:null!==(s=null===(n=null===(a=e.props)||void 0===a?void 0:a.addressData)||void 0===n?void 0:n._cdata)&&void 0!==s?s:null===(d=e.props)||void 0===d?void 0:d.addressData}}))})),H=e=>n(void 0,void 0,void 0,(function*(){const{addressBook:t,vCardString:r,filename:o,headers:a}=e;return A({url:new URL(o,t.url).href,data:r,headers:Object.assign({"content-type":"text/vcard; charset=utf-8","If-None-Match":"*"},a)})})),B=e=>n(void 0,void 0,void 0,(function*(){const{vCard:t,headers:r}=e;return O({url:t.url,data:t.data,etag:t.etag,headers:Object.assign({"content-type":"text/vcard; charset=utf-8"},r)})})),I=e=>n(void 0,void 0,void 0,(function*(){const{vCard:t,headers:r}=e;return D({url:t.url,etag:t.etag,headers:r})}));var M=Object.freeze({__proto__:null,addressBookMultiGet:x,addressBookQuery:S,createVCard:H,deleteVCard:I,fetchAddressBooks:N,fetchVCards:P,updateVCard:B});const F=t("tsdav:calendar"),z=e=>n(void 0,void 0,void 0,(function*(){const{url:t,props:r,filters:o,timezone:a,depth:n,headers:d}=e;return w({url:t,body:{"calendar-query":v({_attributes:p([s.CALDAV,s.CALENDAR_SERVER,s.CALDAV_APPLE,s.DAV]),[`${i.DAV}:prop`]:r,filter:o,timezone:a})},defaultNamespace:i.CALDAV,depth:n,headers:d})})),Z=e=>n(void 0,void 0,void 0,(function*(){const{url:t,props:r,objectUrls:o,filters:a,timezone:n,depth:d,headers:c}=e;return w({url:t,body:{"calendar-multiget":Object.assign(Object.assign({_attributes:p([s.DAV,s.CALDAV]),[`${i.DAV}:prop`]:r,[`${i.DAV}:href`]:o},f("filter",a)),{timezone:n})},defaultNamespace:i.CALDAV,depth:d,headers:c})})),G=e=>n(void 0,void 0,void 0,(function*(){const{url:t,props:r,depth:o,headers:a}=e;return y({url:t,init:{method:"MKCALENDAR",headers:v(Object.assign({depth:o},a)),namespace:i.DAV,body:{[`${i.CALDAV}:mkcalendar`]:{_attributes:p([s.DAV,s.CALDAV,s.CALDAV_APPLE]),set:{prop:r}}}}})})),Q=e=>n(void 0,void 0,void 0,(function*(){const{headers:t,account:r,props:o,projectedProps:a}=null!=e?e:{},s=["homeUrl","rootUrl"];if(!r||!C(r,s)){if(!r)throw new Error("no account for fetchCalendars");throw new Error(`account must have ${V(r,s)} before fetchCalendars`)}const d=yield b({url:r.homeUrl,props:null!=o?o:{[`${i.CALDAV}:calendar-description`]:{},[`${i.CALDAV}:calendar-timezone`]:{},[`${i.DAV}:displayname`]:{},[`${i.CALDAV_APPLE}:calendar-color`]:{},[`${i.CALENDAR_SERVER}:getctag`]:{},[`${i.DAV}:resourcetype`]:{},[`${i.CALDAV}:supported-calendar-component-set`]:{},[`${i.DAV}:sync-token`]:{}},depth:"1",headers:t});return Promise.all(d.filter((e=>{var t,r;return Object.keys(null!==(r=null===(t=e.props)||void 0===t?void 0:t.resourcetype)&&void 0!==r?r:{}).includes("calendar")})).filter((e=>{var t,r,o;return(Array.isArray(null===(t=e.props)||void 0===t?void 0:t.supportedCalendarComponentSet.comp)?null===(r=e.props)||void 0===r?void 0:r.supportedCalendarComponentSet.comp.map((e=>e._attributes.name)):[null===(o=e.props)||void 0===o?void 0:o.supportedCalendarComponentSet.comp._attributes.name]||[]).some((e=>Object.values(c).includes(e)))})).map((e=>{var t,o,n,s,d,i,c,l,u,h,p,v,g,m,y;const b=null===(t=e.props)||void 0===t?void 0:t.calendarDescription,A=null===(o=e.props)||void 0===o?void 0:o.calendarTimezone;return Object.assign({description:"string"==typeof b?b:"",timezone:"string"==typeof A?A:"",url:new URL(null!==(n=e.href)&&void 0!==n?n:"",null!==(s=r.rootUrl)&&void 0!==s?s:"").href,ctag:null===(d=e.props)||void 0===d?void 0:d.getctag,calendarColor:null===(i=e.props)||void 0===i?void 0:i.calendarColor,displayName:null!==(l=null===(c=e.props)||void 0===c?void 0:c.displayname._cdata)&&void 0!==l?l:null===(u=e.props)||void 0===u?void 0:u.displayname,components:Array.isArray(null===(h=e.props)||void 0===h?void 0:h.supportedCalendarComponentSet.comp)?null===(p=e.props)||void 0===p?void 0:p.supportedCalendarComponentSet.comp.map((e=>e._attributes.name)):[null===(v=e.props)||void 0===v?void 0:v.supportedCalendarComponentSet.comp._attributes.name],resourcetype:Object.keys(null===(g=e.props)||void 0===g?void 0:g.resourcetype),syncToken:null===(m=e.props)||void 0===m?void 0:m.syncToken},f("projectedProps",Object.fromEntries(Object.entries(null!==(y=e.props)&&void 0!==y?y:{}).filter((([e])=>null==a?void 0:a[e])))))})).map((e=>n(void 0,void 0,void 0,(function*(){return Object.assign(Object.assign({},e),{reports:yield _({collection:e,headers:t})})})))))})),q=e=>n(void 0,void 0,void 0,(function*(){const{calendar:t,objectUrls:r,filters:o,timeRange:a,headers:n,expand:s,urlFilter:d=(e=>Boolean(null==e?void 0:e.includes(".ics"))),useMultiGet:c=!0}=e;if(a){const e=/^\d{4}(-\d\d(-\d\d(T\d\d:\d\d(:\d\d)?(\.\d+)?(([+-]\d\d:\d\d)|Z)?)?)?)?$/i,t=/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(\.\d+)?(([+-]\d\d:\d\d)|Z)?$/i;if(!(e.test(a.start)&&e.test(a.end)||t.test(a.start)&&t.test(a.end)))throw new Error("invalid timeRange format, not in ISO8601")}F(`Fetching calendar objects from ${null==t?void 0:t.url}`);const l=["url"];if(!t||!C(t,l)){if(!t)throw new Error("cannot fetchCalendarObjects for undefined calendar");throw new Error(`calendar must have ${V(t,l)} before fetchCalendarObjects`)}const u=null!=o?o:[{"comp-filter":{_attributes:{name:"VCALENDAR"},"comp-filter":Object.assign({_attributes:{name:"VEVENT"}},a?{"time-range":{_attributes:{start:`${new Date(a.start).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`,end:`${new Date(a.end).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`}}}:{})}}],h=(null!=r?r:(yield z({url:t.url,props:{[`${i.DAV}:getetag`]:Object.assign({},s&&a?{[`${i.CALDAV}:expand`]:{_attributes:{start:`${new Date(a.start).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`,end:`${new Date(a.end).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`}}}:{})},filters:u,depth:"1",headers:n})).map((e=>{var t;return null!==(t=e.href)&&void 0!==t?t:""}))).map((e=>e.startsWith("http")||!e?e:new URL(e,t.url).href)).filter(d).map((e=>new URL(e).pathname));let p=[];return h.length>0&&(p=!c||s?yield z({url:t.url,props:{[`${i.DAV}:getetag`]:{},[`${i.CALDAV}:calendar-data`]:Object.assign({},s&&a?{[`${i.CALDAV}:expand`]:{_attributes:{start:`${new Date(a.start).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`,end:`${new Date(a.end).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`}}}:{})},filters:u,depth:"1",headers:n}):yield Z({url:t.url,props:{[`${i.DAV}:getetag`]:{},[`${i.CALDAV}:calendar-data`]:Object.assign({},s&&a?{[`${i.CALDAV}:expand`]:{_attributes:{start:`${new Date(a.start).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`,end:`${new Date(a.end).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`}}}:{})},objectUrls:h,depth:"1",headers:n})),p.map((e=>{var r,o,a,n,s,d;return{url:new URL(null!==(r=e.href)&&void 0!==r?r:"",t.url).href,etag:`${null===(o=e.props)||void 0===o?void 0:o.getetag}`,data:null!==(s=null===(n=null===(a=e.props)||void 0===a?void 0:a.calendarData)||void 0===n?void 0:n._cdata)&&void 0!==s?s:null===(d=e.props)||void 0===d?void 0:d.calendarData}}))})),J=e=>n(void 0,void 0,void 0,(function*(){const{calendar:t,iCalString:r,filename:o,headers:a}=e;return A({url:new URL(o,t.url).href,data:r,headers:Object.assign({"content-type":"text/calendar; charset=utf-8","If-None-Match":"*"},a)})})),K=e=>n(void 0,void 0,void 0,(function*(){const{calendarObject:t,headers:r}=e;return O({url:t.url,data:t.data,etag:t.etag,headers:Object.assign({"content-type":"text/calendar; charset=utf-8"},r)})})),W=e=>n(void 0,void 0,void 0,(function*(){const{calendarObject:t,headers:r}=e;return D({url:t.url,etag:t.etag,headers:r})})),Y=e=>n(void 0,void 0,void 0,(function*(){var t;const{oldCalendars:r,account:o,detailedResult:a,headers:s}=e;if(!o)throw new Error("Must have account before syncCalendars");const d=null!==(t=null!=r?r:o.calendars)&&void 0!==t?t:[],i=yield Q({account:o,headers:s}),c=i.filter((e=>d.every((t=>!h(t.url,e.url)))));F(`new calendars: ${c.map((e=>e.displayName))}`);const l=d.reduce(((e,t)=>{const r=i.find((e=>h(e.url,t.url)));return r&&(r.syncToken&&r.syncToken!==t.syncToken||r.ctag&&r.ctag!==t.ctag)?[...e,r]:e}),[]);F(`updated calendars: ${l.map((e=>e.displayName))}`);const u=yield Promise.all(l.map((e=>n(void 0,void 0,void 0,(function*(){return yield E({collection:Object.assign(Object.assign({},e),{objectMultiGet:Z}),method:"webdav",headers:s,account:o})}))))),p=d.filter((e=>i.every((t=>!h(t.url,e.url)))));F(`deleted calendars: ${p.map((e=>e.displayName))}`);const v=d.filter((e=>i.some((t=>h(t.url,e.url)&&(t.syncToken&&t.syncToken!==e.syncToken||t.ctag&&t.ctag!==e.ctag)))));return a?{created:c,updated:l,deleted:p}:[...v,...c,...u]})),X=e=>n(void 0,void 0,void 0,(function*(){const{url:t,timeRange:r,depth:o,headers:a}=e;if(!r)throw new Error("timeRange is required");{const e=/^\d{4}(-\d\d(-\d\d(T\d\d:\d\d(:\d\d)?(\.\d+)?(([+-]\d\d:\d\d)|Z)?)?)?)?$/i,t=/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(\.\d+)?(([+-]\d\d:\d\d)|Z)?$/i;if(!(e.test(r.start)&&e.test(r.end)||t.test(r.start)&&t.test(r.end)))throw new Error("invalid timeRange format, not in ISO8601")}return(yield w({url:t,body:{"free-busy-query":v({_attributes:p([s.CALDAV]),[`${i.CALDAV}:time-range`]:{_attributes:{start:`${new Date(r.start).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`,end:`${new Date(r.end).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`}}})},defaultNamespace:i.CALDAV,depth:o,headers:a}))[0]}));var ee=Object.freeze({__proto__:null,calendarMultiGet:Z,calendarQuery:z,createCalendarObject:J,deleteCalendarObject:W,fetchCalendarObjects:q,fetchCalendars:Q,freeBusyQuery:X,makeCalendar:G,syncCalendars:Y,updateCalendarObject:K});const te=t("tsdav:account"),re=t=>n(void 0,void 0,void 0,(function*(){var r,o;te("Service discovery...");const{account:a,headers:n}=t,s=new URL(a.serverUrl),d=new URL(`/.well-known/${a.accountType}`,s);d.protocol=null!==(r=s.protocol)&&void 0!==r?r:"http";try{const t=yield e(d.href,{headers:n,method:"PROPFIND",redirect:"manual"});if(t.status>=300&&t.status<400){const e=t.headers.get("Location");if("string"==typeof e&&e.length){te(`Service discovery redirected to ${e}`);const t=new URL(e,s);return t.hostname===d.hostname&&d.port&&!t.port&&(t.port=d.port),t.protocol=null!==(o=s.protocol)&&void 0!==o?o:"http",t.href}}}catch(e){te(`Service discovery failed: ${e.stack}`)}return s.href})),oe=e=>n(void 0,void 0,void 0,(function*(){var t,r,o,a,n;const{account:s,headers:d}=e,c=["rootUrl"];if(!C(s,c))throw new Error(`account must have ${V(s,c)} before fetchPrincipalUrl`);te(`Fetching principal url from path ${s.rootUrl}`);const[l]=yield b({url:s.rootUrl,props:{[`${i.DAV}:current-user-principal`]:{}},depth:"0",headers:d});if(!l.ok&&(te(`Fetch principal url failed: ${l.statusText}`),401===l.status))throw new Error("Invalid credentials");return te(`Fetched principal url ${null===(r=null===(t=l.props)||void 0===t?void 0:t.currentUserPrincipal)||void 0===r?void 0:r.href}`),new URL(null!==(n=null===(a=null===(o=l.props)||void 0===o?void 0:o.currentUserPrincipal)||void 0===a?void 0:a.href)&&void 0!==n?n:"",s.rootUrl).href})),ae=e=>n(void 0,void 0,void 0,(function*(){var t,r;const{account:o,headers:a}=e,n=["principalUrl","rootUrl"];if(!C(o,n))throw new Error(`account must have ${V(o,n)} before fetchHomeUrl`);te(`Fetch home url from ${o.principalUrl}`);const s=(yield b({url:o.principalUrl,props:"caldav"===o.accountType?{[`${i.CALDAV}:calendar-home-set`]:{}}:{[`${i.CARDDAV}:addressbook-home-set`]:{}},depth:"0",headers:a})).find((e=>h(o.principalUrl,e.href)));if(!s||!s.ok)throw new Error("cannot find homeUrl");const d=new URL("caldav"===o.accountType?null===(t=null==s?void 0:s.props)||void 0===t?void 0:t.calendarHomeSet.href:null===(r=null==s?void 0:s.props)||void 0===r?void 0:r.addressbookHomeSet.href,o.rootUrl).href;return te(`Fetched home url ${d}`),d})),ne=e=>n(void 0,void 0,void 0,(function*(){const{account:t,headers:r,loadCollections:o=!1,loadObjects:a=!1}=e,s=Object.assign({},t);return s.rootUrl=yield re({account:t,headers:r}),s.principalUrl=yield oe({account:s,headers:r}),s.homeUrl=yield ae({account:s,headers:r}),(o||a)&&("caldav"===t.accountType?s.calendars=yield Q({headers:r,account:s}):"carddav"===t.accountType&&(s.addressBooks=yield N({headers:r,account:s}))),a&&("caldav"===t.accountType&&s.calendars?s.calendars=yield Promise.all(s.calendars.map((e=>n(void 0,void 0,void 0,(function*(){return Object.assign(Object.assign({},e),{objects:yield q({calendar:e,headers:r})})}))))):"carddav"===t.accountType&&s.addressBooks&&(s.addressBooks=yield Promise.all(s.addressBooks.map((e=>n(void 0,void 0,void 0,(function*(){return Object.assign(Object.assign({},e),{objects:yield P({addressBook:e,headers:r})})}))))))),s}));var se=Object.freeze({__proto__:null,createAccount:ne,fetchHomeUrl:ae,fetchPrincipalUrl:oe,serviceDiscovery:re});const de=t("tsdav:authHelper"),ie=(e,t)=>(...r)=>e(Object.assign(Object.assign({},t),r[0])),ce=e=>(de(`Basic auth token generated: ${o(`${e.username}:${e.password}`)}`),{authorization:`Basic ${o(`${e.username}:${e.password}`)}`}),le=t=>n(void 0,void 0,void 0,(function*(){const r=["authorizationCode","redirectUrl","clientId","clientSecret","tokenUrl"];if(!C(t,r))throw new Error(`Oauth credentials missing: ${V(t,r)}`);const o=new URLSearchParams({grant_type:"authorization_code",code:t.authorizationCode,redirect_uri:t.redirectUrl,client_id:t.clientId,client_secret:t.clientSecret});de(t.tokenUrl),de(o.toString());const a=yield e(t.tokenUrl,{method:"POST",body:o.toString(),headers:{"content-length":`${o.toString().length}`,"content-type":"application/x-www-form-urlencoded"}});if(a.ok){return yield a.json()}return de(`Fetch Oauth tokens failed: ${yield a.text()}`),{}})),ue=t=>n(void 0,void 0,void 0,(function*(){const r=["refreshToken","clientId","clientSecret","tokenUrl"];if(!C(t,r))throw new Error(`Oauth credentials missing: ${V(t,r)}`);const o=new URLSearchParams({client_id:t.clientId,client_secret:t.clientSecret,refresh_token:t.refreshToken,grant_type:"refresh_token"}),a=yield e(t.tokenUrl,{method:"POST",body:o.toString(),headers:{"Content-Type":"application/x-www-form-urlencoded"}});if(a.ok){return yield a.json()}return de(`Refresh access token failed: ${yield a.text()}`),{}})),he=e=>n(void 0,void 0,void 0,(function*(){var t;de("Fetching oauth headers");let r={};return e.refreshToken?(e.refreshToken&&!e.accessToken||Date.now()>(null!==(t=e.expiration)&&void 0!==t?t:0))&&(r=yield ue(e)):r=yield le(e),de(`Oauth tokens fetched: ${r.access_token}`),{tokens:r,headers:{authorization:`Bearer ${r.access_token}`}}}));var pe=Object.freeze({__proto__:null,defaultParam:ie,fetchOauthTokens:le,getBasicAuthHeaders:ce,getOauthHeaders:he,refreshAccessToken:ue});const ve=e=>n(void 0,void 0,void 0,(function*(){var t;const{serverUrl:r,credentials:o,authMethod:s,defaultAccountType:d,authFunction:i}=e;let c={};switch(s){case"Basic":c=ce(o);break;case"Oauth":c=(yield he(o)).headers;break;case"Digest":c={Authorization:`Digest ${o.digestString}`};break;case"Custom":c=null!==(t=yield null==i?void 0:i(o))&&void 0!==t?t:{};break;default:throw new Error("Invalid auth method")}const l=d?yield ne({account:{serverUrl:r,credentials:o,accountType:d},headers:c}):void 0,u=ie(A,{url:r,headers:c}),h=ie(O,{headers:c,url:r}),p=ie(D,{headers:c,url:r}),v=ie(b,{headers:c}),f=ie(w,{headers:c}),g=ie(k,{headers:c}),m=ie(U,{headers:c}),j=ie(_,{headers:c}),C=ie(R,{headers:c}),V=ie(E,{headers:c,account:l}),$=ie(z,{headers:c}),L=ie(Z,{headers:c}),T=ie(G,{headers:c}),M=ie(Q,{headers:c,account:l}),F=ie(q,{headers:c}),X=ie(J,{headers:c}),ee=ie(K,{headers:c}),te=ie(W,{headers:c}),re=ie(Y,{account:l,headers:c}),oe=ie(S,{headers:c}),ae=ie(x,{headers:c});return{davRequest:e=>n(void 0,void 0,void 0,(function*(){const{init:t}=e,r=a(e,["init"]),{headers:o}=t,n=a(t,["headers"]);return y(Object.assign(Object.assign({},r),{init:Object.assign(Object.assign({},n),{headers:Object.assign(Object.assign({},c),o)})}))})),propfind:v,createAccount:e=>n(void 0,void 0,void 0,(function*(){const{account:t,headers:a,loadCollections:n,loadObjects:s}=e;return ne({account:Object.assign({serverUrl:r,credentials:o},t),headers:Object.assign(Object.assign({},c),a),loadCollections:n,loadObjects:s})})),createObject:u,updateObject:h,deleteObject:p,calendarQuery:$,addressBookQuery:oe,collectionQuery:f,makeCollection:g,calendarMultiGet:L,makeCalendar:T,syncCollection:m,supportedReportSet:j,isCollectionDirty:C,smartCollectionSync:V,fetchCalendars:M,fetchCalendarObjects:F,createCalendarObject:X,updateCalendarObject:ee,deleteCalendarObject:te,syncCalendars:re,fetchAddressBooks:ie(N,{account:l,headers:c}),addressBookMultiGet:ae,fetchVCards:ie(P,{headers:c}),createVCard:ie(H,{headers:c}),updateVCard:ie(B,{headers:c}),deleteVCard:ie(I,{headers:c})}}));class fe{constructor(e){var t,r;this.serverUrl=e.serverUrl,this.credentials=e.credentials,this.authMethod=null!==(t=e.authMethod)&&void 0!==t?t:"Basic",this.accountType=null!==(r=e.defaultAccountType)&&void 0!==r?r:"caldav"}login(){var e;return n(this,void 0,void 0,(function*(){switch(this.authMethod){case"Basic":this.authHeaders=ce(this.credentials);break;case"Oauth":this.authHeaders=(yield he(this.credentials)).headers;break;case"Digest":this.authHeaders={Authorization:`Digest ${this.credentials.digestString}`};break;case"Custom":this.authHeaders=yield null===(e=this.authFunction)||void 0===e?void 0:e.call(this,this.credentials);break;default:throw new Error("Invalid auth method")}this.account=this.accountType?yield ne({account:{serverUrl:this.serverUrl,credentials:this.credentials,accountType:this.accountType},headers:this.authHeaders}):void 0}))}davRequest(e){return n(this,void 0,void 0,(function*(){const{init:t}=e,r=a(e,["init"]),{headers:o}=t,n=a(t,["headers"]);return y(Object.assign(Object.assign({},r),{init:Object.assign(Object.assign({},n),{headers:Object.assign(Object.assign({},this.authHeaders),o)})}))}))}createObject(...e){return n(this,void 0,void 0,(function*(){return ie(A,{url:this.serverUrl,headers:this.authHeaders})(e[0])}))}updateObject(...e){return n(this,void 0,void 0,(function*(){return ie(O,{headers:this.authHeaders,url:this.serverUrl})(e[0])}))}deleteObject(...e){return n(this,void 0,void 0,(function*(){return ie(D,{headers:this.authHeaders,url:this.serverUrl})(e[0])}))}propfind(...e){return n(this,void 0,void 0,(function*(){return ie(b,{headers:this.authHeaders})(e[0])}))}createAccount(e){return n(this,void 0,void 0,(function*(){const{account:t,headers:r,loadCollections:o,loadObjects:a}=e;return ne({account:Object.assign({serverUrl:this.serverUrl,credentials:this.credentials},t),headers:Object.assign(Object.assign({},this.authHeaders),r),loadCollections:o,loadObjects:a})}))}collectionQuery(...e){return n(this,void 0,void 0,(function*(){return ie(w,{headers:this.authHeaders})(e[0])}))}makeCollection(...e){return n(this,void 0,void 0,(function*(){return ie(k,{headers:this.authHeaders})(e[0])}))}syncCollection(...e){return n(this,void 0,void 0,(function*(){return ie(U,{headers:this.authHeaders})(e[0])}))}supportedReportSet(...e){return n(this,void 0,void 0,(function*(){return ie(_,{headers:this.authHeaders})(e[0])}))}isCollectionDirty(...e){return n(this,void 0,void 0,(function*(){return ie(R,{headers:this.authHeaders})(e[0])}))}smartCollectionSync(...e){return n(this,void 0,void 0,(function*(){return ie(E,{headers:this.authHeaders,account:this.account})(e[0])}))}calendarQuery(...e){return n(this,void 0,void 0,(function*(){return ie(z,{headers:this.authHeaders})(e[0])}))}makeCalendar(...e){return n(this,void 0,void 0,(function*(){return ie(G,{headers:this.authHeaders})(e[0])}))}calendarMultiGet(...e){return n(this,void 0,void 0,(function*(){return ie(Z,{headers:this.authHeaders})(e[0])}))}fetchCalendars(...e){return n(this,void 0,void 0,(function*(){return ie(Q,{headers:this.authHeaders,account:this.account})(null==e?void 0:e[0])}))}fetchCalendarObjects(...e){return n(this,void 0,void 0,(function*(){return ie(q,{headers:this.authHeaders})(e[0])}))}createCalendarObject(...e){return n(this,void 0,void 0,(function*(){return ie(J,{headers:this.authHeaders})(e[0])}))}updateCalendarObject(...e){return n(this,void 0,void 0,(function*(){return ie(K,{headers:this.authHeaders})(e[0])}))}deleteCalendarObject(...e){return n(this,void 0,void 0,(function*(){return ie(W,{headers:this.authHeaders})(e[0])}))}syncCalendars(...e){return n(this,void 0,void 0,(function*(){return ie(Y,{headers:this.authHeaders,account:this.account})(e[0])}))}addressBookQuery(...e){return n(this,void 0,void 0,(function*(){return ie(S,{headers:this.authHeaders})(e[0])}))}addressBookMultiGet(...e){return n(this,void 0,void 0,(function*(){return ie(x,{headers:this.authHeaders})(e[0])}))}fetchAddressBooks(...e){return n(this,void 0,void 0,(function*(){return ie(N,{headers:this.authHeaders,account:this.account})(null==e?void 0:e[0])}))}fetchVCards(...e){return n(this,void 0,void 0,(function*(){return ie(P,{headers:this.authHeaders})(e[0])}))}createVCard(...e){return n(this,void 0,void 0,(function*(){return ie(H,{headers:this.authHeaders})(e[0])}))}updateVCard(...e){return n(this,void 0,void 0,(function*(){return ie(B,{headers:this.authHeaders})(e[0])}))}deleteVCard(...e){return n(this,void 0,void 0,(function*(){return ie(I,{headers:this.authHeaders})(e[0])}))}}var ge=Object.freeze({__proto__:null,DAVClient:fe,createDAVClient:ve}),me=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({DAVNamespace:s,DAVNamespaceShort:i,DAVAttributeMap:d},ge),j),L),se),M),ee),pe),g);export{d as DAVAttributeMap,fe as DAVClient,s as DAVNamespace,i as DAVNamespaceShort,S as addressBookQuery,Z as calendarMultiGet,z as calendarQuery,v as cleanupFalsy,w as collectionQuery,ne as createAccount,J as createCalendarObject,ve as createDAVClient,A as createObject,H as createVCard,y as davRequest,me as default,W as deleteCalendarObject,D as deleteObject,I as deleteVCard,N as fetchAddressBooks,q as fetchCalendarObjects,Q as fetchCalendars,le as fetchOauthTokens,P as fetchVCards,X as freeBusyQuery,ce as getBasicAuthHeaders,p as getDAVAttribute,he as getOauthHeaders,R as isCollectionDirty,G as makeCalendar,b as propfind,ue as refreshAccessToken,E as smartCollectionSync,_ as supportedReportSet,Y as syncCalendars,U as syncCollection,K as updateCalendarObject,O as updateObject,B as updateVCard,h as urlContains,u as urlEquals}; +import{fetch as e}from"cross-fetch";import t from"debug";import r from"xml-js";import{encode as o}from"base-64";function a(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(o=Object.getOwnPropertySymbols(e);a{const t=Number(e);if(!Number.isNaN(t))return t;const r=e.toLowerCase();return"true"===r||"false"!==r&&e},u=(e,t)=>{if(!e&&!t)return!0;if(!e||!t)return!1;const r=e.trim(),o=t.trim();if(Math.abs(r.length-o.length)>1)return!1;const a="/"===r.slice(-1)?r.slice(0,-1):r,n="/"===o.slice(-1)?o.slice(0,-1):o;return e.includes(n)||t.includes(a)},h=(e,t)=>{if(!e&&!t)return!0;if(!e||!t)return!1;const r=e.trim(),o=t.trim(),a="/"===r.slice(-1)?r.slice(0,-1):r,n="/"===o.slice(-1)?o.slice(0,-1):o;return e.includes(n)||t.includes(a)},p=e=>e.reduce(((e,t)=>Object.assign(Object.assign({},e),{[d[t]]:t})),{}),v=e=>Object.entries(e).reduce(((e,[t,r])=>r?Object.assign(Object.assign({},e),{[t]:r}):e),{}),f=(e,t)=>t?{[e]:t}:{};var g=Object.freeze({__proto__:null,cleanupFalsy:v,conditionalParam:f,getDAVAttribute:p,urlContains:h,urlEquals:u});const m=t("tsdav:request"),y=t=>n(void 0,void 0,void 0,(function*(){var o;const{url:a,init:n,convertIncoming:s=!0,parseOutgoing:d=!0}=t,{headers:i={},body:c,namespace:u,method:h,attributes:p}=n,f=s?r.js2xml(Object.assign(Object.assign({_declaration:{_attributes:{version:"1.0",encoding:"utf-8"}}},c),{_attributes:p}),{compact:!0,spaces:2,elementNameFn:e=>u&&!/^.+:.+/.test(e)?`${u}:${e}`:e}):c,g=yield e(a,{headers:Object.assign({"Content-Type":"text/xml;charset=UTF-8"},v(i)),body:f,method:h}),y=yield g.text();if(!g.ok||!(null===(o=g.headers.get("content-type"))||void 0===o?void 0:o.includes("xml"))||!d)return[{href:g.url,ok:g.ok,status:g.status,statusText:g.statusText,raw:y}];const b=r.xml2js(y,{compact:!0,trim:!0,textFn:(e,t)=>{try{const r=t._parent,o=Object.keys(r),a=o[o.length-1],n=r[a];if(n.length>0){n[n.length-1]=l(e)}else r[a]=l(e)}catch(e){m(e.stack)}},elementNameFn:e=>e.replace(/^.+:/,"").replace(/([-_]\w)/g,(e=>e[1].toUpperCase())),attributesFn:e=>{const t=Object.assign({},e);return delete t.xmlns,t},ignoreDeclaration:!0});return(Array.isArray(b.multistatus.response)?b.multistatus.response:[b.multistatus.response]).map((e=>{var t,r;if(!e)return{status:g.status,statusText:g.statusText,ok:g.ok};const o=/^\S+\s(?\d+)\s(?.+)$/.exec(e.status);return{raw:b,href:e.href,status:(null==o?void 0:o.groups)?Number.parseInt(null==o?void 0:o.groups.status,10):g.status,statusText:null!==(r=null===(t=null==o?void 0:o.groups)||void 0===t?void 0:t.statusText)&&void 0!==r?r:g.statusText,ok:!e.error,error:e.error,responsedescription:e.responsedescription,props:(Array.isArray(e.propstat)?e.propstat:[e.propstat]).reduce(((e,t)=>Object.assign(Object.assign({},e),null==t?void 0:t.prop)),{})}}))})),b=e=>n(void 0,void 0,void 0,(function*(){const{url:t,props:r,depth:o,headers:a}=e;return y({url:t,init:{method:"PROPFIND",headers:v(Object.assign({depth:o},a)),namespace:i.DAV,body:{propfind:{_attributes:p([s.CALDAV,s.CALDAV_APPLE,s.CALENDAR_SERVER,s.CARDDAV,s.DAV]),prop:r}}}})})),A=t=>n(void 0,void 0,void 0,(function*(){const{url:r,data:o,headers:a}=t;return e(r,{method:"PUT",body:o,headers:a})})),O=t=>n(void 0,void 0,void 0,(function*(){const{url:r,data:o,etag:a,headers:n}=t;return e(r,{method:"PUT",body:o,headers:v(Object.assign({"If-Match":a},n))})})),D=t=>n(void 0,void 0,void 0,(function*(){const{url:r,headers:o,etag:a}=t;return e(r,{method:"DELETE",headers:v(Object.assign({"If-Match":a},o))})}));var j=Object.freeze({__proto__:null,createObject:A,davRequest:y,deleteObject:D,propfind:b,updateObject:O});function C(e,t){const r=e=>t.every((t=>e[t]));return Array.isArray(e)?e.every((e=>r(e))):r(e)}const V=(e,t)=>t.reduce(((t,r)=>e[r]?t:`${t.length?`${t},`:""}${r.toString()}`),""),$=t("tsdav:collection"),w=e=>n(void 0,void 0,void 0,(function*(){const{url:t,body:r,depth:o,defaultNamespace:a=i.DAV,headers:n}=e,s=yield y({url:t,init:{method:"REPORT",headers:v(Object.assign({depth:o},n)),namespace:a,body:r}});return 1!==s.length||s[0].raw?s:[]})),k=e=>n(void 0,void 0,void 0,(function*(){const{url:t,props:r,depth:o,headers:a}=e;return y({url:t,init:{method:"MKCOL",headers:v(Object.assign({depth:o},a)),namespace:i.DAV,body:r?{mkcol:{set:{prop:r}}}:void 0}})})),_=e=>n(void 0,void 0,void 0,(function*(){var t,r,o,a,n;const{collection:s,headers:d}=e;return null!==(n=null===(a=null===(o=null===(r=null===(t=(yield b({url:s.url,props:{[`${i.DAV}:supported-report-set`]:{}},depth:"0",headers:d}))[0])||void 0===t?void 0:t.props)||void 0===r?void 0:r.supportedReportSet)||void 0===o?void 0:o.supportedReport)||void 0===a?void 0:a.map((e=>Object.keys(e.report)[0])))&&void 0!==n?n:[]})),R=e=>n(void 0,void 0,void 0,(function*(){var t,r,o;const{collection:a,headers:n}=e,s=(yield b({url:a.url,props:{[`${i.CALENDAR_SERVER}:getctag`]:{}},depth:"0",headers:n})).filter((e=>h(a.url,e.href)))[0];if(!s)throw new Error("Collection does not exist on server");return{isDirty:a.ctag!==(null===(t=s.props)||void 0===t?void 0:t.getctag),newCtag:null===(o=null===(r=s.props)||void 0===r?void 0:r.getctag)||void 0===o?void 0:o.toString()}})),U=e=>{const{url:t,props:r,headers:o,syncLevel:a,syncToken:n}=e;return y({url:t,init:{method:"REPORT",namespace:i.DAV,headers:Object.assign({},o),body:{"sync-collection":{_attributes:p([s.CALDAV,s.CARDDAV,s.DAV]),"sync-level":a,"sync-token":n,[`${i.DAV}:prop`]:r}}}})},E=e=>n(void 0,void 0,void 0,(function*(){var t,r,o,a,n,s,d,c,l,u,p;const{collection:v,method:f,headers:g,account:m,detailedResult:y}=e,b=["accountType","homeUrl"];if(!m||!C(m,b)){if(!m)throw new Error("no account for smartCollectionSync");throw new Error(`account must have ${V(m,b)} before smartCollectionSync`)}const A=null!=f?f:(null===(t=v.reports)||void 0===t?void 0:t.includes("syncCollection"))?"webdav":"basic";if($(`smart collection sync with type ${m.accountType} and method ${A}`),"webdav"===A){const e=yield U({url:v.url,props:{[`${i.DAV}:getetag`]:{},[`${"caldav"===m.accountType?i.CALDAV:i.CARDDAV}:${"caldav"===m.accountType?"calendar-data":"address-data"}`]:{},[`${i.DAV}:displayname`]:{}},syncLevel:1,syncToken:v.syncToken,headers:g}),t=e.filter((e=>{var t;const r="caldav"===m.accountType?".ics":".vcf";return(null===(t=e.href)||void 0===t?void 0:t.slice(-4))===r})),l=t.filter((e=>404!==e.status)).map((e=>e.href)),u=t.filter((e=>404===e.status)).map((e=>e.href)),p=(l.length&&null!==(o=yield null===(r=null==v?void 0:v.objectMultiGet)||void 0===r?void 0:r.call(v,{url:v.url,props:{[`${i.DAV}:getetag`]:{},[`${"caldav"===m.accountType?i.CALDAV:i.CARDDAV}:${"caldav"===m.accountType?"calendar-data":"address-data"}`]:{}},objectUrls:l,depth:"1",headers:g}))&&void 0!==o?o:[]).map((e=>{var t,r,o,a,n,s,d,i,c,l;return{url:null!==(t=e.href)&&void 0!==t?t:"",etag:null===(r=e.props)||void 0===r?void 0:r.getetag,data:"caldav"===(null==m?void 0:m.accountType)?null!==(n=null===(a=null===(o=e.props)||void 0===o?void 0:o.calendarData)||void 0===a?void 0:a._cdata)&&void 0!==n?n:null===(s=e.props)||void 0===s?void 0:s.calendarData:null!==(c=null===(i=null===(d=e.props)||void 0===d?void 0:d.addressData)||void 0===i?void 0:i._cdata)&&void 0!==c?c:null===(l=e.props)||void 0===l?void 0:l.addressData}})),f=null!==(a=v.objects)&&void 0!==a?a:[],b=p.filter((e=>f.every((t=>!h(t.url,e.url))))),A=f.reduce(((e,t)=>{const r=p.find((e=>h(e.url,t.url)));return r&&r.etag&&r.etag!==t.etag?[...e,r]:e}),[]),O=u.map((e=>({url:e,etag:""}))),D=f.filter((e=>p.some((t=>h(e.url,t.url)&&t.etag===e.etag))));return Object.assign(Object.assign({},v),{objects:y?{created:b,updated:A,deleted:O}:[...D,...b,...A],syncToken:null!==(c=null===(d=null===(s=null===(n=e[0])||void 0===n?void 0:n.raw)||void 0===s?void 0:s.multistatus)||void 0===d?void 0:d.syncToken)&&void 0!==c?c:v.syncToken})}if("basic"===A){const{isDirty:e,newCtag:t}=yield R({collection:v,headers:g}),r=null!==(l=v.objects)&&void 0!==l?l:[],o=null!==(p=yield null===(u=v.fetchObjects)||void 0===u?void 0:u.call(v,{collection:v,headers:g}))&&void 0!==p?p:[],a=o.filter((e=>r.every((t=>!h(t.url,e.url))))),n=r.reduce(((e,t)=>{const r=o.find((e=>h(e.url,t.url)));return r&&r.etag&&r.etag!==t.etag?[...e,r]:e}),[]),s=r.filter((e=>o.every((t=>!h(t.url,e.url))))),d=r.filter((e=>o.some((t=>h(e.url,t.url)&&t.etag===e.etag))));if(e)return Object.assign(Object.assign({},v),{objects:y?{created:a,updated:n,deleted:s}:[...d,...a,...n],ctag:t})}return y?Object.assign(Object.assign({},v),{objects:{created:[],updated:[],deleted:[]}}):v}));var S=Object.freeze({__proto__:null,collectionQuery:w,isCollectionDirty:R,makeCollection:k,smartCollectionSync:E,supportedReportSet:_,syncCollection:U});const L=t("tsdav:addressBook"),T=e=>n(void 0,void 0,void 0,(function*(){const{url:t,props:r,filters:o,depth:a,headers:n}=e;return w({url:t,body:{"addressbook-query":{_attributes:p([s.CARDDAV,s.DAV]),[`${i.DAV}:prop`]:r,filter:null!=o?o:{"prop-filter":{_attributes:{name:"FN"}}}}},defaultNamespace:i.CARDDAV,depth:a,headers:n})})),x=e=>n(void 0,void 0,void 0,(function*(){const{url:t,props:r,objectUrls:o,depth:a,headers:n}=e;return w({url:t,body:{"addressbook-multiget":{_attributes:p([s.DAV,s.CARDDAV]),[`${i.DAV}:prop`]:r,[`${i.DAV}:href`]:o}},defaultNamespace:i.CARDDAV,depth:a,headers:n})})),N=e=>n(void 0,void 0,void 0,(function*(){const{account:t,headers:r,props:o}=null!=e?e:{},a=["homeUrl","rootUrl"];if(!t||!C(t,a)){if(!t)throw new Error("no account for fetchAddressBooks");throw new Error(`account must have ${V(t,a)} before fetchAddressBooks`)}const s=yield b({url:t.homeUrl,props:null!=o?o:{[`${i.DAV}:displayname`]:{},[`${i.CALENDAR_SERVER}:getctag`]:{},[`${i.DAV}:resourcetype`]:{},[`${i.DAV}:sync-token`]:{}},depth:"1",headers:r});return Promise.all(s.filter((e=>{var t,r;return Object.keys(null!==(r=null===(t=e.props)||void 0===t?void 0:t.resourcetype)&&void 0!==r?r:{}).includes("addressbook")})).map((e=>{var r,o,a,n,s,d,i,c,l;const u=null!==(a=null===(o=null===(r=e.props)||void 0===r?void 0:r.displayname)||void 0===o?void 0:o._cdata)&&void 0!==a?a:null===(n=e.props)||void 0===n?void 0:n.displayname;return L(`Found address book named ${"string"==typeof u?u:""},\n props: ${JSON.stringify(e.props)}`),{url:new URL(null!==(s=e.href)&&void 0!==s?s:"",null!==(d=t.rootUrl)&&void 0!==d?d:"").href,ctag:null===(i=e.props)||void 0===i?void 0:i.getctag,displayName:"string"==typeof u?u:"",resourcetype:Object.keys(null===(c=e.props)||void 0===c?void 0:c.resourcetype),syncToken:null===(l=e.props)||void 0===l?void 0:l.syncToken}})).map((e=>n(void 0,void 0,void 0,(function*(){return Object.assign(Object.assign({},e),{reports:yield _({collection:e,headers:r})})})))))})),P=e=>n(void 0,void 0,void 0,(function*(){const{addressBook:t,headers:r,objectUrls:o,urlFilter:a=(e=>e),useMultiGet:n=!0}=e;L(`Fetching vcards from ${null==t?void 0:t.url}`);const s=["url"];if(!t||!C(t,s)){if(!t)throw new Error("cannot fetchVCards for undefined addressBook");throw new Error(`addressBook must have ${V(t,s)} before fetchVCards`)}const d=(null!=o?o:(yield T({url:t.url,props:{[`${i.DAV}:getetag`]:{}},depth:"1",headers:r})).map((e=>{var t;return e.ok&&null!==(t=e.href)&&void 0!==t?t:""}))).map((e=>e.startsWith("http")||!e?e:new URL(e,t.url).href)).filter(a).map((e=>new URL(e).pathname));let c=[];return d.length>0&&(c=n?yield x({url:t.url,props:{[`${i.DAV}:getetag`]:{},[`${i.CARDDAV}:address-data`]:{}},objectUrls:d,depth:"1",headers:r}):yield T({url:t.url,props:{[`${i.DAV}:getetag`]:{},[`${i.CARDDAV}:address-data`]:{}},depth:"1",headers:r})),c.map((e=>{var r,o,a,n,s,d;return{url:new URL(null!==(r=e.href)&&void 0!==r?r:"",t.url).href,etag:null===(o=e.props)||void 0===o?void 0:o.getetag,data:null!==(s=null===(n=null===(a=e.props)||void 0===a?void 0:a.addressData)||void 0===n?void 0:n._cdata)&&void 0!==s?s:null===(d=e.props)||void 0===d?void 0:d.addressData}}))})),H=e=>n(void 0,void 0,void 0,(function*(){const{addressBook:t,vCardString:r,filename:o,headers:a}=e;return A({url:new URL(o,t.url).href,data:r,headers:Object.assign({"content-type":"text/vcard; charset=utf-8","If-None-Match":"*"},a)})})),B=e=>n(void 0,void 0,void 0,(function*(){const{vCard:t,headers:r}=e;return O({url:t.url,data:t.data,etag:t.etag,headers:Object.assign({"content-type":"text/vcard; charset=utf-8"},r)})})),I=e=>n(void 0,void 0,void 0,(function*(){const{vCard:t,headers:r}=e;return D({url:t.url,etag:t.etag,headers:r})}));var M=Object.freeze({__proto__:null,addressBookMultiGet:x,addressBookQuery:T,createVCard:H,deleteVCard:I,fetchAddressBooks:N,fetchVCards:P,updateVCard:B});const F=t("tsdav:calendar"),z=e=>n(void 0,void 0,void 0,(function*(){const{url:t,props:r,filters:o,timezone:a,depth:n,headers:d}=e;return w({url:t,body:{"calendar-query":v({_attributes:p([s.CALDAV,s.CALENDAR_SERVER,s.CALDAV_APPLE,s.DAV]),[`${i.DAV}:prop`]:r,filter:o,timezone:a})},defaultNamespace:i.CALDAV,depth:n,headers:d})})),Z=e=>n(void 0,void 0,void 0,(function*(){const{url:t,props:r,objectUrls:o,filters:a,timezone:n,depth:d,headers:c}=e;return w({url:t,body:{"calendar-multiget":Object.assign(Object.assign({_attributes:p([s.DAV,s.CALDAV]),[`${i.DAV}:prop`]:r,[`${i.DAV}:href`]:o},f("filter",a)),{timezone:n})},defaultNamespace:i.CALDAV,depth:d,headers:c})})),G=e=>n(void 0,void 0,void 0,(function*(){const{url:t,props:r,depth:o,headers:a}=e;return y({url:t,init:{method:"MKCALENDAR",headers:v(Object.assign({depth:o},a)),namespace:i.DAV,body:{[`${i.CALDAV}:mkcalendar`]:{_attributes:p([s.DAV,s.CALDAV,s.CALDAV_APPLE]),set:{prop:r}}}}})})),Q=e=>n(void 0,void 0,void 0,(function*(){const{headers:t,account:r,props:o,projectedProps:a}=null!=e?e:{},s=["homeUrl","rootUrl"];if(!r||!C(r,s)){if(!r)throw new Error("no account for fetchCalendars");throw new Error(`account must have ${V(r,s)} before fetchCalendars`)}const d=yield b({url:r.homeUrl,props:null!=o?o:{[`${i.CALDAV}:calendar-description`]:{},[`${i.CALDAV}:calendar-timezone`]:{},[`${i.DAV}:displayname`]:{},[`${i.CALDAV_APPLE}:calendar-color`]:{},[`${i.CALENDAR_SERVER}:getctag`]:{},[`${i.DAV}:resourcetype`]:{},[`${i.CALDAV}:supported-calendar-component-set`]:{},[`${i.DAV}:sync-token`]:{}},depth:"1",headers:t});return Promise.all(d.filter((e=>{var t,r;return Object.keys(null!==(r=null===(t=e.props)||void 0===t?void 0:t.resourcetype)&&void 0!==r?r:{}).includes("calendar")})).filter((e=>{var t,r,o;return(Array.isArray(null===(t=e.props)||void 0===t?void 0:t.supportedCalendarComponentSet.comp)?null===(r=e.props)||void 0===r?void 0:r.supportedCalendarComponentSet.comp.map((e=>e._attributes.name)):[null===(o=e.props)||void 0===o?void 0:o.supportedCalendarComponentSet.comp._attributes.name]||[]).some((e=>Object.values(c).includes(e)))})).map((e=>{var t,o,n,s,d,i,c,l,u,h,p,v,g,m,y;const b=null===(t=e.props)||void 0===t?void 0:t.calendarDescription,A=null===(o=e.props)||void 0===o?void 0:o.calendarTimezone;return Object.assign({description:"string"==typeof b?b:"",timezone:"string"==typeof A?A:"",url:new URL(null!==(n=e.href)&&void 0!==n?n:"",null!==(s=r.rootUrl)&&void 0!==s?s:"").href,ctag:null===(d=e.props)||void 0===d?void 0:d.getctag,calendarColor:null===(i=e.props)||void 0===i?void 0:i.calendarColor,displayName:null!==(l=null===(c=e.props)||void 0===c?void 0:c.displayname._cdata)&&void 0!==l?l:null===(u=e.props)||void 0===u?void 0:u.displayname,components:Array.isArray(null===(h=e.props)||void 0===h?void 0:h.supportedCalendarComponentSet.comp)?null===(p=e.props)||void 0===p?void 0:p.supportedCalendarComponentSet.comp.map((e=>e._attributes.name)):[null===(v=e.props)||void 0===v?void 0:v.supportedCalendarComponentSet.comp._attributes.name],resourcetype:Object.keys(null===(g=e.props)||void 0===g?void 0:g.resourcetype),syncToken:null===(m=e.props)||void 0===m?void 0:m.syncToken},f("projectedProps",Object.fromEntries(Object.entries(null!==(y=e.props)&&void 0!==y?y:{}).filter((([e])=>null==a?void 0:a[e])))))})).map((e=>n(void 0,void 0,void 0,(function*(){return Object.assign(Object.assign({},e),{reports:yield _({collection:e,headers:t})})})))))})),q=e=>n(void 0,void 0,void 0,(function*(){const{calendar:t,objectUrls:r,filters:o,timeRange:a,headers:n,expand:s,urlFilter:d=(e=>Boolean(null==e?void 0:e.includes(".ics"))),useMultiGet:c=!0}=e;if(a){const e=/^\d{4}(-\d\d(-\d\d(T\d\d:\d\d(:\d\d)?(\.\d+)?(([+-]\d\d:\d\d)|Z)?)?)?)?$/i,t=/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(\.\d+)?(([+-]\d\d:\d\d)|Z)?$/i;if(!(e.test(a.start)&&e.test(a.end)||t.test(a.start)&&t.test(a.end)))throw new Error("invalid timeRange format, not in ISO8601")}F(`Fetching calendar objects from ${null==t?void 0:t.url}`);const l=["url"];if(!t||!C(t,l)){if(!t)throw new Error("cannot fetchCalendarObjects for undefined calendar");throw new Error(`calendar must have ${V(t,l)} before fetchCalendarObjects`)}const u=null!=o?o:[{"comp-filter":{_attributes:{name:"VCALENDAR"},"comp-filter":Object.assign({_attributes:{name:"VEVENT"}},a?{"time-range":{_attributes:{start:`${new Date(a.start).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`,end:`${new Date(a.end).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`}}}:{})}}],h=(null!=r?r:(yield z({url:t.url,props:{[`${i.DAV}:getetag`]:Object.assign({},s&&a?{[`${i.CALDAV}:expand`]:{_attributes:{start:`${new Date(a.start).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`,end:`${new Date(a.end).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`}}}:{})},filters:u,depth:"1",headers:n})).map((e=>{var t;return null!==(t=e.href)&&void 0!==t?t:""}))).map((e=>e.startsWith("http")||!e?e:new URL(e,t.url).href)).filter(d).map((e=>new URL(e).pathname));let p=[];return h.length>0&&(p=!c||s?yield z({url:t.url,props:{[`${i.DAV}:getetag`]:{},[`${i.CALDAV}:calendar-data`]:Object.assign({},s&&a?{[`${i.CALDAV}:expand`]:{_attributes:{start:`${new Date(a.start).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`,end:`${new Date(a.end).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`}}}:{})},filters:u,depth:"1",headers:n}):yield Z({url:t.url,props:{[`${i.DAV}:getetag`]:{},[`${i.CALDAV}:calendar-data`]:Object.assign({},s&&a?{[`${i.CALDAV}:expand`]:{_attributes:{start:`${new Date(a.start).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`,end:`${new Date(a.end).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`}}}:{})},objectUrls:h,depth:"1",headers:n})),p.map((e=>{var r,o,a,n,s,d;return{url:new URL(null!==(r=e.href)&&void 0!==r?r:"",t.url).href,etag:`${null===(o=e.props)||void 0===o?void 0:o.getetag}`,data:null!==(s=null===(n=null===(a=e.props)||void 0===a?void 0:a.calendarData)||void 0===n?void 0:n._cdata)&&void 0!==s?s:null===(d=e.props)||void 0===d?void 0:d.calendarData}}))})),J=e=>n(void 0,void 0,void 0,(function*(){const{calendar:t,iCalString:r,filename:o,headers:a}=e;return A({url:new URL(o,t.url).href,data:r,headers:Object.assign({"content-type":"text/calendar; charset=utf-8","If-None-Match":"*"},a)})})),K=e=>n(void 0,void 0,void 0,(function*(){const{calendarObject:t,headers:r}=e;return O({url:t.url,data:t.data,etag:t.etag,headers:Object.assign({"content-type":"text/calendar; charset=utf-8"},r)})})),W=e=>n(void 0,void 0,void 0,(function*(){const{calendarObject:t,headers:r}=e;return D({url:t.url,etag:t.etag,headers:r})})),Y=e=>n(void 0,void 0,void 0,(function*(){var t;const{oldCalendars:r,account:o,detailedResult:a,headers:s}=e;if(!o)throw new Error("Must have account before syncCalendars");const d=null!==(t=null!=r?r:o.calendars)&&void 0!==t?t:[],i=yield Q({account:o,headers:s}),c=i.filter((e=>d.every((t=>!h(t.url,e.url)))));F(`new calendars: ${c.map((e=>e.displayName))}`);const l=d.reduce(((e,t)=>{const r=i.find((e=>h(e.url,t.url)));return r&&(r.syncToken&&r.syncToken!==t.syncToken||r.ctag&&r.ctag!==t.ctag)?[...e,r]:e}),[]);F(`updated calendars: ${l.map((e=>e.displayName))}`);const u=yield Promise.all(l.map((e=>n(void 0,void 0,void 0,(function*(){return yield E({collection:Object.assign(Object.assign({},e),{objectMultiGet:Z}),method:"webdav",headers:s,account:o})}))))),p=d.filter((e=>i.every((t=>!h(t.url,e.url)))));F(`deleted calendars: ${p.map((e=>e.displayName))}`);const v=d.filter((e=>i.some((t=>h(t.url,e.url)&&(t.syncToken&&t.syncToken!==e.syncToken||t.ctag&&t.ctag!==e.ctag)))));return a?{created:c,updated:l,deleted:p}:[...v,...c,...u]})),X=e=>n(void 0,void 0,void 0,(function*(){const{url:t,timeRange:r,depth:o,headers:a}=e;if(!r)throw new Error("timeRange is required");{const e=/^\d{4}(-\d\d(-\d\d(T\d\d:\d\d(:\d\d)?(\.\d+)?(([+-]\d\d:\d\d)|Z)?)?)?)?$/i,t=/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(\.\d+)?(([+-]\d\d:\d\d)|Z)?$/i;if(!(e.test(r.start)&&e.test(r.end)||t.test(r.start)&&t.test(r.end)))throw new Error("invalid timeRange format, not in ISO8601")}return(yield w({url:t,body:{"free-busy-query":v({_attributes:p([s.CALDAV]),[`${i.CALDAV}:time-range`]:{_attributes:{start:`${new Date(r.start).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`,end:`${new Date(r.end).toISOString().slice(0,19).replace(/[-:.]/g,"")}Z`}}})},defaultNamespace:i.CALDAV,depth:o,headers:a}))[0]}));var ee=Object.freeze({__proto__:null,calendarMultiGet:Z,calendarQuery:z,createCalendarObject:J,deleteCalendarObject:W,fetchCalendarObjects:q,fetchCalendars:Q,freeBusyQuery:X,makeCalendar:G,syncCalendars:Y,updateCalendarObject:K});const te=t("tsdav:account"),re=t=>n(void 0,void 0,void 0,(function*(){var r,o;te("Service discovery...");const{account:a,headers:n}=t,s=new URL(a.serverUrl),d=new URL(`/.well-known/${a.accountType}`,s);d.protocol=null!==(r=s.protocol)&&void 0!==r?r:"http";try{const t=yield e(d.href,{headers:n,method:"PROPFIND",redirect:"manual"});if(t.status>=300&&t.status<400){const e=t.headers.get("Location");if("string"==typeof e&&e.length){te(`Service discovery redirected to ${e}`);const t=new URL(e,s);return t.hostname===d.hostname&&d.port&&!t.port&&(t.port=d.port),t.protocol=null!==(o=s.protocol)&&void 0!==o?o:"http",t.href}}}catch(e){te(`Service discovery failed: ${e.stack}`)}return s.href})),oe=e=>n(void 0,void 0,void 0,(function*(){var t,r,o,a,n;const{account:s,headers:d}=e,c=["rootUrl"];if(!C(s,c))throw new Error(`account must have ${V(s,c)} before fetchPrincipalUrl`);te(`Fetching principal url from path ${s.rootUrl}`);const[l]=yield b({url:s.rootUrl,props:{[`${i.DAV}:current-user-principal`]:{}},depth:"0",headers:d});if(!l.ok&&(te(`Fetch principal url failed: ${l.statusText}`),401===l.status))throw new Error("Invalid credentials");return te(`Fetched principal url ${null===(r=null===(t=l.props)||void 0===t?void 0:t.currentUserPrincipal)||void 0===r?void 0:r.href}`),new URL(null!==(n=null===(a=null===(o=l.props)||void 0===o?void 0:o.currentUserPrincipal)||void 0===a?void 0:a.href)&&void 0!==n?n:"",s.rootUrl).href})),ae=e=>n(void 0,void 0,void 0,(function*(){var t,r;const{account:o,headers:a}=e,n=["principalUrl","rootUrl"];if(!C(o,n))throw new Error(`account must have ${V(o,n)} before fetchHomeUrl`);te(`Fetch home url from ${o.principalUrl}`);const s=(yield b({url:o.principalUrl,props:"caldav"===o.accountType?{[`${i.CALDAV}:calendar-home-set`]:{}}:{[`${i.CARDDAV}:addressbook-home-set`]:{}},depth:"0",headers:a})).find((e=>h(o.principalUrl,e.href)));if(!s||!s.ok)throw new Error("cannot find homeUrl");const d=new URL("caldav"===o.accountType?null===(t=null==s?void 0:s.props)||void 0===t?void 0:t.calendarHomeSet.href:null===(r=null==s?void 0:s.props)||void 0===r?void 0:r.addressbookHomeSet.href,o.rootUrl).href;return te(`Fetched home url ${d}`),d})),ne=e=>n(void 0,void 0,void 0,(function*(){const{account:t,headers:r,loadCollections:o=!1,loadObjects:a=!1}=e,s=Object.assign({},t);return s.rootUrl=yield re({account:t,headers:r}),s.principalUrl=yield oe({account:s,headers:r}),s.homeUrl=yield ae({account:s,headers:r}),(o||a)&&("caldav"===t.accountType?s.calendars=yield Q({headers:r,account:s}):"carddav"===t.accountType&&(s.addressBooks=yield N({headers:r,account:s}))),a&&("caldav"===t.accountType&&s.calendars?s.calendars=yield Promise.all(s.calendars.map((e=>n(void 0,void 0,void 0,(function*(){return Object.assign(Object.assign({},e),{objects:yield q({calendar:e,headers:r})})}))))):"carddav"===t.accountType&&s.addressBooks&&(s.addressBooks=yield Promise.all(s.addressBooks.map((e=>n(void 0,void 0,void 0,(function*(){return Object.assign(Object.assign({},e),{objects:yield P({addressBook:e,headers:r})})}))))))),s}));var se=Object.freeze({__proto__:null,createAccount:ne,fetchHomeUrl:ae,fetchPrincipalUrl:oe,serviceDiscovery:re});const de=t("tsdav:authHelper"),ie=(e,t)=>(...r)=>e(Object.assign(Object.assign({},t),r[0])),ce=e=>(de(`Basic auth token generated: ${o(`${e.username}:${e.password}`)}`),{authorization:`Basic ${o(`${e.username}:${e.password}`)}`}),le=t=>n(void 0,void 0,void 0,(function*(){const r=["authorizationCode","redirectUrl","clientId","clientSecret","tokenUrl"];if(!C(t,r))throw new Error(`Oauth credentials missing: ${V(t,r)}`);const o=new URLSearchParams({grant_type:"authorization_code",code:t.authorizationCode,redirect_uri:t.redirectUrl,client_id:t.clientId,client_secret:t.clientSecret});de(t.tokenUrl),de(o.toString());const a=yield e(t.tokenUrl,{method:"POST",body:o.toString(),headers:{"content-length":`${o.toString().length}`,"content-type":"application/x-www-form-urlencoded"}});if(a.ok){return yield a.json()}return de(`Fetch Oauth tokens failed: ${yield a.text()}`),{}})),ue=t=>n(void 0,void 0,void 0,(function*(){const r=["refreshToken","clientId","clientSecret","tokenUrl"];if(!C(t,r))throw new Error(`Oauth credentials missing: ${V(t,r)}`);const o=new URLSearchParams({client_id:t.clientId,client_secret:t.clientSecret,refresh_token:t.refreshToken,grant_type:"refresh_token"}),a=yield e(t.tokenUrl,{method:"POST",body:o.toString(),headers:{"Content-Type":"application/x-www-form-urlencoded"}});if(a.ok){return yield a.json()}return de(`Refresh access token failed: ${yield a.text()}`),{}})),he=e=>n(void 0,void 0,void 0,(function*(){var t;de("Fetching oauth headers");let r={};return e.refreshToken?(e.refreshToken&&!e.accessToken||Date.now()>(null!==(t=e.expiration)&&void 0!==t?t:0))&&(r=yield ue(e)):r=yield le(e),de(`Oauth tokens fetched: ${r.access_token}`),{tokens:r,headers:{authorization:`Bearer ${r.access_token}`}}}));var pe=Object.freeze({__proto__:null,defaultParam:ie,fetchOauthTokens:le,getBasicAuthHeaders:ce,getOauthHeaders:he,refreshAccessToken:ue});const ve=e=>n(void 0,void 0,void 0,(function*(){var t;const{serverUrl:r,credentials:o,authMethod:s,defaultAccountType:d,authFunction:i}=e;let c={};switch(s){case"Basic":c=ce(o);break;case"Oauth":c=(yield he(o)).headers;break;case"Digest":c={Authorization:`Digest ${o.digestString}`};break;case"Custom":c=null!==(t=yield null==i?void 0:i(o))&&void 0!==t?t:{};break;default:throw new Error("Invalid auth method")}const l=d?yield ne({account:{serverUrl:r,credentials:o,accountType:d},headers:c}):void 0,u=ie(A,{url:r,headers:c}),h=ie(O,{headers:c,url:r}),p=ie(D,{headers:c,url:r}),v=ie(b,{headers:c}),f=ie(w,{headers:c}),g=ie(k,{headers:c}),m=ie(U,{headers:c}),j=ie(_,{headers:c}),C=ie(R,{headers:c}),V=ie(E,{headers:c,account:l}),$=ie(z,{headers:c}),S=ie(Z,{headers:c}),L=ie(G,{headers:c}),M=ie(Q,{headers:c,account:l}),F=ie(q,{headers:c}),X=ie(J,{headers:c}),ee=ie(K,{headers:c}),te=ie(W,{headers:c}),re=ie(Y,{account:l,headers:c}),oe=ie(T,{headers:c}),ae=ie(x,{headers:c});return{davRequest:e=>n(void 0,void 0,void 0,(function*(){const{init:t}=e,r=a(e,["init"]),{headers:o}=t,n=a(t,["headers"]);return y(Object.assign(Object.assign({},r),{init:Object.assign(Object.assign({},n),{headers:Object.assign(Object.assign({},c),o)})}))})),propfind:v,createAccount:e=>n(void 0,void 0,void 0,(function*(){const{account:t,headers:a,loadCollections:n,loadObjects:s}=e;return ne({account:Object.assign({serverUrl:r,credentials:o},t),headers:Object.assign(Object.assign({},c),a),loadCollections:n,loadObjects:s})})),createObject:u,updateObject:h,deleteObject:p,calendarQuery:$,addressBookQuery:oe,collectionQuery:f,makeCollection:g,calendarMultiGet:S,makeCalendar:L,syncCollection:m,supportedReportSet:j,isCollectionDirty:C,smartCollectionSync:V,fetchCalendars:M,fetchCalendarObjects:F,createCalendarObject:X,updateCalendarObject:ee,deleteCalendarObject:te,syncCalendars:re,fetchAddressBooks:ie(N,{account:l,headers:c}),addressBookMultiGet:ae,fetchVCards:ie(P,{headers:c}),createVCard:ie(H,{headers:c}),updateVCard:ie(B,{headers:c}),deleteVCard:ie(I,{headers:c})}}));class fe{constructor(e){var t,r;this.serverUrl=e.serverUrl,this.credentials=e.credentials,this.authMethod=null!==(t=e.authMethod)&&void 0!==t?t:"Basic",this.accountType=null!==(r=e.defaultAccountType)&&void 0!==r?r:"caldav"}login(){var e;return n(this,void 0,void 0,(function*(){switch(this.authMethod){case"Basic":this.authHeaders=ce(this.credentials);break;case"Oauth":this.authHeaders=(yield he(this.credentials)).headers;break;case"Digest":this.authHeaders={Authorization:`Digest ${this.credentials.digestString}`};break;case"Custom":this.authHeaders=yield null===(e=this.authFunction)||void 0===e?void 0:e.call(this,this.credentials);break;default:throw new Error("Invalid auth method")}this.account=this.accountType?yield ne({account:{serverUrl:this.serverUrl,credentials:this.credentials,accountType:this.accountType},headers:this.authHeaders}):void 0}))}davRequest(e){return n(this,void 0,void 0,(function*(){const{init:t}=e,r=a(e,["init"]),{headers:o}=t,n=a(t,["headers"]);return y(Object.assign(Object.assign({},r),{init:Object.assign(Object.assign({},n),{headers:Object.assign(Object.assign({},this.authHeaders),o)})}))}))}createObject(...e){return n(this,void 0,void 0,(function*(){return ie(A,{url:this.serverUrl,headers:this.authHeaders})(e[0])}))}updateObject(...e){return n(this,void 0,void 0,(function*(){return ie(O,{headers:this.authHeaders,url:this.serverUrl})(e[0])}))}deleteObject(...e){return n(this,void 0,void 0,(function*(){return ie(D,{headers:this.authHeaders,url:this.serverUrl})(e[0])}))}propfind(...e){return n(this,void 0,void 0,(function*(){return ie(b,{headers:this.authHeaders})(e[0])}))}createAccount(e){return n(this,void 0,void 0,(function*(){const{account:t,headers:r,loadCollections:o,loadObjects:a}=e;return ne({account:Object.assign({serverUrl:this.serverUrl,credentials:this.credentials},t),headers:Object.assign(Object.assign({},this.authHeaders),r),loadCollections:o,loadObjects:a})}))}collectionQuery(...e){return n(this,void 0,void 0,(function*(){return ie(w,{headers:this.authHeaders})(e[0])}))}makeCollection(...e){return n(this,void 0,void 0,(function*(){return ie(k,{headers:this.authHeaders})(e[0])}))}syncCollection(...e){return n(this,void 0,void 0,(function*(){return ie(U,{headers:this.authHeaders})(e[0])}))}supportedReportSet(...e){return n(this,void 0,void 0,(function*(){return ie(_,{headers:this.authHeaders})(e[0])}))}isCollectionDirty(...e){return n(this,void 0,void 0,(function*(){return ie(R,{headers:this.authHeaders})(e[0])}))}smartCollectionSync(...e){return n(this,void 0,void 0,(function*(){return ie(E,{headers:this.authHeaders,account:this.account})(e[0])}))}calendarQuery(...e){return n(this,void 0,void 0,(function*(){return ie(z,{headers:this.authHeaders})(e[0])}))}makeCalendar(...e){return n(this,void 0,void 0,(function*(){return ie(G,{headers:this.authHeaders})(e[0])}))}calendarMultiGet(...e){return n(this,void 0,void 0,(function*(){return ie(Z,{headers:this.authHeaders})(e[0])}))}fetchCalendars(...e){return n(this,void 0,void 0,(function*(){return ie(Q,{headers:this.authHeaders,account:this.account})(null==e?void 0:e[0])}))}fetchCalendarObjects(...e){return n(this,void 0,void 0,(function*(){return ie(q,{headers:this.authHeaders})(e[0])}))}createCalendarObject(...e){return n(this,void 0,void 0,(function*(){return ie(J,{headers:this.authHeaders})(e[0])}))}updateCalendarObject(...e){return n(this,void 0,void 0,(function*(){return ie(K,{headers:this.authHeaders})(e[0])}))}deleteCalendarObject(...e){return n(this,void 0,void 0,(function*(){return ie(W,{headers:this.authHeaders})(e[0])}))}syncCalendars(...e){return n(this,void 0,void 0,(function*(){return ie(Y,{headers:this.authHeaders,account:this.account})(e[0])}))}addressBookQuery(...e){return n(this,void 0,void 0,(function*(){return ie(T,{headers:this.authHeaders})(e[0])}))}addressBookMultiGet(...e){return n(this,void 0,void 0,(function*(){return ie(x,{headers:this.authHeaders})(e[0])}))}fetchAddressBooks(...e){return n(this,void 0,void 0,(function*(){return ie(N,{headers:this.authHeaders,account:this.account})(null==e?void 0:e[0])}))}fetchVCards(...e){return n(this,void 0,void 0,(function*(){return ie(P,{headers:this.authHeaders})(e[0])}))}createVCard(...e){return n(this,void 0,void 0,(function*(){return ie(H,{headers:this.authHeaders})(e[0])}))}updateVCard(...e){return n(this,void 0,void 0,(function*(){return ie(B,{headers:this.authHeaders})(e[0])}))}deleteVCard(...e){return n(this,void 0,void 0,(function*(){return ie(I,{headers:this.authHeaders})(e[0])}))}}var ge=Object.freeze({__proto__:null,DAVClient:fe,createDAVClient:ve}),me=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({DAVNamespace:s,DAVNamespaceShort:i,DAVAttributeMap:d},ge),j),S),se),M),ee),pe),g);export{d as DAVAttributeMap,fe as DAVClient,s as DAVNamespace,i as DAVNamespaceShort,T as addressBookQuery,Z as calendarMultiGet,z as calendarQuery,v as cleanupFalsy,w as collectionQuery,ne as createAccount,J as createCalendarObject,ve as createDAVClient,A as createObject,H as createVCard,y as davRequest,me as default,W as deleteCalendarObject,D as deleteObject,I as deleteVCard,N as fetchAddressBooks,q as fetchCalendarObjects,Q as fetchCalendars,le as fetchOauthTokens,P as fetchVCards,X as freeBusyQuery,ce as getBasicAuthHeaders,p as getDAVAttribute,he as getOauthHeaders,R as isCollectionDirty,G as makeCalendar,b as propfind,ue as refreshAccessToken,E as smartCollectionSync,_ as supportedReportSet,Y as syncCalendars,U as syncCollection,K as updateCalendarObject,O as updateObject,B as updateVCard,h as urlContains,u as urlEquals}; diff --git a/dist/tsdav.mjs b/dist/tsdav.mjs index aacac24..8a747bd 100644 --- a/dist/tsdav.mjs +++ b/dist/tsdav.mjs @@ -17,7 +17,7 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */ -/* global Reflect, Promise */ +/* global Reflect, Promise, SuppressedError, Symbol */ function __rest(s, e) { @@ -42,6 +42,11 @@ function __awaiter(thisArg, _arguments, P, generator) { }); } +typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) { + var e = new Error(message); + return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e; +}; + var DAVNamespace; (function (DAVNamespace) { DAVNamespace["CALENDAR_SERVER"] = "http://calendarserver.org/ns/"; diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js index 801f83c..2505fa9 100644 --- a/docs/docusaurus.config.js +++ b/docs/docusaurus.config.js @@ -59,7 +59,7 @@ module.exports = { lastVersion: 'current', versions: { current: { - label: '2.0.5', + label: '2.0.6', }, '1.1.6': { label: '1.1.6', diff --git a/package.json b/package.json index 78c7115..925f7ce 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "tsdav", - "version": "2.0.5", + "version": "2.0.6", "description": "WebDAV, CALDAV, and CARDDAV client for Nodejs and the Browser", "keywords": [ "dav", @@ -49,42 +49,42 @@ }, "dependencies": { "base-64": "1.0.0", - "cross-fetch": "3.1.6", + "cross-fetch": "4.0.0", "debug": "4.3.4", "xml-js": "1.6.11" }, "devDependencies": { - "@rollup/plugin-commonjs": "25.0.2", - "@rollup/plugin-node-resolve": "15.1.0", - "@rollup/plugin-typescript": "11.1.1", - "@types/base-64": "1.0.0", - "@types/debug": "4.1.8", - "@types/jest": "29.5.2", - "@types/node": "20.3.1", - "@typescript-eslint/eslint-plugin": "5.60.0", - "@typescript-eslint/parser": "5.60.0", + "@rollup/plugin-commonjs": "25.0.7", + "@rollup/plugin-node-resolve": "15.2.3", + "@rollup/plugin-typescript": "11.1.5", + "@types/base-64": "1.0.2", + "@types/debug": "4.1.12", + "@types/jest": "29.5.9", + "@types/node": "20.9.3", + "@typescript-eslint/eslint-plugin": "6.12.0", + "@typescript-eslint/parser": "6.12.0", "copyfiles": "2.4.1", "cross-env": "7.0.3", "dotenv": "16.3.1", - "eslint": "8.43.0", + "eslint": "8.54.0", "eslint-config-airbnb": "19.0.4", - "eslint-config-airbnb-typescript": "17.0.0", - "eslint-config-prettier": "8.8.0", + "eslint-config-airbnb-typescript": "17.1.0", + "eslint-config-prettier": "9.0.0", "eslint-module-utils": "2.8.0", - "eslint-plugin-import": "2.27.5", - "eslint-plugin-prettier": "4.2.1", - "jest": "29.5.0", - "prettier": "2.8.8", - "rimraf": "5.0.1", - "rollup": "3.25.1", - "rollup-plugin-dts": "5.3.0", + "eslint-plugin-import": "2.29.0", + "eslint-plugin-prettier": "5.0.1", + "jest": "29.7.0", + "prettier": "3.1.0", + "rimraf": "5.0.5", + "rollup": "4.5.0", + "rollup-plugin-dts": "6.1.0", "rollup-plugin-node-builtins": "2.1.2", - "rollup-plugin-polyfill-node": "0.12.0", + "rollup-plugin-polyfill-node": "0.13.0", "rollup-plugin-terser": "7.0.2", - "sort-package-json": "2.4.1", - "ts-jest": "29.1.0", - "tslib": "2.5.3", - "typescript": "5.1.3" + "sort-package-json": "2.6.0", + "ts-jest": "29.1.1", + "tslib": "2.6.2", + "typescript": "5.2.2" }, "engines": { "node": ">=10" diff --git a/src/__mocks__/cross-fetch/index.ts b/src/__mocks__/cross-fetch/index.ts index a577a23..d34ced4 100644 --- a/src/__mocks__/cross-fetch/index.ts +++ b/src/__mocks__/cross-fetch/index.ts @@ -33,7 +33,7 @@ const appendJSON = async (filepath: string, keyData: string, valueData: string) export const fetch = async ( url: string, - init: { method: string; body: string; headers: Record } + init: { method: string; body: string; headers: Record }, ) => { if (process.env.MOCK_FETCH === 'true' && fs.existsSync(dataPath)) { const data = JSON.parse(await fs.promises.readFile(dataPath, 'utf8')); @@ -71,7 +71,7 @@ export const fetch = async ( headers: Object.fromEntries(response?.headers.entries()), url: response?.url, text, - }) + }), ); } diff --git a/src/__tests__/integration/apple/addressBook.test.ts b/src/__tests__/integration/apple/addressBook.test.ts index c7703e4..e601eb4 100644 --- a/src/__tests__/integration/apple/addressBook.test.ts +++ b/src/__tests__/integration/apple/addressBook.test.ts @@ -81,7 +81,7 @@ test('fetchVCards should be able to fetch vcards', async () => { expect(vcards.length > 0).toBe(true); expect(vcards.every((o) => o.data.length > 0 && o.etag.length > 0 && o.url.length > 0)).toBe( - true + true, ); const deleteResult = await deleteObject({ diff --git a/src/__tests__/integration/apple/calendar.test.ts b/src/__tests__/integration/apple/calendar.test.ts index 0803f07..1e32b48 100644 --- a/src/__tests__/integration/apple/calendar.test.ts +++ b/src/__tests__/integration/apple/calendar.test.ts @@ -137,7 +137,7 @@ test('fetchCalendarObjects should be able to fetch calendar objects', async () = expect(objects.length > 0).toBe(true); expect(objects.every((o) => o.data?.length > 0 && o.etag?.length > 0 && o.url?.length > 0)).toBe( - true + true, ); await deleteObject({ diff --git a/src/__tests__/integration/apple/request.test.ts b/src/__tests__/integration/apple/request.test.ts index dbb7dab..cd4e4f7 100644 --- a/src/__tests__/integration/apple/request.test.ts +++ b/src/__tests__/integration/apple/request.test.ts @@ -103,7 +103,7 @@ test('davRequest should be able to get raw xml response', async () => { expect(result.statusText).toBe('Multi-Status'); expect(result.ok).toBe(true); expect(result.raw).toMatch( - /\/[0-9]+\/principal\/<\/href><\/current-user-principal>/ + /\/[0-9]+\/principal\/<\/href><\/current-user-principal>/, ); }); diff --git a/src/__tests__/integration/baikal/addressBook.test.ts b/src/__tests__/integration/baikal/addressBook.test.ts index f8d378a..6236ce3 100644 --- a/src/__tests__/integration/baikal/addressBook.test.ts +++ b/src/__tests__/integration/baikal/addressBook.test.ts @@ -81,7 +81,7 @@ test('fetchVCards should be able to fetch vcards', async () => { expect(vcards.length > 0).toBe(true); expect(vcards.every((o) => o.data.length > 0 && o.etag.length > 0 && o.url.length > 0)).toBe( - true + true, ); const deleteResult = await deleteObject({ diff --git a/src/__tests__/integration/baikal/calendar.test.ts b/src/__tests__/integration/baikal/calendar.test.ts index eff41ed..156273f 100644 --- a/src/__tests__/integration/baikal/calendar.test.ts +++ b/src/__tests__/integration/baikal/calendar.test.ts @@ -137,7 +137,7 @@ test('fetchCalendarObjects should be able to fetch calendar objects', async () = expect(objects.length > 0).toBe(true); expect(objects.every((o) => o.data?.length > 0 && o.etag?.length > 0 && o.url?.length > 0)).toBe( - true + true, ); await deleteObject({ diff --git a/src/__tests__/integration/baikal/request.test.ts b/src/__tests__/integration/baikal/request.test.ts index 048f313..bfe0f7b 100644 --- a/src/__tests__/integration/baikal/request.test.ts +++ b/src/__tests__/integration/baikal/request.test.ts @@ -103,7 +103,7 @@ test('davRequest should be able to get raw xml response', async () => { expect(result.statusText).toBe('Multi-Status'); expect(result.ok).toBe(true); expect(result.raw).toMatch( - /\/dav.php\/principals\/.+\/<\/d:href><\/d:current-user-principal>/ + /\/dav.php\/principals\/.+\/<\/d:href><\/d:current-user-principal>/, ); }); diff --git a/src/__tests__/integration/davical/calendar.test.ts b/src/__tests__/integration/davical/calendar.test.ts index 7b5fb57..47eab60 100644 --- a/src/__tests__/integration/davical/calendar.test.ts +++ b/src/__tests__/integration/davical/calendar.test.ts @@ -137,7 +137,7 @@ test('fetchCalendarObjects should be able to fetch calendar objects', async () = expect(objects.length > 0).toBe(true); expect(objects.every((o) => o.data?.length > 0 && o.etag?.length > 0 && o.url?.length > 0)).toBe( - true + true, ); await deleteObject({ diff --git a/src/__tests__/integration/davical/request.test.ts b/src/__tests__/integration/davical/request.test.ts index 5767036..f26f388 100644 --- a/src/__tests__/integration/davical/request.test.ts +++ b/src/__tests__/integration/davical/request.test.ts @@ -112,7 +112,7 @@ test('davRequest should be able to get raw xml response', async () => { expect(result.statusText).toBe('Multi-Status'); expect(result.ok).toBe(true); expect(result.raw).toMatch( - /\s+\/caldav\.php\/.+\/<\/href>\s+<\/current-user-principal>/ + /\s+\/caldav\.php\/.+\/<\/href>\s+<\/current-user-principal>/, ); }); diff --git a/src/__tests__/integration/fastmail/account.test.ts b/src/__tests__/integration/fastmail/account.test.ts index 7c9055f..58fcd24 100644 --- a/src/__tests__/integration/fastmail/account.test.ts +++ b/src/__tests__/integration/fastmail/account.test.ts @@ -63,9 +63,9 @@ test('createAccount should be able to create account', async () => { }); expect(account.rootUrl).toEqual('https://caldav.messagingengine.com/dav/calendars'); expect(account.principalUrl).toMatch( - /https:\/\/caldav.messagingengine.com\/dav\/principals\/user\/.+\// + /https:\/\/caldav.messagingengine.com\/dav\/principals\/user\/.+\//, ); expect(account.homeUrl).toMatch( - /https:\/\/caldav.messagingengine.com\/dav\/calendars\/user\/.+\// + /https:\/\/caldav.messagingengine.com\/dav\/calendars\/user\/.+\//, ); }); diff --git a/src/__tests__/integration/fastmail/addressBook.test.ts b/src/__tests__/integration/fastmail/addressBook.test.ts index 2fa10b4..24c04e5 100644 --- a/src/__tests__/integration/fastmail/addressBook.test.ts +++ b/src/__tests__/integration/fastmail/addressBook.test.ts @@ -81,7 +81,7 @@ test('fetchVCards should be able to fetch vcards', async () => { expect(vcards.length > 0).toBe(true); expect(vcards.every((o) => o.data.length > 0 && o.etag.length > 0 && o.url.length > 0)).toBe( - true + true, ); const deleteResult = await deleteObject({ diff --git a/src/__tests__/integration/fastmail/calendar.test.ts b/src/__tests__/integration/fastmail/calendar.test.ts index 2a7b5bf..c3505bd 100644 --- a/src/__tests__/integration/fastmail/calendar.test.ts +++ b/src/__tests__/integration/fastmail/calendar.test.ts @@ -137,7 +137,7 @@ test('fetchCalendarObjects should be able to fetch calendar objects', async () = expect(objects.length > 0).toBe(true); expect(objects.every((o) => o.data?.length > 0 && o.etag?.length > 0 && o.url?.length > 0)).toBe( - true + true, ); await deleteObject({ diff --git a/src/__tests__/integration/fastmail/request.test.ts b/src/__tests__/integration/fastmail/request.test.ts index 1740874..eb260f3 100644 --- a/src/__tests__/integration/fastmail/request.test.ts +++ b/src/__tests__/integration/fastmail/request.test.ts @@ -103,7 +103,7 @@ test('davRequest should be able to get raw xml response', async () => { expect(result.statusText).toBe('Multi-Status'); expect(result.ok).toBe(true); expect(result.raw).toMatch( - /\s+\/dav\/principals\/user\/.+\/<\/d:href>\s+<\/d:current-user-principal>/ + /\s+\/dav\/principals\/user\/.+\/<\/d:href>\s+<\/d:current-user-principal>/, ); }); diff --git a/src/__tests__/integration/google/account.test.ts b/src/__tests__/integration/google/account.test.ts index b9926fc..09a1adc 100644 --- a/src/__tests__/integration/google/account.test.ts +++ b/src/__tests__/integration/google/account.test.ts @@ -71,7 +71,7 @@ test('createAccount should be able to create account', async () => { }); expect(account.rootUrl).toEqual('https://apidata.googleusercontent.com/caldav/v2/'); expect(account.principalUrl).toMatch( - /^https:\/\/apidata.googleusercontent.com\/caldav\/v2\/.+\/user$/ + /^https:\/\/apidata.googleusercontent.com\/caldav\/v2\/.+\/user$/, ); expect(account.homeUrl).toMatch(/https:\/\/apidata.googleusercontent.com\/caldav\/v2\/.+\//); }); diff --git a/src/__tests__/integration/google/addressBook.test.ts b/src/__tests__/integration/google/addressBook.test.ts index dfcec44..f4312fe 100644 --- a/src/__tests__/integration/google/addressBook.test.ts +++ b/src/__tests__/integration/google/addressBook.test.ts @@ -60,7 +60,7 @@ test('createVCard should be able to create vcard', async () => { new URL(`5ddfa764-3583-4a00-bf9f-4c814ba48efa.vcf`, addressBooks[0].url).href, { headers: authHeaders, - } + }, ); const vcardUid = (await vcardInfo.text()).split('UID:')[1].split('\n')[0]; @@ -95,14 +95,14 @@ test('fetchVCards should be able to fetch vcards', async () => { expect(vcards.length > 0).toBe(true); expect(vcards.every((o) => o.data?.length > 0 && o.etag?.length > 0 && o.url?.length > 0)).toBe( - true + true, ); const vcardInfoResponse = await fetch( new URL(`787cc01a-f93f-4917-b11a-3e842316e6d7.vcf`, addressBooks[0].url).href, { headers: authHeaders, - } + }, ); const vcardInfo = await vcardInfoResponse.text(); const vcardUid = vcardInfo.split('UID:')[1].split('\n')[0]; diff --git a/src/__tests__/integration/google/calendar.test.ts b/src/__tests__/integration/google/calendar.test.ts index e606d39..dfca067 100644 --- a/src/__tests__/integration/google/calendar.test.ts +++ b/src/__tests__/integration/google/calendar.test.ts @@ -142,7 +142,7 @@ test('fetchCalendarObjects should be able to fetch calendar objects', async () = expect(objects.length > 0).toBe(true); expect(objects.every((o) => o.data?.length > 0 && o.etag?.length > 0 && o.url?.length > 0)).toBe( - true + true, ); await deleteObject({ diff --git a/src/__tests__/integration/google/request.test.ts b/src/__tests__/integration/google/request.test.ts index 55067db..3bc166e 100644 --- a/src/__tests__/integration/google/request.test.ts +++ b/src/__tests__/integration/google/request.test.ts @@ -117,7 +117,7 @@ test('davRequest should be able to get raw xml response', async () => { expect(result.statusText).toBe('Multi-Status'); expect(result.ok).toBe(true); expect(result.raw).toMatch( - /\s+\/caldav\/v2\/.+\/user<\/D:href>\s+<\/D:current-user-principal>/ + /\s+\/caldav\/v2\/.+\/user<\/D:href>\s+<\/D:current-user-principal>/, ); }); diff --git a/src/__tests__/integration/nextcloud/addressBook.test.ts b/src/__tests__/integration/nextcloud/addressBook.test.ts index c1b6f45..b9df326 100644 --- a/src/__tests__/integration/nextcloud/addressBook.test.ts +++ b/src/__tests__/integration/nextcloud/addressBook.test.ts @@ -81,7 +81,7 @@ test('fetchVCards should be able to fetch vcards', async () => { expect(vcards.length > 0).toBe(true); expect(vcards.every((o) => o.data.length > 0 && o.etag.length > 0 && o.url.length > 0)).toBe( - true + true, ); const deleteResult = await deleteObject({ diff --git a/src/__tests__/integration/nextcloud/calendar.test.ts b/src/__tests__/integration/nextcloud/calendar.test.ts index cbddb24..5822c30 100644 --- a/src/__tests__/integration/nextcloud/calendar.test.ts +++ b/src/__tests__/integration/nextcloud/calendar.test.ts @@ -137,7 +137,7 @@ test('fetchCalendarObjects should be able to fetch calendar objects', async () = expect(objects.length > 0).toBe(true); expect(objects.every((o) => o.data?.length > 0 && o.etag?.length > 0 && o.url?.length > 0)).toBe( - true + true, ); await deleteObject({ diff --git a/src/__tests__/integration/nextcloud/request.test.ts b/src/__tests__/integration/nextcloud/request.test.ts index 3f9f2ef..82f8973 100644 --- a/src/__tests__/integration/nextcloud/request.test.ts +++ b/src/__tests__/integration/nextcloud/request.test.ts @@ -103,7 +103,7 @@ test('davRequest should be able to get raw xml response', async () => { expect(result.statusText).toBe('Multi-Status'); expect(result.ok).toBe(true); expect(result.raw).toMatch( - /\/remote.php\/dav\/principals\/users\/.+\/<\/d:href><\/d:current-user-principal>/ + /\/remote.php\/dav\/principals\/users\/.+\/<\/d:href><\/d:current-user-principal>/, ); }); diff --git a/src/__tests__/integration/zoho/addressBook.test.ts b/src/__tests__/integration/zoho/addressBook.test.ts index fa42a7a..82a0d8d 100644 --- a/src/__tests__/integration/zoho/addressBook.test.ts +++ b/src/__tests__/integration/zoho/addressBook.test.ts @@ -55,7 +55,7 @@ test('createVCard should be able to create vcard', async () => { new URL(`5ddfa764-3583-4a00-bf9f-4c814ba48efa.vcf`, addressBooks[0].url).href, { headers: authHeaders, - } + }, ); const vcardUid = (await vcardInfo.text()).split('UID:')[1].split('\n')[0]; @@ -90,14 +90,14 @@ test('fetchVCards should be able to fetch vcards', async () => { expect(vcards.length > 0).toBe(true); expect(vcards.every((o) => o.data?.length > 0 && o.etag?.length > 0 && o.url?.length > 0)).toBe( - true + true, ); const vcardInfoResponse = await fetch( new URL(`787cc01a-f93f-4917-b11a-3e842316e6d7.vcf`, addressBooks[0].url).href, { headers: authHeaders, - } + }, ); const vcardInfo = await vcardInfoResponse.text(); const vcardUid = vcardInfo.split('UID:')[1].split('\n')[0]; diff --git a/src/__tests__/integration/zoho/calendar.test.ts b/src/__tests__/integration/zoho/calendar.test.ts index 03e23d6..bc334d9 100644 --- a/src/__tests__/integration/zoho/calendar.test.ts +++ b/src/__tests__/integration/zoho/calendar.test.ts @@ -137,7 +137,7 @@ test('fetchCalendarObjects should be able to fetch calendar objects', async () = expect(objects.length > 0).toBe(true); expect(objects.every((o) => o.data?.length > 0 && o.etag?.length > 0 && o.url?.length > 0)).toBe( - true + true, ); await deleteObject({ diff --git a/src/__tests__/integration/zoho/request.test.ts b/src/__tests__/integration/zoho/request.test.ts index 70f8dc4..3b2e3cf 100644 --- a/src/__tests__/integration/zoho/request.test.ts +++ b/src/__tests__/integration/zoho/request.test.ts @@ -112,7 +112,7 @@ test('davRequest should be able to get raw xml response', async () => { expect(result.statusText).toBe('Multi-Status'); expect(result.ok).toBe(true); expect(result.raw).toMatch( - /\/caldav\/.+\/user\/<\/D:href><\/D:current-user-principal>/ + /\/caldav\/.+\/user\/<\/D:href><\/D:current-user-principal>/, ); }); diff --git a/src/__tests__/unit/authHelpers.test.ts b/src/__tests__/unit/authHelpers.test.ts index fba38d8..a48de0f 100644 --- a/src/__tests__/unit/authHelpers.test.ts +++ b/src/__tests__/unit/authHelpers.test.ts @@ -39,7 +39,7 @@ test('fetchOauthTokens should rejects when missing args', async () => { authorizationCode: '123', }); expect(t).rejects.toThrow( - 'Oauth credentials missing: redirectUrl,clientId,clientSecret,tokenUrl' + 'Oauth credentials missing: redirectUrl,clientId,clientSecret,tokenUrl', ); }); @@ -49,6 +49,6 @@ test('refreshAccessToken should rejects when missing args', async () => { authorizationCode: '123', }); expect(t).rejects.toThrow( - 'Oauth credentials missing: refreshToken,clientId,clientSecret,tokenUrl' + 'Oauth credentials missing: refreshToken,clientId,clientSecret,tokenUrl', ); }); diff --git a/src/account.ts b/src/account.ts index 8415e3e..269024a 100644 --- a/src/account.ts +++ b/src/account.ts @@ -59,7 +59,10 @@ export const fetchPrincipalUrl = async (params: { const requiredFields: Array<'rootUrl'> = ['rootUrl']; if (!hasFields(account, requiredFields)) { throw new Error( - `account must have ${findMissingFieldNames(account, requiredFields)} before fetchPrincipalUrl` + `account must have ${findMissingFieldNames( + account, + requiredFields, + )} before fetchPrincipalUrl`, ); } debug(`Fetching principal url from path ${account.rootUrl}`); @@ -89,7 +92,7 @@ export const fetchHomeUrl = async (params: { const requiredFields: Array<'principalUrl' | 'rootUrl'> = ['principalUrl', 'rootUrl']; if (!hasFields(account, requiredFields)) { throw new Error( - `account must have ${findMissingFieldNames(account, requiredFields)} before fetchHomeUrl` + `account must have ${findMissingFieldNames(account, requiredFields)} before fetchHomeUrl`, ); } @@ -113,7 +116,7 @@ export const fetchHomeUrl = async (params: { account.accountType === 'caldav' ? matched?.props?.calendarHomeSet.href : matched?.props?.addressbookHomeSet.href, - account.rootUrl + account.rootUrl, ).href; debug(`Fetched home url ${result}`); return result; @@ -144,14 +147,14 @@ export const createAccount = async (params: { newAccount.calendars.map(async (cal) => ({ ...cal, objects: await fetchCalendarObjects({ calendar: cal, headers }), - })) + })), ); } else if (account.accountType === 'carddav' && newAccount.addressBooks) { newAccount.addressBooks = await Promise.all( newAccount.addressBooks.map(async (addr) => ({ ...addr, objects: await fetchVCards({ addressBook: addr, headers }), - })) + })), ); } } diff --git a/src/addressBook.ts b/src/addressBook.ts index 747c741..012d8d6 100644 --- a/src/addressBook.ts +++ b/src/addressBook.ts @@ -76,7 +76,10 @@ export const fetchAddressBooks = async (params?: { throw new Error('no account for fetchAddressBooks'); } throw new Error( - `account must have ${findMissingFieldNames(account, requiredFields)} before fetchAddressBooks` + `account must have ${findMissingFieldNames( + account, + requiredFields, + )} before fetchAddressBooks`, ); } const res = await propfind({ @@ -108,7 +111,7 @@ export const fetchAddressBooks = async (params?: { .map(async (addr) => ({ ...addr, reports: await supportedReportSet({ collection: addr, headers }), - })) + })), ); }; @@ -129,8 +132,8 @@ export const fetchVCards = async (params: { throw new Error( `addressBook must have ${findMissingFieldNames( addressBook, - requiredFields - )} before fetchVCards` + requiredFields, + )} before fetchVCards`, ); } diff --git a/src/calendar.ts b/src/calendar.ts index 889f02e..08d25e6 100644 --- a/src/calendar.ts +++ b/src/calendar.ts @@ -117,7 +117,7 @@ export const fetchCalendars = async (params?: { throw new Error('no account for fetchCalendars'); } throw new Error( - `account must have ${findMissingFieldNames(account, requiredFields)} before fetchCalendars` + `account must have ${findMissingFieldNames(account, requiredFields)} before fetchCalendars`, ); } @@ -143,7 +143,7 @@ export const fetchCalendars = async (params?: { .filter((rc) => { // filter out none iCal format calendars. const components: ICALObjects[] = Array.isArray( - rc.props?.supportedCalendarComponentSet.comp + rc.props?.supportedCalendarComponentSet.comp, ) ? rc.props?.supportedCalendarComponentSet.comp.map((sc: any) => sc._attributes.name) : [rc.props?.supportedCalendarComponentSet.comp._attributes.name] || []; @@ -168,15 +168,15 @@ export const fetchCalendars = async (params?: { ...conditionalParam( 'projectedProps', Object.fromEntries( - Object.entries(rs.props ?? {}).filter(([key]) => projectedProps?.[key]) - ) + Object.entries(rs.props ?? {}).filter(([key]) => projectedProps?.[key]), + ), ), }; }) .map(async (cal) => ({ ...cal, reports: await supportedReportSet({ collection: cal, headers }), - })) + })), ); }; @@ -221,8 +221,8 @@ export const fetchCalendarObjects = async (params: { throw new Error( `calendar must have ${findMissingFieldNames( calendar, - requiredFields - )} before fetchCalendarObjects` + requiredFields, + )} before fetchCalendarObjects`, ); } @@ -424,7 +424,7 @@ export const syncCalendars: SyncCalendars = async (params: { // no existing url const created = remoteCalendars.filter((rc) => - localCalendars.every((lc) => !urlContains(lc.url, rc.url)) + localCalendars.every((lc) => !urlContains(lc.url, rc.url)), ); debug(`new calendars: ${created.map((cc) => cc.displayName)}`); @@ -451,11 +451,11 @@ export const syncCalendars: SyncCalendars = async (params: { account, }); return result; - }) + }), ); // does not present in remote const deleted = localCalendars.filter((cal) => - remoteCalendars.every((rc) => !urlContains(rc.url, cal.url)) + remoteCalendars.every((rc) => !urlContains(rc.url, cal.url)), ); debug(`deleted calendars: ${deleted.map((cc) => cc.displayName)}`); @@ -463,8 +463,8 @@ export const syncCalendars: SyncCalendars = async (params: { remoteCalendars.some( (rc) => urlContains(rc.url, cal.url) && - ((rc.syncToken && rc.syncToken !== cal.syncToken) || (rc.ctag && rc.ctag !== cal.ctag)) - ) + ((rc.syncToken && rc.syncToken !== cal.syncToken) || (rc.ctag && rc.ctag !== cal.ctag)), + ), ); // debug(`unchanged calendars: ${unchanged.map((cc) => cc.displayName)}`); diff --git a/src/client.ts b/src/client.ts index 3d10fa1..e40c883 100644 --- a/src/client.ts +++ b/src/client.ts @@ -312,13 +312,13 @@ export class DAVClient { async updateObject(...params: Parameters): Promise { return defaultParam(rawUpdateObject, { headers: this.authHeaders, url: this.serverUrl })( - params[0] + params[0], ); } async deleteObject(...params: Parameters): Promise { return defaultParam(rawDeleteObject, { headers: this.authHeaders, url: this.serverUrl })( - params[0] + params[0], ); } @@ -391,7 +391,7 @@ export class DAVClient { async fetchCalendars(...params: Parameters): Promise { return defaultParam(rawFetchCalendars, { headers: this.authHeaders, account: this.account })( - params?.[0] + params?.[0], ); } @@ -444,7 +444,7 @@ export class DAVClient { ...params: Parameters ): Promise { return defaultParam(rawFetchAddressBooks, { headers: this.authHeaders, account: this.account })( - params?.[0] + params?.[0], ); } diff --git a/src/collection.ts b/src/collection.ts index 47e1d13..325d792 100644 --- a/src/collection.ts +++ b/src/collection.ts @@ -79,7 +79,7 @@ export const supportedReportSet = async (params: { }); return ( res[0]?.props?.supportedReportSet?.supportedReport?.map( - (sr: { report: any }) => Object.keys(sr.report)[0] + (sr: { report: any }) => Object.keys(sr.report)[0], ) ?? [] ); }; @@ -160,8 +160,8 @@ export const smartCollectionSync: SmartCollectionSync = async - localObjects.every((lo) => !urlContains(lo.url, o.url)) + localObjects.every((lo) => !urlContains(lo.url, o.url)), ); // debug(`created objects: ${created.map((o) => o.url).join('\n')}`); @@ -245,7 +245,7 @@ export const smartCollectionSync: SmartCollectionSync = async o.url).join('\n')}`); const unchanged = localObjects.filter((lo) => - remoteObjects.some((ro) => urlContains(lo.url, ro.url) && ro.etag === lo.etag) + remoteObjects.some((ro) => urlContains(lo.url, ro.url) && ro.etag === lo.etag), ); return { @@ -268,7 +268,7 @@ export const smartCollectionSync: SmartCollectionSync = async - localObjects.every((lo) => !urlContains(lo.url, ro.url)) + localObjects.every((lo) => !urlContains(lo.url, ro.url)), ); // debug(`created objects: ${created.map((o) => o.url).join('\n')}`); @@ -284,12 +284,12 @@ export const smartCollectionSync: SmartCollectionSync = async - remoteObjects.every((ro) => !urlContains(ro.url, cal.url)) + remoteObjects.every((ro) => !urlContains(ro.url, cal.url)), ); // debug(`deleted objects: ${deleted.map((o) => o.url).join('\n')}`); const unchanged = localObjects.filter((lo) => - remoteObjects.some((ro) => urlContains(lo.url, ro.url) && ro.etag === lo.etag) + remoteObjects.some((ro) => urlContains(lo.url, ro.url) && ro.etag === lo.etag), ); if (isDirty) { diff --git a/src/request.ts b/src/request.ts index a7c86f7..12504f7 100644 --- a/src/request.ts +++ b/src/request.ts @@ -45,7 +45,7 @@ export const davRequest = async (params: { } return name; }, - } + }, ) : body; diff --git a/src/types/functionsOverloads.ts b/src/types/functionsOverloads.ts index bb731a3..cd9b289 100644 --- a/src/types/functionsOverloads.ts +++ b/src/types/functionsOverloads.ts @@ -8,13 +8,13 @@ export interface SmartCollectionSync { account?: DAVAccount; detailedResult: true; }): Promise< - | Omit & { - objects: { - created: DAVObject[]; - updated: DAVObject[]; - deleted: DAVObject[]; - }; - } + Omit & { + objects: { + created: DAVObject[]; + updated: DAVObject[]; + deleted: DAVObject[]; + }; + } >; (param: { collection: T; diff --git a/src/util/authHelpers.ts b/src/util/authHelpers.ts index 3b542c0..4746e4f 100644 --- a/src/util/authHelpers.ts +++ b/src/util/authHelpers.ts @@ -37,7 +37,7 @@ export const fetchOauthTokens = async (credentials: DAVCredentials): Promise => { debug('Fetching oauth headers'); let tokens: DAVTokens = {}; diff --git a/src/util/typeHelpers.ts b/src/util/typeHelpers.ts index db91d5b..3b46a69 100644 --- a/src/util/typeHelpers.ts +++ b/src/util/typeHelpers.ts @@ -15,11 +15,11 @@ export type RequireAtLeastOne = Pick( obj: Array>, - fields: K[] + fields: K[], ): obj is Array>; export function hasFields( obj: T | RequireAndNotNullSome, - fields: K[] + fields: K[], ): obj is RequireAndNotNullSome; export function hasFields(obj: T | Array, fields: K[]): boolean { const inObj: { (obj: T | RequireAndNotNullSome): boolean } = (object) => @@ -34,5 +34,5 @@ export function hasFields(obj: T | Array, fields: K[]): export const findMissingFieldNames = (obj: T, fields: Array): string => fields.reduce( (prev, curr) => (obj[curr] ? prev : `${prev.length ? `${prev},` : ''}${curr.toString()}`), - '' + '', ); diff --git a/yarn.lock b/yarn.lock index b63cddb..4e4defd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,11 @@ # yarn lockfile v1 +"@aashutoshrathi/word-wrap@^1.2.3": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" + integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== + "@ampproject/remapping@^2.1.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" @@ -38,6 +43,14 @@ dependencies: "@babel/highlight" "^7.18.6" +"@babel/code-frame@^7.22.13": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.4.tgz#03ae5af150be94392cb5c7ccd97db5a19a5da6aa" + integrity sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA== + dependencies: + "@babel/highlight" "^7.23.4" + chalk "^2.4.2" + "@babel/compat-data@^7.16.4": version "7.16.4" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.4.tgz#081d6bbc336ec5c2435c6346b2ae1fb98b5ac68e" @@ -90,15 +103,6 @@ semver "^6.3.0" source-map "^0.5.0" -"@babel/generator@^7.15.0", "@babel/generator@^7.7.2": - version "7.15.0" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.15.0.tgz#a7d0c172e0d814974bad5aa77ace543b97917f15" - integrity sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ== - dependencies: - "@babel/types" "^7.15.0" - jsesc "^2.5.1" - source-map "^0.5.0" - "@babel/generator@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.7.tgz#b42bf46a3079fa65e1544135f32e7958f048adbb" @@ -117,6 +121,15 @@ "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" +"@babel/generator@^7.7.2": + version "7.15.0" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.15.0.tgz#a7d0c172e0d814974bad5aa77ace543b97917f15" + integrity sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ== + dependencies: + "@babel/types" "^7.15.0" + jsesc "^2.5.1" + source-map "^0.5.0" + "@babel/helper-compilation-targets@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz#06e66c5f299601e6c7da350049315e83209d551b" @@ -149,15 +162,6 @@ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz#b7eee2b5b9d70602e59d1a6cad7dd24de7ca6cd7" integrity sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q== -"@babel/helper-function-name@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz#89e2c474972f15d8e233b52ee8c480e2cfcd50c4" - integrity sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ== - dependencies: - "@babel/helper-get-function-arity" "^7.14.5" - "@babel/template" "^7.14.5" - "@babel/types" "^7.14.5" - "@babel/helper-function-name@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz#f1ec51551fb1c8956bc8dd95f38523b6cf375f8f" @@ -175,13 +179,6 @@ "@babel/template" "^7.18.6" "@babel/types" "^7.18.6" -"@babel/helper-get-function-arity@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz#25fbfa579b0937eee1f3b805ece4ce398c431815" - integrity sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg== - dependencies: - "@babel/types" "^7.14.5" - "@babel/helper-get-function-arity@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419" @@ -189,13 +186,6 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-hoist-variables@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz#e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d" - integrity sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ== - dependencies: - "@babel/types" "^7.14.5" - "@babel/helper-hoist-variables@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" @@ -276,13 +266,6 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-split-export-declaration@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz#22b23a54ef51c2b7605d851930c1976dd0bc693a" - integrity sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA== - dependencies: - "@babel/types" "^7.14.5" - "@babel/helper-split-export-declaration@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" @@ -317,6 +300,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== +"@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== + "@babel/helper-validator-option@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" @@ -381,7 +369,16 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.5", "@babel/parser@^7.15.0": +"@babel/highlight@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" + integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== + dependencies: + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" + js-tokens "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.14.5": version "7.15.3" resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.15.3.tgz#3416d9bea748052cfcb63dbcc27368105b1ed862" integrity sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA== @@ -494,15 +491,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/template@^7.14.5", "@babel/template@^7.3.3": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4" - integrity sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g== - dependencies: - "@babel/code-frame" "^7.14.5" - "@babel/parser" "^7.14.5" - "@babel/types" "^7.14.5" - "@babel/template@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" @@ -521,6 +509,15 @@ "@babel/parser" "^7.18.6" "@babel/types" "^7.18.6" +"@babel/template@^7.3.3": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4" + integrity sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/parser" "^7.14.5" + "@babel/types" "^7.14.5" + "@babel/traverse@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.7.tgz#dac01236a72c2560073658dd1a285fe4e0865d76" @@ -553,21 +550,6 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/traverse@^7.7.2": - version "7.15.0" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.0.tgz#4cca838fd1b2a03283c1f38e141f639d60b3fc98" - integrity sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw== - dependencies: - "@babel/code-frame" "^7.14.5" - "@babel/generator" "^7.15.0" - "@babel/helper-function-name" "^7.14.5" - "@babel/helper-hoist-variables" "^7.14.5" - "@babel/helper-split-export-declaration" "^7.14.5" - "@babel/parser" "^7.15.0" - "@babel/types" "^7.15.0" - debug "^4.1.0" - globals "^11.1.0" - "@babel/types@^7.0.0", "@babel/types@^7.14.5", "@babel/types@^7.15.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3": version "7.15.0" resolved "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz#61af11f2286c4e9c69ca8deb5f4375a73c72dcbd" @@ -597,26 +579,26 @@ resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@eslint-community/eslint-utils@^4.2.0": +"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/regexpp@^4.4.0": - version "4.5.1" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884" - integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ== +"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" + integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== -"@eslint/eslintrc@^2.0.3": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.3.tgz#4910db5505f4d503f27774bf356e3704818a0331" - integrity sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ== +"@eslint/eslintrc@^2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.3.tgz#797470a75fe0fbd5a53350ee715e85e87baff22d" + integrity sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.5.2" + espree "^9.6.0" globals "^13.19.0" ignore "^5.2.0" import-fresh "^3.2.1" @@ -624,17 +606,17 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.43.0": - version "8.43.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.43.0.tgz#559ca3d9ddbd6bf907ad524320a0d14b85586af0" - integrity sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg== +"@eslint/js@8.54.0": + version "8.54.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.54.0.tgz#4fab9a2ff7860082c304f750e94acd644cf984cf" + integrity sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ== -"@humanwhocodes/config-array@^0.11.10": - version "0.11.10" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2" - integrity sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ== +"@humanwhocodes/config-array@^0.11.13": + version "0.11.13" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297" + integrity sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ== dependencies: - "@humanwhocodes/object-schema" "^1.2.1" + "@humanwhocodes/object-schema" "^2.0.1" debug "^4.1.1" minimatch "^3.0.5" @@ -643,10 +625,10 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/object-schema@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== +"@humanwhocodes/object-schema@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044" + integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== "@isaacs/cliui@^8.0.2": version "8.0.2" @@ -676,61 +658,61 @@ resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.5.0.tgz#593a6c5c0d3f75689835f1b3b4688c4f8544cb57" - integrity sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ== +"@jest/console@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.7.0.tgz#cd4822dbdb84529265c5a2bdb529a3c9cc950ffc" + integrity sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg== dependencies: - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.5.0" - jest-util "^29.5.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" slash "^3.0.0" -"@jest/core@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.5.0.tgz#76674b96904484e8214614d17261cc491e5f1f03" - integrity sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ== +"@jest/core@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.7.0.tgz#b6cccc239f30ff36609658c5a5e2291757ce448f" + integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg== dependencies: - "@jest/console" "^29.5.0" - "@jest/reporters" "^29.5.0" - "@jest/test-result" "^29.5.0" - "@jest/transform" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/console" "^29.7.0" + "@jest/reporters" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" ci-info "^3.2.0" exit "^0.1.2" graceful-fs "^4.2.9" - jest-changed-files "^29.5.0" - jest-config "^29.5.0" - jest-haste-map "^29.5.0" - jest-message-util "^29.5.0" - jest-regex-util "^29.4.3" - jest-resolve "^29.5.0" - jest-resolve-dependencies "^29.5.0" - jest-runner "^29.5.0" - jest-runtime "^29.5.0" - jest-snapshot "^29.5.0" - jest-util "^29.5.0" - jest-validate "^29.5.0" - jest-watcher "^29.5.0" + jest-changed-files "^29.7.0" + jest-config "^29.7.0" + jest-haste-map "^29.7.0" + jest-message-util "^29.7.0" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-resolve-dependencies "^29.7.0" + jest-runner "^29.7.0" + jest-runtime "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" + jest-watcher "^29.7.0" micromatch "^4.0.4" - pretty-format "^29.5.0" + pretty-format "^29.7.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.5.0.tgz#9152d56317c1fdb1af389c46640ba74ef0bb4c65" - integrity sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ== +"@jest/environment@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.7.0.tgz#24d61f54ff1f786f3cd4073b4b94416383baf2a7" + integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw== dependencies: - "@jest/fake-timers" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" - jest-mock "^29.5.0" + jest-mock "^29.7.0" "@jest/expect-utils@^29.5.0": version "29.5.0" @@ -739,47 +721,54 @@ dependencies: jest-get-type "^29.4.3" -"@jest/expect@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.5.0.tgz#80952f5316b23c483fbca4363ce822af79c38fba" - integrity sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g== +"@jest/expect-utils@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6" + integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA== dependencies: - expect "^29.5.0" - jest-snapshot "^29.5.0" + jest-get-type "^29.6.3" -"@jest/fake-timers@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.5.0.tgz#d4d09ec3286b3d90c60bdcd66ed28d35f1b4dc2c" - integrity sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg== +"@jest/expect@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.7.0.tgz#76a3edb0cb753b70dfbfe23283510d3d45432bf2" + integrity sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ== dependencies: - "@jest/types" "^29.5.0" + expect "^29.7.0" + jest-snapshot "^29.7.0" + +"@jest/fake-timers@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.7.0.tgz#fd91bf1fffb16d7d0d24a426ab1a47a49881a565" + integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ== + dependencies: + "@jest/types" "^29.6.3" "@sinonjs/fake-timers" "^10.0.2" "@types/node" "*" - jest-message-util "^29.5.0" - jest-mock "^29.5.0" - jest-util "^29.5.0" + jest-message-util "^29.7.0" + jest-mock "^29.7.0" + jest-util "^29.7.0" -"@jest/globals@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.5.0.tgz#6166c0bfc374c58268677539d0c181f9c1833298" - integrity sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ== +"@jest/globals@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.7.0.tgz#8d9290f9ec47ff772607fa864ca1d5a2efae1d4d" + integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ== dependencies: - "@jest/environment" "^29.5.0" - "@jest/expect" "^29.5.0" - "@jest/types" "^29.5.0" - jest-mock "^29.5.0" + "@jest/environment" "^29.7.0" + "@jest/expect" "^29.7.0" + "@jest/types" "^29.6.3" + jest-mock "^29.7.0" -"@jest/reporters@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.5.0.tgz#985dfd91290cd78ddae4914ba7921bcbabe8ac9b" - integrity sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA== +"@jest/reporters@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.7.0.tgz#04b262ecb3b8faa83b0b3d321623972393e8f4c7" + integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.5.0" - "@jest/test-result" "^29.5.0" - "@jest/transform" "^29.5.0" - "@jest/types" "^29.5.0" - "@jridgewell/trace-mapping" "^0.3.15" + "@jest/console" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@jridgewell/trace-mapping" "^0.3.18" "@types/node" "*" chalk "^4.0.0" collect-v8-coverage "^1.0.0" @@ -787,13 +776,13 @@ glob "^7.1.3" graceful-fs "^4.2.9" istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^5.1.0" + istanbul-lib-instrument "^6.0.0" istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.5.0" - jest-util "^29.5.0" - jest-worker "^29.5.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + jest-worker "^29.7.0" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" @@ -806,51 +795,58 @@ dependencies: "@sinclair/typebox" "^0.25.16" -"@jest/source-map@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.4.3.tgz#ff8d05cbfff875d4a791ab679b4333df47951d20" - integrity sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w== +"@jest/schemas@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== + dependencies: + "@sinclair/typebox" "^0.27.8" + +"@jest/source-map@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.3.tgz#d90ba772095cf37a34a5eb9413f1b562a08554c4" + integrity sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw== dependencies: - "@jridgewell/trace-mapping" "^0.3.15" + "@jridgewell/trace-mapping" "^0.3.18" callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.5.0.tgz#7c856a6ca84f45cc36926a4e9c6b57f1973f1408" - integrity sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ== +"@jest/test-result@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.7.0.tgz#8db9a80aa1a097bb2262572686734baed9b1657c" + integrity sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA== dependencies: - "@jest/console" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/console" "^29.7.0" + "@jest/types" "^29.6.3" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz#34d7d82d3081abd523dbddc038a3ddcb9f6d3cc4" - integrity sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ== +"@jest/test-sequencer@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz#6cef977ce1d39834a3aea887a1726628a6f072ce" + integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw== dependencies: - "@jest/test-result" "^29.5.0" + "@jest/test-result" "^29.7.0" graceful-fs "^4.2.9" - jest-haste-map "^29.5.0" + jest-haste-map "^29.7.0" slash "^3.0.0" -"@jest/transform@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.5.0.tgz#cf9c872d0965f0cbd32f1458aa44a2b1988b00f9" - integrity sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw== +"@jest/transform@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.7.0.tgz#df2dd9c346c7d7768b8a06639994640c642e284c" + integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.5.0" - "@jridgewell/trace-mapping" "^0.3.15" + "@jest/types" "^29.6.3" + "@jridgewell/trace-mapping" "^0.3.18" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^2.0.0" fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^29.5.0" - jest-regex-util "^29.4.3" - jest-util "^29.5.0" + jest-haste-map "^29.7.0" + jest-regex-util "^29.6.3" + jest-util "^29.7.0" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" @@ -868,6 +864,18 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" +"@jest/types@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" + integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== + dependencies: + "@jest/schemas" "^29.6.3" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + "@jridgewell/gen-mapping@^0.1.0": version "0.1.1" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" @@ -885,27 +893,27 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/resolve-uri@3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== - "@jridgewell/resolve-uri@^3.0.3": version "3.0.8" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.8.tgz#687cc2bbf243f4e9a868ecf2262318e2658873a1" integrity sha512-YK5G9LaddzGbcucK4c8h5tWFmMPBvRZ/uyWmN1/SbBdIvqGUdWGkJ5BAaccgs6XbzVLsqbPJrBSFwKv3kT9i7w== +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + "@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": version "1.1.2" resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== -"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": +"@jridgewell/sourcemap-codec@^1.4.10": version "1.4.14" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== -"@jridgewell/sourcemap-codec@^1.4.13": +"@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": version "1.4.15" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== @@ -918,13 +926,13 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/trace-mapping@^0.3.15": - version "0.3.18" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" - integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== +"@jridgewell/trace-mapping@^0.3.18": + version "0.3.20" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f" + integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -952,31 +960,43 @@ resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== -"@rollup/plugin-commonjs@25.0.2": - version "25.0.2" - resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.2.tgz#7ed37d00a12fc7fdd3aadba5fa0de52f2372bbbb" - integrity sha512-NGTwaJxIO0klMs+WSFFtBP7b9TdTJ3K76HZkewT8/+yHzMiUGVQgaPtLQxNVYIgT5F7lxkEyVID+yS3K7bhCow== +"@pkgr/utils@^2.3.1": + version "2.4.2" + resolved "https://registry.yarnpkg.com/@pkgr/utils/-/utils-2.4.2.tgz#9e638bbe9a6a6f165580dc943f138fd3309a2cbc" + integrity sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw== + dependencies: + cross-spawn "^7.0.3" + fast-glob "^3.3.0" + is-glob "^4.0.3" + open "^9.1.0" + picocolors "^1.0.0" + tslib "^2.6.0" + +"@rollup/plugin-commonjs@25.0.7": + version "25.0.7" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.7.tgz#145cec7589ad952171aeb6a585bbeabd0fd3b4cf" + integrity sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ== dependencies: "@rollup/pluginutils" "^5.0.1" commondir "^1.0.1" estree-walker "^2.0.2" glob "^8.0.3" is-reference "1.2.1" - magic-string "^0.27.0" + magic-string "^0.30.3" -"@rollup/plugin-inject@^5.0.1": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@rollup/plugin-inject/-/plugin-inject-5.0.3.tgz#0783711efd93a9547d52971db73b2fb6140a67b1" - integrity sha512-411QlbL+z2yXpRWFXSmw/teQRMkXcAAC8aYTemc15gwJRpvEVDQwoe+N/HTFD8RFG8+88Bme9DK2V9CVm7hJdA== +"@rollup/plugin-inject@^5.0.4": + version "5.0.5" + resolved "https://registry.yarnpkg.com/@rollup/plugin-inject/-/plugin-inject-5.0.5.tgz#616f3a73fe075765f91c5bec90176608bed277a3" + integrity sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg== dependencies: "@rollup/pluginutils" "^5.0.1" estree-walker "^2.0.2" - magic-string "^0.27.0" + magic-string "^0.30.3" -"@rollup/plugin-node-resolve@15.1.0": - version "15.1.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.1.0.tgz#9ffcd8e8c457080dba89bb9fcb583a6778dc757e" - integrity sha512-xeZHCgsiZ9pzYVgAo9580eCGqwh/XCEUM9q6iQfGNocjgkufHAqC3exA+45URvhiYV8sBF9RlBai650eNs7AsA== +"@rollup/plugin-node-resolve@15.2.3": + version "15.2.3" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz#e5e0b059bd85ca57489492f295ce88c2d4b0daf9" + integrity sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ== dependencies: "@rollup/pluginutils" "^5.0.1" "@types/resolve" "1.20.2" @@ -985,10 +1005,10 @@ is-module "^1.0.0" resolve "^1.22.1" -"@rollup/plugin-typescript@11.1.1": - version "11.1.1" - resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-11.1.1.tgz#258663a7aa6b51390dd39ae6e5502f2c4b2807cb" - integrity sha512-Ioir+x5Bejv72Lx2Zbz3/qGg7tvGbxQZALCLoJaGrkNXak/19+vKgKYJYM3i/fJxvsb23I9FuFQ8CUBEfsmBRg== +"@rollup/plugin-typescript@11.1.5": + version "11.1.5" + resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-11.1.5.tgz#039c763bf943a5921f3f42be255895e75764cb91" + integrity sha512-rnMHrGBB0IUEv69Q8/JGRD/n4/n6b3nfpufUu26axhUcboUzv/twfZU8fIBbTOphRAe0v8EyxzeDpKXqGHfyDA== dependencies: "@rollup/pluginutils" "^5.0.1" resolve "^1.22.1" @@ -1002,11 +1022,76 @@ estree-walker "^2.0.2" picomatch "^2.3.1" +"@rollup/rollup-android-arm-eabi@4.5.0": + version "4.5.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.5.0.tgz#5984f98288150a2c34928de023bbd122d61ce754" + integrity sha512-OINaBGY+Wc++U0rdr7BLuFClxcoWaVW3vQYqmQq6B3bqQ/2olkaoz+K8+af/Mmka/C2yN5j+L9scBkv4BtKsDA== + +"@rollup/rollup-android-arm64@4.5.0": + version "4.5.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.5.0.tgz#8456a8c623cca4042ae4bf2ce03d875a02433191" + integrity sha512-UdMf1pOQc4ZmUA/NTmKhgJTBimbSKnhPS2zJqucqFyBRFPnPDtwA8MzrGNTjDeQbIAWfpJVAlxejw+/lQyBK/w== + +"@rollup/rollup-darwin-arm64@4.5.0": + version "4.5.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.5.0.tgz#76be6832eee21dabc28f84f9f54fbfcc66615992" + integrity sha512-L0/CA5p/idVKI+c9PcAPGorH6CwXn6+J0Ys7Gg1axCbTPgI8MeMlhA6fLM9fK+ssFhqogMHFC8HDvZuetOii7w== + +"@rollup/rollup-darwin-x64@4.5.0": + version "4.5.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.5.0.tgz#66bd162a3fea48cb1cef50cedccfbeee5685b444" + integrity sha512-QZCbVqU26mNlLn8zi/XDDquNmvcr4ON5FYAHQQsyhrHx8q+sQi/6xduoznYXwk/KmKIXG5dLfR0CvY+NAWpFYQ== + +"@rollup/rollup-linux-arm-gnueabihf@4.5.0": + version "4.5.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.5.0.tgz#a0e6b2a1d67a4ba0c2a61985175f65c05abc5f73" + integrity sha512-VpSQ+xm93AeV33QbYslgf44wc5eJGYfYitlQzAi3OObu9iwrGXEnmu5S3ilkqE3Pr/FkgOiJKV/2p0ewf4Hrtg== + +"@rollup/rollup-linux-arm64-gnu@4.5.0": + version "4.5.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.5.0.tgz#5434b844a47ba4e35602ee312de9f39b38b1777b" + integrity sha512-OrEyIfpxSsMal44JpEVx9AEcGpdBQG1ZuWISAanaQTSMeStBW+oHWwOkoqR54bw3x8heP8gBOyoJiGg+fLY8qQ== + +"@rollup/rollup-linux-arm64-musl@4.5.0": + version "4.5.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.5.0.tgz#149cab95107821fe4ae46d5f2c0658c5b0e56b9c" + integrity sha512-1H7wBbQuE6igQdxMSTjtFfD+DGAudcYWhp106z/9zBA8OQhsJRnemO4XGavdzHpGhRtRxbgmUGdO3YQgrWf2RA== + +"@rollup/rollup-linux-x64-gnu@4.5.0": + version "4.5.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.5.0.tgz#6929bf3013e9d599605953ea1bc51f35376bfff7" + integrity sha512-FVyFI13tXw5aE65sZdBpNjPVIi4Q5mARnL/39UIkxvSgRAIqCo5sCpCELk0JtXHGee2owZz5aNLbWNfBHzr71Q== + +"@rollup/rollup-linux-x64-musl@4.5.0": + version "4.5.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.5.0.tgz#a17f5decabf05b74aad684de56cf43a72a289a0b" + integrity sha512-eBPYl2sLpH/o8qbSz6vPwWlDyThnQjJfcDOGFbNjmjb44XKC1F5dQfakOsADRVrXCNzM6ZsSIPDG5dc6HHLNFg== + +"@rollup/rollup-win32-arm64-msvc@4.5.0": + version "4.5.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.5.0.tgz#f145f10c33aa187a11fd60933465be46667e6e42" + integrity sha512-xaOHIfLOZypoQ5U2I6rEaugS4IYtTgP030xzvrBf5js7p9WI9wik07iHmsKaej8Z83ZDxN5GyypfoyKV5O5TJA== + +"@rollup/rollup-win32-ia32-msvc@4.5.0": + version "4.5.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.5.0.tgz#798614b191f9ce1dc58079d1dfbc234c71df9e0e" + integrity sha512-Al6quztQUrHwcOoU2TuFblUQ5L+/AmPBXFR6dUvyo4nRj2yQRK0WIUaGMF/uwKulvRcXkpHe3k9A8Vf93VDktA== + +"@rollup/rollup-win32-x64-msvc@4.5.0": + version "4.5.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.5.0.tgz#748970e066839e33ed8c935061e370c4ab050517" + integrity sha512-8kdW+brNhI/NzJ4fxDufuJUjepzINqJKLGHuxyAtpPG9bMbn8P5mtaCcbOm0EzLJ+atg+kF9dwg8jpclkVqx5w== + "@sinclair/typebox@^0.25.16": version "0.25.24" resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.24.tgz#8c7688559979f7079aacaf31aa881c3aa410b718" integrity sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ== +"@sinclair/typebox@^0.27.8": + version "0.27.8" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" + integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== + "@sinonjs/commons@^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-2.0.0.tgz#fd4ca5b063554307e8327b4564bd56d3b73924a3" @@ -1054,15 +1139,15 @@ dependencies: "@babel/types" "^7.3.0" -"@types/base-64@1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/base-64/-/base-64-1.0.0.tgz#de9c6070ea457fbd65a1b5ebf13976b3ac0bdad0" - integrity sha512-AvCJx/HrfYHmOQRFdVvgKMplXfzTUizmh0tz9GFTpDePWgCY4uoKll84zKlaRoeiYiCr7c9ZnqSTzkl0BUVD6g== +"@types/base-64@1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@types/base-64/-/base-64-1.0.2.tgz#f7bc80d242306f20c57f076d79d1efe2d31032ca" + integrity sha512-uPgKMmM9fmn7I+Zi6YBqctOye4SlJsHKcisjHIMWpb2YKZRc36GpKyNuQ03JcT+oNXg1m7Uv4wU94EVltn8/cw== -"@types/debug@4.1.8": - version "4.1.8" - resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.8.tgz#cef723a5d0a90990313faec2d1e22aee5eecb317" - integrity sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ== +"@types/debug@4.1.12": + version "4.1.12" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917" + integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== dependencies: "@types/ms" "*" @@ -1102,18 +1187,18 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@29.5.2": - version "29.5.2" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.2.tgz#86b4afc86e3a8f3005b297ed8a72494f89e6395b" - integrity sha512-mSoZVJF5YzGVCk+FsDxzDuH7s+SCkzrgKZzf0Z0T2WudhBUPoF6ktoTPC4R0ZoCPCV5xUvuU6ias5NvxcBcMMg== +"@types/jest@29.5.9": + version "29.5.9" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.9.tgz#eb997ab4a201b7504662ac9ebb84a748e17f95ab" + integrity sha512-zJeWhqBwVoPm83sP8h1/SVntwWTu5lZbKQGCvBjxQOyEWnKnsaomt2y7SlV4KfwlrHAHHAn00Sh4IAWaIsGOgQ== dependencies: expect "^29.0.0" pretty-format "^29.0.0" -"@types/json-schema@^7.0.9": - version "7.0.9" - resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" - integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== +"@types/json-schema@^7.0.12": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== "@types/json5@^0.0.29": version "0.0.29" @@ -1130,25 +1215,22 @@ resolved "https://registry.npmjs.org/@types/node/-/node-16.7.1.tgz#c6b9198178da504dfca1fd0be9b2e1002f1586f0" integrity sha512-ncRdc45SoYJ2H4eWU9ReDfp3vtFqDYhjOsKlFFUDEn8V1Bgr2RjYal8YT5byfadWIRluhPFU6JiDOl0H6Sl87A== -"@types/node@20.3.1": - version "20.3.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.3.1.tgz#e8a83f1aa8b649377bb1fb5d7bac5cb90e784dfe" - integrity sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg== - -"@types/prettier@^2.1.5": - version "2.3.2" - resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.3.2.tgz#fc8c2825e4ed2142473b4a81064e6e081463d1b3" - integrity sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog== +"@types/node@20.9.3": + version "20.9.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.9.3.tgz#e089e1634436f676ff299596c9531bd2b59fffc6" + integrity sha512-nk5wXLAXGBKfrhLB0cyHGbSqopS+nz0BUgZkUQqSHSSgdee0kssp1IAqlQOu333bW+gMNs2QREx7iynm19Abxw== + dependencies: + undici-types "~5.26.4" "@types/resolve@1.20.2": version "1.20.2" resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.20.2.tgz#97d26e00cd4a0423b4af620abecf3e6f442b7975" integrity sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q== -"@types/semver@^7.3.12": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" - integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== +"@types/semver@^7.5.0": + version "7.5.6" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.6.tgz#c65b2bfce1bec346582c07724e3f8c1017a20339" + integrity sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A== "@types/stack-utils@^2.0.0": version "2.0.1" @@ -1167,89 +1249,95 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@5.60.0": - version "5.60.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.60.0.tgz#2f4bea6a3718bed2ba52905358d0f45cd3620d31" - integrity sha512-78B+anHLF1TI8Jn/cD0Q00TBYdMgjdOn980JfAVa9yw5sop8nyTfVOQAv6LWywkOGLclDBtv5z3oxN4w7jxyNg== +"@typescript-eslint/eslint-plugin@6.12.0": + version "6.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.12.0.tgz#2a647d278bb48bf397fef07ba0507612ff9dd812" + integrity sha512-XOpZ3IyJUIV1b15M7HVOpgQxPPF7lGXgsfcEIu3yDxFPaf/xZKt7s9QO/pbk7vpWQyVulpJbu4E5LwpZiQo4kA== dependencies: - "@eslint-community/regexpp" "^4.4.0" - "@typescript-eslint/scope-manager" "5.60.0" - "@typescript-eslint/type-utils" "5.60.0" - "@typescript-eslint/utils" "5.60.0" + "@eslint-community/regexpp" "^4.5.1" + "@typescript-eslint/scope-manager" "6.12.0" + "@typescript-eslint/type-utils" "6.12.0" + "@typescript-eslint/utils" "6.12.0" + "@typescript-eslint/visitor-keys" "6.12.0" debug "^4.3.4" - grapheme-splitter "^1.0.4" - ignore "^5.2.0" - natural-compare-lite "^1.4.0" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/parser@5.60.0": - version "5.60.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.60.0.tgz#08f4daf5fc6548784513524f4f2f359cebb4068a" - integrity sha512-jBONcBsDJ9UoTWrARkRRCgDz6wUggmH5RpQVlt7BimSwaTkTjwypGzKORXbR4/2Hqjk9hgwlon2rVQAjWNpkyQ== - dependencies: - "@typescript-eslint/scope-manager" "5.60.0" - "@typescript-eslint/types" "5.60.0" - "@typescript-eslint/typescript-estree" "5.60.0" + graphemer "^1.4.0" + ignore "^5.2.4" + natural-compare "^1.4.0" + semver "^7.5.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/parser@6.12.0": + version "6.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.12.0.tgz#9fb21ed7d88065a4a2ee21eb80b8578debb8217c" + integrity sha512-s8/jNFPKPNRmXEnNXfuo1gemBdVmpQsK1pcu+QIvuNJuhFzGrpD7WjOcvDc/+uEdfzSYpNu7U/+MmbScjoQ6vg== + dependencies: + "@typescript-eslint/scope-manager" "6.12.0" + "@typescript-eslint/types" "6.12.0" + "@typescript-eslint/typescript-estree" "6.12.0" + "@typescript-eslint/visitor-keys" "6.12.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.60.0": - version "5.60.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.60.0.tgz#ae511967b4bd84f1d5e179bb2c82857334941c1c" - integrity sha512-hakuzcxPwXi2ihf9WQu1BbRj1e/Pd8ZZwVTG9kfbxAMZstKz8/9OoexIwnmLzShtsdap5U/CoQGRCWlSuPbYxQ== +"@typescript-eslint/scope-manager@6.12.0": + version "6.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.12.0.tgz#5833a16dbe19cfbad639d4d33bcca5e755c7044b" + integrity sha512-5gUvjg+XdSj8pcetdL9eXJzQNTl3RD7LgUiYTl8Aabdi8hFkaGSYnaS6BLc0BGNaDH+tVzVwmKtWvu0jLgWVbw== dependencies: - "@typescript-eslint/types" "5.60.0" - "@typescript-eslint/visitor-keys" "5.60.0" + "@typescript-eslint/types" "6.12.0" + "@typescript-eslint/visitor-keys" "6.12.0" -"@typescript-eslint/type-utils@5.60.0": - version "5.60.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.60.0.tgz#69b09087eb12d7513d5b07747e7d47f5533aa228" - integrity sha512-X7NsRQddORMYRFH7FWo6sA9Y/zbJ8s1x1RIAtnlj6YprbToTiQnM6vxcMu7iYhdunmoC0rUWlca13D5DVHkK2g== +"@typescript-eslint/type-utils@6.12.0": + version "6.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.12.0.tgz#968f7c95162808d69950ab5dff710ad730e58287" + integrity sha512-WWmRXxhm1X8Wlquj+MhsAG4dU/Blvf1xDgGaYCzfvStP2NwPQh6KBvCDbiOEvaE0filhranjIlK/2fSTVwtBng== dependencies: - "@typescript-eslint/typescript-estree" "5.60.0" - "@typescript-eslint/utils" "5.60.0" + "@typescript-eslint/typescript-estree" "6.12.0" + "@typescript-eslint/utils" "6.12.0" debug "^4.3.4" - tsutils "^3.21.0" + ts-api-utils "^1.0.1" -"@typescript-eslint/types@5.60.0": - version "5.60.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.60.0.tgz#3179962b28b4790de70e2344465ec97582ce2558" - integrity sha512-ascOuoCpNZBccFVNJRSC6rPq4EmJ2NkuoKnd6LDNyAQmdDnziAtxbCGWCbefG1CNzmDvd05zO36AmB7H8RzKPA== +"@typescript-eslint/types@6.12.0": + version "6.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.12.0.tgz#ffc5297bcfe77003c8b7b545b51c2505748314ac" + integrity sha512-MA16p/+WxM5JG/F3RTpRIcuOghWO30//VEOvzubM8zuOOBYXsP+IfjoCXXiIfy2Ta8FRh9+IO9QLlaFQUU+10Q== -"@typescript-eslint/typescript-estree@5.60.0": - version "5.60.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.60.0.tgz#4ddf1a81d32a850de66642d9b3ad1e3254fb1600" - integrity sha512-R43thAuwarC99SnvrBmh26tc7F6sPa2B3evkXp/8q954kYL6Ro56AwASYWtEEi+4j09GbiNAHqYwNNZuNlARGQ== +"@typescript-eslint/typescript-estree@6.12.0": + version "6.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.12.0.tgz#764ccc32598549e5b48ec99e3b85f89b1385310c" + integrity sha512-vw9E2P9+3UUWzhgjyyVczLWxZ3GuQNT7QpnIY3o5OMeLO/c8oHljGc8ZpryBMIyympiAAaKgw9e5Hl9dCWFOYw== dependencies: - "@typescript-eslint/types" "5.60.0" - "@typescript-eslint/visitor-keys" "5.60.0" + "@typescript-eslint/types" "6.12.0" + "@typescript-eslint/visitor-keys" "6.12.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" + semver "^7.5.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/utils@6.12.0": + version "6.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.12.0.tgz#c6ce8c06fe9b0212620e5674a2036f6f8f611754" + integrity sha512-LywPm8h3tGEbgfyjYnu3dauZ0U7R60m+miXgKcZS8c7QALO9uWJdvNoP+duKTk2XMWc7/Q3d/QiCuLN9X6SWyQ== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@types/json-schema" "^7.0.12" + "@types/semver" "^7.5.0" + "@typescript-eslint/scope-manager" "6.12.0" + "@typescript-eslint/types" "6.12.0" + "@typescript-eslint/typescript-estree" "6.12.0" + semver "^7.5.4" + +"@typescript-eslint/visitor-keys@6.12.0": + version "6.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.12.0.tgz#5877950de42a0f3344261b7a1eee15417306d7e9" + integrity sha512-rg3BizTZHF1k3ipn8gfrzDXXSFKyOEB5zxYXInQ6z0hUvmQlhaZQzK+YmHmNViMA9HzW5Q9+bPPt90bU6GQwyw== + dependencies: + "@typescript-eslint/types" "6.12.0" + eslint-visitor-keys "^3.4.1" -"@typescript-eslint/utils@5.60.0": - version "5.60.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.60.0.tgz#4667c5aece82f9d4f24a667602f0f300864b554c" - integrity sha512-ba51uMqDtfLQ5+xHtwlO84vkdjrqNzOnqrnwbMHMRY8Tqeme8C2Q8Fc7LajfGR+e3/4LoYiWXUM6BpIIbHJ4hQ== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@types/json-schema" "^7.0.9" - "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.60.0" - "@typescript-eslint/types" "5.60.0" - "@typescript-eslint/typescript-estree" "5.60.0" - eslint-scope "^5.1.1" - semver "^7.3.7" - -"@typescript-eslint/visitor-keys@5.60.0": - version "5.60.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.60.0.tgz#b48b29da3f5f31dd1656281727004589d2722a66" - integrity sha512-wm9Uz71SbCyhUKgcaPRauBdTegUyY/ZWl8gLwD/i/ybJqscrrdVSFImpvUz16BLPChIeKBK5Fa9s6KDQjsjyWw== - dependencies: - "@typescript-eslint/types" "5.60.0" - eslint-visitor-keys "^3.3.0" +"@ungap/structured-clone@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== abstract-leveldown@~0.12.0, abstract-leveldown@~0.12.1: version "0.12.4" @@ -1263,12 +1351,12 @@ acorn-jsx@^5.3.2: resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^8.8.0: - version "8.8.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" - integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== +acorn@^8.9.0: + version "8.11.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" + integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== -ajv@^6.10.0, ajv@^6.12.4: +ajv@^6.12.4: version "6.12.6" resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -1352,15 +1440,15 @@ array-buffer-byte-length@^1.0.0: call-bind "^1.0.2" is-array-buffer "^3.0.1" -array-includes@^3.1.6: - version "3.1.6" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" - integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== +array-includes@^3.1.7: + version "3.1.7" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" + integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - get-intrinsic "^1.1.3" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" is-string "^1.0.7" array-union@^2.1.0: @@ -1368,26 +1456,50 @@ array-union@^2.1.0: resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array.prototype.flat@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" - integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== +array.prototype.findlastindex@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz#b37598438f97b579166940814e2c0493a4f50207" + integrity sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" + get-intrinsic "^1.2.1" -array.prototype.flatmap@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" - integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== +array.prototype.flat@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" + integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" +array.prototype.flatmap@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" + integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + +arraybuffer.prototype.slice@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" + integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== + dependencies: + array-buffer-byte-length "^1.0.0" + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" + is-array-buffer "^3.0.2" + is-shared-array-buffer "^1.0.2" + asn1.js@^5.2.0: version "5.4.1" resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" @@ -1403,15 +1515,15 @@ available-typed-arrays@^1.0.5: resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== -babel-jest@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.5.0.tgz#3fe3ddb109198e78b1c88f9ebdecd5e4fc2f50a5" - integrity sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q== +babel-jest@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5" + integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg== dependencies: - "@jest/transform" "^29.5.0" + "@jest/transform" "^29.7.0" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.5.0" + babel-preset-jest "^29.6.3" chalk "^4.0.0" graceful-fs "^4.2.9" slash "^3.0.0" @@ -1427,10 +1539,10 @@ babel-plugin-istanbul@^6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz#a97db437936f441ec196990c9738d4b88538618a" - integrity sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w== +babel-plugin-jest-hoist@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz#aadbe943464182a8922c3c927c3067ff40d24626" + integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -1455,12 +1567,12 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz#57bc8cc88097af7ff6a5ab59d1cd29d52a5916e2" - integrity sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg== +babel-preset-jest@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c" + integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA== dependencies: - babel-plugin-jest-hoist "^29.5.0" + babel-plugin-jest-hoist "^29.6.3" babel-preset-current-node-syntax "^1.0.0" balanced-match@^1.0.0: @@ -1473,6 +1585,11 @@ base-64@1.0.0: resolved "https://registry.npmjs.org/base-64/-/base-64-1.0.0.tgz#09d0f2084e32a3fd08c2475b973788eee6ae8f4a" integrity sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg== +big-integer@^1.6.44: + version "1.6.51" + resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" + integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== + bl@~0.8.1: version "0.8.2" resolved "https://registry.npmjs.org/bl/-/bl-0.8.2.tgz#c9b6bca08d1bc2ea00fc8afb4f1a5fd1e1c66e4e" @@ -1490,6 +1607,13 @@ bn.js@^5.0.0, bn.js@^5.1.1: resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== +bplist-parser@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e" + integrity sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw== + dependencies: + big-integer "^1.6.44" + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -1635,6 +1759,13 @@ builtin-modules@^3.3.0: resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== +bundle-name@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-3.0.0.tgz#ba59bcc9ac785fb67ccdbf104a2bf60c099f0e1a" + integrity sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw== + dependencies: + run-applescript "^5.0.0" + call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" @@ -1643,6 +1774,15 @@ call-bind@^1.0.0, call-bind@^1.0.2: function-bind "^1.1.1" get-intrinsic "^1.0.2" +call-bind@^1.0.4, call-bind@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" + integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== + dependencies: + function-bind "^1.1.2" + get-intrinsic "^1.2.1" + set-function-length "^1.1.1" + callsites@^3.0.0: version "3.1.0" resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -1668,7 +1808,7 @@ caniuse-lite@^1.0.30001359: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001362.tgz#4a2a7136ca98313bee9b42f4f9a25bc2802e579d" integrity sha512-PFykHuC7BQTzCGQFaV6wD8IDRM3HpI83BXr99nNJhoOyDufgSuKlt0QVlWYt5ZJtEYFeuNVF5QY3kJcu8hVFjQ== -chalk@^2.0.0: +chalk@^2.0.0, chalk@^2.4.2: version "2.4.2" resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -1847,6 +1987,19 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: safe-buffer "^5.0.1" sha.js "^2.4.8" +create-jest@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320" + integrity sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q== + dependencies: + "@jest/types" "^29.6.3" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.9" + jest-config "^29.7.0" + jest-util "^29.7.0" + prompts "^2.0.1" + cross-env@7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" @@ -1854,12 +2007,12 @@ cross-env@7.0.3: dependencies: cross-spawn "^7.0.1" -cross-fetch@3.1.6: - version "3.1.6" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.6.tgz#bae05aa31a4da760969756318feeee6e70f15d6c" - integrity sha512-riRvo06crlE8HiqOwIpQhxwdOk4fOeR7FVM/wXoxchFEqMNUjvbs3bfo4OTgMEMHzppd4DxFBDbyySj8Cv781g== +cross-fetch@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-4.0.0.tgz#f037aef1580bb3a1a35164ea2a848ba81b445983" + integrity sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g== dependencies: - node-fetch "^2.6.11" + node-fetch "^2.6.12" cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" @@ -1908,10 +2061,10 @@ debug@^4.1.0, debug@^4.1.1, debug@^4.3.2: dependencies: ms "2.1.2" -dedent@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= +dedent@^1.0.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.1.tgz#4f3fc94c8b711e9bb2800d185cd6ad20f2a90aff" + integrity sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg== deep-is@^0.1.3: version "0.1.3" @@ -1923,6 +2076,24 @@ deepmerge@^4.2.2: resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== +default-browser-id@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-3.0.0.tgz#bee7bbbef1f4e75d31f98f4d3f1556a14cea790c" + integrity sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA== + dependencies: + bplist-parser "^0.2.0" + untildify "^4.0.0" + +default-browser@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-4.0.0.tgz#53c9894f8810bf86696de117a6ce9085a3cbc7da" + integrity sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA== + dependencies: + bundle-name "^3.0.0" + default-browser-id "^3.0.0" + execa "^7.1.1" + titleize "^3.0.0" + deferred-leveldown@~0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-0.2.0.tgz#2cef1f111e1c57870d8bbb8af2650e587cd2f5b4" @@ -1930,6 +2101,20 @@ deferred-leveldown@~0.2.0: dependencies: abstract-leveldown "~0.12.1" +define-data-property@^1.0.1, define-data-property@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" + integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== + dependencies: + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + +define-lazy-prop@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" + integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== + define-properties@^1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" @@ -1973,6 +2158,11 @@ diff-sequences@^29.4.3: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.4.3.tgz#9314bc1fabe09267ffeca9cbafc457d8499a13f2" integrity sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA== +diff-sequences@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" + integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== + diffie-hellman@^5.0.0: version "5.0.3" resolved "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" @@ -2065,7 +2255,7 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.19.0, es-abstract@^1.19.1: +es-abstract@^1.19.1: version "1.19.1" resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== @@ -2091,25 +2281,26 @@ es-abstract@^1.19.0, es-abstract@^1.19.1: string.prototype.trimstart "^1.0.4" unbox-primitive "^1.0.1" -es-abstract@^1.20.4: - version "1.21.2" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff" - integrity sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg== +es-abstract@^1.22.1: + version "1.22.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" + integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== dependencies: array-buffer-byte-length "^1.0.0" + arraybuffer.prototype.slice "^1.0.2" available-typed-arrays "^1.0.5" - call-bind "^1.0.2" + call-bind "^1.0.5" es-set-tostringtag "^2.0.1" es-to-primitive "^1.2.1" - function.prototype.name "^1.1.5" - get-intrinsic "^1.2.0" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.2" get-symbol-description "^1.0.0" globalthis "^1.0.3" gopd "^1.0.1" - has "^1.0.3" has-property-descriptors "^1.0.0" has-proto "^1.0.1" has-symbols "^1.0.3" + hasown "^2.0.0" internal-slot "^1.0.5" is-array-buffer "^3.0.2" is-callable "^1.2.7" @@ -2117,19 +2308,23 @@ es-abstract@^1.20.4: is-regex "^1.1.4" is-shared-array-buffer "^1.0.2" is-string "^1.0.7" - is-typed-array "^1.1.10" + is-typed-array "^1.1.12" is-weakref "^1.0.2" - object-inspect "^1.12.3" + object-inspect "^1.13.1" object-keys "^1.1.1" object.assign "^4.1.4" - regexp.prototype.flags "^1.4.3" + regexp.prototype.flags "^1.5.1" + safe-array-concat "^1.0.1" safe-regex-test "^1.0.0" - string.prototype.trim "^1.2.7" - string.prototype.trimend "^1.0.6" - string.prototype.trimstart "^1.0.6" + string.prototype.trim "^1.2.8" + string.prototype.trimend "^1.0.7" + string.prototype.trimstart "^1.0.7" + typed-array-buffer "^1.0.0" + typed-array-byte-length "^1.0.0" + typed-array-byte-offset "^1.0.0" typed-array-length "^1.0.4" unbox-primitive "^1.0.2" - which-typed-array "^1.1.9" + which-typed-array "^1.1.13" es-set-tostringtag@^2.0.1: version "2.0.1" @@ -2186,10 +2381,10 @@ eslint-config-airbnb-base@^15.0.0: object.entries "^1.1.5" semver "^6.3.0" -eslint-config-airbnb-typescript@17.0.0: - version "17.0.0" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-17.0.0.tgz#360dbcf810b26bbcf2ff716198465775f1c49a07" - integrity sha512-elNiuzD0kPAPTXjFWg+lE24nMdHMtuxgYoD30OyMD6yrW1AhFZPAg27VX7d3tzOErw+dgJTNWfRSDqEcXb4V0g== +eslint-config-airbnb-typescript@17.1.0: + version "17.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-17.1.0.tgz#fda960eee4a510f092a9a1c139035ac588937ddc" + integrity sha512-GPxI5URre6dDpJ0CtcthSZVBAfI+Uw7un5OYNVxP2EYi3H81Jw701yFP7AU+/vCE7xBtFmjge7kfhhk4+RAiig== dependencies: eslint-config-airbnb-base "^15.0.0" @@ -2202,67 +2397,62 @@ eslint-config-airbnb@19.0.4: object.assign "^4.1.2" object.entries "^1.1.5" -eslint-config-prettier@8.8.0: - version "8.8.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz#bfda738d412adc917fd7b038857110efe98c9348" - integrity sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA== +eslint-config-prettier@9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz#eb25485946dd0c66cd216a46232dc05451518d1f" + integrity sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw== -eslint-import-resolver-node@^0.3.7: - version "0.3.7" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" - integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA== +eslint-import-resolver-node@^0.3.9: + version "0.3.9" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" + integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== dependencies: debug "^3.2.7" - is-core-module "^2.11.0" - resolve "^1.22.1" + is-core-module "^2.13.0" + resolve "^1.22.4" -eslint-module-utils@2.8.0, eslint-module-utils@^2.7.4: +eslint-module-utils@2.8.0, eslint-module-utils@^2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== dependencies: debug "^3.2.7" -eslint-plugin-import@2.27.5: - version "2.27.5" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65" - integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow== +eslint-plugin-import@2.29.0: + version "2.29.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz#8133232e4329ee344f2f612885ac3073b0b7e155" + integrity sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg== dependencies: - array-includes "^3.1.6" - array.prototype.flat "^1.3.1" - array.prototype.flatmap "^1.3.1" + array-includes "^3.1.7" + array.prototype.findlastindex "^1.2.3" + array.prototype.flat "^1.3.2" + array.prototype.flatmap "^1.3.2" debug "^3.2.7" doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.7" - eslint-module-utils "^2.7.4" - has "^1.0.3" - is-core-module "^2.11.0" + eslint-import-resolver-node "^0.3.9" + eslint-module-utils "^2.8.0" + hasown "^2.0.0" + is-core-module "^2.13.1" is-glob "^4.0.3" minimatch "^3.1.2" - object.values "^1.1.6" - resolve "^1.22.1" - semver "^6.3.0" - tsconfig-paths "^3.14.1" + object.fromentries "^2.0.7" + object.groupby "^1.0.1" + object.values "^1.1.7" + semver "^6.3.1" + tsconfig-paths "^3.14.2" -eslint-plugin-prettier@4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" - integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== +eslint-plugin-prettier@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.1.tgz#a3b399f04378f79f066379f544e42d6b73f11515" + integrity sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg== dependencies: prettier-linter-helpers "^1.0.0" + synckit "^0.8.5" -eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-scope@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" - integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw== +eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" @@ -2277,27 +2467,33 @@ eslint-visitor-keys@^3.4.1: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== -eslint@8.43.0: - version "8.43.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.43.0.tgz#3e8c6066a57097adfd9d390b8fc93075f257a094" - integrity sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q== +eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +eslint@8.54.0: + version "8.54.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.54.0.tgz#588e0dd4388af91a2e8fa37ea64924074c783537" + integrity sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA== dependencies: "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.4.0" - "@eslint/eslintrc" "^2.0.3" - "@eslint/js" "8.43.0" - "@humanwhocodes/config-array" "^0.11.10" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.3" + "@eslint/js" "8.54.0" + "@humanwhocodes/config-array" "^0.11.13" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" - ajv "^6.10.0" + "@ungap/structured-clone" "^1.2.0" + ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" debug "^4.3.2" doctrine "^3.0.0" escape-string-regexp "^4.0.0" - eslint-scope "^7.2.0" - eslint-visitor-keys "^3.4.1" - espree "^9.5.2" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.3" + espree "^9.6.1" esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" @@ -2307,7 +2503,6 @@ eslint@8.43.0: globals "^13.19.0" graphemer "^1.4.0" ignore "^5.2.0" - import-fresh "^3.0.0" imurmurhash "^0.1.4" is-glob "^4.0.0" is-path-inside "^3.0.3" @@ -2317,17 +2512,16 @@ eslint@8.43.0: lodash.merge "^4.6.2" minimatch "^3.1.2" natural-compare "^1.4.0" - optionator "^0.9.1" + optionator "^0.9.3" strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" text-table "^0.2.0" -espree@^9.5.2: - version "9.5.2" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.2.tgz#e994e7dc33a082a7a82dceaf12883a829353215b" - integrity sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw== +espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== dependencies: - acorn "^8.8.0" + acorn "^8.9.0" acorn-jsx "^5.3.2" eslint-visitor-keys "^3.4.1" @@ -2350,11 +2544,6 @@ esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - estraverse@^5.1.0, estraverse@^5.2.0: version "5.2.0" resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" @@ -2393,12 +2582,27 @@ execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" +execa@^7.1.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-7.2.0.tgz#657e75ba984f42a70f38928cedc87d6f2d4fe4e9" + integrity sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.1" + human-signals "^4.3.0" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^3.0.7" + strip-final-newline "^3.0.0" + exit@^0.1.2: version "0.1.2" resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= -expect@^29.0.0, expect@^29.5.0: +expect@^29.0.0: version "29.5.0" resolved "https://registry.yarnpkg.com/expect/-/expect-29.5.0.tgz#68c0509156cb2a0adb8865d413b137eeaae682f7" integrity sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg== @@ -2409,6 +2613,17 @@ expect@^29.0.0, expect@^29.5.0: jest-message-util "^29.5.0" jest-util "^29.5.0" +expect@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" + integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== + dependencies: + "@jest/expect-utils" "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -2441,6 +2656,17 @@ fast-glob@^3.2.9: merge2 "^1.3.0" micromatch "^4.0.4" +fast-glob@^3.3.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" @@ -2543,17 +2769,22 @@ function-bind@^1.1.1: resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -function.prototype.name@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" - integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +function.prototype.name@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - functions-have-names "^1.2.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" -functions-have-names@^1.2.2, functions-have-names@^1.2.3: +functions-have-names@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== @@ -2589,16 +2820,31 @@ get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.0.tgz#7ad1dc0535f3a2904bba075772763e5051f6d05f" integrity sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q== dependencies: - function-bind "^1.1.1" - has "^1.0.3" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.3" + +get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" + integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== + dependencies: + function-bind "^1.1.2" + has-proto "^1.0.1" has-symbols "^1.0.3" + hasown "^2.0.0" get-package-type@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== -get-stream@^6.0.0: +get-stdin@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-9.0.0.tgz#3983ff82e03d56f1b2ea0d3e60325f39d703a575" + integrity sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA== + +get-stream@^6.0.0, get-stream@^6.0.1: version "6.0.1" resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== @@ -2630,16 +2876,16 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" -glob@^10.2.5: - version "10.2.7" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.2.7.tgz#9dd2828cd5bc7bd861e7738d91e7113dda41d7d8" - integrity sha512-jTKehsravOJo8IJxUGfZILnkvVJM/MOfHRs8QcXolVef2zNI9Tqyy5+SeuOAZd3upViEZQLyFpQhYiHLrMUNmA== +glob@^10.3.7: + version "10.3.10" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" + integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== dependencies: foreground-child "^3.1.0" - jackspeak "^2.0.3" + jackspeak "^2.3.5" minimatch "^9.0.1" - minipass "^5.0.0 || ^6.0.2" - path-scurry "^1.7.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-scurry "^1.10.1" glob@^7.0.5: version "7.2.0" @@ -2730,11 +2976,6 @@ graceful-fs@^4.2.9: resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== -grapheme-splitter@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" - integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== - graphemer@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" @@ -2813,6 +3054,13 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" +hasown@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" + integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== + dependencies: + function-bind "^1.1.2" + hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" @@ -2832,6 +3080,11 @@ human-signals@^2.1.0: resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== +human-signals@^4.3.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" + integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== + idb-wrapper@^1.5.0: version "1.7.2" resolved "https://registry.npmjs.org/idb-wrapper/-/idb-wrapper-1.7.2.tgz#8251afd5e77fe95568b1c16152eb44b396767ea2" @@ -2842,7 +3095,12 @@ ignore@^5.2.0: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== -import-fresh@^3.0.0, import-fresh@^3.2.1: +ignore@^5.2.4: + version "5.3.0" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" + integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== + +import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -2952,6 +3210,13 @@ is-core-module@^2.11.0: dependencies: has "^1.0.3" +is-core-module@^2.13.0, is-core-module@^2.13.1: + version "2.13.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== + dependencies: + hasown "^2.0.0" + is-core-module@^2.2.0: version "2.6.0" resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz#d7553b2526fe59b92ba3e40c8df757ec8a709e19" @@ -2966,6 +3231,16 @@ is-date-object@^1.0.1: dependencies: has-tostringtag "^1.0.0" +is-docker@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-docker@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" + integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== + is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -2995,6 +3270,13 @@ is-glob@^4.0.3: dependencies: is-extglob "^2.1.1" +is-inside-container@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" + integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== + dependencies: + is-docker "^3.0.0" + is-module@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" @@ -3069,6 +3351,11 @@ is-stream@^2.0.0: resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== +is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" @@ -3094,6 +3381,13 @@ is-typed-array@^1.1.10, is-typed-array@^1.1.9: gopd "^1.0.1" has-tostringtag "^1.0.0" +is-typed-array@^1.1.12: + version "1.1.12" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" + integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== + dependencies: + which-typed-array "^1.1.11" + is-weakref@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz#842dba4ec17fa9ac9850df2d6efbc1737274f2a2" @@ -3108,6 +3402,13 @@ is-weakref@^1.0.2: dependencies: call-bind "^1.0.2" +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + is@~0.2.6: version "0.2.7" resolved "https://registry.npmjs.org/is/-/is-0.2.7.tgz#3b34a2c48f359972f35042849193ae7264b63562" @@ -3118,6 +3419,11 @@ isarray@0.0.1: resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + isarray@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -3143,7 +3449,7 @@ istanbul-lib-coverage@^3.2.0: resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== -istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: +istanbul-lib-instrument@^5.0.4: version "5.1.0" resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz#7b49198b657b27a730b8e9cb601f1e1bff24c59a" integrity sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q== @@ -3154,6 +3460,17 @@ istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: istanbul-lib-coverage "^3.2.0" semver "^6.3.0" +istanbul-lib-instrument@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz#71e87707e8041428732518c6fb5211761753fbdf" + integrity sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA== + dependencies: + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.2.0" + semver "^7.5.4" + istanbul-lib-report@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" @@ -3180,92 +3497,92 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jackspeak@^2.0.3: - version "2.2.0" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.2.0.tgz#497cbaedc902ec3f31d5d61be804d2364ff9ddad" - integrity sha512-r5XBrqIJfwRIjRt/Xr5fv9Wh09qyhHfKnYddDlpM+ibRR20qrYActpCAgU6U+d53EOEjzkvxPMVHSlgR7leXrQ== +jackspeak@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" + integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== dependencies: "@isaacs/cliui" "^8.0.2" optionalDependencies: "@pkgjs/parseargs" "^0.11.0" -jest-changed-files@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.5.0.tgz#e88786dca8bf2aa899ec4af7644e16d9dcf9b23e" - integrity sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag== +jest-changed-files@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a" + integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w== dependencies: execa "^5.0.0" + jest-util "^29.7.0" p-limit "^3.1.0" -jest-circus@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.5.0.tgz#b5926989449e75bff0d59944bae083c9d7fb7317" - integrity sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA== +jest-circus@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.7.0.tgz#b6817a45fcc835d8b16d5962d0c026473ee3668a" + integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw== dependencies: - "@jest/environment" "^29.5.0" - "@jest/expect" "^29.5.0" - "@jest/test-result" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/environment" "^29.7.0" + "@jest/expect" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" - dedent "^0.7.0" + dedent "^1.0.0" is-generator-fn "^2.0.0" - jest-each "^29.5.0" - jest-matcher-utils "^29.5.0" - jest-message-util "^29.5.0" - jest-runtime "^29.5.0" - jest-snapshot "^29.5.0" - jest-util "^29.5.0" + jest-each "^29.7.0" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-runtime "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" p-limit "^3.1.0" - pretty-format "^29.5.0" + pretty-format "^29.7.0" pure-rand "^6.0.0" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.5.0.tgz#b34c20a6d35968f3ee47a7437ff8e53e086b4a67" - integrity sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw== +jest-cli@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.7.0.tgz#5592c940798e0cae677eec169264f2d839a37995" + integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg== dependencies: - "@jest/core" "^29.5.0" - "@jest/test-result" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/core" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" chalk "^4.0.0" + create-jest "^29.7.0" exit "^0.1.2" - graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.5.0" - jest-util "^29.5.0" - jest-validate "^29.5.0" - prompts "^2.0.1" + jest-config "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" yargs "^17.3.1" -jest-config@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.5.0.tgz#3cc972faec8c8aaea9ae158c694541b79f3748da" - integrity sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA== +jest-config@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.7.0.tgz#bcbda8806dbcc01b1e316a46bb74085a84b0245f" + integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.5.0" - "@jest/types" "^29.5.0" - babel-jest "^29.5.0" + "@jest/test-sequencer" "^29.7.0" + "@jest/types" "^29.6.3" + babel-jest "^29.7.0" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^29.5.0" - jest-environment-node "^29.5.0" - jest-get-type "^29.4.3" - jest-regex-util "^29.4.3" - jest-resolve "^29.5.0" - jest-runner "^29.5.0" - jest-util "^29.5.0" - jest-validate "^29.5.0" + jest-circus "^29.7.0" + jest-environment-node "^29.7.0" + jest-get-type "^29.6.3" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-runner "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.5.0" + pretty-format "^29.7.0" slash "^3.0.0" strip-json-comments "^3.1.1" @@ -3279,67 +3596,82 @@ jest-diff@^29.5.0: jest-get-type "^29.4.3" pretty-format "^29.5.0" -jest-docblock@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.4.3.tgz#90505aa89514a1c7dceeac1123df79e414636ea8" - integrity sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg== +jest-diff@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a" + integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== dependencies: - detect-newline "^3.0.0" + chalk "^4.0.0" + diff-sequences "^29.6.3" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" -jest-each@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.5.0.tgz#fc6e7014f83eac68e22b7195598de8554c2e5c06" - integrity sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA== +jest-docblock@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.7.0.tgz#8fddb6adc3cdc955c93e2a87f61cfd350d5d119a" + integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g== dependencies: - "@jest/types" "^29.5.0" - chalk "^4.0.0" - jest-get-type "^29.4.3" - jest-util "^29.5.0" - pretty-format "^29.5.0" + detect-newline "^3.0.0" -jest-environment-node@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.5.0.tgz#f17219d0f0cc0e68e0727c58b792c040e332c967" - integrity sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw== +jest-each@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.7.0.tgz#162a9b3f2328bdd991beaabffbb74745e56577d1" + integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ== dependencies: - "@jest/environment" "^29.5.0" - "@jest/fake-timers" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.3" + chalk "^4.0.0" + jest-get-type "^29.6.3" + jest-util "^29.7.0" + pretty-format "^29.7.0" + +jest-environment-node@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.7.0.tgz#0b93e111dda8ec120bc8300e6d1fb9576e164376" + integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" - jest-mock "^29.5.0" - jest-util "^29.5.0" + jest-mock "^29.7.0" + jest-util "^29.7.0" jest-get-type@^29.4.3: version "29.4.3" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.3.tgz#1ab7a5207c995161100b5187159ca82dd48b3dd5" integrity sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg== -jest-haste-map@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.5.0.tgz#69bd67dc9012d6e2723f20a945099e972b2e94de" - integrity sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA== +jest-get-type@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" + integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== + +jest-haste-map@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz#3c2396524482f5a0506376e6c858c3bbcc17b104" + integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA== dependencies: - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.3" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" - jest-regex-util "^29.4.3" - jest-util "^29.5.0" - jest-worker "^29.5.0" + jest-regex-util "^29.6.3" + jest-util "^29.7.0" + jest-worker "^29.7.0" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz#cf4bdea9615c72bac4a3a7ba7e7930f9c0610c8c" - integrity sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow== +jest-leak-detector@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz#5b7ec0dadfdfec0ca383dc9aa016d36b5ea4c728" + integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw== dependencies: - jest-get-type "^29.4.3" - pretty-format "^29.5.0" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" jest-matcher-utils@^29.5.0: version "29.5.0" @@ -3351,6 +3683,16 @@ jest-matcher-utils@^29.5.0: jest-get-type "^29.4.3" pretty-format "^29.5.0" +jest-matcher-utils@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12" + integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== + dependencies: + chalk "^4.0.0" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + jest-message-util@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.5.0.tgz#1f776cac3aca332ab8dd2e3b41625435085c900e" @@ -3366,131 +3708,143 @@ jest-message-util@^29.5.0: slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.5.0.tgz#26e2172bcc71d8b0195081ff1f146ac7e1518aed" - integrity sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw== +jest-message-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3" + integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== dependencies: - "@jest/types" "^29.5.0" + "@babel/code-frame" "^7.12.13" + "@jest/types" "^29.6.3" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^29.7.0" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-mock@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.7.0.tgz#4e836cf60e99c6fcfabe9f99d017f3fdd50a6347" + integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw== + dependencies: + "@jest/types" "^29.6.3" "@types/node" "*" - jest-util "^29.5.0" + jest-util "^29.7.0" jest-pnp-resolver@^1.2.2: version "1.2.2" resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== -jest-regex-util@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.4.3.tgz#a42616141e0cae052cfa32c169945d00c0aa0bb8" - integrity sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg== +jest-regex-util@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz#4a556d9c776af68e1c5f48194f4d0327d24e8a52" + integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg== -jest-resolve-dependencies@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz#f0ea29955996f49788bf70996052aa98e7befee4" - integrity sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg== +jest-resolve-dependencies@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz#1b04f2c095f37fc776ff40803dc92921b1e88428" + integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA== dependencies: - jest-regex-util "^29.4.3" - jest-snapshot "^29.5.0" + jest-regex-util "^29.6.3" + jest-snapshot "^29.7.0" -jest-resolve@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.5.0.tgz#b053cc95ad1d5f6327f0ac8aae9f98795475ecdc" - integrity sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w== +jest-resolve@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.7.0.tgz#64d6a8992dd26f635ab0c01e5eef4399c6bcbc30" + integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.5.0" + jest-haste-map "^29.7.0" jest-pnp-resolver "^1.2.2" - jest-util "^29.5.0" - jest-validate "^29.5.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" resolve "^1.20.0" resolve.exports "^2.0.0" slash "^3.0.0" -jest-runner@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.5.0.tgz#6a57c282eb0ef749778d444c1d758c6a7693b6f8" - integrity sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ== +jest-runner@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.7.0.tgz#809af072d408a53dcfd2e849a4c976d3132f718e" + integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ== dependencies: - "@jest/console" "^29.5.0" - "@jest/environment" "^29.5.0" - "@jest/test-result" "^29.5.0" - "@jest/transform" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/console" "^29.7.0" + "@jest/environment" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" emittery "^0.13.1" graceful-fs "^4.2.9" - jest-docblock "^29.4.3" - jest-environment-node "^29.5.0" - jest-haste-map "^29.5.0" - jest-leak-detector "^29.5.0" - jest-message-util "^29.5.0" - jest-resolve "^29.5.0" - jest-runtime "^29.5.0" - jest-util "^29.5.0" - jest-watcher "^29.5.0" - jest-worker "^29.5.0" + jest-docblock "^29.7.0" + jest-environment-node "^29.7.0" + jest-haste-map "^29.7.0" + jest-leak-detector "^29.7.0" + jest-message-util "^29.7.0" + jest-resolve "^29.7.0" + jest-runtime "^29.7.0" + jest-util "^29.7.0" + jest-watcher "^29.7.0" + jest-worker "^29.7.0" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.5.0.tgz#c83f943ee0c1da7eb91fa181b0811ebd59b03420" - integrity sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw== - dependencies: - "@jest/environment" "^29.5.0" - "@jest/fake-timers" "^29.5.0" - "@jest/globals" "^29.5.0" - "@jest/source-map" "^29.4.3" - "@jest/test-result" "^29.5.0" - "@jest/transform" "^29.5.0" - "@jest/types" "^29.5.0" +jest-runtime@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.7.0.tgz#efecb3141cf7d3767a3a0cc8f7c9990587d3d817" + integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/globals" "^29.7.0" + "@jest/source-map" "^29.6.3" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^29.5.0" - jest-message-util "^29.5.0" - jest-mock "^29.5.0" - jest-regex-util "^29.4.3" - jest-resolve "^29.5.0" - jest-snapshot "^29.5.0" - jest-util "^29.5.0" + jest-haste-map "^29.7.0" + jest-message-util "^29.7.0" + jest-mock "^29.7.0" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.5.0.tgz#c9c1ce0331e5b63cd444e2f95a55a73b84b1e8ce" - integrity sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g== +jest-snapshot@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.7.0.tgz#c2c574c3f51865da1bb329036778a69bf88a6be5" + integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" "@babel/plugin-syntax-jsx" "^7.7.2" "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.5.0" - "@jest/transform" "^29.5.0" - "@jest/types" "^29.5.0" - "@types/babel__traverse" "^7.0.6" - "@types/prettier" "^2.1.5" + "@jest/expect-utils" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.5.0" + expect "^29.7.0" graceful-fs "^4.2.9" - jest-diff "^29.5.0" - jest-get-type "^29.4.3" - jest-matcher-utils "^29.5.0" - jest-message-util "^29.5.0" - jest-util "^29.5.0" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" natural-compare "^1.4.0" - pretty-format "^29.5.0" - semver "^7.3.5" + pretty-format "^29.7.0" + semver "^7.5.3" jest-util@^29.0.0, jest-util@^29.5.0: version "29.5.0" @@ -3504,30 +3858,42 @@ jest-util@^29.0.0, jest-util@^29.5.0: graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.5.0.tgz#8e5a8f36178d40e47138dc00866a5f3bd9916ffc" - integrity sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ== +jest-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" + integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== dependencies: - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-validate@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.7.0.tgz#7bf705511c64da591d46b15fce41400d52147d9c" + integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw== + dependencies: + "@jest/types" "^29.6.3" camelcase "^6.2.0" chalk "^4.0.0" - jest-get-type "^29.4.3" + jest-get-type "^29.6.3" leven "^3.1.0" - pretty-format "^29.5.0" + pretty-format "^29.7.0" -jest-watcher@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.5.0.tgz#cf7f0f949828ba65ddbbb45c743a382a4d911363" - integrity sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA== +jest-watcher@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.7.0.tgz#7810d30d619c3a62093223ce6bb359ca1b28a2f2" + integrity sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g== dependencies: - "@jest/test-result" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.13.1" - jest-util "^29.5.0" + jest-util "^29.7.0" string-length "^4.0.1" jest-worker@^26.2.1: @@ -3539,25 +3905,25 @@ jest-worker@^26.2.1: merge-stream "^2.0.0" supports-color "^7.0.0" -jest-worker@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.5.0.tgz#bdaefb06811bd3384d93f009755014d8acb4615d" - integrity sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA== +jest-worker@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a" + integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== dependencies: "@types/node" "*" - jest-util "^29.5.0" + jest-util "^29.7.0" merge-stream "^2.0.0" supports-color "^8.0.0" -jest@29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.5.0.tgz#f75157622f5ce7ad53028f2f8888ab53e1f1f24e" - integrity sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ== +jest@29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.7.0.tgz#994676fc24177f088f1c5e3737f5697204ff2613" + integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw== dependencies: - "@jest/core" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/core" "^29.7.0" + "@jest/types" "^29.6.3" import-local "^3.0.2" - jest-cli "^29.5.0" + jest-cli "^29.7.0" js-tokens@^4.0.0: version "4.0.0" @@ -3599,10 +3965,10 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== +json5@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== dependencies: minimist "^1.2.0" @@ -3762,29 +4128,22 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -lru-cache@^9.0.0: - version "9.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-9.1.1.tgz#c58a93de58630b688de39ad04ef02ef26f1902f1" - integrity sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A== +"lru-cache@^9.1.1 || ^10.0.0": + version "10.0.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.0.3.tgz#b40014d7d2d16d94130b87297a04a1f24874ae7c" + integrity sha512-B7gr+F6MkqB3uzINHXNctGieGsRTMwIBgxkp0yq/5BwcuDzD4A8wQpHQW6vDAm1uKSLQghmRdD9sKqf2vJ1cEg== ltgt@^2.1.2: version "2.2.1" resolved "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz#f35ca91c493f7b73da0e07495304f17b31f87ee5" integrity sha1-81ypHEk/e3PaDgdJUwTxezH4fuU= -magic-string@^0.27.0: - version "0.27.0" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.27.0.tgz#e4a3413b4bab6d98d2becffd48b4a257effdbbf3" - integrity sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA== - dependencies: - "@jridgewell/sourcemap-codec" "^1.4.13" - -magic-string@^0.30.0: - version "0.30.0" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.0.tgz#fd58a4748c5c4547338a424e90fa5dd17f4de529" - integrity sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ== +magic-string@^0.30.3, magic-string@^0.30.4: + version "0.30.5" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9" + integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA== dependencies: - "@jridgewell/sourcemap-codec" "^1.4.13" + "@jridgewell/sourcemap-codec" "^1.4.15" make-dir@^3.0.0: version "3.1.0" @@ -3845,6 +4204,11 @@ mimic-fn@^2.1.0: resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== + minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -3893,15 +4257,10 @@ minimist@^1.2.6: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== -minipass@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" - integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== - -"minipass@^5.0.0 || ^6.0.2": - version "6.0.2" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-6.0.2.tgz#542844b6c4ce95b202c0995b0a471f1229de4c81" - integrity sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w== +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": + version "7.0.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" + integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== mkdirp@^1.0.4: version "1.0.4" @@ -3918,20 +4277,15 @@ ms@^2.1.1: resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -natural-compare-lite@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" - integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== - natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -node-fetch@^2.6.11: - version "2.6.11" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.11.tgz#cde7fc71deef3131ef80a738919f999e6edfff25" - integrity sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w== +node-fetch@^2.6.12: + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== dependencies: whatwg-url "^5.0.0" @@ -3970,15 +4324,22 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" +npm-run-path@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" + integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== + dependencies: + path-key "^4.0.0" + object-inspect@^1.11.0, object-inspect@^1.9.0: version "1.11.0" resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== -object-inspect@^1.12.3: - version "1.12.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" - integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== +object-inspect@^1.13.1: + version "1.13.1" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" + integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" @@ -4028,14 +4389,33 @@ object.entries@^1.1.5: define-properties "^1.1.3" es-abstract "^1.19.1" -object.values@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" - integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== +object.fromentries@^2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" + integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +object.groupby@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.1.tgz#d41d9f3c8d6c778d9cbac86b4ee9f5af103152ee" + integrity sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" + +object.values@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" + integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" octal@^1.0.0: version "1.0.0" @@ -4056,17 +4436,34 @@ onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== + dependencies: + mimic-fn "^4.0.0" + +open@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/open/-/open-9.1.0.tgz#684934359c90ad25742f5a26151970ff8c6c80b6" + integrity sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg== + dependencies: + default-browser "^4.0.0" + define-lazy-prop "^3.0.0" + is-inside-container "^1.0.0" + is-wsl "^2.2.0" + +optionator@^0.9.3: + version "0.9.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" + integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== dependencies: + "@aashutoshrathi/word-wrap" "^1.2.3" deep-is "^0.1.3" fast-levenshtein "^2.0.6" levn "^0.4.1" prelude-ls "^1.2.1" type-check "^0.4.0" - word-wrap "^1.2.3" p-limit@^2.2.0: version "2.3.0" @@ -4144,18 +4541,23 @@ path-key@^3.0.0, path-key@^3.1.0: resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== +path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + path-parse@^1.0.6, path-parse@^1.0.7: version "1.0.7" resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-scurry@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.7.0.tgz#99c741a2cfbce782294a39994d63748b5a24f6db" - integrity sha512-UkZUeDjczjYRE495+9thsgcVgsaCPkaw80slmfVFgllxY+IO8ubTsOpFVjDPROBqJdHfVPUFRHPBV/WciOVfWg== +path-scurry@^1.10.1: + version "1.10.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" + integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== dependencies: - lru-cache "^9.0.0" - minipass "^5.0.0" + lru-cache "^9.1.1 || ^10.0.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" path-type@^4.0.0: version "4.0.0" @@ -4212,10 +4614,10 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@2.8.8: - version "2.8.8" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" - integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== +prettier@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.1.0.tgz#c6d16474a5f764ea1a4a373c593b779697744d5e" + integrity sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw== pretty-format@^29.0.0, pretty-format@^29.5.0: version "29.5.0" @@ -4226,6 +4628,15 @@ pretty-format@^29.0.0, pretty-format@^29.5.0: ansi-styles "^5.0.0" react-is "^18.0.0" +pretty-format@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" + integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== + dependencies: + "@jest/schemas" "^29.6.3" + ansi-styles "^5.0.0" + react-is "^18.0.0" + process-es6@^0.11.2: version "0.11.6" resolved "https://registry.npmjs.org/process-es6/-/process-es6-0.11.6.tgz#c6bb389f9a951f82bd4eb169600105bd2ff9c778" @@ -4343,14 +4754,14 @@ readable-stream@~1.0.26, readable-stream@~1.0.26-4, readable-stream@~1.0.31: isarray "0.0.1" string_decoder "~0.10.x" -regexp.prototype.flags@^1.4.3: - version "1.5.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" - integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== +regexp.prototype.flags@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" + integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== dependencies: call-bind "^1.0.2" define-properties "^1.2.0" - functions-have-names "^1.2.3" + set-function-name "^2.0.0" require-directory@^2.1.1: version "2.1.1" @@ -4396,17 +4807,26 @@ resolve@^1.22.1: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +resolve@^1.22.4: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + reusify@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rimraf@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.1.tgz#0881323ab94ad45fec7c0221f27ea1a142f3f0d0" - integrity sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg== +rimraf@5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.5.tgz#9be65d2d6e683447d2e9013da2bf451139a61ccf" + integrity sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A== dependencies: - glob "^10.2.5" + glob "^10.3.7" rimraf@^3.0.2: version "3.0.2" @@ -4423,14 +4843,14 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" -rollup-plugin-dts@5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-dts/-/rollup-plugin-dts-5.3.0.tgz#80a95988002f188e376f6db3b7e2f53679168957" - integrity sha512-8FXp0ZkyZj1iU5klkIJYLjIq/YZSwBoERu33QBDxm/1yw5UU4txrEtcmMkrq+ZiKu3Q4qvPCNqc3ovX6rjqzbQ== +rollup-plugin-dts@6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-dts/-/rollup-plugin-dts-6.1.0.tgz#56e9c5548dac717213c6a4aa9df523faf04f75ae" + integrity sha512-ijSCPICkRMDKDLBK9torss07+8dl9UpY9z1N/zTeA1cIqdzMlpkV3MOOC7zukyvQfDyxa1s3Dl2+DeiP/G6DOw== dependencies: - magic-string "^0.30.0" + magic-string "^0.30.4" optionalDependencies: - "@babel/code-frame" "^7.18.6" + "@babel/code-frame" "^7.22.13" rollup-plugin-node-builtins@2.1.2: version "2.1.2" @@ -4442,12 +4862,12 @@ rollup-plugin-node-builtins@2.1.2: crypto-browserify "^3.11.0" process-es6 "^0.11.2" -rollup-plugin-polyfill-node@0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-polyfill-node/-/rollup-plugin-polyfill-node-0.12.0.tgz#33d421ddb7fcb69c234461e508ca6d2db6193f1d" - integrity sha512-PWEVfDxLEKt8JX1nZ0NkUAgXpkZMTb85rO/Ru9AQ69wYW8VUCfDgP4CGRXXWYni5wDF0vIeR1UoF3Jmw/Lt3Ug== +rollup-plugin-polyfill-node@0.13.0: + version "0.13.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-polyfill-node/-/rollup-plugin-polyfill-node-0.13.0.tgz#28e5705b59438da894e55133a0fe7a86b57d9b0a" + integrity sha512-FYEvpCaD5jGtyBuBFcQImEGmTxDTPbiHjJdrYIp+mFIwgXiXabxvKUK7ZT9P31ozu2Tqm9llYQMRWsfvTMTAOw== dependencies: - "@rollup/plugin-inject" "^5.0.1" + "@rollup/plugin-inject" "^5.0.4" rollup-plugin-terser@7.0.2: version "7.0.2" @@ -4459,13 +4879,32 @@ rollup-plugin-terser@7.0.2: serialize-javascript "^4.0.0" terser "^5.0.0" -rollup@3.25.1: - version "3.25.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.25.1.tgz#9fff79d22ff1a904b2b595a2fb9bc3793cb987d8" - integrity sha512-tywOR+rwIt5m2ZAWSe5AIJcTat8vGlnPFAv15ycCrw33t6iFsXZ6mzHVFh2psSjxQPmI+xgzMZZizUAukBI4aQ== +rollup@4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.5.0.tgz#358ee6947fe0e4c8bacdae6896539cade3107655" + integrity sha512-41xsWhzxqjMDASCxH5ibw1mXk+3c4TNI2UjKbLxe6iEzrSQnqOzmmK8/3mufCPbzHNJ2e04Fc1ddI35hHy+8zg== optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.5.0" + "@rollup/rollup-android-arm64" "4.5.0" + "@rollup/rollup-darwin-arm64" "4.5.0" + "@rollup/rollup-darwin-x64" "4.5.0" + "@rollup/rollup-linux-arm-gnueabihf" "4.5.0" + "@rollup/rollup-linux-arm64-gnu" "4.5.0" + "@rollup/rollup-linux-arm64-musl" "4.5.0" + "@rollup/rollup-linux-x64-gnu" "4.5.0" + "@rollup/rollup-linux-x64-musl" "4.5.0" + "@rollup/rollup-win32-arm64-msvc" "4.5.0" + "@rollup/rollup-win32-ia32-msvc" "4.5.0" + "@rollup/rollup-win32-x64-msvc" "4.5.0" fsevents "~2.3.2" +run-applescript@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-5.0.0.tgz#e11e1c932e055d5c6b40d98374e0268d9b11899c" + integrity sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg== + dependencies: + execa "^5.0.0" + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -4473,6 +4912,16 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" +safe-array-concat@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" + integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + has-symbols "^1.0.3" + isarray "^2.0.5" + safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" @@ -4502,22 +4951,20 @@ sax@^1.2.4: resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -semver@7.x, semver@^7.3.5: - version "7.3.5" - resolved "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== - dependencies: - lru-cache "^6.0.0" - semver@^6.0.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.3.7: - version "7.3.7" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" - integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== +semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.5.3, semver@^7.5.4: + version "7.5.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== dependencies: lru-cache "^6.0.0" @@ -4533,6 +4980,25 @@ serialize-javascript@^4.0.0: dependencies: randombytes "^2.1.0" +set-function-length@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed" + integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ== + dependencies: + define-data-property "^1.1.1" + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + +set-function-name@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" + integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== + dependencies: + define-data-property "^1.0.1" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.0" + sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" @@ -4597,13 +5063,14 @@ sort-object-keys@^1.1.3: resolved "https://registry.npmjs.org/sort-object-keys/-/sort-object-keys-1.1.3.tgz#bff833fe85cab147b34742e45863453c1e190b45" integrity sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg== -sort-package-json@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/sort-package-json/-/sort-package-json-2.4.1.tgz#4ea68a0b9ef34c2bc519e86d0d07de56622a7600" - integrity sha512-Nd3rgLBJcZ4iw7tpuOhwBupG6SvUDU0Fy1cZGAMorA2JmDUb+29Dg5phJK9gapa2Ak9d15w/RuMl/viwX+nKwQ== +sort-package-json@2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/sort-package-json/-/sort-package-json-2.6.0.tgz#68337dbbd267971add856308a9b454a7d6cbfc0a" + integrity sha512-XSQ+lY9bAYA8ZsoChcEoPlgcSMaheziEp1beox1JVxy1SV4F2jSq9+h2rJ+3mC/Dhu9Ius1DLnInD5AWcsDXZw== dependencies: detect-indent "^7.0.1" detect-newline "^4.0.0" + get-stdin "^9.0.0" git-hooks-list "^3.0.0" globby "^13.1.2" is-plain-obj "^4.1.0" @@ -4692,14 +5159,14 @@ string-width@^5.0.1, string-width@^5.1.2: emoji-regex "^9.2.2" strip-ansi "^7.0.1" -string.prototype.trim@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" - integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== +string.prototype.trim@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" + integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" string.prototype.trimend@^1.0.4: version "1.0.4" @@ -4709,14 +5176,14 @@ string.prototype.trimend@^1.0.4: call-bind "^1.0.2" define-properties "^1.1.3" -string.prototype.trimend@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" - integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== +string.prototype.trimend@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" + integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" string.prototype.trimstart@^1.0.4: version "1.0.4" @@ -4726,14 +5193,14 @@ string.prototype.trimstart@^1.0.4: call-bind "^1.0.2" define-properties "^1.1.3" -string.prototype.trimstart@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" - integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== +string.prototype.trimstart@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" + integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" string_decoder@^1.1.1: version "1.3.0" @@ -4797,7 +5264,12 @@ strip-final-newline@^2.0.0: resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== + +strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== @@ -4828,6 +5300,14 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== +synckit@^0.8.5: + version "0.8.5" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.5.tgz#b7f4358f9bb559437f9f167eb6bc46b3c9818fa3" + integrity sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q== + dependencies: + "@pkgr/utils" "^2.3.1" + tslib "^2.5.0" + terser@^5.0.0: version "5.9.0" resolved "https://registry.npmjs.org/terser/-/terser-5.9.0.tgz#47d6e629a522963240f2b55fcaa3c99083d2c351" @@ -4859,6 +5339,11 @@ through2@^2.0.1: readable-stream "~2.3.6" xtend "~4.0.1" +titleize@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/titleize/-/titleize-3.0.0.tgz#71c12eb7fdd2558aa8a44b0be83b8a76694acd53" + integrity sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ== + tmpl@1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" @@ -4881,10 +5366,15 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= -ts-jest@29.1.0: - version "29.1.0" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.1.0.tgz#4a9db4104a49b76d2b368ea775b6c9535c603891" - integrity sha512-ZhNr7Z4PcYa+JjMl62ir+zPiNJfXJN6E8hSLnaUKhOgqcn8vb3e537cpkd0FuAfRK3sR1LSqM1MOhliXNgOFPA== +ts-api-utils@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.3.tgz#f12c1c781d04427313dbac808f453f050e54a331" + integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg== + +ts-jest@29.1.1: + version "29.1.1" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.1.1.tgz#f58fe62c63caf7bfcc5cc6472082f79180f0815b" + integrity sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA== dependencies: bs-logger "0.x" fast-json-stable-stringify "2.x" @@ -4892,35 +5382,23 @@ ts-jest@29.1.0: json5 "^2.2.3" lodash.memoize "4.x" make-error "1.x" - semver "7.x" + semver "^7.5.3" yargs-parser "^21.0.1" -tsconfig-paths@^3.14.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" - integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== +tsconfig-paths@^3.14.2: + version "3.14.2" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" + integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== dependencies: "@types/json5" "^0.0.29" - json5 "^1.0.1" + json5 "^1.0.2" minimist "^1.2.6" strip-bom "^3.0.0" -tslib@2.5.3: - version "2.5.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.3.tgz#24944ba2d990940e6e982c4bea147aba80209913" - integrity sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w== - -tslib@^1.8.1: - version "1.14.1" - resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" +tslib@2.6.2, tslib@^2.5.0, tslib@^2.6.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" @@ -4944,6 +5422,36 @@ type-fest@^0.21.3: resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== +typed-array-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" + integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + is-typed-array "^1.1.10" + +typed-array-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" + integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + +typed-array-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" + integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + typed-array-length@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" @@ -4963,10 +5471,10 @@ typedarray@^0.0.6: resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.3.tgz#8d84219244a6b40b6fb2b33cc1c062f715b9e826" - integrity sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw== +typescript@5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" + integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== unbox-primitive@^1.0.1: version "1.0.1" @@ -4988,6 +5496,11 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + untildify@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" @@ -5053,17 +5566,16 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which-typed-array@^1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" - integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== +which-typed-array@^1.1.11, which-typed-array@^1.1.13: + version "1.1.13" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" + integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== dependencies: available-typed-arrays "^1.0.5" - call-bind "^1.0.2" + call-bind "^1.0.4" for-each "^0.3.3" gopd "^1.0.1" has-tostringtag "^1.0.0" - is-typed-array "^1.1.10" which@^2.0.1: version "2.0.2" @@ -5072,11 +5584,6 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -word-wrap@^1.2.3: - version "1.2.3" - resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"