{"_id":"@adam-rocska/invertible","_rev":"2-35165e0fc16f73da6c7355f78dedf73d","name":"@adam-rocska/invertible","dist-tags":{"latest":"1.1.3"},"versions":{"1.1.1":{"name":"@adam-rocska/invertible","version":"1.1.1","keywords":["invertible","pipeline","pure","functional","functional programming","functional programming library","inverse","proverse","typescript","strict","type-safe","type safety","stateless","composition"],"author":{"url":"https://adam-rocska.github.io","name":"Ádám László Rocska"},"license":"MIT","_id":"@adam-rocska/invertible@1.1.1","maintainers":[{"name":"adam-rocska","email":"rocska.adam@gmail.com"}],"homepage":"https://github.com/adam-rocska/invertible-typescript#readme","bugs":{"url":"https://github.com/adam-rocska/invertible-typescript/issues"},"dist":{"shasum":"80496c9153a042a4c50621dce67c3165c8e558d5","tarball":"https://registry.npmjs.org/@adam-rocska/invertible/-/invertible-1.1.1.tgz","fileCount":17,"integrity":"sha512-hlqwRX/xMP3eaBVC/K2PWH3DFkf+NYvpoGq/axUDFLyTcRe/7RTvi3R//Wzdz/1z0Ad+06JQNwtXWWE6m2GINw==","signatures":[{"sig":"MEUCICvUBrwy0aIupC/IpozkWVs2AtEHGgFIisV5G/WnA70nAiEA3kZug9TYXiSjco73mH8HWDsn+dzO37frOiJmvzsxmdY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26619},"jest":{"transform":{"^.+\\.(t|j)sx?$":["@swc/jest"]},"testTimeout":1000,"moduleNameMapper":{"^!(.*)":"<rootDir>/$1","^@adam-rocska/invertible$":"<rootDir>/src/index.ts","^@adam-rocska/invertible/pipe$":"<rootDir>/src/pipe/index.ts","^@adam-rocska/invertible/utility$":"<rootDir>/src/utility/index.ts"},"moduleDirectories":["node_modules"],"testPathIgnorePatterns":["/node_modules/"]},"main":"./dist/cjs/index.js","_from":"file:adam-rocska-invertible-1.1.1.tgz","types":"./dist/cjs/index.d.ts","module":"./dist/es/index.mjs","exports":{".":{"import":{"types":"./dist/es/index.d.mts","default":"./dist/es/index.mjs"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.js"}},"./pipe":{"import":{"types":"./dist/es/pipe.d.mts","default":"./dist/es/pipe.mjs"},"require":{"types":"./dist/cjs/pipe.d.ts","default":"./dist/cjs/pipe.js"}},"./utility":{"import":{"types":"./dist/es/utility.d.mts","default":"./dist/es/utility.mjs"},"require":{"types":"./dist/cjs/utility.d.ts","default":"./dist/cjs/utility.js"}},"./package.json":"./package.json"},"scripts":{"test":"jest --env node","build":"bunchee","check":"pnpm eslint && pnpm attw --pack","clean":"rimraf dist"},"_npmUser":{"name":"adam-rocska","email":"rocska.adam@gmail.com"},"_resolved":"/tmp/f40bbf1bd98200fe2676c65179a8c909/adam-rocska-invertible-1.1.1.tgz","_integrity":"sha512-hlqwRX/xMP3eaBVC/K2PWH3DFkf+NYvpoGq/axUDFLyTcRe/7RTvi3R//Wzdz/1z0Ad+06JQNwtXWWE6m2GINw==","repository":{"url":"git+https://github.com/adam-rocska/invertible-typescript.git","type":"git"},"_npmVersion":"10.8.1","description":"A library for creating and managing invertible functions and type-safe pipelines in TypeScript.","directories":{},"_nodeVersion":"20.16.0","browserslist":["last 3 years"],"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","pnpm":"^9.7.0","eslint":"^8.57.0","rimraf":"^5.0.10","semver":"^7.6.3","bunchee":"^5.3.2","@swc/jest":"^0.2.36","typescript":"^5.5.4","@types/jest":"^29.5.12","@types/node":"^20.14.15","eslint-config-next":"14.2.5","eslint-plugin-node":"^11.1.0","@arethetypeswrong/cli":"^0.15.4","@typescript-eslint/parser":"^6.21.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"_npmOperationalInternal":{"tmp":"tmp/invertible_1.1.1_1723652528545_0.5817283930557919","host":"s3://npm-registry-packages"}},"1.1.2":{"name":"@adam-rocska/invertible","version":"1.1.2","keywords":["invertible","pipeline","pure","functional","functional programming","functional programming library","inverse","proverse","typescript","strict","type-safe","type safety","stateless","composition"],"author":{"url":"https://adam-rocska.github.io","name":"Ádám László Rocska"},"license":"MIT","_id":"@adam-rocska/invertible@1.1.2","maintainers":[{"name":"adam-rocska","email":"rocska.adam@gmail.com"}],"homepage":"https://github.com/adam-rocska/invertible-typescript#readme","bugs":{"url":"https://github.com/adam-rocska/invertible-typescript/issues"},"dist":{"shasum":"a544849e926391f4e9767e0bb9e9a654cd165b81","tarball":"https://registry.npmjs.org/@adam-rocska/invertible/-/invertible-1.1.2.tgz","fileCount":17,"integrity":"sha512-3daMYTIzeNdve2zAOP1QpHrONNML7qwKkEp+gP/iyT/0ze5kEIKFvCtPQg8DRcG7Crn7NaAvXOdnFwYkpGOGLg==","signatures":[{"sig":"MEQCIFcYCqVL5w4WOXzKbKBmDDJkxva8c6MXGl9QNWNvYqi+AiAEGJVPUhIV6+wPBjhih+fL9Aps0fDBQp+j6PWRntdmsQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26816},"jest":{"transform":{"^.+\\.(t|j)sx?$":["@swc/jest"]},"testTimeout":1000,"moduleNameMapper":{"^!(.*)":"<rootDir>/$1","^@adam-rocska/invertible$":"<rootDir>/src/index.ts","^@adam-rocska/invertible/pipe$":"<rootDir>/src/pipe/index.ts","^@adam-rocska/invertible/utility$":"<rootDir>/src/utility/index.ts"},"moduleDirectories":["node_modules"],"collectCoverageFrom":["src/**/*.ts"],"testPathIgnorePatterns":["/node_modules/"]},"main":"./dist/cjs/index.js","_from":"file:adam-rocska-invertible-1.1.2.tgz","types":"./dist/cjs/index.d.ts","module":"./dist/es/index.mjs","exports":{".":{"import":{"types":"./dist/es/index.d.mts","default":"./dist/es/index.mjs"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.js"}},"./pipe":{"import":{"types":"./dist/es/pipe.d.mts","default":"./dist/es/pipe.mjs"},"require":{"types":"./dist/cjs/pipe.d.ts","default":"./dist/cjs/pipe.js"}},"./utility":{"import":{"types":"./dist/es/utility.d.mts","default":"./dist/es/utility.mjs"},"require":{"types":"./dist/cjs/utility.d.ts","default":"./dist/cjs/utility.js"}},"./package.json":"./package.json"},"funding":[{"url":"https://github.com/sponsors/adam-rocska","type":"github"}],"scripts":{"test":"jest --env node","build":"bunchee","check":"pnpm eslint && pnpm attw --pack","clean":"rimraf dist"},"_npmUser":{"name":"adam-rocska","email":"rocska.adam@gmail.com"},"_resolved":"/tmp/9e26cae9808180771c3be1eb6812e4c1/adam-rocska-invertible-1.1.2.tgz","_integrity":"sha512-3daMYTIzeNdve2zAOP1QpHrONNML7qwKkEp+gP/iyT/0ze5kEIKFvCtPQg8DRcG7Crn7NaAvXOdnFwYkpGOGLg==","repository":{"url":"git+https://github.com/adam-rocska/invertible-typescript.git","type":"git"},"_npmVersion":"10.8.2","description":"A library for creating and managing invertible functions and type-safe pipelines in TypeScript.","directories":{},"_nodeVersion":"20.17.0","browserslist":["last 3 years"],"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","pnpm":"^9.9.0","eslint":"^8.57.0","rimraf":"^6.0.1","semver":"^7.6.3","bunchee":"^5.3.2","@swc/jest":"^0.2.36","typescript":"^5.5.4","@types/jest":"^29.5.12","@types/node":"^22.5.1","eslint-config-next":"14.2.6","eslint-plugin-node":"^11.1.0","@arethetypeswrong/cli":"^0.15.4","@typescript-eslint/parser":"^6.21.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"_npmOperationalInternal":{"tmp":"tmp/invertible_1.1.2_1724944736692_0.7884948570669887","host":"s3://npm-registry-packages"}},"1.1.3":{"name":"@adam-rocska/invertible","version":"1.1.3","description":"A library for creating and managing invertible functions and type-safe pipelines in TypeScript.","keywords":["invertible","pipeline","pure","functional","functional programming","functional programming library","inverse","proverse","typescript","strict","type-safe","type safety","stateless","composition"],"main":"./dist/cjs/index.js","module":"./dist/es/index.mjs","types":"./dist/cjs/index.d.ts","exports":{"./package.json":"./package.json",".":{"import":{"types":"./dist/es/index.d.mts","default":"./dist/es/index.mjs"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.js"}},"./pipe":{"import":{"types":"./dist/es/pipe.d.mts","default":"./dist/es/pipe.mjs"},"require":{"types":"./dist/cjs/pipe.d.ts","default":"./dist/cjs/pipe.js"}},"./utility":{"import":{"types":"./dist/es/utility.d.mts","default":"./dist/es/utility.mjs"},"require":{"types":"./dist/cjs/utility.d.ts","default":"./dist/cjs/utility.js"}}},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"repository":{"type":"git","url":"git+https://github.com/adam-rocska/invertible-typescript.git"},"bugs":{"url":"https://github.com/adam-rocska/invertible-typescript/issues"},"funding":[{"type":"github","url":"https://github.com/sponsors/adam-rocska"}],"author":{"name":"Ádám László Rocska","url":"https://adam-rocska.github.io"},"license":"MIT","devDependencies":{"@arethetypeswrong/cli":"^0.15.4","@swc/jest":"^0.2.36","@types/jest":"^29.5.12","@types/node":"^22.5.4","@typescript-eslint/eslint-plugin":"^8.4.0","@typescript-eslint/parser":"^8.4.0","bunchee":"^5.4.0","eslint":"^8.57.0","eslint-config-next":"14.2.7","eslint-plugin-node":"^11.1.0","jest":"^29.7.0","pnpm":"^9.9.0","rimraf":"^6.0.1","semver":"^7.6.3","typescript":"^5.5.4"},"browserslist":["last 3 years"],"jest":{"moduleDirectories":["node_modules"],"moduleNameMapper":{"^@adam-rocska/invertible$":"<rootDir>/src/index.ts","^@adam-rocska/invertible/pipe$":"<rootDir>/src/pipe/index.ts","^@adam-rocska/invertible/utility$":"<rootDir>/src/utility/index.ts","^!(.*)":"<rootDir>/$1"},"transform":{"^.+\\.(t|j)sx?$":["@swc/jest"]},"testPathIgnorePatterns":["/node_modules/"],"collectCoverageFrom":["src/**/*.ts"],"testTimeout":1000},"scripts":{"clean":"rimraf dist","build":"bunchee","test":"jest --env node","check":"pnpm eslint && pnpm attw --pack"},"_id":"@adam-rocska/invertible@1.1.3","homepage":"https://github.com/adam-rocska/invertible-typescript#readme","_integrity":"sha512-UYYwrMao1V1/LNomp/TC5Sx7C6zcRvdFtWXcAhZ6OnHxbb2156hehLywnmjsyYuSZSmkCloABK5u2s6tK/nQ7A==","_resolved":"/tmp/7b33fcce836cd015f084a7b010472cdd/adam-rocska-invertible-1.1.3.tgz","_from":"file:adam-rocska-invertible-1.1.3.tgz","_nodeVersion":"20.17.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-UYYwrMao1V1/LNomp/TC5Sx7C6zcRvdFtWXcAhZ6OnHxbb2156hehLywnmjsyYuSZSmkCloABK5u2s6tK/nQ7A==","shasum":"ccb53557739fa3043501f2a9cc4911a9fa8c12a9","tarball":"https://registry.npmjs.org/@adam-rocska/invertible/-/invertible-1.1.3.tgz","fileCount":17,"unpackedSize":27901,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGgJcCWwwXcrTGhpzzUy48OAdb/yxnjpDuiBoFXbt0G+AiAhTUJTFEhlwd6huZY7D3L1faz/UOD+5kN/Ni+nAbShKA=="}]},"_npmUser":{"name":"adam-rocska","email":"rocska.adam@gmail.com"},"directories":{},"maintainers":[{"name":"adam-rocska","email":"rocska.adam@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/invertible_1.1.3_1725739647300_0.7406832034368962"},"_hasShrinkwrap":false}},"time":{"created":"2024-08-14T16:22:08.427Z","modified":"2024-09-07T20:07:27.637Z","1.1.1":"2024-08-14T16:22:08.742Z","1.1.2":"2024-08-29T15:18:56.895Z","1.1.3":"2024-09-07T20:07:27.460Z"},"bugs":{"url":"https://github.com/adam-rocska/invertible-typescript/issues"},"author":{"name":"Ádám László Rocska","url":"https://adam-rocska.github.io"},"license":"MIT","homepage":"https://github.com/adam-rocska/invertible-typescript#readme","keywords":["invertible","pipeline","pure","functional","functional programming","functional programming library","inverse","proverse","typescript","strict","type-safe","type safety","stateless","composition"],"repository":{"type":"git","url":"git+https://github.com/adam-rocska/invertible-typescript.git"},"description":"A library for creating and managing invertible functions and type-safe pipelines in TypeScript.","maintainers":[{"name":"adam-rocska","email":"rocska.adam@gmail.com"}],"readme":"# Invertible Functions for TS & JS\n\n[![NPM Version](https://img.shields.io/npm/v/@adam-rocska/invertible.svg)](https://www.npmjs.com/package/@adam-rocska/invertible)\n[![License](https://img.shields.io/npm/l/@adam-rocska/invertible)](https://github.com/adam-rocska/invertible-typescript/blob/master/LICENSE)\n\n| Aspect               | Badge                                                                                                                                                     |\n| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Minified             | [![Minified](https://badgen.net/bundlephobia/min/@adam-rocska/invertible)](https://bundlephobia.com/package/@adam-rocska/invertible)                      |\n| Minified + gzip      | [![Minified + gzip](https://badgen.net/bundlephobia/minzip/@adam-rocska/invertible)](https://bundlephobia.com/package/@adam-rocska/invertible)            |\n| Dependency Count     | [![Dependency Count](https://badgen.net/bundlephobia/dependency-count/@adam-rocska/invertible)](https://bundlephobia.com/package/@adam-rocska/invertible) |\n| Tree-shaking Support | [![Tree-shaking Support](https://badgen.net/bundlephobia/tree-shaking/@adam-rocska/invertible)](https://bundlephobia.com/package/@adam-rocska/invertible) |\n\nA library for creating and managing invertible functions and type-safe pipelines in TypeScript.\n\n## Installation\n\nTo install the package, use npm or yarn:\n\n```zsh\nnpm install @adam-rocska/invertible\n```\n\nor\n\n```zsh\npnpm add @adam-rocska/invertible\n```\n\n## Usage\n\nSimple example:\n\n```ts\nimport {Invertible} from \"@adam-rocska/invertible\";\nimport {pipe} from \"@adam-rocska/invertible/pipe\";\n\ntest(`Simple arithmetics example`, async () => {\n  const increment = Invertible(\n    async (a: number) => a + 1,\n    async (a: number) => a - 1\n  );\n  const double = Invertible(\n    async (a: number) => a * 2,\n    async (a: number) => a / 2\n  );\n\n  expect(await increment(1)).toBe(2);\n  expect(await increment.inverse(2)).toBe(1);\n\n  expect(await double(2)).toBe(4);\n  expect(await double.inverse(4)).toBe(2);\n\n  const pipeExample = pipe(increment)\n    .pipe(double)\n    .pipe(increment)\n    .pipe(double);\n\n  expect(await pipeExample(1)).toBe(10);\n});\n```\n\n## Usefulness Ideas\n\n1. Undo-able user interface actions\n2. Reversible CI pipeline steps and pipelines\n3. Bidirectional data coding\n\n## Contributing\n\nContributions are welcome!\nPlease read the [contributing guidelines](./CONTRIBUTING.md)\nbefore submitting a pull request.\n\n## License\n\nThis project is licensed under the MIT License - see the\n[LICENSE](./LICENSE) file for details.\n\n## Author\n\n[Ádám László Rocska](https://github.com/adam-rocska)\n","readmeFilename":"README.md"}