{"_id":"@egodigital/nef","_rev":"11-b3aa0304944a29d53369509f61e59f2e","name":"@egodigital/nef","dist-tags":{"latest":"3.1.0"},"versions":{"1.0.0":{"name":"@egodigital/nef","version":"1.0.0","description":"Managed Extensibility Framework like library written for Node.js","main":"lib/index.js","private":false,"directories":{"lib":"lib"},"scripts":{"build":"(rm -r ./lib || true) && (tsc && tsc -d)","deploy":"npm install && npm audit fix && npm run build && npm publish","doc":"(rm -r ./doc || true) && (typedoc --out ./doc ./src)"},"repository":{"type":"git","url":"git+https://github.com/egodigital/nef.git"},"keywords":["node","classes","mef","node","extensibility","framework","service","typescript","decorator","annotation","attribute","contract"],"author":{"name":"e.GO Digital GmbH, Aachen, Germany"},"license":"LGPL-3.0","bugs":{"url":"https://github.com/egodigital/nef/issues"},"homepage":"https://github.com/egodigital/nef#readme","dependencies":{"@types/node":"^10.14.15","fast-glob":"^3.0.4","lodash":"^4.17.15"},"devDependencies":{"@egodigital/tsconfig":"^1.2.0","@types/lodash":"^4.14.136","tslint":"^5.18.0","typedoc":"^0.15.0","typescript":"^3.5.3"},"gitHead":"419ce8e318f56a78d65411d882fad2aad23fa612","_id":"@egodigital/nef@1.0.0","_nodeVersion":"12.7.0","_npmVersion":"6.10.0","dist":{"integrity":"sha512-qm2vnEe3Lw0LHj9EoT4hoV30fxVkmjaqwu03u7uriJS9RQfCnHAWpPOaJtHY7K7FPS20dImtLl0fpBl5TrpgZw==","shasum":"92df4471729f9f4e775b07e2e63aeb8676fc31e0","tarball":"https://registry.npmjs.org/@egodigital/nef/-/nef-1.0.0.tgz","fileCount":21,"unpackedSize":61146,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdUSCtCRA9TVsSAnZWagAA6YsP/0IP64PcS+MrPYZ1NTjj\n2OHXMyI06vywm5yQy6tLSoI5tiPSYKDHCVNAom6UA6seqKJqJ1GFiB1fR2bJ\nB/y14FZUvdwVe+UureJtgWd6tu/5zxDusHjyw6/6ng3ICGQzGLBwQTqxxV3e\niwZMJ6487OM3M/Zl7ZLrk1NJkSUrCuDaExt2FWcRMfBoTOSXU6ZVt7agODaK\n3CzGlGLhrimwNSaifoiZSXarrnZnUKqyhBsjAMVX7s8aSWIIEk14ZnUikWOg\nZXTRlPW6D4oMyZWJb96NMIQwT5qObSIp/nkJfEL8cKrwWQ2ZjUDi9k2BGIUT\nAyNWaqMmpX49v/iMJ+dnLh9cpka0kwhq26wkwVwFDLTSCwoyIN58GROWeyWO\nOz0Jp5pc/aJpY4Wl/2qL+PkyGVd6LOq72Z6My5WZV4jIGJ4O3PpO4lP/eqZk\nj45/o5JHLReBLCI9h3RSvK3Pt2jpXnGLO4786gZF1DOos5pYAjDtVUFEtteB\nDaLgd1yqftPmfr4oxfBHrBHuYfwVLIW9EJ9iGLFOwudL4Qz22hVmFH++JvIX\nZkeC+Rjv5DRH5mhCGp/zhHu2ko4T9sUaYpLLANyr612fLuMDRU5IN8UyuX2e\nr0ypCfTBttQ0VqN62IQuGJZyAYTJHiGZVXNc50GtaezJZJcnB5dEeU5qo8wQ\nNn7l\r\n=h3MX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEBtf1/lefpMy09Ewo5jpJ0e/9ZVM8Ngh0GDLZpqq3VXAiBJEep/OU0ZHbHZfii9kawCIwtrwC3CJbbRuiq9eTP3+Q=="}]},"maintainers":[{"name":"mkloubert","email":"marcel.kloubert@gmx.net"},{"name":"mkloubertego","email":"marcel.kloubert@e-go-digital.com"},{"name":"ekegodigital","email":"eric.kesseler@e-go-digital.com"}],"_npmUser":{"name":"mkloubertego","email":"marcel.kloubert@e-go-digital.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nef_1.0.0_1565597868373_0.3115928220709143"},"_hasShrinkwrap":false},"2.0.0":{"name":"@egodigital/nef","version":"2.0.0","description":"Managed Extensibility Framework like library written for Node.js","main":"lib/index.js","private":false,"directories":{"lib":"lib"},"scripts":{"build":"(rm -r ./lib || true) && (tsc && tsc -d)","build_and_test":"npm run build && npm run test","deploy":"npm install && npm audit fix && npm run build_and_test && npm publish","doc":"(rm -r ./doc || true) && (typedoc --out ./doc ./src)","sandbox":"npm run build && node ./lib/sandbox.js","test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/egodigital/nef.git"},"keywords":["node","classes","mef","node","extensibility","framework","service","typescript","decorator","annotation","attribute","contract"],"author":{"name":"e.GO Digital GmbH, Aachen, Germany"},"license":"LGPL-3.0","bugs":{"url":"https://github.com/egodigital/nef/issues"},"homepage":"https://github.com/egodigital/nef#readme","dependencies":{"@types/lodash":"^4.14.149","@types/node":"^10.17.13","fast-glob":"^3.1.1","lodash":"^4.17.15"},"devDependencies":{"@egodigital/tsconfig":"^1.3.0","tslint":"^5.20.1","typedoc":"^0.15.6","typescript":"^3.7.4"},"gitHead":"83028d54a69a0b68a68591f36153e2b838067db2","_id":"@egodigital/nef@2.0.0","_nodeVersion":"12.13.1","_npmVersion":"6.13.4","dist":{"integrity":"sha512-8eZ/dQ/4Sjowp4r7ZJENCJaEicI+96Ilz9g40BtWddFiDxk0vDK3uzubYflMdfFQUwe9xBeiVKrlAQ6UBRt+yg==","shasum":"f066111a4686c78da0b179ee916a726ad4083020","tarball":"https://registry.npmjs.org/@egodigital/nef/-/nef-2.0.0.tgz","fileCount":21,"unpackedSize":61323,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeEtNZCRA9TVsSAnZWagAAeLwP/28uBzAzeWMwaTx2r9r6\ngsKi/2w79xVVTxqAYtDwLq89CdjDA/kibo36U0yHP3t9imz3pHFIc544u9ta\nr1c52cXGGiHnwT6WU+2/lxARQC9vgH5zxlmH+FWZTw4Y2h3m3SWfpgxnb34I\n6xhhyBEYMRBVQCzpdZUlP6URhluBZuD1gAGgzMFh2pAQ8rpH9Ox6AQ+lUCy+\nZzEethkAH42agdEA7bv6ex5vjAHs/OgwcSG+IE6m2bsKnVySkpvAFladmJuC\nzG1RwZdvH+NxCMzgf/mVh4GlMM5hIgQOBHhf11btRhCLKcSDT1AyjEVSJ4sH\nowNlmDBIF+Gy1EK9feLDX0Bv9vIcfiU9WA1DIW2g+kC4123ZVhtxemadBUpJ\n//UUaNtYtDiyXoNWOSPmtQ6iRfEVmNmRAojUsUi27WrTjQ6ib07Bj/FT1Jx4\n/4HM7nQxkpXaM4P6cDxCkd+5YrIoS4TNaw3IIZQv3dikiO5GuKyqK0hRVH9t\n7Mun5Yb4yCscU73Hv3UfTQggKBJSvC8BYKe95BIQj3EW2vPzrvQVkaG1JjTv\nWAA+/v5NGmDpQcBeWh9kyTI42eu0ZTG2iGRk+Vza9lYejjbkOliSg1pH+sJZ\noph+hOwLT5wTQcLv1x3ntTbMDzdfJLJW1IVHNo9rQenilnjYar9+/fsYIpou\nr0qG\r\n=EzkP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID64AuAWTGPOsqy7FqcVLH7mCoqwYek3GLZfEHt/PhXyAiEA/ItIGcCRf/5FMP8e1RDJsG0G6yH6fEd5ATSa3Tb8Ihc="}]},"maintainers":[{"name":"ekegodigital","email":"eric.kesseler@e-go-digital.com"},{"name":"mkloubert","email":"marcel.kloubert@gmx.net"},{"name":"mkloubertego","email":"marcel.kloubert@e-go-digital.com"}],"_npmUser":{"name":"mkloubertego","email":"marcel.kloubert@e-go-digital.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nef_2.0.0_1578292056519_0.9002156276971081"},"_hasShrinkwrap":false},"3.0.0":{"name":"@egodigital/nef","version":"3.0.0","description":"Managed Extensibility Framework like library written for Node.js","main":"lib/index.js","private":false,"directories":{"lib":"lib"},"scripts":{"build":"(rm -r ./lib || true) && (tsc && tsc -d)","build_and_test":"npm run build && npm run test","deploy":"npm install && npm audit fix && npm run build_and_test && npm publish","doc":"(rm -r ./doc || true) && (typedoc --out ./doc ./src)","sandbox":"npm run build && node ./lib/sandbox.js","test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/egodigital/nef.git"},"keywords":["node","classes","mef","node","extensibility","framework","service","typescript","decorator","annotation","attribute","contract"],"author":{"name":"e.GO Digital GmbH, Aachen, Germany"},"license":"LGPL-3.0","bugs":{"url":"https://github.com/egodigital/nef/issues"},"homepage":"https://github.com/egodigital/nef#readme","dependencies":{"@types/lodash":"^4.14.149","@types/node":"^10.17.13","fast-glob":"^3.1.1","lodash":"^4.17.15"},"devDependencies":{"@egodigital/tsconfig":"^1.3.0","tslint":"^5.20.1","typedoc":"^0.15.8","typescript":"^3.7.5"},"gitHead":"584f03a7dc94b135ed286631ad8d33b871b35865","_id":"@egodigital/nef@3.0.0","_nodeVersion":"10.18.1","_npmVersion":"6.13.4","dist":{"integrity":"sha512-zaia7hpxbqX7vfRe5yTrKzcGT3FdAcbI7DgPQeJ7Skwhd9Lq/AVHnwnH3PwiCD6ZQUwyKbLKTdXzDxAxqcVrgA==","shasum":"be1d741ec090eb5c2be601ef8855fae0f233384d","tarball":"https://registry.npmjs.org/@egodigital/nef/-/nef-3.0.0.tgz","fileCount":22,"unpackedSize":61758,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeKVu5CRA9TVsSAnZWagAAESEP/0rx0bi3EkzcvzMSDeQj\nc68I1eEB69WmWPjvWt/1arOifhwHToAMYST6tUhPZq079jpPHwD7FNYt0iM9\nzKV9WIXrXAJgYK4iRUqm2gVnvhcrwXBy6OZbkF5EOxwpFh3Pf+ppjt7BIFet\n/HRE55+kun/LnIxCDosXWOvk8X+OocVKbUXtT/NcYqiaqmIPuMy2rYMSpbgm\nQb/jD6lw+tuHs/bnOlNnaymsvUd6Rip6230sG3IxiTBZJQeDz7slmuzAmKkI\nOgnLVb/k1pOLpc6P4++2wBiVFCaHFYPU20LdGkS9yJfeT6YX+xsjZd1/sSGS\n84gQCdZEy1i68wHOAXLfUJ6c1Fqn5xKqT0QWTxxwsL/gBrDwQ3TLATyXvX7U\nF0Vnuwvk14Rs0TV8cBpLljgIhueyWTwIOS5VjoUnkJ1aNrvgg17W5Eq+JsZE\nD/ZMYbWOrJ8apjt7wvIqG7KHedGKoTrSW0qP0Z4X5oRo6j8qhQGImlsMil9e\nssChuAz8J0os02Br9J+PLesCwoFLVIqZhK1I0m+Ykz8nhGZzQzwksDFMkk/p\nX/dyrudRAG2mRsCtZW+YkRDrYgE3neiD+Dt2r8PXxkmF1CKrw+Uvug2HZ6ax\n0oRxhxywdEeMu+CIci+abTPjTGQOYHd+oaLbopfq+/EChagJ6oC12xYaBe8s\nnnzW\r\n=rYJZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC11PPjB/IjQYH9CuGBe3Lrbj2iUQXzBF/Y20Qx7mRWEAIhALFkSYZTEelNtuUjlehr9seYylMTrGViul7BjDa0HlQk"}]},"maintainers":[{"name":"ekegodigital","email":"eric.kesseler@e-go-digital.com"},{"name":"mkloubert","email":"marcel.kloubert@gmx.net"},{"name":"mkloubertego","email":"marcel.kloubert@e-go-digital.com"}],"_npmUser":{"name":"mkloubertego","email":"marcel.kloubert@e-go-digital.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nef_3.0.0_1579768760855_0.6908827142789549"},"_hasShrinkwrap":false},"3.0.1":{"name":"@egodigital/nef","version":"3.0.1","description":"Managed Extensibility Framework like library written for Node.js","main":"lib/index.js","private":false,"directories":{"lib":"lib"},"scripts":{"build":"(rm -r ./lib || true) && (tsc && tsc -d)","build_and_test":"npm run build && npm run test","deploy":"npm install && npm audit fix && npm run build_and_test && npm publish","doc":"(rm -r ./doc || true) && (typedoc --out ./doc ./src)","sandbox":"npm run build && node ./lib/sandbox.js","test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/egodigital/nef.git"},"keywords":["node","classes","mef","node","extensibility","framework","service","typescript","decorator","annotation","attribute","contract"],"author":{"name":"e.GO Digital GmbH, Aachen, Germany"},"license":"LGPL-3.0","bugs":{"url":"https://github.com/egodigital/nef/issues"},"homepage":"https://github.com/egodigital/nef#readme","dependencies":{"@types/lodash":"^4.14.149","@types/node":"^10.17.13","fast-glob":"^3.1.1","lodash":"^4.17.15"},"devDependencies":{"@egodigital/tsconfig":"^1.3.0","tslint":"^5.20.1","typedoc":"^0.15.8","typescript":"^3.7.5"},"gitHead":"0bde030dae9ab5a7d14a145b58f1d6cbd40615e9","_id":"@egodigital/nef@3.0.1","_nodeVersion":"10.18.1","_npmVersion":"6.13.4","dist":{"integrity":"sha512-aTaJssvDkz871nYSP8+tBGaa+aFUY9EijrFUBiiCjLLgxXnz1xlMEElSTA/7hCLBNgVondMGbd8oTcTjFmPMcA==","shasum":"21c5c80c6b3dd4971c041ef8c2541414e759f49b","tarball":"https://registry.npmjs.org/@egodigital/nef/-/nef-3.0.1.tgz","fileCount":21,"unpackedSize":61323,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeOrYpCRA9TVsSAnZWagAAZ/MP/1mxC2bukeEpZNs7HHb8\ny+ns7t0KSK8hkee8h6T6gUfYVw1QnvECnGhfWix9BGGFRTsJBS4E3JooGHK8\nVKciwFhvV3C6zxnpA37QmnaKermxhIfrur+SMsITpzSGrEGy/CG30+XBW+ct\nCPjwAD/Zy9pZRv6rZcMl3n4l/L7kmwUOKwMITIAv+ZJLbhGLzaR9bl627Olu\nyIcSrdV4Gu6HhI2zA1jbfDt+WVc6MEku8Yg+6LMHt6CMn1dJifjKjrnogm85\nw68shhPgFhc1Ys6BJ0ojqLvdM0dS+LHlXGF9ZJsuAVKZTQ0C/V0dL7RP556D\n+Y8PsC50X8ZKQ9Ie3lnAP0dcthB1l6VeGmd2suX/FD40edYbA4OaI7oyr1EJ\nUIgrLW5W6ZoAntFATN8U2d3cWzOD5rFRaxRXE1LEged5PmZ4lB9Lj0Z8z5rc\nzASTyBu0FRhlv3nV6H0nvRrcBYMlSj9f0+/oa9JzGLakX1gPXy9pgv/kUl25\n5ffb62pTxHeUwhmMsOr6AqIMdKbPrHdgjuBI0BkUuTHClqp8zI5zLA9oE1vx\nm6J0IpE1m9glUIy0ufNpL0coCXR5AJ4ltvD1mH0IleDLD3lme3Sdl7/rqU+N\n92zomy4vyWTrdpyvDGlqiTm/SQg87Rl4dyWzeXXO7xQRbx6XN1ogozRefEgA\n9cAO\r\n=c6vk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAEHg5lsps9AceEe+Z0Lb1ZGQx/GYyBtmw4sxLWvVSE4AiBAzCEElLGsDitDQ0B+QxMeugm6t/W1H5Tgqqs0hnRFDQ=="}]},"maintainers":[{"name":"ekegodigital","email":"eric.kesseler@e-go-digital.com"},{"name":"mkloubert","email":"marcel.kloubert@gmx.net"},{"name":"mkloubertego","email":"marcel.kloubert@e-go-digital.com"}],"_npmUser":{"name":"mkloubertego","email":"marcel.kloubert@e-go-digital.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nef_3.0.1_1580906025429_0.6906729658176021"},"_hasShrinkwrap":false},"3.1.0":{"name":"@egodigital/nef","version":"3.1.0","description":"Managed Extensibility Framework like library written for Node.js","main":"lib/index.js","private":false,"directories":{"lib":"lib"},"scripts":{"build":"(rm -r ./lib || true) && (tsc && tsc -d)","build_and_test":"npm run build && npm run test","deploy":"npm install && npm audit fix && npm run build_and_test && npm publish","doc":"(rm -r ./doc || true) && (typedoc --out ./doc ./src)","sandbox":"npm run build && node ./lib/sandbox.js","test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/egodigital/nef.git"},"keywords":["node","classes","mef","node","extensibility","framework","service","typescript","decorator","annotation","attribute","contract"],"author":{"name":"e.GO Digital GmbH, Aachen, Germany"},"license":"LGPL-3.0","bugs":{"url":"https://github.com/egodigital/nef/issues"},"homepage":"https://github.com/egodigital/nef#readme","dependencies":{"@types/lodash":"^4.14.157","@types/node":"^10.17.27","fast-glob":"^3.2.4","lodash":"^4.17.19"},"devDependencies":{"@egodigital/tsconfig":"^1.3.0","tslint":"^5.20.1","typedoc":"^0.15.8","typescript":"^3.9.7"},"gitHead":"1613c1bc1a79e932b947ce27370b8c63306cde85","_id":"@egodigital/nef@3.1.0","_nodeVersion":"10.21.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-6nEfV41sV/UcMTtxIrbFShrUHt2IAd27cyd8Hoe3vGzYX2CwAD2SqlkiPFPQ1lgSXs67FhSxTC0B58GMBe3xDw==","shasum":"58a36b713ea7eda6434f5ce45f61d331342ccabd","tarball":"https://registry.npmjs.org/@egodigital/nef/-/nef-3.1.0.tgz","fileCount":21,"unpackedSize":62241,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh2FehCRA9TVsSAnZWagAA0GwP/i7ciLMRQP3Th7DW/UnQ\nw4xJQ8TDNMaPMi65BWrBd/MD0N6dtvA3PRe9lFQqxAYf7E+5DeHuiT5+Eeur\n6AXBs5oGWN0Yu2UFrPLd+kwixKwifYNQBvLUArI2oKed0HqnGqgoE7ADJnYY\nvXYYjGZZk2aI1OZhAJMzusiGhftwySYR/5fhed4wpybSbUjS+4qvh8sqwSbI\n6BwqiAu7iYVw37dPFfLeYBZ6oSbxFgxBiy/MXQmieb+3OSAJth1DRXdRShgt\n5XTbVZR5j6nN8FNC9iE78ttCvW06xZcw5DzAIU3mfWGAnMteKMljadLCV9GD\nFI22EX+leHscJDTzS+0Mu1eVzm/WrEoHy07sN4CEXoJ9qr5u9WPoFuhqsXVx\n9BzyHzyFxS84PebSKF4LTyt3mbcwMOEHjUSuiMbURpzNSuOsTBbU1r35JtBm\nETvtpa8W72wYVaXfHVshHIqclt1g8Xe+tJgpVizE5crCERMbBr1rw8sZuyKo\nQoZRMsoovrEkGt17PtCkOJ56RTJcshqnJlH2dqkatSjZD/tVffuliwjVHh6k\n9eaY9o+lxVINF6+qmXHCDfkctKlPWZPTXV7kzgGopYSbz6Fr4aq4NMLaYXA9\n2WeaimRhRFf3NKCp/UEb+Q4a6GQmvQAaip/4drX1/MpiiayzR5jwYEM9alkh\nH/6x\r\n=SU63\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDkrhu130/bt+iEHdLtLVN3KpS3TU4iEct45os+JG9vqAIhAKomvgE0+W+dCqgacmD80DTfyuDJI1UhpYUTYzp6x4Rp"}]},"maintainers":[{"name":"ekegodigital","email":"eric.kesseler@e-go-digital.com"},{"name":"mkloubert","email":"marcel.kloubert@gmx.net"},{"name":"mkloubertego","email":"marcel.kloubert@e-go-digital.com"}],"_npmUser":{"name":"mkloubertego","email":"marcel.kloubert@e-go-digital.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nef_3.1.0_1595211163888_0.8510394823794016"},"_hasShrinkwrap":false}},"time":{"created":"2019-08-12T08:17:48.282Z","1.0.0":"2019-08-12T08:17:48.502Z","modified":"2024-05-22T18:03:17.456Z","2.0.0":"2020-01-06T06:27:36.639Z","3.0.0":"2020-01-23T08:39:21.056Z","3.0.1":"2020-02-05T12:33:45.577Z","3.1.0":"2020-07-20T02:12:44.003Z"},"maintainers":[{"email":"eric.kesseler@e-go-mobile.com","name":"ekmobile"},{"email":"dux-developer@e-go-mobile.com","name":"egodux"},{"email":"marcel.kloubert@gmx.net","name":"mkloubert"},{"email":"eric.kesseler@e-go-digital.com","name":"ekegodigital"}],"description":"Managed Extensibility Framework like library written for Node.js","homepage":"https://github.com/egodigital/nef#readme","keywords":["node","classes","mef","node","extensibility","framework","service","typescript","decorator","annotation","attribute","contract"],"repository":{"type":"git","url":"git+https://github.com/egodigital/nef.git"},"author":{"name":"e.GO Digital GmbH, Aachen, Germany"},"bugs":{"url":"https://github.com/egodigital/nef/issues"},"license":"LGPL-3.0","readme":"[![npm](https://img.shields.io/npm/v/@egodigital/nef.svg)](https://www.npmjs.com/package/@egodigital/nef)\n\n# NEF (Node.js Extensibility Framework)\n\n[Managed Extensibility Framework](https://docs.microsoft.com/en-us/dotnet/framework/mef/) like library written for [Node.js 10+](https://nodejs.org/), in [TypeScript](https://www.typescriptlang.org/).\n\n## Install\n\nExecute the following command from your project folder, where your `package.json` file is stored:\n\n```bash\nnpm install --save @egodigital/nef\n```\n\n## Usage\n\n### Build\n\n```bash\n# install modules\nnpm install\n\n# build\nnpm run build\n```\n\n### Requirements\n\n#### TypeScript\n\nYou have to enable [decorator](https://www.typescriptlang.org/docs/handbook/decorators.html) feature in your `tsconfig.json` file:\n\n```jsonc\n{\n    \"compilerOptions\": {\n        // ...\n\n        \"experimentalDecorators\": true\n    },\n    \n    // ...\n}\n```\n\n### Examples\n\n##### Quick start\n\n###### Exports\n\nFirst define a service and a contract:\n\n```typescript\nimport { Export } from '@egodigital/nef';\n\ninterface IMyService {\n    foo(): string;\n}\n\n@Export('IMyService') // we have to use a string here, because in TypeScript, Interfaces are virtual and no objects\nexport class MyService implements IMyService {\n    public foo() {\n        return 'bar';\n    }\n}\n```\n\nIn that example `MyService` is the implemented service of `IMyService` contract.\n\n##### Imports\n\nNow, implement a class, which gets an instance, exported with `IMyService` contract, as injected object:\n\n```typescript\nimport { Import } from '@egodigital/nef';\n\nexport class MyContext {\n    @Import('IMyService')\n    public service: IMyService;\n}\n```\n\n##### Injections\n\nAt the end, the thing, which collects all exports and injects them into object properties, marked with `@Import` decorators, is an `CompositionContainer` instance:\n\n```typescript\nimport { CompositionContainer } from '@egodigital/nef';\n\nlet context = new MyContext();\n\nlet container = new CompositionContainer();\ncontainer.addClasses(MyService);  // tell explicitly, that 'MyService' is\n                                  // a class with an '@Export' decorator\n\ncontainer.composeSync(context);\n// now 'context.service' should\n// hold an instance of 'MyService' class\n// managed by 'container'\n```\n\n### Catalogs\n\nCatalogs helps to detect classes, which should be exported as services. \n\n#### ApplicationCatalog\n\nA catalog based on one or more JavaScript modules one application.\n\n```typescript\nimport { ApplicationCatalog, CompositionContainer } from '@egodigital/nef';\n\nlet container = new CompositionContainer();\ncontainer.addCatalogs(\n    new ApplicationCatalog(process)  // add current application\n);\n\n// shorter:\n// container.addApplications(process);\n```\n\n#### ClassCatalog\n\nA catalog for a single class.\n\n```typescript\nimport { ClassCatalog, CompositionContainer, Export } from '@egodigital/nef';\n\n@Export()\nclass MyService {\n}\n\nlet container = new CompositionContainer();\ncontainer.addCatalogs(\n    new ClassCatalog(MyService)\n);\n\n// shorter:\n// container.addClasses(MyService);\n```\n\n#### DirectoryCatalog\n\nA catalog based on one or more JavaScript modules in a directory.\n\n```typescript\nimport { CompositionContainer, DirectoryCatalog } from '@egodigital/nef';\n\nlet container = new CompositionContainer();\ncontainer.addCatalogs(\n    new DirectoryCatalog('/path/to/directory')\n);\n\n// shorter:\n// container.addDirectories('/path/to/directory');\n```\n\n#### FileCatalog\n\nA catalog based on one or more JavaScript modules in a single file.\n\n```typescript\nimport { CompositionContainer, FileCatalog } from '@egodigital/nef';\n\nlet container = new CompositionContainer();\ncontainer.addCatalogs(\n    new FileCatalog('/path/to/file.js')\n);\n\n// shorter:\n// container.addFiles('/path/to/file.js');\n```\n\n#### ModuleCatalog\n\nA catalog for a JavaScript module.\n\n```typescript\nimport { CompositionContainer, ModuleCatalog } from '@egodigital/nef';\nconst myModule = require('my-module');\n\nlet container = new CompositionContainer();\ncontainer.addCatalogs(\n    new ModuleCatalog(myModule)\n);\n\n// shorter:\n// container.addModules(myModule);\n```\n\n## Documentation\n\nThe API documentation can be found [here](https://egodigital.github.io/nef/).\n","readmeFilename":"README.md"}