{"_id":"@atem-connection/image-tools","_rev":"4-a7daf27cda9fce9856cfd924d9fd877c","name":"@atem-connection/image-tools","dist-tags":{"hotfix":"0.0.4","latest":"1.1.2"},"versions":{"0.0.4":{"name":"@atem-connection/image-tools","version":"0.0.4","license":"MIT","_id":"@atem-connection/image-tools@0.0.4","maintainers":[{"name":"julusian","email":"git@julusian.co.uk"}],"homepage":"https://github.com/julusian/atem-connection-image-tools#readme","bugs":{"url":"https://github.com/julusian/atem-connection-image-tools/issues"},"dist":{"shasum":"4d790e4aa76d9f1181d5cec9eb5c50c83f1f620d","tarball":"https://registry.npmjs.org/@atem-connection/image-tools/-/image-tools-0.0.4.tgz","fileCount":30,"integrity":"sha512-wToDJAK8EXTOnU5c6SNWauKeBfBgYjy60zLuykTU/1nxS815NwdjXrSvGkD5COLO+AMS8hR8ZkjdNQVsYa76fQ==","signatures":[{"sig":"MEUCID1sXfC3m7WbdqiX6bstr86DyjKqJA3j7akln+4bcKyZAiEAt4K2zqgPBBzd0me2h9eY3cLtDavtPLwAbD920Ea3JzY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2659583},"main":"dist/index.js","napi":{"name":"sofie-atem-connection-image-tools","triples":{"additional":["aarch64-apple-darwin","aarch64-unknown-linux-gnu","armv7-unknown-linux-gnueabihf","x86_64-unknown-linux-musl"]}},"engines":{"node":"^14.18 || ^16.14 || >=18.0"},"gitHead":"e98af27152c5479c5053e45efb2cf6d70c13fad8","scripts":{"lint":"run lint:raw .","test":"run lint && run unit","unit":"run unit:js && run unit:rs","build":"yarn build:rs && yarn build:js","reset":"git clean -dfx && git reset --hard && yarn","watch":"run jest --watch","eslint":"./node_modules/.bin/eslint","release":"sofie-version","unit:js":"run jest --forceExit","unit:rs":"cd native && cargo test","build:js":"rimraf dist && run build:main","build:rs":"napi build --cargo-cwd native --platform --release  --js=false --dts nativeLib.d.ts .","lint-fix":"run lint --fix","lint:raw":"run eslint --ext .ts --ext .js --ext .tsx --ext .jsx ","prettier":"./node_modules/.bin/prettier","build:main":"tsc -p tsconfig.build.json","lint-staged":"./node_modules/.bin/lint-staged","build:rs:debug":"napi build --cargo-cwd native --platform rust","license-validate":"sofie-licensecheck --allowPackages caniuse-lite@1.0.30001319","validate:dependencies":"yarn npm audit --environment production && run license-validate","validate:dev-dependencies":"yarn npm audit --environment development"},"typings":"dist/index.d.ts","_npmUser":{"name":"julusian","email":"git@julusian.co.uk"},"prettier":"@sofie-automation/code-standard-preset/.prettierrc.json","repository":{"url":"git+https://github.com/julusian/atem-connection-image-tools.git","type":"git"},"description":"Native tools for atem-connection","directories":{},"lint-staged":{"*.{ts,tsx,js,jsx}":["yarn lint-fix"],"*.{css,json,md,scss}":["prettier --write"]},"_hasShrinkwrap":false,"packageManager":"yarn@3.5.0","devDependencies":{"jest":"^29.5.0","rimraf":"^5.0.1","ts-jest":"^29.1.0","typescript":"~4.9","@types/jest":"^29.5.1","@types/node":"^14.18.22","@napi-rs/cli":"^2.16.3","jest-extended":"^3.2.4","@sofie-automation/code-standard-preset":"~2.4.6"},"_npmOperationalInternal":{"tmp":"tmp/image-tools_0.0.4_1695047940419_0.42402453329003276","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"@atem-connection/image-tools","version":"1.0.0","license":"MIT","_id":"@atem-connection/image-tools@1.0.0","maintainers":[{"name":"julusian","email":"git@julusian.co.uk"}],"homepage":"https://github.com/julusian/atem-connection-image-tools#readme","bugs":{"url":"https://github.com/julusian/atem-connection-image-tools/issues"},"dist":{"shasum":"d3f19eab3e40e34b5f28caf60f41d51af004ec64","tarball":"https://registry.npmjs.org/@atem-connection/image-tools/-/image-tools-1.0.0.tgz","fileCount":26,"integrity":"sha512-lJhI6XWd01LRHCDFKZbTRErNfuEWDPfFOrx/Ju+4r6K7qNLemm5PR0h8IN2XrGZh5Hf0qE2Ddblib9kwAN8clQ==","signatures":[{"sig":"MEUCIQCuWOjpGx7ph1yHIqPNwmJ/wdZ6eAr6C2i49vBIbLEpGwIgDmlwi9dPxDaQ10hM6JTjizqr+QjCBNsRLF+tk8OAaIU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2714542},"main":"dist/index.js","napi":{"name":"atem-connection-image-tools","triples":{"additional":["aarch64-apple-darwin","aarch64-unknown-linux-gnu","armv7-unknown-linux-gnueabihf","x86_64-unknown-linux-musl"]}},"engines":{"node":"^14.18 || ^16.14 || >=18.0"},"gitHead":"e3cbf5741bf83e1ba8aa0e7bbf1ca0371d386722","scripts":{"lint":"run lint:raw .","test":"run lint && run unit","unit":"run unit:js && run unit:rs","build":"yarn build:rs && yarn build:js","reset":"git clean -dfx && git reset --hard && yarn","watch":"run jest --watch","eslint":"./node_modules/.bin/eslint","release":"sofie-version","unit:js":"run jest --forceExit","unit:rs":"cd native && cargo test","build:js":"rimraf dist && run build:main","build:rs":"napi build --cargo-cwd native --platform --release  --js=false --dts nativeLib.d.ts .","lint-fix":"run lint --fix","lint:raw":"run eslint --ext .ts --ext .js --ext .tsx --ext .jsx ","prettier":"./node_modules/.bin/prettier","build:main":"tsc -p tsconfig.build.json","lint-staged":"./node_modules/.bin/lint-staged","build:rs:debug":"napi build --cargo-cwd native --platform rust","license-validate":"sofie-licensecheck --allowPackages caniuse-lite@1.0.30001319","validate:dependencies":"yarn npm audit --environment production && run license-validate","validate:dev-dependencies":"yarn npm audit --environment development"},"typings":"dist/index.d.ts","_npmUser":{"name":"julusian","email":"git@julusian.co.uk"},"prettier":"@sofie-automation/code-standard-preset/.prettierrc.json","repository":{"url":"git+https://github.com/julusian/atem-connection-image-tools.git","type":"git"},"description":"Native tools for atem-connection","directories":{},"lint-staged":{"*.{ts,tsx,js,jsx}":["yarn lint-fix"],"*.{css,json,md,scss}":["prettier --write"]},"_hasShrinkwrap":false,"packageManager":"yarn@3.5.0","devDependencies":{"jest":"^29.7.0","rimraf":"^5.0.5","ts-jest":"^29.1.2","typescript":"~4.9.5","@types/jest":"^29.5.11","@types/node":"^14.18.63","@napi-rs/cli":"^2.18.0","jest-extended":"^3.2.4","@sofie-automation/code-standard-preset":"~2.4.7"},"_npmOperationalInternal":{"tmp":"tmp/image-tools_1.0.0_1706141702831_0.2707309087174048","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"@atem-connection/image-tools","version":"1.1.1","license":"MIT","_id":"@atem-connection/image-tools@1.1.1","maintainers":[{"name":"julusian","email":"git@julusian.co.uk"}],"homepage":"https://github.com/julusian/atem-connection-image-tools#readme","bugs":{"url":"https://github.com/julusian/atem-connection-image-tools/issues"},"dist":{"shasum":"c9d3eab9642cd4e939f0657f6be7155e8e2c0bf9","tarball":"https://registry.npmjs.org/@atem-connection/image-tools/-/image-tools-1.1.1.tgz","fileCount":26,"integrity":"sha512-GZS/25YONkYuopQ12SqGM3/4godEFVW+yGa8XwLYg0+lKORhFrnwo0/FZq0q8bBepXQLNIc0jqIv8ejrEPLe9g==","signatures":[{"sig":"MEYCIQCvPw3lkfF01SfaLheDDleuB/87dHI7yB8jKnjjTdJuLgIhANZGQ1Z/F0tojKY7qQ6jbDs4yrBru9/Thd2t+oepNOwT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2663516},"main":"dist/index.js","napi":{"name":"atem-connection-image-tools","triples":{"additional":["aarch64-apple-darwin","aarch64-unknown-linux-gnu","armv7-unknown-linux-gnueabihf","x86_64-unknown-linux-musl"]}},"engines":{"node":"^14.18 || ^16.14 || >=18.0"},"gitHead":"a16d8be17dcc4e2bb48dbc2acca4041fe646159e","scripts":{"lint":"run lint:raw .","test":"run lint && run unit","unit":"run unit:js && run unit:rs","build":"yarn build:rs && yarn build:js","reset":"git clean -dfx && git reset --hard && yarn","watch":"run jest --watch","eslint":"./node_modules/.bin/eslint","release":"sofie-version","unit:js":"run jest --forceExit","unit:rs":"cd native && cargo test","build:js":"rimraf dist && run build:main","build:rs":"napi build --cargo-cwd native --platform --release  --js=false --dts nativeLib.d.ts .","lint-fix":"run lint --fix","lint:raw":"run eslint --ext .ts --ext .js --ext .tsx --ext .jsx ","prettier":"./node_modules/.bin/prettier","build:main":"tsc -p tsconfig.build.json","lint-staged":"./node_modules/.bin/lint-staged","build:rs:debug":"napi build --cargo-cwd native --platform rust","license-validate":"sofie-licensecheck --allowPackages caniuse-lite@1.0.30001319","validate:dependencies":"yarn npm audit --environment production && run license-validate","validate:dev-dependencies":"yarn npm audit --environment development"},"typings":"dist/index.d.ts","_npmUser":{"name":"julusian","email":"git@julusian.co.uk"},"prettier":"@sofie-automation/code-standard-preset/.prettierrc.json","repository":{"url":"git+https://github.com/julusian/atem-connection-image-tools.git","type":"git"},"description":"Native tools for atem-connection","directories":{},"lint-staged":{"*.{ts,tsx,js,jsx}":["yarn lint-fix"],"*.{css,json,md,scss}":["prettier --write"]},"_hasShrinkwrap":false,"packageManager":"yarn@3.5.0","devDependencies":{"jest":"^29.7.0","rimraf":"^5.0.10","ts-jest":"^29.2.4","typescript":"~5.2.2","@types/jest":"^29.5.12","@types/node":"^14.18.63","@napi-rs/cli":"^2.18.4","jest-extended":"^3.2.4","@sofie-automation/code-standard-preset":"~2.5.2"},"_npmOperationalInternal":{"tmp":"tmp/image-tools_1.1.1_1748117295165_0.8424327866870274","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@atem-connection/image-tools","version":"1.1.2","description":"Native tools for atem-connection","main":"dist/index.js","typings":"dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/Julusian/atem-connection-image-tools.git"},"bugs":{"url":"https://github.com/Julusian/atem-connection-image-tools/issues"},"homepage":"https://github.com/Julusian/atem-connection-image-tools#readme","maintainers":[{"name":"julusian","email":"git@julusian.co.uk"}],"scripts":{"build":"yarn build:rs && yarn build:js","build:rs":"napi build --cargo-cwd native --platform --release  --js=false --dts nativeLib.d.ts .","build:rs:debug":"napi build --cargo-cwd native --platform rust","build:js":"rimraf dist && run build:main","build:main":"tsc -p tsconfig.build.json","lint:raw":"run eslint --ext .ts --ext .js --ext .tsx --ext .jsx ","lint":"run lint:raw .","lint-fix":"run lint --fix","unit":"run unit:js && run unit:rs","unit:js":"run jest --forceExit","unit:rs":"cd native && cargo test","test":"run lint && run unit","watch":"run jest --watch","release":"sofie-version","reset":"git clean -dfx && git reset --hard && yarn","validate:dependencies":"yarn npm audit --environment production && run license-validate","validate:dev-dependencies":"yarn npm audit --environment development","license-validate":"sofie-licensecheck --allowPackages caniuse-lite@1.0.30001319","eslint":"eslint","prettier":"prettier","lint-staged":"lint-staged"},"engines":{"node":"^14.18 || ^16.14 || >=18.0"},"devDependencies":{"@napi-rs/cli":"^2.18.4","@sofie-automation/code-standard-preset":"~2.5.2","@types/jest":"^29.5.14","@types/node":"^14.18.63","jest":"^29.7.0","jest-extended":"^3.2.4","rimraf":"^5.0.10","ts-jest":"^29.4.11","typescript":"~5.2.2"},"prettier":"@sofie-automation/code-standard-preset/.prettierrc.json","lint-staged":{"*.{css,json,md,scss}":["prettier --write"],"*.{ts,tsx,js,jsx}":["yarn lint-fix"]},"napi":{"name":"atem-connection-image-tools","triples":{"additional":["aarch64-apple-darwin","aarch64-unknown-linux-gnu","armv7-unknown-linux-gnueabihf","x86_64-unknown-linux-musl","aarch64-pc-windows-msvc"]}},"packageManager":"yarn@3.5.0","gitHead":"394251e758d430647032f6aeb2113300d10ce01b","_id":"@atem-connection/image-tools@1.1.2","_nodeVersion":"24.17.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-V/R4IFPhSGhSkfMifpsLaMjexjt5rVruyQ1+0w9rV3oP/j/MRJ0ypgq8uzMNWC8ydBH9AyZxRqeDFn0Nrngg5Q==","shasum":"50f0d161368ae4af83da92e112188b9de03d6502","tarball":"https://registry.npmjs.org/@atem-connection/image-tools/-/image-tools-1.1.2.tgz","fileCount":27,"unpackedSize":2881948,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atem-connection%2fimage-tools@1.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFRXR51JrGUX181i4HetuenYBkwZwjTlbygoZskHSZvWAiBNNvHAEiou/ZtvXF01oeyxdSldIQCue5T9qsuUnkabXQ=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1dd3a5d7-18f6-4a70-915d-74c23f28504f"}},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/image-tools_1.1.2_1782062325288_0.07818836342158297"},"_hasShrinkwrap":false}},"time":{"created":"2023-09-18T14:39:00.346Z","modified":"2026-06-21T17:18:45.771Z","0.0.4":"2023-09-18T14:39:00.651Z","1.0.0":"2024-01-25T00:15:03.139Z","1.1.1":"2025-05-24T20:08:15.507Z","1.1.2":"2026-06-21T17:18:45.496Z"},"bugs":{"url":"https://github.com/Julusian/atem-connection-image-tools/issues"},"license":"MIT","homepage":"https://github.com/Julusian/atem-connection-image-tools#readme","repository":{"type":"git","url":"git+https://github.com/Julusian/atem-connection-image-tools.git"},"description":"Native tools for atem-connection","maintainers":[{"name":"julusian","email":"git@julusian.co.uk"}],"readme":"# ATEM connection image tools\n\n[![Node CI](https://github.com/julusian/atem-connection-image-tools/actions/workflows/CI.yaml/badge.svg)](https://github.com/julusian/atem-connection-image-tools/actions/workflows/CI.yaml)\n[![npm](https://img.shields.io/npm/v/@atem-connection/image-tools)](https://www.npmjs.com/package/@atem-connection/image-tools)\n\n## Usage\n\nThis library is intended to be used as optional optimisations for atem-connection [NPM](https://www.npmjs.com/package/atem-connection) [Github](https://github.com/sofie-automation/sofie-atem-connection). It provides some image utilities with compiled (rust) implementations, which can be used instead of the javascript implementations used elsewhere.\n\n### Example:\n\n```ts\nimport { Atem } from 'atem-connection'\nimport * as fs from 'fs'\nimport { encodeImageForAtem } from '@atem-connection/image-tools'\n\nconst conn = new Atem()\n\nconst file = fs.readFileSync('./testframe.rgba')\n\nconst encodedImage = encodeImageForAtem(1920, 1080, file, 'rgba')\nconn.uploadStill(0, encodedImage, 'Test image', '').then(() => {\n\tconsole.log('Uploaded!')\n})\n\n// Or the less efficient method, with 'atem-connection' performing the colour conversion:\nconn.uploadStill(1, file, 'Test image', '').then(() => {\n\tconsole.log('Uploaded!')\n})\n```\n\n## Development\n\n### Setting up\n\n- Clone the repository\n- Install a compatible version of nodejs and yarn\n- Install the rust compiler with [rustup](https://rustup.rs/)\n- Build the project with `yarn build`\n- You can use [`yarn link`](https://yarnpkg.com/cli/link) to link this into `atem-connection`\n\n### Modifying the rust code\n\nTo rebuild the native component you can run `yarn build:rs`. If you are changing the exposed api, you should instead run `yarn build`, so that typescript can check the new typings.\n\nThere are some rust unit tests, which can be run with `yarn unit:rs`, or you can run all the unit tests with `yarn unit` (make sure to rebuild the module first!).\n\n### Modifying the js code\n\nYou can run `yarn build:js` to rebuild the typescript code, optionally with the `--watch` parameter to re-run upon saving a file.\n\nThere are some unit tests, which can be run with `yarn unit:js`. This command calls into jest, so any jest arguments can also be used\n","readmeFilename":"README.md"}