From f85cf0c719192d469e64d35eb3b9de36bb07d2f7 Mon Sep 17 00:00:00 2001 From: Atridad Lahiji Date: Fri, 25 Jul 2025 16:51:25 -0600 Subject: [PATCH] Moved from nix-shell -> flakes --- README.md | 4 +- flake.lock | 61 ++++++++++++++++++++ flake.nix | 120 +++++++++++++++++++++++++++++++++++++++ package.json | 6 +- pnpm-lock.yaml | 148 ++++++++++++++++++++++++------------------------- shell.nix | 107 ----------------------------------- 6 files changed, 260 insertions(+), 186 deletions(-) create mode 100644 flake.lock create mode 100644 flake.nix delete mode 100644 shell.nix diff --git a/README.md b/README.md index c5970fb..48d6ff4 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ My personal website built with Astro and Preact! - **Talks** - **Terminal View** -** Nix shell is required for local development! Install it on your OS of choice OR use NixOS! +** Nix with flakes enabled is required for local development! Install it on your OS of choice OR use NixOS! ## Development @@ -19,7 +19,7 @@ My personal website built with Astro and Preact! pnpm i # Start development server -pnpm shell # Enter nix-shell +pnpm nix # Build with flakes pnpm dev # Build for production diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..80a25ac --- /dev/null +++ b/flake.lock @@ -0,0 +1,61 @@ +{ + "nodes": { + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1753250450, + "narHash": "sha256-i+CQV2rPmP8wHxj0aq4siYyohHwVlsh40kV89f3nw1s=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "fc02ee70efb805d3b2865908a13ddd4474557ecf", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..7d7f14a --- /dev/null +++ b/flake.nix @@ -0,0 +1,120 @@ +# flake.nix +{ + description = "A portable development environment for atridotdad with Nix Flakes"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; # Pin to a specific branch or commit for stability + flake-utils.url = "github:numtide/flake-utils"; # Helps with system boilerplate + }; + + outputs = { self, nixpkgs, flake-utils }: + flake-utils.lib.eachDefaultSystem (system: + let + pkgs = nixpkgs.legacyPackages.${system}; + + isDarwin = pkgs.stdenv.isDarwin; + isLinux = pkgs.stdenv.isLinux; + + commonDevTools = with pkgs; [ + nodejs_24 + nodePackages.pnpm + git + curl + ]; + + # Common libraries needed for Playwright across platforms (e.g., for WebKit/Firefox) + playwrightCommonLibs = with pkgs; [ + glib + nss + nspr + dbus + atk + at-spi2-atk + at-spi2-core + cups + expat + libxkbcommon + cairo + pango + fontconfig + freetype + harfbuzz + icu + libpng + gnutls + ]; + + # Linux-specific libraries for Playwright (mostly Chromium dependencies) + playwrightLinuxSpecificLibs = with pkgs; [ + glibc + libgcc + xorg.libX11 + xorg.libxcb + xorg.libXext + xorg.libXfixes + xorg.libXrandr + xorg.libXcomposite + xorg.libXdamage + xorg.libXcursor + xorg.libXi + xorg.libXrender + xorg.libXtst + mesa + libglvnd + libdrm + udev + alsa-lib + ]; + + playwrightSelfDownloadLibs = playwrightCommonLibs ++ (if isLinux then playwrightLinuxSpecificLibs else []); + + playwrightLibPath = pkgs.lib.makeBinPath playwrightSelfDownloadLibs; + + in + { + devShells.default = pkgs.mkShell { + packages = commonDevTools ++ ( + if isDarwin + then playwrightCommonLibs # For macOS, Playwright will download Chromium. Provide base libs. + else [ pkgs.chromium ] ++ playwrightSelfDownloadLibs # For Linux, provide Chromium and its dependencies + ); + + PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD = if isDarwin then "0" else "1"; + + PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH = pkgs.lib.optionalString isLinux "${pkgs.chromium}/bin/chromium"; + PUPPETEER_SKIP_CHROMIUM_DOWNLOAD = if isDarwin then "false" else "true"; + PUPPETEER_EXECUTABLE_PATH = pkgs.lib.optionalString isLinux "${pkgs.chromium}/bin/chromium"; + + shellHook = '' + echo "🚀 atridotdad development environment loaded!" + echo "Node version: $(node --version)" + echo "pnpm version: $(pnpm --version)" + + ${pkgs.lib.optionalString isDarwin '' + echo "Chromium path: Playwright will download its own for macOS" + + export LD_LIBRARY_PATH="${playwrightLibPath}:$LD_LIBRARY_PATH" + + PLAYWRIGHT_BROWSERS_PATH="''${TMPDIR:-$HOME/.cache}/ms-playwright" + export PLAYWRIGHT_BROWSERS_PATH + + if [ ! -d "$PLAYWRIGHT_BROWSERS_PATH" ] || [ -z "$(ls -A "$PLAYWRIGHT_BROWSERS_PATH")" ]; then + echo "🌐 Installing Playwright browsers (for macOS)..." + pnpm exec playwright install chromium + else + echo "✅ Playwright browsers already installed (for macOS)." + fi + ''} + + ${pkgs.lib.optionalString isLinux '' + echo "Chromium path: ${pkgs.chromium}/bin/chromium" + ''} + + if [ ! -d "node_modules" ]; then + echo "📦 Installing pnpm dependencies..." + pnpm install --frozen-lockfile # Use --frozen-lockfile for more consistent builds + fi + ''; + }; + }); +} \ No newline at end of file diff --git a/package.json b/package.json index ae37e5b..e31bcb3 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "build": "astro build", "preview": "astro preview", "astro": "astro", - "shell": "nix-shell" + "nix": "nix develop" }, "dependencies": { "@astrojs/mdx": "^4.3.1", @@ -18,7 +18,7 @@ "@preact/signals": "^2.2.1", "@tailwindcss/typography": "^0.5.16", "@tailwindcss/vite": "^4.1.11", - "astro": "^5.12.2", + "astro": "^5.12.3", "astro-icon": "^1.1.5", "lucide-preact": "^0.525.0", "playwright": "^1.54.1", @@ -29,7 +29,7 @@ "devDependencies": { "@iconify-json/mdi": "^1.2.3", "@iconify-json/simple-icons": "^1.2.44", - "daisyui": "^5.0.46" + "daisyui": "^5.0.47" }, "pnpm": { "onlyBuiltDependencies": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e50eec5..c707b5a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,13 +10,13 @@ importers: dependencies: '@astrojs/mdx': specifier: ^4.3.1 - version: 4.3.1(astro@5.12.2(@types/node@24.1.0)(jiti@2.4.2)(lightningcss@1.30.1)(rollup@4.45.1)(typescript@5.8.3)) + version: 4.3.1(astro@5.12.3(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(rollup@4.45.1)(typescript@5.8.3)) '@astrojs/node': specifier: ^9.3.0 - version: 9.3.0(astro@5.12.2(@types/node@24.1.0)(jiti@2.4.2)(lightningcss@1.30.1)(rollup@4.45.1)(typescript@5.8.3)) + version: 9.3.0(astro@5.12.3(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(rollup@4.45.1)(typescript@5.8.3)) '@astrojs/preact': specifier: ^4.1.0 - version: 4.1.0(@babel/core@7.28.0)(@types/node@24.1.0)(jiti@2.4.2)(lightningcss@1.30.1)(preact@10.26.9) + version: 4.1.0(@babel/core@7.28.0)(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(preact@10.26.9) '@astrojs/rss': specifier: ^4.0.12 version: 4.0.12 @@ -31,10 +31,10 @@ importers: version: 0.5.16(tailwindcss@4.1.11) '@tailwindcss/vite': specifier: ^4.1.11 - version: 4.1.11(vite@6.3.5(@types/node@24.1.0)(jiti@2.4.2)(lightningcss@1.30.1)) + version: 4.1.11(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)) astro: - specifier: ^5.12.2 - version: 5.12.2(@types/node@24.1.0)(jiti@2.4.2)(lightningcss@1.30.1)(rollup@4.45.1)(typescript@5.8.3) + specifier: ^5.12.3 + version: 5.12.3(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(rollup@4.45.1)(typescript@5.8.3) astro-icon: specifier: ^1.1.5 version: 1.1.5 @@ -61,8 +61,8 @@ importers: specifier: ^1.2.44 version: 1.2.44 daisyui: - specifier: ^5.0.46 - version: 5.0.46 + specifier: ^5.0.47 + version: 5.0.47 packages: @@ -167,8 +167,8 @@ packages: resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.27.6': - resolution: {integrity: sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==} + '@babel/helpers@7.28.2': + resolution: {integrity: sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw==} engines: {node: '>=6.9.0'} '@babel/parser@7.28.0': @@ -202,8 +202,8 @@ packages: resolution: {integrity: sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==} engines: {node: '>=6.9.0'} - '@babel/types@7.28.1': - resolution: {integrity: sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==} + '@babel/types@7.28.2': + resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==} engines: {node: '>=6.9.0'} '@capsizecss/unpack@2.4.0': @@ -994,16 +994,16 @@ packages: astro-icon@1.1.5: resolution: {integrity: sha512-CJYS5nWOw9jz4RpGWmzNQY7D0y2ZZacH7atL2K9DeJXJVaz7/5WrxeyIxO8KASk1jCM96Q4LjRx/F3R+InjJrw==} - astro@5.12.2: - resolution: {integrity: sha512-/qTPSD8bSxjsh5KNXvOsf6Md7dqNuH3WSx6KLa1YbxPR2JZDgPWEKEyulS3/9L5h5aP0SkjONrqwOGdgWw97fg==} + astro@5.12.3: + resolution: {integrity: sha512-fU1hNPMkccm+FuonGsY5DFkC2QyuLCju++8L2ubzBtYBDBf6bmfgmVM7A2dK+Hl+ZJCUNgepsClhBpczj+2LRw==} engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} hasBin: true asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - axios@1.10.0: - resolution: {integrity: sha512-/1xYAC4MP/HEG+3duIhFr4ZQXR4sQXOIe+o6sdqzeykGLx6Upp/1p8MHqhINOvGeP7xyNHe7tsiJByc4SSVUxw==} + axios@1.11.0: + resolution: {integrity: sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==} axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} @@ -1190,8 +1190,8 @@ packages: resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} - daisyui@5.0.46: - resolution: {integrity: sha512-vMDZK1tI/bOb2Mc3Mk5WpquBG3ZqBz1YKZ0xDlvpOvey60dOS4/5Qhdowq1HndbQl7PgDLDYysxAjjUjwR7/eQ==} + daisyui@5.0.47: + resolution: {integrity: sha512-RuYjjVKpodDoOYAHIvG6qC3BeRxhlyj4JCO+6aV0VzK+i3RWD7cmICh0m5+Xfr5938mV0Mk7FUOQ00msz8H8dw==} debug@4.4.1: resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} @@ -1271,8 +1271,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.190: - resolution: {integrity: sha512-k4McmnB2091YIsdCgkS0fMVMPOJgxl93ltFzaryXqwip1AaxeDqKCGLxkXODDA5Ab/D+tV5EL5+aTx76RvLRxw==} + electron-to-chromium@1.5.191: + resolution: {integrity: sha512-xcwe9ELcuxYLUFqZZxL19Z6HVKcvNkIwhbHUz7L3us6u12yR+7uY89dSl570f/IqNthx8dAw3tojG7i4Ni4tDA==} emoji-regex@10.4.0: resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} @@ -1605,8 +1605,8 @@ packages: resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} engines: {node: '>=16'} - jiti@2.4.2: - resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} + jiti@2.5.1: + resolution: {integrity: sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w==} hasBin: true js-tokens@4.0.0: @@ -2277,9 +2277,9 @@ packages: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} - source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} + source-map@0.7.6: + resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} + engines: {node: '>= 12'} space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} @@ -2705,12 +2705,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/mdx@4.3.1(astro@5.12.2(@types/node@24.1.0)(jiti@2.4.2)(lightningcss@1.30.1)(rollup@4.45.1)(typescript@5.8.3))': + '@astrojs/mdx@4.3.1(astro@5.12.3(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(rollup@4.45.1)(typescript@5.8.3))': dependencies: '@astrojs/markdown-remark': 6.3.3 '@mdx-js/mdx': 3.1.0(acorn@8.15.0) acorn: 8.15.0 - astro: 5.12.2(@types/node@24.1.0)(jiti@2.4.2)(lightningcss@1.30.1)(rollup@4.45.1)(typescript@5.8.3) + astro: 5.12.3(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(rollup@4.45.1)(typescript@5.8.3) es-module-lexer: 1.7.0 estree-util-visit: 2.0.0 hast-util-to-html: 9.0.5 @@ -2718,28 +2718,28 @@ snapshots: rehype-raw: 7.0.0 remark-gfm: 4.0.1 remark-smartypants: 3.0.2 - source-map: 0.7.4 + source-map: 0.7.6 unist-util-visit: 5.0.0 vfile: 6.0.3 transitivePeerDependencies: - supports-color - '@astrojs/node@9.3.0(astro@5.12.2(@types/node@24.1.0)(jiti@2.4.2)(lightningcss@1.30.1)(rollup@4.45.1)(typescript@5.8.3))': + '@astrojs/node@9.3.0(astro@5.12.3(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(rollup@4.45.1)(typescript@5.8.3))': dependencies: '@astrojs/internal-helpers': 0.6.1 - astro: 5.12.2(@types/node@24.1.0)(jiti@2.4.2)(lightningcss@1.30.1)(rollup@4.45.1)(typescript@5.8.3) + astro: 5.12.3(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(rollup@4.45.1)(typescript@5.8.3) send: 1.2.0 server-destroy: 1.0.1 transitivePeerDependencies: - supports-color - '@astrojs/preact@4.1.0(@babel/core@7.28.0)(@types/node@24.1.0)(jiti@2.4.2)(lightningcss@1.30.1)(preact@10.26.9)': + '@astrojs/preact@4.1.0(@babel/core@7.28.0)(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(preact@10.26.9)': dependencies: - '@preact/preset-vite': 2.10.2(@babel/core@7.28.0)(preact@10.26.9)(vite@6.3.5(@types/node@24.1.0)(jiti@2.4.2)(lightningcss@1.30.1)) + '@preact/preset-vite': 2.10.2(@babel/core@7.28.0)(preact@10.26.9)(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)) '@preact/signals': 2.2.1(preact@10.26.9) preact: 10.26.9 preact-render-to-string: 6.5.13(preact@10.26.9) - vite: 6.3.5(@types/node@24.1.0)(jiti@2.4.2)(lightningcss@1.30.1) + vite: 6.3.5(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1) transitivePeerDependencies: - '@babel/core' - '@types/node' @@ -2791,11 +2791,11 @@ snapshots: '@babel/generator': 7.28.0 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) - '@babel/helpers': 7.27.6 + '@babel/helpers': 7.28.2 '@babel/parser': 7.28.0 '@babel/template': 7.27.2 '@babel/traverse': 7.28.0 - '@babel/types': 7.28.1 + '@babel/types': 7.28.2 convert-source-map: 2.0.0 debug: 4.4.1 gensync: 1.0.0-beta.2 @@ -2807,14 +2807,14 @@ snapshots: '@babel/generator@7.28.0': dependencies: '@babel/parser': 7.28.0 - '@babel/types': 7.28.1 + '@babel/types': 7.28.2 '@jridgewell/gen-mapping': 0.3.12 '@jridgewell/trace-mapping': 0.3.29 jsesc: 3.1.0 '@babel/helper-annotate-as-pure@7.27.3': dependencies: - '@babel/types': 7.28.1 + '@babel/types': 7.28.2 '@babel/helper-compilation-targets@7.27.2': dependencies: @@ -2829,7 +2829,7 @@ snapshots: '@babel/helper-module-imports@7.27.1': dependencies: '@babel/traverse': 7.28.0 - '@babel/types': 7.28.1 + '@babel/types': 7.28.2 transitivePeerDependencies: - supports-color @@ -2850,14 +2850,14 @@ snapshots: '@babel/helper-validator-option@7.27.1': {} - '@babel/helpers@7.27.6': + '@babel/helpers@7.28.2': dependencies: '@babel/template': 7.27.2 - '@babel/types': 7.28.1 + '@babel/types': 7.28.2 '@babel/parser@7.28.0': dependencies: - '@babel/types': 7.28.1 + '@babel/types': 7.28.2 '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.0)': dependencies: @@ -2878,7 +2878,7 @@ snapshots: '@babel/helper-module-imports': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.0) - '@babel/types': 7.28.1 + '@babel/types': 7.28.2 transitivePeerDependencies: - supports-color @@ -2886,7 +2886,7 @@ snapshots: dependencies: '@babel/code-frame': 7.27.1 '@babel/parser': 7.28.0 - '@babel/types': 7.28.1 + '@babel/types': 7.28.2 '@babel/traverse@7.28.0': dependencies: @@ -2895,12 +2895,12 @@ snapshots: '@babel/helper-globals': 7.28.0 '@babel/parser': 7.28.0 '@babel/template': 7.27.2 - '@babel/types': 7.28.1 + '@babel/types': 7.28.2 debug: 4.4.1 transitivePeerDependencies: - supports-color - '@babel/types@7.28.1': + '@babel/types@7.28.2': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 @@ -3011,7 +3011,7 @@ snapshots: '@iconify/types': 2.0.0 '@iconify/utils': 2.3.0 '@types/tar': 6.1.13 - axios: 1.10.0 + axios: 1.11.0 cheerio: 1.0.0 domhandler: 5.0.3 extract-zip: 2.0.1 @@ -3237,7 +3237,7 @@ snapshots: remark-mdx: 3.1.0 remark-parse: 11.0.0 remark-rehype: 11.1.2 - source-map: 0.7.4 + source-map: 0.7.6 unified: 11.0.5 unist-util-position-from-estree: 2.0.0 unist-util-stringify-position: 4.0.0 @@ -3249,18 +3249,18 @@ snapshots: '@oslojs/encoding@1.1.0': {} - '@preact/preset-vite@2.10.2(@babel/core@7.28.0)(preact@10.26.9)(vite@6.3.5(@types/node@24.1.0)(jiti@2.4.2)(lightningcss@1.30.1))': + '@preact/preset-vite@2.10.2(@babel/core@7.28.0)(preact@10.26.9)(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1))': dependencies: '@babel/core': 7.28.0 '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.0) '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.28.0) - '@prefresh/vite': 2.4.8(preact@10.26.9)(vite@6.3.5(@types/node@24.1.0)(jiti@2.4.2)(lightningcss@1.30.1)) + '@prefresh/vite': 2.4.8(preact@10.26.9)(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)) '@rollup/pluginutils': 4.2.1 babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.28.0) debug: 4.4.1 picocolors: 1.1.1 - vite: 6.3.5(@types/node@24.1.0)(jiti@2.4.2)(lightningcss@1.30.1) - vite-prerender-plugin: 0.5.11(vite@6.3.5(@types/node@24.1.0)(jiti@2.4.2)(lightningcss@1.30.1)) + vite: 6.3.5(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1) + vite-prerender-plugin: 0.5.11(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)) transitivePeerDependencies: - preact - supports-color @@ -3280,7 +3280,7 @@ snapshots: '@prefresh/utils@1.2.1': {} - '@prefresh/vite@2.4.8(preact@10.26.9)(vite@6.3.5(@types/node@24.1.0)(jiti@2.4.2)(lightningcss@1.30.1))': + '@prefresh/vite@2.4.8(preact@10.26.9)(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1))': dependencies: '@babel/core': 7.28.0 '@prefresh/babel-plugin': 0.5.2 @@ -3288,7 +3288,7 @@ snapshots: '@prefresh/utils': 1.2.1 '@rollup/pluginutils': 4.2.1 preact: 10.26.9 - vite: 6.3.5(@types/node@24.1.0)(jiti@2.4.2)(lightningcss@1.30.1) + vite: 6.3.5(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1) transitivePeerDependencies: - supports-color @@ -3406,7 +3406,7 @@ snapshots: dependencies: '@ampproject/remapping': 2.3.0 enhanced-resolve: 5.18.2 - jiti: 2.4.2 + jiti: 2.5.1 lightningcss: 1.30.1 magic-string: 0.30.17 source-map-js: 1.2.1 @@ -3474,12 +3474,12 @@ snapshots: postcss-selector-parser: 6.0.10 tailwindcss: 4.1.11 - '@tailwindcss/vite@4.1.11(vite@6.3.5(@types/node@24.1.0)(jiti@2.4.2)(lightningcss@1.30.1))': + '@tailwindcss/vite@4.1.11(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1))': dependencies: '@tailwindcss/node': 4.1.11 '@tailwindcss/oxide': 4.1.11 tailwindcss: 4.1.11 - vite: 6.3.5(@types/node@24.1.0)(jiti@2.4.2)(lightningcss@1.30.1) + vite: 6.3.5(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1) '@trysound/sax@0.2.0': {} @@ -3571,7 +3571,7 @@ snapshots: - debug - supports-color - astro@5.12.2(@types/node@24.1.0)(jiti@2.4.2)(lightningcss@1.30.1)(rollup@4.45.1)(typescript@5.8.3): + astro@5.12.3(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(rollup@4.45.1)(typescript@5.8.3): dependencies: '@astrojs/compiler': 2.12.2 '@astrojs/internal-helpers': 0.6.1 @@ -3627,8 +3627,8 @@ snapshots: unist-util-visit: 5.0.0 unstorage: 1.16.1 vfile: 6.0.3 - vite: 6.3.5(@types/node@24.1.0)(jiti@2.4.2)(lightningcss@1.30.1) - vitefu: 1.1.1(vite@6.3.5(@types/node@24.1.0)(jiti@2.4.2)(lightningcss@1.30.1)) + vite: 6.3.5(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1) + vitefu: 1.1.1(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)) xxhash-wasm: 1.1.0 yargs-parser: 21.1.1 yocto-spinner: 0.2.3 @@ -3674,7 +3674,7 @@ snapshots: asynckit@0.4.0: {} - axios@1.10.0: + axios@1.11.0: dependencies: follow-redirects: 1.15.9 form-data: 4.0.4 @@ -3716,7 +3716,7 @@ snapshots: browserslist@4.25.1: dependencies: caniuse-lite: 1.0.30001727 - electron-to-chromium: 1.5.190 + electron-to-chromium: 1.5.191 node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.25.1) @@ -3861,7 +3861,7 @@ snapshots: dependencies: css-tree: 2.2.1 - daisyui@5.0.46: {} + daisyui@5.0.47: {} debug@4.4.1: dependencies: @@ -3927,7 +3927,7 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.5.190: {} + electron-to-chromium@1.5.191: {} emoji-regex@10.4.0: {} @@ -4041,7 +4041,7 @@ snapshots: dependencies: '@types/estree-jsx': 1.0.5 astring: 1.9.0 - source-map: 0.7.4 + source-map: 0.7.6 estree-util-visit@2.0.0: dependencies: @@ -4375,7 +4375,7 @@ snapshots: dependencies: is-inside-container: 1.0.0 - jiti@2.4.2: {} + jiti@2.5.1: {} js-tokens@4.0.0: {} @@ -4474,7 +4474,7 @@ snapshots: magicast@0.3.5: dependencies: '@babel/parser': 7.28.0 - '@babel/types': 7.28.1 + '@babel/types': 7.28.2 source-map-js: 1.2.1 markdown-extensions@2.0.0: {} @@ -5424,7 +5424,7 @@ snapshots: source-map-js@1.2.1: {} - source-map@0.7.4: {} + source-map@0.7.6: {} space-separated-tokens@2.0.2: {} @@ -5646,17 +5646,17 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-prerender-plugin@0.5.11(vite@6.3.5(@types/node@24.1.0)(jiti@2.4.2)(lightningcss@1.30.1)): + vite-prerender-plugin@0.5.11(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)): dependencies: kolorist: 1.8.0 magic-string: 0.30.17 node-html-parser: 6.1.13 simple-code-frame: 1.3.0 - source-map: 0.7.4 + source-map: 0.7.6 stack-trace: 1.0.0-pre2 - vite: 6.3.5(@types/node@24.1.0)(jiti@2.4.2)(lightningcss@1.30.1) + vite: 6.3.5(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1) - vite@6.3.5(@types/node@24.1.0)(jiti@2.4.2)(lightningcss@1.30.1): + vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1): dependencies: esbuild: 0.25.8 fdir: 6.4.6(picomatch@4.0.3) @@ -5667,12 +5667,12 @@ snapshots: optionalDependencies: '@types/node': 24.1.0 fsevents: 2.3.3 - jiti: 2.4.2 + jiti: 2.5.1 lightningcss: 1.30.1 - vitefu@1.1.1(vite@6.3.5(@types/node@24.1.0)(jiti@2.4.2)(lightningcss@1.30.1)): + vitefu@1.1.1(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)): optionalDependencies: - vite: 6.3.5(@types/node@24.1.0)(jiti@2.4.2)(lightningcss@1.30.1) + vite: 6.3.5(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1) web-namespaces@2.0.1: {} diff --git a/shell.nix b/shell.nix deleted file mode 100644 index 3a19104..0000000 --- a/shell.nix +++ /dev/null @@ -1,107 +0,0 @@ -{ pkgs ? import {} }: - -let - isDarwin = pkgs.stdenv.isDarwin; - isLinux = pkgs.stdenv.isLinux; - - commonBuildInputs = with pkgs; [ - nodejs_24 - nodePackages.pnpm - git - curl - ]; - - playwrightCommonLibs = with pkgs; [ - glib - nss - nspr - dbus - atk - at-spi2-atk - at-spi2-core - cups - expat - libxkbcommon - cairo - pango - fontconfig - freetype - harfbuzz - icu - libpng - gnutls - ]; - - playwrightLinuxSpecificLibs = with pkgs; [ - glibc - libgcc - xorg.libX11 - xorg.libxcb - xorg.libXext - xorg.libXfixes - xorg.libXrandr - xorg.libXcomposite - xorg.libXdamage - xorg.libXcursor - xorg.libXi - xorg.libXrender - xorg.libXtst - mesa - libglvnd - libdrm - udev - alsa-lib - ]; - - playwrightSelfDownloadLibs = playwrightCommonLibs ++ (if isLinux then playwrightLinuxSpecificLibs else []); - - playwrightLibPath = pkgs.lib.makeBinPath playwrightSelfDownloadLibs; - -in -pkgs.mkShell { - buildInputs = commonBuildInputs ++ ( - if isDarwin - then playwrightCommonLibs - else [ pkgs.chromium ] ++ playwrightSelfDownloadLibs - ); - - shellHook = '' - echo "🚀 atridotdad development environment loaded!" - echo "Node version: $(node --version)" - echo "pnpm version: $(pnpm --version)" - - ${if isDarwin then '' - echo "Chromium path: Playwright will download its own for macOS" - export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=0 - export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=false - - export LD_LIBRARY_PATH="${playwrightLibPath}:$LD_LIBRARY_PATH" - - PLAYWRIGHT_BROWSERS_PATH="$HOME/.cache/ms-playwright" - if [ ! -d "$PLAYWRIGHT_BROWSERS_PATH" ] || [ -z "$(ls -A "$PLAYWRIGHT_BROWSERS_PATH")" ]; then - echo "🌐 Installing Playwright browsers (for macOS)..." - pnpm exec playwright install - else - echo "✅ Playwright browsers already installed (for macOS)." - fi - '' else if isLinux then '' - echo "Chromium path: ${pkgs.chromium}/bin/chromium" - export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 - export PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH="${pkgs.chromium}/bin/chromium" - export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true - export PUPPETEER_EXECUTABLE_PATH="${pkgs.chromium}/bin/chromium" - '' else '' - echo "Unsupported OS detected." - ''} - - if [ ! -d "node_modules" ]; then - echo "📦 Installing pnpm dependencies..." - pnpm install - fi - ''; - - PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD = if isDarwin then "0" else "1"; - PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH = if isDarwin then null else "${pkgs.chromium}/bin/chromium"; - PUPPETEER_SKIP_CHROMIUM_DOWNLOAD = if isDarwin then "false" else "true"; - PUPPETEER_EXECUTABLE_PATH = if isDarwin then null else "${pkgs.chromium}/bin/chromium"; -} \ No newline at end of file