The Node.js® Website

feat: migrated to shiki and fixed font-family (#6340)

* feat: migrated to shiki and fixed font-family

* chore: remove extra empty lines

* fix: must be bash

* fix: critical fix to codetabs visit tree

* Update COLLABORATOR_GUIDE.md

Co-authored-by: Michael Esteban <mickel13@gmail.com>
Signed-off-by: Claudio W <cwunder@gnome.org>

---------

Signed-off-by: Claudio W <cwunder@gnome.org>
Co-authored-by: Michael Esteban <mickel13@gmail.com>

authored by Claudio W Michael Esteban and committed by GitHub 939aa623 11a820c8

+4 -6
COLLABORATOR_GUIDE.md
··· 80 80 - [Tailwind][] is used as our CSS Framework and the Foundation of our Design System 81 81 - [Hero Icons](https://heroicons.com/) is an SVG Icon Library used within our Codebase 82 82 - [Radix UI][] is a collection of customizable UI components 83 - - [Shikiji][] is a Syntax Highlighter used for our Codeboxes 83 + - [Shiki][] is a Syntax Highlighter used for our Codeboxes 84 84 - The syntax highlighting is done within the processing of the Markdown files with the MDX compiler as a Rehype plugin. 85 85 - [MDX][] and Markdown are used for structuring the Content of the Website 86 86 - [`next-intl`][] is the i18n Library adopted within the Website ··· 453 453 - `rehype-autolink-headings`: Allows us to add Anchor Links to Markdown Headings 454 454 - `rehype-slug`: Allows us to add IDs to Markdown Headings 455 455 456 - #### Syntax Highlighting (Shikiji) and Vercel 457 - 458 - We use [Shikiji][] which is a refactor of the famous [Shiki](https://github.com/shikijs/shiki) syntax highlighter in ESM. We use it to support our native ESM-nature, and since Shiki is incompatible on serverless environments and Edge functions due of the need of Node's `fs`. Shikiji is definitely a nice port/rewrite of Shiki which supports our needs. 456 + #### Syntax Highlighting (Shiki) and Vercel 459 457 460 - Shikiji is integrated on our workflow as a Reype Plugin, see the `next.mdx.shiki.mjs` file. We also use the `nord` theme for Shikiji and a subset of the supported languages as defined on the `shiki.config.mjs` file. 458 + Shiki is integrated on our workflow as a Rehype Plugin, see the `next.mdx.shiki.mjs` file. We also use the `nord` theme for Shiki and a subset of the supported languages as defined on the `shiki.config.mjs` file. 461 459 462 460 ### Vercel 463 461 ··· 498 496 [MDX]: https://mdxjs.com/ 499 497 [PostCSS]: https://postcss.org/ 500 498 [React]: https://react.dev/ 501 - [Shikiji]: https://github.com/antfu/shikiji 499 + [Shiki]: https://github.com/shikijs/shiki 502 500 [Tailwind]: https://tailwindcss.com/ 503 501 [Radix UI]: https://www.radix-ui.com/
+1
components/Common/CodeBox/index.module.css
··· 42 42 mr-4 43 43 w-4.5 44 44 text-right 45 + font-ibm-plex-mono 45 46 text-neutral-600 46 47 [content:counter(line)] 47 48 [counter-increment:line];
+23 -17
components/Common/CodeBox/index.tsx
··· 31 31 return code; 32 32 } 33 33 34 + // Note that since we use `.split` we will have an extra entry 35 + // being an empty string, so we need to remove it 34 36 const lines = content.split('\n'); 35 37 36 38 return ( 37 - <code> 38 - {lines.flatMap((line, lineIndex) => { 39 - const columns = line.split(' '); 39 + <code style={{ fontFamily: 'monospace' }}> 40 + {lines 41 + .flatMap((line, lineIndex) => { 42 + const columns = line.split(' '); 40 43 41 - return [ 42 - <span key={lineIndex} className="line"> 43 - {columns.map((column, columnIndex) => ( 44 - <Fragment key={columnIndex}> 45 - <span>{column}</span> 46 - {columnIndex < columns.length - 1 && <span> </span>} 47 - </Fragment> 48 - ))} 49 - </span>, 50 - // Add a break line so the text content is formatted correctly 51 - // when copying to clipboard 52 - '\n', 53 - ]; 54 - })} 44 + return [ 45 + <span key={lineIndex} className="line"> 46 + {columns.map((column, columnIndex) => ( 47 + <Fragment key={columnIndex}> 48 + <span>{column}</span> 49 + {columnIndex < columns.length - 1 && <span> </span>} 50 + </Fragment> 51 + ))} 52 + </span>, 53 + // Add a break line so the text content is formatted correctly 54 + // when copying to clipboard 55 + '\n', 56 + ]; 57 + }) 58 + // Here we remove that empty line from before and 59 + // the last flatMap entry which is an `\n` 60 + .slice(0, -2)} 55 61 </code> 56 62 ); 57 63 };
+2 -2
next.mdx.shiki.mjs
··· 116 116 117 117 // This removes all the original Code Elements and adds a new CodeTab Element 118 118 // at the original start of the first Code Element 119 - parent.children.splice(index, currentIndex, codeTabElement); 119 + parent.children.splice(index, currentIndex - index, codeTabElement); 120 120 121 121 // Prevent visiting the code block children and for the next N Elements 122 122 // since all of them belong to this CodeTabs Element 123 - return [SKIP, currentIndex]; 123 + return [SKIP]; 124 124 } 125 125 }); 126 126
+695 -76
package-lock.json
··· 48 48 "remark-gfm": "~4.0.0", 49 49 "remark-reading-time": "~2.0.1", 50 50 "semver": "~7.5.4", 51 - "shikiji": "~0.9.17", 51 + "shiki": "~1.1.2", 52 52 "tailwindcss": "^3.4.0", 53 53 "turbo": "1.12.2", 54 54 "typescript": "~5.3.2", ··· 5448 5448 "node": ">= 8" 5449 5449 } 5450 5450 }, 5451 + "node_modules/@shikijs/core": { 5452 + "version": "1.1.2", 5453 + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.1.2.tgz", 5454 + "integrity": "sha512-ERVzNQz88ZkDqUpWeC57Kp+Kmx5RjqeDBR1M8AGWGom4yrkITiTfXCGmjchlDSw12MhDTuPYR4HVFW8uT61RaQ==" 5455 + }, 5451 5456 "node_modules/@sinclair/typebox": { 5452 5457 "version": "0.27.8", 5453 5458 "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", ··· 5588 5593 } 5589 5594 }, 5590 5595 "node_modules/@storybook/builder-manager": { 5591 - "version": "7.6.12", 5592 - "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.6.12.tgz", 5593 - "integrity": "sha512-AJFrtBj0R11OFwwz+2j+ivRzttWXT6LesSGoLnxown24EV9uLQoHtGb7GOA2GyzY5wjUJS9gQBPGHXjvQEfLJA==", 5596 + "version": "7.6.15", 5597 + "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.6.15.tgz", 5598 + "integrity": "sha512-vfpfCywiasyP7vtbgLJhjssBEwUjZhBsRsubDAzumgOochPiKKPNwsSc5NU/4ZIGaC5zRO26kUaUqFIbJdTEUQ==", 5594 5599 "dev": true, 5595 5600 "dependencies": { 5596 5601 "@fal-works/esbuild-plugin-global-externals": "^2.1.2", 5597 - "@storybook/core-common": "7.6.12", 5598 - "@storybook/manager": "7.6.12", 5599 - "@storybook/node-logger": "7.6.12", 5602 + "@storybook/core-common": "7.6.15", 5603 + "@storybook/manager": "7.6.15", 5604 + "@storybook/node-logger": "7.6.15", 5600 5605 "@types/ejs": "^3.1.1", 5601 5606 "@types/find-cache-dir": "^3.2.1", 5602 5607 "@yarnpkg/esbuild-plugin-pnp": "^3.0.0-rc.10", ··· 5615 5620 "url": "https://opencollective.com/storybook" 5616 5621 } 5617 5622 }, 5623 + "node_modules/@storybook/builder-manager/node_modules/@storybook/channels": { 5624 + "version": "7.6.15", 5625 + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.15.tgz", 5626 + "integrity": "sha512-UPDYRzGkygYFa8QUpEiumWrvZm4u4RKVzgiBt9C4RmHORqkkZzL9LXhaZJp2SmIz1ND5gx6KR5ze8ZnAdwxxoQ==", 5627 + "dev": true, 5628 + "dependencies": { 5629 + "@storybook/client-logger": "7.6.15", 5630 + "@storybook/core-events": "7.6.15", 5631 + "@storybook/global": "^5.0.0", 5632 + "qs": "^6.10.0", 5633 + "telejson": "^7.2.0", 5634 + "tiny-invariant": "^1.3.1" 5635 + }, 5636 + "funding": { 5637 + "type": "opencollective", 5638 + "url": "https://opencollective.com/storybook" 5639 + } 5640 + }, 5641 + "node_modules/@storybook/builder-manager/node_modules/@storybook/client-logger": { 5642 + "version": "7.6.15", 5643 + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.15.tgz", 5644 + "integrity": "sha512-n+K8IqnombqiQNnywVovS+lK61tvv/XSfgPt0cgvoF/hJZB0VDOMRjWsV+v9qQpj1TQEl1lLWeJwZMthTWupJA==", 5645 + "dev": true, 5646 + "dependencies": { 5647 + "@storybook/global": "^5.0.0" 5648 + }, 5649 + "funding": { 5650 + "type": "opencollective", 5651 + "url": "https://opencollective.com/storybook" 5652 + } 5653 + }, 5654 + "node_modules/@storybook/builder-manager/node_modules/@storybook/core-common": { 5655 + "version": "7.6.15", 5656 + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.6.15.tgz", 5657 + "integrity": "sha512-VGmcLJ5U1r1s8/YnLbKcyB4GnNL+/sZIPqwlcSKzDXO76HoVFv1kywf7PbASote7P3gdhLSxBdg95LH2bdIbmw==", 5658 + "dev": true, 5659 + "dependencies": { 5660 + "@storybook/core-events": "7.6.15", 5661 + "@storybook/node-logger": "7.6.15", 5662 + "@storybook/types": "7.6.15", 5663 + "@types/find-cache-dir": "^3.2.1", 5664 + "@types/node": "^18.0.0", 5665 + "@types/node-fetch": "^2.6.4", 5666 + "@types/pretty-hrtime": "^1.0.0", 5667 + "chalk": "^4.1.0", 5668 + "esbuild": "^0.18.0", 5669 + "esbuild-register": "^3.5.0", 5670 + "file-system-cache": "2.3.0", 5671 + "find-cache-dir": "^3.0.0", 5672 + "find-up": "^5.0.0", 5673 + "fs-extra": "^11.1.0", 5674 + "glob": "^10.0.0", 5675 + "handlebars": "^4.7.7", 5676 + "lazy-universal-dotenv": "^4.0.0", 5677 + "node-fetch": "^2.0.0", 5678 + "picomatch": "^2.3.0", 5679 + "pkg-dir": "^5.0.0", 5680 + "pretty-hrtime": "^1.0.3", 5681 + "resolve-from": "^5.0.0", 5682 + "ts-dedent": "^2.0.0" 5683 + }, 5684 + "funding": { 5685 + "type": "opencollective", 5686 + "url": "https://opencollective.com/storybook" 5687 + } 5688 + }, 5689 + "node_modules/@storybook/builder-manager/node_modules/@storybook/core-events": { 5690 + "version": "7.6.15", 5691 + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.15.tgz", 5692 + "integrity": "sha512-i4YnjGecbpGyrFe0340sPhQ9QjZZEBqvMy6kF4XWt6DYLHxZmsTj1HEdvxVl4Ej7V49Vw0Dm8MepJ1d4Y8MKrQ==", 5693 + "dev": true, 5694 + "dependencies": { 5695 + "ts-dedent": "^2.0.0" 5696 + }, 5697 + "funding": { 5698 + "type": "opencollective", 5699 + "url": "https://opencollective.com/storybook" 5700 + } 5701 + }, 5702 + "node_modules/@storybook/builder-manager/node_modules/@storybook/node-logger": { 5703 + "version": "7.6.15", 5704 + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.6.15.tgz", 5705 + "integrity": "sha512-C+sCvRjR+5uVU3VTrfyv7/RlPBxesAjIucUAK0keGyIZ7sFQYCPdkm4m/C4s+TcubgAzVvuoUHlRrSppdA7WzQ==", 5706 + "dev": true, 5707 + "funding": { 5708 + "type": "opencollective", 5709 + "url": "https://opencollective.com/storybook" 5710 + } 5711 + }, 5712 + "node_modules/@storybook/builder-manager/node_modules/@storybook/types": { 5713 + "version": "7.6.15", 5714 + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.15.tgz", 5715 + "integrity": "sha512-tLH0lK6SXECSfMpKin9bge+7XiHZII17n6jc9ZI1TfSBZJyq3M6VzWh2r1C2lC97FlkcKXjIwM3n8h1xNjnI+A==", 5716 + "dev": true, 5717 + "dependencies": { 5718 + "@storybook/channels": "7.6.15", 5719 + "@types/babel__core": "^7.0.0", 5720 + "@types/express": "^4.7.0", 5721 + "file-system-cache": "2.3.0" 5722 + }, 5723 + "funding": { 5724 + "type": "opencollective", 5725 + "url": "https://opencollective.com/storybook" 5726 + } 5727 + }, 5728 + "node_modules/@storybook/builder-manager/node_modules/@types/node": { 5729 + "version": "18.19.15", 5730 + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.15.tgz", 5731 + "integrity": "sha512-AMZ2UWx+woHNfM11PyAEQmfSxi05jm9OlkxczuHeEqmvwPkYj6MWv44gbzDPefYOLysTOFyI3ziiy2ONmUZfpA==", 5732 + "dev": true, 5733 + "dependencies": { 5734 + "undici-types": "~5.26.4" 5735 + } 5736 + }, 5737 + "node_modules/@storybook/builder-manager/node_modules/chalk": { 5738 + "version": "4.1.2", 5739 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 5740 + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 5741 + "dev": true, 5742 + "dependencies": { 5743 + "ansi-styles": "^4.1.0", 5744 + "supports-color": "^7.1.0" 5745 + }, 5746 + "engines": { 5747 + "node": ">=10" 5748 + }, 5749 + "funding": { 5750 + "url": "https://github.com/chalk/chalk?sponsor=1" 5751 + } 5752 + }, 5618 5753 "node_modules/@storybook/builder-webpack5": { 5619 5754 "version": "7.6.12", 5620 5755 "resolved": "https://registry.npmjs.org/@storybook/builder-webpack5/-/builder-webpack5-7.6.12.tgz", ··· 5710 5845 } 5711 5846 }, 5712 5847 "node_modules/@storybook/cli": { 5713 - "version": "7.6.12", 5714 - "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.6.12.tgz", 5715 - "integrity": "sha512-x4sG1oIVERxp+WnWUexVlgaJCFmML0kGi7a5qfx7z4vHMxCV/WG7g1q7mPS/kqStCGEiQdTciCqOEFqlMh9MLw==", 5848 + "version": "7.6.15", 5849 + "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.6.15.tgz", 5850 + "integrity": "sha512-2QRqCyVGDSkraHxX2JPYkkFccbu5Uo+JYFaFJo4vmMXzDurjWON+Ga2B8FCTd4A8P4C02Ca/79jgQoyBB3xoew==", 5716 5851 "dev": true, 5717 5852 "dependencies": { 5718 5853 "@babel/core": "^7.23.2", 5719 5854 "@babel/preset-env": "^7.23.2", 5720 5855 "@babel/types": "^7.23.0", 5721 5856 "@ndelangen/get-tarball": "^3.0.7", 5722 - "@storybook/codemod": "7.6.12", 5723 - "@storybook/core-common": "7.6.12", 5724 - "@storybook/core-events": "7.6.12", 5725 - "@storybook/core-server": "7.6.12", 5726 - "@storybook/csf-tools": "7.6.12", 5727 - "@storybook/node-logger": "7.6.12", 5728 - "@storybook/telemetry": "7.6.12", 5729 - "@storybook/types": "7.6.12", 5857 + "@storybook/codemod": "7.6.15", 5858 + "@storybook/core-common": "7.6.15", 5859 + "@storybook/core-events": "7.6.15", 5860 + "@storybook/core-server": "7.6.15", 5861 + "@storybook/csf-tools": "7.6.15", 5862 + "@storybook/node-logger": "7.6.15", 5863 + "@storybook/telemetry": "7.6.15", 5864 + "@storybook/types": "7.6.15", 5730 5865 "@types/semver": "^7.3.4", 5731 5866 "@yarnpkg/fslib": "2.10.3", 5732 5867 "@yarnpkg/libzip": "2.3.0", ··· 5765 5900 "url": "https://opencollective.com/storybook" 5766 5901 } 5767 5902 }, 5903 + "node_modules/@storybook/cli/node_modules/@storybook/channels": { 5904 + "version": "7.6.15", 5905 + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.15.tgz", 5906 + "integrity": "sha512-UPDYRzGkygYFa8QUpEiumWrvZm4u4RKVzgiBt9C4RmHORqkkZzL9LXhaZJp2SmIz1ND5gx6KR5ze8ZnAdwxxoQ==", 5907 + "dev": true, 5908 + "dependencies": { 5909 + "@storybook/client-logger": "7.6.15", 5910 + "@storybook/core-events": "7.6.15", 5911 + "@storybook/global": "^5.0.0", 5912 + "qs": "^6.10.0", 5913 + "telejson": "^7.2.0", 5914 + "tiny-invariant": "^1.3.1" 5915 + }, 5916 + "funding": { 5917 + "type": "opencollective", 5918 + "url": "https://opencollective.com/storybook" 5919 + } 5920 + }, 5921 + "node_modules/@storybook/cli/node_modules/@storybook/client-logger": { 5922 + "version": "7.6.15", 5923 + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.15.tgz", 5924 + "integrity": "sha512-n+K8IqnombqiQNnywVovS+lK61tvv/XSfgPt0cgvoF/hJZB0VDOMRjWsV+v9qQpj1TQEl1lLWeJwZMthTWupJA==", 5925 + "dev": true, 5926 + "dependencies": { 5927 + "@storybook/global": "^5.0.0" 5928 + }, 5929 + "funding": { 5930 + "type": "opencollective", 5931 + "url": "https://opencollective.com/storybook" 5932 + } 5933 + }, 5934 + "node_modules/@storybook/cli/node_modules/@storybook/core-common": { 5935 + "version": "7.6.15", 5936 + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.6.15.tgz", 5937 + "integrity": "sha512-VGmcLJ5U1r1s8/YnLbKcyB4GnNL+/sZIPqwlcSKzDXO76HoVFv1kywf7PbASote7P3gdhLSxBdg95LH2bdIbmw==", 5938 + "dev": true, 5939 + "dependencies": { 5940 + "@storybook/core-events": "7.6.15", 5941 + "@storybook/node-logger": "7.6.15", 5942 + "@storybook/types": "7.6.15", 5943 + "@types/find-cache-dir": "^3.2.1", 5944 + "@types/node": "^18.0.0", 5945 + "@types/node-fetch": "^2.6.4", 5946 + "@types/pretty-hrtime": "^1.0.0", 5947 + "chalk": "^4.1.0", 5948 + "esbuild": "^0.18.0", 5949 + "esbuild-register": "^3.5.0", 5950 + "file-system-cache": "2.3.0", 5951 + "find-cache-dir": "^3.0.0", 5952 + "find-up": "^5.0.0", 5953 + "fs-extra": "^11.1.0", 5954 + "glob": "^10.0.0", 5955 + "handlebars": "^4.7.7", 5956 + "lazy-universal-dotenv": "^4.0.0", 5957 + "node-fetch": "^2.0.0", 5958 + "picomatch": "^2.3.0", 5959 + "pkg-dir": "^5.0.0", 5960 + "pretty-hrtime": "^1.0.3", 5961 + "resolve-from": "^5.0.0", 5962 + "ts-dedent": "^2.0.0" 5963 + }, 5964 + "funding": { 5965 + "type": "opencollective", 5966 + "url": "https://opencollective.com/storybook" 5967 + } 5968 + }, 5969 + "node_modules/@storybook/cli/node_modules/@storybook/core-events": { 5970 + "version": "7.6.15", 5971 + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.15.tgz", 5972 + "integrity": "sha512-i4YnjGecbpGyrFe0340sPhQ9QjZZEBqvMy6kF4XWt6DYLHxZmsTj1HEdvxVl4Ej7V49Vw0Dm8MepJ1d4Y8MKrQ==", 5973 + "dev": true, 5974 + "dependencies": { 5975 + "ts-dedent": "^2.0.0" 5976 + }, 5977 + "funding": { 5978 + "type": "opencollective", 5979 + "url": "https://opencollective.com/storybook" 5980 + } 5981 + }, 5982 + "node_modules/@storybook/cli/node_modules/@storybook/node-logger": { 5983 + "version": "7.6.15", 5984 + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.6.15.tgz", 5985 + "integrity": "sha512-C+sCvRjR+5uVU3VTrfyv7/RlPBxesAjIucUAK0keGyIZ7sFQYCPdkm4m/C4s+TcubgAzVvuoUHlRrSppdA7WzQ==", 5986 + "dev": true, 5987 + "funding": { 5988 + "type": "opencollective", 5989 + "url": "https://opencollective.com/storybook" 5990 + } 5991 + }, 5992 + "node_modules/@storybook/cli/node_modules/@storybook/types": { 5993 + "version": "7.6.15", 5994 + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.15.tgz", 5995 + "integrity": "sha512-tLH0lK6SXECSfMpKin9bge+7XiHZII17n6jc9ZI1TfSBZJyq3M6VzWh2r1C2lC97FlkcKXjIwM3n8h1xNjnI+A==", 5996 + "dev": true, 5997 + "dependencies": { 5998 + "@storybook/channels": "7.6.15", 5999 + "@types/babel__core": "^7.0.0", 6000 + "@types/express": "^4.7.0", 6001 + "file-system-cache": "2.3.0" 6002 + }, 6003 + "funding": { 6004 + "type": "opencollective", 6005 + "url": "https://opencollective.com/storybook" 6006 + } 6007 + }, 6008 + "node_modules/@storybook/cli/node_modules/@types/node": { 6009 + "version": "18.19.15", 6010 + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.15.tgz", 6011 + "integrity": "sha512-AMZ2UWx+woHNfM11PyAEQmfSxi05jm9OlkxczuHeEqmvwPkYj6MWv44gbzDPefYOLysTOFyI3ziiy2ONmUZfpA==", 6012 + "dev": true, 6013 + "dependencies": { 6014 + "undici-types": "~5.26.4" 6015 + } 6016 + }, 5768 6017 "node_modules/@storybook/cli/node_modules/chalk": { 5769 6018 "version": "4.1.2", 5770 6019 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", ··· 5819 6068 } 5820 6069 }, 5821 6070 "node_modules/@storybook/codemod": { 5822 - "version": "7.6.12", 5823 - "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.6.12.tgz", 5824 - "integrity": "sha512-4EI4Ah1cvz6gFkXOS/LGf23oN8LO6ABGpWwPQoMHpIV3wUkFWBwrKFUe/UAQZGptnM0VZRYx4grS82Hluw4XJA==", 6071 + "version": "7.6.15", 6072 + "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.6.15.tgz", 6073 + "integrity": "sha512-NiEbTLCdacj6TMxC7G49IImXeMzkG8wpPr8Ayxm9HeG6q5UkiF5/DiZdqbJm2zaosOsOKWwvXg1t6Pq6Nivytg==", 5825 6074 "dev": true, 5826 6075 "dependencies": { 5827 6076 "@babel/core": "^7.23.2", 5828 6077 "@babel/preset-env": "^7.23.2", 5829 6078 "@babel/types": "^7.23.0", 5830 6079 "@storybook/csf": "^0.1.2", 5831 - "@storybook/csf-tools": "7.6.12", 5832 - "@storybook/node-logger": "7.6.12", 5833 - "@storybook/types": "7.6.12", 6080 + "@storybook/csf-tools": "7.6.15", 6081 + "@storybook/node-logger": "7.6.15", 6082 + "@storybook/types": "7.6.15", 5834 6083 "@types/cross-spawn": "^6.0.2", 5835 6084 "cross-spawn": "^7.0.3", 5836 6085 "globby": "^11.0.2", ··· 5838 6087 "lodash": "^4.17.21", 5839 6088 "prettier": "^2.8.0", 5840 6089 "recast": "^0.23.1" 6090 + }, 6091 + "funding": { 6092 + "type": "opencollective", 6093 + "url": "https://opencollective.com/storybook" 6094 + } 6095 + }, 6096 + "node_modules/@storybook/codemod/node_modules/@storybook/channels": { 6097 + "version": "7.6.15", 6098 + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.15.tgz", 6099 + "integrity": "sha512-UPDYRzGkygYFa8QUpEiumWrvZm4u4RKVzgiBt9C4RmHORqkkZzL9LXhaZJp2SmIz1ND5gx6KR5ze8ZnAdwxxoQ==", 6100 + "dev": true, 6101 + "dependencies": { 6102 + "@storybook/client-logger": "7.6.15", 6103 + "@storybook/core-events": "7.6.15", 6104 + "@storybook/global": "^5.0.0", 6105 + "qs": "^6.10.0", 6106 + "telejson": "^7.2.0", 6107 + "tiny-invariant": "^1.3.1" 6108 + }, 6109 + "funding": { 6110 + "type": "opencollective", 6111 + "url": "https://opencollective.com/storybook" 6112 + } 6113 + }, 6114 + "node_modules/@storybook/codemod/node_modules/@storybook/client-logger": { 6115 + "version": "7.6.15", 6116 + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.15.tgz", 6117 + "integrity": "sha512-n+K8IqnombqiQNnywVovS+lK61tvv/XSfgPt0cgvoF/hJZB0VDOMRjWsV+v9qQpj1TQEl1lLWeJwZMthTWupJA==", 6118 + "dev": true, 6119 + "dependencies": { 6120 + "@storybook/global": "^5.0.0" 6121 + }, 6122 + "funding": { 6123 + "type": "opencollective", 6124 + "url": "https://opencollective.com/storybook" 6125 + } 6126 + }, 6127 + "node_modules/@storybook/codemod/node_modules/@storybook/core-events": { 6128 + "version": "7.6.15", 6129 + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.15.tgz", 6130 + "integrity": "sha512-i4YnjGecbpGyrFe0340sPhQ9QjZZEBqvMy6kF4XWt6DYLHxZmsTj1HEdvxVl4Ej7V49Vw0Dm8MepJ1d4Y8MKrQ==", 6131 + "dev": true, 6132 + "dependencies": { 6133 + "ts-dedent": "^2.0.0" 6134 + }, 6135 + "funding": { 6136 + "type": "opencollective", 6137 + "url": "https://opencollective.com/storybook" 6138 + } 6139 + }, 6140 + "node_modules/@storybook/codemod/node_modules/@storybook/node-logger": { 6141 + "version": "7.6.15", 6142 + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.6.15.tgz", 6143 + "integrity": "sha512-C+sCvRjR+5uVU3VTrfyv7/RlPBxesAjIucUAK0keGyIZ7sFQYCPdkm4m/C4s+TcubgAzVvuoUHlRrSppdA7WzQ==", 6144 + "dev": true, 6145 + "funding": { 6146 + "type": "opencollective", 6147 + "url": "https://opencollective.com/storybook" 6148 + } 6149 + }, 6150 + "node_modules/@storybook/codemod/node_modules/@storybook/types": { 6151 + "version": "7.6.15", 6152 + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.15.tgz", 6153 + "integrity": "sha512-tLH0lK6SXECSfMpKin9bge+7XiHZII17n6jc9ZI1TfSBZJyq3M6VzWh2r1C2lC97FlkcKXjIwM3n8h1xNjnI+A==", 6154 + "dev": true, 6155 + "dependencies": { 6156 + "@storybook/channels": "7.6.15", 6157 + "@types/babel__core": "^7.0.0", 6158 + "@types/express": "^4.7.0", 6159 + "file-system-cache": "2.3.0" 5841 6160 }, 5842 6161 "funding": { 5843 6162 "type": "opencollective", ··· 6128 6447 } 6129 6448 }, 6130 6449 "node_modules/@storybook/core-server": { 6131 - "version": "7.6.12", 6132 - "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.6.12.tgz", 6133 - "integrity": "sha512-tjWifKsDnIc8pvbjVyQrOHef70Gcp93Bg3WwuysB8PGk7lcX2RD9zv44HNIyjxdOLSSv66IGKrOldEBL3hab4w==", 6450 + "version": "7.6.15", 6451 + "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.6.15.tgz", 6452 + "integrity": "sha512-iIlxEAkrmKTSA3iGNqt/4QG7hf5suxBGYIB3DZAOfBo8EdZogMYaEmuCm5dbuaJr0mcVwlqwdhQiWb1VsR/NhA==", 6134 6453 "dev": true, 6135 6454 "dependencies": { 6136 6455 "@aw-web-design/x-default-browser": "1.4.126", 6137 6456 "@discoveryjs/json-ext": "^0.5.3", 6138 - "@storybook/builder-manager": "7.6.12", 6139 - "@storybook/channels": "7.6.12", 6140 - "@storybook/core-common": "7.6.12", 6141 - "@storybook/core-events": "7.6.12", 6457 + "@storybook/builder-manager": "7.6.15", 6458 + "@storybook/channels": "7.6.15", 6459 + "@storybook/core-common": "7.6.15", 6460 + "@storybook/core-events": "7.6.15", 6142 6461 "@storybook/csf": "^0.1.2", 6143 - "@storybook/csf-tools": "7.6.12", 6462 + "@storybook/csf-tools": "7.6.15", 6144 6463 "@storybook/docs-mdx": "^0.1.0", 6145 6464 "@storybook/global": "^5.0.0", 6146 - "@storybook/manager": "7.6.12", 6147 - "@storybook/node-logger": "7.6.12", 6148 - "@storybook/preview-api": "7.6.12", 6149 - "@storybook/telemetry": "7.6.12", 6150 - "@storybook/types": "7.6.12", 6465 + "@storybook/manager": "7.6.15", 6466 + "@storybook/node-logger": "7.6.15", 6467 + "@storybook/preview-api": "7.6.15", 6468 + "@storybook/telemetry": "7.6.15", 6469 + "@storybook/types": "7.6.15", 6151 6470 "@types/detect-port": "^1.3.0", 6152 6471 "@types/node": "^18.0.0", 6153 6472 "@types/pretty-hrtime": "^1.0.0", ··· 6180 6499 "url": "https://opencollective.com/storybook" 6181 6500 } 6182 6501 }, 6502 + "node_modules/@storybook/core-server/node_modules/@storybook/channels": { 6503 + "version": "7.6.15", 6504 + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.15.tgz", 6505 + "integrity": "sha512-UPDYRzGkygYFa8QUpEiumWrvZm4u4RKVzgiBt9C4RmHORqkkZzL9LXhaZJp2SmIz1ND5gx6KR5ze8ZnAdwxxoQ==", 6506 + "dev": true, 6507 + "dependencies": { 6508 + "@storybook/client-logger": "7.6.15", 6509 + "@storybook/core-events": "7.6.15", 6510 + "@storybook/global": "^5.0.0", 6511 + "qs": "^6.10.0", 6512 + "telejson": "^7.2.0", 6513 + "tiny-invariant": "^1.3.1" 6514 + }, 6515 + "funding": { 6516 + "type": "opencollective", 6517 + "url": "https://opencollective.com/storybook" 6518 + } 6519 + }, 6520 + "node_modules/@storybook/core-server/node_modules/@storybook/client-logger": { 6521 + "version": "7.6.15", 6522 + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.15.tgz", 6523 + "integrity": "sha512-n+K8IqnombqiQNnywVovS+lK61tvv/XSfgPt0cgvoF/hJZB0VDOMRjWsV+v9qQpj1TQEl1lLWeJwZMthTWupJA==", 6524 + "dev": true, 6525 + "dependencies": { 6526 + "@storybook/global": "^5.0.0" 6527 + }, 6528 + "funding": { 6529 + "type": "opencollective", 6530 + "url": "https://opencollective.com/storybook" 6531 + } 6532 + }, 6533 + "node_modules/@storybook/core-server/node_modules/@storybook/core-common": { 6534 + "version": "7.6.15", 6535 + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.6.15.tgz", 6536 + "integrity": "sha512-VGmcLJ5U1r1s8/YnLbKcyB4GnNL+/sZIPqwlcSKzDXO76HoVFv1kywf7PbASote7P3gdhLSxBdg95LH2bdIbmw==", 6537 + "dev": true, 6538 + "dependencies": { 6539 + "@storybook/core-events": "7.6.15", 6540 + "@storybook/node-logger": "7.6.15", 6541 + "@storybook/types": "7.6.15", 6542 + "@types/find-cache-dir": "^3.2.1", 6543 + "@types/node": "^18.0.0", 6544 + "@types/node-fetch": "^2.6.4", 6545 + "@types/pretty-hrtime": "^1.0.0", 6546 + "chalk": "^4.1.0", 6547 + "esbuild": "^0.18.0", 6548 + "esbuild-register": "^3.5.0", 6549 + "file-system-cache": "2.3.0", 6550 + "find-cache-dir": "^3.0.0", 6551 + "find-up": "^5.0.0", 6552 + "fs-extra": "^11.1.0", 6553 + "glob": "^10.0.0", 6554 + "handlebars": "^4.7.7", 6555 + "lazy-universal-dotenv": "^4.0.0", 6556 + "node-fetch": "^2.0.0", 6557 + "picomatch": "^2.3.0", 6558 + "pkg-dir": "^5.0.0", 6559 + "pretty-hrtime": "^1.0.3", 6560 + "resolve-from": "^5.0.0", 6561 + "ts-dedent": "^2.0.0" 6562 + }, 6563 + "funding": { 6564 + "type": "opencollective", 6565 + "url": "https://opencollective.com/storybook" 6566 + } 6567 + }, 6568 + "node_modules/@storybook/core-server/node_modules/@storybook/core-events": { 6569 + "version": "7.6.15", 6570 + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.15.tgz", 6571 + "integrity": "sha512-i4YnjGecbpGyrFe0340sPhQ9QjZZEBqvMy6kF4XWt6DYLHxZmsTj1HEdvxVl4Ej7V49Vw0Dm8MepJ1d4Y8MKrQ==", 6572 + "dev": true, 6573 + "dependencies": { 6574 + "ts-dedent": "^2.0.0" 6575 + }, 6576 + "funding": { 6577 + "type": "opencollective", 6578 + "url": "https://opencollective.com/storybook" 6579 + } 6580 + }, 6581 + "node_modules/@storybook/core-server/node_modules/@storybook/node-logger": { 6582 + "version": "7.6.15", 6583 + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.6.15.tgz", 6584 + "integrity": "sha512-C+sCvRjR+5uVU3VTrfyv7/RlPBxesAjIucUAK0keGyIZ7sFQYCPdkm4m/C4s+TcubgAzVvuoUHlRrSppdA7WzQ==", 6585 + "dev": true, 6586 + "funding": { 6587 + "type": "opencollective", 6588 + "url": "https://opencollective.com/storybook" 6589 + } 6590 + }, 6591 + "node_modules/@storybook/core-server/node_modules/@storybook/preview-api": { 6592 + "version": "7.6.15", 6593 + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.15.tgz", 6594 + "integrity": "sha512-2KN9vlizF6sFlYsJEGnFqcQaJXs4TTdawC1VazVdtaMSHANDxxDu8F1cP+u7lpPH3DkNZUmTGQDBYfYY9xR0eQ==", 6595 + "dev": true, 6596 + "dependencies": { 6597 + "@storybook/channels": "7.6.15", 6598 + "@storybook/client-logger": "7.6.15", 6599 + "@storybook/core-events": "7.6.15", 6600 + "@storybook/csf": "^0.1.2", 6601 + "@storybook/global": "^5.0.0", 6602 + "@storybook/types": "7.6.15", 6603 + "@types/qs": "^6.9.5", 6604 + "dequal": "^2.0.2", 6605 + "lodash": "^4.17.21", 6606 + "memoizerific": "^1.11.3", 6607 + "qs": "^6.10.0", 6608 + "synchronous-promise": "^2.0.15", 6609 + "ts-dedent": "^2.0.0", 6610 + "util-deprecate": "^1.0.2" 6611 + }, 6612 + "funding": { 6613 + "type": "opencollective", 6614 + "url": "https://opencollective.com/storybook" 6615 + } 6616 + }, 6617 + "node_modules/@storybook/core-server/node_modules/@storybook/types": { 6618 + "version": "7.6.15", 6619 + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.15.tgz", 6620 + "integrity": "sha512-tLH0lK6SXECSfMpKin9bge+7XiHZII17n6jc9ZI1TfSBZJyq3M6VzWh2r1C2lC97FlkcKXjIwM3n8h1xNjnI+A==", 6621 + "dev": true, 6622 + "dependencies": { 6623 + "@storybook/channels": "7.6.15", 6624 + "@types/babel__core": "^7.0.0", 6625 + "@types/express": "^4.7.0", 6626 + "file-system-cache": "2.3.0" 6627 + }, 6628 + "funding": { 6629 + "type": "opencollective", 6630 + "url": "https://opencollective.com/storybook" 6631 + } 6632 + }, 6183 6633 "node_modules/@storybook/core-server/node_modules/@types/node": { 6184 - "version": "18.19.14", 6185 - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.14.tgz", 6186 - "integrity": "sha512-EnQ4Us2rmOS64nHDWr0XqAD8DsO6f3XR6lf9UIIrZQpUzPVdN/oPuEzfDWNHSyXLvoGgjuEm/sPwFGSSs35Wtg==", 6634 + "version": "18.19.15", 6635 + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.15.tgz", 6636 + "integrity": "sha512-AMZ2UWx+woHNfM11PyAEQmfSxi05jm9OlkxczuHeEqmvwPkYj6MWv44gbzDPefYOLysTOFyI3ziiy2ONmUZfpA==", 6187 6637 "dev": true, 6188 6638 "dependencies": { 6189 6639 "undici-types": "~5.26.4" ··· 6241 6691 } 6242 6692 }, 6243 6693 "node_modules/@storybook/csf-tools": { 6244 - "version": "7.6.12", 6245 - "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.6.12.tgz", 6246 - "integrity": "sha512-MdhkYYxSW5I6Jpk34gTkAZsuj9sxe0xdyeUQpNa8CgJxG43F+ehZ6scW/IPjoSG9gCXBUJMekq26UrmbVfsLCQ==", 6694 + "version": "7.6.15", 6695 + "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.6.15.tgz", 6696 + "integrity": "sha512-8iKgg2cmbFTpVhRRJOqouhPcEh0c8ywabG4S8ICZvnJooSXUI9mD9p3tYCS7MYuSiHj0epa1Kkn9DtXJRo9o6g==", 6247 6697 "dev": true, 6248 6698 "dependencies": { 6249 6699 "@babel/generator": "^7.23.0", ··· 6251 6701 "@babel/traverse": "^7.23.2", 6252 6702 "@babel/types": "^7.23.0", 6253 6703 "@storybook/csf": "^0.1.2", 6254 - "@storybook/types": "7.6.12", 6704 + "@storybook/types": "7.6.15", 6255 6705 "fs-extra": "^11.1.0", 6256 6706 "recast": "^0.23.1", 6257 6707 "ts-dedent": "^2.0.0" ··· 6261 6711 "url": "https://opencollective.com/storybook" 6262 6712 } 6263 6713 }, 6714 + "node_modules/@storybook/csf-tools/node_modules/@storybook/channels": { 6715 + "version": "7.6.15", 6716 + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.15.tgz", 6717 + "integrity": "sha512-UPDYRzGkygYFa8QUpEiumWrvZm4u4RKVzgiBt9C4RmHORqkkZzL9LXhaZJp2SmIz1ND5gx6KR5ze8ZnAdwxxoQ==", 6718 + "dev": true, 6719 + "dependencies": { 6720 + "@storybook/client-logger": "7.6.15", 6721 + "@storybook/core-events": "7.6.15", 6722 + "@storybook/global": "^5.0.0", 6723 + "qs": "^6.10.0", 6724 + "telejson": "^7.2.0", 6725 + "tiny-invariant": "^1.3.1" 6726 + }, 6727 + "funding": { 6728 + "type": "opencollective", 6729 + "url": "https://opencollective.com/storybook" 6730 + } 6731 + }, 6732 + "node_modules/@storybook/csf-tools/node_modules/@storybook/client-logger": { 6733 + "version": "7.6.15", 6734 + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.15.tgz", 6735 + "integrity": "sha512-n+K8IqnombqiQNnywVovS+lK61tvv/XSfgPt0cgvoF/hJZB0VDOMRjWsV+v9qQpj1TQEl1lLWeJwZMthTWupJA==", 6736 + "dev": true, 6737 + "dependencies": { 6738 + "@storybook/global": "^5.0.0" 6739 + }, 6740 + "funding": { 6741 + "type": "opencollective", 6742 + "url": "https://opencollective.com/storybook" 6743 + } 6744 + }, 6745 + "node_modules/@storybook/csf-tools/node_modules/@storybook/core-events": { 6746 + "version": "7.6.15", 6747 + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.15.tgz", 6748 + "integrity": "sha512-i4YnjGecbpGyrFe0340sPhQ9QjZZEBqvMy6kF4XWt6DYLHxZmsTj1HEdvxVl4Ej7V49Vw0Dm8MepJ1d4Y8MKrQ==", 6749 + "dev": true, 6750 + "dependencies": { 6751 + "ts-dedent": "^2.0.0" 6752 + }, 6753 + "funding": { 6754 + "type": "opencollective", 6755 + "url": "https://opencollective.com/storybook" 6756 + } 6757 + }, 6758 + "node_modules/@storybook/csf-tools/node_modules/@storybook/types": { 6759 + "version": "7.6.15", 6760 + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.15.tgz", 6761 + "integrity": "sha512-tLH0lK6SXECSfMpKin9bge+7XiHZII17n6jc9ZI1TfSBZJyq3M6VzWh2r1C2lC97FlkcKXjIwM3n8h1xNjnI+A==", 6762 + "dev": true, 6763 + "dependencies": { 6764 + "@storybook/channels": "7.6.15", 6765 + "@types/babel__core": "^7.0.0", 6766 + "@types/express": "^4.7.0", 6767 + "file-system-cache": "2.3.0" 6768 + }, 6769 + "funding": { 6770 + "type": "opencollective", 6771 + "url": "https://opencollective.com/storybook" 6772 + } 6773 + }, 6264 6774 "node_modules/@storybook/docs-mdx": { 6265 6775 "version": "0.1.0", 6266 6776 "resolved": "https://registry.npmjs.org/@storybook/docs-mdx/-/docs-mdx-0.1.0.tgz", ··· 6293 6803 "dev": true 6294 6804 }, 6295 6805 "node_modules/@storybook/manager": { 6296 - "version": "7.6.12", 6297 - "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.6.12.tgz", 6298 - "integrity": "sha512-WMWvswJHGiqJFJb98WQMQfZQhLuVtmci4y/VJGQ/Jnq1nJQs76BCtaeGiHcsYmRaAP1HMI4DbzuTSEgca146xw==", 6806 + "version": "7.6.15", 6807 + "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.6.15.tgz", 6808 + "integrity": "sha512-GGV2ElV5AOIApy/FSDzoSlLUbyd2VhQVD3TdNGRxNauYRjEO8ulXHw2tNbT6ludtpYpDTAILzI6zT/iag8hmPQ==", 6299 6809 "dev": true, 6300 6810 "funding": { 6301 6811 "type": "opencollective", ··· 6678 7188 } 6679 7189 }, 6680 7190 "node_modules/@storybook/telemetry": { 6681 - "version": "7.6.12", 6682 - "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.6.12.tgz", 6683 - "integrity": "sha512-eBG3sLb9CZ05pyK2JXBvnaAsxDzbZH57VyhtphhuZmx0DqF/78qIoHs9ebRJpJWV0sL5rtT9vIq8QXpQhDHLWg==", 7191 + "version": "7.6.15", 7192 + "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.6.15.tgz", 7193 + "integrity": "sha512-klhKXLUS3OXozGEtMbbhKZLDfm+m3nNk2jvGwD6kkBenzFUzb0P2m8awxU7h1pBcKZKH/27U9t3KVzNFzWoWPw==", 6684 7194 "dev": true, 6685 7195 "dependencies": { 6686 - "@storybook/client-logger": "7.6.12", 6687 - "@storybook/core-common": "7.6.12", 6688 - "@storybook/csf-tools": "7.6.12", 7196 + "@storybook/client-logger": "7.6.15", 7197 + "@storybook/core-common": "7.6.15", 7198 + "@storybook/csf-tools": "7.6.15", 6689 7199 "chalk": "^4.1.0", 6690 7200 "detect-package-manager": "^2.0.1", 6691 7201 "fetch-retry": "^5.0.2", ··· 6695 7205 "funding": { 6696 7206 "type": "opencollective", 6697 7207 "url": "https://opencollective.com/storybook" 7208 + } 7209 + }, 7210 + "node_modules/@storybook/telemetry/node_modules/@storybook/channels": { 7211 + "version": "7.6.15", 7212 + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.15.tgz", 7213 + "integrity": "sha512-UPDYRzGkygYFa8QUpEiumWrvZm4u4RKVzgiBt9C4RmHORqkkZzL9LXhaZJp2SmIz1ND5gx6KR5ze8ZnAdwxxoQ==", 7214 + "dev": true, 7215 + "dependencies": { 7216 + "@storybook/client-logger": "7.6.15", 7217 + "@storybook/core-events": "7.6.15", 7218 + "@storybook/global": "^5.0.0", 7219 + "qs": "^6.10.0", 7220 + "telejson": "^7.2.0", 7221 + "tiny-invariant": "^1.3.1" 7222 + }, 7223 + "funding": { 7224 + "type": "opencollective", 7225 + "url": "https://opencollective.com/storybook" 7226 + } 7227 + }, 7228 + "node_modules/@storybook/telemetry/node_modules/@storybook/client-logger": { 7229 + "version": "7.6.15", 7230 + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.15.tgz", 7231 + "integrity": "sha512-n+K8IqnombqiQNnywVovS+lK61tvv/XSfgPt0cgvoF/hJZB0VDOMRjWsV+v9qQpj1TQEl1lLWeJwZMthTWupJA==", 7232 + "dev": true, 7233 + "dependencies": { 7234 + "@storybook/global": "^5.0.0" 7235 + }, 7236 + "funding": { 7237 + "type": "opencollective", 7238 + "url": "https://opencollective.com/storybook" 7239 + } 7240 + }, 7241 + "node_modules/@storybook/telemetry/node_modules/@storybook/core-common": { 7242 + "version": "7.6.15", 7243 + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.6.15.tgz", 7244 + "integrity": "sha512-VGmcLJ5U1r1s8/YnLbKcyB4GnNL+/sZIPqwlcSKzDXO76HoVFv1kywf7PbASote7P3gdhLSxBdg95LH2bdIbmw==", 7245 + "dev": true, 7246 + "dependencies": { 7247 + "@storybook/core-events": "7.6.15", 7248 + "@storybook/node-logger": "7.6.15", 7249 + "@storybook/types": "7.6.15", 7250 + "@types/find-cache-dir": "^3.2.1", 7251 + "@types/node": "^18.0.0", 7252 + "@types/node-fetch": "^2.6.4", 7253 + "@types/pretty-hrtime": "^1.0.0", 7254 + "chalk": "^4.1.0", 7255 + "esbuild": "^0.18.0", 7256 + "esbuild-register": "^3.5.0", 7257 + "file-system-cache": "2.3.0", 7258 + "find-cache-dir": "^3.0.0", 7259 + "find-up": "^5.0.0", 7260 + "fs-extra": "^11.1.0", 7261 + "glob": "^10.0.0", 7262 + "handlebars": "^4.7.7", 7263 + "lazy-universal-dotenv": "^4.0.0", 7264 + "node-fetch": "^2.0.0", 7265 + "picomatch": "^2.3.0", 7266 + "pkg-dir": "^5.0.0", 7267 + "pretty-hrtime": "^1.0.3", 7268 + "resolve-from": "^5.0.0", 7269 + "ts-dedent": "^2.0.0" 7270 + }, 7271 + "funding": { 7272 + "type": "opencollective", 7273 + "url": "https://opencollective.com/storybook" 7274 + } 7275 + }, 7276 + "node_modules/@storybook/telemetry/node_modules/@storybook/core-events": { 7277 + "version": "7.6.15", 7278 + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.15.tgz", 7279 + "integrity": "sha512-i4YnjGecbpGyrFe0340sPhQ9QjZZEBqvMy6kF4XWt6DYLHxZmsTj1HEdvxVl4Ej7V49Vw0Dm8MepJ1d4Y8MKrQ==", 7280 + "dev": true, 7281 + "dependencies": { 7282 + "ts-dedent": "^2.0.0" 7283 + }, 7284 + "funding": { 7285 + "type": "opencollective", 7286 + "url": "https://opencollective.com/storybook" 7287 + } 7288 + }, 7289 + "node_modules/@storybook/telemetry/node_modules/@storybook/node-logger": { 7290 + "version": "7.6.15", 7291 + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.6.15.tgz", 7292 + "integrity": "sha512-C+sCvRjR+5uVU3VTrfyv7/RlPBxesAjIucUAK0keGyIZ7sFQYCPdkm4m/C4s+TcubgAzVvuoUHlRrSppdA7WzQ==", 7293 + "dev": true, 7294 + "funding": { 7295 + "type": "opencollective", 7296 + "url": "https://opencollective.com/storybook" 7297 + } 7298 + }, 7299 + "node_modules/@storybook/telemetry/node_modules/@storybook/types": { 7300 + "version": "7.6.15", 7301 + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.15.tgz", 7302 + "integrity": "sha512-tLH0lK6SXECSfMpKin9bge+7XiHZII17n6jc9ZI1TfSBZJyq3M6VzWh2r1C2lC97FlkcKXjIwM3n8h1xNjnI+A==", 7303 + "dev": true, 7304 + "dependencies": { 7305 + "@storybook/channels": "7.6.15", 7306 + "@types/babel__core": "^7.0.0", 7307 + "@types/express": "^4.7.0", 7308 + "file-system-cache": "2.3.0" 7309 + }, 7310 + "funding": { 7311 + "type": "opencollective", 7312 + "url": "https://opencollective.com/storybook" 7313 + } 7314 + }, 7315 + "node_modules/@storybook/telemetry/node_modules/@types/node": { 7316 + "version": "18.19.15", 7317 + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.15.tgz", 7318 + "integrity": "sha512-AMZ2UWx+woHNfM11PyAEQmfSxi05jm9OlkxczuHeEqmvwPkYj6MWv44gbzDPefYOLysTOFyI3ziiy2ONmUZfpA==", 7319 + "dev": true, 7320 + "dependencies": { 7321 + "undici-types": "~5.26.4" 6698 7322 } 6699 7323 }, 6700 7324 "node_modules/@storybook/telemetry/node_modules/chalk": { ··· 20966 21590 } 20967 21591 }, 20968 21592 "node_modules/node-fetch-native": { 20969 - "version": "1.6.1", 20970 - "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.1.tgz", 20971 - "integrity": "sha512-bW9T/uJDPAJB2YNYEpWzE54U5O3MQidXsOyTfnbKYtTtFexRvGzb1waphBN4ZwP6EcIvYYEOwW0b72BpAqydTw==", 21593 + "version": "1.6.2", 21594 + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.2.tgz", 21595 + "integrity": "sha512-69mtXOFZ6hSkYiXAVB5SqaRvrbITC/NPyqv7yuu/qw0nmgPyYbIMYYNIDhNtwPrzk0ptrimrLz/hhjvm4w5Z+w==", 20972 21596 "dev": true 20973 21597 }, 20974 21598 "node_modules/node-fetch/node_modules/tr46": { ··· 30551 31175 "node": ">=8" 30552 31176 } 30553 31177 }, 30554 - "node_modules/shikiji": { 30555 - "version": "0.9.19", 30556 - "resolved": "https://registry.npmjs.org/shikiji/-/shikiji-0.9.19.tgz", 30557 - "integrity": "sha512-Kw2NHWktdcdypCj1GkKpXH4o6Vxz8B8TykPlPuLHOGSV8VkhoCLcFOH4k19K4LXAQYRQmxg+0X/eM+m2sLhAkg==", 31178 + "node_modules/shiki": { 31179 + "version": "1.1.2", 31180 + "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.1.2.tgz", 31181 + "integrity": "sha512-qNzFwTv5uhEDNUIwp7wHjsrffVeLbmOgWnM5mZZhoiz7G2qAUvqVfUzuWfieD45/YAKipzCtdV9SndacKtABow==", 30558 31182 "dependencies": { 30559 - "shikiji-core": "0.9.19" 31183 + "@shikijs/core": "1.1.2" 30560 31184 } 30561 - }, 30562 - "node_modules/shikiji-core": { 30563 - "version": "0.9.19", 30564 - "resolved": "https://registry.npmjs.org/shikiji-core/-/shikiji-core-0.9.19.tgz", 30565 - "integrity": "sha512-AFJu/vcNT21t0e6YrfadZ+9q86gvPum6iywRyt1OtIPjPFe25RQnYJyxHQPMLKCCWA992TPxmEmbNcOZCAJclw==" 30566 31185 }, 30567 31186 "node_modules/side-channel": { 30568 31187 "version": "1.0.4", ··· 30767 31386 } 30768 31387 }, 30769 31388 "node_modules/spdx-license-ids": { 30770 - "version": "3.0.16", 30771 - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", 30772 - "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", 31389 + "version": "3.0.17", 31390 + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", 31391 + "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", 30773 31392 "dev": true 30774 31393 }, 30775 31394 "node_modules/sprintf-js": { ··· 30851 31470 "dev": true 30852 31471 }, 30853 31472 "node_modules/storybook": { 30854 - "version": "7.6.12", 30855 - "resolved": "https://registry.npmjs.org/storybook/-/storybook-7.6.12.tgz", 30856 - "integrity": "sha512-zcH9CwIsE8N4PX3he5vaJ3mTTWGxu7cxJ/ag9oja/k3N5/IvQjRyIU1TLkRVb28BB8gaLyorpnc4C4aLVGy4WQ==", 31473 + "version": "7.6.15", 31474 + "resolved": "https://registry.npmjs.org/storybook/-/storybook-7.6.15.tgz", 31475 + "integrity": "sha512-Ybezq9JRk5CBhzjgzZ/oT7mnU45UwhyVSGKW+PUKZGGUG9VH2hCrTEES9f/zEF82kj/5COVPyqR/5vlXuuS39A==", 30857 31476 "dev": true, 30858 31477 "dependencies": { 30859 - "@storybook/cli": "7.6.12" 31478 + "@storybook/cli": "7.6.15" 30860 31479 }, 30861 31480 "bin": { 30862 31481 "sb": "index.js", ··· 32710 33329 } 32711 33330 }, 32712 33331 "node_modules/ufo": { 32713 - "version": "1.3.2", 32714 - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.3.2.tgz", 32715 - "integrity": "sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==", 33332 + "version": "1.4.0", 33333 + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.4.0.tgz", 33334 + "integrity": "sha512-Hhy+BhRBleFjpJ2vchUNN40qgkh0366FWJGqVLYBHev0vpHTrXSA0ryT+74UiW6KWsldNurQMKGqCm1M2zBciQ==", 32716 33335 "dev": true 32717 33336 }, 32718 33337 "node_modules/uglify-js": {
+1 -1
package.json
··· 79 79 "remark-gfm": "~4.0.0", 80 80 "remark-reading-time": "~2.0.1", 81 81 "semver": "~7.5.4", 82 - "shikiji": "~0.9.17", 82 + "shiki": "~1.1.2", 83 83 "tailwindcss": "^3.4.0", 84 84 "turbo": "1.12.2", 85 85 "typescript": "~5.3.2",
+2 -2
pages/en/guides/event-loop-timers-and-nexttick.md
··· 242 242 }); 243 243 ``` 244 244 245 - ``` 245 + ```bash 246 246 $ node timeout_vs_immediate.js 247 247 timeout 248 248 immediate ··· 269 269 }); 270 270 ``` 271 271 272 - ``` 272 + ```bash 273 273 $ node timeout_vs_immediate.js 274 274 immediate 275 275 timeout
+9 -14
shiki.config.mjs
··· 1 1 'use strict'; 2 2 3 - /** 4 - * READ: This file allows us to configure a subset of languages that we want to support on the Node.js Website 5 - * we use `shikiji` which is an ESM-only rewrite of Shiki 6 - */ 3 + import diffLanguage from 'shiki/langs/diff.mjs'; 4 + import dockerLanguage from 'shiki/langs/docker.mjs'; 5 + import javaScriptLanguage from 'shiki/langs/javascript.mjs'; 6 + import jsonLanguage from 'shiki/langs/json.mjs'; 7 + import shellScriptLanguage from 'shiki/langs/shellscript.mjs'; 8 + import shellSessionLanguage from 'shiki/langs/shellsession.mjs'; 9 + import typeScriptLanguage from 'shiki/langs/typescript.mjs'; 10 + import shikiNordTheme from 'shiki/themes/nord.mjs'; 7 11 8 - import diffLanguage from 'shikiji/langs/diff.mjs'; 9 - import dockerLanguage from 'shikiji/langs/docker.mjs'; 10 - import javaScriptLanguage from 'shikiji/langs/javascript.mjs'; 11 - import jsonLanguage from 'shikiji/langs/json.mjs'; 12 - import shellScriptLanguage from 'shikiji/langs/shellscript.mjs'; 13 - import shellSessionLanguage from 'shikiji/langs/shellsession.mjs'; 14 - import typeScriptLanguage from 'shikiji/langs/typescript.mjs'; 15 - import shikiNordTheme from 'shikiji/themes/nord.mjs'; 16 - 17 - /** @type {Array<import('shikiji').LanguageRegistration>} */ 12 + /** @type {Array<import('shiki').LanguageRegistration>} */ 18 13 export const LANGUAGES = [ 19 14 { 20 15 ...javaScriptLanguage[0],
+3 -3
util/getHighlighter.ts
··· 1 - import { getHighlighterCore } from 'shikiji/core'; 2 - import { getWasmInlined } from 'shikiji/wasm'; 1 + import { getHighlighterCore } from 'shiki/core'; 2 + import getWasm from 'shiki/wasm'; 3 3 4 4 import { LANGUAGES, DEFAULT_THEME } from '@/shiki.config.mjs'; 5 5 ··· 7 7 const memoizedShikiji = await getHighlighterCore({ 8 8 themes: [DEFAULT_THEME], 9 9 langs: LANGUAGES, 10 - loadWasm: getWasmInlined, 10 + loadWasm: getWasm, 11 11 }); 12 12 13 13 export const highlightToHtml = (code: string, language: string) =>