{"_id":"fast-flow-transform","_rev":"6-3a2c173197b75a13664ac6dc80fab6c1","name":"fast-flow-transform","dist-tags":{"canary":"0.0.1-canary.20260317t235016000z.7e54772767d3","latest":"0.0.3"},"versions":{"0.0.1-canary.20260315t215048000z.c00c04f0e454":{"name":"fast-flow-transform","version":"0.0.1-canary.20260315t215048000z.c00c04f0e454","author":{"name":"Jakub Romanczyk","email":"j.romanczyk@gmail.com"},"license":"MIT","_id":"fast-flow-transform@0.0.1-canary.20260315t215048000z.c00c04f0e454","maintainers":[{"name":"jbroma","email":"j.romanczyk@gmail.com"}],"homepage":"https://github.com/jbroma/fast-flow-transform#readme","bugs":{"url":"https://github.com/jbroma/fast-flow-transform/issues"},"bin":{"fast-flow-transform":"dist/cli/index.js"},"dist":{"shasum":"4b8cdfddd2d823196184783193734c25b318698d","tarball":"https://registry.npmjs.org/fast-flow-transform/-/fast-flow-transform-0.0.1-canary.20260315t215048000z.c00c04f0e454.tgz","fileCount":135,"integrity":"sha512-S3LMue6xDkIR6T8IM+3rzKPfXePIA/ovVFNZwVkziLaVS8UP/lZ4HxjcH4/zUDuACmoNEkhUOv6NHUinpLXLrQ==","signatures":[{"sig":"MEUCIA2pat7OXx9JhkeBpi+fripRSgNB/y/Iafc6oZXKv7IzAiEAxmJwt/SUmR8jtHjVzA50n3oR1dYAoP9tEenUD7p/vmY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/fast-flow-transform@0.0.1-canary.20260315t215048000z.c00c04f0e454","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2478069},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./vite":{"types":"./dist/adapters/vite.d.ts","import":"./dist/adapters/vite.js","default":"./dist/adapters/vite.js"},"./parcel":{"types":"./dist/adapters/parcel.d.ts","import":"./dist/adapters/parcel.js","default":"./dist/adapters/parcel.js"},"./rollup":{"types":"./dist/adapters/rollup.d.ts","import":"./dist/adapters/rollup.js","default":"./dist/adapters/rollup.js"},"./rspack":{"types":"./dist/adapters/rspack.d.ts","import":"./dist/adapters/rspack.js","default":"./dist/adapters/rspack.js","require":"./dist/adapters/rspack.cjs"},"./esbuild":{"types":"./dist/adapters/esbuild.d.ts","import":"./dist/adapters/esbuild.js","default":"./dist/adapters/esbuild.js"},"./rsbuild":{"types":"./dist/adapters/rsbuild.d.ts","import":"./dist/adapters/rsbuild.js","default":"./dist/adapters/rsbuild.js","require":"./dist/adapters/rsbuild.cjs"},"./webpack":{"types":"./dist/adapters/webpack.d.ts","import":"./dist/adapters/webpack.js","default":"./dist/adapters/webpack.js","require":"./dist/adapters/webpack.cjs"},"./rolldown":{"types":"./dist/adapters/rolldown.d.ts","import":"./dist/adapters/rolldown.js","default":"./dist/adapters/rolldown.js"}},"gitHead":"c00c04f0e454347822b1499bec0496361e038ad7","scripts":{"test":"vitest run","build":"node --input-type=module -e \"import { rmSync } from 'node:fs'; rmSync('dist', { recursive: true, force: true });\" && tsc -p tsconfig.build.json","prepack":"pnpm run build","typecheck":"tsc -p tsconfig.json"},"_npmUser":{"name":"jbroma","email":"j.romanczyk@gmail.com"},"repository":{"url":"git+https://github.com/jbroma/fast-flow-transform.git","type":"git"},"_npmVersion":"11.11.1","description":"Native Hermes/FFT Flow stripping transform with webpack, rspack, rsbuild, Parcel, Vite, Rollup, Rolldown, and esbuild adapters","directories":{},"_nodeVersion":"24.14.0","dependencies":{"source-map":"^0.7.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","rollup":"^4.59.0","vitest":"^4.0.16","@parcel/plugin":"^2.16.1","@parcel/source-map":"^2.1.1"},"peerDependencies":{"vite":"^7.0.0","@parcel/plugin":"^2.16.1","@parcel/source-map":"^2.1.1"},"optionalDependencies":{"fast-flow-transform-linux-x64":"0.0.1-canary.20260315t215048000z.c00c04f0e454","fast-flow-transform-win32-x64":"0.0.1-canary.20260315t215048000z.c00c04f0e454","fast-flow-transform-darwin-x64":"0.0.1-canary.20260315t215048000z.c00c04f0e454","fast-flow-transform-linux-arm64":"0.0.1-canary.20260315t215048000z.c00c04f0e454","fast-flow-transform-win32-arm64":"0.0.1-canary.20260315t215048000z.c00c04f0e454","fast-flow-transform-darwin-arm64":"0.0.1-canary.20260315t215048000z.c00c04f0e454"},"peerDependenciesMeta":{"vite":{"optional":true},"@parcel/plugin":{"optional":true},"@parcel/source-map":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fast-flow-transform_0.0.1-canary.20260315t215048000z.c00c04f0e454_1773612200830_0.150753784128296","host":"s3://npm-registry-packages-npm-production"}},"0.0.1-canary.20260315t225715000z.9ace90706b1c":{"name":"fast-flow-transform","version":"0.0.1-canary.20260315t225715000z.9ace90706b1c","author":{"name":"Jakub Romanczyk","email":"j.romanczyk@gmail.com"},"license":"MIT","_id":"fast-flow-transform@0.0.1-canary.20260315t225715000z.9ace90706b1c","maintainers":[{"name":"jbroma","email":"j.romanczyk@gmail.com"}],"homepage":"https://github.com/jbroma/fast-flow-transform#readme","bugs":{"url":"https://github.com/jbroma/fast-flow-transform/issues"},"bin":{"fast-flow-transform":"dist/cli/index.js"},"dist":{"shasum":"aca7da22140b714c486bd5abe16615bcb0646d8b","tarball":"https://registry.npmjs.org/fast-flow-transform/-/fast-flow-transform-0.0.1-canary.20260315t225715000z.9ace90706b1c.tgz","fileCount":136,"integrity":"sha512-fnbF5oZ4k6W9pDYoI1uMSy15WEm8dfOry/RncH4SvrEfQjL0S3DTbgKzXp/v/qS0ynenq7ULGx9/lrwohje8yQ==","signatures":[{"sig":"MEUCIQD1BoH7cGGi4R15vl/7+dRN9KBdBVMey5IDEtB1lwcHyQIgcZ/BnR5N+l4+7ysusItmS+GSuiwKjpQk6ofnXKfxy/E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/fast-flow-transform@0.0.1-canary.20260315t225715000z.9ace90706b1c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":165380},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./vite":{"types":"./dist/adapters/vite.d.ts","import":"./dist/adapters/vite.js","default":"./dist/adapters/vite.js"},"./parcel":{"types":"./dist/adapters/parcel.d.ts","import":"./dist/adapters/parcel.js","default":"./dist/adapters/parcel.js"},"./rollup":{"types":"./dist/adapters/rollup.d.ts","import":"./dist/adapters/rollup.js","default":"./dist/adapters/rollup.js"},"./rspack":{"types":"./dist/adapters/rspack.d.ts","import":"./dist/adapters/rspack.js","default":"./dist/adapters/rspack.js","require":"./dist/adapters/rspack.cjs"},"./esbuild":{"types":"./dist/adapters/esbuild.d.ts","import":"./dist/adapters/esbuild.js","default":"./dist/adapters/esbuild.js"},"./rsbuild":{"types":"./dist/adapters/rsbuild.d.ts","import":"./dist/adapters/rsbuild.js","default":"./dist/adapters/rsbuild.js","require":"./dist/adapters/rsbuild.cjs"},"./webpack":{"types":"./dist/adapters/webpack.d.ts","import":"./dist/adapters/webpack.js","default":"./dist/adapters/webpack.js","require":"./dist/adapters/webpack.cjs"},"./rolldown":{"types":"./dist/adapters/rolldown.d.ts","import":"./dist/adapters/rolldown.js","default":"./dist/adapters/rolldown.js"}},"gitHead":"9ace90706b1c464cb727101de3997076e3b660dd","scripts":{"test":"vitest run","build":"node --input-type=module -e \"import { rmSync } from 'node:fs'; rmSync('dist', { recursive: true, force: true });\" && tsc -p tsconfig.build.json","prepack":"pnpm run build && node ../../scripts/release/stage-package-assets.mts","postpack":"node ../../scripts/release/cleanup-package-assets.mts","typecheck":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:844b06cb-d8b2-4f36-a258-72e882b8d567"}},"repository":{"url":"git+https://github.com/jbroma/fast-flow-transform.git","type":"git"},"_npmVersion":"11.11.1","description":"Native Hermes/FFT Flow stripping transform with webpack, rspack, rsbuild, Parcel, Vite, Rollup, Rolldown, and esbuild adapters","directories":{},"_nodeVersion":"24.14.0","dependencies":{"source-map":"^0.7.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^7.3.1","rollup":"^4.59.0","vitest":"^4.0.16","@parcel/plugin":"^2.16.1","@parcel/source-map":"^2.1.1"},"peerDependencies":{"vite":"^7.0.0","@parcel/plugin":"^2.16.1","@parcel/source-map":"^2.1.1"},"optionalDependencies":{"fast-flow-transform-linux-x64":"0.0.1-canary.20260315t225715000z.9ace90706b1c","fast-flow-transform-win32-x64":"0.0.1-canary.20260315t225715000z.9ace90706b1c","fast-flow-transform-darwin-x64":"0.0.1-canary.20260315t225715000z.9ace90706b1c","fast-flow-transform-linux-arm64":"0.0.1-canary.20260315t225715000z.9ace90706b1c","fast-flow-transform-win32-arm64":"0.0.1-canary.20260315t225715000z.9ace90706b1c","fast-flow-transform-darwin-arm64":"0.0.1-canary.20260315t225715000z.9ace90706b1c"},"peerDependenciesMeta":{"vite":{"optional":true},"@parcel/plugin":{"optional":true},"@parcel/source-map":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fast-flow-transform_0.0.1-canary.20260315t225715000z.9ace90706b1c_1773616312140_0.08708774395703256","host":"s3://npm-registry-packages-npm-production"}},"0.0.1":{"name":"fast-flow-transform","version":"0.0.1","keywords":["esbuild","flowtype","parcel","rolldown","rollup","rsbuild","rspack","strip-flow","vite","webpack"],"author":{"name":"Jakub Romanczyk","email":"j.romanczyk@gmail.com"},"license":"MIT","_id":"fast-flow-transform@0.0.1","maintainers":[{"name":"jbroma","email":"j.romanczyk@gmail.com"}],"homepage":"https://github.com/jbroma/fast-flow-transform#readme","bugs":{"url":"https://github.com/jbroma/fast-flow-transform/issues"},"bin":{"fast-flow-transform":"dist/cli/index.js"},"dist":{"shasum":"b2bba0634666199bbf3840c502dbfbdf57ceb87a","tarball":"https://registry.npmjs.org/fast-flow-transform/-/fast-flow-transform-0.0.1.tgz","fileCount":88,"integrity":"sha512-DNlpolILhTnKJXJbOJCY7FBM+MnbQme6G+7vjIwWn/TTO6uSlc0Kby/rfDPkt+VpK63VsIQQWVcfEe0D2mcMRw==","signatures":[{"sig":"MEYCIQDOfdFFDpVd3aULkyI8P8MsTLUp+M8nJExozY/czS6DawIhANbd6X+tx+IhNCeaTy+UnE9cwjFcQinzns4st83n3k0K","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/fast-flow-transform@0.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":98910},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./vite":{"types":"./dist/adapters/vite.d.ts","import":"./dist/adapters/vite.js","default":"./dist/adapters/vite.js"},"./parcel":{"types":"./dist/adapters/parcel.d.ts","import":"./dist/adapters/parcel.js","default":"./dist/adapters/parcel.js"},"./rollup":{"types":"./dist/adapters/rollup.d.ts","import":"./dist/adapters/rollup.js","default":"./dist/adapters/rollup.js"},"./rspack":{"types":"./dist/adapters/rspack.d.ts","import":"./dist/adapters/rspack.js","default":"./dist/adapters/rspack.js","require":"./dist/adapters/rspack.cjs"},"./esbuild":{"types":"./dist/adapters/esbuild.d.ts","import":"./dist/adapters/esbuild.js","default":"./dist/adapters/esbuild.js"},"./rsbuild":{"types":"./dist/adapters/rsbuild.d.ts","import":"./dist/adapters/rsbuild.js","default":"./dist/adapters/rsbuild.js","require":"./dist/adapters/rsbuild.cjs"},"./webpack":{"types":"./dist/adapters/webpack.d.ts","import":"./dist/adapters/webpack.js","default":"./dist/adapters/webpack.js","require":"./dist/adapters/webpack.cjs"},"./rolldown":{"types":"./dist/adapters/rolldown.d.ts","import":"./dist/adapters/rolldown.js","default":"./dist/adapters/rolldown.js"}},"gitHead":"e9709b5418dc033876fedb08d13f82e0a53a1324","scripts":{"test":"vitest run","build":"node --input-type=module -e \"import { rmSync } from 'node:fs'; rmSync('dist', { recursive: true, force: true });\" && tsc -p tsconfig.build.json","prepack":"pnpm run build && node ../../scripts/release/stage-package-assets.mts","postpack":"node ../../scripts/release/cleanup-package-assets.mts","typecheck":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:844b06cb-d8b2-4f36-a258-72e882b8d567"}},"repository":{"url":"git+https://github.com/jbroma/fast-flow-transform.git","type":"git"},"_npmVersion":"11.11.1","description":"Native Hermes/FFT Flow stripping transform with webpack, rspack, rsbuild, Parcel, Vite, Rollup, Rolldown, and esbuild adapters","directories":{},"_nodeVersion":"24.14.0","dependencies":{"source-map":"^0.7.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","rollup":"^4.59.0","vitest":"^4.0.16","@parcel/plugin":"^2.16.1","@parcel/source-map":"^2.1.1"},"peerDependencies":{"vite":"^7.0.0","@parcel/plugin":"^2.16.1","@parcel/source-map":"^2.1.1"},"optionalDependencies":{"fast-flow-transform-linux-x64":"workspace:*","fast-flow-transform-win32-x64":"workspace:*","fast-flow-transform-darwin-x64":"workspace:*","fast-flow-transform-linux-arm64":"workspace:*","fast-flow-transform-win32-arm64":"workspace:*","fast-flow-transform-darwin-arm64":"workspace:*"},"peerDependenciesMeta":{"vite":{"optional":true},"@parcel/plugin":{"optional":true},"@parcel/source-map":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fast-flow-transform_0.0.1_1773692241461_0.7648714409516559","host":"s3://npm-registry-packages-npm-production"}},"0.0.1-canary.20260317t235016000z.7e54772767d3":{"name":"fast-flow-transform","version":"0.0.1-canary.20260317t235016000z.7e54772767d3","keywords":["esbuild","flowtype","parcel","rolldown","rollup","rsbuild","rspack","strip-flow","vite","webpack"],"author":{"name":"Jakub Romanczyk","email":"j.romanczyk@gmail.com"},"license":"MIT","_id":"fast-flow-transform@0.0.1-canary.20260317t235016000z.7e54772767d3","maintainers":[{"name":"jbroma","email":"j.romanczyk@gmail.com"}],"homepage":"https://github.com/jbroma/fast-flow-transform#readme","bugs":{"url":"https://github.com/jbroma/fast-flow-transform/issues"},"bin":{"fast-flow-transform":"dist/cli/index.js"},"dist":{"shasum":"4577e1ba1870c44cca0243b2ab37eeca7b6e6676","tarball":"https://registry.npmjs.org/fast-flow-transform/-/fast-flow-transform-0.0.1-canary.20260317t235016000z.7e54772767d3.tgz","fileCount":86,"integrity":"sha512-Tw4vGmez1dxGXN5qblrje5CAwvKe3Ihk00N7NUi+PQUAAjBi9wY7PgGnw48xOim8LvbhH+y0njOHeKr0RbKVnA==","signatures":[{"sig":"MEUCIQCi6x+KWrdTKfC5HPvRWlHdoIHHpMutVgPexmHgkA4uIQIgX9zJXhMUcix8XP7DoySV4gii7uAFZ4qKmnLlN3/T4zA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/fast-flow-transform@0.0.1-canary.20260317t235016000z.7e54772767d3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":122537},"main":"./dist/index.js","napi":{"targets":["aarch64-apple-darwin","x86_64-apple-darwin","aarch64-unknown-linux-gnu","aarch64-unknown-linux-musl","x86_64-unknown-linux-gnu","x86_64-unknown-linux-musl","aarch64-pc-windows-msvc","x86_64-pc-windows-msvc"],"binaryName":"fast-flow-transform","packageName":"fast-flow-transform"},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./vite":{"types":"./dist/adapters/vite.d.ts","import":"./dist/adapters/vite.js","default":"./dist/adapters/vite.js"},"./parcel":{"types":"./dist/adapters/parcel.d.ts","import":"./dist/adapters/parcel.js","default":"./dist/adapters/parcel.js"},"./rollup":{"types":"./dist/adapters/rollup.d.ts","import":"./dist/adapters/rollup.js","default":"./dist/adapters/rollup.js"},"./rspack":{"types":"./dist/adapters/rspack.d.ts","import":"./dist/adapters/rspack.js","default":"./dist/adapters/rspack.js","require":"./dist/adapters/rspack.cjs"},"./esbuild":{"types":"./dist/adapters/esbuild.d.ts","import":"./dist/adapters/esbuild.js","default":"./dist/adapters/esbuild.js"},"./rsbuild":{"types":"./dist/adapters/rsbuild.d.ts","import":"./dist/adapters/rsbuild.js","default":"./dist/adapters/rsbuild.js","require":"./dist/adapters/rsbuild.cjs"},"./webpack":{"types":"./dist/adapters/webpack.d.ts","import":"./dist/adapters/webpack.js","default":"./dist/adapters/webpack.js","require":"./dist/adapters/webpack.cjs"},"./rolldown":{"types":"./dist/adapters/rolldown.d.ts","import":"./dist/adapters/rolldown.js","default":"./dist/adapters/rolldown.js"}},"gitHead":"7e54772767d3f3b3fbb6b61b84ded78d28c66b8b","scripts":{"test":"vitest run","build":"pnpm run build:bindings && pnpm run build:js","prepack":"pnpm run build:js && node ../../scripts/release/stage-package-assets.mts","build:js":"node ./scripts/package-lifecycle.mts clean-dist && tsc -p tsconfig.build.json","postpack":"node ../../scripts/release/cleanup-package-assets.mts","artifacts":"node ./scripts/package-lifecycle.mts ensure-artifacts-dir && napi artifacts --package-json-path package.json --npm-dir ../../bindings --output-dir ../../artifacts","typecheck":"tsc -p tsconfig.json","version:napi":"napi version --package-json-path package.json --npm-dir ../../bindings","build:bindings":"napi build --platform --release --manifest-path ../../crates/fft_node/Cargo.toml --package-json-path package.json --output-dir binding --js bindings.cjs --dts bindings.d.cts","prepublishOnly":"pnpm run publish:bindings","publish:bindings":"napi pre-publish -t npm --no-gh-release --package-json-path package.json --npm-dir ../../bindings"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:844b06cb-d8b2-4f36-a258-72e882b8d567"}},"repository":{"url":"git+https://github.com/jbroma/fast-flow-transform.git","type":"git"},"_npmVersion":"11.9.0","description":"Native Hermes/FFT Flow stripping transform with webpack, rspack, rsbuild, Parcel, Vite, Rollup, Rolldown, and esbuild adapters","directories":{},"_nodeVersion":"24.14.0","dependencies":{"source-map":"^0.7.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^7.3.1","rollup":"^4.59.0","vitest":"^4.0.16","@napi-rs/cli":"3.5.1","@parcel/plugin":"^2.16.1","@parcel/source-map":"^2.1.1"},"peerDependencies":{"vite":"^7.0.0","@parcel/plugin":"^2.16.1","@parcel/source-map":"^2.1.1"},"optionalDependencies":{"fast-flow-transform-darwin-x64":"0.0.1-canary.20260317t235016000z.7e54772767d3","fast-flow-transform-darwin-arm64":"0.0.1-canary.20260317t235016000z.7e54772767d3","fast-flow-transform-linux-x64-gnu":"0.0.1-canary.20260317t235016000z.7e54772767d3","fast-flow-transform-linux-x64-musl":"0.0.1-canary.20260317t235016000z.7e54772767d3","fast-flow-transform-win32-x64-msvc":"0.0.1-canary.20260317t235016000z.7e54772767d3","fast-flow-transform-linux-arm64-gnu":"0.0.1-canary.20260317t235016000z.7e54772767d3","fast-flow-transform-linux-arm64-musl":"0.0.1-canary.20260317t235016000z.7e54772767d3","fast-flow-transform-win32-arm64-msvc":"0.0.1-canary.20260317t235016000z.7e54772767d3"},"peerDependenciesMeta":{"vite":{"optional":true},"@parcel/plugin":{"optional":true},"@parcel/source-map":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fast-flow-transform_0.0.1-canary.20260317t235016000z.7e54772767d3_1773791998791_0.08214746386814964","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"fast-flow-transform","version":"0.0.2","keywords":["esbuild","flowtype","parcel","rolldown","rollup","rsbuild","rspack","strip-flow","vite","webpack"],"author":{"name":"Jakub Romanczyk","email":"j.romanczyk@gmail.com"},"license":"MIT","_id":"fast-flow-transform@0.0.2","maintainers":[{"name":"jbroma","email":"j.romanczyk@gmail.com"}],"homepage":"https://github.com/jbroma/fast-flow-transform#readme","bugs":{"url":"https://github.com/jbroma/fast-flow-transform/issues"},"bin":{"fast-flow-transform":"dist/cli/index.js"},"dist":{"shasum":"97cfbacd988c97cc99e49e86e5364bc6a4651d0e","tarball":"https://registry.npmjs.org/fast-flow-transform/-/fast-flow-transform-0.0.2.tgz","fileCount":86,"integrity":"sha512-NUWe+qKpmpF1MLirgVYfxDgAGZn7mcRjJFy0MCLlmRSGUFn7SK/EUxCb9BD6yAMh2a84NPv0JEjydM/pG8B4xQ==","signatures":[{"sig":"MEUCIEkT9GUmTbPyI/+1H2AWHJ+fbvz6514YsfloG0SZvrk3AiEAqtrbZ88C7aQoGTy1dxRGhCPJ+j+G3ThH78sklDJ6quU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/fast-flow-transform@0.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":120097},"main":"./dist/index.js","napi":{"targets":["aarch64-apple-darwin","x86_64-apple-darwin","aarch64-unknown-linux-gnu","aarch64-unknown-linux-musl","x86_64-unknown-linux-gnu","x86_64-unknown-linux-musl","aarch64-pc-windows-msvc","x86_64-pc-windows-msvc"],"binaryName":"fast-flow-transform","packageName":"fast-flow-transform"},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./vite":{"types":"./dist/adapters/vite.d.ts","import":"./dist/adapters/vite.js","default":"./dist/adapters/vite.js"},"./parcel":{"types":"./dist/adapters/parcel.d.ts","import":"./dist/adapters/parcel.js","default":"./dist/adapters/parcel.js"},"./rollup":{"types":"./dist/adapters/rollup.d.ts","import":"./dist/adapters/rollup.js","default":"./dist/adapters/rollup.js"},"./rspack":{"types":"./dist/adapters/rspack.d.ts","import":"./dist/adapters/rspack.js","default":"./dist/adapters/rspack.js","require":"./dist/adapters/rspack.cjs"},"./esbuild":{"types":"./dist/adapters/esbuild.d.ts","import":"./dist/adapters/esbuild.js","default":"./dist/adapters/esbuild.js"},"./rsbuild":{"types":"./dist/adapters/rsbuild.d.ts","import":"./dist/adapters/rsbuild.js","default":"./dist/adapters/rsbuild.js","require":"./dist/adapters/rsbuild.cjs"},"./webpack":{"types":"./dist/adapters/webpack.d.ts","import":"./dist/adapters/webpack.js","default":"./dist/adapters/webpack.js","require":"./dist/adapters/webpack.cjs"},"./rolldown":{"types":"./dist/adapters/rolldown.d.ts","import":"./dist/adapters/rolldown.js","default":"./dist/adapters/rolldown.js"}},"gitHead":"b8752c50f7e235427ae133b0eb09c34c3619bf11","scripts":{"test":"vitest run","build":"pnpm run build:bindings && pnpm run build:js","prepack":"pnpm run build:js && node ../../scripts/release/stage-package-assets.mts","build:js":"node ./scripts/package-lifecycle.mts clean-dist && tsc -p tsconfig.build.json","postpack":"node ../../scripts/release/cleanup-package-assets.mts","artifacts":"node ./scripts/package-lifecycle.mts ensure-artifacts-dir && napi artifacts --package-json-path package.json --npm-dir ../../bindings --output-dir ../../artifacts","typecheck":"tsc -p tsconfig.json","version:napi":"napi version --package-json-path package.json --npm-dir ../../bindings","build:bindings":"napi build --platform --release --manifest-path ../../crates/fft_node/Cargo.toml --package-json-path package.json --output-dir binding --js bindings.cjs --dts bindings.d.cts","prepublishOnly":"pnpm run publish:bindings","publish:bindings":"napi pre-publish -t npm --no-gh-release --package-json-path package.json --npm-dir ../../bindings"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:844b06cb-d8b2-4f36-a258-72e882b8d567"}},"repository":{"url":"git+https://github.com/jbroma/fast-flow-transform.git","type":"git"},"_npmVersion":"11.9.0","description":"Native Hermes/FFT Flow stripping transform with webpack, rspack, rsbuild, Parcel, Vite, Rollup, Rolldown, and esbuild adapters","directories":{},"_nodeVersion":"24.14.0","dependencies":{"source-map":"^0.7.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","rollup":"^4.59.0","vitest":"^4.0.16","@napi-rs/cli":"3.5.1","@parcel/plugin":"^2.16.1","@parcel/source-map":"^2.1.1"},"peerDependencies":{"vite":"^7.0.0","@parcel/plugin":"^2.16.1","@parcel/source-map":"^2.1.1"},"optionalDependencies":{"fast-flow-transform-darwin-x64":"0.0.2","fast-flow-transform-darwin-arm64":"0.0.2","fast-flow-transform-linux-x64-gnu":"0.0.2","fast-flow-transform-linux-x64-musl":"0.0.2","fast-flow-transform-win32-x64-msvc":"0.0.2","fast-flow-transform-linux-arm64-gnu":"0.0.2","fast-flow-transform-linux-arm64-musl":"0.0.2","fast-flow-transform-win32-arm64-msvc":"0.0.2"},"peerDependenciesMeta":{"vite":{"optional":true},"@parcel/plugin":{"optional":true},"@parcel/source-map":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fast-flow-transform_0.0.2_1773831565710_0.6963554777856698","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"fast-flow-transform","version":"0.0.3","description":"Native Hermes/FFT Flow stripping transform with webpack, rspack, rsbuild, Parcel, Vite, Rollup, Rolldown, and esbuild adapters","keywords":["esbuild","flowtype","parcel","rolldown","rollup","rsbuild","rspack","strip-flow","vite","webpack"],"homepage":"https://github.com/jbroma/fast-flow-transform#readme","bugs":{"url":"https://github.com/jbroma/fast-flow-transform/issues"},"license":"MIT","author":{"name":"Jakub Romanczyk","email":"j.romanczyk@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/jbroma/fast-flow-transform.git"},"bin":{"fast-flow-transform":"dist/cli/index.js"},"type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./webpack":{"types":"./dist/adapters/webpack.d.ts","import":"./dist/adapters/webpack.js","require":"./dist/adapters/webpack.cjs","default":"./dist/adapters/webpack.js"},"./rspack":{"types":"./dist/adapters/rspack.d.ts","import":"./dist/adapters/rspack.js","require":"./dist/adapters/rspack.cjs","default":"./dist/adapters/rspack.js"},"./rsbuild":{"types":"./dist/adapters/rsbuild.d.ts","import":"./dist/adapters/rsbuild.js","require":"./dist/adapters/rsbuild.cjs","default":"./dist/adapters/rsbuild.js"},"./rollup":{"types":"./dist/adapters/rollup.d.ts","import":"./dist/adapters/rollup.js","default":"./dist/adapters/rollup.js"},"./rolldown":{"types":"./dist/adapters/rolldown.d.ts","import":"./dist/adapters/rolldown.js","default":"./dist/adapters/rolldown.js"},"./esbuild":{"types":"./dist/adapters/esbuild.d.ts","import":"./dist/adapters/esbuild.js","default":"./dist/adapters/esbuild.js"},"./vite":{"types":"./dist/adapters/vite.d.ts","import":"./dist/adapters/vite.js","default":"./dist/adapters/vite.js"},"./parcel":{"types":"./dist/adapters/parcel.d.ts","import":"./dist/adapters/parcel.js","default":"./dist/adapters/parcel.js"}},"publishConfig":{"access":"public","provenance":true,"registry":"https://registry.npmjs.org/"},"scripts":{"artifacts":"node ./scripts/package-lifecycle.mts ensure-artifacts-dir && napi artifacts --package-json-path package.json --npm-dir ../../bindings --output-dir ../../artifacts","build":"pnpm run build:bindings && pnpm run build:js","build:bindings":"napi build --platform --release --manifest-path ../../crates/fft_node/Cargo.toml --package-json-path package.json --output-dir binding --js bindings.cjs --dts bindings.d.cts","build:js":"node ./scripts/package-lifecycle.mts clean-dist && tsc -p tsconfig.build.json","postpack":"node ../../scripts/release/cleanup-package-assets.mts","prepack":"pnpm run build:js && node ../../scripts/release/stage-package-assets.mts","publish:bindings":"napi pre-publish -t npm --no-gh-release --package-json-path package.json --npm-dir ../../bindings","prepublishOnly":"pnpm run publish:bindings","test":"vitest run","typecheck":"tsc -p tsconfig.json","version:napi":"napi version --package-json-path package.json --npm-dir ../../bindings"},"dependencies":{"source-map":"^0.7.6"},"devDependencies":{"@napi-rs/cli":"3.5.1","@parcel/plugin":"^2.16.1","@parcel/source-map":"^2.1.1","rollup":"^4.59.0","vite":"^7.3.1","vitest":"^4.0.16"},"peerDependencies":{"@parcel/plugin":"^2.16.1","@parcel/source-map":"^2.1.1","vite":"^7.0.0"},"peerDependenciesMeta":{"@parcel/plugin":{"optional":true},"@parcel/source-map":{"optional":true},"vite":{"optional":true}},"napi":{"binaryName":"fast-flow-transform","packageName":"fast-flow-transform","targets":["aarch64-apple-darwin","x86_64-apple-darwin","aarch64-unknown-linux-gnu","aarch64-unknown-linux-musl","x86_64-unknown-linux-gnu","x86_64-unknown-linux-musl","aarch64-pc-windows-msvc","x86_64-pc-windows-msvc"]},"engines":{"node":">=18"},"optionalDependencies":{"fast-flow-transform-darwin-arm64":"0.0.3","fast-flow-transform-darwin-x64":"0.0.3","fast-flow-transform-linux-arm64-gnu":"0.0.3","fast-flow-transform-linux-arm64-musl":"0.0.3","fast-flow-transform-linux-x64-gnu":"0.0.3","fast-flow-transform-linux-x64-musl":"0.0.3","fast-flow-transform-win32-arm64-msvc":"0.0.3","fast-flow-transform-win32-x64-msvc":"0.0.3"},"gitHead":"3b6f27a6323a0380ffea1598805ae9bd11856c30","_id":"fast-flow-transform@0.0.3","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-MESw1ut6O/LkyLUQuxiHNcYUVqeERkhadMUnW0ikSQWltzte2XzeSAJBd3iWfc9puAf+5jaLhpet8YkUls0MHw==","shasum":"7f1b7c55a8eb59d63cb2aeddfd6f14434a23d097","tarball":"https://registry.npmjs.org/fast-flow-transform/-/fast-flow-transform-0.0.3.tgz","fileCount":86,"unpackedSize":120391,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/fast-flow-transform@0.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCqRqrx52XD5cda5rs61CHGnPqpxwGsNTcCWQRhyJt2dwIgPq+zTQVj9JpBzTtpZZC2IY3eXgIGVwI0WvpzMJHKPpc="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:844b06cb-d8b2-4f36-a258-72e882b8d567"}},"directories":{},"maintainers":[{"name":"jbroma","email":"j.romanczyk@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/fast-flow-transform_0.0.3_1774185685345_0.19069182205514523"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-15T22:03:20.749Z","modified":"2026-03-22T13:21:25.883Z","0.0.1-canary.20260315t215048000z.c00c04f0e454":"2026-03-15T22:03:20.986Z","0.0.1-canary.20260315t225715000z.9ace90706b1c":"2026-03-15T23:11:52.288Z","0.0.1":"2026-03-16T20:17:21.632Z","0.0.1-canary.20260317t235016000z.7e54772767d3":"2026-03-17T23:59:58.934Z","0.0.2":"2026-03-18T10:59:25.885Z","0.0.3":"2026-03-22T13:21:25.521Z"},"bugs":{"url":"https://github.com/jbroma/fast-flow-transform/issues"},"author":{"name":"Jakub Romanczyk","email":"j.romanczyk@gmail.com"},"license":"MIT","homepage":"https://github.com/jbroma/fast-flow-transform#readme","keywords":["esbuild","flowtype","parcel","rolldown","rollup","rsbuild","rspack","strip-flow","vite","webpack"],"repository":{"type":"git","url":"git+https://github.com/jbroma/fast-flow-transform.git"},"description":"Native Hermes/FFT Flow stripping transform with webpack, rspack, rsbuild, Parcel, Vite, Rollup, Rolldown, and esbuild adapters","maintainers":[{"name":"jbroma","email":"j.romanczyk@gmail.com"}],"readme":"# fast-flow-transform\n\nA programmatic Flow type stripper with webpack, rspack, rsbuild, Parcel, Vite,\nRollup, Rolldown, and esbuild adapters.\n\n## Features\n\n- Native parse + transform + codegen + source map pipeline\n- Small programmatic API for one-shot transforms\n- CLI for transforming files with the same option set\n- Dedicated webpack, rspack, rsbuild, Parcel, Vite, Rollup, Rolldown, and\n  esbuild entrypoints\n- Optional source map merging when you need emitted maps\n- FFT strips Flow syntax only. JSX stays in the output for the bundler's own\n  JSX pipeline to handle.\n\n## Programmatic Usage\n\n```ts\nimport transform from 'fast-flow-transform';\n\nconst result = await transform({\n  filename: '/abs/path/input.js',\n  source: 'const answer: number = 42;',\n  sourcemap: true,\n});\n```\n\nThe programmatic API returns `{ code: string, map?: SourceMapLike }`. `map` is\npresent when source maps are enabled.\n\nFFT always removes value imports that become empty after Flow stripping. This\navoids preserving type-only imports as runtime side-effect imports.\n\nProgrammatic options:\n\n| Property             | Required | Type                                            | Default         | Description                                                                       |\n| -------------------- | -------- | ----------------------------------------------- | --------------- | --------------------------------------------------------------------------------- |\n| `source`             | Yes      | `string \\| Buffer`                              | n/a             | Source text to transform                                                          |\n| `format`             | No       | `'compact' \\| 'pretty' \\| 'preserve'`           | `'compact'`     | Output mode. `preserve` is experimental; see [Preserve Format](#preserve-format)  |\n| `dialect`            | No       | `'flow' \\| 'flow-detect' \\| 'flow-unambiguous'` | `'flow-detect'` | Flow parsing mode                                                                 |\n| `comments`           | No       | `boolean`                                       | `false`         | Preserves ordinary comments in any output mode                                    |\n| `sourcemap`          | No       | `boolean`                                       | `true`          | Enables or disables FFT's emitted output source map                               |\n| `filename`           | No       | `string`                                        | `'<unknown>'`   | Used in diagnostics and in the emitted source map when you pass a path            |\n| `inputSourceMap`     | No       | `SourceMapLike \\| null`                         | none            | Incoming source map from an earlier transform step to merge into FFT's output map |\n| `reactRuntimeTarget` | No       | `'18' \\| '19' \\| 18 \\| 19`                      | `'19'`          | Only affects Flow `component` lowering; normalized to `'18'` or `'19'`            |\n\nWhen you provide `inputSourceMap`, FFT merges it into the emitted map. The\ncurrent merge path preserves source and name mappings, but does not yet retain\nupstream `sourcesContent` or custom metadata fields.\n\nFlow enums always lower to the external `flow-enums-runtime` package. If your\nproject uses Flow enums, install `flow-enums-runtime` as a dependency so the\ngenerated runtime imports resolve in your bundler and at runtime.\n\n## CLI Usage\n\n```bash\nfast-flow-transform src/input.js --out-file dist/output.js\n```\n\nThe CLI reads the input file, calls the same `transform(...)` API exposed by the\npackage, and:\n\n- writes transformed code to `--out-file`, or prints it to stdout when\n  `--out-file` is absent\n- writes a source map to `--source-map-file` or `--out-file.map` when source\n  map output is enabled\n\nCLI arguments:\n\n| Argument                           | Required | Value                                     | Default          | Description                                                                         |\n| ---------------------------------- | -------- | ----------------------------------------- | ---------------- | ----------------------------------------------------------------------------------- |\n| `<input-file>`                     | Yes      | `path`                                    | n/a              | Source file to transform                                                            |\n| `--format <value>`                 | No       | `compact`, `pretty`, `preserve`           | `compact`        | Output mode. `preserve` is experimental; see [Preserve Format](#preserve-format)    |\n| `--dialect <value>`                | No       | `flow`, `flow-detect`, `flow-unambiguous` | `flow-detect`    | Flow parsing mode                                                                   |\n| `--comments`                       | No       | flag                                      | `false`          | Preserve ordinary comments in the output                                            |\n| `--source-map` / `--no-source-map` | No       | flag                                      | `false`          | Enable or disable FFT's emitted output source map                                   |\n| `--out-file <path>`                | No       | `path`                                    | none             | Write transformed code to a file                                                    |\n| `--source-map-file <path>`         | No       | `path`                                    | `<out-file>.map` | Write the emitted output source map to a specific file and enable source map output |\n| `--input-source-map <path>`        | No       | `path`                                    | none             | Load an upstream source map JSON file to merge into FFT's emitted output map        |\n| `--react-runtime-target <n>`       | No       | `18`, `19`                                | `19`             | Only affects Flow `component` lowering                                              |\n| `-h`, `--help`                     | No       | flag                                      | n/a              | Show help                                                                           |\n\n```bash\nfast-flow-transform src/input.js \\\n  --out-file dist/output.js \\\n  --dialect flow-detect \\\n  --format preserve \\\n  --comments\n```\n\nWithout `--out-file`, transformed code goes to stdout. Source maps are off by\ndefault unless you pass `--source-map` or `--source-map-file`.\n\nFFT always removes value imports that become empty after Flow stripping. This\navoids preserving type-only imports as runtime side-effect imports.\n\n## Preserve Format\n\n`format: 'preserve'` and `--format preserve` are experimental.\n\nThis mode uses FFT's layout-preserving subtractive path instead of the normal\nreprinter. It tries to remove Flow syntax while keeping the original spacing,\nline structure, and comments as intact as possible. It supports source maps and\nworks with `comments: true`.\n\nCurrent limitations:\n\n- It only supports subtractive Flow stripping.\n- It does not yet support Flow `component` declarations.\n- It does not yet support Flow `hook` declarations.\n- It does not yet support Flow `enum` declarations.\n- It does not yet support Flow `match` statements or expressions.\n\n## Bundler Adapters\n\nThe adapter entrypoints expose the same canonical transform options where the\nhost bundler makes sense of them: `dialect`, `format`, `comments`,\n`reactRuntimeTarget`, and `sourcemap`.\n\nBundler integrations do not all treat `sourcemap` the same way. webpack and\nrspack default to the loader context unless you override them, Parcel follows\nthe asset's source-map setting, Rollup/Vite/Rolldown always ask FFT for maps so\nthe bundler can compose them, and the esbuild adapter leaves final map emission\nto esbuild itself.\n\n<details>\n<summary><strong>Webpack</strong></summary>\n\n```js\n// webpack.config.js\nmodule.exports = {\n  module: {\n    rules: [\n      {\n        test: /\\.[jt]sx?$/,\n        use: [\n          {\n            loader: 'swc-loader',\n            options: {\n              jsc: {\n                parser: {\n                  jsx: true,\n                  syntax: 'ecmascript',\n                },\n                transform: {\n                  react: {\n                    runtime: 'classic',\n                  },\n                },\n              },\n            },\n          },\n          {\n            loader: 'fast-flow-transform/webpack',\n            options: {\n              dialect: 'flow-detect',\n            },\n          },\n        ],\n      },\n    ],\n  },\n};\n```\n\nIf your config file is ESM, resolve the loader with\n`createRequire(import.meta.url)` and `require.resolve(...)` like the runnable\nexample does.\n\nRunnable example:\n[`examples/webpack`](../../examples/webpack)\n\n</details>\n\n<details>\n<summary><strong>Rspack</strong></summary>\n\n```js\n// rspack.config.js\nmodule.exports = {\n  module: {\n    rules: [\n      {\n        test: /\\.[jt]sx?$/,\n        use: [\n          {\n            loader: 'builtin:swc-loader',\n            options: {\n              jsc: {\n                parser: {\n                  jsx: true,\n                  syntax: 'ecmascript',\n                },\n                transform: {\n                  react: {\n                    runtime: 'classic',\n                  },\n                },\n              },\n            },\n          },\n          {\n            loader: 'fast-flow-transform/rspack',\n            options: {\n              dialect: 'flow-detect',\n            },\n          },\n        ],\n      },\n    ],\n  },\n};\n```\n\nIf your config file is ESM, resolve the loader with\n`createRequire(import.meta.url)` and `require.resolve(...)` like the runnable\nexample does.\n\nRunnable example:\n[`examples/rspack`](../../examples/rspack)\n\n</details>\n\n<details>\n<summary><strong>Rsbuild</strong></summary>\n\n```ts\n// rsbuild.config.ts\nimport { defineConfig } from '@rsbuild/core';\nimport { pluginReact } from '@rsbuild/plugin-react';\nimport pluginFastFlowTransformRsbuild from 'fast-flow-transform/rsbuild';\n\nexport default defineConfig({\n  plugins: [\n    pluginReact({\n      swcReactOptions: {\n        runtime: 'classic',\n      },\n    }),\n    pluginFastFlowTransformRsbuild({\n      dialect: 'flow-detect',\n      format: 'compact',\n      sourcemap: true,\n    }),\n  ],\n  source: {\n    // Rsbuild skips most node_modules by default.\n    // include: [{ not: /[\\\\/]core-js[\\\\/]/ }],\n  },\n});\n```\n\nIf you need lower-level control, `fast-flow-transform/rsbuild` also exposes the\nnamed `applyFastFlowTransformRsbuild` helper for wiring directly inside your own\n`tools.bundlerChain` logic.\n\nRunnable example:\n[`examples/rsbuild`](../../examples/rsbuild)\n\n</details>\n\n<details>\n<summary><strong>Parcel</strong></summary>\n\nParcel expects transformers to be referenced from `.parcelrc` using either a\nParcel-style plugin package name or a local file path. The recommended setup is\nto add a tiny local wrapper that imports `fast-flow-transform/parcel`.\n\n```jsonc\n{\n  \"extends\": \"@parcel/config-default\",\n  \"transformers\": {\n    \"*.{js,mjs,cjs,jsx}\": [\"./parcel-transformer.mjs\", \"...\"],\n  },\n}\n```\n\n```js\n// parcel-transformer.mjs\nimport { createFastFlowTransformParcel } from 'fast-flow-transform/parcel';\n\nexport default createFastFlowTransformParcel({\n  dialect: 'flow-detect',\n  sourcemap: true,\n});\n```\n\nIf the defaults are good enough, your wrapper can re-export the package's\ndefault Parcel transformer instead:\n\n```js\nexport { default } from 'fast-flow-transform/parcel';\n```\n\nRunnable example:\n[`examples/parcel`](../../examples/parcel)\n\n</details>\n\n<details>\n<summary><strong>Vite</strong></summary>\n\n```ts\n// vite.config.ts\nimport { defineConfig, transformWithEsbuild } from 'vite';\nimport fastFlowTransformVite from 'fast-flow-transform/vite';\n\nconst JS_WITH_JSX = /\\.[cm]?jsx?(?:[?#].*)?$/;\n\nfunction jsxAfterFftPlugin() {\n  return {\n    enforce: 'pre',\n    name: 'jsx-after-fft',\n    async transform(code, id) {\n      if (id.startsWith('\\0') || !JS_WITH_JSX.test(id)) {\n        return null;\n      }\n\n      return await transformWithEsbuild(code, id, {\n        jsx: 'transform',\n        loader: 'jsx',\n        sourcemap: true,\n      });\n    },\n  };\n}\n\nexport default defineConfig({\n  plugins: [\n    fastFlowTransformVite({\n      dialect: 'flow-detect',\n    }),\n    jsxAfterFftPlugin(),\n  ],\n});\n```\n\nFFT does not lower JSX itself. If your JSX already lives in `.jsx` or `.tsx`\nfiles, or another Vite plugin handles it, you may not need the extra\n`transformWithEsbuild(...)` pass shown above.\n\nRunnable example:\n[`examples/vite`](../../examples/vite)\n\n</details>\n\n<details>\n<summary><strong>Rollup</strong></summary>\n\n```ts\nimport fastFlowTransformRollup from 'fast-flow-transform/rollup';\n\nexport default {\n  plugins: [\n    fastFlowTransformRollup({\n      dialect: 'flow-detect',\n    }),\n  ],\n};\n```\n\nIf your graph still contains JSX after Flow stripping, add your preferred\nRollup JSX transform separately. FFT does not lower JSX.\n\nRunnable example:\n[`examples/rollup`](../../examples/rollup)\n\n</details>\n\n<details>\n<summary><strong>Rolldown</strong></summary>\n\n```ts\nimport fastFlowTransformRolldown from 'fast-flow-transform/rolldown';\nimport { defineConfig } from 'rolldown';\n\nexport default defineConfig({\n  input: 'src/index.js',\n  moduleTypes: {\n    '.js': 'jsx',\n  },\n  output: {\n    file: 'dist/out.js',\n    format: 'cjs',\n    sourcemap: true,\n  },\n  plugins: [\n    fastFlowTransformRolldown({\n      dialect: 'flow-detect',\n    }),\n  ],\n  transform: {\n    jsx: 'react',\n  },\n});\n```\n\nRolldown already supports mixed ESM and CommonJS graphs natively, so you should\nnot pair this adapter with `@rollup/plugin-commonjs`.\n\nRunnable example:\n[`examples/rolldown`](../../examples/rolldown)\n\n</details>\n\n<details>\n<summary><strong>esbuild</strong></summary>\n\n```ts\nimport { build } from 'esbuild';\nimport fastFlowTransformEsbuild from 'fast-flow-transform/esbuild';\n\nawait build({\n  bundle: true,\n  entryPoints: ['src/index.js'],\n  outfile: 'dist/out.js',\n  plugins: [\n    fastFlowTransformEsbuild({\n      dialect: 'flow-detect',\n    }),\n  ],\n});\n```\n\nRunnable example:\n[`examples/esbuild`](../../examples/esbuild)\n\n</details>\n\n## Native Binding Notes\n\nFFT installs its native addon through platform-specific optional dependencies.\nIf a package manager lockfile was created on a different platform, or install\nflags such as `--ignore-optional` / `--no-optional` were used, the matching\nbinding package may be skipped.\n\nIf FFT reports that its native binding is missing, reinstall dependencies on\nthe target machine without disabling optional dependencies. The supported manual\noverride is `NAPI_RS_NATIVE_LIBRARY_PATH`.\n","readmeFilename":"README.md"}