{"_id":"babel-plugin-transform-typescript-metadata","_rev":"4454481","name":"babel-plugin-transform-typescript-metadata","description":"Babel plugin to emit decorator metadata like typescript compiler","dist-tags":{"latest":"0.4.0"},"maintainers":[{"name":"leonardfactory","email":""}],"time":{"modified":"2026-04-08T14:33:37.000Z","created":"2019-03-24T12:15:34.514Z","0.4.0":"2025-10-29T19:44:29.923Z","0.3.2":"2021-03-19T12:55:55.451Z","0.3.1":"2020-10-12T18:18:38.901Z","0.3.0":"2020-03-05T15:17:04.426Z","0.2.2":"2019-03-27T13:46:54.245Z","0.2.1":"2019-03-24T14:21:09.875Z","0.2.0":"2019-03-24T14:07:47.864Z","0.1.1":"2019-03-24T12:19:30.941Z","0.1.0":"2019-03-24T12:15:34.514Z"},"users":{},"author":{"name":"Leonardo Ascione","email":"leonardo.ascione@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/leonardfactory/babel-plugin-transform-typescript-metadata.git"},"versions":{"0.4.0":{"name":"babel-plugin-transform-typescript-metadata","version":"0.4.0","description":"Babel plugin to emit decorator metadata like typescript compiler","main":"lib/plugin.js","types":"lib/plugin.d.ts","repository":{"type":"git","url":"git+https://github.com/leonardfactory/babel-plugin-transform-typescript-metadata.git"},"author":{"name":"Leonardo Ascione","email":"leonardo.ascione@gmail.com"},"license":"MIT","keywords":["babel","babel-plugin","babel-typescript","decorators","reflect-metadata"],"scripts":{"dev":"babel src -w -d lib -x \".ts\"","build":"yarn build:lib && yarn build:types","prebuild:lib":"rimraf lib","build:lib":"babel src -d lib -x \".ts\"","build:types":"tsc --emitDeclarationOnly","check-types":"tsc --noEmit","release":"yarn test && yarn build && release-it","pretest":"cd test/__helpers__/babel-8 && yarn","test":"jest --forceExit","test:dev":"jest --watch","test:ci":"jest --ci --runInBand --coverage --forceExit"},"husky":{"hooks":{"commit-msg":"emoji-commit-lint"}},"release-it":{"git":{"tagName":"v${version}","commitMessage":"🔖 v${version}"},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":"@favoloso/emoji","infile":"CHANGELOG.md"}}},"publishConfig":{"registry":"https://registry.npmjs.org/"},"devDependencies":{"@babel/cli":"^7.6.4","@babel/core":"^7.6.4","@babel/plugin-proposal-decorators":"^7.6.0","@babel/plugin-transform-class-properties":"^7.27.1","@babel/plugin-transform-modules-commonjs":"^7.10.4","@babel/plugin-transform-object-rest-spread":"^7.28.4","@babel/preset-env":"^7.6.3","@babel/preset-typescript":"^7.28.5","@babel/template":"^7.6.0","@babel/traverse":"^7.6.4","@babel/types":"^7.6.3","@favoloso/conventional-changelog-emoji":"^0.10.0","@release-it/conventional-changelog":"^1.1.0","@types/jest":"^27.4.1","babel-test":"^0.2.3","conventional-changelog-cli":"^2.0.25","husky":"^4.2.3","jest":"^27.5.1","jest-file-snapshot":"^0.5.0","release-it":"13.7.1","rimraf":"^3.0.2","typescript":"^3.6.4"},"dependencies":{"@babel/helper-plugin-utils":"^7.0.0"},"peerDependencies":{"@babel/core":"^7.0.0 || ^8.0.0-0"},"peerDependenciesMeta":{"@babel/core":{"optional":false}},"_id":"babel-plugin-transform-typescript-metadata@0.4.0","gitHead":"18187a17e253603611d600234fadf8c47d8fec44","bugs":{"url":"https://github.com/leonardfactory/babel-plugin-transform-typescript-metadata/issues"},"homepage":"https://github.com/leonardfactory/babel-plugin-transform-typescript-metadata#readme","_nodeVersion":"22.20.0","_npmVersion":"10.9.3","dist":{"shasum":"4021938d187eba4c01b4d98a0ed0670eba98ae0d","size":8437,"noattachment":false,"key":"/babel-plugin-transform-typescript-metadata/-/babel-plugin-transform-typescript-metadata-0.4.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-transform-typescript-metadata/download/babel-plugin-transform-typescript-metadata-0.4.0.tgz"},"_npmUser":{"name":"leonardfactory","email":"leonardo@favoloso.team"},"directories":{},"maintainers":[{"name":"leonardfactory","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/babel-plugin-transform-typescript-metadata_0.4.0_1761767069719_0.4376166088440332"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-10-29T19:44:29.923Z","publish_time":1761767069923,"_source_registry_name":"default","_cnpm_publish_time":1761767069923},"0.3.2":{"name":"babel-plugin-transform-typescript-metadata","version":"0.3.2","description":"Babel plugin to emit decorator metadata like typescript compiler","main":"lib/plugin.js","repository":{"type":"git","url":"git+https://github.com/leonardfactory/babel-plugin-transform-typescript-metadata.git"},"author":{"name":"Leonardo Ascione","email":"leonardo.ascione@gmail.com"},"license":"MIT","keywords":["babel","babel-plugin","babel-typescript","decorators","reflect-metadata"],"scripts":{"dev":"babel src -w -d lib -x '.ts,.tsx'","build":"yarn build:lib && yarn build:types","prebuild:lib":"rm -rf lib","build:lib":"babel src -d lib -x '.ts,.tsx'","build:types":"tsc --emitDeclarationOnly","check-types":"tsc --noEmit","release":"yarn test && yarn build && release-it","test":"jest","test:dev":"jest --watch","test:ci":"jest --ci --runInBand --coverage"},"husky":{"hooks":{"commit-msg":"emoji-commit-lint"}},"release-it":{"git":{"tagName":"v${version}","commitMessage":"🔖 v${version}"},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":"@favoloso/emoji","infile":"CHANGELOG.md"}}},"publishConfig":{"registry":"https://registry.npmjs.org/"},"devDependencies":{"@babel/cli":"^7.6.4","@babel/core":"^7.6.4","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/plugin-proposal-decorators":"^7.6.0","@babel/plugin-transform-modules-commonjs":"^7.10.4","@babel/preset-env":"^7.6.3","@babel/preset-typescript":"^7.6.0","@babel/template":"^7.6.0","@babel/types":"^7.6.3","@favoloso/conventional-changelog-emoji":"^0.10.0","@release-it/conventional-changelog":"^1.1.0","@types/jest":"^24.0.19","babel-test":"^0.2.3","conventional-changelog-cli":"^2.0.25","husky":"^4.2.3","jest":"^24.9.0","jest-file-snapshot":"^0.3.7","release-it":"13.7.1","typescript":"^3.6.4"},"dependencies":{"@babel/helper-plugin-utils":"^7.0.0"},"gitHead":"ce4710a3b231a6315a8c37dd69cc1e4ac0998512","bugs":{"url":"https://github.com/leonardfactory/babel-plugin-transform-typescript-metadata/issues"},"homepage":"https://github.com/leonardfactory/babel-plugin-transform-typescript-metadata#readme","_id":"babel-plugin-transform-typescript-metadata@0.3.2","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","_npmUser":{"name":"leonardfactory","email":"leonardo@favoloso.team"},"dist":{"shasum":"7a327842d8c36ffe07ee1b5276434e56c297c9b7","size":9321,"noattachment":false,"key":"/babel-plugin-transform-typescript-metadata/-/babel-plugin-transform-typescript-metadata-0.3.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-transform-typescript-metadata/download/babel-plugin-transform-typescript-metadata-0.3.2.tgz"},"directories":{},"maintainers":[{"name":"leonardfactory","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-transform-typescript-metadata_0.3.2_1616158555279_0.7784530880728633"},"_hasShrinkwrap":false,"publish_time":1616158555451,"_cnpm_publish_time":1616158555451,"_cnpmcore_publish_time":"2021-12-16T15:54:18.973Z"},"0.3.1":{"name":"babel-plugin-transform-typescript-metadata","version":"0.3.1","description":"Babel plugin to emit decorator metadata like typescript compiler","main":"lib/plugin.js","repository":{"type":"git","url":"git+https://github.com/leonardfactory/babel-plugin-transform-typescript-metadata.git"},"author":{"name":"Leonardo Ascione","email":"leonardo.ascione@gmail.com"},"license":"MIT","keywords":["babel","babel-plugin","babel-typescript","decorators","reflect-metadata"],"scripts":{"dev":"babel src -w -d lib -x '.ts,.tsx'","build":"yarn build:lib && yarn build:types","prebuild:lib":"rm -rf lib","build:lib":"babel src -d lib -x '.ts,.tsx'","build:types":"tsc --emitDeclarationOnly","check-types":"tsc --noEmit","release":"yarn test && yarn build && release-it","test":"jest","test:dev":"jest --watch","test:ci":"jest --ci --runInBand --coverage"},"husky":{"hooks":{"commit-msg":"emoji-commit-lint"}},"release-it":{"git":{"tagName":"v${version}","commitMessage":"🔖 v${version}"},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":"@favoloso/emoji","infile":"CHANGELOG.md"}}},"publishConfig":{"registry":"https://registry.npmjs.org/"},"devDependencies":{"@babel/cli":"^7.6.4","@babel/core":"^7.6.4","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/plugin-proposal-decorators":"^7.6.0","@babel/plugin-transform-modules-commonjs":"^7.10.4","@babel/preset-env":"^7.6.3","@babel/preset-typescript":"^7.6.0","@babel/template":"^7.6.0","@babel/types":"^7.6.3","@favoloso/conventional-changelog-emoji":"^0.10.0","@release-it/conventional-changelog":"^1.1.0","@types/jest":"^24.0.19","babel-test":"^0.2.3","conventional-changelog-cli":"^2.0.25","husky":"^4.2.3","jest":"^24.9.0","jest-file-snapshot":"^0.3.7","release-it":"13.7.1","typescript":"^3.6.4"},"dependencies":{"@babel/helper-plugin-utils":"^7.0.0"},"gitHead":"775caf3244a610efa3d8bfb5408a366b7a1fe321","bugs":{"url":"https://github.com/leonardfactory/babel-plugin-transform-typescript-metadata/issues"},"homepage":"https://github.com/leonardfactory/babel-plugin-transform-typescript-metadata#readme","_id":"babel-plugin-transform-typescript-metadata@0.3.1","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","_npmUser":{"name":"leonardfactory","email":"leonardo@favoloso.team"},"dist":{"shasum":"d86599b7139131ba5e917f5f568d0c824a5cdfc3","size":9054,"noattachment":false,"key":"/babel-plugin-transform-typescript-metadata/-/babel-plugin-transform-typescript-metadata-0.3.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-transform-typescript-metadata/download/babel-plugin-transform-typescript-metadata-0.3.1.tgz"},"maintainers":[{"name":"leonardfactory","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-transform-typescript-metadata_0.3.1_1602526718751_0.5311759614808589"},"_hasShrinkwrap":false,"publish_time":1602526718901,"_cnpm_publish_time":1602526718901,"_cnpmcore_publish_time":"2021-12-16T15:54:19.516Z"},"0.3.0":{"name":"babel-plugin-transform-typescript-metadata","version":"0.3.0","description":"Babel plugin to emit decorator metadata like typescript compiler","main":"lib/plugin.js","repository":{"type":"git","url":"git+https://github.com/leonardfactory/babel-plugin-transform-typescript-metadata.git"},"author":{"name":"Leonardo Ascione","email":"leonardo.ascione@gmail.com"},"license":"MIT","keywords":["babel","babel-plugin","babel-typescript","decorators","reflect-metadata"],"scripts":{"dev":"babel src -w -d lib -x '.ts,.tsx'","build":"yarn build:lib && yarn build:types","prebuild:lib":"rm -rf lib","build:lib":"babel src -d lib -x '.ts,.tsx'","build:types":"tsc --emitDeclarationOnly","check-types":"tsc --noEmit","release":"yarn test && yarn build && release-it","test":"jest","test:dev":"jest --watch","test:ci":"jest --ci --runInBand --coverage"},"husky":{"hooks":{"commit-msg":"emoji-commit-lint"}},"release-it":{"git":{"tagName":"v${version}","commitMessage":"🔖 v${version}"},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":"@favoloso/emoji","infile":"CHANGELOG.md"}}},"publishConfig":{"registry":"https://registry.npmjs.org/"},"devDependencies":{"@babel/cli":"^7.6.4","@babel/core":"^7.6.4","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/plugin-proposal-decorators":"^7.6.0","@babel/preset-env":"^7.6.3","@babel/preset-typescript":"^7.6.0","@babel/template":"^7.6.0","@babel/types":"^7.6.3","@favoloso/conventional-changelog-emoji":"^0.10.0","@release-it/conventional-changelog":"^1.1.0","@types/jest":"^24.0.19","babel-test":"^0.2.3","conventional-changelog-cli":"^2.0.25","husky":"^4.2.3","jest":"^24.9.0","jest-file-snapshot":"^0.3.7","release-it":"^12.6.3","typescript":"^3.6.4"},"dependencies":{"@babel/helper-plugin-utils":"^7.0.0"},"gitHead":"3702dda5d660ce49d8d307dd0fec6dcff65c459f","bugs":{"url":"https://github.com/leonardfactory/babel-plugin-transform-typescript-metadata/issues"},"homepage":"https://github.com/leonardfactory/babel-plugin-transform-typescript-metadata#readme","_id":"babel-plugin-transform-typescript-metadata@0.3.0","_nodeVersion":"10.14.1","_npmVersion":"6.11.3","_npmUser":{"name":"leonardfactory","email":"leonardo@favoloso.team"},"dist":{"shasum":"70093ea8611baf985293fb3ec704d1b7db737ad9","size":8980,"noattachment":false,"key":"/babel-plugin-transform-typescript-metadata/-/babel-plugin-transform-typescript-metadata-0.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-transform-typescript-metadata/download/babel-plugin-transform-typescript-metadata-0.3.0.tgz"},"maintainers":[{"name":"leonardfactory","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-transform-typescript-metadata_0.3.0_1583421424282_0.7003671550512818"},"_hasShrinkwrap":false,"publish_time":1583421424426,"_cnpm_publish_time":1583421424426,"_cnpmcore_publish_time":"2021-12-16T15:54:19.765Z"},"0.2.2":{"name":"babel-plugin-transform-typescript-metadata","version":"0.2.2","description":"Babel plugin to emit decorator metadata like typescript compiler","main":"lib/plugin.js","repository":{"type":"git","url":"git+https://github.com/leonardfactory/babel-plugin-transform-typescript-metadata.git"},"author":{"name":"Leonardo Ascione","email":"leonardo.ascione@gmail.com"},"license":"MIT","keywords":["babel","babel-plugin","babel-typescript","decorators","reflect-metadata"],"scripts":{"dev":"babel src -w -d lib -x '.ts,.tsx'","build":"yarn build:lib && yarn build:types","prebuild:lib":"rm -rf lib","build:lib":"babel src -d lib -x '.ts,.tsx'","build:types":"tsc --emitDeclarationOnly","check-types":"tsc --noEmit","release":"yarn test && yarn build && release-it","test":"jest","test:dev":"jest --watch","test:ci":"jest --ci --runInBand --coverage"},"husky":{"hooks":{"commit-msg":"emoji-commit-lint"}},"release-it":{"git":{"tagName":"v${version}","commitMessage":"🔖 v${version}"},"github":{"release":true},"increment":"conventional:@favoloso/emoji","scripts":{"changelog":"./node_modules/.bin/conventional-changelog -p @favoloso/emoji | tail -n +3","beforeStage":"./node_modules/.bin/conventional-changelog -p @favoloso/emoji -i CHANGELOG.md -s"}},"publishConfig":{"registry":"https://registry.npmjs.org/"},"devDependencies":{"@babel/cli":"^7.2.3","@babel/core":"^7.4.0","@babel/plugin-proposal-class-properties":"^7.4.0","@babel/plugin-proposal-decorators":"^7.4.0","@babel/preset-env":"^7.4.2","@babel/preset-typescript":"^7.3.3","@babel/template":"^7.4.0","@favoloso/conventional-changelog-emoji":"^0.9.0","@types/jest":"^24.0.11","babel-test":"^0.1.6","conventional-changelog-cli":"^2.0.12","husky":"^1.3.1","jest":"^24.5.0","jest-file-snapshot":"^0.3.6","release-it":"^10.3.1","typescript":"^3.3.4000"},"dependencies":{"@babel/helper-plugin-utils":"^7.0.0"},"gitHead":"a90bdd5b005e17c72cdf3630623b27c27023f448","bugs":{"url":"https://github.com/leonardfactory/babel-plugin-transform-typescript-metadata/issues"},"homepage":"https://github.com/leonardfactory/babel-plugin-transform-typescript-metadata#readme","_id":"babel-plugin-transform-typescript-metadata@0.2.2","_npmVersion":"6.4.1","_nodeVersion":"10.14.1","_npmUser":{"name":"leonardfactory","email":"leonardo@favoloso.team"},"dist":{"shasum":"fc44611187409ed9d5cb372ca2f85939a359cada","size":8416,"noattachment":false,"key":"/babel-plugin-transform-typescript-metadata/-/babel-plugin-transform-typescript-metadata-0.2.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-transform-typescript-metadata/download/babel-plugin-transform-typescript-metadata-0.2.2.tgz"},"maintainers":[{"name":"leonardfactory","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-transform-typescript-metadata_0.2.2_1553694414151_0.7959259769832798"},"_hasShrinkwrap":false,"publish_time":1553694414245,"_cnpm_publish_time":1553694414245,"_cnpmcore_publish_time":"2021-12-16T15:54:20.025Z"},"0.2.1":{"name":"babel-plugin-transform-typescript-metadata","version":"0.2.1","description":"Babel plugin to emit decorator metadata like typescript compiler","main":"lib/plugin.js","repository":{"type":"git","url":"git+https://github.com/leonardfactory/babel-plugin-transform-typescript-metadata.git"},"author":{"name":"Leonardo Ascione","email":"leonardo.ascione@gmail.com"},"license":"MIT","keywords":["babel","babel-plugin","babel-typescript","decorators","reflect-metadata"],"scripts":{"dev":"babel src -w -d lib -x '.ts,.tsx'","build":"yarn build:lib && yarn build:types","prebuild:lib":"rm -rf lib","build:lib":"babel src -d lib -x '.ts,.tsx'","build:types":"tsc --emitDeclarationOnly","check-types":"tsc --noEmit","release":"yarn test && yarn build && release-it","test":"jest","test:dev":"jest --watch","test:ci":"jest --ci --runInBand --coverage"},"husky":{"hooks":{"commit-msg":"emoji-commit-lint"}},"release-it":{"git":{"tagName":"v${version}","commitMessage":"🔖 v${version}"},"github":{"release":true},"increment":"conventional:@favoloso/emoji","scripts":{"changelog":"./node_modules/.bin/conventional-changelog -p @favoloso/emoji | tail -n +3","beforeStage":"./node_modules/.bin/conventional-changelog -p @favoloso/emoji -i CHANGELOG.md -s"}},"publishConfig":{"registry":"https://registry.npmjs.org/"},"devDependencies":{"@babel/cli":"^7.2.3","@babel/core":"^7.4.0","@babel/plugin-proposal-class-properties":"^7.4.0","@babel/plugin-proposal-decorators":"^7.4.0","@babel/preset-env":"^7.4.2","@babel/preset-typescript":"^7.3.3","@favoloso/conventional-changelog-emoji":"^0.9.0","@types/jest":"^24.0.11","babel-test":"^0.1.6","conventional-changelog-cli":"^2.0.12","husky":"^1.3.1","jest":"^24.5.0","jest-file-snapshot":"^0.3.6","release-it":"^10.3.1","typescript":"^3.3.4000"},"dependencies":{"@babel/helper-plugin-utils":"^7.0.0"},"gitHead":"44d7b581c547437edd233dc7e82579065eb47320","bugs":{"url":"https://github.com/leonardfactory/babel-plugin-transform-typescript-metadata/issues"},"homepage":"https://github.com/leonardfactory/babel-plugin-transform-typescript-metadata#readme","_id":"babel-plugin-transform-typescript-metadata@0.2.1","_npmVersion":"6.4.1","_nodeVersion":"10.14.1","_npmUser":{"name":"leonardfactory","email":"leonardo@favoloso.team"},"dist":{"shasum":"64cab4eb1cb7ffd7afa8fdd08bd8a02d80ae05c6","size":7328,"noattachment":false,"key":"/babel-plugin-transform-typescript-metadata/-/babel-plugin-transform-typescript-metadata-0.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-transform-typescript-metadata/download/babel-plugin-transform-typescript-metadata-0.2.1.tgz"},"maintainers":[{"name":"leonardfactory","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-transform-typescript-metadata_0.2.1_1553437269639_0.37591602400749125"},"_hasShrinkwrap":false,"publish_time":1553437269875,"_cnpm_publish_time":1553437269875,"_cnpmcore_publish_time":"2021-12-16T15:54:20.208Z"},"0.2.0":{"name":"babel-plugin-transform-typescript-metadata","version":"0.2.0","description":"Babel plugin to emit decorator metadata like typescript compiler","main":"lib/plugin.js","repository":{"type":"git","url":"git+https://github.com/leonardfactory/babel-plugin-transform-typescript-metadata.git"},"author":{"name":"Leonardo Ascione","email":"leonardo.ascione@gmail.com"},"license":"MIT","scripts":{"dev":"babel src -w -d lib -x '.ts,.tsx'","build":"yarn build:lib && yarn build:types","prebuild:lib":"rm -rf lib","build:lib":"babel src -d lib -x '.ts,.tsx'","build:types":"tsc --emitDeclarationOnly","check-types":"tsc --noEmit","release":"yarn test && yarn build && release-it","test":"jest","test:dev":"jest --watch","test:ci":"jest --ci --runInBand --coverage"},"husky":{"hooks":{"commit-msg":"emoji-commit-lint"}},"release-it":{"git":{"tagName":"v${version}","commitMessage":"🔖 v${version}"},"github":{"release":true},"increment":"conventional:@favoloso/emoji","scripts":{"changelog":"./node_modules/.bin/conventional-changelog -p @favoloso/emoji | tail -n +3","beforeStage":"./node_modules/.bin/conventional-changelog -p @favoloso/emoji -i CHANGELOG.md -s"}},"publishConfig":{"registry":"https://registry.npmjs.org/"},"devDependencies":{"@babel/cli":"^7.2.3","@babel/core":"^7.4.0","@babel/plugin-proposal-class-properties":"^7.4.0","@babel/plugin-proposal-decorators":"^7.4.0","@babel/preset-env":"^7.4.2","@babel/preset-typescript":"^7.3.3","@favoloso/conventional-changelog-emoji":"^0.9.0","@types/jest":"^24.0.11","babel-test":"^0.1.6","conventional-changelog-cli":"^2.0.12","husky":"^1.3.1","jest":"^24.5.0","jest-file-snapshot":"^0.3.6","release-it":"^10.3.1","typescript":"^3.3.4000"},"dependencies":{"@babel/helper-plugin-utils":"^7.0.0"},"gitHead":"7dfb7665ca6d159778c6e410fade32ba26c5f81c","bugs":{"url":"https://github.com/leonardfactory/babel-plugin-transform-typescript-metadata/issues"},"homepage":"https://github.com/leonardfactory/babel-plugin-transform-typescript-metadata#readme","_id":"babel-plugin-transform-typescript-metadata@0.2.0","_npmVersion":"6.4.1","_nodeVersion":"10.14.1","_npmUser":{"name":"leonardfactory","email":"leonardo@favoloso.team"},"dist":{"shasum":"eed24bc0fb89c14f6dc57794b70fd1ff2471b6ec","size":6963,"noattachment":false,"key":"/babel-plugin-transform-typescript-metadata/-/babel-plugin-transform-typescript-metadata-0.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-transform-typescript-metadata/download/babel-plugin-transform-typescript-metadata-0.2.0.tgz"},"maintainers":[{"name":"leonardfactory","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-transform-typescript-metadata_0.2.0_1553436467720_0.16040153973812554"},"_hasShrinkwrap":false,"publish_time":1553436467864,"_cnpm_publish_time":1553436467864,"_cnpmcore_publish_time":"2021-12-16T15:54:20.408Z"},"0.1.1":{"name":"babel-plugin-transform-typescript-metadata","version":"0.1.1","description":"Babel plugin to emit decorator metadata like typescript compiler","main":"lib/plugin.js","repository":{"type":"git","url":"git+https://github.com/leonardfactory/babel-plugin-transform-typescript-metadata.git"},"author":{"name":"Leonardo Ascione","email":"leonardo.ascione@gmail.com"},"license":"MIT","scripts":{"dev":"babel src -w -d lib -x '.ts,.tsx'","build":"yarn build:lib && yarn build:types","prebuild:lib":"rm -rf lib","build:lib":"babel src -d lib -x '.ts,.tsx'","build:types":"tsc --emitDeclarationOnly","check-types":"tsc --noEmit","release":"yarn test && yarn build && release-it","test":"jest","test:dev":"jest --watch","test:ci":"jest --ci --runInBand --coverage --reporters=default --reporters=jest-junit"},"husky":{"hooks":{"commit-msg":"emoji-commit-lint"}},"release-it":{"git":{"tagName":"v${version}","commitMessage":"🔖 v${version}"},"github":{"release":true},"increment":"conventional:@favoloso/emoji","scripts":{"changelog":"./node_modules/.bin/conventional-changelog -p @favoloso/emoji | tail -n +3","beforeStage":"./node_modules/.bin/conventional-changelog -p @favoloso/emoji -i CHANGELOG.md -s"}},"publishConfig":{"registry":"https://registry.npmjs.org/"},"devDependencies":{"@babel/cli":"^7.2.3","@babel/core":"^7.4.0","@babel/plugin-proposal-class-properties":"^7.4.0","@babel/plugin-proposal-decorators":"^7.4.0","@babel/preset-env":"^7.4.2","@babel/preset-typescript":"^7.3.3","@favoloso/conventional-changelog-emoji":"^0.9.0","@types/jest":"^24.0.11","babel-test":"^0.1.6","conventional-changelog-cli":"^2.0.12","husky":"^1.3.1","jest":"^24.5.0","jest-file-snapshot":"^0.3.6","release-it":"^10.3.1","typescript":"^3.3.4000"},"dependencies":{"@babel/helper-plugin-utils":"^7.0.0"},"gitHead":"1b1a2f1823e18c344609e4d157687308b74d34af","bugs":{"url":"https://github.com/leonardfactory/babel-plugin-transform-typescript-metadata/issues"},"homepage":"https://github.com/leonardfactory/babel-plugin-transform-typescript-metadata#readme","_id":"babel-plugin-transform-typescript-metadata@0.1.1","_npmVersion":"6.4.1","_nodeVersion":"10.14.1","_npmUser":{"name":"leonardfactory","email":"leonardo@favoloso.team"},"dist":{"shasum":"0ea833f30949732db7fc7e80716d20773549d18e","size":4944,"noattachment":false,"key":"/babel-plugin-transform-typescript-metadata/-/babel-plugin-transform-typescript-metadata-0.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-transform-typescript-metadata/download/babel-plugin-transform-typescript-metadata-0.1.1.tgz"},"maintainers":[{"name":"leonardfactory","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-transform-typescript-metadata_0.1.1_1553429970786_0.8055027620914692"},"_hasShrinkwrap":false,"publish_time":1553429970941,"_cnpm_publish_time":1553429970941,"_cnpmcore_publish_time":"2021-12-16T15:54:20.653Z"},"0.1.0":{"name":"babel-plugin-transform-typescript-metadata","version":"0.1.0","description":"Babel plugin to emit decorator metadata like typescript compiler","main":"lib/plugin.js","repository":{"type":"git","url":"git+https://github.com/leonardfactory/babel-plugin-transform-typescript-metadata.git"},"author":{"name":"Leonardo Ascione","email":"leonardo.ascione@gmail.com"},"license":"MIT","scripts":{"dev":"babel src -w -d lib -x '.ts,.tsx'","build":"yarn build:lib && yarn build:types","prebuild:lib":"rm -rf lib","build:lib":"babel src -d lib -x '.ts,.tsx'","build:types":"tsc --emitDeclarationOnly","check-types":"tsc --noEmit","release":"yarn test && yarn build && release-it","test":"jest","test:dev":"jest --watch","test:ci":"jest --ci --runInBand --coverage --reporters=default --reporters=jest-junit"},"husky":{"hooks":{"commit-msg":"emoji-commit-lint"}},"release-it":{"git":{"tagName":"v${version}","commitMessage":"🔖 v${version}"},"github":{"release":true},"increment":"conventional:@favoloso/emoji","scripts":{"changelog":"./node_modules/.bin/conventional-changelog -p @favoloso/emoji | tail -n +3","beforeStage":"./node_modules/.bin/conventional-changelog -p @favoloso/emoji -i CHANGELOG.md -s"}},"publishConfig":{"registry":"https://registry.npmjs.org/"},"devDependencies":{"@babel/cli":"^7.2.3","@babel/core":"^7.4.0","@babel/plugin-proposal-class-properties":"^7.4.0","@babel/plugin-proposal-decorators":"^7.4.0","@babel/preset-env":"^7.4.2","@babel/preset-typescript":"^7.3.3","@favoloso/conventional-changelog-emoji":"^0.9.0","@types/jest":"^24.0.11","babel-test":"^0.1.6","conventional-changelog-cli":"^2.0.12","husky":"^1.3.1","jest":"^24.5.0","jest-file-snapshot":"^0.3.6","release-it":"^10.3.1","typescript":"^3.3.4000"},"dependencies":{"@babel/helper-plugin-utils":"^7.0.0"},"gitHead":"e709b2db581a99f503a4489602218d7905f7990f","bugs":{"url":"https://github.com/leonardfactory/babel-plugin-transform-typescript-metadata/issues"},"homepage":"https://github.com/leonardfactory/babel-plugin-transform-typescript-metadata#readme","_id":"babel-plugin-transform-typescript-metadata@0.1.0","_npmVersion":"6.4.1","_nodeVersion":"10.14.1","_npmUser":{"name":"leonardfactory","email":"leonardo@favoloso.team"},"dist":{"shasum":"2874f96da1e54b3fa3b634100414c8886073bea7","size":4901,"noattachment":false,"key":"/babel-plugin-transform-typescript-metadata/-/babel-plugin-transform-typescript-metadata-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-transform-typescript-metadata/download/babel-plugin-transform-typescript-metadata-0.1.0.tgz"},"maintainers":[{"name":"leonardfactory","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-transform-typescript-metadata_0.1.0_1553429734396_0.7002900923024715"},"_hasShrinkwrap":false,"publish_time":1553429734514,"_cnpm_publish_time":1553429734514,"_cnpmcore_publish_time":"2021-12-16T15:54:20.882Z"}},"readme":"# babel-plugin-transform-typescript-metadata\n\n![GitHub Workflow Build Status](https://img.shields.io/github/actions/workflow/status/leonardfactory/babel-plugin-transform-typescript-metadata/test.yml)\n[![Codecov](https://img.shields.io/codecov/c/github/leonardfactory/babel-plugin-transform-typescript-metadata.svg)](https://codecov.io/gh/leonardfactory/babel-plugin-transform-typescript-metadata)\n[![npm](https://img.shields.io/npm/v/babel-plugin-transform-typescript-metadata.svg?style=popout)](https://www.npmjs.com/package/babel-plugin-transform-typescript-metadata)\n\nBabel plugin to emit decorator metadata like typescript compiler\n\n## Motivation\n\nTypeScript _Decorators_ allows advanced reflection patterns when combined\nwith [`Reflect.metadata`](https://rbuckton.github.io/reflect-metadata/) output.\n\nCurrent `@babel/preset-typescript` implementation however just strips all types and\n_does not_ emit the relative Metadata in the output code.\n\nSince this kind of information is used extensively in libraries like\n[Nest](https://docs.nestjs.com/providers) and [TypeORM](https://typeorm.io/#/)\nto implement advanced features like **Dependency Injection**, I've thought it would\nbe awesome to be able to provide the same functionality that [TypeScript\ncompiler `experimentalDecorators` and `emitDecoratorMetadata`\nflags](https://www.typescriptlang.org/docs/handbook/decorators.html) provide.\n\nThis means that code like:\n\n```ts\nimport { Injectable, Inject } from 'some-di-library'; // Just an example\nimport { MyService } from './MyService';\nimport { Configuration } from './Configuration';\n\n@Injectable()\nclass AnotherService {\n  @Inject()\n  config: Configuration;\n\n  constructor(private service: MyService) {}\n}\n```\n\nwill be interpreted like:\n\n```ts\nimport { MyService } from './MyService';\nimport { Configuration } from './Configuration';\n\n@Injectable()\n@Reflect.metadata('design:paramtypes', [MyService])\nclass AnotherService {\n  @Inject()\n  @Reflect.metadata('design:type', Configuration)\n  config: Configuration;\n\n  constructor(private service: MyService) {}\n}\n```\n\n### Parameter decorators\n\nSince decorators in typescript supports also _Parameters_, this plugin\nalso provides support for them, enabling the following syntax:\n\n```ts\n@Injectable()\nclass Some {\n  constructor(@Inject() private: SomeService);\n}\n```\n\nThis will be roughly translated to:\n\n```js\n// ...\nInject()(Some.prototype, undefined, 0);\n```\n\n## Installation\n\nWith npm:\n\n```sh\nnpm install --dev --save babel-plugin-transform-typescript-metadata\n```\n\nor with Yarn:\n\n```sh\nyarn add --dev babel-plugin-transform-typescript-metadata\n```\n\n## Usage\n\nWith `.babelrc`:\n\n> **Note:** should be placed **before** `@babel/plugin-proposal-decorators`.\n\n```js\n{\n  \"plugins\": [\n    \"babel-plugin-transform-typescript-metadata\",\n    [\"@babel/plugin-proposal-decorators\", { \"legacy\": true }],\n    [\"@babel/plugin-proposal-class-properties\", { \"loose\": true }],\n  ],\n  \"presets\": [\n    \"@babel/preset-typescript\"\n  ]\n}\n```\n\n### Usage with [InversifyJS](http://inversify.io)\n\nIf you are using normal dependency injection letting Inversify **create your instances**, you should be fine with all kind of decorators.\n\nInstead, if you are using **property injection**, when [the container does not\ncreate the instances](https://github.com/inversify/InversifyJS/blob/master/wiki/property_injection.md#when-we-cannot-use-inversifyjs-to-create-an-instance-of-a-class),\nyou would likely encounter errors since babel\ndecorators are not exactly the same as TypeScript.\n\nYou can fix it by _enhancing property decorators_ with the following function:\n\n```ts\nimport getDecorators from 'inversify-inject-decorators';\n// setup the container...\nlet { lazyInject: originalLazyInject } = getDecorators(container);\n\n// Additional function to make properties decorators compatible with babel.\nfunction fixPropertyDecorator<T extends Function>(decorator: T): T {\n  return ((...args: any[]) =>\n    (target: any, propertyName: any, ...decoratorArgs: any[]) => {\n      decorator(...args)(target, propertyName, ...decoratorArgs);\n      return Object.getOwnPropertyDescriptor(target, propertyName);\n    }) as any;\n}\n\nexport const lazyInject = fixPropertyDecorator(originalLazyInject);\n```\n\n## Current Pitfalls\n\n- If you are using webpack and it complains about missing exports due to types\n  not being removed, you can switch from `import { MyType } from ...` to\n  `import type { MyType } from ...`. See [#46](https://github.com/leonardfactory/babel-plugin-transform-typescript-metadata/issues/46) for details and\n  examples.\n\n- We cannot know if type annotations are just types (i.e. `IMyInterface`) or\n  concrete values (like classes, etc.). In order to resolve this, we emit the\n  following: `typeof Type === 'undefined' ? Object : Type`. The code has the\n  advantage of not throwing. If you know a better way to do this, let me know!\n","_attachments":{},"homepage":"https://github.com/leonardfactory/babel-plugin-transform-typescript-metadata#readme","bugs":{"url":"https://github.com/leonardfactory/babel-plugin-transform-typescript-metadata/issues"},"license":"MIT"}