{"_id":"@alibosworth/atlas-node","_rev":"10-e2106d7bf4b1d2eed85448993528836e","name":"@alibosworth/atlas-node","dist-tags":{"latest":"2026.7.26","alpha":"2026.7.12-alpha.1"},"versions":{"2026.4.30-alpha.0":{"name":"@alibosworth/atlas-node","version":"2026.4.30-alpha.0","author":{"url":"https://alibosworth.com/","name":"Ali Bosworth","email":"ali@alibosworth.com"},"license":"SEE LICENSE IN LICENSE","_id":"@alibosworth/atlas-node@2026.4.30-alpha.0","maintainers":[{"name":"alibosworth","email":"ali@alibosworth.com"}],"dist":{"shasum":"4b4742a1bd4be91731b2389c7e9ed140cd29435b","tarball":"https://registry.npmjs.org/@alibosworth/atlas-node/-/atlas-node-2026.4.30-alpha.0.tgz","fileCount":3,"integrity":"sha512-J3gsXMd+Wx7I/Ise+Owg3/keYq22YmssmLKaEog22aojavlRcxQPgs82/94TmgDT/9iQEn/F9wvt8b9zly2cGA==","signatures":[{"sig":"MEUCIQCnpebApUViuQqmjhxmVcr188WGT4fHIwYpmszJtpjk6wIgeNUuF/LirKSH2CgXAv8BgZ5DUv1vaQNf/XEKrBZ1xmk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15691},"main":"index.js","napi":{"name":"atlas-node","triples":{"defaults":true,"additional":["x86_64-unknown-linux-gnu","x86_64-pc-windows-msvc"]}},"types":"index.d.ts","gitHead":"54620fc7d9d940ecc4cbc68b34e4ec5ea2375840","scripts":{"build":"napi build --platform --release --dts index.d.ts","stage":"bash scripts/stage.sh","release":"bash scripts/release.sh","build:debug":"napi build --platform --dts index.d.ts","postinstall":"napi build --platform --release --dts index.d.ts || true","prepublishOnly":"napi build --platform --release --dts index.d.ts","build-all-platforms":"bash scripts/build-all-platforms.sh"},"_npmUser":{"name":"alibosworth","email":"ali@alibosworth.com"},"_npmVersion":"11.12.1","description":"ATLAS native Rust bindings — in-memory film negative inversion for Node.js.","directories":{},"_nodeVersion":"25.9.0","dependencies":{"@napi-rs/cli":"^2.18.0"},"_hasShrinkwrap":false,"optionalDependencies":{"@alibosworth/atlas-node-darwin-x64":"2026.4.30-alpha.0","@alibosworth/atlas-node-darwin-arm64":"2026.4.30-alpha.0","@alibosworth/atlas-node-linux-x64-gnu":"2026.4.30-alpha.0","@alibosworth/atlas-node-win32-x64-msvc":"2026.4.30-alpha.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas-node_2026.4.30-alpha.0_1777562403758_0.6138088118420983","host":"s3://npm-registry-packages-npm-production"}},"2026.4.30-alpha.1":{"name":"@alibosworth/atlas-node","version":"2026.4.30-alpha.1","author":{"url":"https://alibosworth.com/","name":"Ali Bosworth","email":"ali@alibosworth.com"},"license":"SEE LICENSE IN LICENSE","_id":"@alibosworth/atlas-node@2026.4.30-alpha.1","maintainers":[{"name":"alibosworth","email":"ali@alibosworth.com"}],"dist":{"shasum":"c5e5690703502f3b1d9b482a093b24599ba7ea7f","tarball":"https://registry.npmjs.org/@alibosworth/atlas-node/-/atlas-node-2026.4.30-alpha.1.tgz","fileCount":3,"integrity":"sha512-7/ZouqrZusJYdRs3nUMCLBd+IZNQ3K0EfYYlHyDjEZ0Ar1uoM9yoY8csBYSbJJ/VbkEVed6S2OK5IsMrTAcXsg==","signatures":[{"sig":"MEQCIDDn/IV8FKsPjDx0LoRowWmNLskvnStEg/LB9BWiKcLIAiBgLQMiKVW0Vgr3z+f7vk5wPKTXzycg4+HY+/sOcgLQkA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15612},"main":"index.js","napi":{"name":"atlas-node","triples":{"defaults":true,"additional":["x86_64-unknown-linux-gnu","x86_64-pc-windows-msvc"]}},"types":"index.d.ts","gitHead":"54620fc7d9d940ecc4cbc68b34e4ec5ea2375840","scripts":{"build":"napi build --platform --release --dts index.d.ts","stage":"bash scripts/stage.sh","release":"bash scripts/release.sh","build:debug":"napi build --platform --dts index.d.ts","prepublishOnly":"napi build --platform --release --dts index.d.ts","build-all-platforms":"bash scripts/build-all-platforms.sh"},"_npmUser":{"name":"alibosworth","email":"ali@alibosworth.com"},"_npmVersion":"11.12.1","description":"ATLAS native Rust bindings — in-memory film negative inversion for Node.js.","directories":{},"_nodeVersion":"25.9.0","dependencies":{"@napi-rs/cli":"^2.18.0"},"_hasShrinkwrap":false,"optionalDependencies":{"@alibosworth/atlas-node-darwin-x64":"2026.4.30-alpha.1","@alibosworth/atlas-node-darwin-arm64":"2026.4.30-alpha.1","@alibosworth/atlas-node-linux-x64-gnu":"2026.4.30-alpha.1","@alibosworth/atlas-node-win32-x64-msvc":"2026.4.30-alpha.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas-node_2026.4.30-alpha.1_1777563586181_0.5440646645187162","host":"s3://npm-registry-packages-npm-production"}},"2026.5.19-alpha.1":{"name":"@alibosworth/atlas-node","version":"2026.5.19-alpha.1","author":{"url":"https://alibosworth.com/","name":"Ali Bosworth","email":"ali@alibosworth.com"},"license":"SEE LICENSE IN LICENSE","_id":"@alibosworth/atlas-node@2026.5.19-alpha.1","maintainers":[{"name":"alibosworth","email":"ali@alibosworth.com"}],"dist":{"shasum":"938de19b19b15cca2144e3c5d5b6f92d325cd5aa","tarball":"https://registry.npmjs.org/@alibosworth/atlas-node/-/atlas-node-2026.5.19-alpha.1.tgz","fileCount":3,"integrity":"sha512-Y8eMtUqaNDTagVXhOPW1Yt+bkStK8BhnNlWsg6S1yjUe8IHA6+1jr6ZK1IC0sUm5PiGGr4GdRMP9aTenBpLbHA==","signatures":[{"sig":"MEYCIQCphP0AzRPmPSXZUWUSximvZc8FGPOO6D8KE9tEx5kFHAIhAMY/BQwvT33BQZoOHJf4y7/EU0HBaqWIbz2ZRA/uAuAa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15622},"main":"index.js","napi":{"name":"atlas-node","triples":{"defaults":true,"additional":["x86_64-unknown-linux-gnu","x86_64-pc-windows-msvc"]}},"types":"index.d.ts","gitHead":"a0261faf98e74e015545c157cd0cd16253ae3268","scripts":{"build":"napi build --platform --release --dts index.d.ts","stage":"bash scripts/stage.sh","release":"bash scripts/release.sh","build:debug":"napi build --platform --dts index.d.ts","prepublishOnly":"napi build --platform --release --dts index.d.ts","build-all-platforms":"bash scripts/build-all-platforms.sh"},"_npmUser":{"name":"alibosworth","email":"ali@alibosworth.com"},"_npmVersion":"11.12.1","description":"ATLAS native Rust bindings — in-memory film negative inversion for Node.js.","directories":{},"_nodeVersion":"25.9.0","dependencies":{"@napi-rs/cli":"^2.18.0"},"_hasShrinkwrap":false,"optionalDependencies":{"@alibosworth/atlas-node-darwin-x64":"2026.5.19-alpha.1","@alibosworth/atlas-node-darwin-arm64":"2026.5.19-alpha.1","@alibosworth/atlas-node-linux-x64-gnu":"2026.5.19-alpha.1","@alibosworth/atlas-node-win32-x64-msvc":"2026.5.19-alpha.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas-node_2026.5.19-alpha.1_1779227600517_0.9155574918958966","host":"s3://npm-registry-packages-npm-production"}},"2026.6.14-alpha.1":{"name":"@alibosworth/atlas-node","version":"2026.6.14-alpha.1","author":{"url":"https://alibosworth.com/","name":"Ali Bosworth","email":"ali@alibosworth.com"},"license":"SEE LICENSE IN LICENSE","_id":"@alibosworth/atlas-node@2026.6.14-alpha.1","maintainers":[{"name":"alibosworth","email":"ali@alibosworth.com"}],"dist":{"shasum":"3723edba79c1885b8d33bfab49eb00b3cc052bac","tarball":"https://registry.npmjs.org/@alibosworth/atlas-node/-/atlas-node-2026.6.14-alpha.1.tgz","fileCount":3,"integrity":"sha512-czSUViKuJ/Y34F/UF/CL3kxYK+JgiJyc/gyOO2KScjlye51TBZXuBIGJguyn9EjgO3ZWZFyL3jRaoO0lf/c40Q==","signatures":[{"sig":"MEYCIQDXfZAl00C2+2+x/IaMXe/ncKoKQJyyTGJWpuLbt1h0iwIhANEnrFMGuyLApupO80WyCuoWGcZ5Lv0CNO6LtewIAS8C","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15831},"main":"index.js","napi":{"name":"atlas-node","triples":{"defaults":true,"additional":["x86_64-unknown-linux-gnu","x86_64-pc-windows-msvc"]}},"types":"index.d.ts","gitHead":"98091329ecabca2f85b8befdd1aba1e1059deb43","scripts":{"build":"napi build --platform --release --dts index.d.ts","stage":"bash scripts/stage.sh","release":"bash scripts/release.sh","build:debug":"napi build --platform --dts index.d.ts","prepublishOnly":"napi build --platform --release --dts index.d.ts","build-all-platforms":"bash scripts/build-all-platforms.sh"},"_npmUser":{"name":"alibosworth","email":"ali@alibosworth.com"},"_npmVersion":"11.12.1","description":"ATLAS native Rust bindings — in-memory film negative inversion for Node.js.","directories":{},"_nodeVersion":"25.9.0","dependencies":{"@napi-rs/cli":"^2.18.0"},"_hasShrinkwrap":false,"optionalDependencies":{"@alibosworth/atlas-node-darwin-x64":"2026.6.14-alpha.1","@alibosworth/atlas-node-darwin-arm64":"2026.6.14-alpha.1","@alibosworth/atlas-node-linux-x64-gnu":"2026.6.14-alpha.1","@alibosworth/atlas-node-win32-x64-msvc":"2026.6.14-alpha.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas-node_2026.6.14-alpha.1_1781421195155_0.5791280562271515","host":"s3://npm-registry-packages-npm-production"}},"2026.7.5-alpha.1":{"name":"@alibosworth/atlas-node","version":"2026.7.5-alpha.1","author":{"url":"https://alibosworth.com/","name":"Ali Bosworth","email":"ali@alibosworth.com"},"license":"SEE LICENSE IN LICENSE","_id":"@alibosworth/atlas-node@2026.7.5-alpha.1","maintainers":[{"name":"alibosworth","email":"ali@alibosworth.com"}],"dist":{"shasum":"0ca020e52d5d51cc49c06365f68220969b0350bb","tarball":"https://registry.npmjs.org/@alibosworth/atlas-node/-/atlas-node-2026.7.5-alpha.1.tgz","fileCount":3,"integrity":"sha512-h4oPRU6DCBqWbygPvasuAR67R210NMaJGII9XMePRuuSkaTCujL9Z22VNzJEOq1xF0Y0SNmQRr8Pcz9e2kDPkg==","signatures":[{"sig":"MEUCIC7z8U0Ksw2kfWWvJHmws7TyO7Uqg1nd4of5Hejv2EC2AiEAtD0o3xG7c1dO5iWvxulJLkH6Ycs7jBxrDRPzUn33sxI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17266},"main":"index.js","napi":{"name":"atlas-node","triples":{"defaults":true,"additional":["x86_64-unknown-linux-gnu","x86_64-pc-windows-msvc"]}},"types":"index.d.ts","gitHead":"76bad373a4416a1678502d3629e41316985a2ac5","scripts":{"build":"napi build --platform --release --dts index.d.ts","stage":"bash scripts/stage.sh","release":"bash scripts/release.sh","build:debug":"napi build --platform --dts index.d.ts","prepublishOnly":"napi build --platform --release --dts index.d.ts","build-all-platforms":"bash scripts/build-all-platforms.sh"},"_npmUser":{"name":"alibosworth","email":"ali@alibosworth.com"},"_npmVersion":"11.12.1","description":"ATLAS native Rust bindings — in-memory film negative inversion for Node.js.","directories":{},"_nodeVersion":"25.9.0","dependencies":{"@napi-rs/cli":"^2.18.0"},"_hasShrinkwrap":false,"optionalDependencies":{"@alibosworth/atlas-node-darwin-x64":"2026.7.5-alpha.1","@alibosworth/atlas-node-darwin-arm64":"2026.7.5-alpha.1","@alibosworth/atlas-node-linux-x64-gnu":"2026.7.5-alpha.1","@alibosworth/atlas-node-win32-x64-msvc":"2026.7.5-alpha.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas-node_2026.7.5-alpha.1_1783315652821_0.15343174428898299","host":"s3://npm-registry-packages-npm-production"}},"2026.7.12-alpha.1":{"name":"@alibosworth/atlas-node","version":"2026.7.12-alpha.1","author":{"url":"https://alibosworth.com/","name":"Ali Bosworth","email":"ali@alibosworth.com"},"license":"SEE LICENSE IN LICENSE","_id":"@alibosworth/atlas-node@2026.7.12-alpha.1","maintainers":[{"name":"alibosworth","email":"ali@alibosworth.com"}],"dist":{"shasum":"e7c45e699e86d63338132b953c243f0152d48d68","tarball":"https://registry.npmjs.org/@alibosworth/atlas-node/-/atlas-node-2026.7.12-alpha.1.tgz","fileCount":3,"integrity":"sha512-zDg8rTCrLApyozifZOevgu1AI1J6ky+3/7D1VI53s/0B3Aw2a20EUuWukwkrM5wTL6XA35nO8TQVN7/3Y/eTkg==","signatures":[{"sig":"MEUCIFjqE2MTnnHpsTXuV4xJEPw4OSmiU+vU7eQGk6I7OfyVAiEAm6iLfl9Z4yS8yzfrqUTH8QYzK40NNYJ1zEcfrGOS6D0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18287},"main":"index.js","napi":{"name":"atlas-node","triples":{"defaults":true,"additional":["x86_64-unknown-linux-gnu","x86_64-pc-windows-msvc"]}},"types":"index.d.ts","gitHead":"b2ccff7fd5db115e07587d689e8fca3a97604e1c","scripts":{"build":"napi build --platform --release --dts index.d.ts","stage":"bash scripts/stage.sh","release":"bash scripts/release.sh","build:debug":"napi build --platform --dts index.d.ts","prepublishOnly":"napi build --platform --release --dts index.d.ts","build-all-platforms":"bash scripts/build-all-platforms.sh"},"_npmUser":{"name":"alibosworth","email":"ali@alibosworth.com"},"_npmVersion":"11.12.1","description":"ATLAS native Rust bindings — in-memory film negative inversion for Node.js.","directories":{},"_nodeVersion":"25.9.0","dependencies":{"@napi-rs/cli":"^2.18.0"},"_hasShrinkwrap":false,"optionalDependencies":{"@alibosworth/atlas-node-darwin-x64":"2026.7.12-alpha.1","@alibosworth/atlas-node-darwin-arm64":"2026.7.12-alpha.1","@alibosworth/atlas-node-linux-x64-gnu":"2026.7.12-alpha.1","@alibosworth/atlas-node-win32-x64-msvc":"2026.7.12-alpha.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas-node_2026.7.12-alpha.1_1783917989631_0.1789984589844944","host":"s3://npm-registry-packages-npm-production"}},"2026.7.26":{"name":"@alibosworth/atlas-node","version":"2026.7.26","description":"ATLAS native Rust bindings — in-memory film negative inversion for Node.js.","author":{"name":"Ali Bosworth","email":"ali@alibosworth.com","url":"https://alibosworth.com/"},"license":"SEE LICENSE IN LICENSE","main":"index.js","types":"index.d.ts","napi":{"name":"atlas-node","triples":{"defaults":true,"additional":["x86_64-unknown-linux-gnu","x86_64-pc-windows-msvc"]}},"scripts":{"build":"napi build --platform --release --dts index.d.ts","build:debug":"napi build --platform --dts index.d.ts","prepublishOnly":"napi build --platform --release --dts index.d.ts","build-all-platforms":"bash scripts/build-all-platforms.sh","stage":"bash scripts/stage.sh","release":"bash scripts/release.sh"},"dependencies":{"@napi-rs/cli":"^2.18.0"},"optionalDependencies":{"@alibosworth/atlas-node-darwin-arm64":"2026.7.26","@alibosworth/atlas-node-darwin-x64":"2026.7.26","@alibosworth/atlas-node-linux-x64-gnu":"2026.7.26","@alibosworth/atlas-node-win32-x64-msvc":"2026.7.26"},"gitHead":"74ddd70544eb9fff435b1474b77b4bbafb2a36d7","_id":"@alibosworth/atlas-node@2026.7.26","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-uP6xiJ440L0izrhjJ06aLbpteM59BilSdCotm/aUBu0m97x+vbcZqMExkJ2EFAqF12NRW0YMk1kbmpvs4IKsTQ==","shasum":"8164d672dc7a1cf267183f3c30ed9a5d54177618","tarball":"https://registry.npmjs.org/@alibosworth/atlas-node/-/atlas-node-2026.7.26.tgz","fileCount":5,"unpackedSize":22357,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDLPWgjS+91VpvkaaZj4H49hbUlCjDnhtb1ui5k4JVJyAIhAPW6sPVwy/i6760i8pU4L0LUUDQOFywFG6xVxJqmPDgo"}]},"_npmUser":{"name":"alibosworth","email":"ali@alibosworth.com"},"directories":{},"maintainers":[{"name":"alibosworth","email":"ali@alibosworth.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/atlas-node_2026.7.26_1785055342136_0.5530118792430749"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-22T17:41:03.553Z","modified":"2026-07-26T08:42:22.407Z","2026.4.22-alpha.0":"2026-04-22T17:41:03.790Z","2026.4.30-alpha.0":"2026-04-30T15:20:03.955Z","2026.4.30-alpha.1":"2026-04-30T15:39:46.334Z","2026.5.19-alpha.1":"2026-05-19T21:53:20.673Z","2026.6.14-alpha.1":"2026-06-14T07:13:15.296Z","2026.7.5-alpha.1":"2026-07-06T05:27:32.963Z","2026.7.12-alpha.1":"2026-07-13T04:46:29.754Z","2026.7.26":"2026-07-26T08:42:22.277Z"},"author":{"name":"Ali Bosworth","email":"ali@alibosworth.com","url":"https://alibosworth.com/"},"license":"SEE LICENSE IN LICENSE","description":"ATLAS native Rust bindings — in-memory film negative inversion for Node.js.","maintainers":[{"name":"alibosworth","email":"ali@alibosworth.com"}],"readme":"# @alibosworth/atlas-node\n\n**ATLAS = Automatic Tool for Log-ratio Analysis and Shared inversion.**\n\nATLAS converts scanned 16-bit linear film negatives to positives. Inverting is the small\npart. Most of ATLAS is the analysis that works out what the inversion should be:\n\n- It measures per-channel density relationships across every frame in a roll and computes\n  one shared profile, so a roll is corrected as a unit rather than frame by frame.\n- It derives the orange-mask baseline and the black point from the image data, so no\n  unexposed film base, leader, or rebate sample is needed.\n- It ignores the brightest and darkest percentiles of each frame, so dust and specular\n  highlights do not pull the profile around.\n- It detects frames whose colour characteristics sit too far outside the rest of the roll\n  and holds them out of the shared profile, with a safety valve for when that would\n  exclude too much of the roll to be trustworthy.\n- It applies per-channel gamma and slope corrections, an optional contrast stretch, and\n  conversion between input, working, and output RGB primaries.\n- It reports what it found: probable dust, frames at risk of clipping from the contrast\n  stretch, and the profile values it used, so a result can be explained rather than only\n  accepted.\n\nA computed profile can also be saved and reapplied, which gives consistent colour across\nseveral rolls of the same stock, or rescues a roll that is hard to analyse on its own.\n\nThis package is the Node binding: a prebuilt native binary with a thin JavaScript loader.\n\n## You probably want PPRC instead\n\nATLAS exists to serve **PPRC (Pakon Planar Raw Converter)**, which batch-converts Pakon\nF135/F135+ \"planar\" raw scans into full 16-bit TIFFs with the orange mask removed. PPRC is\nthe tool you install and run: it calls ATLAS to process the scans. On its own this\npackage does nothing useful.\n\n- PPRC: <https://pprc.alibosworth.com>\n- PPRC source: <https://github.com/alibosworth/pakon-planar-raw-converter>\n\n## Platforms\n\nBinaries are published as optional dependencies for `darwin-arm64`, `darwin-x64`,\n`linux-x64-gnu`, and `win32-x64-msvc`. The loader in `index.js` selects the right one at\nrequire time.\n\n## Licence\n\nProprietary, all rights reserved. The source is not published, and rights to ATLAS are no\nbroader than your rights to PPRC. See [LICENSE](LICENSE).\n\nFor commercial use, email ali@alibosworth.com.\n","readmeFilename":"README.md"}