{"_id":"@bobfrankston/freezepak","_rev":"9-45833780f2de47bb4bf0b06849484eb2","name":"@bobfrankston/freezepak","dist-tags":{"latest":"0.1.9"},"versions":{"0.1.1":{"name":"@bobfrankston/freezepak","version":"0.1.1","keywords":["freeze","dependencies","symlink","junction","node_modules","deploy"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/freezepak@0.1.1","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/freezepak#readme","bugs":{"url":"https://github.com/BobFrankston/freezepak/issues"},"bin":{"freezepak":"index.js"},"dist":{"shasum":"0310c5260d753b6ff8b3a0aa04557843de7c525b","tarball":"https://registry.npmjs.org/@bobfrankston/freezepak/-/freezepak-0.1.1.tgz","fileCount":3,"integrity":"sha512-HU3MXBLStBs6MDZHR3CMAnM+e5XrtDxJL/pHKD3ibd+J/nj8XmFjmyO73IX/drRLd+J0971EatR4ojpD+efoJA==","signatures":[{"sig":"MEUCIQDH4/LJuoTz+VX16gr9wcjhHW+BslZjQejTZey0kioLSQIgSSlsouDa5dRAfnzakTkY57D9oLrxESo8y1oiY3koOgU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8198},"main":"index.js","type":"module","_from":"file:bobfrankston-freezepak-0.1.1.tgz","types":"./index.d.ts","scripts":{"build":"tsc","watch":"tsc -w","release":"npmglobalize","installer":"npm run release && npm install -g .","preversion":"npm run build","postversion":"echo Version updated to $(node -p \"require('./package.json').version\")"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_resolved":"y:\\dev\\utils\\freezepak\\bobfrankston-freezepak-0.1.1.tgz","_integrity":"sha512-HU3MXBLStBs6MDZHR3CMAnM+e5XrtDxJL/pHKD3ibd+J/nj8XmFjmyO73IX/drRLd+J0971EatR4ojpD+efoJA==","repository":{"url":"git+https://github.com/BobFrankston/freezepak.git","type":"git"},"_npmVersion":"11.7.0","description":"Freeze/unfreeze node_modules — replace symlinks/junctions with real copies for portable deployment","directories":{},"_nodeVersion":"25.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/freezepak_0.1.1_1773015923502_0.7074974306928634","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@bobfrankston/freezepak","version":"0.1.2","keywords":["freeze","dependencies","symlink","junction","node_modules","deploy"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/freezepak@0.1.2","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/freezepak#readme","bugs":{"url":"https://github.com/BobFrankston/freezepak/issues"},"bin":{"freezepak":"index.js"},"dist":{"shasum":"cfe97a429ad4b422ab7d55634feb094baa6618cc","tarball":"https://registry.npmjs.org/@bobfrankston/freezepak/-/freezepak-0.1.2.tgz","fileCount":4,"integrity":"sha512-axrhwsbmVnGYZQzuvdH3sSnRLzWNlbHs+aQSVNumxTIjYynKl8AMLIUo4tSWBcaYkGmwxNFSxtFUMHk37AXUCw==","signatures":[{"sig":"MEUCIDRJg2U/4+2esD5sfWBTDNNfdVJmx9208d/LECKlG0h8AiEA1JwO5Egoj/UP0e5KlYF82mzC8+mwYDi70pyWUpA+Hog=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10893},"main":"index.js","type":"module","_from":"file:bobfrankston-freezepak-0.1.2.tgz","types":"./index.d.ts","scripts":{"build":"tsc","watch":"tsc -w","release":"npmglobalize","installer":"npm run release && npm install -g .","preversion":"npm run build","postversion":"echo Version updated to $(node -p \"require('./package.json').version\")"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_resolved":"y:\\dev\\utils\\freezepak\\bobfrankston-freezepak-0.1.2.tgz","_integrity":"sha512-axrhwsbmVnGYZQzuvdH3sSnRLzWNlbHs+aQSVNumxTIjYynKl8AMLIUo4tSWBcaYkGmwxNFSxtFUMHk37AXUCw==","repository":{"url":"git+https://github.com/BobFrankston/freezepak.git","type":"git"},"_npmVersion":"11.7.0","description":"Freeze/unfreeze node_modules — replace symlinks/junctions with real copies for portable deployment","directories":{},"_nodeVersion":"25.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/freezepak_0.1.2_1773016149649_0.06246281505182005","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@bobfrankston/freezepak","version":"0.1.3","keywords":["freeze","dependencies","symlink","junction","node_modules","deploy"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/freezepak@0.1.3","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/freezepak#readme","bugs":{"url":"https://github.com/BobFrankston/freezepak/issues"},"bin":{"freezepak":"index.js"},"dist":{"shasum":"d9a2aa45b4853f7927a8e5a651a2d1a7acafe58d","tarball":"https://registry.npmjs.org/@bobfrankston/freezepak/-/freezepak-0.1.3.tgz","fileCount":5,"integrity":"sha512-k7TZ4j9trSZ1WY+8Kxj9fu17w5ZAcyg8PW6UuE1+ll3mcJfey4rzuLcMHlkAwzmGAnMvQR/WbIYwKOq48mKckQ==","signatures":[{"sig":"MEQCIAef++Q6NOkaVwOKrKyDqY70mNig2qrrakdilXDV9xzUAiBVSHXwTm57Ph4rZfzzw+zTLtj2qFFRourbwMCCPpAeQg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13675},"main":"index.js","type":"module","_from":"file:bobfrankston-freezepak-0.1.3.tgz","types":"./index.d.ts","scripts":{"build":"tsc","watch":"tsc -w","release":"npmglobalize","installer":"npm run release && npm install -g .","preversion":"npm run build","postversion":"echo Version updated to $(node -p \"require('./package.json').version\")"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_resolved":"Y:\\dev\\utils\\freezepak\\bobfrankston-freezepak-0.1.3.tgz","_integrity":"sha512-k7TZ4j9trSZ1WY+8Kxj9fu17w5ZAcyg8PW6UuE1+ll3mcJfey4rzuLcMHlkAwzmGAnMvQR/WbIYwKOq48mKckQ==","repository":{"url":"git+https://github.com/BobFrankston/freezepak.git","type":"git"},"_npmVersion":"11.7.0","description":"Freeze/unfreeze node_modules — replace symlinks/junctions with real copies for portable deployment","directories":{},"_nodeVersion":"25.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/freezepak_0.1.3_1773591013417_0.6367746102219212","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@bobfrankston/freezepak","version":"0.1.4","keywords":["freeze","dependencies","symlink","junction","node_modules","deploy"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/freezepak@0.1.4","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/freezepak#readme","bugs":{"url":"https://github.com/BobFrankston/freezepak/issues"},"bin":{"freezepak":"index.js"},"dist":{"shasum":"97932a04057a95414681baddf9fa108b4b7b10c1","tarball":"https://registry.npmjs.org/@bobfrankston/freezepak/-/freezepak-0.1.4.tgz","fileCount":4,"integrity":"sha512-K48G7+vNDUjbfNhHhjFPHwjB45xEMHnJ6/kNxR3NCgbJYOm/3P8LPn959maCWts8MXcqX8+otGV2PXeYdB2Z5A==","signatures":[{"sig":"MEQCICa5tTE60QZHnUza1OQ9HveF7HoGBTLMmgrX0sWRFftVAiAoxCSxJv+BWIikQtdYWedfPZp9XwE2aa2SCC+yTuO5lA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14947},"main":"index.js","type":"module","_from":"file:bobfrankston-freezepak-0.1.4.tgz","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.js"}},"scripts":{"build":"tsc","watch":"tsc -w","release":"npmglobalize","installer":"npm run release && npm install -g .","preversion":"npm run build","postversion":"echo Version updated to $(node -p \"require('./package.json').version\")"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_resolved":"Y:\\dev\\utils\\freezepak\\bobfrankston-freezepak-0.1.4.tgz","_integrity":"sha512-K48G7+vNDUjbfNhHhjFPHwjB45xEMHnJ6/kNxR3NCgbJYOm/3P8LPn959maCWts8MXcqX8+otGV2PXeYdB2Z5A==","repository":{"url":"git+https://github.com/BobFrankston/freezepak.git","type":"git"},"_npmVersion":"11.11.1","description":"Freeze/unfreeze node_modules — replace symlinks/junctions with real copies for portable deployment","directories":{},"_nodeVersion":"25.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/freezepak_0.1.4_1774205464444_0.3288053804942821","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@bobfrankston/freezepak","version":"0.1.5","keywords":["freeze","dependencies","symlink","junction","node_modules","deploy"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/freezepak@0.1.5","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/freezepak#readme","bugs":{"url":"https://github.com/BobFrankston/freezepak/issues"},"bin":{"freezepak":"index.js"},"dist":{"shasum":"20ffd6a0a851f1cd3f4f8493351153e968e8f283","tarball":"https://registry.npmjs.org/@bobfrankston/freezepak/-/freezepak-0.1.5.tgz","fileCount":4,"integrity":"sha512-FRgQHfVhc4KyGwW9lhTej3oRgENiGpLi0ZeKTsrUk8+rogMt3beS7p5vVnrn9QDc8MAQcJPe+QSvZrgLH6Hxbw==","signatures":[{"sig":"MEUCIE1NygbAXVzHwI4TONGMPsO4bAFkKoYvYUJgmLvqzbHeAiEA86an4pEHr8RcpX72cP0GYZaxmr6wu7AfnDSwnJQSR7A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14947},"main":"index.js","type":"module","_from":"file:bobfrankston-freezepak-0.1.5.tgz","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.js"}},"scripts":{"build":"tsc","watch":"tsc -w","release":"npmglobalize","installer":"npm run release && npm install -g .","preversion":"npm run build","postversion":"echo Version updated to $(node -p \"require('./package.json').version\")"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_resolved":"Y:\\dev\\utils\\freezepak\\bobfrankston-freezepak-0.1.5.tgz","_integrity":"sha512-FRgQHfVhc4KyGwW9lhTej3oRgENiGpLi0ZeKTsrUk8+rogMt3beS7p5vVnrn9QDc8MAQcJPe+QSvZrgLH6Hxbw==","repository":{"url":"git+https://github.com/BobFrankston/freezepak.git","type":"git"},"_npmVersion":"11.11.1","description":"Freeze/unfreeze node_modules — replace symlinks/junctions with real copies for portable deployment","directories":{},"_nodeVersion":"25.8.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/freezepak_0.1.5_1775007610816_0.7479088715223468","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@bobfrankston/freezepak","version":"0.1.6","keywords":["freeze","dependencies","symlink","junction","node_modules","deploy"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/freezepak@0.1.6","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/freezepak#readme","bugs":{"url":"https://github.com/BobFrankston/freezepak/issues"},"bin":{"freezepak":"index.js"},"dist":{"shasum":"641ae19ca22375d7b8b49f8991d4a475d064a081","tarball":"https://registry.npmjs.org/@bobfrankston/freezepak/-/freezepak-0.1.6.tgz","fileCount":4,"integrity":"sha512-WWUNGerIJSBXqz6gLzyrCry0pWtQFTxsxhy5tG5NooPouQiGws5fnGOHxu4FgJHbl1C89MISlakYnndJ2dgqFw==","signatures":[{"sig":"MEUCICXSYOYym52RfVkZ8qBn+MDH99nezKk/sJu8x02BGpv0AiEAo8HZxKO9t8zFrbuFYtldDV00XKi6lk2iLszeu1vK/lM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14947},"main":"index.js","type":"module","_from":"file:bobfrankston-freezepak-0.1.6.tgz","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.js"}},"scripts":{"build":"tsc","watch":"tsc -w","release":"npmglobalize","installer":"npm run release && npm install -g .","preversion":"npm run build","postversion":"echo Version updated to $(node -p \"require('./package.json').version\")"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_resolved":"Y:\\dev\\utils\\freezepak\\bobfrankston-freezepak-0.1.6.tgz","_integrity":"sha512-WWUNGerIJSBXqz6gLzyrCry0pWtQFTxsxhy5tG5NooPouQiGws5fnGOHxu4FgJHbl1C89MISlakYnndJ2dgqFw==","repository":{"url":"git+https://github.com/BobFrankston/freezepak.git","type":"git"},"_npmVersion":"11.11.1","description":"Freeze/unfreeze node_modules — replace symlinks/junctions with real copies for portable deployment","directories":{},"_nodeVersion":"25.8.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/freezepak_0.1.6_1775252812669_0.21452828308183514","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@bobfrankston/freezepak","version":"0.1.7","keywords":["freeze","dependencies","symlink","junction","node_modules","deploy"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/freezepak@0.1.7","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/freezepak#readme","bugs":{"url":"https://github.com/BobFrankston/freezepak/issues"},"bin":{"freezepak":"index.js"},"dist":{"shasum":"0f7728c8c2ad7bf8864599a545ea59296b682da9","tarball":"https://registry.npmjs.org/@bobfrankston/freezepak/-/freezepak-0.1.7.tgz","fileCount":4,"integrity":"sha512-GvrAmaDwIt1Veb0zyeEQZz/u/DbkzD6I9wV5PMLTZUWghowSWSoPLywmACiIjJK8Blus22zqfRmM8W0qVNpYgA==","signatures":[{"sig":"MEQCIDyB3iz8m1XiHyUCegVtDf2DFTTwXcapXVdHKnRk05prAiAkfNr/hp6MrQsL2/WMs7vau1vFcv5VMcs/lqSqpP2blA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14947},"main":"index.js","type":"module","_from":"file:bobfrankston-freezepak-0.1.7.tgz","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.js"}},"scripts":{"build":"tsc","watch":"tsc -w","release":"npmglobalize","installer":"npm run release && npm install -g .","preversion":"npm run build","postversion":"echo Version updated to $(node -p \"require('./package.json').version\")"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_resolved":"Y:\\dev\\utils\\freezepak\\bobfrankston-freezepak-0.1.7.tgz","_integrity":"sha512-GvrAmaDwIt1Veb0zyeEQZz/u/DbkzD6I9wV5PMLTZUWghowSWSoPLywmACiIjJK8Blus22zqfRmM8W0qVNpYgA==","repository":{"url":"git+https://github.com/BobFrankston/freezepak.git","type":"git"},"_npmVersion":"11.11.1","description":"Freeze/unfreeze node_modules — replace symlinks/junctions with real copies for portable deployment","directories":{},"_nodeVersion":"25.8.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/freezepak_0.1.7_1775847954491_0.7136812895880043","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@bobfrankston/freezepak","version":"0.1.8","keywords":["freeze","dependencies","symlink","junction","node_modules","deploy"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/freezepak@0.1.8","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/freezepak#readme","bugs":{"url":"https://github.com/BobFrankston/freezepak/issues"},"bin":{"freezepak":"index.js"},"dist":{"shasum":"a35dc8379e5b6e8810765595cff014ff09f7d03a","tarball":"https://registry.npmjs.org/@bobfrankston/freezepak/-/freezepak-0.1.8.tgz","fileCount":4,"integrity":"sha512-LYL2O6sJOEkS4383VCCslEgPSjS+fo7xZPjbYrt3YY/xThn9wgKAtBgSWzr7vNCwFCzvNuKo7dyjgj5ziA4Ccw==","signatures":[{"sig":"MEUCIHHIZVtPgS8CsdU9FSlJv4xbRxluMy4rD1UN1m13L2j8AiEAxS3hIY9IlfbUlNI+cx393pGJfs68NPwl3dsTof5661A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14947},"main":"index.js","type":"module","_from":"file:bobfrankston-freezepak-0.1.8.tgz","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.js"}},"scripts":{"build":"tsc","watch":"tsc -w","release":"npmglobalize","installer":"npm run release && npm install -g .","preversion":"npm run build","postversion":"echo Version updated to $(node -p \"require('./package.json').version\")"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_resolved":"Y:\\dev\\utils\\freezepak\\bobfrankston-freezepak-0.1.8.tgz","_integrity":"sha512-LYL2O6sJOEkS4383VCCslEgPSjS+fo7xZPjbYrt3YY/xThn9wgKAtBgSWzr7vNCwFCzvNuKo7dyjgj5ziA4Ccw==","repository":{"url":"git+https://github.com/BobFrankston/freezepak.git","type":"git"},"_npmVersion":"11.12.1","description":"Freeze/unfreeze node_modules — replace symlinks/junctions with real copies for portable deployment","directories":{},"_nodeVersion":"25.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/freezepak_0.1.8_1777246392743_0.6874260296801968","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@bobfrankston/freezepak","version":"0.1.9","description":"Freeze/unfreeze node_modules — replace symlinks/junctions with real copies for portable deployment","main":"index.js","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.js"}},"bin":{"freezepak":"index.js"},"type":"module","scripts":{"build":"tsc","watch":"tsc -w","preversion":"npm run build","postversion":"echo Version updated to $(node -p \"require('./package.json').version\")","release":"npmglobalize","installer":"npm run release && npm install -g ."},"keywords":["freeze","dependencies","symlink","junction","node_modules","deploy"],"author":{"name":"Bob Frankston"},"license":"MIT","devDependencies":{"@types/node":"^25.3.0"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/BobFrankston/freezepak.git"},"_id":"@bobfrankston/freezepak@0.1.9","bugs":{"url":"https://github.com/BobFrankston/freezepak/issues"},"homepage":"https://github.com/BobFrankston/freezepak#readme","_integrity":"sha512-mWgBFXUtAY3xYvrM9AitTCuMYNuRIkPHsrujGBqADSvDhylZD2LDIaSKPEnqev3mtOZU1L1rIA7ZHulxSwKCUA==","_resolved":"Y:\\dev\\utils\\freezepak\\bobfrankston-freezepak-0.1.9.tgz","_from":"file:bobfrankston-freezepak-0.1.9.tgz","_nodeVersion":"26.1.0","_npmVersion":"11.14.1","dist":{"integrity":"sha512-mWgBFXUtAY3xYvrM9AitTCuMYNuRIkPHsrujGBqADSvDhylZD2LDIaSKPEnqev3mtOZU1L1rIA7ZHulxSwKCUA==","shasum":"98ed95ee124593bfb36bdb554917d5210e0eee04","tarball":"https://registry.npmjs.org/@bobfrankston/freezepak/-/freezepak-0.1.9.tgz","fileCount":4,"unpackedSize":14947,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCfl4VNPnXC1WrIRe5vDiSqWXaug7mT1QYwwbNrNegmsAIgfFELXpC/Ju69PiiTgzqc4+xC/YmT2Zzin6GPA1qIz8o="}]},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"directories":{},"maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/freezepak_0.1.9_1780970255123_0.03177480409456068"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-09T00:25:23.446Z","modified":"2026-06-09T01:57:35.391Z","0.1.1":"2026-03-09T00:25:23.640Z","0.1.2":"2026-03-09T00:29:09.796Z","0.1.3":"2026-03-15T16:10:13.586Z","0.1.4":"2026-03-22T18:51:04.600Z","0.1.5":"2026-04-01T01:40:10.951Z","0.1.6":"2026-04-03T21:46:52.822Z","0.1.7":"2026-04-10T19:05:54.636Z","0.1.8":"2026-04-26T23:33:12.913Z","0.1.9":"2026-06-09T01:57:35.253Z"},"bugs":{"url":"https://github.com/BobFrankston/freezepak/issues"},"author":{"name":"Bob Frankston"},"license":"MIT","homepage":"https://github.com/BobFrankston/freezepak#readme","keywords":["freeze","dependencies","symlink","junction","node_modules","deploy"],"repository":{"type":"git","url":"git+https://github.com/BobFrankston/freezepak.git"},"description":"Freeze/unfreeze node_modules — replace symlinks/junctions with real copies for portable deployment","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"readme":"# freezepak\r\n\r\nFreeze and unfreeze `node_modules` dependencies for portable deployment.\r\n\r\n## Problem\r\n\r\nWhen you use local `file:` dependencies during development, npm creates symlinks (Linux/Mac) or junctions (Windows) in `node_modules` pointing back to the source directories. This is great for development — changes are reflected immediately — but these links break when you copy or deploy the project to another machine.\r\n\r\n## Solution\r\n\r\n`freezepak --freeze` replaces every symlink/junction in `node_modules` with a real copy of the target directory. The project becomes fully self-contained and portable. It also adds a `preinstall` guard to `package.json` that blocks `npm install` from accidentally restoring the links and undoing the freeze.\r\n\r\n`freezepak --unfreeze` removes the guard and runs `npm install` to restore normal linked dependencies.\r\n\r\n## Installation\r\n\r\n```\r\nnpm install -g @bobfrankston/freezepak\r\n```\r\n\r\n## CLI Usage\r\n\r\n```\r\nfreezepak [path] --freeze      # Replace links with real copies\r\nfreezepak [path] --unfreeze    # Restore links via npm install\r\nfreezepak [path] --pack        # Freeze, pack to .tgz, then unfreeze\r\nfreezepak -v                   # Show version\r\n```\r\n\r\nThe optional `path` argument specifies the project directory (defaults to the current directory).\r\n\r\n## Library Usage\r\n\r\nfreezepak can also be imported and used programmatically:\r\n\r\n```typescript\r\nimport { freezepak, freezeDependencies, unfreezeDependencies } from '@bobfrankston/freezepak';\r\n\r\n// Freeze, create .tgz archive, then unfreeze — returns path to .tgz\r\nconst tgzPath: string = freezepak('/path/to/project');\r\n\r\n// Freeze only (replace symlinks/junctions with real copies)\r\nfreezeDependencies('/path/to/project');\r\n\r\n// Unfreeze only (remove guard, run npm install to restore links)\r\nunfreezeDependencies('/path/to/project');\r\n```\r\n\r\n## Idempotency\r\n\r\nBoth operations are idempotent — safe to run multiple times:\r\n\r\n- **`--freeze`** skips entries that are already real directories (not links). Running freeze twice on the same project just reports 0 frozen packages the second time. The preinstall guard is overwritten with the same value.\r\n\r\n- **`--unfreeze`** checks for the preinstall guard before acting. If there's no guard (already unfrozen), it reports \"nothing to unfreeze\" and exits without running `npm install`.\r\n\r\n## Reversibility\r\n\r\nThe `dependencies` field in `package.json` is never modified — your `file:` paths remain intact. This is what makes unfreeze possible: `npm install` reads those paths and recreates the links. The only `package.json` change is the `preinstall` guard in `scripts`, which unfreeze removes.\r\n\r\n## How it works\r\n\r\n### Freeze\r\n\r\n1. Walks `node_modules` (including `@scope/` directories)\r\n2. For each entry, checks if it's a symlink or junction (comparing `realpathSync` to the entry path)\r\n3. If linked: removes the link, copies the real target directory in its place via `fs.cpSync`\r\n4. Saves any existing `preinstall` script as `frozen-preinstall`\r\n5. Sets `preinstall` to a guard that blocks `npm install` with an error message\r\n\r\n### Unfreeze\r\n\r\n1. Restores the original `preinstall` script (if one was saved as `frozen-preinstall`), or removes the guard entirely\r\n2. Runs `npm install` which reads the preserved `file:` paths in `dependencies` and recreates proper symlinks/junctions\r\n\r\n## License\r\n\r\nMIT\r\n","readmeFilename":"README.md"}