From 6cbd313db260ca988d6810dabd32f5cd2b73e9c7 Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Thu, 15 Sep 2022 17:04:21 +0200 Subject: [PATCH 01/29] upgrade packages --- package.json | 18 +- pnpm-lock.yaml | 1120 ++++++++++++++++++++++++------------------------ 2 files changed, 570 insertions(+), 568 deletions(-) diff --git a/package.json b/package.json index c98a63b..b512302 100644 --- a/package.json +++ b/package.json @@ -12,16 +12,16 @@ "node": "^14.18 || >= 16.0.0" }, "devDependencies": { - "@islands/headings": "^0.1.2", - "@islands/prism": "^0.1.1", - "iles": "^0.7.38", - "sass": "^1.51.0", - "typescript": "^4.6.4", - "vitest": "^0.12.6", - "vue": "^3.2.33", - "vue-tsc": "^0.34.13" + "@islands/headings": "^0.8.0", + "@islands/prism": "^0.8.0", + "iles": "^0.8.5", + "sass": "^1.54.9", + "typescript": "^4.8.3", + "vitest": "^0.23.2", + "vue": "^3.2.39", + "vue-tsc": "^0.40.13" }, "dependencies": { - "pinia": "^2.0.14" + "pinia": "^2.0.22" } } \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9ea66d7..afbd6b3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,31 +1,38 @@ lockfileVersion: 5.4 specifiers: - '@islands/headings': ^0.1.2 - '@islands/prism': ^0.1.1 - iles: ^0.7.38 - pinia: ^2.0.14 - sass: ^1.51.0 - typescript: ^4.6.4 - vitest: ^0.12.6 - vue: ^3.2.33 - vue-tsc: ^0.34.13 + '@islands/headings': ^0.8.0 + '@islands/prism': ^0.8.0 + iles: ^0.8.5 + pinia: ^2.0.22 + sass: ^1.54.9 + typescript: ^4.8.3 + vitest: ^0.23.2 + vue: ^3.2.39 + vue-tsc: ^0.40.13 dependencies: - pinia: 2.0.14_ytvqwwdyss532bvoq2clv4ed5m + pinia: 2.0.22_arz4dztosvwy2ghjrlh2wdhejm devDependencies: - '@islands/headings': 0.1.2 - '@islands/prism': 0.1.1 - iles: 0.7.38_sass@1.51.0 - sass: 1.51.0 - typescript: 4.6.4 - vitest: 0.12.6_sass@1.51.0 - vue: 3.2.33 - vue-tsc: 0.34.13_typescript@4.6.4 + '@islands/headings': 0.8.0 + '@islands/prism': 0.8.0 + iles: 0.8.5_sass@1.54.9 + sass: 1.54.9 + typescript: 4.8.3 + vitest: 0.23.2_sass@1.54.9 + vue: 3.2.39 + vue-tsc: 0.40.13_typescript@4.8.3 packages: + /@antfu/install-pkg/0.1.0: + resolution: {integrity: sha512-VaIJd3d1o7irZfK1U0nvBsHMyjkuyMP3HKYVV53z8DKyulkHKmjhhtccXO51WSPeeSHIeoJEoNOKavYpS7jkZw==} + dependencies: + execa: 5.1.1 + find-up: 5.0.0 + dev: true + /@antfu/utils/0.5.2: resolution: {integrity: sha512-CQkeV+oJxUazwjlHD0/3ZD08QWKuGQkhnrKo3e6ly5pd48VUpXbb77q0xMU4+vc2CkJnDS02Eq/M9ugyX20XZA==} dev: true @@ -51,59 +58,92 @@ packages: to-fast-properties: 2.0.0 dev: true - /@islands/headings/0.1.2: - resolution: {integrity: sha512-hf84qsEoGXhVLWNEAHsegMj4DAwk2w4Gd483I9rAAbV6+IQFfGKqkxI9k5fWDFfE2qTlO00Ym8qKRjCr8MnJkg==} + /@esbuild/linux-loong64/0.15.7: + resolution: {integrity: sha512-IKznSJOsVUuyt7cDzzSZyqBEcZe+7WlBqTVXiF1OXP/4Nm387ToaXZ0fyLwI1iBlI/bzpxVq411QE2/Bt2XWWw==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@islands/headings/0.8.0: + resolution: {integrity: sha512-z6ZkbZ4qkEmnr7OnsK3spCEYSvrl6KFKRy7v9elUJRObd/Glw3oncH7ra21J1gYlI4HWLYcOXSG3QdYIH4W8Ew==} dependencies: hast-util-heading-rank: 2.1.0 hast-util-to-string: 2.0.0 dev: true - /@islands/hydration/0.3.8: - resolution: {integrity: sha512-3cjMM0Zk/AiBq0uPc2rjUsT2qNrsAvdS8MJvLHqNAnKf0BdWrqesdOJLCUHmqFqR1GmIElzUN+MoS7+9VPTr8A==} + /@islands/hydration/0.8.1: + resolution: {integrity: sha512-Of36G/RNv+SQVC/CXEdhywy5ri/b/+DIJ6mCW+QQe/J3lOF9hlvcqDofZr6/UD0NPkoBp0iZDF70fBvkn7Ch9A==} dev: true - /@islands/mdx/0.7.5: - resolution: {integrity: sha512-xiWls2QO08tISd6KfrZJjwZ90ZhRBdOhLBymLMb7lMmTb0y+gOOn9tU5htbLPkUllZdG0sDAeNT96Nm9HVa6Mw==} + /@islands/mdx/0.8.0: + resolution: {integrity: sha512-slaueFtXAOHc8W/tyuxn3nCB0WNGzLNH0VzHfDj0D4sFEeyIGmlb77WDVWnigyMZNglRKgZ0de6w/TD/aIKecg==} dependencies: + '@mdx-js/mdx': 2.1.0 estree-walker: 3.0.1 hash-sum: 2.0.0 hast-util-to-html: 8.0.3 remark-frontmatter: 4.0.1 source-map: 0.7.3 unist-util-visit: 4.1.0 - xdm: 3.3.1 transitivePeerDependencies: - supports-color dev: true - /@islands/pages/0.7.9_vue@3.2.33: - resolution: {integrity: sha512-lo6oCpHEQaJBJMbMybUTHSZu0IL10gmKWnuw++lCsziVGJfzJ3niFMexztI7CE4n5wtP06NikVDzYmHTd2Ce0g==} + /@islands/pages/0.8.1_vue@3.2.39: + resolution: {integrity: sha512-G84OdwtyViDVqUjXDC8+cEyjIRgS4lxvRZnP05jHa5NS4Mc6I9ul+sz5I85H3D+qwA7NswoJiq1ni28r0D9lrg==} peerDependencies: - vue: ^3.2.29 + vue: ^3.2.37 dependencies: - debug: 4.3.3 + debug: 4.3.4 deep-equal: 2.0.5 fast-glob: 3.2.11 gray-matter: 4.0.3 pathe: 0.2.0 - vue: 3.2.33 + vue: 3.2.39 transitivePeerDependencies: - supports-color dev: true - /@islands/prerender/0.3.2: - resolution: {integrity: sha512-iB7V0foFDRxuJBM1mihVaqQbnpU3CBl0YALXh0L+e/qkAXgPR0CAckPQ3eHmpS3756cTE8hxcbCAR+B7OG0NOg==} + /@islands/prerender/0.8.1: + resolution: {integrity: sha512-EcgO0E5WkN4QK7nUnFto6csr8OjeWYCq7vKMcQJCMxLcvQsVelDtkxxMvD4W5J/Kvmm8JaFz3bCxs7yMZL3Xew==} dependencies: - '@islands/hydration': 0.3.8 + '@islands/hydration': 0.8.1 dev: true - /@islands/prism/0.1.1: - resolution: {integrity: sha512-kTkQo/qBfgIXeb0unuEazCZEVyWnuIJX81j/QSqjQliX5MAlg/f6THJUJVyQvgKcXipR/TkQutiBXoGXRz208w==} + /@islands/prism/0.8.0: + resolution: {integrity: sha512-Ua3mzLadCDTjlrfRP3qlXHHlRnymBoC1DXOhAkp7fnil31fD3Gu36gEWoLtZOAONMS3uenLCgjfyXE3NtQ4ytA==} dependencies: prismjs: 1.27.0 unist-util-visit: 4.1.0 dev: true + /@mdx-js/mdx/2.1.0: + resolution: {integrity: sha512-AuZGNLSGrytOd7a81E2SsWAOYg/eV5I51BlUPc11PPmPwhpovu7mwfyQ8PH1jxhdH0Is6aRtXHERuDxon0TluQ==} + dependencies: + '@types/estree-jsx': 0.0.1 + '@types/mdx': 2.0.1 + astring: 1.8.1 + estree-util-build-jsx: 2.0.0 + estree-util-is-identifier-name: 2.0.0 + estree-walker: 3.0.1 + hast-util-to-estree: 2.0.2 + markdown-extensions: 1.1.1 + periscopic: 3.0.4 + remark-mdx: 2.1.3 + remark-parse: 10.0.1 + remark-rehype: 10.1.0 + unified: 10.1.1 + unist-util-position-from-estree: 1.1.1 + unist-util-stringify-position: 3.0.0 + unist-util-visit: 4.1.0 + vfile: 5.3.0 + transitivePeerDependencies: + - supports-color + dev: true + /@nodelib/fs.scandir/2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -129,14 +169,6 @@ packages: resolution: {integrity: sha512-YBI/6o2EBz02tdEJRBK8xkt3zvOFOWlLBf7WKYGBsSYSRtjjgrqPe2skp6VLLmKx5WbHHDNcW+6oACaurxGzeA==} dev: true - /@rollup/pluginutils/4.1.2: - resolution: {integrity: sha512-ROn4qvkxP9SyPeHaf7uQC/GPFY6L/OWy9+bd9AwcjOAWQwxRscoEyAUD8qCY5o5iL4jqQwoLk2kaTKJPb/HwzQ==} - engines: {node: '>= 8.0.0'} - dependencies: - estree-walker: 2.0.2 - picomatch: 2.3.1 - dev: true - /@rollup/pluginutils/4.2.1: resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} engines: {node: '>= 8.0.0'} @@ -145,41 +177,20 @@ packages: picomatch: 2.3.1 dev: true - /@sindresorhus/is/4.5.0: - resolution: {integrity: sha512-ZzlL5VTnHZJl8wMWEaYk/13hwMNKLylTSPZRz8+0HIwfRTQMnFgUahDNRRV+rTmPADxQZYxna/nQcStNSCccKg==} - engines: {node: '>=10'} - dev: true - - /@szmarczak/http-timer/4.0.6: - resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} - engines: {node: '>=10'} - dependencies: - defer-to-connect: 2.0.1 - dev: true - /@types/acorn/4.0.6: resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} dependencies: '@types/estree': 0.0.51 dev: true - /@types/cacheable-request/6.0.2: - resolution: {integrity: sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==} - dependencies: - '@types/http-cache-semantics': 4.0.1 - '@types/keyv': 3.1.3 - '@types/node': 17.0.21 - '@types/responselike': 1.0.0 - dev: true - /@types/chai-subset/1.3.3: resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} dependencies: - '@types/chai': 4.3.1 + '@types/chai': 4.3.3 dev: true - /@types/chai/4.3.1: - resolution: {integrity: sha512-/zPMqDkzSZ8t3VtxOa4KPq7uzzW978M9Tvh+j7GHKuo6k6GTLxPJ4J5gE5cjfJ26pnXst0N5Hax8Sr0T2Mi9zQ==} + /@types/chai/4.3.3: + resolution: {integrity: sha512-hC7OMnszpxhZPduX+m+nrx+uFoLkWOMiR4oa/AZF3MuSETYTZmFfJAHqZEM8MVlvfG7BEUcgvtwoCTxBp6hm3g==} dev: true /@types/debug/4.1.7: @@ -194,6 +205,12 @@ packages: '@types/estree': 0.0.51 dev: true + /@types/estree-jsx/1.0.0: + resolution: {integrity: sha512-3qvGd0z8F2ENTGr/GG1yViqfiKmRfrXVx5sJyHGFu3z7m5g5utCQtGp/g29JnjflhtQJBv1WDQukHiT58xPcYQ==} + dependencies: + '@types/estree': 0.0.51 + dev: true + /@types/estree/0.0.46: resolution: {integrity: sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg==} dev: true @@ -212,16 +229,6 @@ packages: '@types/unist': 2.0.6 dev: true - /@types/http-cache-semantics/4.0.1: - resolution: {integrity: sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==} - dev: true - - /@types/keyv/3.1.3: - resolution: {integrity: sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg==} - dependencies: - '@types/node': 17.0.21 - dev: true - /@types/mdast/3.0.10: resolution: {integrity: sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==} dependencies: @@ -244,202 +251,173 @@ packages: resolution: {integrity: sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==} dev: true - /@types/responselike/1.0.0: - resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} - dependencies: - '@types/node': 17.0.21 - dev: true - /@types/unist/2.0.6: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true - /@vitejs/plugin-vue/2.3.3_vite@2.9.9+vue@3.2.33: - resolution: {integrity: sha512-SmQLDyhz+6lGJhPELsBdzXGc+AcaT8stgkbiTFGpXPe8Tl1tJaBw1A6pxDqDuRsVkD8uscrkx3hA7QDOoKYtyw==} - engines: {node: '>=12.0.0'} + /@vitejs/plugin-vue/3.1.0_vite@3.1.1+vue@3.2.39: + resolution: {integrity: sha512-fmxtHPjSOEIRg6vHYDaem+97iwCUg/uSIaTzp98lhELt2ISOQuDo2hbkBdXod0g15IhfPMQmAxh4heUks2zvDA==} + engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - vite: ^2.5.10 + vite: ^3.0.0 vue: ^3.2.25 dependencies: - vite: 2.9.9_sass@1.51.0 - vue: 3.2.33 + vite: 3.1.1_sass@1.54.9 + vue: 3.2.39 dev: true - /@volar/code-gen/0.34.13: - resolution: {integrity: sha512-FO1jC3aB514Ydg0yX3Usx+s/hwnKhDI9yfcEuCyJvWLZtcc+DOrWJu4G0MMLG6AdRvn5UbSyec/g5TnevYfY1g==} + /@volar/code-gen/0.40.13: + resolution: {integrity: sha512-4gShBWuMce868OVvgyA1cU5WxHbjfEme18Tw6uVMfweZCF5fB2KECG0iPrA9D54vHk3FeHarODNwgIaaFfUBlA==} dependencies: - '@volar/source-map': 0.34.13 + '@volar/source-map': 0.40.13 dev: true - /@volar/source-map/0.34.13: - resolution: {integrity: sha512-Cb9rqhA00Q1tgqr2XjckMqlOJlozaBd6R4PndsvTRkGHTwdlv63CvunJGdAh6dXOIDZRKvhplfIJDKS9nDiIIA==} - dev: true - - /@volar/vue-code-gen/0.34.13: - resolution: {integrity: sha512-rNuxyKmv+NW+SbQx6Hx6oQrkAtk7LWc47fiKKt0LZhNPQaNGj7/zhTvpe+aLFCDZw+a6rrH622qi+eovOOAnBA==} + /@volar/source-map/0.40.13: + resolution: {integrity: sha512-dbdkAB2Nxb0wLjAY5O64o3ywVWlAGONnBIoKAkXSf6qkGZM+nJxcizsoiI66K+RHQG0XqlyvjDizfnTxr+6PWg==} dependencies: - '@volar/code-gen': 0.34.13 - '@volar/source-map': 0.34.13 - '@vue/compiler-core': 3.2.33 - '@vue/compiler-dom': 3.2.33 - '@vue/shared': 3.2.33 + '@vue/reactivity': 3.2.38 dev: true - /@volar/vue-typescript/0.34.13: - resolution: {integrity: sha512-vfZngBr0fkZSA5BajA8VLTsao7ZES7j5pHch6xV5vjjcuK6GIbxytQjKPq20Q34DMUrvgI6g30yULAc6zSB4rQ==} + /@volar/typescript-faster/0.40.13: + resolution: {integrity: sha512-uy+TlcFkKoNlKEnxA4x5acxdxLyVDIXGSc8cYDNXpPKjBKXrQaetzCzlO3kVBqu1VLMxKNGJMTKn35mo+ILQmw==} dependencies: - '@volar/code-gen': 0.34.13 - '@volar/source-map': 0.34.13 - '@volar/vue-code-gen': 0.34.13 - '@vue/compiler-sfc': 3.2.33 - '@vue/reactivity': 3.2.33 + semver: 7.3.7 dev: true - /@vue/compiler-core/3.2.31: - resolution: {integrity: sha512-aKno00qoA4o+V/kR6i/pE+aP+esng5siNAVQ422TkBNM6qA4veXiZbSe8OTXHXquEi/f6Akc+nLfB4JGfe4/WQ==} + /@volar/vue-language-core/0.40.13: + resolution: {integrity: sha512-QkCb8msi2KUitTdM6Y4kAb7/ZlEvuLcbBFOC2PLBlFuoZwyxvSP7c/dBGmKGtJlEvMX0LdCyrg5V2aBYxD38/Q==} + dependencies: + '@volar/code-gen': 0.40.13 + '@volar/source-map': 0.40.13 + '@vue/compiler-core': 3.2.39 + '@vue/compiler-dom': 3.2.39 + '@vue/compiler-sfc': 3.2.39 + '@vue/reactivity': 3.2.39 + '@vue/shared': 3.2.39 + dev: true + + /@volar/vue-typescript/0.40.13: + resolution: {integrity: sha512-o7bNztwjs8JmbQjVkrnbZUOfm7q4B8ZYssETISN1tRaBdun6cfNqgpkvDYd+VUBh1O4CdksvN+5BUNnwAz4oCQ==} + dependencies: + '@volar/code-gen': 0.40.13 + '@volar/typescript-faster': 0.40.13 + '@volar/vue-language-core': 0.40.13 + dev: true + + /@vue/compiler-core/3.2.39: + resolution: {integrity: sha512-mf/36OWXqWn0wsC40nwRRGheR/qoID+lZXbIuLnr4/AngM0ov8Xvv8GHunC0rKRIkh60bTqydlqTeBo49rlbqw==} dependencies: '@babel/parser': 7.17.3 - '@vue/shared': 3.2.31 + '@vue/shared': 3.2.39 estree-walker: 2.0.2 source-map: 0.6.1 dev: true - /@vue/compiler-core/3.2.33: - resolution: {integrity: sha512-AAmr52ji3Zhk7IKIuigX2osWWsb2nQE5xsdFYjdnmtQ4gymmqXbjLvkSE174+fF3A3kstYrTgGkqgOEbsdLDpw==} + /@vue/compiler-dom/3.2.39: + resolution: {integrity: sha512-HMFI25Be1C8vLEEv1hgEO1dWwG9QQ8LTTPmCkblVJY/O3OvWx6r1+zsox5mKPMGvqYEZa6l8j+xgOfUspgo7hw==} + dependencies: + '@vue/compiler-core': 3.2.39 + '@vue/shared': 3.2.39 + dev: true + + /@vue/compiler-sfc/3.2.39: + resolution: {integrity: sha512-fqAQgFs1/BxTUZkd0Vakn3teKUt//J3c420BgnYgEOoVdTwYpBTSXCMJ88GOBCylmUBbtquGPli9tVs7LzsWIA==} dependencies: '@babel/parser': 7.17.3 - '@vue/shared': 3.2.33 - estree-walker: 2.0.2 - source-map: 0.6.1 - dev: true - - /@vue/compiler-dom/3.2.31: - resolution: {integrity: sha512-60zIlFfzIDf3u91cqfqy9KhCKIJgPeqxgveH2L+87RcGU/alT6BRrk5JtUso0OibH3O7NXuNOQ0cDc9beT0wrg==} - dependencies: - '@vue/compiler-core': 3.2.31 - '@vue/shared': 3.2.31 - dev: true - - /@vue/compiler-dom/3.2.33: - resolution: {integrity: sha512-GhiG1C8X98Xz9QUX/RlA6/kgPBWJkjq0Rq6//5XTAGSYrTMBgcLpP9+CnlUg1TFxnnCVughAG+KZl28XJqw8uQ==} - dependencies: - '@vue/compiler-core': 3.2.33 - '@vue/shared': 3.2.33 - dev: true - - /@vue/compiler-sfc/3.2.33: - resolution: {integrity: sha512-H8D0WqagCr295pQjUYyO8P3IejM3vEzeCO1apzByAEaAR/WimhMYczHfZVvlCE/9yBaEu/eu9RdiWr0kF8b71Q==} - dependencies: - '@babel/parser': 7.17.3 - '@vue/compiler-core': 3.2.33 - '@vue/compiler-dom': 3.2.33 - '@vue/compiler-ssr': 3.2.33 - '@vue/reactivity-transform': 3.2.33 - '@vue/shared': 3.2.33 + '@vue/compiler-core': 3.2.39 + '@vue/compiler-dom': 3.2.39 + '@vue/compiler-ssr': 3.2.39 + '@vue/reactivity-transform': 3.2.39 + '@vue/shared': 3.2.39 estree-walker: 2.0.2 magic-string: 0.25.7 postcss: 8.4.13 source-map: 0.6.1 dev: true - /@vue/compiler-ssr/3.2.31: - resolution: {integrity: sha512-mjN0rqig+A8TVDnsGPYJM5dpbjlXeHUm2oZHZwGyMYiGT/F4fhJf/cXy8QpjnLQK4Y9Et4GWzHn9PS8AHUnSkw==} + /@vue/compiler-ssr/3.2.39: + resolution: {integrity: sha512-EoGCJ6lincKOZGW+0Ky4WOKsSmqL7hp1ZYgen8M7u/mlvvEQUaO9tKKOy7K43M9U2aA3tPv0TuYYQFrEbK2eFQ==} dependencies: - '@vue/compiler-dom': 3.2.31 - '@vue/shared': 3.2.31 + '@vue/compiler-dom': 3.2.39 + '@vue/shared': 3.2.39 dev: true - /@vue/compiler-ssr/3.2.33: - resolution: {integrity: sha512-XQh1Xdk3VquDpXsnoCd7JnMoWec9CfAzQDQsaMcSU79OrrO2PNR0ErlIjm/mGq3GmBfkQjzZACV+7GhfRB8xMQ==} - dependencies: - '@vue/compiler-dom': 3.2.33 - '@vue/shared': 3.2.33 - dev: true + /@vue/devtools-api/6.2.1: + resolution: {integrity: sha512-OEgAMeQXvCoJ+1x8WyQuVZzFo0wcyCmUR3baRVLmKBo1LmYZWMlRiXlux5jd0fqVJu6PfDbOrZItVqUEzLobeQ==} - /@vue/devtools-api/6.0.12: - resolution: {integrity: sha512-iO/4FIezHKXhiDBdKySCvJVh8/mZPxHpiQrTy+PXVqJZgpTPTdHy4q8GXulaY+UKEagdkBb0onxNQZ0LNiqVhw==} - dev: true - - /@vue/devtools-api/6.1.4: - resolution: {integrity: sha512-IiA0SvDrJEgXvVxjNkHPFfDx6SXw0b/TUkqMcDZWNg9fnCAHbTpoo59YfJ9QLFkwa3raau5vSlRVzMSLDnfdtQ==} - - /@vue/reactivity-transform/3.2.33: - resolution: {integrity: sha512-4UL5KOIvSQb254aqenW4q34qMXbfZcmEsV/yVidLUgvwYQQ/D21bGX3DlgPUGI3c4C+iOnNmDCkIxkILoX/Pyw==} + /@vue/reactivity-transform/3.2.39: + resolution: {integrity: sha512-HGuWu864zStiWs9wBC6JYOP1E00UjMdDWIG5W+FpUx28hV3uz9ODOKVNm/vdOy/Pvzg8+OcANxAVC85WFBbl3A==} dependencies: '@babel/parser': 7.17.3 - '@vue/compiler-core': 3.2.33 - '@vue/shared': 3.2.33 + '@vue/compiler-core': 3.2.39 + '@vue/shared': 3.2.39 estree-walker: 2.0.2 magic-string: 0.25.7 dev: true - /@vue/reactivity/3.2.33: - resolution: {integrity: sha512-62Sq0mp9/0bLmDuxuLD5CIaMG2susFAGARLuZ/5jkU1FCf9EDbwUuF+BO8Ub3Rbodx0ziIecM/NsmyjardBxfQ==} + /@vue/reactivity/3.2.38: + resolution: {integrity: sha512-6L4myYcH9HG2M25co7/BSo0skKFHpAN8PhkNPM4xRVkyGl1K5M3Jx4rp5bsYhvYze2K4+l+pioN4e6ZwFLUVtw==} dependencies: - '@vue/shared': 3.2.33 + '@vue/shared': 3.2.38 dev: true - /@vue/runtime-core/3.2.33: - resolution: {integrity: sha512-N2D2vfaXsBPhzCV3JsXQa2NECjxP3eXgZlFqKh4tgakp3iX6LCGv76DLlc+IfFZq+TW10Y8QUfeihXOupJ1dGw==} + /@vue/reactivity/3.2.39: + resolution: {integrity: sha512-vlaYX2a3qMhIZfrw3Mtfd+BuU+TZmvDrPMa+6lpfzS9k/LnGxkSuf0fhkP0rMGfiOHPtyKoU9OJJJFGm92beVQ==} dependencies: - '@vue/reactivity': 3.2.33 - '@vue/shared': 3.2.33 + '@vue/shared': 3.2.39 dev: true - /@vue/runtime-dom/3.2.33: - resolution: {integrity: sha512-LSrJ6W7CZTSUygX5s8aFkraDWlO6K4geOwA3quFF2O+hC3QuAMZt/0Xb7JKE3C4JD4pFwCSO7oCrZmZ0BIJUnw==} + /@vue/runtime-core/3.2.39: + resolution: {integrity: sha512-xKH5XP57JW5JW+8ZG1khBbuLakINTgPuINKL01hStWLTTGFOrM49UfCFXBcFvWmSbci3gmJyLl2EAzCaZWsx8g==} dependencies: - '@vue/runtime-core': 3.2.33 - '@vue/shared': 3.2.33 + '@vue/reactivity': 3.2.39 + '@vue/shared': 3.2.39 + dev: true + + /@vue/runtime-dom/3.2.39: + resolution: {integrity: sha512-4G9AEJP+sLhsqf5wXcyKVWQKUhI+iWfy0hWQgea+CpaTD7BR0KdQzvoQdZhwCY6B3oleSyNLkLAQwm0ya/wNoA==} + dependencies: + '@vue/runtime-core': 3.2.39 + '@vue/shared': 3.2.39 csstype: 2.6.19 dev: true - /@vue/server-renderer/3.2.31_vue@3.2.33: - resolution: {integrity: sha512-8CN3Zj2HyR2LQQBHZ61HexF5NReqngLT3oahyiVRfSSvak+oAvVmu8iNLSu6XR77Ili2AOpnAt1y8ywjjqtmkg==} + /@vue/server-renderer/3.2.39_vue@3.2.39: + resolution: {integrity: sha512-1yn9u2YBQWIgytFMjz4f/t0j43awKytTGVptfd3FtBk76t1pd8mxbek0G/DrnjJhd2V7mSTb5qgnxMYt8Z5iSQ==} peerDependencies: - vue: 3.2.31 + vue: 3.2.39 dependencies: - '@vue/compiler-ssr': 3.2.31 - '@vue/shared': 3.2.31 - vue: 3.2.33 + '@vue/compiler-ssr': 3.2.39 + '@vue/shared': 3.2.39 + vue: 3.2.39 dev: true - /@vue/server-renderer/3.2.33_vue@3.2.33: - resolution: {integrity: sha512-4jpJHRD4ORv8PlbYi+/MfP8ec1okz6rybe36MdpkDrGIdEItHEUyaHSKvz+ptNEyQpALmmVfRteHkU9F8vxOew==} - peerDependencies: - vue: 3.2.33 - dependencies: - '@vue/compiler-ssr': 3.2.33 - '@vue/shared': 3.2.33 - vue: 3.2.33 + /@vue/shared/3.2.38: + resolution: {integrity: sha512-dTyhTIRmGXBjxJE+skC8tTWCGLCVc4wQgRRLt8+O9p5ewBAjoBwtCAkLPrtToSr1xltoe3st21Pv953aOZ7alg==} dev: true - /@vue/shared/3.2.31: - resolution: {integrity: sha512-ymN2pj6zEjiKJZbrf98UM2pfDd6F2H7ksKw7NDt/ZZ1fh5Ei39X5tABugtT03ZRlWd9imccoK0hE8hpjpU7irQ==} + /@vue/shared/3.2.39: + resolution: {integrity: sha512-D3dl2ZB9qE6mTuWPk9RlhDeP1dgNRUKC3NJxji74A4yL8M2MwlhLKUC/49WHjrNzSPug58fWx/yFbaTzGAQSBw==} dev: true - /@vue/shared/3.2.33: - resolution: {integrity: sha512-UBc1Pg1T3yZ97vsA2ueER0F6GbJebLHYlEi4ou1H5YL4KWvMOOWwpYo9/QpWq93wxKG6Wo13IY74Hcn/f7c7Bg==} - dev: true - - /@vueuse/head/0.7.5_vue@3.2.33: + /@vueuse/head/0.7.5_vue@3.2.39: resolution: {integrity: sha512-L+XQ5Act0nT/ZyO8Qo10J4FyM1qPOyQb6MT4MMn6+AITzrStpmKs/nUDDLJKD/rCcNWl/65XbdQm4T2vKp3VOQ==} peerDependencies: vue: '>=3' dependencies: - vue: 3.2.33 + vue: 3.2.39 dev: true - /acorn-jsx/5.3.2_acorn@8.7.0: + /acorn-jsx/5.3.2_acorn@8.8.0: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.7.0 + acorn: 8.8.0 dev: true - /acorn/8.7.0: - resolution: {integrity: sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==} + /acorn/8.8.0: + resolution: {integrity: sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==} engines: {node: '>=0.4.0'} hasBin: true dev: true @@ -485,13 +463,6 @@ packages: engines: {node: '>=8'} dev: true - /bindings/1.5.0: - resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} - dependencies: - file-uri-to-path: 1.0.0 - dev: true - optional: true - /brace-expansion/2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} dependencies: @@ -505,24 +476,6 @@ packages: fill-range: 7.0.1 dev: true - /cacheable-lookup/5.0.4: - resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} - engines: {node: '>=10.6.0'} - dev: true - - /cacheable-request/7.0.2: - resolution: {integrity: sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==} - engines: {node: '>=8'} - dependencies: - clone-response: 1.0.2 - get-stream: 5.2.0 - http-cache-semantics: 4.1.0 - keyv: 4.1.1 - lowercase-keys: 2.0.0 - normalize-url: 6.1.0 - responselike: 2.0.0 - dev: true - /call-bind/1.0.2: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: @@ -564,7 +517,7 @@ packages: dev: true /check-error/1.0.2: - resolution: {integrity: sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=} + resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} dev: true /chokidar/3.5.3: @@ -582,30 +535,23 @@ packages: fsevents: 2.3.2 dev: true - /clone-response/1.0.2: - resolution: {integrity: sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=} - dependencies: - mimic-response: 1.0.1 - dev: true - /comma-separated-tokens/2.0.2: resolution: {integrity: sha512-G5yTt3KQN4Yn7Yk4ed73hlZ1evrFKXeUW3086p3PRFNp7m2vIjI6Pg+Kgb+oyzhd9F2qdcoj67+y3SdxL5XWsg==} dev: true + /cross-spawn/7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + /csstype/2.6.19: resolution: {integrity: sha512-ZVxXaNy28/k3kJg0Fou5MiYpp88j7H9hLZp8PDC3jV0WFjfH5E9xHb56L0W59cPbKbcHXeP4qyT8PrHp8t6LcQ==} dev: true - /deasync/0.1.24: - resolution: {integrity: sha512-i98vg42xNfRZCymummMAN0rIcQ1gZFinSe3btvPIvy6JFTaeHcumeKybRo2HTv86nasfmT0nEgAn2ggLZhOCVA==} - engines: {node: '>=0.11.0'} - requiresBuild: true - dependencies: - bindings: 1.5.0 - node-addon-api: 1.7.2 - dev: true - optional: true - /debug/4.3.3: resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==} engines: {node: '>=6.0'} @@ -618,19 +564,24 @@ packages: ms: 2.1.2 dev: true + /debug/4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + /decode-named-character-reference/1.0.1: resolution: {integrity: sha512-YV/0HQHreRwKb7uBopyIkLG17jG6Sv2qUchk9qSoVJ2f+flwRsPNBO0hAnjt6mTNYUT+vw9Gy2ihXg4sUWPi2w==} dependencies: character-entities: 2.0.1 dev: true - /decompress-response/6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} - engines: {node: '>=10'} - dependencies: - mimic-response: 3.1.0 - dev: true - /deep-eql/3.0.1: resolution: {integrity: sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==} engines: {node: '>=0.12'} @@ -658,11 +609,6 @@ packages: which-typed-array: 1.1.7 dev: true - /defer-to-connect/2.0.1: - resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} - engines: {node: '>=10'} - dev: true - /define-properties/1.1.3: resolution: {integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==} engines: {node: '>= 0.4'} @@ -680,12 +626,6 @@ packages: engines: {node: '>=0.3.1'} dev: true - /end-of-stream/1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - dependencies: - once: 1.4.0 - dev: true - /es-abstract/1.19.1: resolution: {integrity: sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==} engines: {node: '>= 0.4'} @@ -738,8 +678,8 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-android-64/0.14.39: - resolution: {integrity: sha512-EJOu04p9WgZk0UoKTqLId9VnIsotmI/Z98EXrKURGb3LPNunkeffqQIkjS2cAvidh+OK5uVrXaIP229zK6GvhQ==} + /esbuild-android-64/0.15.7: + resolution: {integrity: sha512-p7rCvdsldhxQr3YHxptf1Jcd86dlhvc3EQmQJaZzzuAxefO9PvcI0GLOa5nCWem1AJ8iMRu9w0r5TG8pHmbi9w==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -747,8 +687,8 @@ packages: dev: true optional: true - /esbuild-android-arm64/0.14.39: - resolution: {integrity: sha512-+twajJqO7n3MrCz9e+2lVOnFplRsaGRwsq1KL/uOy7xK7QdRSprRQcObGDeDZUZsacD5gUkk6OiHiYp6RzU3CA==} + /esbuild-android-arm64/0.15.7: + resolution: {integrity: sha512-L775l9ynJT7rVqRM5vo+9w5g2ysbOCfsdLV4CWanTZ1k/9Jb3IYlQ06VCI1edhcosTYJRECQFJa3eAvkx72eyQ==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -756,8 +696,8 @@ packages: dev: true optional: true - /esbuild-darwin-64/0.14.39: - resolution: {integrity: sha512-ImT6eUw3kcGcHoUxEcdBpi6LfTRWaV6+qf32iYYAfwOeV+XaQ/Xp5XQIBiijLeo+LpGci9M0FVec09nUw41a5g==} + /esbuild-darwin-64/0.15.7: + resolution: {integrity: sha512-KGPt3r1c9ww009t2xLB6Vk0YyNOXh7hbjZ3EecHoVDxgtbUlYstMPDaReimKe6eOEfyY4hBEEeTvKwPsiH5WZg==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -765,8 +705,8 @@ packages: dev: true optional: true - /esbuild-darwin-arm64/0.14.39: - resolution: {integrity: sha512-/fcQ5UhE05OiT+bW5v7/up1bDsnvaRZPJxXwzXsMRrr7rZqPa85vayrD723oWMT64dhrgWeA3FIneF8yER0XTw==} + /esbuild-darwin-arm64/0.15.7: + resolution: {integrity: sha512-kBIHvtVqbSGajN88lYMnR3aIleH3ABZLLFLxwL2stiuIGAjGlQW741NxVTpUHQXUmPzxi6POqc9npkXa8AcSZQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -774,8 +714,8 @@ packages: dev: true optional: true - /esbuild-freebsd-64/0.14.39: - resolution: {integrity: sha512-oMNH8lJI4wtgN5oxuFP7BQ22vgB/e3Tl5Woehcd6i2r6F3TszpCnNl8wo2d/KvyQ4zvLvCWAlRciumhQg88+kQ==} + /esbuild-freebsd-64/0.15.7: + resolution: {integrity: sha512-hESZB91qDLV5MEwNxzMxPfbjAhOmtfsr9Wnuci7pY6TtEh4UDuevmGmkUIjX/b+e/k4tcNBMf7SRQ2mdNuK/HQ==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -783,8 +723,8 @@ packages: dev: true optional: true - /esbuild-freebsd-arm64/0.14.39: - resolution: {integrity: sha512-1GHK7kwk57ukY2yI4ILWKJXaxfr+8HcM/r/JKCGCPziIVlL+Wi7RbJ2OzMcTKZ1HpvEqCTBT/J6cO4ZEwW4Ypg==} + /esbuild-freebsd-arm64/0.15.7: + resolution: {integrity: sha512-dLFR0ChH5t+b3J8w0fVKGvtwSLWCv7GYT2Y2jFGulF1L5HftQLzVGN+6pi1SivuiVSmTh28FwUhi9PwQicXI6Q==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -792,8 +732,8 @@ packages: dev: true optional: true - /esbuild-linux-32/0.14.39: - resolution: {integrity: sha512-g97Sbb6g4zfRLIxHgW2pc393DjnkTRMeq3N1rmjDUABxpx8SjocK4jLen+/mq55G46eE2TA0MkJ4R3SpKMu7dg==} + /esbuild-linux-32/0.15.7: + resolution: {integrity: sha512-v3gT/LsONGUZcjbt2swrMjwxo32NJzk+7sAgtxhGx1+ZmOFaTRXBAi1PPfgpeo/J//Un2jIKm/I+qqeo4caJvg==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -801,8 +741,8 @@ packages: dev: true optional: true - /esbuild-linux-64/0.14.39: - resolution: {integrity: sha512-4tcgFDYWdI+UbNMGlua9u1Zhu0N5R6u9tl5WOM8aVnNX143JZoBZLpCuUr5lCKhnD0SCO+5gUyMfupGrHtfggQ==} + /esbuild-linux-64/0.15.7: + resolution: {integrity: sha512-LxXEfLAKwOVmm1yecpMmWERBshl+Kv5YJ/1KnyAr6HRHFW8cxOEsEfisD3sVl/RvHyW//lhYUVSuy9jGEfIRAQ==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -810,8 +750,8 @@ packages: dev: true optional: true - /esbuild-linux-arm/0.14.39: - resolution: {integrity: sha512-t0Hn1kWVx5UpCzAJkKRfHeYOLyFnXwYynIkK54/h3tbMweGI7dj400D1k0Vvtj2u1P+JTRT9tx3AjtLEMmfVBQ==} + /esbuild-linux-arm/0.15.7: + resolution: {integrity: sha512-JKgAHtMR5f75wJTeuNQbyznZZa+pjiUHV7sRZp42UNdyXC6TiUYMW/8z8yIBAr2Fpad8hM1royZKQisqPABPvQ==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -819,8 +759,8 @@ packages: dev: true optional: true - /esbuild-linux-arm64/0.14.39: - resolution: {integrity: sha512-23pc8MlD2D6Px1mV8GMglZlKgwgNKAO8gsgsLLcXWSs9lQsCYkIlMo/2Ycfo5JrDIbLdwgP8D2vpfH2KcBqrDQ==} + /esbuild-linux-arm64/0.15.7: + resolution: {integrity: sha512-P3cfhudpzWDkglutWgXcT2S7Ft7o2e3YDMrP1n0z2dlbUZghUkKCyaWw0zhp4KxEEzt/E7lmrtRu/pGWnwb9vw==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -828,8 +768,8 @@ packages: dev: true optional: true - /esbuild-linux-mips64le/0.14.39: - resolution: {integrity: sha512-epwlYgVdbmkuRr5n4es3B+yDI0I2e/nxhKejT9H0OLxFAlMkeQZxSpxATpDc9m8NqRci6Kwyb/SfmD1koG2Zuw==} + /esbuild-linux-mips64le/0.15.7: + resolution: {integrity: sha512-T7XKuxl0VpeFLCJXub6U+iybiqh0kM/bWOTb4qcPyDDwNVhLUiPcGdG2/0S7F93czUZOKP57YiLV8YQewgLHKw==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -837,8 +777,8 @@ packages: dev: true optional: true - /esbuild-linux-ppc64le/0.14.39: - resolution: {integrity: sha512-W/5ezaq+rQiQBThIjLMNjsuhPHg+ApVAdTz2LvcuesZFMsJoQAW2hutoyg47XxpWi7aEjJGrkS26qCJKhRn3QQ==} + /esbuild-linux-ppc64le/0.15.7: + resolution: {integrity: sha512-6mGuC19WpFN7NYbecMIJjeQgvDb5aMuvyk0PDYBJrqAEMkTwg3Z98kEKuCm6THHRnrgsdr7bp4SruSAxEM4eJw==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -846,8 +786,8 @@ packages: dev: true optional: true - /esbuild-linux-riscv64/0.14.39: - resolution: {integrity: sha512-IS48xeokcCTKeQIOke2O0t9t14HPvwnZcy+5baG13Z1wxs9ZrC5ig5ypEQQh4QMKxURD5TpCLHw2W42CLuVZaA==} + /esbuild-linux-riscv64/0.15.7: + resolution: {integrity: sha512-uUJsezbswAYo/X7OU/P+PuL/EI9WzxsEQXDekfwpQ23uGiooxqoLFAPmXPcRAt941vjlY9jtITEEikWMBr+F/g==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -855,8 +795,8 @@ packages: dev: true optional: true - /esbuild-linux-s390x/0.14.39: - resolution: {integrity: sha512-zEfunpqR8sMomqXhNTFEKDs+ik7HC01m3M60MsEjZOqaywHu5e5682fMsqOlZbesEAAaO9aAtRBsU7CHnSZWyA==} + /esbuild-linux-s390x/0.15.7: + resolution: {integrity: sha512-+tO+xOyTNMc34rXlSxK7aCwJgvQyffqEM5MMdNDEeMU3ss0S6wKvbBOQfgd5jRPblfwJ6b+bKiz0g5nABpY0QQ==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -864,8 +804,8 @@ packages: dev: true optional: true - /esbuild-netbsd-64/0.14.39: - resolution: {integrity: sha512-Uo2suJBSIlrZCe4E0k75VDIFJWfZy+bOV6ih3T4MVMRJh1lHJ2UyGoaX4bOxomYN3t+IakHPyEoln1+qJ1qYaA==} + /esbuild-netbsd-64/0.15.7: + resolution: {integrity: sha512-yVc4Wz+Pu3cP5hzm5kIygNPrjar/v5WCSoRmIjCPWfBVJkZNb5brEGKUlf+0Y759D48BCWa0WHrWXaNy0DULTQ==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -873,8 +813,8 @@ packages: dev: true optional: true - /esbuild-openbsd-64/0.14.39: - resolution: {integrity: sha512-secQU+EpgUPpYjJe3OecoeGKVvRMLeKUxSMGHnK+aK5uQM3n1FPXNJzyz1LHFOo0WOyw+uoCxBYdM4O10oaCAA==} + /esbuild-openbsd-64/0.15.7: + resolution: {integrity: sha512-GsimbwC4FSR4lN3wf8XmTQ+r8/0YSQo21rWDL0XFFhLHKlzEA4SsT1Tl8bPYu00IU6UWSJ+b3fG/8SB69rcuEQ==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -882,8 +822,8 @@ packages: dev: true optional: true - /esbuild-sunos-64/0.14.39: - resolution: {integrity: sha512-qHq0t5gePEDm2nqZLb+35p/qkaXVS7oIe32R0ECh2HOdiXXkj/1uQI9IRogGqKkK+QjDG+DhwiUw7QoHur/Rwg==} + /esbuild-sunos-64/0.15.7: + resolution: {integrity: sha512-8CDI1aL/ts0mDGbWzjEOGKXnU7p3rDzggHSBtVryQzkSOsjCHRVe0iFYUuhczlxU1R3LN/E7HgUO4NXzGGP/Ag==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -891,8 +831,8 @@ packages: dev: true optional: true - /esbuild-windows-32/0.14.39: - resolution: {integrity: sha512-XPjwp2OgtEX0JnOlTgT6E5txbRp6Uw54Isorm3CwOtloJazeIWXuiwK0ONJBVb/CGbiCpS7iP2UahGgd2p1x+Q==} + /esbuild-windows-32/0.15.7: + resolution: {integrity: sha512-cOnKXUEPS8EGCzRSFa1x6NQjGhGsFlVgjhqGEbLTPsA7x4RRYiy2RKoArNUU4iR2vHmzqS5Gr84MEumO/wxYKA==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -900,8 +840,8 @@ packages: dev: true optional: true - /esbuild-windows-64/0.14.39: - resolution: {integrity: sha512-E2wm+5FwCcLpKsBHRw28bSYQw0Ikxb7zIMxw3OPAkiaQhLVr3dnVO8DofmbWhhf6b97bWzg37iSZ45ZDpLw7Ow==} + /esbuild-windows-64/0.15.7: + resolution: {integrity: sha512-7MI08Ec2sTIDv+zH6StNBKO+2hGUYIT42GmFyW6MBBWWtJhTcQLinKS6ldIN1d52MXIbiJ6nXyCJ+LpL4jBm3Q==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -909,8 +849,8 @@ packages: dev: true optional: true - /esbuild-windows-arm64/0.14.39: - resolution: {integrity: sha512-sBZQz5D+Gd0EQ09tZRnz/PpVdLwvp/ufMtJ1iDFYddDaPpZXKqPyaxfYBLs3ueiaksQ26GGa7sci0OqFzNs7KA==} + /esbuild-windows-arm64/0.15.7: + resolution: {integrity: sha512-R06nmqBlWjKHddhRJYlqDd3Fabx9LFdKcjoOy08YLimwmsswlFBJV4rXzZCxz/b7ZJXvrZgj8DDv1ewE9+StMw==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -918,32 +858,33 @@ packages: dev: true optional: true - /esbuild/0.14.39: - resolution: {integrity: sha512-2kKujuzvRWYtwvNjYDY444LQIA3TyJhJIX3Yo4+qkFlDDtGlSicWgeHVJqMUP/2sSfH10PGwfsj+O2ro1m10xQ==} + /esbuild/0.15.7: + resolution: {integrity: sha512-7V8tzllIbAQV1M4QoE52ImKu8hT/NLGlGXkiDsbEU5PS6K8Mn09ZnYoS+dcmHxOS9CRsV4IRAMdT3I67IyUNXw==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - esbuild-android-64: 0.14.39 - esbuild-android-arm64: 0.14.39 - esbuild-darwin-64: 0.14.39 - esbuild-darwin-arm64: 0.14.39 - esbuild-freebsd-64: 0.14.39 - esbuild-freebsd-arm64: 0.14.39 - esbuild-linux-32: 0.14.39 - esbuild-linux-64: 0.14.39 - esbuild-linux-arm: 0.14.39 - esbuild-linux-arm64: 0.14.39 - esbuild-linux-mips64le: 0.14.39 - esbuild-linux-ppc64le: 0.14.39 - esbuild-linux-riscv64: 0.14.39 - esbuild-linux-s390x: 0.14.39 - esbuild-netbsd-64: 0.14.39 - esbuild-openbsd-64: 0.14.39 - esbuild-sunos-64: 0.14.39 - esbuild-windows-32: 0.14.39 - esbuild-windows-64: 0.14.39 - esbuild-windows-arm64: 0.14.39 + '@esbuild/linux-loong64': 0.15.7 + esbuild-android-64: 0.15.7 + esbuild-android-arm64: 0.15.7 + esbuild-darwin-64: 0.15.7 + esbuild-darwin-arm64: 0.15.7 + esbuild-freebsd-64: 0.15.7 + esbuild-freebsd-arm64: 0.15.7 + esbuild-linux-32: 0.15.7 + esbuild-linux-64: 0.15.7 + esbuild-linux-arm: 0.15.7 + esbuild-linux-arm64: 0.15.7 + esbuild-linux-mips64le: 0.15.7 + esbuild-linux-ppc64le: 0.15.7 + esbuild-linux-riscv64: 0.15.7 + esbuild-linux-s390x: 0.15.7 + esbuild-netbsd-64: 0.15.7 + esbuild-openbsd-64: 0.15.7 + esbuild-sunos-64: 0.15.7 + esbuild-windows-32: 0.15.7 + esbuild-windows-64: 0.15.7 + esbuild-windows-arm64: 0.15.7 dev: true /esprima/4.0.1: @@ -985,8 +926,23 @@ packages: resolution: {integrity: sha512-woY0RUD87WzMBUiZLx8NsYr23N5BKsOMZHhu2hoNRVh6NXGfoiT1KOL8G3UHlJAnEDGmfa5ubNA/AacfG+Kb0g==} dev: true + /execa/5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + /extend-shallow/2.0.1: - resolution: {integrity: sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=} + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} engines: {node: '>=0.10.0'} dependencies: is-extendable: 0.1.1 @@ -1004,7 +960,7 @@ packages: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.4 + micromatch: 4.0.5 dev: true /fastq/1.13.0: @@ -1019,11 +975,6 @@ packages: format: 0.2.2 dev: true - /file-uri-to-path/1.0.0: - resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} - dev: true - optional: true - /fill-range/7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} @@ -1031,12 +982,20 @@ packages: to-regex-range: 5.0.1 dev: true + /find-up/5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: true + /foreach/2.0.5: - resolution: {integrity: sha1-C+4AUBiusmDQo6865ljdATbsG5k=} + resolution: {integrity: sha512-ZBbtRiapkZYLsqoPyZOR+uPfto0GRMNQN1GwzZtZt7iZvPPbDDQV0JF5Hx4o/QFQ5c0vyuoZ98T8RSBbopzWtA==} dev: true /format/0.2.2: - resolution: {integrity: sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=} + resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} engines: {node: '>=0.4.x'} dev: true @@ -1053,7 +1012,7 @@ packages: dev: true /get-func-name/2.0.0: - resolution: {integrity: sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=} + resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} dev: true /get-intrinsic/1.1.1: @@ -1064,11 +1023,9 @@ packages: has-symbols: 1.0.2 dev: true - /get-stream/5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} - engines: {node: '>=8'} - dependencies: - pump: 3.0.0 + /get-stream/6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} dev: true /get-symbol-description/1.0.0: @@ -1086,23 +1043,6 @@ packages: is-glob: 4.0.3 dev: true - /got/11.8.3: - resolution: {integrity: sha512-7gtQ5KiPh1RtGS9/Jbv1ofDpBFuq42gyfEib+ejaRBJuj/3tQFeR5+gw57e4ipaU8c/rCjvX6fkQz2lyDlGAOg==} - engines: {node: '>=10.19.0'} - dependencies: - '@sindresorhus/is': 4.5.0 - '@szmarczak/http-timer': 4.0.6 - '@types/cacheable-request': 6.0.2 - '@types/responselike': 1.0.0 - cacheable-lookup: 5.0.4 - cacheable-request: 7.0.2 - decompress-response: 6.0.0 - http2-wrapper: 1.0.3 - lowercase-keys: 2.0.0 - p-cancelable: 2.1.1 - responselike: 2.0.0 - dev: true - /gray-matter/4.0.3: resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} engines: {node: '>=6.0'} @@ -1203,54 +1143,50 @@ packages: resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==} dev: true - /http-cache-semantics/4.1.0: - resolution: {integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==} + /human-signals/2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} dev: true - /http2-wrapper/1.0.3: - resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} - engines: {node: '>=10.19.0'} - dependencies: - quick-lru: 5.1.1 - resolve-alpn: 1.2.1 - dev: true - - /iles/0.7.38_sass@1.51.0: - resolution: {integrity: sha512-Eg2YQjqDfr9WNGNsF5p70n/z9l1dPCfY95kCy3mFSn+RRH1ZemXYd3he1PwtbLLst7B4+6TEc5mrpZnnJsm1Og==} + /iles/0.8.5_sass@1.54.9: + resolution: {integrity: sha512-4ETrQU69KhyxRyR2P/OJdRSF7G79JRIcMeFYUNr60vuolebmqS8Uc6HDilvoZysy3zihZvN8HWLj3Kl4aaVv6g==} engines: {node: ^14.18 || >= 16.0.0} hasBin: true dependencies: - '@islands/hydration': 0.3.8 - '@islands/mdx': 0.7.5 - '@islands/pages': 0.7.9_vue@3.2.33 - '@islands/prerender': 0.3.2 + '@antfu/install-pkg': 0.1.0 + '@islands/hydration': 0.8.1 + '@islands/mdx': 0.8.0 + '@islands/pages': 0.8.1_vue@3.2.39 + '@islands/prerender': 0.8.1 '@nuxt/devalue': 2.0.0 - '@vitejs/plugin-vue': 2.3.3_vite@2.9.9+vue@3.2.33 - '@vue/devtools-api': 6.0.12 - '@vue/server-renderer': 3.2.31_vue@3.2.33 - '@vueuse/head': 0.7.5_vue@3.2.33 + '@vitejs/plugin-vue': 3.1.0_vite@3.1.1+vue@3.2.39 + '@vue/devtools-api': 6.2.1 + '@vue/server-renderer': 3.2.39_vue@3.2.39 + '@vueuse/head': 0.7.5_vue@3.2.39 debug: 4.3.3 deep-equal: 2.0.5 es-module-lexer: 0.7.1 + fast-glob: 3.2.11 local-pkg: 0.4.1 mico-spinner: 1.4.0 + micromatch: 4.0.5 minimist: 1.2.5 pathe: 0.2.0 picocolors: 1.0.0 unist-util-visit: 4.1.0 - unplugin-vue-components: 0.18.5_vite@2.9.9+vue@3.2.33 - vite: 2.9.9_sass@1.51.0 - vue: 3.2.33 - vue-router: 4.0.12_vue@3.2.33 + unplugin-vue-components: 0.21.2_vite@3.1.1+vue@3.2.39 + vite: 3.1.1_sass@1.54.9 + vue: 3.2.39 + vue-router: 4.0.12_vue@3.2.39 transitivePeerDependencies: - '@babel/parser' - - '@babel/traverse' - esbuild - less - rollup - sass - stylus - supports-color + - terser - webpack dev: true @@ -1321,8 +1257,8 @@ packages: engines: {node: '>= 0.4'} dev: true - /is-core-module/2.8.1: - resolution: {integrity: sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==} + /is-core-module/2.10.0: + resolution: {integrity: sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==} dependencies: has: 1.0.3 dev: true @@ -1339,12 +1275,12 @@ packages: dev: true /is-extendable/0.1.1: - resolution: {integrity: sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=} + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} engines: {node: '>=0.10.0'} dev: true /is-extglob/2.1.1: - resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} dev: true @@ -1407,6 +1343,11 @@ packages: resolution: {integrity: sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==} dev: true + /is-stream/2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: true + /is-string/1.0.7: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} @@ -1453,6 +1394,10 @@ packages: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} dev: true + /isexe/2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: true + /js-yaml/3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true @@ -1461,16 +1406,6 @@ packages: esprima: 4.0.1 dev: true - /json-buffer/3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - dev: true - - /keyv/4.1.1: - resolution: {integrity: sha512-tGv1yP6snQVDSM4X6yxrv2zzq/EvpW+oYiUz6aueW1u9CtS8RzUQYxxmFwgZlO2jSgCxQbchhxaqXXp2hnKGpQ==} - dependencies: - json-buffer: 3.0.1 - dev: true - /kind-of/6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} @@ -1486,6 +1421,18 @@ packages: engines: {node: '>=14'} dev: true + /local-pkg/0.4.2: + resolution: {integrity: sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==} + engines: {node: '>=14'} + dev: true + + /locate-path/6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: true + /longest-streak/3.0.1: resolution: {integrity: sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg==} dev: true @@ -1496,9 +1443,11 @@ packages: get-func-name: 2.0.0 dev: true - /lowercase-keys/2.0.0: - resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} - engines: {node: '>=8'} + /lru-cache/6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 dev: true /magic-string/0.25.7: @@ -1564,11 +1513,13 @@ packages: - supports-color dev: true - /mdast-util-mdx-jsx/1.2.0: - resolution: {integrity: sha512-5+ot/kfxYd3ChgEMwsMUO71oAfYjyRI3pADEK4I7xTmWLGQ8Y7ghm1CG36zUoUvDPxMlIYwQV/9DYHAUWdG4dA==} + /mdast-util-mdx-jsx/2.1.0: + resolution: {integrity: sha512-KzgzfWMhdteDkrY4mQtyvTU5bc/W4ppxhe9SzelO6QUUiwLAM+Et2Dnjjprik74a336kHdo0zKm7Tp+n6FFeRg==} dependencies: - '@types/estree-jsx': 0.0.1 + '@types/estree-jsx': 1.0.0 + '@types/hast': 2.3.4 '@types/mdast': 3.0.10 + ccount: 2.0.1 mdast-util-to-markdown: 1.3.0 parse-entities: 4.0.0 stringify-entities: 4.0.2 @@ -1577,11 +1528,11 @@ packages: vfile-message: 3.1.0 dev: true - /mdast-util-mdx/1.1.0: - resolution: {integrity: sha512-leKb9uG7laXdyFlTleYV4ZEaCpsxeU1LlkkR/xp35pgKrfV1Y0fNCuOw9vaRc2a9YDpH22wd145Wt7UY5yzeZw==} + /mdast-util-mdx/2.0.0: + resolution: {integrity: sha512-M09lW0CcBT1VrJUaF/PYxemxxHa7SLDHdSn94Q9FhxjCQfuW7nMAWKWimTmA3OyDMSTH981NN1csW1X+HPSluw==} dependencies: mdast-util-mdx-expression: 1.2.0 - mdast-util-mdx-jsx: 1.2.0 + mdast-util-mdx-jsx: 2.1.0 mdast-util-mdxjs-esm: 1.2.0 transitivePeerDependencies: - supports-color @@ -1631,7 +1582,11 @@ packages: dev: true /mdurl/1.0.1: - resolution: {integrity: sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=} + resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} + dev: true + + /merge-stream/2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} dev: true /merge2/1.4.1: @@ -1722,8 +1677,8 @@ packages: /micromark-extension-mdxjs/1.0.0: resolution: {integrity: sha512-TZZRZgeHvtgm+IhtgC2+uDMR7h8eTKF0QUX9YsgoL9+bADBpBY6SiLvWqnBlLbCEevITmTqmEuY3FoxMKVs1rQ==} dependencies: - acorn: 8.7.0 - acorn-jsx: 5.3.2_acorn@8.7.0 + acorn: 8.8.0 + acorn-jsx: 5.3.2_acorn@8.8.0 micromark-extension-mdx-expression: 1.0.3 micromark-extension-mdx-jsx: 1.0.3 micromark-extension-mdx-md: 1.0.0 @@ -1891,7 +1846,7 @@ packages: resolution: {integrity: sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg==} dependencies: '@types/debug': 4.1.7 - debug: 4.3.3 + debug: 4.3.4 decode-named-character-reference: 1.0.1 micromark-core-commonmark: 1.0.6 micromark-factory-space: 1.0.0 @@ -1911,26 +1866,21 @@ packages: - supports-color dev: true - /micromatch/4.0.4: - resolution: {integrity: sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==} + /micromatch/4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} dependencies: braces: 3.0.2 picomatch: 2.3.1 dev: true - /mimic-response/1.0.1: - resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} - engines: {node: '>=4'} + /mimic-fn/2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} dev: true - /mimic-response/3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} - dev: true - - /minimatch/5.0.1: - resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==} + /minimatch/5.1.0: + resolution: {integrity: sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==} engines: {node: '>=10'} dependencies: brace-expansion: 2.0.1 @@ -1955,19 +1905,16 @@ packages: hasBin: true dev: true - /node-addon-api/1.7.2: - resolution: {integrity: sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==} - dev: true - optional: true - /normalize-path/3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} dev: true - /normalize-url/6.1.0: - resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} - engines: {node: '>=10'} + /npm-run-path/4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 dev: true /object-inspect/1.12.0: @@ -1997,15 +1944,25 @@ packages: object-keys: 1.1.1 dev: true - /once/1.4.0: - resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} + /onetime/5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} dependencies: - wrappy: 1.0.2 + mimic-fn: 2.1.0 dev: true - /p-cancelable/2.1.1: - resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} - engines: {node: '>=8'} + /p-limit/3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: true + + /p-locate/5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 dev: true /parse-entities/4.0.0: @@ -2021,6 +1978,16 @@ packages: is-hexadecimal: 2.0.1 dev: true + /path-exists/4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-key/3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true + /path-parse/1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} dev: true @@ -2053,8 +2020,8 @@ packages: engines: {node: '>=8.6'} dev: true - /pinia/2.0.14_ytvqwwdyss532bvoq2clv4ed5m: - resolution: {integrity: sha512-0nPuZR4TetT/WcLN+feMSjWJku3SQU7dBbXC6uw+R6FLQJCsg+/0pzXyD82T1FmAYe0lsx+jnEDQ1BLgkRKlxA==} + /pinia/2.0.22_arz4dztosvwy2ghjrlh2wdhejm: + resolution: {integrity: sha512-u+b8/BC+tmvo3ACbYO2w5NfxHWFOjvvw9DQnyT0dW8aUMCPRQT5QnfZ5R5W2MzZBMTeZRMQI7V/QFbafmM9QHw==} peerDependencies: '@vue/composition-api': ^1.4.0 typescript: '>=4.4.4' @@ -2065,10 +2032,10 @@ packages: typescript: optional: true dependencies: - '@vue/devtools-api': 6.1.4 - typescript: 4.6.4 - vue: 3.2.33 - vue-demi: 0.12.1_vue@3.2.33 + '@vue/devtools-api': 6.2.1 + typescript: 4.8.3 + vue: 3.2.39 + vue-demi: 0.12.1_vue@3.2.39 dev: false /postcss/8.4.13: @@ -2080,6 +2047,15 @@ packages: source-map-js: 1.0.2 dev: true + /postcss/8.4.16: + resolution: {integrity: sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.4 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + /prismjs/1.27.0: resolution: {integrity: sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==} engines: {node: '>=6'} @@ -2089,22 +2065,10 @@ packages: resolution: {integrity: sha512-hrzC564QIl0r0vy4l6MvRLhafmUowhO/O3KgVSoXIbbA2Sz4j8HGpJc6T2cubRVwMwpdiG/vKGfhT4IixmKN9w==} dev: true - /pump/3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} - dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 - dev: true - /queue-microtask/1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true - /quick-lru/5.1.1: - resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} - engines: {node: '>=10'} - dev: true - /readdirp/3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} @@ -2129,6 +2093,15 @@ packages: unified: 10.1.1 dev: true + /remark-mdx/2.1.3: + resolution: {integrity: sha512-3SmtXOy9+jIaVctL8Cs3VAQInjRLGOwNXfrBB9KCT+EpJpKD3PQiy0x8hUNGyjQmdyOs40BqgPU7kYtH9uoR6w==} + dependencies: + mdast-util-mdx: 2.0.0 + micromark-extension-mdxjs: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: true + /remark-parse/10.0.1: resolution: {integrity: sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==} dependencies: @@ -2148,32 +2121,22 @@ packages: unified: 10.1.1 dev: true - /resolve-alpn/1.2.1: - resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} - dev: true - - /resolve/1.22.0: - resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==} + /resolve/1.22.1: + resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} hasBin: true dependencies: - is-core-module: 2.8.1 + is-core-module: 2.10.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true - /responselike/2.0.0: - resolution: {integrity: sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==} - dependencies: - lowercase-keys: 2.0.0 - dev: true - /reusify/1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} dev: true - /rollup/2.68.0: - resolution: {integrity: sha512-XrMKOYK7oQcTio4wyTz466mucnd8LzkiZLozZ4Rz0zQD+HeX4nUK4B8GrTX/2EvN2/vBF/i2WnaXboPxo0JylA==} + /rollup/2.78.1: + resolution: {integrity: sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==} engines: {node: '>=10.0.0'} hasBin: true optionalDependencies: @@ -2193,8 +2156,8 @@ packages: mri: 1.2.0 dev: true - /sass/1.51.0: - resolution: {integrity: sha512-haGdpTgywJTvHC2b91GSq+clTKGbtkkZmVAb82jZQN/wTy6qs8DdFm2lhEQbEwrY0QDRgSQ3xDurqM977C3noA==} + /sass/1.54.9: + resolution: {integrity: sha512-xb1hjASzEH+0L0WI9oFjqhRi51t/gagWnxLiwUNMltA0Ab6jIDkAacgKiGYKM9Jhy109osM7woEEai6SXeJo5Q==} engines: {node: '>=12.0.0'} hasBin: true dependencies: @@ -2211,6 +2174,26 @@ packages: kind-of: 6.0.3 dev: true + /semver/7.3.7: + resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /shebang-command/2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex/3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true + /side-channel/1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: @@ -2219,6 +2202,10 @@ packages: object-inspect: 1.12.0 dev: true + /signal-exit/3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true + /source-map-js/1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} @@ -2243,7 +2230,7 @@ packages: dev: true /sprintf-js/1.0.3: - resolution: {integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=} + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} dev: true /string.prototype.trimend/1.0.4: @@ -2268,10 +2255,21 @@ packages: dev: true /strip-bom-string/1.0.0: - resolution: {integrity: sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=} + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} engines: {node: '>=0.10.0'} dev: true + /strip-final-newline/2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + dev: true + + /strip-literal/0.4.1: + resolution: {integrity: sha512-z+F/xmDM8GOdvA5UoZXFxEnxdvMOZ+XEBIwjfLfc8hMSuHpGxjXAUCfuEo+t1GOHSb8+qgI/IBRpxXVMaABYWA==} + dependencies: + acorn: 8.8.0 + dev: true + /style-to-object/0.3.0: resolution: {integrity: sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==} dependencies: @@ -2283,18 +2281,22 @@ packages: engines: {node: '>= 0.4'} dev: true - /tinypool/0.1.3: - resolution: {integrity: sha512-2IfcQh7CP46XGWGGbdyO4pjcKqsmVqFAPcXfPxcPXmOWt9cYkTP9HcDmGgsfijYoAEc4z9qcpM/BaBz46Y9/CQ==} + /tinybench/2.1.5: + resolution: {integrity: sha512-ak+PZZEuH3mw6CCFOgf5S90YH0MARnZNhxjhjguAmoJimEMAJuNip/rJRd6/wyylHItomVpKTzZk9zrhTrQCoQ==} + dev: true + + /tinypool/0.3.0: + resolution: {integrity: sha512-NX5KeqHOBZU6Bc0xj9Vr5Szbb1j8tUHIeD18s41aDJaPeC5QTdEhK0SpdpUrZlj2nv5cctNcSjaKNanXlfcVEQ==} engines: {node: '>=14.0.0'} dev: true - /tinyspy/0.3.2: - resolution: {integrity: sha512-2+40EP4D3sFYy42UkgkFFB+kiX2Tg3URG/lVvAZFfLxgGpnWl5qQJuBw1gaLttq8UOS+2p3C0WrhJnQigLTT2Q==} + /tinyspy/1.0.2: + resolution: {integrity: sha512-bSGlgwLBYf7PnUsQ6WOc6SJ3pGOcd+d8AA6EUnLDDM0kWEstC1JIlSZA3UNliDXhd9ABoS7hiRBDCu+XP/sf1Q==} engines: {node: '>=14.0.0'} dev: true /to-fast-properties/2.0.0: - resolution: {integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=} + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} dev: true @@ -2314,8 +2316,8 @@ packages: engines: {node: '>=4'} dev: true - /typescript/4.6.4: - resolution: {integrity: sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==} + /typescript/4.8.3: + resolution: {integrity: sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig==} engines: {node: '>=4.2.0'} hasBin: true dev: true @@ -2408,30 +2410,27 @@ packages: unist-util-visit-parents: 5.1.0 dev: true - /unplugin-vue-components/0.18.5_vite@2.9.9+vue@3.2.33: - resolution: {integrity: sha512-VPA6z/4pcKRDYtWu1H+FIpV0MADlFKG3q7YMVFzNFC3EhMVZ4WuBJ76490oKyauguNw1T1obLCuxNU9JzJ0oAQ==} + /unplugin-vue-components/0.21.2_vite@3.1.1+vue@3.2.39: + resolution: {integrity: sha512-HBU+EuesDj/HRs7EtYH7gBACljVhqLylltrCLModRmCToIIrrNvMh54aylUt4AD4qiwylgOx4Vgb9sBlrIcRDw==} engines: {node: '>=14'} peerDependencies: '@babel/parser': ^7.15.8 - '@babel/traverse': ^7.15.4 vue: 2 || 3 peerDependenciesMeta: '@babel/parser': optional: true - '@babel/traverse': - optional: true dependencies: '@antfu/utils': 0.5.2 '@rollup/pluginutils': 4.2.1 chokidar: 3.5.3 - debug: 4.3.3 + debug: 4.3.4 fast-glob: 3.2.11 - local-pkg: 0.4.1 + local-pkg: 0.4.2 magic-string: 0.26.2 - minimatch: 5.0.1 - resolve: 1.22.0 - unplugin: 0.4.0_vite@2.9.9 - vue: 3.2.33 + minimatch: 5.1.0 + resolve: 1.22.1 + unplugin: 0.7.2_vite@3.1.1 + vue: 3.2.39 transitivePeerDependencies: - esbuild - rollup @@ -2440,12 +2439,12 @@ packages: - webpack dev: true - /unplugin/0.4.0_vite@2.9.9: - resolution: {integrity: sha512-4ScITEmzlz1iZW3tkz+3L1V5k/xMQ6kjgm4lEXKxH0ozd8/OUWfiSA7RMRyrawsvq/t50JIzPpp1UyuSL/AXkA==} + /unplugin/0.7.2_vite@3.1.1: + resolution: {integrity: sha512-m7thX4jP8l5sETpLdUASoDOGOcHaOVtgNyrYlToyQUvILUtEzEnngRBrHnAX3IKqooJVmXpoa/CwQ/QqzvGaHQ==} peerDependencies: esbuild: '>=0.13' rollup: ^2.50.0 - vite: ^2.3.0 + vite: ^2.3.0 || ^3.0.0-0 webpack: 4 || 5 peerDependenciesMeta: esbuild: @@ -2457,9 +2456,11 @@ packages: webpack: optional: true dependencies: + acorn: 8.8.0 chokidar: 3.5.3 - vite: 2.9.9_sass@1.51.0 - webpack-virtual-modules: 0.4.3 + vite: 3.1.1_sass@1.54.9 + webpack-sources: 3.2.3 + webpack-virtual-modules: 0.4.4 dev: true /uvu/0.5.3: @@ -2489,14 +2490,15 @@ packages: vfile-message: 3.1.0 dev: true - /vite/2.9.9_sass@1.51.0: - resolution: {integrity: sha512-ffaam+NgHfbEmfw/Vuh6BHKKlI/XIAhxE5QSS7gFLIngxg171mg1P3a4LSRME0z2ZU1ScxoKzphkipcYwSD5Ew==} - engines: {node: '>=12.2.0'} + /vite/3.1.1_sass@1.54.9: + resolution: {integrity: sha512-hgxQWev/AL7nWYrqByYo8nfcH9n97v6oFsta9+JX8h6cEkni7nHKP2kJleNYV2kcGhE8jsbaY1aStwPZXzPbgA==} + engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: less: '*' sass: '*' stylus: '*' + terser: ^5.4.0 peerDependenciesMeta: less: optional: true @@ -2504,49 +2506,60 @@ packages: optional: true stylus: optional: true + terser: + optional: true dependencies: - esbuild: 0.14.39 - postcss: 8.4.13 - resolve: 1.22.0 - rollup: 2.68.0 - sass: 1.51.0 + esbuild: 0.15.7 + postcss: 8.4.16 + resolve: 1.22.1 + rollup: 2.78.1 + sass: 1.54.9 optionalDependencies: fsevents: 2.3.2 dev: true - /vitest/0.12.6_sass@1.51.0: - resolution: {integrity: sha512-YWbCTv0XKBuBw5YtuW/iufuguoi8QhGpYyi2g57Oo7akpscMkkWTAaZGgY0ux1oJJtO/pc/8GFt0EF32WFBUUQ==} + /vitest/0.23.2_sass@1.54.9: + resolution: {integrity: sha512-kTBKp3ROPDkYC+x2zWt4znkDtnT08W1FQ6ngRFuqxpBGNuNVS+eWZKfffr8y2JGvEzZ9EzMAOcNaiqMj/FZqMw==} engines: {node: '>=v14.16.0'} hasBin: true peerDependencies: + '@edge-runtime/vm': '*' + '@vitest/browser': '*' '@vitest/ui': '*' - c8: '*' happy-dom: '*' jsdom: '*' peerDependenciesMeta: - '@vitest/ui': + '@edge-runtime/vm': optional: true - c8: + '@vitest/browser': + optional: true + '@vitest/ui': optional: true happy-dom: optional: true jsdom: optional: true dependencies: - '@types/chai': 4.3.1 + '@types/chai': 4.3.3 '@types/chai-subset': 1.3.3 + '@types/node': 17.0.21 chai: 4.3.6 - local-pkg: 0.4.1 - tinypool: 0.1.3 - tinyspy: 0.3.2 - vite: 2.9.9_sass@1.51.0 + debug: 4.3.4 + local-pkg: 0.4.2 + strip-literal: 0.4.1 + tinybench: 2.1.5 + tinypool: 0.3.0 + tinyspy: 1.0.2 + vite: 3.1.1_sass@1.54.9 transitivePeerDependencies: - less - sass - stylus + - supports-color + - terser dev: true - /vue-demi/0.12.1_vue@3.2.33: + /vue-demi/0.12.1_vue@3.2.39: resolution: {integrity: sha512-QL3ny+wX8c6Xm1/EZylbgzdoDolye+VpCXRhI2hug9dJTP3OUJ3lmiKN3CsVV3mOJKwFi0nsstbgob0vG7aoIw==} engines: {node: '>=12'} hasBin: true @@ -2558,40 +2571,46 @@ packages: '@vue/composition-api': optional: true dependencies: - vue: 3.2.33 + vue: 3.2.39 dev: false - /vue-router/4.0.12_vue@3.2.33: + /vue-router/4.0.12_vue@3.2.39: resolution: {integrity: sha512-CPXvfqe+mZLB1kBWssssTiWg4EQERyqJZes7USiqfW9B5N2x+nHlnsM1D3b5CaJ6qgCvMmYJnz+G0iWjNCvXrg==} peerDependencies: vue: ^3.0.0 dependencies: - '@vue/devtools-api': 6.1.4 - vue: 3.2.33 + '@vue/devtools-api': 6.2.1 + vue: 3.2.39 dev: true - /vue-tsc/0.34.13_typescript@4.6.4: - resolution: {integrity: sha512-xvmUq03dFpLfYSfE8jl2lwDPcbrmh81TB+OsVkkp+Em3Ar4ff2XgMKuUgoFXpWTv5tLLoYYpggFWwYADa2zgQg==} + /vue-tsc/0.40.13_typescript@4.8.3: + resolution: {integrity: sha512-xzuN3g5PnKfJcNrLv4+mAjteMd5wLm5fRhW0034OfNJZY4WhB07vhngea/XeGn7wNYt16r7syonzvW/54dcNiA==} hasBin: true peerDependencies: typescript: '*' dependencies: - '@volar/vue-typescript': 0.34.13 - typescript: 4.6.4 + '@volar/vue-language-core': 0.40.13 + '@volar/vue-typescript': 0.40.13 + typescript: 4.8.3 dev: true - /vue/3.2.33: - resolution: {integrity: sha512-si1ExAlDUrLSIg/V7D/GgA4twJwfsfgG+t9w10z38HhL/HA07132pUQ2KuwAo8qbCyMJ9e6OqrmWrOCr+jW7ZQ==} + /vue/3.2.39: + resolution: {integrity: sha512-tRkguhRTw9NmIPXhzk21YFBqXHT2t+6C6wPOgQ50fcFVWnPdetmRqbmySRHznrYjX2E47u0cGlKGcxKZJ38R/g==} dependencies: - '@vue/compiler-dom': 3.2.33 - '@vue/compiler-sfc': 3.2.33 - '@vue/runtime-dom': 3.2.33 - '@vue/server-renderer': 3.2.33_vue@3.2.33 - '@vue/shared': 3.2.33 + '@vue/compiler-dom': 3.2.39 + '@vue/compiler-sfc': 3.2.39 + '@vue/runtime-dom': 3.2.39 + '@vue/server-renderer': 3.2.39_vue@3.2.39 + '@vue/shared': 3.2.39 dev: true - /webpack-virtual-modules/0.4.3: - resolution: {integrity: sha512-5NUqC2JquIL2pBAAo/VfBP6KuGkHIZQXW/lNKupLPfhViwh8wNsu0BObtl09yuKZszeEUfbXz8xhrHvSG16Nqw==} + /webpack-sources/3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + dev: true + + /webpack-virtual-modules/0.4.4: + resolution: {integrity: sha512-h9atBP/bsZohWpHnr+2sic8Iecb60GxftXsWNLLLSqewgIsGzByd2gcIID4nXcG+3tNe4GQG3dLcff3kXupdRA==} dev: true /which-boxed-primitive/1.0.2: @@ -2625,38 +2644,21 @@ packages: is-typed-array: 1.1.8 dev: true - /wrappy/1.0.2: - resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} + /which/2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 dev: true - /xdm/3.3.1: - resolution: {integrity: sha512-+bePFAMIxKyhBd2QQcGsG5oVy16THJm7WjAd8GD4VC21LTYM0SWySTGVPBhwXA71H6P96pgUBzg3r8GPi+178A==} - dependencies: - '@rollup/pluginutils': 4.1.2 - '@types/estree-jsx': 0.0.1 - '@types/mdx': 2.0.1 - astring: 1.8.1 - estree-util-build-jsx: 2.0.0 - estree-util-is-identifier-name: 2.0.0 - estree-walker: 3.0.1 - got: 11.8.3 - hast-util-to-estree: 2.0.2 - markdown-extensions: 1.1.1 - mdast-util-mdx: 1.1.0 - micromark-extension-mdxjs: 1.0.0 - periscopic: 3.0.4 - remark-parse: 10.0.1 - remark-rehype: 10.1.0 - source-map: 0.7.3 - unified: 10.1.1 - unist-util-position-from-estree: 1.1.1 - unist-util-stringify-position: 3.0.0 - unist-util-visit: 4.1.0 - vfile: 5.3.0 - optionalDependencies: - deasync: 0.1.24 - transitivePeerDependencies: - - supports-color + /yallist/4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: true + + /yocto-queue/0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} dev: true /zwitch/2.0.2: From 1c0d71f136c313840a215cc409b40dbd236ebb61 Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Thu, 15 Sep 2022 17:04:28 +0200 Subject: [PATCH 02/29] git ignore pnpm files --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 840c5f0..f01abab 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,8 @@ dist-ssr /cypress/videos/ /cypress/screenshots/ +/~ + # Editor directories and files .vscode !.vscode/extensions.json From ed8cf0e15162a7d281c49da2a28f00a44ad60483 Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Thu, 15 Sep 2022 17:14:34 +0200 Subject: [PATCH 03/29] autoremoved file? --- __unconfig_iles.config.ts | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 __unconfig_iles.config.ts diff --git a/__unconfig_iles.config.ts b/__unconfig_iles.config.ts deleted file mode 100644 index 74007d8..0000000 --- a/__unconfig_iles.config.ts +++ /dev/null @@ -1,12 +0,0 @@ - -let __unconfig_data; -let __unconfig_stub = function (data = {}) { __unconfig_data = data }; -__unconfig_stub.default = (data = {}) => { __unconfig_data = data }; -import { defineConfig } from "iles"; - -const __unconfig_default = defineConfig({ - siteUrl: "https://juliencalixte.eu", - modules: ["@islands/headings"], -}); - -if (typeof __unconfig_default === "function") __unconfig_default(...[{"command":"serve","mode":"development"}]);export default __unconfig_data; \ No newline at end of file From 19769df5389c3d8fe29afda99e8685c2965a4cb2 Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Sat, 24 Sep 2022 21:53:48 +0200 Subject: [PATCH 04/29] add updated config files by iles --- __unconfig_iles.config.ts | 12 ++++++++++++ components.d.ts | 13 ++++++++----- 2 files changed, 20 insertions(+), 5 deletions(-) create mode 100644 __unconfig_iles.config.ts diff --git a/__unconfig_iles.config.ts b/__unconfig_iles.config.ts new file mode 100644 index 0000000..74007d8 --- /dev/null +++ b/__unconfig_iles.config.ts @@ -0,0 +1,12 @@ + +let __unconfig_data; +let __unconfig_stub = function (data = {}) { __unconfig_data = data }; +__unconfig_stub.default = (data = {}) => { __unconfig_data = data }; +import { defineConfig } from "iles"; + +const __unconfig_default = defineConfig({ + siteUrl: "https://juliencalixte.eu", + modules: ["@islands/headings"], +}); + +if (typeof __unconfig_default === "function") __unconfig_default(...[{"command":"serve","mode":"development"}]);export default __unconfig_data; \ No newline at end of file diff --git a/components.d.ts b/components.d.ts index 37170b2..42c3329 100644 --- a/components.d.ts +++ b/components.d.ts @@ -1,17 +1,20 @@ // generated by unplugin-vue-components // We suggest you to commit this file into source control -// Read more: https://github.com/vuejs/vue-next/pull/3399 +// Read more: https://github.com/vuejs/core/pull/3399 +import '@vue/runtime-core' -declare module 'vue' { +export {} + +declare module '@vue/runtime-core' { export interface GlobalComponents { AboutMe: typeof import('./src/components/presentation/AboutMe.vue')['default'] AppHeader: typeof import('./src/components/AppHeader.vue')['default'] BlogPosts: typeof import('./src/components/posts/BlogPosts.vue')['default'] - Island: typeof import('./node_modules/.pnpm/iles@0.7.40_sass@1.53.0/node_modules/iles/dist/client/app/components/Island.vue')['default'] + Island: typeof import('./node_modules/.pnpm/iles@0.8.5_sass@1.54.9/node_modules/iles/dist/client/app/components/Island.vue')['default'] JulienCalixte: typeof import('./src/components/core/JulienCalixte.vue')['default'] ProductionFlow: typeof import('./src/components/flow/ProductionFlow.vue')['default'] + RouterLink: typeof import('vue-router')['RouterLink'] + RouterView: typeof import('vue-router')['RouterView'] Welcome: typeof import('./src/components/Welcome.vue')['default'] } } - -export { } From c101944be121dc8d89242cc3f8cefff3ecc43386 Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Sun, 25 Sep 2022 22:56:03 +0200 Subject: [PATCH 05/29] avancing --- .prettierrc | 3 +++ src/components/core/JulienCalixte.vue | 20 ++++++++++------ src/components/presentation/AboutMe.vue | 4 +++- .../flow/store/useProductionFlow.store.ts | 24 +++++++++++-------- src/pages/posts/feature-factory.mdx | 16 +++++++++---- 5 files changed, 44 insertions(+), 23 deletions(-) create mode 100644 .prettierrc diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..a7056f5 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,3 @@ +{ + "semi": false +} \ No newline at end of file diff --git a/src/components/core/JulienCalixte.vue b/src/components/core/JulienCalixte.vue index 51169f4..271c235 100644 --- a/src/components/core/JulienCalixte.vue +++ b/src/components/core/JulienCalixte.vue @@ -3,19 +3,25 @@ const fontSize = { small: "12px", normal: "inherit", big: "44px", -}; - -interface Props { - size?: keyof typeof fontSize; } -const props = withDefaults(defineProps(), { size: "normal" }); +interface Props { + version?: "compact" | "full" + size?: keyof typeof fontSize +} -const style = `font-size: ${fontSize[props.size]}`; +const props = withDefaults(defineProps(), { + version: "full", + size: "normal", +}) + +const style = `font-size: ${fontSize[props.size]}` diff --git a/src/layouts/post.vue b/src/layouts/post.vue index 6caa6d6..e260c33 100644 --- a/src/layouts/post.vue +++ b/src/layouts/post.vue @@ -10,7 +10,22 @@ From 68e0ec355ceae6e17078bcf20be624562720bd6c Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Sat, 19 Nov 2022 15:27:03 +0100 Subject: [PATCH 11/29] Introduction to smart notes --- src/pages/posts/feature-factory.mdx | 2 + .../posts/introduction-to-smart-notes.md | 119 ++++++++++++++++++ 2 files changed, 121 insertions(+) create mode 100644 src/pages/posts/introduction-to-smart-notes.md diff --git a/src/pages/posts/feature-factory.mdx b/src/pages/posts/feature-factory.mdx index 1c46f8f..64b49e1 100644 --- a/src/pages/posts/feature-factory.mdx +++ b/src/pages/posts/feature-factory.mdx @@ -1,6 +1,8 @@ --- title: An introduction to the feature factory layout: post +date: 2022-11-19 +draft: true --- # {title} diff --git a/src/pages/posts/introduction-to-smart-notes.md b/src/pages/posts/introduction-to-smart-notes.md new file mode 100644 index 0000000..3b16b48 --- /dev/null +++ b/src/pages/posts/introduction-to-smart-notes.md @@ -0,0 +1,119 @@ +--- +title: Introduction to smart notes, how to take notes efficiently +layout: post +date: 2021-12-16 +--- + + +# Introduction to smart notes, how to take notes efficiently + +If you are like me, then you struggled to take meaningful notes and usually give up on writing anything down. Still, deep down, you're looking for a way to write efficiently. + +## Why do you still have to write notes? + +How frustrating is it to read a book or get a new idea during a meeting, and a few days later realize you already forgot about it? You are not alone. + +### Our brains are not reliable + +#### The limits of our short-term memory + +Learning new things could be summarized as the process of linking items that are in our short-term memory to our long-term memory, by far more efficient and reliable. Short-term memory is really convenient to retrieve information quickly. Unfortunately, our short-term memory is extremely limited: it's quickly crowded—[4 (± 1) blocks of information at a time](https://www.cambridge.org/core/journals/behavioral-and-brain-sciences/article/magical-number-4-in-shortterm-memory-a-reconsideration-of-mental-storage-capacity/44023F1147D4A1D44BDC0AD226838496)—and very short-lived. It isn’t suitable for complex reflection. + +![short-term and long-term memories](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2g5gf0cspgd1mvkxaskm.png) + +To make it even worse, the following curve shows how information is quickly lost over time when there is no attempt to retain it. That’s why we tend to retrieve so little information from a book read months ago. It's called the forgetting curve. + +![the forgetting curve](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d02a5yl5c20g8aat7rgk.png) + +In a nutshell, our brain is limited and quickly forgets the information it's been exposed to. + +#### Our cognitive biases + +Besides memory, brains aren't reliable because of many cognitive biases: confirmation bias, attentional bias, mere-exposure effect, normalcy bias, you name it. Even if it's the most complex system in our body, our brain must face many obstacles in order to not fool itself. For instance, more often than necessary, we look for arguments that unconsciously reinforce our original thoughts, we tend to argue with a pre-existing belief. This is what Julia Galef calls the “soldier mindset” in “[The Scout Mindset](https://juliagalef.com)”. She opposes it to the scout mindset: a mindset in which the search for the truth is what primarily guides its reasoning. + +As the scout's goal is to draw the most accurate map in the battlefield, taking notes becomes the map for your thoughts: they tell you what you know, what you don't know and guide you through your reflection. + +## The concept of *smart notes* + +### Where do smart notes come from? + +Smart notes is a term used in the book “[How To Take Smart Notes](https://takesmartnotes.com)” written by Sönke Ahrens that tells the story of Niklas Luhmann, a sociologist who has published hundreds of articles thanks to his note-taking system: [the Zettelkasten method](https://zettelkasten.de/posts/overview). + +### Creating the system + +Taking notes tends to mean “jotting down ideas on paper during meetings”. But we rarely use them afterwards. Notes used once or twice are no good, we can’t take advantage of them. Note-taking without structure is pointless. That’s why we have to create a system where each note helps the system snowball effect. + +We want a network of permanent notes. The goal is to write permanent notes and to densely connect them together. But to create notes you're proud of, you must iterate a few times with other kinds of notes. Overall, we can look at 3 kinds of notes: + +- fleeting notes, +- literature notes, +- permanent notes. + +#### Fleeting notes + +*Fleeting notes* are your day-to-day notes. When an idea pops into your head or you find an idea interesting in a meeting, you want to write it to free your mental load. They are primarily the pool of new concepts. + +Then comes the refinement of the notes. For this, you need to instigate a routine: clearing and deleting non-relevant paragraphs, extracting the ideas into concise notes. This routine is key to accumulate knowledge. + +I suggest getting a note per day and starting the routine at a small scale: create a fleeting note each day but refine them only once a week. + +#### Literature notes + +*Literature notes* are the notes you take on the fly when you are reading a book, a blog post or listening to a podcast. With a pen and a paper next to you, you write with your own words your understanding of the read. The key feature here is that we want a much more active lecture and information consumption than just passive reading/listening. It may seem hard at first but once you incorporate this new habit, you feel almost disappointed reading without extracting what seems compelling. + +#### Permanent notes + +*Permanent notes* are atomic and connected. A permanent note is about one and only one concept, as simple as possible and connected with others. They come from the selected thoughts chosen from your fleeting and literature notes. They are the backbone of the system so you want to be extremely selective about what will become a good durable note. + +When creating a permanent note, scan your previous notes and find connections with the new one. It’s the rule: the only way a permanent note can integrate the system is from connections. + +### Improve yourself step by step + +We want the system to work like our brain: simple ideas linked together as a network of thoughts. We want to start small, one note at a time. + +Your notes don't need to be perfect straight away, in fact, they will never be. Because writing is hard. + +Actually, writing is a multiple-tasking process: + +- writing ideas on the go, +- extracting relevant information, +- criticizing, +- making the writing shorter and the concept clearer, +- rewriting and rewriting again… + +We want to separate these different tasks as much as possible because they can inhibit each other. When you write, don’t be afraid of being weird or dumb, there will be a time for self-critic. For now just write as if you were teaching it to your younger self. + +It might feel uncomfortable. + +![Is it me or is a 10 year old child writing this?](https://lh3.googleusercontent.com/T3W3kwKhU1lHsTouBixHVWog1DPju6HMaPp_UrSvA6jgWh_Cuii1I-cYbajvYu_DNf4ZLOH0ZRygyhd1x87u8blVhFD9JtSa3IcF3_7zUAcbrjBHElEnPzSQG5XBqH1KcJdfFAMS) + +“Is it me or is a 10 year old child writing this?”. Still the more you iterate, the better your notes become, I promise. 😊 + +### Smart notes are your first feedback loop + +This is where it gets exciting. Since you know you will be able to review your notes by yourself, you become better and better at writing and therefore your way of thinking. Notes are the medium between your past, present and future self. Plus, if you become comfortable with your own critique, you'll find yourself accepting even more the challenges of others as you simply want to improve your system. + +### How smart notes benefit me + +I’ve been using this system for the past year and so far it works! + +Here is a non-exhaustive list of things I like about it: + +- 📝 I can write a blog post—like this one–just by picking ideas from my own notes: no more blank page syndrome, +- 🧠 trusting one and only one system allows the brain to truly free itself from mental load: you know you can go back to your thoughts and ideas later, +- 🕸 making connections between work, hobbies and entertainment create new ideas in a way I didn't expect, I feel more creative! +- 📈 as I said earlier, I’m much more incline to face challenges from other people and ask colleagues how I can improve my work, +- 🪴 watching your network grow is rewarding! It’s like taking care of your own little garden. + +As great as it is, I want to warn you about a few pitfalls into which you could be tempted to fall: + +- [collecting](https://zettelkasten.de/posts/collectors-fallacy) only for the sake of collecting isn’t helpful. [We don’t need it.](https://observer.com/2017/05/the-collectors-fallacy-why-we-gather-things-we-dont-need) +- creating a system per project: we lose the essence of the system; we want to be able to connect notes that don't seem connected at first sight. +- thinking too much of the tree structure for your notes in your taking note app: it is not that important, we just want to look for notes easily, +- copying and pasting what we find on the internet: link the page you want to reference but if the notes are not your own, the system becomes irrelevant (and I quote [CGP Grey](https://youtu.be/wf2VxeIm1no?t=493): *"If your mind is forever filled with the voice of others, how do you know what you think about anything?"*). + +With all this in mind, I made [a personal slip-box](https://litenote.space/lite-note/example) I'll be completing over time to let you explore concrete examples! + +## Introducing smart notes for others + +I’m currently wondering if there are other potential applications to the Zettelkasten method other than using it ourselves. At BAM, I work as a team leader and I constantly ask myself how we can improve our way of communication through time in projects. Just like [visual management](https://dev.to/jcalixte/how-does-visual-management-improve-team-efficiency-4kgd), good documentation is essential for a project to succeed. Having clear standards connected to more detailed concepts is the ultimate documentation! But I haven’t fully experienced it yet. From 0225d3076b6032bd9165d289a76d861daee2a8b8 Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Sat, 19 Nov 2022 16:19:39 +0100 Subject: [PATCH 12/29] extract Post to module post --- src/hooks/usePosts.hook.ts | 25 +----- src/layouts/post.vue | 11 +++ src/modules/post/entities/Post.ts | 18 +++++ src/pages/posts/feature-factory.mdx | 2 +- .../posts/introduction-to-smart-notes.md | 9 ++- .../posts/make-your-environment-loopy.md | 77 +++++++++++++++++++ 6 files changed, 114 insertions(+), 28 deletions(-) create mode 100644 src/modules/post/entities/Post.ts create mode 100644 src/pages/posts/make-your-environment-loopy.md diff --git a/src/hooks/usePosts.hook.ts b/src/hooks/usePosts.hook.ts index df40041..22e473e 100644 --- a/src/hooks/usePosts.hook.ts +++ b/src/hooks/usePosts.hook.ts @@ -1,23 +1,6 @@ +import { Post } from "@/modules/post/entities/Post" import { computed } from "vue" -interface Post { - filename: string - lastUpdated: Date - href: string - title: string - date: Date - meta: { - filename: string - lastUpdated: Date - href: string - } - frontmatter: { - title: string - publishedAt?: Date - } - draft?: boolean -} - const byMostRecentFirst = (a: Post, b: Post) => { if (!b.date) { return 1 @@ -33,9 +16,5 @@ const byMostRecentFirst = (a: Post, b: Post) => { export const usePosts = () => { const posts = $(useDocuments("@/pages/posts")) - return computed(() => - posts - .filter((post) => import.meta.env.DEV || post.draft !== true) - .sort(byMostRecentFirst) - ) + return computed(() => posts.sort(byMostRecentFirst)) } diff --git a/src/layouts/post.vue b/src/layouts/post.vue index e260c33..2ec8290 100644 --- a/src/layouts/post.vue +++ b/src/layouts/post.vue @@ -1,7 +1,13 @@ + + From 91e98c88e832a73b422afd52a776c9fd0897e48f Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Sat, 19 Nov 2022 17:01:03 +0100 Subject: [PATCH 17/29] init forgetting curve --- components.d.ts | 1 + .../smart-notes/forgetting-curve.vue | 33 +++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 src/components/smart-notes/forgetting-curve.vue diff --git a/components.d.ts b/components.d.ts index 2fea117..149c48d 100644 --- a/components.d.ts +++ b/components.d.ts @@ -10,6 +10,7 @@ declare module '@vue/runtime-core' { AboutMe: typeof import('./src/components/presentation/AboutMe.vue')['default'] AppHeader: typeof import('./src/components/AppHeader.vue')['default'] BlogPosts: typeof import('./src/components/posts/BlogPosts.vue')['default'] + ForgettingCurve: typeof import('./src/components/smart-notes/forgetting-curve.vue')['default'] Island: typeof import('./node_modules/.pnpm/iles@0.8.7_sass@1.56.1/node_modules/iles/dist/client/app/components/Island.vue')['default'] JulienCalixte: typeof import('./src/components/core/JulienCalixte.vue')['default'] ProductionFlow: typeof import('./src/components/flow/ProductionFlow.vue')['default'] diff --git a/src/components/smart-notes/forgetting-curve.vue b/src/components/smart-notes/forgetting-curve.vue new file mode 100644 index 0000000..2c25206 --- /dev/null +++ b/src/components/smart-notes/forgetting-curve.vue @@ -0,0 +1,33 @@ + + + + + \ No newline at end of file From a98ae24849fcbbdb8045915e92567772ba350880 Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Sat, 19 Nov 2022 17:10:02 +0100 Subject: [PATCH 18/29] fix main illustration image margin --- src/layouts/post.vue | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/layouts/post.vue b/src/layouts/post.vue index d4bb4b9..7535525 100644 --- a/src/layouts/post.vue +++ b/src/layouts/post.vue @@ -40,6 +40,9 @@ h7 { } img { - max-width: 100%; + width: 100%; + max-height: 40vh; + display: flex; + margin: auto; } From aa12bb432cbbb77ca9cbf498b87ce612e5b140c2 Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Sun, 20 Nov 2022 11:20:31 +0100 Subject: [PATCH 19/29] =?UTF-8?q?=E2=AC=86=EF=B8=8F=20=20(app)=20match=20v?= =?UTF-8?q?ue-tsc=20project=20with=20volar=20version?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- pnpm-lock.yaml | 101 +++++++++++++++++++++++-------------------------- 2 files changed, 48 insertions(+), 55 deletions(-) diff --git a/package.json b/package.json index 0878371..c78b1da 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "typescript": "^4.9.3", "vitest": "^0.23.4", "vue": "^3.2.45", - "vue-tsc": "^0.40.13" + "vue-tsc": "^1.0.9" }, "dependencies": { "chart.xkcd": "^1.1.13", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4e31fb6..a11b44b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,7 +10,7 @@ specifiers: typescript: ^4.9.3 vitest: ^0.23.4 vue: ^3.2.45 - vue-tsc: ^0.40.13 + vue-tsc: ^1.0.9 dependencies: chart.xkcd: 1.1.13 @@ -24,7 +24,7 @@ devDependencies: typescript: 4.9.3 vitest: 0.23.4_sass@1.56.1 vue: 3.2.45 - vue-tsc: 0.40.13_typescript@4.9.3 + vue-tsc: 1.0.9_typescript@4.9.3 packages: @@ -267,42 +267,44 @@ packages: vue: 3.2.45 dev: true - /@volar/code-gen/0.40.13: - resolution: {integrity: sha512-4gShBWuMce868OVvgyA1cU5WxHbjfEme18Tw6uVMfweZCF5fB2KECG0iPrA9D54vHk3FeHarODNwgIaaFfUBlA==} + /@volar/language-core/1.0.9: + resolution: {integrity: sha512-5Fty3slLet6svXiJw2YxhYeo6c7wFdtILrql5bZymYLM+HbiZtJbryW1YnUEKAP7MO9Mbeh+TNH4Z0HFxHgIqw==} dependencies: - '@volar/source-map': 0.40.13 + '@volar/source-map': 1.0.9 + '@vue/reactivity': 3.2.45 + muggle-string: 0.1.0 dev: true - /@volar/source-map/0.40.13: - resolution: {integrity: sha512-dbdkAB2Nxb0wLjAY5O64o3ywVWlAGONnBIoKAkXSf6qkGZM+nJxcizsoiI66K+RHQG0XqlyvjDizfnTxr+6PWg==} + /@volar/source-map/1.0.9: + resolution: {integrity: sha512-fazB/vy5ZEJ3yKx4fabJyGNI3CBkdLkfEIRVu6+1P3VixK0Mn+eqyUIkLBrzGYaeFM3GybhCLCvsVdNz0Fu/CQ==} dependencies: - '@vue/reactivity': 3.2.38 + muggle-string: 0.1.0 dev: true - /@volar/typescript-faster/0.40.13: - resolution: {integrity: sha512-uy+TlcFkKoNlKEnxA4x5acxdxLyVDIXGSc8cYDNXpPKjBKXrQaetzCzlO3kVBqu1VLMxKNGJMTKn35mo+ILQmw==} + /@volar/typescript/1.0.9: + resolution: {integrity: sha512-dVziu+ShQUWuMukM6bvK2v2O446/gG6l1XkTh2vfkccw1IzjfbiP1TWQoNo1ipTfZOtu5YJGYAx+o5HNrGXWfQ==} dependencies: - semver: 7.3.8 + '@volar/language-core': 1.0.9 dev: true - /@volar/vue-language-core/0.40.13: - resolution: {integrity: sha512-QkCb8msi2KUitTdM6Y4kAb7/ZlEvuLcbBFOC2PLBlFuoZwyxvSP7c/dBGmKGtJlEvMX0LdCyrg5V2aBYxD38/Q==} + /@volar/vue-language-core/1.0.9: + resolution: {integrity: sha512-tofNoR8ShPFenHT1YVMuvoXtXWwoQE+fiXVqSmW0dSKZqEDjWQ3YeXSd0a6aqyKaIbvR7kWWGp34WbpQlwf9Ww==} dependencies: - '@volar/code-gen': 0.40.13 - '@volar/source-map': 0.40.13 - '@vue/compiler-core': 3.2.45 + '@volar/language-core': 1.0.9 + '@volar/source-map': 1.0.9 '@vue/compiler-dom': 3.2.45 '@vue/compiler-sfc': 3.2.45 '@vue/reactivity': 3.2.45 '@vue/shared': 3.2.45 + minimatch: 5.1.0 + vue-template-compiler: 2.7.14 dev: true - /@volar/vue-typescript/0.40.13: - resolution: {integrity: sha512-o7bNztwjs8JmbQjVkrnbZUOfm7q4B8ZYssETISN1tRaBdun6cfNqgpkvDYd+VUBh1O4CdksvN+5BUNnwAz4oCQ==} + /@volar/vue-typescript/1.0.9: + resolution: {integrity: sha512-ZLe4y9YNbviACa7uAMCilzxA76gbbSlKfjspXBzk6fCobd8QCIig+VyDYcjANIlm2HhgSCX8jYTzhCKlegh4mw==} dependencies: - '@volar/code-gen': 0.40.13 - '@volar/typescript-faster': 0.40.13 - '@volar/vue-language-core': 0.40.13 + '@volar/typescript': 1.0.9 + '@volar/vue-language-core': 1.0.9 dev: true /@vue/compiler-core/3.2.45: @@ -351,12 +353,6 @@ packages: estree-walker: 2.0.2 magic-string: 0.25.9 - /@vue/reactivity/3.2.38: - resolution: {integrity: sha512-6L4myYcH9HG2M25co7/BSo0skKFHpAN8PhkNPM4xRVkyGl1K5M3Jx4rp5bsYhvYze2K4+l+pioN4e6ZwFLUVtw==} - dependencies: - '@vue/shared': 3.2.38 - dev: true - /@vue/reactivity/3.2.45: resolution: {integrity: sha512-PRvhCcQcyEVohW0P8iQ7HDcIOXRjZfAsOds3N99X/Dzewy8TVhTCT4uXpAHfoKjVTJRA0O0K+6QNkDIZAxNi3A==} dependencies: @@ -384,10 +380,6 @@ packages: '@vue/shared': 3.2.45 vue: 3.2.45 - /@vue/shared/3.2.38: - resolution: {integrity: sha512-dTyhTIRmGXBjxJE+skC8tTWCGLCVc4wQgRRLt8+O9p5ewBAjoBwtCAkLPrtToSr1xltoe3st21Pv953aOZ7alg==} - dev: true - /@vue/shared/3.2.45: resolution: {integrity: sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg==} @@ -644,6 +636,10 @@ packages: resolution: {integrity: sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ==} dev: false + /de-indent/1.0.2: + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} + dev: true + /debug/4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} @@ -1196,6 +1192,11 @@ packages: resolution: {integrity: sha512-Pkw+xBHuV6xFeJprJe2BBEoDV+AvQySaz3pPDRUs5PNZEMQjpXJJueqrpcHIXxnWTcAGi/UOCgVShlkY6kLoqg==} dev: true + /he/1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + dev: true + /html-void-elements/2.0.1: resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==} dev: true @@ -1478,13 +1479,6 @@ packages: get-func-name: 2.0.0 dev: true - /lru-cache/6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - dependencies: - yallist: 4.0.0 - dev: true - /magic-string/0.25.9: resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} dependencies: @@ -1929,6 +1923,10 @@ packages: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: true + /muggle-string/0.1.0: + resolution: {integrity: sha512-Tr1knR3d2mKvvWthlk7202rywKbiOm4rVFLsfAaSIhJ6dt9o47W4S+JMtWhd/PW9Wrdew2/S2fSvhz3E2gkfEg==} + dev: true + /nanoid/3.3.4: resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -2193,14 +2191,6 @@ packages: kind-of: 6.0.3 dev: true - /semver/7.3.8: - resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - dev: true - /shebang-command/2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -2613,14 +2603,21 @@ packages: vue: 3.2.45 dev: true - /vue-tsc/0.40.13_typescript@4.9.3: - resolution: {integrity: sha512-xzuN3g5PnKfJcNrLv4+mAjteMd5wLm5fRhW0034OfNJZY4WhB07vhngea/XeGn7wNYt16r7syonzvW/54dcNiA==} + /vue-template-compiler/2.7.14: + resolution: {integrity: sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==} + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + dev: true + + /vue-tsc/1.0.9_typescript@4.9.3: + resolution: {integrity: sha512-vRmHD1K6DmBymNhoHjQy/aYKTRQNLGOu2/ESasChG9Vy113K6CdP0NlhR0bzgFJfv2eFB9Ez/9L5kIciUajBxQ==} hasBin: true peerDependencies: typescript: '*' dependencies: - '@volar/vue-language-core': 0.40.13 - '@volar/vue-typescript': 0.40.13 + '@volar/vue-language-core': 1.0.9 + '@volar/vue-typescript': 1.0.9 typescript: 4.9.3 dev: true @@ -2681,10 +2678,6 @@ packages: isexe: 2.0.0 dev: true - /yallist/4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - dev: true - /yocto-queue/0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} From 9c3216099d2c7e6fc7fa3acda62898ada5d85a8f Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Sun, 20 Nov 2022 12:09:54 +0100 Subject: [PATCH 20/29] =?UTF-8?q?=F0=9F=8E=A8=20=20(app)=20to=20kebab-case?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/{AppHeader.vue => app-header.vue} | 0 .../core/{JulienCalixte.vue => julien-calixte.vue} | 0 src/components/posts/{BlogPosts.vue => blog-posts.vue} | 9 +-------- .../presentation/{AboutMe.vue => about-me.vue} | 0 4 files changed, 1 insertion(+), 8 deletions(-) rename src/components/{AppHeader.vue => app-header.vue} (100%) rename src/components/core/{JulienCalixte.vue => julien-calixte.vue} (100%) rename src/components/posts/{BlogPosts.vue => blog-posts.vue} (67%) rename src/components/presentation/{AboutMe.vue => about-me.vue} (100%) diff --git a/src/components/AppHeader.vue b/src/components/app-header.vue similarity index 100% rename from src/components/AppHeader.vue rename to src/components/app-header.vue diff --git a/src/components/core/JulienCalixte.vue b/src/components/core/julien-calixte.vue similarity index 100% rename from src/components/core/JulienCalixte.vue rename to src/components/core/julien-calixte.vue diff --git a/src/components/posts/BlogPosts.vue b/src/components/posts/blog-posts.vue similarity index 67% rename from src/components/posts/BlogPosts.vue rename to src/components/posts/blog-posts.vue index 16e7f32..7d5f61d 100644 --- a/src/components/posts/BlogPosts.vue +++ b/src/components/posts/blog-posts.vue @@ -9,16 +9,9 @@ const posts = usePosts();

Last posts

- diff --git a/src/components/presentation/AboutMe.vue b/src/components/presentation/about-me.vue similarity index 100% rename from src/components/presentation/AboutMe.vue rename to src/components/presentation/about-me.vue From e4142076f3233e4d03bbfa215d3fb373a76f1dbb Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Sun, 20 Nov 2022 12:10:24 +0100 Subject: [PATCH 21/29] =?UTF-8?q?=E2=9C=A8=20=20(welcome=20page)=20add=20m?= =?UTF-8?q?y=20projects=20and=20my=20books=20to=20the=20main=20page?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Welcome.vue | 4 +++ src/components/presentation/my-books.vue | 40 +++++++++++++++++++++ src/components/presentation/my-projects.vue | 19 ++++++++++ 3 files changed, 63 insertions(+) create mode 100644 src/components/presentation/my-books.vue create mode 100644 src/components/presentation/my-projects.vue diff --git a/src/components/Welcome.vue b/src/components/Welcome.vue index 9ff95ad..49dc10c 100644 --- a/src/components/Welcome.vue +++ b/src/components/Welcome.vue @@ -5,6 +5,10 @@ + + + + diff --git a/src/components/presentation/my-books.vue b/src/components/presentation/my-books.vue new file mode 100644 index 0000000..2538cd5 --- /dev/null +++ b/src/components/presentation/my-books.vue @@ -0,0 +1,40 @@ + + + \ No newline at end of file diff --git a/src/components/presentation/my-projects.vue b/src/components/presentation/my-projects.vue new file mode 100644 index 0000000..feb743f --- /dev/null +++ b/src/components/presentation/my-projects.vue @@ -0,0 +1,19 @@ + From 471f97388f930cc67c50f316b079680f7b58b05f Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Sun, 20 Nov 2022 12:10:47 +0100 Subject: [PATCH 22/29] =?UTF-8?q?=F0=9F=93=9D=20=20(iles)=20update=20compo?= =?UTF-8?q?nents.d.ts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components.d.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/components.d.ts b/components.d.ts index 149c48d..dc8822b 100644 --- a/components.d.ts +++ b/components.d.ts @@ -7,12 +7,14 @@ export {} declare module '@vue/runtime-core' { export interface GlobalComponents { - AboutMe: typeof import('./src/components/presentation/AboutMe.vue')['default'] - AppHeader: typeof import('./src/components/AppHeader.vue')['default'] - BlogPosts: typeof import('./src/components/posts/BlogPosts.vue')['default'] + AboutMe: typeof import('./src/components/presentation/about-me.vue')['default'] + AppHeader: typeof import('./src/components/app-header.vue')['default'] + BlogPosts: typeof import('./src/components/posts/blog-posts.vue')['default'] ForgettingCurve: typeof import('./src/components/smart-notes/forgetting-curve.vue')['default'] Island: typeof import('./node_modules/.pnpm/iles@0.8.7_sass@1.56.1/node_modules/iles/dist/client/app/components/Island.vue')['default'] - JulienCalixte: typeof import('./src/components/core/JulienCalixte.vue')['default'] + JulienCalixte: typeof import('./src/components/core/julien-calixte.vue')['default'] + MyBooks: typeof import('./src/components/presentation/my-books.vue')['default'] + MyProjects: typeof import('./src/components/presentation/my-projects.vue')['default'] ProductionFlow: typeof import('./src/components/flow/ProductionFlow.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] From f7252e6ff8e78acc433f7b34f9cff8306c1f045f Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Sun, 20 Nov 2022 14:03:56 +0100 Subject: [PATCH 23/29] =?UTF-8?q?=F0=9F=8E=A8=20=20(post)=20trailing=20spa?= =?UTF-8?q?ce?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/posts/blog-posts.vue | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/components/posts/blog-posts.vue b/src/components/posts/blog-posts.vue index 7d5f61d..d0105a1 100644 --- a/src/components/posts/blog-posts.vue +++ b/src/components/posts/blog-posts.vue @@ -7,11 +7,8 @@ const posts = usePosts(); - From 4b5fb0786087c15592cb567704010ec47bbe907f Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Sat, 26 Nov 2022 13:28:47 +0100 Subject: [PATCH 24/29] add target blank to external websites --- src/components/presentation/my-projects.vue | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/components/presentation/my-projects.vue b/src/components/presentation/my-projects.vue index feb743f..3358a54 100644 --- a/src/components/presentation/my-projects.vue +++ b/src/components/presentation/my-projects.vue @@ -4,14 +4,17 @@ From 62b17a3ae02ae286b41358df467f0bb0c4e049db Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Sat, 3 Dec 2022 14:23:13 +0100 Subject: [PATCH 25/29] add prismjs --- iles.config.ts | 12 ++++++--- package.json | 6 ++--- pnpm-lock.yaml | 68 ++++++++++++++++++++++++++++---------------------- 3 files changed, 50 insertions(+), 36 deletions(-) diff --git a/iles.config.ts b/iles.config.ts index be2ff2e..7cab2ae 100644 --- a/iles.config.ts +++ b/iles.config.ts @@ -1,6 +1,12 @@ -import { defineConfig } from "iles"; +import { defineConfig } from "iles" +import prism from "@islands/prism" export default defineConfig({ siteUrl: "https://juliencalixte.eu", - modules: ["@islands/headings"], -}); + modules: [ + "@islands/headings", + prism({ + showLineNumbers: true, + }), + ], +}) diff --git a/package.json b/package.json index c78b1da..653bee3 100644 --- a/package.json +++ b/package.json @@ -16,12 +16,12 @@ "iles": "^0.8.7", "sass": "^1.56.1", "typescript": "^4.9.3", - "vitest": "^0.23.4", + "vitest": "^0.25.3", "vue": "^3.2.45", - "vue-tsc": "^1.0.9" + "vue-tsc": "^1.0.11" }, "dependencies": { "chart.xkcd": "^1.1.13", - "pinia": "^2.0.24" + "pinia": "^2.0.27" } } \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a11b44b..083bd19 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,16 +5,16 @@ specifiers: '@islands/prism': ^0.8.0 chart.xkcd: ^1.1.13 iles: ^0.8.7 - pinia: ^2.0.24 + pinia: ^2.0.27 sass: ^1.56.1 typescript: ^4.9.3 - vitest: ^0.23.4 + vitest: ^0.25.3 vue: ^3.2.45 - vue-tsc: ^1.0.9 + vue-tsc: ^1.0.11 dependencies: chart.xkcd: 1.1.13 - pinia: 2.0.24_mgnvym7yiazkylwwogi5r767ue + pinia: 2.0.27_mgnvym7yiazkylwwogi5r767ue devDependencies: '@islands/headings': 0.8.1 @@ -22,9 +22,9 @@ devDependencies: iles: 0.8.7_sass@1.56.1 sass: 1.56.1 typescript: 4.9.3 - vitest: 0.23.4_sass@1.56.1 + vitest: 0.25.3_sass@1.56.1 vue: 3.2.45 - vue-tsc: 1.0.9_typescript@4.9.3 + vue-tsc: 1.0.11_typescript@4.9.3 packages: @@ -267,31 +267,31 @@ packages: vue: 3.2.45 dev: true - /@volar/language-core/1.0.9: - resolution: {integrity: sha512-5Fty3slLet6svXiJw2YxhYeo6c7wFdtILrql5bZymYLM+HbiZtJbryW1YnUEKAP7MO9Mbeh+TNH4Z0HFxHgIqw==} + /@volar/language-core/1.0.11: + resolution: {integrity: sha512-YwUYKxIyDc+Fq3kQ6BGGfkrKCG5JzE2Yr6vMxrxEXW2rg/gsq3JgMk/4sI8ybRsaTirhCB4V8+AIVYsvcRxgig==} dependencies: - '@volar/source-map': 1.0.9 + '@volar/source-map': 1.0.11 '@vue/reactivity': 3.2.45 muggle-string: 0.1.0 dev: true - /@volar/source-map/1.0.9: - resolution: {integrity: sha512-fazB/vy5ZEJ3yKx4fabJyGNI3CBkdLkfEIRVu6+1P3VixK0Mn+eqyUIkLBrzGYaeFM3GybhCLCvsVdNz0Fu/CQ==} + /@volar/source-map/1.0.11: + resolution: {integrity: sha512-tkuV9MD+OuiZfHA0qZXrPdW6F7TvnpnuTan6Qe7UGUs9+sflezlMJdjaYdGgQObfP+06pcT1E3xdkOoi08ZyyQ==} dependencies: muggle-string: 0.1.0 dev: true - /@volar/typescript/1.0.9: - resolution: {integrity: sha512-dVziu+ShQUWuMukM6bvK2v2O446/gG6l1XkTh2vfkccw1IzjfbiP1TWQoNo1ipTfZOtu5YJGYAx+o5HNrGXWfQ==} + /@volar/typescript/1.0.11: + resolution: {integrity: sha512-mq7wDDAs0Eb43jev2FxbowuiwWqvL3kb+tar1we8VQbdabpyQ5dmbWPwo/IglevMmW3SKo1Et+6rqAeZpXNnPQ==} dependencies: - '@volar/language-core': 1.0.9 + '@volar/language-core': 1.0.11 dev: true - /@volar/vue-language-core/1.0.9: - resolution: {integrity: sha512-tofNoR8ShPFenHT1YVMuvoXtXWwoQE+fiXVqSmW0dSKZqEDjWQ3YeXSd0a6aqyKaIbvR7kWWGp34WbpQlwf9Ww==} + /@volar/vue-language-core/1.0.11: + resolution: {integrity: sha512-A3ODs0/ua7BcpSSnE7KtO8bzWsYsbOJRyW2Q/2uktxlfHj8srln3JdgK/mNlIgfnWtACbE5K+EfMJOgJKv864A==} dependencies: - '@volar/language-core': 1.0.9 - '@volar/source-map': 1.0.9 + '@volar/language-core': 1.0.11 + '@volar/source-map': 1.0.11 '@vue/compiler-dom': 3.2.45 '@vue/compiler-sfc': 3.2.45 '@vue/reactivity': 3.2.45 @@ -300,11 +300,11 @@ packages: vue-template-compiler: 2.7.14 dev: true - /@volar/vue-typescript/1.0.9: - resolution: {integrity: sha512-ZLe4y9YNbviACa7uAMCilzxA76gbbSlKfjspXBzk6fCobd8QCIig+VyDYcjANIlm2HhgSCX8jYTzhCKlegh4mw==} + /@volar/vue-typescript/1.0.11: + resolution: {integrity: sha512-jlnFPvBcTyPiAbGlgjhKK7fp3Q+Z7Z5eU1NTbTSS0lQC8Gog3sh2UxLAFG5Voe1gHIxasoOEPXzMR0CWF4bKbA==} dependencies: - '@volar/typescript': 1.0.9 - '@volar/vue-language-core': 1.0.9 + '@volar/typescript': 1.0.11 + '@volar/vue-language-core': 1.0.11 dev: true /@vue/compiler-core/3.2.45: @@ -427,6 +427,11 @@ packages: acorn: 8.8.1 dev: true + /acorn-walk/8.2.0: + resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} + engines: {node: '>=0.4.0'} + dev: true + /acorn/8.8.1: resolution: {integrity: sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==} engines: {node: '>=0.4.0'} @@ -2046,8 +2051,8 @@ packages: engines: {node: '>=8.6'} dev: true - /pinia/2.0.24_mgnvym7yiazkylwwogi5r767ue: - resolution: {integrity: sha512-DDLd4Iphyc+6PYYYbx7jkb6WP9gecgu9bz9huyB5rb7CdJI3DhzYiZI+/Ih8MLewRrP9DSpslF/BgSNrJtZU7A==} + /pinia/2.0.27_mgnvym7yiazkylwwogi5r767ue: + resolution: {integrity: sha512-nOnXP0OFeL8R4WjAHsterU+11vptda643gH02xKNtSCDPiRzVfRYodOLihLDoa0gL1KKuQKV+KOzEgdt3YvqEw==} peerDependencies: '@vue/composition-api': ^1.4.0 typescript: '>=4.4.4' @@ -2538,8 +2543,8 @@ packages: fsevents: 2.3.2 dev: true - /vitest/0.23.4_sass@1.56.1: - resolution: {integrity: sha512-iukBNWqQAv8EKDBUNntspLp9SfpaVFbmzmM0sNcnTxASQZMzRw3PsM6DMlsHiI+I6GeO5/sYDg3ecpC+SNFLrQ==} + /vitest/0.25.3_sass@1.56.1: + resolution: {integrity: sha512-/UzHfXIKsELZhL7OaM2xFlRF8HRZgAHtPctacvNK8H4vOcbJJAMEgbWNGSAK7Y9b1NBe5SeM7VTuz2RsTHFJJA==} engines: {node: '>=v14.16.0'} hasBin: true peerDependencies: @@ -2563,9 +2568,12 @@ packages: '@types/chai': 4.3.4 '@types/chai-subset': 1.3.3 '@types/node': 18.11.9 + acorn: 8.8.1 + acorn-walk: 8.2.0 chai: 4.3.7 debug: 4.3.4 local-pkg: 0.4.2 + source-map: 0.6.1 strip-literal: 0.4.2 tinybench: 2.3.1 tinypool: 0.3.0 @@ -2610,14 +2618,14 @@ packages: he: 1.2.0 dev: true - /vue-tsc/1.0.9_typescript@4.9.3: - resolution: {integrity: sha512-vRmHD1K6DmBymNhoHjQy/aYKTRQNLGOu2/ESasChG9Vy113K6CdP0NlhR0bzgFJfv2eFB9Ez/9L5kIciUajBxQ==} + /vue-tsc/1.0.11_typescript@4.9.3: + resolution: {integrity: sha512-lj+6dEroPsE4wmQOPtjCzAf8x363Km5/tuEvMEoQaoRnzs9myBM46FNvCGIIPStYUGuaqF1W1bORmP2KDQEORA==} hasBin: true peerDependencies: typescript: '*' dependencies: - '@volar/vue-language-core': 1.0.9 - '@volar/vue-typescript': 1.0.9 + '@volar/vue-language-core': 1.0.11 + '@volar/vue-typescript': 1.0.11 typescript: 4.9.3 dev: true From ec712c964ea014c0de2221825d187ae3dcf18e47 Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Sat, 3 Dec 2022 14:23:27 +0100 Subject: [PATCH 26/29] Duotone sea theme for prism --- src/assets/base.scss | 3 +- src/assets/prism.theme.scss | 187 ++++++++++++++++++++++++++++++++++++ 2 files changed, 189 insertions(+), 1 deletion(-) create mode 100644 src/assets/prism.theme.scss diff --git a/src/assets/base.scss b/src/assets/base.scss index 6495419..55f7ee0 100644 --- a/src/assets/base.scss +++ b/src/assets/base.scss @@ -1,3 +1,5 @@ +@import "prism.theme"; + :root { --vt-c-white: #ffffff; --vt-c-white-soft: #f8f8f8; @@ -56,7 +58,6 @@ *::after { box-sizing: border-box; margin: 0; - position: relative; font-weight: normal; } diff --git a/src/assets/prism.theme.scss b/src/assets/prism.theme.scss new file mode 100644 index 0000000..7d35f2f --- /dev/null +++ b/src/assets/prism.theme.scss @@ -0,0 +1,187 @@ +/* +Name: Duotone Sea +Author: by Simurai, adapted from DuoTone themes by Simurai for Atom (http://simurai.com/projects/2016/01/01/duotone-themes) + +Conversion: Bram de Haan (http://atelierbram.github.io/Base2Tone-prism/output/prism/prism-base2tone-sea-dark.css) +Generated with Base16 Builder (https://github.com/base16-builder/base16-builder) +*/ + +code[class*="language-"], +pre[class*="language-"] { + font-family: Consolas, Menlo, Monaco, "Andale Mono WT", "Andale Mono", + "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", + "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", + "Courier New", Courier, monospace; + font-size: 14px; + line-height: 1.375; + direction: ltr; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; + background: #1d262f; + color: #57718e; +} + +pre > code[class*="language-"] { + font-size: 1em; +} + +pre[class*="language-"]::-moz-selection, +pre[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, +code[class*="language-"] ::-moz-selection { + text-shadow: none; + background: #004a9e; +} + +pre[class*="language-"]::selection, +pre[class*="language-"] ::selection, +code[class*="language-"]::selection, +code[class*="language-"] ::selection { + text-shadow: none; + background: #004a9e; +} + +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: 0.5em 0; + overflow: auto; +} + +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: 0.1em; + border-radius: 0.3em; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: #4a5f78; +} + +.token.punctuation { + color: #4a5f78; +} + +.token.namespace { + opacity: 0.7; +} + +.token.tag, +.token.operator, +.token.number { + color: #0aa370; +} + +.token.property, +.token.function { + color: #57718e; +} + +.token.tag-id, +.token.selector, +.token.atrule-id { + color: #ebf4ff; +} + +code.language-javascript, +.token.attr-name { + color: #7eb6f6; +} + +code.language-css, +code.language-scss, +.token.boolean, +.token.string, +.token.entity, +.token.url, +.language-css .token.string, +.language-scss .token.string, +.style .token.string, +.token.attr-value, +.token.keyword, +.token.control, +.token.directive, +.token.unit, +.token.statement, +.token.regex, +.token.atrule { + color: #47ebb4; +} + +.token.placeholder, +.token.variable { + color: #47ebb4; +} + +.token.deleted { + text-decoration: line-through; +} + +.token.inserted { + border-bottom: 1px dotted #ebf4ff; + text-decoration: none; +} + +.token.italic { + font-style: italic; +} + +.token.important, +.token.bold { + font-weight: bold; +} + +.token.important { + color: #7eb6f6; +} + +.token.entity { + cursor: help; +} + +pre > code.highlight { + outline: 0.4em solid #34659d; + outline-offset: 0.4em; +} + +/* overrides color-values for the Line Numbers plugin + * http://prismjs.com/plugins/line-numbers/ + */ +.line-numbers.line-numbers .line-numbers-rows { + border-right-color: #1f2932; +} + +.line-numbers .line-numbers-rows > span:before { + color: #2c3847; +} + +/* overrides color-values for the Line Highlight plugin +* http://prismjs.com/plugins/line-highlight/ +*/ +.line-highlight.line-highlight { + background: rgba(10, 163, 112, 0.2); + background: -webkit-linear-gradient( + left, + rgba(10, 163, 112, 0.2) 70%, + rgba(10, 163, 112, 0) + ); + background: linear-gradient( + to right, + rgba(10, 163, 112, 0.2) 70%, + rgba(10, 163, 112, 0) + ); +} From dcdd63a1b2ca04e74cbfe97d630f7ad54d463aab Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Sat, 3 Dec 2022 14:23:35 +0100 Subject: [PATCH 27/29] start of new post --- src/pages/posts/crc-cards-as-training-material.mdx | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 src/pages/posts/crc-cards-as-training-material.mdx diff --git a/src/pages/posts/crc-cards-as-training-material.mdx b/src/pages/posts/crc-cards-as-training-material.mdx new file mode 100644 index 0000000..b2d7111 --- /dev/null +++ b/src/pages/posts/crc-cards-as-training-material.mdx @@ -0,0 +1,13 @@ +--- +title: CRC Cards as training material +layout: post +date: 2022-12-03 +--- + +# CRC Cards as training material + +```ts {2} +const test = new Constant(); + +console.log(test) +``` From ebfae78a5037c7b995b3b2a84ec0e4b8bbe4848b Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Sat, 3 Dec 2022 14:42:15 +0100 Subject: [PATCH 28/29] fixup! add prismjs --- iles.config.ts | 7 +------ src/pages/posts/crc-cards-as-training-material.mdx | 2 +- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/iles.config.ts b/iles.config.ts index 7cab2ae..037149b 100644 --- a/iles.config.ts +++ b/iles.config.ts @@ -3,10 +3,5 @@ import prism from "@islands/prism" export default defineConfig({ siteUrl: "https://juliencalixte.eu", - modules: [ - "@islands/headings", - prism({ - showLineNumbers: true, - }), - ], + modules: ["@islands/headings", prism()], }) diff --git a/src/pages/posts/crc-cards-as-training-material.mdx b/src/pages/posts/crc-cards-as-training-material.mdx index b2d7111..0a6a222 100644 --- a/src/pages/posts/crc-cards-as-training-material.mdx +++ b/src/pages/posts/crc-cards-as-training-material.mdx @@ -6,7 +6,7 @@ date: 2022-12-03 # CRC Cards as training material -```ts {2} +```ts const test = new Constant(); console.log(test) From 561e1efd383850f866ed673eab10ac54557fb63b Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Mon, 5 Dec 2022 00:25:00 +0100 Subject: [PATCH 29/29] more about crc card --- .../posts/crc-cards-as-training-material.mdx | 207 +++++++++++++++++- 1 file changed, 204 insertions(+), 3 deletions(-) diff --git a/src/pages/posts/crc-cards-as-training-material.mdx b/src/pages/posts/crc-cards-as-training-material.mdx index 0a6a222..aab9a11 100644 --- a/src/pages/posts/crc-cards-as-training-material.mdx +++ b/src/pages/posts/crc-cards-as-training-material.mdx @@ -2,12 +2,213 @@ title: CRC Cards as training material layout: post date: 2022-12-03 +draft: true --- # CRC Cards as training material -```ts -const test = new Constant(); +CRC Card: **C**lass name, **R**esponsibilities, **C**ollaborators. + +[CRC Cards](https://en.wikipedia.org/wiki/Class-responsibility-collaboration_card) are a teaching tool on how to design software. They were proposed by Kent Beck and Ward Cunningham, and, hell yeah it's useful. + +When I'm talking with tech leaders, my goal is to sharpen our vision about the software we are working on. When developers implemente features, I often see responsability leaks: the feature works, but the component are hard to read, hard to reuse and we pile up technical debt too quickly. + +CRC cards are a great tool to focus the discussion and to aknowledge the fact that the developer shared her global vision to each individual local component who must rely only on its local scope. Let's take an example of one discussion. + +## The horrible `UserBookmarks` component 😨 + +Disclaimer: we're about to look at a very ugly code that is definetely doing too many things. The purpose of the discussion I have is to show to the tech lead that we really want to prevent this to happen and it is her mission to standardize it with her team. + +Let's say we have a `UserBookmarks` component. Its role is to display a list of bookmarks the user saved. + +```tsx +interface Props { + user: User +} + +export const UserBookmarks: FunctionComponent = ({ user }) => { + const [bookmarks, setBookmarks] = useState([]) + const [showAddBookmarkModal, setShowAddBookmarkModal] = useState(false) + const [isLoading, setIsLoading] = useState(false) + + useEffect(() => { + setIsLoading(true) + + try { + const userBookmark = await fetch(`/users/${user.id}/bookmarks`, { + method: 'GET' + }) + setBookmarks(userBookmarks) + } catch (error) { + setBookmarks([]) + } finally { + setIsLoading(false) + } + }, []) + + const addBookmarkToUser = async ({ bookmark }) => { + setIsLoading(true) + try { + const newBookmark = await fetch(`/users/${user.id}/bookmarks`, { + method: 'POST', + body: JSON.stringify({ bookmark }) + }) + setBookmarks([...bookmarks, newBookmark]) + } catch (error) { + console.warn(error); + } finally { + setIsLoading(false) + } + } + + return
+ + {toolList} + + <PrimaryButton + text={strings['frontoffice.bookmark.all_bookmarks']} + onClick={() => setShowAddBookmarkModal(true))} + alt={'strings['frontoffice.bookmark.add_bookmarks']'} + image={<FontAwesomeIcon icon={['fas', 'plus']} color="white" />} + /> + + <AddBookmarkModal + visible={showAddBookmarkModal} + onClose={() => setShowAddBookmarkModal(false)} + tools={availableCustomTools} + onBookmarkAdd={addBookmarkToUser} + /> + </div> +} -console.log(test) +``` + +```tsx +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; +import { gsap } from 'gsap'; +import differenceBy from 'lodash/differenceBy'; +import React, { useCallback, useEffect, useState } from 'react'; + +import { PrimaryButton } from 'components/CustomButton/CustomButton'; +import strings from 'components/Localization/Localisation'; +import { Title } from 'components/Title/Title'; +import { useLanguageContext } from 'context/LanguageContext'; +import { + addToolToUser, + fetchToolsForUser, + removeToolFromUser, +} from 'data/actions/ToolActions'; +import { CodeIso } from 'types/Language'; +import { Tool } from 'types/Tool'; +import { Tools } from 'types/Tools'; +import { Ui } from 'types/Ui'; +import { User } from 'types/User'; + +import AddToolModal from './AddToolModal/AddToolModal'; +import { TilesSkeleton } from './TilesSkeleton'; +import { ToolItem } from './Tool/ToolItem'; + +export const Toolbox: React.FC = ({ + user, + ui, + customTools, + userTools, + indispensableTools, + userIsUpdating, + getToolData, + addToolToUser, + removeToolFromUser, +}) => { + const { language } = useLanguageContext(); + + const [showAddToolModal, setShowAddToolModal] = useState(false); + const [showDeleteTool, setShowDeleteTool] = useState(false); + + const [tileAnimation, setTileAnimation] = useState<GSAPTween>(); + const [fakeTiles, setFakeTiles] = useState<unknown[]>([]); + + const [toolList, setToolList] = useState<JSX.Element>(); + + const userId = user['@id']; + const uiLoading = ui.loading; + + const availableCustomTools = differenceBy(customTools, userTools, '@id'); + + const startLoadAnimation = (): void => { + setTileAnimation( + gsap.to(fakeTiles, { + duration: 0.8, + opacity: 0.35, + yoyo: true, + repeat: -1, + stagger: 0.025, + }), + ); + }; + + const stopLoadingAnimation = useCallback((): void => { + tileAnimation?.kill(); + }, [tileAnimation]); + + const addBookmark = (): void => { + setShowAddToolModal(true); + setShowDeleteTool(false); + }; + + useEffect(() => { + startLoadAnimation(); + if (userId) { + getToolData(user, language); + } + }, [userId, language]); + + useEffect(() => { + if (!uiLoading) { + stopLoadingAnimation(); + setToolList( + <div className="tool-list"> + {indispensableTools.map(tool => ( + <ToolItem key={tool['@id']} data={tool} showDeleteButton={false} /> + ))} + + {userTools.map(tool => ( + <ToolItem + key={tool['@id']} + data={tool} + showDeleteButton={showDeleteTool} + onDelete={() => removeToolFromUser(tool)} + /> + ))} + + </div>, + ); + } else { + setToolList(<TilesSkeleton setFakeTiles={setFakeTiles} numberOfTiles={16} />); + } + }, [uiLoading]); + + return ( + <div className="Toolbox"> + <Title title={strings['frontoffice.toolbox.my_tools']} /> + {toolList} + + <PrimaryButton + text={strings['frontoffice.toolbox.all_apps']} + onClick={addBookmark} + alt={'see all apps button'} + image={<FontAwesomeIcon icon={['fas', 'arrow-right']} color="white" />} + positionOfImage="right" + disabled={true} + /> + + <AddToolModal + visible={showAddToolModal} + onClose={() => setShowAddToolModal(false)} + tools={availableCustomTools} + onToolAdd={addToolToUser} + userIsUpdating={userIsUpdating} + /> + </div> + ); +}; ```