diff --git a/.babelrc b/.babelrc deleted file mode 100644 index 1320b9a..0000000 --- a/.babelrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "presets": ["@babel/preset-env"] -} diff --git a/.eslintrc.json b/.eslintrc.json index b2b7e61..61040e7 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,12 +1,16 @@ { + "parser": "@typescript-eslint/parser", "extends": [ - "eslint:recommended" + "eslint:recommended", "plugin:@typescript-eslint/recommended" ], "plugins": [ - "prettier", "import" + "prettier", "import", "@typescript-eslint" ], "rules": { - "prettier/prettier": "error" + "prettier/prettier": "error", + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-namespace": "off", + "no-inner-declarations": "off" }, "parserOptions": { "ecmaVersion": 2021, // Specify the ECMAScript version you are using (ES2021 or later) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ba8922d..fa183b1 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -2,9 +2,9 @@ name: CI on: push: - branches: [main] + branches: [main, release-candidate] pull_request: - types: ['opened', 'reopened', 'synchronize'] + types: ['opened', 'reopened', 'synchronize', 'edited'] permissions: contents: read diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0aadedf..02b80b2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -6,62 +6,45 @@ To ensure a smooth collaboration and maintain a high-quality codebase, please fo ## Table of Contents -- [Getting Started](#getting-started) - - [Installation](#installation) - - [Development Setup](#development-setup) +- [Code of Conduct](#code-of-conduct) +- [How to Contribute](#how-to-contribute) - [Contributing Guidelines](#contributing-guidelines) - [Bug Reports](#bug-reports) - [Feature Requests](#feature-requests) - [Code Style](#code-style) - [License](#license) -## Getting Started -### Installation +Thank you for your interest in contributing to this project! We welcome contributions from everyone. Please read this document to understand the process for contributing. -Before you start contributing to Astral.js, make sure you have it installed. You can install it using npm: +## Code of Conduct -```bash -npm install astral.js -``` +This project adheres to the [Contributor Covenant Code of Conduct](https://www.contributor-covenant.org/version/2/1/code_of_conduct/). By participating, you are expected to uphold this code. Please report any unacceptable behavior to the project maintainers. + +## How to Contribute + +To contribute to this project, please follow these steps: -### Development Setup - -To set up the development environment, follow these steps:To set up the development environment and start contributing, follow these steps: - -1. Clone the Astral.js repository to your local machine: - - ```bash - git clone https://github.com/rabisnaqvi/Astral.js.git - ``` -2. Navigate to the project directory: - - ```bash - cd Astral.js - ``` -3. Install the dependencies: - - ```bash - npm install - ``` -4. Create a new branch for your changes: - - ```bash - git checkout -b my-branch-name - ``` -5. Make your desired changes and ensure that the code passes all tests. -6. Commit your changes with a descriptive commit message: - ```bash - git commit -m "Add feature X" - ``` -7. Push your changes to the remote repository: - ```bash - git push origin my-branch-name - ``` -8. Go to the Astral.js repository on GitHub and create a new pull request from your branch. -9. Provide a clear title and description for your pull request, explaining the purpose of the changes. -10. Wait for the pull request to be reviewed and merged. -11. Celebrate! 🎉 +1. Make sure there is an internal branch associated with the issue you are working on. If the branch doesn't exist, create one. +2. Fork this repository to your own GitHub account. +3. Clone the forked repository to your local machine. +4. Create a new branch from the internal branch for the specific issue you are working on. +5. Implement your changes or fixes in the new branch. +6. Make sure your code follows the project's code style and guidelines. +7. Run the tests `npm run test` to ensure that your changes don't break any existing functionality. +8. Run the formatter `npm run format` to ensure that your code is formatted correctly. +9. Run the linter `npm run lint` to ensure that your code adheres to the project's code style. +10. Run the build `npm run build` to ensure that your code builds successfully. +11. Commit your changes with descriptive commit messages. (🤗 Emojis are appreciated!) +12. Push the branch to your forked repository. +13. Open a pull request (PR) from your branch to the internal branch associated with the issue. +14. The PR will be reviewed by the project maintainers. Please be patient during the review process. +15. Once the PR is approved, your changes will be merged into the internal feature branch. +16. A new PR will be generated to merge the internal feature branch into the release-candidate branch. +17. The features/fixes will undergo testing and pre-release tasks on the release-candidate branch. +18. When the features/fixes are tested and ready to be released, a PR will be generated to merge the release-candidate branch into the main branch. + +Please note that the project maintainers may request further changes to the code before merging the PR. By submitting a PR, you confirm that you have the right to license your contribution under the project's license. ## Contributing Guidelines @@ -93,8 +76,8 @@ If you have a suggestion for a new feature or improvement in Astral.js, we'd lov To maintain a consistent code style throughout the project, we use ESLint and Prettier. Before submitting a pull request, please ensure that your code adheres to the linting rules and passes all tests. You can run the following command to check your code: ```bash -npm run lint npm run format +npm run lint ``` ## License diff --git a/babel.config.js b/babel.config.js new file mode 100644 index 0000000..faffcb3 --- /dev/null +++ b/babel.config.js @@ -0,0 +1,6 @@ +module.exports = { + presets: [ + '@babel/preset-env', + '@babel/preset-typescript', + ], +}; diff --git a/dist/astral.min.js b/dist/astral.min.js index 19c506a..f54457d 100644 --- a/dist/astral.min.js +++ b/dist/astral.min.js @@ -1,2 +1,2 @@ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.Astral=e():t.Astral=e()}(self,(()=>(()=>{"use strict";var t={d:(e,n)=>{for(var i in n)t.o(n,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:n[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{context:()=>r,default:()=>o,event:()=>n,layout:()=>i});const n=function(){const t={};let e=!1;function n(t,e){var n=t.indexOf(e);n>-1&&t.splice(n,1)}function i(t){e&&console.debug("Astral.event $:",t)}return{subscribe:function(e,n){Array.isArray(t[e])||(t[e]=[],i("Event: "+e+" subcribers list initialized")),-1===t[e].indexOf(n)&&(t[e].push(n),i("Event: "+e))},publish:function(e,n){Array.isArray(t[e])?t[e].forEach((function(t){t(n),i("Event: "+e+"\nData: "+JSON.stringify(n))})):i("Event: "+e+"\nData: "+JSON.stringify(n)+"\nAction: No subscribers found")},unsubscribe:function(e,r){if(Array.isArray(t[e])){for(var o=0;o=i.minWidth&&t.WIDTH<=i.maxWidth&&t.HEIGHT>=i.minHeight)return i}throw new Error("Astral.layout: No breakpoint found for screen size: "+t.WIDTH+"x"+t.HEIGHT)}function f(){try{return window.screen.orientation.type}catch(t){if(window.matchMedia)return window.matchMedia("(orientation: portrait)").matches?"portrait":"landscape";throw new Error("Astral.layout: No orientation found",t)}}return function(){if(window.addEventListener("resize",c),window.screen&&window.screen.orientation)window.screen.orientation.addEventListener("change",(function(){u()}));else if(window.matchMedia){const t=window.matchMedia("(orientation: portrait)");u(),t.addListener((function(){u()}))}}(),{config:function(t){if(!t||!t.breakpoints)throw new Error("Astral.layout: Invalid configuration");e=t,i=Object.keys(e.breakpoints).reduce(((t,e)=>(t[e]=e,t)),{})},getWindowSize:s,getOrientation:f,getBreakpoint:d,getBreakpointFromLabel:l,applyIf:function(t,e,i,d){if(!i||0===i.length||!t)throw new Error("Astral.layout: No conditions or callbackSuccess provided");function f(){let n=!1;for(let t=0;t=":n.WIDTH>=t.minWidth&&(o=!0);break;case"<":n.WIDTH":n.WIDTH>t.minWidth&&(o=!0);break;default:n.WIDTH>=t.minWidth&&n.WIDTH<=t.maxWidth&&n.HEIGHT>=t.minHeight&&(o=!0)}}if("function"==typeof e&&(o=e.call()),r=`Condition ${t} matched: ${o}`,a&&console.debug(`Astral.layout $: ${r}`),o&&(n=!0),n&&d&&o&&(n=!0),n&&d&&!o&&(n=!1),d&&!o){n=!1;break}if(!d&&o){n=!0;break}}var r;n?t.call():e.call()}var b;b=f,n.subscribe(r,b),c(),function(t){n.subscribe(o,t),u()}(f)},getBreakpointLabels:function(){return i},setDebugMode:function(t){a=t}}}(),r=function(){var t={},e=!1;function i(e,n){if(void 0!==t[e])throw Error("Astral.context: State already initialized");t[e]=null,a("State: "+e+"\nValue: "+n+"\nAction: Initialized"),r(e,n)}function r(e,o){if("object"!=typeof e||null===e){void 0===t[e]&&i(e,null);var c=t[e];t[e]=o,a("State: "+e+"\nValue: "+o+"\nAction: Updated"),n.publish("ASTRAL_CONTEXT_UPDATED_INTERNAL_"+e,{prevState:c,newState:t[e]})}else for(const t in e)r(t,e[t])}function o(t){return function(e){n.subscribe("ASTRAL_CONTEXT_UPDATED_INTERNAL_"+t,(function(t){e.call(null,t.prevState,t.newState)}))}}function a(t){e&&console.debug("Astral.context $:",t)}return{getState:function(e){void 0===t[e]&&i(e,null);var n=new o(e);return{value:t[e],onchange:n}},updateState:r,setDebugMode:function(t){e=t}}}(),o={event:n,layout:i,context:r};return e})())); +!function(t,n){"object"==typeof exports&&"object"==typeof module?module.exports=n():"function"==typeof define&&define.amd?define([],n):"object"==typeof exports?exports.Astral=n():t.Astral=n()}(self,(()=>(()=>{"use strict";var t,n={d:(t,e)=>{for(var i in e)n.o(e,i)&&!n.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},o:(t,n)=>Object.prototype.hasOwnProperty.call(t,n),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};n.r(e),n.d(e,{context:()=>d,default:()=>f,event:()=>u,layout:()=>l}),function(t){!function(t){const n={};let e=!1;function i(t,n){const e=t.indexOf(n);e>-1&&t.splice(e,1)}function o(t){e&&console.debug("Astral.event $:",t)}t.subscribe=function(t,e){Array.isArray(n[t])||(n[t]=[],o(`Event: ${t} subscribers list initialized`)),-1===n[t].indexOf(e)&&(n[t].push(e),o(`Event: ${t}\nCallback: ${e}\nAction: callback added (subscribed)`))},t.publish=function(t,e){Array.isArray(n[t])?n[t].forEach((function(n){n(e),o(`Event: ${t}\nData: ${JSON.stringify(e)}\nCallback: ${n}\nAction: callback executed`)})):o(`Event: ${t}\nData: ${JSON.stringify(e)}\nAction: No subscribers found`)},t.unsubscribe=function(t,e){if(Array.isArray(n[t])){for(let o=0;o=i.minWidth&&t.WIDTH<=i.maxWidth&&t.HEIGHT>=i.minHeight)return i}throw new Error("Astral.layout: No breakpoint found for screen size: "+t.WIDTH+"x"+t.HEIGHT)}function b(){try{if(window.screen.orientation.type.match("portrait"))return"portrait";if(window.screen.orientation.type.match("landscape"))return"landscape"}catch(t){if(!window.matchMedia)throw new Error(`Astral.layout: No orientation found.\n${t}`);{const t=window.matchMedia("(orientation: portrait)");if(t&&t.matches)return"portrait";if(t&&!t.matches)return"landscape"}}throw new Error("Astral.layout: No orientation found.")}!function(){if(window.addEventListener("resize",s),window.screen&&window.screen.orientation)window.screen.orientation.addEventListener("change",(function(){u()}));else if(window.matchMedia){const t=window.matchMedia("(orientation: portrait)");u(),t.addListener((function(){u()}))}}(),t.config=function(t){if(!t||!t.breakpoints)throw new Error("Astral.layout: Invalid configuration");e=t,o=Object.keys(e.breakpoints).reduce(((t,n)=>(t[n]=n,t)),{})},t.getWindowSize=l,t.getBreakpointFromLabel=d,t.getBreakpoint=f,t.getOrientation=b,t.applyIf=function(t,n,e,o){if(!e||0===e.length||!t)throw new Error("Astral.layout: No conditions or callbackSuccess provided");function f(){let i=!1;for(let t=0;t=":e.WIDTH>=t.minWidth&&(a=!0);break;case"<":e.WIDTH":e.WIDTH>t.minWidth&&(a=!0);break;default:e.WIDTH>=t.minWidth&&e.WIDTH<=t.maxWidth&&e.HEIGHT>=t.minHeight&&(a=!0)}}if("function"==typeof n&&(a=n()),r=`Condition ${t} matched: ${a}`,c&&console.debug(`Astral.layout $: ${r}`),a&&(i=!0),i&&o&&a&&(i=!0),i&&o&&!a&&(i=!1),o&&!a){i=!1;break}if(!o&&a){i=!0;break}}var r;i?t():n()}var b;b=f,i.subscribe(r,b),s(),function(t){i.subscribe(a,t),u()}(f)},t.getBreakpointLabels=function(){return o},t.setDebugMode=function(t){c=t}}(t.layout||(t.layout={}))}(o||(o={}));const r=o.layout;var a;!function(t){!function(t){const n={};let e=!1;function o(t,e){n[t]=null,r(`State: ${t}\nValue: ${e}\nAction: Initialized`),a(t,e)}function r(t){e&&console.debug("Astral.context $:",t)}function a(t,e){if("object"!=typeof t||null===t){if("string"==typeof t){void 0===n[t]&&o(t,null);const a=n[t];n[t]=e,r(`State: ${t}\nValue: ${e}\nAction: Updated`),i.publish(`ASTRAL_CONTEXT_UPDATED_INTERNAL_${t}`,{prevState:a,newState:n[t]})}}else for(const n in t)a(n,t[n])}t.getState=function(t){void 0===n[t]&&o(t,null);const e=function(t){return function(n){i.subscribe(`ASTRAL_CONTEXT_UPDATED_INTERNAL_${t}`,(function(t){n.call(null,t.prevState,t.newState)}))}}(t);return[n[t],e]},t.updateState=a,t.setDebugMode=function(t){e=t}}(t.context||(t.context={}))}(a||(a={}));const c=a.context;var s;!function(t){t.event=i,t.layout=r,t.context=c}(s||(s={}));const u=i,l=r,d=c,f=s;return e})())); //# sourceMappingURL=astral.min.js.map \ No newline at end of file diff --git a/dist/astral.min.js.map b/dist/astral.min.js.map index 538cecd..d3e5267 100644 --- a/dist/astral.min.js.map +++ b/dist/astral.min.js.map @@ -1 +1 @@ -{"version":3,"file":"astral.min.js","mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,GAAIH,GACe,iBAAZC,QACdA,QAAgB,OAAID,IAEpBD,EAAa,OAAIC,GAClB,CATD,CASGK,MAAM,I,mBCRT,IAAIC,EAAsB,CCA1BA,EAAwB,CAACL,EAASM,KACjC,IAAI,IAAIC,KAAOD,EACXD,EAAoBG,EAAEF,EAAYC,KAASF,EAAoBG,EAAER,EAASO,IAC5EE,OAAOC,eAAeV,EAASO,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,IAE1E,ECNDF,EAAwB,CAACQ,EAAKC,IAAUL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,GCClFT,EAAyBL,IACH,oBAAXkB,QAA0BA,OAAOC,aAC1CV,OAAOC,eAAeV,EAASkB,OAAOC,YAAa,CAAEC,MAAO,WAE7DX,OAAOC,eAAeV,EAAS,aAAc,CAAEoB,OAAO,GAAO,G,0ECO9D,QAAe,WASb,MAAMC,EAAoB,CAAC,EAY3B,IAAIC,GAAa,EAEjB,SAASC,EAAiBC,EAAOC,GAC/B,IAAIC,EAAQF,EAAMG,QAAQF,GACtBC,GAAS,GAAGF,EAAMI,OAAOF,EAAO,EACtC,CAkHA,SAASG,EAAUC,GACbR,GAAYS,QAAQC,MAAM,kBAAmBF,EACnD,CAcA,MAAO,CACLG,UArHF,SAAmBC,EAAWC,GACvBC,MAAMC,QAAQhB,EAAkBa,MACnCb,EAAkBa,GAAa,GAC/BL,EAAU,UAAYK,EAAY,kCAEoB,IAApDb,EAAkBa,GAAWP,QAAQQ,KACvCd,EAAkBa,GAAWI,KAAKH,GAClCN,EAAU,UAAYK,GAE1B,EA6GEK,QAjGF,SAAiBL,EAAWM,GACrBJ,MAAMC,QAAQhB,EAAkBa,IAIrCb,EAAkBa,GAAWO,SAAQ,SAAUN,GAC7CA,EAASK,GACTX,EAAU,UAAYK,EAAY,WAAaQ,KAAKC,UAAUH,GAChE,IANEX,EAAU,UAAYK,EAAY,WAAaQ,KAAKC,UAAUH,GAAQ,iCAO1E,EAyFEI,YA9EF,SAAqBV,EAAWC,GAC9B,GAAKC,MAAMC,QAAQhB,EAAkBa,IAArC,CAKA,IAAK,IAAIW,EAAI,EAAGA,EAAIxB,EAAkBa,GAAWY,OAAQD,IACnDxB,EAAkBa,GAAWW,KAAOV,GAAUZ,EAAiBF,EAAkBa,GAAYC,GAEnGN,EAAU,UAAYK,EALtB,MAFEL,EAAU,UAAYK,EAAY,yCAQtC,EAqEEa,eA3DF,SAAwBb,GACtB,GAAKE,MAAMC,QAAQhB,EAAkBa,IAArC,CAQA,IAAK,IAAIW,EAAI,EAAGA,EAAIxB,EAAkBa,GAAWY,OAAQD,IACvDtB,EAAiBF,EAAkBa,GAAYb,EAAkBa,GAAWW,IAE9EhB,EAAU,UAAYK,EAAY,iDALlC,KANA,CACE,IAAK,IAAI3B,KAAOc,EACdE,EAAiBF,EAAkBd,GAAMc,EAAkBd,IAE7DsB,EAAU,uFAEZ,CAMF,EA+CEmB,aAnCF,SAAsBC,GACpB3B,EAAa2B,EACbpB,EAAU,sBAAwBoB,EACpC,EAkCD,CAnKD,GCHA,EAAe,WAsFb,MAAMC,EAA4B,CAChCC,WAAY,aACZC,MAAO,QACPC,OAAQ,SACRC,MAAO,QACPC,WAAY,aACZC,MAAO,SA8DT,IAAIC,EAXmB,CACrBC,YAzC0B,CAC1B,CAACR,EAA0BC,YAAa,CACtCQ,SAAU,KACVC,SAAUC,IACVC,UAAW,KAEb,CAACZ,EAA0BE,OAAQ,CACjCO,SAAU,KACVC,SAAU,KACVE,UAAW,KAEb,CAACZ,EAA0BG,QAAS,CAClCM,SAAU,IACVC,SAAU,KACVE,UAAW,KAEb,CAACZ,EAA0BI,OAAQ,CACjCK,SAAU,IACVC,SAAU,IACVE,UAAW,GAEb,CAACZ,EAA0BK,YAAa,CACtCI,SAAU,EACVC,SAAU,IACVE,UAAW,GAEb,CAACZ,EAA0BM,OAAQ,CACjCG,SAAU,IACVC,SAAUC,IACVC,UAAW,KAwBXC,EAAmBb,EAYvB,MAAMc,EACW,kCADXA,EAEgB,uCAatB,IAAIf,GAAY,EAiChB,SAASgB,IACP,UAAcD,EAAoCE,EAAcC,KAClE,CAEA,SAASC,IACP,MAAMC,EAAcC,IACpB,UAAcN,EAAyCK,EACzD,CA0CA,SAASF,IACP,MAAO,CACLI,MAAOC,OAAOC,WACdC,OAAQF,OAAOG,YAEnB,CAWA,SAASC,EAAuBC,GAC9B,MAAMC,EAAQrB,EAAOC,YAAYmB,GACjC,GAAIC,EAAO,OAAOA,EAClB,MAAM,IAAIC,MAAM,iDAAmDF,EACrE,CAWA,SAASX,EAAcc,GACrB,IAAK,MAAMH,KAAcpB,EAAOC,YAAa,CAC3C,MAAMuB,EAASxB,EAAOC,YAAYmB,GAClC,GAAIG,EAAWT,OAASU,EAAOtB,UAAYqB,EAAWT,OAASU,EAAOrB,UAChEoB,EAAWN,QAAUO,EAAOnB,UAC9B,OAAOmB,CAGb,CACA,MAAM,IAAIF,MAAM,uDAAyDC,EAAWT,MAAQ,IAAMS,EAAWN,OAC/G,CASA,SAASJ,IACP,IACE,OAAOE,OAAOU,OAAOb,YAAYc,IACnC,CAAE,MAAOC,GACP,GAAIZ,OAAOa,WAET,OADYb,OAAOa,WAAW,2BACtBC,QACC,WAEA,YAGT,MAAM,IAAIP,MAAM,sCAAuCK,EAE3D,CACF,CAyHA,OAlQA,WAGE,GAFAZ,OAAOe,iBAAiB,SAAUtB,GAE9BO,OAAOU,QAAUV,OAAOU,OAAOb,YACjCG,OAAOU,OAAOb,YAAYkB,iBAAiB,UAAU,WACnDnB,GACF,SACK,GAAII,OAAOa,WAAY,CAO5B,MAAMG,EAAMhB,OAAOa,WAAW,2BAC9BjB,IAEAoB,EAAIC,aAAY,WACdrB,GACF,GACF,CACD,CArBD,GAkQO,CACLX,OA5MF,SAAmBiC,GACjB,IAAKA,IAAcA,EAAUhC,YAAa,MAAM,IAAIqB,MAAM,wCAC1DtB,EAASiC,EACT3B,EAAmBtD,OAAOkF,KAAKlC,EAAOC,aAAakC,QAAO,CAACC,EAAKtF,KAC9DsF,EAAItF,GAAOA,EACJsF,IACN,CAAC,EACN,EAsME1B,cAAeA,EACfG,eAAgBA,EAChBJ,cAAeA,EACfU,uBAAwBA,EACxBkB,QA9GF,SAAiBC,EAAiBC,EAAcC,EAAYC,GAC1D,IAAKD,GAAoC,IAAtBA,EAAWnD,SAAiBiD,EAC7C,MAAM,IAAIhB,MAAM,4DAElB,SAASoB,IACP,IAAIC,GAAY,EAEhB,IAAK,IAAI1E,EAAQ,EAAGA,EAAQuE,EAAWnD,OAAQpB,IAAS,CACtD,IAAI2E,EAAYJ,EAAWvE,GACvB4E,GAAmB,EACvB,GAAyB,iBAAdD,EAAwB,CACjC,MAAME,EAAoB3B,EAAuByB,EAAUxB,YACrD2B,EAAarC,IAEnB,OAAQkC,EAAUI,UAChB,IAAK,KACCD,EAAWjC,OAASgC,EAAkB3C,WAAU0C,GAAmB,GACvE,MAEF,IAAK,KACCE,EAAWjC,OAASgC,EAAkB5C,WAAU2C,GAAmB,GACvE,MAEF,IAAK,IACCE,EAAWjC,MAAQgC,EAAkB3C,WAAU0C,GAAmB,GACtE,MAEF,IAAK,IACCE,EAAWjC,MAAQgC,EAAkB5C,WAAU2C,GAAmB,GACtE,MAGF,QAEIE,EAAWjC,OAASgC,EAAkB5C,UACtC6C,EAAWjC,OAASgC,EAAkB3C,UACtC4C,EAAW9B,QAAU6B,EAAkBzC,YAEvCwC,GAAmB,GAG3B,CAgBA,GAdyB,mBAAdD,IACTC,EAAmBD,EAAUpF,QA5JlByF,EA+JH,aAAahF,cAAkB4E,IA9JzCrD,GAAWlB,QAAQC,MAAM,oBAAoB0E,KAgKzCJ,IAAkBF,GAAY,GAE9BA,GAAaF,GAA6BI,IAC5CF,GAAY,GAEVA,GAAaF,IAA8BI,IAC7CF,GAAY,GAEVF,IAA8BI,EAAkB,CAClDF,GAAY,EACZ,KACF,CACA,IAAKF,GAA6BI,EAAkB,CAClDF,GAAY,EACZ,KACF,CACF,CAjLJ,IAAmBM,EAmLXN,EAAWL,EAAgB9E,OAC1B+E,EAAa/E,MACpB,CA/LF,IAAyBkB,IAiMPgE,EAhMhB,YAAgBnC,EAAoC7B,GACpD8B,IAGF,SAAoC9B,GAClC,YAAgB6B,EAAyC7B,GACzDiC,GACF,CA0LEuC,CAA2BR,EAC7B,EAsCES,oBAvBF,WACE,OAAO7C,CACT,EAsBEf,aAZF,SAAsB5B,GACpB6B,EAAY7B,CACd,EAYD,CA7cD,GCMA,EAAe,WAgDb,IAAIyF,EAAQ,CAAC,EACXvF,GAAa,EAWf,SAASwF,EAAWvG,EAAKwG,GACvB,QAA0B,IAAfF,EAAMtG,GAAsB,MAAMwE,MAAM,6CACnD8B,EAAMtG,GAAO,KACbsB,EAAU,UAAYtB,EAAM,YAAcwG,EAAM,yBAChDC,EAAYzG,EAAKwG,EACnB,CAqCA,SAASC,EAAYzG,EAAKwG,GACxB,GAAmB,iBAARxG,GAA4B,OAARA,EAA/B,MAQ0B,IAAfsG,EAAMtG,IACfuG,EAAWvG,EAAK,MAGlB,IAAI0G,EAAYJ,EAAMtG,GACtBsG,EAAMtG,GAAOwG,EAEblF,EAAU,UAAYtB,EAAM,YAAcwG,EAAM,qBAChD,UAAc,mCAAqCxG,EAAK,CACtD0G,UAAWA,EACXC,SAAUL,EAAMtG,IAZlB,MAJE,IAAK,MAAM4G,KAAY5G,EACrByG,EAAYG,EAAU5G,EAAI4G,GAiBhC,CAWA,SAASC,EAAoB7G,GAC3B,OAAO,SAAU4B,GACf,YAAgB,mCAAqC5B,GAAK,SAAU8G,GAClElF,EAASlB,KAAK,KAAMoG,EAAeJ,UAAWI,EAAeH,SAC/D,GACF,CACF,CAwBA,SAASrF,EAAUC,GACbR,GAAYS,QAAQC,MAAM,oBAAqBF,EACrD,CAmBA,MAAO,CACLwF,SA5GF,SAAkB/G,QACU,IAAfsG,EAAMtG,IAAsBuG,EAAWvG,EAAK,MACvD,IAAIgH,EAAW,IAAIH,EAAoB7G,GACvC,MAAO,CAAEa,MAAOyF,EAAMtG,GAAMiH,SAAUD,EACxC,EAyGEP,YAAaA,EACbhE,aApCF,SAAsByE,GACpBnG,EAAamG,CACf,EAoCD,CA9LD,GCHA,EAJe,CAAEC,MAAK,SAAQ,UAAS,G","sources":["webpack://Astral/webpack/universalModuleDefinition","webpack://Astral/webpack/bootstrap","webpack://Astral/webpack/runtime/define property getters","webpack://Astral/webpack/runtime/hasOwnProperty shorthand","webpack://Astral/webpack/runtime/make namespace object","webpack://Astral/./src/event.js","webpack://Astral/./src/layout.js","webpack://Astral/./src/context.js","webpack://Astral/./src/index.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Astral\"] = factory();\n\telse\n\t\troot[\"Astral\"] = factory();\n})(self, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * @namespace Astral.event\n * @desc Event handling\n * @memberof! Astral\n * @public\n * @example Astral.event.subscribe('eventName', function(data){ console.log(data) });\n * @example Astral.event.publish('eventName', {foo: 'bar'});\n * @example Astral.event.unsubscribe('eventName', callback);\n * @example Astral.event.unsubscribeAll('eventName');\n * @example Astral.event.setDebugMode(true);\n * @example Astral.event.setDebugMode(false);\n */\nexport default (function () {\n /**\n * @desc Event subscribers\n * @memberof! Astral.event\n * @private\n * @type {Object}\n * @name _eventSubscribers\n */\n\n const _eventSubscribers = {};\n\n /**\n * @desc Debug mode\n * @memberof! Astral.event\n * @private\n * @type {Boolean}\n * @name _debugMode\n * @default false\n * @example Astral.event.setDebugMode(true);\n * @example Astral.event.setDebugMode(false);\n */\n let _debugMode = false;\n\n function _removeFromArray(array, element) {\n var index = array.indexOf(element);\n if (index > -1) array.splice(index, 1);\n }\n\n // public methods\n\n /**\n * Subscribe to an event\n * @param {String} eventName Name of the event to listen to\n * @param {Function} callback Function to trigger upon event\n * @memberof! Astral.event\n * @returns {void}\n * @public\n * @example Astral.event.subscribe('eventName', function(data){ console.log(data) });\n */\n\n function subscribe(eventName, callback) {\n if (!Array.isArray(_eventSubscribers[eventName])) {\n _eventSubscribers[eventName] = [];\n _debugLog('Event: ' + eventName + ' subcribers list initialized');\n }\n if (_eventSubscribers[eventName].indexOf(callback) === -1) {\n _eventSubscribers[eventName].push(callback);\n _debugLog('Event: ' + eventName, '\\nCallback:', callback, '\\nAction: callback added (subscribed)');\n }\n }\n\n /**\n * Publish an event to trigger subscribed callbacks\n * @param {String} eventName Name of the event to publish\n * @param {Any} data Data to be passed to the event's callbacks.\n * @returns {void}\n * @memberof! Astral.event\n * @public\n * @example Astral.event.publish('eventName', {foo: 'bar'});\n * @example Astral.event.publish('eventName', 'foo');\n */\n function publish(eventName, data) {\n if (!Array.isArray(_eventSubscribers[eventName])) {\n _debugLog('Event: ' + eventName + '\\nData: ' + JSON.stringify(data) + '\\nAction: No subscribers found');\n return;\n }\n _eventSubscribers[eventName].forEach(function (callback) {\n callback(data);\n _debugLog('Event: ' + eventName + '\\nData: ' + JSON.stringify(data), '\\nCallback: ', callback, '\\nAction: callback executed');\n });\n }\n\n /**\n * Remove an event subscription\n * @param {String} eventName Event Name\n * @param {Function} callback Function to remove\n * @memberof! Astral.event\n * @returns {void}\n * @public\n * @example Astral.event.unsubscribe('eventName', callback);\n */\n function unsubscribe(eventName, callback) {\n if (!Array.isArray(_eventSubscribers[eventName])) {\n _debugLog('Event: ' + eventName + ' | No subscribers found to unsubscribe');\n return;\n }\n\n for (var i = 0; i < _eventSubscribers[eventName].length; i++) {\n if (_eventSubscribers[eventName][i] === callback) _removeFromArray(_eventSubscribers[eventName], callback);\n }\n _debugLog('Event: ' + eventName, '\\nCallback:', callback, '\\nAction: callback removed (unsubscribed)');\n }\n\n /**\n * Remove all events from a subscription\n * @param {String} eventName Event Name\n * @memberof! Astral.event\n * @returns {void}\n * @public\n * @example Astral.event.unsubscribeAll('eventName');\n */\n function unsubscribeAll(eventName) {\n if (!Array.isArray(_eventSubscribers[eventName])) {\n for (var key in _eventSubscribers) {\n _removeFromArray(_eventSubscribers[key], _eventSubscribers[key]);\n }\n _debugLog('Removed all subscriptions because no event name was given to unsubscribeAll function');\n return;\n }\n\n for (var i = 0; i < _eventSubscribers[eventName].length; i++) {\n _removeFromArray(_eventSubscribers[eventName], _eventSubscribers[eventName][i]);\n }\n _debugLog('Event: ' + eventName + '\\nAction: All callbacks removed (unsubscribed)');\n }\n\n /**\n * @desc Set debug mode\n * @memberof! Astral.event\n * @param {Boolean} debugMode\n * @returns {void}\n * @public\n * @name setDebugMode\n * @example Astral.event.setDebugMode(true);\n * @example Astral.event.setDebugMode(false);\n */\n function setDebugMode(debugMode) {\n _debugMode = debugMode;\n _debugLog('Debug mode set to: ' + debugMode);\n }\n\n /**\n * @desc Log debug messages\n * @memberof! Astral.event\n * @param {String} msg\n * @returns {void}\n * @param msg\n * @private\n * @name _debugLog\n */\n function _debugLog(msg) {\n if (_debugMode) console.debug('Astral.event $:', msg);\n }\n\n /**\n * @desc Public methods\n * @memberof! Astral.event\n * @public\n * @name publicMethods\n * @type {Object}\n * @property {Function} subscribe\n * @property {Function} publish\n * @property {Function} unsubscribe\n * @property {Function} unsubscribeAll\n * @property {Function} setDebugMode\n */\n return {\n subscribe: subscribe,\n publish: publish,\n unsubscribe: unsubscribe,\n unsubscribeAll: unsubscribeAll,\n setDebugMode: setDebugMode,\n };\n})();\n","import event from './event';\n\n/**\n * @namespace Astral.layout\n * @description Astral layout module\n * @public\n * @example Astral.layout.applyIf(successCallback, failCallback, [ {breakpoint: Astral.layout.getBreakpointLabels().ExtraLarge, selector: \"<=\"}, {breakpoint: Astral.layout.getBreakpointLabels().Large, selector: \">=\"} ], true);\n * @memberof! Astral\n */\nexport default (function () {\n /**\n * @typedef {Object} Breakpoint\n * @property {Number} minWidth Minimum width of the breakpoint\n * @property {Number} maxWidth Maximum width of the breakpoint\n * @property {Number} minHeight Minimum height of the breakpoint\n * @memberof! Astral.layout\n * @public\n * @example Astral.layout.getBreakpoint(Astral.layout.getWindowSize());\n * @example Astral.layout.getBreakpointFromLabel(Astral.layout.getBreakpointLabels().ExtraLarge);\n * @example Astral.layout.getBreakpointLabels();\n */\n\n /**\n * @typedef {Object} getBreakpointLabels\n * @property {String} extraLarge Extra large breakpoint label\n * @property {String} large Large breakpoint label\n * @property {String} medium Medium breakpoint label\n * @property {String} small Small breakpoint label\n * @property {String} extraSmall Extra small breakpoint label\n * @property {String} Other Other breakpoint label\n * @memberof! Astral.layout\n * @public\n * @example Astral.layout.getBreakpointLabels();\n * @example Astral.layout.getBreakpointLabels().ExtraLarge;\n * @example Astral.layout.getBreakpointLabels().Large;\n * @example Astral.layout.getBreakpointLabels().Medium;\n * @example Astral.layout.getBreakpointLabels().Small;\n * @example Astral.layout.getBreakpointLabels().ExtraSmall;\n * @example Astral.layout.getBreakpointLabels().Other;\n * @example Astral.layout.getBreakpointFromLabel(Astral.layout.getBreakpointLabels().ExtraLarge);\n */\n\n /**\n * @typedef {Object} Config\n * @property {Breakpoints} breakpoints Breakpoints configuration\n * @memberof! Astral.layout\n * @public\n * @example Astral.layout.config({ breakpoints: { extraLarge: { minWidth: 1920, maxWidth: Infinity, minHeight: 840, }, large: { minWidth: 1280, maxWidth: 1920, minHeight: 646, }, medium: { minWidth: 960, maxWidth: 1280, minHeight: 380, }, small: { minWidth: 600, maxWidth: 960, minHeight: 0, }, extraSmall: { minWidth: 0, maxWidth: 600, minHeight: 0, }, Other: { minWidth: 600, maxWidth: Infinity, minHeight: 0, }, } });\n */\n /**\n * @typedef {Object} WindowSize\n * @property {Number} WIDTH Width of the window\n * @property {Number} HEIGHT Height of the window\n * @memberof! Astral.layout\n * @public\n * @example Astral.layout.getWindowSize();\n * @example Astral.layout.getBreakpoint(Astral.layout.getWindowSize());\n */\n\n /**\n * @typedef {Object} Breakpoints\n * @property {Breakpoint} extraLarge Extra large breakpoint\n * @property {Breakpoint} large Large breakpoint\n * @property {Breakpoint} medium Medium breakpoint\n * @property {Breakpoint} small Small breakpoint\n * @property {Breakpoint} extraSmall Extra small breakpoint\n * @property {Breakpoint} Other Other breakpoint that is not matched by any defined breakpoint\n * @memberof! Astral.layout\n * @public\n * @example Astral.layout.config({ breakpoints: { extraLarge: { minWidth: 1920, maxWidth: Infinity, minHeight: 840, }, large: { minWidth: 1280, maxWidth: 1920, minHeight: 646, }, medium: { minWidth: 960, maxWidth: 1280, minHeight: 380, }, small: { minWidth: 600, maxWidth: 960, minHeight: 0, }, extraSmall: { minWidth: 0, maxWidth: 600, minHeight: 0, }, Other: { minWidth: 600, maxWidth: Infinity, minHeight: 0, }, } });\n *\n */\n /**\n * @typedef {Object} Orientation\n * @property {String} portrait Portrait orientation\n * @property {String} landscape Landscape orientation\n * @memberof! Astral.layout\n * @public\n * @example Astral.layout.getOrientation();\n */\n\n /**\n * @desc Breakpoint labels\n * @memberof! Astral.layout\n * @private\n * @type {getBreakpointLabels}\n * @example Astral.layout.getBreakpointLabels();\n * @example Astral.layout.getBreakpointLabels().ExtraLarge;\n * @example Astral.layout.getBreakpointLabels().Large;\n * @example Astral.layout.getBreakpointLabels().Medium;\n * @example Astral.layout.getBreakpointLabels().Small;\n * @example Astral.layout.getBreakpointLabels().ExtraSmall;\n * @example Astral.layout.getBreakpointLabels().Other;\n * @example Astral.layout.getBreakpointFromLabel(Astral.layout.getBreakpointLabels().ExtraLarge);\n */\n const DEFAULT_BREAKPOINT_LABELS = {\n ExtraLarge: 'ExtraLarge',\n Large: 'Large',\n Medium: 'Medium',\n Small: 'Small',\n ExtraSmall: 'ExtraSmall',\n Other: 'Other',\n };\n\n /**\n * @desc Default breakpoints\n * @memberof! Astral.layout\n * @private\n * @type {Breakpoints}\n * @example Astral.layout.config({ breakpoints: { extraLarge: { minWidth: 1920, maxWidth: Infinity, minHeight: 840, }, large: { minWidth: 1280, maxWidth: 1920, minHeight: 646, }, medium: { minWidth: 960, maxWidth: 1280, minHeight: 380, }, small: { minWidth: 600, maxWidth: 960, minHeight: 0, }, extraSmall: { minWidth: 0, maxWidth: 600, minHeight: 0, }, Other: { minWidth: 600, maxWidth: Infinity, minHeight: 0, }, } });\n * @example Astral.layout.getBreakpoint(Astral.layout.getWindowSize());\n */\n const DEFAULT_BREAKPOINTS = {\n [DEFAULT_BREAKPOINT_LABELS.ExtraLarge]: {\n minWidth: 1920,\n maxWidth: Infinity,\n minHeight: 840,\n },\n [DEFAULT_BREAKPOINT_LABELS.Large]: {\n minWidth: 1280,\n maxWidth: 1920,\n minHeight: 646,\n },\n [DEFAULT_BREAKPOINT_LABELS.Medium]: {\n minWidth: 960,\n maxWidth: 1280,\n minHeight: 380,\n },\n [DEFAULT_BREAKPOINT_LABELS.Small]: {\n minWidth: 600,\n maxWidth: 960,\n minHeight: 0,\n },\n [DEFAULT_BREAKPOINT_LABELS.ExtraSmall]: {\n minWidth: 0,\n maxWidth: 600,\n minHeight: 0,\n },\n [DEFAULT_BREAKPOINT_LABELS.Other]: {\n minWidth: 600,\n maxWidth: Infinity,\n minHeight: 0,\n },\n };\n\n /**\n * @desc Default configuration\n * @memberof! Astral.layout\n * @private\n * @type {Config}\n * @example Astral.layout.config({ breakpoints: { extraLarge: { minWidth: 1920, maxWidth: Infinity, minHeight: 840, }, large: { minWidth: 1280, maxWidth: 1920, minHeight: 646, }, medium: { minWidth: 960, maxWidth: 1280, minHeight: 380, }, small: { minWidth: 600, maxWidth: 960, minHeight: 0, }, extraSmall: { minWidth: 0, maxWidth: 600, minHeight: 0, }, Other: { minWidth: 600, maxWidth: Infinity, minHeight: 0, }, } });\n */\n const DEFAULT_CONFIG = {\n breakpoints: DEFAULT_BREAKPOINTS,\n };\n\n /**\n * @desc Configuration\n * @memberof! Astral.layout\n * @private\n * @type {Config}\n * @example Astral.layout.config({ breakpoints: { extraLarge: { minWidth: 1920, maxWidth: Infinity, minHeight: 840, }, large: { minWidth: 1280, maxWidth: 1920, minHeight: 646, }, medium: { minWidth: 960, maxWidth: 1280, minHeight: 380, }, small: { minWidth: 600, maxWidth: 960, minHeight: 0, }, extraSmall: { minWidth: 0, maxWidth: 600, minHeight: 0, }, Other: { minWidth: 600, maxWidth: Infinity, minHeight: 0, }, } });\n */\n let config = DEFAULT_CONFIG;\n\n let breakpointLabels = DEFAULT_BREAKPOINT_LABELS;\n\n /**\n * @desc Astral layout events\n * @memberof! Astral.layout\n * @private\n * @type {Object}\n * @name ASTRAL_LAYOUT_EVENTS\n * @property {String} SCREEN_RESIZE Screen resize event\n * @property {String} ORIENTATION_CHANGE Orientation change event\n * @example Astral.layout.applyIf(successCallback, failCallback, [ {breakpoint: Astral.layout.getBreakpointLabels().ExtraLarge, selector: \"<=\"}, {breakpoint: Astral.layout.getBreakpointLabels().Large, selector: \">=\"} ], true);\n */\n const ASTRAL_LAYOUT_EVENTS = {\n SCREEN_RESIZE: 'astralInternalScreenResizeEvent',\n ORIENTATION_CHANGE: 'astralInternalOrientationChangeEvent',\n };\n\n /**\n * @desc Debug mode\n * @memberof! Astral.layout\n * @private\n * @type {Boolean}\n * @name debugMode\n * @default false\n * @example Astral.layout.setDebugMode(true);\n * @example Astral.layout.setDebugMode(false);\n */\n let debugMode = false;\n\n /** Private Functions */\n\n /**\n * @desc Subscribe to resize events on window\n * @memberof! Astral.layout\n * @private\n * @returns {void}\n */\n (function _setupResizeEvents() {\n window.addEventListener('resize', _publishResizeEvents);\n\n if (window.screen && window.screen.orientation) {\n window.screen.orientation.addEventListener('change', function () {\n _publishOrientationChangeEvents();\n });\n } else if (window.matchMedia) {\n /**\n * Handle outdated browsers, especially iOS Safari\n * The following code is outdated, and deprecated in most modern browsers\n * but is need to handle ios side of things regarding window orientation change.\n * mql = media query language\n */\n const mql = window.matchMedia('(orientation: portrait)');\n _publishOrientationChangeEvents();\n\n mql.addListener(function () {\n _publishOrientationChangeEvents();\n });\n }\n })();\n\n function _publishResizeEvents() {\n event.publish(ASTRAL_LAYOUT_EVENTS.SCREEN_RESIZE, getBreakpoint(getWindowSize()));\n }\n\n function _publishOrientationChangeEvents() {\n const orientation = getOrientation();\n event.publish(ASTRAL_LAYOUT_EVENTS.ORIENTATION_CHANGE, orientation);\n }\n\n function _resizeCallback(callback) {\n event.subscribe(ASTRAL_LAYOUT_EVENTS.SCREEN_RESIZE, callback);\n _publishResizeEvents();\n }\n\n function _orientationChangeCallback(callback) {\n event.subscribe(ASTRAL_LAYOUT_EVENTS.ORIENTATION_CHANGE, callback);\n _publishOrientationChangeEvents();\n }\n\n function _debugLog(message) {\n if (debugMode) console.debug(`Astral.layout $: ${message}`);\n }\n\n /** Public Functions */\n\n /**\n * Configure Astral layout module\n * @param {Config} newConfig New configuration\n * @memberof! Astral.layout\n * @public\n * @example Astral.layout.config({ breakpoints: { extraLarge: { minWidth: 1920, maxWidth: Infinity, minHeight: 840, }, large: { minWidth: 1280, maxWidth: 1920, minHeight: 646, }, medium: { minWidth: 960, maxWidth: 1280, minHeight: 380, }, small: { minWidth: 600, maxWidth: 960, minHeight: 0, }, extraSmall: { minWidth: 0, maxWidth: 600, minHeight: 0, }, Other: { minWidth: 600, maxWidth: Infinity, minHeight: 0, }, } });\n */\n function configure(newConfig) {\n if (!newConfig || !newConfig.breakpoints) throw new Error('Astral.layout: Invalid configuration');\n config = newConfig;\n breakpointLabels = Object.keys(config.breakpoints).reduce((acc, key) => {\n acc[key] = key;\n return acc;\n }, {});\n }\n\n /**\n * Get window size\n * @memberof! Astral.layout\n * @public\n * @example Astral.layout.getWindowSize();\n * @example Astral.layout.getBreakpoint(Astral.layout.getWindowSize());\n * @returns {WindowSize} Window size\n */\n function getWindowSize() {\n return {\n WIDTH: window.innerWidth,\n HEIGHT: window.innerHeight,\n };\n }\n\n /**\n * Get breakpoint from label\n * @param {String} breakpoint Breakpoint label\n * @memberof! Astral.layout\n * @public\n * @example Astral.layout.getBreakpointFromLabel(Astral.layout.getBreakpointLabels().ExtraLarge);\n * @returns {Breakpoint} Breakpoint\n * @throws {Error} No breakpoint found for label: \n */\n function getBreakpointFromLabel(breakpoint) {\n const match = config.breakpoints[breakpoint];\n if (match) return match;\n throw new Error('Astral.layout: No breakpoint found for label: ' + breakpoint);\n }\n\n /**\n * Get breakpoint\n * @param {WindowSize} screenSize Screen size\n * @memberof! Astral.layout\n * @public\n * @example Astral.layout.getBreakpoint(Astral.layout.getWindowSize());\n * @returns {Breakpoint} Breakpoint\n * @throws {Error} No breakpoint found for screen size\n */\n function getBreakpoint(screenSize) {\n for (const breakpoint in config.breakpoints) {\n const resObj = config.breakpoints[breakpoint];\n if (screenSize.WIDTH >= resObj.minWidth && screenSize.WIDTH <= resObj.maxWidth) {\n if (screenSize.HEIGHT >= resObj.minHeight) {\n return resObj;\n }\n }\n }\n throw new Error('Astral.layout: No breakpoint found for screen size: ' + screenSize.WIDTH + 'x' + screenSize.HEIGHT);\n }\n\n /**\n * Get orientation\n * @memberof! Astral.layout\n * @public\n * @example Astral.layout.getOrientation();\n * @returns {Orientation} Orientation\n */\n function getOrientation() {\n try {\n return window.screen.orientation.type;\n } catch (e) {\n if (window.matchMedia) {\n const mql = window.matchMedia('(orientation: portrait)');\n if (mql.matches) {\n return 'portrait';\n } else {\n return 'landscape';\n }\n } else {\n throw new Error('Astral.layout: No orientation found', e);\n }\n }\n }\n\n /**\n * Apply callback if conditions are met\n * @param {Function} callbackSuccess Callback to execute if conditions are met\n * @param {Function} callbackFail Callback to execute if conditions are not met\n * @param {Array} conditions Conditions to check\n * @param {Boolean} areAllConditionsNecessary Are all conditions necessary to execute callbackSuccess\n * @memberof! Astral.layout\n * @public\n * @example Astral.layout.applyIf(successCallback, failCallback, [ {breakpoint: Astral.layout.getBreakpointLabels().ExtraLarge, selector: \"<=\"}, {breakpoint: Astral.layout.getBreakpointLabels().Large, selector: \">=\"} ], true);\n * @returns {void}\n * @throws {Error} No conditions or callbackSuccess provided\n * @throws {Error} No breakpoint found for screen size\n * @example Astral.layout.applyIf(successCallback, failCallback, [ {breakpoint: Astral.layout.getBreakpointLabels().ExtraLarge, selector: \"<=\"}, {breakpoint: Astral.layout.getBreakpointLabels().Large, selector: \">=\"} ], true);\n */\n // TODO: we need to make this function more sophisticated\n function applyIf(callbackSuccess, callbackFail, conditions, areAllConditionsNecessary) {\n if (!conditions || conditions.length === 0 || !callbackSuccess)\n throw new Error('Astral.layout: No conditions or callbackSuccess provided');\n\n function _AstralJsMediaQuery() {\n let isMatched = false;\n\n for (let index = 0; index < conditions.length; index++) {\n let condition = conditions[index];\n let conditionMatched = false;\n if (typeof condition === 'object') {\n const matchedBreakpoint = getBreakpointFromLabel(condition.breakpoint);\n const windowSize = getWindowSize();\n\n switch (condition.selector) {\n case '<=':\n if (windowSize.WIDTH <= matchedBreakpoint.maxWidth) conditionMatched = true;\n break;\n\n case '>=':\n if (windowSize.WIDTH >= matchedBreakpoint.minWidth) conditionMatched = true;\n break;\n\n case '<':\n if (windowSize.WIDTH < matchedBreakpoint.maxWidth) conditionMatched = true;\n break;\n\n case '>':\n if (windowSize.WIDTH > matchedBreakpoint.minWidth) conditionMatched = true;\n break;\n\n case '=':\n default:\n if (\n windowSize.WIDTH >= matchedBreakpoint.minWidth &&\n windowSize.WIDTH <= matchedBreakpoint.maxWidth &&\n windowSize.HEIGHT >= matchedBreakpoint.minHeight\n )\n conditionMatched = true;\n break;\n }\n }\n\n if (typeof condition === 'function') {\n conditionMatched = condition.call();\n }\n\n _debugLog(`Condition ${index} matched: ${conditionMatched}`);\n\n if (conditionMatched) isMatched = true;\n\n if (isMatched && areAllConditionsNecessary && conditionMatched) {\n isMatched = true;\n }\n if (isMatched && areAllConditionsNecessary && !conditionMatched) {\n isMatched = false;\n }\n if (areAllConditionsNecessary && !conditionMatched) {\n isMatched = false;\n break;\n }\n if (!areAllConditionsNecessary && conditionMatched) {\n isMatched = true;\n break;\n }\n }\n\n if (isMatched) callbackSuccess.call();\n else callbackFail.call();\n }\n\n _resizeCallback(_AstralJsMediaQuery);\n _orientationChangeCallback(_AstralJsMediaQuery);\n }\n\n /**\n * Get breakpoint labels\n * @memberof! Astral.layout\n * @public\n * @example Astral.layout.getBreakpointLabels();\n * @example Astral.layout.getBreakpointLabels().ExtraLarge;\n * @example Astral.layout.getBreakpointLabels().Large;\n * @example Astral.layout.getBreakpointLabels().Medium;\n * @example Astral.layout.getBreakpointLabels().Small;\n * @example Astral.layout.getBreakpointLabels().ExtraSmall;\n * @example Astral.layout.getBreakpointLabels().Other;\n * @returns {getBreakpointLabels} Breakpoint labels\n */\n function getBreakpointLabels() {\n return breakpointLabels;\n }\n\n /**\n * Set debug mode\n * @param {Boolean} value Debug mode\n * @memberof! Astral.layout\n * @public\n * @example Astral.layout.setDebugMode(true);\n * @returns {void}\n */\n function setDebugMode(value) {\n debugMode = value;\n }\n\n return {\n config: configure,\n getWindowSize: getWindowSize,\n getOrientation: getOrientation,\n getBreakpoint: getBreakpoint,\n getBreakpointFromLabel: getBreakpointFromLabel,\n applyIf: applyIf,\n getBreakpointLabels: getBreakpointLabels,\n setDebugMode: setDebugMode,\n };\n})();\n","import event from './event';\n\n/**\n * @desc Astral Context\n * @namespace Astral.context\n * @type {{getState: (function(*): {onchange: ((function(*): void)|*), value: *}), updateState: updateState, setDebugMode: setDebugMode}}\n * @example Astral.context.getState(\"myState\");\n * @example Astral.context.updateState(\"myState\", \"myValue\");\n * @example Astral.context.setDebugMode(true);\n * @example Astral.context.setDebugMode(false);\n * @example Astral.context.getState(\"myState\").onchange(function(prevState, newState) { console.log(prevState, newState) });\n * @example Astral.context.getState(\"myState\").value;\n * @memberof! Astral\n * @public\n */\nexport default (function () {\n /**\n * @typedef {Object} State\n * @property {function} onchange - Callback function to trigger upon state change\n * @property {*} value - Current state value\n * @memberof! Astral.context\n * @public\n * @example Astral.context.getState(\"myState\");\n * @example Astral.context.getState(\"myState\").onchange(function(prevState, newState) { console.log(prevState, newState) });\n * @example Astral.context.getState(\"myState\").value;\n */\n\n /**\n * @typedef {Object} StateChangeObj\n * @property {*} prevState - Previous state value\n * @property {*} newState - New state value\n * @memberof! Astral.context\n * @public\n * @example Astral.context.getState(\"myState\");\n * @example Astral.context.getState(\"myState\").onchange(function(prevState, newState) { console.log(prevState, newState) });\n */\n\n /**\n * @typedef {Object} Listener\n * @property {function} onchange - Callback function to trigger upon state change\n * @memberof! Astral.context\n * @public\n * @example Astral.context.getState(\"myState\").onchange(function(prevState, newState) { console.log(prevState, newState) });\n */\n\n /**\n * @desc Astral Context Store\n * @memberof! Astral.context\n * @private\n * @type {Object}\n * @name store\n */\n\n /**\n * @desc Debug mode\n * @memberof! Astral.context\n * @private\n * @type {Boolean}\n * @name _debugMode\n * @default false\n */\n\n // initialize store and debug mode\n var store = {},\n _debugMode = false;\n\n /**\n * @desc Initialize a state\n * @name _initState\n * @param {String} key State key\n * @param {*} val State value\n * @returns {void}\n * @private\n * @memberof! Astral.context\n */\n function _initState(key, val) {\n if (typeof store[key] !== 'undefined') throw Error('Astral.context: State already initialized');\n store[key] = null;\n _debugLog('State: ' + key + '\\nValue: ' + val + '\\nAction: Initialized');\n updateState(key, val);\n }\n\n /**\n * @desc Get a state\n * @name getState\n * @param {String} key State key\n * @public\n * @memberof! Astral.context\n * @example Astral.context.getState(\"myState\");\n * @example Astral.context.getState(\"myState\").onchange(function(prevState, newState) { console.log(prevState, newState) });\n * @example Astral.context.getState(\"myState\").value;\n * @returns {State}\n */\n function getState(key) {\n if (typeof store[key] === 'undefined') _initState(key, null);\n var listener = new ListenerConstructor(key);\n return { value: store[key], onchange: listener };\n }\n\n /**\n * @desc Update a state\n * @name updateState\n * @returns {void}\n * @public\n * @param {String|Object} key - The key of the state to update, or an object containing key-value pairs to update multiple states.\n * @param {*} val - The value to update the state with (only applicable when key is a string).\n * @memberof! Astral.context\n * @example\n * // Update a single state\n * Astral.context.updateState(\"myState\", \"myValue\");\n *\n * // Update multiple states using an object\n * Astral.context.updateState({\n * state1: value1,\n * state2: value2,\n * });\n */\n function updateState(key, val) {\n if (typeof key === 'object' && key !== null) {\n // Update multiple states using an object\n for (const stateKey in key) {\n updateState(stateKey, key[stateKey]);\n }\n return;\n }\n\n if (typeof store[key] === 'undefined') {\n _initState(key, null);\n }\n\n var prevState = store[key];\n store[key] = val;\n\n _debugLog('State: ' + key + '\\nValue: ' + val + '\\nAction: Updated');\n event.publish('ASTRAL_CONTEXT_UPDATED_INTERNAL_' + key, {\n prevState: prevState,\n newState: store[key],\n });\n }\n\n /**\n * @desc Listener Constructor\n * @name ListenerConstructor\n * @param {String} key State key\n * @returns {function(*): void}\n * @private\n * @constructor\n * @memberof! Astral.context\n */\n function ListenerConstructor(key) {\n return function (callback) {\n event.subscribe('ASTRAL_CONTEXT_UPDATED_INTERNAL_' + key, function (stateChangeObj) {\n callback.call(null, stateChangeObj.prevState, stateChangeObj.newState);\n });\n };\n }\n\n /**\n * @desc Set debug mode\n * @name setDebugMode\n * @returns {void}\n * @public\n * @param {Boolean} mode\n * @memberof! Astral.context\n * @example Astral.context.setDebugMode(true);\n * @example Astral.context.setDebugMode(false);\n */\n function setDebugMode(mode) {\n _debugMode = mode;\n }\n\n /**\n * @desc Debug log\n * @name _debugLog\n * @returns {void}\n * @param {String} msg\n * @private\n * @memberof! Astral.context\n */\n function _debugLog(msg) {\n if (_debugMode) console.debug('Astral.context $:', msg);\n }\n\n /**\n * public methods\n * @memberof! Astral.context\n * @public\n * @type {Object}\n * @name context\n * @property {function} getState - Get a state\n * @property {function} updateState - Update a state\n * @property {function} setDebugMode - Set debug mode\n * @example Astral.context.getState(\"myState\");\n * @example Astral.context.updateState(\"myState\", \"myValue\");\n * @example Astral.context.setDebugMode(true);\n * @example Astral.context.setDebugMode(false);\n * @example Astral.context.getState(\"myState\").onchange(function(prevState, newState) { console.log(prevState, newState) });\n * @example Astral.context.getState(\"myState\").value;\n */\n\n return {\n getState: getState,\n updateState: updateState,\n setDebugMode: setDebugMode,\n };\n})();\n","import event from './event';\nimport layout from './layout';\nimport context from './context';\n\n/**\n * @desc Astral namespace\n * @namespace Astral\n */\nconst Astral = { event, layout, context };\n\nexport { event, layout, context };\n\nexport default Astral;\n"],"names":["root","factory","exports","module","define","amd","self","__webpack_require__","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","_eventSubscribers","_debugMode","_removeFromArray","array","element","index","indexOf","splice","_debugLog","msg","console","debug","subscribe","eventName","callback","Array","isArray","push","publish","data","forEach","JSON","stringify","unsubscribe","i","length","unsubscribeAll","setDebugMode","debugMode","DEFAULT_BREAKPOINT_LABELS","ExtraLarge","Large","Medium","Small","ExtraSmall","Other","config","breakpoints","minWidth","maxWidth","Infinity","minHeight","breakpointLabels","ASTRAL_LAYOUT_EVENTS","_publishResizeEvents","getBreakpoint","getWindowSize","_publishOrientationChangeEvents","orientation","getOrientation","WIDTH","window","innerWidth","HEIGHT","innerHeight","getBreakpointFromLabel","breakpoint","match","Error","screenSize","resObj","screen","type","e","matchMedia","matches","addEventListener","mql","addListener","newConfig","keys","reduce","acc","applyIf","callbackSuccess","callbackFail","conditions","areAllConditionsNecessary","_AstralJsMediaQuery","isMatched","condition","conditionMatched","matchedBreakpoint","windowSize","selector","message","_orientationChangeCallback","getBreakpointLabels","store","_initState","val","updateState","prevState","newState","stateKey","ListenerConstructor","stateChangeObj","getState","listener","onchange","mode","event"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"astral.min.js","mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,GAAIH,GACe,iBAAZC,QACdA,QAAgB,OAAID,IAEpBD,EAAa,OAAIC,GAClB,CATD,CASGK,MAAM,I,mBCRT,ICWIC,EDXAC,EAAsB,CEA1BA,EAAwB,CAACN,EAASO,KACjC,IAAI,IAAIC,KAAOD,EACXD,EAAoBG,EAAEF,EAAYC,KAASF,EAAoBG,EAAET,EAASQ,IAC5EE,OAAOC,eAAeX,EAASQ,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,IAE1E,ECNDF,EAAwB,CAACQ,EAAKC,IAAUL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,GCClFT,EAAyBN,IACH,oBAAXmB,QAA0BA,OAAOC,aAC1CV,OAAOC,eAAeX,EAASmB,OAAOC,YAAa,CAAEC,MAAO,WAE7DX,OAAOC,eAAeX,EAAS,aAAc,CAAEqB,OAAO,GAAO,G,0EHQ9D,SAAWhB,IAEP,SAAWiB,GACP,MAAMC,EAAoB,CAAC,EAC3B,IAAIC,GAAa,EACjB,SAASC,EAAiBC,EAAOC,GAC7B,MAAMC,EAAQF,EAAMG,QAAQF,GACxBC,GAAS,GACTF,EAAMI,OAAOF,EAAO,EAC5B,CACA,SAASG,EAAUC,GACXR,GACAS,QAAQC,MAAM,kBAAmBF,EACzC,CAqBAV,EAAMa,UAVN,SAAmBC,EAAWC,GACrBC,MAAMC,QAAQhB,EAAkBa,MACjCb,EAAkBa,GAAa,GAC/BL,EAAU,UAAUK,oCAEgC,IAApDb,EAAkBa,GAAWP,QAAQQ,KACrCd,EAAkBa,GAAWI,KAAKH,GAClCN,EAAU,UAAUK,gBAAwBC,0CAEpD,EAsBAf,EAAMmB,QAVN,SAAiBL,EAAWM,GACnBJ,MAAMC,QAAQhB,EAAkBa,IAIrCb,EAAkBa,GAAWO,SAAQ,SAAUN,GAC3CA,EAASK,GACTX,EAAU,UAAUK,YAAoBQ,KAAKC,UAAUH,iBAAoBL,+BAC/E,IANIN,EAAU,UAAUK,YAAoBQ,KAAKC,UAAUH,mCAO/D,EAsBApB,EAAMwB,YAXN,SAAqBV,EAAWC,GAC5B,GAAKC,MAAMC,QAAQhB,EAAkBa,IAArC,CAIA,IAAK,IAAIW,EAAI,EAAGA,EAAIxB,EAAkBa,GAAWY,OAAQD,IACjDxB,EAAkBa,GAAWW,KAAOV,GACpCZ,EAAiBF,EAAkBa,GAAYC,GAEvDN,EAAU,UAAUK,gBAAwBC,6CAL5C,MAFIN,EAAU,UAAUK,yCAQ5B,EAuBAd,EAAM2B,eAbN,SAAwBb,GACpB,GAAKE,MAAMC,QAAQhB,EAAkBa,IAArC,CAOA,IAAK,IAAIW,EAAI,EAAGA,EAAIxB,EAAkBa,GAAWY,OAAQD,IACrDtB,EAAiBF,EAAkBa,GAAYb,EAAkBa,GAAWW,IAEhFhB,EAAU,UAAUK,kDAJpB,KANA,CACI,IAAK,MAAM5B,KAAOe,EACdE,EAAiBF,EAAkBf,GAAMe,EAAkBf,IAE/DuB,EAAU,uFAEd,CAKJ,EAgBAT,EAAM4B,aAJN,SAAsBC,GAClB3B,EAAa2B,EACbpB,EAAU,sBAAwBoB,EACtC,CAEH,CAhHD,CAgHW9C,EAAOiB,QAAUjB,EAAOiB,MAAQ,CAAC,GAC/C,CAnHD,CAmHGjB,IAAWA,EAAS,CAAC,IACxB,QAAeA,EAAY,MIhI3B,IAAI,GACJ,SAAWA,IAEP,SAAW+C,GACP,MAAMC,EAA4B,CAC9BC,WAAY,aACZC,MAAO,QACPC,OAAQ,SACRC,MAAO,QACPC,WAAY,aACZC,MAAO,SAqCX,IAAIC,EAHmB,CACnBC,YAjCwB,CACxB,CAACR,EAA0BC,YAAa,CACpCQ,SAAU,KACVC,SAAUC,IACVC,UAAW,KAEf,CAACZ,EAA0BE,OAAQ,CAC/BO,SAAU,KACVC,SAAU,KACVE,UAAW,KAEf,CAACZ,EAA0BG,QAAS,CAChCM,SAAU,IACVC,SAAU,KACVE,UAAW,KAEf,CAACZ,EAA0BI,OAAQ,CAC/BK,SAAU,IACVC,SAAU,IACVE,UAAW,GAEf,CAACZ,EAA0BK,YAAa,CACpCI,SAAU,EACVC,SAAU,IACVE,UAAW,GAEf,CAACZ,EAA0BM,OAAQ,CAC/BG,SAAU,IACVC,SAAUC,IACVC,UAAW,KAOfC,EAAmBb,EACvB,MAAMc,EACa,kCADbA,EAEkB,uCAExB,IAAIhB,GAAY,EAuBhB,SAASiB,IACL,UAAcD,EAAoCE,EAAcC,KACpE,CACA,SAASC,IACL,MAAMC,EAAcC,IACpB,UAAcN,EAAyCK,EAC3D,CAuCA,SAASF,IACL,MAAO,CACHI,MAAOC,OAAOC,WACdC,OAAQF,OAAOG,YAEvB,CAWA,SAASC,EAAuBC,GAC5B,MAAMC,EAAQrB,EAAcC,YAAYmB,GACxC,GAAIC,EACA,OAAOA,EACX,MAAM,IAAIC,MAAM,iDAAmDF,EACvE,CAWA,SAASX,EAAcc,GACnB,IAAK,MAAMH,KAAcpB,EAAcC,YAAa,CAChD,MAAMuB,EAASxB,EAAcC,YAAYmB,GACzC,GAAIG,EAAWT,OAASU,EAAOtB,UAAYqB,EAAWT,OAASU,EAAOrB,UAC9DoB,EAAWN,QAAUO,EAAOnB,UAC5B,OAAOmB,CAGnB,CACA,MAAM,IAAIF,MAAM,uDAAyDC,EAAWT,MAAQ,IAAMS,EAAWN,OACjH,CASA,SAASJ,IACL,IACI,GAAIE,OAAOU,OAAOb,YAAYc,KAAKL,MAAM,YACrC,MAAO,WACN,GAAIN,OAAOU,OAAOb,YAAYc,KAAKL,MAAM,aAC1C,MAAO,WACf,CACA,MAAOM,GACH,IAAIZ,OAAOa,WAUP,MAAM,IAAIN,MAAM,yCAAyCK,KAVtC,CACnB,MAAME,EAAMd,OAAOa,WAAW,2BAC9B,GAAIC,GAAOA,EAAIC,QACX,MAAO,WAEN,GAAID,IAAQA,EAAIC,QACjB,MAAO,WAEf,CAIJ,CACA,MAAM,IAAIR,MAAM,uCACpB,EA3IA,WAEI,GADAP,OAAOgB,iBAAiB,SAAUvB,GAC9BO,OAAOU,QAAUV,OAAOU,OAAOb,YAC/BG,OAAOU,OAAOb,YAAYmB,iBAAiB,UAAU,WACjDpB,GACJ,SAEC,GAAII,OAAOa,WAAY,CAOxB,MAAMC,EAAMd,OAAOa,WAAW,2BAC9BjB,IACAkB,EAAIG,aAAY,WACZrB,GACJ,GACJ,CACH,CApBD,GAyDAnB,EAAOyC,OATP,SAAgBC,GACZ,IAAKA,IAAcA,EAAUjC,YACzB,MAAM,IAAIqB,MAAM,wCACpBtB,EAAgBkC,EAChB5B,EAAmBxD,OAAOqF,KAAKnC,EAAcC,aAAamC,QAAO,CAACC,EAAKzF,KACnEyF,EAAIzF,GAAOA,EACJyF,IACR,CAAC,EACR,EAgBA7C,EAAOkB,cAAgBA,EAgBvBlB,EAAO2B,uBAAyBA,EAqBhC3B,EAAOiB,cAAgBA,EA+BvBjB,EAAOqB,eAAiBA,EAkFxBrB,EAAO8C,QAlEP,SAAiBC,EAAiBC,EAAcC,EAAYC,GACxD,IAAKD,GAAoC,IAAtBA,EAAWrD,SAAiBmD,EAC3C,MAAM,IAAIjB,MAAM,4DACpB,SAASqB,IACL,IAAIC,GAAY,EAChB,IAAK,IAAI5E,EAAQ,EAAGA,EAAQyE,EAAWrD,OAAQpB,IAAS,CACpD,MAAM6E,EAAYJ,EAAWzE,GAC7B,IAAI8E,GAAmB,EACvB,GAAyB,iBAAdD,EAAwB,CAC/B,MAAME,EAAoB5B,EAAuB0B,EAAUzB,YACrD4B,EAAatC,IACnB,OAAQmC,EAAUI,UACd,IAAK,KACGD,EAAWlC,OAASiC,EAAkB5C,WACtC2C,GAAmB,GACvB,MACJ,IAAK,KACGE,EAAWlC,OAASiC,EAAkB7C,WACtC4C,GAAmB,GACvB,MACJ,IAAK,IACGE,EAAWlC,MAAQiC,EAAkB5C,WACrC2C,GAAmB,GACvB,MACJ,IAAK,IACGE,EAAWlC,MAAQiC,EAAkB7C,WACrC4C,GAAmB,GACvB,MAEJ,QACQE,EAAWlC,OAASiC,EAAkB7C,UACtC8C,EAAWlC,OAASiC,EAAkB5C,UACtC6C,EAAW/B,QAAU8B,EAAkB1C,YACvCyC,GAAmB,GAGnC,CAaA,GAZyB,mBAAdD,IACPC,EAAmBD,KA9JhBK,EAgKG,aAAalF,cAAkB8E,IA/J7CvD,GACAlB,QAAQC,MAAM,oBAAoB4E,KA+J1BJ,IACAF,GAAY,GACZA,GAAaF,GAA6BI,IAC1CF,GAAY,GAEZA,GAAaF,IAA8BI,IAC3CF,GAAY,GAEZF,IAA8BI,EAAkB,CAChDF,GAAY,EACZ,KACJ,CACA,IAAKF,GAA6BI,EAAkB,CAChDF,GAAY,EACZ,KACJ,CACJ,CAjLR,IAAmBM,EAkLPN,EACAL,IAEAC,GACR,CA9LJ,IAAyB/D,IA+LLkE,EA9LhB,YAAgBpC,EAAoC9B,GACpD+B,IAEJ,SAAoC/B,GAChC,YAAgB8B,EAAyC9B,GACzDkC,GACJ,CAyLIwC,CAA2BR,EAC/B,EAkBAnD,EAAO4D,oBAHP,WACI,OAAO9C,CACX,EAaAd,EAAOF,aAHP,SAAsB7B,GAClB8B,EAAY9B,CAChB,CAEH,CAhTD,CAgTYhB,EAAO+C,SAAW/C,EAAO+C,OAAS,CAAC,GAClD,CAnTD,CAmTG,IAAW,EAAS,CAAC,IACxB,QAAe,EAAa,OCrT5B,IAAI,GACJ,SAAW/C,IAEP,SAAW4G,GACP,MAAMC,EAAQ,CAAC,EACf,IAAI1F,GAAa,EACjB,SAAS2F,EAAW3G,EAAK4G,GACrBF,EAAM1G,GAAO,KACbuB,EAAU,UAAUvB,aAAe4G,0BACnCC,EAAY7G,EAAK4G,EACrB,CACA,SAASrF,EAAUC,GACXR,GACAS,QAAQC,MAAM,oBAAqBF,EAC3C,CA6CA,SAASqF,EAAY7G,EAAK4G,GACtB,GAAmB,iBAAR5G,GAA4B,OAARA,GAM/B,GAAmB,iBAARA,EAAkB,MACC,IAAf0G,EAAM1G,IACb2G,EAAW3G,EAAK,MAEpB,MAAM8G,EAAYJ,EAAM1G,GACxB0G,EAAM1G,GAAO4G,EACbrF,EAAU,UAAUvB,aAAe4G,sBACnC,UAAc,mCAAmC5G,IAAO,CACpD8G,UAAWA,EACXC,SAAUL,EAAM1G,IAExB,OAhBI,IAAK,MAAMgH,KAAYhH,EACnB6G,EAAYG,EAAUhH,EAAIgH,GAgBtC,CAtCAP,EAAQQ,SANR,SAAkBjH,QACY,IAAf0G,EAAM1G,IACb2G,EAAW3G,EAAK,MACpB,MAAMkH,EAtBV,SAA8BlH,GAC1B,OAAO,SAAU6B,GACb,YAAgB,mCAAmC7B,KAAO,SAAUmH,GAChEtF,EAASnB,KAAK,KAAMyG,EAAeL,UAAWK,EAAeJ,SACjE,GACJ,CACJ,CAgBqBK,CAAqBpH,GACtC,MAAO,CAAC0G,EAAM1G,GAAMkH,EACxB,EAwCAT,EAAQI,YAAcA,EActBJ,EAAQ/D,aAHR,SAAsB2E,GAClBrG,EAAaqG,CACjB,CAEH,CA3FD,CA2FaxH,EAAO4G,UAAY5G,EAAO4G,QAAU,CAAC,GACrD,CA9FD,CA8FG,IAAW,EAAS,CAAC,IACxB,QAAe,EAAc,QC9F7B,IAAI,GACJ,SAAW5G,GACPA,EAAOiB,MAAQ,EAAOjB,EAAO+C,OAAS,EAAQ/C,EAAO4G,QAAU,CAClE,CAFD,CAEG,IAAW,EAAS,CAAC,IACjB,MAAM,EAAQ,EAAO,EAAS,EAAQ,EAAU,EACvD,I","sources":["webpack://Astral/webpack/universalModuleDefinition","webpack://Astral/webpack/bootstrap","webpack://Astral/./src/event.ts","webpack://Astral/webpack/runtime/define property getters","webpack://Astral/webpack/runtime/hasOwnProperty shorthand","webpack://Astral/webpack/runtime/make namespace object","webpack://Astral/./src/layout.ts","webpack://Astral/./src/context.ts","webpack://Astral/./src/index.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Astral\"] = factory();\n\telse\n\t\troot[\"Astral\"] = factory();\n})(self, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","/**\n * @namespace Astral.event\n * @desc Event handling\n * @memberof! Astral\n * @public\n * @example Astral.event.subscribe('eventName', function(data){ console.log(data) });\n * @example Astral.event.publish('eventName', {foo: 'bar'});\n * @example Astral.event.unsubscribe('eventName', callback);\n * @example Astral.event.unsubscribeAll('eventName');\n * @example Astral.event.setDebugMode(true);\n * @example Astral.event.setDebugMode(false);\n */\nvar Astral;\n(function (Astral) {\n var event;\n (function (event) {\n const _eventSubscribers = {};\n let _debugMode = false;\n function _removeFromArray(array, element) {\n const index = array.indexOf(element);\n if (index > -1)\n array.splice(index, 1);\n }\n function _debugLog(msg) {\n if (_debugMode)\n console.debug('Astral.event $:', msg);\n }\n // public methods\n /**\n * Subscribe to an event\n * @param {String} eventName Name of the event to listen to\n * @param {Function} callback Function to trigger upon event\n * @memberof! Astral.event\n * @returns {void}\n * @public\n * @example Astral.event.subscribe('eventName', function(data){ console.log(data) });\n */\n function subscribe(eventName, callback) {\n if (!Array.isArray(_eventSubscribers[eventName])) {\n _eventSubscribers[eventName] = [];\n _debugLog(`Event: ${eventName} subscribers list initialized`);\n }\n if (_eventSubscribers[eventName].indexOf(callback) === -1) {\n _eventSubscribers[eventName].push(callback);\n _debugLog(`Event: ${eventName}\\nCallback: ${callback}\\nAction: callback added (subscribed)`);\n }\n }\n event.subscribe = subscribe;\n /**\n * Publish an event to trigger subscribed callbacks\n * @param {String} eventName Name of the event to publish\n * @param {*} data Data to be passed to the event's callbacks.\n * @returns {void}\n * @memberof! Astral.event\n * @public\n * @example Astral.event.publish('eventName', {foo: 'bar'});\n * @example Astral.event.publish('eventName', 'foo');\n */\n function publish(eventName, data) {\n if (!Array.isArray(_eventSubscribers[eventName])) {\n _debugLog(`Event: ${eventName}\\nData: ${JSON.stringify(data)}\\nAction: No subscribers found`);\n return;\n }\n _eventSubscribers[eventName].forEach(function (callback) {\n callback(data);\n _debugLog(`Event: ${eventName}\\nData: ${JSON.stringify(data)}\\nCallback: ${callback}\\nAction: callback executed`);\n });\n }\n event.publish = publish;\n /**\n * Remove an event subscription\n * @param {String} eventName Event Name\n * @param {Function} callback Function to remove\n * @memberof! Astral.event\n * @returns {void}\n * @public\n * @example Astral.event.unsubscribe('eventName', callback);\n */\n function unsubscribe(eventName, callback) {\n if (!Array.isArray(_eventSubscribers[eventName])) {\n _debugLog(`Event: ${eventName}\\nNo subscribers found to unsubscribe`);\n return;\n }\n for (let i = 0; i < _eventSubscribers[eventName].length; i++) {\n if (_eventSubscribers[eventName][i] === callback)\n _removeFromArray(_eventSubscribers[eventName], callback);\n }\n _debugLog(`Event: ${eventName}\\nCallback: ${callback}\\nAction: callback removed (unsubscribed)`);\n }\n event.unsubscribe = unsubscribe;\n /**\n * Remove all events from a subscription\n * @param {String} eventName Event Name\n * @memberof! Astral.event\n * @returns {void}\n * @public\n * @example Astral.event.unsubscribeAll('eventName');\n */\n function unsubscribeAll(eventName) {\n if (!Array.isArray(_eventSubscribers[eventName])) {\n for (const key in _eventSubscribers) {\n _removeFromArray(_eventSubscribers[key], _eventSubscribers[key]);\n }\n _debugLog('Removed all subscriptions because no event name was given to unsubscribeAll function');\n return;\n }\n for (let i = 0; i < _eventSubscribers[eventName].length; i++) {\n _removeFromArray(_eventSubscribers[eventName], _eventSubscribers[eventName][i]);\n }\n _debugLog(`Event: ${eventName}\\nAction: All callbacks removed (unsubscribed)`);\n }\n event.unsubscribeAll = unsubscribeAll;\n /**\n * @desc Set debug mode\n * @memberof! Astral.event\n * @param {Boolean} debugMode\n * @returns {void}\n * @public\n * @name setDebugMode\n * @example Astral.event.setDebugMode(true);\n * @example Astral.event.setDebugMode(false);\n */\n function setDebugMode(debugMode) {\n _debugMode = debugMode;\n _debugLog('Debug mode set to: ' + debugMode);\n }\n event.setDebugMode = setDebugMode;\n })(event = Astral.event || (Astral.event = {}));\n})(Astral || (Astral = {}));\nexport default Astral.event;\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import Event from './event';\nvar Astral;\n(function (Astral) {\n var layout;\n (function (layout) {\n const DEFAULT_BREAKPOINT_LABELS = {\n ExtraLarge: 'ExtraLarge',\n Large: 'Large',\n Medium: 'Medium',\n Small: 'Small',\n ExtraSmall: 'ExtraSmall',\n Other: 'Other',\n };\n const DEFAULT_BREAKPOINTS = {\n [DEFAULT_BREAKPOINT_LABELS.ExtraLarge]: {\n minWidth: 1920,\n maxWidth: Infinity,\n minHeight: 840,\n },\n [DEFAULT_BREAKPOINT_LABELS.Large]: {\n minWidth: 1280,\n maxWidth: 1920,\n minHeight: 646,\n },\n [DEFAULT_BREAKPOINT_LABELS.Medium]: {\n minWidth: 960,\n maxWidth: 1280,\n minHeight: 380,\n },\n [DEFAULT_BREAKPOINT_LABELS.Small]: {\n minWidth: 600,\n maxWidth: 960,\n minHeight: 0,\n },\n [DEFAULT_BREAKPOINT_LABELS.ExtraSmall]: {\n minWidth: 0,\n maxWidth: 600,\n minHeight: 0,\n },\n [DEFAULT_BREAKPOINT_LABELS.Other]: {\n minWidth: 600,\n maxWidth: Infinity,\n minHeight: 0,\n },\n };\n const DEFAULT_CONFIG = {\n breakpoints: DEFAULT_BREAKPOINTS,\n };\n let configuration = DEFAULT_CONFIG;\n let breakpointLabels = DEFAULT_BREAKPOINT_LABELS;\n const ASTRAL_LAYOUT_EVENTS = {\n SCREEN_RESIZE: 'astralInternalScreenResizeEvent',\n ORIENTATION_CHANGE: 'astralInternalOrientationChangeEvent',\n };\n let debugMode = false;\n /** Private Functions */\n (function _setupResizeEvents() {\n window.addEventListener('resize', _publishResizeEvents);\n if (window.screen && window.screen.orientation) {\n window.screen.orientation.addEventListener('change', function () {\n _publishOrientationChangeEvents();\n });\n }\n else if (window.matchMedia) {\n /**\n * Handle outdated browsers, especially iOS Safari\n * The following code is outdated, and deprecated in most modern browsers\n * but is need to handle ios side of things regarding window orientation change.\n * mql = media query language\n */\n const mql = window.matchMedia('(orientation: portrait)');\n _publishOrientationChangeEvents();\n mql.addListener(function () {\n _publishOrientationChangeEvents();\n });\n }\n })();\n function _publishResizeEvents() {\n Event.publish(ASTRAL_LAYOUT_EVENTS.SCREEN_RESIZE, getBreakpoint(getWindowSize()));\n }\n function _publishOrientationChangeEvents() {\n const orientation = getOrientation();\n Event.publish(ASTRAL_LAYOUT_EVENTS.ORIENTATION_CHANGE, orientation);\n }\n function _resizeCallback(callback) {\n Event.subscribe(ASTRAL_LAYOUT_EVENTS.SCREEN_RESIZE, callback);\n _publishResizeEvents();\n }\n function _orientationChangeCallback(callback) {\n Event.subscribe(ASTRAL_LAYOUT_EVENTS.ORIENTATION_CHANGE, callback);\n _publishOrientationChangeEvents();\n }\n function _debugLog(message) {\n if (debugMode)\n console.debug(`Astral.layout $: ${message}`);\n }\n /** Public Functions */\n /**\n * Configure Astral layout module\n * @param {Config} newConfig New configuration\n * @memberof! Astral.layout\n * @public\n * @example Astral.layout.config({ breakpoints: { extraLarge: { minWidth: 1920, maxWidth: Infinity, minHeight: 840, }, large: { minWidth: 1280, maxWidth: 1920, minHeight: 646, }, medium: { minWidth: 960, maxWidth: 1280, minHeight: 380, }, small: { minWidth: 600, maxWidth: 960, minHeight: 0, }, extraSmall: { minWidth: 0, maxWidth: 600, minHeight: 0, }, Other: { minWidth: 600, maxWidth: Infinity, minHeight: 0, }, } });\n */\n function config(newConfig) {\n if (!newConfig || !newConfig.breakpoints)\n throw new Error('Astral.layout: Invalid configuration');\n configuration = newConfig;\n breakpointLabels = Object.keys(configuration.breakpoints).reduce((acc, key) => {\n acc[key] = key;\n return acc;\n }, {});\n }\n layout.config = config;\n /**\n * Get window size\n * @memberof! Astral.layout\n * @public\n * @example Astral.layout.getWindowSize();\n * @example Astral.layout.getBreakpoint(Astral.layout.getWindowSize());\n * @returns {WindowSize} Window size\n */\n function getWindowSize() {\n return {\n WIDTH: window.innerWidth,\n HEIGHT: window.innerHeight,\n };\n }\n layout.getWindowSize = getWindowSize;\n /**\n * Get breakpoint from label\n * @param {String} breakpoint Breakpoint label\n * @memberof! Astral.layout\n * @public\n * @example Astral.layout.getBreakpointFromLabel(Astral.layout.getBreakpointLabels().ExtraLarge);\n * @returns {Breakpoint} Breakpoint\n * @throws {Error} No breakpoint found for label: \n */\n function getBreakpointFromLabel(breakpoint) {\n const match = configuration.breakpoints[breakpoint];\n if (match)\n return match;\n throw new Error('Astral.layout: No breakpoint found for label: ' + breakpoint);\n }\n layout.getBreakpointFromLabel = getBreakpointFromLabel;\n /**\n * Get breakpoint\n * @param {WindowSize} screenSize Screen size\n * @memberof! Astral.layout\n * @public\n * @example Astral.layout.getBreakpoint(Astral.layout.getWindowSize());\n * @returns {Breakpoint} Breakpoint\n * @throws {Error} No breakpoint found for screen size\n */\n function getBreakpoint(screenSize) {\n for (const breakpoint in configuration.breakpoints) {\n const resObj = configuration.breakpoints[breakpoint];\n if (screenSize.WIDTH >= resObj.minWidth && screenSize.WIDTH <= resObj.maxWidth) {\n if (screenSize.HEIGHT >= resObj.minHeight) {\n return resObj;\n }\n }\n }\n throw new Error('Astral.layout: No breakpoint found for screen size: ' + screenSize.WIDTH + 'x' + screenSize.HEIGHT);\n }\n layout.getBreakpoint = getBreakpoint;\n /**\n * Get orientation\n * @memberof! Astral.layout\n * @public\n * @example Astral.layout.getOrientation();\n * @returns {Orientation} Orientation\n */\n function getOrientation() {\n try {\n if (window.screen.orientation.type.match('portrait'))\n return 'portrait';\n else if (window.screen.orientation.type.match('landscape'))\n return 'landscape';\n }\n catch (e) {\n if (window.matchMedia) {\n const mql = window.matchMedia('(orientation: portrait)');\n if (mql && mql.matches) {\n return 'portrait';\n }\n else if (mql && !mql.matches) {\n return 'landscape';\n }\n }\n else {\n throw new Error(`Astral.layout: No orientation found.\\n${e}`);\n }\n }\n throw new Error(`Astral.layout: No orientation found.`);\n }\n layout.getOrientation = getOrientation;\n /**\n * Apply callback if conditions are met\n * @param {Function} callbackSuccess Callback to execute if conditions are met\n * @param {Function} callbackFail Callback to execute if conditions are not met\n * @param {Array} conditions Conditions to check\n * @param {Boolean} areAllConditionsNecessary Are all conditions necessary to execute callbackSuccess\n * @memberof! Astral.layout\n * @public\n * @example Astral.layout.applyIf(successCallback, failCallback, [ {breakpoint: Astral.layout.getBreakpointLabels().ExtraLarge, selector: \"<=\"}, {breakpoint: Astral.layout.getBreakpointLabels().Large, selector: \">=\"} ], true);\n * @returns {void}\n * @throws {Error} No conditions or callbackSuccess provided\n * @throws {Error} No breakpoint found for screen size\n * @example Astral.layout.applyIf(successCallback, failCallback, [ {breakpoint: Astral.layout.getBreakpointLabels().ExtraLarge, selector: \"<=\"}, {breakpoint: Astral.layout.getBreakpointLabels().Large, selector: \">=\"} ], true);\n */\n // TODO: we need to make this function more sophisticated\n function applyIf(callbackSuccess, callbackFail, conditions, areAllConditionsNecessary) {\n if (!conditions || conditions.length === 0 || !callbackSuccess)\n throw new Error('Astral.layout: No conditions or callbackSuccess provided');\n function _AstralJsMediaQuery() {\n let isMatched = false;\n for (let index = 0; index < conditions.length; index++) {\n const condition = conditions[index];\n let conditionMatched = false;\n if (typeof condition === 'object') {\n const matchedBreakpoint = getBreakpointFromLabel(condition.breakpoint);\n const windowSize = getWindowSize();\n switch (condition.selector) {\n case '<=':\n if (windowSize.WIDTH <= matchedBreakpoint.maxWidth)\n conditionMatched = true;\n break;\n case '>=':\n if (windowSize.WIDTH >= matchedBreakpoint.minWidth)\n conditionMatched = true;\n break;\n case '<':\n if (windowSize.WIDTH < matchedBreakpoint.maxWidth)\n conditionMatched = true;\n break;\n case '>':\n if (windowSize.WIDTH > matchedBreakpoint.minWidth)\n conditionMatched = true;\n break;\n case '=':\n default:\n if (windowSize.WIDTH >= matchedBreakpoint.minWidth &&\n windowSize.WIDTH <= matchedBreakpoint.maxWidth &&\n windowSize.HEIGHT >= matchedBreakpoint.minHeight)\n conditionMatched = true;\n break;\n }\n }\n if (typeof condition === 'function') {\n conditionMatched = condition();\n }\n _debugLog(`Condition ${index} matched: ${conditionMatched}`);\n if (conditionMatched)\n isMatched = true;\n if (isMatched && areAllConditionsNecessary && conditionMatched) {\n isMatched = true;\n }\n if (isMatched && areAllConditionsNecessary && !conditionMatched) {\n isMatched = false;\n }\n if (areAllConditionsNecessary && !conditionMatched) {\n isMatched = false;\n break;\n }\n if (!areAllConditionsNecessary && conditionMatched) {\n isMatched = true;\n break;\n }\n }\n if (isMatched)\n callbackSuccess();\n else\n callbackFail();\n }\n _resizeCallback(_AstralJsMediaQuery);\n _orientationChangeCallback(_AstralJsMediaQuery);\n }\n layout.applyIf = applyIf;\n /**\n * Get breakpoint labels\n * @memberof! Astral.layout\n * @public\n * @example Astral.layout.getBreakpointLabels();\n * @example Astral.layout.getBreakpointLabels().ExtraLarge;\n * @example Astral.layout.getBreakpointLabels().Large;\n * @example Astral.layout.getBreakpointLabels().Medium;\n * @example Astral.layout.getBreakpointLabels().Small;\n * @example Astral.layout.getBreakpointLabels().ExtraSmall;\n * @example Astral.layout.getBreakpointLabels().Other;\n * @returns {getBreakpointLabels} Breakpoint labels\n */\n function getBreakpointLabels() {\n return breakpointLabels;\n }\n layout.getBreakpointLabels = getBreakpointLabels;\n /**\n * Set debug mode\n * @param {Boolean} value Debug mode\n * @memberof! Astral.layout\n * @public\n * @example Astral.layout.setDebugMode(true);\n * @returns {void}\n */\n function setDebugMode(value) {\n debugMode = value;\n }\n layout.setDebugMode = setDebugMode;\n })(layout = Astral.layout || (Astral.layout = {}));\n})(Astral || (Astral = {}));\nexport default Astral.layout;\n","import Event from './event';\nvar Astral;\n(function (Astral) {\n var context;\n (function (context) {\n const store = {};\n let _debugMode = false;\n function _initState(key, val) {\n store[key] = null;\n _debugLog(`State: ${key}\\nValue: ${val}\\nAction: Initialized`);\n updateState(key, val);\n }\n function _debugLog(msg) {\n if (_debugMode)\n console.debug('Astral.context $:', msg);\n }\n function _ListenerConstructor(key) {\n return function (callback) {\n Event.subscribe(`ASTRAL_CONTEXT_UPDATED_INTERNAL_${key}`, function (stateChangeObj) {\n callback.call(null, stateChangeObj.prevState, stateChangeObj.newState);\n });\n };\n }\n // Public API\n /**\n * @desc Get a state\n * @name getState\n * @param {String} key State key\n * @public\n * @memberof! Astral.context\n * @example\n * const [value, onchange] = Astral.context.getState(\"myState\");\n * onchange(function(prevState, newState) { console.log(prevState, newState) });\n * @returns {StateTuple}\n */\n function getState(key) {\n if (typeof store[key] === 'undefined')\n _initState(key, null);\n const listener = _ListenerConstructor(key);\n return [store[key], listener];\n }\n context.getState = getState;\n /**\n * @desc Update a state\n * @name updateState\n * @returns {void}\n * @public\n * @param {String|Object} key - The key of the state to update, or an object containing key-value pairs to update multiple states.\n * @param {*} val - The value to update the state with (only applicable when key is a string).\n * @memberof! Astral.context\n * @example\n * // Update a single state\n * Astral.context.updateState(\"myState\", \"myValue\");\n *\n * // Update multiple states using an object\n * Astral.context.updateState({\n * state1: value1,\n * state2: value2,\n * });\n */\n function updateState(key, val) {\n if (typeof key === 'object' && key !== null) {\n for (const stateKey in key) {\n updateState(stateKey, key[stateKey]);\n }\n return;\n }\n if (typeof key === 'string') {\n if (typeof store[key] === 'undefined') {\n _initState(key, null);\n }\n const prevState = store[key];\n store[key] = val;\n _debugLog(`State: ${key}\\nValue: ${val}\\nAction: Updated`);\n Event.publish(`ASTRAL_CONTEXT_UPDATED_INTERNAL_${key}`, {\n prevState: prevState,\n newState: store[key],\n });\n }\n }\n context.updateState = updateState;\n /**\n * @desc Set debug mode\n * @name setDebugMode\n * @returns {void}\n * @public\n * @param {Boolean} mode\n * @memberof! Astral.context\n * @example Astral.context.setDebugMode(true);\n * @example Astral.context.setDebugMode(false);\n */\n function setDebugMode(mode) {\n _debugMode = mode;\n }\n context.setDebugMode = setDebugMode;\n })(context = Astral.context || (Astral.context = {}));\n})(Astral || (Astral = {}));\nexport default Astral.context;\n","import Event from './event';\nimport Layout from './layout';\nimport Context from './context';\nvar Astral;\n(function (Astral) {\n Astral.event = Event, Astral.layout = Layout, Astral.context = Context;\n})(Astral || (Astral = {}));\nexport const event = Event, layout = Layout, context = Context;\nexport default Astral;\n"],"names":["root","factory","exports","module","define","amd","self","Astral","__webpack_require__","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","event","_eventSubscribers","_debugMode","_removeFromArray","array","element","index","indexOf","splice","_debugLog","msg","console","debug","subscribe","eventName","callback","Array","isArray","push","publish","data","forEach","JSON","stringify","unsubscribe","i","length","unsubscribeAll","setDebugMode","debugMode","layout","DEFAULT_BREAKPOINT_LABELS","ExtraLarge","Large","Medium","Small","ExtraSmall","Other","configuration","breakpoints","minWidth","maxWidth","Infinity","minHeight","breakpointLabels","ASTRAL_LAYOUT_EVENTS","_publishResizeEvents","getBreakpoint","getWindowSize","_publishOrientationChangeEvents","orientation","getOrientation","WIDTH","window","innerWidth","HEIGHT","innerHeight","getBreakpointFromLabel","breakpoint","match","Error","screenSize","resObj","screen","type","e","matchMedia","mql","matches","addEventListener","addListener","config","newConfig","keys","reduce","acc","applyIf","callbackSuccess","callbackFail","conditions","areAllConditionsNecessary","_AstralJsMediaQuery","isMatched","condition","conditionMatched","matchedBreakpoint","windowSize","selector","message","_orientationChangeCallback","getBreakpointLabels","context","store","_initState","val","updateState","prevState","newState","stateKey","getState","listener","stateChangeObj","_ListenerConstructor","mode"],"sourceRoot":""} \ No newline at end of file diff --git a/jest.config.js b/jest.config.js index ce585c1..ed1effe 100644 --- a/jest.config.js +++ b/jest.config.js @@ -2,14 +2,14 @@ module.exports = { testEnvironment: 'jsdom', // Use Node.js environment for running tests roots: ['/specs'], // Specify the root directory for tests moduleDirectories: ['node_modules', 'src'], // Define the directories Jest should look for modules - moduleFileExtensions: ['js'], // Specify the file extensions of test files + moduleFileExtensions: ['js', 'ts'], // Specify the file extensions of test files testMatch: ['**/*.spec.js'], // Pattern for matching test files verbose: true, // Output detailed information for each test collectCoverage: true, // Enable code coverage collection coverageDirectory: '/coverage', // Specify the directory for coverage reports - collectCoverageFrom: ['src/**/*.js'], // Specify the files to include for code coverage + collectCoverageFrom: ['src/**/*.ts'], // Specify the files to include for code coverage coverageReporters: ['lcov', 'text-summary'], // Define the coverage report formats transform: { - '^.+\\.js?$': 'babel-jest', + '^.+\\.(js|jsx|ts|tsx)$': 'babel-jest', }, }; diff --git a/jsdoc.json b/jsdoc.json deleted file mode 100644 index 6daf802..0000000 --- a/jsdoc.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "source": { - "include": ["./src"], - "exclude": ["./node_modules"] - }, - "plugins": [], - "templates": { - "cleverLinks": false, - "monospaceLinks": false - }, - "opts": { - "recurse": true, - "destination": "./docs" - } -} diff --git a/package-lock.json b/package-lock.json index a7056e0..a233457 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,24 +1,29 @@ { "name": "astral.js", - "version": "1.0.4", + "version": "1.1.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "astral.js", - "version": "1.0.4", + "version": "1.1.0", "license": "MIT", "devDependencies": { - "@babel/preset-env": "^7.21.5", + "@babel/preset-env": "^7.22.0", + "@babel/preset-typescript": "^7.21.5", + "@typescript-eslint/eslint-plugin": "^5.59.7", + "@typescript-eslint/parser": "^5.59.7", "babel-jest": "^29.5.0", "eslint": "^8.41.0", "eslint-plugin-import": "^2.27.5", "eslint-plugin-prettier": "^4.2.1", "jest": "^29.5.0", "jest-environment-jsdom": "^29.5.0", - "jsdoc": "^4.0.2", "path": "^0.12.7", "prettier": "^2.8.8", + "ts-loader": "^9.4.3", + "typedoc": "^0.24.7", + "typescript": "^5.0.4", "webpack": "^5.83.1", "webpack-cli": "^5.1.1" } @@ -49,9 +54,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.21.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.7.tgz", - "integrity": "sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==", + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.0.tgz", + "integrity": "sha512-OgCMbbNCD/iA8cjMt+Zhp+nIC7XKaEaTG8zjvZPjGbhkppq1NIMWiZn7EaZRxUDHn4Ul265scRqg94N2WiFaGw==", "dev": true, "engines": { "node": ">=6.9.0" @@ -94,12 +99,12 @@ "dev": true }, "node_modules/@babel/generator": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.5.tgz", - "integrity": "sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==", + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.0.tgz", + "integrity": "sha512-tyzR0OsH88AelgukhL2rbEUCLKBGmy2G9Th/5vpyOt0zf44Be61kvIQXjCwTSX8t+qJ/vMwZfhK6mPdrMLZXRg==", "dev": true, "dependencies": { - "@babel/types": "^7.21.5", + "@babel/types": "^7.22.0", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -121,12 +126,12 @@ } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.21.5.tgz", - "integrity": "sha512-uNrjKztPLkUk7bpCNC0jEKDJzzkvel/W+HguzbN8krA+LPfC1CEobJEvAvGka2A/M+ViOqXdcRL0GqPUJSjx9g==", + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.0.tgz", + "integrity": "sha512-65sHfBfgwY7VAzJscbxFoNSdqWul2+dMfSPihzmTKRd3QEKdcGmWEy7qRaVzMYsH7oJ91UIGFIAzW3xg7ER13w==", "dev": true, "dependencies": { - "@babel/types": "^7.21.5" + "@babel/types": "^7.22.0" }, "engines": { "node": ">=6.9.0" @@ -152,15 +157,15 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.21.8", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.8.tgz", - "integrity": "sha512-+THiN8MqiH2AczyuZrnrKL6cAxFRRQDKW9h1YkBvbgKmAm6mwiacig1qT73DHIWMGo40GRnsEfN3LA+E6NtmSw==", + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.0.tgz", + "integrity": "sha512-7ayl01xtLFm/6n41nMIc0wIglPrAab56sxcsz+V6zA+q0aWcc7ycimmdRrSUSq55uQYHEssVA51/d63P4dMkGg==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-environment-visitor": "^7.21.5", "@babel/helper-function-name": "^7.21.0", - "@babel/helper-member-expression-to-functions": "^7.21.5", + "@babel/helper-member-expression-to-functions": "^7.22.0", "@babel/helper-optimise-call-expression": "^7.18.6", "@babel/helper-replace-supers": "^7.21.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", @@ -175,9 +180,9 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.21.8", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.8.tgz", - "integrity": "sha512-zGuSdedkFtsFHGbexAvNuipg1hbtitDLo2XE8/uf6Y9sOQV1xsYX/2pNbtedp/X0eU1pIt+kGvaqHCowkRbS5g==", + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.0.tgz", + "integrity": "sha512-zeXvgF5qWtHDCwJcUD94ujCvK1y8BgxH1lNLpAxnVgjeXrtVGnEqRTFpSkpiMaAQPLh1nMdw8z16Vd7G9KBeVQ==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", @@ -192,9 +197,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", - "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.0.tgz", + "integrity": "sha512-RnanLx5ETe6aybRi1cO/edaRH+bNYWaryCEmjDDYyNr4wnSzyOp8T0dWipmqVHKEY3AbVKUom50AKSlj1zmKbg==", "dev": true, "dependencies": { "@babel/helper-compilation-targets": "^7.17.7", @@ -243,12 +248,12 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.5.tgz", - "integrity": "sha512-nIcGfgwpH2u4n9GG1HpStW5Ogx7x7ekiFHbjjFRKXbn5zUvqO9ZgotCO4x1aNbKn/x/xOUaXEhyNHCwtFCpxWg==", + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.0.tgz", + "integrity": "sha512-nf2NhMw5E6vzxvUOPeqHnNxcCyTe7r8MJYIWzLaMosohfQTk6F2jepzprj4ux8ez0yTPjDyrDeboItaylgdaiw==", "dev": true, "dependencies": { - "@babel/types": "^7.21.5" + "@babel/types": "^7.22.0" }, "engines": { "node": ">=6.9.0" @@ -267,9 +272,9 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz", - "integrity": "sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==", + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.0.tgz", + "integrity": "sha512-drsR5/3eHuYs31uYLIXRK91+THB9+VAd2s3/4TY87Os5qrwr6YesM6GcNX5aEpCF6e9iKK0ZvTBTKqNyntEkvQ==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.21.5", @@ -277,9 +282,9 @@ "@babel/helper-simple-access": "^7.21.5", "@babel/helper-split-export-declaration": "^7.18.6", "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" + "@babel/template": "^7.21.9", + "@babel/traverse": "^7.22.0", + "@babel/types": "^7.22.0" }, "engines": { "node": ">=6.9.0" @@ -519,9 +524,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.21.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.8.tgz", - "integrity": "sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==", + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.0.tgz", + "integrity": "sha512-DA65VCJRetcFmJnt9/hEmRvXNCwk0V86dxG6p6N13hzDazaLRjGdTGPGgjxZOtLuFgWzOSRX4grybmRXwQ9bSg==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -546,14 +551,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", - "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.0.tgz", + "integrity": "sha512-THA2q9FkS/RVTqWt0IXNns3zyHc8kzfiDEK9+vkIYGMlyaV6i6O3IpOg/oODSKqtRqu7gzwONjIJqwPlRQT41A==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-plugin-utils": "^7.21.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-proposal-optional-chaining": "^7.20.7" + "@babel/plugin-transform-optional-chaining": "^7.22.0" }, "engines": { "node": ">=6.9.0" @@ -562,239 +567,6 @@ "@babel/core": "^7.13.0" } }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", - "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", - "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", - "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", - "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", - "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", - "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", - "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", - "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-proposal-unicode-property-regex": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", @@ -901,6 +673,21 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.0.tgz", + "integrity": "sha512-TFqy+gFAiTh8KlVS8/c6w97uhAVcCVyd2R0srMHVYymBcBK5N5P+bf8VG6tEAiYCZ3TLYvi6fpzU9Rq79t9oxw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-import-meta": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", @@ -1057,6 +844,22 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/plugin-transform-arrow-functions": { "version": "7.21.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz", @@ -1072,6 +875,24 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.0.tgz", + "integrity": "sha512-SLpCXbF08XTYRJ/QM0hn4DdgSQB6aAtCaS+zfrjx374ectu4JbpwyQv3fF0kAtPdfQkeFdz86Dajj8A6oYRM9g==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-async-to-generator": { "version": "7.20.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", @@ -1119,6 +940,39 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.0.tgz", + "integrity": "sha512-m04PcP0S4OR+NpRQNIOEPHVdGcXqbOEn+pIYzrqRTXMlOjKy6s7s30MZ1WzglHQhD/X/yhngun4yG0FqPszZzw==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.0", + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.0.tgz", + "integrity": "sha512-b6N2cduLeAmnZMHlLj0XB8108D4EHLtpv1fl7PudLjHf+yxFxnKvhuTn5vuQg61qzS+wxp5DBOcNo1W/GEsFWg==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.0", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, "node_modules/@babel/plugin-transform-classes": { "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", @@ -1204,6 +1058,22 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.0.tgz", + "integrity": "sha512-Rfuj4hqQoLoKWlEar7Y45KXQoOdBXRlbygBnft1bFOBSYXRegnhOw+rkGiGYGCGflG+pi1bU7+iNfzItQa7lSA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-exponentiation-operator": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", @@ -1220,6 +1090,22 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.0.tgz", + "integrity": "sha512-NkqdpxXHZG1CbXuu31weYMjAOeZ785n4ip/yXYg/4oZxdCg1jH10iR7oPJbZeyF99HhnTxqFnis3FTlpnh5Ovw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-for-of": { "version": "7.21.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.5.tgz", @@ -1252,6 +1138,22 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.0.tgz", + "integrity": "sha512-6sSCmFYjv4czjub/ESDp46/TQGEM6oH0/t0Zd1gj8qb+j3XY/+s1M8h+2EtJ5JYNQ6ZBxpmazCDwhwQT950Aug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-literals": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", @@ -1267,6 +1169,22 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.0.tgz", + "integrity": "sha512-tSYLi4c8H5K1iSCLCjA4xaYgw+zQEl7WUP9YI2WpwXkmryDC7+Pu/uD43XQos7Sm326OIC6Yf+6LuWjBs8JJKQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-member-expression-literals": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", @@ -1316,14 +1234,14 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", - "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.0.tgz", + "integrity": "sha512-hSo/4vBjCjwsol3nLDJG3QRDuNzvzofnyhKyCiSXpzqEVmkos9SODFC3xzDvvuE3AUjHUMgTpTRpJq16i62heA==", "dev": true, "dependencies": { "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-module-transforms": "^7.22.0", + "@babel/helper-plugin-utils": "^7.21.5", "@babel/helper-validator-identifier": "^7.19.1" }, "engines": { @@ -1350,13 +1268,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", - "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.0.tgz", + "integrity": "sha512-3bIivRwjbaMFYuP8OypIlTbZK0SxW3j9VpVQX/Yj2q0wG6GqOG30Vgmo5X7QW3TGi3rxrdYpKuwxqfb5aCnJkA==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.20.5", - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-create-regexp-features-plugin": "^7.22.0", + "@babel/helper-plugin-utils": "^7.21.5" }, "engines": { "node": ">=6.9.0" @@ -1366,12 +1284,63 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", - "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.0.tgz", + "integrity": "sha512-IZH0e2Fm8XmnZTXRzoRsHBBJ7wFzfeU22iiEZCi6EumrAjKOG6AdHpsxtBezG4SCQhqRS8DojQM8+bqtOBTQqw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.0.tgz", + "integrity": "sha512-KU2Or7uQqYKcL6rVLh8jThUBAKy1H+mxPx4E1omUqdSL+hVM9NriMjGFnnv+9xSn3jUMV5FQHsLQxgGLr/MWTw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.0.tgz", + "integrity": "sha512-dfbXAKlbPlDKXsY7fa/gRBWgI4n537TR4b5AnVCZ3RwQ1aVPxs52Xs3XHFxQMn3j4LmUhn8IL2nAYmNh6z2/Ew==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.0.tgz", + "integrity": "sha512-PHXQfxbe5EKp2+MuEdBFO4X1gsjvUZPjSDGvYz7PjWl8hZtYDCDxPrwZG+GwT/j6FnAmSz2bTZbQ5Jrh3fhRPg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.0", + "@babel/helper-compilation-targets": "^7.21.5", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.22.0" }, "engines": { "node": ">=6.9.0" @@ -1386,8 +1355,72 @@ "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.0.tgz", + "integrity": "sha512-x8HEst6X74Aut0TxZI4s1UbUCtqR7IW764w/o/tTIDsm9OY9g+y9BeNhfZ+GrN0/TErN1dBoHNxqo1JXHdfxyA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.0.tgz", + "integrity": "sha512-p5BZinFj92iSErcstoPK+e+MHJUEZ6Gmlu0EkP3DJ0Y/1XPNvlXxfAzuh8KkN+3wCsYRKLAxAsF6Sn8b/bfWaA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.0.tgz", + "integrity": "sha512-hlRM1lu7xeqW8EKKg9ByHwnCEIy0dNPd/fwffpwAck2H3C5mQCrWR9PdrjsywivsFuVAbyyAImU58vAR1cXrEw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.0.tgz", + "integrity": "sha512-3ao+Yt2kGQEXC894aBRCPo+zzW6YbM/iba+znKsZgEmDkc8RU/ODBfRpWP11qerQ0/mDzqjLpIG7HhpiKx0/cg==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.0", + "@babel/helper-plugin-utils": "^7.21.5" }, "engines": { "node": ">=6.9.0" @@ -1396,13 +1429,16 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", - "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.0.tgz", + "integrity": "sha512-P4bP+/4Rq6aQ/IZmAEUX+injSKhuOOMOZkXtB3x++P3k5BtyV8RkTvOtpqIv0mLpHge5ReGk0ijNBFRN0n2xEQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.22.0", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { "node": ">=6.9.0" @@ -1533,6 +1569,24 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.0.tgz", + "integrity": "sha512-gb4e3dCt39wymMSfvR+6S7roQ+OBBeBXVgCpttb+FZC5GPGJ5DkqncRupirCD36nnNt7gwNLaV3Gf+iHgt/CMQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.22.0", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-typescript": "^7.21.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-unicode-escapes": { "version": "7.21.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.21.5.tgz", @@ -1548,6 +1602,22 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.0.tgz", + "integrity": "sha512-uQacKjQ46K+yDfrbEyhEGkqqf5Zbn9WTKWgHOioHrTnOSVGYZSITlNNe0cP4fTgt4ZtjvMp85s4Hj86XS3v3uQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.0", + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-unicode-regex": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", @@ -1564,39 +1634,41 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.0.tgz", + "integrity": "sha512-w9ZRKNaJAk2vOhY6HTF7nmr+c5vJ//RCH7S0l4sWyts1x17W45oa6J3UYeZ/RXb74XHm1eFfLjqzY1Hg2mtyaw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.0", + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/preset-env": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.5.tgz", - "integrity": "sha512-wH00QnTTldTbf/IefEVyChtRdw5RJvODT/Vb4Vcxq1AZvtXj6T0YeX0cAcXhI6/BdGuiP3GcNIL4OQbI2DVNxg==", + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.0.tgz", + "integrity": "sha512-H520F1TsYY76tmtyre1AbdZfpxMnSp96t8XsEAVaH6ikfRLHMQ5qo053t7X1qAgJfp3r27dGqFuzCGQXHVrE6w==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.21.5", + "@babel/compat-data": "^7.22.0", "@babel/helper-compilation-targets": "^7.21.5", "@babel/helper-plugin-utils": "^7.21.5", "@babel/helper-validator-option": "^7.21.0", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7", - "@babel/plugin-proposal-async-generator-functions": "^7.20.7", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.21.0", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.20.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.21.0", - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.21.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.0", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", "@babel/plugin-syntax-import-assertions": "^7.20.0", + "@babel/plugin-syntax-import-attributes": "^7.22.0", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", @@ -1607,28 +1679,43 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.21.5", + "@babel/plugin-transform-async-generator-functions": "^7.22.0", "@babel/plugin-transform-async-to-generator": "^7.20.7", "@babel/plugin-transform-block-scoped-functions": "^7.18.6", "@babel/plugin-transform-block-scoping": "^7.21.0", + "@babel/plugin-transform-class-properties": "^7.22.0", + "@babel/plugin-transform-class-static-block": "^7.22.0", "@babel/plugin-transform-classes": "^7.21.0", "@babel/plugin-transform-computed-properties": "^7.21.5", "@babel/plugin-transform-destructuring": "^7.21.3", "@babel/plugin-transform-dotall-regex": "^7.18.6", "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-dynamic-import": "^7.22.0", "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-export-namespace-from": "^7.22.0", "@babel/plugin-transform-for-of": "^7.21.5", "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-json-strings": "^7.22.0", "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-logical-assignment-operators": "^7.22.0", "@babel/plugin-transform-member-expression-literals": "^7.18.6", "@babel/plugin-transform-modules-amd": "^7.20.11", "@babel/plugin-transform-modules-commonjs": "^7.21.5", - "@babel/plugin-transform-modules-systemjs": "^7.20.11", + "@babel/plugin-transform-modules-systemjs": "^7.22.0", "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5", - "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.0", + "@babel/plugin-transform-new-target": "^7.22.0", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.0", + "@babel/plugin-transform-numeric-separator": "^7.22.0", + "@babel/plugin-transform-object-rest-spread": "^7.22.0", "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.21.3", + "@babel/plugin-transform-optional-catch-binding": "^7.22.0", + "@babel/plugin-transform-optional-chaining": "^7.22.0", + "@babel/plugin-transform-parameters": "^7.22.0", + "@babel/plugin-transform-private-methods": "^7.22.0", + "@babel/plugin-transform-private-property-in-object": "^7.22.0", "@babel/plugin-transform-property-literals": "^7.18.6", "@babel/plugin-transform-regenerator": "^7.21.5", "@babel/plugin-transform-reserved-words": "^7.18.6", @@ -1638,13 +1725,15 @@ "@babel/plugin-transform-template-literals": "^7.18.9", "@babel/plugin-transform-typeof-symbol": "^7.18.9", "@babel/plugin-transform-unicode-escapes": "^7.21.5", + "@babel/plugin-transform-unicode-property-regex": "^7.22.0", "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/plugin-transform-unicode-sets-regex": "^7.22.0", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.21.5", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "core-js-compat": "^3.25.1", + "@babel/types": "^7.22.0", + "babel-plugin-polyfill-corejs2": "^0.4.1", + "babel-plugin-polyfill-corejs3": "^0.8.1", + "babel-plugin-polyfill-regenerator": "^0.5.0", + "core-js-compat": "^3.30.2", "semver": "^6.3.0" }, "engines": { @@ -1670,6 +1759,25 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/preset-typescript": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.21.5.tgz", + "integrity": "sha512-iqe3sETat5EOrORXiQ6rWfoOg2y68Cs75B9wNxdPW4kixJxh7aXQE1KPdWLDniC24T/6dSnguF33W9j/ZZQcmA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-validator-option": "^7.21.0", + "@babel/plugin-syntax-jsx": "^7.21.4", + "@babel/plugin-transform-modules-commonjs": "^7.21.5", + "@babel/plugin-transform-typescript": "^7.21.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/regjsgen": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", @@ -1677,9 +1785,9 @@ "dev": true }, "node_modules/@babel/runtime": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz", - "integrity": "sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==", + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.0.tgz", + "integrity": "sha512-TT6NB0oszYQ4oxLNUdG+FNHIc3MohXVCKA2BeyQ4WeM2VCSC6wBZ6P0Yfkdzxv+87D8Xk0LJyHeCKlWMvpZt0g==", "dev": true, "dependencies": { "regenerator-runtime": "^0.13.11" @@ -1689,33 +1797,33 @@ } }, "node_modules/@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "version": "7.21.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.21.9.tgz", + "integrity": "sha512-MK0X5k8NKOuWRamiEfc3KEJiHMTkGZNUjzMipqCGDDc6ijRl/B7RGSKVGncu4Ro/HdyzzY6cmoXuKI2Gffk7vQ==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/code-frame": "^7.21.4", + "@babel/parser": "^7.21.9", + "@babel/types": "^7.21.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz", - "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==", + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.0.tgz", + "integrity": "sha512-V5Zp3k0nFGWSIC7zYR8PnfdU6i6VYU4JnifdSSMlXM1GMojPAaelPsKmKPW4tWTmpX9GM+RzKl4Io0UVcHVlpw==", "dev": true, "dependencies": { "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.5", + "@babel/generator": "^7.22.0", "@babel/helper-environment-visitor": "^7.21.5", "@babel/helper-function-name": "^7.21.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.5", - "@babel/types": "^7.21.5", + "@babel/parser": "^7.22.0", + "@babel/types": "^7.22.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1724,9 +1832,9 @@ } }, "node_modules/@babel/types": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz", - "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==", + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.0.tgz", + "integrity": "sha512-NtXlm3f6cNWIv003cETdlz9sss0VMNtplyatFohxWPz90AbwuhCbHbQopkGis6bG1vOunDLN0FF/4Uv5i8LFZQ==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.21.5", @@ -2253,18 +2361,6 @@ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", "dev": true }, - "node_modules/@jsdoc/salty": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.5.tgz", - "integrity": "sha512-TfRP53RqunNe2HBobVBJ0VLhK1HbfvBYeTC1ahnN64PWvyYyGebmMiPkuwvD9fpw2ZbkoPb8Q7mwy0aR8Z9rvw==", - "dev": true, - "dependencies": { - "lodash": "^4.17.21" - }, - "engines": { - "node": ">=v12.0.0" - } - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -2415,108 +2511,379 @@ "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", "dev": true }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jsdom": { + "version": "20.0.1", + "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz", + "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/tough-cookie": "*", + "parse5": "^7.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.2.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.2.1.tgz", + "integrity": "sha512-DqJociPbZP1lbZ5SQPk4oag6W7AyaGMO6gSfRwq3PWl4PXTwJpRQJhDq4W0kzrg3w6tJ1SwlvGZ5uKFHY13LIg==", + "dev": true + }, + "node_modules/@types/prettier": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", + "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", + "dev": true + }, + "node_modules/@types/semver": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", + "dev": true + }, + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "node_modules/@types/tough-cookie": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.2.tgz", + "integrity": "sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==", + "dev": true + }, + "node_modules/@types/yargs": { + "version": "17.0.24", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", + "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.7.tgz", + "integrity": "sha512-BL+jYxUFIbuYwy+4fF86k5vdT9lT0CNJ6HtwrIvGh0PhH8s0yy5rjaKH2fDCrz5ITHy07WCzVGNvAmjJh4IJFA==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.59.7", + "@typescript-eslint/type-utils": "5.59.7", + "@typescript-eslint/utils": "5.59.7", + "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" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.7.tgz", + "integrity": "sha512-VhpsIEuq/8i5SF+mPg9jSdIwgMBBp0z9XqjiEay+81PYLJuroN+ET1hM5IhkiYMJd9MkTz8iJLt7aaGAgzWUbQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.59.7", + "@typescript-eslint/types": "5.59.7", + "@typescript-eslint/typescript-estree": "5.59.7", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.7.tgz", + "integrity": "sha512-FL6hkYWK9zBGdxT2wWEd2W8ocXMu3K94i3gvMrjXpx+koFYdYV7KprKfirpgY34vTGzEPPuKoERpP8kD5h7vZQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.59.7", + "@typescript-eslint/visitor-keys": "5.59.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.7.tgz", + "integrity": "sha512-ozuz/GILuYG7osdY5O5yg0QxXUAEoI4Go3Do5xeu+ERH9PorHBPSdvD3Tjp2NN2bNLh1NJQSsQu2TPu/Ly+HaQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "5.59.7", + "@typescript-eslint/utils": "5.59.7", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.7.tgz", + "integrity": "sha512-UnVS2MRRg6p7xOSATscWkKjlf/NDKuqo5TdbWck6rIRZbmKpVNTLALzNvcjIfHBE7736kZOFc/4Z3VcZwuOM/A==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.7.tgz", + "integrity": "sha512-4A1NtZ1I3wMN2UGDkU9HMBL+TIQfbrh4uS0WDMMpf3xMRursDbqEf1ahh6vAAe3mObt8k3ZATnezwG4pdtWuUQ==", "dev": true, "dependencies": { - "@types/istanbul-lib-coverage": "*" + "@typescript-eslint/types": "5.59.7", + "@typescript-eslint/visitor-keys": "5.59.7", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "dependencies": { - "@types/istanbul-lib-report": "*" + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@types/jsdom": { - "version": "20.0.1", - "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz", - "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", "dev": true, "dependencies": { - "@types/node": "*", - "@types/tough-cookie": "*", - "parse5": "^7.0.0" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, - "node_modules/@types/linkify-it": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz", - "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, - "node_modules/@types/markdown-it": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz", - "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==", + "node_modules/@typescript-eslint/utils": { + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.7.tgz", + "integrity": "sha512-yCX9WpdQKaLufz5luG4aJbOpdXf/fjwGMcLFXZVPUz3QqLirG5QcwwnIHNf8cjLjxK4qtzTO8udUtMQSAToQnQ==", "dev": true, "dependencies": { - "@types/linkify-it": "*", - "@types/mdurl": "*" + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.59.7", + "@typescript-eslint/types": "5.59.7", + "@typescript-eslint/typescript-estree": "5.59.7", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/@types/mdurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz", - "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==", - "dev": true - }, - "node_modules/@types/node": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.2.1.tgz", - "integrity": "sha512-DqJociPbZP1lbZ5SQPk4oag6W7AyaGMO6gSfRwq3PWl4PXTwJpRQJhDq4W0kzrg3w6tJ1SwlvGZ5uKFHY13LIg==", - "dev": true - }, - "node_modules/@types/prettier": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", - "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", - "dev": true + "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } }, - "node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true + "node_modules/@typescript-eslint/utils/node_modules/semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } }, - "node_modules/@types/tough-cookie": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.2.tgz", - "integrity": "sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==", + "node_modules/@typescript-eslint/utils/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, - "node_modules/@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.7.tgz", + "integrity": "sha512-tyN+X2jvMslUszIiYbF0ZleP+RqQsFVpGrKI6e0Eet1w8WmhsAtmzaqm8oM8WJQ1ysLwhnsK/4hYHJjOgJVfQQ==", "dev": true, "dependencies": { - "@types/yargs-parser": "*" + "@typescript-eslint/types": "5.59.7", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true - }, "node_modules/@webassemblyjs/ast": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", @@ -2835,6 +3202,12 @@ "node": ">=8" } }, + "node_modules/ansi-sequence-parser": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.0.tgz", + "integrity": "sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==", + "dev": true + }, "node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -2904,6 +3277,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/array.prototype.flat": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", @@ -3011,13 +3393,13 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", - "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.1.tgz", + "integrity": "sha512-7gKaNF3qkEt1w2p3Q2D2f+UofAKtjWT5B82VXKdDlPqJI8eLT8phBKHq6uLEOCAEtnAWW3lomu3+X6VJrFMoSg==", "dev": true, "dependencies": { "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.3", + "@babel/helper-define-polyfill-provider": "^0.4.0", "semver": "^6.1.1" }, "peerDependencies": { @@ -3025,25 +3407,25 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", - "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.1.tgz", + "integrity": "sha512-ikFrZITKg1xH6pLND8zT14UPgjKHiGLqex7rGEZCH2EvhsneJaJPemmpQaIZV5AL03II+lXylw3UmddDK8RU5Q==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3", - "core-js-compat": "^3.25.1" + "@babel/helper-define-polyfill-provider": "^0.4.0", + "core-js-compat": "^3.30.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", - "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.0.tgz", + "integrity": "sha512-hDJtKjMLVa7Z+LwnTCxoDLQj6wdc+B8dun7ayF2fYieI6OzfuvcLMB32ihJZ4UhCBwNYGl5bg/x/P9cMdnkc2g==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3" + "@babel/helper-define-polyfill-provider": "^0.4.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" @@ -3094,12 +3476,6 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -3216,18 +3592,6 @@ } ] }, - "node_modules/catharsis": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz", - "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==", - "dev": true, - "dependencies": { - "lodash": "^4.17.15" - }, - "engines": { - "node": ">= 10" - } - }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -3533,6 +3897,18 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -4279,6 +4655,34 @@ "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", "dev": true }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "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" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -4582,6 +4986,26 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/gopd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", @@ -4600,6 +5024,12 @@ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", @@ -5862,44 +6292,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/js2xmlparser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz", - "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==", - "dev": true, - "dependencies": { - "xmlcreate": "^2.0.4" - } - }, - "node_modules/jsdoc": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.2.tgz", - "integrity": "sha512-e8cIg2z62InH7azBBi3EsSEqrKx+nUtAS5bBcYTSpZFA+vhNPyhv8PTFZ0WsjOPDj04/dOLlm08EDcQJDqaGQg==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.20.15", - "@jsdoc/salty": "^0.2.1", - "@types/markdown-it": "^12.2.3", - "bluebird": "^3.7.2", - "catharsis": "^0.9.0", - "escape-string-regexp": "^2.0.0", - "js2xmlparser": "^4.0.2", - "klaw": "^3.0.0", - "markdown-it": "^12.3.2", - "markdown-it-anchor": "^8.4.1", - "marked": "^4.0.10", - "mkdirp": "^1.0.4", - "requizzle": "^0.2.3", - "strip-json-comments": "^3.1.0", - "underscore": "~1.13.2" - }, - "bin": { - "jsdoc": "jsdoc.js" - }, - "engines": { - "node": ">=12.0.0" - } - }, "node_modules/jsdom": { "version": "20.0.3", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", @@ -5987,6 +6379,12 @@ "node": ">=6" } }, + "node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -5996,15 +6394,6 @@ "node": ">=0.10.0" } }, - "node_modules/klaw": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", - "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.9" - } - }, "node_modules/kleur": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", @@ -6042,15 +6431,6 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, - "node_modules/linkify-it": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", - "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", - "dev": true, - "dependencies": { - "uc.micro": "^1.0.1" - } - }, "node_modules/loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", @@ -6072,12 +6452,6 @@ "node": ">=8" } }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -6099,6 +6473,12 @@ "yallist": "^3.0.2" } }, + "node_modules/lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", + "dev": true + }, "node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -6110,58 +6490,17 @@ "engines": { "node": ">=8" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/markdown-it": { - "version": "12.3.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", - "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1", - "entities": "~2.1.0", - "linkify-it": "^3.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - }, - "bin": { - "markdown-it": "bin/markdown-it.js" - } - }, - "node_modules/markdown-it-anchor": { - "version": "8.6.7", - "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz", - "integrity": "sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==", - "dev": true, - "peerDependencies": { - "@types/markdown-it": "*", - "markdown-it": "*" - } - }, - "node_modules/markdown-it/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/markdown-it/node_modules/entities": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "dependencies": { + "tmpl": "1.0.5" } }, "node_modules/marked": { @@ -6176,18 +6515,21 @@ "node": ">= 12" } }, - "node_modules/mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", - "dev": true - }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, "node_modules/micromatch": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", @@ -6252,18 +6594,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -6276,6 +6606,12 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", @@ -6551,6 +6887,15 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -6861,15 +7206,6 @@ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "dev": true }, - "node_modules/requizzle": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.4.tgz", - "integrity": "sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw==", - "dev": true, - "dependencies": { - "lodash": "^4.17.21" - } - }, "node_modules/resolve": { "version": "1.22.2", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", @@ -7086,6 +7422,18 @@ "node": ">=8" } }, + "node_modules/shiki": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.2.tgz", + "integrity": "sha512-ltSZlSLOuSY0M0Y75KA+ieRaZ0Trf5Wl3gutE7jzLuIcWxLp5i/uEnLoQWNvgKXQ5OMpGkJnVMRLAuzjc0LJ2A==", + "dev": true, + "dependencies": { + "ansi-sequence-parser": "^1.1.0", + "jsonc-parser": "^3.2.0", + "vscode-oniguruma": "^1.7.0", + "vscode-textmate": "^8.0.0" + } + }, "node_modules/side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -7476,6 +7824,58 @@ "node": ">=12" } }, + "node_modules/ts-loader": { + "version": "9.4.3", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.3.tgz", + "integrity": "sha512-n3hBnm6ozJYzwiwt5YRiJZkzktftRpMiBApHaJPoWLA+qetQBAXkHqCLM6nwSdRDimqVtA5ocIkcTRLMTt7yzA==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "typescript": "*", + "webpack": "^5.0.0" + } + }, + "node_modules/ts-loader/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-loader/node_modules/semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-loader/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/tsconfig-paths": { "version": "3.14.2", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", @@ -7509,6 +7909,27 @@ "node": ">=4" } }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, "node_modules/type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", @@ -7556,11 +7977,63 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", - "dev": true + "node_modules/typedoc": { + "version": "0.24.7", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.24.7.tgz", + "integrity": "sha512-zzfKDFIZADA+XRIp2rMzLe9xZ6pt12yQOhCr7cD7/PBTjhPmMyMvGrkZ2lPNJitg3Hj1SeiYFNzCsSDrlpxpKw==", + "dev": true, + "dependencies": { + "lunr": "^2.3.9", + "marked": "^4.3.0", + "minimatch": "^9.0.0", + "shiki": "^0.14.1" + }, + "bin": { + "typedoc": "bin/typedoc" + }, + "engines": { + "node": ">= 14.14" + }, + "peerDependencies": { + "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x" + } + }, + "node_modules/typedoc/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/typedoc/node_modules/minimatch": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", + "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/typescript": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", + "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=12.20" + } }, "node_modules/unbox-primitive": { "version": "1.0.2", @@ -7577,12 +8050,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/underscore": { - "version": "1.13.6", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", - "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", - "dev": true - }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -7716,6 +8183,18 @@ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", "dev": true }, + "node_modules/vscode-oniguruma": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", + "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", + "dev": true + }, + "node_modules/vscode-textmate": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", + "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==", + "dev": true + }, "node_modules/w3c-xmlserializer": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", @@ -8054,12 +8533,6 @@ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true }, - "node_modules/xmlcreate": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz", - "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==", - "dev": true - }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -8136,9 +8609,9 @@ } }, "@babel/compat-data": { - "version": "7.21.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.7.tgz", - "integrity": "sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==", + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.0.tgz", + "integrity": "sha512-OgCMbbNCD/iA8cjMt+Zhp+nIC7XKaEaTG8zjvZPjGbhkppq1NIMWiZn7EaZRxUDHn4Ul265scRqg94N2WiFaGw==", "dev": true }, "@babel/core": { @@ -8173,12 +8646,12 @@ } }, "@babel/generator": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.5.tgz", - "integrity": "sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==", + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.0.tgz", + "integrity": "sha512-tyzR0OsH88AelgukhL2rbEUCLKBGmy2G9Th/5vpyOt0zf44Be61kvIQXjCwTSX8t+qJ/vMwZfhK6mPdrMLZXRg==", "dev": true, "requires": { - "@babel/types": "^7.21.5", + "@babel/types": "^7.22.0", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -8194,12 +8667,12 @@ } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.21.5.tgz", - "integrity": "sha512-uNrjKztPLkUk7bpCNC0jEKDJzzkvel/W+HguzbN8krA+LPfC1CEobJEvAvGka2A/M+ViOqXdcRL0GqPUJSjx9g==", + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.0.tgz", + "integrity": "sha512-65sHfBfgwY7VAzJscbxFoNSdqWul2+dMfSPihzmTKRd3QEKdcGmWEy7qRaVzMYsH7oJ91UIGFIAzW3xg7ER13w==", "dev": true, "requires": { - "@babel/types": "^7.21.5" + "@babel/types": "^7.22.0" } }, "@babel/helper-compilation-targets": { @@ -8216,15 +8689,15 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.21.8", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.8.tgz", - "integrity": "sha512-+THiN8MqiH2AczyuZrnrKL6cAxFRRQDKW9h1YkBvbgKmAm6mwiacig1qT73DHIWMGo40GRnsEfN3LA+E6NtmSw==", + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.0.tgz", + "integrity": "sha512-7ayl01xtLFm/6n41nMIc0wIglPrAab56sxcsz+V6zA+q0aWcc7ycimmdRrSUSq55uQYHEssVA51/d63P4dMkGg==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-environment-visitor": "^7.21.5", "@babel/helper-function-name": "^7.21.0", - "@babel/helper-member-expression-to-functions": "^7.21.5", + "@babel/helper-member-expression-to-functions": "^7.22.0", "@babel/helper-optimise-call-expression": "^7.18.6", "@babel/helper-replace-supers": "^7.21.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", @@ -8233,9 +8706,9 @@ } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.21.8", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.8.tgz", - "integrity": "sha512-zGuSdedkFtsFHGbexAvNuipg1hbtitDLo2XE8/uf6Y9sOQV1xsYX/2pNbtedp/X0eU1pIt+kGvaqHCowkRbS5g==", + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.0.tgz", + "integrity": "sha512-zeXvgF5qWtHDCwJcUD94ujCvK1y8BgxH1lNLpAxnVgjeXrtVGnEqRTFpSkpiMaAQPLh1nMdw8z16Vd7G9KBeVQ==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", @@ -8244,9 +8717,9 @@ } }, "@babel/helper-define-polyfill-provider": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", - "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.0.tgz", + "integrity": "sha512-RnanLx5ETe6aybRi1cO/edaRH+bNYWaryCEmjDDYyNr4wnSzyOp8T0dWipmqVHKEY3AbVKUom50AKSlj1zmKbg==", "dev": true, "requires": { "@babel/helper-compilation-targets": "^7.17.7", @@ -8283,12 +8756,12 @@ } }, "@babel/helper-member-expression-to-functions": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.5.tgz", - "integrity": "sha512-nIcGfgwpH2u4n9GG1HpStW5Ogx7x7ekiFHbjjFRKXbn5zUvqO9ZgotCO4x1aNbKn/x/xOUaXEhyNHCwtFCpxWg==", + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.0.tgz", + "integrity": "sha512-nf2NhMw5E6vzxvUOPeqHnNxcCyTe7r8MJYIWzLaMosohfQTk6F2jepzprj4ux8ez0yTPjDyrDeboItaylgdaiw==", "dev": true, "requires": { - "@babel/types": "^7.21.5" + "@babel/types": "^7.22.0" } }, "@babel/helper-module-imports": { @@ -8301,9 +8774,9 @@ } }, "@babel/helper-module-transforms": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz", - "integrity": "sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==", + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.0.tgz", + "integrity": "sha512-drsR5/3eHuYs31uYLIXRK91+THB9+VAd2s3/4TY87Os5qrwr6YesM6GcNX5aEpCF6e9iKK0ZvTBTKqNyntEkvQ==", "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.21.5", @@ -8311,9 +8784,9 @@ "@babel/helper-simple-access": "^7.21.5", "@babel/helper-split-export-declaration": "^7.18.6", "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" + "@babel/template": "^7.21.9", + "@babel/traverse": "^7.22.0", + "@babel/types": "^7.22.0" } }, "@babel/helper-optimise-call-expression": { @@ -8486,187 +8959,38 @@ "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.21.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.8.tgz", - "integrity": "sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==", - "dev": true - }, - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", - "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", - "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-proposal-optional-chaining": "^7.20.7" - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", - "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", - "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", - "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", - "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", - "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", - "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.7" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", - "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } + "@babel/parser": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.0.tgz", + "integrity": "sha512-DA65VCJRetcFmJnt9/hEmRvXNCwk0V86dxG6p6N13hzDazaLRjGdTGPGgjxZOtLuFgWzOSRX4grybmRXwQ9bSg==", + "dev": true }, - "@babel/plugin-proposal-private-methods": { + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" } }, - "@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", - "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.0.tgz", + "integrity": "sha512-THA2q9FkS/RVTqWt0IXNns3zyHc8kzfiDEK9+vkIYGMlyaV6i6O3IpOg/oODSKqtRqu7gzwONjIJqwPlRQT41A==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-transform-optional-chaining": "^7.22.0" } }, "@babel/plugin-proposal-unicode-property-regex": { @@ -8742,6 +9066,15 @@ "@babel/helper-plugin-utils": "^7.19.0" } }, + "@babel/plugin-syntax-import-attributes": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.0.tgz", + "integrity": "sha512-TFqy+gFAiTh8KlVS8/c6w97uhAVcCVyd2R0srMHVYymBcBK5N5P+bf8VG6tEAiYCZ3TLYvi6fpzU9Rq79t9oxw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.21.5" + } + }, "@babel/plugin-syntax-import-meta": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", @@ -8850,6 +9183,16 @@ "@babel/helper-plugin-utils": "^7.20.2" } }, + "@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, "@babel/plugin-transform-arrow-functions": { "version": "7.21.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz", @@ -8859,6 +9202,18 @@ "@babel/helper-plugin-utils": "^7.21.5" } }, + "@babel/plugin-transform-async-generator-functions": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.0.tgz", + "integrity": "sha512-SLpCXbF08XTYRJ/QM0hn4DdgSQB6aAtCaS+zfrjx374ectu4JbpwyQv3fF0kAtPdfQkeFdz86Dajj8A6oYRM9g==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, "@babel/plugin-transform-async-to-generator": { "version": "7.20.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", @@ -8888,6 +9243,27 @@ "@babel/helper-plugin-utils": "^7.20.2" } }, + "@babel/plugin-transform-class-properties": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.0.tgz", + "integrity": "sha512-m04PcP0S4OR+NpRQNIOEPHVdGcXqbOEn+pIYzrqRTXMlOjKy6s7s30MZ1WzglHQhD/X/yhngun4yG0FqPszZzw==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.22.0", + "@babel/helper-plugin-utils": "^7.21.5" + } + }, + "@babel/plugin-transform-class-static-block": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.0.tgz", + "integrity": "sha512-b6N2cduLeAmnZMHlLj0XB8108D4EHLtpv1fl7PudLjHf+yxFxnKvhuTn5vuQg61qzS+wxp5DBOcNo1W/GEsFWg==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.22.0", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, "@babel/plugin-transform-classes": { "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", @@ -8943,6 +9319,16 @@ "@babel/helper-plugin-utils": "^7.18.9" } }, + "@babel/plugin-transform-dynamic-import": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.0.tgz", + "integrity": "sha512-Rfuj4hqQoLoKWlEar7Y45KXQoOdBXRlbygBnft1bFOBSYXRegnhOw+rkGiGYGCGflG+pi1bU7+iNfzItQa7lSA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, "@babel/plugin-transform-exponentiation-operator": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", @@ -8953,6 +9339,16 @@ "@babel/helper-plugin-utils": "^7.18.6" } }, + "@babel/plugin-transform-export-namespace-from": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.0.tgz", + "integrity": "sha512-NkqdpxXHZG1CbXuu31weYMjAOeZ785n4ip/yXYg/4oZxdCg1jH10iR7oPJbZeyF99HhnTxqFnis3FTlpnh5Ovw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, "@babel/plugin-transform-for-of": { "version": "7.21.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.5.tgz", @@ -8973,6 +9369,16 @@ "@babel/helper-plugin-utils": "^7.18.9" } }, + "@babel/plugin-transform-json-strings": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.0.tgz", + "integrity": "sha512-6sSCmFYjv4czjub/ESDp46/TQGEM6oH0/t0Zd1gj8qb+j3XY/+s1M8h+2EtJ5JYNQ6ZBxpmazCDwhwQT950Aug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, "@babel/plugin-transform-literals": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", @@ -8982,6 +9388,16 @@ "@babel/helper-plugin-utils": "^7.18.9" } }, + "@babel/plugin-transform-logical-assignment-operators": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.0.tgz", + "integrity": "sha512-tSYLi4c8H5K1iSCLCjA4xaYgw+zQEl7WUP9YI2WpwXkmryDC7+Pu/uD43XQos7Sm326OIC6Yf+6LuWjBs8JJKQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, "@babel/plugin-transform-member-expression-literals": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", @@ -9013,14 +9429,14 @@ } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", - "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.0.tgz", + "integrity": "sha512-hSo/4vBjCjwsol3nLDJG3QRDuNzvzofnyhKyCiSXpzqEVmkos9SODFC3xzDvvuE3AUjHUMgTpTRpJq16i62heA==", "dev": true, "requires": { "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-module-transforms": "^7.22.0", + "@babel/helper-plugin-utils": "^7.21.5", "@babel/helper-validator-identifier": "^7.19.1" } }, @@ -9035,22 +9451,55 @@ } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", - "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.0.tgz", + "integrity": "sha512-3bIivRwjbaMFYuP8OypIlTbZK0SxW3j9VpVQX/Yj2q0wG6GqOG30Vgmo5X7QW3TGi3rxrdYpKuwxqfb5aCnJkA==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.20.5", - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-create-regexp-features-plugin": "^7.22.0", + "@babel/helper-plugin-utils": "^7.21.5" } }, "@babel/plugin-transform-new-target": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", - "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.0.tgz", + "integrity": "sha512-IZH0e2Fm8XmnZTXRzoRsHBBJ7wFzfeU22iiEZCi6EumrAjKOG6AdHpsxtBezG4SCQhqRS8DojQM8+bqtOBTQqw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.21.5" + } + }, + "@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.0.tgz", + "integrity": "sha512-KU2Or7uQqYKcL6rVLh8jThUBAKy1H+mxPx4E1omUqdSL+hVM9NriMjGFnnv+9xSn3jUMV5FQHsLQxgGLr/MWTw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-transform-numeric-separator": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.0.tgz", + "integrity": "sha512-dfbXAKlbPlDKXsY7fa/gRBWgI4n537TR4b5AnVCZ3RwQ1aVPxs52Xs3XHFxQMn3j4LmUhn8IL2nAYmNh6z2/Ew==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-transform-object-rest-spread": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.0.tgz", + "integrity": "sha512-PHXQfxbe5EKp2+MuEdBFO4X1gsjvUZPjSDGvYz7PjWl8hZtYDCDxPrwZG+GwT/j6FnAmSz2bTZbQ5Jrh3fhRPg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.22.0", + "@babel/helper-compilation-targets": "^7.21.5", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.22.0" } }, "@babel/plugin-transform-object-super": { @@ -9063,13 +9512,56 @@ "@babel/helper-replace-supers": "^7.18.6" } }, + "@babel/plugin-transform-optional-catch-binding": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.0.tgz", + "integrity": "sha512-x8HEst6X74Aut0TxZI4s1UbUCtqR7IW764w/o/tTIDsm9OY9g+y9BeNhfZ+GrN0/TErN1dBoHNxqo1JXHdfxyA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-transform-optional-chaining": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.0.tgz", + "integrity": "sha512-p5BZinFj92iSErcstoPK+e+MHJUEZ6Gmlu0EkP3DJ0Y/1XPNvlXxfAzuh8KkN+3wCsYRKLAxAsF6Sn8b/bfWaA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, "@babel/plugin-transform-parameters": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", - "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.0.tgz", + "integrity": "sha512-hlRM1lu7xeqW8EKKg9ByHwnCEIy0dNPd/fwffpwAck2H3C5mQCrWR9PdrjsywivsFuVAbyyAImU58vAR1cXrEw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.21.5" + } + }, + "@babel/plugin-transform-private-methods": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.0.tgz", + "integrity": "sha512-3ao+Yt2kGQEXC894aBRCPo+zzW6YbM/iba+znKsZgEmDkc8RU/ODBfRpWP11qerQ0/mDzqjLpIG7HhpiKx0/cg==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.22.0", + "@babel/helper-plugin-utils": "^7.21.5" + } + }, + "@babel/plugin-transform-private-property-in-object": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.0.tgz", + "integrity": "sha512-P4bP+/4Rq6aQ/IZmAEUX+injSKhuOOMOZkXtB3x++P3k5BtyV8RkTvOtpqIv0mLpHge5ReGk0ijNBFRN0n2xEQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.22.0", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" } }, "@babel/plugin-transform-property-literals": { @@ -9146,6 +9638,18 @@ "@babel/helper-plugin-utils": "^7.18.9" } }, + "@babel/plugin-transform-typescript": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.0.tgz", + "integrity": "sha512-gb4e3dCt39wymMSfvR+6S7roQ+OBBeBXVgCpttb+FZC5GPGJ5DkqncRupirCD36nnNt7gwNLaV3Gf+iHgt/CMQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.22.0", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-typescript": "^7.21.4" + } + }, "@babel/plugin-transform-unicode-escapes": { "version": "7.21.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.21.5.tgz", @@ -9155,6 +9659,16 @@ "@babel/helper-plugin-utils": "^7.21.5" } }, + "@babel/plugin-transform-unicode-property-regex": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.0.tgz", + "integrity": "sha512-uQacKjQ46K+yDfrbEyhEGkqqf5Zbn9WTKWgHOioHrTnOSVGYZSITlNNe0cP4fTgt4ZtjvMp85s4Hj86XS3v3uQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.0", + "@babel/helper-plugin-utils": "^7.21.5" + } + }, "@babel/plugin-transform-unicode-regex": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", @@ -9165,39 +9679,35 @@ "@babel/helper-plugin-utils": "^7.18.6" } }, + "@babel/plugin-transform-unicode-sets-regex": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.0.tgz", + "integrity": "sha512-w9ZRKNaJAk2vOhY6HTF7nmr+c5vJ//RCH7S0l4sWyts1x17W45oa6J3UYeZ/RXb74XHm1eFfLjqzY1Hg2mtyaw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.0", + "@babel/helper-plugin-utils": "^7.21.5" + } + }, "@babel/preset-env": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.5.tgz", - "integrity": "sha512-wH00QnTTldTbf/IefEVyChtRdw5RJvODT/Vb4Vcxq1AZvtXj6T0YeX0cAcXhI6/BdGuiP3GcNIL4OQbI2DVNxg==", + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.0.tgz", + "integrity": "sha512-H520F1TsYY76tmtyre1AbdZfpxMnSp96t8XsEAVaH6ikfRLHMQ5qo053t7X1qAgJfp3r27dGqFuzCGQXHVrE6w==", "dev": true, "requires": { - "@babel/compat-data": "^7.21.5", + "@babel/compat-data": "^7.22.0", "@babel/helper-compilation-targets": "^7.21.5", "@babel/helper-plugin-utils": "^7.21.5", "@babel/helper-validator-option": "^7.21.0", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7", - "@babel/plugin-proposal-async-generator-functions": "^7.20.7", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.21.0", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.20.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.21.0", - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.21.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.0", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", "@babel/plugin-syntax-import-assertions": "^7.20.0", + "@babel/plugin-syntax-import-attributes": "^7.22.0", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", @@ -9208,28 +9718,43 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.21.5", + "@babel/plugin-transform-async-generator-functions": "^7.22.0", "@babel/plugin-transform-async-to-generator": "^7.20.7", "@babel/plugin-transform-block-scoped-functions": "^7.18.6", "@babel/plugin-transform-block-scoping": "^7.21.0", + "@babel/plugin-transform-class-properties": "^7.22.0", + "@babel/plugin-transform-class-static-block": "^7.22.0", "@babel/plugin-transform-classes": "^7.21.0", "@babel/plugin-transform-computed-properties": "^7.21.5", "@babel/plugin-transform-destructuring": "^7.21.3", "@babel/plugin-transform-dotall-regex": "^7.18.6", "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-dynamic-import": "^7.22.0", "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-export-namespace-from": "^7.22.0", "@babel/plugin-transform-for-of": "^7.21.5", "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-json-strings": "^7.22.0", "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-logical-assignment-operators": "^7.22.0", "@babel/plugin-transform-member-expression-literals": "^7.18.6", "@babel/plugin-transform-modules-amd": "^7.20.11", "@babel/plugin-transform-modules-commonjs": "^7.21.5", - "@babel/plugin-transform-modules-systemjs": "^7.20.11", + "@babel/plugin-transform-modules-systemjs": "^7.22.0", "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5", - "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.0", + "@babel/plugin-transform-new-target": "^7.22.0", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.0", + "@babel/plugin-transform-numeric-separator": "^7.22.0", + "@babel/plugin-transform-object-rest-spread": "^7.22.0", "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.21.3", + "@babel/plugin-transform-optional-catch-binding": "^7.22.0", + "@babel/plugin-transform-optional-chaining": "^7.22.0", + "@babel/plugin-transform-parameters": "^7.22.0", + "@babel/plugin-transform-private-methods": "^7.22.0", + "@babel/plugin-transform-private-property-in-object": "^7.22.0", "@babel/plugin-transform-property-literals": "^7.18.6", "@babel/plugin-transform-regenerator": "^7.21.5", "@babel/plugin-transform-reserved-words": "^7.18.6", @@ -9239,13 +9764,15 @@ "@babel/plugin-transform-template-literals": "^7.18.9", "@babel/plugin-transform-typeof-symbol": "^7.18.9", "@babel/plugin-transform-unicode-escapes": "^7.21.5", + "@babel/plugin-transform-unicode-property-regex": "^7.22.0", "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/plugin-transform-unicode-sets-regex": "^7.22.0", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.21.5", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "core-js-compat": "^3.25.1", + "@babel/types": "^7.22.0", + "babel-plugin-polyfill-corejs2": "^0.4.1", + "babel-plugin-polyfill-corejs3": "^0.8.1", + "babel-plugin-polyfill-regenerator": "^0.5.0", + "core-js-compat": "^3.30.2", "semver": "^6.3.0" } }, @@ -9262,6 +9789,19 @@ "esutils": "^2.0.2" } }, + "@babel/preset-typescript": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.21.5.tgz", + "integrity": "sha512-iqe3sETat5EOrORXiQ6rWfoOg2y68Cs75B9wNxdPW4kixJxh7aXQE1KPdWLDniC24T/6dSnguF33W9j/ZZQcmA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-validator-option": "^7.21.0", + "@babel/plugin-syntax-jsx": "^7.21.4", + "@babel/plugin-transform-modules-commonjs": "^7.21.5", + "@babel/plugin-transform-typescript": "^7.21.3" + } + }, "@babel/regjsgen": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", @@ -9269,47 +9809,47 @@ "dev": true }, "@babel/runtime": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz", - "integrity": "sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==", + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.0.tgz", + "integrity": "sha512-TT6NB0oszYQ4oxLNUdG+FNHIc3MohXVCKA2BeyQ4WeM2VCSC6wBZ6P0Yfkdzxv+87D8Xk0LJyHeCKlWMvpZt0g==", "dev": true, "requires": { "regenerator-runtime": "^0.13.11" } }, "@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "version": "7.21.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.21.9.tgz", + "integrity": "sha512-MK0X5k8NKOuWRamiEfc3KEJiHMTkGZNUjzMipqCGDDc6ijRl/B7RGSKVGncu4Ro/HdyzzY6cmoXuKI2Gffk7vQ==", "dev": true, "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/code-frame": "^7.21.4", + "@babel/parser": "^7.21.9", + "@babel/types": "^7.21.5" } }, "@babel/traverse": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz", - "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==", + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.0.tgz", + "integrity": "sha512-V5Zp3k0nFGWSIC7zYR8PnfdU6i6VYU4JnifdSSMlXM1GMojPAaelPsKmKPW4tWTmpX9GM+RzKl4Io0UVcHVlpw==", "dev": true, "requires": { "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.5", + "@babel/generator": "^7.22.0", "@babel/helper-environment-visitor": "^7.21.5", "@babel/helper-function-name": "^7.21.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.5", - "@babel/types": "^7.21.5", + "@babel/parser": "^7.22.0", + "@babel/types": "^7.22.0", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz", - "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==", + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.0.tgz", + "integrity": "sha512-NtXlm3f6cNWIv003cETdlz9sss0VMNtplyatFohxWPz90AbwuhCbHbQopkGis6bG1vOunDLN0FF/4Uv5i8LFZQ==", "dev": true, "requires": { "@babel/helper-string-parser": "^7.21.5", @@ -9718,15 +10258,6 @@ } } }, - "@jsdoc/salty": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.5.tgz", - "integrity": "sha512-TfRP53RqunNe2HBobVBJ0VLhK1HbfvBYeTC1ahnN64PWvyYyGebmMiPkuwvD9fpw2ZbkoPb8Q7mwy0aR8Z9rvw==", - "dev": true, - "requires": { - "lodash": "^4.17.21" - } - }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -9906,66 +10437,227 @@ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, - "@types/linkify-it": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz", - "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==", + "@types/node": { + "version": "20.2.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.2.1.tgz", + "integrity": "sha512-DqJociPbZP1lbZ5SQPk4oag6W7AyaGMO6gSfRwq3PWl4PXTwJpRQJhDq4W0kzrg3w6tJ1SwlvGZ5uKFHY13LIg==", + "dev": true + }, + "@types/prettier": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", + "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", + "dev": true + }, + "@types/semver": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", + "dev": true + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "@types/tough-cookie": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.2.tgz", + "integrity": "sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==", "dev": true }, - "@types/markdown-it": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz", - "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==", + "@types/yargs": { + "version": "17.0.24", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", + "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", "dev": true, "requires": { - "@types/linkify-it": "*", - "@types/mdurl": "*" + "@types/yargs-parser": "*" } }, - "@types/mdurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz", - "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==", + "@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", "dev": true }, - "@types/node": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.2.1.tgz", - "integrity": "sha512-DqJociPbZP1lbZ5SQPk4oag6W7AyaGMO6gSfRwq3PWl4PXTwJpRQJhDq4W0kzrg3w6tJ1SwlvGZ5uKFHY13LIg==", - "dev": true + "@typescript-eslint/eslint-plugin": { + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.7.tgz", + "integrity": "sha512-BL+jYxUFIbuYwy+4fF86k5vdT9lT0CNJ6HtwrIvGh0PhH8s0yy5rjaKH2fDCrz5ITHy07WCzVGNvAmjJh4IJFA==", + "dev": true, + "requires": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.59.7", + "@typescript-eslint/type-utils": "5.59.7", + "@typescript-eslint/utils": "5.59.7", + "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" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "@typescript-eslint/parser": { + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.7.tgz", + "integrity": "sha512-VhpsIEuq/8i5SF+mPg9jSdIwgMBBp0z9XqjiEay+81PYLJuroN+ET1hM5IhkiYMJd9MkTz8iJLt7aaGAgzWUbQ==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.59.7", + "@typescript-eslint/types": "5.59.7", + "@typescript-eslint/typescript-estree": "5.59.7", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.7.tgz", + "integrity": "sha512-FL6hkYWK9zBGdxT2wWEd2W8ocXMu3K94i3gvMrjXpx+koFYdYV7KprKfirpgY34vTGzEPPuKoERpP8kD5h7vZQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.59.7", + "@typescript-eslint/visitor-keys": "5.59.7" + } }, - "@types/prettier": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", - "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", - "dev": true + "@typescript-eslint/type-utils": { + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.7.tgz", + "integrity": "sha512-ozuz/GILuYG7osdY5O5yg0QxXUAEoI4Go3Do5xeu+ERH9PorHBPSdvD3Tjp2NN2bNLh1NJQSsQu2TPu/Ly+HaQ==", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "5.59.7", + "@typescript-eslint/utils": "5.59.7", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + } }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "@typescript-eslint/types": { + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.7.tgz", + "integrity": "sha512-UnVS2MRRg6p7xOSATscWkKjlf/NDKuqo5TdbWck6rIRZbmKpVNTLALzNvcjIfHBE7736kZOFc/4Z3VcZwuOM/A==", "dev": true }, - "@types/tough-cookie": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.2.tgz", - "integrity": "sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==", - "dev": true + "@typescript-eslint/typescript-estree": { + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.7.tgz", + "integrity": "sha512-4A1NtZ1I3wMN2UGDkU9HMBL+TIQfbrh4uS0WDMMpf3xMRursDbqEf1ahh6vAAe3mObt8k3ZATnezwG4pdtWuUQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.59.7", + "@typescript-eslint/visitor-keys": "5.59.7", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } }, - "@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", + "@typescript-eslint/utils": { + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.7.tgz", + "integrity": "sha512-yCX9WpdQKaLufz5luG4aJbOpdXf/fjwGMcLFXZVPUz3QqLirG5QcwwnIHNf8cjLjxK4qtzTO8udUtMQSAToQnQ==", "dev": true, "requires": { - "@types/yargs-parser": "*" + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.59.7", + "@typescript-eslint/types": "5.59.7", + "@typescript-eslint/typescript-estree": "5.59.7", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } } }, - "@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true + "@typescript-eslint/visitor-keys": { + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.7.tgz", + "integrity": "sha512-tyN+X2jvMslUszIiYbF0ZleP+RqQsFVpGrKI6e0Eet1w8WmhsAtmzaqm8oM8WJQ1ysLwhnsK/4hYHJjOgJVfQQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.59.7", + "eslint-visitor-keys": "^3.3.0" + } }, "@webassemblyjs/ast": { "version": "1.11.6", @@ -10231,6 +10923,12 @@ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, + "ansi-sequence-parser": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.0.tgz", + "integrity": "sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==", + "dev": true + }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -10282,6 +10980,12 @@ "is-string": "^1.0.7" } }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, "array.prototype.flat": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", @@ -10359,33 +11063,33 @@ } }, "babel-plugin-polyfill-corejs2": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", - "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.1.tgz", + "integrity": "sha512-7gKaNF3qkEt1w2p3Q2D2f+UofAKtjWT5B82VXKdDlPqJI8eLT8phBKHq6uLEOCAEtnAWW3lomu3+X6VJrFMoSg==", "dev": true, "requires": { "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.3", + "@babel/helper-define-polyfill-provider": "^0.4.0", "semver": "^6.1.1" } }, "babel-plugin-polyfill-corejs3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", - "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.1.tgz", + "integrity": "sha512-ikFrZITKg1xH6pLND8zT14UPgjKHiGLqex7rGEZCH2EvhsneJaJPemmpQaIZV5AL03II+lXylw3UmddDK8RU5Q==", "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.3", - "core-js-compat": "^3.25.1" + "@babel/helper-define-polyfill-provider": "^0.4.0", + "core-js-compat": "^3.30.1" } }, "babel-plugin-polyfill-regenerator": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", - "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.0.tgz", + "integrity": "sha512-hDJtKjMLVa7Z+LwnTCxoDLQj6wdc+B8dun7ayF2fYieI6OzfuvcLMB32ihJZ4UhCBwNYGl5bg/x/P9cMdnkc2g==", "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.3" + "@babel/helper-define-polyfill-provider": "^0.4.0" } }, "babel-preset-current-node-syntax": { @@ -10424,12 +11128,6 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -10504,15 +11202,6 @@ "integrity": "sha512-NORIQuuL4xGpIy6iCCQGN4iFjlBXtfKWIenlUuyZJumLRIindLb7wXM+GO8erEhb7vXfcnf4BAg2PrSDN5TNLQ==", "dev": true }, - "catharsis": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz", - "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==", - "dev": true, - "requires": { - "lodash": "^4.17.15" - } - }, "chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -10744,6 +11433,15 @@ "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", "dev": true }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, "doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -11296,6 +11994,30 @@ "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", "dev": true }, + "fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "requires": { + "@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" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -11523,6 +12245,20 @@ "define-properties": "^1.1.3" } }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, "gopd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", @@ -11538,6 +12274,12 @@ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, "graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", @@ -12463,38 +13205,6 @@ "esprima": "^4.0.0" } }, - "js2xmlparser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz", - "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==", - "dev": true, - "requires": { - "xmlcreate": "^2.0.4" - } - }, - "jsdoc": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.2.tgz", - "integrity": "sha512-e8cIg2z62InH7azBBi3EsSEqrKx+nUtAS5bBcYTSpZFA+vhNPyhv8PTFZ0WsjOPDj04/dOLlm08EDcQJDqaGQg==", - "dev": true, - "requires": { - "@babel/parser": "^7.20.15", - "@jsdoc/salty": "^0.2.1", - "@types/markdown-it": "^12.2.3", - "bluebird": "^3.7.2", - "catharsis": "^0.9.0", - "escape-string-regexp": "^2.0.0", - "js2xmlparser": "^4.0.2", - "klaw": "^3.0.0", - "markdown-it": "^12.3.2", - "markdown-it-anchor": "^8.4.1", - "marked": "^4.0.10", - "mkdirp": "^1.0.4", - "requizzle": "^0.2.3", - "strip-json-comments": "^3.1.0", - "underscore": "~1.13.2" - } - }, "jsdom": { "version": "20.0.3", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", @@ -12559,21 +13269,18 @@ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true }, + "jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true }, - "klaw": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", - "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.9" - } - }, "kleur": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", @@ -12602,15 +13309,6 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, - "linkify-it": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", - "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", - "dev": true, - "requires": { - "uc.micro": "^1.0.1" - } - }, "loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", @@ -12626,12 +13324,6 @@ "p-locate": "^4.1.0" } }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, "lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -12653,6 +13345,12 @@ "yallist": "^3.0.2" } }, + "lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", + "dev": true + }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -12671,58 +13369,24 @@ "tmpl": "1.0.5" } }, - "markdown-it": { - "version": "12.3.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", - "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", - "dev": true, - "requires": { - "argparse": "^2.0.1", - "entities": "~2.1.0", - "linkify-it": "^3.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "entities": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", - "dev": true - } - } - }, - "markdown-it-anchor": { - "version": "8.6.7", - "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz", - "integrity": "sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==", - "dev": true, - "requires": {} - }, "marked": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", "dev": true }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", - "dev": true - }, "merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, "micromatch": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", @@ -12769,12 +13433,6 @@ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -12787,6 +13445,12 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, + "natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, "neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", @@ -12992,6 +13656,12 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, "picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -13213,15 +13883,6 @@ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "dev": true }, - "requizzle": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.4.tgz", - "integrity": "sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw==", - "dev": true, - "requires": { - "lodash": "^4.17.21" - } - }, "resolve": { "version": "1.22.2", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", @@ -13360,6 +14021,18 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, + "shiki": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.2.tgz", + "integrity": "sha512-ltSZlSLOuSY0M0Y75KA+ieRaZ0Trf5Wl3gutE7jzLuIcWxLp5i/uEnLoQWNvgKXQ5OMpGkJnVMRLAuzjc0LJ2A==", + "dev": true, + "requires": { + "ansi-sequence-parser": "^1.1.0", + "jsonc-parser": "^3.2.0", + "vscode-oniguruma": "^1.7.0", + "vscode-textmate": "^8.0.0" + } + }, "side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -13646,6 +14319,44 @@ "punycode": "^2.1.1" } }, + "ts-loader": { + "version": "9.4.3", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.3.tgz", + "integrity": "sha512-n3hBnm6ozJYzwiwt5YRiJZkzktftRpMiBApHaJPoWLA+qetQBAXkHqCLM6nwSdRDimqVtA5ocIkcTRLMTt7yzA==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, "tsconfig-paths": { "version": "3.14.2", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", @@ -13675,6 +14386,21 @@ } } }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", @@ -13707,10 +14433,42 @@ "is-typed-array": "^1.1.9" } }, - "uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "typedoc": { + "version": "0.24.7", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.24.7.tgz", + "integrity": "sha512-zzfKDFIZADA+XRIp2rMzLe9xZ6pt12yQOhCr7cD7/PBTjhPmMyMvGrkZ2lPNJitg3Hj1SeiYFNzCsSDrlpxpKw==", + "dev": true, + "requires": { + "lunr": "^2.3.9", + "marked": "^4.3.0", + "minimatch": "^9.0.0", + "shiki": "^0.14.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", + "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "typescript": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", + "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", "dev": true }, "unbox-primitive": { @@ -13725,12 +14483,6 @@ "which-boxed-primitive": "^1.0.2" } }, - "underscore": { - "version": "1.13.6", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", - "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", - "dev": true - }, "unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -13830,6 +14582,18 @@ } } }, + "vscode-oniguruma": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", + "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", + "dev": true + }, + "vscode-textmate": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", + "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==", + "dev": true + }, "w3c-xmlserializer": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", @@ -14060,12 +14824,6 @@ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true }, - "xmlcreate": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz", - "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==", - "dev": true - }, "y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", diff --git a/package.json b/package.json index 9819285..128af8e 100644 --- a/package.json +++ b/package.json @@ -1,15 +1,15 @@ { "name": "astral.js", - "version": "1.1.0", + "version": "1.2.0", "description": "Astral.js is a lightweight UI toolkit designed to empower JavaScript developers with powerful tools for building modern user interfaces. With Astral.js, you gain access to a comprehensive set of features including context and state management, event-driven architecture, and sophisticated JavaScript-powered media queries.", "main": "src/index.js", "scripts": { "test": "jest", "test:watch": "jest --watch", - "docs": "jsdoc -c jsdoc.json", + "docs": "typedoc --entryPointStrategy expand ./src --exclude \"./src/index.ts\"", "build": "webpack --config webpack.conf.js", - "lint": "eslint src", - "format": "prettier --write \"{src/**/*.js,specs/*.js}\"" + "lint": "eslint src/**/*.ts --fix", + "format": "prettier --write \"{src/**/*.ts,specs/*.js,specs/*.ts}\"" }, "repository": "git+https://github.com/rabisnaqvi/Astral.js.git", "keywords": [ @@ -51,16 +51,21 @@ }, "homepage": "https://github.com/rabisnaqvi/Astral.js#readme", "devDependencies": { - "@babel/preset-env": "^7.21.5", + "@babel/preset-env": "^7.22.0", + "@babel/preset-typescript": "^7.21.5", + "@typescript-eslint/eslint-plugin": "^5.59.7", + "@typescript-eslint/parser": "^5.59.7", "babel-jest": "^29.5.0", "eslint": "^8.41.0", "eslint-plugin-import": "^2.27.5", "eslint-plugin-prettier": "^4.2.1", "jest": "^29.5.0", "jest-environment-jsdom": "^29.5.0", - "jsdoc": "^4.0.2", "path": "^0.12.7", "prettier": "^2.8.8", + "ts-loader": "^9.4.3", + "typedoc": "^0.24.7", + "typescript": "^5.0.4", "webpack": "^5.83.1", "webpack-cli": "^5.1.1" } diff --git a/readme.md b/readme.md index dd498e6..c83e89e 100644 --- a/readme.md +++ b/readme.md @@ -48,7 +48,7 @@ Or use a CDN: # Getting Started -After making sure that Astral.js is available in modules, we can start looking into how we can actually use it. But before we dive into the code, it’s a good measure to take a look at the [Core Concepts](#core_concepts) section of the documentation if you haven’t done already or are not up to date with the recent updates in the features. Once you are confident about your knowledge of the core concepts, we can dive into the practical usage of Astral.js. +After making sure that Astral.js is available in modules, we can start looking into how we can actually use it. But before we dive into the code, it’s a good measure to take a look at the [Core Concepts](#core-concepts) section of the documentation if you haven’t done already or are not up to date with the recent updates in the features. Once you are confident about your knowledge of the core concepts, we can dive into the practical usage of Astral.js. Here we are going to divide the usage into 3 different sections, covering the use of the Event, Context, and Layout functionalities respectively. @@ -63,6 +63,7 @@ At its core Astral.event is a utility, that provides the ability for you to subs Let’s make sure we are clear about the terminologies here: **Subscribers:** These are the callback functions that listen for a specific event to be triggered in the application. Once that event is triggered, the subscribers of that event get called. + **Events:** An event is a signal that is dispatched globally (by globally we mean wherever the Astral instance is available, not on the window object) so that the subscribers of it in all the modules can get notified. A signal can have a payload, which can be any object, function, boolean, or any other data type. Whatever is passed into the payload of the event, gets passed onto the subscriber callbacks as a parameter. Let’s see it working: @@ -174,7 +175,9 @@ Astral.context uses the Astral.event’s event-driven nature at it’s base to t Let’s make sure we are clear about the terminologies here: **Store:** The store in Astral.context refers to a centralized location where you can store and manage the state of your application. It provides a structured way to store data and allows you to update and access the data from different parts of your application. + **State:** In Astral.context, state refers to the data that represents the current state or condition of your application. It can include information such as user input, application settings, or any other relevant data. The state is stored in the store and can be updated and retrieved as needed. + **Listener Callback:** A listener callback in Astral.context is a function that gets executed when the state changes. It is registered with a specific state in the store and is triggered whenever that state is updated. The listener callback allows you to respond to state changes and perform actions or update the user interface accordingly. ### Initializing and updating state @@ -209,31 +212,31 @@ Astral.context provides a straightforward way to retrieve the current state from #### Retrieving State -To retrieve the current value of a state, you can use the Astral.context.getState() function. It takes the state key as a parameter and returns an object with two properties: value and onchange. +To retrieve the current value of a state, you can use the Astral.context.getState() function. It takes the state key as a parameter and returns a tuple with two properties: value and onchange. The value property contains the current value of the state in the store. You can access this property to retrieve the state value for your application's logic or display purposes. ```javascript import Astral from "astral.js"; // Retrieve the current state value -const countState = Astral.context.getState("count"); +const [countState] = Astral.context.getState("count"); -console.log(countState.value); // Output: Current value of 'count' state +console.log(countState); // Output: Current value of 'count' state ``` -In the example above, we retrieve the current value of the "count" state using `Astral.context.getState("count")`. We can then access the value property of the returned object to get the current state value. +In the example above, we retrieve the current value of the "count" state using `Astral.context.getState("count")`. We can then access the value property which is at **0** index of the returned tuple to get the current state value. #### Listening to State Updates -In addition to retrieving the state value, Astral.context allows you to set up listeners to react to state changes. The onchange property of the state object returned by `Astral.context.getState()` is a listener function. You can pass a callback function to this listener, which will be triggered whenever the respective state updates. +In addition to retrieving the state value, Astral.context allows you to set up listeners to react to state changes. The onchange property of the state typle returned by `Astral.context.getState()` at index **1** is a listener function. You can pass a callback function to this listener, which will be triggered whenever the respective state updates. The callback function receives two parameters: previousState and newState. These parameters represent the previous state value and the updated state value, respectively. You can use them to compare the old and new state values and define your component's reaction to the state change. ```javascript import Astral from "astral.js"; // Set up a listener for state updates -const countState = Astral.context.getState("count"); +const [countState, onCountStateChange] = Astral.context.getState("count"); -countState.onchange(function(previousState, newState) { +onCountStateChange(function(previousState, newState) { console.log("Previous state:", previousState); console.log("New state:", newState); // Perform actions based on state change @@ -248,12 +251,12 @@ Let's see a complete example that demonstrates retrieving and listening to state import Astral from "astral.js"; // Retrieve the current state value -const countState = Astral.context.getState("count"); +const [countState, onCountStateChange] = Astral.context.getState("count"); -console.log(countState.value); // Output: Current value of 'count' state +console.log(countState); // Output: Current value of 'count' state // Set up a listener for state updates -countState.onchange(function(previousState, newState) { +onCountStateChange(function(previousState, newState) { console.log("Previous state:", previousState); console.log("New state:", newState); // Perform actions based on state change @@ -449,7 +452,7 @@ When the library is loaded, a namespace named Astral is imported. It acts as a w ## Astral.context Interface -### getState: +### getState(key) Get the value of a state and a listener to track its changes. ``` @@ -461,19 +464,19 @@ Astral.context.getState(key: string): { onchange: (callback: (prevState: any, ne #### Returns -An object representing the state **value** with an **onchange** method. +A tuple representing the state **value** with a **change listener** method. #### Example ```javascript -var myState = Astral.context.getState("myState"); +const [myState, onMyStateChange] = Astral.context.getState("myState"); -myState.onchange(function(prevState, newState) { +onMyStateChange(function(prevState, newState) { console.log(prevState, newState); }); ``` -### updateState: +### updateState(key | object, value) Update a state in the store. This triggers all the listeners that are subscribed to this state's updates. ``` @@ -482,8 +485,8 @@ Astral.context.updateState(key: string, value: any): void #### Parameters -- **key** (string): The key of the state to update. -- **value** (*): The new value to set for the state. +- **key** (string | object): If the key is an string, it should be the key of the state to update. If it's an object, it should an object containing key-value pairs of states to update. +- **value** (*): The new value to set for the state. only applicable if the key is a string. #### Example diff --git a/specs/context.spec.js b/specs/context.spec.js index bab5d97..f765c94 100644 --- a/specs/context.spec.js +++ b/specs/context.spec.js @@ -1,4 +1,4 @@ -import ContextService from './../src/context.js'; +import ContextService from './../src/context'; describe('ContextService', () => { beforeEach(() => { @@ -8,9 +8,9 @@ describe('ContextService', () => { it('getState should initialize and return the state', () => { const stateKey = 'myState'; - const state = ContextService.getState(stateKey); + const [stateValue] = ContextService.getState(stateKey); - expect(state.value).toBeNull(); + expect(stateValue).toBeNull(); }); it('getState should return the existing state', () => { @@ -20,9 +20,9 @@ describe('ContextService', () => { // Initialize the state ContextService.updateState(stateKey, stateValue); - const state = ContextService.getState(stateKey); + const [state] = ContextService.getState(stateKey); - expect(state.value).toBe(stateValue); + expect(state).toBe(stateValue); }); it('getState should trigger onchange callback upon state change', () => { @@ -31,8 +31,8 @@ describe('ContextService', () => { const onChangeCallback = jest.fn(); - const state = ContextService.getState(stateKey); - state.onchange(onChangeCallback); + const [_, onStateChange] = ContextService.getState(stateKey); + onStateChange(onChangeCallback); // Update the state value ContextService.updateState(stateKey, stateValue); @@ -51,8 +51,8 @@ describe('ContextService', () => { const onChangeCallback = jest.fn(); - const state = ContextService.getState(stateKey); - state.onchange(onChangeCallback); + const [_, onStateChange] = ContextService.getState(stateKey); + onStateChange(onChangeCallback); // Update the state value ContextService.updateState(stateKey, newState); @@ -73,10 +73,24 @@ describe('ContextService', () => { [stateKey2]: stateValue2, }); - const state1 = ContextService.getState(stateKey1); - const state2 = ContextService.getState(stateKey2); + const [state1value] = ContextService.getState(stateKey1); + const [state2value] = ContextService.getState(stateKey2); - expect(state1.value).toBe(stateValue1); - expect(state2.value).toBe(stateValue2); + expect(state1value).toBe(stateValue1); + expect(state2value).toBe(stateValue2); + }); + + it('should output debug logs when debug mode is on', () => { + ContextService.setDebugMode(true); + const debugLogSpy = jest.spyOn(console, 'debug'); + ContextService.updateState('myState', 'myValue'); + expect(debugLogSpy).toHaveBeenCalled(); + }); + + it('should not output debug logs when debug mode is off', () => { + ContextService.setDebugMode(false); + const debugLogSpy = jest.spyOn(console, 'debug'); + ContextService.updateState('myState', 'myValue'); + expect(debugLogSpy).not.toHaveBeenCalled(); }); }); diff --git a/specs/event.spec.js b/specs/event.spec.js index 353b9b1..4bfd075 100644 --- a/specs/event.spec.js +++ b/specs/event.spec.js @@ -106,4 +106,11 @@ describe('EventService', () => { debugLogSpy.mockRestore(); }); + + it('should output debug logs when debug mode is on', () => { + eventService.setDebugMode(true); + const debugLogSpy = jest.spyOn(console, 'debug'); + eventService.unsubscribe('event', function () {}); + expect(debugLogSpy).toHaveBeenCalled(); + }); }); diff --git a/specs/layout.spec.js b/specs/layout.spec.js index a688558..9285f57 100644 --- a/specs/layout.spec.js +++ b/specs/layout.spec.js @@ -122,7 +122,7 @@ describe('LayoutService', () => { it('should return the current orientation', () => { const windowSpy = prepare(); - windowSpy.mockReturnValueOnce({ + windowSpy.mockReturnValue({ innerWidth: 1920, // Mocked innerWidth value innerHeight: 1080, // Mocked innerHeight value screen: { @@ -318,7 +318,7 @@ describe('LayoutService', () => { }); it('should get current orientation from mql if window.screen.orientation is not supported', () => { - const windowSpy = prepare(); + prepare(); var temp = global.window; global.customWindow = Object.create(window); Object.defineProperty(global, 'window', { @@ -327,16 +327,18 @@ describe('LayoutService', () => { }); Object.defineProperty(window, 'matchMedia', { writable: true, - value: jest.fn().mockReturnValue({ - matches: false, - media: '', - onchange: null, - addListener: jest.fn(), - removeListener: jest.fn(), - addEventListener: jest.fn(), - removeEventListener: jest.fn(), - dispatchEvent: jest.fn(), - }), + value: (query) => { + return { + matches: false, + media: query, + onchange: null, + addListener: jest.fn(), + removeListener: jest.fn(), + addEventListener: jest.fn(), + removeEventListener: jest.fn(), + dispatchEvent: jest.fn(), + }; + }, }); expect(LayoutService.getOrientation()).toEqual('landscape'); Object.defineProperty(global, 'window', { @@ -346,7 +348,7 @@ describe('LayoutService', () => { }); it('should get current orientation from mql if window.screen.orientation is not supported', () => { - const windowSpy = prepare(); + prepare(); var temp = global.window; global.customWindow = Object.create(window); Object.defineProperty(global, 'window', { @@ -355,16 +357,18 @@ describe('LayoutService', () => { }); Object.defineProperty(window, 'matchMedia', { writable: true, - value: jest.fn().mockReturnValue({ - matches: true, - media: '', - onchange: null, - addListener: jest.fn(), - removeListener: jest.fn(), - addEventListener: jest.fn(), - removeEventListener: jest.fn(), - dispatchEvent: jest.fn(), - }), + value: (query) => { + return { + matches: true, + media: query, + onchange: null, + addListener: jest.fn(), + removeListener: jest.fn(), + addEventListener: jest.fn(), + removeEventListener: jest.fn(), + dispatchEvent: jest.fn(), + }; + }, }); expect(LayoutService.getOrientation()).toEqual('portrait'); Object.defineProperty(global, 'window', { @@ -381,13 +385,17 @@ describe('LayoutService', () => { value: global.customWindow, writable: true, }); - Object.defineProperty(window, 'matchMedia', { + Object.defineProperty(global, 'matchMedia', { writable: true, value: false, }); - expect(() => { + let thrownError; + try { LayoutService.getOrientation(); - }).toThrow(Error('Astral.layout: No orientation found')); + } catch (error) { + thrownError = error; + } + expect(thrownError.message).toMatch('Astral.layout: No orientation found.'); Object.defineProperty(global, 'window', { value: temp, writable: true, diff --git a/src/context.js b/src/context.js deleted file mode 100644 index c928bf2..0000000 --- a/src/context.js +++ /dev/null @@ -1,206 +0,0 @@ -import event from './event'; - -/** - * @desc Astral Context - * @namespace Astral.context - * @type {{getState: (function(*): {onchange: ((function(*): void)|*), value: *}), updateState: updateState, setDebugMode: setDebugMode}} - * @example Astral.context.getState("myState"); - * @example Astral.context.updateState("myState", "myValue"); - * @example Astral.context.setDebugMode(true); - * @example Astral.context.setDebugMode(false); - * @example Astral.context.getState("myState").onchange(function(prevState, newState) { console.log(prevState, newState) }); - * @example Astral.context.getState("myState").value; - * @memberof! Astral - * @public - */ -export default (function () { - /** - * @typedef {Object} State - * @property {function} onchange - Callback function to trigger upon state change - * @property {*} value - Current state value - * @memberof! Astral.context - * @public - * @example Astral.context.getState("myState"); - * @example Astral.context.getState("myState").onchange(function(prevState, newState) { console.log(prevState, newState) }); - * @example Astral.context.getState("myState").value; - */ - - /** - * @typedef {Object} StateChangeObj - * @property {*} prevState - Previous state value - * @property {*} newState - New state value - * @memberof! Astral.context - * @public - * @example Astral.context.getState("myState"); - * @example Astral.context.getState("myState").onchange(function(prevState, newState) { console.log(prevState, newState) }); - */ - - /** - * @typedef {Object} Listener - * @property {function} onchange - Callback function to trigger upon state change - * @memberof! Astral.context - * @public - * @example Astral.context.getState("myState").onchange(function(prevState, newState) { console.log(prevState, newState) }); - */ - - /** - * @desc Astral Context Store - * @memberof! Astral.context - * @private - * @type {Object} - * @name store - */ - - /** - * @desc Debug mode - * @memberof! Astral.context - * @private - * @type {Boolean} - * @name _debugMode - * @default false - */ - - // initialize store and debug mode - var store = {}, - _debugMode = false; - - /** - * @desc Initialize a state - * @name _initState - * @param {String} key State key - * @param {*} val State value - * @returns {void} - * @private - * @memberof! Astral.context - */ - function _initState(key, val) { - if (typeof store[key] !== 'undefined') throw Error('Astral.context: State already initialized'); - store[key] = null; - _debugLog('State: ' + key + '\nValue: ' + val + '\nAction: Initialized'); - updateState(key, val); - } - - /** - * @desc Get a state - * @name getState - * @param {String} key State key - * @public - * @memberof! Astral.context - * @example Astral.context.getState("myState"); - * @example Astral.context.getState("myState").onchange(function(prevState, newState) { console.log(prevState, newState) }); - * @example Astral.context.getState("myState").value; - * @returns {State} - */ - function getState(key) { - if (typeof store[key] === 'undefined') _initState(key, null); - var listener = new ListenerConstructor(key); - return { value: store[key], onchange: listener }; - } - - /** - * @desc Update a state - * @name updateState - * @returns {void} - * @public - * @param {String|Object} key - The key of the state to update, or an object containing key-value pairs to update multiple states. - * @param {*} val - The value to update the state with (only applicable when key is a string). - * @memberof! Astral.context - * @example - * // Update a single state - * Astral.context.updateState("myState", "myValue"); - * - * // Update multiple states using an object - * Astral.context.updateState({ - * state1: value1, - * state2: value2, - * }); - */ - function updateState(key, val) { - if (typeof key === 'object' && key !== null) { - // Update multiple states using an object - for (const stateKey in key) { - updateState(stateKey, key[stateKey]); - } - return; - } - - if (typeof store[key] === 'undefined') { - _initState(key, null); - } - - var prevState = store[key]; - store[key] = val; - - _debugLog('State: ' + key + '\nValue: ' + val + '\nAction: Updated'); - event.publish('ASTRAL_CONTEXT_UPDATED_INTERNAL_' + key, { - prevState: prevState, - newState: store[key], - }); - } - - /** - * @desc Listener Constructor - * @name ListenerConstructor - * @param {String} key State key - * @returns {function(*): void} - * @private - * @constructor - * @memberof! Astral.context - */ - function ListenerConstructor(key) { - return function (callback) { - event.subscribe('ASTRAL_CONTEXT_UPDATED_INTERNAL_' + key, function (stateChangeObj) { - callback.call(null, stateChangeObj.prevState, stateChangeObj.newState); - }); - }; - } - - /** - * @desc Set debug mode - * @name setDebugMode - * @returns {void} - * @public - * @param {Boolean} mode - * @memberof! Astral.context - * @example Astral.context.setDebugMode(true); - * @example Astral.context.setDebugMode(false); - */ - function setDebugMode(mode) { - _debugMode = mode; - } - - /** - * @desc Debug log - * @name _debugLog - * @returns {void} - * @param {String} msg - * @private - * @memberof! Astral.context - */ - function _debugLog(msg) { - if (_debugMode) console.debug('Astral.context $:', msg); - } - - /** - * public methods - * @memberof! Astral.context - * @public - * @type {Object} - * @name context - * @property {function} getState - Get a state - * @property {function} updateState - Update a state - * @property {function} setDebugMode - Set debug mode - * @example Astral.context.getState("myState"); - * @example Astral.context.updateState("myState", "myValue"); - * @example Astral.context.setDebugMode(true); - * @example Astral.context.setDebugMode(false); - * @example Astral.context.getState("myState").onchange(function(prevState, newState) { console.log(prevState, newState) }); - * @example Astral.context.getState("myState").value; - */ - - return { - getState: getState, - updateState: updateState, - setDebugMode: setDebugMode, - }; -})(); diff --git a/src/context.ts b/src/context.ts new file mode 100644 index 0000000..57ddb21 --- /dev/null +++ b/src/context.ts @@ -0,0 +1,166 @@ +import Event from './event'; + +/** + * @desc Astral Context + * @namespace Astral.context + * @type {{getState: (function(*): {onchange: ((function(*): void)|*), value: *}), updateState: updateState, setDebugMode: setDebugMode}} + * @example Astral.context.getState("myState"); + * @example Astral.context.updateState("myState", "myValue"); + * @example Astral.context.setDebugMode(true); + * @example Astral.context.setDebugMode(false); + * @example + * const [value, onchange] = Astral.context.getState("myState"); + * onchange(function(prevState, newState) { console.log(prevState, newState) }); + * @memberof! Astral + * @public + */ + +/** + * Represents the previous and new state values. + */ +interface StateChangeObject { + /** + * Previous state value. + */ + prevState: StateValue; + /** + * New state value. + */ + newState: StateValue; +} + +/** + * Callback function type for state changes. + */ +type StateChangeCallback = (prevState: StateValue, newState: StateValue) => void; + +/** + * Represents the type of a state value. + */ +type StateValue = any; + +/** + * Represents the type of a state key. + */ +type StateKey = string; + +/** + * Represents a tuple containing the state value and the corresponding change callback. + */ +interface StateTuple { + 0: StateValue; + 1: StateChangeCallback; +} + +/** + * Represents an object used to update multiple states. + */ +interface StateUpdateObject { + [key: StateKey]: StateValue; +} + +/** + * Represents the store object holding the state values. + */ +interface Store { + [key: StateKey]: any; +} + +namespace Astral.context { + const store: Store = {}; + let _debugMode = false; + + function _initState(key: StateKey, val: StateValue): void { + store[key] = null; + _debugLog(`State: ${key}\nValue: ${val}\nAction: Initialized`); + updateState(key, val); + } + + function _debugLog(msg: string): void { + if (_debugMode) console.debug('Astral.context $:', msg); + } + + function _ListenerConstructor(key: StateKey): (callback: StateChangeCallback) => void { + return function (callback: StateChangeCallback) { + Event.subscribe(`ASTRAL_CONTEXT_UPDATED_INTERNAL_${key}`, function (stateChangeObj: StateChangeObject) { + callback.call(null, stateChangeObj.prevState, stateChangeObj.newState); + }); + }; + } + + // Public API + + /** + * @desc Get a state + * @name getState + * @param {String} key State key + * @public + * @memberof! Astral.context + * @example + * const [value, onchange] = Astral.context.getState("myState"); + * onchange(function(prevState, newState) { console.log(prevState, newState) }); + * @returns {StateTuple} + */ + export function getState(key: StateKey): StateTuple { + if (typeof store[key] === 'undefined') _initState(key, null); + const listener = _ListenerConstructor(key); + return [store[key], listener]; + } + + /** + * @desc Update a state + * @name updateState + * @returns {void} + * @public + * @param {String|Object} key - The key of the state to update, or an object containing key-value pairs to update multiple states. + * @param {*} val - The value to update the state with (only applicable when key is a string). + * @memberof! Astral.context + * @example + * // Update a single state + * Astral.context.updateState("myState", "myValue"); + * + * // Update multiple states using an object + * Astral.context.updateState({ + * state1: value1, + * state2: value2, + * }); + */ + export function updateState(key: StateKey | StateUpdateObject, val?: StateValue): void { + if (typeof key === 'object' && key !== null) { + for (const stateKey in key) { + updateState(stateKey, key[stateKey]); + } + return; + } + + if (typeof key === 'string') { + if (typeof store[key] === 'undefined') { + _initState(key, null); + } + + const prevState = store[key]; + store[key] = val; + _debugLog(`State: ${key}\nValue: ${val}\nAction: Updated`); + Event.publish(`ASTRAL_CONTEXT_UPDATED_INTERNAL_${key}`, { + prevState: prevState, + newState: store[key], + }); + } + } + + /** + * @desc Set debug mode + * @name setDebugMode + * @returns {void} + * @public + * @param {Boolean} mode + * @memberof! Astral.context + * @example Astral.context.setDebugMode(true); + * @example Astral.context.setDebugMode(false); + */ + export function setDebugMode(mode: boolean): void { + _debugMode = mode; + } +} + +export default Astral.context; diff --git a/src/event.js b/src/event.ts similarity index 55% rename from src/event.js rename to src/event.ts index 0de6d72..f8d7f63 100644 --- a/src/event.js +++ b/src/event.ts @@ -10,34 +10,43 @@ * @example Astral.event.setDebugMode(true); * @example Astral.event.setDebugMode(false); */ -export default (function () { - /** - * @desc Event subscribers - * @memberof! Astral.event - * @private - * @type {Object} - * @name _eventSubscribers - */ - const _eventSubscribers = {}; +/** + * Represents the name of an event. + */ +type EventName = string; +/** + * Represents the data passed to an event. + */ +type EventData = any; +/** + * Represents an event subscriber. + */ +type EventSubscriber = (data: EventData) => void; +/** + * Represents a list of event subscribers. + */ +type SubscriberList = { + [key: EventName]: EventSubscriber[]; +}; +/** + * Represents the debug mode. + */ +type DebugMode = boolean; - /** - * @desc Debug mode - * @memberof! Astral.event - * @private - * @type {Boolean} - * @name _debugMode - * @default false - * @example Astral.event.setDebugMode(true); - * @example Astral.event.setDebugMode(false); - */ - let _debugMode = false; +namespace Astral.event { + const _eventSubscribers: SubscriberList = {}; + let _debugMode: DebugMode = false; - function _removeFromArray(array, element) { - var index = array.indexOf(element); + function _removeFromArray(array: Array, element: any) { + const index = array.indexOf(element); if (index > -1) array.splice(index, 1); } + function _debugLog(msg: string) { + if (_debugMode) console.debug('Astral.event $:', msg); + } + // public methods /** @@ -50,35 +59,35 @@ export default (function () { * @example Astral.event.subscribe('eventName', function(data){ console.log(data) }); */ - function subscribe(eventName, callback) { + export function subscribe(eventName: EventName, callback: EventSubscriber) { if (!Array.isArray(_eventSubscribers[eventName])) { _eventSubscribers[eventName] = []; - _debugLog('Event: ' + eventName + ' subcribers list initialized'); + _debugLog(`Event: ${eventName} subscribers list initialized`); } if (_eventSubscribers[eventName].indexOf(callback) === -1) { _eventSubscribers[eventName].push(callback); - _debugLog('Event: ' + eventName, '\nCallback:', callback, '\nAction: callback added (subscribed)'); + _debugLog(`Event: ${eventName}\nCallback: ${callback}\nAction: callback added (subscribed)`); } } /** * Publish an event to trigger subscribed callbacks * @param {String} eventName Name of the event to publish - * @param {Any} data Data to be passed to the event's callbacks. + * @param {*} data Data to be passed to the event's callbacks. * @returns {void} * @memberof! Astral.event * @public * @example Astral.event.publish('eventName', {foo: 'bar'}); * @example Astral.event.publish('eventName', 'foo'); */ - function publish(eventName, data) { + export function publish(eventName: EventName, data: EventData) { if (!Array.isArray(_eventSubscribers[eventName])) { - _debugLog('Event: ' + eventName + '\nData: ' + JSON.stringify(data) + '\nAction: No subscribers found'); + _debugLog(`Event: ${eventName}\nData: ${JSON.stringify(data)}\nAction: No subscribers found`); return; } _eventSubscribers[eventName].forEach(function (callback) { callback(data); - _debugLog('Event: ' + eventName + '\nData: ' + JSON.stringify(data), '\nCallback: ', callback, '\nAction: callback executed'); + _debugLog(`Event: ${eventName}\nData: ${JSON.stringify(data)}\nCallback: ${callback}\nAction: callback executed`); }); } @@ -91,16 +100,16 @@ export default (function () { * @public * @example Astral.event.unsubscribe('eventName', callback); */ - function unsubscribe(eventName, callback) { + export function unsubscribe(eventName: EventName, callback: EventSubscriber) { if (!Array.isArray(_eventSubscribers[eventName])) { - _debugLog('Event: ' + eventName + ' | No subscribers found to unsubscribe'); + _debugLog(`Event: ${eventName}\nNo subscribers found to unsubscribe`); return; } - for (var i = 0; i < _eventSubscribers[eventName].length; i++) { + for (let i = 0; i < _eventSubscribers[eventName].length; i++) { if (_eventSubscribers[eventName][i] === callback) _removeFromArray(_eventSubscribers[eventName], callback); } - _debugLog('Event: ' + eventName, '\nCallback:', callback, '\nAction: callback removed (unsubscribed)'); + _debugLog(`Event: ${eventName}\nCallback: ${callback}\nAction: callback removed (unsubscribed)`); } /** @@ -111,19 +120,19 @@ export default (function () { * @public * @example Astral.event.unsubscribeAll('eventName'); */ - function unsubscribeAll(eventName) { + export function unsubscribeAll(eventName: EventName) { if (!Array.isArray(_eventSubscribers[eventName])) { - for (var key in _eventSubscribers) { + for (const key in _eventSubscribers) { _removeFromArray(_eventSubscribers[key], _eventSubscribers[key]); } _debugLog('Removed all subscriptions because no event name was given to unsubscribeAll function'); return; } - for (var i = 0; i < _eventSubscribers[eventName].length; i++) { + for (let i = 0; i < _eventSubscribers[eventName].length; i++) { _removeFromArray(_eventSubscribers[eventName], _eventSubscribers[eventName][i]); } - _debugLog('Event: ' + eventName + '\nAction: All callbacks removed (unsubscribed)'); + _debugLog(`Event: ${eventName}\nAction: All callbacks removed (unsubscribed)`); } /** @@ -136,41 +145,10 @@ export default (function () { * @example Astral.event.setDebugMode(true); * @example Astral.event.setDebugMode(false); */ - function setDebugMode(debugMode) { + export function setDebugMode(debugMode: DebugMode) { _debugMode = debugMode; _debugLog('Debug mode set to: ' + debugMode); } +} - /** - * @desc Log debug messages - * @memberof! Astral.event - * @param {String} msg - * @returns {void} - * @param msg - * @private - * @name _debugLog - */ - function _debugLog(msg) { - if (_debugMode) console.debug('Astral.event $:', msg); - } - - /** - * @desc Public methods - * @memberof! Astral.event - * @public - * @name publicMethods - * @type {Object} - * @property {Function} subscribe - * @property {Function} publish - * @property {Function} unsubscribe - * @property {Function} unsubscribeAll - * @property {Function} setDebugMode - */ - return { - subscribe: subscribe, - publish: publish, - unsubscribe: unsubscribe, - unsubscribeAll: unsubscribeAll, - setDebugMode: setDebugMode, - }; -})(); +export default Astral.event; diff --git a/src/index.js b/src/index.js deleted file mode 100644 index c7a2c56..0000000 --- a/src/index.js +++ /dev/null @@ -1,13 +0,0 @@ -import event from './event'; -import layout from './layout'; -import context from './context'; - -/** - * @desc Astral namespace - * @namespace Astral - */ -const Astral = { event, layout, context }; - -export { event, layout, context }; - -export default Astral; diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..3b64670 --- /dev/null +++ b/src/index.ts @@ -0,0 +1,45 @@ +import Event from './event'; +import Layout from './layout'; +import Context from './context'; + +/** + * @desc Astral namespace + * @namespace Astral + */ + +interface AstralEvent { + subscribe: typeof Event.subscribe; + publish: typeof Event.publish; + unsubscribe: typeof Event.unsubscribe; + unsubscribeAll: typeof Event.unsubscribeAll; + setDebugMode: typeof Event.setDebugMode; +} + +interface AstralLayout { + config: typeof Layout.config; + setDebugMode: typeof Layout.setDebugMode; + getWindowSize: typeof Layout.getWindowSize; + getBreakpointFromLabel: typeof Layout.getBreakpointFromLabel; + getBreakpoint: typeof Layout.getBreakpoint; + getOrientation: typeof Layout.getOrientation; + applyIf: typeof Layout.applyIf; + getBreakpointLabels: typeof Layout.getBreakpointLabels; +} + +interface AstralContext { + getState: typeof Context.getState; + updateState: typeof Context.updateState; + setDebugMode: typeof Context.setDebugMode; +} + +namespace Astral { + export const event: AstralEvent = Event, + layout: AstralLayout = Layout, + context: AstralContext = Context; +} + +export const event: AstralEvent = Event, + layout: AstralLayout = Layout, + context: AstralContext = Context; + +export default Astral; diff --git a/src/layout.js b/src/layout.ts similarity index 51% rename from src/layout.js rename to src/layout.ts index e7389bb..366ed96 100644 --- a/src/layout.js +++ b/src/layout.ts @@ -1,4 +1,4 @@ -import event from './event'; +import Event from './event'; /** * @namespace Astral.layout @@ -7,93 +7,57 @@ import event from './event'; * @example Astral.layout.applyIf(successCallback, failCallback, [ {breakpoint: Astral.layout.getBreakpointLabels().ExtraLarge, selector: "<="}, {breakpoint: Astral.layout.getBreakpointLabels().Large, selector: ">="} ], true); * @memberof! Astral */ -export default (function () { - /** - * @typedef {Object} Breakpoint - * @property {Number} minWidth Minimum width of the breakpoint - * @property {Number} maxWidth Maximum width of the breakpoint - * @property {Number} minHeight Minimum height of the breakpoint - * @memberof! Astral.layout - * @public - * @example Astral.layout.getBreakpoint(Astral.layout.getWindowSize()); - * @example Astral.layout.getBreakpointFromLabel(Astral.layout.getBreakpointLabels().ExtraLarge); - * @example Astral.layout.getBreakpointLabels(); - */ - /** - * @typedef {Object} getBreakpointLabels - * @property {String} extraLarge Extra large breakpoint label - * @property {String} large Large breakpoint label - * @property {String} medium Medium breakpoint label - * @property {String} small Small breakpoint label - * @property {String} extraSmall Extra small breakpoint label - * @property {String} Other Other breakpoint label - * @memberof! Astral.layout - * @public - * @example Astral.layout.getBreakpointLabels(); - * @example Astral.layout.getBreakpointLabels().ExtraLarge; - * @example Astral.layout.getBreakpointLabels().Large; - * @example Astral.layout.getBreakpointLabels().Medium; - * @example Astral.layout.getBreakpointLabels().Small; - * @example Astral.layout.getBreakpointLabels().ExtraSmall; - * @example Astral.layout.getBreakpointLabels().Other; - * @example Astral.layout.getBreakpointFromLabel(Astral.layout.getBreakpointLabels().ExtraLarge); - */ +type BreakpointLabel = string; +interface BreakpointLabels { + [BreakpointLabel: BreakpointLabel]: BreakpointLabel; +} +type Breakpoint = { + minWidth: number; + maxWidth: number; + minHeight: number; +}; +type BreakpointList = { + [key: BreakpointLabel]: Breakpoint; +}; - /** - * @typedef {Object} Config - * @property {Breakpoints} breakpoints Breakpoints configuration - * @memberof! Astral.layout - * @public - * @example Astral.layout.config({ breakpoints: { extraLarge: { minWidth: 1920, maxWidth: Infinity, minHeight: 840, }, large: { minWidth: 1280, maxWidth: 1920, minHeight: 646, }, medium: { minWidth: 960, maxWidth: 1280, minHeight: 380, }, small: { minWidth: 600, maxWidth: 960, minHeight: 0, }, extraSmall: { minWidth: 0, maxWidth: 600, minHeight: 0, }, Other: { minWidth: 600, maxWidth: Infinity, minHeight: 0, }, } }); - */ - /** - * @typedef {Object} WindowSize - * @property {Number} WIDTH Width of the window - * @property {Number} HEIGHT Height of the window - * @memberof! Astral.layout - * @public - * @example Astral.layout.getWindowSize(); - * @example Astral.layout.getBreakpoint(Astral.layout.getWindowSize()); - */ +interface Config { + breakpoints: BreakpointList; +} - /** - * @typedef {Object} Breakpoints - * @property {Breakpoint} extraLarge Extra large breakpoint - * @property {Breakpoint} large Large breakpoint - * @property {Breakpoint} medium Medium breakpoint - * @property {Breakpoint} small Small breakpoint - * @property {Breakpoint} extraSmall Extra small breakpoint - * @property {Breakpoint} Other Other breakpoint that is not matched by any defined breakpoint - * @memberof! Astral.layout - * @public - * @example Astral.layout.config({ breakpoints: { extraLarge: { minWidth: 1920, maxWidth: Infinity, minHeight: 840, }, large: { minWidth: 1280, maxWidth: 1920, minHeight: 646, }, medium: { minWidth: 960, maxWidth: 1280, minHeight: 380, }, small: { minWidth: 600, maxWidth: 960, minHeight: 0, }, extraSmall: { minWidth: 0, maxWidth: 600, minHeight: 0, }, Other: { minWidth: 600, maxWidth: Infinity, minHeight: 0, }, } }); - * - */ - /** - * @typedef {Object} Orientation - * @property {String} portrait Portrait orientation - * @property {String} landscape Landscape orientation - * @memberof! Astral.layout - * @public - * @example Astral.layout.getOrientation(); - */ +type DebugMode = boolean; - /** - * @desc Breakpoint labels - * @memberof! Astral.layout - * @private - * @type {getBreakpointLabels} - * @example Astral.layout.getBreakpointLabels(); - * @example Astral.layout.getBreakpointLabels().ExtraLarge; - * @example Astral.layout.getBreakpointLabels().Large; - * @example Astral.layout.getBreakpointLabels().Medium; - * @example Astral.layout.getBreakpointLabels().Small; - * @example Astral.layout.getBreakpointLabels().ExtraSmall; - * @example Astral.layout.getBreakpointLabels().Other; - * @example Astral.layout.getBreakpointFromLabel(Astral.layout.getBreakpointLabels().ExtraLarge); - */ - const DEFAULT_BREAKPOINT_LABELS = { +interface AstralLayoutEvents { + SCREEN_RESIZE: 'astralInternalScreenResizeEvent'; + ORIENTATION_CHANGE: 'astralInternalOrientationChangeEvent'; +} + +interface WindowSize { + WIDTH: number; + HEIGHT: number; +} + +type Orientation = 'landscape' | 'portrait'; + +type ResizeCallback = (windowSize: WindowSize) => void; + +type OrientationChangeCallback = (orientation: Orientation) => void; + +type BreakpointSelector = '<' | '<=' | '>' | '>=' | '='; + +interface ApplyIfConditionObject { + breakpoint: BreakpointLabel; + selector: BreakpointSelector; +} + +type ApplyIfConditionFunction = () => boolean; + +type ApplyIfCondition = ApplyIfConditionFunction | ApplyIfConditionObject; + +type ApplyIfConditions = ApplyIfCondition[]; + +namespace Astral.layout { + const DEFAULT_BREAKPOINT_LABELS: BreakpointLabels = { ExtraLarge: 'ExtraLarge', Large: 'Large', Medium: 'Medium', @@ -102,15 +66,7 @@ export default (function () { Other: 'Other', }; - /** - * @desc Default breakpoints - * @memberof! Astral.layout - * @private - * @type {Breakpoints} - * @example Astral.layout.config({ breakpoints: { extraLarge: { minWidth: 1920, maxWidth: Infinity, minHeight: 840, }, large: { minWidth: 1280, maxWidth: 1920, minHeight: 646, }, medium: { minWidth: 960, maxWidth: 1280, minHeight: 380, }, small: { minWidth: 600, maxWidth: 960, minHeight: 0, }, extraSmall: { minWidth: 0, maxWidth: 600, minHeight: 0, }, Other: { minWidth: 600, maxWidth: Infinity, minHeight: 0, }, } }); - * @example Astral.layout.getBreakpoint(Astral.layout.getWindowSize()); - */ - const DEFAULT_BREAKPOINTS = { + const DEFAULT_BREAKPOINTS: BreakpointList = { [DEFAULT_BREAKPOINT_LABELS.ExtraLarge]: { minWidth: 1920, maxWidth: Infinity, @@ -143,63 +99,23 @@ export default (function () { }, }; - /** - * @desc Default configuration - * @memberof! Astral.layout - * @private - * @type {Config} - * @example Astral.layout.config({ breakpoints: { extraLarge: { minWidth: 1920, maxWidth: Infinity, minHeight: 840, }, large: { minWidth: 1280, maxWidth: 1920, minHeight: 646, }, medium: { minWidth: 960, maxWidth: 1280, minHeight: 380, }, small: { minWidth: 600, maxWidth: 960, minHeight: 0, }, extraSmall: { minWidth: 0, maxWidth: 600, minHeight: 0, }, Other: { minWidth: 600, maxWidth: Infinity, minHeight: 0, }, } }); - */ - const DEFAULT_CONFIG = { + const DEFAULT_CONFIG: Config = { breakpoints: DEFAULT_BREAKPOINTS, }; - /** - * @desc Configuration - * @memberof! Astral.layout - * @private - * @type {Config} - * @example Astral.layout.config({ breakpoints: { extraLarge: { minWidth: 1920, maxWidth: Infinity, minHeight: 840, }, large: { minWidth: 1280, maxWidth: 1920, minHeight: 646, }, medium: { minWidth: 960, maxWidth: 1280, minHeight: 380, }, small: { minWidth: 600, maxWidth: 960, minHeight: 0, }, extraSmall: { minWidth: 0, maxWidth: 600, minHeight: 0, }, Other: { minWidth: 600, maxWidth: Infinity, minHeight: 0, }, } }); - */ - let config = DEFAULT_CONFIG; + let configuration: Config = DEFAULT_CONFIG; - let breakpointLabels = DEFAULT_BREAKPOINT_LABELS; + let breakpointLabels: BreakpointLabels = DEFAULT_BREAKPOINT_LABELS; - /** - * @desc Astral layout events - * @memberof! Astral.layout - * @private - * @type {Object} - * @name ASTRAL_LAYOUT_EVENTS - * @property {String} SCREEN_RESIZE Screen resize event - * @property {String} ORIENTATION_CHANGE Orientation change event - * @example Astral.layout.applyIf(successCallback, failCallback, [ {breakpoint: Astral.layout.getBreakpointLabels().ExtraLarge, selector: "<="}, {breakpoint: Astral.layout.getBreakpointLabels().Large, selector: ">="} ], true); - */ - const ASTRAL_LAYOUT_EVENTS = { + const ASTRAL_LAYOUT_EVENTS: AstralLayoutEvents = { SCREEN_RESIZE: 'astralInternalScreenResizeEvent', ORIENTATION_CHANGE: 'astralInternalOrientationChangeEvent', }; - /** - * @desc Debug mode - * @memberof! Astral.layout - * @private - * @type {Boolean} - * @name debugMode - * @default false - * @example Astral.layout.setDebugMode(true); - * @example Astral.layout.setDebugMode(false); - */ - let debugMode = false; + let debugMode: DebugMode = false; /** Private Functions */ - /** - * @desc Subscribe to resize events on window - * @memberof! Astral.layout - * @private - * @returns {void} - */ (function _setupResizeEvents() { window.addEventListener('resize', _publishResizeEvents); @@ -224,25 +140,25 @@ export default (function () { })(); function _publishResizeEvents() { - event.publish(ASTRAL_LAYOUT_EVENTS.SCREEN_RESIZE, getBreakpoint(getWindowSize())); + Event.publish(ASTRAL_LAYOUT_EVENTS.SCREEN_RESIZE, getBreakpoint(getWindowSize())); } function _publishOrientationChangeEvents() { const orientation = getOrientation(); - event.publish(ASTRAL_LAYOUT_EVENTS.ORIENTATION_CHANGE, orientation); + Event.publish(ASTRAL_LAYOUT_EVENTS.ORIENTATION_CHANGE, orientation); } - function _resizeCallback(callback) { - event.subscribe(ASTRAL_LAYOUT_EVENTS.SCREEN_RESIZE, callback); + function _resizeCallback(callback: ResizeCallback) { + Event.subscribe(ASTRAL_LAYOUT_EVENTS.SCREEN_RESIZE, callback); _publishResizeEvents(); } - function _orientationChangeCallback(callback) { - event.subscribe(ASTRAL_LAYOUT_EVENTS.ORIENTATION_CHANGE, callback); + function _orientationChangeCallback(callback: OrientationChangeCallback) { + Event.subscribe(ASTRAL_LAYOUT_EVENTS.ORIENTATION_CHANGE, callback); _publishOrientationChangeEvents(); } - function _debugLog(message) { + function _debugLog(message: string) { if (debugMode) console.debug(`Astral.layout $: ${message}`); } @@ -255,10 +171,10 @@ export default (function () { * @public * @example Astral.layout.config({ breakpoints: { extraLarge: { minWidth: 1920, maxWidth: Infinity, minHeight: 840, }, large: { minWidth: 1280, maxWidth: 1920, minHeight: 646, }, medium: { minWidth: 960, maxWidth: 1280, minHeight: 380, }, small: { minWidth: 600, maxWidth: 960, minHeight: 0, }, extraSmall: { minWidth: 0, maxWidth: 600, minHeight: 0, }, Other: { minWidth: 600, maxWidth: Infinity, minHeight: 0, }, } }); */ - function configure(newConfig) { + export function config(newConfig: Config) { if (!newConfig || !newConfig.breakpoints) throw new Error('Astral.layout: Invalid configuration'); - config = newConfig; - breakpointLabels = Object.keys(config.breakpoints).reduce((acc, key) => { + configuration = newConfig; + breakpointLabels = Object.keys(configuration.breakpoints).reduce((acc: BreakpointLabels, key: BreakpointLabel) => { acc[key] = key; return acc; }, {}); @@ -272,7 +188,7 @@ export default (function () { * @example Astral.layout.getBreakpoint(Astral.layout.getWindowSize()); * @returns {WindowSize} Window size */ - function getWindowSize() { + export function getWindowSize(): WindowSize { return { WIDTH: window.innerWidth, HEIGHT: window.innerHeight, @@ -288,8 +204,8 @@ export default (function () { * @returns {Breakpoint} Breakpoint * @throws {Error} No breakpoint found for label: */ - function getBreakpointFromLabel(breakpoint) { - const match = config.breakpoints[breakpoint]; + export function getBreakpointFromLabel(breakpoint: BreakpointLabel) { + const match = configuration.breakpoints[breakpoint]; if (match) return match; throw new Error('Astral.layout: No breakpoint found for label: ' + breakpoint); } @@ -303,9 +219,9 @@ export default (function () { * @returns {Breakpoint} Breakpoint * @throws {Error} No breakpoint found for screen size */ - function getBreakpoint(screenSize) { - for (const breakpoint in config.breakpoints) { - const resObj = config.breakpoints[breakpoint]; + export function getBreakpoint(screenSize: WindowSize) { + for (const breakpoint in configuration.breakpoints) { + const resObj = configuration.breakpoints[breakpoint]; if (screenSize.WIDTH >= resObj.minWidth && screenSize.WIDTH <= resObj.maxWidth) { if (screenSize.HEIGHT >= resObj.minHeight) { return resObj; @@ -322,21 +238,23 @@ export default (function () { * @example Astral.layout.getOrientation(); * @returns {Orientation} Orientation */ - function getOrientation() { + export function getOrientation(): Orientation { try { - return window.screen.orientation.type; + if (window.screen.orientation.type.match('portrait')) return 'portrait'; + else if (window.screen.orientation.type.match('landscape')) return 'landscape'; } catch (e) { if (window.matchMedia) { const mql = window.matchMedia('(orientation: portrait)'); - if (mql.matches) { + if (mql && mql.matches) { return 'portrait'; - } else { + } else if (mql && !mql.matches) { return 'landscape'; } } else { - throw new Error('Astral.layout: No orientation found', e); + throw new Error(`Astral.layout: No orientation found.\n${e}`); } } + throw new Error(`Astral.layout: No orientation found.`); } /** @@ -354,7 +272,12 @@ export default (function () { * @example Astral.layout.applyIf(successCallback, failCallback, [ {breakpoint: Astral.layout.getBreakpointLabels().ExtraLarge, selector: "<="}, {breakpoint: Astral.layout.getBreakpointLabels().Large, selector: ">="} ], true); */ // TODO: we need to make this function more sophisticated - function applyIf(callbackSuccess, callbackFail, conditions, areAllConditionsNecessary) { + export function applyIf( + callbackSuccess: () => void, + callbackFail: () => void, + conditions: ApplyIfConditions, + areAllConditionsNecessary: boolean + ) { if (!conditions || conditions.length === 0 || !callbackSuccess) throw new Error('Astral.layout: No conditions or callbackSuccess provided'); @@ -362,7 +285,7 @@ export default (function () { let isMatched = false; for (let index = 0; index < conditions.length; index++) { - let condition = conditions[index]; + const condition = conditions[index]; let conditionMatched = false; if (typeof condition === 'object') { const matchedBreakpoint = getBreakpointFromLabel(condition.breakpoint); @@ -398,7 +321,7 @@ export default (function () { } if (typeof condition === 'function') { - conditionMatched = condition.call(); + conditionMatched = condition(); } _debugLog(`Condition ${index} matched: ${conditionMatched}`); @@ -421,8 +344,8 @@ export default (function () { } } - if (isMatched) callbackSuccess.call(); - else callbackFail.call(); + if (isMatched) callbackSuccess(); + else callbackFail(); } _resizeCallback(_AstralJsMediaQuery); @@ -442,7 +365,7 @@ export default (function () { * @example Astral.layout.getBreakpointLabels().Other; * @returns {getBreakpointLabels} Breakpoint labels */ - function getBreakpointLabels() { + export function getBreakpointLabels() { return breakpointLabels; } @@ -454,18 +377,9 @@ export default (function () { * @example Astral.layout.setDebugMode(true); * @returns {void} */ - function setDebugMode(value) { + export function setDebugMode(value: DebugMode) { debugMode = value; } +} - return { - config: configure, - getWindowSize: getWindowSize, - getOrientation: getOrientation, - getBreakpoint: getBreakpoint, - getBreakpointFromLabel: getBreakpointFromLabel, - applyIf: applyIf, - getBreakpointLabels: getBreakpointLabels, - setDebugMode: setDebugMode, - }; -})(); +export default Astral.layout; diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..92bd072 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "outDir": "./dist/", + "noImplicitAny": true, + "module": "es6", + "target": "es6", + "allowJs": true, + "moduleResolution": "node" + }, + "typedocOptions": { + "entryPoints": ["src/index.ts"], + "out": "docs" + } +} \ No newline at end of file diff --git a/typedoc.json b/typedoc.json new file mode 100644 index 0000000..ad4d599 --- /dev/null +++ b/typedoc.json @@ -0,0 +1,3 @@ +{ + "out": "docs" +} \ No newline at end of file diff --git a/webpack.conf.js b/webpack.conf.js index fcc9036..8e4c660 100644 --- a/webpack.conf.js +++ b/webpack.conf.js @@ -1,7 +1,7 @@ const path = require('path'); module.exports = { - entry: './src/index.js', + entry: './src/index.ts', output: { filename: 'astral.min.js', path: path.resolve(__dirname, 'dist/'), @@ -11,7 +11,7 @@ module.exports = { }, }, resolve: { - extensions: ['.ts', '.js'], + extensions: ['.ts'], }, module: { rules: [ diff --git a/yarn.lock b/yarn.lock index 1dc6d52..d8493dc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10,17 +10,17 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.21.4": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.21.4": "integrity" "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==" "resolved" "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz" "version" "7.21.4" dependencies: "@babel/highlight" "^7.18.6" -"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.21.5": - "integrity" "sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==" - "resolved" "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.7.tgz" - "version" "7.21.7" +"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.21.5", "@babel/compat-data@^7.22.0": + "integrity" "sha512-OgCMbbNCD/iA8cjMt+Zhp+nIC7XKaEaTG8zjvZPjGbhkppq1NIMWiZn7EaZRxUDHn4Ul265scRqg94N2WiFaGw==" + "resolved" "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.0.tgz" + "version" "7.22.0" "@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.11.6", "@babel/core@^7.12.0", "@babel/core@^7.12.3", "@babel/core@^7.13.0", "@babel/core@^7.4.0-0", "@babel/core@^7.8.0": "integrity" "sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ==" @@ -43,12 +43,12 @@ "json5" "^2.2.2" "semver" "^6.3.0" -"@babel/generator@^7.21.5", "@babel/generator@^7.7.2": - "integrity" "sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==" - "resolved" "https://registry.npmjs.org/@babel/generator/-/generator-7.21.5.tgz" - "version" "7.21.5" +"@babel/generator@^7.21.5", "@babel/generator@^7.22.0", "@babel/generator@^7.7.2": + "integrity" "sha512-tyzR0OsH88AelgukhL2rbEUCLKBGmy2G9Th/5vpyOt0zf44Be61kvIQXjCwTSX8t+qJ/vMwZfhK6mPdrMLZXRg==" + "resolved" "https://registry.npmjs.org/@babel/generator/-/generator-7.22.0.tgz" + "version" "7.22.0" dependencies: - "@babel/types" "^7.21.5" + "@babel/types" "^7.22.0" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" "jsesc" "^2.5.1" @@ -61,11 +61,11 @@ "@babel/types" "^7.18.6" "@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": - "integrity" "sha512-uNrjKztPLkUk7bpCNC0jEKDJzzkvel/W+HguzbN8krA+LPfC1CEobJEvAvGka2A/M+ViOqXdcRL0GqPUJSjx9g==" - "resolved" "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.21.5.tgz" - "version" "7.21.5" + "integrity" "sha512-65sHfBfgwY7VAzJscbxFoNSdqWul2+dMfSPihzmTKRd3QEKdcGmWEy7qRaVzMYsH7oJ91UIGFIAzW3xg7ER13w==" + "resolved" "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.0.tgz" + "version" "7.22.0" dependencies: - "@babel/types" "^7.21.5" + "@babel/types" "^7.22.0" "@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.21.5": "integrity" "sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==" @@ -78,34 +78,34 @@ "lru-cache" "^5.1.1" "semver" "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0": - "integrity" "sha512-+THiN8MqiH2AczyuZrnrKL6cAxFRRQDKW9h1YkBvbgKmAm6mwiacig1qT73DHIWMGo40GRnsEfN3LA+E6NtmSw==" - "resolved" "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.8.tgz" - "version" "7.21.8" +"@babel/helper-create-class-features-plugin@^7.22.0": + "integrity" "sha512-7ayl01xtLFm/6n41nMIc0wIglPrAab56sxcsz+V6zA+q0aWcc7ycimmdRrSUSq55uQYHEssVA51/d63P4dMkGg==" + "resolved" "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.0.tgz" + "version" "7.22.0" dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" "@babel/helper-environment-visitor" "^7.21.5" "@babel/helper-function-name" "^7.21.0" - "@babel/helper-member-expression-to-functions" "^7.21.5" + "@babel/helper-member-expression-to-functions" "^7.22.0" "@babel/helper-optimise-call-expression" "^7.18.6" "@babel/helper-replace-supers" "^7.21.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" "@babel/helper-split-export-declaration" "^7.18.6" "semver" "^6.3.0" -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.20.5": - "integrity" "sha512-zGuSdedkFtsFHGbexAvNuipg1hbtitDLo2XE8/uf6Y9sOQV1xsYX/2pNbtedp/X0eU1pIt+kGvaqHCowkRbS5g==" - "resolved" "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.8.tgz" - "version" "7.21.8" +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.0": + "integrity" "sha512-zeXvgF5qWtHDCwJcUD94ujCvK1y8BgxH1lNLpAxnVgjeXrtVGnEqRTFpSkpiMaAQPLh1nMdw8z16Vd7G9KBeVQ==" + "resolved" "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.0.tgz" + "version" "7.22.0" dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" "regexpu-core" "^5.3.1" "semver" "^6.3.0" -"@babel/helper-define-polyfill-provider@^0.3.3": - "integrity" "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==" - "resolved" "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz" - "version" "0.3.3" +"@babel/helper-define-polyfill-provider@^0.4.0": + "integrity" "sha512-RnanLx5ETe6aybRi1cO/edaRH+bNYWaryCEmjDDYyNr4wnSzyOp8T0dWipmqVHKEY3AbVKUom50AKSlj1zmKbg==" + "resolved" "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.0.tgz" + "version" "0.4.0" dependencies: "@babel/helper-compilation-targets" "^7.17.7" "@babel/helper-plugin-utils" "^7.16.7" @@ -134,12 +134,12 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-member-expression-to-functions@^7.21.5": - "integrity" "sha512-nIcGfgwpH2u4n9GG1HpStW5Ogx7x7ekiFHbjjFRKXbn5zUvqO9ZgotCO4x1aNbKn/x/xOUaXEhyNHCwtFCpxWg==" - "resolved" "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.5.tgz" - "version" "7.21.5" +"@babel/helper-member-expression-to-functions@^7.21.5", "@babel/helper-member-expression-to-functions@^7.22.0": + "integrity" "sha512-nf2NhMw5E6vzxvUOPeqHnNxcCyTe7r8MJYIWzLaMosohfQTk6F2jepzprj4ux8ez0yTPjDyrDeboItaylgdaiw==" + "resolved" "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.0.tgz" + "version" "7.22.0" dependencies: - "@babel/types" "^7.21.5" + "@babel/types" "^7.22.0" "@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.21.4": "integrity" "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==" @@ -148,19 +148,19 @@ dependencies: "@babel/types" "^7.21.4" -"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11", "@babel/helper-module-transforms@^7.21.5": - "integrity" "sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==" - "resolved" "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz" - "version" "7.21.5" +"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11", "@babel/helper-module-transforms@^7.21.5", "@babel/helper-module-transforms@^7.22.0": + "integrity" "sha512-drsR5/3eHuYs31uYLIXRK91+THB9+VAd2s3/4TY87Os5qrwr6YesM6GcNX5aEpCF6e9iKK0ZvTBTKqNyntEkvQ==" + "resolved" "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.0.tgz" + "version" "7.22.0" dependencies: "@babel/helper-environment-visitor" "^7.21.5" "@babel/helper-module-imports" "^7.21.4" "@babel/helper-simple-access" "^7.21.5" "@babel/helper-split-export-declaration" "^7.18.6" "@babel/helper-validator-identifier" "^7.19.1" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.5" - "@babel/types" "^7.21.5" + "@babel/template" "^7.21.9" + "@babel/traverse" "^7.22.0" + "@babel/types" "^7.22.0" "@babel/helper-optimise-call-expression@^7.18.6": "integrity" "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==" @@ -260,10 +260,10 @@ "chalk" "^2.0.0" "js-tokens" "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.15", "@babel/parser@^7.20.7", "@babel/parser@^7.21.5", "@babel/parser@^7.21.8": - "integrity" "sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==" - "resolved" "https://registry.npmjs.org/@babel/parser/-/parser-7.21.8.tgz" - "version" "7.21.8" +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.8", "@babel/parser@^7.21.9", "@babel/parser@^7.22.0": + "integrity" "sha512-DA65VCJRetcFmJnt9/hEmRvXNCwk0V86dxG6p6N13hzDazaLRjGdTGPGgjxZOtLuFgWzOSRX4grybmRXwQ9bSg==" + "resolved" "https://registry.npmjs.org/@babel/parser/-/parser-7.22.0.tgz" + "version" "7.22.0" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": "integrity" "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==" @@ -272,137 +272,16 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.20.7": - "integrity" "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==" - "resolved" "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz" - "version" "7.20.7" - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/plugin-proposal-optional-chaining" "^7.20.7" - -"@babel/plugin-proposal-async-generator-functions@^7.20.7": - "integrity" "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==" - "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz" - "version" "7.20.7" - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-remap-async-to-generator" "^7.18.9" - "@babel/plugin-syntax-async-generators" "^7.8.4" - -"@babel/plugin-proposal-class-properties@^7.18.6": - "integrity" "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==" - "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz" - "version" "7.18.6" - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-proposal-class-static-block@^7.21.0": - "integrity" "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==" - "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz" - "version" "7.21.0" - dependencies: - "@babel/helper-create-class-features-plugin" "^7.21.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - -"@babel/plugin-proposal-dynamic-import@^7.18.6": - "integrity" "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==" - "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz" - "version" "7.18.6" - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@babel/plugin-proposal-export-namespace-from@^7.18.9": - "integrity" "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==" - "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz" - "version" "7.18.9" +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.0": + "integrity" "sha512-THA2q9FkS/RVTqWt0IXNns3zyHc8kzfiDEK9+vkIYGMlyaV6i6O3IpOg/oODSKqtRqu7gzwONjIJqwPlRQT41A==" + "resolved" "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.0.tgz" + "version" "7.22.0" dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@babel/plugin-proposal-json-strings@^7.18.6": - "integrity" "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==" - "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz" - "version" "7.18.6" - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-json-strings" "^7.8.3" - -"@babel/plugin-proposal-logical-assignment-operators@^7.20.7": - "integrity" "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==" - "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz" - "version" "7.20.7" - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": - "integrity" "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==" - "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz" - "version" "7.18.6" - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - -"@babel/plugin-proposal-numeric-separator@^7.18.6": - "integrity" "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==" - "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz" - "version" "7.18.6" - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - -"@babel/plugin-proposal-object-rest-spread@^7.20.7": - "integrity" "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==" - "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz" - "version" "7.20.7" - dependencies: - "@babel/compat-data" "^7.20.5" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.20.7" - -"@babel/plugin-proposal-optional-catch-binding@^7.18.6": - "integrity" "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==" - "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz" - "version" "7.18.6" - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - -"@babel/plugin-proposal-optional-chaining@^7.20.7", "@babel/plugin-proposal-optional-chaining@^7.21.0": - "integrity" "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==" - "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz" - "version" "7.21.0" - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.21.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-transform-optional-chaining" "^7.22.0" -"@babel/plugin-proposal-private-methods@^7.18.6": - "integrity" "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==" - "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz" - "version" "7.18.6" - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-proposal-private-property-in-object@^7.21.0": - "integrity" "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==" - "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz" - "version" "7.21.0" - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-create-class-features-plugin" "^7.21.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - -"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": +"@babel/plugin-proposal-unicode-property-regex@^7.4.4": "integrity" "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==" "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz" "version" "7.18.6" @@ -459,6 +338,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.19.0" +"@babel/plugin-syntax-import-attributes@^7.22.0": + "integrity" "sha512-TFqy+gFAiTh8KlVS8/c6w97uhAVcCVyd2R0srMHVYymBcBK5N5P+bf8VG6tEAiYCZ3TLYvi6fpzU9Rq79t9oxw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.0.tgz" + "version" "7.22.0" + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3": "integrity" "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==" "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz" @@ -473,7 +359,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.7.2": +"@babel/plugin-syntax-jsx@^7.21.4", "@babel/plugin-syntax-jsx@^7.7.2": "integrity" "sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==" "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz" "version" "7.21.4" @@ -536,13 +422,21 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.7.2": +"@babel/plugin-syntax-typescript@^7.21.4", "@babel/plugin-syntax-typescript@^7.7.2": "integrity" "sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==" "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz" "version" "7.21.4" dependencies: "@babel/helper-plugin-utils" "^7.20.2" +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": + "integrity" "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-transform-arrow-functions@^7.21.5": "integrity" "sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA==" "resolved" "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz" @@ -550,6 +444,16 @@ dependencies: "@babel/helper-plugin-utils" "^7.21.5" +"@babel/plugin-transform-async-generator-functions@^7.22.0": + "integrity" "sha512-SLpCXbF08XTYRJ/QM0hn4DdgSQB6aAtCaS+zfrjx374ectu4JbpwyQv3fF0kAtPdfQkeFdz86Dajj8A6oYRM9g==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.0.tgz" + "version" "7.22.0" + dependencies: + "@babel/helper-environment-visitor" "^7.21.5" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/helper-remap-async-to-generator" "^7.18.9" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-transform-async-to-generator@^7.20.7": "integrity" "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==" "resolved" "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz" @@ -573,6 +477,23 @@ dependencies: "@babel/helper-plugin-utils" "^7.20.2" +"@babel/plugin-transform-class-properties@^7.22.0": + "integrity" "sha512-m04PcP0S4OR+NpRQNIOEPHVdGcXqbOEn+pIYzrqRTXMlOjKy6s7s30MZ1WzglHQhD/X/yhngun4yG0FqPszZzw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.0.tgz" + "version" "7.22.0" + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.0" + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-class-static-block@^7.22.0": + "integrity" "sha512-b6N2cduLeAmnZMHlLj0XB8108D4EHLtpv1fl7PudLjHf+yxFxnKvhuTn5vuQg61qzS+wxp5DBOcNo1W/GEsFWg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.0.tgz" + "version" "7.22.0" + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.0" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-transform-classes@^7.21.0": "integrity" "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==" "resolved" "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz" @@ -618,6 +539,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.9" +"@babel/plugin-transform-dynamic-import@^7.22.0": + "integrity" "sha512-Rfuj4hqQoLoKWlEar7Y45KXQoOdBXRlbygBnft1bFOBSYXRegnhOw+rkGiGYGCGflG+pi1bU7+iNfzItQa7lSA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.0.tgz" + "version" "7.22.0" + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-transform-exponentiation-operator@^7.18.6": "integrity" "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==" "resolved" "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz" @@ -626,6 +555,14 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" +"@babel/plugin-transform-export-namespace-from@^7.22.0": + "integrity" "sha512-NkqdpxXHZG1CbXuu31weYMjAOeZ785n4ip/yXYg/4oZxdCg1jH10iR7oPJbZeyF99HhnTxqFnis3FTlpnh5Ovw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.0.tgz" + "version" "7.22.0" + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-transform-for-of@^7.21.5": "integrity" "sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ==" "resolved" "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.5.tgz" @@ -642,6 +579,14 @@ "@babel/helper-function-name" "^7.18.9" "@babel/helper-plugin-utils" "^7.18.9" +"@babel/plugin-transform-json-strings@^7.22.0": + "integrity" "sha512-6sSCmFYjv4czjub/ESDp46/TQGEM6oH0/t0Zd1gj8qb+j3XY/+s1M8h+2EtJ5JYNQ6ZBxpmazCDwhwQT950Aug==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.0.tgz" + "version" "7.22.0" + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-transform-literals@^7.18.9": "integrity" "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==" "resolved" "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz" @@ -649,6 +594,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.9" +"@babel/plugin-transform-logical-assignment-operators@^7.22.0": + "integrity" "sha512-tSYLi4c8H5K1iSCLCjA4xaYgw+zQEl7WUP9YI2WpwXkmryDC7+Pu/uD43XQos7Sm326OIC6Yf+6LuWjBs8JJKQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.0.tgz" + "version" "7.22.0" + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-transform-member-expression-literals@^7.18.6": "integrity" "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==" "resolved" "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz" @@ -673,14 +626,14 @@ "@babel/helper-plugin-utils" "^7.21.5" "@babel/helper-simple-access" "^7.21.5" -"@babel/plugin-transform-modules-systemjs@^7.20.11": - "integrity" "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==" - "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz" - "version" "7.20.11" +"@babel/plugin-transform-modules-systemjs@^7.22.0": + "integrity" "sha512-hSo/4vBjCjwsol3nLDJG3QRDuNzvzofnyhKyCiSXpzqEVmkos9SODFC3xzDvvuE3AUjHUMgTpTRpJq16i62heA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.0.tgz" + "version" "7.22.0" dependencies: "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-module-transforms" "^7.20.11" - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-module-transforms" "^7.22.0" + "@babel/helper-plugin-utils" "^7.21.5" "@babel/helper-validator-identifier" "^7.19.1" "@babel/plugin-transform-modules-umd@^7.18.6": @@ -691,20 +644,47 @@ "@babel/helper-module-transforms" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-named-capturing-groups-regex@^7.20.5": - "integrity" "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==" - "resolved" "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz" - "version" "7.20.5" +"@babel/plugin-transform-named-capturing-groups-regex@^7.22.0": + "integrity" "sha512-3bIivRwjbaMFYuP8OypIlTbZK0SxW3j9VpVQX/Yj2q0wG6GqOG30Vgmo5X7QW3TGi3rxrdYpKuwxqfb5aCnJkA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.0.tgz" + "version" "7.22.0" dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.20.5" - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-create-regexp-features-plugin" "^7.22.0" + "@babel/helper-plugin-utils" "^7.21.5" -"@babel/plugin-transform-new-target@^7.18.6": - "integrity" "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==" - "resolved" "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz" - "version" "7.18.6" +"@babel/plugin-transform-new-target@^7.22.0": + "integrity" "sha512-IZH0e2Fm8XmnZTXRzoRsHBBJ7wFzfeU22iiEZCi6EumrAjKOG6AdHpsxtBezG4SCQhqRS8DojQM8+bqtOBTQqw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.0.tgz" + "version" "7.22.0" dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-nullish-coalescing-operator@^7.22.0": + "integrity" "sha512-KU2Or7uQqYKcL6rVLh8jThUBAKy1H+mxPx4E1omUqdSL+hVM9NriMjGFnnv+9xSn3jUMV5FQHsLQxgGLr/MWTw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.0.tgz" + "version" "7.22.0" + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-transform-numeric-separator@^7.22.0": + "integrity" "sha512-dfbXAKlbPlDKXsY7fa/gRBWgI4n537TR4b5AnVCZ3RwQ1aVPxs52Xs3XHFxQMn3j4LmUhn8IL2nAYmNh6z2/Ew==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.0.tgz" + "version" "7.22.0" + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-transform-object-rest-spread@^7.22.0": + "integrity" "sha512-PHXQfxbe5EKp2+MuEdBFO4X1gsjvUZPjSDGvYz7PjWl8hZtYDCDxPrwZG+GwT/j6FnAmSz2bTZbQ5Jrh3fhRPg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.0.tgz" + "version" "7.22.0" + dependencies: + "@babel/compat-data" "^7.22.0" + "@babel/helper-compilation-targets" "^7.21.5" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.22.0" "@babel/plugin-transform-object-super@^7.18.6": "integrity" "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==" @@ -714,12 +694,47 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/helper-replace-supers" "^7.18.6" -"@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.21.3": - "integrity" "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==" - "resolved" "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz" - "version" "7.21.3" +"@babel/plugin-transform-optional-catch-binding@^7.22.0": + "integrity" "sha512-x8HEst6X74Aut0TxZI4s1UbUCtqR7IW764w/o/tTIDsm9OY9g+y9BeNhfZ+GrN0/TErN1dBoHNxqo1JXHdfxyA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.0.tgz" + "version" "7.22.0" dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-transform-optional-chaining@^7.22.0": + "integrity" "sha512-p5BZinFj92iSErcstoPK+e+MHJUEZ6Gmlu0EkP3DJ0Y/1XPNvlXxfAzuh8KkN+3wCsYRKLAxAsF6Sn8b/bfWaA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.0.tgz" + "version" "7.22.0" + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-transform-parameters@^7.22.0": + "integrity" "sha512-hlRM1lu7xeqW8EKKg9ByHwnCEIy0dNPd/fwffpwAck2H3C5mQCrWR9PdrjsywivsFuVAbyyAImU58vAR1cXrEw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.0.tgz" + "version" "7.22.0" + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-private-methods@^7.22.0": + "integrity" "sha512-3ao+Yt2kGQEXC894aBRCPo+zzW6YbM/iba+znKsZgEmDkc8RU/ODBfRpWP11qerQ0/mDzqjLpIG7HhpiKx0/cg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.0.tgz" + "version" "7.22.0" + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.0" + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-private-property-in-object@^7.22.0": + "integrity" "sha512-P4bP+/4Rq6aQ/IZmAEUX+injSKhuOOMOZkXtB3x++P3k5BtyV8RkTvOtpqIv0mLpHge5ReGk0ijNBFRN0n2xEQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.0.tgz" + "version" "7.22.0" + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.22.0" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-transform-property-literals@^7.18.6": "integrity" "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==" @@ -779,6 +794,16 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.9" +"@babel/plugin-transform-typescript@^7.21.3": + "integrity" "sha512-gb4e3dCt39wymMSfvR+6S7roQ+OBBeBXVgCpttb+FZC5GPGJ5DkqncRupirCD36nnNt7gwNLaV3Gf+iHgt/CMQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.0.tgz" + "version" "7.22.0" + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.22.0" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-typescript" "^7.21.4" + "@babel/plugin-transform-unicode-escapes@^7.21.5": "integrity" "sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg==" "resolved" "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.21.5.tgz" @@ -786,6 +811,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.21.5" +"@babel/plugin-transform-unicode-property-regex@^7.22.0": + "integrity" "sha512-uQacKjQ46K+yDfrbEyhEGkqqf5Zbn9WTKWgHOioHrTnOSVGYZSITlNNe0cP4fTgt4ZtjvMp85s4Hj86XS3v3uQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.0.tgz" + "version" "7.22.0" + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.0" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-transform-unicode-regex@^7.18.6": "integrity" "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==" "resolved" "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz" @@ -794,38 +827,32 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/preset-env@^7.21.5": - "integrity" "sha512-wH00QnTTldTbf/IefEVyChtRdw5RJvODT/Vb4Vcxq1AZvtXj6T0YeX0cAcXhI6/BdGuiP3GcNIL4OQbI2DVNxg==" - "resolved" "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.5.tgz" - "version" "7.21.5" +"@babel/plugin-transform-unicode-sets-regex@^7.22.0": + "integrity" "sha512-w9ZRKNaJAk2vOhY6HTF7nmr+c5vJ//RCH7S0l4sWyts1x17W45oa6J3UYeZ/RXb74XHm1eFfLjqzY1Hg2mtyaw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.0.tgz" + "version" "7.22.0" dependencies: - "@babel/compat-data" "^7.21.5" + "@babel/helper-create-regexp-features-plugin" "^7.22.0" + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/preset-env@^7.22.0": + "integrity" "sha512-H520F1TsYY76tmtyre1AbdZfpxMnSp96t8XsEAVaH6ikfRLHMQ5qo053t7X1qAgJfp3r27dGqFuzCGQXHVrE6w==" + "resolved" "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.0.tgz" + "version" "7.22.0" + dependencies: + "@babel/compat-data" "^7.22.0" "@babel/helper-compilation-targets" "^7.21.5" "@babel/helper-plugin-utils" "^7.21.5" "@babel/helper-validator-option" "^7.21.0" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.20.7" - "@babel/plugin-proposal-async-generator-functions" "^7.20.7" - "@babel/plugin-proposal-class-properties" "^7.18.6" - "@babel/plugin-proposal-class-static-block" "^7.21.0" - "@babel/plugin-proposal-dynamic-import" "^7.18.6" - "@babel/plugin-proposal-export-namespace-from" "^7.18.9" - "@babel/plugin-proposal-json-strings" "^7.18.6" - "@babel/plugin-proposal-logical-assignment-operators" "^7.20.7" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" - "@babel/plugin-proposal-numeric-separator" "^7.18.6" - "@babel/plugin-proposal-object-rest-spread" "^7.20.7" - "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" - "@babel/plugin-proposal-optional-chaining" "^7.21.0" - "@babel/plugin-proposal-private-methods" "^7.18.6" - "@babel/plugin-proposal-private-property-in-object" "^7.21.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.22.0" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" "@babel/plugin-syntax-import-assertions" "^7.20.0" + "@babel/plugin-syntax-import-attributes" "^7.22.0" "@babel/plugin-syntax-import-meta" "^7.10.4" "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" @@ -836,28 +863,43 @@ "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" "@babel/plugin-transform-arrow-functions" "^7.21.5" + "@babel/plugin-transform-async-generator-functions" "^7.22.0" "@babel/plugin-transform-async-to-generator" "^7.20.7" "@babel/plugin-transform-block-scoped-functions" "^7.18.6" "@babel/plugin-transform-block-scoping" "^7.21.0" + "@babel/plugin-transform-class-properties" "^7.22.0" + "@babel/plugin-transform-class-static-block" "^7.22.0" "@babel/plugin-transform-classes" "^7.21.0" "@babel/plugin-transform-computed-properties" "^7.21.5" "@babel/plugin-transform-destructuring" "^7.21.3" "@babel/plugin-transform-dotall-regex" "^7.18.6" "@babel/plugin-transform-duplicate-keys" "^7.18.9" + "@babel/plugin-transform-dynamic-import" "^7.22.0" "@babel/plugin-transform-exponentiation-operator" "^7.18.6" + "@babel/plugin-transform-export-namespace-from" "^7.22.0" "@babel/plugin-transform-for-of" "^7.21.5" "@babel/plugin-transform-function-name" "^7.18.9" + "@babel/plugin-transform-json-strings" "^7.22.0" "@babel/plugin-transform-literals" "^7.18.9" + "@babel/plugin-transform-logical-assignment-operators" "^7.22.0" "@babel/plugin-transform-member-expression-literals" "^7.18.6" "@babel/plugin-transform-modules-amd" "^7.20.11" "@babel/plugin-transform-modules-commonjs" "^7.21.5" - "@babel/plugin-transform-modules-systemjs" "^7.20.11" + "@babel/plugin-transform-modules-systemjs" "^7.22.0" "@babel/plugin-transform-modules-umd" "^7.18.6" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.20.5" - "@babel/plugin-transform-new-target" "^7.18.6" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.0" + "@babel/plugin-transform-new-target" "^7.22.0" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.0" + "@babel/plugin-transform-numeric-separator" "^7.22.0" + "@babel/plugin-transform-object-rest-spread" "^7.22.0" "@babel/plugin-transform-object-super" "^7.18.6" - "@babel/plugin-transform-parameters" "^7.21.3" + "@babel/plugin-transform-optional-catch-binding" "^7.22.0" + "@babel/plugin-transform-optional-chaining" "^7.22.0" + "@babel/plugin-transform-parameters" "^7.22.0" + "@babel/plugin-transform-private-methods" "^7.22.0" + "@babel/plugin-transform-private-property-in-object" "^7.22.0" "@babel/plugin-transform-property-literals" "^7.18.6" "@babel/plugin-transform-regenerator" "^7.21.5" "@babel/plugin-transform-reserved-words" "^7.18.6" @@ -867,13 +909,15 @@ "@babel/plugin-transform-template-literals" "^7.18.9" "@babel/plugin-transform-typeof-symbol" "^7.18.9" "@babel/plugin-transform-unicode-escapes" "^7.21.5" + "@babel/plugin-transform-unicode-property-regex" "^7.22.0" "@babel/plugin-transform-unicode-regex" "^7.18.6" + "@babel/plugin-transform-unicode-sets-regex" "^7.22.0" "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.21.5" - "babel-plugin-polyfill-corejs2" "^0.3.3" - "babel-plugin-polyfill-corejs3" "^0.6.0" - "babel-plugin-polyfill-regenerator" "^0.4.1" - "core-js-compat" "^3.25.1" + "@babel/types" "^7.22.0" + "babel-plugin-polyfill-corejs2" "^0.4.1" + "babel-plugin-polyfill-corejs3" "^0.8.1" + "babel-plugin-polyfill-regenerator" "^0.5.0" + "core-js-compat" "^3.30.2" "semver" "^6.3.0" "@babel/preset-modules@^0.1.5": @@ -887,47 +931,58 @@ "@babel/types" "^7.4.4" "esutils" "^2.0.2" +"@babel/preset-typescript@^7.21.5": + "integrity" "sha512-iqe3sETat5EOrORXiQ6rWfoOg2y68Cs75B9wNxdPW4kixJxh7aXQE1KPdWLDniC24T/6dSnguF33W9j/ZZQcmA==" + "resolved" "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.21.5.tgz" + "version" "7.21.5" + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/helper-validator-option" "^7.21.0" + "@babel/plugin-syntax-jsx" "^7.21.4" + "@babel/plugin-transform-modules-commonjs" "^7.21.5" + "@babel/plugin-transform-typescript" "^7.21.3" + "@babel/regjsgen@^0.8.0": "integrity" "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" "resolved" "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz" "version" "0.8.0" "@babel/runtime@^7.8.4": - "integrity" "sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==" - "resolved" "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz" - "version" "7.21.5" + "integrity" "sha512-TT6NB0oszYQ4oxLNUdG+FNHIc3MohXVCKA2BeyQ4WeM2VCSC6wBZ6P0Yfkdzxv+87D8Xk0LJyHeCKlWMvpZt0g==" + "resolved" "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.0.tgz" + "version" "7.22.0" dependencies: "regenerator-runtime" "^0.13.11" -"@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.3.3": - "integrity" "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==" - "resolved" "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz" - "version" "7.20.7" +"@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.21.9", "@babel/template@^7.3.3": + "integrity" "sha512-MK0X5k8NKOuWRamiEfc3KEJiHMTkGZNUjzMipqCGDDc6ijRl/B7RGSKVGncu4Ro/HdyzzY6cmoXuKI2Gffk7vQ==" + "resolved" "https://registry.npmjs.org/@babel/template/-/template-7.21.9.tgz" + "version" "7.21.9" dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" + "@babel/code-frame" "^7.21.4" + "@babel/parser" "^7.21.9" + "@babel/types" "^7.21.5" -"@babel/traverse@^7.20.5", "@babel/traverse@^7.21.5", "@babel/traverse@^7.7.2": - "integrity" "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==" - "resolved" "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz" - "version" "7.21.5" +"@babel/traverse@^7.20.5", "@babel/traverse@^7.21.5", "@babel/traverse@^7.22.0", "@babel/traverse@^7.7.2": + "integrity" "sha512-V5Zp3k0nFGWSIC7zYR8PnfdU6i6VYU4JnifdSSMlXM1GMojPAaelPsKmKPW4tWTmpX9GM+RzKl4Io0UVcHVlpw==" + "resolved" "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.0.tgz" + "version" "7.22.0" dependencies: "@babel/code-frame" "^7.21.4" - "@babel/generator" "^7.21.5" + "@babel/generator" "^7.22.0" "@babel/helper-environment-visitor" "^7.21.5" "@babel/helper-function-name" "^7.21.0" "@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.21.5" - "@babel/types" "^7.21.5" + "@babel/parser" "^7.22.0" + "@babel/types" "^7.22.0" "debug" "^4.1.0" "globals" "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.20.0", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.4", "@babel/types@^7.21.5", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - "integrity" "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==" - "resolved" "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz" - "version" "7.21.5" +"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.20.0", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.4", "@babel/types@^7.21.5", "@babel/types@^7.22.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + "integrity" "sha512-NtXlm3f6cNWIv003cETdlz9sss0VMNtplyatFohxWPz90AbwuhCbHbQopkGis6bG1vOunDLN0FF/4Uv5i8LFZQ==" + "resolved" "https://registry.npmjs.org/@babel/types/-/types-7.22.0.tgz" + "version" "7.22.0" dependencies: "@babel/helper-string-parser" "^7.21.5" "@babel/helper-validator-identifier" "^7.19.1" @@ -1247,13 +1302,6 @@ "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" -"@jsdoc/salty@^0.2.1": - "integrity" "sha512-TfRP53RqunNe2HBobVBJ0VLhK1HbfvBYeTC1ahnN64PWvyYyGebmMiPkuwvD9fpw2ZbkoPb8Q7mwy0aR8Z9rvw==" - "resolved" "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.5.tgz" - "version" "0.2.5" - dependencies: - "lodash" "^4.17.21" - "@nodelib/fs.scandir@2.1.5": "integrity" "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==" "resolved" "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" @@ -1262,12 +1310,12 @@ "@nodelib/fs.stat" "2.0.5" "run-parallel" "^1.1.9" -"@nodelib/fs.stat@2.0.5": +"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": "integrity" "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" "resolved" "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" "version" "2.0.5" -"@nodelib/fs.walk@^1.2.8": +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": "integrity" "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==" "resolved" "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" "version" "1.2.8" @@ -1388,7 +1436,7 @@ "@types/tough-cookie" "*" "parse5" "^7.0.0" -"@types/json-schema@*", "@types/json-schema@^7.0.8": +"@types/json-schema@*", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": "integrity" "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" "resolved" "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz" "version" "7.0.11" @@ -1398,24 +1446,6 @@ "resolved" "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" "version" "0.0.29" -"@types/linkify-it@*": - "integrity" "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==" - "resolved" "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz" - "version" "3.0.2" - -"@types/markdown-it@*", "@types/markdown-it@^12.2.3": - "integrity" "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==" - "resolved" "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz" - "version" "12.2.3" - dependencies: - "@types/linkify-it" "*" - "@types/mdurl" "*" - -"@types/mdurl@*": - "integrity" "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==" - "resolved" "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz" - "version" "1.0.2" - "@types/node@*": "integrity" "sha512-DqJociPbZP1lbZ5SQPk4oag6W7AyaGMO6gSfRwq3PWl4PXTwJpRQJhDq4W0kzrg3w6tJ1SwlvGZ5uKFHY13LIg==" "resolved" "https://registry.npmjs.org/@types/node/-/node-20.2.1.tgz" @@ -1426,6 +1456,11 @@ "resolved" "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz" "version" "2.7.2" +"@types/semver@^7.3.12": + "integrity" "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==" + "resolved" "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz" + "version" "7.5.0" + "@types/stack-utils@^2.0.0": "integrity" "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" "resolved" "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz" @@ -1448,6 +1483,90 @@ dependencies: "@types/yargs-parser" "*" +"@typescript-eslint/eslint-plugin@^5.59.7": + "integrity" "sha512-BL+jYxUFIbuYwy+4fF86k5vdT9lT0CNJ6HtwrIvGh0PhH8s0yy5rjaKH2fDCrz5ITHy07WCzVGNvAmjJh4IJFA==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.7.tgz" + "version" "5.59.7" + dependencies: + "@eslint-community/regexpp" "^4.4.0" + "@typescript-eslint/scope-manager" "5.59.7" + "@typescript-eslint/type-utils" "5.59.7" + "@typescript-eslint/utils" "5.59.7" + "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.0.0", "@typescript-eslint/parser@^5.59.7": + "integrity" "sha512-VhpsIEuq/8i5SF+mPg9jSdIwgMBBp0z9XqjiEay+81PYLJuroN+ET1hM5IhkiYMJd9MkTz8iJLt7aaGAgzWUbQ==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.7.tgz" + "version" "5.59.7" + dependencies: + "@typescript-eslint/scope-manager" "5.59.7" + "@typescript-eslint/types" "5.59.7" + "@typescript-eslint/typescript-estree" "5.59.7" + "debug" "^4.3.4" + +"@typescript-eslint/scope-manager@5.59.7": + "integrity" "sha512-FL6hkYWK9zBGdxT2wWEd2W8ocXMu3K94i3gvMrjXpx+koFYdYV7KprKfirpgY34vTGzEPPuKoERpP8kD5h7vZQ==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.7.tgz" + "version" "5.59.7" + dependencies: + "@typescript-eslint/types" "5.59.7" + "@typescript-eslint/visitor-keys" "5.59.7" + +"@typescript-eslint/type-utils@5.59.7": + "integrity" "sha512-ozuz/GILuYG7osdY5O5yg0QxXUAEoI4Go3Do5xeu+ERH9PorHBPSdvD3Tjp2NN2bNLh1NJQSsQu2TPu/Ly+HaQ==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.7.tgz" + "version" "5.59.7" + dependencies: + "@typescript-eslint/typescript-estree" "5.59.7" + "@typescript-eslint/utils" "5.59.7" + "debug" "^4.3.4" + "tsutils" "^3.21.0" + +"@typescript-eslint/types@5.59.7": + "integrity" "sha512-UnVS2MRRg6p7xOSATscWkKjlf/NDKuqo5TdbWck6rIRZbmKpVNTLALzNvcjIfHBE7736kZOFc/4Z3VcZwuOM/A==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.7.tgz" + "version" "5.59.7" + +"@typescript-eslint/typescript-estree@5.59.7": + "integrity" "sha512-4A1NtZ1I3wMN2UGDkU9HMBL+TIQfbrh4uS0WDMMpf3xMRursDbqEf1ahh6vAAe3mObt8k3ZATnezwG4pdtWuUQ==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.7.tgz" + "version" "5.59.7" + dependencies: + "@typescript-eslint/types" "5.59.7" + "@typescript-eslint/visitor-keys" "5.59.7" + "debug" "^4.3.4" + "globby" "^11.1.0" + "is-glob" "^4.0.3" + "semver" "^7.3.7" + "tsutils" "^3.21.0" + +"@typescript-eslint/utils@5.59.7": + "integrity" "sha512-yCX9WpdQKaLufz5luG4aJbOpdXf/fjwGMcLFXZVPUz3QqLirG5QcwwnIHNf8cjLjxK4qtzTO8udUtMQSAToQnQ==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.7.tgz" + "version" "5.59.7" + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@types/json-schema" "^7.0.9" + "@types/semver" "^7.3.12" + "@typescript-eslint/scope-manager" "5.59.7" + "@typescript-eslint/types" "5.59.7" + "@typescript-eslint/typescript-estree" "5.59.7" + "eslint-scope" "^5.1.1" + "semver" "^7.3.7" + +"@typescript-eslint/visitor-keys@5.59.7": + "integrity" "sha512-tyN+X2jvMslUszIiYbF0ZleP+RqQsFVpGrKI6e0Eet1w8WmhsAtmzaqm8oM8WJQ1ysLwhnsK/4hYHJjOgJVfQQ==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.7.tgz" + "version" "5.59.7" + dependencies: + "@typescript-eslint/types" "5.59.7" + "eslint-visitor-keys" "^3.3.0" + "@webassemblyjs/ast@^1.11.5", "@webassemblyjs/ast@1.11.6": "integrity" "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==" "resolved" "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz" @@ -1661,6 +1780,11 @@ "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" "version" "5.0.1" +"ansi-sequence-parser@^1.1.0": + "integrity" "sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==" + "resolved" "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.0.tgz" + "version" "1.1.0" + "ansi-styles@^3.2.1": "integrity" "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==" "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" @@ -1719,6 +1843,11 @@ "get-intrinsic" "^1.1.3" "is-string" "^1.0.7" +"array-union@^2.1.0": + "integrity" "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" + "resolved" "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" + "version" "2.1.0" + "array.prototype.flat@^1.3.1": "integrity" "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==" "resolved" "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz" @@ -1783,29 +1912,29 @@ "@types/babel__core" "^7.1.14" "@types/babel__traverse" "^7.0.6" -"babel-plugin-polyfill-corejs2@^0.3.3": - "integrity" "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==" - "resolved" "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz" - "version" "0.3.3" +"babel-plugin-polyfill-corejs2@^0.4.1": + "integrity" "sha512-7gKaNF3qkEt1w2p3Q2D2f+UofAKtjWT5B82VXKdDlPqJI8eLT8phBKHq6uLEOCAEtnAWW3lomu3+X6VJrFMoSg==" + "resolved" "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.1.tgz" + "version" "0.4.1" dependencies: "@babel/compat-data" "^7.17.7" - "@babel/helper-define-polyfill-provider" "^0.3.3" + "@babel/helper-define-polyfill-provider" "^0.4.0" "semver" "^6.1.1" -"babel-plugin-polyfill-corejs3@^0.6.0": - "integrity" "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==" - "resolved" "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz" - "version" "0.6.0" +"babel-plugin-polyfill-corejs3@^0.8.1": + "integrity" "sha512-ikFrZITKg1xH6pLND8zT14UPgjKHiGLqex7rGEZCH2EvhsneJaJPemmpQaIZV5AL03II+lXylw3UmddDK8RU5Q==" + "resolved" "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.1.tgz" + "version" "0.8.1" dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.3" - "core-js-compat" "^3.25.1" + "@babel/helper-define-polyfill-provider" "^0.4.0" + "core-js-compat" "^3.30.1" -"babel-plugin-polyfill-regenerator@^0.4.1": - "integrity" "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==" - "resolved" "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz" - "version" "0.4.1" +"babel-plugin-polyfill-regenerator@^0.5.0": + "integrity" "sha512-hDJtKjMLVa7Z+LwnTCxoDLQj6wdc+B8dun7ayF2fYieI6OzfuvcLMB32ihJZ4UhCBwNYGl5bg/x/P9cMdnkc2g==" + "resolved" "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.0.tgz" + "version" "0.5.0" dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.3" + "@babel/helper-define-polyfill-provider" "^0.4.0" "babel-preset-current-node-syntax@^1.0.0": "integrity" "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==" @@ -1838,11 +1967,6 @@ "resolved" "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" "version" "1.0.2" -"bluebird@^3.7.2": - "integrity" "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - "resolved" "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" - "version" "3.7.2" - "brace-expansion@^1.1.7": "integrity" "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==" "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" @@ -1851,6 +1975,13 @@ "balanced-match" "^1.0.0" "concat-map" "0.0.1" +"brace-expansion@^2.0.1": + "integrity" "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==" + "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "balanced-match" "^1.0.0" + "braces@^3.0.2": "integrity" "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==" "resolved" "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" @@ -1908,13 +2039,6 @@ "resolved" "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001488.tgz" "version" "1.0.30001488" -"catharsis@^0.9.0": - "integrity" "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==" - "resolved" "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz" - "version" "0.9.0" - dependencies: - "lodash" "^4.17.15" - "chalk@^2.0.0": "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==" "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" @@ -1924,7 +2048,7 @@ "escape-string-regexp" "^1.0.5" "supports-color" "^5.3.0" -"chalk@^4.0.0": +"chalk@^4.0.0", "chalk@^4.1.0": "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" "version" "4.1.2" @@ -2046,7 +2170,7 @@ "resolved" "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz" "version" "2.0.0" -"core-js-compat@^3.25.1": +"core-js-compat@^3.30.1", "core-js-compat@^3.30.2": "integrity" "sha512-nriW1nuJjUgvkEjIot1Spwakz52V9YkYHZAQG6A1eCgC8AA1p0zngrQEP9R0+V6hji5XilWKG1Bd0YRppmGimA==" "resolved" "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.30.2.tgz" "version" "3.30.2" @@ -2095,7 +2219,7 @@ dependencies: "ms" "^2.1.1" -"debug@^4.1.0", "debug@^4.1.1", "debug@^4.3.2", "debug@4": +"debug@^4.1.0", "debug@^4.1.1", "debug@^4.3.2", "debug@^4.3.4", "debug@4": "integrity" "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==" "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" "version" "4.3.4" @@ -2145,6 +2269,13 @@ "resolved" "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz" "version" "29.4.3" +"dir-glob@^3.0.1": + "integrity" "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==" + "resolved" "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "path-type" "^4.0.0" + "doctrine@^2.1.0": "integrity" "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==" "resolved" "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz" @@ -2181,7 +2312,7 @@ "resolved" "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" "version" "8.0.0" -"enhanced-resolve@^5.14.0": +"enhanced-resolve@^5.0.0", "enhanced-resolve@^5.14.0": "integrity" "sha512-+DCows0XNwLDcUhbFJPdlQEVnT2zXlCv7hPxemTz86/O+B/hCQ+mb7ydkPKiflpVraqLPCAfu7lDy+hBXueojw==" "resolved" "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.14.0.tgz" "version" "5.14.0" @@ -2194,11 +2325,6 @@ "resolved" "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz" "version" "4.5.0" -"entities@~2.1.0": - "integrity" "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==" - "resolved" "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz" - "version" "2.1.0" - "envinfo@^7.7.3": "integrity" "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==" "resolved" "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz" @@ -2357,6 +2483,14 @@ dependencies: "prettier-linter-helpers" "^1.0.0" +"eslint-scope@^5.1.1", "eslint-scope@5.1.1": + "integrity" "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==" + "resolved" "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" + "version" "5.1.1" + dependencies: + "esrecurse" "^4.3.0" + "estraverse" "^4.1.1" + "eslint-scope@^7.2.0": "integrity" "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==" "resolved" "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz" @@ -2365,20 +2499,12 @@ "esrecurse" "^4.3.0" "estraverse" "^5.2.0" -"eslint-scope@5.1.1": - "integrity" "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==" - "resolved" "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" - "version" "5.1.1" - dependencies: - "esrecurse" "^4.3.0" - "estraverse" "^4.1.1" - "eslint-visitor-keys@^3.3.0", "eslint-visitor-keys@^3.4.1": "integrity" "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==" "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz" "version" "3.4.1" -"eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^8.41.0", "eslint@>=7.28.0": +"eslint@*", "eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", "eslint@^6.0.0 || ^7.0.0 || ^8.0.0", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^8.41.0", "eslint@>=7.28.0": "integrity" "sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q==" "resolved" "https://registry.npmjs.org/eslint/-/eslint-8.41.0.tgz" "version" "8.41.0" @@ -2512,6 +2638,17 @@ "resolved" "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz" "version" "1.3.0" +"fast-glob@^3.2.9": + "integrity" "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==" + "resolved" "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz" + "version" "3.2.12" + 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.0.0", "fast-json-stable-stringify@^2.1.0": "integrity" "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" "resolved" "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" @@ -2663,6 +2800,13 @@ "call-bind" "^1.0.2" "get-intrinsic" "^1.1.1" +"glob-parent@^5.1.2": + "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==" + "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + "version" "5.1.2" + dependencies: + "is-glob" "^4.0.1" + "glob-parent@^6.0.2": "integrity" "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==" "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" @@ -2706,6 +2850,18 @@ dependencies: "define-properties" "^1.1.3" +"globby@^11.1.0": + "integrity" "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==" + "resolved" "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" + "version" "11.1.0" + dependencies: + "array-union" "^2.1.0" + "dir-glob" "^3.0.1" + "fast-glob" "^3.2.9" + "ignore" "^5.2.0" + "merge2" "^1.4.1" + "slash" "^3.0.0" + "gopd@^1.0.1": "integrity" "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==" "resolved" "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz" @@ -2713,11 +2869,16 @@ dependencies: "get-intrinsic" "^1.1.3" -"graceful-fs@^4.1.2", "graceful-fs@^4.1.9", "graceful-fs@^4.2.4", "graceful-fs@^4.2.9": +"graceful-fs@^4.1.2", "graceful-fs@^4.2.4", "graceful-fs@^4.2.9": "integrity" "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" "resolved" "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" "version" "4.2.11" +"grapheme-splitter@^1.0.4": + "integrity" "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" + "resolved" "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz" + "version" "1.0.4" + "graphemer@^1.4.0": "integrity" "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" "resolved" "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz" @@ -2931,7 +3092,7 @@ "resolved" "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz" "version" "2.1.0" -"is-glob@^4.0.0", "is-glob@^4.0.3": +"is-glob@^4.0.0", "is-glob@^4.0.1", "is-glob@^4.0.3": "integrity" "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==" "resolved" "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" "version" "4.0.3" @@ -3480,34 +3641,6 @@ dependencies: "argparse" "^2.0.1" -"js2xmlparser@^4.0.2": - "integrity" "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==" - "resolved" "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz" - "version" "4.0.2" - dependencies: - "xmlcreate" "^2.0.4" - -"jsdoc@^4.0.2": - "integrity" "sha512-e8cIg2z62InH7azBBi3EsSEqrKx+nUtAS5bBcYTSpZFA+vhNPyhv8PTFZ0WsjOPDj04/dOLlm08EDcQJDqaGQg==" - "resolved" "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.2.tgz" - "version" "4.0.2" - dependencies: - "@babel/parser" "^7.20.15" - "@jsdoc/salty" "^0.2.1" - "@types/markdown-it" "^12.2.3" - "bluebird" "^3.7.2" - "catharsis" "^0.9.0" - "escape-string-regexp" "^2.0.0" - "js2xmlparser" "^4.0.2" - "klaw" "^3.0.0" - "markdown-it" "^12.3.2" - "markdown-it-anchor" "^8.4.1" - "marked" "^4.0.10" - "mkdirp" "^1.0.4" - "requizzle" "^0.2.3" - "strip-json-comments" "^3.1.0" - "underscore" "~1.13.2" - "jsdom@^20.0.0": "integrity" "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==" "resolved" "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz" @@ -3577,18 +3710,16 @@ "resolved" "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" "version" "2.2.3" +"jsonc-parser@^3.2.0": + "integrity" "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==" + "resolved" "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz" + "version" "3.2.0" + "kind-of@^6.0.2": "integrity" "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" "resolved" "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" "version" "6.0.3" -"klaw@^3.0.0": - "integrity" "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==" - "resolved" "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz" - "version" "3.0.0" - dependencies: - "graceful-fs" "^4.1.9" - "kleur@^3.0.3": "integrity" "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" "resolved" "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" @@ -3620,13 +3751,6 @@ "resolved" "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" "version" "1.2.4" -"linkify-it@^3.0.1": - "integrity" "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==" - "resolved" "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz" - "version" "3.0.3" - dependencies: - "uc.micro" "^1.0.1" - "loader-runner@^4.2.0": "integrity" "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==" "resolved" "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz" @@ -3656,11 +3780,6 @@ "resolved" "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" "version" "4.6.2" -"lodash@^4.17.15", "lodash@^4.17.21": - "integrity" "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" - "version" "4.17.21" - "lru-cache@^5.1.1": "integrity" "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==" "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" @@ -3675,6 +3794,11 @@ dependencies: "yallist" "^4.0.0" +"lunr@^2.3.9": + "integrity" "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==" + "resolved" "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz" + "version" "2.3.9" + "make-dir@^3.0.0": "integrity" "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==" "resolved" "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" @@ -3689,38 +3813,22 @@ dependencies: "tmpl" "1.0.5" -"markdown-it-anchor@^8.4.1": - "integrity" "sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==" - "resolved" "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz" - "version" "8.6.7" - -"markdown-it@*", "markdown-it@^12.3.2": - "integrity" "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==" - "resolved" "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz" - "version" "12.3.2" - dependencies: - "argparse" "^2.0.1" - "entities" "~2.1.0" - "linkify-it" "^3.0.1" - "mdurl" "^1.0.1" - "uc.micro" "^1.0.5" - -"marked@^4.0.10": +"marked@^4.3.0": "integrity" "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==" "resolved" "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz" "version" "4.3.0" -"mdurl@^1.0.1": - "integrity" "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" - "resolved" "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz" - "version" "1.0.1" - "merge-stream@^2.0.0": "integrity" "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" "resolved" "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" "version" "2.0.0" -"micromatch@^4.0.4": +"merge2@^1.3.0", "merge2@^1.4.1": + "integrity" "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + "resolved" "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" + "version" "1.4.1" + +"micromatch@^4.0.0", "micromatch@^4.0.4": "integrity" "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==" "resolved" "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" "version" "4.0.5" @@ -3752,21 +3860,28 @@ dependencies: "brace-expansion" "^1.1.7" +"minimatch@^9.0.0": + "integrity" "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==" + "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz" + "version" "9.0.1" + dependencies: + "brace-expansion" "^2.0.1" + "minimist@^1.2.0", "minimist@^1.2.6": "integrity" "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" "version" "1.2.8" -"mkdirp@^1.0.4": - "integrity" "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" - "version" "1.0.4" - "ms@^2.1.1", "ms@2.1.2": "integrity" "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" "version" "2.1.2" +"natural-compare-lite@^1.4.0": + "integrity" "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==" + "resolved" "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz" + "version" "1.4.0" + "natural-compare@^1.4.0": "integrity" "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" "resolved" "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" @@ -3948,6 +4063,11 @@ "resolved" "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" "version" "1.0.7" +"path-type@^4.0.0": + "integrity" "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + "resolved" "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" + "version" "4.0.0" + "path@^0.12.7": "integrity" "sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==" "resolved" "https://registry.npmjs.org/path/-/path-0.12.7.tgz" @@ -4128,13 +4248,6 @@ "resolved" "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" "version" "1.0.0" -"requizzle@^0.2.3": - "integrity" "sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw==" - "resolved" "https://registry.npmjs.org/requizzle/-/requizzle-0.2.4.tgz" - "version" "0.2.4" - dependencies: - "lodash" "^4.17.21" - "resolve-cwd@^3.0.0": "integrity" "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==" "resolved" "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" @@ -4225,6 +4338,13 @@ "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" "version" "6.3.0" +"semver@^7.3.4": + "integrity" "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==" + "resolved" "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz" + "version" "7.5.1" + dependencies: + "lru-cache" "^6.0.0" + "semver@^7.3.5": "integrity" "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==" "resolved" "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz" @@ -4232,6 +4352,13 @@ dependencies: "lru-cache" "^6.0.0" +"semver@^7.3.7": + "integrity" "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==" + "resolved" "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz" + "version" "7.5.1" + dependencies: + "lru-cache" "^6.0.0" + "serialize-javascript@^6.0.1": "integrity" "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==" "resolved" "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz" @@ -4258,6 +4385,16 @@ "resolved" "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" "version" "3.0.0" +"shiki@^0.14.1": + "integrity" "sha512-ltSZlSLOuSY0M0Y75KA+ieRaZ0Trf5Wl3gutE7jzLuIcWxLp5i/uEnLoQWNvgKXQ5OMpGkJnVMRLAuzjc0LJ2A==" + "resolved" "https://registry.npmjs.org/shiki/-/shiki-0.14.2.tgz" + "version" "0.14.2" + dependencies: + "ansi-sequence-parser" "^1.1.0" + "jsonc-parser" "^3.2.0" + "vscode-oniguruma" "^1.7.0" + "vscode-textmate" "^8.0.0" + "side-channel@^1.0.4": "integrity" "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==" "resolved" "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" @@ -4491,6 +4628,16 @@ dependencies: "punycode" "^2.1.1" +"ts-loader@^9.4.3": + "integrity" "sha512-n3hBnm6ozJYzwiwt5YRiJZkzktftRpMiBApHaJPoWLA+qetQBAXkHqCLM6nwSdRDimqVtA5ocIkcTRLMTt7yzA==" + "resolved" "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.3.tgz" + "version" "9.4.3" + dependencies: + "chalk" "^4.1.0" + "enhanced-resolve" "^5.0.0" + "micromatch" "^4.0.0" + "semver" "^7.3.4" + "tsconfig-paths@^3.14.1": "integrity" "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==" "resolved" "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz" @@ -4501,6 +4648,18 @@ "minimist" "^1.2.6" "strip-bom" "^3.0.0" +"tslib@^1.8.1": + "integrity" "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "resolved" "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" + "version" "1.14.1" + +"tsutils@^3.21.0": + "integrity" "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==" + "resolved" "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" + "version" "3.21.0" + dependencies: + "tslib" "^1.8.1" + "type-check@^0.4.0", "type-check@~0.4.0": "integrity" "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==" "resolved" "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" @@ -4539,10 +4698,20 @@ "for-each" "^0.3.3" "is-typed-array" "^1.1.9" -"uc.micro@^1.0.1", "uc.micro@^1.0.5": - "integrity" "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" - "resolved" "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz" - "version" "1.0.6" +"typedoc@^0.24.7": + "integrity" "sha512-zzfKDFIZADA+XRIp2rMzLe9xZ6pt12yQOhCr7cD7/PBTjhPmMyMvGrkZ2lPNJitg3Hj1SeiYFNzCsSDrlpxpKw==" + "resolved" "https://registry.npmjs.org/typedoc/-/typedoc-0.24.7.tgz" + "version" "0.24.7" + dependencies: + "lunr" "^2.3.9" + "marked" "^4.3.0" + "minimatch" "^9.0.0" + "shiki" "^0.14.1" + +"typescript@*", "typescript@^5.0.4", "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta", "typescript@4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x": + "integrity" "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==" + "resolved" "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz" + "version" "5.0.4" "unbox-primitive@^1.0.2": "integrity" "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==" @@ -4554,11 +4723,6 @@ "has-symbols" "^1.0.3" "which-boxed-primitive" "^1.0.2" -"underscore@~1.13.2": - "integrity" "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" - "resolved" "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz" - "version" "1.13.6" - "unicode-canonical-property-names-ecmascript@^2.0.0": "integrity" "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==" "resolved" "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz" @@ -4626,6 +4790,16 @@ "@types/istanbul-lib-coverage" "^2.0.1" "convert-source-map" "^1.6.0" +"vscode-oniguruma@^1.7.0": + "integrity" "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==" + "resolved" "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz" + "version" "1.7.0" + +"vscode-textmate@^8.0.0": + "integrity" "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==" + "resolved" "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz" + "version" "8.0.0" + "w3c-xmlserializer@^4.0.0": "integrity" "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==" "resolved" "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz" @@ -4685,7 +4859,7 @@ "resolved" "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz" "version" "3.2.3" -"webpack@^5.1.0", "webpack@^5.83.1", "webpack@5.x.x": +"webpack@^5.0.0", "webpack@^5.1.0", "webpack@^5.83.1", "webpack@5.x.x": "integrity" "sha512-TNsG9jDScbNuB+Lb/3+vYolPplCS3bbEaJf+Bj0Gw4DhP3ioAflBb1flcRt9zsWITyvOhM96wMQNRWlSX52DgA==" "resolved" "https://registry.npmjs.org/webpack/-/webpack-5.83.1.tgz" "version" "5.83.1" @@ -4812,11 +4986,6 @@ "resolved" "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz" "version" "2.2.0" -"xmlcreate@^2.0.4": - "integrity" "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==" - "resolved" "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz" - "version" "2.0.4" - "y18n@^5.0.5": "integrity" "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" "resolved" "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz"