diff --git a/.gitignore b/.gitignore index ab0e1f17a..1b13bf063 100644 --- a/.gitignore +++ b/.gitignore @@ -19,7 +19,7 @@ coverage/ .vscode # Temp files -package-lock.json +cache/ .vite_opt_cache # Other files diff --git a/docs/categories/fragments/2019/12/28/个人SQL优化技巧.md b/docs/categories/fragments/2019/12/28/个人SQL优化技巧.md index 464eac385..60deab5f5 100644 --- a/docs/categories/fragments/2019/12/28/个人SQL优化技巧.md +++ b/docs/categories/fragments/2019/12/28/个人SQL优化技巧.md @@ -22,34 +22,30 @@ tags: 这样既可以让 EXPLAIN 中的 type 达到 const 类型,又可以免去担忧在程序中出现接收是单个对象却返回了一个集合对象的异常问题。 -::: danger 反例 -```sql -# user_id 是主键,主键是非空唯一的,那么不需要添加 LIMIT 进行限制 -SELECT * FROM `sys_user` WHERE `user_id` = 1; -``` -::: - -::: tip 正例 -```sql +::: code-group +```sql [正例] # email 不是主键,也没有设置唯一约束,根据熵增定律,查询结果是有可能会出现多条的 SELECT * FROM `sys_user` WHERE `email` = 'charles7c@126.com' LIMIT 1; ``` + +```sql [反例] +# user_id 是主键,主键是非空唯一的,那么不需要添加 LIMIT 进行限制 +SELECT * FROM `sys_user` WHERE `user_id` = 1; +``` ::: ### 避免隐式类型转换 我们在使用 MySQL 时,或多或少都感受过 MySQL 的隐式类型转换。例如:user_id 是整数类型,但是依然可以使用字符串类型数据来进行判断。MySQL 帮你做完这种隐式类型转换是有代价的,什么代价呢? **索引不再生效了而已** 。 -::: danger 反例 -```sql -SELECT * FROM `sys_user` WHERE `user_id` = '10'; -``` -::: - -::: tip 正例 -```sql +::: code-group +```sql [正例] SELECT * FROM `sys_user` WHERE `user_id` = 10; ``` + +```sql [反例] +SELECT * FROM `sys_user` WHERE `user_id` = '10'; +``` ::: ## 数据库表设计 @@ -58,8 +54,8 @@ SELECT * FROM `sys_user` WHERE `user_id` = 10; 部分列名带上前缀或缩写,可以有效减少在连接查询、ORM 映射等场景下刻意起别名或思考区分不同的问题。 -::: tip 个人建议 -```sql +::: code-group +```sql [正例] CREATE TABLE `sys_customer` ( `customer_id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '客户ID', `customer_name` varchar(255) NOT NULL COMMENT '客户名称', @@ -76,7 +72,6 @@ CREATE TABLE `sys_contact_user` ( # 连接查询,你完全不需要用脑去考虑到底是 c.`id` 还是 cu.`customer_id` 的问题,都是 `customer_id` SELECT * FROM `sys_customer` c LEFT JOIN `sys_contact_user` cu ON c.`customer_id` = cu.`customer_id` - ``` ::: @@ -84,12 +79,14 @@ LEFT JOIN `sys_contact_user` cu ON c.`customer_id` = cu.`customer_id` 在大部分的数据存储场景中,我们只会使用正整数,如果能确定该列为非负数,建议添加 `UNSIGNED` 无符号约束。 -```sql +::: code-group +```sql [正例] # 不添加 UNSIGNED 约束,取值范围 TINYINT:[-128, 127] # 添加 UNSIGNED 约束,取值范围 TINYINT:[0, 255] ``` +::: ### 合理采用整数类型 @@ -109,19 +106,21 @@ TINYINT:[0, 255] 例如:是否删除这种只有两种状态的信息,在表设计时建议对该列设置 `bit` 类型(0表示否/假/false,1表示是/真/true),在程序语言中可以采用 boolean 类型对应。 -```sql -`delFlag` bit(1) NOT NULL DEFAULT b'0' COMMENT '删除标识(0否 1是)' +::: code-group +```sql [SQL] +`is_deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否已删除(0否 1是)' ``` -```java +```java [Java] @Data public class User { /** - * 删除标识(0否 1是) + * 是否已删除(0否 1是) */ - private Boolean delFlag; + private Boolean isDeleted; } ``` +::: ## 数据库设计 diff --git a/docs/public/screenshot/侧边栏置顶分组.png b/docs/public/screenshot/侧边栏置顶分组.png index f69ba35a1..47506bcfe 100644 Binary files a/docs/public/screenshot/侧边栏置顶分组.png and b/docs/public/screenshot/侧边栏置顶分组.png differ diff --git a/package.json b/package.json index 0e5aa5ac9..044837090 100644 --- a/package.json +++ b/package.json @@ -6,22 +6,22 @@ "build": "node collect-article-data.mjs && vitepress build docs" }, "devDependencies": { - "@arco-design/web-vue": "^2.38.3", + "@arco-design/web-vue": "^2.40.0", "flexsearch": "^0.7.31", "markdown-it": "^13.0.1", "mermaid": "9.1.7", - "unplugin-vue-components": "^0.22.9", - "vite": "^3.2.3", - "vitepress": "1.0.0-alpha.30", + "unplugin-vue-components": "^0.22.11", + "vite": "^4.0.0", + "vitepress": "1.0.0-alpha.32", "vitepress-plugin-mermaid": "^2.0.8", - "vitepress-plugin-search": "1.0.4-alpha.15", + "vitepress-plugin-search": "1.0.4-alpha.16", "vue": "^3.2.45" }, "dependencies": { - "@antv/g2plot": "^2.4.22", - "axios": "^1.2.0", + "@antv/g2plot": "^2.4.23", + "axios": "^1.2.1", "blueimp-md5": "^2.19.0", - "dayjs": "^1.11.6", + "dayjs": "^1.11.7", "fast-glob": "^3.2.12", "gitalk": "^1.8.0", "gray-matter": "^4.0.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e1cbfe6f1..e49aaf6fe 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,11 +1,11 @@ lockfileVersion: 5.4 specifiers: - '@antv/g2plot': ^2.4.22 - '@arco-design/web-vue': ^2.38.3 - axios: ^1.2.0 + '@antv/g2plot': ^2.4.23 + '@arco-design/web-vue': ^2.40.0 + axios: ^1.2.1 blueimp-md5: ^2.19.0 - dayjs: ^1.11.6 + dayjs: ^1.11.7 fast-glob: ^3.2.12 flexsearch: ^0.7.31 gitalk: ^1.8.0 @@ -13,33 +13,33 @@ specifiers: jquery: ^3.6.1 markdown-it: ^13.0.1 mermaid: 9.1.7 - unplugin-vue-components: ^0.22.9 - vite: ^3.2.3 - vitepress: 1.0.0-alpha.30 + unplugin-vue-components: ^0.22.11 + vite: ^4.0.0 + vitepress: 1.0.0-alpha.32 vitepress-plugin-mermaid: ^2.0.8 - vitepress-plugin-search: 1.0.4-alpha.15 + vitepress-plugin-search: 1.0.4-alpha.16 vue: ^3.2.45 dependencies: - '@antv/g2plot': 2.4.22 - axios: 1.2.0 + '@antv/g2plot': 2.4.23 + axios: 1.2.1 blueimp-md5: 2.19.0 - dayjs: 1.11.6 + dayjs: 1.11.7 fast-glob: 3.2.12 gitalk: 1.8.0 gray-matter: 4.0.3 jquery: 3.6.1 devDependencies: - '@arco-design/web-vue': 2.38.3_vue@3.2.45 + '@arco-design/web-vue': 2.40.0_vue@3.2.45 flexsearch: 0.7.31 markdown-it: 13.0.1 mermaid: 9.1.7 - unplugin-vue-components: 0.22.9_vue@3.2.45 - vite: 3.2.3 - vitepress: 1.0.0-alpha.30 - vitepress-plugin-mermaid: 2.0.8_55tnjwsn52ddxflscbtap2kghq - vitepress-plugin-search: 1.0.4-alpha.15_6ukiivkfea2mllr6zztif65owm + unplugin-vue-components: 0.22.11_vue@3.2.45 + vite: 4.0.0 + vitepress: 1.0.0-alpha.32 + vitepress-plugin-mermaid: 2.0.8_hvm2zxz7tcjwou7d7fw4h4xrqa + vitepress-plugin-search: 1.0.4-alpha.16_obylesgeeckbusrt4b5gsifoni vue: 3.2.45 packages: @@ -157,8 +157,8 @@ packages: '@algolia/requester-common': 4.14.2 dev: true - /@antfu/utils/0.6.0: - resolution: {integrity: sha512-VauUKmo22NYo3y6fIjGjVU7LJyhaedYL9kyabdvIIIl7P+qbNPbQiaLwwk4UOU4McFfA2eg+aIWpEYhkHzsE9Q==} + /@antfu/utils/0.7.2: + resolution: {integrity: sha512-vy9fM3pIxZmX07dL+VX1aZe7ynZ+YyB0jY+jE6r3hOK6GNY2t6W8rzpFC4tgpbXUYABkFQwgJq2XYXlxbXAI0g==} dev: true /@antv/adjust/0.2.5: @@ -281,8 +281,8 @@ packages: tslib: 2.4.0 dev: false - /@antv/g2plot/2.4.22: - resolution: {integrity: sha512-wwpSJ9TL1Z4f35dnlT4wy2z24T38xb8qvb+a9thC/FUx4Iu04zc5vqGOqNvDlBRZAq53+KOMRJ7eC5XtsT8QIg==} + /@antv/g2plot/2.4.23: + resolution: {integrity: sha512-GnrSuUclOKYq/V1sb0WWUM37IV0VKWOA2Klq0jmfj8gLI2r3A9bFzKj+EEg8sr2Hlfo2Iztvt77HYv4laxLUSQ==} dependencies: '@antv/event-emitter': 0.1.3 '@antv/g2': 4.2.8 @@ -340,8 +340,8 @@ packages: color: 3.2.1 dev: true - /@arco-design/web-vue/2.38.3_vue@3.2.45: - resolution: {integrity: sha512-dJsrTHlWKGeUcc6jomZamGYljn2h3yfuV0jZZOs9ho12PM5MfO2NucNNhhjbs25qmmCH8OGXPtZ6ilVoTbEA+Q==} + /@arco-design/web-vue/2.40.0_vue@3.2.45: + resolution: {integrity: sha512-LSrljN6HQKtX44Zu5vMoxoEaSCuUhxkMkuMGt8FSFXvObooyOGAi1tQAJrl9aLJ3t2tcvPH1rgGhFgKAirWk2Q==} peerDependencies: vue: ^3.1.0 dependencies: @@ -349,7 +349,7 @@ packages: b-tween: 0.3.3 b-validate: 1.4.2 compute-scroll-into-view: 1.0.17 - dayjs: 1.11.6 + dayjs: 1.11.7 number-precision: 1.5.2 resize-observer-polyfill: 1.5.1 scroll-into-view-if-needed: 2.2.29 @@ -425,8 +425,8 @@ packages: - '@algolia/client-search' dev: true - /@esbuild/android-arm/0.15.10: - resolution: {integrity: sha512-FNONeQPy/ox+5NBkcSbYJxoXj9GWu8gVGJTVmUyoOCKQFDTrHVKgNSzChdNt0I8Aj/iKcsDf2r9BFwv+FSNUXg==} + /@esbuild/android-arm/0.16.4: + resolution: {integrity: sha512-rZzb7r22m20S1S7ufIc6DC6W659yxoOrl7sKP1nCYhuvUlnCFHVSbATG4keGUtV8rDz11sRRDbWkvQZpzPaHiw==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -434,8 +434,89 @@ packages: dev: true optional: true - /@esbuild/linux-loong64/0.15.10: - resolution: {integrity: sha512-w0Ou3Z83LOYEkwaui2M8VwIp+nLi/NA60lBLMvaJ+vXVMcsARYdEzLNE7RSm4+lSg4zq4d7fAVuzk7PNQ5JFgg==} + /@esbuild/android-arm64/0.16.4: + resolution: {integrity: sha512-VPuTzXFm/m2fcGfN6CiwZTlLzxrKsWbPkG7ArRFpuxyaHUm/XFHQPD4xNwZT6uUmpIHhnSjcaCmcla8COzmZ5Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64/0.16.4: + resolution: {integrity: sha512-MW+B2O++BkcOfMWmuHXB15/l1i7wXhJFqbJhp82IBOais8RBEQv2vQz/jHrDEHaY2X0QY7Wfw86SBL2PbVOr0g==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64/0.16.4: + resolution: {integrity: sha512-a28X1O//aOfxwJVZVs7ZfM8Tyih2Za4nKJrBwW5Wm4yKsnwBy9aiS/xwpxiiTRttw3EaTg4Srerhcm6z0bu9Wg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64/0.16.4: + resolution: {integrity: sha512-e3doCr6Ecfwd7VzlaQqEPrnbvvPjE9uoTpxG5pyLzr2rI2NMjDHmvY1E5EO81O/e9TUOLLkXA5m6T8lfjK9yAA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64/0.16.4: + resolution: {integrity: sha512-Oup3G/QxBgvvqnXWrBed7xxkFNwAwJVHZcklWyQt7YCAL5bfUkaa6FVWnR78rNQiM8MqqLiT6ZTZSdUFuVIg1w==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64/0.16.4: + resolution: {integrity: sha512-vAP+eYOxlN/Bpo/TZmzEQapNS8W1njECrqkTpNgvXskkkJC2AwOXwZWai/Kc2vEFZUXQttx6UJbj9grqjD/+9Q==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm/0.16.4: + resolution: {integrity: sha512-A47ZmtpIPyERxkSvIv+zLd6kNIOtJH03XA0Hy7jaceRDdQaQVGSDt4mZqpWqJYgDk9rg96aglbF6kCRvPGDSUA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64/0.16.4: + resolution: {integrity: sha512-2zXoBhv4r5pZiyjBKrOdFP4CXOChxXiYD50LRUU+65DkdS5niPFHbboKZd/c81l0ezpw7AQnHeoCy5hFrzzs4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32/0.16.4: + resolution: {integrity: sha512-uxdSrpe9wFhz4yBwt2kl2TxS/NWEINYBUFIxQtaEVtglm1eECvsj1vEKI0KX2k2wCe17zDdQ3v+jVxfwVfvvjw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64/0.16.4: + resolution: {integrity: sha512-peDrrUuxbZ9Jw+DwLCh/9xmZAk0p0K1iY5d2IcwmnN+B87xw7kujOkig6ZRcZqgrXgeRGurRHn0ENMAjjD5DEg==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -443,6 +524,105 @@ packages: dev: true optional: true + /@esbuild/linux-mips64el/0.16.4: + resolution: {integrity: sha512-sD9EEUoGtVhFjjsauWjflZklTNr57KdQ6xfloO4yH1u7vNQlOfAlhEzbyBKfgbJlW7rwXYBdl5/NcZ+Mg2XhQA==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64/0.16.4: + resolution: {integrity: sha512-X1HSqHUX9D+d0l6/nIh4ZZJ94eQky8d8z6yxAptpZE3FxCWYWvTDd9X9ST84MGZEJx04VYUD/AGgciddwO0b8g==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64/0.16.4: + resolution: {integrity: sha512-97ANpzyNp0GTXCt6SRdIx1ngwncpkV/z453ZuxbnBROCJ5p/55UjhbaG23UdHj88fGWLKPFtMoU4CBacz4j9FA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x/0.16.4: + resolution: {integrity: sha512-pUvPQLPmbEeJRPjP0DYTC1vjHyhrnCklQmCGYbipkep+oyfTn7GTBJXoPodR7ZS5upmEyc8lzAkn2o29wD786A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64/0.16.4: + resolution: {integrity: sha512-N55Q0mJs3Sl8+utPRPBrL6NLYZKBCLLx0bme/+RbjvMforTGGzFvsRl4xLTZMUBFC1poDzBEPTEu5nxizQ9Nlw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64/0.16.4: + resolution: {integrity: sha512-LHSJLit8jCObEQNYkgsDYBh2JrJT53oJO2HVdkSYLa6+zuLJh0lAr06brXIkljrlI+N7NNW1IAXGn/6IZPi3YQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64/0.16.4: + resolution: {integrity: sha512-nLgdc6tWEhcCFg/WVFaUxHcPK3AP/bh+KEwKtl69Ay5IBqUwKDaq/6Xk0E+fh/FGjnLwqFSsarsbPHeKM8t8Sw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64/0.16.4: + resolution: {integrity: sha512-08SluG24GjPO3tXKk95/85n9kpyZtXCVwURR2i4myhrOfi3jspClV0xQQ0W0PYWHioJj+LejFMt41q+PG3mlAQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64/0.16.4: + resolution: {integrity: sha512-yYiRDQcqLYQSvNQcBKN7XogbrSvBE45FEQdH8fuXPl7cngzkCvpsG2H9Uey39IjQ6gqqc+Q4VXYHsQcKW0OMjQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32/0.16.4: + resolution: {integrity: sha512-5rabnGIqexekYkh9zXG5waotq8mrdlRoBqAktjx2W3kb0zsI83mdCwrcAeKYirnUaTGztR5TxXcXmQrEzny83w==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64/0.16.4: + resolution: {integrity: sha512-sN/I8FMPtmtT2Yw+Dly8Ur5vQ5a/RmC8hW7jO9PtPSQUPkowxWpcUZnqOggU7VwyT3Xkj6vcXWd3V/qTXwultQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@nodelib/fs.scandir/2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -506,14 +686,14 @@ packages: resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==} dev: true - /@vitejs/plugin-vue/3.2.0_vite@3.2.3+vue@3.2.45: - resolution: {integrity: sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw==} + /@vitejs/plugin-vue/4.0.0_vite@4.0.0+vue@3.2.45: + resolution: {integrity: sha512-e0X4jErIxAB5oLtDqbHvHpJe/uWNkdpYV83AOG2xo2tEVSzCzewgJMtREZM30wXnM5ls90hxiOtAuVU6H5JgbA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - vite: ^3.0.0 + vite: ^4.0.0 vue: ^3.2.25 dependencies: - vite: 3.2.3 + vite: 4.0.0 vue: 3.2.45 dev: true @@ -604,24 +784,24 @@ packages: resolution: {integrity: sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg==} dev: true - /@vueuse/core/9.4.0_vue@3.2.45: - resolution: {integrity: sha512-JzgenGj1ZF2BHOen5rsFiAyyI9sXAv7aKhNLlm9b7SwYQeKTcxTWdhudonURCSP3Egl9NQaRBzes2lv/1JUt/Q==} + /@vueuse/core/9.6.0_vue@3.2.45: + resolution: {integrity: sha512-qGUcjKQXHgN+jqXEgpeZGoxdCbIDCdVPz3QiF1uyecVGbMuM63o96I1GjYx5zskKgRI0FKSNsVWM7rwrRMTf6A==} dependencies: '@types/web-bluetooth': 0.0.16 - '@vueuse/metadata': 9.4.0 - '@vueuse/shared': 9.4.0_vue@3.2.45 + '@vueuse/metadata': 9.6.0 + '@vueuse/shared': 9.6.0_vue@3.2.45 vue-demi: 0.13.11_vue@3.2.45 transitivePeerDependencies: - '@vue/composition-api' - vue dev: true - /@vueuse/metadata/9.4.0: - resolution: {integrity: sha512-7GKMdGAsJyQJl35MYOz/RDpP0FxuiZBRDSN79QIPbdqYx4Sd0sVTnIC68KJ6Oln0t0SouvSUMvRHuno216Ud2Q==} + /@vueuse/metadata/9.6.0: + resolution: {integrity: sha512-sIC8R+kWkIdpi5X2z2Gk8TRYzmczDwHRhEFfCu2P+XW2JdPoXrziqsGpDDsN7ykBx4ilwieS7JUIweVGhvZ93w==} dev: true - /@vueuse/shared/9.4.0_vue@3.2.45: - resolution: {integrity: sha512-fTuem51KwMCnqUKkI8B57qAIMcFovtGgsCtAeqxIzH3i6nE9VYge+gVfneNHAAy7lj8twbkNfqQSygOPJTm4tQ==} + /@vueuse/shared/9.6.0_vue@3.2.45: + resolution: {integrity: sha512-/eDchxYYhkHnFyrb00t90UfjCx94kRHxc7J1GtBCqCG4HyPMX+krV9XJgVtWIsAMaxKVU4fC8NSUviG1JkwhUQ==} dependencies: vue-demi: 0.13.11_vue@3.2.45 transitivePeerDependencies: @@ -629,8 +809,8 @@ packages: - vue dev: true - /acorn/8.8.0: - resolution: {integrity: sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==} + /acorn/8.8.1: + resolution: {integrity: sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==} engines: {node: '>=0.4.0'} hasBin: true dev: true @@ -713,8 +893,8 @@ packages: - supports-color dev: false - /axios/1.2.0: - resolution: {integrity: sha512-zT7wZyNYu3N5Bu0wuZ6QccIf93Qk1eV8LOewxgjOZFd2DenOs98cJ7+Y6703d0wkaXGY6/nZd4EweJaHz9uzQw==} + /axios/1.2.1: + resolution: {integrity: sha512-I88cFiGu9ryt/tfVEi4kX2SITsvDddTajXTOFmt2uK1ZVA8LytjtdeyefdQWEf5PU8w+4SSJDoYnggflB5tW4A==} dependencies: follow-redirects: 1.15.2 form-data: 4.0.0 @@ -1374,8 +1554,8 @@ packages: engines: {node: '>=0.11'} dev: false - /dayjs/1.11.6: - resolution: {integrity: sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ==} + /dayjs/1.11.7: + resolution: {integrity: sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==} /debug/3.1.0: resolution: {integrity: sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==} @@ -1502,214 +1682,34 @@ packages: resolution: {integrity: sha512-OaU1hHjgJf+b0NzsxCg7NdIYERD6Hy/PEmFLTjw+b65scuisG3Kt4QoTvJ66BBkPZ581gr0kpoVzKnxniM8nng==} dev: false - /esbuild-android-64/0.15.10: - resolution: {integrity: sha512-UI7krF8OYO1N7JYTgLT9ML5j4+45ra3amLZKx7LO3lmLt1Ibn8t3aZbX5Pu4BjWiqDuJ3m/hsvhPhK/5Y/YpnA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /esbuild-android-arm64/0.15.10: - resolution: {integrity: sha512-EOt55D6xBk5O05AK8brXUbZmoFj4chM8u3riGflLa6ziEoVvNjRdD7Cnp82NHQGfSHgYR06XsPI8/sMuA/cUwg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /esbuild-darwin-64/0.15.10: - resolution: {integrity: sha512-hbDJugTicqIm+WKZgp208d7FcXcaK8j2c0l+fqSJ3d2AzQAfjEYDRM3Z2oMeqSJ9uFxyj/muSACLdix7oTstRA==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /esbuild-darwin-arm64/0.15.10: - resolution: {integrity: sha512-M1t5+Kj4IgSbYmunf2BB6EKLkWUq+XlqaFRiGOk8bmBapu9bCDrxjf4kUnWn59Dka3I27EiuHBKd1rSO4osLFQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /esbuild-freebsd-64/0.15.10: - resolution: {integrity: sha512-KMBFMa7C8oc97nqDdoZwtDBX7gfpolkk6Bcmj6YFMrtCMVgoU/x2DI1p74DmYl7CSS6Ppa3xgemrLrr5IjIn0w==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-freebsd-arm64/0.15.10: - resolution: {integrity: sha512-m2KNbuCX13yQqLlbSojFMHpewbn8wW5uDS6DxRpmaZKzyq8Dbsku6hHvh2U+BcLwWY4mpgXzFUoENEf7IcioGg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-32/0.15.10: - resolution: {integrity: sha512-guXrwSYFAvNkuQ39FNeV4sNkNms1bLlA5vF1H0cazZBOLdLFIny6BhT+TUbK/hdByMQhtWQ5jI9VAmPKbVPu1w==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-64/0.15.10: - resolution: {integrity: sha512-jd8XfaSJeucMpD63YNMO1JCrdJhckHWcMv6O233bL4l6ogQKQOxBYSRP/XLWP+6kVTu0obXovuckJDcA0DKtQA==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-arm/0.15.10: - resolution: {integrity: sha512-6N8vThLL/Lysy9y4Ex8XoLQAlbZKUyExCWyayGi2KgTBelKpPgj6RZnUaKri0dHNPGgReJriKVU6+KDGQwn10A==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-arm64/0.15.10: - resolution: {integrity: sha512-GByBi4fgkvZFTHFDYNftu1DQ1GzR23jws0oWyCfhnI7eMOe+wgwWrc78dbNk709Ivdr/evefm2PJiUBMiusS1A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-mips64le/0.15.10: - resolution: {integrity: sha512-BxP+LbaGVGIdQNJUNF7qpYjEGWb0YyHVSKqYKrn+pTwH/SiHUxFyJYSP3pqkku61olQiSBnSmWZ+YUpj78Tw7Q==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-ppc64le/0.15.10: - resolution: {integrity: sha512-LoSQCd6498PmninNgqd/BR7z3Bsk/mabImBWuQ4wQgmQEeanzWd5BQU2aNi9mBURCLgyheuZS6Xhrw5luw3OkQ==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-riscv64/0.15.10: - resolution: {integrity: sha512-Lrl9Cr2YROvPV4wmZ1/g48httE8z/5SCiXIyebiB5N8VT7pX3t6meI7TQVHw/wQpqP/AF4SksDuFImPTM7Z32Q==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-s390x/0.15.10: - resolution: {integrity: sha512-ReP+6q3eLVVP2lpRrvl5EodKX7EZ1bS1/z5j6hsluAlZP5aHhk6ghT6Cq3IANvvDdscMMCB4QEbI+AjtvoOFpA==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-netbsd-64/0.15.10: - resolution: {integrity: sha512-iGDYtJCMCqldMskQ4eIV+QSS/CuT7xyy9i2/FjpKvxAuCzrESZXiA1L64YNj6/afuzfBe9i8m/uDkFHy257hTw==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-openbsd-64/0.15.10: - resolution: {integrity: sha512-ftMMIwHWrnrYnvuJQRJs/Smlcb28F9ICGde/P3FUTCgDDM0N7WA0o9uOR38f5Xe2/OhNCgkjNeb7QeaE3cyWkQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-sunos-64/0.15.10: - resolution: {integrity: sha512-mf7hBL9Uo2gcy2r3rUFMjVpTaGpFJJE5QTDDqUFf1632FxteYANffDZmKbqX0PfeQ2XjUDE604IcE7OJeoHiyg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-32/0.15.10: - resolution: {integrity: sha512-ttFVo+Cg8b5+qHmZHbEc8Vl17kCleHhLzgT8X04y8zudEApo0PxPg9Mz8Z2cKH1bCYlve1XL8LkyXGFjtUYeGg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-64/0.15.10: - resolution: {integrity: sha512-2H0gdsyHi5x+8lbng3hLbxDWR7mKHWh5BXZGKVG830KUmXOOWFE2YKJ4tHRkejRduOGDrBvHBriYsGtmTv3ntA==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-arm64/0.15.10: - resolution: {integrity: sha512-S+th4F+F8VLsHLR0zrUcG+Et4hx0RKgK1eyHc08kztmLOES8BWwMiaGdoW9hiXuzznXQ0I/Fg904MNbr11Nktw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild/0.15.10: - resolution: {integrity: sha512-N7wBhfJ/E5fzn/SpNgX+oW2RLRjwaL8Y0ezqNqhjD6w0H2p0rDuEz2FKZqpqLnO8DCaWumKe8dsC/ljvVSSxng==} + /esbuild/0.16.4: + resolution: {integrity: sha512-qQrPMQpPTWf8jHugLWHoGqZjApyx3OEm76dlTXobHwh/EBbavbRdjXdYi/GWr43GyN0sfpap14GPkb05NH3ROA==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.15.10 - '@esbuild/linux-loong64': 0.15.10 - esbuild-android-64: 0.15.10 - esbuild-android-arm64: 0.15.10 - esbuild-darwin-64: 0.15.10 - esbuild-darwin-arm64: 0.15.10 - esbuild-freebsd-64: 0.15.10 - esbuild-freebsd-arm64: 0.15.10 - esbuild-linux-32: 0.15.10 - esbuild-linux-64: 0.15.10 - esbuild-linux-arm: 0.15.10 - esbuild-linux-arm64: 0.15.10 - esbuild-linux-mips64le: 0.15.10 - esbuild-linux-ppc64le: 0.15.10 - esbuild-linux-riscv64: 0.15.10 - esbuild-linux-s390x: 0.15.10 - esbuild-netbsd-64: 0.15.10 - esbuild-openbsd-64: 0.15.10 - esbuild-sunos-64: 0.15.10 - esbuild-windows-32: 0.15.10 - esbuild-windows-64: 0.15.10 - esbuild-windows-arm64: 0.15.10 + '@esbuild/android-arm': 0.16.4 + '@esbuild/android-arm64': 0.16.4 + '@esbuild/android-x64': 0.16.4 + '@esbuild/darwin-arm64': 0.16.4 + '@esbuild/darwin-x64': 0.16.4 + '@esbuild/freebsd-arm64': 0.16.4 + '@esbuild/freebsd-x64': 0.16.4 + '@esbuild/linux-arm': 0.16.4 + '@esbuild/linux-arm64': 0.16.4 + '@esbuild/linux-ia32': 0.16.4 + '@esbuild/linux-loong64': 0.16.4 + '@esbuild/linux-mips64el': 0.16.4 + '@esbuild/linux-ppc64': 0.16.4 + '@esbuild/linux-riscv64': 0.16.4 + '@esbuild/linux-s390x': 0.16.4 + '@esbuild/linux-x64': 0.16.4 + '@esbuild/netbsd-x64': 0.16.4 + '@esbuild/openbsd-x64': 0.16.4 + '@esbuild/sunos-x64': 0.16.4 + '@esbuild/win32-arm64': 0.16.4 + '@esbuild/win32-ia32': 0.16.4 + '@esbuild/win32-x64': 0.16.4 dev: true /escape-string-regexp/1.0.5: @@ -2377,6 +2377,15 @@ packages: source-map-js: 1.0.2 dev: true + /postcss/8.4.20: + resolution: {integrity: sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.4 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + /preact-compat/3.16.0_preact@8.1.0: resolution: {integrity: sha512-m9BPZwhKL4bYEHglppBNGeBWdo8mVCsX8SzSzC+YHRUvtYDfcA3/wXb0T+bDZDiJ4hkTxriK/ybVBOMyJ48Ieg==} peerDependencies: @@ -2508,9 +2517,9 @@ packages: source-map-support: 0.3.3 dev: false - /rollup/2.79.1: - resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} - engines: {node: '>=10.0.0'} + /rollup/3.7.3: + resolution: {integrity: sha512-7e68MQbAWCX6mI4/0lG1WHd+NdNAlVamg0Zkd+8LZ/oXojligdGnCNyHlzXqXCZObyjs5FRc3AH0b17iJESGIQ==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: fsevents: 2.3.2 @@ -2606,6 +2615,7 @@ packages: /sourcemap-codec/1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + deprecated: Please use @jridgewell/sourcemap-codec instead dev: true /sprintf-js/1.0.3: @@ -2740,8 +2750,8 @@ packages: which-boxed-primitive: 1.0.2 dev: false - /unplugin-vue-components/0.22.9_vue@3.2.45: - resolution: {integrity: sha512-qBvooq3EgpjtYicxeccRUGUBBQCCw9rJ0kHPZPOSJd8TBZViSv86vuKLTRDHPyjWtclwOIkVStZJfPdJFhYUMw==} + /unplugin-vue-components/0.22.11_vue@3.2.45: + resolution: {integrity: sha512-GTzqPl0Ek8fq8qMufjR6hvtnjnSwMpJ1Rg2Ez9AcKZVp1piWoU/Q4FDnI9wHVKX8eenYL0nqAF3ejYAk1TUfqQ==} engines: {node: '>=14'} peerDependencies: '@babel/parser': ^7.15.8 @@ -2750,7 +2760,7 @@ packages: '@babel/parser': optional: true dependencies: - '@antfu/utils': 0.6.0 + '@antfu/utils': 0.7.2 '@rollup/pluginutils': 5.0.2 chokidar: 3.5.3 debug: 4.3.4 @@ -2759,24 +2769,24 @@ packages: magic-string: 0.26.7 minimatch: 5.1.0 resolve: 1.22.1 - unplugin: 0.10.2 + unplugin: 1.0.0 vue: 3.2.45 transitivePeerDependencies: - rollup - supports-color dev: true - /unplugin/0.10.2: - resolution: {integrity: sha512-6rk7GUa4ICYjae5PrAllvcDeuT8pA9+j5J5EkxbMFaV+SalHhxZ7X2dohMzu6C3XzsMT+6jwR/+pwPNR3uK9MA==} + /unplugin/1.0.0: + resolution: {integrity: sha512-H5UnBUxfhTXBXGo2AwKsl0UaLSHzSNDZNehPQSgdhVfO/t+XAS1Yoj3vmLrrlBrS9ZwtH5tejbX/TCp5DcyCKg==} dependencies: - acorn: 8.8.0 + acorn: 8.8.1 chokidar: 3.5.3 webpack-sources: 3.2.3 - webpack-virtual-modules: 0.4.5 + webpack-virtual-modules: 0.4.6 dev: true - /vite/3.2.3: - resolution: {integrity: sha512-h8jl1TZ76eGs3o2dIBSsvXDLb1m/Ec1iej8ZMdz+PsaFUsftZeWe2CZOI3qogEsMNaywc17gu0q6cQDzh/weCQ==} + /vite/4.0.0: + resolution: {integrity: sha512-ynad+4kYs8Jcnn8J7SacS9vAbk7eMy0xWg6E7bAhS1s79TK+D7tVFGXVZ55S7RNLRROU1rxoKlvZ/qjaB41DGA==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -2800,15 +2810,15 @@ packages: terser: optional: true dependencies: - esbuild: 0.15.10 - postcss: 8.4.18 + esbuild: 0.16.4 + postcss: 8.4.20 resolve: 1.22.1 - rollup: 2.79.1 + rollup: 3.7.3 optionalDependencies: fsevents: 2.3.2 dev: true - /vitepress-plugin-mermaid/2.0.8_55tnjwsn52ddxflscbtap2kghq: + /vitepress-plugin-mermaid/2.0.8_hvm2zxz7tcjwou7d7fw4h4xrqa: resolution: {integrity: sha512-ywWxTeg9kMv7ZPf/igCBF4ZHhWZAyRtbPnA12ICQuNK2AMp7r5IHOfnuX1EJQf8gNdsh8bcvvSvm8Ll92fdOTw==} peerDependencies: mermaid: ^8.0.0 || ^9.0.0 @@ -2816,11 +2826,11 @@ packages: vitepress: ^0.21.6 || ^1.0.0 || ^1.0.0-alpha dependencies: mermaid: 9.1.7 - vitepress: 1.0.0-alpha.30 + vitepress: 1.0.0-alpha.32 dev: true - /vitepress-plugin-search/1.0.4-alpha.15_6ukiivkfea2mllr6zztif65owm: - resolution: {integrity: sha512-Ef/VkhTVYlECVI0H9Ck6745UNPfYFppAqnlxVSMJXdxP2vjOZ5TYNczlTTQ2p9dh16MFw/IurbL1/GrG4nXdNw==} + /vitepress-plugin-search/1.0.4-alpha.16_obylesgeeckbusrt4b5gsifoni: + resolution: {integrity: sha512-D+rs7bwzH+IO+7T9NlxvqSOqmSKbN1yHxUoqClTy5JH+DomL3CcrH2TgSvXc2s58ztlc1dC07c7THo4cNjlUAg==} engines: {node: ^14.13.1 || ^16.7.0 || >=18} peerDependencies: flexsearch: ^0.7.31 @@ -2832,23 +2842,23 @@ packages: '@types/markdown-it': 12.2.3 flexsearch: 0.7.31 markdown-it: 13.0.1 - vite: 3.2.3 - vitepress: 1.0.0-alpha.30 + vite: 4.0.0 + vitepress: 1.0.0-alpha.32 vue: 3.2.45 dev: true - /vitepress/1.0.0-alpha.30: - resolution: {integrity: sha512-CjIqKkGAuvoP2IWBFIbYWyiMSHSGYvjPy7eDkdftawguv5a8w4AjM95VV4Lhyacev4AFcgK23FViibRluBMePw==} + /vitepress/1.0.0-alpha.32: + resolution: {integrity: sha512-Q45N1cLdRr8MAu/+wAKKow7CNQD4sNBlSNsW1UxYfkvSgwPN/dlEmpEkQl/uOpE3C1kv3jvvEJVY0RAIaJFWYQ==} hasBin: true dependencies: '@docsearch/css': 3.3.0 '@docsearch/js': 3.3.0 - '@vitejs/plugin-vue': 3.2.0_vite@3.2.3+vue@3.2.45 + '@vitejs/plugin-vue': 4.0.0_vite@4.0.0+vue@3.2.45 '@vue/devtools-api': 6.4.5 - '@vueuse/core': 9.4.0_vue@3.2.45 + '@vueuse/core': 9.6.0_vue@3.2.45 body-scroll-lock: 4.0.0-beta.0 shiki: 0.11.1 - vite: 3.2.3 + vite: 4.0.0 vue: 3.2.45 transitivePeerDependencies: - '@algolia/client-search' @@ -2908,8 +2918,8 @@ packages: engines: {node: '>=10.13.0'} dev: true - /webpack-virtual-modules/0.4.5: - resolution: {integrity: sha512-8bWq0Iluiv9lVf9YaqWQ9+liNgXSHICm+rg544yRgGYaR8yXZTVBaHZkINZSB2yZSWo4b0F6MIxqJezVfOEAlg==} + /webpack-virtual-modules/0.4.6: + resolution: {integrity: sha512-5tyDlKLqPfMqjT3Q9TAqf2YqjwmnUleZwzJi1A5qXnlBCdj2AtOJ6wAWdglTIDOPgOiOrXeBeFcsQ8+aGQ6QbA==} dev: true /which-boxed-primitive/1.0.2: