diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d333b23 --- /dev/null +++ b/.gitignore @@ -0,0 +1,109 @@ +# ---> Node +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + diff --git a/PubSub.js b/PubSub.js deleted file mode 100644 index 10ebec4..0000000 --- a/PubSub.js +++ /dev/null @@ -1,39 +0,0 @@ -let PubSub = ()=>{ - // state: - let subscriptions_by_event = {}; // by event name, that is - let subscriptions_by_name = {}; // subscriptions can be named, for easy unsubscribing - - // methods: - let pub = (e, ...params)=>{ - if(subscriptions_by_event[e]){ - subscriptions_by_event[e].forEach(subscription=>subscription.cb(...params)) - } - }; - let sub = (e, cb, name)=>{ // 'name' is for unsubbing - if(typeof subscriptions_by_event[e] === 'undefined'){ - subscriptions_by_event[e] = []; - } - - let subscription = { e, cb, name: name || '' }; - - subscriptions_by_event[e].push(subscription); - if(subscription.name !== ''){ - if(typeof subscriptions_by_name[name] !== 'undefined'){ console.warn('Already subscription with name "'+name+'". Overwriting nonetheless.'); } - subscriptions_by_name[name] = subscription; - } - }; - let unsub = (name)=>{ - // check if such a named subscription exists: - if(typeof subscriptions_by_name[name] !== 'undefined'){ - // get ref to subscription object for later: - let subscription = subscriptions_by_name[name]; - // delete subscription from both lists: - subscriptions_by_event[subscription.e].splice(subscriptions_by_event[subscription.e].indexOf(subscription), 1); - delete subscriptions_by_name[name]; - } - }; - - return {pub, sub, unsub}; - } - -export default PubSub; \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..b214dd1 --- /dev/null +++ b/package.json @@ -0,0 +1,24 @@ +{ + "name": "calendar-optimizer", + "version": "1.0.0", + "description": "Options Calendar-spread optimizer, based on projected underlying price range and IV smiles at different expiries.", + "source": "src/index.html", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "https://git.sakal.us/brian/calendar-optimizer.git" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "PubSubJS": "^0.0.3", + "incremental-dom": "^0.7.0", + "nanoid": "^3.3.1" + }, + "devDependencies": { + "parcel": "^2.3.2" + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..9e9f6e8 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,1750 @@ +lockfileVersion: 5.3 + +specifiers: + PubSubJS: ^0.0.3 + incremental-dom: ^0.7.0 + nanoid: ^3.3.1 + parcel: ^2.3.2 + +dependencies: + PubSubJS: 0.0.3 + incremental-dom: 0.7.0 + nanoid: 3.3.1 + +devDependencies: + parcel: 2.3.2 + +packages: + + /@babel/code-frame/7.16.7: + resolution: {integrity: sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.16.10 + dev: true + + /@babel/helper-validator-identifier/7.16.7: + resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/highlight/7.16.10: + resolution: {integrity: sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.16.7 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + + /@parcel/bundler-default/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-JUrto4mjSD0ic9dEqRp0loL5o3HVYHja1ZIYSq+rBl2UWRV6/9cGTb07lXOCqqm0BWE+hQ4krUxB76qWaF0Lqw==} + engines: {node: '>= 12.0.0', parcel: ^2.3.2} + dependencies: + '@parcel/diagnostic': 2.3.2 + '@parcel/hash': 2.3.2 + '@parcel/plugin': 2.3.2_@parcel+core@2.3.2 + '@parcel/utils': 2.3.2 + nullthrows: 1.1.1 + transitivePeerDependencies: + - '@parcel/core' + dev: true + + /@parcel/cache/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-Xxq+ekgcFEme6Fn1v7rEOBkyMOUOUu7eNqQw0l6HQS+INZ2Q7YzzfdW7pI8rEOAAICVg5BWKpmBQZpgJlT+HxQ==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@parcel/core': ^2.3.2 + dependencies: + '@parcel/core': 2.3.2 + '@parcel/fs': 2.3.2_@parcel+core@2.3.2 + '@parcel/logger': 2.3.2 + '@parcel/utils': 2.3.2 + lmdb: 2.2.5 + dev: true + + /@parcel/codeframe/2.3.2: + resolution: {integrity: sha512-ireQALcxxrTdIEpzTOoMo/GpfbFm1qlyezeGl3Hce3PMvHLg3a5S6u/Vcy7SAjdld5GfhHEqVY+blME6Z4CyXQ==} + engines: {node: '>= 12.0.0'} + dependencies: + chalk: 4.1.2 + dev: true + + /@parcel/compressor-raw/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-8dIoFwinYK6bOTpnZOAwwIv0v73y0ezsctPmfMnIqVQPn7wJwfhw/gbKVcmK5AkgQMkyid98hlLZoaZtGF1Mdg==} + engines: {node: '>= 12.0.0', parcel: ^2.3.2} + dependencies: + '@parcel/plugin': 2.3.2_@parcel+core@2.3.2 + transitivePeerDependencies: + - '@parcel/core' + dev: true + + /@parcel/config-default/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-E7/iA7fGCYvXU3u6zF9nxjeDVsgjCN6MVvDjymjaxYMoDWTIsPV245SBEXqzgtmzbMAV+VAl4rVWLMB4pzMt9g==} + peerDependencies: + '@parcel/core': ^2.3.2 + dependencies: + '@parcel/bundler-default': 2.3.2_@parcel+core@2.3.2 + '@parcel/compressor-raw': 2.3.2_@parcel+core@2.3.2 + '@parcel/core': 2.3.2 + '@parcel/namer-default': 2.3.2_@parcel+core@2.3.2 + '@parcel/optimizer-cssnano': 2.3.2_@parcel+core@2.3.2 + '@parcel/optimizer-htmlnano': 2.3.2_@parcel+core@2.3.2 + '@parcel/optimizer-image': 2.3.2_@parcel+core@2.3.2 + '@parcel/optimizer-svgo': 2.3.2_@parcel+core@2.3.2 + '@parcel/optimizer-terser': 2.3.2_@parcel+core@2.3.2 + '@parcel/packager-css': 2.3.2_@parcel+core@2.3.2 + '@parcel/packager-html': 2.3.2_@parcel+core@2.3.2 + '@parcel/packager-js': 2.3.2_@parcel+core@2.3.2 + '@parcel/packager-raw': 2.3.2_@parcel+core@2.3.2 + '@parcel/packager-svg': 2.3.2_@parcel+core@2.3.2 + '@parcel/reporter-dev-server': 2.3.2_@parcel+core@2.3.2 + '@parcel/resolver-default': 2.3.2_@parcel+core@2.3.2 + '@parcel/runtime-browser-hmr': 2.3.2_@parcel+core@2.3.2 + '@parcel/runtime-js': 2.3.2_@parcel+core@2.3.2 + '@parcel/runtime-react-refresh': 2.3.2_@parcel+core@2.3.2 + '@parcel/runtime-service-worker': 2.3.2_@parcel+core@2.3.2 + '@parcel/transformer-babel': 2.3.2_@parcel+core@2.3.2 + '@parcel/transformer-css': 2.3.2_@parcel+core@2.3.2 + '@parcel/transformer-html': 2.3.2_@parcel+core@2.3.2 + '@parcel/transformer-image': 2.3.2_@parcel+core@2.3.2 + '@parcel/transformer-js': 2.3.2_@parcel+core@2.3.2 + '@parcel/transformer-json': 2.3.2_@parcel+core@2.3.2 + '@parcel/transformer-postcss': 2.3.2_@parcel+core@2.3.2 + '@parcel/transformer-posthtml': 2.3.2_@parcel+core@2.3.2 + '@parcel/transformer-raw': 2.3.2_@parcel+core@2.3.2 + '@parcel/transformer-react-refresh-wrap': 2.3.2_@parcel+core@2.3.2 + '@parcel/transformer-svg': 2.3.2_@parcel+core@2.3.2 + transitivePeerDependencies: + - cssnano + - postcss + - purgecss + - relateurl + - srcset + - terser + - uncss + dev: true + + /@parcel/core/2.3.2: + resolution: {integrity: sha512-gdJzpsgeUhv9H8T0UKVmyuptiXdduEfKIUx0ci+/PGhq8cCoiFnlnuhW6H7oLr79OUc+YJStabDJuG4U2A6ysw==} + engines: {node: '>= 12.0.0'} + dependencies: + '@parcel/cache': 2.3.2_@parcel+core@2.3.2 + '@parcel/diagnostic': 2.3.2 + '@parcel/events': 2.3.2 + '@parcel/fs': 2.3.2_@parcel+core@2.3.2 + '@parcel/graph': 2.3.2 + '@parcel/hash': 2.3.2 + '@parcel/logger': 2.3.2 + '@parcel/package-manager': 2.3.2_@parcel+core@2.3.2 + '@parcel/plugin': 2.3.2_@parcel+core@2.3.2 + '@parcel/source-map': 2.0.2 + '@parcel/types': 2.3.2_@parcel+core@2.3.2 + '@parcel/utils': 2.3.2 + '@parcel/workers': 2.3.2_@parcel+core@2.3.2 + abortcontroller-polyfill: 1.7.3 + base-x: 3.0.9 + browserslist: 4.20.2 + clone: 2.1.2 + dotenv: 7.0.0 + dotenv-expand: 5.1.0 + json-source-map: 0.6.1 + json5: 2.2.0 + msgpackr: 1.5.5 + nullthrows: 1.1.1 + semver: 5.7.1 + dev: true + + /@parcel/diagnostic/2.3.2: + resolution: {integrity: sha512-/xW93Az4AOiifuYW/c4CDbUcu3lx5FcUDAj9AGiR9NSTsF/ROC/RqnxvQ3AGtqa14R7vido4MXEpY3JEp6FsqA==} + engines: {node: '>= 12.0.0'} + dependencies: + json-source-map: 0.6.1 + nullthrows: 1.1.1 + dev: true + + /@parcel/events/2.3.2: + resolution: {integrity: sha512-WiYIwXMo4Vd+pi58vRoHkul8TPE5VEfMY+3FYwVCKPl/LYqSD+vz6wMx9uG18mEbB1d/ofefv5ZFQNtPGKO4tQ==} + engines: {node: '>= 12.0.0'} + dev: true + + /@parcel/fs-search/2.3.2: + resolution: {integrity: sha512-u3DTEFnPtKuZvEtgGzfVjQUytegSSn3POi7WfwMwPIaeDPfYcyyhfl+c96z7VL9Gk/pqQ99/cGyAwFdFsnxxXA==} + engines: {node: '>= 12.0.0'} + dependencies: + detect-libc: 1.0.3 + dev: true + + /@parcel/fs/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-XV+OsnRpN01QKU37lBN0TFKvv7uPKfQGbqFqYOrMbXH++Ae8rBU0Ykz+Yu4tv2h7shMlde+AMKgRnRTAJZpWEQ==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@parcel/core': ^2.3.2 + dependencies: + '@parcel/core': 2.3.2 + '@parcel/fs-search': 2.3.2 + '@parcel/types': 2.3.2_@parcel+core@2.3.2 + '@parcel/utils': 2.3.2 + '@parcel/watcher': 2.0.5 + '@parcel/workers': 2.3.2_@parcel+core@2.3.2 + dev: true + + /@parcel/graph/2.3.2: + resolution: {integrity: sha512-ltTBM3IEqumgmy4ABBFETT8NtAwSsjD9mY3WCyJ5P8rUshfVCg093rvBPbpuJYMaH/TV1AHVaWfZqaZ4JQDIQQ==} + engines: {node: '>= 12.0.0'} + dependencies: + '@parcel/utils': 2.3.2 + nullthrows: 1.1.1 + dev: true + + /@parcel/hash/2.3.2: + resolution: {integrity: sha512-SMtYTsHihws/wqdVnOr0QAGyGYsW9rJSJkkoRujUxo8l2ctnBN1ztv89eOUrdtgHsmcnj/oz1yw6sN38X+BUng==} + engines: {node: '>= 12.0.0'} + dependencies: + detect-libc: 1.0.3 + xxhash-wasm: 0.4.2 + dev: true + + /@parcel/logger/2.3.2: + resolution: {integrity: sha512-jIWd8TXDQf+EnNWSa7Q10lSQ6C1LSH8OZkTlaINrfVIw7s+3tVxO3I4pjp7/ARw7RX2gdNPlw6fH4Gn/HvvYbw==} + engines: {node: '>= 12.0.0'} + dependencies: + '@parcel/diagnostic': 2.3.2 + '@parcel/events': 2.3.2 + dev: true + + /@parcel/markdown-ansi/2.3.2: + resolution: {integrity: sha512-l01ggmag5QScCk9mYA0xHh5TWSffR84uPFP2KvaAMQQ9NLNufcFiU0mn/Mtr3pCb5L5dSzmJ+Oo9s7P1Kh/Fmg==} + engines: {node: '>= 12.0.0'} + dependencies: + chalk: 4.1.2 + dev: true + + /@parcel/namer-default/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-3QUMC0+5+3KMKfoAxYAbpZtuRqTgyZKsGDWzOpuqwemqp6P8ahAvNPwSCi6QSkGcTmvtYwBu9/NHPSONxIFOfg==} + engines: {node: '>= 12.0.0', parcel: ^2.3.2} + dependencies: + '@parcel/diagnostic': 2.3.2 + '@parcel/plugin': 2.3.2_@parcel+core@2.3.2 + nullthrows: 1.1.1 + transitivePeerDependencies: + - '@parcel/core' + dev: true + + /@parcel/node-resolver-core/2.3.2: + resolution: {integrity: sha512-wmrnMNzJN4GuHw2Ftho+BWgSWR6UCkW3XoMdphqcxpw/ieAdS2a+xYSosYkZgQZ6lGutSvLyJ1CkVvP6RLIdQQ==} + engines: {node: '>= 12.0.0'} + dependencies: + '@parcel/diagnostic': 2.3.2 + '@parcel/utils': 2.3.2 + nullthrows: 1.1.1 + dev: true + + /@parcel/optimizer-cssnano/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-wTBOxMiBI38NAB9XIlQZRCjS59+EWjWR9M04D3TWyxl+dL5gYMc1cl4GNynUnmcPdz+3s1UbOdo5/8V90wjiiw==} + engines: {node: '>= 12.0.0', parcel: ^2.3.2} + dependencies: + '@parcel/plugin': 2.3.2_@parcel+core@2.3.2 + '@parcel/source-map': 2.0.2 + cssnano: 5.1.4_postcss@8.4.12 + postcss: 8.4.12 + transitivePeerDependencies: + - '@parcel/core' + dev: true + + /@parcel/optimizer-htmlnano/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-U8C0TDSxsx8HmHaLW0Zc7ha1fXQynzhvBjCRMGYnOiLiw0MOfLQxzQ2WKVSeCotmdlF63ayCwxWsd6BuqStiKQ==} + engines: {node: '>= 12.0.0', parcel: ^2.3.2} + dependencies: + '@parcel/plugin': 2.3.2_@parcel+core@2.3.2 + htmlnano: 2.0.0_svgo@2.8.0 + nullthrows: 1.1.1 + posthtml: 0.16.6 + svgo: 2.8.0 + transitivePeerDependencies: + - '@parcel/core' + - cssnano + - postcss + - purgecss + - relateurl + - srcset + - terser + - uncss + dev: true + + /@parcel/optimizer-image/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-HOk3r5qdvY/PmI7Q3i2qEgFH3kP2QWG4Wq3wmC4suaF1+c2gpiQc+HKHWp4QvfbH3jhT00c5NxQyqPhbXeNI9Q==} + engines: {node: '>= 12.0.0', parcel: ^2.3.2} + dependencies: + '@parcel/diagnostic': 2.3.2 + '@parcel/plugin': 2.3.2_@parcel+core@2.3.2 + '@parcel/utils': 2.3.2 + '@parcel/workers': 2.3.2_@parcel+core@2.3.2 + detect-libc: 1.0.3 + transitivePeerDependencies: + - '@parcel/core' + dev: true + + /@parcel/optimizer-svgo/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-l7WvZ5+e7D1mVmLUxMVaSb29cviXzuvSY2OpQs0ukdPACDqag+C65hWMzwTiOSSRGPMIu96kQKpeVru2YjibhA==} + engines: {node: '>= 12.0.0', parcel: ^2.3.2} + dependencies: + '@parcel/diagnostic': 2.3.2 + '@parcel/plugin': 2.3.2_@parcel+core@2.3.2 + '@parcel/utils': 2.3.2 + svgo: 2.8.0 + transitivePeerDependencies: + - '@parcel/core' + dev: true + + /@parcel/optimizer-terser/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-dOapHhfy0xiNZa2IoEyHGkhhla07xsja79NPem14e5jCqY6Oi40jKNV4ab5uu5u1elWUjJuw69tiYbkDZWbKQw==} + engines: {node: '>= 12.0.0', parcel: ^2.3.2} + dependencies: + '@parcel/diagnostic': 2.3.2 + '@parcel/plugin': 2.3.2_@parcel+core@2.3.2 + '@parcel/source-map': 2.0.2 + '@parcel/utils': 2.3.2 + nullthrows: 1.1.1 + terser: 5.12.1 + transitivePeerDependencies: + - '@parcel/core' + dev: true + + /@parcel/package-manager/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-pAQfywKVORY8Ee+NHAyKzzQrKbnz8otWRejps7urwhDaTVLfAd5C/1ZV64ATZ9ALYP9jyoQ8bTaxVd4opcSuwg==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@parcel/core': ^2.3.2 + dependencies: + '@parcel/core': 2.3.2 + '@parcel/diagnostic': 2.3.2 + '@parcel/fs': 2.3.2_@parcel+core@2.3.2 + '@parcel/logger': 2.3.2 + '@parcel/types': 2.3.2_@parcel+core@2.3.2 + '@parcel/utils': 2.3.2 + '@parcel/workers': 2.3.2_@parcel+core@2.3.2 + semver: 5.7.1 + dev: true + + /@parcel/packager-css/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-ByuF9xDnQnpVL1Hdu9aY6SpxOuZowd3TH7joh1qdRPLeMHTEvUywHBXoiAyNdrhnLGum8uPEdY8Ra5Xuo1U7kg==} + engines: {node: '>= 12.0.0', parcel: ^2.3.2} + dependencies: + '@parcel/plugin': 2.3.2_@parcel+core@2.3.2 + '@parcel/source-map': 2.0.2 + '@parcel/utils': 2.3.2 + nullthrows: 1.1.1 + transitivePeerDependencies: + - '@parcel/core' + dev: true + + /@parcel/packager-html/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-YqAptdU+uqfgwSii76mRGcA/3TpuC6yHr8xG+11brqj/tEFLsurmX0naombzd7FgmrTE9w+kb0HUIMl2vRBn0A==} + engines: {node: '>= 12.0.0', parcel: ^2.3.2} + dependencies: + '@parcel/plugin': 2.3.2_@parcel+core@2.3.2 + '@parcel/types': 2.3.2_@parcel+core@2.3.2 + '@parcel/utils': 2.3.2 + nullthrows: 1.1.1 + posthtml: 0.16.6 + transitivePeerDependencies: + - '@parcel/core' + dev: true + + /@parcel/packager-js/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-3OP0Ro9M1J+PIKZK4Ec2N5hjIPiqk++B2kMFeiUqvaNZjJgKrPPEICBhjS52rma4IE/NgmIMB3aI5pWqE/KwNA==} + engines: {node: '>= 12.0.0', parcel: ^2.3.2} + dependencies: + '@parcel/diagnostic': 2.3.2 + '@parcel/hash': 2.3.2 + '@parcel/plugin': 2.3.2_@parcel+core@2.3.2 + '@parcel/source-map': 2.0.2 + '@parcel/utils': 2.3.2 + globals: 13.13.0 + nullthrows: 1.1.1 + transitivePeerDependencies: + - '@parcel/core' + dev: true + + /@parcel/packager-raw/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-RnoZ7WgNAFWkEPrEefvyDqus7xfv9XGprHyTbfLittPaVAZpl+4eAv43nXyMfzk77Cgds6KcNpkosj3acEpNIQ==} + engines: {node: '>= 12.0.0', parcel: ^2.3.2} + dependencies: + '@parcel/plugin': 2.3.2_@parcel+core@2.3.2 + transitivePeerDependencies: + - '@parcel/core' + dev: true + + /@parcel/packager-svg/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-iIC0VeczOXynS7M5jCi3naMBRyAznBVJ3iMg92/GaI9duxPlUMGAlHzLAKNtoXkc00HMXDH7rrmMb04VX6FYSg==} + engines: {node: '>= 12.0.0', parcel: ^2.3.2} + dependencies: + '@parcel/plugin': 2.3.2_@parcel+core@2.3.2 + '@parcel/types': 2.3.2_@parcel+core@2.3.2 + '@parcel/utils': 2.3.2 + posthtml: 0.16.6 + transitivePeerDependencies: + - '@parcel/core' + dev: true + + /@parcel/plugin/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-SaLZAJX4KH+mrAmqmcy9KJN+V7L+6YNTlgyqYmfKlNiHu7aIjLL+3prX8QRcgGtjAYziCxvPj0cl1CCJssaiGg==} + engines: {node: '>= 12.0.0'} + dependencies: + '@parcel/types': 2.3.2_@parcel+core@2.3.2 + transitivePeerDependencies: + - '@parcel/core' + dev: true + + /@parcel/reporter-cli/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-VYetmTXqW83npsvVvqlQZTbF3yVL3k/FCCl3kSWvOr9LZA0lmyqJWPjMHq37yIIOszQN/p5guLtgCjsP0UQw1Q==} + engines: {node: '>= 12.0.0', parcel: ^2.3.2} + dependencies: + '@parcel/plugin': 2.3.2_@parcel+core@2.3.2 + '@parcel/types': 2.3.2_@parcel+core@2.3.2 + '@parcel/utils': 2.3.2 + chalk: 4.1.2 + transitivePeerDependencies: + - '@parcel/core' + dev: true + + /@parcel/reporter-dev-server/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-E7LtnjAX4iiWMw2qKUyFBi3+bDz0UGjqgHoPQylUYYLi6opXjJz/oC+cCcCy4e3RZlkrl187XonvagS59YjDxA==} + engines: {node: '>= 12.0.0', parcel: ^2.3.2} + dependencies: + '@parcel/plugin': 2.3.2_@parcel+core@2.3.2 + '@parcel/utils': 2.3.2 + transitivePeerDependencies: + - '@parcel/core' + dev: true + + /@parcel/resolver-default/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-y3r+xOwWsATrNGUWuZ6soA7q24f8E5tY1AZ9lHCufnkK2cdKZJ5O1cyd7ohkAiKZx2/pMd+FgmVZ/J3oxetXkA==} + engines: {node: '>= 12.0.0', parcel: ^2.3.2} + dependencies: + '@parcel/node-resolver-core': 2.3.2 + '@parcel/plugin': 2.3.2_@parcel+core@2.3.2 + transitivePeerDependencies: + - '@parcel/core' + dev: true + + /@parcel/runtime-browser-hmr/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-nRD6uOyF1+HGylP9GASbYmvUDOsDaNwvaxuGTSh8+5M0mmCgib+hVBiPEKbwdmKjGbUPt9wRFPyMa/JpeQZsIQ==} + engines: {node: '>= 12.0.0', parcel: ^2.3.2} + dependencies: + '@parcel/plugin': 2.3.2_@parcel+core@2.3.2 + '@parcel/utils': 2.3.2 + transitivePeerDependencies: + - '@parcel/core' + dev: true + + /@parcel/runtime-js/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-SJepcHvYO/7CEe/Q85sngk+smcJ6TypuPh4D2R8kN+cAJPi5WvbQEe7+x5BEgbN+5Jumi/Uo3FfOOE5mYh+F6g==} + engines: {node: '>= 12.0.0', parcel: ^2.3.2} + dependencies: + '@parcel/plugin': 2.3.2_@parcel+core@2.3.2 + '@parcel/utils': 2.3.2 + nullthrows: 1.1.1 + transitivePeerDependencies: + - '@parcel/core' + dev: true + + /@parcel/runtime-react-refresh/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-P+GRPO2XVDSBQ4HmRSj2xfbHSQvL9+ahTE/AB74IJExLTITv5l4SHAV3VsiKohuHYUAYHW3A/Oe7tEFCAb6Cug==} + engines: {node: '>= 12.0.0', parcel: ^2.3.2} + dependencies: + '@parcel/plugin': 2.3.2_@parcel+core@2.3.2 + '@parcel/utils': 2.3.2 + react-refresh: 0.9.0 + transitivePeerDependencies: + - '@parcel/core' + dev: true + + /@parcel/runtime-service-worker/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-iREHj/eapphC4uS/zGUkiTJvG57q+CVbTrfE42kB8ECtf/RYNo5YC9htdvPZjRSXDPrEPc5NCoKp4X09ENNikw==} + engines: {node: '>= 12.0.0', parcel: ^2.3.2} + dependencies: + '@parcel/plugin': 2.3.2_@parcel+core@2.3.2 + '@parcel/utils': 2.3.2 + nullthrows: 1.1.1 + transitivePeerDependencies: + - '@parcel/core' + dev: true + + /@parcel/source-map/2.0.2: + resolution: {integrity: sha512-NnUrPYLpYB6qyx2v6bcRPn/gVigmGG6M6xL8wIg/i0dP1GLkuY1nf+Hqdf63FzPTqqT7K3k6eE5yHPQVMO5jcA==} + engines: {node: ^12.18.3 || >=14} + dependencies: + detect-libc: 1.0.3 + dev: true + + /@parcel/transformer-babel/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-QpWfH2V6jJ+kcUBIMM/uBBG8dGFvNaOGS+8jD6b+eTP+1owzm83RoWgqhRV2D/hhv2qMXEQzIljoc/wg2y+X4g==} + engines: {node: '>= 12.0.0', parcel: ^2.3.2} + dependencies: + '@parcel/diagnostic': 2.3.2 + '@parcel/plugin': 2.3.2_@parcel+core@2.3.2 + '@parcel/source-map': 2.0.2 + '@parcel/utils': 2.3.2 + browserslist: 4.20.2 + json5: 2.2.0 + nullthrows: 1.1.1 + semver: 5.7.1 + transitivePeerDependencies: + - '@parcel/core' + dev: true + + /@parcel/transformer-css/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-8lzvDny+78DIAqhcXam2Bf9FyaUoqzHdUQdNFn+PuXTHroG/QGPvln1kvqngJjn4/cpJS9vYmAPVXe+nai3P8g==} + engines: {node: '>= 12.0.0', parcel: ^2.3.2} + dependencies: + '@parcel/hash': 2.3.2 + '@parcel/plugin': 2.3.2_@parcel+core@2.3.2 + '@parcel/source-map': 2.0.2 + '@parcel/utils': 2.3.2 + nullthrows: 1.1.1 + postcss: 8.4.12 + postcss-value-parser: 4.2.0 + semver: 5.7.1 + transitivePeerDependencies: + - '@parcel/core' + dev: true + + /@parcel/transformer-html/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-idT1I/8WM65IFYBqzRwpwT7sf0xGur4EDQDHhuPX1w+pIVZnh0lkLMAnEqs6ar1SPRMys4chzkuDNnqh0d76hg==} + engines: {node: '>= 12.0.0', parcel: ^2.3.2} + dependencies: + '@parcel/diagnostic': 2.3.2 + '@parcel/hash': 2.3.2 + '@parcel/plugin': 2.3.2_@parcel+core@2.3.2 + nullthrows: 1.1.1 + posthtml: 0.16.6 + posthtml-parser: 0.10.2 + posthtml-render: 3.0.0 + semver: 5.7.1 + transitivePeerDependencies: + - '@parcel/core' + dev: true + + /@parcel/transformer-image/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-0K7cJHXysli6hZsUz/zVGO7WCoaaIeVdzAxKpLA1Yl3LKw/ODiMyXKt08LiV/ljQ2xT5qb9EsXUWDRvcZ0b96A==} + engines: {node: '>= 12.0.0', parcel: ^2.3.2} + dependencies: + '@parcel/plugin': 2.3.2_@parcel+core@2.3.2 + '@parcel/workers': 2.3.2_@parcel+core@2.3.2 + nullthrows: 1.1.1 + transitivePeerDependencies: + - '@parcel/core' + dev: true + + /@parcel/transformer-js/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-U1fbIoAoqR5P49S+DMhH8BUd9IHRPwrTTv6ARYGsYnhuNsjTFhNYE0kkfRYboe/e0z7vEbeJICZXjnZ7eQDw5A==} + engines: {node: '>= 12.0.0', parcel: ^2.3.2} + dependencies: + '@parcel/diagnostic': 2.3.2 + '@parcel/plugin': 2.3.2_@parcel+core@2.3.2 + '@parcel/source-map': 2.0.2 + '@parcel/utils': 2.3.2 + '@parcel/workers': 2.3.2_@parcel+core@2.3.2 + '@swc/helpers': 0.2.14 + browserslist: 4.20.2 + detect-libc: 1.0.3 + nullthrows: 1.1.1 + regenerator-runtime: 0.13.9 + semver: 5.7.1 + transitivePeerDependencies: + - '@parcel/core' + dev: true + + /@parcel/transformer-json/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-Pv2iPaxKINtFwOk5fDbHjQlSm2Vza/NLimQY896FLxiXPNAJxWGvMwdutgOPEBKksxRx9LZPyIOHiRVZ0KcA3w==} + engines: {node: '>= 12.0.0', parcel: ^2.3.2} + dependencies: + '@parcel/plugin': 2.3.2_@parcel+core@2.3.2 + json5: 2.2.0 + transitivePeerDependencies: + - '@parcel/core' + dev: true + + /@parcel/transformer-postcss/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-Rpdxc1rt2aJFCh/y/ccaBc9J1crDjNY5o44xYoOemBoUNDMREsmg5sR5iO81qKKO5GxfoosGb2zh59aeTmywcg==} + engines: {node: '>= 12.0.0', parcel: ^2.3.2} + dependencies: + '@parcel/hash': 2.3.2 + '@parcel/plugin': 2.3.2_@parcel+core@2.3.2 + '@parcel/utils': 2.3.2 + clone: 2.1.2 + nullthrows: 1.1.1 + postcss-value-parser: 4.2.0 + semver: 5.7.1 + transitivePeerDependencies: + - '@parcel/core' + dev: true + + /@parcel/transformer-posthtml/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-tMdVExfdM+1G8A9KSHDsjg+S9xEGbhH5mApF2NslPnNZ4ciLKRNuHU2sSV/v8i0a6kacKvDTrwQXYBQJGOodBw==} + engines: {node: '>= 12.0.0', parcel: ^2.3.2} + dependencies: + '@parcel/plugin': 2.3.2_@parcel+core@2.3.2 + '@parcel/utils': 2.3.2 + nullthrows: 1.1.1 + posthtml: 0.16.6 + posthtml-parser: 0.10.2 + posthtml-render: 3.0.0 + semver: 5.7.1 + transitivePeerDependencies: + - '@parcel/core' + dev: true + + /@parcel/transformer-raw/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-lY7eOCaALZ90+GH+4PZRmAPGQRXoZ66NakSdhEtH6JSSAYOmZKDvNLGTMRo/vK1oELzWMuAHGdqvbcPDtNLLVw==} + engines: {node: '>= 12.0.0', parcel: ^2.3.2} + dependencies: + '@parcel/plugin': 2.3.2_@parcel+core@2.3.2 + transitivePeerDependencies: + - '@parcel/core' + dev: true + + /@parcel/transformer-react-refresh-wrap/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-FZaderyCExn0SBZ6D+zHPWc8JSn9YDcbfibv0wkCl+D7sYfeWZ22i7MRp5NwCe/TZ21WuxDWySCggEp/Waz2xg==} + engines: {node: '>= 12.0.0', parcel: ^2.3.2} + dependencies: + '@parcel/plugin': 2.3.2_@parcel+core@2.3.2 + '@parcel/utils': 2.3.2 + react-refresh: 0.9.0 + transitivePeerDependencies: + - '@parcel/core' + dev: true + + /@parcel/transformer-svg/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-k9My6bePsaGgUh+tidDjFbbVgKPTzwCAQfoloZRMt7y396KgUbvCfqDruk04k6k+cJn7Jl1o/5lUpTEruBze7g==} + engines: {node: '>= 12.0.0', parcel: ^2.3.2} + dependencies: + '@parcel/diagnostic': 2.3.2 + '@parcel/hash': 2.3.2 + '@parcel/plugin': 2.3.2_@parcel+core@2.3.2 + nullthrows: 1.1.1 + posthtml: 0.16.6 + posthtml-parser: 0.10.2 + posthtml-render: 3.0.0 + semver: 5.7.1 + transitivePeerDependencies: + - '@parcel/core' + dev: true + + /@parcel/types/2.3.2: + resolution: {integrity: sha512-C77Ct1xNM7LWjPTfe/dQ/9rq1efdsX5VJu2o8/TVi6qoFh64Wp/c5/vCHwKInOTBZUTchVO6z4PGJNIZoUVJuA==} + dependencies: + '@parcel/cache': 2.3.2_@parcel+core@2.3.2 + '@parcel/diagnostic': 2.3.2 + '@parcel/fs': 2.3.2_@parcel+core@2.3.2 + '@parcel/package-manager': 2.3.2_@parcel+core@2.3.2 + '@parcel/source-map': 2.0.2 + '@parcel/workers': 2.3.2_@parcel+core@2.3.2 + utility-types: 3.10.0 + dev: true + + /@parcel/types/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-C77Ct1xNM7LWjPTfe/dQ/9rq1efdsX5VJu2o8/TVi6qoFh64Wp/c5/vCHwKInOTBZUTchVO6z4PGJNIZoUVJuA==} + dependencies: + '@parcel/cache': 2.3.2_@parcel+core@2.3.2 + '@parcel/diagnostic': 2.3.2 + '@parcel/fs': 2.3.2_@parcel+core@2.3.2 + '@parcel/package-manager': 2.3.2_@parcel+core@2.3.2 + '@parcel/source-map': 2.0.2 + '@parcel/workers': 2.3.2_@parcel+core@2.3.2 + utility-types: 3.10.0 + transitivePeerDependencies: + - '@parcel/core' + dev: true + + /@parcel/utils/2.3.2: + resolution: {integrity: sha512-xzZ+0vWhrXlLzGoz7WlANaO5IPtyWGeCZruGtepUL3yheRWb1UU4zFN9xz7Z+j++Dmf1Fgkc3qdk/t4O8u9HLQ==} + engines: {node: '>= 12.0.0'} + dependencies: + '@parcel/codeframe': 2.3.2 + '@parcel/diagnostic': 2.3.2 + '@parcel/hash': 2.3.2 + '@parcel/logger': 2.3.2 + '@parcel/markdown-ansi': 2.3.2 + '@parcel/source-map': 2.0.2 + chalk: 4.1.2 + dev: true + + /@parcel/watcher/2.0.5: + resolution: {integrity: sha512-x0hUbjv891omnkcHD7ZOhiyyUqUUR6MNjq89JhEI3BxppeKWAm6NPQsqqRrAkCJBogdT/o/My21sXtTI9rJIsw==} + engines: {node: '>= 10.0.0'} + requiresBuild: true + dependencies: + node-addon-api: 3.2.1 + node-gyp-build: 4.3.0 + dev: true + + /@parcel/workers/2.3.2_@parcel+core@2.3.2: + resolution: {integrity: sha512-JbOm+Ceuyymd1SuKGgodC2EXAiPuFRpaNUSJpz3NAsS3lVIt2TDAPMOWBivS7sML/KltspUfl/Q9YwO0TPUFNw==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@parcel/core': ^2.3.2 + dependencies: + '@parcel/core': 2.3.2 + '@parcel/diagnostic': 2.3.2 + '@parcel/logger': 2.3.2 + '@parcel/types': 2.3.2 + '@parcel/utils': 2.3.2 + chrome-trace-event: 1.0.3 + nullthrows: 1.1.1 + dev: true + + /@swc/helpers/0.2.14: + resolution: {integrity: sha512-wpCQMhf5p5GhNg2MmGKXzUNwxe7zRiCsmqYsamez2beP7mKPCSiu+BjZcdN95yYSzO857kr0VfQewmGpS77nqA==} + dev: true + + /@trysound/sax/0.2.0: + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} + dev: true + + /@types/parse-json/4.0.0: + resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} + dev: true + + /PubSubJS/0.0.3: + resolution: {integrity: sha512-Pu64bR+UFZRqleTgFWpmRBnK/3IQvlp/nUi+bsxF4OjHrpWKHYbZgpetJqW4toShhA1Hw0d/G69XdRN6b8isLg==} + dependencies: + nanoid: 3.3.1 + dev: false + + /abortcontroller-polyfill/1.7.3: + resolution: {integrity: sha512-zetDJxd89y3X99Kvo4qFx8GKlt6GsvN3UcRZHwU6iFA/0KiOmhkTVhe8oRoTBiTVPZu09x3vCra47+w8Yz1+2Q==} + dev: true + + /acorn/8.7.0: + resolution: {integrity: sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /ansi-styles/3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + dev: true + + /ansi-styles/4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true + + /base-x/3.0.9: + resolution: {integrity: sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /boolbase/1.0.0: + resolution: {integrity: sha1-aN/1++YMUes3cl6p4+0xDcwed24=} + dev: true + + /browserslist/4.20.2: + resolution: {integrity: sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001317 + electron-to-chromium: 1.4.86 + escalade: 3.1.1 + node-releases: 2.0.2 + picocolors: 1.0.0 + dev: true + + /buffer-from/1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + dev: true + + /callsites/3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true + + /caniuse-api/3.0.0: + resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} + dependencies: + browserslist: 4.20.2 + caniuse-lite: 1.0.30001317 + lodash.memoize: 4.1.2 + lodash.uniq: 4.5.0 + dev: true + + /caniuse-lite/1.0.30001317: + resolution: {integrity: sha512-xIZLh8gBm4dqNX0gkzrBeyI86J2eCjWzYAs40q88smG844YIrN4tVQl/RhquHvKEKImWWFIVh1Lxe5n1G/N+GQ==} + dev: true + + /chalk/2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: true + + /chalk/4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /chrome-trace-event/1.0.3: + resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} + engines: {node: '>=6.0'} + dev: true + + /clone/2.1.2: + resolution: {integrity: sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=} + engines: {node: '>=0.8'} + dev: true + + /color-convert/1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + dev: true + + /color-convert/2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: true + + /color-name/1.1.3: + resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} + dev: true + + /color-name/1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true + + /colord/2.9.2: + resolution: {integrity: sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==} + dev: true + + /commander/2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + dev: true + + /commander/7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + dev: true + + /cosmiconfig/7.0.1: + resolution: {integrity: sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==} + engines: {node: '>=10'} + dependencies: + '@types/parse-json': 4.0.0 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + dev: true + + /css-declaration-sorter/6.1.4_postcss@8.4.12: + resolution: {integrity: sha512-lpfkqS0fctcmZotJGhnxkIyJWvBXgpyi2wsFd4J8VB7wzyrT6Ch/3Q+FMNJpjK4gu1+GN5khOnpU2ZVKrLbhCw==} + engines: {node: '>= 10'} + peerDependencies: + postcss: ^8.0.9 + dependencies: + postcss: 8.4.12 + timsort: 0.3.0 + dev: true + + /css-select/4.2.1: + resolution: {integrity: sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==} + dependencies: + boolbase: 1.0.0 + css-what: 5.1.0 + domhandler: 4.3.0 + domutils: 2.8.0 + nth-check: 2.0.1 + dev: true + + /css-tree/1.1.3: + resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} + engines: {node: '>=8.0.0'} + dependencies: + mdn-data: 2.0.14 + source-map: 0.6.1 + dev: true + + /css-what/5.1.0: + resolution: {integrity: sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==} + engines: {node: '>= 6'} + dev: true + + /cssesc/3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /cssnano-preset-default/5.2.4_postcss@8.4.12: + resolution: {integrity: sha512-w1Gg8xsebln6/axZ6qDFQHuglrGfbIHOIx0g4y9+etRlRab8CGpSpe6UMsrgJe4zhCaJ0LwLmc+PhdLRTwnhIA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + css-declaration-sorter: 6.1.4_postcss@8.4.12 + cssnano-utils: 3.1.0_postcss@8.4.12 + postcss: 8.4.12 + postcss-calc: 8.2.4_postcss@8.4.12 + postcss-colormin: 5.3.0_postcss@8.4.12 + postcss-convert-values: 5.1.0_postcss@8.4.12 + postcss-discard-comments: 5.1.1_postcss@8.4.12 + postcss-discard-duplicates: 5.1.0_postcss@8.4.12 + postcss-discard-empty: 5.1.1_postcss@8.4.12 + postcss-discard-overridden: 5.1.0_postcss@8.4.12 + postcss-merge-longhand: 5.1.2_postcss@8.4.12 + postcss-merge-rules: 5.1.0_postcss@8.4.12 + postcss-minify-font-values: 5.1.0_postcss@8.4.12 + postcss-minify-gradients: 5.1.0_postcss@8.4.12 + postcss-minify-params: 5.1.1_postcss@8.4.12 + postcss-minify-selectors: 5.2.0_postcss@8.4.12 + postcss-normalize-charset: 5.1.0_postcss@8.4.12 + postcss-normalize-display-values: 5.1.0_postcss@8.4.12 + postcss-normalize-positions: 5.1.0_postcss@8.4.12 + postcss-normalize-repeat-style: 5.1.0_postcss@8.4.12 + postcss-normalize-string: 5.1.0_postcss@8.4.12 + postcss-normalize-timing-functions: 5.1.0_postcss@8.4.12 + postcss-normalize-unicode: 5.1.0_postcss@8.4.12 + postcss-normalize-url: 5.1.0_postcss@8.4.12 + postcss-normalize-whitespace: 5.1.1_postcss@8.4.12 + postcss-ordered-values: 5.1.0_postcss@8.4.12 + postcss-reduce-initial: 5.1.0_postcss@8.4.12 + postcss-reduce-transforms: 5.1.0_postcss@8.4.12 + postcss-svgo: 5.1.0_postcss@8.4.12 + postcss-unique-selectors: 5.1.1_postcss@8.4.12 + dev: true + + /cssnano-utils/3.1.0_postcss@8.4.12: + resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.12 + dev: true + + /cssnano/5.1.4_postcss@8.4.12: + resolution: {integrity: sha512-hbfhVZreEPyzl+NbvRsjNo54JOX80b+j6nqG2biLVLaZHJEiqGyMh4xDGHtwhUKd5p59mj2GlDqlUBwJUuIu5A==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + cssnano-preset-default: 5.2.4_postcss@8.4.12 + lilconfig: 2.0.4 + postcss: 8.4.12 + yaml: 1.10.2 + dev: true + + /csso/4.2.0: + resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} + engines: {node: '>=8.0.0'} + dependencies: + css-tree: 1.1.3 + dev: true + + /detect-libc/1.0.3: + resolution: {integrity: sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=} + engines: {node: '>=0.10'} + hasBin: true + dev: true + + /dom-serializer/1.3.2: + resolution: {integrity: sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==} + dependencies: + domelementtype: 2.2.0 + domhandler: 4.3.0 + entities: 2.2.0 + dev: true + + /domelementtype/2.2.0: + resolution: {integrity: sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==} + dev: true + + /domhandler/4.3.0: + resolution: {integrity: sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.2.0 + dev: true + + /domutils/2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + dependencies: + dom-serializer: 1.3.2 + domelementtype: 2.2.0 + domhandler: 4.3.0 + dev: true + + /dotenv-expand/5.1.0: + resolution: {integrity: sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==} + dev: true + + /dotenv/7.0.0: + resolution: {integrity: sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g==} + engines: {node: '>=6'} + dev: true + + /electron-to-chromium/1.4.86: + resolution: {integrity: sha512-EVTZ+igi8x63pK4bPuA95PXIs2b2Cowi3WQwI9f9qManLiZJOD1Lash1J3W4TvvcUCcIR4o/rgi9o8UicXSO+w==} + dev: true + + /entities/2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + dev: true + + /entities/3.0.1: + resolution: {integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==} + engines: {node: '>=0.12'} + dev: true + + /error-ex/1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + dev: true + + /escalade/3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + dev: true + + /escape-string-regexp/1.0.5: + resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} + engines: {node: '>=0.8.0'} + dev: true + + /get-port/4.2.0: + resolution: {integrity: sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw==} + engines: {node: '>=6'} + dev: true + + /globals/13.13.0: + resolution: {integrity: sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + + /has-flag/3.0.0: + resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} + engines: {node: '>=4'} + dev: true + + /has-flag/4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true + + /htmlnano/2.0.0_svgo@2.8.0: + resolution: {integrity: sha512-thKQfhcp2xgtsWNE27A2bliEeqVL5xjAgGn0wajyttvFFsvFWWah1ntV9aEX61gz0T6MBQ5xK/1lXuEumhJTcg==} + peerDependencies: + cssnano: ^5.0.11 + postcss: ^8.3.11 + purgecss: ^4.0.3 + relateurl: ^0.2.7 + srcset: ^5.0.0 + svgo: ^2.8.0 + terser: ^5.10.0 + uncss: ^0.17.3 + peerDependenciesMeta: + cssnano: + optional: true + postcss: + optional: true + purgecss: + optional: true + relateurl: + optional: true + srcset: + optional: true + svgo: + optional: true + terser: + optional: true + uncss: + optional: true + dependencies: + cosmiconfig: 7.0.1 + posthtml: 0.16.6 + svgo: 2.8.0 + timsort: 0.3.0 + dev: true + + /htmlparser2/7.2.0: + resolution: {integrity: sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==} + dependencies: + domelementtype: 2.2.0 + domhandler: 4.3.0 + domutils: 2.8.0 + entities: 3.0.1 + dev: true + + /import-fresh/3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /incremental-dom/0.7.0: + resolution: {integrity: sha512-SBHQ6AiCmtwh7TU9hjq2CspasJe7ggGa9k+qYZft+d5Qq9v7V+07wlnRSZH5GGYjI8wn6U5p7dDua7f1bih52g==} + dev: false + + /is-arrayish/0.2.1: + resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=} + dev: true + + /is-json/2.0.1: + resolution: {integrity: sha1-a+Fm0USCihMdaGiRuYPfYsOUkf8=} + dev: true + + /js-tokens/4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: true + + /json-parse-even-better-errors/2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: true + + /json-source-map/0.6.1: + resolution: {integrity: sha512-1QoztHPsMQqhDq0hlXY5ZqcEdUzxQEIxgFkKl4WUp2pgShObl+9ovi4kRh2TfvAfxAoHOJ9vIMEqk3k4iex7tg==} + dev: true + + /json5/2.2.0: + resolution: {integrity: sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==} + engines: {node: '>=6'} + hasBin: true + dependencies: + minimist: 1.2.5 + dev: true + + /lilconfig/2.0.4: + resolution: {integrity: sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==} + engines: {node: '>=10'} + dev: true + + /lines-and-columns/1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: true + + /lmdb/2.2.5: + resolution: {integrity: sha512-yx+jtqSgp9uzp+2b3U3VTvS/g5hw4jXqvTAX+QU4Izdueq5O6MUTLwp/94R4F7SYq96zOfaGN/IUgiz6AWo+yg==} + requiresBuild: true + dependencies: + msgpackr: 1.5.5 + nan: 2.15.0 + node-gyp-build: 4.3.0 + ordered-binary: 1.2.4 + weak-lru-cache: 1.2.2 + dev: true + + /lodash.memoize/4.1.2: + resolution: {integrity: sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=} + dev: true + + /lodash.uniq/4.5.0: + resolution: {integrity: sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=} + dev: true + + /mdn-data/2.0.14: + resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} + dev: true + + /minimist/1.2.5: + resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==} + dev: true + + /msgpackr-extract/1.0.16: + resolution: {integrity: sha512-fxdRfQUxPrL/TizyfYfMn09dK58e+d65bRD/fcaVH4052vj30QOzzqxcQIS7B0NsqlypEQ/6Du3QmP2DhWFfCA==} + requiresBuild: true + dependencies: + nan: 2.15.0 + node-gyp-build: 4.3.0 + dev: true + optional: true + + /msgpackr/1.5.5: + resolution: {integrity: sha512-JG0V47xRIQ9pyUnx6Hb4+3TrQoia2nA3UIdmyTldhxaxtKFkekkKpUW/N6fwHwod9o4BGuJGtouxOk+yCP5PEA==} + optionalDependencies: + msgpackr-extract: 1.0.16 + dev: true + + /nan/2.15.0: + resolution: {integrity: sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==} + dev: true + + /nanoid/3.3.1: + resolution: {integrity: sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + /node-addon-api/3.2.1: + resolution: {integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==} + dev: true + + /node-gyp-build/4.3.0: + resolution: {integrity: sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==} + hasBin: true + dev: true + + /node-releases/2.0.2: + resolution: {integrity: sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==} + dev: true + + /normalize-url/6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} + dev: true + + /nth-check/2.0.1: + resolution: {integrity: sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==} + dependencies: + boolbase: 1.0.0 + dev: true + + /nullthrows/1.1.1: + resolution: {integrity: sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==} + dev: true + + /ordered-binary/1.2.4: + resolution: {integrity: sha512-A/csN0d3n+igxBPfUrjbV5GC69LWj2pjZzAAeeHXLukQ4+fytfP4T1Lg0ju7MSPSwq7KtHkGaiwO8URZN5IpLg==} + dev: true + + /parcel/2.3.2: + resolution: {integrity: sha512-4jhgoBcQaiGKmnmBvNyKyOvZrxCgzgUzdEoVup/fRCOP99hNmvYIN5IErIIJxsU9ObcG/RGCFF8wa4kVRsWfIg==} + engines: {node: '>= 12.0.0'} + hasBin: true + dependencies: + '@parcel/config-default': 2.3.2_@parcel+core@2.3.2 + '@parcel/core': 2.3.2 + '@parcel/diagnostic': 2.3.2 + '@parcel/events': 2.3.2 + '@parcel/fs': 2.3.2_@parcel+core@2.3.2 + '@parcel/logger': 2.3.2 + '@parcel/package-manager': 2.3.2_@parcel+core@2.3.2 + '@parcel/reporter-cli': 2.3.2_@parcel+core@2.3.2 + '@parcel/reporter-dev-server': 2.3.2_@parcel+core@2.3.2 + '@parcel/utils': 2.3.2 + chalk: 4.1.2 + commander: 7.2.0 + get-port: 4.2.0 + v8-compile-cache: 2.3.0 + transitivePeerDependencies: + - cssnano + - postcss + - purgecss + - relateurl + - srcset + - terser + - uncss + dev: true + + /parent-module/1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: true + + /parse-json/5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.16.7 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + dev: true + + /path-type/4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true + + /picocolors/1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: true + + /postcss-calc/8.2.4_postcss@8.4.12: + resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} + peerDependencies: + postcss: ^8.2.2 + dependencies: + postcss: 8.4.12 + postcss-selector-parser: 6.0.9 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-colormin/5.3.0_postcss@8.4.12: + resolution: {integrity: sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.20.2 + caniuse-api: 3.0.0 + colord: 2.9.2 + postcss: 8.4.12 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-convert-values/5.1.0_postcss@8.4.12: + resolution: {integrity: sha512-GkyPbZEYJiWtQB0KZ0X6qusqFHUepguBCNFi9t5JJc7I2OTXG7C0twbTLvCfaKOLl3rSXmpAwV7W5txd91V84g==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.12 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-discard-comments/5.1.1_postcss@8.4.12: + resolution: {integrity: sha512-5JscyFmvkUxz/5/+TB3QTTT9Gi9jHkcn8dcmmuN68JQcv3aQg4y88yEHHhwFB52l/NkaJ43O0dbksGMAo49nfQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.12 + dev: true + + /postcss-discard-duplicates/5.1.0_postcss@8.4.12: + resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.12 + dev: true + + /postcss-discard-empty/5.1.1_postcss@8.4.12: + resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.12 + dev: true + + /postcss-discard-overridden/5.1.0_postcss@8.4.12: + resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.12 + dev: true + + /postcss-merge-longhand/5.1.2_postcss@8.4.12: + resolution: {integrity: sha512-18/bp9DZnY1ai9RlahOfLBbmIUKfKFPASxRCiZ1vlpZqWPCn8qWPFlEozqmWL+kBtcEQmG8W9YqGCstDImvp/Q==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.12 + postcss-value-parser: 4.2.0 + stylehacks: 5.1.0_postcss@8.4.12 + dev: true + + /postcss-merge-rules/5.1.0_postcss@8.4.12: + resolution: {integrity: sha512-NecukEJovQ0mG7h7xV8wbYAkXGTO3MPKnXvuiXzOKcxoOodfTTKYjeo8TMhAswlSkjcPIBlnKbSFcTuVSDaPyQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.20.2 + caniuse-api: 3.0.0 + cssnano-utils: 3.1.0_postcss@8.4.12 + postcss: 8.4.12 + postcss-selector-parser: 6.0.9 + dev: true + + /postcss-minify-font-values/5.1.0_postcss@8.4.12: + resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.12 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-minify-gradients/5.1.0_postcss@8.4.12: + resolution: {integrity: sha512-J/TMLklkONn3LuL8wCwfwU8zKC1hpS6VcxFkNUNjmVt53uKqrrykR3ov11mdUYyqVMEx67slMce0tE14cE4DTg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + colord: 2.9.2 + cssnano-utils: 3.1.0_postcss@8.4.12 + postcss: 8.4.12 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-minify-params/5.1.1_postcss@8.4.12: + resolution: {integrity: sha512-WCpr+J9Uz8XzMpAfg3UL8z5rde6MifBbh5L8bn8S2F5hq/YDJJzASYCnCHvAB4Fqb94ys8v95ULQkW2EhCFvNg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.20.2 + cssnano-utils: 3.1.0_postcss@8.4.12 + postcss: 8.4.12 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-minify-selectors/5.2.0_postcss@8.4.12: + resolution: {integrity: sha512-vYxvHkW+iULstA+ctVNx0VoRAR4THQQRkG77o0oa4/mBS0OzGvvzLIvHDv/nNEM0crzN2WIyFU5X7wZhaUK3RA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.12 + postcss-selector-parser: 6.0.9 + dev: true + + /postcss-normalize-charset/5.1.0_postcss@8.4.12: + resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.12 + dev: true + + /postcss-normalize-display-values/5.1.0_postcss@8.4.12: + resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.12 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-positions/5.1.0_postcss@8.4.12: + resolution: {integrity: sha512-8gmItgA4H5xiUxgN/3TVvXRoJxkAWLW6f/KKhdsH03atg0cB8ilXnrB5PpSshwVu/dD2ZsRFQcR1OEmSBDAgcQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.12 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-repeat-style/5.1.0_postcss@8.4.12: + resolution: {integrity: sha512-IR3uBjc+7mcWGL6CtniKNQ4Rr5fTxwkaDHwMBDGGs1x9IVRkYIT/M4NelZWkAOBdV6v3Z9S46zqaKGlyzHSchw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.12 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-string/5.1.0_postcss@8.4.12: + resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.12 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-timing-functions/5.1.0_postcss@8.4.12: + resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.12 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-unicode/5.1.0_postcss@8.4.12: + resolution: {integrity: sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.20.2 + postcss: 8.4.12 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-url/5.1.0_postcss@8.4.12: + resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + normalize-url: 6.1.0 + postcss: 8.4.12 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-whitespace/5.1.1_postcss@8.4.12: + resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.12 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-ordered-values/5.1.0_postcss@8.4.12: + resolution: {integrity: sha512-wU4Z4D4uOIH+BUKkYid36gGDJNQtkVJT7Twv8qH6UyfttbbJWyw4/xIPuVEkkCtQLAJ0EdsNSh8dlvqkXb49TA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + cssnano-utils: 3.1.0_postcss@8.4.12 + postcss: 8.4.12 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-reduce-initial/5.1.0_postcss@8.4.12: + resolution: {integrity: sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.20.2 + caniuse-api: 3.0.0 + postcss: 8.4.12 + dev: true + + /postcss-reduce-transforms/5.1.0_postcss@8.4.12: + resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.12 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-selector-parser/6.0.9: + resolution: {integrity: sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: true + + /postcss-svgo/5.1.0_postcss@8.4.12: + resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.12 + postcss-value-parser: 4.2.0 + svgo: 2.8.0 + dev: true + + /postcss-unique-selectors/5.1.1_postcss@8.4.12: + resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.12 + postcss-selector-parser: 6.0.9 + dev: true + + /postcss-value-parser/4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + dev: true + + /postcss/8.4.12: + resolution: {integrity: sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.1 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + + /posthtml-parser/0.10.2: + resolution: {integrity: sha512-PId6zZ/2lyJi9LiKfe+i2xv57oEjJgWbsHGGANwos5AvdQp98i6AtamAl8gzSVFGfQ43Glb5D614cvZf012VKg==} + engines: {node: '>=12'} + dependencies: + htmlparser2: 7.2.0 + dev: true + + /posthtml-parser/0.11.0: + resolution: {integrity: sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==} + engines: {node: '>=12'} + dependencies: + htmlparser2: 7.2.0 + dev: true + + /posthtml-render/3.0.0: + resolution: {integrity: sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==} + engines: {node: '>=12'} + dependencies: + is-json: 2.0.1 + dev: true + + /posthtml/0.16.6: + resolution: {integrity: sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==} + engines: {node: '>=12.0.0'} + dependencies: + posthtml-parser: 0.11.0 + posthtml-render: 3.0.0 + dev: true + + /react-refresh/0.9.0: + resolution: {integrity: sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ==} + engines: {node: '>=0.10.0'} + dev: true + + /regenerator-runtime/0.13.9: + resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==} + dev: true + + /resolve-from/4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: true + + /safe-buffer/5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + dev: true + + /semver/5.7.1: + resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} + hasBin: true + dev: true + + /source-map-js/1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map-support/0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: true + + /source-map/0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map/0.7.3: + resolution: {integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==} + engines: {node: '>= 8'} + dev: true + + /stable/0.1.8: + resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} + dev: true + + /stylehacks/5.1.0_postcss@8.4.12: + resolution: {integrity: sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.20.2 + postcss: 8.4.12 + postcss-selector-parser: 6.0.9 + dev: true + + /supports-color/5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + dev: true + + /supports-color/7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: true + + /svgo/2.8.0: + resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} + engines: {node: '>=10.13.0'} + hasBin: true + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 4.2.1 + css-tree: 1.1.3 + csso: 4.2.0 + picocolors: 1.0.0 + stable: 0.1.8 + dev: true + + /terser/5.12.1: + resolution: {integrity: sha512-NXbs+7nisos5E+yXwAD+y7zrcTkMqb0dEJxIGtSKPdCBzopf7ni4odPul2aechpV7EXNvOudYOX2bb5tln1jbQ==} + engines: {node: '>=10'} + hasBin: true + dependencies: + acorn: 8.7.0 + commander: 2.20.3 + source-map: 0.7.3 + source-map-support: 0.5.21 + dev: true + + /timsort/0.3.0: + resolution: {integrity: sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=} + dev: true + + /type-fest/0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: true + + /util-deprecate/1.0.2: + resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=} + dev: true + + /utility-types/3.10.0: + resolution: {integrity: sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==} + engines: {node: '>= 4'} + dev: true + + /v8-compile-cache/2.3.0: + resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} + dev: true + + /weak-lru-cache/1.2.2: + resolution: {integrity: sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==} + dev: true + + /xxhash-wasm/0.4.2: + resolution: {integrity: sha512-/eyHVRJQCirEkSZ1agRSCwriMhwlyUcFkXD5TPVSLP+IPzjsqMVzZwdoczLp1SoQU0R3dxz1RpIK+4YNQbCVOA==} + dev: true + + /yaml/1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + dev: true diff --git a/behaviors.js b/src/behaviors.js similarity index 100% rename from behaviors.js rename to src/behaviors.js diff --git a/components/App.js b/src/components/App.js similarity index 66% rename from components/App.js rename to src/components/App.js index f7456ef..92de50f 100644 --- a/components/App.js +++ b/src/components/App.js @@ -1,4 +1,4 @@ -import {elementOpen as o, elementClose as c, text as t} from '../vendor/incremental-dom.js'; +import {elementOpen as o, elementClose as c, text as t} from 'incremental-dom'; import state from '../state.js'; import {pub} from '../pubsub.js'; diff --git a/favicon.ico b/src/favicon.ico similarity index 100% rename from favicon.ico rename to src/favicon.ico diff --git a/index.css b/src/index.css similarity index 100% rename from index.css rename to src/index.css diff --git a/index.html b/src/index.html similarity index 100% rename from index.html rename to src/index.html diff --git a/index.js b/src/index.js similarity index 100% rename from index.js rename to src/index.js diff --git a/src/procedures.js b/src/procedures.js new file mode 100644 index 0000000..c22b57b --- /dev/null +++ b/src/procedures.js @@ -0,0 +1,3 @@ +export const calculateBestCombinationOfCalendars(){ + + } \ No newline at end of file diff --git a/pubsub.js b/src/pubsub.js similarity index 62% rename from pubsub.js rename to src/pubsub.js index ba4c9d4..cec26b6 100644 --- a/pubsub.js +++ b/src/pubsub.js @@ -1,5 +1,5 @@ // global PubSub instance: -import PubSub from './PubSub.js'; +import PubSub from 'PubSubJS'; const pubsub = PubSub(); export const {pub, sub, unsub} = pubsub; diff --git a/redraw.js b/src/redraw.js similarity index 66% rename from redraw.js rename to src/redraw.js index b75ccfa..f123806 100644 --- a/redraw.js +++ b/src/redraw.js @@ -1,4 +1,4 @@ -import {patch} from './vendor/incremental-dom.js'; +import {patch} from 'incremental-dom'; import App from './components/App.js'; export const redraw = ()=>{ diff --git a/procedures.js b/src/state.js similarity index 92% rename from procedures.js rename to src/state.js index 1021bed..991f6c8 100644 --- a/procedures.js +++ b/src/state.js @@ -1,4 +1,3 @@ -// EXAMPLE STATE: const state = { front_months: { // front months, i.e. calendar expiry, at which the user has an opinion on where the underlying price may be "2022-03-11": { @@ -19,6 +18,4 @@ const state = { -export const calculateBestCombinationOfCalendars(){ - - } \ No newline at end of file +export default state; \ No newline at end of file diff --git a/state.js b/state.js deleted file mode 100644 index 6fb71e1..0000000 --- a/state.js +++ /dev/null @@ -1,8 +0,0 @@ - -let state = { - - }; - - - -export default state; \ No newline at end of file diff --git a/vendor/incremental-dom.js b/vendor/incremental-dom.js deleted file mode 100644 index 971cfd3..0000000 --- a/vendor/incremental-dom.js +++ /dev/null @@ -1,7 +0,0 @@ -/** - * Bundled by jsDelivr using Rollup v2.60.2 and Terser v5.10.0. - * Original file: /npm/incremental-dom@0.7.0/dist/incremental-dom-cjs.js - * - * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files - */ -var t={};Object.defineProperty(t,"__esModule",{value:!0});let e="key";let n=!1,r=!1,o=!1;function l(t){if(!t)throw new Error("Expected value to be defined");return t}function i(t){if(!o)throw new Error("Cannot call "+t+"() unless in patch.")}function c(t){if(n)throw new Error(t+"() can not be called between elementOpenStart() and elementOpenEnd().")}function s(t){if(r)throw new Error(t+"() may not be called inside an element that has called skip().")}function u(t){if(!n)throw new Error(t+"() can only be called after calling elementOpenStart().")}function a(t){o=null!=t}function f(t){const e=n;return n=t,e}function p(t){const e=r;return r=t,e}const d=Object.prototype.hasOwnProperty;function h(){}function m(){return new h}function g(t,e){for(;t.length>e;)t.pop()}h.prototype=Object.create(null);const y={default:"__default"};function w(t,e,n){if(null==n)t.removeAttribute(e);else{const r=function(t){return 0===t.lastIndexOf("xml:",0)?"http://www.w3.org/XML/1998/namespace":0===t.lastIndexOf("xlink:",0)?"http://www.w3.org/1999/xlink":null}(e);r?t.setAttributeNS(r,e,String(n)):t.setAttribute(e,String(n))}}function b(t,e,n){t[e]=n}function O(t,e,n){e.indexOf("-")>=0?t.setProperty(e,n):t[e]=n}const x=m();function A(t,e,n){(x[e]||x[y.default])(t,e,n)}x[y.default]=function(t,e,n){const r=typeof n;"object"===r||"function"===r?b(t,e,n):w(t,e,n)},x.style=function(t,e,n){l("style"in t);const r=t.style;if("string"==typeof n)r.cssText=n;else{r.cssText="";for(const t in n)o=n,i=t,d.call(o,i)&&O(r,t,n[t])}var o,i};const S={nodesCreated:null,nodesDeleted:null};class E{constructor(){this.created=[],this.deleted=[]}markCreated(t){this.created.push(t)}markDeleted(t){this.deleted.push(t)}notifyChanges(){S.nodesCreated&&this.created.length>0&&S.nodesCreated(this.created),S.nodesDeleted&&this.deleted.length>0&&S.nodesDeleted(this.deleted)}}function C(t){return 1===t.nodeType}const D="undefined"!=typeof Node&&Node.prototype.getRootNode||function(){let t=this,e=t;for(;t;)e=t,t=t.parentNode;return e};function _(t,e){const n=function(t){const e=D.call(t);return function(t){return 11===t.nodeType||9===t.nodeType}(e)?e.activeElement:null}(t);return n&&t.contains(n)?function(t,e){const n=[];let r=t;for(;r!==e;){const t=l(r);n.push(t),r=t.parentNode}return n}(n,e):[]}class k{constructor(t,e,n){this._attrsArr=null,this.staticsApplied=!1,this.nameOrCtor=t,this.key=e,this.text=n}hasEmptyAttrsArr(){const t=this._attrsArr;return!t||!t.length}getAttrsArr(t){return this._attrsArr||(this._attrsArr=function(t){const e=new Array(t);return g(e,0),e}(t))}}function N(t,e,n,r){const o=new k(e,n,r);return t.__incrementalDOMData=o,o}function v(t,n){if(t.__incrementalDOMData)return t.__incrementalDOMData;const r=C(t)?t.localName:t.nodeName,o=e,l=C(t)&&null!=o?t.getAttribute(o):null,i=N(t,r,C(t)?l||n:null);return C(t)&&function(t,e){const n=t.attributes,r=n.length;if(!r)return;const o=e.getAttrsArr(r);for(let t=0,e=0;t=0?function(t,e,n){const r=e.nextSibling;let o=n;for(;null!==o&&o!==e;){const e=o.nextSibling;t.insertBefore(o,r),o=e}}(K,r,j):K.insertBefore(r,j),j=r)}function Z(t,e){return Y(t,e),G(),K}function $(){return p(!1),H(),j}function tt(){return Y("#text",null),j}function et(){return i("currentElement"),c("currentElement"),K}function nt(t,e={}){const{matches:r=I}=e;return(e,o,l)=>{const i=T,c=B,s=L,u=z,d=V,h=j,m=K,g=R;let y=!1,w=!1;B=e.ownerDocument,T=new E,R=r,z=[],V=[],j=null,K=e.parentNode,L=_(e,K),y=f(!1),w=p(!1),a(T);try{const r=t(e,o,l);return function(){if(n)throw new Error("elementOpenEnd() must be called after calling elementOpenStart().")}(),r}finally{T.notifyChanges(),B=c,T=i,R=g,z=u,V=d,j=h,K=m,L=s,f(y),p(w),a(T)}}}function rt(t){return nt(((t,e,n)=>(j=t,G(),e(n),H(),function(t,e){if(t===e)return;let n=t;const r=[];for(;n&&n!==e;)r.push(n.nodeName.toLowerCase()),n=n.parentNode;throw new Error("One or more tags were not closed:\n"+r.join("\n"))}(j,t),t)),t)}function ot(t){return nt(((t,e,n)=>{const r={nextSibling:t};let o=null,i=null;return o=t.nextSibling,i=t.previousSibling,j=r,e(n),K||console.warn("patchOuter requires the node have a parent if there is a key."),function(t,e,n,r){const o=l(t),i=l(e),c=i.nextSibling===n&&i.previousSibling===r,s=i.nextSibling===o.nextSibling&&i.previousSibling===r;if(!c&&!s&&i!==o)throw new Error("There must be exactly one top level call corresponding to the patched element.")}(r,j,o,i),K&&X(K,F(),t.nextSibling),r===j?null:j}),t)}const lt=rt(),it=ot(),ct=[];let st=0;function ut(t,e,n,r){ct.push(t),ct.push(e),ct.push(n),ct.push(r)}const at=m();function ft(t,e,n,r){const o=!t.length;let l=0;for(;lcrypto.getRandomValues(new Uint8Array(t)),r=(t,e,r)=>{let l=(2<{let a="";for(;;){let e=r(n),g=n;for(;g--;)if(a+=t[e[g]&l]||"",a.length===o)return a}}},l=(t,l=21)=>r(t,l,e),n=(t=21)=>{let e="",r=crypto.getRandomValues(new Uint8Array(t));for(;t--;){let l=63&r[t];e+=l<36?l.toString(36):l<62?(l-26).toString(36).toUpperCase():l<63?"_":"-"}return e};export{l as customAlphabet,r as customRandom,n as nanoid,e as random,t as urlAlphabet};export default null;