{"_id":"@anywhichway/privatize","_rev":"2-d168962022f5d6d99a54988cad2e15be","name":"@anywhichway/privatize","dist-tags":{"latest":"0.0.2-b"},"versions":{"0.0.1-b":{"name":"@anywhichway/privatize","version":"0.0.1-b","description":"Inheritable or instance level closure based fully private properties for JavaScript. Add one line of code to existing classes.","engines":{},"license":"MIT","scripts":{"prepare":"cp index.js ./browser/privatize.js"},"repository":{"type":"git","url":"git+https://github.com/anywhichway/privatize.git"},"keywords":["private","privatize","privates"],"author":{"name":"Simon Y. Blackwell","email":"syblackwell@anywhichway.com","url":"http://www.github.com/anywhichway"},"bugs":{"url":"https://github.com/anywhichway/privatize/issues"},"homepage":"https://github.com/anywhichway/privatize#readme","devDependencies":{"benchmark":"^2.1.3","blanket":"^1.2.3","chai":"^3.4.1","codacy-coverage":"^2.0.0","codeclimate-test-reporter":"^0.2.0","istanbul":"^0.4.2","mocha":"^2.3.4","benchtest":"^2.0.2"},"dependencies":{},"gitHead":"6f7ad0058ed4e38a247d8a28ed6303648d3a1747","_id":"@anywhichway/privatize@0.0.1-b","_npmVersion":"5.6.0","_nodeVersion":"11.6.0","_npmUser":{"name":"anywhichway","email":"syblackwell@anywhichway.com"},"dist":{"integrity":"sha512-jfLTELykLPdKzkXj080+dYlKo8d2iDX2vEE7EGFhyGNXrXrFKuUjD0/mFfmsRxDXG64tCu2eBgDJNq5/IdhCtg==","shasum":"48f338bbb0a0dc59839b74870100108aba833883","tarball":"https://registry.npmjs.org/@anywhichway/privatize/-/privatize-0.0.1-b.tgz","fileCount":9,"unpackedSize":9470,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcX21nCRA9TVsSAnZWagAADT0P/A447ikEK0WMFH6v2Znb\nUTyuAHaSUJB9RVVMuHvPbswSQgOynTqtRcGgBiaaYqzhbmxkPT+b4ZnCWpRu\ndjulsfDL01Em8xTKQVu3XX1rdHvy29g4Jltth3iU8rMSMLaOtk3e/AX9Hsu+\nBy2wrvpGeB2lT4ttUk99U0g7r3tzNA1ejhhq9wsQ+Dc9LKtrkVAs7AQYsAWl\nvbAFQ0c7q31nyWYMx3oohYXr4dP4fElzPDGQr3xLHZauZDMYbNTFtFAqWeBo\nWoNpOc2L2zjIQPKMWqbLK8ezyNWeMxOV6QxqAwICjyH5EyPT8rVpYrLKw327\nrU/vlmNKQDop1Cp67pEjmzRbG8TUJ0Go/wmz/icEpr2v3UY21zVUAftMxSLp\nDTWp1n0GFd1wBRwgmOKoaVMpKbKTIAOHw6pTkURjzjH6TmA3dEDy73R8TTeh\n276KWXw3pwfV53fTd8kYaAFIJu1Z4jUOx8vv9PPlk689IsVCh/p1+lpOX6bO\nFSQx2dMSvj/rsSAvkEd/hWGBzpwPIvNrp5alf8V6/Dk2KAjuaC7D+YdpFksJ\nqjmIq7/jPfd3p2dW9QTtmJNwGKcTvzZU+Vxq9sUJwbuocRJ1gIRs82djlX+7\newX0tJNxTGnjDCAKbUN8lbQo26og5JW4e5YVqFkZFayIZJytthST00ccAKh+\nHxnV\r\n=ecdA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDmcQD7lEZsx50fCiIzdprs47LIHYepOw9JXj503aStEAIhAL6bipy1XruXDceWoOIg6MZfnZ0aP0V7Rd8BFQLrSbWj"}]},"maintainers":[{"name":"anywhichway","email":"syblackwell@anywhichway.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/privatize_0.0.1-b_1549757799284_0.9298093072633982"},"_hasShrinkwrap":false},"0.0.2-b":{"name":"@anywhichway/privatize","version":"0.0.2-b","description":"Inheritable or instance level closure based fully private properties for JavaScript. Add one line of code to existing classes.","engines":{},"license":"MIT","scripts":{"prepare":"cp index.js ./browser/privatize.js"},"repository":{"type":"git","url":"git+https://github.com/anywhichway/privatize.git"},"keywords":["private","privatize","privates"],"author":{"name":"Simon Y. Blackwell","email":"syblackwell@anywhichway.com","url":"http://www.github.com/anywhichway"},"bugs":{"url":"https://github.com/anywhichway/privatize/issues"},"homepage":"https://github.com/anywhichway/privatize#readme","devDependencies":{"benchmark":"^2.1.3","blanket":"^1.2.3","chai":"^3.4.1","codacy-coverage":"^2.0.0","codeclimate-test-reporter":"^0.2.0","istanbul":"^0.4.2","mocha":"^2.3.4","benchtest":"^2.0.2"},"dependencies":{},"gitHead":"e97eebe2042dcace7ead33d8d74e4e3f9518f2b8","_id":"@anywhichway/privatize@0.0.2-b","_npmVersion":"5.6.0","_nodeVersion":"11.6.0","_npmUser":{"name":"anywhichway","email":"syblackwell@anywhichway.com"},"dist":{"integrity":"sha512-DDNB5WfdItalYExkUNy9Ags1Cfl4HVlpIfRGAUSKwdS+Y3bPktIseqxkf4r4ED9HTiaoWg7RVrSR9pxS0wxukw==","shasum":"9d44b38c661721c6662096f181ae372530074ec2","tarball":"https://registry.npmjs.org/@anywhichway/privatize/-/privatize-0.0.2-b.tgz","fileCount":9,"unpackedSize":9695,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcX3BICRA9TVsSAnZWagAAJCEP+QETqztmx2ZClf5Q3xvc\nMe64/Vbqmy/ejAbvmhzSCCOkXSBWMCm+W7CrsqTsh/QG6EteOPqNUm7yBvSN\nZWVaz/itkztsXAJI5IEs6I08FGWEwoe9fNL4bODHH8jd9KM2SUZ5GLfglf4s\nghr9yqizLOnfjGK+YS61oLoZ0pJznVYWG45Z1XfKb4jJxefUHHj94gLBPbxe\nFifvsLQbfAXvY9WLHi8oSDbptF5moTB05cG90RKj+gSgAehciI7oFbNkYFk2\n5yadSaIrxF+ZaacCkrrdY9abpMx/MC6zXCgq6jp8W7Bh7R6oHVVl00ey9xr/\nQpWzSzjbEmbngAcA0KpLaLM8YXZRNbQwWVLJyBwz7F93FRnKlZtmxcbU82iR\nVeZPnjFy7CkdBoEB2+7QDREibGxttHyQCpDZ53Dca70k6Vc7JBM64Sd4n/RL\ncGM7kQ8BXVo6JfN098WTm4gJ1O+ZUkfelSfGVIQ+7wkJ0na/s3tCsFSMLMZj\nwlpmwslT8+XlK9SvjBH96HULWGfCIGXfG2hEFGtJxSPdlcQFRg6tsRIvKCxH\nDc56o6bodQZX4BAlKUDHOTK/mzo6R8gI61TLOIuVvNe/xuAixlvebCBlLdnq\nXsXcX0MEMjHki0HirlqH7xHljc+rs638/HeNc8GByLTRCI/sv1D5gvm1Vx88\n+20o\r\n=41Oj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEuUYjF5TlKfh7YWx2lrUQfx66991fDnzeC+PhEpc9RfAiEAkW9ChOCNiUtGpCPwItb0+5IiDYep8MuUZ0ZbjNZ37ig="}]},"maintainers":[{"name":"anywhichway","email":"syblackwell@anywhichway.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/privatize_0.0.2-b_1549758535849_0.299801290907862"},"_hasShrinkwrap":false}},"time":{"created":"2019-02-10T00:16:39.096Z","0.0.1-b":"2019-02-10T00:16:39.429Z","modified":"2022-04-04T14:27:55.220Z","0.0.2-b":"2019-02-10T00:28:55.982Z"},"maintainers":[{"name":"anywhichway","email":"syblackwell@anywhichway.com"}],"description":"Inheritable or instance level closure based fully private properties for JavaScript. Add one line of code to existing classes.","homepage":"https://github.com/anywhichway/privatize#readme","keywords":["private","privatize","privates"],"repository":{"type":"git","url":"git+https://github.com/anywhichway/privatize.git"},"author":{"name":"Simon Y. Blackwell","email":"syblackwell@anywhichway.com","url":"http://www.github.com/anywhichway"},"bugs":{"url":"https://github.com/anywhichway/privatize/issues"},"license":"MIT","readme":"# privatize\r\n\r\nInheritable or instance level closure based fully private properties for JavaScript. Add one line of code to existing classes.\r\n\r\n## Installation\r\n\r\nnpm install @anywhichway/privatize\r\n\r\n## Usage\r\n\r\nJust call privatize with the target object and the private data at the beginning of your constructor, right after `super` if `super` is needed. If you want inheritable methods to use the data, then add a class reference as a third argument at the level you wish to inherit from.\r\n\r\n```\r\nconst privatize = require(\"@anywhichway/privatize\");\r\n// or load using script tag in browser\r\n\r\nclass Named {\r\n\tconstructor(name) {\r\n\t\tprivatize(this,{name},Named);\r\n\t}\r\n\tgetName() {\r\n\t\treturn this.name;\r\n\t}\r\n}\r\n\r\nclass AbstractPerson extends Named {\r\n\tconstructor(name) {\r\n\t\tsuper(name);\r\n\t}\r\n}\r\n\r\nclass Person extends AbstractPerson {\r\n\tconstructor(name) {\r\n\t\tsuper(name);\r\n\t}\r\n\tsetName(name) {\r\n\t\tthis.name = name.toUpperCase();\r\n\t}\r\n}\r\n\r\nconst person1 = new Person(\"joe\"),\r\n\tperson2 = new Person(\"jane\");\r\n\r\nconsole.log(person1); // object but can't see name\r\nconsole.log(person1.name); // undefined\r\nconsole.log(person1.getName()); // joe\r\nconsole.log(person2); // object but can't see name\r\nconsole.log(person2.name); // undefined\r\nconsole.log(person2.getName()); // jane\r\nconsole.log(person1.setName(person1.getName())) // undefined\r\nconsole.log(person1.getName()); // JOE\r\nconsole.log(person2.getName()); // jane\r\n\r\n```\r\n\r\n## Updates (reverse chronological order)\r\n\r\n2019-02-09 v0.0.2b - Fixed `instanceof` checks\r\n\r\n2019-02-09 v0.0.1b - Initial public release\r\n\r\n## License\r\n\r\nMIT\r\n","readmeFilename":"README.md"}