From ee462bec1003b43bfa9c4a98d7383abbe39e3969 Mon Sep 17 00:00:00 2001 From: satyanvm Date: Sat, 6 Dec 2025 19:56:41 +0530 Subject: [PATCH] feat: add GitHub Action to check for unused code and cleanup --- .github/workflows/pull-request.yml | 5 +- knip.json | 5 + package.json | 1 + pnpm-lock.yaml | 293 +++++++++++++++++++++++++++++ src/utils/ActionButton.tsx | 30 --- src/utils/HomeCallToAction.tsx | 33 ---- src/utils/Section.tsx | 31 --- src/utils/TwoColumns.tsx | 23 --- 8 files changed, 303 insertions(+), 118 deletions(-) create mode 100644 knip.json delete mode 100644 src/utils/ActionButton.tsx delete mode 100644 src/utils/HomeCallToAction.tsx delete mode 100644 src/utils/Section.tsx delete mode 100644 src/utils/TwoColumns.tsx diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 281c529b..6ee16e03 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -68,7 +68,10 @@ jobs: echo "Error: Source and Target Branches are the same. Please ensure they are different." echo "Error: Close this PR and try again." exit 1 - + + - name: Check for unused files, exports and dependencies + run: npx knip + Check-Sensitive-Files: if: ${{ github.actor != 'dependabot[bot]' }} name: Checks if sensitive files have been changed without authorization diff --git a/knip.json b/knip.json new file mode 100644 index 00000000..b37f47fc --- /dev/null +++ b/knip.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://unpkg.com/knip@5/schema.json", + "project": ["src/**/*.{ts,tsx}", "docs/**/*.{md,mdx}"], + "ignoreDependencies": ["docusaurus", "@docusaurus/plugin-content-docs"] +} diff --git a/package.json b/package.json index 711a6ae6..ac4eadcb 100644 --- a/package.json +++ b/package.json @@ -49,6 +49,7 @@ "eslint-plugin-react": "^7.37.5", "eslint-plugin-tsdoc": "^0.5.0", "husky": "^9.1.7", + "knip": "^5.71.0", "lint-staged": "^16.2.7", "typescript": "~5.9.3" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2308398d..8be8158c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -84,6 +84,9 @@ importers: husky: specifier: ^9.1.7 version: 9.1.7 + knip: + specifier: ^5.71.0 + version: 5.71.0(@types/node@24.10.1)(typescript@5.9.3) lint-staged: specifier: ^16.2.7 version: 16.2.7 @@ -1286,6 +1289,15 @@ packages: resolution: {integrity: sha512-lBSBiRruFurFKXr5Hbsl2thmGweAPmddhF3jb99U4EMDA5L+e5Y1rAkOS07Nvrup7HUMBDrCV45meaxZnt28nQ==} engines: {node: '>=20.0'} + '@emnapi/core@1.7.1': + resolution: {integrity: sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==} + + '@emnapi/runtime@1.7.1': + resolution: {integrity: sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==} + + '@emnapi/wasi-threads@1.1.0': + resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} + '@envelop/core@5.4.0': resolution: {integrity: sha512-/1fat63pySE8rw/dZZArEVytLD90JApY85deDJ0/34gm+yhQ3k70CloSUevxoOE4YCGveG3s9SJJfQeeB4NAtQ==} engines: {node: '>=18.0.0'} @@ -1583,6 +1595,9 @@ packages: resolution: {integrity: sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==} engines: {node: '>=4'} + '@napi-rs/wasm-runtime@1.1.0': + resolution: {integrity: sha512-Fq6DJW+Bb5jaWE69/qOE0D1TUN9+6uWhCeZpdnSBk14pjLcCWR7Q8n49PTSPHazM37JqrsdpEthXy2xn6jWWiA==} + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -1603,6 +1618,106 @@ packages: resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} engines: {node: '>=8.0.0'} + '@oxc-resolver/binding-android-arm-eabi@11.15.0': + resolution: {integrity: sha512-Q+lWuFfq7whNelNJIP1dhXaVz4zO9Tu77GcQHyxDWh3MaCoO2Bisphgzmsh4ZoUe2zIchQh6OvQL99GlWHg9Tw==} + cpu: [arm] + os: [android] + + '@oxc-resolver/binding-android-arm64@11.15.0': + resolution: {integrity: sha512-vbdBttesHR0W1oJaxgWVTboyMUuu+VnPsHXJ6jrXf4czELzB6GIg5DrmlyhAmFBhjwov+yJH/DfTnHS+2sDgOw==} + cpu: [arm64] + os: [android] + + '@oxc-resolver/binding-darwin-arm64@11.15.0': + resolution: {integrity: sha512-R67lsOe1UzNjqVBCwCZX1rlItTsj/cVtBw4Uy19CvTicqEWvwaTn8t34zLD75LQwDDPCY3C8n7NbD+LIdw+ZoA==} + cpu: [arm64] + os: [darwin] + + '@oxc-resolver/binding-darwin-x64@11.15.0': + resolution: {integrity: sha512-77mya5F8WV0EtCxI0MlVZcqkYlaQpfNwl/tZlfg4jRsoLpFbaTeWv75hFm6TE84WULVlJtSgvf7DhoWBxp9+ZQ==} + cpu: [x64] + os: [darwin] + + '@oxc-resolver/binding-freebsd-x64@11.15.0': + resolution: {integrity: sha512-X1Sz7m5PC+6D3KWIDXMUtux+0Imj6HfHGdBStSvgdI60OravzI1t83eyn6eN0LPTrynuPrUgjk7tOnOsBzSWHw==} + cpu: [x64] + os: [freebsd] + + '@oxc-resolver/binding-linux-arm-gnueabihf@11.15.0': + resolution: {integrity: sha512-L1x/wCaIRre+18I4cH/lTqSAymlV0k4HqfSYNNuI9oeL28Ks86lI6O5VfYL6sxxWYgjuWB98gNGo7tq7d4GarQ==} + cpu: [arm] + os: [linux] + + '@oxc-resolver/binding-linux-arm-musleabihf@11.15.0': + resolution: {integrity: sha512-abGXd/zMGa0tH8nKlAXdOnRy4G7jZmkU0J85kMKWns161bxIgGn/j7zxqh3DKEW98wAzzU9GofZMJ0P5YCVPVw==} + cpu: [arm] + os: [linux] + + '@oxc-resolver/binding-linux-arm64-gnu@11.15.0': + resolution: {integrity: sha512-SVjjjtMW66Mza76PBGJLqB0KKyFTBnxmtDXLJPbL6ZPGSctcXVmujz7/WAc0rb9m2oV0cHQTtVjnq6orQnI/jg==} + cpu: [arm64] + os: [linux] + + '@oxc-resolver/binding-linux-arm64-musl@11.15.0': + resolution: {integrity: sha512-JDv2/AycPF2qgzEiDeMJCcSzKNDm3KxNg0KKWipoKEMDFqfM7LxNwwSVyAOGmrYlE4l3dg290hOMsr9xG7jv9g==} + cpu: [arm64] + os: [linux] + + '@oxc-resolver/binding-linux-ppc64-gnu@11.15.0': + resolution: {integrity: sha512-zbu9FhvBLW4KJxo7ElFvZWbSt4vP685Qc/Gyk/Ns3g2gR9qh2qWXouH8PWySy+Ko/qJ42+HJCLg+ZNcxikERfg==} + cpu: [ppc64] + os: [linux] + + '@oxc-resolver/binding-linux-riscv64-gnu@11.15.0': + resolution: {integrity: sha512-Kfleehe6B09C2qCnyIU01xLFqFXCHI4ylzkicfX/89j+gNHh9xyNdpEvit88Kq6i5tTGdavVnM6DQfOE2qNtlg==} + cpu: [riscv64] + os: [linux] + + '@oxc-resolver/binding-linux-riscv64-musl@11.15.0': + resolution: {integrity: sha512-J7LPiEt27Tpm8P+qURDwNc8q45+n+mWgyys4/V6r5A8v5gDentHRGUx3iVk5NxdKhgoGulrzQocPTZVosq25Eg==} + cpu: [riscv64] + os: [linux] + + '@oxc-resolver/binding-linux-s390x-gnu@11.15.0': + resolution: {integrity: sha512-+8/d2tAScPjVJNyqa7GPGnqleTB/XW9dZJQ2D/oIM3wpH3TG+DaFEXBbk4QFJ9K9AUGBhvQvWU2mQyhK/yYn3Q==} + cpu: [s390x] + os: [linux] + + '@oxc-resolver/binding-linux-x64-gnu@11.15.0': + resolution: {integrity: sha512-xtvSzH7Nr5MCZI2FKImmOdTl9kzuQ51RPyLh451tvD2qnkg3BaqI9Ox78bTk57YJhlXPuxWSOL5aZhKAc9J6qg==} + cpu: [x64] + os: [linux] + + '@oxc-resolver/binding-linux-x64-musl@11.15.0': + resolution: {integrity: sha512-14YL1zuXj06+/tqsuUZuzL0T425WA/I4nSVN1kBXeC5WHxem6lQ+2HGvG+crjeJEqHgZUT62YIgj88W+8E7eyg==} + cpu: [x64] + os: [linux] + + '@oxc-resolver/binding-openharmony-arm64@11.15.0': + resolution: {integrity: sha512-/7Qli+1Wk93coxnrQaU8ySlICYN8HsgyIrzqjgIkQEpI//9eUeaeIHZptNl2fMvBGeXa7k2QgLbRNaBRgpnvMw==} + cpu: [arm64] + os: [openharmony] + + '@oxc-resolver/binding-wasm32-wasi@11.15.0': + resolution: {integrity: sha512-q5rn2eIMQLuc/AVGR2rQKb2EVlgreATGG8xXg8f4XbbYCVgpxaq+dgMbiPStyNywW1MH8VU2T09UEm30UtOQvg==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@oxc-resolver/binding-win32-arm64-msvc@11.15.0': + resolution: {integrity: sha512-yCAh2RWjU/8wWTxQDgGPgzV9QBv0/Ojb5ej1c/58iOjyTuy/J1ZQtYi2SpULjKmwIxLJdTiCHpMilauWimE31w==} + cpu: [arm64] + os: [win32] + + '@oxc-resolver/binding-win32-ia32-msvc@11.15.0': + resolution: {integrity: sha512-lmXKb6lvA6M6QIbtYfgjd+AryJqExZVSY2bfECC18OPu7Lv1mHFF171Mai5l9hG3r4IhHPPIwT10EHoilSCYeA==} + cpu: [ia32] + os: [win32] + + '@oxc-resolver/binding-win32-x64-msvc@11.15.0': + resolution: {integrity: sha512-HZsfne0s/tGOcJK9ZdTGxsNU2P/dH0Shf0jqrPvsC6wX0Wk+6AyhSpHFLQCnLOuFQiHHU0ePfM8iYsoJb5hHpQ==} + cpu: [x64] + os: [win32] + '@pkgr/core@0.2.9': resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} @@ -1756,6 +1871,9 @@ packages: resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} engines: {node: '>=10.13.0'} + '@tybys/wasm-util@0.10.1': + resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} + '@types/body-parser@1.19.6': resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==} @@ -3904,6 +4022,9 @@ packages: resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} engines: {node: '>=0.8.0'} + fd-package-json@2.0.0: + resolution: {integrity: sha512-jKmm9YtsNXN789RS/0mSzOC1NUq9mkVd65vbSSVsKdjGvYXBuE4oWe2QOEoFeRmJg+lPuZxpmrfFclNhoRMneQ==} + fd-slicer@1.1.0: resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} @@ -4083,6 +4204,11 @@ packages: resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} engines: {node: '>=0.4.x'} + formatly@0.3.0: + resolution: {integrity: sha512-9XNj/o4wrRFyhSMJOvsuyMwy8aUfBaZ1VrqHVfohyXf0Sw0e+yfKG+xZaY3arGCOMdwFsqObtzVOc1gU9KiT9w==} + engines: {node: '>=18.3.0'} + hasBin: true + formdata-polyfill@4.0.10: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} engines: {node: '>=12.20.0'} @@ -5209,6 +5335,14 @@ packages: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} + knip@5.71.0: + resolution: {integrity: sha512-hwgdqEJ+7DNJ5jE8BCPu7b57TY7vUwP6MzWYgCgPpg6iPCee/jKPShDNIlFER2koti4oz5xF88VJbKCb4Wl71g==} + engines: {node: '>=18.18.0'} + hasBin: true + peerDependencies: + '@types/node': '>=18' + typescript: '>=5.0.4 <7' + latest-version@7.0.0: resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==} engines: {node: '>=14.16'} @@ -5996,6 +6130,9 @@ packages: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} engines: {node: '>= 0.4'} + oxc-resolver@11.15.0: + resolution: {integrity: sha512-Hk2J8QMYwmIO9XTCUiOH00+Xk2/+aBxRUnhrSlANDyCnLYc32R1WSIq1sU2yEdlqd53FfMpPEpnBYIKQMzliJw==} + p-cancelable@0.3.0: resolution: {integrity: sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==} engines: {node: '>=4'} @@ -7502,6 +7639,10 @@ packages: resolution: {integrity: sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==} engines: {node: '>=18'} + smol-toml@1.5.2: + resolution: {integrity: sha512-QlaZEqcAH3/RtNyet1IPIYPsEWAaYyXXv1Krsi+1L/QHppjX4Ifm8MQsBISz9vE8cHicIq3clogsheili5vhaQ==} + engines: {node: '>= 18'} + snake-case@3.0.4: resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} @@ -7749,6 +7890,10 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + strip-json-comments@5.0.3: + resolution: {integrity: sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==} + engines: {node: '>=14.16'} + strip-outer@1.0.1: resolution: {integrity: sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==} engines: {node: '>=0.10.0'} @@ -8243,6 +8388,10 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + walk-up-path@4.0.0: + resolution: {integrity: sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A==} + engines: {node: 20 || >=22} + watchpack@2.4.4: resolution: {integrity: sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==} engines: {node: '>=10.13.0'} @@ -10482,6 +10631,22 @@ snapshots: - uglify-js - webpack-cli + '@emnapi/core@1.7.1': + dependencies: + '@emnapi/wasi-threads': 1.1.0 + tslib: 2.8.1 + optional: true + + '@emnapi/runtime@1.7.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@emnapi/wasi-threads@1.1.0': + dependencies: + tslib: 2.8.1 + optional: true + '@envelop/core@5.4.0': dependencies: '@envelop/instrumentation': 1.0.0 @@ -10919,6 +11084,13 @@ snapshots: call-me-maybe: 1.0.2 glob-to-regexp: 0.3.0 + '@napi-rs/wasm-runtime@1.1.0': + dependencies: + '@emnapi/core': 1.7.1 + '@emnapi/runtime': 1.7.1 + '@tybys/wasm-util': 0.10.1 + optional: true + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -10935,6 +11107,68 @@ snapshots: '@opentelemetry/api@1.9.0': {} + '@oxc-resolver/binding-android-arm-eabi@11.15.0': + optional: true + + '@oxc-resolver/binding-android-arm64@11.15.0': + optional: true + + '@oxc-resolver/binding-darwin-arm64@11.15.0': + optional: true + + '@oxc-resolver/binding-darwin-x64@11.15.0': + optional: true + + '@oxc-resolver/binding-freebsd-x64@11.15.0': + optional: true + + '@oxc-resolver/binding-linux-arm-gnueabihf@11.15.0': + optional: true + + '@oxc-resolver/binding-linux-arm-musleabihf@11.15.0': + optional: true + + '@oxc-resolver/binding-linux-arm64-gnu@11.15.0': + optional: true + + '@oxc-resolver/binding-linux-arm64-musl@11.15.0': + optional: true + + '@oxc-resolver/binding-linux-ppc64-gnu@11.15.0': + optional: true + + '@oxc-resolver/binding-linux-riscv64-gnu@11.15.0': + optional: true + + '@oxc-resolver/binding-linux-riscv64-musl@11.15.0': + optional: true + + '@oxc-resolver/binding-linux-s390x-gnu@11.15.0': + optional: true + + '@oxc-resolver/binding-linux-x64-gnu@11.15.0': + optional: true + + '@oxc-resolver/binding-linux-x64-musl@11.15.0': + optional: true + + '@oxc-resolver/binding-openharmony-arm64@11.15.0': + optional: true + + '@oxc-resolver/binding-wasm32-wasi@11.15.0': + dependencies: + '@napi-rs/wasm-runtime': 1.1.0 + optional: true + + '@oxc-resolver/binding-win32-arm64-msvc@11.15.0': + optional: true + + '@oxc-resolver/binding-win32-ia32-msvc@11.15.0': + optional: true + + '@oxc-resolver/binding-win32-x64-msvc@11.15.0': + optional: true + '@pkgr/core@0.2.9': {} '@pnpm/config.env-replace@1.1.0': {} @@ -11098,6 +11332,11 @@ snapshots: '@trysound/sax@0.2.0': {} + '@tybys/wasm-util@0.10.1': + dependencies: + tslib: 2.8.1 + optional: true + '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 @@ -13856,6 +14095,10 @@ snapshots: dependencies: websocket-driver: 0.7.4 + fd-package-json@2.0.0: + dependencies: + walk-up-path: 4.0.0 + fd-slicer@1.1.0: dependencies: pend: 1.2.0 @@ -14029,6 +14272,10 @@ snapshots: format@0.2.2: {} + formatly@0.3.0: + dependencies: + fd-package-json: 2.0.0 + formdata-polyfill@4.0.10: dependencies: fetch-blob: 3.2.0 @@ -15262,6 +15509,23 @@ snapshots: kleur@3.0.3: {} + knip@5.71.0(@types/node@24.10.1)(typescript@5.9.3): + dependencies: + '@nodelib/fs.walk': 1.2.8 + '@types/node': 24.10.1 + fast-glob: 3.3.3 + formatly: 0.3.0 + jiti: 2.6.1 + js-yaml: 4.1.1 + minimist: 1.2.8 + oxc-resolver: 11.15.0 + picocolors: 1.1.1 + picomatch: 4.0.3 + smol-toml: 1.5.2 + strip-json-comments: 5.0.3 + typescript: 5.9.3 + zod: 4.1.12 + latest-version@7.0.0: dependencies: package-json: 8.1.1 @@ -16379,6 +16643,29 @@ snapshots: object-keys: 1.1.1 safe-push-apply: 1.0.0 + oxc-resolver@11.15.0: + optionalDependencies: + '@oxc-resolver/binding-android-arm-eabi': 11.15.0 + '@oxc-resolver/binding-android-arm64': 11.15.0 + '@oxc-resolver/binding-darwin-arm64': 11.15.0 + '@oxc-resolver/binding-darwin-x64': 11.15.0 + '@oxc-resolver/binding-freebsd-x64': 11.15.0 + '@oxc-resolver/binding-linux-arm-gnueabihf': 11.15.0 + '@oxc-resolver/binding-linux-arm-musleabihf': 11.15.0 + '@oxc-resolver/binding-linux-arm64-gnu': 11.15.0 + '@oxc-resolver/binding-linux-arm64-musl': 11.15.0 + '@oxc-resolver/binding-linux-ppc64-gnu': 11.15.0 + '@oxc-resolver/binding-linux-riscv64-gnu': 11.15.0 + '@oxc-resolver/binding-linux-riscv64-musl': 11.15.0 + '@oxc-resolver/binding-linux-s390x-gnu': 11.15.0 + '@oxc-resolver/binding-linux-x64-gnu': 11.15.0 + '@oxc-resolver/binding-linux-x64-musl': 11.15.0 + '@oxc-resolver/binding-openharmony-arm64': 11.15.0 + '@oxc-resolver/binding-wasm32-wasi': 11.15.0 + '@oxc-resolver/binding-win32-arm64-msvc': 11.15.0 + '@oxc-resolver/binding-win32-ia32-msvc': 11.15.0 + '@oxc-resolver/binding-win32-x64-msvc': 11.15.0 + p-cancelable@0.3.0: {} p-cancelable@0.4.1: {} @@ -18125,6 +18412,8 @@ snapshots: ansi-styles: 6.2.3 is-fullwidth-code-point: 5.1.0 + smol-toml@1.5.2: {} + snake-case@3.0.4: dependencies: dot-case: 3.0.4 @@ -18415,6 +18704,8 @@ snapshots: strip-json-comments@3.1.1: {} + strip-json-comments@5.0.3: {} + strip-outer@1.0.1: dependencies: escape-string-regexp: 1.0.5 @@ -18952,6 +19243,8 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 + walk-up-path@4.0.0: {} + watchpack@2.4.4: dependencies: glob-to-regexp: 0.4.1 diff --git a/src/utils/ActionButton.tsx b/src/utils/ActionButton.tsx deleted file mode 100644 index 007b4cc3..00000000 --- a/src/utils/ActionButton.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import React from 'react'; - -interface IActionButtonProps { - href: string; - type?: 'primary' | 'secondary'; - target?: string; - children: React.ReactNode; - buttonClassName?: string; -} - -function ActionButton({ - href, - type = 'primary', - target, - children, - buttonClassName, -}: IActionButtonProps) { - return ( - - {children} - - ); -} - -export default ActionButton; diff --git a/src/utils/HomeCallToAction.tsx b/src/utils/HomeCallToAction.tsx deleted file mode 100644 index 19ad0249..00000000 --- a/src/utils/HomeCallToAction.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import React from 'react'; -import ActionButton from './ActionButton'; - -// interface HomeCallToActionProps {} - -const HomeCallToAction = () => { - return ( - <> - - Learn More - - - Mobile - - - Web - - - Admins - - - Devs - - - ); -}; - -export default HomeCallToAction; diff --git a/src/utils/Section.tsx b/src/utils/Section.tsx deleted file mode 100644 index b1d9f49d..00000000 --- a/src/utils/Section.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import React from 'react'; -import type { JSX } from 'react'; - -interface ISectionProps { - element?: keyof JSX.IntrinsicElements; - children?: React.ReactNode; - className?: string; - background?: 'light' | 'dark' | 'tint'; -} - -function Section({ - element = 'section', - children, - className, - background = 'light', -}: ISectionProps) { - const El = element; - return ( - - {children} - - ); -} - -export default Section; diff --git a/src/utils/TwoColumns.tsx b/src/utils/TwoColumns.tsx deleted file mode 100644 index bea61731..00000000 --- a/src/utils/TwoColumns.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import React, { FC } from 'react'; -import type { JSX } from 'react'; - -interface IProps { - columnOne: React.ReactNode; - columnTwo: React.ReactNode | JSX.Element; - reverse?: boolean; -} - -const TwoColumns: FC = ({ columnOne, columnTwo, reverse = false }) => { - const firstColumnClasses = `column first ${reverse ? 'right' : 'left'}`; - const lastColumnClasses = `column last ${reverse ? 'left' : 'right'}`; - const containerClasses = `TwoColumns ${reverse ? 'reverse' : ''}`; - - return ( -
-
{columnOne}
-
{columnTwo}
-
- ); -}; - -export default TwoColumns;