From cf0c4e2f8d2637992ae91b2447dec44ae3cd535f Mon Sep 17 00:00:00 2001 From: ITZSHOAIB Date: Fri, 15 Nov 2024 02:59:51 +0530 Subject: [PATCH] chore: build process revamped completely moved rollup out --- .changeset/sour-otters-trade.md | 5 + README.md | 3 +- package.json | 20 +- pnpm-lock.yaml | 398 ------------------------- rollup.config.js | 29 -- src/{elements.ts => elements/index.ts} | 6 +- src/{ => elements}/script.ts | 4 +- src/{ => elements}/styles.ts | 2 +- src/handlers/delimiters.ts | 7 +- src/handlers/stylesAndScript.ts | 4 +- src/index.ts | 10 +- tsconfig.json | 19 +- 12 files changed, 38 insertions(+), 469 deletions(-) create mode 100644 .changeset/sour-otters-trade.md delete mode 100644 rollup.config.js rename src/{elements.ts => elements/index.ts} (95%) rename src/{ => elements}/script.ts (94%) rename src/{ => elements}/styles.ts (97%) diff --git a/.changeset/sour-otters-trade.md b/.changeset/sour-otters-trade.md new file mode 100644 index 0000000..bb0b0d8 --- /dev/null +++ b/.changeset/sour-otters-trade.md @@ -0,0 +1,5 @@ +--- +"rehype-code-group": minor +--- + +chore: build process revamped for unminifed dist diff --git a/README.md b/README.md index 75310db..998efc8 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,12 @@ A [Rehype](https://github.com/rehypejs/rehype) plugin for grouping code blocks with tabs, allowing you to switch between different code snippets easily. Perfect for documentation and tutorials where you want to show the same code in different languages or configurations. +> ** "This package is ***ESM*** only" + **Inspired by [Vitepress Code Groups](https://vitepress.dev/guide/markdown#code-groups)** > **This plugin is versatile and can be used to create tabs for any type of content, not just code blocks. You can easily organize and display different types of content within tabs.** - ## Features ✨ - Group code blocks with tabs diff --git a/package.json b/package.json index ae1b6da..01bb012 100644 --- a/package.json +++ b/package.json @@ -2,21 +2,20 @@ "name": "rehype-code-group", "version": "0.1.3", "description": "A Rehype plugin for grouping code blocks with tabs, perfect for documentation and tutorials. Works with all Code Syntax Highlighters.", - "main": "dist/index.cjs", - "module": "dist/index.mjs", - "types": "dist/index.d.ts", - "type": "module", - "files": ["dist", "src"], + "main": "dist/index.js", + "module": "dist/index.js", "exports": { ".": { - "import": "./dist/index.mjs", - "require": "./dist/index.cjs", + "import": "./dist/index.js", "types": "./dist/index.d.ts" } }, + "types": "dist/index.d.ts", + "type": "module", + "files": ["dist"], "scripts": { "run:example": "pnpm build && node example/index.js", - "build": "pnpm clean && rollup -c --bundleConfigAsCjs", + "build": "pnpm clean && tsc", "clean": "rimraf dist", "format": "biome format --write", "lint": "biome check --fix", @@ -37,17 +36,12 @@ "@biomejs/biome": "1.9.4", "@changesets/changelog-github": "^0.5.0", "@changesets/cli": "^2.27.9", - "@rollup/plugin-commonjs": "^28.0.1", - "@rollup/plugin-node-resolve": "^15.3.0", - "@rollup/plugin-terser": "^0.4.4", - "@rollup/plugin-typescript": "^12.1.1", "@types/hast": "^3.0.4", "@types/jest": "^29.5.14", "@types/node": "^22.9.0", "jest": "^29.7.0", "lint-staged": "^15.2.10", "rimraf": "^6.0.1", - "rollup": "^4.25.0", "simple-git-hooks": "^2.11.1", "ts-jest": "^29.2.5", "ts-node": "^10.9.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0b2c129..8007132 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -30,18 +30,6 @@ importers: '@changesets/cli': specifier: ^2.27.9 version: 2.27.9 - '@rollup/plugin-commonjs': - specifier: ^28.0.1 - version: 28.0.1(rollup@4.25.0) - '@rollup/plugin-node-resolve': - specifier: ^15.3.0 - version: 15.3.0(rollup@4.25.0) - '@rollup/plugin-terser': - specifier: ^0.4.4 - version: 0.4.4(rollup@4.25.0) - '@rollup/plugin-typescript': - specifier: ^12.1.1 - version: 12.1.1(rollup@4.25.0)(tslib@2.8.1)(typescript@5.6.3) '@types/hast': specifier: ^3.0.4 version: 3.0.4 @@ -60,9 +48,6 @@ importers: rimraf: specifier: ^6.0.1 version: 6.0.1 - rollup: - specifier: ^4.25.0 - version: 4.25.0 simple-git-hooks: specifier: ^2.11.1 version: 2.11.1 @@ -458,9 +443,6 @@ packages: resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} engines: {node: '>=6.0.0'} - '@jridgewell/source-map@0.3.6': - resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} - '@jridgewell/sourcemap-codec@1.5.0': resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} @@ -488,145 +470,6 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@rollup/plugin-commonjs@28.0.1': - resolution: {integrity: sha512-+tNWdlWKbpB3WgBN7ijjYkq9X5uhjmcvyjEght4NmH5fAU++zfQzAJ6wumLS+dNcvwEZhKx2Z+skY8m7v0wGSA==} - engines: {node: '>=16.0.0 || 14 >= 14.17'} - peerDependencies: - rollup: ^2.68.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/plugin-node-resolve@15.3.0': - resolution: {integrity: sha512-9eO5McEICxMzJpDW9OnMYSv4Sta3hmt7VtBFz5zR9273suNOydOyq/FrGeGy+KsTRFm8w0SLVhzig2ILFT63Ag==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.78.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/plugin-terser@0.4.4': - resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/plugin-typescript@12.1.1': - resolution: {integrity: sha512-t7O653DpfB5MbFrqPe/VcKFFkvRuFNp9qId3xq4Eth5xlyymzxNpye2z8Hrl0RIMuXTSr5GGcFpkdlMeacUiFQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.14.0||^3.0.0||^4.0.0 - tslib: '*' - typescript: '>=3.7.0' - peerDependenciesMeta: - rollup: - optional: true - tslib: - optional: true - - '@rollup/pluginutils@5.1.3': - resolution: {integrity: sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/rollup-android-arm-eabi@4.25.0': - resolution: {integrity: sha512-CC/ZqFZwlAIbU1wUPisHyV/XRc5RydFrNLtgl3dGYskdwPZdt4HERtKm50a/+DtTlKeCq9IXFEWR+P6blwjqBA==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.25.0': - resolution: {integrity: sha512-/Y76tmLGUJqVBXXCfVS8Q8FJqYGhgH4wl4qTA24E9v/IJM0XvJCGQVSW1QZ4J+VURO9h8YCa28sTFacZXwK7Rg==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-darwin-arm64@4.25.0': - resolution: {integrity: sha512-YVT6L3UrKTlC0FpCZd0MGA7NVdp7YNaEqkENbWQ7AOVOqd/7VzyHpgIpc1mIaxRAo1ZsJRH45fq8j4N63I/vvg==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.25.0': - resolution: {integrity: sha512-ZRL+gexs3+ZmmWmGKEU43Bdn67kWnMeWXLFhcVv5Un8FQcx38yulHBA7XR2+KQdYIOtD0yZDWBCudmfj6lQJoA==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-freebsd-arm64@4.25.0': - resolution: {integrity: sha512-xpEIXhiP27EAylEpreCozozsxWQ2TJbOLSivGfXhU4G1TBVEYtUPi2pOZBnvGXHyOdLAUUhPnJzH3ah5cqF01g==} - cpu: [arm64] - os: [freebsd] - - '@rollup/rollup-freebsd-x64@4.25.0': - resolution: {integrity: sha512-sC5FsmZGlJv5dOcURrsnIK7ngc3Kirnx3as2XU9uER+zjfyqIjdcMVgzy4cOawhsssqzoAX19qmxgJ8a14Qrqw==} - cpu: [x64] - os: [freebsd] - - '@rollup/rollup-linux-arm-gnueabihf@4.25.0': - resolution: {integrity: sha512-uD/dbLSs1BEPzg564TpRAQ/YvTnCds2XxyOndAO8nJhaQcqQGFgv/DAVko/ZHap3boCvxnzYMa3mTkV/B/3SWA==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-musleabihf@4.25.0': - resolution: {integrity: sha512-ZVt/XkrDlQWegDWrwyC3l0OfAF7yeJUF4fq5RMS07YM72BlSfn2fQQ6lPyBNjt+YbczMguPiJoCfaQC2dnflpQ==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.25.0': - resolution: {integrity: sha512-qboZ+T0gHAW2kkSDPHxu7quaFaaBlynODXpBVnPxUgvWYaE84xgCKAPEYE+fSMd3Zv5PyFZR+L0tCdYCMAtG0A==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.25.0': - resolution: {integrity: sha512-ndWTSEmAaKr88dBuogGH2NZaxe7u2rDoArsejNslugHZ+r44NfWiwjzizVS1nUOHo+n1Z6qV3X60rqE/HlISgw==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-powerpc64le-gnu@4.25.0': - resolution: {integrity: sha512-BVSQvVa2v5hKwJSy6X7W1fjDex6yZnNKy3Kx1JGimccHft6HV0THTwNtC2zawtNXKUu+S5CjXslilYdKBAadzA==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.25.0': - resolution: {integrity: sha512-G4hTREQrIdeV0PE2JruzI+vXdRnaK1pg64hemHq2v5fhv8C7WjVaeXc9P5i4Q5UC06d/L+zA0mszYIKl+wY8oA==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.25.0': - resolution: {integrity: sha512-9T/w0kQ+upxdkFL9zPVB6zy9vWW1deA3g8IauJxojN4bnz5FwSsUAD034KpXIVX5j5p/rn6XqumBMxfRkcHapQ==} - cpu: [s390x] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.25.0': - resolution: {integrity: sha512-ThcnU0EcMDn+J4B9LD++OgBYxZusuA7iemIIiz5yzEcFg04VZFzdFjuwPdlURmYPZw+fgVrFzj4CA64jSTG4Ig==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.25.0': - resolution: {integrity: sha512-zx71aY2oQxGxAT1JShfhNG79PnjYhMC6voAjzpu/xmMjDnKNf6Nl/xv7YaB/9SIa9jDYf8RBPWEnjcdlhlv1rQ==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-win32-arm64-msvc@4.25.0': - resolution: {integrity: sha512-JT8tcjNocMs4CylWY/CxVLnv8e1lE7ff1fi6kbGocWwxDq9pj30IJ28Peb+Y8yiPNSF28oad42ApJB8oUkwGww==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.25.0': - resolution: {integrity: sha512-dRLjLsO3dNOfSN6tjyVlG+Msm4IiZnGkuZ7G5NmpzwF9oOc582FZG05+UdfTbz5Jd4buK/wMb6UeHFhG18+OEg==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.25.0': - resolution: {integrity: sha512-/RqrIFtLB926frMhZD0a5oDa4eFIbyNEwLLloMTEjmqfwZWXywwVVOVmwTsuyhC9HKkVEZcOOi+KV4U9wmOdlg==} - cpu: [x64] - os: [win32] - '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} @@ -660,9 +503,6 @@ packages: '@types/babel__traverse@7.20.6': resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} - '@types/estree@1.0.6': - resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} - '@types/graceful-fs@4.1.9': resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} @@ -690,9 +530,6 @@ packages: '@types/node@22.9.0': resolution: {integrity: sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==} - '@types/resolve@1.20.2': - resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} - '@types/stack-utils@2.0.3': resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} @@ -908,12 +745,6 @@ packages: resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} engines: {node: '>=18'} - commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - - commondir@1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} @@ -1042,9 +873,6 @@ packages: engines: {node: '>=4'} hasBin: true - estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} @@ -1087,14 +915,6 @@ packages: fb-watchman@2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} - fdir@6.4.2: - resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==} - peerDependencies: - picomatch: ^3 || ^4 - peerDependenciesMeta: - picomatch: - optional: true - filelist@1.0.4: resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} @@ -1278,9 +1098,6 @@ packages: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} - is-module@1.0.0: - resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} - is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} @@ -1289,9 +1106,6 @@ packages: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} - is-reference@1.2.1: - resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} - is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} @@ -1544,9 +1358,6 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - magic-string@0.30.12: - resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==} - make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} @@ -1743,10 +1554,6 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - picomatch@4.0.2: - resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} - engines: {node: '>=12'} - pidtree@0.6.0: resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} engines: {node: '>=0.10'} @@ -1789,9 +1596,6 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} @@ -1847,17 +1651,9 @@ packages: engines: {node: 20 || >=22} hasBin: true - rollup@4.25.0: - resolution: {integrity: sha512-uVbClXmR6wvx5R1M3Od4utyLUxrmOcEm3pAtMphn73Apq19PDtHpgZoEvqH2YnnaNUuvKmg2DgRd2Sqv+odyqg==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -1870,9 +1666,6 @@ packages: engines: {node: '>=10'} hasBin: true - serialize-javascript@6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - shebang-command@1.2.0: resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} engines: {node: '>=0.10.0'} @@ -1915,15 +1708,9 @@ packages: resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} engines: {node: '>=18'} - smob@1.5.0: - resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==} - source-map-support@0.5.13: resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} - source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} @@ -2008,11 +1795,6 @@ packages: resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} engines: {node: '>=8'} - terser@5.36.0: - resolution: {integrity: sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==} - engines: {node: '>=10'} - hasBin: true - test-exclude@6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} @@ -2797,11 +2579,6 @@ snapshots: '@jridgewell/set-array@1.2.1': {} - '@jridgewell/source-map@0.3.6': - dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - '@jridgewell/sourcemap-codec@1.5.0': {} '@jridgewell/trace-mapping@0.3.25': @@ -2842,107 +2619,6 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - '@rollup/plugin-commonjs@28.0.1(rollup@4.25.0)': - dependencies: - '@rollup/pluginutils': 5.1.3(rollup@4.25.0) - commondir: 1.0.1 - estree-walker: 2.0.2 - fdir: 6.4.2(picomatch@4.0.2) - is-reference: 1.2.1 - magic-string: 0.30.12 - picomatch: 4.0.2 - optionalDependencies: - rollup: 4.25.0 - - '@rollup/plugin-node-resolve@15.3.0(rollup@4.25.0)': - dependencies: - '@rollup/pluginutils': 5.1.3(rollup@4.25.0) - '@types/resolve': 1.20.2 - deepmerge: 4.3.1 - is-module: 1.0.0 - resolve: 1.22.8 - optionalDependencies: - rollup: 4.25.0 - - '@rollup/plugin-terser@0.4.4(rollup@4.25.0)': - dependencies: - serialize-javascript: 6.0.2 - smob: 1.5.0 - terser: 5.36.0 - optionalDependencies: - rollup: 4.25.0 - - '@rollup/plugin-typescript@12.1.1(rollup@4.25.0)(tslib@2.8.1)(typescript@5.6.3)': - dependencies: - '@rollup/pluginutils': 5.1.3(rollup@4.25.0) - resolve: 1.22.8 - typescript: 5.6.3 - optionalDependencies: - rollup: 4.25.0 - tslib: 2.8.1 - - '@rollup/pluginutils@5.1.3(rollup@4.25.0)': - dependencies: - '@types/estree': 1.0.6 - estree-walker: 2.0.2 - picomatch: 4.0.2 - optionalDependencies: - rollup: 4.25.0 - - '@rollup/rollup-android-arm-eabi@4.25.0': - optional: true - - '@rollup/rollup-android-arm64@4.25.0': - optional: true - - '@rollup/rollup-darwin-arm64@4.25.0': - optional: true - - '@rollup/rollup-darwin-x64@4.25.0': - optional: true - - '@rollup/rollup-freebsd-arm64@4.25.0': - optional: true - - '@rollup/rollup-freebsd-x64@4.25.0': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.25.0': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.25.0': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.25.0': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.25.0': - optional: true - - '@rollup/rollup-linux-powerpc64le-gnu@4.25.0': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.25.0': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.25.0': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.25.0': - optional: true - - '@rollup/rollup-linux-x64-musl@4.25.0': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.25.0': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.25.0': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.25.0': - optional: true - '@sinclair/typebox@0.27.8': {} '@sinonjs/commons@3.0.1': @@ -2982,8 +2658,6 @@ snapshots: dependencies: '@babel/types': 7.26.0 - '@types/estree@1.0.6': {} - '@types/graceful-fs@4.1.9': dependencies: '@types/node': 22.9.0 @@ -3017,8 +2691,6 @@ snapshots: dependencies: undici-types: 6.19.8 - '@types/resolve@1.20.2': {} - '@types/stack-utils@2.0.3': {} '@types/unist@3.0.3': {} @@ -3227,10 +2899,6 @@ snapshots: commander@12.1.0: {} - commander@2.20.3: {} - - commondir@1.0.1: {} - concat-map@0.0.1: {} convert-source-map@2.0.0: {} @@ -3329,8 +2997,6 @@ snapshots: esprima@4.0.1: {} - estree-walker@2.0.2: {} - eventemitter3@5.0.1: {} execa@5.1.1: @@ -3395,10 +3061,6 @@ snapshots: dependencies: bser: 2.1.1 - fdir@6.4.2(picomatch@4.0.2): - optionalDependencies: - picomatch: 4.0.2 - filelist@1.0.4: dependencies: minimatch: 5.1.6 @@ -3595,16 +3257,10 @@ snapshots: dependencies: is-extglob: 2.1.1 - is-module@1.0.0: {} - is-number@7.0.0: {} is-plain-obj@4.1.0: {} - is-reference@1.2.1: - dependencies: - '@types/estree': 1.0.6 - is-stream@2.0.1: {} is-stream@3.0.0: {} @@ -4054,10 +3710,6 @@ snapshots: dependencies: yallist: 3.1.1 - magic-string@0.30.12: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - make-dir@4.0.0: dependencies: semver: 7.6.3 @@ -4226,8 +3878,6 @@ snapshots: picomatch@2.3.1: {} - picomatch@4.0.2: {} - pidtree@0.6.0: {} pify@4.0.1: {} @@ -4259,10 +3909,6 @@ snapshots: queue-microtask@1.2.3: {} - randombytes@2.1.0: - dependencies: - safe-buffer: 5.2.1 - react-is@18.3.1: {} read-yaml-file@1.1.0: @@ -4323,46 +3969,16 @@ snapshots: glob: 11.0.0 package-json-from-dist: 1.0.1 - rollup@4.25.0: - dependencies: - '@types/estree': 1.0.6 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.25.0 - '@rollup/rollup-android-arm64': 4.25.0 - '@rollup/rollup-darwin-arm64': 4.25.0 - '@rollup/rollup-darwin-x64': 4.25.0 - '@rollup/rollup-freebsd-arm64': 4.25.0 - '@rollup/rollup-freebsd-x64': 4.25.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.25.0 - '@rollup/rollup-linux-arm-musleabihf': 4.25.0 - '@rollup/rollup-linux-arm64-gnu': 4.25.0 - '@rollup/rollup-linux-arm64-musl': 4.25.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.25.0 - '@rollup/rollup-linux-riscv64-gnu': 4.25.0 - '@rollup/rollup-linux-s390x-gnu': 4.25.0 - '@rollup/rollup-linux-x64-gnu': 4.25.0 - '@rollup/rollup-linux-x64-musl': 4.25.0 - '@rollup/rollup-win32-arm64-msvc': 4.25.0 - '@rollup/rollup-win32-ia32-msvc': 4.25.0 - '@rollup/rollup-win32-x64-msvc': 4.25.0 - fsevents: 2.3.3 - run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 - safe-buffer@5.2.1: {} - safer-buffer@2.1.2: {} semver@6.3.1: {} semver@7.6.3: {} - serialize-javascript@6.0.2: - dependencies: - randombytes: 2.1.0 - shebang-command@1.2.0: dependencies: shebang-regex: 1.0.0 @@ -4395,18 +4011,11 @@ snapshots: ansi-styles: 6.2.1 is-fullwidth-code-point: 5.0.0 - smob@1.5.0: {} - source-map-support@0.5.13: dependencies: buffer-from: 1.1.2 source-map: 0.6.1 - source-map-support@0.5.21: - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - source-map@0.6.1: {} space-separated-tokens@2.0.2: {} @@ -4482,13 +4091,6 @@ snapshots: term-size@2.2.1: {} - terser@5.36.0: - dependencies: - '@jridgewell/source-map': 0.3.6 - acorn: 8.14.0 - commander: 2.20.3 - source-map-support: 0.5.21 - test-exclude@6.0.0: dependencies: '@istanbuljs/schema': 0.1.3 diff --git a/rollup.config.js b/rollup.config.js deleted file mode 100644 index fcec41d..0000000 --- a/rollup.config.js +++ /dev/null @@ -1,29 +0,0 @@ -import commonjs from "@rollup/plugin-commonjs"; -import resolve from "@rollup/plugin-node-resolve"; -import terser from "@rollup/plugin-terser"; -import typescript from "@rollup/plugin-typescript"; - -const external = [...Object.keys(require("./package.json").dependencies || {})]; - -export default { - input: "src/index.ts", - output: [ - { - file: "dist/index.cjs", - format: "cjs", - }, - { - file: "dist/index.mjs", - format: "esm", - }, - ], - plugins: [ - resolve(), - commonjs(), - typescript({ - tsconfig: "./tsconfig.json", - }), - terser(), - ], - external, -}; diff --git a/src/elements.ts b/src/elements/index.ts similarity index 95% rename from src/elements.ts rename to src/elements/index.ts index 584b440..bd8b6bb 100644 --- a/src/elements.ts +++ b/src/elements/index.ts @@ -1,7 +1,7 @@ import type { Element, Root } from "hast"; -import type { ClassNames } from "./options"; -import { getScript } from "./script"; -import { styles } from "./styles"; +import type { ClassNames } from "../options.js"; +import { getScript } from "./script.js"; +import { styles } from "./styles.js"; export type CodeGroup = { parentNode: Element | Root; diff --git a/src/script.ts b/src/elements/script.ts similarity index 94% rename from src/script.ts rename to src/elements/script.ts index 37ef01d..e4d8f5a 100644 --- a/src/script.ts +++ b/src/elements/script.ts @@ -1,5 +1,5 @@ -import type { ClassNames } from "./options"; -import { defaultClassNames } from "./styles"; +import type { ClassNames } from "../options.js"; +import { defaultClassNames } from "./styles.js"; export const getScript = (classNames: ClassNames) => { const activeTabClassNames = classNames.activeTabClass.split(" "); diff --git a/src/styles.ts b/src/elements/styles.ts similarity index 97% rename from src/styles.ts rename to src/elements/styles.ts index 8d17805..0e6d9b3 100644 --- a/src/styles.ts +++ b/src/elements/styles.ts @@ -1,4 +1,4 @@ -import type { ClassNames } from "./options"; +import type { ClassNames } from "../options.js"; export const defaultClassNames: ClassNames = { activeTabClass: "active", diff --git a/src/handlers/delimiters.ts b/src/handlers/delimiters.ts index ba83e35..f5c7cd1 100644 --- a/src/handlers/delimiters.ts +++ b/src/handlers/delimiters.ts @@ -1,7 +1,10 @@ import type { Element, Root } from "hast"; import { toString as hastToString } from "hast-util-to-string"; -import { type CodeGroup, createRehypeCodeGroupElement } from "../elements"; -import type { ClassNames } from "../options"; +import { + type CodeGroup, + createRehypeCodeGroupElement, +} from "../elements/index.js"; +import type { ClassNames } from "../options.js"; const START_DELIMITER_REGEX = /::: code-group labels=\[([^\]]+)\]/; const END_DELIMITER = ":::"; diff --git a/src/handlers/stylesAndScript.ts b/src/handlers/stylesAndScript.ts index a2b0bb1..ae74355 100644 --- a/src/handlers/stylesAndScript.ts +++ b/src/handlers/stylesAndScript.ts @@ -1,6 +1,6 @@ import type { Element, Root } from "hast"; -import { createScriptElement, createStyleElement } from "../elements"; -import type { ClassNames } from "../options"; +import { createScriptElement, createStyleElement } from "../elements/index.js"; +import type { ClassNames } from "../options.js"; export const addStylesAndScript = ( tree: Root, diff --git a/src/index.ts b/src/index.ts index 1e37976..c80ac3c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,16 +1,16 @@ import type { Element, Root } from "hast"; import type { Plugin } from "unified"; import { SKIP, visit } from "unist-util-visit"; -import type { CodeGroup } from "./elements"; +import type { CodeGroup } from "./elements/index.js"; +import { getClassNames } from "./elements/styles.js"; import { handleEndDelimiter, handleStartDelimiter, isEndDelimiterNode, isStartDelimiterNode, -} from "./handlers/delimiters"; -import { addStylesAndScript } from "./handlers/stylesAndScript"; -import type { RehypeCodeGroupOptions } from "./options"; -import { getClassNames } from "./styles"; +} from "./handlers/delimiters.js"; +import { addStylesAndScript } from "./handlers/stylesAndScript.js"; +import type { RehypeCodeGroupOptions } from "./options.js"; /** * ## Rehype Code Group diff --git a/tsconfig.json b/tsconfig.json index 6859f15..05a194e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,34 +1,27 @@ { "compilerOptions": { // Enable latest features - "lib": ["ESNext"], + "lib": ["ESNext", "DOM"], "target": "ESNext", - "module": "ESNext", + "module": "NodeNext", "moduleDetection": "force", - - // Bundler mode - "moduleResolution": "bundler", "verbatimModuleSyntax": true, - "noEmit": true, - // Best practices "strict": true, "skipLibCheck": true, "noFallthroughCasesInSwitch": true, "esModuleInterop": true, - // Some stricter flags (disabled by default) - "noUnusedLocals": false, - "noUnusedParameters": false, - "noPropertyAccessFromIndexSignature": false, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noPropertyAccessFromIndexSignature": true, "rootDir": "./src", "outDir": "./dist", "forceConsistentCasingInFileNames": true, "declaration": true, - "declarationMap": true, - "declarationDir": "./dist" + "declarationMap": true }, "include": ["src"], "exclude": ["node_modules", "dist"]