{"_id":"@dulysse1/ts-branding","_rev":"16-b88eb1caff766e590a8559f39e7104ce","name":"@dulysse1/ts-branding","dist-tags":{"latest":"1.2.1"},"versions":{"1.0.0":{"name":"@dulysse1/ts-branding","version":"1.0.0","keywords":["node","typescript","type","types","safe","tools","typesafe"],"author":{"url":"https://github.com/dulysse","name":"Ulysse Dupont"},"license":"ISC","_id":"@dulysse1/ts-branding@1.0.0","maintainers":[{"name":"dulysse1","email":"ulysse@euranov.com"}],"homepage":"https://github.com/Dulysse/ts-branding#readme","bugs":{"url":"https://github.com/Dulysse/ts-branding/issues"},"dist":{"shasum":"8dbc5e8defecc233ec369ad504c0c02a8eb45a78","tarball":"https://registry.npmjs.org/@dulysse1/ts-branding/-/ts-branding-1.0.0.tgz","fileCount":5,"integrity":"sha512-WepzExFaV2WvqmYN0gqPNwxhQSXgr824yAGJReKBrNwmQiXK/3fMCMkFstfQi5fS9vVF3+xp2wvCC2sqUUjUdA==","signatures":[{"sig":"MEQCIEYfLG0t0/8CWw3zdr8YTOFF7pc1eYgJxmdp9gWVcv/tAiAkmKzbY7NNwCYA0tsQfvW3zCIfE0FqP6QbOn8PjrPGXw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10923},"main":"dist/index.js","_from":"file:dulysse1-ts-branding-1.0.0.tgz","types":"dist/index.d.ts","engines":{"node":">=18","pnpm":">=8"},"private":false,"scripts":{"lint":"npx eslint --fix .","build":"tsup","format:fix":"prettier . --write","format:check":"prettier . --check"},"_npmUser":{"name":"dulysse1","email":"ulysse@euranov.com"},"_resolved":"/private/var/folders/d5/pcd1rgqj4yj_9l3zrvn92cxh0000gn/T/b456388b312fdea81a756004f925d8b5/dulysse1-ts-branding-1.0.0.tgz","_integrity":"sha512-WepzExFaV2WvqmYN0gqPNwxhQSXgr824yAGJReKBrNwmQiXK/3fMCMkFstfQi5fS9vVF3+xp2wvCC2sqUUjUdA==","repository":{"url":"git+https://github.com/Dulysse/ts-branding.git","type":"public"},"_npmVersion":"9.4.0","description":"Decorate object properties and discover the power of Typescript brands ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"19.6.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.2.0","husky":"^8.0.3","eslint":"^8.51.0","prettier":"^3.0.3","typescript":"^5.2.2","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/eslint-plugin":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-branding_1.0.0_1697709135865_0.012463918770923899","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"@dulysse1/ts-branding","version":"1.0.2","keywords":["node","typescript","type","types","safe","tools","typesafe"],"author":{"url":"https://github.com/dulysse","name":"Ulysse Dupont"},"license":"ISC","_id":"@dulysse1/ts-branding@1.0.2","maintainers":[{"name":"dulysse1","email":"ulysse@euranov.com"}],"homepage":"https://github.com/Dulysse/ts-branding#readme","bugs":{"url":"https://github.com/Dulysse/ts-branding/issues"},"dist":{"shasum":"fb39fa0020c36b99d30f4c08a85cbb48b5ab0ec4","tarball":"https://registry.npmjs.org/@dulysse1/ts-branding/-/ts-branding-1.0.2.tgz","fileCount":5,"integrity":"sha512-JTpwzc057NhGDZpD031fyIAfutwsCXPMLwUf0AyelWU7ZzOO6BDriyrRGGiwcv8B/YgcxafH5tksxsR/mEb4Ag==","signatures":[{"sig":"MEUCIHOj7UFDpOpfNQUJzQd8fRQFFXVnuhZ7/h/j5iNW54u8AiEA/pHjtkhKXCgVtq+6apiBlmEy2MIFbhPA57VnnMvJ5ac=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11068},"main":"dist/index.js","_from":"file:dulysse1-ts-branding-1.0.2.tgz","types":"dist/index.d.mts","engines":{"node":">=18","pnpm":">=8"},"private":false,"scripts":{"lint":"npx eslint --fix .","build":"tsup","format:fix":"prettier . --write","format:check":"prettier . --check"},"_npmUser":{"name":"dulysse1","email":"ulysse@euranov.com"},"_resolved":"/private/var/folders/d5/pcd1rgqj4yj_9l3zrvn92cxh0000gn/T/e35c70e85995629633181dcef5dec7e8/dulysse1-ts-branding-1.0.2.tgz","_integrity":"sha512-JTpwzc057NhGDZpD031fyIAfutwsCXPMLwUf0AyelWU7ZzOO6BDriyrRGGiwcv8B/YgcxafH5tksxsR/mEb4Ag==","repository":{"url":"git+https://github.com/Dulysse/ts-branding.git","type":"public"},"_npmVersion":"9.4.0","description":"Decorate object properties and discover the power of Typescript brands ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"19.6.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.2.0","husky":"^8.0.3","eslint":"^8.51.0","prettier":"^3.0.3","typescript":"^5.2.2","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/eslint-plugin":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-branding_1.0.2_1697709616964_0.22276272704089228","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"@dulysse1/ts-branding","version":"1.0.3","keywords":["node","typescript","type","types","safe","tools","typesafe"],"author":{"url":"https://github.com/dulysse","name":"Ulysse Dupont"},"license":"ISC","_id":"@dulysse1/ts-branding@1.0.3","maintainers":[{"name":"dulysse1","email":"ulysse@euranov.com"}],"homepage":"https://github.com/Dulysse/ts-branding#readme","bugs":{"url":"https://github.com/Dulysse/ts-branding/issues"},"dist":{"shasum":"901e4a9ef045eea03fab3f43dafb8b9e52eb9ac4","tarball":"https://registry.npmjs.org/@dulysse1/ts-branding/-/ts-branding-1.0.3.tgz","fileCount":5,"integrity":"sha512-8FCAYq3w7JIldxuC8X49T5mZVv8wba4TxD52iaXdVDIimV9m9Mm9eTS4EFS0C35QCoS1TVp5ySpxQbyp8BUu/A==","signatures":[{"sig":"MEUCIDjyS088SU3KS0oZZQAdb7L51i6uOdahj9laKP0rWSAIAiEA5bmVXj6qhpTbAhOua051jAvRJBrOK6tGJ+/GOfvxOLg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13651},"main":"dist/index.js","_from":"file:dulysse1-ts-branding-1.0.3.tgz","types":"dist/index.d.mts","engines":{"node":">=18","pnpm":">=8"},"private":false,"scripts":{"lint":"npx eslint --fix .","build":"tsup","format:fix":"prettier . --write","format:check":"prettier . --check"},"_npmUser":{"name":"dulysse1","email":"ulysse@euranov.com"},"_resolved":"/private/var/folders/d5/pcd1rgqj4yj_9l3zrvn92cxh0000gn/T/ebfc85330a8284a4d2177fb26aaef2f8/dulysse1-ts-branding-1.0.3.tgz","_integrity":"sha512-8FCAYq3w7JIldxuC8X49T5mZVv8wba4TxD52iaXdVDIimV9m9Mm9eTS4EFS0C35QCoS1TVp5ySpxQbyp8BUu/A==","repository":{"url":"git+https://github.com/Dulysse/ts-branding.git","type":"public"},"_npmVersion":"9.4.0","description":"Decorate object properties and discover the power of Typescript brands ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"19.6.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.2.0","husky":"^8.0.3","eslint":"^8.51.0","prettier":"^3.0.3","typescript":"^5.2.2","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/eslint-plugin":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-branding_1.0.3_1697719847489_0.6507032416760223","host":"s3://npm-registry-packages"}},"1.0.4":{"name":"@dulysse1/ts-branding","version":"1.0.4","keywords":["node","typescript","type","types","safe","tools","typesafe"],"author":{"url":"https://github.com/dulysse","name":"Ulysse Dupont"},"license":"ISC","_id":"@dulysse1/ts-branding@1.0.4","maintainers":[{"name":"dulysse1","email":"ulysse@euranov.com"}],"homepage":"https://github.com/Dulysse/ts-branding#readme","bugs":{"url":"https://github.com/Dulysse/ts-branding/issues"},"dist":{"shasum":"1e0cfee66caf9e438c8f12813e17c335f10e129c","tarball":"https://registry.npmjs.org/@dulysse1/ts-branding/-/ts-branding-1.0.4.tgz","fileCount":5,"integrity":"sha512-Ue4NcgpuLOdzFQJvze5FKt3MiTDU/hZVVd6LHHPc7uozPQPSRKhbJclen+Wdw1RzKXTbCJMuswnxYTPm0v9gbw==","signatures":[{"sig":"MEUCIQDczHx5oWCxw826b2/JEUPNHMeQktBoJsi2iU2kEt/V0AIgZ6Y5nVmWfB4HhZQWAHVN635MWw5A58PdMRY4rPD1O1Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13671},"main":"dist/index.js","_from":"file:dulysse1-ts-branding-1.0.4.tgz","types":"dist/index.d.mts","engines":{"node":">=18","pnpm":">=8"},"private":false,"scripts":{"lint":"npx eslint --fix .","build":"tsup","format:fix":"prettier . --write","format:check":"prettier . --check"},"_npmUser":{"name":"dulysse1","email":"ulysse@euranov.com"},"_resolved":"/private/var/folders/d5/pcd1rgqj4yj_9l3zrvn92cxh0000gn/T/f5b9cd1e4173f66d91b79f126ff11fed/dulysse1-ts-branding-1.0.4.tgz","_integrity":"sha512-Ue4NcgpuLOdzFQJvze5FKt3MiTDU/hZVVd6LHHPc7uozPQPSRKhbJclen+Wdw1RzKXTbCJMuswnxYTPm0v9gbw==","repository":{"url":"git+https://github.com/Dulysse/ts-branding.git","type":"public"},"_npmVersion":"9.4.0","description":"Decorate object properties and discover the power of Typescript brands ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"19.6.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.2.0","husky":"^8.0.3","eslint":"^8.51.0","prettier":"^3.0.3","typescript":"^5.2.2","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/eslint-plugin":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-branding_1.0.4_1697721319130_0.19262831785957757","host":"s3://npm-registry-packages"}},"1.0.5":{"name":"@dulysse1/ts-branding","version":"1.0.5","keywords":["node","typescript","type","types","safe","tools","typesafe"],"author":{"url":"https://github.com/dulysse","name":"Ulysse Dupont"},"license":"ISC","_id":"@dulysse1/ts-branding@1.0.5","maintainers":[{"name":"dulysse1","email":"ulysse@euranov.com"}],"homepage":"https://github.com/Dulysse/ts-branding#readme","bugs":{"url":"https://github.com/Dulysse/ts-branding/issues"},"dist":{"shasum":"bf86417517da8e646212f05edef8f4996cc1e9c4","tarball":"https://registry.npmjs.org/@dulysse1/ts-branding/-/ts-branding-1.0.5.tgz","fileCount":5,"integrity":"sha512-0ki/2gseaVBd0MmNbE5kEMBnQWJdqU1N3vZuSSsxZceYYYKcKYsuU+Ve1pSRoI/4dq4DZvcwLrvTUFjaf2z3Hw==","signatures":[{"sig":"MEQCIGzkZ/KbIkurnLlitGfeq0whbUtxU2NqFR9FB2u3z/GJAiA6SWNbsuJRED0G98VMeUU28JjGUtWa0HZTjS4TopbJ1g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13742},"main":"dist/index.js","_from":"file:dulysse1-ts-branding-1.0.5.tgz","types":"dist/index.d.mts","engines":{"node":">=18","pnpm":">=8"},"private":false,"scripts":{"lint":"npx eslint --fix .","build":"tsup","format:fix":"prettier . --write","format:check":"prettier . --check"},"_npmUser":{"name":"dulysse1","email":"ulysse@euranov.com"},"_resolved":"/private/var/folders/d5/pcd1rgqj4yj_9l3zrvn92cxh0000gn/T/b49f4b84f1279f4a6fcd289264bb921e/dulysse1-ts-branding-1.0.5.tgz","_integrity":"sha512-0ki/2gseaVBd0MmNbE5kEMBnQWJdqU1N3vZuSSsxZceYYYKcKYsuU+Ve1pSRoI/4dq4DZvcwLrvTUFjaf2z3Hw==","repository":{"url":"git+https://github.com/Dulysse/ts-branding.git","type":"public"},"_npmVersion":"9.4.0","description":"Decorate object properties and discover the power of Typescript brands ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"19.6.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.2.0","husky":"^8.0.3","eslint":"^8.51.0","prettier":"^3.0.3","typescript":"^5.2.2","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/eslint-plugin":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-branding_1.0.5_1697723610080_0.4319981604437584","host":"s3://npm-registry-packages"}},"1.0.6":{"name":"@dulysse1/ts-branding","version":"1.0.6","keywords":["node","typescript","type","types","safe","tools","typesafe"],"author":{"url":"https://github.com/dulysse","name":"Ulysse Dupont"},"license":"ISC","_id":"@dulysse1/ts-branding@1.0.6","maintainers":[{"name":"dulysse1","email":"ulysse@euranov.com"}],"homepage":"https://github.com/Dulysse/ts-branding#readme","bugs":{"url":"https://github.com/Dulysse/ts-branding/issues"},"dist":{"shasum":"f8058d15dd5db5f971105545b3203e108bf79703","tarball":"https://registry.npmjs.org/@dulysse1/ts-branding/-/ts-branding-1.0.6.tgz","fileCount":5,"integrity":"sha512-5/XuoJB7DJYmdOW5bU8ARQpIDRj9El+teZcJ+wbKuY9/Z8nFDSqwjnBw2Y+WIM/gSEQVaDOR54wMmmV7bb18RA==","signatures":[{"sig":"MEUCIQD5pLoMAnjFRws87gx3AeqUYrzwjKOSNpbqzlPaUHrdEQIgGqwcFsC6r7SNkxShDeImkjA207YZ6xg6ko/YwaspHUE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13847},"main":"dist/index.js","_from":"file:dulysse1-ts-branding-1.0.6.tgz","types":"dist/index.d.mts","engines":{"node":">=18","pnpm":">=8"},"private":false,"scripts":{"lint":"npx eslint --fix .","build":"tsup","format:fix":"prettier . --write","format:check":"prettier . --check"},"_npmUser":{"name":"dulysse1","email":"ulysse@euranov.com"},"_resolved":"/private/var/folders/d5/pcd1rgqj4yj_9l3zrvn92cxh0000gn/T/b39ce1f76ba8309794e2b57c05d5b71e/dulysse1-ts-branding-1.0.6.tgz","_integrity":"sha512-5/XuoJB7DJYmdOW5bU8ARQpIDRj9El+teZcJ+wbKuY9/Z8nFDSqwjnBw2Y+WIM/gSEQVaDOR54wMmmV7bb18RA==","repository":{"url":"git+https://github.com/Dulysse/ts-branding.git","type":"public"},"_npmVersion":"9.4.0","description":"Decorate object properties and discover the power of Typescript brands ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"19.6.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.2.0","husky":"^8.0.3","eslint":"^8.51.0","prettier":"^3.0.3","typescript":"^5.2.2","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/eslint-plugin":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-branding_1.0.6_1697724088843_0.20065136669408146","host":"s3://npm-registry-packages"}},"1.0.7":{"name":"@dulysse1/ts-branding","version":"1.0.7","keywords":["node","typescript","type","types","safe","tools","typesafe"],"author":{"url":"https://github.com/dulysse","name":"Ulysse Dupont"},"license":"ISC","_id":"@dulysse1/ts-branding@1.0.7","maintainers":[{"name":"dulysse1","email":"ulysse@euranov.com"}],"homepage":"https://github.com/Dulysse/ts-branding#readme","bugs":{"url":"https://github.com/Dulysse/ts-branding/issues"},"dist":{"shasum":"36b5e39ac399e055ad6bd8558bdca4cc70e3ad5f","tarball":"https://registry.npmjs.org/@dulysse1/ts-branding/-/ts-branding-1.0.7.tgz","fileCount":5,"integrity":"sha512-7Td1joXAuJqDIQL1MJEsC4xzzKRbmLjqPORkQIXXy1sMA/+1juzX+pb3u1zlcZ+raM+JdCcmyH3YnNuLDwVdXQ==","signatures":[{"sig":"MEYCIQDThsbydm984r7ZGS94yYM/NlJJX4udHkTwqCyHhP4WyAIhAMy3ttWndQYHvbFHBq3wF9uxYCT0k6NdNjcmcMGYQ1TA","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14135},"main":"dist/index.js","_from":"file:dulysse1-ts-branding-1.0.7.tgz","types":"dist/index.d.mts","engines":{"node":">=18","pnpm":">=8"},"private":false,"scripts":{"lint":"npx eslint --fix .","build":"tsup","format:fix":"prettier . --write","format:check":"prettier . --check"},"_npmUser":{"name":"dulysse1","email":"ulysse@euranov.com"},"_resolved":"/private/var/folders/d5/pcd1rgqj4yj_9l3zrvn92cxh0000gn/T/b74dea2f6f84fef01afeebb10a4256cd/dulysse1-ts-branding-1.0.7.tgz","_integrity":"sha512-7Td1joXAuJqDIQL1MJEsC4xzzKRbmLjqPORkQIXXy1sMA/+1juzX+pb3u1zlcZ+raM+JdCcmyH3YnNuLDwVdXQ==","repository":{"url":"git+https://github.com/Dulysse/ts-branding.git","type":"public"},"_npmVersion":"9.4.0","description":"Decorate object properties and discover the power of Typescript brands ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"19.6.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.2.0","husky":"^8.0.3","eslint":"^8.51.0","prettier":"^3.0.3","typescript":"^5.2.2","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/eslint-plugin":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-branding_1.0.7_1697726177834_0.5257629595007407","host":"s3://npm-registry-packages"}},"1.0.8":{"name":"@dulysse1/ts-branding","version":"1.0.8","keywords":["node","typescript","type","types","safe","tools","typesafe"],"author":{"url":"https://github.com/dulysse","name":"Ulysse Dupont"},"license":"ISC","_id":"@dulysse1/ts-branding@1.0.8","maintainers":[{"name":"dulysse1","email":"ulysse@euranov.com"}],"homepage":"https://github.com/Dulysse/ts-branding#readme","bugs":{"url":"https://github.com/Dulysse/ts-branding/issues"},"dist":{"shasum":"008b81f642eeda8e6ba38370968ce48615fa95f4","tarball":"https://registry.npmjs.org/@dulysse1/ts-branding/-/ts-branding-1.0.8.tgz","fileCount":5,"integrity":"sha512-Ft7p/9zupvlsgUevuqZ5+vqmD7T67C9pWJPxWQKhHeJA/GYX5/BGx02wD7ahVSeWF33dEQQ6+yf3C5tr/JFydA==","signatures":[{"sig":"MEQCIEJk3K+vZNWQNz3qCy/svnxEiibc52puMdBcNzg9OSnkAiB4/Aw1oKbGyS3XjI0ADdC6+h1W1ZGmgjlLwhTOBvptMA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20936},"main":"dist/index.mjs","_from":"file:dulysse1-ts-branding-1.0.8.tgz","types":"dist/index.d.mts","engines":{"node":">=18","pnpm":">=8"},"private":false,"scripts":{"lint":"npx eslint --fix .","build":"tsup","format:fix":"prettier . --write","format:check":"prettier . --check"},"_npmUser":{"name":"dulysse1","email":"ulysse@euranov.com"},"_resolved":"/private/var/folders/d5/pcd1rgqj4yj_9l3zrvn92cxh0000gn/T/53cf4390a38334f8676bdaceab6e902c/dulysse1-ts-branding-1.0.8.tgz","_integrity":"sha512-Ft7p/9zupvlsgUevuqZ5+vqmD7T67C9pWJPxWQKhHeJA/GYX5/BGx02wD7ahVSeWF33dEQQ6+yf3C5tr/JFydA==","repository":{"url":"git+https://github.com/Dulysse/ts-branding.git","type":"public"},"_npmVersion":"9.4.0","description":"Decorate object properties and discover the power of Typescript brands ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"19.6.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.2.0","husky":"^8.0.3","eslint":"^8.51.0","prettier":"^3.0.3","typescript":"^5.2.2","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/eslint-plugin":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-branding_1.0.8_1697814470483_0.6051764889252402","host":"s3://npm-registry-packages"}},"1.0.9":{"name":"@dulysse1/ts-branding","version":"1.0.9","keywords":["node","typescript","type","types","safe","tools","typesafe"],"author":{"url":"https://github.com/dulysse","name":"Ulysse Dupont"},"license":"ISC","_id":"@dulysse1/ts-branding@1.0.9","maintainers":[{"name":"dulysse1","email":"ulysse@euranov.com"}],"homepage":"https://github.com/Dulysse/ts-branding#readme","bugs":{"url":"https://github.com/Dulysse/ts-branding/issues"},"dist":{"shasum":"2e2f59a766700ee93c8d3a92577131acbe38e681","tarball":"https://registry.npmjs.org/@dulysse1/ts-branding/-/ts-branding-1.0.9.tgz","fileCount":5,"integrity":"sha512-ah5ddC/DyPMJbzEw9LHQsZXrRa+hQPz7fMV8cezn9UF2kJLNn0q5wu9i492Qj4pXY/2TInH5UtDk2FJBI/ypyA==","signatures":[{"sig":"MEYCIQD5PAX8eSmVYMwi204LhdYhlpuLe14sFNKPPnvKK7hk6wIhALHghpECLCDSNjAtRgINGfXUFQ6DkYWleaUuudtdIqyP","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20945},"main":"dist/index.mjs","_from":"file:dulysse1-ts-branding-1.0.9.tgz","types":"dist/index.d.mts","engines":{"node":">=18","pnpm":">=8"},"private":false,"scripts":{"lint":"npx eslint --fix .","build":"tsup","format:fix":"prettier . --write","format:check":"prettier . --check"},"_npmUser":{"name":"dulysse1","email":"ulysse@euranov.com"},"_resolved":"/private/var/folders/d5/pcd1rgqj4yj_9l3zrvn92cxh0000gn/T/1cfe0ac79fd8e84808999c34d9d91c3b/dulysse1-ts-branding-1.0.9.tgz","_integrity":"sha512-ah5ddC/DyPMJbzEw9LHQsZXrRa+hQPz7fMV8cezn9UF2kJLNn0q5wu9i492Qj4pXY/2TInH5UtDk2FJBI/ypyA==","repository":{"url":"git+https://github.com/Dulysse/ts-branding.git","type":"public"},"_npmVersion":"9.4.0","description":"Decorate object properties and discover the power of Typescript brands ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"19.6.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.2.0","husky":"^8.0.3","eslint":"^8.51.0","prettier":"^3.0.3","typescript":"^5.2.2","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/eslint-plugin":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-branding_1.0.9_1697829751924_0.2815494176170208","host":"s3://npm-registry-packages"}},"1.0.10":{"name":"@dulysse1/ts-branding","version":"1.0.10","keywords":["node","typescript","type","types","safe","tools","typesafe"],"author":{"url":"https://github.com/dulysse","name":"Ulysse Dupont"},"license":"ISC","_id":"@dulysse1/ts-branding@1.0.10","maintainers":[{"name":"dulysse1","email":"ulysse@euranov.com"}],"homepage":"https://github.com/Dulysse/ts-branding#readme","bugs":{"url":"https://github.com/Dulysse/ts-branding/issues"},"dist":{"shasum":"ce5857aa06e8239b309dac5f0f8b6cb1b1f8f9c2","tarball":"https://registry.npmjs.org/@dulysse1/ts-branding/-/ts-branding-1.0.10.tgz","fileCount":5,"integrity":"sha512-x55hunWKjYUIS7/k7b4WAkxB2HLaWY8mbpIuke7bPd0fnvHfERFZ/Pez9i+tzUsqCYnlZvnQldCwVO7h+U5XWQ==","signatures":[{"sig":"MEYCIQCNr68Izgx0noLabOZQBjJExbIwZ+TINwdvcmo6FcnauwIhALsqESuvbDTMafeAEpMD6vqPqSBZMVxGQC7gGPWllR/L","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":21904},"main":"dist/index.mjs","_from":"file:dulysse1-ts-branding-1.0.10.tgz","types":"dist/index.d.mts","engines":{"node":">=18","pnpm":">=8"},"private":false,"scripts":{"lint":"npx eslint --fix .","build":"tsup","format:fix":"prettier . --write","format:check":"prettier . --check"},"_npmUser":{"name":"dulysse1","email":"ulysse@euranov.com"},"_resolved":"/private/var/folders/d5/pcd1rgqj4yj_9l3zrvn92cxh0000gn/T/11ac6d49d4a2a814cf4efe5fb80de9dc/dulysse1-ts-branding-1.0.10.tgz","_integrity":"sha512-x55hunWKjYUIS7/k7b4WAkxB2HLaWY8mbpIuke7bPd0fnvHfERFZ/Pez9i+tzUsqCYnlZvnQldCwVO7h+U5XWQ==","repository":{"url":"git+https://github.com/Dulysse/ts-branding.git","type":"public"},"_npmVersion":"9.4.0","description":"Decorate object properties and discover the power of Typescript brands ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"19.6.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.2.0","husky":"^8.0.3","eslint":"^8.51.0","prettier":"^3.0.3","typescript":"^5.2.2","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/eslint-plugin":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-branding_1.0.10_1698050907305_0.2193343919925972","host":"s3://npm-registry-packages"}},"1.0.11":{"name":"@dulysse1/ts-branding","version":"1.0.11","keywords":["node","typescript","type","types","safe","tools","typesafe"],"author":{"url":"https://github.com/dulysse","name":"Ulysse Dupont"},"license":"ISC","_id":"@dulysse1/ts-branding@1.0.11","maintainers":[{"name":"dulysse1","email":"ulysse@euranov.com"}],"homepage":"https://github.com/Dulysse/ts-branding#readme","bugs":{"url":"https://github.com/Dulysse/ts-branding/issues"},"dist":{"shasum":"67c1728d327c5a9a1ec011a08a395dc00f10c385","tarball":"https://registry.npmjs.org/@dulysse1/ts-branding/-/ts-branding-1.0.11.tgz","fileCount":5,"integrity":"sha512-SuMHt4fifdaY1WCxtT6pNwNNlnU7AS3G6c/sdYTyqWHLJVqgctzShBvuqG8okofYxl7tpNE3kGTYsDgxoShS+Q==","signatures":[{"sig":"MEQCIA4IMEc38SspzgZ4S1gZ7KudgHChkIhM5hA2v7xIYqGYAiBfT8lZa1WPbdc+6Np+wxlzBobEEyyVsOXM1vcAkYuc/A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25650},"main":"dist/index.mjs","_from":"file:dulysse1-ts-branding-1.0.11.tgz","types":"dist/index.d.mts","engines":{"node":">=18","pnpm":">=8"},"private":false,"scripts":{"lint":"npx eslint --fix .","build":"tsup","format:fix":"prettier . --write","format:check":"prettier . --check"},"_npmUser":{"name":"dulysse1","email":"ulysse@euranov.com"},"_resolved":"/private/var/folders/d5/pcd1rgqj4yj_9l3zrvn92cxh0000gn/T/98a246c9b119737f47c685ba10e96dd8/dulysse1-ts-branding-1.0.11.tgz","_integrity":"sha512-SuMHt4fifdaY1WCxtT6pNwNNlnU7AS3G6c/sdYTyqWHLJVqgctzShBvuqG8okofYxl7tpNE3kGTYsDgxoShS+Q==","repository":{"url":"git+https://github.com/Dulysse/ts-branding.git","type":"public"},"_npmVersion":"9.4.0","description":"Decorate object properties and discover the power of Typescript brands ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"19.6.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.2.0","husky":"^8.0.3","eslint":"^8.52.0","prettier":"^3.0.3","typescript":"^5.2.2","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/eslint-plugin":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-branding_1.0.11_1698072499036_0.6256307966256838","host":"s3://npm-registry-packages"}},"1.0.12":{"name":"@dulysse1/ts-branding","version":"1.0.12","keywords":["node","typescript","type","types","safe","tools","typesafe"],"author":{"url":"https://github.com/dulysse","name":"Ulysse Dupont"},"license":"ISC","_id":"@dulysse1/ts-branding@1.0.12","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-branding#readme","bugs":{"url":"https://github.com/Dulysse/ts-branding/issues"},"dist":{"shasum":"6f874706b0d8da9be5ae7e8eec001cfea7b46045","tarball":"https://registry.npmjs.org/@dulysse1/ts-branding/-/ts-branding-1.0.12.tgz","fileCount":5,"integrity":"sha512-/DsQgvnBz6QWvmpCjSSHD1MBe/zVIuOyXhaYEc/id7W/QZaqWvHulr9Cagr032J1+PN1gefBUBCadv4ZUAX1Jg==","signatures":[{"sig":"MEQCIGfTqDzCvzCR8cVIgtA6j9Ug7SJWT13yqU2y8OMv9sAGAiBKI5fooSagSDtBfxAlh4zRDcgC1kVeVlaMHrtI4ff0DA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25943},"main":"dist/index.mjs","types":"dist/index.d.mts","engines":{"node":">=18","pnpm":">=8"},"gitHead":"d0e20c0f4fe894879c80019702f665f484c8762a","private":false,"scripts":{"lint":"npx eslint --fix .","build":"tsup","prepare":"husky install","format:fix":"prettier . --write","format:check":"prettier . --check","prepublishOnly":"pnpm build"},"_npmUser":{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"},"repository":{"url":"git+https://github.com/Dulysse/ts-branding.git","type":"public"},"_npmVersion":"10.8.3","description":"Decorate object properties and discover the power of Typescript brands ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"20.15.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.2.0","husky":"^8.0.3","eslint":"^8.52.0","prettier":"^3.0.3","typescript":"^5.2.2","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/eslint-plugin":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-branding_1.0.12_1727192756665_0.4669765494965872","host":"s3://npm-registry-packages"}},"1.0.13":{"name":"@dulysse1/ts-branding","version":"1.0.13","keywords":["node","typescript","type","types","safe","tools","typesafe"],"author":{"url":"https://github.com/dulysse","name":"Ulysse Dupont"},"license":"ISC","_id":"@dulysse1/ts-branding@1.0.13","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-branding#readme","bugs":{"url":"https://github.com/Dulysse/ts-branding/issues"},"dist":{"shasum":"6f52f0730ae889c5e9ed1b2252b2422f82bb436a","tarball":"https://registry.npmjs.org/@dulysse1/ts-branding/-/ts-branding-1.0.13.tgz","fileCount":5,"integrity":"sha512-9qGPIuxVDDmJec7uL2Dd+QZYAt3p9Bqv8CIbBkoPkdsBV8Av9RLVXFBx9GdPxAbesXP+wUs3kNighg2cq8rIOA==","signatures":[{"sig":"MEQCIAOxysmTF0ojJ7S2yY125VxuM0JDVyV4N84COkYdeY6eAiAsjXr7a6FHa9OhXcPo/9tnS66JU87FoZkXTdUxgJSwzw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26687},"main":"dist/index.mjs","types":"dist/index.d.mts","engines":{"node":">=18","pnpm":">=8"},"gitHead":"06f0b6b1e48528018f6edcec1fce0341a9db583d","private":false,"scripts":{"lint":"npx eslint --fix .","build":"tsup","prepare":"husky install","format:fix":"prettier . --write","format:check":"prettier . --check","prepublishOnly":"pnpm build"},"_npmUser":{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"},"repository":{"url":"git+https://github.com/Dulysse/ts-branding.git","type":"public"},"_npmVersion":"10.8.3","description":"Decorate object properties and discover the power of Typescript brands ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"20.15.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.2.0","husky":"^8.0.3","eslint":"^8.52.0","prettier":"^3.0.3","typescript":"^5.2.2","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/eslint-plugin":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-branding_1.0.13_1727194218491_0.8560508846957449","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@dulysse1/ts-branding","version":"1.1.0","keywords":["node","typescript","type","types","safe","tools","typesafe"],"author":{"url":"https://github.com/dulysse","name":"Ulysse Dupont","email":"ulyssedupont2707@gmail.com"},"license":"ISC","_id":"@dulysse1/ts-branding@1.1.0","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-branding/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-branding/issues"},"dist":{"shasum":"7c4c2004b189e926a8bc2ea839b49c6d5639e7dc","tarball":"https://registry.npmjs.org/@dulysse1/ts-branding/-/ts-branding-1.1.0.tgz","fileCount":5,"integrity":"sha512-kHzB8T3FO4p/ZqHqQCcOgD70yWnJQmybwM0BHa0AgfbwejwiypveMFzCqwRjuCKEVI5sHJYT0Xue6qq7Ydd+Eg==","signatures":[{"sig":"MEUCIQDK34Kh/wCY7sfJYDscG6ZFRNppVTgTjdQsXFPCeMsGawIgBzFlpXlFOOuOJEod23T5V1G23S/aO5AD291HcuhyCKQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26315},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-branding-1.1.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20","pnpm":">=9"},"exports":{".":{"import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"lint":"npx eslint --fix .","build":"tsup","format:fix":"prettier . --write","format:check":"prettier . --check","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\c2679e97d39b2dcf9b1cbd185f88df5c\\dulysse1-ts-branding-1.1.0.tgz","_integrity":"sha512-kHzB8T3FO4p/ZqHqQCcOgD70yWnJQmybwM0BHa0AgfbwejwiypveMFzCqwRjuCKEVI5sHJYT0Xue6qq7Ydd+Eg==","repository":{"url":"git+https://github.com/Dulysse/ts-branding.git","type":"public"},"_npmVersion":"11.0.0","description":"Decorate object properties and discover the power of Typescript brands ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.6","husky":"^9.1.7","eslint":"^9.21.0","globals":"^16.0.0","prettier":"^3.5.2","@eslint/js":"^9.21.0","typescript":"^5.7.3","typescript-eslint":"^8.24.1","@arethetypeswrong/cli":"^0.17.4","eslint-plugin-prettier":"^5.2.3"},"_npmOperationalInternal":{"tmp":"tmp/ts-branding_1.1.0_1740388926803_0.5021802779077997","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@dulysse1/ts-branding","version":"1.2.0","keywords":["node","typescript","type","types","safe","tools","typesafe"],"author":{"url":"https://github.com/dulysse","name":"Ulysse Dupont","email":"ulyssedupont2707@gmail.com"},"license":"ISC","_id":"@dulysse1/ts-branding@1.2.0","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-branding/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-branding/issues"},"dist":{"shasum":"ddf27b72c88187484b33aee14bfbd5fcfa2e237d","tarball":"https://registry.npmjs.org/@dulysse1/ts-branding/-/ts-branding-1.2.0.tgz","fileCount":5,"integrity":"sha512-HTVjEV1XzcnSfdoiWtoCybRMAH7Gk2qRlZQw2QiZb6jRXKCPx7KyD2y0rGs9J2+is5MAV3NV23bc8CpazbSxzg==","signatures":[{"sig":"MEQCIBYxw8kPls7/+RaINj9zrYTBSTWR9zeuUohB27mMgTdoAiAPqlUfTCEYgz2cC3lHX2+P1yFLeSA1NxeKCwYqpMp5Bw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26591},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-branding-1.2.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20","pnpm":">=9"},"exports":{".":{"import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"lint":"npx eslint --fix .","build":"tsup","format:fix":"prettier . --write","format:check":"prettier . --check","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\82f2352dbd4ac3b459c18bc9aebbc472\\dulysse1-ts-branding-1.2.0.tgz","_integrity":"sha512-HTVjEV1XzcnSfdoiWtoCybRMAH7Gk2qRlZQw2QiZb6jRXKCPx7KyD2y0rGs9J2+is5MAV3NV23bc8CpazbSxzg==","repository":{"url":"git+https://github.com/Dulysse/ts-branding.git","type":"public"},"_npmVersion":"11.0.0","description":"Decorate object properties and discover the power of Typescript brands ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.6","husky":"^9.1.7","eslint":"^9.21.0","globals":"^16.0.0","prettier":"^3.5.2","@eslint/js":"^9.21.0","typescript":"^5.7.3","typescript-eslint":"^8.24.1","@arethetypeswrong/cli":"^0.17.4","eslint-plugin-prettier":"^5.2.3"},"_npmOperationalInternal":{"tmp":"tmp/ts-branding_1.2.0_1740389595801_0.14843437896358447","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@dulysse1/ts-branding","version":"1.2.1","description":"Decorate object properties and discover the power of Typescript brands ✨","lint-staged":{"**/*":"prettier --write --ignore-unknown"},"keywords":["node","typescript","type","types","safe","tools","typesafe"],"author":{"name":"Ulysse Dupont","email":"ulyssedupont2707@gmail.com","url":"https://github.com/dulysse"},"repository":{"url":"git+https://github.com/Dulysse/ts-branding.git","type":"public"},"bugs":{"url":"https://github.com/Dulysse/ts-branding/issues"},"engines":{"node":">=20","pnpm":">=9"},"type":"module","exports":{"./package.json":"./package.json",".":{"import":"./dist/index.js","default":"./dist/index.js"}},"main":"./dist/index.js","homepage":"https://github.com/Dulysse/ts-branding/blob/master/README.md","private":false,"license":"ISC","devDependencies":{"@arethetypeswrong/cli":"^0.17.4","@eslint/js":"^9.21.0","eslint":"^9.21.0","eslint-plugin-prettier":"^5.2.3","globals":"^16.0.0","husky":"^9.1.7","prettier":"^3.5.2","tsup":"^8.3.6","typescript":"^5.7.3","typescript-eslint":"^8.24.1"},"scripts":{"build":"tsup","format:check":"prettier . --check","format:fix":"prettier . --write","lint":"npx eslint --fix .","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_id":"@dulysse1/ts-branding@1.2.1","types":"./dist/index.d.ts","_integrity":"sha512-kgpwQImwo4flK+zEVp76R5iLSou95XKRZ5uoXYpGlSC7xbUbj1qGtvoaFExkDb3dIalCChbAlUYgQNgEmzqZAg==","_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\dd88934b0b7256b23c8747ae343978c2\\dulysse1-ts-branding-1.2.1.tgz","_from":"file:dulysse1-ts-branding-1.2.1.tgz","_nodeVersion":"22.9.0","_npmVersion":"11.2.0","dist":{"integrity":"sha512-kgpwQImwo4flK+zEVp76R5iLSou95XKRZ5uoXYpGlSC7xbUbj1qGtvoaFExkDb3dIalCChbAlUYgQNgEmzqZAg==","shasum":"f03d24ebe9b51589525ce29d3e78f55d5087614b","tarball":"https://registry.npmjs.org/@dulysse1/ts-branding/-/ts-branding-1.2.1.tgz","fileCount":5,"unpackedSize":27182,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIF2nHTXGE4IBfzrh6uQbyVmGWfNbhzu9vcNXZicIlvZpAiEAknjXTZW+QpoWkKiXzuJUi5yhgrOInP8nbdT8qBx46IA="}]},"_npmUser":{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"},"directories":{},"maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ts-branding_1.2.1_1741945829937_0.08685483753603473"},"_hasShrinkwrap":false}},"time":{"created":"2023-10-19T09:52:15.757Z","modified":"2025-03-14T09:50:30.302Z","1.0.0":"2023-10-19T09:52:16.055Z","1.0.2":"2023-10-19T10:00:17.148Z","1.0.3":"2023-10-19T12:50:47.773Z","1.0.4":"2023-10-19T13:15:19.332Z","1.0.5":"2023-10-19T13:53:30.269Z","1.0.6":"2023-10-19T14:01:29.116Z","1.0.7":"2023-10-19T14:36:18.103Z","1.0.8":"2023-10-20T15:07:50.665Z","1.0.9":"2023-10-20T19:22:32.146Z","1.0.10":"2023-10-23T08:48:27.485Z","1.0.11":"2023-10-23T14:48:19.239Z","1.0.12":"2024-09-24T15:45:56.938Z","1.0.13":"2024-09-24T16:10:18.704Z","1.1.0":"2025-02-24T09:22:06.978Z","1.2.0":"2025-02-24T09:33:16.002Z","1.2.1":"2025-03-14T09:50:30.153Z"},"bugs":{"url":"https://github.com/Dulysse/ts-branding/issues"},"author":{"name":"Ulysse Dupont","email":"ulyssedupont2707@gmail.com","url":"https://github.com/dulysse"},"license":"ISC","homepage":"https://github.com/Dulysse/ts-branding/blob/master/README.md","keywords":["node","typescript","type","types","safe","tools","typesafe"],"repository":{"url":"git+https://github.com/Dulysse/ts-branding.git","type":"public"},"description":"Decorate object properties and discover the power of Typescript brands ✨","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"readme":"> [!WARNING]\n> Since 1.1.0 version `Apk` is now called `Infer` and the methods `Apk.PrimaryKeyType` and `Brand.PrimaryKey` are now called `Infer.PrimaryKey` and `Brand.Pk`\n\n> [!WARNING]\n> Since 1.2.0 version `Op` is now called `Brand`\n\n![https://raw.githubusercontent.com/Dulysse/ts-branding/refs/heads/main/assets/logo.svg](https://raw.githubusercontent.com/Dulysse/ts-branding/refs/heads/main/assets/logo.svg)\n\n# 🛠 ts-branding 🛠\n\n#### <i>Decorate `object` properties and discover the power of Typescript brands ✨</i>\n\n## Getting Started 🆙\n\n### Prerequisites\n\nInstall `Typescript` on your project\n\n```shell\nnpm install typescript --save-dev\n```\n\n`Or`\n\n```shell\nyarn add typescript --dev\n```\n\n`Or`\n\n```shell\npnpm i -D typescript\n```\n\nFor best results, add this to your `tsconfig.json`\n\n```json\n{\n\t\"compilerOptions\": {\n\t\t\"strictNullChecks\": true, // highly recommended (required by few utilities)\n\t\t\"strict\": true, // this is optional, but enable whenever possible\n\t\t\"lib\": [\"es2015\"] // this is the lowest supported standard library\n\t}\n}\n```\n\n## How to use ? 🤔\n\n### With EcmaScript module ✅\n\n```tsx\nimport type { Brand, Infer, Helper } from \"@dulysse1/ts-branding\";\n// now you can decorate your forms!\n```\n\n## Documentation 🧗\n\n#### 👉 Create `type/interface` and decorate properties 🎨\n\n```tsx\nimport type { Brand } from \"@dulysse1/ts-branding\";\n\ninterface User {\n\tid: number;\n\tname: Brand.Required<string>; // <= Operator Required\n\tdescription: Brand.Optional<string>; // <= Operator Optional\n\tcreated: Date;\n}\n\nconst user: User = {\n\tid: 1,\n\tname: \"Martin\", // <= keep string properties!\n\tdescription: \"This is Martin!\", // <= keep string properties!\n\tcreated: new Date(),\n};\n```\n\n#### 👉 Apply `Applicators` to trigger Brand functions 🔧\n\n```tsx\nimport type { Infer } from \"@dulysse1/ts-branding\";\n\ntype ApplyFormUser = Infer.ApplyForm<User>;\n// ApplyFormUser: {\n// \tname: string; // <= Required in form\n// \tdescription?: string | undefined; // <= Optional in form\n// }\n\ntype ApplyPartialFormUser = Infer.ApplyPartialForm<User>;\n// ApplyPartialFormUser: {\n// \tname?: string | undefined; // <= Optional in form\n// \tdescription?: string | undefined; // <= Optional in form\n// }\n```\n\n#### 👉 Use `Applicators` into functions 🚀\n\n```tsx\nimport type { Brand, Infer } from \"@dulysse1/ts-branding\";\n\ninterface User {\n  id: Brand.Pk<number>; // <= Operator for Primary Signature\n  name: string;\n}\n\nfunction getById(id: Infer.PrimaryKey<User>) {...} // <= id is type number\n```\n\n#### 👉 Use more property brands 🖌️\n\n```tsx\nimport type { Brand, Infer } from \"@dulysse1/ts-branding\";\n\ninterface User {\n\tid: Brand.Pk<number>;\n\tname: Brand.Required<string>;\n\tdescription: Brand.Optional<string>;\n\tcreated: Brand.Omit<Date>;\n\tactivated: Brand.Pick<boolean>;\n}\n\ntype PickedUser = Infer.Picked<User>;\n// PickedUser: {\n//    activated: boolean;\n// }\n\ntype OmittedUser = Infer.Omitted<User>;\n// OmittedUser: {\n// \t\tid: Brand.Pk<number>;\n// \t\tname: Brand.Required<string>;\n// \tdescription: Brand.Optional<string>;\n// }\n\ntype CleanedUser = Infer.Cleaned<User>;\n// CleanedUser: {\n// \tid: number;\n// \tname: string;\n// \tdescription: string;\n// \tcreated: Date;\n// }\n```\n\n#### 👉 Now you can use it for `strong type verification` on your REST client 💪\n\n```tsx\nimport type { Brand, Infer, Helper } from \"@dulysse1/ts-branding\";\n\nexport interface User {\n  id: Brand.Pk<number>;\n  name: Brand.Required<string>;\n  description: Brand.Optional<string>;\n  created: Date;\n}\n\nexport class UserService implements Helper.Plugin<User> {\n  public getById(id: string) {...} // ERROR ! ID should be a number!\n  public create(data: Infer.ApplyForm<User>) {...} // OK!\n}\n```\n\n#### 👉 Use different `Signature` to use multiple type `applicators` 📋\n\n```tsx\nimport type { Brand, Infer, Helper } from \"@dulysse1/ts-branding\";\n\nexport interface User {\n\tname1: Brand.Required<string, \"user1\">;\n\tname2: Brand.Optional<string, \"user2\">;\n\tdemo: Brand.Picked<boolean, \"user1\">;\n}\n\ntype ApplyFormUser1 = Infer.ApplyForm<User, \"user1\">;\n// ApplyFormUser1: {\n//    name1: string; // <= Required in form with signature \"user1\"\n// }\n\ntype ApplyFormUser2 = Infer.ApplyForm<User, \"user2\">;\n//  ApplyFormUser2: {\n//     name2?: string | undefined; // <= Required in form with signature \"user2\"\n//  }\n\ntype PickedUser1 = Infer.Picked<User, \"user1\">;\n//  PickedUser1: {\n//     demo: boolean;\n//  }\n```\n\n#### 👉 You can create your object in complete safety with the `SafeObject` helper! ✋🛑\n\n```tsx\nimport type { Brand, Helper } from \"@dulysse1/ts-branding\";\n\n// UNSAFE!\nexport interface User {\n\tid: Brand.Pk<number>;\n\tid2: Brand.Pk<number>; // ❌ Two primary keys may be a mistake!\n\t// ------------------------\n\tname: Brand.Required<Brand.Optional<string>>; // ❌ A required type may not be optional!\n}\n\n// ✅ SAFE!\nexport type User = Helper.SafeObject<{\n\tid: Brand.Pk<number>;\n\tid2: Brand.Pk<number>;\n}>; // ❌ NOT OK! Error: one primary key only!\n\nexport type User = Helper.SafeObject<{\n\tname: Brand.Required<Brand.Optional<string>>;\n}>; // ❌ NOT OK! Error: cannot be required and optional\n\nexport type User = Helper.SafeObject<{\n\tid: Brand.Pk<number>;\n\tname: Brand.Optional<string>;\n\tdescription?: Brand.Optional<string>;\n}>; // ✅ OK!\n```\n\n#### 👉 And many more complex types! 🧠\n\n```tsx\nimport type { Infer, Brand, Helper } from \"@dulysse1/ts-branding\";\n\ndeclare type IDemo = Helper.SafeObject<{\n\tid: Brand.Pk<number>;\n\tname: string;\n\tmedia: Helper.SafeObject<{\n\t\tname: Brand.Required<string>;\n\t\ttype: Brand.Optional<\"png\" | \"jpg\">;\n\t}>;\n}>;\n\nexport declare type IDemoMedia = Infer.ApplyForm<IDemo[\"media\"]>;\n// IDemoMedia: {\n//   name: string;\n//   type?: \"png\" | \"jpg\" | undefined;\n// }\n```\n\n## Do you have any ideas or recommendations for improvement? 🤔\n\n## Contact me! 😃\n\nAuthor: [Ulysse Dupont](https://www.linkedin.com/in/ulysse-dupont-994848197)\n\nContact: ulyssedupont2707@gmail.com\n","readmeFilename":"README.md"}