From d86c6de6034936b140d774b8116dbee3fc414288 Mon Sep 17 00:00:00 2001 From: Johnny Domino Date: Fri, 3 Mar 2023 13:02:15 -0500 Subject: [PATCH 01/10] wip: add react-ezql to monorepo --- src/react-ezql/README.md | 0 src/react-ezql/index.html | 0 src/react-ezql/package-lock.json | 4308 +++++++++++++++++ src/react-ezql/package.json | 69 + src/react-ezql/src/App.css | 0 src/react-ezql/src/App.tsx | 8 + .../src/__snapshots__/index.test.tsx.snap | 7 + src/react-ezql/src/index.css | 0 src/react-ezql/src/index.test.tsx | 13 + src/react-ezql/src/index.tsx | 3 + src/react-ezql/src/integration.test.tsx | 12 + src/react-ezql/src/main.tsx | 10 + src/react-ezql/src/vite-env.d.ts | 1 + src/react-ezql/tsconfig.json | 21 + src/react-ezql/tsconfig.node.json | 9 + src/react-ezql/vite.config.ts | 23 + src/react-ezql/vitest.config.js | 8 + 17 files changed, 4492 insertions(+) create mode 100644 src/react-ezql/README.md create mode 100644 src/react-ezql/index.html create mode 100644 src/react-ezql/package-lock.json create mode 100644 src/react-ezql/package.json create mode 100644 src/react-ezql/src/App.css create mode 100644 src/react-ezql/src/App.tsx create mode 100644 src/react-ezql/src/__snapshots__/index.test.tsx.snap create mode 100644 src/react-ezql/src/index.css create mode 100644 src/react-ezql/src/index.test.tsx create mode 100644 src/react-ezql/src/index.tsx create mode 100644 src/react-ezql/src/integration.test.tsx create mode 100644 src/react-ezql/src/main.tsx create mode 100644 src/react-ezql/src/vite-env.d.ts create mode 100644 src/react-ezql/tsconfig.json create mode 100644 src/react-ezql/tsconfig.node.json create mode 100644 src/react-ezql/vite.config.ts create mode 100644 src/react-ezql/vitest.config.js diff --git a/src/react-ezql/README.md b/src/react-ezql/README.md new file mode 100644 index 0000000..e69de29 diff --git a/src/react-ezql/index.html b/src/react-ezql/index.html new file mode 100644 index 0000000..e69de29 diff --git a/src/react-ezql/package-lock.json b/src/react-ezql/package-lock.json new file mode 100644 index 0000000..2cc66ac --- /dev/null +++ b/src/react-ezql/package-lock.json @@ -0,0 +1,4308 @@ +{ + "name": "react-ezql", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "react-ezql", + "version": "0.0.0", + "devDependencies": { + "@testing-library/dom": "^9.0.0", + "@testing-library/react": "^14.0.0", + "@types/react": "^18.0.27", + "@types/react-dom": "^18.0.10", + "@types/react-test-renderer": "^18.0.0", + "@vitejs/plugin-react-swc": "^3.0.0", + "c8": "^7.13.0", + "eslint": "^8.35.0", + "eslint-plugin-react": "^7.32.2", + "jsdom": "^21.1.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-test-renderer": "^18.2.0", + "typescript": "^4.9.3", + "vite": "^4.1.0", + "vitest": "^0.29.2" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/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, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/runtime": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", + "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz", + "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.0.tgz", + "integrity": "sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.35.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.35.0.tgz", + "integrity": "sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@swc/core": { + "version": "1.3.37", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.37.tgz", + "integrity": "sha512-VOFlEQ1pReOM73N9A7R8rt561GU8Rxsq833jiimWDUB2sXEN3V6n6wFTgYmZuMz2T4/R0cQA1nV48KkaT4gkFw==", + "dev": true, + "hasInstallScript": true, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.3.37", + "@swc/core-darwin-x64": "1.3.37", + "@swc/core-linux-arm-gnueabihf": "1.3.37", + "@swc/core-linux-arm64-gnu": "1.3.37", + "@swc/core-linux-arm64-musl": "1.3.37", + "@swc/core-linux-x64-gnu": "1.3.37", + "@swc/core-linux-x64-musl": "1.3.37", + "@swc/core-win32-arm64-msvc": "1.3.37", + "@swc/core-win32-ia32-msvc": "1.3.37", + "@swc/core-win32-x64-msvc": "1.3.37" + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.3.37", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.37.tgz", + "integrity": "sha512-iIyVqqioUpVeT/hbBVfkrsjfCyL4idNH+LVKGmoTAWaTTSB0+UNhNuA7Wh2CqIHWh1Mv7IlumitWPcqsVDdoEw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@testing-library/dom": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.0.0.tgz", + "integrity": "sha512-+/TLgKNFsYUshOY/zXsQOk+PlFQK+eyJ9T13IDVNJEi+M+Un7xlJK+FZKkbGSnf0+7E1G6PlDhkSYQ/GFiruBQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "^5.0.0", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.4.4", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@testing-library/react": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-14.0.0.tgz", + "integrity": "sha512-S04gSNJbYE30TlIMLTzv6QCTzt9AqIF5y6s6SzVFILNcNvbV/jU96GeiTPillGQo+Ny64M/5PV7klNYYgv5Dfg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.12.5", + "@testing-library/dom": "^9.0.0", + "@types/react-dom": "^18.0.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@types/aria-query": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.1.tgz", + "integrity": "sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q==", + "dev": true + }, + "node_modules/@types/chai": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz", + "integrity": "sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==", + "dev": true + }, + "node_modules/@types/chai-subset": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.3.tgz", + "integrity": "sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==", + "dev": true, + "dependencies": { + "@types/chai": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.14.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.14.4.tgz", + "integrity": "sha512-VhCw7I7qO2X49+jaKcAUwi3rR+hbxT5VcYF493+Z5kMLI0DL568b7JI4IDJaxWFH0D/xwmGJNoXisyX+w7GH/g==", + "dev": true + }, + "node_modules/@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", + "dev": true + }, + "node_modules/@types/react": { + "version": "18.0.28", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.28.tgz", + "integrity": "sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==", + "dev": true, + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.0.11", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.11.tgz", + "integrity": "sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-test-renderer": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-18.0.0.tgz", + "integrity": "sha512-C7/5FBJ3g3sqUahguGi03O79b8afNeSD6T8/GU50oQrJCU0bVCCGQHaGKUbg2Ce8VQEEqTw8/HiS6lXHHdgkdQ==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", + "dev": true + }, + "node_modules/@vitejs/plugin-react-swc": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.2.0.tgz", + "integrity": "sha512-IcBoXL/mcH7JdQr/nfDlDwTdIaH8Rg7LpfQDF4nAht+juHWIuv6WhpKPCSfY4+zztAaB07qdBoFz1XCZsgo3pQ==", + "dev": true, + "dependencies": { + "@swc/core": "^1.3.35" + }, + "peerDependencies": { + "vite": "^4" + } + }, + "node_modules/@vitest/expect": { + "version": "0.29.2", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-0.29.2.tgz", + "integrity": "sha512-wjrdHB2ANTch3XKRhjWZN0UueFocH0cQbi2tR5Jtq60Nb3YOSmakjdAvUa2JFBu/o8Vjhj5cYbcMXkZxn1NzmA==", + "dev": true, + "dependencies": { + "@vitest/spy": "0.29.2", + "@vitest/utils": "0.29.2", + "chai": "^4.3.7" + } + }, + "node_modules/@vitest/runner": { + "version": "0.29.2", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-0.29.2.tgz", + "integrity": "sha512-A1P65f5+6ru36AyHWORhuQBJrOOcmDuhzl5RsaMNFe2jEkoj0faEszQS4CtPU/LxUYVIazlUtZTY0OEZmyZBnA==", + "dev": true, + "dependencies": { + "@vitest/utils": "0.29.2", + "p-limit": "^4.0.0", + "pathe": "^1.1.0" + } + }, + "node_modules/@vitest/runner/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vitest/runner/node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vitest/spy": { + "version": "0.29.2", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-0.29.2.tgz", + "integrity": "sha512-Hc44ft5kaAytlGL2PyFwdAsufjbdOvHklwjNy/gy/saRbg9Kfkxfh+PklLm1H2Ib/p586RkQeNFKYuJInUssyw==", + "dev": true, + "dependencies": { + "tinyspy": "^1.0.2" + } + }, + "node_modules/@vitest/utils": { + "version": "0.29.2", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.29.2.tgz", + "integrity": "sha512-F14/Uc+vCdclStS2KEoXJlOLAEyqRhnw0gM27iXw9bMTcyKRPJrQ+rlC6XZ125GIPvvKYMPpVxNhiou6PsEeYQ==", + "dev": true, + "dependencies": { + "cli-truncate": "^3.1.0", + "diff": "^5.1.0", + "loupe": "^2.3.6", + "picocolors": "^1.0.0", + "pretty-format": "^27.5.1" + } + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", + "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", + "dev": true, + "dependencies": { + "acorn": "^8.1.0", + "acorn-walk": "^8.0.2" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "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 + }, + "node_modules/aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "dev": true, + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/array-includes": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz", + "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.1.3" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/c8": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/c8/-/c8-7.13.0.tgz", + "integrity": "sha512-/NL4hQTv1gBL6J6ei80zu3IiTrmePDKXKXOTLpHvcIWZTVYQlDhVWjjWvkhICylE8EwwnMVzDZugCvdx0/DIIA==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.1.4", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9" + }, + "bin": { + "c8": "bin/c8.js" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chai": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", + "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^4.1.2", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/cli-truncate": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", + "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", + "dev": true, + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssom": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", + "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", + "dev": true + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "node_modules/csstype": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", + "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==", + "dev": true + }, + "node_modules/data-urls": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", + "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.6", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "dev": true + }, + "node_modules/deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-equal": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.0.tgz", + "integrity": "sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-get-iterator": "^1.1.2", + "get-intrinsic": "^1.1.3", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.1", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/diff": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "dev": true + }, + "node_modules/domexception": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", + "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", + "dev": true, + "dependencies": { + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/entities": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/es-abstract": { + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz", + "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.4", + "is-array-buffer": "^3.0.1", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz", + "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.16.17", + "@esbuild/android-arm64": "0.16.17", + "@esbuild/android-x64": "0.16.17", + "@esbuild/darwin-arm64": "0.16.17", + "@esbuild/darwin-x64": "0.16.17", + "@esbuild/freebsd-arm64": "0.16.17", + "@esbuild/freebsd-x64": "0.16.17", + "@esbuild/linux-arm": "0.16.17", + "@esbuild/linux-arm64": "0.16.17", + "@esbuild/linux-ia32": "0.16.17", + "@esbuild/linux-loong64": "0.16.17", + "@esbuild/linux-mips64el": "0.16.17", + "@esbuild/linux-ppc64": "0.16.17", + "@esbuild/linux-riscv64": "0.16.17", + "@esbuild/linux-s390x": "0.16.17", + "@esbuild/linux-x64": "0.16.17", + "@esbuild/netbsd-x64": "0.16.17", + "@esbuild/openbsd-x64": "0.16.17", + "@esbuild/sunos-x64": "0.16.17", + "@esbuild/win32-arm64": "0.16.17", + "@esbuild/win32-ia32": "0.16.17", + "@esbuild/win32-x64": "0.16.17" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.35.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.35.0.tgz", + "integrity": "sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^2.0.0", + "@eslint/js": "8.35.0", + "@humanwhocodes/config-array": "^0.11.8", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.32.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz", + "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "array.prototype.tosorted": "^1.1.1", + "doctrine": "^2.1.0", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "object.hasown": "^1.1.2", + "object.values": "^1.1.6", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.4", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.8" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", + "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/espree": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "dev": true, + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "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", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/js-sdsl": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", + "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "21.1.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-21.1.0.tgz", + "integrity": "sha512-m0lzlP7qOtthD918nenK3hdItSd2I+V3W9IrBcB36sqDwG+KnUs66IF5GY7laGWUnlM9vTsD0W1QwSEBYWWcJg==", + "dev": true, + "dependencies": { + "abab": "^2.0.6", + "acorn": "^8.8.1", + "acorn-globals": "^7.0.0", + "cssom": "^0.5.0", + "cssstyle": "^2.3.0", + "data-urls": "^3.0.2", + "decimal.js": "^10.4.2", + "domexception": "^4.0.0", + "escodegen": "^2.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.2", + "parse5": "^7.1.1", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.2", + "w3c-xmlserializer": "^4.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0", + "ws": "^8.11.0", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "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/jsx-ast-utils": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", + "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.5", + "object.assign": "^4.1.3" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/local-pkg": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz", + "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/loupe": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", + "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.0" + } + }, + "node_modules/lz-string": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", + "integrity": "sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==", + "dev": true, + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mlly": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.1.1.tgz", + "integrity": "sha512-Jnlh4W/aI4GySPo6+DyTN17Q75KKbLTyFK8BrGhjNP4rxuUjbRWhE6gHg3bs33URWAF44FRm7gdQA348i3XxRw==", + "dev": true, + "dependencies": { + "acorn": "^8.8.2", + "pathe": "^1.1.0", + "pkg-types": "^1.0.1", + "ufo": "^1.1.0" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/nwsapi": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", + "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==", + "dev": true + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", + "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", + "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.hasown": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", + "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dev": true, + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/pathe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.0.tgz", + "integrity": "sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==", + "dev": true + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/pkg-types": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.2.tgz", + "integrity": "sha512-hM58GKXOcj8WTqUXnsQyJYXdeAPbythQgEF3nTcEo+nkD49chjQ9IKm/QJy9xf6JakXptz86h7ecP2024rrLaQ==", + "dev": true, + "dependencies": { + "jsonc-parser": "^3.2.0", + "mlly": "^1.1.1", + "pathe": "^1.1.0" + } + }, + "node_modules/postcss": { + "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dev": true, + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dev": true, + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "node_modules/react-shallow-renderer": { + "version": "16.15.0", + "resolved": "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz", + "integrity": "sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==", + "dev": true, + "dependencies": { + "object-assign": "^4.1.1", + "react-is": "^16.12.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependencies": { + "react": "^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-test-renderer": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-18.2.0.tgz", + "integrity": "sha512-JWD+aQ0lh2gvh4NM3bBM42Kx+XybOxCpgYK7F8ugAlpaTSnWsX+39Z4XkOykGZAHrjwwTZT3x3KxswVWxHPUqA==", + "dev": true, + "dependencies": { + "react-is": "^18.2.0", + "react-shallow-renderer": "^16.15.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-test-renderer/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "dev": true + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "3.18.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.18.0.tgz", + "integrity": "sha512-J8C6VfEBjkvYPESMQYxKHxNOh4A5a3FlP+0BETGo34HEcE4eTlgCrO2+eWzlu2a/sHs2QUkZco+wscH7jhhgWg==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dev": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true + }, + "node_modules/std-env": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.3.2.tgz", + "integrity": "sha512-uUZI65yrV2Qva5gqE0+A7uVAvO40iPo6jGhs7s8keRfHCmtg+uB2X6EiLGCI9IgL1J17xGhvoOqSz79lzICPTA==", + "dev": true + }, + "node_modules/stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "dev": true, + "dependencies": { + "internal-slot": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", + "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.4.3", + "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-literal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.0.1.tgz", + "integrity": "sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==", + "dev": true, + "dependencies": { + "acorn": "^8.8.2" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/tinybench": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.3.1.tgz", + "integrity": "sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA==", + "dev": true + }, + "node_modules/tinypool": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.3.1.tgz", + "integrity": "sha512-zLA1ZXlstbU2rlpA4CIeVaqvWq41MTWqLY3FfsAXgC8+f7Pk7zroaJQxDgxn1xNudKW6Kmj4808rPFShUlIRmQ==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-1.1.1.tgz", + "integrity": "sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", + "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", + "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/ufo": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.1.1.tgz", + "integrity": "sha512-MvlCc4GHrmZdAllBc0iUDowff36Q9Ndw/UzqmEKyrfSzokTd9ZCy1i+IIk5hrYKkjoYVQyNbrw7/F8XJ2rEwTg==", + "dev": true + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/v8-to-istanbul": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", + "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/vite": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.1.4.tgz", + "integrity": "sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==", + "dev": true, + "dependencies": { + "esbuild": "^0.16.14", + "postcss": "^8.4.21", + "resolve": "^1.22.1", + "rollup": "^3.10.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "0.29.2", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.29.2.tgz", + "integrity": "sha512-5oe1z6wzI3gkvc4yOBbDBbgpiWiApvuN4P55E8OI131JGrSuo4X3SOZrNmZYo4R8Zkze/dhi572blX0zc+6SdA==", + "dev": true, + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "mlly": "^1.1.0", + "pathe": "^1.1.0", + "picocolors": "^1.0.0", + "vite": "^3.0.0 || ^4.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": ">=v14.16.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/vitest": { + "version": "0.29.2", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.29.2.tgz", + "integrity": "sha512-ydK9IGbAvoY8wkg29DQ4ivcVviCaUi3ivuPKfZEVddMTenFHUfB8EEDXQV8+RasEk1ACFLgMUqAaDuQ/Nk+mQA==", + "dev": true, + "dependencies": { + "@types/chai": "^4.3.4", + "@types/chai-subset": "^1.3.3", + "@types/node": "*", + "@vitest/expect": "0.29.2", + "@vitest/runner": "0.29.2", + "@vitest/spy": "0.29.2", + "@vitest/utils": "0.29.2", + "acorn": "^8.8.1", + "acorn-walk": "^8.2.0", + "cac": "^6.7.14", + "chai": "^4.3.7", + "debug": "^4.3.4", + "local-pkg": "^0.4.2", + "pathe": "^1.1.0", + "picocolors": "^1.0.0", + "source-map": "^0.6.1", + "std-env": "^3.3.1", + "strip-literal": "^1.0.0", + "tinybench": "^2.3.1", + "tinypool": "^0.3.1", + "tinyspy": "^1.0.2", + "vite": "^3.0.0 || ^4.0.0", + "vite-node": "0.29.2", + "why-is-node-running": "^2.2.2" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": ">=v14.16.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@vitest/browser": "*", + "@vitest/ui": "*", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/w3c-xmlserializer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", + "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", + "dev": true, + "dependencies": { + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "dev": true, + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "dev": true, + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dev": true, + "dependencies": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/why-is-node-running": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", + "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", + "dev": true, + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/ws": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.1.tgz", + "integrity": "sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/src/react-ezql/package.json b/src/react-ezql/package.json new file mode 100644 index 0000000..c9c5c96 --- /dev/null +++ b/src/react-ezql/package.json @@ -0,0 +1,69 @@ +{ + "name": "react-ezql", + "version": "0.0.0", + "type": "module", + "files": [ + "README.md", + "dist" + ], + "main": "./dist/ezql-prompt.umd.js", + "module": "./dist/ezql-prompt.es.js", + "exports": { + ".": { + "import": "./dist/ezql-prompt.es.js", + "require": "./dist/ezql-prompt.umd.js" + } + }, + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview", + "test": "vitest run", + "watch": "vitest", + "coverage": "vitest run --coverage" + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + }, + "eslintConfig": { + "env": { + "browser": true, + "node": true, + "es2020": true + }, + "extends": [ + "eslint:recommended", + "plugin:react/recommended" + ], + "parserOptions": { + "sourceType": "module" + } + }, + "devDependencies": { + "@testing-library/dom": "^9.0.0", + "@testing-library/react": "^14.0.0", + "@types/react": "^18.0.27", + "@types/react-dom": "^18.0.10", + "@types/react-test-renderer": "^18.0.0", + "@vitejs/plugin-react-swc": "^3.0.0", + "c8": "^7.13.0", + "eslint": "^8.35.0", + "eslint-plugin-react": "^7.32.2", + "jsdom": "^21.1.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-test-renderer": "^18.2.0", + "typescript": "^4.9.3", + "vite": "^4.1.0", + "vitest": "^0.29.2" + } +} diff --git a/src/react-ezql/src/App.css b/src/react-ezql/src/App.css new file mode 100644 index 0000000..e69de29 diff --git a/src/react-ezql/src/App.tsx b/src/react-ezql/src/App.tsx new file mode 100644 index 0000000..2eab128 --- /dev/null +++ b/src/react-ezql/src/App.tsx @@ -0,0 +1,8 @@ +import './App.css' +import EzqlPrompt from '.' + +function App() { + return +} + +export default App diff --git a/src/react-ezql/src/__snapshots__/index.test.tsx.snap b/src/react-ezql/src/__snapshots__/index.test.tsx.snap new file mode 100644 index 0000000..ff6b231 --- /dev/null +++ b/src/react-ezql/src/__snapshots__/index.test.tsx.snap @@ -0,0 +1,7 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`EzqlPrompt > component renders correctly 1`] = ` +
+ Coming soon. +
+`; diff --git a/src/react-ezql/src/index.css b/src/react-ezql/src/index.css new file mode 100644 index 0000000..e69de29 diff --git a/src/react-ezql/src/index.test.tsx b/src/react-ezql/src/index.test.tsx new file mode 100644 index 0000000..13122aa --- /dev/null +++ b/src/react-ezql/src/index.test.tsx @@ -0,0 +1,13 @@ +import renderer from 'react-test-renderer' +import { describe, expect, test } from 'vitest' +import EzqlPrompt from './index' + +describe('EzqlPrompt', () => { + test('component renders correctly', () => { + const component = renderer.create() + + const tree = component.toJSON() + + expect(tree).toMatchSnapshot() + }) +}) diff --git a/src/react-ezql/src/index.tsx b/src/react-ezql/src/index.tsx new file mode 100644 index 0000000..0b3eeb5 --- /dev/null +++ b/src/react-ezql/src/index.tsx @@ -0,0 +1,3 @@ +export default function EzqlPrompt() { + return
Coming soon.
+} diff --git a/src/react-ezql/src/integration.test.tsx b/src/react-ezql/src/integration.test.tsx new file mode 100644 index 0000000..38c2d62 --- /dev/null +++ b/src/react-ezql/src/integration.test.tsx @@ -0,0 +1,12 @@ +import { render, screen, cleanup } from '@testing-library/react' +import { describe, expect, test, afterEach } from 'vitest' +import EzqlPrompt from './index' + +describe('Integration test', () => { + afterEach(cleanup) + + test('Minimal render display expected text', () => { + render() + expect(screen.getByText('Coming soon.')) + }) +}) diff --git a/src/react-ezql/src/main.tsx b/src/react-ezql/src/main.tsx new file mode 100644 index 0000000..611e848 --- /dev/null +++ b/src/react-ezql/src/main.tsx @@ -0,0 +1,10 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import App from './App' +import './index.css' + +ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( + + + +) diff --git a/src/react-ezql/src/vite-env.d.ts b/src/react-ezql/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/src/react-ezql/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/src/react-ezql/tsconfig.json b/src/react-ezql/tsconfig.json new file mode 100644 index 0000000..3d0a51a --- /dev/null +++ b/src/react-ezql/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "allowJs": false, + "skipLibCheck": true, + "esModuleInterop": false, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "ESNext", + "moduleResolution": "Node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx" + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/src/react-ezql/tsconfig.node.json b/src/react-ezql/tsconfig.node.json new file mode 100644 index 0000000..9d31e2a --- /dev/null +++ b/src/react-ezql/tsconfig.node.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "composite": true, + "module": "ESNext", + "moduleResolution": "Node", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/src/react-ezql/vite.config.ts b/src/react-ezql/vite.config.ts new file mode 100644 index 0000000..7be213e --- /dev/null +++ b/src/react-ezql/vite.config.ts @@ -0,0 +1,23 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react-swc' +import path from 'path' + +// https://vitejs.dev/config/ +export default defineConfig({ + build: { + lib: { + entry: path.resolve(__dirname, 'src/index.tsx'), + name: 'EZQL Prompt', + fileName: (format) => `ezql-prompt.${format}.js`, + }, + rollupOptions: { + external: ['react', 'react-dom'], + output: { + globals: { + react: 'React', + }, + }, + }, + }, + plugins: [react()], +}) diff --git a/src/react-ezql/vitest.config.js b/src/react-ezql/vitest.config.js new file mode 100644 index 0000000..12dd088 --- /dev/null +++ b/src/react-ezql/vitest.config.js @@ -0,0 +1,8 @@ +import { defineConfig } from 'vite' + +export default defineConfig({ + test: { + globals: false, + environment: 'jsdom', + }, +}) From 16257d0f92461a06a746f1f4703430bb29cf1105 Mon Sep 17 00:00:00 2001 From: Johnny Domino Date: Fri, 3 Mar 2023 13:13:07 -0500 Subject: [PATCH 02/10] wip: build react module for public consumption --- src/react-ezql/dist/ezql-prompt.es.js | 642 +++++++++++++++++++++++++ src/react-ezql/dist/ezql-prompt.umd.js | 27 ++ src/react-ezql/package.json | 3 +- 3 files changed, 671 insertions(+), 1 deletion(-) create mode 100644 src/react-ezql/dist/ezql-prompt.es.js create mode 100644 src/react-ezql/dist/ezql-prompt.umd.js diff --git a/src/react-ezql/dist/ezql-prompt.es.js b/src/react-ezql/dist/ezql-prompt.es.js new file mode 100644 index 0000000..7a136db --- /dev/null +++ b/src/react-ezql/dist/ezql-prompt.es.js @@ -0,0 +1,642 @@ +import Oe from "react"; +var H = {}, ir = { + get exports() { + return H; + }, + set exports(h) { + H = h; + } +}, k = {}; +/** + * @license React + * react-jsx-runtime.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +var Re; +function ur() { + if (Re) + return k; + Re = 1; + var h = Oe, S = Symbol.for("react.element"), V = Symbol.for("react.fragment"), R = Object.prototype.hasOwnProperty, F = h.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, A = { key: !0, ref: !0, __self: !0, __source: !0 }; + function w(m, l, T) { + var d, g = {}, _ = null, I = null; + T !== void 0 && (_ = "" + T), l.key !== void 0 && (_ = "" + l.key), l.ref !== void 0 && (I = l.ref); + for (d in l) + R.call(l, d) && !A.hasOwnProperty(d) && (g[d] = l[d]); + if (m && m.defaultProps) + for (d in l = m.defaultProps, l) + g[d] === void 0 && (g[d] = l[d]); + return { $$typeof: S, type: m, key: _, ref: I, props: g, _owner: F.current }; + } + return k.Fragment = V, k.jsx = w, k.jsxs = w, k; +} +var D = {}; +/** + * @license React + * react-jsx-runtime.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +var Te; +function sr() { + return Te || (Te = 1, process.env.NODE_ENV !== "production" && function() { + var h = Oe, S = Symbol.for("react.element"), V = Symbol.for("react.portal"), R = Symbol.for("react.fragment"), F = Symbol.for("react.strict_mode"), A = Symbol.for("react.profiler"), w = Symbol.for("react.provider"), m = Symbol.for("react.context"), l = Symbol.for("react.forward_ref"), T = Symbol.for("react.suspense"), d = Symbol.for("react.suspense_list"), g = Symbol.for("react.memo"), _ = Symbol.for("react.lazy"), I = Symbol.for("react.offscreen"), X = Symbol.iterator, Ce = "@@iterator"; + function Pe(e) { + if (e === null || typeof e != "object") + return null; + var r = X && e[X] || e[Ce]; + return typeof r == "function" ? r : null; + } + var O = h.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; + function c(e) { + { + for (var r = arguments.length, t = new Array(r > 1 ? r - 1 : 0), n = 1; n < r; n++) + t[n - 1] = arguments[n]; + Se("error", e, t); + } + } + function Se(e, r, t) { + { + var n = O.ReactDebugCurrentFrame, i = n.getStackAddendum(); + i !== "" && (r += "%s", t = t.concat([i])); + var u = t.map(function(o) { + return String(o); + }); + u.unshift("Warning: " + r), Function.prototype.apply.call(console[e], console, u); + } + } + var we = !1, xe = !1, je = !1, ke = !1, De = !1, Z; + Z = Symbol.for("react.module.reference"); + function Fe(e) { + return !!(typeof e == "string" || typeof e == "function" || e === R || e === A || De || e === F || e === T || e === d || ke || e === I || we || xe || je || typeof e == "object" && e !== null && (e.$$typeof === _ || e.$$typeof === g || e.$$typeof === w || e.$$typeof === m || e.$$typeof === l || // This needs to include all possible module reference object + // types supported by any Flight configuration anywhere since + // we don't know which Flight build this will end up being used + // with. + e.$$typeof === Z || e.getModuleId !== void 0)); + } + function Ae(e, r, t) { + var n = e.displayName; + if (n) + return n; + var i = r.displayName || r.name || ""; + return i !== "" ? t + "(" + i + ")" : t; + } + function Q(e) { + return e.displayName || "Context"; + } + function E(e) { + if (e == null) + return null; + if (typeof e.tag == "number" && c("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."), typeof e == "function") + return e.displayName || e.name || null; + if (typeof e == "string") + return e; + switch (e) { + case R: + return "Fragment"; + case V: + return "Portal"; + case A: + return "Profiler"; + case F: + return "StrictMode"; + case T: + return "Suspense"; + case d: + return "SuspenseList"; + } + if (typeof e == "object") + switch (e.$$typeof) { + case m: + var r = e; + return Q(r) + ".Consumer"; + case w: + var t = e; + return Q(t._context) + ".Provider"; + case l: + return Ae(e, e.render, "ForwardRef"); + case g: + var n = e.displayName || null; + return n !== null ? n : E(e.type) || "Memo"; + case _: { + var i = e, u = i._payload, o = i._init; + try { + return E(o(u)); + } catch { + return null; + } + } + } + return null; + } + var y = Object.assign, x = 0, ee, re, te, ne, ae, oe, ie; + function ue() { + } + ue.__reactDisabledLog = !0; + function Ie() { + { + if (x === 0) { + ee = console.log, re = console.info, te = console.warn, ne = console.error, ae = console.group, oe = console.groupCollapsed, ie = console.groupEnd; + var e = { + configurable: !0, + enumerable: !0, + value: ue, + writable: !0 + }; + Object.defineProperties(console, { + info: e, + log: e, + warn: e, + error: e, + group: e, + groupCollapsed: e, + groupEnd: e + }); + } + x++; + } + } + function $e() { + { + if (x--, x === 0) { + var e = { + configurable: !0, + enumerable: !0, + writable: !0 + }; + Object.defineProperties(console, { + log: y({}, e, { + value: ee + }), + info: y({}, e, { + value: re + }), + warn: y({}, e, { + value: te + }), + error: y({}, e, { + value: ne + }), + group: y({}, e, { + value: ae + }), + groupCollapsed: y({}, e, { + value: oe + }), + groupEnd: y({}, e, { + value: ie + }) + }); + } + x < 0 && c("disabledDepth fell below zero. This is a bug in React. Please file an issue."); + } + } + var M = O.ReactCurrentDispatcher, U; + function $(e, r, t) { + { + if (U === void 0) + try { + throw Error(); + } catch (i) { + var n = i.stack.trim().match(/\n( *(at )?)/); + U = n && n[1] || ""; + } + return ` +` + U + e; + } + } + var q = !1, W; + { + var We = typeof WeakMap == "function" ? WeakMap : Map; + W = new We(); + } + function se(e, r) { + if (!e || q) + return ""; + { + var t = W.get(e); + if (t !== void 0) + return t; + } + var n; + q = !0; + var i = Error.prepareStackTrace; + Error.prepareStackTrace = void 0; + var u; + u = M.current, M.current = null, Ie(); + try { + if (r) { + var o = function() { + throw Error(); + }; + if (Object.defineProperty(o.prototype, "props", { + set: function() { + throw Error(); + } + }), typeof Reflect == "object" && Reflect.construct) { + try { + Reflect.construct(o, []); + } catch (b) { + n = b; + } + Reflect.construct(e, [], o); + } else { + try { + o.call(); + } catch (b) { + n = b; + } + e.call(o.prototype); + } + } else { + try { + throw Error(); + } catch (b) { + n = b; + } + e(); + } + } catch (b) { + if (b && n && typeof b.stack == "string") { + for (var a = b.stack.split(` +`), v = n.stack.split(` +`), s = a.length - 1, f = v.length - 1; s >= 1 && f >= 0 && a[s] !== v[f]; ) + f--; + for (; s >= 1 && f >= 0; s--, f--) + if (a[s] !== v[f]) { + if (s !== 1 || f !== 1) + do + if (s--, f--, f < 0 || a[s] !== v[f]) { + var p = ` +` + a[s].replace(" at new ", " at "); + return e.displayName && p.includes("") && (p = p.replace("", e.displayName)), typeof e == "function" && W.set(e, p), p; + } + while (s >= 1 && f >= 0); + break; + } + } + } finally { + q = !1, M.current = u, $e(), Error.prepareStackTrace = i; + } + var P = e ? e.displayName || e.name : "", ye = P ? $(P) : ""; + return typeof e == "function" && W.set(e, ye), ye; + } + function Ye(e, r, t) { + return se(e, !1); + } + function Le(e) { + var r = e.prototype; + return !!(r && r.isReactComponent); + } + function Y(e, r, t) { + if (e == null) + return ""; + if (typeof e == "function") + return se(e, Le(e)); + if (typeof e == "string") + return $(e); + switch (e) { + case T: + return $("Suspense"); + case d: + return $("SuspenseList"); + } + if (typeof e == "object") + switch (e.$$typeof) { + case l: + return Ye(e.render); + case g: + return Y(e.type, r, t); + case _: { + var n = e, i = n._payload, u = n._init; + try { + return Y(u(i), r, t); + } catch { + } + } + } + return ""; + } + var L = Object.prototype.hasOwnProperty, fe = {}, le = O.ReactDebugCurrentFrame; + function N(e) { + if (e) { + var r = e._owner, t = Y(e.type, e._source, r ? r.type : null); + le.setExtraStackFrame(t); + } else + le.setExtraStackFrame(null); + } + function Ne(e, r, t, n, i) { + { + var u = Function.call.bind(L); + for (var o in e) + if (u(e, o)) { + var a = void 0; + try { + if (typeof e[o] != "function") { + var v = Error((n || "React class") + ": " + t + " type `" + o + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + typeof e[o] + "`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`."); + throw v.name = "Invariant Violation", v; + } + a = e[o](r, o, n, t, null, "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"); + } catch (s) { + a = s; + } + a && !(a instanceof Error) && (N(i), c("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).", n || "React class", t, o, typeof a), N(null)), a instanceof Error && !(a.message in fe) && (fe[a.message] = !0, N(i), c("Failed %s type: %s", t, a.message), N(null)); + } + } + } + var Ve = Array.isArray; + function B(e) { + return Ve(e); + } + function Me(e) { + { + var r = typeof Symbol == "function" && Symbol.toStringTag, t = r && e[Symbol.toStringTag] || e.constructor.name || "Object"; + return t; + } + } + function Ue(e) { + try { + return ce(e), !1; + } catch { + return !0; + } + } + function ce(e) { + return "" + e; + } + function ve(e) { + if (Ue(e)) + return c("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.", Me(e)), ce(e); + } + var j = O.ReactCurrentOwner, qe = { + key: !0, + ref: !0, + __self: !0, + __source: !0 + }, de, pe, J; + J = {}; + function Be(e) { + if (L.call(e, "ref")) { + var r = Object.getOwnPropertyDescriptor(e, "ref").get; + if (r && r.isReactWarning) + return !1; + } + return e.ref !== void 0; + } + function Je(e) { + if (L.call(e, "key")) { + var r = Object.getOwnPropertyDescriptor(e, "key").get; + if (r && r.isReactWarning) + return !1; + } + return e.key !== void 0; + } + function ze(e, r) { + if (typeof e.ref == "string" && j.current && r && j.current.stateNode !== r) { + var t = E(j.current.type); + J[t] || (c('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref', E(j.current.type), e.ref), J[t] = !0); + } + } + function Ge(e, r) { + { + var t = function() { + de || (de = !0, c("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", r)); + }; + t.isReactWarning = !0, Object.defineProperty(e, "key", { + get: t, + configurable: !0 + }); + } + } + function Ke(e, r) { + { + var t = function() { + pe || (pe = !0, c("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", r)); + }; + t.isReactWarning = !0, Object.defineProperty(e, "ref", { + get: t, + configurable: !0 + }); + } + } + var He = function(e, r, t, n, i, u, o) { + var a = { + // This tag allows us to uniquely identify this as a React Element + $$typeof: S, + // Built-in properties that belong on the element + type: e, + key: r, + ref: t, + props: o, + // Record the component responsible for creating this element. + _owner: u + }; + return a._store = {}, Object.defineProperty(a._store, "validated", { + configurable: !1, + enumerable: !1, + writable: !0, + value: !1 + }), Object.defineProperty(a, "_self", { + configurable: !1, + enumerable: !1, + writable: !1, + value: n + }), Object.defineProperty(a, "_source", { + configurable: !1, + enumerable: !1, + writable: !1, + value: i + }), Object.freeze && (Object.freeze(a.props), Object.freeze(a)), a; + }; + function Xe(e, r, t, n, i) { + { + var u, o = {}, a = null, v = null; + t !== void 0 && (ve(t), a = "" + t), Je(r) && (ve(r.key), a = "" + r.key), Be(r) && (v = r.ref, ze(r, i)); + for (u in r) + L.call(r, u) && !qe.hasOwnProperty(u) && (o[u] = r[u]); + if (e && e.defaultProps) { + var s = e.defaultProps; + for (u in s) + o[u] === void 0 && (o[u] = s[u]); + } + if (a || v) { + var f = typeof e == "function" ? e.displayName || e.name || "Unknown" : e; + a && Ge(o, f), v && Ke(o, f); + } + return He(e, a, v, i, n, j.current, o); + } + } + var z = O.ReactCurrentOwner, ge = O.ReactDebugCurrentFrame; + function C(e) { + if (e) { + var r = e._owner, t = Y(e.type, e._source, r ? r.type : null); + ge.setExtraStackFrame(t); + } else + ge.setExtraStackFrame(null); + } + var G; + G = !1; + function K(e) { + return typeof e == "object" && e !== null && e.$$typeof === S; + } + function Ee() { + { + if (z.current) { + var e = E(z.current.type); + if (e) + return ` + +Check the render method of \`` + e + "`."; + } + return ""; + } + } + function Ze(e) { + { + if (e !== void 0) { + var r = e.fileName.replace(/^.*[\\\/]/, ""), t = e.lineNumber; + return ` + +Check your code at ` + r + ":" + t + "."; + } + return ""; + } + } + var be = {}; + function Qe(e) { + { + var r = Ee(); + if (!r) { + var t = typeof e == "string" ? e : e.displayName || e.name; + t && (r = ` + +Check the top-level render call using <` + t + ">."); + } + return r; + } + } + function he(e, r) { + { + if (!e._store || e._store.validated || e.key != null) + return; + e._store.validated = !0; + var t = Qe(r); + if (be[t]) + return; + be[t] = !0; + var n = ""; + e && e._owner && e._owner !== z.current && (n = " It was passed a child from " + E(e._owner.type) + "."), C(e), c('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.', t, n), C(null); + } + } + function me(e, r) { + { + if (typeof e != "object") + return; + if (B(e)) + for (var t = 0; t < e.length; t++) { + var n = e[t]; + K(n) && he(n, r); + } + else if (K(e)) + e._store && (e._store.validated = !0); + else if (e) { + var i = Pe(e); + if (typeof i == "function" && i !== e.entries) + for (var u = i.call(e), o; !(o = u.next()).done; ) + K(o.value) && he(o.value, r); + } + } + } + function er(e) { + { + var r = e.type; + if (r == null || typeof r == "string") + return; + var t; + if (typeof r == "function") + t = r.propTypes; + else if (typeof r == "object" && (r.$$typeof === l || // Note: Memo only checks outer props here. + // Inner props are checked in the reconciler. + r.$$typeof === g)) + t = r.propTypes; + else + return; + if (t) { + var n = E(r); + Ne(t, e.props, "prop", n, e); + } else if (r.PropTypes !== void 0 && !G) { + G = !0; + var i = E(r); + c("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?", i || "Unknown"); + } + typeof r.getDefaultProps == "function" && !r.getDefaultProps.isReactClassApproved && c("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead."); + } + } + function rr(e) { + { + for (var r = Object.keys(e.props), t = 0; t < r.length; t++) { + var n = r[t]; + if (n !== "children" && n !== "key") { + C(e), c("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.", n), C(null); + break; + } + } + e.ref !== null && (C(e), c("Invalid attribute `ref` supplied to `React.Fragment`."), C(null)); + } + } + function _e(e, r, t, n, i, u) { + { + var o = Fe(e); + if (!o) { + var a = ""; + (e === void 0 || typeof e == "object" && e !== null && Object.keys(e).length === 0) && (a += " You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports."); + var v = Ze(i); + v ? a += v : a += Ee(); + var s; + e === null ? s = "null" : B(e) ? s = "array" : e !== void 0 && e.$$typeof === S ? (s = "<" + (E(e.type) || "Unknown") + " />", a = " Did you accidentally export a JSX literal instead of a component?") : s = typeof e, c("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s", s, a); + } + var f = Xe(e, r, t, i, u); + if (f == null) + return f; + if (o) { + var p = r.children; + if (p !== void 0) + if (n) + if (B(p)) { + for (var P = 0; P < p.length; P++) + me(p[P], e); + Object.freeze && Object.freeze(p); + } else + c("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."); + else + me(p, e); + } + return e === R ? rr(f) : er(f), f; + } + } + function tr(e, r, t) { + return _e(e, r, t, !0); + } + function nr(e, r, t) { + return _e(e, r, t, !1); + } + var ar = nr, or = tr; + D.Fragment = R, D.jsx = ar, D.jsxs = or; + }()), D; +} +(function(h) { + process.env.NODE_ENV === "production" ? h.exports = ur() : h.exports = sr(); +})(ir); +function lr() { + return /* @__PURE__ */ H.jsx("div", { children: "Coming soon." }); +} +export { + lr as default +}; diff --git a/src/react-ezql/dist/ezql-prompt.umd.js b/src/react-ezql/dist/ezql-prompt.umd.js new file mode 100644 index 0000000..54c90c4 --- /dev/null +++ b/src/react-ezql/dist/ezql-prompt.umd.js @@ -0,0 +1,27 @@ +(function(m,y){typeof exports=="object"&&typeof module<"u"?module.exports=y(require("react")):typeof define=="function"&&define.amd?define(["react"],y):(m=typeof globalThis<"u"?globalThis:m||self,m["EZQL Prompt"]=y(m.React))})(this,function(m){"use strict";var y={},Ce={get exports(){return y},set exports(b){y=b}},x={};/** + * @license React + * react-jsx-runtime.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Z;function Pe(){if(Z)return x;Z=1;var b=m,k=Symbol.for("react.element"),U=Symbol.for("react.fragment"),O=Object.prototype.hasOwnProperty,I=b.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,W={key:!0,ref:!0,__self:!0,__source:!0};function D(R,l,C){var v,g={},_=null,Y=null;C!==void 0&&(_=""+C),l.key!==void 0&&(_=""+l.key),l.ref!==void 0&&(Y=l.ref);for(v in l)O.call(l,v)&&!W.hasOwnProperty(v)&&(g[v]=l[v]);if(R&&R.defaultProps)for(v in l=R.defaultProps,l)g[v]===void 0&&(g[v]=l[v]);return{$$typeof:k,type:R,key:_,ref:Y,props:g,_owner:I.current}}return x.Fragment=U,x.jsx=D,x.jsxs=D,x}var j={};/** + * @license React + * react-jsx-runtime.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Q;function Se(){return Q||(Q=1,process.env.NODE_ENV!=="production"&&function(){var b=m,k=Symbol.for("react.element"),U=Symbol.for("react.portal"),O=Symbol.for("react.fragment"),I=Symbol.for("react.strict_mode"),W=Symbol.for("react.profiler"),D=Symbol.for("react.provider"),R=Symbol.for("react.context"),l=Symbol.for("react.forward_ref"),C=Symbol.for("react.suspense"),v=Symbol.for("react.suspense_list"),g=Symbol.for("react.memo"),_=Symbol.for("react.lazy"),Y=Symbol.for("react.offscreen"),ee=Symbol.iterator,xe="@@iterator";function je(e){if(e===null||typeof e!="object")return null;var r=ee&&e[ee]||e[xe];return typeof r=="function"?r:null}var P=b.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function c(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&f>=0&&a[s]!==d[f];)f--;for(;s>=1&&f>=0;s--,f--)if(a[s]!==d[f]){if(s!==1||f!==1)do if(s--,f--,f<0||a[s]!==d[f]){var p=` +`+a[s].replace(" at new "," at ");return e.displayName&&p.includes("")&&(p=p.replace("",e.displayName)),typeof e=="function"&&L.set(e,p),p}while(s>=1&&f>=0);break}}}finally{J=!1,B.current=u,Ne(),Error.prepareStackTrace=o}var w=e?e.displayName||e.name:"",Oe=w?$(w):"";return typeof e=="function"&&L.set(e,Oe),Oe}function Me(e,r,t){return ce(e,!1)}function Ue(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function N(e,r,t){if(e==null)return"";if(typeof e=="function")return ce(e,Ue(e));if(typeof e=="string")return $(e);switch(e){case C:return $("Suspense");case v:return $("SuspenseList")}if(typeof e=="object")switch(e.$$typeof){case l:return Me(e.render);case g:return N(e.type,r,t);case _:{var n=e,o=n._payload,u=n._init;try{return N(u(o),r,t)}catch{}}}return""}var V=Object.prototype.hasOwnProperty,de={},ve=P.ReactDebugCurrentFrame;function M(e){if(e){var r=e._owner,t=N(e.type,e._source,r?r.type:null);ve.setExtraStackFrame(t)}else ve.setExtraStackFrame(null)}function Be(e,r,t,n,o){{var u=Function.call.bind(V);for(var i in e)if(u(e,i)){var a=void 0;try{if(typeof e[i]!="function"){var d=Error((n||"React class")+": "+t+" type `"+i+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[i]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw d.name="Invariant Violation",d}a=e[i](r,i,n,t,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(s){a=s}a&&!(a instanceof Error)&&(M(o),c("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",n||"React class",t,i,typeof a),M(null)),a instanceof Error&&!(a.message in de)&&(de[a.message]=!0,M(o),c("Failed %s type: %s",t,a.message),M(null))}}}var qe=Array.isArray;function z(e){return qe(e)}function Je(e){{var r=typeof Symbol=="function"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||"Object";return t}}function ze(e){try{return pe(e),!1}catch{return!0}}function pe(e){return""+e}function ge(e){if(ze(e))return c("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",Je(e)),pe(e)}var A=P.ReactCurrentOwner,Ge={key:!0,ref:!0,__self:!0,__source:!0},he,Ee,G;G={};function Ke(e){if(V.call(e,"ref")){var r=Object.getOwnPropertyDescriptor(e,"ref").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(V.call(e,"key")){var r=Object.getOwnPropertyDescriptor(e,"key").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Xe(e,r){if(typeof e.ref=="string"&&A.current&&r&&A.current.stateNode!==r){var t=h(A.current.type);G[t]||(c('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',h(A.current.type),e.ref),G[t]=!0)}}function Ze(e,r){{var t=function(){he||(he=!0,c("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",r))};t.isReactWarning=!0,Object.defineProperty(e,"key",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){Ee||(Ee=!0,c("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",r))};t.isReactWarning=!0,Object.defineProperty(e,"ref",{get:t,configurable:!0})}}var er=function(e,r,t,n,o,u,i){var a={$$typeof:k,type:e,key:r,ref:t,props:i,_owner:u};return a._store={},Object.defineProperty(a._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,"_self",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,"_source",{configurable:!1,enumerable:!1,writable:!1,value:o}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,o){{var u,i={},a=null,d=null;t!==void 0&&(ge(t),a=""+t),He(r)&&(ge(r.key),a=""+r.key),Ke(r)&&(d=r.ref,Xe(r,o));for(u in r)V.call(r,u)&&!Ge.hasOwnProperty(u)&&(i[u]=r[u]);if(e&&e.defaultProps){var s=e.defaultProps;for(u in s)i[u]===void 0&&(i[u]=s[u])}if(a||d){var f=typeof e=="function"?e.displayName||e.name||"Unknown":e;a&&Ze(i,f),d&&Qe(i,f)}return er(e,a,d,o,n,A.current,i)}}var K=P.ReactCurrentOwner,be=P.ReactDebugCurrentFrame;function S(e){if(e){var r=e._owner,t=N(e.type,e._source,r?r.type:null);be.setExtraStackFrame(t)}else be.setExtraStackFrame(null)}var H;H=!1;function X(e){return typeof e=="object"&&e!==null&&e.$$typeof===k}function me(){{if(K.current){var e=h(K.current.type);if(e)return` + +Check the render method of \``+e+"`."}return""}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\/]/,""),t=e.lineNumber;return` + +Check your code at `+r+":"+t+"."}return""}}var ye={};function nr(e){{var r=me();if(!r){var t=typeof e=="string"?e:e.displayName||e.name;t&&(r=` + +Check the top-level render call using <`+t+">.")}return r}}function Re(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ye[t])return;ye[t]=!0;var n="";e&&e._owner&&e._owner!==K.current&&(n=" It was passed a child from "+h(e._owner.type)+"."),S(e),c('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),S(null)}}function _e(e,r){{if(typeof e!="object")return;if(z(e))for(var t=0;t",a=" Did you accidentally export a JSX literal instead of a component?"):s=typeof e,c("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",s,a)}var f=rr(e,r,t,o,u);if(f==null)return f;if(i){var p=r.children;if(p!==void 0)if(n)if(z(p)){for(var w=0;w Date: Fri, 3 Mar 2023 15:10:54 -0500 Subject: [PATCH 03/10] implement working --- .gitignore | 1 + package.json | 2 +- src/react-ezql/README.md | 95 +++ src/react-ezql/dist/ezql-prompt.es.js | 667 +++++++++++------- src/react-ezql/dist/ezql-prompt.umd.js | 20 +- src/react-ezql/index.html | 13 + src/react-ezql/package.json | 5 +- src/react-ezql/public/ezql_diamond-small.png | Bin 0 -> 1693 bytes src/react-ezql/public/icon_arrow-right.svg | 4 + src/react-ezql/public/icon_search.svg | 4 + src/react-ezql/src/App.tsx | 42 +- .../src/__snapshots__/index.test.tsx.snap | 64 +- .../src/components/ezql-prompt.module.css | 62 ++ src/react-ezql/src/components/ezql-prompt.tsx | 69 ++ .../src/components/modal.module.css | 83 +++ src/react-ezql/src/components/modal.tsx | 51 ++ .../suggest-search-list-item.module.css | 37 + .../components/suggest-search-list-item.tsx | 68 ++ src/react-ezql/src/index.test.tsx | 4 +- src/react-ezql/src/index.tsx | 6 +- src/react-ezql/src/integration.test.tsx | 5 +- src/react-ezql/src/lib/class-names.tsx | 3 + src/react-ezql/src/{index.css => main.css} | 0 src/react-ezql/src/main.tsx | 2 +- 24 files changed, 1016 insertions(+), 291 deletions(-) create mode 100644 src/react-ezql/public/ezql_diamond-small.png create mode 100644 src/react-ezql/public/icon_arrow-right.svg create mode 100644 src/react-ezql/public/icon_search.svg create mode 100644 src/react-ezql/src/components/ezql-prompt.module.css create mode 100644 src/react-ezql/src/components/ezql-prompt.tsx create mode 100644 src/react-ezql/src/components/modal.module.css create mode 100644 src/react-ezql/src/components/modal.tsx create mode 100644 src/react-ezql/src/components/suggest-search-list-item.module.css create mode 100644 src/react-ezql/src/components/suggest-search-list-item.tsx create mode 100644 src/react-ezql/src/lib/class-names.tsx rename src/react-ezql/src/{index.css => main.css} (100%) diff --git a/.gitignore b/.gitignore index 069ba5c..dbd9075 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ # Project dist +src/react-ezql/dist demo/web/bundle.* # Logs diff --git a/package.json b/package.json index ebb658b..dc6c390 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "build:umd": "rollup --config config/rollup.config.js --bundleConfigAsCjs", "update:demo": "npm run build:umd && node demo/copy-assets.mjs", "prepare": "husky install", - "prepack": "npm run build" + "prepack": "rm -rf ./dist && npm run build" }, "repository": { "type": "git", diff --git a/src/react-ezql/README.md b/src/react-ezql/README.md index e69de29..cb9d503 100644 --- a/src/react-ezql/README.md +++ b/src/react-ezql/README.md @@ -0,0 +1,95 @@ +## Installation + +```sh +npm install --save-dev react-ezql +``` + +## Usage + +**Minimal usage** + +```tsx +import EzqlPrompt from 'react-ezql' + + { + console.log(`query: ${value}`) + setShouldDisplayEzql(false) + }} + onResults={(json) => console.dir(json)} + className="optional-for-styling-convenience" +/> +``` + +**Example App.tsx** +Here lies a demonstration conditionally showing/hiding the prompt + +```tsx +import './App.css' +import EzqlPrompt from 'react-ezql' +import { useEffect, useState } from 'react' + +const TRIGGERS = ['KeyK', 'Slash'] + +function App() { + const [shouldDisplayEzql, setShouldDisplayEzql] = useState(false) + const suggestions = ['How many books sold last week', 'How many new users signed up today'] + + // listen for the trigger to display the modal + useEffect(() => { + function ezqlTriggerListener(ev: KeyboardEvent) { + if (TRIGGERS.includes(ev.code) && ev.getModifierState('Meta')) { + setShouldDisplayEzql(true) + } + } + + // BEGIN listening for the trigger(s) + document.addEventListener('keydown', ezqlTriggerListener) + + return () => { + // STOP listening for the trigger(s) + document.removeEventListener('keydown', ezqlTriggerListener) + } + }, []) + + return ( + <> + {shouldDisplayEzql && ( + { + console.log(`query: ${value}`) + setShouldDisplayEzql(false) + }} + onResults={(json) => console.dir(json)} + className="optional-for-styling-convenience" + /> + )} + + ) +} + +export default App +``` + +## Styling + + + +Each HTML Element has been an assigned a meaningful classname that you can style in your own CSS + +- Use the web inspector to reveal which class names are assigned to which elements +- You may optionally pass `className` to the component, i.e. ``. This allows more precise scoping of CSS: + +```css +.arbitrary-value.ezql-prompt-modal { + background-color: black; +} +, +.arbitrary-value .input-container { + color: white; +} +``` diff --git a/src/react-ezql/dist/ezql-prompt.es.js b/src/react-ezql/dist/ezql-prompt.es.js index 7a136db..c329674 100644 --- a/src/react-ezql/dist/ezql-prompt.es.js +++ b/src/react-ezql/dist/ezql-prompt.es.js @@ -1,12 +1,12 @@ -import Oe from "react"; -var H = {}, ir = { +import Ce, { useRef as re, useEffect as fr, useState as dr, useCallback as _r } from "react"; +var f = {}, vr = { get exports() { - return H; + return f; }, - set exports(h) { - H = h; + set exports(p) { + f = p; } -}, k = {}; +}, L = {}; /** * @license React * react-jsx-runtime.production.min.js @@ -16,25 +16,25 @@ var H = {}, ir = { * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ -var Re; -function ur() { - if (Re) - return k; - Re = 1; - var h = Oe, S = Symbol.for("react.element"), V = Symbol.for("react.fragment"), R = Object.prototype.hasOwnProperty, F = h.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, A = { key: !0, ref: !0, __self: !0, __source: !0 }; - function w(m, l, T) { - var d, g = {}, _ = null, I = null; - T !== void 0 && (_ = "" + T), l.key !== void 0 && (_ = "" + l.key), l.ref !== void 0 && (I = l.ref); - for (d in l) - R.call(l, d) && !A.hasOwnProperty(d) && (g[d] = l[d]); - if (m && m.defaultProps) - for (d in l = m.defaultProps, l) - g[d] === void 0 && (g[d] = l[d]); - return { $$typeof: S, type: m, key: _, ref: I, props: g, _owner: F.current }; +var Te; +function pr() { + if (Te) + return L; + Te = 1; + var p = Ce, m = Symbol.for("react.element"), _ = Symbol.for("react.fragment"), h = Object.prototype.hasOwnProperty, S = p.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, y = { key: !0, ref: !0, __self: !0, __source: !0 }; + function j(g, i, c) { + var l, x = {}, T = null, P = null; + c !== void 0 && (T = "" + c), i.key !== void 0 && (T = "" + i.key), i.ref !== void 0 && (P = i.ref); + for (l in i) + h.call(i, l) && !y.hasOwnProperty(l) && (x[l] = i[l]); + if (g && g.defaultProps) + for (l in i = g.defaultProps, i) + x[l] === void 0 && (x[l] = i[l]); + return { $$typeof: m, type: g, key: T, ref: P, props: x, _owner: S.current }; } - return k.Fragment = V, k.jsx = w, k.jsxs = w, k; + return L.Fragment = _, L.jsx = j, L.jsxs = j, L; } -var D = {}; +var Y = {}; /** * @license React * react-jsx-runtime.development.js @@ -44,91 +44,91 @@ var D = {}; * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ -var Te; -function sr() { - return Te || (Te = 1, process.env.NODE_ENV !== "production" && function() { - var h = Oe, S = Symbol.for("react.element"), V = Symbol.for("react.portal"), R = Symbol.for("react.fragment"), F = Symbol.for("react.strict_mode"), A = Symbol.for("react.profiler"), w = Symbol.for("react.provider"), m = Symbol.for("react.context"), l = Symbol.for("react.forward_ref"), T = Symbol.for("react.suspense"), d = Symbol.for("react.suspense_list"), g = Symbol.for("react.memo"), _ = Symbol.for("react.lazy"), I = Symbol.for("react.offscreen"), X = Symbol.iterator, Ce = "@@iterator"; +var Oe; +function gr() { + return Oe || (Oe = 1, process.env.NODE_ENV !== "production" && function() { + var p = Ce, m = Symbol.for("react.element"), _ = Symbol.for("react.portal"), h = Symbol.for("react.fragment"), S = Symbol.for("react.strict_mode"), y = Symbol.for("react.profiler"), j = Symbol.for("react.provider"), g = Symbol.for("react.context"), i = Symbol.for("react.forward_ref"), c = Symbol.for("react.suspense"), l = Symbol.for("react.suspense_list"), x = Symbol.for("react.memo"), T = Symbol.for("react.lazy"), P = Symbol.for("react.offscreen"), te = Symbol.iterator, ke = "@@iterator"; function Pe(e) { if (e === null || typeof e != "object") return null; - var r = X && e[X] || e[Ce]; + var r = te && e[te] || e[ke]; return typeof r == "function" ? r : null; } - var O = h.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; - function c(e) { + var I = p.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; + function b(e) { { for (var r = arguments.length, t = new Array(r > 1 ? r - 1 : 0), n = 1; n < r; n++) t[n - 1] = arguments[n]; - Se("error", e, t); + De("error", e, t); } } - function Se(e, r, t) { + function De(e, r, t) { { - var n = O.ReactDebugCurrentFrame, i = n.getStackAddendum(); - i !== "" && (r += "%s", t = t.concat([i])); + var n = I.ReactDebugCurrentFrame, s = n.getStackAddendum(); + s !== "" && (r += "%s", t = t.concat([s])); var u = t.map(function(o) { return String(o); }); u.unshift("Warning: " + r), Function.prototype.apply.call(console[e], console, u); } } - var we = !1, xe = !1, je = !1, ke = !1, De = !1, Z; - Z = Symbol.for("react.module.reference"); - function Fe(e) { - return !!(typeof e == "string" || typeof e == "function" || e === R || e === A || De || e === F || e === T || e === d || ke || e === I || we || xe || je || typeof e == "object" && e !== null && (e.$$typeof === _ || e.$$typeof === g || e.$$typeof === w || e.$$typeof === m || e.$$typeof === l || // This needs to include all possible module reference object + var Ie = !1, Ae = !1, Fe = !1, Ne = !1, $e = !1, ne; + ne = Symbol.for("react.module.reference"); + function Le(e) { + return !!(typeof e == "string" || typeof e == "function" || e === h || e === y || $e || e === S || e === c || e === l || Ne || e === P || Ie || Ae || Fe || typeof e == "object" && e !== null && (e.$$typeof === T || e.$$typeof === x || e.$$typeof === j || e.$$typeof === g || e.$$typeof === i || // This needs to include all possible module reference object // types supported by any Flight configuration anywhere since // we don't know which Flight build this will end up being used // with. - e.$$typeof === Z || e.getModuleId !== void 0)); + e.$$typeof === ne || e.getModuleId !== void 0)); } - function Ae(e, r, t) { + function Ye(e, r, t) { var n = e.displayName; if (n) return n; - var i = r.displayName || r.name || ""; - return i !== "" ? t + "(" + i + ")" : t; + var s = r.displayName || r.name || ""; + return s !== "" ? t + "(" + s + ")" : t; } - function Q(e) { + function ae(e) { return e.displayName || "Context"; } - function E(e) { + function O(e) { if (e == null) return null; - if (typeof e.tag == "number" && c("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."), typeof e == "function") + if (typeof e.tag == "number" && b("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."), typeof e == "function") return e.displayName || e.name || null; if (typeof e == "string") return e; switch (e) { - case R: + case h: return "Fragment"; - case V: + case _: return "Portal"; - case A: + case y: return "Profiler"; - case F: + case S: return "StrictMode"; - case T: + case c: return "Suspense"; - case d: + case l: return "SuspenseList"; } if (typeof e == "object") switch (e.$$typeof) { - case m: + case g: var r = e; - return Q(r) + ".Consumer"; - case w: + return ae(r) + ".Consumer"; + case j: var t = e; - return Q(t._context) + ".Provider"; - case l: - return Ae(e, e.render, "ForwardRef"); - case g: + return ae(t._context) + ".Provider"; + case i: + return Ye(e, e.render, "ForwardRef"); + case x: var n = e.displayName || null; - return n !== null ? n : E(e.type) || "Memo"; - case _: { - var i = e, u = i._payload, o = i._init; + return n !== null ? n : O(e.type) || "Memo"; + case T: { + var s = e, u = s._payload, o = s._init; try { - return E(o(u)); + return O(o(u)); } catch { return null; } @@ -136,18 +136,18 @@ function sr() { } return null; } - var y = Object.assign, x = 0, ee, re, te, ne, ae, oe, ie; - function ue() { + var D = Object.assign, N = 0, ie, oe, se, ce, ue, le, fe; + function de() { } - ue.__reactDisabledLog = !0; - function Ie() { + de.__reactDisabledLog = !0; + function We() { { - if (x === 0) { - ee = console.log, re = console.info, te = console.warn, ne = console.error, ae = console.group, oe = console.groupCollapsed, ie = console.groupEnd; + if (N === 0) { + ie = console.log, oe = console.info, se = console.warn, ce = console.error, ue = console.group, le = console.groupCollapsed, fe = console.groupEnd; var e = { configurable: !0, enumerable: !0, - value: ue, + value: de, writable: !0 }; Object.defineProperties(console, { @@ -160,77 +160,77 @@ function sr() { groupEnd: e }); } - x++; + N++; } } - function $e() { + function Ue() { { - if (x--, x === 0) { + if (N--, N === 0) { var e = { configurable: !0, enumerable: !0, writable: !0 }; Object.defineProperties(console, { - log: y({}, e, { - value: ee + log: D({}, e, { + value: ie }), - info: y({}, e, { - value: re + info: D({}, e, { + value: oe }), - warn: y({}, e, { - value: te + warn: D({}, e, { + value: se }), - error: y({}, e, { - value: ne + error: D({}, e, { + value: ce }), - group: y({}, e, { - value: ae + group: D({}, e, { + value: ue }), - groupCollapsed: y({}, e, { - value: oe + groupCollapsed: D({}, e, { + value: le }), - groupEnd: y({}, e, { - value: ie + groupEnd: D({}, e, { + value: fe }) }); } - x < 0 && c("disabledDepth fell below zero. This is a bug in React. Please file an issue."); + N < 0 && b("disabledDepth fell below zero. This is a bug in React. Please file an issue."); } } - var M = O.ReactCurrentDispatcher, U; - function $(e, r, t) { + var J = I.ReactCurrentDispatcher, G; + function U(e, r, t) { { - if (U === void 0) + if (G === void 0) try { throw Error(); - } catch (i) { - var n = i.stack.trim().match(/\n( *(at )?)/); - U = n && n[1] || ""; + } catch (s) { + var n = s.stack.trim().match(/\n( *(at )?)/); + G = n && n[1] || ""; } return ` -` + U + e; +` + G + e; } } - var q = !1, W; + var K = !1, q; { - var We = typeof WeakMap == "function" ? WeakMap : Map; - W = new We(); + var qe = typeof WeakMap == "function" ? WeakMap : Map; + q = new qe(); } - function se(e, r) { - if (!e || q) + function _e(e, r) { + if (!e || K) return ""; { - var t = W.get(e); + var t = q.get(e); if (t !== void 0) return t; } var n; - q = !0; - var i = Error.prepareStackTrace; + K = !0; + var s = Error.prepareStackTrace; Error.prepareStackTrace = void 0; var u; - u = M.current, M.current = null, Ie(); + u = J.current, J.current = null, We(); try { if (r) { var o = function() { @@ -243,171 +243,171 @@ function sr() { }), typeof Reflect == "object" && Reflect.construct) { try { Reflect.construct(o, []); - } catch (b) { - n = b; + } catch (C) { + n = C; } Reflect.construct(e, [], o); } else { try { o.call(); - } catch (b) { - n = b; + } catch (C) { + n = C; } e.call(o.prototype); } } else { try { throw Error(); - } catch (b) { - n = b; + } catch (C) { + n = C; } e(); } - } catch (b) { - if (b && n && typeof b.stack == "string") { - for (var a = b.stack.split(` -`), v = n.stack.split(` -`), s = a.length - 1, f = v.length - 1; s >= 1 && f >= 0 && a[s] !== v[f]; ) - f--; - for (; s >= 1 && f >= 0; s--, f--) - if (a[s] !== v[f]) { - if (s !== 1 || f !== 1) + } catch (C) { + if (C && n && typeof C.stack == "string") { + for (var a = C.stack.split(` +`), E = n.stack.split(` +`), d = a.length - 1, v = E.length - 1; d >= 1 && v >= 0 && a[d] !== E[v]; ) + v--; + for (; d >= 1 && v >= 0; d--, v--) + if (a[d] !== E[v]) { + if (d !== 1 || v !== 1) do - if (s--, f--, f < 0 || a[s] !== v[f]) { - var p = ` -` + a[s].replace(" at new ", " at "); - return e.displayName && p.includes("") && (p = p.replace("", e.displayName)), typeof e == "function" && W.set(e, p), p; + if (d--, v--, v < 0 || a[d] !== E[v]) { + var w = ` +` + a[d].replace(" at new ", " at "); + return e.displayName && w.includes("") && (w = w.replace("", e.displayName)), typeof e == "function" && q.set(e, w), w; } - while (s >= 1 && f >= 0); + while (d >= 1 && v >= 0); break; } } } finally { - q = !1, M.current = u, $e(), Error.prepareStackTrace = i; + K = !1, J.current = u, Ue(), Error.prepareStackTrace = s; } - var P = e ? e.displayName || e.name : "", ye = P ? $(P) : ""; - return typeof e == "function" && W.set(e, ye), ye; + var F = e ? e.displayName || e.name : "", Se = F ? U(F) : ""; + return typeof e == "function" && q.set(e, Se), Se; } - function Ye(e, r, t) { - return se(e, !1); + function Me(e, r, t) { + return _e(e, !1); } - function Le(e) { + function Be(e) { var r = e.prototype; return !!(r && r.isReactComponent); } - function Y(e, r, t) { + function M(e, r, t) { if (e == null) return ""; if (typeof e == "function") - return se(e, Le(e)); + return _e(e, Be(e)); if (typeof e == "string") - return $(e); + return U(e); switch (e) { - case T: - return $("Suspense"); - case d: - return $("SuspenseList"); + case c: + return U("Suspense"); + case l: + return U("SuspenseList"); } if (typeof e == "object") switch (e.$$typeof) { - case l: - return Ye(e.render); - case g: - return Y(e.type, r, t); - case _: { - var n = e, i = n._payload, u = n._init; + case i: + return Me(e.render); + case x: + return M(e.type, r, t); + case T: { + var n = e, s = n._payload, u = n._init; try { - return Y(u(i), r, t); + return M(u(s), r, t); } catch { } } } return ""; } - var L = Object.prototype.hasOwnProperty, fe = {}, le = O.ReactDebugCurrentFrame; - function N(e) { + var B = Object.prototype.hasOwnProperty, ve = {}, pe = I.ReactDebugCurrentFrame; + function V(e) { if (e) { - var r = e._owner, t = Y(e.type, e._source, r ? r.type : null); - le.setExtraStackFrame(t); + var r = e._owner, t = M(e.type, e._source, r ? r.type : null); + pe.setExtraStackFrame(t); } else - le.setExtraStackFrame(null); + pe.setExtraStackFrame(null); } - function Ne(e, r, t, n, i) { + function Ve(e, r, t, n, s) { { - var u = Function.call.bind(L); + var u = Function.call.bind(B); for (var o in e) if (u(e, o)) { var a = void 0; try { if (typeof e[o] != "function") { - var v = Error((n || "React class") + ": " + t + " type `" + o + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + typeof e[o] + "`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`."); - throw v.name = "Invariant Violation", v; + var E = Error((n || "React class") + ": " + t + " type `" + o + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + typeof e[o] + "`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`."); + throw E.name = "Invariant Violation", E; } a = e[o](r, o, n, t, null, "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"); - } catch (s) { - a = s; + } catch (d) { + a = d; } - a && !(a instanceof Error) && (N(i), c("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).", n || "React class", t, o, typeof a), N(null)), a instanceof Error && !(a.message in fe) && (fe[a.message] = !0, N(i), c("Failed %s type: %s", t, a.message), N(null)); + a && !(a instanceof Error) && (V(s), b("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).", n || "React class", t, o, typeof a), V(null)), a instanceof Error && !(a.message in ve) && (ve[a.message] = !0, V(s), b("Failed %s type: %s", t, a.message), V(null)); } } } - var Ve = Array.isArray; - function B(e) { - return Ve(e); + var ze = Array.isArray; + function Q(e) { + return ze(e); } - function Me(e) { + function Je(e) { { var r = typeof Symbol == "function" && Symbol.toStringTag, t = r && e[Symbol.toStringTag] || e.constructor.name || "Object"; return t; } } - function Ue(e) { + function Ge(e) { try { - return ce(e), !1; + return ge(e), !1; } catch { return !0; } } - function ce(e) { + function ge(e) { return "" + e; } - function ve(e) { - if (Ue(e)) - return c("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.", Me(e)), ce(e); + function he(e) { + if (Ge(e)) + return b("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.", Je(e)), ge(e); } - var j = O.ReactCurrentOwner, qe = { + var $ = I.ReactCurrentOwner, Ke = { key: !0, ref: !0, __self: !0, __source: !0 - }, de, pe, J; - J = {}; - function Be(e) { - if (L.call(e, "ref")) { + }, me, ye, H; + H = {}; + function Qe(e) { + if (B.call(e, "ref")) { var r = Object.getOwnPropertyDescriptor(e, "ref").get; if (r && r.isReactWarning) return !1; } return e.ref !== void 0; } - function Je(e) { - if (L.call(e, "key")) { + function He(e) { + if (B.call(e, "key")) { var r = Object.getOwnPropertyDescriptor(e, "key").get; if (r && r.isReactWarning) return !1; } return e.key !== void 0; } - function ze(e, r) { - if (typeof e.ref == "string" && j.current && r && j.current.stateNode !== r) { - var t = E(j.current.type); - J[t] || (c('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref', E(j.current.type), e.ref), J[t] = !0); + function Xe(e, r) { + if (typeof e.ref == "string" && $.current && r && $.current.stateNode !== r) { + var t = O($.current.type); + H[t] || (b('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref', O($.current.type), e.ref), H[t] = !0); } } - function Ge(e, r) { + function Ze(e, r) { { var t = function() { - de || (de = !0, c("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", r)); + me || (me = !0, b("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", r)); }; t.isReactWarning = !0, Object.defineProperty(e, "key", { get: t, @@ -415,10 +415,10 @@ function sr() { }); } } - function Ke(e, r) { + function er(e, r) { { var t = function() { - pe || (pe = !0, c("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", r)); + ye || (ye = !0, b("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", r)); }; t.isReactWarning = !0, Object.defineProperty(e, "ref", { get: t, @@ -426,10 +426,10 @@ function sr() { }); } } - var He = function(e, r, t, n, i, u, o) { + var rr = function(e, r, t, n, s, u, o) { var a = { // This tag allows us to uniquely identify this as a React Element - $$typeof: S, + $$typeof: m, // Built-in properties that belong on the element type: e, key: r, @@ -452,44 +452,44 @@ function sr() { configurable: !1, enumerable: !1, writable: !1, - value: i + value: s }), Object.freeze && (Object.freeze(a.props), Object.freeze(a)), a; }; - function Xe(e, r, t, n, i) { + function tr(e, r, t, n, s) { { - var u, o = {}, a = null, v = null; - t !== void 0 && (ve(t), a = "" + t), Je(r) && (ve(r.key), a = "" + r.key), Be(r) && (v = r.ref, ze(r, i)); + var u, o = {}, a = null, E = null; + t !== void 0 && (he(t), a = "" + t), He(r) && (he(r.key), a = "" + r.key), Qe(r) && (E = r.ref, Xe(r, s)); for (u in r) - L.call(r, u) && !qe.hasOwnProperty(u) && (o[u] = r[u]); + B.call(r, u) && !Ke.hasOwnProperty(u) && (o[u] = r[u]); if (e && e.defaultProps) { - var s = e.defaultProps; - for (u in s) - o[u] === void 0 && (o[u] = s[u]); + var d = e.defaultProps; + for (u in d) + o[u] === void 0 && (o[u] = d[u]); } - if (a || v) { - var f = typeof e == "function" ? e.displayName || e.name || "Unknown" : e; - a && Ge(o, f), v && Ke(o, f); + if (a || E) { + var v = typeof e == "function" ? e.displayName || e.name || "Unknown" : e; + a && Ze(o, v), E && er(o, v); } - return He(e, a, v, i, n, j.current, o); + return rr(e, a, E, s, n, $.current, o); } } - var z = O.ReactCurrentOwner, ge = O.ReactDebugCurrentFrame; - function C(e) { + var X = I.ReactCurrentOwner, be = I.ReactDebugCurrentFrame; + function A(e) { if (e) { - var r = e._owner, t = Y(e.type, e._source, r ? r.type : null); - ge.setExtraStackFrame(t); + var r = e._owner, t = M(e.type, e._source, r ? r.type : null); + be.setExtraStackFrame(t); } else - ge.setExtraStackFrame(null); + be.setExtraStackFrame(null); } - var G; - G = !1; - function K(e) { - return typeof e == "object" && e !== null && e.$$typeof === S; + var Z; + Z = !1; + function ee(e) { + return typeof e == "object" && e !== null && e.$$typeof === m; } function Ee() { { - if (z.current) { - var e = E(z.current.type); + if (X.current) { + var e = O(X.current.type); if (e) return ` @@ -498,7 +498,7 @@ Check the render method of \`` + e + "`."; return ""; } } - function Ze(e) { + function nr(e) { { if (e !== void 0) { var r = e.fileName.replace(/^.*[\\\/]/, ""), t = e.lineNumber; @@ -509,8 +509,8 @@ Check your code at ` + r + ":" + t + "."; return ""; } } - var be = {}; - function Qe(e) { + var Re = {}; + function ar(e) { { var r = Ee(); if (!r) { @@ -522,39 +522,39 @@ Check the top-level render call using <` + t + ">."); return r; } } - function he(e, r) { + function xe(e, r) { { if (!e._store || e._store.validated || e.key != null) return; e._store.validated = !0; - var t = Qe(r); - if (be[t]) + var t = ar(r); + if (Re[t]) return; - be[t] = !0; + Re[t] = !0; var n = ""; - e && e._owner && e._owner !== z.current && (n = " It was passed a child from " + E(e._owner.type) + "."), C(e), c('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.', t, n), C(null); + e && e._owner && e._owner !== X.current && (n = " It was passed a child from " + O(e._owner.type) + "."), A(e), b('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.', t, n), A(null); } } - function me(e, r) { + function we(e, r) { { if (typeof e != "object") return; - if (B(e)) + if (Q(e)) for (var t = 0; t < e.length; t++) { var n = e[t]; - K(n) && he(n, r); + ee(n) && xe(n, r); } - else if (K(e)) + else if (ee(e)) e._store && (e._store.validated = !0); else if (e) { - var i = Pe(e); - if (typeof i == "function" && i !== e.entries) - for (var u = i.call(e), o; !(o = u.next()).done; ) - K(o.value) && he(o.value, r); + var s = Pe(e); + if (typeof s == "function" && s !== e.entries) + for (var u = s.call(e), o; !(o = u.next()).done; ) + ee(o.value) && xe(o.value, r); } } } - function er(e) { + function ir(e) { { var r = e.type; if (r == null || typeof r == "string") @@ -562,81 +562,218 @@ Check the top-level render call using <` + t + ">."); var t; if (typeof r == "function") t = r.propTypes; - else if (typeof r == "object" && (r.$$typeof === l || // Note: Memo only checks outer props here. + else if (typeof r == "object" && (r.$$typeof === i || // Note: Memo only checks outer props here. // Inner props are checked in the reconciler. - r.$$typeof === g)) + r.$$typeof === x)) t = r.propTypes; else return; if (t) { - var n = E(r); - Ne(t, e.props, "prop", n, e); - } else if (r.PropTypes !== void 0 && !G) { - G = !0; - var i = E(r); - c("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?", i || "Unknown"); + var n = O(r); + Ve(t, e.props, "prop", n, e); + } else if (r.PropTypes !== void 0 && !Z) { + Z = !0; + var s = O(r); + b("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?", s || "Unknown"); } - typeof r.getDefaultProps == "function" && !r.getDefaultProps.isReactClassApproved && c("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead."); + typeof r.getDefaultProps == "function" && !r.getDefaultProps.isReactClassApproved && b("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead."); } } - function rr(e) { + function or(e) { { for (var r = Object.keys(e.props), t = 0; t < r.length; t++) { var n = r[t]; if (n !== "children" && n !== "key") { - C(e), c("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.", n), C(null); + A(e), b("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.", n), A(null); break; } } - e.ref !== null && (C(e), c("Invalid attribute `ref` supplied to `React.Fragment`."), C(null)); + e.ref !== null && (A(e), b("Invalid attribute `ref` supplied to `React.Fragment`."), A(null)); } } - function _e(e, r, t, n, i, u) { + function je(e, r, t, n, s, u) { { - var o = Fe(e); + var o = Le(e); if (!o) { var a = ""; (e === void 0 || typeof e == "object" && e !== null && Object.keys(e).length === 0) && (a += " You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports."); - var v = Ze(i); - v ? a += v : a += Ee(); - var s; - e === null ? s = "null" : B(e) ? s = "array" : e !== void 0 && e.$$typeof === S ? (s = "<" + (E(e.type) || "Unknown") + " />", a = " Did you accidentally export a JSX literal instead of a component?") : s = typeof e, c("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s", s, a); + var E = nr(s); + E ? a += E : a += Ee(); + var d; + e === null ? d = "null" : Q(e) ? d = "array" : e !== void 0 && e.$$typeof === m ? (d = "<" + (O(e.type) || "Unknown") + " />", a = " Did you accidentally export a JSX literal instead of a component?") : d = typeof e, b("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s", d, a); } - var f = Xe(e, r, t, i, u); - if (f == null) - return f; + var v = tr(e, r, t, s, u); + if (v == null) + return v; if (o) { - var p = r.children; - if (p !== void 0) + var w = r.children; + if (w !== void 0) if (n) - if (B(p)) { - for (var P = 0; P < p.length; P++) - me(p[P], e); - Object.freeze && Object.freeze(p); + if (Q(w)) { + for (var F = 0; F < w.length; F++) + we(w[F], e); + Object.freeze && Object.freeze(w); } else - c("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."); + b("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."); else - me(p, e); + we(w, e); } - return e === R ? rr(f) : er(f), f; + return e === h ? or(v) : ir(v), v; } } - function tr(e, r, t) { - return _e(e, r, t, !0); + function sr(e, r, t) { + return je(e, r, t, !0); } - function nr(e, r, t) { - return _e(e, r, t, !1); + function cr(e, r, t) { + return je(e, r, t, !1); } - var ar = nr, or = tr; - D.Fragment = R, D.jsx = ar, D.jsxs = or; - }()), D; + var ur = cr, lr = sr; + Y.Fragment = h, Y.jsx = ur, Y.jsxs = lr; + }()), Y; } -(function(h) { - process.env.NODE_ENV === "production" ? h.exports = ur() : h.exports = sr(); -})(ir); -function lr() { - return /* @__PURE__ */ H.jsx("div", { children: "Coming soon." }); +(function(p) { + process.env.NODE_ENV === "production" ? p.exports = pr() : p.exports = gr(); +})(vr); +function R(...p) { + return p.filter(Boolean).join(" "); +} +const hr = "_parent_s5iu1_8", mr = "_fadeInOpacity_s5iu1_1", yr = "_backdrop_shadow_s5iu1_31", br = "_fadeInBlur_s5iu1_1", Er = "_backdrop_s5iu1_31", Rr = "_container_s5iu1_59", xr = "_foreground_s5iu1_66", W = { + parent: hr, + fadeInOpacity: mr, + "search-icon": "_search-icon_s5iu1_27", + backdrop_shadow: yr, + fadeInBlur: br, + backdrop: Er, + container: Rr, + foreground: xr +}; +function wr({ children: p, didDismiss: m, className: _ }) { + const h = re(null); + function S(y) { + y.target === h.current && m(); + } + return fr(() => { + function y(j) { + j.code === "Escape" && (m(), document.removeEventListener("keydown", y)); + } + return document.addEventListener("keydown", y), () => { + document.removeEventListener("keydown", y); + }; + }, []), /* @__PURE__ */ f.jsxs( + "div", + { + className: R(W.parent, _), + "aria-labelledby": "modal-title", + role: "dialog", + "aria-modal": "true", + onClick: S, + children: [ + /* @__PURE__ */ f.jsx("div", { className: W.backdrop_shadow }), + /* @__PURE__ */ f.jsx("div", { className: W.container, children: /* @__PURE__ */ f.jsx("div", { className: W.backdrop, ref: h, children: /* @__PURE__ */ f.jsx("div", { className: W.foreground, children: /* @__PURE__ */ f.jsx("div", { children: p }) }) }) }) + ] + } + ); +} +const jr = "_list_item_1f3fj_1", Sr = "_suggested_text_1f3fj_21", Tr = "_search_icon_1f3fj_28", Or = "_arrow_right_icon_1f3fj_29", z = { + list_item: jr, + suggested_text: Sr, + search_icon: Tr, + arrow_right_icon: Or +}; +function Cr({ text: p, didSubmitWithValue: m }) { + const _ = re(null); + function h() { + m && m(p); + } + function S() { + var i, c, l; + (l = (c = (i = _ == null ? void 0 : _.current) == null ? void 0 : i.parentElement) == null ? void 0 : c.querySelector("li")) == null || l.focus(); + } + function y() { + var c, l; + const i = (l = (c = _ == null ? void 0 : _.current) == null ? void 0 : c.parentElement) == null ? void 0 : l.querySelector("li:last-child"); + i == null || i.focus(); + } + function j() { + var c; + const i = (c = _ == null ? void 0 : _.current) == null ? void 0 : c.nextSibling; + i ? i.focus() : S(); + } + function g() { + var c; + const i = (c = _ == null ? void 0 : _.current) == null ? void 0 : c.previousSibling; + i ? i.focus() : y(); + } + return /* @__PURE__ */ f.jsxs( + "li", + { + tabIndex: 0, + className: R(z.list_item, "suggestion-search-list-item"), + onKeyDown: (i) => { + i.key === "Enter" && h(), i.key === "ArrowDown" && j(), i.key === "ArrowUp" && g(); + }, + onClick: h, + ref: _, + children: [ + /* @__PURE__ */ f.jsx("img", { className: R(z.search_icon, "search-icon"), src: "icon_search.svg", alt: "Search icon" }), + /* @__PURE__ */ f.jsx("span", { className: R(z.suggested_text, "suggested-text"), children: p }), + /* @__PURE__ */ f.jsx( + "img", + { + className: R(z.arrow_right_icon, "arrow-right-icon"), + src: "icon_arrow-right.svg", + alt: "Arrow right icon" + } + ) + ] + } + ); +} +const kr = "_suggestions_list_1ef85_8", Pr = "_container_1ef85_14", Dr = "_input_container_1ef85_20", Ir = "_input_icon_container_1ef85_29", Ar = "_input_icon_1ef85_29", Fr = "_input_1ef85_20", Nr = "_suggestions_container_1ef85_52", $r = "_suggestions_hint_1ef85_60", k = { + suggestions_list: kr, + container: Pr, + input_container: Dr, + input_icon_container: Ir, + input_icon: Ar, + input: Fr, + suggestions_container: Nr, + suggestions_hint: $r +}; +function Yr({ + setShouldDisplayEzql: p, + didSubmitWithValue: m, + onResults: _, + suggestions: h, + className: S +}) { + const [y, j] = dr(""), g = re(null), i = _r((c) => { + m && m(c); + }, []); + return /* @__PURE__ */ f.jsx(wr, { didDismiss: () => p(!1), className: R("ezql-prompt-modal", S), children: /* @__PURE__ */ f.jsxs("div", { className: R(k.container, "container"), children: [ + /* @__PURE__ */ f.jsxs("div", { className: R(k.input_container, "input-container"), children: [ + /* @__PURE__ */ f.jsx("div", { className: R(k.input_icon_container, "input-icon-container"), children: /* @__PURE__ */ f.jsx("img", { src: "ezql_diamond-small.png", alt: "EZQL Icon", className: R(k.input_icon, "input-icon") }) }), + /* @__PURE__ */ f.jsx( + "input", + { + className: R(k.input, "typography_text_large"), + type: "text", + autoFocus: !0, + placeholder: "Search your database...", + value: y, + onChange: (c) => j(c.target.value), + onKeyDown: (c) => { + var l, x, T, P; + c.key === "Enter" ? i(y) : c.key === "ArrowDown" ? (x = (l = g == null ? void 0 : g.current) == null ? void 0 : l.querySelector("li")) == null || x.focus() : c.key === "ArrowUp" && ((P = (T = g == null ? void 0 : g.current) == null ? void 0 : T.querySelector("li:last-child")) == null || P.focus()); + } + } + ) + ] }), + /* @__PURE__ */ f.jsxs("div", { className: R(k.suggestions_container, "suggestions-container"), children: [ + /* @__PURE__ */ f.jsx("span", { className: R(k.suggestions_hint, "typography_text_small", "suggestions-hint"), children: "Search via plain text EZQL will automatically convert it to a SQL query, you could also try one of the generated prompts." }), + /* @__PURE__ */ f.jsx("ul", { className: R(k.suggestions_list, "suggestions-list"), ref: g, children: h == null ? void 0 : h.map((c) => /* @__PURE__ */ f.jsx(Cr, { text: c, didSubmitWithValue: m }, c)) }) + ] }) + ] }) }); } export { - lr as default + Yr as EzqlPrompt }; diff --git a/src/react-ezql/dist/ezql-prompt.umd.js b/src/react-ezql/dist/ezql-prompt.umd.js index 54c90c4..8310c5e 100644 --- a/src/react-ezql/dist/ezql-prompt.umd.js +++ b/src/react-ezql/dist/ezql-prompt.umd.js @@ -1,4 +1,4 @@ -(function(m,y){typeof exports=="object"&&typeof module<"u"?module.exports=y(require("react")):typeof define=="function"&&define.amd?define(["react"],y):(m=typeof globalThis<"u"?globalThis:m||self,m["EZQL Prompt"]=y(m.React))})(this,function(m){"use strict";var y={},Ce={get exports(){return y},set exports(b){y=b}},x={};/** +(function(I,x){typeof exports=="object"&&typeof module<"u"?x(exports,require("react")):typeof define=="function"&&define.amd?define(["exports","react"],x):(I=typeof globalThis<"u"?globalThis:I||self,x(I["EZQL Prompt"]={},I.React))})(this,function(I,x){"use strict";var l={},Ce={get exports(){return l},set exports(p){l=p}},Y={};/** * @license React * react-jsx-runtime.production.min.js * @@ -6,7 +6,7 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var Z;function Pe(){if(Z)return x;Z=1;var b=m,k=Symbol.for("react.element"),U=Symbol.for("react.fragment"),O=Object.prototype.hasOwnProperty,I=b.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,W={key:!0,ref:!0,__self:!0,__source:!0};function D(R,l,C){var v,g={},_=null,Y=null;C!==void 0&&(_=""+C),l.key!==void 0&&(_=""+l.key),l.ref!==void 0&&(Y=l.ref);for(v in l)O.call(l,v)&&!W.hasOwnProperty(v)&&(g[v]=l[v]);if(R&&R.defaultProps)for(v in l=R.defaultProps,l)g[v]===void 0&&(g[v]=l[v]);return{$$typeof:k,type:R,key:_,ref:Y,props:g,_owner:I.current}}return x.Fragment=U,x.jsx=D,x.jsxs=D,x}var j={};/** + */var ne;function Pe(){if(ne)return Y;ne=1;var p=x,m=Symbol.for("react.element"),_=Symbol.for("react.fragment"),h=Object.prototype.hasOwnProperty,S=p.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,y={key:!0,ref:!0,__self:!0,__source:!0};function T(g,i,c){var f,w={},O=null,D=null;c!==void 0&&(O=""+c),i.key!==void 0&&(O=""+i.key),i.ref!==void 0&&(D=i.ref);for(f in i)h.call(i,f)&&!y.hasOwnProperty(f)&&(w[f]=i[f]);if(g&&g.defaultProps)for(f in i=g.defaultProps,i)w[f]===void 0&&(w[f]=i[f]);return{$$typeof:m,type:g,key:O,ref:D,props:w,_owner:S.current}}return Y.Fragment=_,Y.jsx=T,Y.jsxs=T,Y}var W={};/** * @license React * react-jsx-runtime.development.js * @@ -14,14 +14,14 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var Q;function Se(){return Q||(Q=1,process.env.NODE_ENV!=="production"&&function(){var b=m,k=Symbol.for("react.element"),U=Symbol.for("react.portal"),O=Symbol.for("react.fragment"),I=Symbol.for("react.strict_mode"),W=Symbol.for("react.profiler"),D=Symbol.for("react.provider"),R=Symbol.for("react.context"),l=Symbol.for("react.forward_ref"),C=Symbol.for("react.suspense"),v=Symbol.for("react.suspense_list"),g=Symbol.for("react.memo"),_=Symbol.for("react.lazy"),Y=Symbol.for("react.offscreen"),ee=Symbol.iterator,xe="@@iterator";function je(e){if(e===null||typeof e!="object")return null;var r=ee&&e[ee]||e[xe];return typeof r=="function"?r:null}var P=b.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function c(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&f>=0&&a[s]!==d[f];)f--;for(;s>=1&&f>=0;s--,f--)if(a[s]!==d[f]){if(s!==1||f!==1)do if(s--,f--,f<0||a[s]!==d[f]){var p=` -`+a[s].replace(" at new "," at ");return e.displayName&&p.includes("")&&(p=p.replace("",e.displayName)),typeof e=="function"&&L.set(e,p),p}while(s>=1&&f>=0);break}}}finally{J=!1,B.current=u,Ne(),Error.prepareStackTrace=o}var w=e?e.displayName||e.name:"",Oe=w?$(w):"";return typeof e=="function"&&L.set(e,Oe),Oe}function Me(e,r,t){return ce(e,!1)}function Ue(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function N(e,r,t){if(e==null)return"";if(typeof e=="function")return ce(e,Ue(e));if(typeof e=="string")return $(e);switch(e){case C:return $("Suspense");case v:return $("SuspenseList")}if(typeof e=="object")switch(e.$$typeof){case l:return Me(e.render);case g:return N(e.type,r,t);case _:{var n=e,o=n._payload,u=n._init;try{return N(u(o),r,t)}catch{}}}return""}var V=Object.prototype.hasOwnProperty,de={},ve=P.ReactDebugCurrentFrame;function M(e){if(e){var r=e._owner,t=N(e.type,e._source,r?r.type:null);ve.setExtraStackFrame(t)}else ve.setExtraStackFrame(null)}function Be(e,r,t,n,o){{var u=Function.call.bind(V);for(var i in e)if(u(e,i)){var a=void 0;try{if(typeof e[i]!="function"){var d=Error((n||"React class")+": "+t+" type `"+i+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[i]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw d.name="Invariant Violation",d}a=e[i](r,i,n,t,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(s){a=s}a&&!(a instanceof Error)&&(M(o),c("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",n||"React class",t,i,typeof a),M(null)),a instanceof Error&&!(a.message in de)&&(de[a.message]=!0,M(o),c("Failed %s type: %s",t,a.message),M(null))}}}var qe=Array.isArray;function z(e){return qe(e)}function Je(e){{var r=typeof Symbol=="function"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||"Object";return t}}function ze(e){try{return pe(e),!1}catch{return!0}}function pe(e){return""+e}function ge(e){if(ze(e))return c("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",Je(e)),pe(e)}var A=P.ReactCurrentOwner,Ge={key:!0,ref:!0,__self:!0,__source:!0},he,Ee,G;G={};function Ke(e){if(V.call(e,"ref")){var r=Object.getOwnPropertyDescriptor(e,"ref").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(V.call(e,"key")){var r=Object.getOwnPropertyDescriptor(e,"key").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Xe(e,r){if(typeof e.ref=="string"&&A.current&&r&&A.current.stateNode!==r){var t=h(A.current.type);G[t]||(c('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',h(A.current.type),e.ref),G[t]=!0)}}function Ze(e,r){{var t=function(){he||(he=!0,c("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",r))};t.isReactWarning=!0,Object.defineProperty(e,"key",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){Ee||(Ee=!0,c("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",r))};t.isReactWarning=!0,Object.defineProperty(e,"ref",{get:t,configurable:!0})}}var er=function(e,r,t,n,o,u,i){var a={$$typeof:k,type:e,key:r,ref:t,props:i,_owner:u};return a._store={},Object.defineProperty(a._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,"_self",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,"_source",{configurable:!1,enumerable:!1,writable:!1,value:o}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,o){{var u,i={},a=null,d=null;t!==void 0&&(ge(t),a=""+t),He(r)&&(ge(r.key),a=""+r.key),Ke(r)&&(d=r.ref,Xe(r,o));for(u in r)V.call(r,u)&&!Ge.hasOwnProperty(u)&&(i[u]=r[u]);if(e&&e.defaultProps){var s=e.defaultProps;for(u in s)i[u]===void 0&&(i[u]=s[u])}if(a||d){var f=typeof e=="function"?e.displayName||e.name||"Unknown":e;a&&Ze(i,f),d&&Qe(i,f)}return er(e,a,d,o,n,A.current,i)}}var K=P.ReactCurrentOwner,be=P.ReactDebugCurrentFrame;function S(e){if(e){var r=e._owner,t=N(e.type,e._source,r?r.type:null);be.setExtraStackFrame(t)}else be.setExtraStackFrame(null)}var H;H=!1;function X(e){return typeof e=="object"&&e!==null&&e.$$typeof===k}function me(){{if(K.current){var e=h(K.current.type);if(e)return` + */var ae;function Ie(){return ae||(ae=1,process.env.NODE_ENV!=="production"&&function(){var p=x,m=Symbol.for("react.element"),_=Symbol.for("react.portal"),h=Symbol.for("react.fragment"),S=Symbol.for("react.strict_mode"),y=Symbol.for("react.profiler"),T=Symbol.for("react.provider"),g=Symbol.for("react.context"),i=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),f=Symbol.for("react.suspense_list"),w=Symbol.for("react.memo"),O=Symbol.for("react.lazy"),D=Symbol.for("react.offscreen"),ie=Symbol.iterator,Ne="@@iterator";function Le(e){if(e===null||typeof e!="object")return null;var r=ie&&e[ie]||e[Ne];return typeof r=="function"?r:null}var F=p.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function b(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&v>=0&&a[d]!==E[v];)v--;for(;d>=1&&v>=0;d--,v--)if(a[d]!==E[v]){if(d!==1||v!==1)do if(d--,v--,v<0||a[d]!==E[v]){var j=` +`+a[d].replace(" at new "," at ");return e.displayName&&j.includes("")&&(j=j.replace("",e.displayName)),typeof e=="function"&&q.set(e,j),j}while(d>=1&&v>=0);break}}}finally{Z=!1,K.current=u,Je(),Error.prepareStackTrace=s}var L=e?e.displayName||e.name:"",ke=L?$(L):"";return typeof e=="function"&&q.set(e,ke),ke}function Ke(e,r,t){return ge(e,!1)}function Qe(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function z(e,r,t){if(e==null)return"";if(typeof e=="function")return ge(e,Qe(e));if(typeof e=="string")return $(e);switch(e){case c:return $("Suspense");case f:return $("SuspenseList")}if(typeof e=="object")switch(e.$$typeof){case i:return Ke(e.render);case w:return z(e.type,r,t);case O:{var n=e,s=n._payload,u=n._init;try{return z(u(s),r,t)}catch{}}}return""}var J=Object.prototype.hasOwnProperty,he={},me=F.ReactDebugCurrentFrame;function G(e){if(e){var r=e._owner,t=z(e.type,e._source,r?r.type:null);me.setExtraStackFrame(t)}else me.setExtraStackFrame(null)}function Ze(e,r,t,n,s){{var u=Function.call.bind(J);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!="function"){var E=Error((n||"React class")+": "+t+" type `"+o+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[o]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw E.name="Invariant Violation",E}a=e[o](r,o,n,t,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(d){a=d}a&&!(a instanceof Error)&&(G(s),b("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",n||"React class",t,o,typeof a),G(null)),a instanceof Error&&!(a.message in he)&&(he[a.message]=!0,G(s),b("Failed %s type: %s",t,a.message),G(null))}}}var He=Array.isArray;function H(e){return He(e)}function Xe(e){{var r=typeof Symbol=="function"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||"Object";return t}}function er(e){try{return ye(e),!1}catch{return!0}}function ye(e){return""+e}function be(e){if(er(e))return b("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",Xe(e)),ye(e)}var B=F.ReactCurrentOwner,rr={key:!0,ref:!0,__self:!0,__source:!0},Ee,Re,X;X={};function tr(e){if(J.call(e,"ref")){var r=Object.getOwnPropertyDescriptor(e,"ref").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function nr(e){if(J.call(e,"key")){var r=Object.getOwnPropertyDescriptor(e,"key").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function ar(e,r){if(typeof e.ref=="string"&&B.current&&r&&B.current.stateNode!==r){var t=k(B.current.type);X[t]||(b('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',k(B.current.type),e.ref),X[t]=!0)}}function ir(e,r){{var t=function(){Ee||(Ee=!0,b("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",r))};t.isReactWarning=!0,Object.defineProperty(e,"key",{get:t,configurable:!0})}}function or(e,r){{var t=function(){Re||(Re=!0,b("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",r))};t.isReactWarning=!0,Object.defineProperty(e,"ref",{get:t,configurable:!0})}}var sr=function(e,r,t,n,s,u,o){var a={$$typeof:m,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,"_self",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,"_source",{configurable:!1,enumerable:!1,writable:!1,value:s}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function cr(e,r,t,n,s){{var u,o={},a=null,E=null;t!==void 0&&(be(t),a=""+t),nr(r)&&(be(r.key),a=""+r.key),tr(r)&&(E=r.ref,ar(r,s));for(u in r)J.call(r,u)&&!rr.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var d=e.defaultProps;for(u in d)o[u]===void 0&&(o[u]=d[u])}if(a||E){var v=typeof e=="function"?e.displayName||e.name||"Unknown":e;a&&ir(o,v),E&&or(o,v)}return sr(e,a,E,s,n,B.current,o)}}var ee=F.ReactCurrentOwner,xe=F.ReactDebugCurrentFrame;function N(e){if(e){var r=e._owner,t=z(e.type,e._source,r?r.type:null);xe.setExtraStackFrame(t)}else xe.setExtraStackFrame(null)}var re;re=!1;function te(e){return typeof e=="object"&&e!==null&&e.$$typeof===m}function we(){{if(ee.current){var e=k(ee.current.type);if(e)return` -Check the render method of \``+e+"`."}return""}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\/]/,""),t=e.lineNumber;return` +Check the render method of \``+e+"`."}return""}}function ur(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\/]/,""),t=e.lineNumber;return` -Check your code at `+r+":"+t+"."}return""}}var ye={};function nr(e){{var r=me();if(!r){var t=typeof e=="string"?e:e.displayName||e.name;t&&(r=` +Check your code at `+r+":"+t+"."}return""}}var je={};function lr(e){{var r=we();if(!r){var t=typeof e=="string"?e:e.displayName||e.name;t&&(r=` -Check the top-level render call using <`+t+">.")}return r}}function Re(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ye[t])return;ye[t]=!0;var n="";e&&e._owner&&e._owner!==K.current&&(n=" It was passed a child from "+h(e._owner.type)+"."),S(e),c('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),S(null)}}function _e(e,r){{if(typeof e!="object")return;if(z(e))for(var t=0;t",a=" Did you accidentally export a JSX literal instead of a component?"):s=typeof e,c("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",s,a)}var f=rr(e,r,t,o,u);if(f==null)return f;if(i){var p=r.children;if(p!==void 0)if(n)if(z(p)){for(var w=0;w.")}return r}}function Te(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=lr(r);if(je[t])return;je[t]=!0;var n="";e&&e._owner&&e._owner!==ee.current&&(n=" It was passed a child from "+k(e._owner.type)+"."),N(e),b('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),N(null)}}function Se(e,r){{if(typeof e!="object")return;if(H(e))for(var t=0;t",a=" Did you accidentally export a JSX literal instead of a component?"):d=typeof e,b("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",d,a)}var v=cr(e,r,t,s,u);if(v==null)return v;if(o){var j=r.children;if(j!==void 0)if(n)if(H(j)){for(var L=0;L{function y(T){T.code==="Escape"&&(m(),document.removeEventListener("keydown",y))}return document.addEventListener("keydown",y),()=>{document.removeEventListener("keydown",y)}},[]),l.jsxs("div",{className:R(M.parent,_),"aria-labelledby":"modal-title",role:"dialog","aria-modal":"true",onClick:S,children:[l.jsx("div",{className:M.backdrop_shadow}),l.jsx("div",{className:M.container,children:l.jsx("div",{className:M.backdrop,ref:h,children:l.jsx("div",{className:M.foreground,children:l.jsx("div",{children:p})})})})]})}const V={list_item:"_list_item_1f3fj_1",suggested_text:"_suggested_text_1f3fj_21",search_icon:"_search_icon_1f3fj_28",arrow_right_icon:"_arrow_right_icon_1f3fj_29"};function Ae({text:p,didSubmitWithValue:m}){const _=x.useRef(null);function h(){m&&m(p)}function S(){var i,c,f;(f=(c=(i=_==null?void 0:_.current)==null?void 0:i.parentElement)==null?void 0:c.querySelector("li"))==null||f.focus()}function y(){var c,f;const i=(f=(c=_==null?void 0:_.current)==null?void 0:c.parentElement)==null?void 0:f.querySelector("li:last-child");i==null||i.focus()}function T(){var c;const i=(c=_==null?void 0:_.current)==null?void 0:c.nextSibling;i?i.focus():S()}function g(){var c;const i=(c=_==null?void 0:_.current)==null?void 0:c.previousSibling;i?i.focus():y()}return l.jsxs("li",{tabIndex:0,className:R(V.list_item,"suggestion-search-list-item"),onKeyDown:i=>{i.key==="Enter"&&h(),i.key==="ArrowDown"&&T(),i.key==="ArrowUp"&&g()},onClick:h,ref:_,children:[l.jsx("img",{className:R(V.search_icon,"search-icon"),src:"icon_search.svg",alt:"Search icon"}),l.jsx("span",{className:R(V.suggested_text,"suggested-text"),children:p}),l.jsx("img",{className:R(V.arrow_right_icon,"arrow-right-icon"),src:"icon_arrow-right.svg",alt:"Arrow right icon"})]})}const P={suggestions_list:"_suggestions_list_1ef85_8",container:"_container_1ef85_14",input_container:"_input_container_1ef85_20",input_icon_container:"_input_icon_container_1ef85_29",input_icon:"_input_icon_1ef85_29",input:"_input_1ef85_20",suggestions_container:"_suggestions_container_1ef85_52",suggestions_hint:"_suggestions_hint_1ef85_60"};function Fe({setShouldDisplayEzql:p,didSubmitWithValue:m,onResults:_,suggestions:h,className:S}){const[y,T]=x.useState(""),g=x.useRef(null),i=x.useCallback(c=>{m&&m(c)},[]);return l.jsx(De,{didDismiss:()=>p(!1),className:R("ezql-prompt-modal",S),children:l.jsxs("div",{className:R(P.container,"container"),children:[l.jsxs("div",{className:R(P.input_container,"input-container"),children:[l.jsx("div",{className:R(P.input_icon_container,"input-icon-container"),children:l.jsx("img",{src:"ezql_diamond-small.png",alt:"EZQL Icon",className:R(P.input_icon,"input-icon")})}),l.jsx("input",{className:R(P.input,"typography_text_large"),type:"text",autoFocus:!0,placeholder:"Search your database...",value:y,onChange:c=>T(c.target.value),onKeyDown:c=>{var f,w,O,D;c.key==="Enter"?i(y):c.key==="ArrowDown"?(w=(f=g==null?void 0:g.current)==null?void 0:f.querySelector("li"))==null||w.focus():c.key==="ArrowUp"&&((D=(O=g==null?void 0:g.current)==null?void 0:O.querySelector("li:last-child"))==null||D.focus())}})]}),l.jsxs("div",{className:R(P.suggestions_container,"suggestions-container"),children:[l.jsx("span",{className:R(P.suggestions_hint,"typography_text_small","suggestions-hint"),children:"Search via plain text EZQL will automatically convert it to a SQL query, you could also try one of the generated prompts."}),l.jsx("ul",{className:R(P.suggestions_list,"suggestions-list"),ref:g,children:h==null?void 0:h.map(c=>l.jsx(Ae,{text:c,didSubmitWithValue:m},c))})]})]})})}I.EzqlPrompt=Fe,Object.defineProperty(I,Symbol.toStringTag,{value:"Module"})}); diff --git a/src/react-ezql/index.html b/src/react-ezql/index.html index e69de29..e0d1c84 100644 --- a/src/react-ezql/index.html +++ b/src/react-ezql/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite + React + TS + + +
+ + + diff --git a/src/react-ezql/package.json b/src/react-ezql/package.json index c04b7e1..2eb8025 100644 --- a/src/react-ezql/package.json +++ b/src/react-ezql/package.json @@ -21,7 +21,7 @@ "test": "vitest run", "watch": "vitest", "coverage": "vitest run --coverage", - "prepare": "rm -rf ./dist && npm run build" + "prepack": "rm -rf ./dist && npm run build" }, "browserslist": { "production": [ @@ -39,7 +39,8 @@ "env": { "browser": true, "node": true, - "es2020": true + "es2020": true, + "react/react-in-jsx-scope": "off" }, "extends": [ "eslint:recommended", diff --git a/src/react-ezql/public/ezql_diamond-small.png b/src/react-ezql/public/ezql_diamond-small.png new file mode 100644 index 0000000000000000000000000000000000000000..5c9fcd8bbfc99b8abbc71e34852a021c1d8fc1a6 GIT binary patch literal 1693 zcmV;O24eY%P)Tp|LqQlZEO z3Pb@^mMFnW8lO@aCy}DVPVCs{y}SLHKi=%wiH*;80umK-n%mu(-TB`8-ZyU^z<<=p zv%GAref&Nl#9FX~0I^T=EkEjo$BVoFnJ0$fcsAz19)lkON{$5CS$qPoP3*1h=PF`M zV4ngzgCkeLAs!4w;i$HlEzXu!mN={fg97jtv;@xZrC)(BybtW^Y#)5LcTeq6_R(}U z?~LKl0k*+5IJ_FX1p$2lZhBv8yJlipQClNTy|}ojr)H;&i`}yUO(G}n z3W9U~C0d4)qCkql8FpFfDDZ~BulA7ADt27&Ao>Q!2nBF@^fYZHz_tK9$#{-c#2HqE z56u=bqtKWD-lHePnUqGkkb$>a0M=Y=(rvnr267h7&(G6_-=M+hhCnmDh^ah3Y2QI1 zoFF~{t1S=)!>ndMF@^?-?)lyt@M3ME?^U1ngMoGgFg`g>SAF1u3NMV~+;G)9MTW`c zY}cXQY!7>CftAPw|7H5R&a+$^bo`uH<4dKC!hH&)dl{R_R90*knLo5CHe==qw3yY{ z2aXUzvlYNf>>U8pu|P-36_JpffFVzeR(SqVi!HPk_JQq2CFn9~LX(fdm=`2tfwsvo z)X8~XBR8@{APDFdiYh_+P{p)FfaU>on|u`C(m&XO3^#jm#G*?2QW;fv)#a$Z-03db zvgcy4h@l^235`5uq|cAj&#dZupzj*ct9YN_+ui<{o8v|Jm{;hS0OlQ|g7b2J|LxvW z`-66yl3qLHOcTM+<=zHvt2T9uS}-Uu?33-G?|Tt~bBuX%hP#a^VBREd?M zlxE7qeKkM~+e3|NgODB}=rct_samlu{b!%1%nMYS6M}wd`&6!EG6%P}%!&=uHPfX| zGQs}6M7IN!wPyBT0V{9>snMHo&1&4AcMPPrG?)hn5cXfTUA&?-@(%;*KE^II*F4s@ zX>A=~Aka?GCR)g19&FwgjP=2=HvDc9_-RKrE-t2xU{T*Vr^4(^l5mSWU_TlLy6ok( zTLWWc_j}|TN^!pGzG)fbgI3bY1X7hg(AROc3%KacK5{821KK_|<(mF9p&&huIU@l* z)&i5AS9So9^J;R!i6}KX0_`y)Ddh?7hI=^lJ#i;c0R5v4zal6C@bNw+znBQ_1M zx=w|Sd$CPbvMTG(J*VnkT~D2z+H>MQ*{~?_8N4oUfQg2l*NTHwX)d8$#6**aNY{6y zj4~c~vBB;kV8{H7^1MTOCgRK_{?PO3{WfU0h}2E*rH=2W&P~}FOL0Hxpx97ag^~&c zvPO{5d_z6{hE?R4W5hKl((9O@@toyiKC6$8#*G(l$uBxlPX_Hl(w4Nm@`gT@VBBSo7{6{ici?oaHG)xaHP!29mP#p6Y z=2^Wy$&>LlQIHkk1zkZsOgir1%UhEsMg|=zOQ%Y5;r4=ReAQ3~)piHhb!fum + + + diff --git a/src/react-ezql/public/icon_search.svg b/src/react-ezql/public/icon_search.svg new file mode 100644 index 0000000..2ce760b --- /dev/null +++ b/src/react-ezql/public/icon_search.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/react-ezql/src/App.tsx b/src/react-ezql/src/App.tsx index 2eab128..535d17c 100644 --- a/src/react-ezql/src/App.tsx +++ b/src/react-ezql/src/App.tsx @@ -1,8 +1,46 @@ import './App.css' -import EzqlPrompt from '.' +import EzqlPrompt from './components/ezql-prompt' +import { useEffect, useState } from 'react' + +const TRIGGERS = ['KeyK', 'Slash'] function App() { - return + const [shouldDisplayEzql, setShouldDisplayEzql] = useState(false) + const suggestions = ['How many books sold last week', 'How many new users signed up today'] + + // listen for the trigger to display the modal + useEffect(() => { + function ezqlTriggerListener(ev: KeyboardEvent) { + if (TRIGGERS.includes(ev.code) && ev.getModifierState('Meta')) { + setShouldDisplayEzql(true) + } + } + + // BEGIN listening for the trigger(s) + document.addEventListener('keydown', ezqlTriggerListener) + + return () => { + // STOP listening for the trigger(s) + document.removeEventListener('keydown', ezqlTriggerListener) + } + }, []) + + return ( + <> + {shouldDisplayEzql && ( + { + console.log(`query: ${value}`) + setShouldDisplayEzql(false) + }} + onResults={(json) => console.dir(json)} + className="optional-for-styling-convenience" + /> + )} + + ) } export default App diff --git a/src/react-ezql/src/__snapshots__/index.test.tsx.snap b/src/react-ezql/src/__snapshots__/index.test.tsx.snap index ff6b231..23b0112 100644 --- a/src/react-ezql/src/__snapshots__/index.test.tsx.snap +++ b/src/react-ezql/src/__snapshots__/index.test.tsx.snap @@ -1,7 +1,67 @@ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`EzqlPrompt > component renders correctly 1`] = ` -
- Coming soon. +
+
+
+
+
+
+
+
+
+ EZQL Icon +
+ +
+
+ + Search via plain text EZQL will automatically convert it to a SQL query, you could also try one of the generated prompts. + +
    +
+
+
+
+
+
`; diff --git a/src/react-ezql/src/components/ezql-prompt.module.css b/src/react-ezql/src/components/ezql-prompt.module.css new file mode 100644 index 0000000..4ccce84 --- /dev/null +++ b/src/react-ezql/src/components/ezql-prompt.module.css @@ -0,0 +1,62 @@ +:root { + --color-gray-300: #eeeeee; + --color-gray-500: #959497; + --color-gray-600: #5e5d61; + --color-gray-800: #03020c; +} + +.suggestions_list { + padding: 0; + cursor: pointer; + color: var(--color-gray-800); +} + +.container { + display: flex; + flex: auto; + flex-direction: column; +} + +.input_container { + display: flex; + border-bottom: 1px solid var(--color-gray-300); + padding: 0 16px 8px 16px; + margin: 8px 0 8px 0; + padding-bottom: 8px; + /* flex: 1 1 auto; */ +} + +.input_icon_container { + margin-right: 0.5rem /* 8px */; + display: flex; + align-items: center; +} + +.input_icon { + margin-left: -0.25rem /* -4px */; +} + +.input { + background: transparent; + text-align: center; + width: 100%; + text-align: left; + color: var(--color-gray-800); + border: none; +} + +input::placeholder { + color: var(--color-gray-500); +} + +.suggestions_container { + padding-left: 1rem /* 16px */; + padding-right: 1rem /* 16px */; + display: flex; + flex-direction: column; + flex: 1 1 auto; +} + +.suggestions_hint { + color: var(--color-gray-500); +} diff --git a/src/react-ezql/src/components/ezql-prompt.tsx b/src/react-ezql/src/components/ezql-prompt.tsx new file mode 100644 index 0000000..a929a51 --- /dev/null +++ b/src/react-ezql/src/components/ezql-prompt.tsx @@ -0,0 +1,69 @@ +import { useCallback, useRef, useState } from 'react' +import Modal from './modal' +import { SuggestSearchListItem } from './suggest-search-list-item' +import { classNames } from '../lib/class-names' + +import styles from './ezql-prompt.module.css' + +export type EzqlPromptOpts = { + setShouldDisplayEzql: (value: boolean) => void + onResults: (data: object) => void + didSubmitWithValue?: (query: string) => void + suggestions?: Array + className?: string +} + +export default function EzqlPrompt({ + setShouldDisplayEzql, + didSubmitWithValue, + onResults, + suggestions, + className, +}: EzqlPromptOpts) { + const [query, setQuery] = useState('') + const listRef = useRef(null) + + const onSubmission = useCallback((value: string) => { + if (didSubmitWithValue) didSubmitWithValue(value) + + // TODO make request to Outerbase + // and pass the result to onResults() + }, []) + + return ( + setShouldDisplayEzql(false)} className={classNames('ezql-prompt-modal', className)}> +
+
+
+ EZQL Icon +
+ setQuery(ev.target.value)} + onKeyDown={(ev) => { + if (ev.key === 'Enter') onSubmission(query) + else if (ev.key === 'ArrowDown') listRef?.current?.querySelector('li')?.focus() + else if (ev.key === 'ArrowUp') listRef?.current?.querySelector('li:last-child')?.focus() + }} + /> +
+ +
+ + Search via plain text EZQL will automatically convert it to a SQL query, you could also try one of the + generated prompts. + +
    + {suggestions?.map((text) => ( + + ))} +
+
+
+
+ ) +} diff --git a/src/react-ezql/src/components/modal.module.css b/src/react-ezql/src/components/modal.module.css new file mode 100644 index 0000000..cb610ba --- /dev/null +++ b/src/react-ezql/src/components/modal.module.css @@ -0,0 +1,83 @@ +/* TODO define variables */ +:root { + --blurry-background: rgba(255, 255, 255, 0.6); + --color-gray-200: #f9f9f9; + --color-gray-300: #eeeeee; +} + +.parent { + position: relative; + z-index: 100; + opacity: 1; + animation-name: fadeInOpacity; + animation-iteration-count: 1; + animation-timing-function: ease-in; + animation-duration: 0.1s; +} + +@keyframes fadeInOpacity { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} + +.search-icon { + margin: 0 0.75rem; +} + +.backdrop_shadow { + position: fixed; + inset: 0; + background-color: var(--blurry-background); + backdrop-filter: blur(4px); + animation-name: fadeInBlur; + animation-iteration-count: 1; + animation-timing-function: ease-in; + animation-duration: 0.2s; +} + +@keyframes fadeInBlur { + 0% { + backdrop-filter: blur(0px); + } + 100% { + backdrop-filter: blur(4px); + } +} + +.backdrop { + display: flex; + min-height: 100%; + justify-items: end; + justify-content: center; + align-items: center; +} + +.container { + position: fixed; + inset: 0; + z-index: 10; + overflow-y: auto; +} + +.foreground { + border-radius: 0.375rem /* 6px */; + background-color: var(--color-gray-200); + border: 1px solid var(--color-gray-300); + text-align: left; + width: 100%; + max-width: 48rem /* 896px */; + box-shadow: 0 0 16px var(--color-gray-300); +} + +/* this min-height ensures that the modal doesn't get clipped above the viewport + when being shifted with a negative margin. + i.e. the modal remains centered when the window isn't sufficiently tall */ +@media (min-height: 34rem) { + .foreground { + margin-top: -25%; + } +} diff --git a/src/react-ezql/src/components/modal.tsx b/src/react-ezql/src/components/modal.tsx new file mode 100644 index 0000000..163c61c --- /dev/null +++ b/src/react-ezql/src/components/modal.tsx @@ -0,0 +1,51 @@ +import { useRef, MouseEvent, PropsWithChildren, useEffect } from 'react' +import { classNames } from '../lib/class-names' + +import styles from './modal.module.css' + +type ModalOpts = { + didDismiss: () => void + className: string +} + +export default function Modal({ children, didDismiss, className }: PropsWithChildren) { + const bgDivRef = useRef(null) + + function dismissWhenBgClicked(ev: MouseEvent) { + if (ev.target === bgDivRef.current) didDismiss() + } + + // dismiss modal `Escape` key is pressed + useEffect(() => { + function escapeListener(ev: KeyboardEvent) { + if (ev.code === 'Escape') { + didDismiss() + document.removeEventListener('keydown', escapeListener) + } + } + + document.addEventListener('keydown', escapeListener) + return () => { + document.removeEventListener('keydown', escapeListener) + } + }, []) + + return ( +
+
+
+
+
+
{children}
+
+
+
+
+ ) +} diff --git a/src/react-ezql/src/components/suggest-search-list-item.module.css b/src/react-ezql/src/components/suggest-search-list-item.module.css new file mode 100644 index 0000000..619c976 --- /dev/null +++ b/src/react-ezql/src/components/suggest-search-list-item.module.css @@ -0,0 +1,37 @@ +.list_item { + display: flex; + padding: 8px 0; + border-radius: 4px; +} + +.list_item:not(:first-child) { + margin-top: 8px; +} + +.list_item:not(:last-child) { + margin-bottom: 8px; +} + +.list_item:hover, +.list_item:focus { + background-color: var(--color-gray-300); + outline: none; +} + +.suggested_text { + text-overflow: ellipsis; + overflow-y: hidden; + white-space: nowrap; + flex: auto; +} + +.search_icon, +.arrow_right_icon { + margin-left: 0.75rem /* 12px */; + margin-right: 0.75rem /* 12px */; + filter: var(--filter-color-gray-800); +} + +.arrow_right_icon { + filter: var(--filter-color-gray-600); +} diff --git a/src/react-ezql/src/components/suggest-search-list-item.tsx b/src/react-ezql/src/components/suggest-search-list-item.tsx new file mode 100644 index 0000000..0a32a24 --- /dev/null +++ b/src/react-ezql/src/components/suggest-search-list-item.tsx @@ -0,0 +1,68 @@ +import { useRef } from 'react' +import { classNames } from '../lib/class-names' + +import styles from './suggest-search-list-item.module.css' + +type SuggestSearchListItemOpts = { + text: string + didSubmitWithValue?: (text: string) => void +} + +export function SuggestSearchListItem({ text, didSubmitWithValue }: SuggestSearchListItemOpts) { + const selfRef = useRef(null) + + function didSelectItem() { + if (didSubmitWithValue) didSubmitWithValue(text) + } + + function selectFirstItem() { + selfRef?.current?.parentElement?.querySelector('li')?.focus() + } + + function selectLastItem() { + const lastEl = selfRef?.current?.parentElement?.querySelector('li:last-child') + lastEl?.focus() + } + + function selectNextItem() { + const next = selfRef?.current?.nextSibling as HTMLElement | null | undefined + + if (next) { + next.focus() + } else { + selectFirstItem() + } + } + + function selectPrevItem() { + const prev = selfRef?.current?.previousSibling as HTMLElement | null | undefined + + if (prev) { + prev.focus() + } else { + selectLastItem() + } + } + + return ( +
  • { + if (ev.key === 'Enter') didSelectItem() + if (ev.key === 'ArrowDown') selectNextItem() + if (ev.key === 'ArrowUp') selectPrevItem() + }} + onClick={didSelectItem} + ref={selfRef} + > + Search icon + {text} + Arrow right icon +
  • + ) +} diff --git a/src/react-ezql/src/index.test.tsx b/src/react-ezql/src/index.test.tsx index 13122aa..2d94587 100644 --- a/src/react-ezql/src/index.test.tsx +++ b/src/react-ezql/src/index.test.tsx @@ -1,10 +1,10 @@ import renderer from 'react-test-renderer' import { describe, expect, test } from 'vitest' -import EzqlPrompt from './index' +import EzqlPrompt from './components/ezql-prompt' describe('EzqlPrompt', () => { test('component renders correctly', () => { - const component = renderer.create() + const component = renderer.create( {}} />) const tree = component.toJSON() diff --git a/src/react-ezql/src/index.tsx b/src/react-ezql/src/index.tsx index 0b3eeb5..de7fe4f 100644 --- a/src/react-ezql/src/index.tsx +++ b/src/react-ezql/src/index.tsx @@ -1,3 +1,3 @@ -export default function EzqlPrompt() { - return
    Coming soon.
    -} +import EzqlPrompt from './components/ezql-prompt' + +export { EzqlPrompt } diff --git a/src/react-ezql/src/integration.test.tsx b/src/react-ezql/src/integration.test.tsx index 38c2d62..e00ec4c 100644 --- a/src/react-ezql/src/integration.test.tsx +++ b/src/react-ezql/src/integration.test.tsx @@ -1,12 +1,11 @@ import { render, screen, cleanup } from '@testing-library/react' import { describe, expect, test, afterEach } from 'vitest' -import EzqlPrompt from './index' +import EzqlPrompt from './components/ezql-prompt' describe('Integration test', () => { afterEach(cleanup) test('Minimal render display expected text', () => { - render() - expect(screen.getByText('Coming soon.')) + render( {}} />) }) }) diff --git a/src/react-ezql/src/lib/class-names.tsx b/src/react-ezql/src/lib/class-names.tsx new file mode 100644 index 0000000..2c3e5a9 --- /dev/null +++ b/src/react-ezql/src/lib/class-names.tsx @@ -0,0 +1,3 @@ +export function classNames(...classes: Array) { + return classes.filter(Boolean).join(' ') +} diff --git a/src/react-ezql/src/index.css b/src/react-ezql/src/main.css similarity index 100% rename from src/react-ezql/src/index.css rename to src/react-ezql/src/main.css diff --git a/src/react-ezql/src/main.tsx b/src/react-ezql/src/main.tsx index 611e848..f528647 100644 --- a/src/react-ezql/src/main.tsx +++ b/src/react-ezql/src/main.tsx @@ -1,7 +1,7 @@ import React from 'react' import ReactDOM from 'react-dom/client' import App from './App' -import './index.css' +import './main.css' ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( From 7e75dd237deea4608ec5c6fa14e2a0a00010662e Mon Sep 17 00:00:00 2001 From: Johnny Domino Date: Fri, 3 Mar 2023 15:43:52 -0500 Subject: [PATCH 04/10] 2 builds: exposed module (existing) and web demo (new) remove `react-ezql/dist` as `npm pack` will create it --- src/react-ezql/dist/ezql-prompt.es.js | 779 ------------------ src/react-ezql/dist/ezql-prompt.umd.js | 27 - src/react-ezql/package.json | 18 +- src/react-ezql/src/App.tsx | 4 + src/react-ezql/tsconfig.node.json | 2 +- .../{vite.config.ts => vite.config.module.ts} | 1 + src/react-ezql/vite.config.web.ts | 9 + 7 files changed, 25 insertions(+), 815 deletions(-) delete mode 100644 src/react-ezql/dist/ezql-prompt.es.js delete mode 100644 src/react-ezql/dist/ezql-prompt.umd.js rename src/react-ezql/{vite.config.ts => vite.config.module.ts} (94%) create mode 100644 src/react-ezql/vite.config.web.ts diff --git a/src/react-ezql/dist/ezql-prompt.es.js b/src/react-ezql/dist/ezql-prompt.es.js deleted file mode 100644 index c329674..0000000 --- a/src/react-ezql/dist/ezql-prompt.es.js +++ /dev/null @@ -1,779 +0,0 @@ -import Ce, { useRef as re, useEffect as fr, useState as dr, useCallback as _r } from "react"; -var f = {}, vr = { - get exports() { - return f; - }, - set exports(p) { - f = p; - } -}, L = {}; -/** - * @license React - * react-jsx-runtime.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ -var Te; -function pr() { - if (Te) - return L; - Te = 1; - var p = Ce, m = Symbol.for("react.element"), _ = Symbol.for("react.fragment"), h = Object.prototype.hasOwnProperty, S = p.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, y = { key: !0, ref: !0, __self: !0, __source: !0 }; - function j(g, i, c) { - var l, x = {}, T = null, P = null; - c !== void 0 && (T = "" + c), i.key !== void 0 && (T = "" + i.key), i.ref !== void 0 && (P = i.ref); - for (l in i) - h.call(i, l) && !y.hasOwnProperty(l) && (x[l] = i[l]); - if (g && g.defaultProps) - for (l in i = g.defaultProps, i) - x[l] === void 0 && (x[l] = i[l]); - return { $$typeof: m, type: g, key: T, ref: P, props: x, _owner: S.current }; - } - return L.Fragment = _, L.jsx = j, L.jsxs = j, L; -} -var Y = {}; -/** - * @license React - * react-jsx-runtime.development.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ -var Oe; -function gr() { - return Oe || (Oe = 1, process.env.NODE_ENV !== "production" && function() { - var p = Ce, m = Symbol.for("react.element"), _ = Symbol.for("react.portal"), h = Symbol.for("react.fragment"), S = Symbol.for("react.strict_mode"), y = Symbol.for("react.profiler"), j = Symbol.for("react.provider"), g = Symbol.for("react.context"), i = Symbol.for("react.forward_ref"), c = Symbol.for("react.suspense"), l = Symbol.for("react.suspense_list"), x = Symbol.for("react.memo"), T = Symbol.for("react.lazy"), P = Symbol.for("react.offscreen"), te = Symbol.iterator, ke = "@@iterator"; - function Pe(e) { - if (e === null || typeof e != "object") - return null; - var r = te && e[te] || e[ke]; - return typeof r == "function" ? r : null; - } - var I = p.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; - function b(e) { - { - for (var r = arguments.length, t = new Array(r > 1 ? r - 1 : 0), n = 1; n < r; n++) - t[n - 1] = arguments[n]; - De("error", e, t); - } - } - function De(e, r, t) { - { - var n = I.ReactDebugCurrentFrame, s = n.getStackAddendum(); - s !== "" && (r += "%s", t = t.concat([s])); - var u = t.map(function(o) { - return String(o); - }); - u.unshift("Warning: " + r), Function.prototype.apply.call(console[e], console, u); - } - } - var Ie = !1, Ae = !1, Fe = !1, Ne = !1, $e = !1, ne; - ne = Symbol.for("react.module.reference"); - function Le(e) { - return !!(typeof e == "string" || typeof e == "function" || e === h || e === y || $e || e === S || e === c || e === l || Ne || e === P || Ie || Ae || Fe || typeof e == "object" && e !== null && (e.$$typeof === T || e.$$typeof === x || e.$$typeof === j || e.$$typeof === g || e.$$typeof === i || // This needs to include all possible module reference object - // types supported by any Flight configuration anywhere since - // we don't know which Flight build this will end up being used - // with. - e.$$typeof === ne || e.getModuleId !== void 0)); - } - function Ye(e, r, t) { - var n = e.displayName; - if (n) - return n; - var s = r.displayName || r.name || ""; - return s !== "" ? t + "(" + s + ")" : t; - } - function ae(e) { - return e.displayName || "Context"; - } - function O(e) { - if (e == null) - return null; - if (typeof e.tag == "number" && b("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."), typeof e == "function") - return e.displayName || e.name || null; - if (typeof e == "string") - return e; - switch (e) { - case h: - return "Fragment"; - case _: - return "Portal"; - case y: - return "Profiler"; - case S: - return "StrictMode"; - case c: - return "Suspense"; - case l: - return "SuspenseList"; - } - if (typeof e == "object") - switch (e.$$typeof) { - case g: - var r = e; - return ae(r) + ".Consumer"; - case j: - var t = e; - return ae(t._context) + ".Provider"; - case i: - return Ye(e, e.render, "ForwardRef"); - case x: - var n = e.displayName || null; - return n !== null ? n : O(e.type) || "Memo"; - case T: { - var s = e, u = s._payload, o = s._init; - try { - return O(o(u)); - } catch { - return null; - } - } - } - return null; - } - var D = Object.assign, N = 0, ie, oe, se, ce, ue, le, fe; - function de() { - } - de.__reactDisabledLog = !0; - function We() { - { - if (N === 0) { - ie = console.log, oe = console.info, se = console.warn, ce = console.error, ue = console.group, le = console.groupCollapsed, fe = console.groupEnd; - var e = { - configurable: !0, - enumerable: !0, - value: de, - writable: !0 - }; - Object.defineProperties(console, { - info: e, - log: e, - warn: e, - error: e, - group: e, - groupCollapsed: e, - groupEnd: e - }); - } - N++; - } - } - function Ue() { - { - if (N--, N === 0) { - var e = { - configurable: !0, - enumerable: !0, - writable: !0 - }; - Object.defineProperties(console, { - log: D({}, e, { - value: ie - }), - info: D({}, e, { - value: oe - }), - warn: D({}, e, { - value: se - }), - error: D({}, e, { - value: ce - }), - group: D({}, e, { - value: ue - }), - groupCollapsed: D({}, e, { - value: le - }), - groupEnd: D({}, e, { - value: fe - }) - }); - } - N < 0 && b("disabledDepth fell below zero. This is a bug in React. Please file an issue."); - } - } - var J = I.ReactCurrentDispatcher, G; - function U(e, r, t) { - { - if (G === void 0) - try { - throw Error(); - } catch (s) { - var n = s.stack.trim().match(/\n( *(at )?)/); - G = n && n[1] || ""; - } - return ` -` + G + e; - } - } - var K = !1, q; - { - var qe = typeof WeakMap == "function" ? WeakMap : Map; - q = new qe(); - } - function _e(e, r) { - if (!e || K) - return ""; - { - var t = q.get(e); - if (t !== void 0) - return t; - } - var n; - K = !0; - var s = Error.prepareStackTrace; - Error.prepareStackTrace = void 0; - var u; - u = J.current, J.current = null, We(); - try { - if (r) { - var o = function() { - throw Error(); - }; - if (Object.defineProperty(o.prototype, "props", { - set: function() { - throw Error(); - } - }), typeof Reflect == "object" && Reflect.construct) { - try { - Reflect.construct(o, []); - } catch (C) { - n = C; - } - Reflect.construct(e, [], o); - } else { - try { - o.call(); - } catch (C) { - n = C; - } - e.call(o.prototype); - } - } else { - try { - throw Error(); - } catch (C) { - n = C; - } - e(); - } - } catch (C) { - if (C && n && typeof C.stack == "string") { - for (var a = C.stack.split(` -`), E = n.stack.split(` -`), d = a.length - 1, v = E.length - 1; d >= 1 && v >= 0 && a[d] !== E[v]; ) - v--; - for (; d >= 1 && v >= 0; d--, v--) - if (a[d] !== E[v]) { - if (d !== 1 || v !== 1) - do - if (d--, v--, v < 0 || a[d] !== E[v]) { - var w = ` -` + a[d].replace(" at new ", " at "); - return e.displayName && w.includes("") && (w = w.replace("", e.displayName)), typeof e == "function" && q.set(e, w), w; - } - while (d >= 1 && v >= 0); - break; - } - } - } finally { - K = !1, J.current = u, Ue(), Error.prepareStackTrace = s; - } - var F = e ? e.displayName || e.name : "", Se = F ? U(F) : ""; - return typeof e == "function" && q.set(e, Se), Se; - } - function Me(e, r, t) { - return _e(e, !1); - } - function Be(e) { - var r = e.prototype; - return !!(r && r.isReactComponent); - } - function M(e, r, t) { - if (e == null) - return ""; - if (typeof e == "function") - return _e(e, Be(e)); - if (typeof e == "string") - return U(e); - switch (e) { - case c: - return U("Suspense"); - case l: - return U("SuspenseList"); - } - if (typeof e == "object") - switch (e.$$typeof) { - case i: - return Me(e.render); - case x: - return M(e.type, r, t); - case T: { - var n = e, s = n._payload, u = n._init; - try { - return M(u(s), r, t); - } catch { - } - } - } - return ""; - } - var B = Object.prototype.hasOwnProperty, ve = {}, pe = I.ReactDebugCurrentFrame; - function V(e) { - if (e) { - var r = e._owner, t = M(e.type, e._source, r ? r.type : null); - pe.setExtraStackFrame(t); - } else - pe.setExtraStackFrame(null); - } - function Ve(e, r, t, n, s) { - { - var u = Function.call.bind(B); - for (var o in e) - if (u(e, o)) { - var a = void 0; - try { - if (typeof e[o] != "function") { - var E = Error((n || "React class") + ": " + t + " type `" + o + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + typeof e[o] + "`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`."); - throw E.name = "Invariant Violation", E; - } - a = e[o](r, o, n, t, null, "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"); - } catch (d) { - a = d; - } - a && !(a instanceof Error) && (V(s), b("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).", n || "React class", t, o, typeof a), V(null)), a instanceof Error && !(a.message in ve) && (ve[a.message] = !0, V(s), b("Failed %s type: %s", t, a.message), V(null)); - } - } - } - var ze = Array.isArray; - function Q(e) { - return ze(e); - } - function Je(e) { - { - var r = typeof Symbol == "function" && Symbol.toStringTag, t = r && e[Symbol.toStringTag] || e.constructor.name || "Object"; - return t; - } - } - function Ge(e) { - try { - return ge(e), !1; - } catch { - return !0; - } - } - function ge(e) { - return "" + e; - } - function he(e) { - if (Ge(e)) - return b("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.", Je(e)), ge(e); - } - var $ = I.ReactCurrentOwner, Ke = { - key: !0, - ref: !0, - __self: !0, - __source: !0 - }, me, ye, H; - H = {}; - function Qe(e) { - if (B.call(e, "ref")) { - var r = Object.getOwnPropertyDescriptor(e, "ref").get; - if (r && r.isReactWarning) - return !1; - } - return e.ref !== void 0; - } - function He(e) { - if (B.call(e, "key")) { - var r = Object.getOwnPropertyDescriptor(e, "key").get; - if (r && r.isReactWarning) - return !1; - } - return e.key !== void 0; - } - function Xe(e, r) { - if (typeof e.ref == "string" && $.current && r && $.current.stateNode !== r) { - var t = O($.current.type); - H[t] || (b('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref', O($.current.type), e.ref), H[t] = !0); - } - } - function Ze(e, r) { - { - var t = function() { - me || (me = !0, b("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", r)); - }; - t.isReactWarning = !0, Object.defineProperty(e, "key", { - get: t, - configurable: !0 - }); - } - } - function er(e, r) { - { - var t = function() { - ye || (ye = !0, b("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", r)); - }; - t.isReactWarning = !0, Object.defineProperty(e, "ref", { - get: t, - configurable: !0 - }); - } - } - var rr = function(e, r, t, n, s, u, o) { - var a = { - // This tag allows us to uniquely identify this as a React Element - $$typeof: m, - // Built-in properties that belong on the element - type: e, - key: r, - ref: t, - props: o, - // Record the component responsible for creating this element. - _owner: u - }; - return a._store = {}, Object.defineProperty(a._store, "validated", { - configurable: !1, - enumerable: !1, - writable: !0, - value: !1 - }), Object.defineProperty(a, "_self", { - configurable: !1, - enumerable: !1, - writable: !1, - value: n - }), Object.defineProperty(a, "_source", { - configurable: !1, - enumerable: !1, - writable: !1, - value: s - }), Object.freeze && (Object.freeze(a.props), Object.freeze(a)), a; - }; - function tr(e, r, t, n, s) { - { - var u, o = {}, a = null, E = null; - t !== void 0 && (he(t), a = "" + t), He(r) && (he(r.key), a = "" + r.key), Qe(r) && (E = r.ref, Xe(r, s)); - for (u in r) - B.call(r, u) && !Ke.hasOwnProperty(u) && (o[u] = r[u]); - if (e && e.defaultProps) { - var d = e.defaultProps; - for (u in d) - o[u] === void 0 && (o[u] = d[u]); - } - if (a || E) { - var v = typeof e == "function" ? e.displayName || e.name || "Unknown" : e; - a && Ze(o, v), E && er(o, v); - } - return rr(e, a, E, s, n, $.current, o); - } - } - var X = I.ReactCurrentOwner, be = I.ReactDebugCurrentFrame; - function A(e) { - if (e) { - var r = e._owner, t = M(e.type, e._source, r ? r.type : null); - be.setExtraStackFrame(t); - } else - be.setExtraStackFrame(null); - } - var Z; - Z = !1; - function ee(e) { - return typeof e == "object" && e !== null && e.$$typeof === m; - } - function Ee() { - { - if (X.current) { - var e = O(X.current.type); - if (e) - return ` - -Check the render method of \`` + e + "`."; - } - return ""; - } - } - function nr(e) { - { - if (e !== void 0) { - var r = e.fileName.replace(/^.*[\\\/]/, ""), t = e.lineNumber; - return ` - -Check your code at ` + r + ":" + t + "."; - } - return ""; - } - } - var Re = {}; - function ar(e) { - { - var r = Ee(); - if (!r) { - var t = typeof e == "string" ? e : e.displayName || e.name; - t && (r = ` - -Check the top-level render call using <` + t + ">."); - } - return r; - } - } - function xe(e, r) { - { - if (!e._store || e._store.validated || e.key != null) - return; - e._store.validated = !0; - var t = ar(r); - if (Re[t]) - return; - Re[t] = !0; - var n = ""; - e && e._owner && e._owner !== X.current && (n = " It was passed a child from " + O(e._owner.type) + "."), A(e), b('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.', t, n), A(null); - } - } - function we(e, r) { - { - if (typeof e != "object") - return; - if (Q(e)) - for (var t = 0; t < e.length; t++) { - var n = e[t]; - ee(n) && xe(n, r); - } - else if (ee(e)) - e._store && (e._store.validated = !0); - else if (e) { - var s = Pe(e); - if (typeof s == "function" && s !== e.entries) - for (var u = s.call(e), o; !(o = u.next()).done; ) - ee(o.value) && xe(o.value, r); - } - } - } - function ir(e) { - { - var r = e.type; - if (r == null || typeof r == "string") - return; - var t; - if (typeof r == "function") - t = r.propTypes; - else if (typeof r == "object" && (r.$$typeof === i || // Note: Memo only checks outer props here. - // Inner props are checked in the reconciler. - r.$$typeof === x)) - t = r.propTypes; - else - return; - if (t) { - var n = O(r); - Ve(t, e.props, "prop", n, e); - } else if (r.PropTypes !== void 0 && !Z) { - Z = !0; - var s = O(r); - b("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?", s || "Unknown"); - } - typeof r.getDefaultProps == "function" && !r.getDefaultProps.isReactClassApproved && b("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead."); - } - } - function or(e) { - { - for (var r = Object.keys(e.props), t = 0; t < r.length; t++) { - var n = r[t]; - if (n !== "children" && n !== "key") { - A(e), b("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.", n), A(null); - break; - } - } - e.ref !== null && (A(e), b("Invalid attribute `ref` supplied to `React.Fragment`."), A(null)); - } - } - function je(e, r, t, n, s, u) { - { - var o = Le(e); - if (!o) { - var a = ""; - (e === void 0 || typeof e == "object" && e !== null && Object.keys(e).length === 0) && (a += " You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports."); - var E = nr(s); - E ? a += E : a += Ee(); - var d; - e === null ? d = "null" : Q(e) ? d = "array" : e !== void 0 && e.$$typeof === m ? (d = "<" + (O(e.type) || "Unknown") + " />", a = " Did you accidentally export a JSX literal instead of a component?") : d = typeof e, b("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s", d, a); - } - var v = tr(e, r, t, s, u); - if (v == null) - return v; - if (o) { - var w = r.children; - if (w !== void 0) - if (n) - if (Q(w)) { - for (var F = 0; F < w.length; F++) - we(w[F], e); - Object.freeze && Object.freeze(w); - } else - b("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."); - else - we(w, e); - } - return e === h ? or(v) : ir(v), v; - } - } - function sr(e, r, t) { - return je(e, r, t, !0); - } - function cr(e, r, t) { - return je(e, r, t, !1); - } - var ur = cr, lr = sr; - Y.Fragment = h, Y.jsx = ur, Y.jsxs = lr; - }()), Y; -} -(function(p) { - process.env.NODE_ENV === "production" ? p.exports = pr() : p.exports = gr(); -})(vr); -function R(...p) { - return p.filter(Boolean).join(" "); -} -const hr = "_parent_s5iu1_8", mr = "_fadeInOpacity_s5iu1_1", yr = "_backdrop_shadow_s5iu1_31", br = "_fadeInBlur_s5iu1_1", Er = "_backdrop_s5iu1_31", Rr = "_container_s5iu1_59", xr = "_foreground_s5iu1_66", W = { - parent: hr, - fadeInOpacity: mr, - "search-icon": "_search-icon_s5iu1_27", - backdrop_shadow: yr, - fadeInBlur: br, - backdrop: Er, - container: Rr, - foreground: xr -}; -function wr({ children: p, didDismiss: m, className: _ }) { - const h = re(null); - function S(y) { - y.target === h.current && m(); - } - return fr(() => { - function y(j) { - j.code === "Escape" && (m(), document.removeEventListener("keydown", y)); - } - return document.addEventListener("keydown", y), () => { - document.removeEventListener("keydown", y); - }; - }, []), /* @__PURE__ */ f.jsxs( - "div", - { - className: R(W.parent, _), - "aria-labelledby": "modal-title", - role: "dialog", - "aria-modal": "true", - onClick: S, - children: [ - /* @__PURE__ */ f.jsx("div", { className: W.backdrop_shadow }), - /* @__PURE__ */ f.jsx("div", { className: W.container, children: /* @__PURE__ */ f.jsx("div", { className: W.backdrop, ref: h, children: /* @__PURE__ */ f.jsx("div", { className: W.foreground, children: /* @__PURE__ */ f.jsx("div", { children: p }) }) }) }) - ] - } - ); -} -const jr = "_list_item_1f3fj_1", Sr = "_suggested_text_1f3fj_21", Tr = "_search_icon_1f3fj_28", Or = "_arrow_right_icon_1f3fj_29", z = { - list_item: jr, - suggested_text: Sr, - search_icon: Tr, - arrow_right_icon: Or -}; -function Cr({ text: p, didSubmitWithValue: m }) { - const _ = re(null); - function h() { - m && m(p); - } - function S() { - var i, c, l; - (l = (c = (i = _ == null ? void 0 : _.current) == null ? void 0 : i.parentElement) == null ? void 0 : c.querySelector("li")) == null || l.focus(); - } - function y() { - var c, l; - const i = (l = (c = _ == null ? void 0 : _.current) == null ? void 0 : c.parentElement) == null ? void 0 : l.querySelector("li:last-child"); - i == null || i.focus(); - } - function j() { - var c; - const i = (c = _ == null ? void 0 : _.current) == null ? void 0 : c.nextSibling; - i ? i.focus() : S(); - } - function g() { - var c; - const i = (c = _ == null ? void 0 : _.current) == null ? void 0 : c.previousSibling; - i ? i.focus() : y(); - } - return /* @__PURE__ */ f.jsxs( - "li", - { - tabIndex: 0, - className: R(z.list_item, "suggestion-search-list-item"), - onKeyDown: (i) => { - i.key === "Enter" && h(), i.key === "ArrowDown" && j(), i.key === "ArrowUp" && g(); - }, - onClick: h, - ref: _, - children: [ - /* @__PURE__ */ f.jsx("img", { className: R(z.search_icon, "search-icon"), src: "icon_search.svg", alt: "Search icon" }), - /* @__PURE__ */ f.jsx("span", { className: R(z.suggested_text, "suggested-text"), children: p }), - /* @__PURE__ */ f.jsx( - "img", - { - className: R(z.arrow_right_icon, "arrow-right-icon"), - src: "icon_arrow-right.svg", - alt: "Arrow right icon" - } - ) - ] - } - ); -} -const kr = "_suggestions_list_1ef85_8", Pr = "_container_1ef85_14", Dr = "_input_container_1ef85_20", Ir = "_input_icon_container_1ef85_29", Ar = "_input_icon_1ef85_29", Fr = "_input_1ef85_20", Nr = "_suggestions_container_1ef85_52", $r = "_suggestions_hint_1ef85_60", k = { - suggestions_list: kr, - container: Pr, - input_container: Dr, - input_icon_container: Ir, - input_icon: Ar, - input: Fr, - suggestions_container: Nr, - suggestions_hint: $r -}; -function Yr({ - setShouldDisplayEzql: p, - didSubmitWithValue: m, - onResults: _, - suggestions: h, - className: S -}) { - const [y, j] = dr(""), g = re(null), i = _r((c) => { - m && m(c); - }, []); - return /* @__PURE__ */ f.jsx(wr, { didDismiss: () => p(!1), className: R("ezql-prompt-modal", S), children: /* @__PURE__ */ f.jsxs("div", { className: R(k.container, "container"), children: [ - /* @__PURE__ */ f.jsxs("div", { className: R(k.input_container, "input-container"), children: [ - /* @__PURE__ */ f.jsx("div", { className: R(k.input_icon_container, "input-icon-container"), children: /* @__PURE__ */ f.jsx("img", { src: "ezql_diamond-small.png", alt: "EZQL Icon", className: R(k.input_icon, "input-icon") }) }), - /* @__PURE__ */ f.jsx( - "input", - { - className: R(k.input, "typography_text_large"), - type: "text", - autoFocus: !0, - placeholder: "Search your database...", - value: y, - onChange: (c) => j(c.target.value), - onKeyDown: (c) => { - var l, x, T, P; - c.key === "Enter" ? i(y) : c.key === "ArrowDown" ? (x = (l = g == null ? void 0 : g.current) == null ? void 0 : l.querySelector("li")) == null || x.focus() : c.key === "ArrowUp" && ((P = (T = g == null ? void 0 : g.current) == null ? void 0 : T.querySelector("li:last-child")) == null || P.focus()); - } - } - ) - ] }), - /* @__PURE__ */ f.jsxs("div", { className: R(k.suggestions_container, "suggestions-container"), children: [ - /* @__PURE__ */ f.jsx("span", { className: R(k.suggestions_hint, "typography_text_small", "suggestions-hint"), children: "Search via plain text EZQL will automatically convert it to a SQL query, you could also try one of the generated prompts." }), - /* @__PURE__ */ f.jsx("ul", { className: R(k.suggestions_list, "suggestions-list"), ref: g, children: h == null ? void 0 : h.map((c) => /* @__PURE__ */ f.jsx(Cr, { text: c, didSubmitWithValue: m }, c)) }) - ] }) - ] }) }); -} -export { - Yr as EzqlPrompt -}; diff --git a/src/react-ezql/dist/ezql-prompt.umd.js b/src/react-ezql/dist/ezql-prompt.umd.js deleted file mode 100644 index 8310c5e..0000000 --- a/src/react-ezql/dist/ezql-prompt.umd.js +++ /dev/null @@ -1,27 +0,0 @@ -(function(I,x){typeof exports=="object"&&typeof module<"u"?x(exports,require("react")):typeof define=="function"&&define.amd?define(["exports","react"],x):(I=typeof globalThis<"u"?globalThis:I||self,x(I["EZQL Prompt"]={},I.React))})(this,function(I,x){"use strict";var l={},Ce={get exports(){return l},set exports(p){l=p}},Y={};/** - * @license React - * react-jsx-runtime.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var ne;function Pe(){if(ne)return Y;ne=1;var p=x,m=Symbol.for("react.element"),_=Symbol.for("react.fragment"),h=Object.prototype.hasOwnProperty,S=p.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,y={key:!0,ref:!0,__self:!0,__source:!0};function T(g,i,c){var f,w={},O=null,D=null;c!==void 0&&(O=""+c),i.key!==void 0&&(O=""+i.key),i.ref!==void 0&&(D=i.ref);for(f in i)h.call(i,f)&&!y.hasOwnProperty(f)&&(w[f]=i[f]);if(g&&g.defaultProps)for(f in i=g.defaultProps,i)w[f]===void 0&&(w[f]=i[f]);return{$$typeof:m,type:g,key:O,ref:D,props:w,_owner:S.current}}return Y.Fragment=_,Y.jsx=T,Y.jsxs=T,Y}var W={};/** - * @license React - * react-jsx-runtime.development.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var ae;function Ie(){return ae||(ae=1,process.env.NODE_ENV!=="production"&&function(){var p=x,m=Symbol.for("react.element"),_=Symbol.for("react.portal"),h=Symbol.for("react.fragment"),S=Symbol.for("react.strict_mode"),y=Symbol.for("react.profiler"),T=Symbol.for("react.provider"),g=Symbol.for("react.context"),i=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),f=Symbol.for("react.suspense_list"),w=Symbol.for("react.memo"),O=Symbol.for("react.lazy"),D=Symbol.for("react.offscreen"),ie=Symbol.iterator,Ne="@@iterator";function Le(e){if(e===null||typeof e!="object")return null;var r=ie&&e[ie]||e[Ne];return typeof r=="function"?r:null}var F=p.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function b(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&v>=0&&a[d]!==E[v];)v--;for(;d>=1&&v>=0;d--,v--)if(a[d]!==E[v]){if(d!==1||v!==1)do if(d--,v--,v<0||a[d]!==E[v]){var j=` -`+a[d].replace(" at new "," at ");return e.displayName&&j.includes("")&&(j=j.replace("",e.displayName)),typeof e=="function"&&q.set(e,j),j}while(d>=1&&v>=0);break}}}finally{Z=!1,K.current=u,Je(),Error.prepareStackTrace=s}var L=e?e.displayName||e.name:"",ke=L?$(L):"";return typeof e=="function"&&q.set(e,ke),ke}function Ke(e,r,t){return ge(e,!1)}function Qe(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function z(e,r,t){if(e==null)return"";if(typeof e=="function")return ge(e,Qe(e));if(typeof e=="string")return $(e);switch(e){case c:return $("Suspense");case f:return $("SuspenseList")}if(typeof e=="object")switch(e.$$typeof){case i:return Ke(e.render);case w:return z(e.type,r,t);case O:{var n=e,s=n._payload,u=n._init;try{return z(u(s),r,t)}catch{}}}return""}var J=Object.prototype.hasOwnProperty,he={},me=F.ReactDebugCurrentFrame;function G(e){if(e){var r=e._owner,t=z(e.type,e._source,r?r.type:null);me.setExtraStackFrame(t)}else me.setExtraStackFrame(null)}function Ze(e,r,t,n,s){{var u=Function.call.bind(J);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!="function"){var E=Error((n||"React class")+": "+t+" type `"+o+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[o]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw E.name="Invariant Violation",E}a=e[o](r,o,n,t,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(d){a=d}a&&!(a instanceof Error)&&(G(s),b("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",n||"React class",t,o,typeof a),G(null)),a instanceof Error&&!(a.message in he)&&(he[a.message]=!0,G(s),b("Failed %s type: %s",t,a.message),G(null))}}}var He=Array.isArray;function H(e){return He(e)}function Xe(e){{var r=typeof Symbol=="function"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||"Object";return t}}function er(e){try{return ye(e),!1}catch{return!0}}function ye(e){return""+e}function be(e){if(er(e))return b("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",Xe(e)),ye(e)}var B=F.ReactCurrentOwner,rr={key:!0,ref:!0,__self:!0,__source:!0},Ee,Re,X;X={};function tr(e){if(J.call(e,"ref")){var r=Object.getOwnPropertyDescriptor(e,"ref").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function nr(e){if(J.call(e,"key")){var r=Object.getOwnPropertyDescriptor(e,"key").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function ar(e,r){if(typeof e.ref=="string"&&B.current&&r&&B.current.stateNode!==r){var t=k(B.current.type);X[t]||(b('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',k(B.current.type),e.ref),X[t]=!0)}}function ir(e,r){{var t=function(){Ee||(Ee=!0,b("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",r))};t.isReactWarning=!0,Object.defineProperty(e,"key",{get:t,configurable:!0})}}function or(e,r){{var t=function(){Re||(Re=!0,b("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",r))};t.isReactWarning=!0,Object.defineProperty(e,"ref",{get:t,configurable:!0})}}var sr=function(e,r,t,n,s,u,o){var a={$$typeof:m,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,"_self",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,"_source",{configurable:!1,enumerable:!1,writable:!1,value:s}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function cr(e,r,t,n,s){{var u,o={},a=null,E=null;t!==void 0&&(be(t),a=""+t),nr(r)&&(be(r.key),a=""+r.key),tr(r)&&(E=r.ref,ar(r,s));for(u in r)J.call(r,u)&&!rr.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var d=e.defaultProps;for(u in d)o[u]===void 0&&(o[u]=d[u])}if(a||E){var v=typeof e=="function"?e.displayName||e.name||"Unknown":e;a&&ir(o,v),E&&or(o,v)}return sr(e,a,E,s,n,B.current,o)}}var ee=F.ReactCurrentOwner,xe=F.ReactDebugCurrentFrame;function N(e){if(e){var r=e._owner,t=z(e.type,e._source,r?r.type:null);xe.setExtraStackFrame(t)}else xe.setExtraStackFrame(null)}var re;re=!1;function te(e){return typeof e=="object"&&e!==null&&e.$$typeof===m}function we(){{if(ee.current){var e=k(ee.current.type);if(e)return` - -Check the render method of \``+e+"`."}return""}}function ur(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\/]/,""),t=e.lineNumber;return` - -Check your code at `+r+":"+t+"."}return""}}var je={};function lr(e){{var r=we();if(!r){var t=typeof e=="string"?e:e.displayName||e.name;t&&(r=` - -Check the top-level render call using <`+t+">.")}return r}}function Te(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=lr(r);if(je[t])return;je[t]=!0;var n="";e&&e._owner&&e._owner!==ee.current&&(n=" It was passed a child from "+k(e._owner.type)+"."),N(e),b('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),N(null)}}function Se(e,r){{if(typeof e!="object")return;if(H(e))for(var t=0;t",a=" Did you accidentally export a JSX literal instead of a component?"):d=typeof e,b("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",d,a)}var v=cr(e,r,t,s,u);if(v==null)return v;if(o){var j=r.children;if(j!==void 0)if(n)if(H(j)){for(var L=0;L{function y(T){T.code==="Escape"&&(m(),document.removeEventListener("keydown",y))}return document.addEventListener("keydown",y),()=>{document.removeEventListener("keydown",y)}},[]),l.jsxs("div",{className:R(M.parent,_),"aria-labelledby":"modal-title",role:"dialog","aria-modal":"true",onClick:S,children:[l.jsx("div",{className:M.backdrop_shadow}),l.jsx("div",{className:M.container,children:l.jsx("div",{className:M.backdrop,ref:h,children:l.jsx("div",{className:M.foreground,children:l.jsx("div",{children:p})})})})]})}const V={list_item:"_list_item_1f3fj_1",suggested_text:"_suggested_text_1f3fj_21",search_icon:"_search_icon_1f3fj_28",arrow_right_icon:"_arrow_right_icon_1f3fj_29"};function Ae({text:p,didSubmitWithValue:m}){const _=x.useRef(null);function h(){m&&m(p)}function S(){var i,c,f;(f=(c=(i=_==null?void 0:_.current)==null?void 0:i.parentElement)==null?void 0:c.querySelector("li"))==null||f.focus()}function y(){var c,f;const i=(f=(c=_==null?void 0:_.current)==null?void 0:c.parentElement)==null?void 0:f.querySelector("li:last-child");i==null||i.focus()}function T(){var c;const i=(c=_==null?void 0:_.current)==null?void 0:c.nextSibling;i?i.focus():S()}function g(){var c;const i=(c=_==null?void 0:_.current)==null?void 0:c.previousSibling;i?i.focus():y()}return l.jsxs("li",{tabIndex:0,className:R(V.list_item,"suggestion-search-list-item"),onKeyDown:i=>{i.key==="Enter"&&h(),i.key==="ArrowDown"&&T(),i.key==="ArrowUp"&&g()},onClick:h,ref:_,children:[l.jsx("img",{className:R(V.search_icon,"search-icon"),src:"icon_search.svg",alt:"Search icon"}),l.jsx("span",{className:R(V.suggested_text,"suggested-text"),children:p}),l.jsx("img",{className:R(V.arrow_right_icon,"arrow-right-icon"),src:"icon_arrow-right.svg",alt:"Arrow right icon"})]})}const P={suggestions_list:"_suggestions_list_1ef85_8",container:"_container_1ef85_14",input_container:"_input_container_1ef85_20",input_icon_container:"_input_icon_container_1ef85_29",input_icon:"_input_icon_1ef85_29",input:"_input_1ef85_20",suggestions_container:"_suggestions_container_1ef85_52",suggestions_hint:"_suggestions_hint_1ef85_60"};function Fe({setShouldDisplayEzql:p,didSubmitWithValue:m,onResults:_,suggestions:h,className:S}){const[y,T]=x.useState(""),g=x.useRef(null),i=x.useCallback(c=>{m&&m(c)},[]);return l.jsx(De,{didDismiss:()=>p(!1),className:R("ezql-prompt-modal",S),children:l.jsxs("div",{className:R(P.container,"container"),children:[l.jsxs("div",{className:R(P.input_container,"input-container"),children:[l.jsx("div",{className:R(P.input_icon_container,"input-icon-container"),children:l.jsx("img",{src:"ezql_diamond-small.png",alt:"EZQL Icon",className:R(P.input_icon,"input-icon")})}),l.jsx("input",{className:R(P.input,"typography_text_large"),type:"text",autoFocus:!0,placeholder:"Search your database...",value:y,onChange:c=>T(c.target.value),onKeyDown:c=>{var f,w,O,D;c.key==="Enter"?i(y):c.key==="ArrowDown"?(w=(f=g==null?void 0:g.current)==null?void 0:f.querySelector("li"))==null||w.focus():c.key==="ArrowUp"&&((D=(O=g==null?void 0:g.current)==null?void 0:O.querySelector("li:last-child"))==null||D.focus())}})]}),l.jsxs("div",{className:R(P.suggestions_container,"suggestions-container"),children:[l.jsx("span",{className:R(P.suggestions_hint,"typography_text_small","suggestions-hint"),children:"Search via plain text EZQL will automatically convert it to a SQL query, you could also try one of the generated prompts."}),l.jsx("ul",{className:R(P.suggestions_list,"suggestions-list"),ref:g,children:h==null?void 0:h.map(c=>l.jsx(Ae,{text:c,didSubmitWithValue:m},c))})]})]})})}I.EzqlPrompt=Fe,Object.defineProperty(I,Symbol.toStringTag,{value:"Module"})}); diff --git a/src/react-ezql/package.json b/src/react-ezql/package.json index 2eb8025..68ee20e 100644 --- a/src/react-ezql/package.json +++ b/src/react-ezql/package.json @@ -4,24 +4,26 @@ "type": "module", "files": [ "README.md", - "dist" + "dist/module" ], - "main": "./dist/ezql-prompt.umd.js", - "module": "./dist/ezql-prompt.es.js", + "main": "./dist/module/ezql-prompt.umd.js", + "module": "./dist/module/ezql-prompt.es.js", "exports": { ".": { - "import": "./dist/ezql-prompt.es.js", - "require": "./dist/ezql-prompt.umd.js" + "import": "./dist/module/ezql-prompt.es.js", + "require": "./dist/module/ezql-prompt.umd.js" } }, "scripts": { "dev": "vite", - "build": "tsc && vite build", - "preview": "vite preview", + "build": "rm -rf ./dist && npm run build:module && npm run build:page", + "build:module": "tsc && vite --config vite.config.module.ts build", + "build:web": "tsc && vite --config vite.config.web.ts build", + "preview": "vite --config vite.config.web.ts preview", "test": "vitest run", "watch": "vitest", "coverage": "vitest run --coverage", - "prepack": "rm -rf ./dist && npm run build" + "prepack": "rm -rf ./dist && npm run build:module" }, "browserslist": { "production": [ diff --git a/src/react-ezql/src/App.tsx b/src/react-ezql/src/App.tsx index 535d17c..82a58e0 100644 --- a/src/react-ezql/src/App.tsx +++ b/src/react-ezql/src/App.tsx @@ -27,6 +27,10 @@ function App() { return ( <> +

    + Press Command-K to display EZQL, Escape to dismiss. +

    + {shouldDisplayEzql && ( Date: Fri, 3 Mar 2023 15:50:03 -0500 Subject: [PATCH 05/10] replace GH Page with that of react-ezql's Vite build --- .github/workflows/static.yml | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/.github/workflows/static.yml b/.github/workflows/static.yml index 97a528b..50587eb 100644 --- a/.github/workflows/static.yml +++ b/.github/workflows/static.yml @@ -30,16 +30,24 @@ jobs: steps: - name: Checkout uses: actions/checkout@v3 + - name: Set up Node + uses: actions/setup-node@v3 + with: + node-version: 18 + cache: 'npm' + - name: Install dependencies + working-directory: ./src/react-ezql + run: npm install + - name: Build + working-directory: ./src/react-ezql + run: npm run build:web - name: Setup Pages uses: actions/configure-pages@v3 - - name: Install rollup.js - run: npm install rollup@3 - - name: Copy bundled EZQL to web directory - run: npm run update:demo - name: Upload artifact uses: actions/upload-pages-artifact@v1 with: - path: './demo/web' + # Upload dist repository + path: './src/react-ezql/dist/page' - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v1 From 0f2f975ee6aeaf58b51a2bd41b59bbb5b774f351 Mon Sep 17 00:00:00 2001 From: Johnny Domino Date: Thu, 9 Mar 2023 11:50:29 -0500 Subject: [PATCH 06/10] add tailwind to react-ezql dev/demo page --- src/react-ezql/package-lock.json | 663 +++++++++++++++++++++++++++++ src/react-ezql/package.json | 3 + src/react-ezql/postcss.config.cjs | 6 + src/react-ezql/src/main.css | 3 + src/react-ezql/tailwind.config.cjs | 11 + 5 files changed, 686 insertions(+) create mode 100644 src/react-ezql/postcss.config.cjs create mode 100644 src/react-ezql/tailwind.config.cjs diff --git a/src/react-ezql/package-lock.json b/src/react-ezql/package-lock.json index 2cc66ac..b33aa9c 100644 --- a/src/react-ezql/package-lock.json +++ b/src/react-ezql/package-lock.json @@ -14,13 +14,16 @@ "@types/react-dom": "^18.0.10", "@types/react-test-renderer": "^18.0.0", "@vitejs/plugin-react-swc": "^3.0.0", + "autoprefixer": "^10.4.13", "c8": "^7.13.0", "eslint": "^8.35.0", "eslint-plugin-react": "^7.32.2", "jsdom": "^21.1.0", + "postcss": "^8.4.21", "react": "^18.2.0", "react-dom": "^18.2.0", "react-test-renderer": "^18.2.0", + "tailwindcss": "^3.2.7", "typescript": "^4.9.3", "vite": "^4.1.0", "vitest": "^0.29.2" @@ -582,6 +585,38 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "dev": true, + "dependencies": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + } + }, + "node_modules/acorn-node/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-node/node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/acorn-walk": { "version": "8.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", @@ -643,6 +678,25 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -723,6 +777,39 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "dev": true }, + "node_modules/autoprefixer": { + "version": "10.4.13", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", + "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-lite": "^1.0.30001426", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, "node_modules/available-typed-arrays": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", @@ -741,6 +828,15 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -751,6 +847,46 @@ "concat-map": "0.0.1" } }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, "node_modules/c8": { "version": "7.13.0", "resolved": "https://registry.npmjs.org/c8/-/c8-7.13.0.tgz", @@ -808,6 +944,31 @@ "node": ">=6" } }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001464", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001464.tgz", + "integrity": "sha512-oww27MtUmusatpRpCGSOneQk2/l5czXANDSFvsc7VuOQ86s3ANhZetpwXNf1zY/zdfP63Xvjz325DAdAoES13g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, "node_modules/chai": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", @@ -851,6 +1012,45 @@ "node": "*" } }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/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/cli-truncate": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", @@ -963,6 +1163,18 @@ "node": ">= 8" } }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/cssom": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", @@ -1092,6 +1304,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/defined": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", + "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -1101,6 +1322,29 @@ "node": ">=0.4.0" } }, + "node_modules/detective": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", + "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", + "dev": true, + "dependencies": { + "acorn-node": "^1.8.2", + "defined": "^1.0.0", + "minimist": "^1.2.6" + }, + "bin": { + "detective": "bin/detective.js" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, "node_modules/diff": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", @@ -1110,6 +1354,12 @@ "node": ">=0.3.1" } }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -1146,6 +1396,12 @@ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", "dev": true }, + "node_modules/electron-to-chromium": { + "version": "1.4.325", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.325.tgz", + "integrity": "sha512-K1C03NT4I7BuzsRdCU5RWkgZxtswnKDYM6/eMhkEXqKu4e5T+ck610x3FPzu1y7HVFSiQKZqP16gnJzPpji1TQ==", + "dev": true + }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", @@ -1644,6 +1900,34 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "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", @@ -1677,6 +1961,18 @@ "node": "^10.12.0 || >=12.0.0" } }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -1748,6 +2044,19 @@ "node": ">= 6" } }, + "node_modules/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -2173,6 +2482,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/is-boolean-object": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", @@ -2282,6 +2603,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, "node_modules/is-number-object": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", @@ -2597,6 +2927,15 @@ "node": ">= 0.8.0" } }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/local-pkg": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz", @@ -2675,6 +3014,28 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "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", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -2708,6 +3069,15 @@ "node": "*" } }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/mlly": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.1.1.tgz", @@ -2744,6 +3114,30 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, + "node_modules/node-releases": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/nwsapi": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", @@ -2759,6 +3153,15 @@ "node": ">=0.10.0" } }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", @@ -3006,6 +3409,27 @@ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", "dev": true }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/pkg-types": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.2.tgz", @@ -3041,6 +3465,109 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/postcss-import": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", + "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "dev": true, + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.0.tgz", + "integrity": "sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", + "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -3134,6 +3661,18 @@ } ] }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/react": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", @@ -3198,6 +3737,27 @@ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "dev": true }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, "node_modules/regenerator-runtime": { "version": "0.13.11", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", @@ -3662,6 +4222,47 @@ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, + "node_modules/tailwindcss": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.2.7.tgz", + "integrity": "sha512-B6DLqJzc21x7wntlH/GsZwEXTBttVSl1FtCzC8WP4oBc/NKef7kaax5jeihkkCEWc831/5NDJ9gRNDK6NEioQQ==", + "dev": true, + "dependencies": { + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "color-name": "^1.1.4", + "detective": "^5.2.1", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.2.12", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "lilconfig": "^2.0.6", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.0.9", + "postcss-import": "^14.1.0", + "postcss-js": "^4.0.0", + "postcss-load-config": "^3.1.4", + "postcss-nested": "6.0.0", + "postcss-selector-parser": "^6.0.11", + "postcss-value-parser": "^4.2.0", + "quick-lru": "^5.1.1", + "resolve": "^1.22.1" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=12.13.0" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -3706,6 +4307,18 @@ "node": ">=14.0.0" } }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, "node_modules/tough-cookie": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", @@ -3823,6 +4436,32 @@ "node": ">= 4.0.0" } }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -3842,6 +4481,12 @@ "requires-port": "^1.0.0" } }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, "node_modules/v8-to-istanbul": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", @@ -4227,6 +4872,15 @@ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -4236,6 +4890,15 @@ "node": ">=10" } }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", diff --git a/src/react-ezql/package.json b/src/react-ezql/package.json index 68ee20e..917fe88 100644 --- a/src/react-ezql/package.json +++ b/src/react-ezql/package.json @@ -59,13 +59,16 @@ "@types/react-dom": "^18.0.10", "@types/react-test-renderer": "^18.0.0", "@vitejs/plugin-react-swc": "^3.0.0", + "autoprefixer": "^10.4.13", "c8": "^7.13.0", "eslint": "^8.35.0", "eslint-plugin-react": "^7.32.2", "jsdom": "^21.1.0", + "postcss": "^8.4.21", "react": "^18.2.0", "react-dom": "^18.2.0", "react-test-renderer": "^18.2.0", + "tailwindcss": "^3.2.7", "typescript": "^4.9.3", "vite": "^4.1.0", "vitest": "^0.29.2" diff --git a/src/react-ezql/postcss.config.cjs b/src/react-ezql/postcss.config.cjs new file mode 100644 index 0000000..33ad091 --- /dev/null +++ b/src/react-ezql/postcss.config.cjs @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/src/react-ezql/src/main.css b/src/react-ezql/src/main.css index e69de29..bd6213e 100644 --- a/src/react-ezql/src/main.css +++ b/src/react-ezql/src/main.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; \ No newline at end of file diff --git a/src/react-ezql/tailwind.config.cjs b/src/react-ezql/tailwind.config.cjs new file mode 100644 index 0000000..1c3b7e1 --- /dev/null +++ b/src/react-ezql/tailwind.config.cjs @@ -0,0 +1,11 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: [ + "./index.html", + "./src/**/*.{js,ts,jsx,tsx}", + ], + theme: { + extend: {}, + }, + plugins: [], +} From ab3ab20321494d98d55e2885f4c9aab845bb893e Mon Sep 17 00:00:00 2001 From: Johnny Domino Date: Thu, 9 Mar 2023 11:53:56 -0500 Subject: [PATCH 07/10] add Outerbase tailwind theme --- src/react-ezql/tailwind.config.cjs | 67 +++++++++++++++++++++++++++++- 1 file changed, 66 insertions(+), 1 deletion(-) diff --git a/src/react-ezql/tailwind.config.cjs b/src/react-ezql/tailwind.config.cjs index 1c3b7e1..13025bc 100644 --- a/src/react-ezql/tailwind.config.cjs +++ b/src/react-ezql/tailwind.config.cjs @@ -1,11 +1,76 @@ /** @type {import('tailwindcss').Config} */ +const defaultTheme = require("tailwindcss/defaultTheme"); module.exports = { content: [ "./index.html", "./src/**/*.{js,ts,jsx,tsx}", ], theme: { - extend: {}, + extend: { + colors: { + light: { + primary: { + 400: "#834FF8", + 500: "#A27BFA", + 600: "#C1A7FC", + 700: "#E0D3FD", + }, + feedback: { + success: "#32D583", + warning: "#FDB022", + error: "#F0384E", + }, + gray: { + 100: "#FFFFFF", + 200: "#F9F9F9", + 300: "#EEEEEE", + 400: "#D0D0D0", + 500: "#959497", + 600: "#5E5D61", + 700: "#343438", + 800: "#05040D", + }, + }, + dark: { + primary: { + 400: "#834FF8", + 500: "#633CBD", + 600: "#442982", + 700: "#2F1D5B", + }, + feedback: { + success: "#32D583", + warning: "#FDB022", + error: "#F0384E", + }, + + gray: { + 100: "#05040D", + 200: "#121119", + 300: "#1E1F24", + 400: "#343438", + 500: "#5E5D61", + 600: "#959497", + 700: "#C0C0C0", + 800: "#FFFFFF", + }, + }, + canonical: { + purple: "#6B57E8", + yellow: "#FBE67F", + orange: "#F09252;", + red: "#EB4E43", + blue: "#70B6F9", + pink: "#E4AEFA", + green: "#79E2BE", + ycombinator: "#FB651E", + }, + }, + }, + fontFamily: { + ...defaultTheme.fontFamily, + sans: ["Helvetica", ...defaultTheme.fontFamily.sans], + }, }, plugins: [], } From b0adb77f11bb51f7e8821ebca2a90a616004dac3 Mon Sep 17 00:00:00 2001 From: Johnny Domino Date: Thu, 9 Mar 2023 11:59:28 -0500 Subject: [PATCH 08/10] capture a 'token' value --- src/react-ezql/src/App.tsx | 13 ++++++++++++- src/react-ezql/src/components/ezql-prompt.tsx | 2 ++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/react-ezql/src/App.tsx b/src/react-ezql/src/App.tsx index 82a58e0..dff8093 100644 --- a/src/react-ezql/src/App.tsx +++ b/src/react-ezql/src/App.tsx @@ -6,6 +6,8 @@ const TRIGGERS = ['KeyK', 'Slash'] function App() { const [shouldDisplayEzql, setShouldDisplayEzql] = useState(false) + const [token, setToken] = useState('') + const suggestions = ['How many books sold last week', 'How many new users signed up today'] // listen for the trigger to display the modal @@ -27,12 +29,21 @@ function App() { return ( <> -

    +

    Press Command-K to display EZQL, Escape to dismiss.

    +

    + + setToken(event.target.value)} + /> +

    + {shouldDisplayEzql && ( { diff --git a/src/react-ezql/src/components/ezql-prompt.tsx b/src/react-ezql/src/components/ezql-prompt.tsx index a929a51..78e9fc6 100644 --- a/src/react-ezql/src/components/ezql-prompt.tsx +++ b/src/react-ezql/src/components/ezql-prompt.tsx @@ -6,6 +6,7 @@ import { classNames } from '../lib/class-names' import styles from './ezql-prompt.module.css' export type EzqlPromptOpts = { + token: string setShouldDisplayEzql: (value: boolean) => void onResults: (data: object) => void didSubmitWithValue?: (query: string) => void @@ -14,6 +15,7 @@ export type EzqlPromptOpts = { } export default function EzqlPrompt({ + token, setShouldDisplayEzql, didSubmitWithValue, onResults, From 8143741e8484b0d183ab23bac7bb1345865ce466 Mon Sep 17 00:00:00 2001 From: Johnny Domino Date: Thu, 9 Mar 2023 12:14:59 -0500 Subject: [PATCH 09/10] wip: call ezql from react component --- src/react-ezql/package-lock.json | 32 +++++++++++++++++++ src/react-ezql/package.json | 1 + src/react-ezql/src/components/ezql-prompt.tsx | 14 +++++--- 3 files changed, 43 insertions(+), 4 deletions(-) diff --git a/src/react-ezql/package-lock.json b/src/react-ezql/package-lock.json index b33aa9c..44ce56c 100644 --- a/src/react-ezql/package-lock.json +++ b/src/react-ezql/package-lock.json @@ -18,6 +18,7 @@ "c8": "^7.13.0", "eslint": "^8.35.0", "eslint-plugin-react": "^7.32.2", + "ezql": "^0.0.3", "jsdom": "^21.1.0", "postcss": "^8.4.21", "react": "^18.2.0", @@ -153,6 +154,15 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "node_modules/@commander-js/extra-typings": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@commander-js/extra-typings/-/extra-typings-10.0.3.tgz", + "integrity": "sha512-OIw28QV/GlP8k0B5CJTRsl8IyNvd0R8C8rfo54Yz9P388vCNDgdNrFlKxZTGqps+5j6lSw3Ss9JTQwcur1w1oA==", + "dev": true, + "peerDependencies": { + "commander": "10.0.x" + } + }, "node_modules/@esbuild/darwin-arm64": { "version": "0.16.17", "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz", @@ -1137,6 +1147,15 @@ "node": ">= 0.8" } }, + "node_modules/commander": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.0.tgz", + "integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==", + "dev": true, + "engines": { + "node": ">=14" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1894,6 +1913,19 @@ "node": ">=0.10.0" } }, + "node_modules/ezql": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/ezql/-/ezql-0.0.3.tgz", + "integrity": "sha512-32ArOD4eLpID7YyKve/gf1C9oKP/8GsLyOfSS/IZG9/AxAItV1KafwWRCG+pIHpiTGkJdBHqceo7nd5mqRC1Dw==", + "dev": true, + "dependencies": { + "@commander-js/extra-typings": "^10.0.2", + "commander": "^10.0.0" + }, + "bin": { + "ezql": "dist/cli/cli/index.js" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", diff --git a/src/react-ezql/package.json b/src/react-ezql/package.json index 917fe88..4d7b57b 100644 --- a/src/react-ezql/package.json +++ b/src/react-ezql/package.json @@ -63,6 +63,7 @@ "c8": "^7.13.0", "eslint": "^8.35.0", "eslint-plugin-react": "^7.32.2", + "ezql": "^0.0.3", "jsdom": "^21.1.0", "postcss": "^8.4.21", "react": "^18.2.0", diff --git a/src/react-ezql/src/components/ezql-prompt.tsx b/src/react-ezql/src/components/ezql-prompt.tsx index 78e9fc6..407e678 100644 --- a/src/react-ezql/src/components/ezql-prompt.tsx +++ b/src/react-ezql/src/components/ezql-prompt.tsx @@ -2,6 +2,7 @@ import { useCallback, useRef, useState } from 'react' import Modal from './modal' import { SuggestSearchListItem } from './suggest-search-list-item' import { classNames } from '../lib/class-names' +import {EZQL, Prompt} from 'ezql' import styles from './ezql-prompt.module.css' @@ -23,14 +24,19 @@ export default function EzqlPrompt({ className, }: EzqlPromptOpts) { const [query, setQuery] = useState('') + const listRef = useRef(null) - const onSubmission = useCallback((value: string) => { - if (didSubmitWithValue) didSubmitWithValue(value) + const onSubmission = useCallback(async (phrase: string) => { + if (!token) throw new Error("Missing token") + if (didSubmitWithValue) didSubmitWithValue(phrase) // TODO make request to Outerbase + const ezql = new EZQL({ token }) + const result = await ezql.prompt(phrase, Prompt.sql) + console.dir(result) // and pass the result to onResults() - }, []) + }, [token]) return ( setShouldDisplayEzql(false)} className={classNames('ezql-prompt-modal', className)}> @@ -61,7 +67,7 @@ export default function EzqlPrompt({
      {suggestions?.map((text) => ( - + ))}
    From 83e137ec0d71bb928a8827a15c8b84a3af7d39ce Mon Sep 17 00:00:00 2001 From: Johnny Domino Date: Thu, 9 Mar 2023 14:25:36 -0500 Subject: [PATCH 10/10] adjustments to return type, styles, etc --- __tests__/lib/ezql.ts | 14 ++++--- package-lock.json | 4 +- package.json | 2 +- src/lib/ezql.ts | 13 +++++- src/react-ezql/README.md | 21 ++++++++++ src/react-ezql/package-lock.json | 8 ++-- src/react-ezql/package.json | 2 +- src/react-ezql/src/App.tsx | 5 +-- src/react-ezql/src/components/ezql-prompt.tsx | 42 +++++++++++-------- src/react-ezql/vite.config.web.ts | 1 - 10 files changed, 74 insertions(+), 38 deletions(-) diff --git a/__tests__/lib/ezql.ts b/__tests__/lib/ezql.ts index 47fde04..8c1b912 100644 --- a/__tests__/lib/ezql.ts +++ b/__tests__/lib/ezql.ts @@ -81,8 +81,7 @@ describe('register EZQL', () => { test('prompt.data yields data', async () => { expect.assertions(2) - const mockedResponse = '42' - fetch.mockResolvedValue(new Response(mockedResponse)) + fetch.mockResolvedValue(new Response('42')) const query = 'What is the answer to life, the univerise and everything?' const response = await ob.prompt(query, Prompt.data) @@ -92,23 +91,26 @@ describe('register EZQL', () => { body: JSON.stringify({ query, run: true }), method: 'POST', }) - expect(response).toEqual(mockedResponse) + expect(response).toEqual(42) }) test('prompt.sql yields SQL', async () => { expect.assertions(2) - const mockedResponse = 'SELECT answer FROM ultimate_question;' + const serverResponse = {"response": {"query": {"text": "SELECT answer FROM ultimate_question;"}}, "success": true} + const mockedResponse = JSON.stringify(serverResponse) + fetch.mockResolvedValue(new Response(mockedResponse)) const query = 'What is the answer to life, the univerise and everything?' - const response = await ob.prompt(query, Prompt.sql) + const clientResponse = await ob.prompt(query, Prompt.sql) expect(fetch).toHaveBeenCalledWith(`https://${DEFAULT_HOST}/api/v1/ezql`, { headers: { 'Content-Type': 'application/json', 'x-source-token': token }, body: JSON.stringify({ query, run: false }), method: 'POST', }) - expect(response).toEqual(mockedResponse) + + expect(clientResponse).toEqual(serverResponse) }) }) diff --git a/package-lock.json b/package-lock.json index f3df42c..dce5115 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ezql", - "version": "0.0.3", + "version": "0.0.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ezql", - "version": "0.0.3", + "version": "0.0.4", "license": "MIT", "dependencies": { "@commander-js/extra-typings": "^10.0.2", diff --git a/package.json b/package.json index dc6c390..c1399dc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ezql", - "version": "0.0.3", + "version": "0.0.4", "description": "Ask your database questions, anywhere.", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", diff --git a/src/lib/ezql.ts b/src/lib/ezql.ts index afeed85..bc70768 100644 --- a/src/lib/ezql.ts +++ b/src/lib/ezql.ts @@ -3,6 +3,15 @@ export type EZQLOpts = { host?: string } +type EZQLResponse = { + success: boolean + response: { + query: { + text: string + } + } +} + export enum Prompt { sql = 'sql', data = 'data', @@ -42,7 +51,7 @@ export class EZQL { } } - async prompt(phrase: string, type: Prompt): Promise { + async prompt(phrase: string, type: Prompt): Promise { // console.debug(`prompt("${phrase}", ${type})`) if (!phrase || !type) throw new Error(`EZQL.prompt requires a 'phrase' and 'type' parameter`) if (!Object.values(Prompt).includes(type)) @@ -60,7 +69,7 @@ export class EZQL { }), }) - if (result.status === 200) return result.text() + if (result.status === 200) return result.json() else { throw new Error(`${result.status}: ${result.statusText}`) } diff --git a/src/react-ezql/README.md b/src/react-ezql/README.md index cb9d503..3c9a186 100644 --- a/src/react-ezql/README.md +++ b/src/react-ezql/README.md @@ -7,11 +7,18 @@ npm install --save-dev react-ezql ## Usage **Minimal usage** +- `token` is provided from the Outerbase dashboard +- `suggestions` - a list of queries that can be chosen from a list +- `setShouldDisplayEzql` is a setter for toggling whether the modal is displayed; provide a setter that when true will remove the modal from your page +- `didSubmitWithValue` is called when a query has been submitted to the modal _before_ a request has been made to Outerbase +- `onResults` is called with the resulting SQL string or JSON data (depending on the Prompt type specified) +- `className` provides optional styling classes to be added to the modal ```tsx import EzqlPrompt from 'react-ezql' { @@ -93,3 +100,17 @@ Each HTML Element has been an assigned a meaningful classname that you can style color: white; } ``` + +## Local development of react-ezql +pnpm is recommended as `npm link` does not work properly (as of 03/09/2023) with regards to `npm link`ing `lib/ezql` to `react-ezql`. Instead, do this from the `react-ezql` directory: + +```sh +pnpm install +pnpm link ../../ +``` + +And be sure to have also built your latest changes in `lib/ezql`, i.e.: + +```sh +npm run build +``` diff --git a/src/react-ezql/package-lock.json b/src/react-ezql/package-lock.json index 44ce56c..91e3a2e 100644 --- a/src/react-ezql/package-lock.json +++ b/src/react-ezql/package-lock.json @@ -18,7 +18,7 @@ "c8": "^7.13.0", "eslint": "^8.35.0", "eslint-plugin-react": "^7.32.2", - "ezql": "^0.0.3", + "ezql": "^0.0.4", "jsdom": "^21.1.0", "postcss": "^8.4.21", "react": "^18.2.0", @@ -1914,9 +1914,9 @@ } }, "node_modules/ezql": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/ezql/-/ezql-0.0.3.tgz", - "integrity": "sha512-32ArOD4eLpID7YyKve/gf1C9oKP/8GsLyOfSS/IZG9/AxAItV1KafwWRCG+pIHpiTGkJdBHqceo7nd5mqRC1Dw==", + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/ezql/-/ezql-0.0.4.tgz", + "integrity": "sha512-oK3GgcE7+MgEMnSQNwSgYkH1SG5FBIKf7y3byLG0L8FKti1PnATbCtwyjrb887MFdB50ICFlN0sbW1QRMDnVww==", "dev": true, "dependencies": { "@commander-js/extra-typings": "^10.0.2", diff --git a/src/react-ezql/package.json b/src/react-ezql/package.json index 4d7b57b..2022e98 100644 --- a/src/react-ezql/package.json +++ b/src/react-ezql/package.json @@ -63,7 +63,7 @@ "c8": "^7.13.0", "eslint": "^8.35.0", "eslint-plugin-react": "^7.32.2", - "ezql": "^0.0.3", + "ezql": "^0.0.4", "jsdom": "^21.1.0", "postcss": "^8.4.21", "react": "^18.2.0", diff --git a/src/react-ezql/src/App.tsx b/src/react-ezql/src/App.tsx index dff8093..ef7ae6e 100644 --- a/src/react-ezql/src/App.tsx +++ b/src/react-ezql/src/App.tsx @@ -46,11 +46,10 @@ function App() { token={token} setShouldDisplayEzql={setShouldDisplayEzql} suggestions={suggestions} - didSubmitWithValue={(value) => { - console.log(`query: ${value}`) + didSubmitWithValue={(_value) => { setShouldDisplayEzql(false) }} - onResults={(json) => console.dir(json)} + onResults={(sql) => console.log(sql)} className="optional-for-styling-convenience" /> )} diff --git a/src/react-ezql/src/components/ezql-prompt.tsx b/src/react-ezql/src/components/ezql-prompt.tsx index 407e678..c99e6d1 100644 --- a/src/react-ezql/src/components/ezql-prompt.tsx +++ b/src/react-ezql/src/components/ezql-prompt.tsx @@ -2,41 +2,47 @@ import { useCallback, useRef, useState } from 'react' import Modal from './modal' import { SuggestSearchListItem } from './suggest-search-list-item' import { classNames } from '../lib/class-names' -import {EZQL, Prompt} from 'ezql' +import { EZQL, Prompt } from 'ezql' import styles from './ezql-prompt.module.css' export type EzqlPromptOpts = { token: string setShouldDisplayEzql: (value: boolean) => void - onResults: (data: object) => void + onResults: (data: string | Object) => void didSubmitWithValue?: (query: string) => void suggestions?: Array className?: string } export default function EzqlPrompt({ - token, - setShouldDisplayEzql, - didSubmitWithValue, - onResults, - suggestions, - className, + token, // authenticates and identifies the scope of this request with Outerbase + setShouldDisplayEzql, // toggles display of the modal + didSubmitWithValue, // fires before the request goes to Outerbase + onResults, // fires upon receiving a response from Outerbase + suggestions, // pre-populate the list of suggested queries + className, // optional styling classes }: EzqlPromptOpts) { const [query, setQuery] = useState('') - + const listRef = useRef(null) - const onSubmission = useCallback(async (phrase: string) => { - if (!token) throw new Error("Missing token") - if (didSubmitWithValue) didSubmitWithValue(phrase) + const onSubmission = useCallback( + async (phrase: string) => { + if (!token) throw new Error('Missing token') + if (didSubmitWithValue) didSubmitWithValue(phrase) - // TODO make request to Outerbase - const ezql = new EZQL({ token }) - const result = await ezql.prompt(phrase, Prompt.sql) - console.dir(result) - // and pass the result to onResults() - }, [token]) + const ezql = new EZQL({ token, host: 'app.dev.outerbase.com' }) + const { + response: { + query: { text: sql }, + }, + } = await ezql.prompt(phrase, Prompt.sql) + + onResults(sql) + }, + [token] + ) return ( setShouldDisplayEzql(false)} className={classNames('ezql-prompt-modal', className)}> diff --git a/src/react-ezql/vite.config.web.ts b/src/react-ezql/vite.config.web.ts index e03400f..13064b4 100644 --- a/src/react-ezql/vite.config.web.ts +++ b/src/react-ezql/vite.config.web.ts @@ -1,6 +1,5 @@ import { defineConfig } from 'vite' import react from '@vitejs/plugin-react-swc' -import path from 'path' // https://vitejs.dev/config/ export default defineConfig({