{"_id":"@atlaschain/functional","name":"@atlaschain/functional","dist-tags":{"latest":"3.0.0"},"versions":{"3.0.0":{"name":"@atlaschain/functional","version":"3.0.0","description":"Functional JavaScript helpers","exports":{"edge-light":{"import":"./dist/index.node.mjs","require":"./dist/index.node.cjs"},"workerd":{"import":"./dist/index.node.mjs","require":"./dist/index.node.cjs"},"browser":{"import":"./dist/index.browser.mjs","require":"./dist/index.browser.cjs"},"node":{"import":"./dist/index.node.mjs","require":"./dist/index.node.cjs"},"react-native":"./dist/index.native.mjs","types":"./dist/types/index.d.ts"},"browser":{"./dist/index.node.cjs":"./dist/index.browser.cjs","./dist/index.node.mjs":"./dist/index.browser.mjs"},"main":"./dist/index.node.cjs","module":"./dist/index.node.mjs","react-native":"./dist/index.native.mjs","types":"./dist/types/index.d.ts","type":"commonjs","sideEffects":false,"keywords":["blockchain","atlas","web3"],"scripts":{"compile:docs":"typedoc","compile:js":"tsup --config build-scripts/tsup.config.package.ts","compile:typedefs":"tsc -p ./tsconfig.declarations.json","dev":"jest -c ../../node_modules/@atlas/test-config/jest-dev.config.ts --rootDir . --watch","prepublishOnly":"pnpm pkg delete devDependencies","publish-impl":"npm view $npm_package_name@$npm_package_version > /dev/null 2>&1 || (pnpm publish --tag ${PUBLISH_TAG:-canary} --access public --no-git-checks && (([ -n \"${GITHUB_OUTPUT:-}\" ] && echo 'published=true' >> \"$GITHUB_OUTPUT\") || true) && (([ \"$PUBLISH_TAG\" != \"canary\" ] && ../build-scripts/maybe-tag-latest.ts $npm_package_name@$npm_package_version) || true))","publish-packages":"pnpm prepublishOnly && pnpm publish-impl","style:fix":"pnpm eslint --fix src && pnpm prettier --log-level warn --ignore-unknown --write ./*","test:lint":"TERM_OVERRIDE=\"${TURBO_HASH:+dumb}\" TERM=${TERM_OVERRIDE:-$TERM} jest -c ../../node_modules/@atlas/test-config/jest-lint.config.ts --rootDir . --silent","test:prettier":"TERM_OVERRIDE=\"${TURBO_HASH:+dumb}\" TERM=${TERM_OVERRIDE:-$TERM} jest -c ../../node_modules/@atlas/test-config/jest-prettier.config.ts --rootDir . --silent","test:treeshakability:browser":"agadoo dist/index.browser.mjs","test:treeshakability:native":"agadoo dist/index.native.mjs","test:treeshakability:node":"agadoo dist/index.node.mjs","test:typecheck":"tsc --noEmit","test:unit:browser":"TERM_OVERRIDE=\"${TURBO_HASH:+dumb}\" TERM=${TERM_OVERRIDE:-$TERM} jest -c ../../node_modules/@atlas/test-config/jest-unit.config.browser.ts --rootDir . --silent","test:unit:node":"TERM_OVERRIDE=\"${TURBO_HASH:+dumb}\" TERM=${TERM_OVERRIDE:-$TERM} jest -c ../../node_modules/@atlas/test-config/jest-unit.config.node.ts --rootDir . --silent"},"author":{"name":"Atlas Chain Foundation"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/anza-xyz/kit.git"},"bugs":{"url":"https://github.com/anza-xyz/kit/issues"},"browserslist":["supports bigint and not dead","maintained node versions"],"peerDependencies":{"typescript":">=5.3.3"},"engines":{"node":">=20.18.0"},"_id":"@atlaschain/functional@3.0.0","homepage":"https://github.com/anza-xyz/kit#readme","_nodeVersion":"22.12.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-rJXUpygWaOipVWsNs5uonJzKaNlKd6ibUWt42G5OB+9+izPTpusr5gpTRp4VrRDLzZhAOMq1CKKSbLnNGWgO6A==","shasum":"2fc6d7f985ba98269e6cf187e21904fc2d7e9658","tarball":"https://registry.npmjs.org/@atlaschain/functional/-/functional-3.0.0.tgz","fileCount":5,"unpackedSize":9515,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIC0mKRTMkZiTrmxMHJdaNH4TBSLoV+qlcyuKr/cPw7pBAiBJEGsNV/JPCx2nqmPzogWWccdYlfIyWGN8rbF/oOcidA=="}]},"_npmUser":{"name":"atlaschain","email":"jq@atlaschain.org"},"directories":{},"maintainers":[{"name":"atlaschain","email":"jq@atlaschain.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/functional_3.0.0_1756885054884_0.2519440846931629"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-03T07:37:34.801Z","3.0.0":"2025-09-03T07:37:35.063Z","modified":"2025-09-03T07:37:35.348Z"},"maintainers":[{"name":"atlaschain","email":"jq@atlaschain.org"}],"description":"Functional JavaScript helpers","homepage":"https://github.com/anza-xyz/kit#readme","keywords":["blockchain","atlas","web3"],"repository":{"type":"git","url":"git+https://github.com/anza-xyz/kit.git"},"author":{"name":"Atlas Chain Foundation"},"bugs":{"url":"https://github.com/anza-xyz/kit/issues"},"license":"MIT","readme":"[![npm][npm-image]][npm-url]\n[![npm-downloads][npm-downloads-image]][npm-url]\n<br />\n[![code-style-prettier][code-style-prettier-image]][code-style-prettier-url]\n\n[code-style-prettier-image]: https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square\n[code-style-prettier-url]: https://github.com/prettier/prettier\n[npm-downloads-image]: https://img.shields.io/npm/dm/@atlas/functional?style=flat\n[npm-image]: https://img.shields.io/npm/v/@atlas/functional?style=flat\n[npm-url]: https://www.npmjs.com/package/@atlas/functional\n\n# @atlas/functional\n\nThis package contains generalized functional helpers and functional helpers specific to Atlas application components. It can be used standalone, but it is also exported as part of Kit [`@atlas/kit`](https://github.com/anza-xyz/kit/tree/main/packages/kit).\n\n## Functions\n\n### `pipe()`\n\nA pipeline is a solution that allows you to perform successive transforms of a value using functions. This is useful when building up a transaction message.\n\nUntil the [pipeline operator](https://github.com/tc39/proposal-pipeline-operator) becomes part of JavaScript you can use this utility to create pipelines.\n\n```ts\nconst add = (a, b) => a + b;\nconst add10 = x => add(x, 10);\nconst add100 = x => add(x, 100);\nconst sum = pipe(1, add10, add100);\nsum === 111; // true\n```\n\n```ts\nconst transferTransactionMessage = pipe(\n    // The result of the first expression...\n    createTransactionMessage({ version: 0 }),\n    // ...gets passed as the sole argument to the next function in the pipeline.\n    tx => setTransactionMessageFeePayer(myAddress, tx),\n    // The return value of that function gets passed to the next...\n    tx => setTransactionMessageLifetimeUsingBlockhash(latestBlockhash, tx),\n    // ...and so on.\n    tx => appendTransactionMessageInstruction(getTransferSolInstruction({ source, destination, amount }), tx),\n);\n```\n","readmeFilename":"README.md","_rev":"1-7d5fb0c09b601e58e62170fca6865197"}