IFD-embracing Nix expression to import pnpm-lock.yaml files in Nix derivations
nixpkgs nix flake pnpm
3
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat(checks): add example using node-gyp

As many projects utilize post-install scripts, this is provides an
example as well as a check to make sure these work with our setup
script.

Users of iplConfigHook should probably run `pnpm rebuild --pending`
during buildPhase, if install scripts are required for the build in
question.

For that additional documentation is added in this commit.

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>

authored by

Sefa Eyeoglu and committed by tangled.org 2032e2d7 934c5fc0

+619
+5
README.md
··· 128 128 buildPhase = '' 129 129 runHook preBuild 130 130 131 + # Optionally run install scripts of installed packages 132 + # If scripts are only needed to run for the final package, consider using `pnpm deploy` in install phase instead 133 + # --reporter append-only improves log output significantly 134 + # pnpm rebuild --pending --reporter append-only # --loglevel debug 135 + 131 136 # or any other script 132 137 pnpm run build 133 138
+6
checks/with-gyp/.gitignore
··· 1 + # SPDX-FileCopyrightText: 2026 Sefa Eyeoglu <contact@scrumplex.net> 2 + # 3 + # SPDX-License-Identifier: MIT 4 + 5 + node_modules/ 6 +
+57
checks/with-gyp/default.nix
··· 1 + # SPDX-FileCopyrightText: 2026 Sefa Eyeoglu <contact@scrumplex.net> 2 + # 3 + # SPDX-License-Identifier: MIT 4 + 5 + { 6 + importPnpmLock, 7 + iplConfigHook, 8 + lib, 9 + makeBinaryWrapper, 10 + nodejs, 11 + pnpm_10, 12 + python3Minimal, 13 + stdenv, 14 + versionCheckHook, 15 + }: 16 + stdenv.mkDerivation (finalAttrs: { 17 + pname = "with-gyp"; 18 + version = (lib.importJSON ./package.json).version; 19 + 20 + src = ./.; 21 + 22 + mitmCache = importPnpmLock { 23 + inherit (finalAttrs) pname version; 24 + lockFile = ./pnpm-lock.yaml; 25 + }; 26 + 27 + nativeBuildInputs = [ 28 + iplConfigHook 29 + nodejs 30 + pnpm_10 31 + python3Minimal 32 + makeBinaryWrapper 33 + ]; 34 + 35 + nativeInstallCheckInputs = [ 36 + versionCheckHook 37 + ]; 38 + 39 + # node-gyp would otherwise struggle to find node headers 40 + env.npm_config_nodedir = nodejs; 41 + 42 + dontBuild = true; 43 + doInstallCheck = true; 44 + 45 + installPhase = '' 46 + runHook preInstall 47 + 48 + pnpm deploy --filter=with-gyp... $out/lib/with-gyp --reporter append-only --loglevel debug 49 + 50 + makeWrapper ${lib.getExe nodejs} $out/bin/re2-test \ 51 + --add-flags "$out/lib/with-gyp" 52 + 53 + runHook postInstall 54 + ''; 55 + 56 + meta.mainProgram = "re2-test"; 57 + })
+15
checks/with-gyp/index.js
··· 1 + // SPDX-FileCopyrightText: 2026 Sefa Eyeoglu <contact@scrumplex.net> 2 + // 3 + // SPDX-License-Identifier: MIT 4 + 5 + import RE2 from "re2"; 6 + 7 + import p from "./package.json" with { type: "json" }; 8 + 9 + const main = () => { 10 + const pattern = new RE2(/\d+\.\d+\.\d+/); 11 + console.log(pattern); 12 + console.log(p.version.match(pattern)); 13 + }; 14 + 15 + main();
+14
checks/with-gyp/package.json
··· 1 + { 2 + "name": "with-gyp", 3 + "version": "1.0.0", 4 + "type": "module", 5 + "description": "", 6 + "main": "index.js", 7 + "keywords": [], 8 + "author": "", 9 + "license": "MIT", 10 + "packageManager": "pnpm@10.30.3", 11 + "dependencies": { 12 + "re2": "^1.23.3" 13 + } 14 + }
+3
checks/with-gyp/package.json.license
··· 1 + SPDX-FileCopyrightText: 2026 Sefa Eyeoglu <contact@scrumplex.net> 2 + 3 + SPDX-License-Identifier: MIT
+508
checks/with-gyp/pnpm-lock.yaml
··· 1 + # SPDX-FileCopyrightText: 2026 Sefa Eyeoglu <contact@scrumplex.net> 2 + # 3 + # SPDX-License-Identifier: MIT 4 + 5 + lockfileVersion: '9.0' 6 + 7 + settings: 8 + autoInstallPeers: true 9 + excludeLinksFromLockfile: false 10 + injectWorkspacePackages: true 11 + 12 + importers: 13 + 14 + .: 15 + dependencies: 16 + re2: 17 + specifier: ^1.23.3 18 + version: 1.23.3 19 + 20 + packages: 21 + 22 + '@gar/promise-retry@1.0.2': 23 + resolution: {integrity: sha512-Lm/ZLhDZcBECta3TmCQSngiQykFdfw+QtI1/GYMsZd4l3nG+P8WLB16XuS7WaBGLQ+9E+cOcWQsth9cayuGt8g==} 24 + engines: {node: ^20.17.0 || >=22.9.0} 25 + 26 + '@isaacs/fs-minipass@4.0.1': 27 + resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} 28 + engines: {node: '>=18.0.0'} 29 + 30 + '@npmcli/agent@4.0.0': 31 + resolution: {integrity: sha512-kAQTcEN9E8ERLVg5AsGwLNoFb+oEG6engbqAU2P43gD4JEIkNGMHdVQ096FsOAAYpZPB0RSt0zgInKIAS1l5QA==} 32 + engines: {node: ^20.17.0 || >=22.9.0} 33 + 34 + '@npmcli/fs@5.0.0': 35 + resolution: {integrity: sha512-7OsC1gNORBEawOa5+j2pXN9vsicaIOH5cPXxoR6fJOmH6/EXpJB2CajXOu1fPRFun2m1lktEFX11+P89hqO/og==} 36 + engines: {node: ^20.17.0 || >=22.9.0} 37 + 38 + '@npmcli/redact@4.0.0': 39 + resolution: {integrity: sha512-gOBg5YHMfZy+TfHArfVogwgfBeQnKbbGo3pSUyK/gSI0AVu+pEiDVcKlQb0D8Mg1LNRZILZ6XG8I5dJ4KuAd9Q==} 40 + engines: {node: ^20.17.0 || >=22.9.0} 41 + 42 + abbrev@4.0.0: 43 + resolution: {integrity: sha512-a1wflyaL0tHtJSmLSOVybYhy22vRih4eduhhrkcjgrWGnRfrZtovJ2FRjxuTtkkj47O/baf0R86QU5OuYpz8fA==} 44 + engines: {node: ^20.17.0 || >=22.9.0} 45 + 46 + agent-base@7.1.4: 47 + resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} 48 + engines: {node: '>= 14'} 49 + 50 + balanced-match@4.0.4: 51 + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} 52 + engines: {node: 18 || 20 || >=22} 53 + 54 + brace-expansion@5.0.4: 55 + resolution: {integrity: sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==} 56 + engines: {node: 18 || 20 || >=22} 57 + 58 + cacache@20.0.4: 59 + resolution: {integrity: sha512-M3Lab8NPYlZU2exsL3bMVvMrMqgwCnMWfdZbK28bn3pK6APT/Te/I8hjRPNu1uwORY9a1eEQoifXbKPQMfMTOA==} 60 + engines: {node: ^20.17.0 || >=22.9.0} 61 + 62 + chownr@3.0.0: 63 + resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} 64 + engines: {node: '>=18'} 65 + 66 + debug@4.4.3: 67 + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} 68 + engines: {node: '>=6.0'} 69 + peerDependencies: 70 + supports-color: '*' 71 + peerDependenciesMeta: 72 + supports-color: 73 + optional: true 74 + 75 + env-paths@2.2.1: 76 + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} 77 + engines: {node: '>=6'} 78 + 79 + exponential-backoff@3.1.3: 80 + resolution: {integrity: sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==} 81 + 82 + fdir@6.5.0: 83 + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} 84 + engines: {node: '>=12.0.0'} 85 + peerDependencies: 86 + picomatch: ^3 || ^4 87 + peerDependenciesMeta: 88 + picomatch: 89 + optional: true 90 + 91 + fs-minipass@3.0.3: 92 + resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} 93 + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 94 + 95 + glob@13.0.6: 96 + resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} 97 + engines: {node: 18 || 20 || >=22} 98 + 99 + graceful-fs@4.2.11: 100 + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 101 + 102 + http-cache-semantics@4.2.0: 103 + resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} 104 + 105 + http-proxy-agent@7.0.2: 106 + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} 107 + engines: {node: '>= 14'} 108 + 109 + https-proxy-agent@7.0.6: 110 + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} 111 + engines: {node: '>= 14'} 112 + 113 + iconv-lite@0.7.2: 114 + resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} 115 + engines: {node: '>=0.10.0'} 116 + 117 + install-artifact-from-github@1.4.0: 118 + resolution: {integrity: sha512-+y6WywKZREw5rq7U2jvr2nmZpT7cbWbQQ0N/qfcseYnzHFz2cZz1Et52oY+XttYuYeTkI8Y+R2JNWj68MpQFSg==} 119 + hasBin: true 120 + 121 + ip-address@10.1.0: 122 + resolution: {integrity: sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==} 123 + engines: {node: '>= 12'} 124 + 125 + isexe@4.0.0: 126 + resolution: {integrity: sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==} 127 + engines: {node: '>=20'} 128 + 129 + lru-cache@11.2.7: 130 + resolution: {integrity: sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==} 131 + engines: {node: 20 || >=22} 132 + 133 + make-fetch-happen@15.0.5: 134 + resolution: {integrity: sha512-uCbIa8jWWmQZt4dSnEStkVC6gdakiinAm4PiGsywIkguF0eWMdcjDz0ECYhUolFU3pFLOev9VNPCEygydXnddg==} 135 + engines: {node: ^20.17.0 || >=22.9.0} 136 + 137 + minimatch@10.2.4: 138 + resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} 139 + engines: {node: 18 || 20 || >=22} 140 + 141 + minipass-collect@2.0.1: 142 + resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==} 143 + engines: {node: '>=16 || 14 >=14.17'} 144 + 145 + minipass-fetch@5.0.2: 146 + resolution: {integrity: sha512-2d0q2a8eCi2IRg/IGubCNRJoYbA1+YPXAzQVRFmB45gdGZafyivnZ5YSEfo3JikbjGxOdntGFvBQGqaSMXlAFQ==} 147 + engines: {node: ^20.17.0 || >=22.9.0} 148 + 149 + minipass-flush@1.0.5: 150 + resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} 151 + engines: {node: '>= 8'} 152 + 153 + minipass-pipeline@1.2.4: 154 + resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} 155 + engines: {node: '>=8'} 156 + 157 + minipass-sized@2.0.0: 158 + resolution: {integrity: sha512-zSsHhto5BcUVM2m1LurnXY6M//cGhVaegT71OfOXoprxT6o780GZd792ea6FfrQkuU4usHZIUczAQMRUE2plzA==} 159 + engines: {node: '>=8'} 160 + 161 + minipass@3.3.6: 162 + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} 163 + engines: {node: '>=8'} 164 + 165 + minipass@7.1.3: 166 + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} 167 + engines: {node: '>=16 || 14 >=14.17'} 168 + 169 + minizlib@3.1.0: 170 + resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} 171 + engines: {node: '>= 18'} 172 + 173 + ms@2.1.3: 174 + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 175 + 176 + nan@2.26.2: 177 + resolution: {integrity: sha512-0tTvBTYkt3tdGw22nrAy50x7gpbGCCFH3AFcyS5WiUu7Eu4vWlri1woE6qHBSfy11vksDqkiwjOnlR7WV8G1Hw==} 178 + 179 + negotiator@1.0.0: 180 + resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} 181 + engines: {node: '>= 0.6'} 182 + 183 + node-gyp@12.2.0: 184 + resolution: {integrity: sha512-q23WdzrQv48KozXlr0U1v9dwO/k59NHeSzn6loGcasyf0UnSrtzs8kRxM+mfwJSf0DkX0s43hcqgnSO4/VNthQ==} 185 + engines: {node: ^20.17.0 || >=22.9.0} 186 + hasBin: true 187 + 188 + nopt@9.0.0: 189 + resolution: {integrity: sha512-Zhq3a+yFKrYwSBluL4H9XP3m3y5uvQkB/09CwDruCiRmR/UJYnn9W4R48ry0uGC70aeTPKLynBtscP9efFFcPw==} 190 + engines: {node: ^20.17.0 || >=22.9.0} 191 + hasBin: true 192 + 193 + p-map@7.0.4: 194 + resolution: {integrity: sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==} 195 + engines: {node: '>=18'} 196 + 197 + path-scurry@2.0.2: 198 + resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} 199 + engines: {node: 18 || 20 || >=22} 200 + 201 + picomatch@4.0.3: 202 + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} 203 + engines: {node: '>=12'} 204 + 205 + proc-log@6.1.0: 206 + resolution: {integrity: sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==} 207 + engines: {node: ^20.17.0 || >=22.9.0} 208 + 209 + re2@1.23.3: 210 + resolution: {integrity: sha512-5jh686rmj/8dYpBo72XYgwzgG8Y9HNDATYZ1x01gqZ6FvXVUP33VZ0+6GLCeavaNywz3OkXBU8iNX7LjiuisPg==} 211 + 212 + retry@0.13.1: 213 + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} 214 + engines: {node: '>= 4'} 215 + 216 + safer-buffer@2.1.2: 217 + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 218 + 219 + semver@7.7.4: 220 + resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} 221 + engines: {node: '>=10'} 222 + hasBin: true 223 + 224 + smart-buffer@4.2.0: 225 + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} 226 + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} 227 + 228 + socks-proxy-agent@8.0.5: 229 + resolution: {integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==} 230 + engines: {node: '>= 14'} 231 + 232 + socks@2.8.7: 233 + resolution: {integrity: sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==} 234 + engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} 235 + 236 + ssri@13.0.1: 237 + resolution: {integrity: sha512-QUiRf1+u9wPTL/76GTYlKttDEBWV1ga9ZXW8BG6kfdeyyM8LGPix9gROyg9V2+P0xNyF3X2Go526xKFdMZrHSQ==} 238 + engines: {node: ^20.17.0 || >=22.9.0} 239 + 240 + tar@7.5.11: 241 + resolution: {integrity: sha512-ChjMH33/KetonMTAtpYdgUFr0tbz69Fp2v7zWxQfYZX4g5ZN2nOBXm1R2xyA+lMIKrLKIoKAwFj93jE/avX9cQ==} 242 + engines: {node: '>=18'} 243 + 244 + tinyglobby@0.2.15: 245 + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} 246 + engines: {node: '>=12.0.0'} 247 + 248 + which@6.0.1: 249 + resolution: {integrity: sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==} 250 + engines: {node: ^20.17.0 || >=22.9.0} 251 + hasBin: true 252 + 253 + yallist@4.0.0: 254 + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 255 + 256 + yallist@5.0.0: 257 + resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} 258 + engines: {node: '>=18'} 259 + 260 + snapshots: 261 + 262 + '@gar/promise-retry@1.0.2': 263 + dependencies: 264 + retry: 0.13.1 265 + 266 + '@isaacs/fs-minipass@4.0.1': 267 + dependencies: 268 + minipass: 7.1.3 269 + 270 + '@npmcli/agent@4.0.0': 271 + dependencies: 272 + agent-base: 7.1.4 273 + http-proxy-agent: 7.0.2 274 + https-proxy-agent: 7.0.6 275 + lru-cache: 11.2.7 276 + socks-proxy-agent: 8.0.5 277 + transitivePeerDependencies: 278 + - supports-color 279 + 280 + '@npmcli/fs@5.0.0': 281 + dependencies: 282 + semver: 7.7.4 283 + 284 + '@npmcli/redact@4.0.0': {} 285 + 286 + abbrev@4.0.0: {} 287 + 288 + agent-base@7.1.4: {} 289 + 290 + balanced-match@4.0.4: {} 291 + 292 + brace-expansion@5.0.4: 293 + dependencies: 294 + balanced-match: 4.0.4 295 + 296 + cacache@20.0.4: 297 + dependencies: 298 + '@npmcli/fs': 5.0.0 299 + fs-minipass: 3.0.3 300 + glob: 13.0.6 301 + lru-cache: 11.2.7 302 + minipass: 7.1.3 303 + minipass-collect: 2.0.1 304 + minipass-flush: 1.0.5 305 + minipass-pipeline: 1.2.4 306 + p-map: 7.0.4 307 + ssri: 13.0.1 308 + 309 + chownr@3.0.0: {} 310 + 311 + debug@4.4.3: 312 + dependencies: 313 + ms: 2.1.3 314 + 315 + env-paths@2.2.1: {} 316 + 317 + exponential-backoff@3.1.3: {} 318 + 319 + fdir@6.5.0(picomatch@4.0.3): 320 + optionalDependencies: 321 + picomatch: 4.0.3 322 + 323 + fs-minipass@3.0.3: 324 + dependencies: 325 + minipass: 7.1.3 326 + 327 + glob@13.0.6: 328 + dependencies: 329 + minimatch: 10.2.4 330 + minipass: 7.1.3 331 + path-scurry: 2.0.2 332 + 333 + graceful-fs@4.2.11: {} 334 + 335 + http-cache-semantics@4.2.0: {} 336 + 337 + http-proxy-agent@7.0.2: 338 + dependencies: 339 + agent-base: 7.1.4 340 + debug: 4.4.3 341 + transitivePeerDependencies: 342 + - supports-color 343 + 344 + https-proxy-agent@7.0.6: 345 + dependencies: 346 + agent-base: 7.1.4 347 + debug: 4.4.3 348 + transitivePeerDependencies: 349 + - supports-color 350 + 351 + iconv-lite@0.7.2: 352 + dependencies: 353 + safer-buffer: 2.1.2 354 + optional: true 355 + 356 + install-artifact-from-github@1.4.0: {} 357 + 358 + ip-address@10.1.0: {} 359 + 360 + isexe@4.0.0: {} 361 + 362 + lru-cache@11.2.7: {} 363 + 364 + make-fetch-happen@15.0.5: 365 + dependencies: 366 + '@gar/promise-retry': 1.0.2 367 + '@npmcli/agent': 4.0.0 368 + '@npmcli/redact': 4.0.0 369 + cacache: 20.0.4 370 + http-cache-semantics: 4.2.0 371 + minipass: 7.1.3 372 + minipass-fetch: 5.0.2 373 + minipass-flush: 1.0.5 374 + minipass-pipeline: 1.2.4 375 + negotiator: 1.0.0 376 + proc-log: 6.1.0 377 + ssri: 13.0.1 378 + transitivePeerDependencies: 379 + - supports-color 380 + 381 + minimatch@10.2.4: 382 + dependencies: 383 + brace-expansion: 5.0.4 384 + 385 + minipass-collect@2.0.1: 386 + dependencies: 387 + minipass: 7.1.3 388 + 389 + minipass-fetch@5.0.2: 390 + dependencies: 391 + minipass: 7.1.3 392 + minipass-sized: 2.0.0 393 + minizlib: 3.1.0 394 + optionalDependencies: 395 + iconv-lite: 0.7.2 396 + 397 + minipass-flush@1.0.5: 398 + dependencies: 399 + minipass: 3.3.6 400 + 401 + minipass-pipeline@1.2.4: 402 + dependencies: 403 + minipass: 3.3.6 404 + 405 + minipass-sized@2.0.0: 406 + dependencies: 407 + minipass: 7.1.3 408 + 409 + minipass@3.3.6: 410 + dependencies: 411 + yallist: 4.0.0 412 + 413 + minipass@7.1.3: {} 414 + 415 + minizlib@3.1.0: 416 + dependencies: 417 + minipass: 7.1.3 418 + 419 + ms@2.1.3: {} 420 + 421 + nan@2.26.2: {} 422 + 423 + negotiator@1.0.0: {} 424 + 425 + node-gyp@12.2.0: 426 + dependencies: 427 + env-paths: 2.2.1 428 + exponential-backoff: 3.1.3 429 + graceful-fs: 4.2.11 430 + make-fetch-happen: 15.0.5 431 + nopt: 9.0.0 432 + proc-log: 6.1.0 433 + semver: 7.7.4 434 + tar: 7.5.11 435 + tinyglobby: 0.2.15 436 + which: 6.0.1 437 + transitivePeerDependencies: 438 + - supports-color 439 + 440 + nopt@9.0.0: 441 + dependencies: 442 + abbrev: 4.0.0 443 + 444 + p-map@7.0.4: {} 445 + 446 + path-scurry@2.0.2: 447 + dependencies: 448 + lru-cache: 11.2.7 449 + minipass: 7.1.3 450 + 451 + picomatch@4.0.3: {} 452 + 453 + proc-log@6.1.0: {} 454 + 455 + re2@1.23.3: 456 + dependencies: 457 + install-artifact-from-github: 1.4.0 458 + nan: 2.26.2 459 + node-gyp: 12.2.0 460 + transitivePeerDependencies: 461 + - supports-color 462 + 463 + retry@0.13.1: {} 464 + 465 + safer-buffer@2.1.2: 466 + optional: true 467 + 468 + semver@7.7.4: {} 469 + 470 + smart-buffer@4.2.0: {} 471 + 472 + socks-proxy-agent@8.0.5: 473 + dependencies: 474 + agent-base: 7.1.4 475 + debug: 4.4.3 476 + socks: 2.8.7 477 + transitivePeerDependencies: 478 + - supports-color 479 + 480 + socks@2.8.7: 481 + dependencies: 482 + ip-address: 10.1.0 483 + smart-buffer: 4.2.0 484 + 485 + ssri@13.0.1: 486 + dependencies: 487 + minipass: 7.1.3 488 + 489 + tar@7.5.11: 490 + dependencies: 491 + '@isaacs/fs-minipass': 4.0.1 492 + chownr: 3.0.0 493 + minipass: 7.1.3 494 + minizlib: 3.1.0 495 + yallist: 5.0.0 496 + 497 + tinyglobby@0.2.15: 498 + dependencies: 499 + fdir: 6.5.0(picomatch@4.0.3) 500 + picomatch: 4.0.3 501 + 502 + which@6.0.1: 503 + dependencies: 504 + isexe: 4.0.0 505 + 506 + yallist@4.0.0: {} 507 + 508 + yallist@5.0.0: {}
+8
checks/with-gyp/pnpm-workspace.yaml
··· 1 + # SPDX-FileCopyrightText: 2026 Sefa Eyeoglu <contact@scrumplex.net> 2 + # 3 + # SPDX-License-Identifier: MIT 4 + 5 + onlyBuiltDependencies: 6 + - re2 7 + 8 + injectWorkspacePackages: true
+3
flake.nix
··· 53 53 reuse = pkgs.callPackage ./checks/reuse.nix { 54 54 inherit self; 55 55 }; 56 + with-gyp = pkgs.callPackage ./checks/with-gyp { 57 + inherit (ourPackages) importPnpmLock iplConfigHook; 58 + }; 56 59 } 57 60 ); 58 61 };