{"_id":"@northscaler/property-decorator","_rev":"55-d59ac7424c85cffdf7013e5e9b5ac274","name":"@northscaler/property-decorator","description":"Provides enriched properties in classes","dist-tags":{"next-0.2":"0.2.0-pre.2","stable-0.1":"0.1.2","latest":"0.2.0"},"versions":{"0.1.0-pre.1":{"name":"@northscaler/property-decorator","version":"0.1.0-pre.1","keywords":["property","properties","entity","entities","models","validation"],"license":"MIT","_id":"@northscaler/property-decorator@0.1.0-pre.1","maintainers":[{"name":"npm_scispike","email":"npm@scispike.com"},{"name":"npm_northscaler","email":"npm@northscaler.com"}],"homepage":"https://gitlab.com/northscaler-public/property-decorator","bugs":{"url":"https://gitlab.com/northscaler-public/property-decorator/issues"},"dist":{"shasum":"8174ea918bb534eb8780752792425d624e9ec547","tarball":"https://registry.npmjs.org/@northscaler/property-decorator/-/property-decorator-0.1.0-pre.1.tgz","fileCount":37,"integrity":"sha512-NTxpcHZe0+7lDvOSMLA3tyx/hGbl+/oCoCmDkLQvgshsiH56548gz4lpzqHDwGco7m/cPI6OrzK09QlQj5jy8A==","signatures":[{"sig":"MEQCICFU0SKISEdrjijl6jCRCrdxUE/gIDWet9l213VoiEePAiBD2/Y5Pvx+zZbnsgftobBMmFKhjMRnb0wi3XByuhoKpw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1065370,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfQDRbCRA9TVsSAnZWagAAqVQP/0I1Sim9w2+ryJqe5Yjk\n1BJ7+8tczfQFVXBsHk8946qrtRrllRP3ENktbTjiL1e+hIJwnyzh2r9XTi/I\nnVt+Tl6DfvqmfObakz+h0Wigs5biLf4OkG5CrA7RgbWT7raSvc7Iqemz3OFI\n/kRAL3GmvmfV9RWVPcllRa8FL+SB98+LxK3Htpsbt7pMvv0ymNYlC+iMI5be\nUtBaffcVQ91iZ5vC1cnG+46nHQmLx31HAw6tEho2t+55kfim4fDSOyAFs2+h\nTzJFH2RvIuZsz8CORnfVBO8lbTcbQnsyV2MYew2OjEYvjwgLjb2YmmEJFEya\n+6A6mlTQOECi9SZueUQsTzypy5QOJBQHuk8EeGacmD3lujha8pwtIvJNfZhd\ntvrfAhdKaLAhe+RVpgLnXKRQl0SvoeEBKo1TeANre0TQphJm+48Toc5pMIt3\nBSUUyl/6ol2NmECFQvbhaDcNhZuERdLaSFiHCHXz/UymiH7kYbENInWmzjoU\nUH4wtKamxRVSag1rDagtGKiujUtTmbKQB7wjy7PhphpG1Uy77/uLS0mRNX4Z\nG86w1xheaCjzs/aTiODuR4bKPRdItSfm/kGw7dozFaJYFfBu6c8s4NYkhLCb\nCxKcdyOSdWj0LmwYMhmoWNvJqjVoBrOERVeEVO/dyjSmZqLZLLLbkwkyEgLh\nbUcS\r\n=R6zK\r\n-----END PGP SIGNATURE-----\r\n"},"babel":{"plugins":[["@babel/plugin-proposal-optional-chaining",{"loose":false}],["@babel/plugin-proposal-decorators",{"legacy":true}],["@babel/plugin-proposal-class-properties",{"legacy":false}]],"presets":[["@babel/preset-env",{"targets":{"node":true}}]],"sourceMaps":"inline"},"husky":{"hooks":{"pre-push":"npm run pre-push","pre-commit":"npm run pre-commit"}},"mocha":{"colors":true,"require":"@babel/register"},"engines":{"node":">=10.3.0"},"gitHead":"3c5b207084c104b61e768c86195004bdcf91885e","scripts":{"i":"mocha --exit 'src/test/integration/**/*.spec.js'","u":"mocha --exit 'src/test/unit/**/*.spec.js'","doc":"jsdoc --verbose -d docs -r -c jsdoc.json -R README.md src/main","lic":"node lic.js > LICENSE","lint":"prettier-standard --lint index.js 'src/**/*.js'","nuke":"rimraf node_modules","test":"run-s transpile unit-integration lint","unit":"nyc -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/unit/**/*.spec.js'","build":"npm test","clean":"rimraf dist docs coverage .nyc_output","format":"prettier-standard --format index.js 'src/**/*.js'","report":"nyc report --reporter=html","prenuke":"npm run clean","postunit":"run-s report","pre-push":"run-s test","prebuild":"npm ci || npm install","test-grep":"mocha --exit 'src/test/{unit,integration}/**/*.spec.js' --grep","transpile":"run-s transpile-main transpile-test","pre-commit":"run-s lint-staged","integration":"nyc -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/integration/**/*.spec.js'","lint-staged":"prettier-standard --lint --staged --check","transpile-main":"babel --delete-dir-on-start --verbose --out-dir dist/main --copy-files src/main","transpile-test":"babel --delete-dir-on-start --verbose --out-dir dist/test --copy-files src/test","postintegration":"run-s report","unit-integration":"nyc --check-coverage -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/unit/**/*.spec.js' 'dist/test/integration/**/*.spec.js'","make-distribution":"run-s transpile doc lic","postunit-integration":"run-s report"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"repository":{"url":"git+https://gitlab.com/northscaler-public/property-decorator.git","type":"git"},"_npmVersion":"6.1.0","description":"Provides enriched properties in classes","directories":{},"_nodeVersion":"10.3.0","dependencies":{"@babel/polyfill":"7.10.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","chai":"4.2.0","acorn":"8.0.1","husky":"4.2.5","jsdoc":"3.6.5","mocha":"8.1.1","fs-extra":"9.0.1","standard":"14.3.4","copyfiles":"2.3.0","@babel/cli":"7.10.5","dirty-chai":"2.0.1","@babel/core":"7.11.1","npm-run-all":"4.1.5","babel-eslint":"10.1.0","@babel/register":"7.10.5","lodash.template":"4.5.0","intercept-stdout":"0.1.2","@babel/preset-env":"7.11.0","prettier-standard":"16.4.1","@babel/plugin-proposal-decorators":"7.10.5","@babel/plugin-proposal-class-properties":"7.10.4"},"_npmOperationalInternal":{"tmp":"tmp/property-decorator_0.1.0-pre.1_1598043227105_0.7381689862677261","host":"s3://npm-registry-packages"}},"0.1.0-pre.2":{"name":"@northscaler/property-decorator","version":"0.1.0-pre.2","keywords":["property","properties","entity","entities","models","validation"],"license":"MIT","_id":"@northscaler/property-decorator@0.1.0-pre.2","maintainers":[{"name":"npm_northscaler","email":"npm@northscaler.com"},{"name":"npm_scispike","email":"npm@scispike.com"}],"homepage":"https://gitlab.com/northscaler-public/property-decorator","bugs":{"url":"https://gitlab.com/northscaler-public/property-decorator/issues"},"dist":{"shasum":"3797290646ea5d0aa2aa5479b829f53c3010bd14","tarball":"https://registry.npmjs.org/@northscaler/property-decorator/-/property-decorator-0.1.0-pre.2.tgz","fileCount":37,"integrity":"sha512-+XIL0oenG36aX8UbYrixFaDgXXBcnNN54+Vj6n389v1c9LnIqeoHHycr8LRNTUG+elqOsOhuoVFwu5J2SQY0Fg==","signatures":[{"sig":"MEUCIDFlzEauGvLM9WWSxKjOWZ5IxbgsZrvCoUuVD4zhJCBOAiEAmF0LyAJMwTjY9HoPf0rvLMhmf8+r6Qv4rBcr5gLLcWY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1065356,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfQDUYCRA9TVsSAnZWagAA48IP+wV+0HWj/Fq+7y8ZZwF6\nJAMC96t32u4+cdb/VBLLpp3B50BdxbbZ5xOkADK9McJRLKVUUU63pBsSw6r0\nRE3frxbPTOif5Dna6KGYNMmwXbqXpCH+SkJYvKU6bxaNwLBK8b2Jfh24qp1X\n4MoD2r/xZgPXtN+wE0fIJU4grGrWe2N7mwGMmXtMtRu+g19UabbvS1L5yzxz\nnyZSLBMBTxCFOtxZmmvYsVOSLoYNT11MD7mY22furXF4AODpoaPNtpInxyon\nU4Udur3TsUM0LFTSbNriFyI8RkKCB9nqZ3K7QkR/cnJes9QbSrAE9z1nCHVc\nhiqf4abJmghapgg1r4dnKOrdkH8IkGelxphtnz525WLQpNhvJOcomzHv9yaB\nVDpKdveH0CUNB0ADsEajaR46wvwkiLJkDILygJ47LqA0doez4uia7QIfE4Qx\n0sk3/E53s0+j5lugJqRb9KYpDi8Z4QCJBuvCnv2KPXaRcwRtA2utJsUC405Y\n/1hXwMvJ+UFGYsiSN/KEY0FvVZzUzHqSgAuGNUjcnfaZqrKNlrk8HXbDSJDn\naHw0T3YyyES6Up5MScshY4pVQmXp67FhwY+vlIibnMWgeNpkanmD3VswO/eV\nURtPNxyXz9dF5HgSz4otEx/kRm1E5XmJwsvC7xZ+m5vHaHawWrl847+xM/hv\nOi4a\r\n=/IN5\r\n-----END PGP SIGNATURE-----\r\n"},"babel":{"plugins":[["@babel/plugin-proposal-optional-chaining",{"loose":false}],["@babel/plugin-proposal-decorators",{"legacy":true}],["@babel/plugin-proposal-class-properties",{"legacy":false}]],"presets":[["@babel/preset-env",{"targets":{"node":true}}]],"sourceMaps":"inline"},"husky":{"hooks":{"pre-push":"npm run pre-push","pre-commit":"npm run pre-commit"}},"mocha":{"colors":true,"require":"@babel/register"},"engines":{"node":">=10.3.0"},"gitHead":"8f292f3c6d19ff96746eb8798285e0411223d81a","scripts":{"i":"mocha --exit 'src/test/integration/**/*.spec.js'","u":"mocha --exit 'src/test/unit/**/*.spec.js'","doc":"jsdoc --verbose -d docs -r -c jsdoc.json -R README.md src/main","lic":"node lic.js > LICENSE","lint":"prettier-standard --lint index.js 'src/**/*.js'","nuke":"rimraf node_modules","test":"run-s transpile unit-integration lint","unit":"nyc -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/unit/**/*.spec.js'","build":"npm test","clean":"rimraf dist docs coverage .nyc_output","format":"prettier-standard --format index.js 'src/**/*.js'","report":"nyc report --reporter=html","prenuke":"npm run clean","postunit":"run-s report","pre-push":"run-s test","prebuild":"npm ci || npm install","test-grep":"mocha --exit 'src/test/{unit,integration}/**/*.spec.js' --grep","transpile":"run-s transpile-main transpile-test","pre-commit":"run-s lint-staged","integration":"nyc -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/integration/**/*.spec.js'","lint-staged":"prettier-standard --lint --staged --check","transpile-main":"babel --delete-dir-on-start --verbose --out-dir dist/main --copy-files src/main","transpile-test":"babel --delete-dir-on-start --verbose --out-dir dist/test --copy-files src/test","postintegration":"run-s report","unit-integration":"nyc --check-coverage -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/unit/**/*.spec.js' 'dist/test/integration/**/*.spec.js'","make-distribution":"run-s transpile doc lic","postunit-integration":"run-s report"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"repository":{"url":"git+https://gitlab.com/northscaler-public/property-decorator.git","type":"git"},"_npmVersion":"6.1.0","description":"Provides enriched properties in classes","directories":{},"_nodeVersion":"10.3.0","dependencies":{"@babel/polyfill":"7.10.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","chai":"4.2.0","acorn":"8.0.1","husky":"4.2.5","jsdoc":"3.6.5","mocha":"8.1.1","fs-extra":"9.0.1","standard":"14.3.4","copyfiles":"2.3.0","@babel/cli":"7.10.5","dirty-chai":"2.0.1","@babel/core":"7.11.1","npm-run-all":"4.1.5","babel-eslint":"10.1.0","@babel/register":"7.10.5","lodash.template":"4.5.0","intercept-stdout":"0.1.2","@babel/preset-env":"7.11.0","prettier-standard":"16.4.1","@babel/plugin-proposal-decorators":"7.10.5","@babel/plugin-proposal-class-properties":"7.10.4"},"_npmOperationalInternal":{"tmp":"tmp/property-decorator_0.1.0-pre.2_1598043415950_0.5164161486637622","host":"s3://npm-registry-packages"}},"0.1.0-pre.3":{"name":"@northscaler/property-decorator","version":"0.1.0-pre.3","keywords":["property","properties","entity","entities","models","validation"],"license":"MIT","_id":"@northscaler/property-decorator@0.1.0-pre.3","maintainers":[{"name":"npm_northscaler","email":"npm@northscaler.com"},{"name":"npm_scispike","email":"npm@scispike.com"}],"homepage":"https://gitlab.com/northscaler-public/property-decorator","bugs":{"url":"https://gitlab.com/northscaler-public/property-decorator/issues"},"dist":{"shasum":"5f41a81d53b732278ce3de3cf62c635c12feb9e6","tarball":"https://registry.npmjs.org/@northscaler/property-decorator/-/property-decorator-0.1.0-pre.3.tgz","fileCount":37,"integrity":"sha512-2p2pF/0bVqgSxoLS832nreZoTtJB9BO9H0KBPF61Qx6mrRrTQ+MIgI4jk2ynDNZiUbsSDtBk+M49jmwXMl0LIA==","signatures":[{"sig":"MEUCIBblgLwPxz3rpHecIY4uacOQ+yawMs9g5gCw43HwimTGAiEAknJAgDL3k6P2Swu6xLGGQFSGunw+Z4uYxe5i+zF8QYQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1065518,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfQDcoCRA9TVsSAnZWagAA+pgQAKNmcBS3ELeUCRbhJDak\n9Tgydkc+4IRYpv+aB0uTEeXWkwWoYEhGb7HQtfTqVZcVz62DIEHgIMqsoOnc\nFK7ka6myuewRHl6FfSz1KmkdpuYUM6G+HSRqDmXxyLdc3ypFL8fJ6tleZXUL\nmWouX4Ltv7o2pX5KP6rdeJLznuf5sfUK2xxcsNAjTDwmnb6hXrTGTtFTa21v\nBhUsFhMoH+thLWt302KxmoYFrvhZYdEQ4RIwzMmmldBTU7HcaRLuR20134hf\nr62NzIStxUnxv2tPeMT126q9OIU9RsP2TKCJjYgF/FfgUmT0s9GGkw1Q5UU4\nWWrMEWCFfGW1mvm1NtPS0WpUJlpxVk30cl0RCJNf6eoFltSAeBBHp/gsRh9J\nPQY3ljzLTWTtGt7jmOtlUh0vCnif2TUEM2LHgrrOQtyIGQL+yjpo+P9GbPQK\ncwubG0GTs81rH4wGJGA6dRypJMf+MEm0fWjhXHjwrVSxNgQWZyCBQEfyUywk\nVqq5GeQHfogeVhigP9s4Zz9idCQZyCcNIcDIXp0BbtMXhin+NdAMPeUqb/HX\noLdJU9tcwmm8o6R7UWLLCKD/tCMSOxcLPNSydCLROrIDy7l6RBgyBTcYwCIa\n3V/UU+Kl47clCTGns1QdvgYm8rX3E5CoQ/fCzd1q+v15xzB3MOTP+NV8kLX3\n+/5u\r\n=3+WX\r\n-----END PGP SIGNATURE-----\r\n"},"babel":{"plugins":[["@babel/plugin-proposal-optional-chaining",{"loose":false}],["@babel/plugin-proposal-decorators",{"legacy":true}],["@babel/plugin-proposal-class-properties",{"legacy":false}]],"presets":[["@babel/preset-env",{"targets":{"node":true}}]],"sourceMaps":"inline"},"husky":{"hooks":{"pre-push":"npm run pre-push","pre-commit":"npm run pre-commit"}},"mocha":{"colors":true,"require":"@babel/register"},"engines":{"node":">=10.3.0"},"gitHead":"e59637c2f718fa35799a352a3aa1568e095939d5","scripts":{"i":"mocha --exit 'src/test/integration/**/*.spec.js'","u":"mocha --exit 'src/test/unit/**/*.spec.js'","doc":"jsdoc --verbose -d docs -r -c jsdoc.json -R README.md src/main","lic":"node lic.js > LICENSE","lint":"prettier-standard --lint index.js 'src/**/*.js'","nuke":"rimraf node_modules","test":"run-s transpile unit-integration lint","unit":"nyc -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/unit/**/*.spec.js'","build":"npm test","clean":"rimraf dist docs coverage .nyc_output","format":"prettier-standard --format index.js 'src/**/*.js'","report":"nyc report --reporter=html","prenuke":"npm run clean","postunit":"run-s report","pre-push":"run-s test","prebuild":"npm ci || npm install","test-grep":"mocha --exit 'src/test/{unit,integration}/**/*.spec.js' --grep","transpile":"run-s transpile-main transpile-test","pre-commit":"run-s lint-staged","integration":"nyc -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/integration/**/*.spec.js'","lint-staged":"prettier-standard --lint --staged --check","transpile-main":"babel --delete-dir-on-start --verbose --out-dir dist/main --copy-files src/main","transpile-test":"babel --delete-dir-on-start --verbose --out-dir dist/test --copy-files src/test","postintegration":"run-s report","unit-integration":"nyc --check-coverage -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/unit/**/*.spec.js' 'dist/test/integration/**/*.spec.js'","make-distribution":"run-s transpile doc lic","postunit-integration":"run-s report"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"repository":{"url":"git+https://gitlab.com/northscaler-public/property-decorator.git","type":"git"},"_npmVersion":"6.1.0","description":"Provides enriched properties in classes","directories":{},"_nodeVersion":"10.3.0","dependencies":{"@babel/polyfill":"7.10.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","chai":"4.2.0","acorn":"8.0.1","husky":"4.2.5","jsdoc":"3.6.5","mocha":"8.1.1","fs-extra":"9.0.1","standard":"14.3.4","copyfiles":"2.3.0","@babel/cli":"7.10.5","dirty-chai":"2.0.1","@babel/core":"7.11.1","npm-run-all":"4.1.5","babel-eslint":"10.1.0","@babel/register":"7.10.5","lodash.template":"4.5.0","intercept-stdout":"0.1.2","@babel/preset-env":"7.11.0","prettier-standard":"16.4.1","@babel/plugin-proposal-decorators":"7.10.5","@babel/plugin-proposal-class-properties":"7.10.4"},"_npmOperationalInternal":{"tmp":"tmp/property-decorator_0.1.0-pre.3_1598043944219_0.513741811652298","host":"s3://npm-registry-packages"}},"0.1.0-pre.4":{"name":"@northscaler/property-decorator","version":"0.1.0-pre.4","keywords":["property","properties","entity","entities","models","validation"],"license":"MIT","_id":"@northscaler/property-decorator@0.1.0-pre.4","maintainers":[{"name":"npm_northscaler","email":"npm@northscaler.com"},{"name":"npm_scispike","email":"npm@scispike.com"}],"homepage":"https://gitlab.com/northscaler-public/property-decorator","bugs":{"url":"https://gitlab.com/northscaler-public/property-decorator/issues"},"dist":{"shasum":"a9ddeeb6142ef43639d202dfda83acf5284cfbc3","tarball":"https://registry.npmjs.org/@northscaler/property-decorator/-/property-decorator-0.1.0-pre.4.tgz","fileCount":39,"integrity":"sha512-FUWpC/YlZ8QIjl/ZiT8JSBdAC1aXI3ZANjDppQctkojLy5ngJaylLpEvOBKaWG6CGR3ncm1UPxrTptZsI23Lhg==","signatures":[{"sig":"MEYCIQCsZayE2ADnDgCmdNJjod3IayksO5aEDhBlfo+htwZ5NAIhAPEZAhkHXGwI/sRSw1S4wiCL64rsqLy9UAv03H3SIJ53","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1066044,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfQDmnCRA9TVsSAnZWagAAiAAQAKLoxnNqTRsrlDprOOfk\n/HnY78JQjpws6Z73rCu59vTNGG/6nGy4DEpYX+Ju0h6+laCrN4z5XcMnHM1Q\nDDvf3i5DEAg2BdqbDEK2b5XP9mLbzLQ9siAOBwOWduS0HRCRETS73strDMno\nADS5XF3rQiLoxbH8LC8s8D0rMfEBDDZ++Zg2It+6GoJdaFKpF14OdOlGneFU\naObNHrAMGJ7LeT3OJ3uFmdjdXAaz6RfIEyJxpwEF1sfBlXMB/rbGTpL3vWeQ\nV+kCeM4JvTdR5QLBeGGsdHzoF2o2UkT9XXZAVu3b7Izq/+EnlcGMqu8FQLFv\nnHPUBkXk3uX7NRhiDj/tWt47BB8JXwL9KmrhEDzmFPxybdNCvAATkh1+FkFF\n3NcNFGnBuydsr9gzS1upoYcyZ3es2yfDgBF5INBuT9Za5jgl2MIBV/v2U9nj\nOzdM1A/1Ihmq/1prakJHPd6vOJ8ZhkfFBlC/2LQhTZ7ln9sI7NSNWgd5hw12\n+crW40JC38J0Lr9K5rrFJQ3lc5VjUbYs3uWRWAtQz2XAz3uL/MWiHfv/wOoH\np7/4qADoh0CUbQIpt45+mg5DecSDdiyUn+ZxupCxoCicuuG37nonDC+jq2MX\n7+Pn4ZQ+l1HLQw643yVWiskfHApxIoWOiYn4sqQ7JEWfAGlJNOEjIJnhUG/R\noMBz\r\n=RlCE\r\n-----END PGP SIGNATURE-----\r\n"},"babel":{"plugins":[["@babel/plugin-proposal-optional-chaining",{"loose":false}],["@babel/plugin-proposal-decorators",{"legacy":true}],["@babel/plugin-proposal-class-properties",{"legacy":false}]],"presets":[["@babel/preset-env",{"targets":{"node":true}}]],"sourceMaps":"inline"},"husky":{"hooks":{"pre-push":"npm run pre-push","pre-commit":"npm run pre-commit"}},"mocha":{"colors":true,"require":"@babel/register"},"engines":{"node":">=10.3.0"},"gitHead":"f3753a880664296586dd6475baaeec36ee0db29b","scripts":{"i":"mocha --exit 'src/test/integration/**/*.spec.js'","u":"mocha --exit 'src/test/unit/**/*.spec.js'","doc":"jsdoc --verbose -d docs -r -c jsdoc.json -R README.md src/main","lic":"node lic.js > LICENSE","lint":"prettier-standard --lint index.js 'src/**/*.js'","nuke":"rimraf node_modules","test":"run-s transpile unit-integration lint","unit":"nyc -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/unit/**/*.spec.js'","build":"npm test","clean":"rimraf dist docs coverage .nyc_output","format":"prettier-standard --format index.js 'src/**/*.js'","report":"nyc report --reporter=html","prenuke":"npm run clean","postunit":"run-s report","pre-push":"run-s test","prebuild":"npm ci || npm install","test-grep":"mocha --exit 'src/test/{unit,integration}/**/*.spec.js' --grep","transpile":"run-s transpile-main transpile-test","pre-commit":"run-s lint-staged","integration":"nyc -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/integration/**/*.spec.js'","lint-staged":"prettier-standard --lint --staged --check","transpile-main":"babel --delete-dir-on-start --verbose --out-dir dist/main --copy-files src/main","transpile-test":"babel --delete-dir-on-start --verbose --out-dir dist/test --copy-files src/test","postintegration":"run-s report","unit-integration":"nyc --check-coverage -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/unit/**/*.spec.js' 'dist/test/integration/**/*.spec.js'","make-distribution":"run-s transpile doc lic","postunit-integration":"run-s report"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"repository":{"url":"git+https://gitlab.com/northscaler-public/property-decorator.git","type":"git"},"_npmVersion":"6.1.0","description":"Provides enriched properties in classes","directories":{},"_nodeVersion":"10.3.0","dependencies":{"@babel/polyfill":"7.10.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","chai":"4.2.0","acorn":"8.0.1","husky":"4.2.5","jsdoc":"3.6.5","mocha":"8.1.1","fs-extra":"9.0.1","standard":"14.3.4","copyfiles":"2.3.0","@babel/cli":"7.10.5","dirty-chai":"2.0.1","@babel/core":"7.11.1","npm-run-all":"4.1.5","babel-eslint":"10.1.0","@babel/register":"7.10.5","lodash.template":"4.5.0","intercept-stdout":"0.1.2","@babel/preset-env":"7.11.0","prettier-standard":"16.4.1","@babel/plugin-proposal-decorators":"7.10.5","@babel/plugin-proposal-class-properties":"7.10.4"},"_npmOperationalInternal":{"tmp":"tmp/property-decorator_0.1.0-pre.4_1598044582124_0.765365308692753","host":"s3://npm-registry-packages"}},"0.1.0-pre.5":{"name":"@northscaler/property-decorator","version":"0.1.0-pre.5","keywords":["property","properties","entity","entities","models","validation"],"license":"MIT","_id":"@northscaler/property-decorator@0.1.0-pre.5","maintainers":[{"name":"npm_northscaler","email":"npm@northscaler.com"},{"name":"npm_scispike","email":"npm@scispike.com"}],"homepage":"https://gitlab.com/northscaler-public/property-decorator","bugs":{"url":"https://gitlab.com/northscaler-public/property-decorator/issues"},"dist":{"shasum":"8921ecc4852f181c028ecb39135f8ce6768492ff","tarball":"https://registry.npmjs.org/@northscaler/property-decorator/-/property-decorator-0.1.0-pre.5.tgz","fileCount":39,"integrity":"sha512-wIkGOlJy101xPPfe/vsT2i3N0sNbnYh/qx0yI0BoYTzu5BZzMf/yD3E331acdD8g9cLix/RyW0JLlfTDo9PnDQ==","signatures":[{"sig":"MEUCIQCEIo6X9/TFReJAOxpRlMUaMFxfHRATqU07Nfh9OruA5gIgCu0siHZ52bTpidZoDOXZ1Cv0OR1xaPOyQYcF1FxcnW8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1066062,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfQRPRCRA9TVsSAnZWagAA68AP/1xLFHEQcR8UqEgpEfM6\nNkRRAxMNQGJR36LnzqgIa/pWKz9KBXhcuXT1b2ntG35au4Azcor4CR5ohtGe\nDRc3PpIIHMQGKlXlh+8eZdtzfnfPnWsc2VdhxI1IOSbrJ7PTCPoAow7LwHO3\n3YNrNl8OfIcW4e6GuQKZxyTjruAG60yuWRMWZdAVQ1YX+fM3NYk/8He0ivC2\nL1Gvx+6o6o0Z3IcgK4R8cMGm7W+V74xJlM9YCz2p7ipcLy0g2kaXauPJve3R\nwxgaogqSsN2Igd77K7F1oD3/3NsbzVP3pN4ix8O+SXAzOhVjZRG3M9aA8hqj\nkMo01uszBkpamsEcg9mAKqGwM2j7vzIYGwb0AkGuAg/WG2wIOoYqh1I8IIvQ\nTGQRXmSW+4nHZMl8uWEqxk4s4BeqI1aA4bcF/CM6rdGRVwpRLHowMo39cyvs\n9Y8tO52Uf1CuvB9yO4XV18fcZoC0e+vA73AgNDbk5SJjHpxAO/4UUUlzvivB\nNJMEQG5NeCQIi4/iRJrktZPctbL4Aw/AUxRu1JT30yteMPr9wE0zOoakgEhn\nlmkij5aAkK/X5ffsaKTLT7E7qrR73RjecQHxOdY7s+xNUbXrZbUfM1RxgVlc\nT1ESRFa+9udb4ppbX1G09xwUUTjETUPz+r0G2whbMn2cvaV8LarAuGuMom5j\nWt/o\r\n=7rLo\r\n-----END PGP SIGNATURE-----\r\n"},"babel":{"plugins":[["@babel/plugin-proposal-optional-chaining",{"loose":false}],["@babel/plugin-proposal-decorators",{"legacy":true}],["@babel/plugin-proposal-class-properties",{"legacy":false}]],"presets":[["@babel/preset-env",{"targets":{"node":true}}]],"sourceMaps":"inline"},"husky":{"hooks":{"pre-push":"npm run pre-push","pre-commit":"npm run pre-commit"}},"mocha":{"colors":true,"require":"@babel/register"},"engines":{"node":">=10.3.0"},"gitHead":"d580e3723eb20a7589204d4384c02fdd16e0cd8b","scripts":{"i":"mocha --exit 'src/test/integration/**/*.spec.js'","u":"mocha --exit 'src/test/unit/**/*.spec.js'","doc":"jsdoc --verbose -d docs -r -c jsdoc.json -R README.md src/main","lic":"node lic.js > LICENSE","lint":"prettier-standard --lint index.js 'src/**/*.js'","nuke":"rimraf node_modules","test":"run-s transpile unit-integration lint","unit":"nyc -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/unit/**/*.spec.js'","build":"npm test","clean":"rimraf dist docs coverage .nyc_output","format":"prettier-standard --format index.js 'src/**/*.js'","report":"nyc report --reporter=html","prenuke":"npm run clean","postunit":"run-s report","pre-push":"run-s test","prebuild":"npm ci || npm install","test-grep":"mocha --exit 'src/test/{unit,integration}/**/*.spec.js' --grep","transpile":"run-s transpile-main transpile-test","pre-commit":"run-s lint-staged","integration":"nyc -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/integration/**/*.spec.js'","lint-staged":"prettier-standard --lint --staged --check 'src/**/*.js'","transpile-main":"babel --delete-dir-on-start --verbose --out-dir dist/main --copy-files src/main","transpile-test":"babel --delete-dir-on-start --verbose --out-dir dist/test --copy-files src/test","postintegration":"run-s report","unit-integration":"nyc --check-coverage -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/unit/**/*.spec.js' 'dist/test/integration/**/*.spec.js'","make-distribution":"run-s transpile doc lic","postunit-integration":"run-s report"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"repository":{"url":"git+https://gitlab.com/northscaler-public/property-decorator.git","type":"git"},"_npmVersion":"6.1.0","description":"Provides enriched properties in classes","directories":{},"_nodeVersion":"10.3.0","dependencies":{"@babel/polyfill":"7.10.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","chai":"4.2.0","acorn":"8.0.1","husky":"4.2.5","jsdoc":"3.6.5","mocha":"8.1.1","fs-extra":"9.0.1","standard":"14.3.4","copyfiles":"2.3.0","@babel/cli":"7.10.5","dirty-chai":"2.0.1","@babel/core":"7.11.1","npm-run-all":"4.1.5","babel-eslint":"10.1.0","@babel/register":"7.10.5","lodash.template":"4.5.0","intercept-stdout":"0.1.2","@babel/preset-env":"7.11.0","prettier-standard":"16.4.1","@babel/plugin-proposal-decorators":"7.10.5","@babel/plugin-proposal-class-properties":"7.10.4"},"_npmOperationalInternal":{"tmp":"tmp/property-decorator_0.1.0-pre.5_1598100432594_0.26665124592230227","host":"s3://npm-registry-packages"}},"0.1.0-pre.6":{"name":"@northscaler/property-decorator","version":"0.1.0-pre.6","keywords":["property","properties","entity","entities","models","validation"],"license":"MIT","_id":"@northscaler/property-decorator@0.1.0-pre.6","maintainers":[{"name":"npm_northscaler","email":"npm@northscaler.com"},{"name":"npm_scispike","email":"npm@scispike.com"}],"homepage":"https://gitlab.com/northscaler-public/property-decorator","bugs":{"url":"https://gitlab.com/northscaler-public/property-decorator/issues"},"dist":{"shasum":"feede3189ea2928a988d95c71c8e90c95a73ed86","tarball":"https://registry.npmjs.org/@northscaler/property-decorator/-/property-decorator-0.1.0-pre.6.tgz","fileCount":39,"integrity":"sha512-iGUU1YNNn2ygpsGcRoGyQ13r30S72IsU4bv2tSkfLnF13b15f2XjrKeGMakZIhQXKrkbCTI137FnHl8gyXIspg==","signatures":[{"sig":"MEQCIGMpxezcciEb/SakG4CTR6GmHRxq0wQUC2acjX8Le9sTAiA03D+MOctKOSi6GKcSPfkldvY/f8NDRl4NgpB00387pg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1066062,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfQR8tCRA9TVsSAnZWagAAy7UP+wQuWW7f3LchGED9U/IS\nvhgHSwOLqh71iiZWlSOHEr7aBfyCtPg5PDjjzD6pslip2v6HCUWil/kEsJGb\nni6v75+HxtDxDJK1NG0/0yoneMNXUGfzuwlXD6grSb23U2B4o2fHade0OJRo\nfcklMnlsqVjvu04ZSNq35lYwwmnTOBq3DQ/YZB5KINMIGjnN0n4L7fhEXwp6\ng3qylC52kIEjYndwOAHQxl+thlMcF7nyFoEob5DQ0rNbEMNdx6/ga2tmDD/j\nQNd2f2xU0tNg6eDYxxySxRtpUky7h8GY3+pYSJ8yCrXAPyZu+PMbYu3GNnC7\nPVznIFW9WlK+xHEecp2nHI+Q6y+ERFgyru1m7Wq5VVRKvWlcCcLQEV/LPoi7\nA3iC4ig2LQgWMHMC388fc/n2DF7sBqJ3+JObckpYQBWny8dI/CqjOiFEEG+7\nCzNsqMshXklqqf+R9S+iRcGGrq60cZ3ji3/Rj518l8Sf2DoHASKRAT5QC3t6\ng4hwIZ3Tw2L5Y0nzyEll3fbSfz3RXix+/d/DXLBZKuyvRUOVUEbHB6IxMYFM\n3gDwZf7FyQtSFXmICyW2/E7cFgtB4YJdUKsE+j8KWXiK/fFmeO/eInTb/ooM\ncxDLxwET/En3ht3tFGlM1zWHD9B+FN4L86V6GYTiHNnbm2i7+o7aMtp/3B7A\nKw7d\r\n=Th+k\r\n-----END PGP SIGNATURE-----\r\n"},"babel":{"plugins":[["@babel/plugin-proposal-optional-chaining",{"loose":false}],["@babel/plugin-proposal-decorators",{"legacy":true}],["@babel/plugin-proposal-class-properties",{"legacy":false}]],"presets":[["@babel/preset-env",{"targets":{"node":true}}]],"sourceMaps":"inline"},"husky":{"hooks":{"pre-push":"npm run pre-push","pre-commit":"npm run pre-commit"}},"mocha":{"colors":true,"require":"@babel/register"},"engines":{"node":">=10.3.0"},"gitHead":"3b97255a6dcb9021cef4ef51812adfeed22d074c","scripts":{"i":"mocha --exit 'src/test/integration/**/*.spec.js'","u":"mocha --exit 'src/test/unit/**/*.spec.js'","doc":"jsdoc --verbose -d docs -r -c jsdoc.json -R README.md src/main","lic":"node lic.js > LICENSE","lint":"prettier-standard --lint index.js 'src/**/*.js'","nuke":"rimraf node_modules","test":"run-s transpile unit-integration lint","unit":"nyc -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/unit/**/*.spec.js'","build":"npm test","clean":"rimraf dist docs coverage .nyc_output","format":"prettier-standard --format index.js 'src/**/*.js'","report":"nyc report --reporter=html","prenuke":"npm run clean","postunit":"run-s report","pre-push":"run-s test","prebuild":"npm ci || npm install","test-grep":"mocha --exit 'src/test/{unit,integration}/**/*.spec.js' --grep","transpile":"run-s transpile-main transpile-test","pre-commit":"run-s lint-staged","integration":"nyc -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/integration/**/*.spec.js'","lint-staged":"prettier-standard --lint --staged --check 'src/**/*.js'","transpile-main":"babel --delete-dir-on-start --verbose --out-dir dist/main --copy-files src/main","transpile-test":"babel --delete-dir-on-start --verbose --out-dir dist/test --copy-files src/test","postintegration":"run-s report","unit-integration":"nyc --check-coverage -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/unit/**/*.spec.js' 'dist/test/integration/**/*.spec.js'","make-distribution":"run-s transpile doc lic","postunit-integration":"run-s report"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"repository":{"url":"git+https://gitlab.com/northscaler-public/property-decorator.git","type":"git"},"_npmVersion":"6.1.0","description":"Provides enriched properties in classes","directories":{},"_nodeVersion":"10.3.0","dependencies":{"@babel/polyfill":"7.10.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","chai":"4.2.0","acorn":"8.0.1","husky":"4.2.5","jsdoc":"3.6.5","mocha":"8.1.1","fs-extra":"9.0.1","standard":"14.3.4","copyfiles":"2.3.0","@babel/cli":"7.10.5","dirty-chai":"2.0.1","@babel/core":"7.11.1","npm-run-all":"4.1.5","babel-eslint":"10.1.0","@babel/register":"7.10.5","lodash.template":"4.5.0","intercept-stdout":"0.1.2","@babel/preset-env":"7.11.0","prettier-standard":"16.4.1","@babel/plugin-proposal-decorators":"7.10.5","@babel/plugin-proposal-class-properties":"7.10.4"},"_npmOperationalInternal":{"tmp":"tmp/property-decorator_0.1.0-pre.6_1598103340632_0.5027943901677108","host":"s3://npm-registry-packages"}},"0.1.0-rc.1":{"name":"@northscaler/property-decorator","version":"0.1.0-rc.1","keywords":["property","properties","entity","entities","models","validation"],"license":"MIT","_id":"@northscaler/property-decorator@0.1.0-rc.1","maintainers":[{"name":"matthewadams","email":"matthew@matthewadams.me"},{"name":"victorynap","email":"djannotta@gmail.com"},{"name":"npm_scispike","email":"npm@scispike.com"},{"name":"npm_northscaler","email":"npm@northscaler.com"}],"homepage":"https://gitlab.com/northscaler-public/property-decorator","bugs":{"url":"https://gitlab.com/northscaler-public/property-decorator/issues"},"dist":{"shasum":"2af5001f34ba8d3421b9e14d7b89901109cf5132","tarball":"https://registry.npmjs.org/@northscaler/property-decorator/-/property-decorator-0.1.0-rc.1.tgz","fileCount":39,"integrity":"sha512-LPEedqEScBGPqC8SlxXevlMRJNOW532Q5WoA1V5/+if43ztabgORz10TOQ0EI7OKK1Jw1UIsfMhi+e2j2W37ng==","signatures":[{"sig":"MEUCICLDBXhtwjlEJ3EGc9YmoucEdrDQaFplIwULQnxMPpDeAiEAxDoatCp8eb55hBW2GfXTw+5m7SkB5Cxm2mWSVXljVcw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1066149,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfkfDaCRA9TVsSAnZWagAAZCwP/Ri2c89GJBMI1Tv/AZkI\nofIfEErKCB3E53g1C8BXR513sj02gvsJPSUEtHA0a5XSFnb9AIhHZqMjATU+\nv0honaFvihaqug09yc/DpMEuR5sFlkGX3xzYWwfj4ToLU5A0/Vc4/l0dkYIL\nkRTGfryAq8N7FTVsO//472mWQTW0kDWAxuPyq5o1TGs9CqxOEZQB97/XhnZ3\nLEvfyPZ0ZzvjhefWvR+Y9z1THbJqr5E3FjZb6zOFz8BSyIORUioohbc6v+Uk\n7TD+Qy0JLFpHrKw/enuUptr38yyrGtVAjZdJ0blBCOGKu6563lO1ZkENJmeh\nt99RShp0LpLxu0f+yyG18aIVU+3VB5n8ezmgCNfK0TwzT4OmggGZCSqv79X7\nRd5ENHGIsjKEZ7CmI+pajJ8kydIe2/Pvo+LQpRVhmxq3F/CnLN7oarFGD7q9\nJ2O5Golwxb0Z5EC4poX15GKmXc/eccIVTmiozshIwIXZfs1KmDodOdDm95al\nRNy5DJPuUpM6HyM1g4Sp/RA3xt8hH8zGkmooGZTseiLdWtRWrTZFDqtiRybm\n235t17BtlPt/Eic3UfFi8gbxq7XpDsiNMgrUVch0yWDmp1d5R/FLWLi7UAMD\nzh8/tSxkmDj+YXOf661sf6S2gQT6LmQDf3/5BO96gmz9kXvmBPEnMgme4PrJ\nQMuU\r\n=wxIF\r\n-----END PGP SIGNATURE-----\r\n"},"babel":{"plugins":[["@babel/plugin-proposal-optional-chaining",{"loose":false}],["@babel/plugin-proposal-decorators",{"legacy":true}],["@babel/plugin-proposal-class-properties",{"legacy":false}]],"presets":[["@babel/preset-env",{"targets":{"node":true}}]],"sourceMaps":"inline"},"husky":{"hooks":{"pre-push":"npm run pre-push","pre-commit":"npm run pre-commit"}},"mocha":{"colors":true,"require":"@babel/register"},"engines":{"node":">=10.3.0"},"gitHead":"7b067080b74ce06098b2c35df0f61e5cc79b8697","scripts":{"i":"mocha --exit 'src/test/integration/**/*.spec.js'","u":"mocha --exit 'src/test/unit/**/*.spec.js'","doc":"jsdoc --verbose -d docs -r -c jsdoc.json -R README.md src/main","lic":"node lic.js > LICENSE","lint":"prettier-standard --lint index.js 'src/**/*.js'","nuke":"rimraf node_modules","test":"run-s transpile unit-integration lint","unit":"nyc -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/unit/**/*.spec.js'","build":"npm test","clean":"rimraf dist docs coverage .nyc_output","format":"prettier-standard --format index.js 'src/**/*.js'","report":"nyc report --reporter=html","prenuke":"npm run clean","postunit":"run-s report","pre-push":"run-s test","prebuild":"npm ci || npm install","test-grep":"mocha --exit 'src/test/{unit,integration}/**/*.spec.js' --grep","transpile":"run-s transpile-main transpile-test","pre-commit":"run-s lint-staged","integration":"nyc -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/integration/**/*.spec.js'","lint-staged":"prettier-standard --lint --staged --check 'src/**/*.js'","transpile-main":"babel --delete-dir-on-start --verbose --out-dir dist/main --copy-files src/main","transpile-test":"babel --delete-dir-on-start --verbose --out-dir dist/test --copy-files src/test","postintegration":"run-s report","unit-integration":"nyc --check-coverage -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/unit/**/*.spec.js' 'dist/test/integration/**/*.spec.js'","make-distribution":"run-s transpile doc lic","postunit-integration":"run-s report"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"repository":{"url":"git+https://gitlab.com/northscaler-public/property-decorator.git","type":"git"},"_npmVersion":"6.1.0","description":"Provides enriched properties in classes","directories":{},"_nodeVersion":"10.3.0","dependencies":{"@babel/polyfill":"7.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","chai":"4.2.0","acorn":"8.0.4","husky":"4.3.0","jsdoc":"3.6.6","mocha":"8.2.0","fs-extra":"9.0.1","standard":"14.3.4","copyfiles":"2.4.0","@babel/cli":"7.12.1","dirty-chai":"2.0.1","@babel/core":"7.12.3","npm-run-all":"4.1.5","babel-eslint":"10.1.0","@babel/register":"7.12.1","lodash.template":"4.5.0","intercept-stdout":"0.1.2","@babel/preset-env":"7.12.1","prettier-standard":"16.4.1","@babel/plugin-proposal-decorators":"7.12.1","@babel/plugin-proposal-class-properties":"7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/property-decorator_0.1.0-rc.1_1603399897897_0.3086555801620121","host":"s3://npm-registry-packages"}},"0.1.0":{"name":"@northscaler/property-decorator","version":"0.1.0","keywords":["property","properties","entity","entities","models","validation"],"license":"MIT","_id":"@northscaler/property-decorator@0.1.0","maintainers":[{"name":"matthewadams","email":"matthew@matthewadams.me"},{"name":"victorynap","email":"djannotta@gmail.com"},{"name":"npm_scispike","email":"npm@scispike.com"},{"name":"npm_northscaler","email":"npm@northscaler.com"}],"homepage":"https://gitlab.com/northscaler-public/property-decorator","bugs":{"url":"https://gitlab.com/northscaler-public/property-decorator/issues"},"dist":{"shasum":"85b18bdb5a164c9ea86089b04490d8b56f26ff12","tarball":"https://registry.npmjs.org/@northscaler/property-decorator/-/property-decorator-0.1.0.tgz","fileCount":39,"integrity":"sha512-KXx+h8UvkdefV5bVTwgv6PcbY2HxxvvAsDu6/7HUVRVdxac0uKe30VTpxrWQxp7rXWrbfks8eH/NpLJBONZbUw==","signatures":[{"sig":"MEYCIQC8At7ZzAhHO1Wtr3SGVXB3ks0h6YA9tSdUPggWQQKseQIhAIqpxAephCmcHv6rqM49wofeL9fRp4sf4A5PBaD1gZap","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1066142,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfrWGqCRA9TVsSAnZWagAA3lkP/1y3qghwbplTzD0UJ/DV\ny/YpC92/bOajUL4p3RfJWG3MBfeiHb4y9k/atoCtBoH70NprQCWwVIergm6/\n7TviSG1Co+W1wcDpILV2L6/cfe0zVkQhMT8fSKdwfiqXg+Xg3v40UhA/HuDD\n2fIZ6qii4NYOCKfJPRr3fMc2Vk9lQUpoScbDvD25g/pKiQvQEj9TJU6/m6v4\nz9dhz06/i+BIfKaMDdMbFLn7kiYvDkqisM0mAaujPBzH6vgb63kkr0QoRxDe\nXnkS6YBcc7sok1TStfal8skYnK7deub2U9+FSLqdR1dIRSYggzlFecdoU2ob\n1B1rdknu7g9U/05k4+Lg+si1qWq3AQENKM5+7jEI+O6gV7OaXV7coTpLAGgr\nALIqozfAt623+ICbaQnLPE0WqH0UReu/kcgXjUve0ZpMqPj+pABMteaOMp2r\ntWDGiirLQV8uP2E6rsEHLKP+R/28jvvuOjnhNTBjlUjHnGksiHOU48EE9Jul\nEAJL9HOhJKUi72UnScFrH9Fnq5ok9kq9ZL9nQKq+TY+mg5R7ud4xfzAjW8Ei\n4sqKwwZH3ZgLUq5mVcygNK2CPkYeMAfxnqaZxotHsPikup6BfJqTwg+B1jTn\nHRm8rwy61R359TyQCvZz8Hzc26ql+1cJrvEOaypUPdgtLkJBX8KV8JnhhwGG\nW9n0\r\n=uwUT\r\n-----END PGP SIGNATURE-----\r\n"},"babel":{"plugins":[["@babel/plugin-proposal-optional-chaining",{"loose":false}],["@babel/plugin-proposal-decorators",{"legacy":true}],["@babel/plugin-proposal-class-properties",{"legacy":false}]],"presets":[["@babel/preset-env",{"targets":{"node":true}}]],"sourceMaps":"both"},"husky":{"hooks":{"pre-push":"npm run pre-push","pre-commit":"npm run pre-commit"}},"mocha":{"colors":true,"require":"@babel/register"},"engines":{"node":">=10.3.0"},"gitHead":"cec71762e2006e3df4e609fc210d19f1c0240f27","scripts":{"i":"mocha --exit 'src/test/integration/**/*.spec.js'","u":"mocha --exit 'src/test/unit/**/*.spec.js'","doc":"jsdoc --verbose -d docs -r -c jsdoc.json -R README.md src/main","lic":"node lic.js > LICENSE","lint":"prettier-standard --lint index.js 'src/**/*.js'","nuke":"rimraf node_modules","test":"run-s transpile unit-integration lint","unit":"nyc -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/unit/**/*.spec.js'","build":"npm test","clean":"rimraf dist docs coverage .nyc_output","format":"prettier-standard --format index.js 'src/**/*.js'","report":"nyc report --reporter=html","prenuke":"npm run clean","postunit":"run-s report","pre-push":"run-s test","prebuild":"npm ci || npm install","test-grep":"mocha --exit 'src/test/{unit,integration}/**/*.spec.js' --grep","transpile":"run-s transpile-main transpile-test","pre-commit":"run-s lint-staged","integration":"nyc -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/integration/**/*.spec.js'","lint-staged":"prettier-standard --lint --staged --check 'src/**/*.js'","transpile-main":"babel --delete-dir-on-start --verbose --out-dir dist/main --copy-files src/main","transpile-test":"babel --delete-dir-on-start --verbose --out-dir dist/test --copy-files src/test","postintegration":"run-s report","unit-integration":"nyc --check-coverage -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/unit/**/*.spec.js' 'dist/test/integration/**/*.spec.js'","make-distribution":"run-s transpile doc lic","postunit-integration":"run-s report"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"repository":{"url":"git+https://gitlab.com/northscaler-public/property-decorator.git","type":"git"},"_npmVersion":"6.1.0","description":"Provides enriched properties in classes","directories":{},"_nodeVersion":"10.3.0","dependencies":{"@babel/polyfill":"7.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","chai":"4.2.0","acorn":"8.0.4","husky":"4.3.0","jsdoc":"3.6.6","mocha":"8.2.0","fs-extra":"9.0.1","standard":"14.3.4","copyfiles":"2.4.0","@babel/cli":"7.12.1","dirty-chai":"2.0.1","@babel/core":"7.12.3","npm-run-all":"4.1.5","babel-eslint":"10.1.0","@babel/register":"7.12.1","lodash.template":"4.5.0","intercept-stdout":"0.1.2","@babel/preset-env":"7.12.1","prettier-standard":"16.4.1","@babel/plugin-proposal-decorators":"7.12.1","@babel/plugin-proposal-class-properties":"7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/property-decorator_0.1.0_1605198249737_0.1190620057238938","host":"s3://npm-registry-packages"}},"0.2.0-pre.1":{"name":"@northscaler/property-decorator","version":"0.2.0-pre.1","keywords":["property","properties","entity","entities","models","validation"],"license":"MIT","_id":"@northscaler/property-decorator@0.2.0-pre.1","maintainers":[{"name":"matthewadams","email":"matthew@matthewadams.me"},{"name":"victorynap","email":"djannotta@gmail.com"},{"name":"npm_scispike","email":"npm@scispike.com"},{"name":"npm_northscaler","email":"npm@northscaler.com"}],"homepage":"https://gitlab.com/northscaler-public/property-decorator","bugs":{"url":"https://gitlab.com/northscaler-public/property-decorator/issues"},"dist":{"shasum":"6fb538955cdb318db1f89b9912e932bfd67df0ee","tarball":"https://registry.npmjs.org/@northscaler/property-decorator/-/property-decorator-0.2.0-pre.1.tgz","fileCount":39,"integrity":"sha512-kgBg/4I5SBpvJ8pRcw2sI848tYoOqP03O/Vpc0ce73t8mxzUecB5ko+sFjqhhImlgetjfzmcehMAAEeXVqdjgg==","signatures":[{"sig":"MEYCIQC+huJqOEckSCtSE/OuLd6VcvLS4fkoxN/v7dmJwfZoVgIhAKco9ZIKNpGCAJE5f/oEbCWY7gAJQOh1dyzzZWSYy24o","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1066148,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfrWggCRA9TVsSAnZWagAASEwQAJhI4vEvA/yf55hv8ZEP\non31E73Lf6lsKvuREUZLOv/t4FYItRdrjrslpT6kFZeVlweGqrS7b63Q+gCy\nmVwJOvBZuGfrMHfG+D0tx4T6Jcz7i/LL08dmwyKwZuOrfu5dE1x+/enIoveJ\nwj1Qyxxdm6sJf8WOxTRV7lo7RZ9Tbe3YFMgFKFfQDwNZZO+/VsPCsYR8b89T\nV5ywnC0yKgcvhFNOH1stCESWpvE9HN78JpOvX1rg7eu0iHBAr13g1vbM7PwX\n8e0i68CGd7Lut5oNs4RJeoEZEohJZJIf2Cx9NmVNaaQBqkE/8KBrKGAxbIZu\nuuNIztqTgo8b6MaCe5/cOd6sbEsCECkVWNgjCQKXtcwH8E37qJUtVohtCRTI\nVRp2OJujkBbzan3iiwhP/07r3ectK8AK9V1KoIzRlnsES0AQbUeJYAN47opz\nyFkGB9NrMLqbOFGaa7he+BmxIqRUilVdhg2EnMB/ssUG/nUK3G4wTcQsW8GI\noZGTd53U4uIzD9NTQu21Laj8v8SBxyHDbSOSumAjePvPv+VZK6L9tlZkvCFF\nhOXiKNRLy6jCc78mdGeST3+v3nzq3z1WwUbBs8yHi647pz9BzA3Z4NsuVRVZ\ne8q75hQzn74q9+8mi2K2oZ4qN9O2LsQss7Y28a+UkM8SfIbe0Oqr/APwLaQ1\np4Sj\r\n=NFa1\r\n-----END PGP SIGNATURE-----\r\n"},"babel":{"plugins":[["@babel/plugin-proposal-optional-chaining",{"loose":false}],["@babel/plugin-proposal-decorators",{"legacy":true}],["@babel/plugin-proposal-class-properties",{"legacy":false}]],"presets":[["@babel/preset-env",{"targets":{"node":true}}]],"sourceMaps":"both"},"husky":{"hooks":{"pre-push":"npm run pre-push","pre-commit":"npm run pre-commit"}},"mocha":{"colors":true,"require":"@babel/register"},"readme":"# `@northscaler/property-decorator`\nProvides behaviorially-rich public properties based on non-public backing properties on JavaScript classes.\n\n## Overview\nUsing this decorator avoids a lot of boilerplate code.\nYou no longer have to manually write:\n* `get` method\n* `set` method\n* `_testSetXxx` method\n* `_doSetXxx` method\n* `withXxx` method\n\n## TL;DR\nWhen you write this:\n```javascript\nconst property = require('@northscaler/property-decorator')\n\nclass MyClass {\n  @property()\n  _foo\n}\n```\nThe decorator defines the equivalent of the following on `MyClass`: \n```javascript\nclass MyClass {\n  _foo\n  \n  get foo() {                                // getter\n    return this._foo\n  }\n  set foo(value) {                           // validating/scrubbing setter\n    this._doSetFoo(this._testSetFoo(value))\n  }\n  _testSetFoo(value) {                       // validates/scrubs value\n    return value\n  }\n  _doSetFoo(value) {                         // actually sets backing property\n    this._foo = value\n  }\n  withFoo(value) {                           // fluent builder pattern method\n    this.foo = value\n    return this\n  }\n}\n```\nNow, you can use `MyClass` like this:\n```javascript\nconst it = new MyClass().withFoo(1) // demonstrates builder pattern\nconsole.log(it.foo) // logs 1\n\nit.foo = 2\nconsole.log(it.foo) // logs 2\n```\n\n## Configuration\nThis decorator depends on currently experimental features of ECMAScript:\n* decorators\n* class properties\n\nMake sure your project configures Babel plugins similar to the following:\n```javascript\n\"plugins\": [\n  [\n    \"@babel/plugin-proposal-decorators\",\n    {\n      \"legacy\": true\n    }\n  ],\n  [\n    \"@babel/plugin-proposal-class-properties\",\n    {\n      \"loose\": false\n    }\n  ]\n]\n```\nYou can copy them straight out of this module's `package.json` if you want to.\n\n## Best practices\nThe idea is that the decorator takes care of the boilerplate and you take care of the important bits.\nThat usually boils down to providing your own method that validates and possibly scrubs the incoming value passed into to a mutator.\n\nFor example, if you only want property `_foo` to contain even integers:\n```javascript\nconst property = require('@northscaler/property-decorator')\n\nclass MyClass {\n  @property()\n  _foo\n\n  _testSetFoo(value) {\n    const n = parseInt(value)\n    if (isNaN(n) || n !== parseFloat(value) || n % 2 !== 0) {\n      throw new Error('given value is not an even integer')\n    }\n    return n // return scrubbed value\n  }\n}\n```\n","engines":{"node":">=10.3.0"},"gitHead":"fc449be2f3a3f355c7cb478559e21d080a4c34df","scripts":{"i":"mocha --exit 'src/test/integration/**/*.spec.js'","u":"mocha --exit 'src/test/unit/**/*.spec.js'","doc":"jsdoc --verbose -d docs -r -c jsdoc.json -R README.md src/main","lic":"node lic.js > LICENSE","lint":"prettier-standard --lint index.js 'src/**/*.js'","nuke":"rimraf node_modules","test":"run-s transpile unit-integration lint","unit":"nyc -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/unit/**/*.spec.js'","build":"npm test","clean":"rimraf dist docs coverage .nyc_output","format":"prettier-standard --format index.js 'src/**/*.js'","report":"nyc report --reporter=html","prenuke":"npm run clean","postunit":"run-s report","pre-push":"run-s test","prebuild":"npm ci || npm install","test-grep":"mocha --exit 'src/test/{unit,integration}/**/*.spec.js' --grep","transpile":"run-s transpile-main transpile-test","pre-commit":"run-s lint-staged","integration":"nyc -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/integration/**/*.spec.js'","lint-staged":"prettier-standard --lint --staged --check 'src/**/*.js'","transpile-main":"babel --delete-dir-on-start --verbose --out-dir dist/main --copy-files src/main","transpile-test":"babel --delete-dir-on-start --verbose --out-dir dist/test --copy-files src/test","postintegration":"run-s report","unit-integration":"nyc --check-coverage -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/unit/**/*.spec.js' 'dist/test/integration/**/*.spec.js'","make-distribution":"run-s transpile doc lic","postunit-integration":"run-s report"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"repository":{"url":"git+https://gitlab.com/northscaler-public/property-decorator.git","type":"git"},"_npmVersion":"6.1.0","description":"Provides enriched properties in classes","directories":{},"_nodeVersion":"10.3.0","dependencies":{"@babel/polyfill":"7.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","chai":"4.2.0","acorn":"8.0.4","husky":"4.3.0","jsdoc":"3.6.6","mocha":"8.2.0","fs-extra":"9.0.1","standard":"14.3.4","copyfiles":"2.4.0","@babel/cli":"7.12.1","dirty-chai":"2.0.1","@babel/core":"7.12.3","npm-run-all":"4.1.5","babel-eslint":"10.1.0","@babel/register":"7.12.1","lodash.template":"4.5.0","intercept-stdout":"0.1.2","@babel/preset-env":"7.12.1","prettier-standard":"16.4.1","@babel/plugin-proposal-decorators":"7.12.1","@babel/plugin-proposal-class-properties":"7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/property-decorator_0.2.0-pre.1_1605199904050_0.20828542175531672","host":"s3://npm-registry-packages"}},"0.2.0-pre.2":{"name":"@northscaler/property-decorator","version":"0.2.0-pre.2","keywords":["property","properties","entity","entities","models","validation"],"license":"MIT","_id":"@northscaler/property-decorator@0.2.0-pre.2","maintainers":[{"name":"matthewadams","email":"matthew@matthewadams.me"},{"name":"victorynap","email":"djannotta@gmail.com"},{"name":"npm_scispike","email":"npm@scispike.com"},{"name":"npm_northscaler","email":"npm@northscaler.com"}],"homepage":"https://gitlab.com/northscaler-public/property-decorator","bugs":{"url":"https://gitlab.com/northscaler-public/property-decorator/issues"},"dist":{"shasum":"deeb61a0c46a7f8263bfc1faaff4b9e9cfa8b8ee","tarball":"https://registry.npmjs.org/@northscaler/property-decorator/-/property-decorator-0.2.0-pre.2.tgz","fileCount":39,"integrity":"sha512-tHfUvk0FEhi1q3Fxm7HlBfGkHRhKVIvOZyyW4lribc3g9CEbUTvH39iTSFteqzDas/yt+16CsLrpzxgpe4btAg==","signatures":[{"sig":"MEQCIED79o7h23i7h0Fr9M6zFyg7go9Je/gycVLMWXTr2xunAiAilEo1F1Wt6ByVbmN5hZx8Wv/uALlv9Ovd64gDf87FJw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1066148,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfrWiTCRA9TVsSAnZWagAAooYQAI9C1H0fFxPt7WkncDGk\nR+LFamV45FC4+aBzqalqQ5+VO3IkmrJUSCS9gTBc79/d6kDcB2l+qrItRGHs\nRn3SuTysXENuFoLSaHBmwHsT5ZUEOmrml33DBbfrGs3UGoKX/j5BRF3PQTnp\nXpHlCN26I9htRHyKfEiwxpSDdSnvPTZ/VknCEsOzOQJjGYz68iZG2795L0A8\n/4QCpn6SSAYFNjHUNC349zVrMzOGU7ce65fcZukFbljENBDdBAuCZQP0o1fp\nS5TDp7RD5CEAZRf83BUZ0fDlqlgvuRw2JZAc8kIBsJCpMl5/KGMpmmL0LEG+\nHmtXsj6BDdUzqkiqXfLcCT46e1KJSPrBNpLWl7IEuhdW3bEa0tEAD8mrTVpu\nzSgrCPSqE714L8ncttyFmoXCja/XGzQA2bEnWpdROAaIhgIj0YsOKkcyKawn\nMV0g1YLS1iEsmqF/mxmpEzYhnX8kq74x9MiFyNN2DV9IXqMF7h6Rnahvrhk/\n69K29HD6E8kic0LaZRcpkvIDQHwIa2E9C2NGSaLKW6vYeLQ2BMGc2uDSFx6G\nipj7/T3Czs2PAoeLGeGzvPLmM3Foit990KRdyGSak8+7TrzRCVks0SdEupzt\nrvMY2e8TNgGNHcnlEp+i0JS+iKUX0S7xRXRjE6CIh99g9SokB9vNqGcbNvQ/\n5jI2\r\n=Hhnd\r\n-----END PGP SIGNATURE-----\r\n"},"babel":{"plugins":[["@babel/plugin-proposal-optional-chaining",{"loose":false}],["@babel/plugin-proposal-decorators",{"legacy":true}],["@babel/plugin-proposal-class-properties",{"legacy":false}]],"presets":[["@babel/preset-env",{"targets":{"node":true}}]],"sourceMaps":"both"},"husky":{"hooks":{"pre-push":"npm run pre-push","pre-commit":"npm run pre-commit"}},"mocha":{"colors":true,"require":"@babel/register"},"readme":"# `@northscaler/property-decorator`\nProvides behaviorially-rich public properties based on non-public backing properties on JavaScript classes.\n\n## Overview\nUsing this decorator avoids a lot of boilerplate code.\nYou no longer have to manually write:\n* `get` method\n* `set` method\n* `_testSetXxx` method\n* `_doSetXxx` method\n* `withXxx` method\n\n## TL;DR\nWhen you write this:\n```javascript\nconst property = require('@northscaler/property-decorator')\n\nclass MyClass {\n  @property()\n  _foo\n}\n```\nThe decorator defines the equivalent of the following on `MyClass`: \n```javascript\nclass MyClass {\n  _foo\n  \n  get foo() {                                // getter\n    return this._foo\n  }\n  set foo(value) {                           // validating/scrubbing setter\n    this._doSetFoo(this._testSetFoo(value))\n  }\n  _testSetFoo(value) {                       // validates/scrubs value\n    return value\n  }\n  _doSetFoo(value) {                         // actually sets backing property\n    this._foo = value\n  }\n  withFoo(value) {                           // fluent builder pattern method\n    this.foo = value\n    return this\n  }\n}\n```\nNow, you can use `MyClass` like this:\n```javascript\nconst it = new MyClass().withFoo(1) // demonstrates builder pattern\nconsole.log(it.foo) // logs 1\n\nit.foo = 2\nconsole.log(it.foo) // logs 2\n```\n\n## Configuration\nThis decorator depends on currently experimental features of ECMAScript:\n* decorators\n* class properties\n\nMake sure your project configures Babel plugins similar to the following:\n```javascript\n\"plugins\": [\n  [\n    \"@babel/plugin-proposal-decorators\",\n    {\n      \"legacy\": true\n    }\n  ],\n  [\n    \"@babel/plugin-proposal-class-properties\",\n    {\n      \"loose\": false\n    }\n  ]\n]\n```\nYou can copy them straight out of this module's `package.json` if you want to.\n\n## Best practices\nThe idea is that the decorator takes care of the boilerplate and you take care of the important bits.\nThat usually boils down to providing your own method that validates and possibly scrubs the incoming value passed into to a mutator.\n\nFor example, if you only want property `_foo` to contain even integers:\n```javascript\nconst property = require('@northscaler/property-decorator')\n\nclass MyClass {\n  @property()\n  _foo\n\n  _testSetFoo(value) {\n    const n = parseInt(value)\n    if (isNaN(n) || n !== parseFloat(value) || n % 2 !== 0) {\n      throw new Error('given value is not an even integer')\n    }\n    return n // return scrubbed value\n  }\n}\n```\n","engines":{"node":">=10.3.0"},"gitHead":"2ec83323ce18bd3fffec6e592b9c282e2b0dc069","scripts":{"i":"mocha --exit 'src/test/integration/**/*.spec.js'","u":"mocha --exit 'src/test/unit/**/*.spec.js'","doc":"jsdoc --verbose -d docs -r -c jsdoc.json -R README.md src/main","lic":"node lic.js > LICENSE","lint":"prettier-standard --lint index.js 'src/**/*.js'","nuke":"rimraf node_modules","test":"run-s transpile unit-integration lint","unit":"nyc -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/unit/**/*.spec.js'","build":"npm test","clean":"rimraf dist docs coverage .nyc_output","format":"prettier-standard --format index.js 'src/**/*.js'","report":"nyc report --reporter=html","prenuke":"npm run clean","postunit":"run-s report","pre-push":"run-s test","prebuild":"npm ci || npm install","test-grep":"mocha --exit 'src/test/{unit,integration}/**/*.spec.js' --grep","transpile":"run-s transpile-main transpile-test","pre-commit":"run-s lint-staged","integration":"nyc -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/integration/**/*.spec.js'","lint-staged":"prettier-standard --lint --staged --check 'src/**/*.js'","transpile-main":"babel --delete-dir-on-start --verbose --out-dir dist/main --copy-files src/main","transpile-test":"babel --delete-dir-on-start --verbose --out-dir dist/test --copy-files src/test","postintegration":"run-s report","unit-integration":"nyc --check-coverage -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/unit/**/*.spec.js' 'dist/test/integration/**/*.spec.js'","make-distribution":"run-s transpile doc lic","postunit-integration":"run-s report"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"repository":{"url":"git+https://gitlab.com/northscaler-public/property-decorator.git","type":"git"},"_npmVersion":"6.1.0","description":"Provides enriched properties in classes","directories":{},"_nodeVersion":"10.3.0","dependencies":{"@babel/polyfill":"7.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","chai":"4.2.0","acorn":"8.0.4","husky":"4.3.0","jsdoc":"3.6.6","mocha":"8.2.0","fs-extra":"9.0.1","standard":"14.3.4","copyfiles":"2.4.0","@babel/cli":"7.12.1","dirty-chai":"2.0.1","@babel/core":"7.12.3","npm-run-all":"4.1.5","babel-eslint":"10.1.0","@babel/register":"7.12.1","lodash.template":"4.5.0","intercept-stdout":"0.1.2","@babel/preset-env":"7.12.1","prettier-standard":"16.4.1","@babel/plugin-proposal-decorators":"7.12.1","@babel/plugin-proposal-class-properties":"7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/property-decorator_0.2.0-pre.2_1605200019256_0.04612000597893906","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"@northscaler/property-decorator","version":"0.1.1","keywords":["property","properties","entity","entities","models","validation"],"license":"MIT","_id":"@northscaler/property-decorator@0.1.1","maintainers":[{"name":"matthewadams","email":"matthew@matthewadams.me"},{"name":"victorynap","email":"djannotta@gmail.com"},{"name":"npm_scispike","email":"npm@scispike.com"},{"name":"npm_northscaler","email":"npm@northscaler.com"}],"homepage":"https://gitlab.com/northscaler-public/property-decorator","bugs":{"url":"https://gitlab.com/northscaler-public/property-decorator/issues"},"dist":{"shasum":"3c5a96e091a6845e9f41b427a20812adcf53c816","tarball":"https://registry.npmjs.org/@northscaler/property-decorator/-/property-decorator-0.1.1.tgz","fileCount":39,"integrity":"sha512-ErfGab7FP3e5ips1lJP7meN3Jy4M6mCrXO6LKl5ZhtXRrMlKCub/xoVM3h+NHG/oLfZ1gMPW3nsI3R8gSZ6mfw==","signatures":[{"sig":"MEUCIQCnBDf9LOVjlbcB0Sc7DMr3Mc5ojk7goE8t8PS8JVR7EAIgGW8Uc/0sI/05LLgV+EjBwct6mDYdZvEUNDBePbh4AFQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1066142,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfrWjYCRA9TVsSAnZWagAArG0P/RFiCv/UA4bbRo6GBvLX\nTty9HFPzpHmaJ1huLJ9efBlXodznHHDT2QUWHJ+xOcVYPQJsOjmMlIDgxa/8\nrmucVP8M1Z3fOV9Jcv6wp6hieA+sJbRpw5H7RqLU+BX6wZsGb4bbrYJy35Di\n1+exzF6TPa3j05LYJatvpwXDSMIBWrUingQQtoNVXZyD9++3dHAYsPM0c3tl\nHJ3BEgBFLSQ/vFoLY4xW9Z0kpahDxrVRE/zGj1Jhqn4mysIPv0Ty92hJIqCU\n2hfhfi/+ag9/4VBnRB4YwMAC/Vm6EabyeAugF0f28lk0rWORMExbKPgmcnkn\nKPI6W4vkYksQ0LLpx7K8BZ4m0uFydHehL4QOrW9YXbF7dAAfNKPDUxXax16L\nnTY0Ct2AKDBozcugMyjbUYFC4HAPphUO95kI/l2v7O0AM7BtTXq9y4swomJS\n08W5uaoUgKj7EqJcpz7ERwtizOuQ62BJaQQBIoGYzA+3dSFBuqGi7yxocSDC\nKhGrp8IPRlx/46zv1Uf6OdUNdUxqyju3a4U2A3/XwdIZ8LzLTxFPsxuvRLbx\nrO5HnTOqEJSYf4gkJz9Ce4myf+YcxDwCw30co/67tc/TyYt5QA/iaxSa4Yyw\nbly/JD7Be/BknQHo5CIoR52Av2qSwB7zYV0HydfrgZvr57atqlrk7n5VT+gM\n1K54\r\n=qYWs\r\n-----END PGP SIGNATURE-----\r\n"},"babel":{"plugins":[["@babel/plugin-proposal-optional-chaining",{"loose":false}],["@babel/plugin-proposal-decorators",{"legacy":true}],["@babel/plugin-proposal-class-properties",{"legacy":false}]],"presets":[["@babel/preset-env",{"targets":{"node":true}}]],"sourceMaps":"both"},"husky":{"hooks":{"pre-push":"npm run pre-push","pre-commit":"npm run pre-commit"}},"mocha":{"colors":true,"require":"@babel/register"},"engines":{"node":">=10.3.0"},"gitHead":"d92eeca22dec35472b48e1797fed3281cfe7c5e2","scripts":{"i":"mocha --exit 'src/test/integration/**/*.spec.js'","u":"mocha --exit 'src/test/unit/**/*.spec.js'","doc":"jsdoc --verbose -d docs -r -c jsdoc.json -R README.md src/main","lic":"node lic.js > LICENSE","lint":"prettier-standard --lint index.js 'src/**/*.js'","nuke":"rimraf node_modules","test":"run-s transpile unit-integration lint","unit":"nyc -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/unit/**/*.spec.js'","build":"npm test","clean":"rimraf dist docs coverage .nyc_output","format":"prettier-standard --format index.js 'src/**/*.js'","report":"nyc report --reporter=html","prenuke":"npm run clean","postunit":"run-s report","pre-push":"run-s test","prebuild":"npm ci || npm install","test-grep":"mocha --exit 'src/test/{unit,integration}/**/*.spec.js' --grep","transpile":"run-s transpile-main transpile-test","pre-commit":"run-s lint-staged","integration":"nyc -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/integration/**/*.spec.js'","lint-staged":"prettier-standard --lint --staged --check 'src/**/*.js'","transpile-main":"babel --delete-dir-on-start --verbose --out-dir dist/main --copy-files src/main","transpile-test":"babel --delete-dir-on-start --verbose --out-dir dist/test --copy-files src/test","postintegration":"run-s report","unit-integration":"nyc --check-coverage -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/unit/**/*.spec.js' 'dist/test/integration/**/*.spec.js'","make-distribution":"run-s transpile doc lic","postunit-integration":"run-s report"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"repository":{"url":"git+https://gitlab.com/northscaler-public/property-decorator.git","type":"git"},"_npmVersion":"6.1.0","description":"Provides enriched properties in classes","directories":{},"_nodeVersion":"10.3.0","dependencies":{"@babel/polyfill":"7.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","chai":"4.2.0","acorn":"8.0.4","husky":"4.3.0","jsdoc":"3.6.6","mocha":"8.2.0","fs-extra":"9.0.1","standard":"14.3.4","copyfiles":"2.4.0","@babel/cli":"7.12.1","dirty-chai":"2.0.1","@babel/core":"7.12.3","npm-run-all":"4.1.5","babel-eslint":"10.1.0","@babel/register":"7.12.1","lodash.template":"4.5.0","intercept-stdout":"0.1.2","@babel/preset-env":"7.12.1","prettier-standard":"16.4.1","@babel/plugin-proposal-decorators":"7.12.1","@babel/plugin-proposal-class-properties":"7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/property-decorator_0.1.1_1605200087573_0.14811807579865954","host":"s3://npm-registry-packages"}},"0.1.2":{"name":"@northscaler/property-decorator","version":"0.1.2","keywords":["property","properties","entity","entities","models","validation"],"license":"MIT","_id":"@northscaler/property-decorator@0.1.2","maintainers":[{"name":"matthewadams","email":"matthew@matthewadams.me"},{"name":"victorynap","email":"djannotta@gmail.com"},{"name":"npm_scispike","email":"npm@scispike.com"},{"name":"npm_northscaler","email":"npm@northscaler.com"}],"homepage":"https://gitlab.com/northscaler-public/property-decorator","bugs":{"url":"https://gitlab.com/northscaler-public/property-decorator/issues"},"dist":{"shasum":"ed549e75bea53f8190859bb8ac73fed020dffde5","tarball":"https://registry.npmjs.org/@northscaler/property-decorator/-/property-decorator-0.1.2.tgz","fileCount":39,"integrity":"sha512-AgAFD88YYZxIQfb0bKtCl79OoKQIrHxZE4Ygii4uyfPRPgaulBExPGCAI+br7g30yizunqVJZ/rQt2VT8dfDbw==","signatures":[{"sig":"MEUCIGuV0Zj1oxRJm+LFJINHdh2XZ+DZM3R5yFdiN4wFW0eZAiEA8lRIj4nOEnj6WsjBqPOc59yRgl2oVV49IqTLaiSVBIQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1066170,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfrYhXCRA9TVsSAnZWagAA6O8QAJuzhbH8ovxa4PzSImh9\nZmIgsHEvGGRHPQ1zg9RADpnlQEo12KcGYXttX9i4207TR6oB6ZHAinCKkV1i\nLWx9cgzBaFfzQ2mNySgUPrfUssZNoopxy+ftnIWfU1O/XYuzctM08NN5gG02\nsyTkTEzgaQmHJ7eJ6Uj7J6+a0p00kzeuzDm3ELROy9gOUrgVhsUgLS360fVH\nlrl6Y+aZcUAt5Xpe0nz5DxEQLJehKSymO6AFDr1UjxheSTRcYn6toQ32Ta3+\nAEyvorEVF46y/XfSX2RjUOeJ3HuWITW2T2mMgabIvpEmVXbxm7JOFR3y4XuF\ntzN96WNBzjBsLaFEU+0X2gnRpwu9SzZRfM1Or6dxfQO0oGGHDLTCfTPuH64Z\nL9Bwm8sNOvEa61b22+iu2Ti5b0JHFwPPAXhA0dC8seK5uCfzrF1y5PQIJFmm\n0zU+IaKBp5KFtTsVt+Z0eTGMYZsK3ts4V63bZd8zh+/sbz7jHt0GL2ILam5z\n0zlBbqmLp3HMaqa6YUmM2k34QYQdZqP1PeDgiS0icobQZn1Nx6zYtJNIywm1\nPlFPyWKZNT+n2R6rQLMRctPa99LLnzqOSRux/GIAaOsbcJmsbHgaesoQidHB\nuWQnT4wSbvhdO11avKdP4h5ULUJ/Mh1U7rxFdg/SMel9uwyh803d4yKLQHI6\nAbrq\r\n=5zYt\r\n-----END PGP SIGNATURE-----\r\n"},"babel":{"plugins":[["@babel/plugin-proposal-optional-chaining",{"loose":false}],["@babel/plugin-proposal-decorators",{"legacy":true}],["@babel/plugin-proposal-class-properties",{"legacy":false}]],"presets":[["@babel/preset-env",{"targets":{"node":true}}]],"sourceMaps":"both"},"husky":{"hooks":{"pre-push":"npm run pre-push","pre-commit":"npm run pre-commit"}},"mocha":{"colors":true,"require":"@babel/register"},"volta":{"node":"12.19.0"},"readme":"# `@northscaler/property-decorator`\nProvides behaviorially-rich public properties based on non-public backing properties on JavaScript classes.\n\n## Overview\nUsing this decorator avoids a lot of boilerplate code.\nYou no longer have to manually write:\n* `get` method\n* `set` method\n* `_testSetXxx` method\n* `_doSetXxx` method\n* `withXxx` method\n\n## TL;DR\nWhen you write this:\n```javascript\nconst property = require('@northscaler/property-decorator')\n\nclass MyClass {\n  @property()\n  _foo\n}\n```\nThe decorator defines the equivalent of the following on `MyClass`: \n```javascript\nclass MyClass {\n  _foo\n  \n  get foo() {                                // getter\n    return this._foo\n  }\n  set foo(value) {                           // validating/scrubbing setter\n    this._doSetFoo(this._testSetFoo(value))\n  }\n  _testSetFoo(value) {                       // validates/scrubs value\n    return value\n  }\n  _doSetFoo(value) {                         // actually sets backing property\n    this._foo = value\n  }\n  withFoo(value) {                           // fluent builder pattern method\n    this.foo = value\n    return this\n  }\n}\n```\nNow, you can use `MyClass` like this:\n```javascript\nconst it = new MyClass().withFoo(1) // demonstrates builder pattern\nconsole.log(it.foo) // logs 1\n\nit.foo = 2\nconsole.log(it.foo) // logs 2\n```\n\n## Configuration\nThis decorator depends on currently experimental features of ECMAScript:\n* decorators\n* class properties\n\nMake sure your project configures Babel plugins similar to the following:\n```javascript\n\"plugins\": [\n  [\n    \"@babel/plugin-proposal-decorators\",\n    {\n      \"legacy\": true\n    }\n  ],\n  [\n    \"@babel/plugin-proposal-class-properties\",\n    {\n      \"loose\": false\n    }\n  ]\n]\n```\nYou can copy them straight out of this module's `package.json` if you want to.\n\n## Best practices\nThe idea is that the decorator takes care of the boilerplate and you take care of the important bits.\nThat usually boils down to providing your own method that validates and possibly scrubs the incoming value passed into to a mutator.\n\nFor example, if you only want property `_foo` to contain even integers:\n```javascript\nconst property = require('@northscaler/property-decorator')\n\nclass MyClass {\n  @property()\n  _foo\n\n  _testSetFoo(value) {\n    const n = parseInt(value)\n    if (isNaN(n) || n !== parseFloat(value) || n % 2 !== 0) {\n      throw new Error('given value is not an even integer')\n    }\n    return n // return scrubbed value\n  }\n}\n```\n","engines":{"node":">=10.3.0"},"gitHead":"5cee3ccd7a1aa24fc68702be3a00094534b6c387","scripts":{"i":"mocha --exit 'src/test/integration/**/*.spec.js'","u":"mocha --exit 'src/test/unit/**/*.spec.js'","doc":"jsdoc --verbose -d docs -r -c jsdoc.json -R README.md src/main","lic":"node lic.js > LICENSE","lint":"standard --lint index.js 'src/**/*.js'","nuke":"rimraf node_modules","test":"run-s transpile unit-integration lint","unit":"nyc -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/unit/**/*.spec.js'","build":"npm test","clean":"rimraf dist docs coverage .nyc_output","format":"standard --format index.js 'src/**/*.js'","report":"nyc report --reporter=html","prenuke":"npm run clean","postunit":"run-s report","pre-push":"run-s test","prebuild":"npm ci || npm install","test-grep":"mocha --exit 'src/test/{unit,integration}/**/*.spec.js' --grep","transpile":"run-s transpile-main transpile-test","pre-commit":"run-s lint-staged","integration":"nyc -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/integration/**/*.spec.js'","lint-staged":"standard --lint --staged --check 'src/**/*.js'","transpile-main":"babel --delete-dir-on-start --verbose --out-dir dist/main --copy-files src/main","transpile-test":"babel --delete-dir-on-start --verbose --out-dir dist/test --copy-files src/test","postintegration":"run-s report","unit-integration":"nyc --check-coverage -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/unit/**/*.spec.js' 'dist/test/integration/**/*.spec.js'","make-distribution":"run-s transpile doc lic","postunit-integration":"run-s report"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"standard":{"parser":"babel-eslint"},"repository":{"url":"git+https://gitlab.com/northscaler-public/property-decorator.git","type":"git"},"_npmVersion":"6.1.0","description":"Provides enriched properties in classes","directories":{},"_nodeVersion":"10.3.0","dependencies":{"@babel/polyfill":"7.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","chai":"4.2.0","acorn":"8.0.4","husky":"4.3.0","jsdoc":"3.6.6","mocha":"8.2.1","fs-extra":"9.0.1","standard":"16.0.2","copyfiles":"2.4.0","@babel/cli":"7.12.1","dirty-chai":"2.0.1","@babel/core":"7.12.3","npm-run-all":"4.1.5","babel-eslint":"10.1.0","@babel/register":"7.12.1","lodash.template":"4.5.0","intercept-stdout":"0.1.2","@babel/preset-env":"7.12.1","@babel/plugin-proposal-decorators":"7.12.1","@babel/plugin-proposal-class-properties":"7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/property-decorator_0.1.2_1605208151326_0.07359746497420527","host":"s3://npm-registry-packages"}},"0.2.0-rc.0":{"name":"@northscaler/property-decorator","version":"0.2.0-rc.0","keywords":["property","properties","entity","entities","models","validation"],"license":"MIT","_id":"@northscaler/property-decorator@0.2.0-rc.0","maintainers":[{"name":"ballista-admin","email":"npm@ballista.com"},{"name":"npm_northscaler","email":"npm@northscaler.com"},{"name":"npm_scispike","email":"npm@scispike.com"},{"name":"victorynap","email":"djannotta@gmail.com"}],"homepage":"https://gitlab.com/northscaler-public/property-decorator","bugs":{"url":"https://gitlab.com/northscaler-public/property-decorator/issues"},"dist":{"shasum":"8a1e98c55c3206836ee79d84869bd7400962547e","tarball":"https://registry.npmjs.org/@northscaler/property-decorator/-/property-decorator-0.2.0-rc.0.tgz","fileCount":42,"integrity":"sha512-dy9U/XYqNR9cNDneSDcOODe8bBUFramw7aefQQRMG9YR0RKaXmGjdwkVO4hNRsXZwHXNJIwbCfHkME6Grtpqew==","signatures":[{"sig":"MEUCIQDV4sDsxsjaS1/B7R6SvrVdCE39DijMRu+RB6Pi4VpHfQIgW65a+HSjotgOs5irhfMemEEYAUKo++1qH4YJoA53fcQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1076820},"babel":{"plugins":[["@babel/plugin-proposal-optional-chaining",{"loose":false}],["@babel/plugin-proposal-decorators",{"legacy":true}],["@babel/plugin-proposal-class-properties",{"legacy":false}]],"presets":[["@babel/preset-env",{"targets":{"node":true}}]],"sourceMaps":"both"},"husky":{"hooks":{"pre-push":"npm run pre-push","pre-commit":"npm run pre-commit"}},"mocha":{"colors":true,"require":"@babel/register"},"volta":{"node":"12.19.0"},"engines":{"node":">=10.3.0"},"gitHead":"012c355d25b7ddb4e512abf3b60008f067e53d8a","scripts":{"i":"mocha --exit 'src/test/integration/**/*.spec.js'","u":"mocha --exit 'src/test/unit/**/*.spec.js'","doc":"jsdoc --verbose -d docs -r -c jsdoc.json -R README.md src/main","lic":"node lic.js > LICENSE","lint":"standard --lint index.js 'src/**/*.js'","nuke":"rimraf node_modules","test":"run-s transpile unit-integration lint","unit":"nyc -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/unit/**/*.spec.js'","build":"npm test","clean":"rimraf dist docs coverage .nyc_output","format":"standard --format index.js 'src/**/*.js'","report":"nyc report --reporter=html","prenuke":"npm run clean","postunit":"run-s report","pre-push":"run-s test","prebuild":"npm ci || npm install","test-grep":"mocha --exit 'src/test/{unit,integration}/**/*.spec.js' --grep","transpile":"run-s transpile-main transpile-test","pre-commit":"run-s lint-staged","integration":"nyc -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/integration/**/*.spec.js'","lint-staged":"standard --lint --staged --check 'src/**/*.js'","transpile-main":"babel --delete-dir-on-start --verbose --out-dir dist/main --copy-files src/main","transpile-test":"babel --delete-dir-on-start --verbose --out-dir dist/test --copy-files src/test","postintegration":"run-s report","unit-integration":"nyc --check-coverage -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/unit/**/*.spec.js' 'dist/test/integration/**/*.spec.js'","make-distribution":"run-s transpile doc lic","postunit-integration":"run-s report"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"standard":{"parser":"babel-eslint"},"repository":{"url":"git+https://gitlab.com/northscaler-public/property-decorator.git","type":"git"},"_npmVersion":"9.8.1","description":"Provides enriched properties in classes","directories":{},"_nodeVersion":"18.18.0","dependencies":{"@babel/polyfill":"7.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","chai":"4.2.0","acorn":"8.0.4","husky":"4.3.8","jsdoc":"4.0.2","mocha":"10.2.0","fs-extra":"9.0.1","standard":"16.0.2","copyfiles":"2.4.0","@babel/cli":"7.23.0","dirty-chai":"2.0.1","@babel/core":"7.12.3","npm-run-all":"4.1.5","babel-eslint":"10.1.0","@babel/register":"7.12.1","lodash.template":"4.5.0","intercept-stdout":"0.1.2","@babel/preset-env":"7.12.1","@babel/plugin-proposal-decorators":"7.12.1","@babel/plugin-proposal-class-properties":"7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/property-decorator_0.2.0-rc.0_1696197504078_0.6038754692357626","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"@northscaler/property-decorator","version":"0.2.0","keywords":["property","properties","entity","entities","models","validation"],"license":"MIT","_id":"@northscaler/property-decorator@0.2.0","maintainers":[{"name":"ballista-admin","email":"npm@ballista.com"},{"name":"npm_northscaler","email":"npm@northscaler.com"},{"name":"npm_scispike","email":"npm@scispike.com"},{"name":"victorynap","email":"djannotta@gmail.com"}],"homepage":"https://gitlab.com/northscaler-public/property-decorator","bugs":{"url":"https://gitlab.com/northscaler-public/property-decorator/issues"},"dist":{"shasum":"5b9acebcf9476f164ba938cc73020395cfdfdfa4","tarball":"https://registry.npmjs.org/@northscaler/property-decorator/-/property-decorator-0.2.0.tgz","fileCount":42,"integrity":"sha512-0YSaWeMcLDBvfwQjdtQYR+sHqQTS+dspo9lqvkgWbD0BVjKWfpf7V667uGgh7YqwoFlmf01bqCR3kjUIVcpAJQ==","signatures":[{"sig":"MEUCIGOyCwScnxnbYdSofFG6OanD6FcCQTAVhM1Ko3JkyeUfAiEAg+lhVuCYlf2hpqdRvS5UjSsuGcNDQ6R0ZoCwPJOuQlo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1076815},"babel":{"plugins":[["@babel/plugin-proposal-optional-chaining",{"loose":false}],["@babel/plugin-proposal-decorators",{"legacy":true}],["@babel/plugin-proposal-class-properties",{"legacy":false}]],"presets":[["@babel/preset-env",{"targets":{"node":true}}]],"sourceMaps":"both"},"husky":{"hooks":{"pre-push":"npm run pre-push","pre-commit":"npm run pre-commit"}},"mocha":{"colors":true,"require":"@babel/register"},"volta":{"node":"12.19.0"},"engines":{"node":">=10.3.0"},"gitHead":"4caeec71d681ecbd1a855a1ef2dcfeb5f22f74c3","scripts":{"i":"mocha --exit 'src/test/integration/**/*.spec.js'","u":"mocha --exit 'src/test/unit/**/*.spec.js'","doc":"jsdoc --verbose -d docs -r -c jsdoc.json -R README.md src/main","lic":"node lic.js > LICENSE","lint":"standard --lint index.js 'src/**/*.js'","nuke":"rimraf node_modules","test":"run-s transpile unit-integration lint","unit":"nyc -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/unit/**/*.spec.js'","build":"npm test","clean":"rimraf dist docs coverage .nyc_output","format":"standard --format index.js 'src/**/*.js'","report":"nyc report --reporter=html","prenuke":"npm run clean","postunit":"run-s report","pre-push":"run-s test","prebuild":"npm ci || npm install","test-grep":"mocha --exit 'src/test/{unit,integration}/**/*.spec.js' --grep","transpile":"run-s transpile-main transpile-test","pre-commit":"run-s lint-staged","integration":"nyc -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/integration/**/*.spec.js'","lint-staged":"standard --lint --staged --check 'src/**/*.js'","transpile-main":"babel --delete-dir-on-start --verbose --out-dir dist/main --copy-files src/main","transpile-test":"babel --delete-dir-on-start --verbose --out-dir dist/test --copy-files src/test","postintegration":"run-s report","unit-integration":"nyc --check-coverage -x 'dist/test' --exclude-after-remap false mocha --exit 'dist/test/unit/**/*.spec.js' 'dist/test/integration/**/*.spec.js'","make-distribution":"run-s transpile doc lic","postunit-integration":"run-s report"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"standard":{"parser":"babel-eslint"},"repository":{"url":"git+https://gitlab.com/northscaler-public/property-decorator.git","type":"git"},"_npmVersion":"9.8.1","description":"Provides enriched properties in classes","directories":{},"_nodeVersion":"18.18.0","dependencies":{"@babel/polyfill":"7.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","chai":"4.2.0","acorn":"8.0.4","husky":"4.3.8","jsdoc":"4.0.2","mocha":"10.2.0","fs-extra":"9.0.1","standard":"16.0.2","copyfiles":"2.4.0","@babel/cli":"7.23.0","dirty-chai":"2.0.1","@babel/core":"7.12.3","npm-run-all":"4.1.5","babel-eslint":"10.1.0","@babel/register":"7.12.1","lodash.template":"4.5.0","intercept-stdout":"0.1.2","@babel/preset-env":"7.12.1","@babel/plugin-proposal-decorators":"7.12.1","@babel/plugin-proposal-class-properties":"7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/property-decorator_0.2.0_1696197536543_0.8482745427112697","host":"s3://npm-registry-packages"}}},"time":{"created":"2020-08-21T20:53:46.888Z","modified":"2024-05-29T18:07:47.357Z","0.1.0-pre.1":"2020-08-21T20:53:47.320Z","0.1.0-pre.2":"2020-08-21T20:56:56.229Z","0.1.0-pre.3":"2020-08-21T21:05:44.399Z","0.1.0-pre.4":"2020-08-21T21:16:22.703Z","0.1.0-pre.5":"2020-08-22T12:47:12.897Z","0.1.0-pre.6":"2020-08-22T13:35:40.799Z","0.1.0-rc.1":"2020-10-22T20:51:38.086Z","0.1.0":"2020-11-12T16:24:09.905Z","0.2.0-pre.1":"2020-11-12T16:51:44.241Z","0.2.0-pre.2":"2020-11-12T16:53:39.430Z","0.1.1":"2020-11-12T16:54:47.877Z","0.1.2":"2020-11-12T19:09:11.526Z","0.2.0-rc.0":"2023-10-01T21:58:24.293Z","0.2.0":"2023-10-01T21:58:56.825Z"},"maintainers":[{"email":"npm@northscaler.com","name":"npm_northscaler"},{"email":"npm@scispike.com","name":"npm_scispike"},{"email":"djannotta@gmail.com","name":"victorynap"}],"repository":{"url":"git+https://gitlab.com/northscaler-public/property-decorator.git","type":"git"},"keywords":["property","properties","entity","entities","models","validation"],"license":"MIT","homepage":"https://gitlab.com/northscaler-public/property-decorator","bugs":{"url":"https://gitlab.com/northscaler-public/property-decorator/issues"},"readme":"# `@northscaler/property-decorator`\nProvides behaviorially-rich public properties based on non-public backing properties on JavaScript classes.\n\n## Overview\nUsing this decorator avoids a lot of boilerplate code.\nYou no longer have to manually write:\n* `get` method\n* `set` method\n* `_testSetXxx` method\n* `_doSetXxx` method\n* `withXxx` method\n\n## TL;DR\nWhen you write this:\n```javascript\nconst property = require('@northscaler/property-decorator')\n\nclass MyClass {\n  @property()\n  _foo\n}\n```\nThe decorator defines the equivalent of the following on `MyClass`: \n```javascript\nclass MyClass {\n  _foo\n  \n  get foo() {                                // getter\n    return this._foo\n  }\n  set foo(value) {                           // validating/scrubbing setter\n    this._doSetFoo(this._testSetFoo(value))\n  }\n  _testSetFoo(value) {                       // validates/scrubs value\n    return value\n  }\n  _doSetFoo(value) {                         // actually sets backing property\n    this._foo = value\n  }\n  withFoo(value) {                           // fluent builder pattern method\n    this.foo = value\n    return this\n  }\n}\n```\nNow, you can use `MyClass` like this:\n```javascript\nconst it = new MyClass().withFoo(1) // demonstrates builder pattern\nconsole.log(it.foo) // logs 1\n\nit.foo = 2\nconsole.log(it.foo) // logs 2\n```\n\n## Configuration\nThis decorator depends on currently experimental features of ECMAScript:\n* decorators\n* class properties\n\nMake sure your project configures Babel plugins similar to the following:\n```javascript\n\"plugins\": [\n  [\n    \"@babel/plugin-proposal-decorators\",\n    {\n      \"legacy\": true\n    }\n  ],\n  [\n    \"@babel/plugin-proposal-class-properties\",\n    {\n      \"loose\": false\n    }\n  ]\n]\n```\nYou can copy them straight out of this module's `package.json` if you want to.\n\n## Best practices\nThe idea is that the decorator takes care of the boilerplate and you take care of the important bits.\nThat usually boils down to providing your own method that validates and possibly scrubs the incoming value passed into to a mutator.\n\nFor example, if you only want property `_foo` to contain even integers:\n```javascript\nconst property = require('@northscaler/property-decorator')\n\nclass MyClass {\n  @property()\n  _foo\n\n  _testSetFoo(value) {\n    const n = parseInt(value)\n    if (isNaN(n) || n !== parseFloat(value) || n % 2 !== 0) {\n      throw new Error('given value is not an even integer')\n    }\n    return n // return scrubbed value\n  }\n}\n```\n","readmeFilename":"README.md"}