{"_id":"@americanexpress/vitruvius","_rev":"14-5f04f1cbf9afabc30cdf1cd3b5065036","name":"@americanexpress/vitruvius","description":"Add buildInitialState method to your reducers","dist-tags":{"latest":"3.0.1"},"versions":{"1.1.2":{"name":"@americanexpress/vitruvius","version":"1.1.2","description":"Add buildInitialState method to your reducers","main":"lib/index.js","scripts":{"clean":"rimraf lib","prebuild":"npm run lint && npm run clean","build":"babel src -d lib --copy-files","lint":"eslint ./ --ignore-path .eslintignore --ext .js","pretest":"npm run lint","test":"jest","prepublish":"npm run build","postinstall":"postinstall-build lib \"npm run build\""},"jest":{"preset":"amex-jest-preset","collectCoverageFrom":["src/**/*.js","!**/node_modules/**"],"testPathIgnorePatterns":["fixtures"]},"repository":{"type":"git","url":"git+https://github.com/americanexpress/vitruvius.git"},"keywords":["redux","reducer","initial state"],"author":{"name":"Jimmy King","email":"jimmy.king@aexp.com","url":"https://github.com/jking90"},"license":"Apache-2.0","devDependencies":{"amex-jest-preset":"^3.0.0","babel-cli":"^6.24.0","babel-preset-amex":"^1.0.0","eslint":"^3.18.0","eslint-config-amex":"^4.0.0","immutable":"^3.8.1","jest":"^19.0.2","redux":"^3.6.0","rimraf":"^2.6.1"},"dependencies":{"postinstall-build":"^3.0.0"},"peerDependencies":{"redux":"^3.6.0"},"bugs":{"url":"https://github.com/americanexpress/vitruvius/issues"},"homepage":"https://github.com/americanexpress/vitruvius#readme","_id":"@americanexpress/vitruvius@1.1.2","_npmVersion":"5.0.3","_nodeVersion":"6.10.3","_npmUser":{"name":"jimmyking","email":"hello@jimmyking.me"},"dist":{"integrity":"sha512-uAicbkO3RdYZUA9xduMDPEC3K3vuIbE9pAGjl/BoXOHoRxIqScgCcmoagRzGxjRhqIk72pbHDiiZagmqKoUC0w==","shasum":"0b904932d8c4de9e03e7cc37976cc0bd32fa76f9","tarball":"https://registry.npmjs.org/@americanexpress/vitruvius/-/vitruvius-1.1.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDMgoYLhlP7gaS4ZDdu4c834ehaMSJPyPdKBVb0vP+lzAiEAqgQa3H+QEP3sALSiu6/pFG/kOiCw71DXnrchBfV39X8="}]},"maintainers":[{"name":"jimmyking","email":"hello@jimmyking.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vitruvius-1.1.2.tgz_1497563849166_0.9753320873714983"},"directories":{}},"1.2.1":{"name":"@americanexpress/vitruvius","version":"1.2.1","description":"Add buildInitialState method to your reducers","main":"lib/index.js","scripts":{"clean":"rimraf lib","prebuild":"npm run lint && npm run clean","build":"babel src -d lib --copy-files","lint":"eslint ./ --ignore-path .eslintignore --ext .js","pretest":"npm run lint","test":"jest","prepublishOnly":"npm run build"},"jest":{"preset":"amex-jest-preset","collectCoverageFrom":["src/**/*.js","!**/node_modules/**"],"testPathIgnorePatterns":["fixtures"]},"repository":{"type":"git","url":"git+https://github.com/americanexpress/vitruvius.git"},"keywords":["redux","reducer","immutable","initial state"],"author":{"name":"Jimmy King","email":"jimmy.king@aexp.com","url":"https://github.com/jking90"},"license":"Apache-2.0","devDependencies":{"amex-jest-preset":"^3.3.0","babel-cli":"^6.24.1","babel-preset-amex":"^1.0.1","eslint":"^3.19.0","eslint-config-amex":"^6.0.0","jest":"^20.0.4","rimraf":"^2.6.1"},"dependencies":{"immutable":"^3.8.1","redux":"^3.6.0","redux-immutable":"^4.0.0"},"gitHead":"5ed077712cc3d748917cb91b6db3994ab24c16fd","bugs":{"url":"https://github.com/americanexpress/vitruvius/issues"},"homepage":"https://github.com/americanexpress/vitruvius#readme","_id":"@americanexpress/vitruvius@1.2.1","_npmVersion":"5.0.3","_nodeVersion":"6.10.3","_npmUser":{"name":"jimmyking","email":"hello@jimmyking.me"},"dist":{"integrity":"sha512-s6kiGS3ObB+gRqxaGSApKls3mjrVVKdr7m+/wf/l2HsZvWerSS7muUljg749Ffz1f8icDaWJ7dEnuOTGvCKoGA==","shasum":"cf2cd7b8e2700e907ad23f009fc65a23cea12a56","tarball":"https://registry.npmjs.org/@americanexpress/vitruvius/-/vitruvius-1.2.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCNG4mIm/YTFAZEi6wf8P0CkLdR14g+aZ6GJkrb712aYQIhAJsGNpj79TLGgJotPkScDSYgXMFLJvN7MQwKoS5LnjBZ"}]},"maintainers":[{"name":"anescobar1991","email":"anescobar1991@gmail.com"},{"name":"jimmyking","email":"hello@jimmyking.me"},{"name":"jsmartfo","email":"j_smart_foster@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vitruvius-1.2.1.tgz_1498068775393_0.010334206512197852"},"directories":{}},"2.0.0":{"name":"@americanexpress/vitruvius","version":"2.0.0","description":"Add buildInitialState method to your reducers","main":"lib/index.js","scripts":{"clean":"rimraf lib","prebuild":"npm run lint && npm run clean","build":"babel src -d lib --copy-files","lint":"eslint ./ --ignore-path .eslintignore --ext .js","pretest":"npm run lint","test":"jest","prepublishOnly":"npm run build"},"jest":{"preset":"amex-jest-preset","collectCoverageFrom":["src/**/*.js","!**/node_modules/**"],"testPathIgnorePatterns":["fixtures"]},"repository":{"type":"git","url":"git+https://github.com/americanexpress/vitruvius.git"},"keywords":["redux","reducer","immutable","initial state"],"author":{"name":"Jimmy King","email":"jimmy.king@aexp.com","url":"https://github.com/10xLaCroixDrinker"},"license":"Apache-2.0","devDependencies":{"@babel/cli":"^7.6.4","@babel/core":"^7.6.4","amex-jest-preset":"^5.0.0","babel-preset-amex":"^3.0.0","coveralls":"^3.0.7","eslint":"^6.5.1","eslint-config-amex":"^11.1.0","immutable":"^4.0.0-rc.12","jest":"^24.9.0","redux":"^4.0.4","redux-immutable":"^4.0.0","rimraf":"^3.0.0"},"peerDependencies":{"immutable":"^3||^4","redux":"^3||^4","redux-immutable":"^4.0.0"},"gitHead":"3f034a4cbc3784adbf5a1dfd6d4894a1edae91b3","bugs":{"url":"https://github.com/americanexpress/vitruvius/issues"},"homepage":"https://github.com/americanexpress/vitruvius#readme","_id":"@americanexpress/vitruvius@2.0.0","_nodeVersion":"10.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-Bd1fAEFZkEne6ejunjqmiBaiozgmAp4gyiLu/cEs1P9eez2txsdGQO6dPhO0BRRS/aujpz3z5hve+eJiCVIWhQ==","shasum":"8259b75a3e11268ac66ef5d104e1bff88b9ad03f","tarball":"https://registry.npmjs.org/@americanexpress/vitruvius/-/vitruvius-2.0.0.tgz","fileCount":42,"unpackedSize":123125,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJduJEHCRA9TVsSAnZWagAAKMoP/3d3bgYbuAsqK2iaVRZ1\nl7MtQnWrPPZXnIZywckpfulc/dF0swrx0OHBEcH/KWBE40tmeSSrjj29936K\nLu2p+T0bgc4DSco6MbiHMrRxT1e7IFHtfBIv8ZUYrnxcRYVjs5iaI7PTrc7O\nP3P+I8M+jZdDC8izkWVXvfjNF9cWfBYupQ1SI465CB2+6DzPP2iDwEoNljz/\nbCD1uHdkwWFUMCE3M95Umo4R7XAwHE6Aoe2nhrkpgdSLpRiMr2scSNIPsZlI\nA1aHV5bMYBn9Z6UzfYNb3SsHSonUCd1oWM505Gj3DZNnsvpfXZ2olwC2uSt5\nOKCuHaPi4iDaB9TgQ+gyT05DH2jgK1nlX9vC+GsiFrYjOzlWYF0f3PjcjHLJ\nWTLu5XeQZDPvmi4wVuuoSCHJSvkQLYhHthPF3O9SU5cXuxS8BgKxOv4frZJn\nUiTvOpsofXRKDr5RX9QIzYqMN1fWhcLhlnHNcci5X9hKyAMY8gei11A7/uhA\n99mxwrlI5O/Cz/A2mFheg+gDwLOeOIGt3Kmu//xqqboNPzVF7CR/bqdQB/2m\nEa7RHa4WmkHxPsOuOqyH24UZh+lZXEnit/1NX1GqH7vUJKNNYoAneECgrYTa\nvF/3Rz87LNy+4iL+NQDmj57RXodTOQmm1csb1lZ8DkW3H/82U8uOkbIvNRI6\n61YL\r\n=Wxqk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDNLj1fRGlmSJaaM6Mp6aGfX9vujy6ZScNzl9cRc3h+bQIhAMWC+8Bj6nIEl/DJKtP7RP2NBgDlyFiXiZ0Ex8xD3yPQ"}]},"maintainers":[{"email":"anescobar1991@gmail.com","name":"anescobar1991"},{"email":"hello@jimmyking.me","name":"jimmyking"},{"email":"j_smart_foster@hotmail.com","name":"jsmartfo"},{"email":"i@pixnbits.org","name":"pixnbits"}],"_npmUser":{"name":"jimmyking","email":"hello@jimmyking.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vitruvius_2.0.0_1572376839148_0.3221083480644735"},"_hasShrinkwrap":false},"2.0.2":{"name":"@americanexpress/vitruvius","version":"2.0.2","description":"Add buildInitialState method to your reducers","main":"lib/index.js","scripts":{"clean":"rimraf lib","prebuild":"npm run lint && npm run clean","build":"babel src -d lib --copy-files","lint":"eslint ./ --ignore-path .eslintignore --ext .js","pretest":"npm run lint","test":"jest","test:git-history":"commitlint --from origin/master --to HEAD","test:lockfile":"lockfile-lint -p package-lock.json -t npm -a npm -o https: -c -i","posttest":"npm run test:git-history && npm run test:lockfile","prepublishOnly":"npm run build"},"jest":{"preset":"amex-jest-preset","collectCoverageFrom":["src/**/*.js","!**/node_modules/**"],"testPathIgnorePatterns":["fixtures"]},"repository":{"type":"git","url":"git+https://github.com/americanexpress/vitruvius.git"},"keywords":["redux","reducer","immutable","initial state"],"author":{"name":"Jimmy King","email":"jimmy.king@aexp.com","url":"https://github.com/10xLaCroixDrinker"},"license":"Apache-2.0","devDependencies":{"@babel/cli":"^7.10.0","@babel/core":"^7.10.0","@commitlint/cli":"^8.2.0","@commitlint/config-conventional":"^8.2.0","amex-jest-preset":"^6.1.0","babel-preset-amex":"^3.0.0","coveralls":"^3.0.7","eslint":"^6.5.1","eslint-config-amex":"^11.1.0","husky":"^3.1.0","immutable":"^4.0.0-rc.12","jest":"^24.9.0","lockfile-lint":"^4.1.0","redux":"^4.0.4","redux-immutable":"^4.0.0","rimraf":"^3.0.0"},"peerDependencies":{"immutable":"^3||^4.0.0-rc","redux":"^3||^4","redux-immutable":"^4.0.0"},"husky":{"hooks":{"pre-commit":"npm test","commit-msg":"commitlint -E HUSKY_GIT_PARAMS"}},"gitHead":"f6d42ac6c73ed2cc0bffdb72aafe55c3e4d396a4","bugs":{"url":"https://github.com/americanexpress/vitruvius/issues"},"homepage":"https://github.com/americanexpress/vitruvius#readme","_id":"@americanexpress/vitruvius@2.0.2","_nodeVersion":"12.18.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-OkFP1gPusPtI7W4swdmyuRX+f4APkN40YAddriNIguejicREZeGOaQkDsnFijSgBRLvXCQFsn5gz0ui4NIVJ3w==","shasum":"7325ba00e3c57b0993973787ae50b0f7c72c3c38","tarball":"https://registry.npmjs.org/@americanexpress/vitruvius/-/vitruvius-2.0.2.tgz","fileCount":25,"unpackedSize":46621,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfalOACRA9TVsSAnZWagAABzsP/3RkPfzg9KKxUUGrGYhq\n2V+h3zVlEWVapdUnvKAHfvMzDdoSYe3iQ55iZKz3I86Qgr6nc3uVWR3RqbIg\nM0SZysu3lKRSePROdqXzRDuBvrowefCby/8tGgEfbWXJBNycOeIjuDxcGN2J\nBhWLSlEaWu9+PQFB/Mit06RGraBsI9WFp3Odinx3n7SA4tQerIQK6v2pv9zV\no8ALURclGNOuOHAmu7IFT3Oaa4Uu/IMKJmwLazlgCx3FcVQuPWQl/rHtz+x2\nseAwrdd2GuJSIZ56zIXIXOOcjvG9yljZ+yVvyS/nNQsU9PdZJRmcw9LJ5C/l\n/L8MzoiDH1+SyzK6jP1QVpJBYXBPIZsxbxcAKmDBGt4HNRNgxWtdL3PknKvy\nLdlqWEuuVGTdmS6O8jYJ1O+rjBeidIhVnGQ4GMbsXJ3y9ig6LqcCHRXk++TW\nK5KQ5TjCFF9ve9vh25XGd04uOujcws8titPCxMD1eXSATR/cCDGxS5+FfOVG\n0VDPWBCZpV2vrv6g6cmt8wfx5ySyy7bcfl4zN+Y2m57YiRRbPLqHg28aDiZw\nOforKyfhQyd5xh9q+Knli/OrTOd4AhzOv5+bdBC9fMJ5492HBHm+ZYLiyFta\nsy4FdQBFWC27eBSrg130ZH2AuWOWwif2gDlxhbKaBvcM+atvJ+ysw1S++Q+8\nUmyD\r\n=IDB2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC1loEArA7kBoRMS6MCtcQ9hoUBsv5j+Hil7fl0afijtQIhAJkpvHoFZ503UkosKdM54yQaZVYoiZ8QT4GxSUNCMf/l"}]},"maintainers":[{"name":"amexopensource","email":"open-source-ops@aexp.com"},{"name":"pixnbits","email":"i@pixnbits.org"},{"name":"anescobar1991","email":"anescobar1991@gmail.com"},{"name":"jimmyking","email":"hello@jimmyking.me"},{"name":"jsmartfo","email":"j_smart_foster@hotmail.com"}],"_npmUser":{"name":"jimmyking","email":"hello@jimmyking.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vitruvius_2.0.2_1600803712246_0.004066951867723878"},"_hasShrinkwrap":false},"3.0.1":{"name":"@americanexpress/vitruvius","version":"3.0.1","description":"Add buildInitialState method to your reducers","main":"lib/index.js","scripts":{"clean":"rimraf lib","prebuild":"npm run test:lint && npm run clean","build":"babel src -d lib --copy-files","test":"npm run test:lint && npm run test:unit","test:git-history":"commitlint --from origin/main --to HEAD","test:lint":"eslint ./ --ignore-path .eslintignore --ext .js","test:lockfile":"lockfile-lint -p package-lock.json -t npm -a npm -o https: -c -i","test:unit":"jest","posttest":"npm run test:git-history && npm run test:lockfile","prepublishOnly":"npm run build","prepare":"husky install"},"jest":{"preset":"amex-jest-preset","collectCoverageFrom":["src/**/*.js","!**/node_modules/**"],"testPathIgnorePatterns":["fixtures"]},"repository":{"type":"git","url":"git+https://github.com/americanexpress/vitruvius.git"},"keywords":["redux","reducer","immutable","initial state"],"author":{"name":"Jamie King","email":"jamie.king@aexp.com","url":"https://github.com/10xLaCroixDrinker"},"license":"Apache-2.0","devDependencies":{"@babel/cli":"^7.23.9","@babel/core":"^7.23.9","@commitlint/cli":"^18.6.0","@commitlint/config-conventional":"^18.6.0","@reduxjs/toolkit":"^2.1.0","amex-jest-preset":"^7.0.0","babel-preset-amex":"^4.0.3","coveralls":"^3.1.1","eslint":"^8.56.0","eslint-config-amex":"^16.0.0","eslint-plugin-jest":"^27.6.3","eslint-plugin-jest-dom":"^4.0.3","husky":"^8.0.3","immutable":"^4.3.5","jest":"^29.7.0","lockfile-lint":"^4.12.1","redux":"^5.0.1","redux-immutable":"^4.0.0","rimraf":"^5.0.5"},"peerDependencies":{"immutable":"^3||^4.0.0-rc","redux":"^3||^4||^5","redux-immutable":"^4.0.0"},"_id":"@americanexpress/vitruvius@3.0.1","gitHead":"6fd9e16dd40d9c08da87f472fa63e8e778c3e031","bugs":{"url":"https://github.com/americanexpress/vitruvius/issues"},"homepage":"https://github.com/americanexpress/vitruvius#readme","_nodeVersion":"20.11.0","_npmVersion":"10.2.4","dist":{"integrity":"sha512-2jYK9UcigUDqoBbtB6oKYaXyaY0/xTke0B8QoPgBU7MoySXcf6sz85zYAGyQFu0qdEc6qiFiWn0Xg7gCPXcQyA==","shasum":"3a9fb4b59894ba993c01d3fcb293efbe8d964545","tarball":"https://registry.npmjs.org/@americanexpress/vitruvius/-/vitruvius-3.0.1.tgz","fileCount":34,"unpackedSize":52776,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCPsTPE+/sZdidQu9xRhCNE1mOeXEQCt8tiQu7FfYYZsQIgWjBvRPWrmNG4s8nS5unovyaG/WMByk9QpczAwqJEuLI="}]},"_npmUser":{"name":"amexopensource","email":"open-source-ops@aexp.com"},"directories":{},"maintainers":[{"name":"pixnbits","email":"i@pixnbits.org"},{"name":"anescobar1991","email":"anescobar1991@gmail.com"},{"name":"jsmartfo","email":"j_smart_foster@hotmail.com"},{"name":"amexopensource","email":"open-source-ops@aexp.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vitruvius_3.0.1_1707324362493_0.031365263637210594"},"_hasShrinkwrap":false}},"readme":"# vitruvius\n\n[![npm version](https://badge.fury.io/js/%40americanexpress%2Fvitruvius.svg)](https://badge.fury.io/js/%40americanexpress%2Fvitruvius)\n![Health Check](https://github.com/americanexpress/vitruvius/workflows/Health%20Check/badge.svg)\n\nVitruvius extends redux's `combineReducers` to allow developers to include a\n`buildInitialState` method on their reducer. This allows for the passing of\nlocals to build the initial state that wouldn't normally be available to a\nreducer when setting its initial state. For instance, one could pass some data\nfrom the request object.\n\n> Want to get paid for your contributions to `vitruvius`?\n> Send your resume to oneamex.careers@aexp.com\n\n## Installation\n\n```\n$ npm install --save @americanexpress/vitruvius\n```\n\n## Implementation\n\nBelow is an example of a reducer implementing a `buildInitialState` method and\nan example of vitruvius being implemented.\n\n```js\nimport { Map } from 'immutable';\n\nexport const SOME_ACTION = 'SOME_ACTION';\n\nconst buildInitialState = ({ data } = {}) => new Map({ foo: data || 'bar' });\n\nexport default function reducer(state = buildInitialState(), action) {\n  switch (action.type) {\n    case SOME_ACTION:\n      return state.set('foo', action.data);\n    default:\n      return state;\n  }\n}\n\nreducer.buildInitialState = buildInitialState;\n```\n\n> **TIP**: To extend `combineReducers` from `redux-immutable` instead of `redux`\nimport from `@americanexpress/vitruvius/immutable`.\n\n```js\nimport vitruvius from '@americanexpress/vitruvius';\n\nconst reducer = vitruvius({\n  stuff: stuffReducer,\n  things: thingsReducer,\n  ...otherReducers,\n});\n\nconst store = createStore(reducer, reducer.buildInitialState(locals), enhancer);\n```\n\n\n## Contributing\nWe welcome Your interest in the American Express Open Source Community on Github.\nAny Contributor to any Open Source Project managed by the American Express Open\nSource Community must accept and sign an Agreement indicating agreement to the\nterms below. Except for the rights granted in this Agreement to American Express\nand to recipients of software distributed by American Express, You reserve all\nright, title, and interest, if any, in and to Your Contributions. Please [fill\nout the Agreement](https://cla-assistant.io/americanexpress/).\n\n## License\nAny contributions made under this project will be governed by the [Apache License\n2.0](https://github.com/americanexpress/vitruvius/blob/master/LICENSE.txt).\n\n## Code of Conduct\nThis project adheres to the [American Express Community Guidelines](https://github.com/americanexpress/vitruvius/wiki/Code-of-Conduct).\nBy participating, you are expected to honor these guidelines.\n","maintainers":[{"name":"pixnbits","email":"i@pixnbits.org"},{"name":"anescobar1991","email":"anescobar1991@gmail.com"},{"name":"jsmartfo","email":"j_smart_foster@hotmail.com"},{"name":"amexopensource","email":"open-source-ops@aexp.com"}],"time":{"modified":"2024-02-07T16:46:02.934Z","created":"2017-06-15T21:57:29.252Z","1.1.2":"2017-06-15T21:57:29.252Z","1.2.0":"2017-06-20T18:35:06.996Z","1.2.1":"2017-06-21T18:12:55.479Z","2.0.0":"2019-10-29T19:20:39.326Z","2.0.1":"2020-09-21T21:14:40.984Z","2.0.2":"2020-09-22T19:41:52.366Z","3.0.1":"2024-02-07T16:46:02.664Z"},"homepage":"https://github.com/americanexpress/vitruvius#readme","keywords":["redux","reducer","immutable","initial state"],"repository":{"type":"git","url":"git+https://github.com/americanexpress/vitruvius.git"},"author":{"name":"Jamie King","email":"jamie.king@aexp.com","url":"https://github.com/10xLaCroixDrinker"},"bugs":{"url":"https://github.com/americanexpress/vitruvius/issues"},"license":"Apache-2.0","readmeFilename":"README.md"}