{"_id":"@dulysse1/ts-helper","_rev":"46-117c42e3725e999cd68bad86ac3f4184","name":"@dulysse1/ts-helper","dist-tags":{"latest":"1.4.5"},"versions":{"1.0.0":{"name":"@dulysse1/ts-helper","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-helper@1.0.0","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper#readme","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"7995869ee21b2e20d6301188fab95eaddc11febd","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.0.0.tgz","fileCount":5,"integrity":"sha512-2iGRMIn0MSMBAgp0yNhvpu3Ltk7WjrgigjAs82V1WxnknNBgw9dZN9YSz25TOx4KUEHHWlaUfX/TPdqhiHpkBA==","signatures":[{"sig":"MEYCIQDsv8p+5xrJ5nvpgERlslRkFcKTorjH/YDwTf5YAfwyiwIhALHTEGD5gbKkvy3Kr/ZpD2J4NZ87xcQTskyyZkN/MNlZ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":63678},"main":"dist/index.mjs","_from":"file:dulysse1-ts-helper-1.0.0.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":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ULYSSE~1\\AppData\\Local\\Temp\\43473883e7513cbf8ef89a8c00e75cf8\\dulysse1-ts-helper-1.0.0.tgz","_integrity":"sha512-2iGRMIn0MSMBAgp0yNhvpu3Ltk7WjrgigjAs82V1WxnknNBgw9dZN9YSz25TOx4KUEHHWlaUfX/TPdqhiHpkBA==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"9.2.0","description":"Typescript library for typing helpers ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"19.3.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","husky":"^8.0.3","eslint":"^8.55.0","prettier":"^3.1.1","typescript":"^5.3.3","@types/node":"^20.10.4","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/eslint-plugin":"^6.14.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.0.0_1702469852769_0.9584242519080939","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@dulysse1/ts-helper","version":"1.0.1","keywords":["node","typescript","type","types","safe","tools","typesafe"],"author":{"url":"https://github.com/dulysse","name":"Ulysse Dupont"},"license":"ISC","_id":"@dulysse1/ts-helper@1.0.1","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper#readme","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"f92f406a6782fba2ff8d6f1acaa32a2f2950d2de","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.0.1.tgz","fileCount":5,"integrity":"sha512-VMj6+gILZfbT+8/BZSIfcoJj4wOQ2j+eAN23fW01LrSJWHfglukJEuvhKpW1vP8E+nTeag94kcGj8NLyWoQVtA==","signatures":[{"sig":"MEQCIGhbwNTxwURHpVAslG8mtIEJI4AKXmqRpAwV2YY2jcaxAiBFjbut/kgL8kePWnN6urRezug1eRWgb7DdtQbGxgh6Nw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65470},"main":"dist/index.mjs","_from":"file:dulysse1-ts-helper-1.0.1.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","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\766e14ed8473cad7d6b9930eb9971123\\dulysse1-ts-helper-1.0.1.tgz","_integrity":"sha512-VMj6+gILZfbT+8/BZSIfcoJj4wOQ2j+eAN23fW01LrSJWHfglukJEuvhKpW1vP8E+nTeag94kcGj8NLyWoQVtA==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.0.0","description":"Typescript library for typing helpers ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.6","husky":"^8.0.3","eslint":"^8.57.1","prettier":"^3.5.1","typescript":"^5.7.3","@types/node":"^20.17.19","@arethetypeswrong/cli":"^0.17.3","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.2.3","@typescript-eslint/eslint-plugin":"^6.21.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.0.1_1740152599741_0.7105378703628789","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@dulysse1/ts-helper","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-helper@1.0.2","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper#readme","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"60e80cc0398ffbf2a768ae695502f92912eceb76","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.0.2.tgz","fileCount":5,"integrity":"sha512-kM/ZS+Jf0h060nk1usKvWOzXBNv3PHuupY54W0yE+qjd71qSlSr/RSvo6pobiAAnB9yUqM2uE3Ch/Do7NgDp3w==","signatures":[{"sig":"MEUCIQCoWYUDIoEYH+cfNTw2zW7wMvWf5Rr/SKIgX0x6uIE28AIgaLyTgtvlx35i0PU88Rmpvu985WS6Bdmi9qDOevQSvuo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65853},"main":"dist/index.mjs","_from":"file:dulysse1-ts-helper-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","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\15d94e0cb4ca5589fdb15ea941f965e6\\dulysse1-ts-helper-1.0.2.tgz","_integrity":"sha512-kM/ZS+Jf0h060nk1usKvWOzXBNv3PHuupY54W0yE+qjd71qSlSr/RSvo6pobiAAnB9yUqM2uE3Ch/Do7NgDp3w==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.0.0","description":"Typescript library for typing helpers ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.6","husky":"^8.0.3","eslint":"^8.57.1","prettier":"^3.5.1","typescript":"^5.7.3","@types/node":"^20.17.19","@arethetypeswrong/cli":"^0.17.3","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.2.3","@typescript-eslint/eslint-plugin":"^6.21.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.0.2_1740153084866_0.7733184699666851","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@dulysse1/ts-helper","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-helper@1.1.0","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"5fbac38ef56a9b0e925c201e3a235b5f998353c7","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.1.0.tgz","fileCount":5,"integrity":"sha512-/vjVOxtom95njpGkOWS9LogyMDky6rHiWAXVDgCIVuw+HAhYiCRrOO4yPfyhLBQ0m6fxHKI1cTzYPQz3gi5FdQ==","signatures":[{"sig":"MEQCIEoMGqPLL8+1+p+crrcwF/iZO1MYm/wVFtkBoy/mT/IZAiBsmV1XbOd1lBAhmxBl/THKZAXy/9nFL93srTJniBwcbg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66151},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-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\\3ff396b60bfe0de3dfdf283407a76fed\\dulysse1-ts-helper-1.1.0.tgz","_integrity":"sha512-/vjVOxtom95njpGkOWS9LogyMDky6rHiWAXVDgCIVuw+HAhYiCRrOO4yPfyhLBQ0m6fxHKI1cTzYPQz3gi5FdQ==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.0.0","description":"Typescript library for typing helpers ✨","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-helper_1.1.0_1740388922710_0.18582793216336446","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@dulysse1/ts-helper","version":"1.1.1","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-helper@1.1.1","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"79f6c8dfd0063525af2d71dd465773acdb5fded5","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.1.1.tgz","fileCount":5,"integrity":"sha512-DWDETQ7+B46SgvfrEno57beXn9mk/0pOEVv0MKlN28BBn4uwSw8+WWUBy/HWJTSablI5pFqwFVm7DHGTHhe4zg==","signatures":[{"sig":"MEUCIQDLTB8NhSHDf9tozhc0yC7n0BR7hoQOmIUZRcwALwd+sQIgNzusrg42lE+09AxxvKtHrgpP+ZOR0FM+rt5sT6T2se0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69108},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.1.1.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\\e8e14e96181977ddfb239f4e7c349198\\dulysse1-ts-helper-1.1.1.tgz","_integrity":"sha512-DWDETQ7+B46SgvfrEno57beXn9mk/0pOEVv0MKlN28BBn4uwSw8+WWUBy/HWJTSablI5pFqwFVm7DHGTHhe4zg==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.1.0","description":"Typescript library for typing helpers ✨","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-helper_1.1.1_1741170889111_0.7096726699576752","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@dulysse1/ts-helper","version":"1.1.2","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-helper@1.1.2","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"c2b686cad6d6ff4fdded51e8ff1ea938055ea638","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.1.2.tgz","fileCount":5,"integrity":"sha512-hQT6xW6wK7CZ3iQ4HfILLWqL1qrHgbO52yhSw6yROWmPUtPCO9Knl7TyqtMXIhclfg1VyhWGETIK3es8Dw+uqQ==","signatures":[{"sig":"MEUCIGlpc/B1oqUcLNxL7DQ30qrjSkYOo2XVD/BBoy+sjDN3AiEAhF1wVy6wn98sLGCkOZ+J2Oec+KnLtqbAuC6+EqIPNFQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70773},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.1.2.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\\ce5f3f99c6db1ff8624df3dd484cee66\\dulysse1-ts-helper-1.1.2.tgz","_integrity":"sha512-hQT6xW6wK7CZ3iQ4HfILLWqL1qrHgbO52yhSw6yROWmPUtPCO9Knl7TyqtMXIhclfg1VyhWGETIK3es8Dw+uqQ==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.1.0","description":"Typescript library for typing helpers ✨","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-helper_1.1.2_1741257016739_0.47666451228439466","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@dulysse1/ts-helper","version":"1.1.3","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-helper@1.1.3","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"066257bf36b184b3e6ad21f33eb14eaa9eecfa75","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.1.3.tgz","fileCount":5,"integrity":"sha512-RdNdMnh+HayleEh1GPy1w523RT+hg5LUcX+zz7Ro7atMV5xa69w7YF1jPKKmVkiLokmmnMtY9NDB6ssXOsz3Xw==","signatures":[{"sig":"MEYCIQD+y35G2R6Z06Ys9rZmzdMqMXSkVax3orFZjSkL78xhIAIhANOUcEkylwbrN2lPC9P5gyIvL5haPRB7TIoO+53vLARz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71360},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.1.3.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\\2888e17a5f087937ab910abf142ac546\\dulysse1-ts-helper-1.1.3.tgz","_integrity":"sha512-RdNdMnh+HayleEh1GPy1w523RT+hg5LUcX+zz7Ro7atMV5xa69w7YF1jPKKmVkiLokmmnMtY9NDB6ssXOsz3Xw==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.1.0","description":"Typescript library for typing helpers ✨","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-helper_1.1.3_1741258907538_0.13662003830465763","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@dulysse1/ts-helper","version":"1.1.4","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-helper@1.1.4","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"c6cc614e9b81e037cf782118d077d64a9036ed0f","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.1.4.tgz","fileCount":5,"integrity":"sha512-GEvtGDinNrp3c37yKdZdrd46uumqBZvKbkqdZbz7f842uc1TGNYqfTM51mF3gqtMKMNLr6bVQY0XcYRvQBoYug==","signatures":[{"sig":"MEUCIQCkw7l/fGO+t7UYq616qYCsIMF1eT1D8VIE3160ejhMVwIgcl/2Jue6evNkV57pijqiMLtngUhZLF1iU+wsxcqb+ns=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":74845},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.1.4.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":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\1177e084853afe27cbb1ca4419bbd940\\dulysse1-ts-helper-1.1.4.tgz","_integrity":"sha512-GEvtGDinNrp3c37yKdZdrd46uumqBZvKbkqdZbz7f842uc1TGNYqfTM51mF3gqtMKMNLr6bVQY0XcYRvQBoYug==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.1.0","description":"Typescript library for typing helpers ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","husky":"^9.1.7","eslint":"^9.22.0","globals":"^16.0.0","prettier":"^3.5.3","@eslint/js":"^9.22.0","typescript":"^5.8.2","typescript-eslint":"^8.26.0","@arethetypeswrong/cli":"^0.17.4","eslint-plugin-prettier":"^5.2.3"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.1.4_1741598958065_0.9122041252584505","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@dulysse1/ts-helper","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-helper@1.2.0","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"bd253b20a2df0b0635d3a962bfe3c38597fc71ea","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.2.0.tgz","fileCount":5,"integrity":"sha512-Dd6UBOS4k14MEkeBKklI/gq1PcZDrUzweL3fFI7ada5LJfwyjAZG5XPhdHxSNll23Go5k6DZAQF8Uy8oM5gkVA==","signatures":[{"sig":"MEUCIQCxCNisQKYMRB20iq+owRfbLdPjjGV8nUDcaq9WzRyrtAIgYuz2Z162H7Gr3EsiXQiQ5M9vZPFhbQJMP/fydkQMqYM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":68628},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-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":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\da67175885c08f74e95767ae651e1e88\\dulysse1-ts-helper-1.2.0.tgz","_integrity":"sha512-Dd6UBOS4k14MEkeBKklI/gq1PcZDrUzweL3fFI7ada5LJfwyjAZG5XPhdHxSNll23Go5k6DZAQF8Uy8oM5gkVA==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.2.0","description":"Typescript library for typing helpers ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","husky":"^9.1.7","eslint":"^9.22.0","globals":"^16.0.0","prettier":"^3.5.3","@eslint/js":"^9.22.0","typescript":"^5.8.2","typescript-eslint":"^8.26.0","@arethetypeswrong/cli":"^0.17.4","eslint-plugin-prettier":"^5.2.3"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.2.0_1743156177197_0.012581453232567652","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@dulysse1/ts-helper","version":"1.2.1","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-helper@1.2.1","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"135730d28c8483754f5dde930efd861eaf2af441","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.2.1.tgz","fileCount":5,"integrity":"sha512-frRxigPV+ttwtG9Qjmk7E4tv1uxE3gN+6/W8gLOIdN/wAZqZ5ViBxXqxbC/+Q67pzA2nZIq5kPOTPxIvEBv7vg==","signatures":[{"sig":"MEUCIEinh5GPmsvbZhLKC9PK2O7NLr7JfzcBJwCB3S3SjO5tAiEAhAuvi6JFfhs2WxfsX3DtlIztGN4DvwIhZJ+IMSt6KkM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":68788},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.2.1.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":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\82a6746de0ad7ceabc02d10950916d12\\dulysse1-ts-helper-1.2.1.tgz","_integrity":"sha512-frRxigPV+ttwtG9Qjmk7E4tv1uxE3gN+6/W8gLOIdN/wAZqZ5ViBxXqxbC/+Q67pzA2nZIq5kPOTPxIvEBv7vg==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.2.0","description":"Typescript library for typing helpers ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","husky":"^9.1.7","eslint":"^9.22.0","globals":"^16.0.0","prettier":"^3.5.3","@eslint/js":"^9.22.0","typescript":"^5.8.2","typescript-eslint":"^8.26.0","@arethetypeswrong/cli":"^0.17.4","eslint-plugin-prettier":"^5.2.3"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.2.1_1743413498961_0.3758684479397867","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@dulysse1/ts-helper","version":"1.2.2","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-helper@1.2.2","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"a87cebe3ce88e02a8ee7546a5383f02e5654916e","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.2.2.tgz","fileCount":5,"integrity":"sha512-Et7hbeYxlyZKO8NxN53Ywst0QuWQR5OSkh8QBy8tu6+IuU4kHjQPqk4UdqgxJD8Xz4+DQ9FVN1Zu/lgCPTNPUQ==","signatures":[{"sig":"MEUCICjJfptx5QM9Qi7xDcifzXiz2AGEnd/QtcPyKP1wN+3bAiEA/ernsUODP7/gQQAkopDP8ZjoiuvH5F2r8b9IEkKz5P4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83868},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.2.2.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":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\51adcff1e4afd21b60175ae2eb4a7af4\\dulysse1-ts-helper-1.2.2.tgz","_integrity":"sha512-Et7hbeYxlyZKO8NxN53Ywst0QuWQR5OSkh8QBy8tu6+IuU4kHjQPqk4UdqgxJD8Xz4+DQ9FVN1Zu/lgCPTNPUQ==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.3.0","description":"Typescript library for typing helpers ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","husky":"^9.1.7","eslint":"^9.25.1","globals":"^16.0.0","prettier":"^3.5.3","@eslint/js":"^9.25.1","typescript":"^5.8.3","typescript-eslint":"^8.31.0","@arethetypeswrong/cli":"^0.17.4","eslint-plugin-prettier":"^5.2.6"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.2.2_1745399278506_0.23765422991633156","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"@dulysse1/ts-helper","version":"1.2.3","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-helper@1.2.3","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"3dc883f39bee1c84775792a5c4c576cfc5623afd","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.2.3.tgz","fileCount":5,"integrity":"sha512-yHanLDtMeJRxROAyHKnRUVtHLFWDIY8B2ZDp6rRXZrXYcB9i7vHqcVMj2HGH8fAzp0PA1aw3J0gJ5hpcx4Xsnw==","signatures":[{"sig":"MEQCIDK0Mhni52xSDT0xIQAiL7AEWtg04+a+mf9Txs8C4X40AiB+trUuskCLwr2YHd3R6Bjgv2R8IO7GwntK8dnvmFwtyA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":91049},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.2.3.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":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\32f9e2b3a8caa430a6b71f9a2ec2db12\\dulysse1-ts-helper-1.2.3.tgz","_integrity":"sha512-yHanLDtMeJRxROAyHKnRUVtHLFWDIY8B2ZDp6rRXZrXYcB9i7vHqcVMj2HGH8fAzp0PA1aw3J0gJ5hpcx4Xsnw==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.3.0","description":"Typescript library for typing helpers ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","husky":"^9.1.7","eslint":"^9.25.1","globals":"^16.0.0","prettier":"^3.5.3","@eslint/js":"^9.25.1","typescript":"^5.8.3","typescript-eslint":"^8.31.1","@arethetypeswrong/cli":"^0.17.4","eslint-plugin-prettier":"^5.2.6"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.2.3_1745921888179_0.6017810720374632","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"@dulysse1/ts-helper","version":"1.2.4","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-helper@1.2.4","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"a7a88cea8d1ce350c3ee5effa1baf7369254a7e3","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.2.4.tgz","fileCount":5,"integrity":"sha512-E//WU2qFNaDpTfLgcz893hbjvDNd54aXnvEO6+EuoM2SIoP8EpxGbrD6tHlNYOkfdOuvyhSIMDvIrVrR++kmpA==","signatures":[{"sig":"MEUCICeFo6al+HvQPD+1DlNaTMieRyqyVHIolgJScXUsYktpAiEAyC2S/GE3tZiOhPG4wB9/O1S7m6gbsiYJ4WHXdHIkTGo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":100200},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.2.4.tgz","types":"./dist/index.d.ts","engines":{"node":">=22","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":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\e374b88d532e4f15be36dd15738f44e0\\dulysse1-ts-helper-1.2.4.tgz","_integrity":"sha512-E//WU2qFNaDpTfLgcz893hbjvDNd54aXnvEO6+EuoM2SIoP8EpxGbrD6tHlNYOkfdOuvyhSIMDvIrVrR++kmpA==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.3.0","description":"Typescript library for typing helpers ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","husky":"^9.1.7","eslint":"^9.27.0","globals":"^16.2.0","prettier":"^3.5.3","@eslint/js":"^9.27.0","typescript":"^5.8.3","typescript-eslint":"^8.32.1","@arethetypeswrong/cli":"^0.17.4","eslint-plugin-prettier":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.2.4_1748268621386_0.12070395692376512","host":"s3://npm-registry-packages-npm-production"}},"1.2.5":{"name":"@dulysse1/ts-helper","version":"1.2.5","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-helper@1.2.5","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"1024e19b0b1c175553f9abbc4c91145eb6dd5862","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.2.5.tgz","fileCount":5,"integrity":"sha512-7a/NpW+Jycxt1iLkb7HYxWKepWx3S2Ju9vlwd/mJy8sGHL5Hig63Lu4ho673VlbVjfwADqvdkXVfHy+1YfLhkg==","signatures":[{"sig":"MEQCIFhp2dGzaqTovID7iragiPKAMqtFVH8O+QmBrBbyxJ/tAiAyOx5yRz5DlCtwBdmM7bckaUB7wVU1tFhxjDLvKzeROQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":103052},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.2.5.tgz","types":"./dist/index.d.ts","engines":{"node":">=22","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":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\fec8619a1681118620f7210504aec40e\\dulysse1-ts-helper-1.2.5.tgz","_integrity":"sha512-7a/NpW+Jycxt1iLkb7HYxWKepWx3S2Ju9vlwd/mJy8sGHL5Hig63Lu4ho673VlbVjfwADqvdkXVfHy+1YfLhkg==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.3.0","description":"Typescript library for typing helpers ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","husky":"^9.1.7","eslint":"^9.27.0","globals":"^16.2.0","prettier":"^3.5.3","@eslint/js":"^9.27.0","typescript":"^5.8.3","typescript-eslint":"^8.33.0","@arethetypeswrong/cli":"^0.17.4","eslint-plugin-prettier":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.2.5_1748445848103_0.5634741320483545","host":"s3://npm-registry-packages-npm-production"}},"1.2.6":{"name":"@dulysse1/ts-helper","version":"1.2.6","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-helper@1.2.6","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"5a99e4276ce01815c77a2a4af941ddc3bbd4df82","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.2.6.tgz","fileCount":5,"integrity":"sha512-uy8pFAYEYfXfidi0Ywk8gby+L3Bc6mVPuakh4s+QLp5IaQOCD8xGEEUxXPjegGKJhCrzCbKKTnEJdNb+1aepzQ==","signatures":[{"sig":"MEQCIBz9osU63sUSBx80t5DhozFGbJ0wwbjiru6jzJQsIQCiAiB7jYXFHN8Q/d6RwlETeVv6NEn/C/qaC4Lj8lb3CFNjJw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":103329},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.2.6.tgz","types":"./dist/index.d.ts","engines":{"node":">=22","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":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\48dc9a6c4bc5bdc213ba74c986be7c2e\\dulysse1-ts-helper-1.2.6.tgz","_integrity":"sha512-uy8pFAYEYfXfidi0Ywk8gby+L3Bc6mVPuakh4s+QLp5IaQOCD8xGEEUxXPjegGKJhCrzCbKKTnEJdNb+1aepzQ==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.3.0","description":"Typescript library for typing helpers ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","husky":"^9.1.7","eslint":"^9.27.0","globals":"^16.2.0","prettier":"^3.5.3","@eslint/js":"^9.27.0","typescript":"^5.8.3","typescript-eslint":"^8.33.0","@arethetypeswrong/cli":"^0.17.4","eslint-plugin-prettier":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.2.6_1748446421876_0.11831050746504745","host":"s3://npm-registry-packages-npm-production"}},"1.2.7":{"name":"@dulysse1/ts-helper","version":"1.2.7","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-helper@1.2.7","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"8a68ad2c2458342bc6538e74b2f9686d15bd6736","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.2.7.tgz","fileCount":5,"integrity":"sha512-xDgq0kc9scZtUsB9+dsVZUf/5xMyirSW0swuo3MYMkrphSEaquEdRBo00daMNvoXFmzTKqJS1IMgzUPlnB7xsg==","signatures":[{"sig":"MEUCIH4Blb3ZT7XvtJLRByIqh4+hJMUSBjL5Ct4OC/v0c8ZnAiEAmlEGx/jrvT8Ybjx24ScTRO+9MycIxkp2BbcQjsLwkhk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104150},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.2.7.tgz","types":"./dist/index.d.ts","engines":{"node":">=22","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":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\1ab9fd8377ec53e23d681f626483965a\\dulysse1-ts-helper-1.2.7.tgz","_integrity":"sha512-xDgq0kc9scZtUsB9+dsVZUf/5xMyirSW0swuo3MYMkrphSEaquEdRBo00daMNvoXFmzTKqJS1IMgzUPlnB7xsg==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.3.0","description":"Typescript library for typing helpers ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","husky":"^9.1.7","eslint":"^9.27.0","globals":"^16.2.0","prettier":"^3.5.3","@eslint/js":"^9.27.0","typescript":"^5.8.3","typescript-eslint":"^8.33.0","@arethetypeswrong/cli":"^0.17.4","eslint-plugin-prettier":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.2.7_1748466756139_0.9410927826518476","host":"s3://npm-registry-packages-npm-production"}},"1.2.8":{"name":"@dulysse1/ts-helper","version":"1.2.8","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-helper@1.2.8","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"d70fc19b41535d115e52128590d02f8676b72178","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.2.8.tgz","fileCount":5,"integrity":"sha512-WquDXsqZ8YzwbSXSFJAQJH1l7tyHyCnPjJb6myKW8kpzikOSY+W8MyrXIe5s7Co8ru61q3Rtj46NUMmDFAI4ug==","signatures":[{"sig":"MEUCIBnsGp27LeP3qVAKy8WLNLby+qkT3r9tKiOI4QUQQ8//AiEAydUZgnptolyKuVUTb/PB8X3TqancPQyChEW5vfdWbDk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113350},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.2.8.tgz","types":"./dist/index.d.ts","engines":{"node":">=22","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":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\2f9691e73a25cb6e7c91580fa11981f5\\dulysse1-ts-helper-1.2.8.tgz","_integrity":"sha512-WquDXsqZ8YzwbSXSFJAQJH1l7tyHyCnPjJb6myKW8kpzikOSY+W8MyrXIe5s7Co8ru61q3Rtj46NUMmDFAI4ug==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.4.1","description":"Typescript library for typing helpers ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","husky":"^9.1.7","eslint":"^9.27.0","globals":"^16.2.0","prettier":"^3.5.3","@eslint/js":"^9.27.0","typescript":"^5.8.3","typescript-eslint":"^8.33.0","@arethetypeswrong/cli":"^0.17.4","eslint-plugin-prettier":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.2.8_1748972260868_0.1934695811498477","host":"s3://npm-registry-packages-npm-production"}},"1.2.9":{"name":"@dulysse1/ts-helper","version":"1.2.9","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-helper@1.2.9","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"4c4c0cbffad68d7b9c8c768e2c4ec9fa1904fc4e","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.2.9.tgz","fileCount":5,"integrity":"sha512-AS/HqIPz69qaXf6PYvkeFM4usMa2TRzOm1OM6DnVyzDldyZlaOyHBuLB/GiNXiN6Gzyk1MJm45hFrncasAgaoQ==","signatures":[{"sig":"MEQCIGM5fyUxhe0E8sdH1WdBLV5nNDQyGNNgBECG58wYs6d0AiA8AeAOEsW61Lo8Mk0woFr4rvxdVY5iccnG6cT5WfrvLQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":117706},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.2.9.tgz","types":"./dist/index.d.ts","engines":{"node":">=22","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":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\2d65834074442e34878e682af61891ab\\dulysse1-ts-helper-1.2.9.tgz","_integrity":"sha512-AS/HqIPz69qaXf6PYvkeFM4usMa2TRzOm1OM6DnVyzDldyZlaOyHBuLB/GiNXiN6Gzyk1MJm45hFrncasAgaoQ==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.4.1","description":"Typescript library for typing helpers ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","husky":"^9.1.7","eslint":"^9.27.0","globals":"^16.2.0","prettier":"^3.5.3","@eslint/js":"^9.27.0","typescript":"^5.8.3","typescript-eslint":"^8.33.0","@arethetypeswrong/cli":"^0.17.4","eslint-plugin-prettier":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.2.9_1749031696892_0.45932670979004464","host":"s3://npm-registry-packages-npm-production"}},"1.2.10":{"name":"@dulysse1/ts-helper","version":"1.2.10","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-helper@1.2.10","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"3f4dca7a525129f7cf4fa013617311f719353ac9","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.2.10.tgz","fileCount":5,"integrity":"sha512-2KklR0jOA9vyYJptmPMhHJziQFQzvmQqjZxFPgJUIp7CavRmk0lCXnK+mB+7i8iOl2rnLOsWB9GVQx9v6QviRg==","signatures":[{"sig":"MEUCIGuDhuvZlM4ok2KfUFaR4owU3NikmNNvwhU/4EkSNOPLAiEAhFRlFBzkznOzHjsB5siVXMfrfCzVKV7LB2MwlBlwtHQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":125296},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.2.10.tgz","types":"./dist/index.d.ts","engines":{"node":">=22","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":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\777feb3e7c1aefd9cf2e08d50ca7def0\\dulysse1-ts-helper-1.2.10.tgz","_integrity":"sha512-2KklR0jOA9vyYJptmPMhHJziQFQzvmQqjZxFPgJUIp7CavRmk0lCXnK+mB+7i8iOl2rnLOsWB9GVQx9v6QviRg==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.4.1","description":"Typescript library for typing helpers ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","husky":"^9.1.7","eslint":"^9.27.0","globals":"^16.2.0","prettier":"^3.5.3","@eslint/js":"^9.27.0","typescript":"^5.8.3","typescript-eslint":"^8.33.0","@arethetypeswrong/cli":"^0.17.4","eslint-plugin-prettier":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.2.10_1749121135026_0.1353049748518378","host":"s3://npm-registry-packages-npm-production"}},"1.2.11":{"name":"@dulysse1/ts-helper","version":"1.2.11","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-helper@1.2.11","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"232c3e5991354cc43afd7020004bce845a9aa453","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.2.11.tgz","fileCount":5,"integrity":"sha512-kOT7/htvyPfYolAhe2OtZ3UUrKJbpPCIcYws5+C9kFGLjBY55h/jMv0S45Wcr4ObNWPr+41S6lyyIKP4XOJhCg==","signatures":[{"sig":"MEYCIQC2Lm/DLjXdZek4e5inpEEUh7cpjpwPLTZ3Xxb3SATBvgIhALaRTDec4QEk9kOP7tCAKvixH638SRLokRgIMRHW0gL1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":125494},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.2.11.tgz","types":"./dist/index.d.ts","engines":{"node":">=22","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":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\a115f2678b513d4607b5692d4c780fab\\dulysse1-ts-helper-1.2.11.tgz","_integrity":"sha512-kOT7/htvyPfYolAhe2OtZ3UUrKJbpPCIcYws5+C9kFGLjBY55h/jMv0S45Wcr4ObNWPr+41S6lyyIKP4XOJhCg==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.4.1","description":"Typescript library for typing helpers ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","husky":"^9.1.7","eslint":"^9.27.0","globals":"^16.2.0","prettier":"^3.5.3","@eslint/js":"^9.27.0","typescript":"^5.8.3","typescript-eslint":"^8.33.0","@arethetypeswrong/cli":"^0.17.4","eslint-plugin-prettier":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.2.11_1749121585600_0.881081428056588","host":"s3://npm-registry-packages-npm-production"}},"1.2.12":{"name":"@dulysse1/ts-helper","version":"1.2.12","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-helper@1.2.12","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"240f15800e9e9eb88450e2142afbc682d62cd2bb","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.2.12.tgz","fileCount":5,"integrity":"sha512-VhWbtMrIjxqbm3/kIL4+GxkRXiOCAm+sD32k/r/FjDQj9l10haqhEkwD2hpB42ZaooDpYGYQjFsFqvvuCSrNaA==","signatures":[{"sig":"MEUCIQDzdG/9hxhe/I9cxHreeIBrRE4tpQM7kTbbLrv/yI4magIgOH0VbMVnk1oehDrw7Nru501zdn3N2fNDjBdm3G0KYtw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":126792},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.2.12.tgz","types":"./dist/index.d.ts","engines":{"node":">=22","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":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\c0141d7a367474587b06c261a5414aac\\dulysse1-ts-helper-1.2.12.tgz","_integrity":"sha512-VhWbtMrIjxqbm3/kIL4+GxkRXiOCAm+sD32k/r/FjDQj9l10haqhEkwD2hpB42ZaooDpYGYQjFsFqvvuCSrNaA==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.4.1","description":"Typescript library for typing helpers ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","husky":"^9.1.7","eslint":"^9.27.0","globals":"^16.2.0","prettier":"^3.5.3","@eslint/js":"^9.27.0","typescript":"^5.8.3","typescript-eslint":"^8.33.0","@arethetypeswrong/cli":"^0.17.4","eslint-plugin-prettier":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.2.12_1749137267316_0.482663105182483","host":"s3://npm-registry-packages-npm-production"}},"1.2.13":{"name":"@dulysse1/ts-helper","version":"1.2.13","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-helper@1.2.13","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"bc8f413476fc4b5f44ca1b9ef6f6e13cb2a00be9","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.2.13.tgz","fileCount":5,"integrity":"sha512-XjB1agjh0ug9hGK8teJBhwnhNqNgxjIRWWmNjDr8rlNvVWLpgbijeL56dmwzB9EB0nMamRWuodsXZuAGLoSUSQ==","signatures":[{"sig":"MEQCIB9l4Ft98kiRMW8I3rvRT+G1ch000q+D6C4MH0DzBFGVAiBX0wOk8uCs3zXeYzTPulAUt/WoA+keSyn3DIi8Rd3+VQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127426},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.2.13.tgz","types":"./dist/index.d.ts","engines":{"node":">=22","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":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\bf20a9008b19354220bc7169e0213d03\\dulysse1-ts-helper-1.2.13.tgz","_integrity":"sha512-XjB1agjh0ug9hGK8teJBhwnhNqNgxjIRWWmNjDr8rlNvVWLpgbijeL56dmwzB9EB0nMamRWuodsXZuAGLoSUSQ==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.4.1","description":"Typescript library for typing helpers ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","husky":"^9.1.7","eslint":"^9.28.0","globals":"^16.2.0","prettier":"^3.5.3","@eslint/js":"^9.28.0","typescript":"^5.8.3","typescript-eslint":"^8.34.0","@arethetypeswrong/cli":"^0.17.4","eslint-plugin-prettier":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.2.13_1749551002157_0.06692873951292655","host":"s3://npm-registry-packages-npm-production"}},"1.2.14":{"name":"@dulysse1/ts-helper","version":"1.2.14","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-helper@1.2.14","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"dfdc01af672e925abd0669c75cfd55f6ec05258a","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.2.14.tgz","fileCount":5,"integrity":"sha512-cMVoGt7hjuwcW4e2vFW+QXRMTyGTIUm3eohFwxTqItmop86gXJ+y5THAiaW9V9FTO9MxfM2y9xyov/GKT2KxpA==","signatures":[{"sig":"MEYCIQD0JaZJT5s+DjafKN9AmQZv3WuUeWMuOWu8N0IKusPEBgIhAPj1ZlkTWbOTKnbC0rTB8hqTxEAavvTWs6oamEX7eWOv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127372},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.2.14.tgz","types":"./dist/index.d.ts","engines":{"node":">=22","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":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\b9db6254957e84c29c5f33492b8d1060\\dulysse1-ts-helper-1.2.14.tgz","_integrity":"sha512-cMVoGt7hjuwcW4e2vFW+QXRMTyGTIUm3eohFwxTqItmop86gXJ+y5THAiaW9V9FTO9MxfM2y9xyov/GKT2KxpA==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.4.1","description":"Typescript library for typing helpers ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","husky":"^9.1.7","eslint":"^9.28.0","globals":"^16.2.0","prettier":"^3.5.3","@eslint/js":"^9.28.0","typescript":"^5.8.3","typescript-eslint":"^8.34.0","@arethetypeswrong/cli":"^0.17.4","eslint-plugin-prettier":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.2.14_1749551514473_0.9490209284959585","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@dulysse1/ts-helper","version":"1.3.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-helper@1.3.0","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"0e7798ebd67fdffe5cc728584c6c8dd3ae5427ee","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.3.0.tgz","fileCount":5,"integrity":"sha512-TpGSlpb/O8pVv4kILFcEJVI3TPmhejQR9XpEXLufQ41nhVlLGA/ra7pdjXlTwZ4MRTbCG78Stq5rf4MyEaIlRQ==","signatures":[{"sig":"MEUCIBtAwXTkPkNTyX6BN5aUXqYuaTrUt9B3n4ScyWuDg5mgAiEA4yeISkf5Zmejcq3gWsx+RPea0lnCP/I209KCgKABpQE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":139150},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.3.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22","pnpm":">=9"},"exports":{".":{"import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"lint":"npx eslint --fix .","test":"npx tsc --extendedDiagnostics","build":"tsup","format":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\61dcf574e4a40c98423b2fd7e8ba4d4e\\dulysse1-ts-helper-1.3.0.tgz","_integrity":"sha512-TpGSlpb/O8pVv4kILFcEJVI3TPmhejQR9XpEXLufQ41nhVlLGA/ra7pdjXlTwZ4MRTbCG78Stq5rf4MyEaIlRQ==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.4.1","description":"Typescript library for typing helpers ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","husky":"^9.1.7","eslint":"^9.28.0","globals":"^16.2.0","prettier":"^3.5.3","@eslint/js":"^9.28.0","typescript":"^5.8.3","typescript-eslint":"^8.34.0","@arethetypeswrong/cli":"^0.17.4","eslint-plugin-prettier":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.3.0_1749739508910_0.060781396791364406","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@dulysse1/ts-helper","version":"1.3.1","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-helper@1.3.1","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"f77e3bb09e5b1d82eda772869c02997b8e5d7bd5","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.3.1.tgz","fileCount":5,"integrity":"sha512-hU1fEj1lmL1LSsP5W8ZqetVjpRqhynGxAHKWtDYmbJhYin4RbsYESme6HlfwLDmCP29hRgloNNtbMFZWrrycbg==","signatures":[{"sig":"MEUCIGg+Ma1E7RKiCyGZKhEtbPcWqPDi0QQiC8Fj6aGbACohAiEAq0r4clYoSLErPwwFhSSGe+AbX4G3bVFJv9yf79016R8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":139542},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.3.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=22","pnpm":">=9"},"exports":{".":{"import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"lint":"npx eslint --fix .","test":"npx tsc --extendedDiagnostics","build":"tsup","format":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\ef634f03a63c08ac69305c5f6d88ce67\\dulysse1-ts-helper-1.3.1.tgz","_integrity":"sha512-hU1fEj1lmL1LSsP5W8ZqetVjpRqhynGxAHKWtDYmbJhYin4RbsYESme6HlfwLDmCP29hRgloNNtbMFZWrrycbg==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.4.1","description":"Typescript library for typing helpers ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","husky":"^9.1.7","eslint":"^9.28.0","globals":"^16.2.0","prettier":"^3.5.3","@eslint/js":"^9.28.0","typescript":"^5.8.3","typescript-eslint":"^8.34.0","@arethetypeswrong/cli":"^0.17.4","eslint-plugin-prettier":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.3.1_1749740040683_0.05764302630555296","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"@dulysse1/ts-helper","version":"1.3.2","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-helper@1.3.2","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"538ac2263fd5de3861e2ab542d1e46b68b6e0b64","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.3.2.tgz","fileCount":5,"integrity":"sha512-+BrcSl4IA/1BeQW8w+bOdKQs2cejvZzkXgS13cXN3C7OUmu+NSgu6lXj5O68eK7gZuw6M1uyAL8+VdINnpIiwA==","signatures":[{"sig":"MEUCICd8Z/NlHqKM6vg2blG1C92pdUAsECaFIWjwoC+ZVnigAiEA2ViuIT3osLHK7RrwIOGY02tHwaEurPHnBIpeWVSSDEo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142850},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.3.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=22","pnpm":">=9"},"exports":{".":{"import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"lint":"npx eslint --fix .","test":"npx tsc --extendedDiagnostics","build":"tsup","format":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","actor":{"name":"dulysse1","type":"user","email":"ulyssedupont2707@gmail.com"},"email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\7c4730f5e6eded0c828f56746cf23452\\dulysse1-ts-helper-1.3.2.tgz","_integrity":"sha512-+BrcSl4IA/1BeQW8w+bOdKQs2cejvZzkXgS13cXN3C7OUmu+NSgu6lXj5O68eK7gZuw6M1uyAL8+VdINnpIiwA==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.4.1","description":"Typescript library for typing helpers ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","husky":"^9.1.7","eslint":"^9.29.0","globals":"^16.2.0","prettier":"^3.5.3","@eslint/js":"^9.29.0","typescript":"^5.8.3","typescript-eslint":"^8.34.1","@arethetypeswrong/cli":"^0.17.4","eslint-plugin-prettier":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.3.2_1750155666091_0.6359874911957586","host":"s3://npm-registry-packages-npm-production"}},"1.3.3":{"name":"@dulysse1/ts-helper","version":"1.3.3","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-helper@1.3.3","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"a39d037e9522541398d7dcb041489a858604b647","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.3.3.tgz","fileCount":5,"integrity":"sha512-v8ubWG0Youo5olWfrMYq2jDM1EG7lEc78rriHJBheXonxAUW6FVYWwvsRfkWD1kuOVlL5/MrZEK9ZPwQ0UQ6tA==","signatures":[{"sig":"MEUCIDJ+2L3QGWd2kkFKPZn95/p97HptiKZ6G4fzYj0gl3osAiEAhSbk4pzlvTtkpFt8ODGngiYH2NnH90rfrmF5zpn4tWM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":147356},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.3.3.tgz","types":"./dist/index.d.ts","engines":{"node":">=22","pnpm":">=9"},"exports":{".":{"import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"lint":"npx eslint --fix .","test":"npx tsc --extendedDiagnostics","build":"tsup","format":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","actor":{"name":"dulysse1","type":"user","email":"ulyssedupont2707@gmail.com"},"email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\a4b26815be06618381118781c75a9d12\\dulysse1-ts-helper-1.3.3.tgz","_integrity":"sha512-v8ubWG0Youo5olWfrMYq2jDM1EG7lEc78rriHJBheXonxAUW6FVYWwvsRfkWD1kuOVlL5/MrZEK9ZPwQ0UQ6tA==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.4.1","description":"Typescript library for typing helpers ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","husky":"^9.1.7","eslint":"^9.29.0","globals":"^16.2.0","prettier":"^3.5.3","@eslint/js":"^9.29.0","typescript":"^5.8.3","typescript-eslint":"^8.34.1","@arethetypeswrong/cli":"^0.17.4","eslint-plugin-prettier":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.3.3_1750760152866_0.4681805289541865","host":"s3://npm-registry-packages-npm-production"}},"1.3.4":{"name":"@dulysse1/ts-helper","version":"1.3.4","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-helper@1.3.4","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"a846d2faaf9e060d945a4f6349a8280124adcc7f","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.3.4.tgz","fileCount":5,"integrity":"sha512-Idz482oBpT2fJPY9o0TDkq12VJMuDwGhkgkiaqbMQuhxA/FmDd/4Z8TyKBXEXIj3KIZQoX+2ilq33vM+DcrbAA==","signatures":[{"sig":"MEYCIQDUuK8R3U7l2rTOfy/XjC2PWOpVo9kLtnzDVn3TyVM7YQIhAImLPm/9GGR+vesoGKAd4KJYcKRBZ3T9/RISadzaW7NM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":149063},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.3.4.tgz","types":"./dist/index.d.ts","engines":{"node":">=22","pnpm":">=9"},"exports":{".":{"import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"lint":"npx eslint --fix .","test":"npx tsc --extendedDiagnostics","build":"tsup","format":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","actor":{"name":"dulysse1","type":"user","email":"ulyssedupont2707@gmail.com"},"email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\8daa8eb6bfc2df1c22180596ee74b00a\\dulysse1-ts-helper-1.3.4.tgz","_integrity":"sha512-Idz482oBpT2fJPY9o0TDkq12VJMuDwGhkgkiaqbMQuhxA/FmDd/4Z8TyKBXEXIj3KIZQoX+2ilq33vM+DcrbAA==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.4.1","description":"Typescript library for typing helpers ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","husky":"^9.1.7","eslint":"^9.29.0","globals":"^16.2.0","prettier":"^3.5.3","@eslint/js":"^9.29.0","typescript":"^5.8.3","typescript-eslint":"^8.34.1","@arethetypeswrong/cli":"^0.17.4","eslint-plugin-prettier":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.3.4_1750762355835_0.17980159494494585","host":"s3://npm-registry-packages-npm-production"}},"1.3.5":{"name":"@dulysse1/ts-helper","version":"1.3.5","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-helper@1.3.5","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"4e8d33557f7c7f11311b8808b5b102ff528ae7d4","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.3.5.tgz","fileCount":5,"integrity":"sha512-t3DGVvt6f0P9UIWsuC7TTJOQ2YY5x2cq9DXf76M/S8iFuCvkJpw9qxbStdDXycaUvRyNFbkA/vMULfuE8UyTuw==","signatures":[{"sig":"MEUCIQCoECju2aKw55X/c5j+mk5oYXjh8uX9jqojBFs724R/EAIgAr9KrMFB0+lnWC2OxBZKzXQLFLY2N8uKkxMKwESzyLc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":149051},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.3.5.tgz","types":"./dist/index.d.ts","engines":{"node":">=22","pnpm":">=9"},"exports":{".":{"import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"lint":"npx eslint --fix .","test":"npx tsc --extendedDiagnostics","build":"tsup","format":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","actor":{"name":"dulysse1","type":"user","email":"ulyssedupont2707@gmail.com"},"email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\c68cf65237adac800e12a5855a008a30\\dulysse1-ts-helper-1.3.5.tgz","_integrity":"sha512-t3DGVvt6f0P9UIWsuC7TTJOQ2YY5x2cq9DXf76M/S8iFuCvkJpw9qxbStdDXycaUvRyNFbkA/vMULfuE8UyTuw==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.4.1","description":"Typescript library for typing helpers ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","husky":"^9.1.7","eslint":"^9.29.0","globals":"^16.2.0","prettier":"^3.5.3","@eslint/js":"^9.29.0","typescript":"^5.8.3","typescript-eslint":"^8.34.1","@arethetypeswrong/cli":"^0.17.4","eslint-plugin-prettier":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.3.5_1750762509247_0.9550873417194621","host":"s3://npm-registry-packages-npm-production"}},"1.3.6":{"name":"@dulysse1/ts-helper","version":"1.3.6","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-helper@1.3.6","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"4ec047a20252889992754d67b066c136e082c209","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.3.6.tgz","fileCount":5,"integrity":"sha512-rg1IGGYVQAzflLhckDJOYb4kK2uhQcXoLI7sQdt4mc24PCaRt3IDkfN8jInh2sBqZkfRrQ6Dq1kt8YwPx4aiAw==","signatures":[{"sig":"MEUCIQDoOa8/ZSKpBqfbELdaPIci9e6LA465T+kJO8YpOJ/ckAIgfS7vxgeQ8dFprJ7CXQaSUYSMFoyOUhzCkZYTeCEZ8xE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":161967},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.3.6.tgz","types":"./dist/index.d.ts","engines":{"node":">=22","pnpm":">=9"},"exports":{".":{"import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"lint":"npx eslint --fix .","test":"npx tsc --extendedDiagnostics","build":"tsup","format":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","actor":{"name":"dulysse1","type":"user","email":"ulyssedupont2707@gmail.com"},"email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\fa82772c7365aba747a2e392b9f9e686\\dulysse1-ts-helper-1.3.6.tgz","_integrity":"sha512-rg1IGGYVQAzflLhckDJOYb4kK2uhQcXoLI7sQdt4mc24PCaRt3IDkfN8jInh2sBqZkfRrQ6Dq1kt8YwPx4aiAw==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.4.1","description":"Typescript library for typing helpers ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","husky":"^9.1.7","eslint":"^9.29.0","globals":"^16.2.0","prettier":"^3.6.1","@eslint/js":"^9.29.0","typescript":"^5.8.3","typescript-eslint":"^8.35.0","@arethetypeswrong/cli":"^0.17.4","eslint-plugin-prettier":"^5.5.1"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.3.6_1750855249198_0.6142734867118516","host":"s3://npm-registry-packages-npm-production"}},"1.3.7":{"name":"@dulysse1/ts-helper","version":"1.3.7","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-helper@1.3.7","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"f0a8b6588d5f56656c448f4ac5a296484785dbfc","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.3.7.tgz","fileCount":5,"integrity":"sha512-TwtoaRlkUmFjPR/OgXblo0/gLYevqzT+z7Y3bdW/7ya+8joQj775Gc6t7T7mOEhsm3vj7eTLxpXNomR9EslxxA==","signatures":[{"sig":"MEUCIQCQ670YGtf+whgHz5sliyGZWH41Y+WsnMyZKlpq66GUCwIgbbmdSir3QxO6qbjT0VsJelreX9mWq2iBAKuzopADDco=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":163201},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.3.7.tgz","types":"./dist/index.d.ts","engines":{"node":">=22","pnpm":">=9"},"exports":{".":{"import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"lint":"npx eslint --fix .","test":"npx tsc --extendedDiagnostics","build":"tsup","format":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","actor":{"name":"dulysse1","type":"user","email":"ulyssedupont2707@gmail.com"},"email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\e39f71c98430bec4fb0036b9513ff8b7\\dulysse1-ts-helper-1.3.7.tgz","_integrity":"sha512-TwtoaRlkUmFjPR/OgXblo0/gLYevqzT+z7Y3bdW/7ya+8joQj775Gc6t7T7mOEhsm3vj7eTLxpXNomR9EslxxA==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.4.1","description":"Typescript library for typing helpers ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","husky":"^9.1.7","eslint":"^9.29.0","globals":"^16.2.0","prettier":"^3.6.1","@eslint/js":"^9.29.0","typescript":"^5.8.3","typescript-eslint":"^8.35.0","@arethetypeswrong/cli":"^0.17.4","eslint-plugin-prettier":"^5.5.1"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.3.7_1750860401114_0.9385007134276881","host":"s3://npm-registry-packages-npm-production"}},"1.3.8":{"name":"@dulysse1/ts-helper","version":"1.3.8","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-helper@1.3.8","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"36e1cc5b894ddb1c2a74c79f30103af151de31bd","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.3.8.tgz","fileCount":5,"integrity":"sha512-J97wPrYs1GnD21STIq923uWphYAWCksNNlW3h7s4jZT0WlOKUbu87qeI9fW5lcCsO20a2Hj23saZtxVodvJPkQ==","signatures":[{"sig":"MEYCIQC6ACdbOIiDbKZqInMro6dJtsqKiI17fAmjTru3KTokkQIhAN6R1R5yE5sHRlDugOvkJWhzm7d8bjktwcUaYgTW24pw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":171020},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.3.8.tgz","types":"./dist/index.d.ts","engines":{"node":">=22","pnpm":">=9"},"exports":{".":{"import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"lint":"npx eslint --fix .","test":"npx tsc --extendedDiagnostics","build":"tsup","format":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","actor":{"name":"dulysse1","type":"user","email":"ulyssedupont2707@gmail.com"},"email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\1df510e9f5455437b163a94a0478ddea\\dulysse1-ts-helper-1.3.8.tgz","_integrity":"sha512-J97wPrYs1GnD21STIq923uWphYAWCksNNlW3h7s4jZT0WlOKUbu87qeI9fW5lcCsO20a2Hj23saZtxVodvJPkQ==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.4.1","description":"Typescript library for typing helpers ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","husky":"^9.1.7","eslint":"^9.29.0","globals":"^16.2.0","prettier":"^3.6.1","@eslint/js":"^9.29.0","typescript":"^5.8.3","typescript-eslint":"^8.35.0","@arethetypeswrong/cli":"^0.17.4","eslint-plugin-prettier":"^5.5.1"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.3.8_1750934031912_0.9802947505537696","host":"s3://npm-registry-packages-npm-production"}},"1.3.9":{"name":"@dulysse1/ts-helper","version":"1.3.9","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-helper@1.3.9","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"b07508aa2a23f1808ec3883148c1a1f59b7f87a8","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.3.9.tgz","fileCount":5,"integrity":"sha512-qWvPVmxzQrK2BMGnb4U+e5mvxTC26SpIxdS1g+69gYFKZDRrJPMbOKd64E6kf4hoJcfJ8nJNMprK6gFQFAnwdA==","signatures":[{"sig":"MEUCIEEjEWkf6kOi0Hl9pEEN0d39QMDfqF11FjzLm1mmPwZvAiEA8RJg/hpyxYYRGZZDAQ5hK1F6ybXuJpoTDFgft7n32xE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":171433},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.3.9.tgz","types":"./dist/index.d.ts","engines":{"node":">=22","pnpm":">=9"},"exports":{".":{"import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"lint":"npx eslint --fix .","test":"npx tsc --extendedDiagnostics","build":"tsup","format":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","actor":{"name":"dulysse1","type":"user","email":"ulyssedupont2707@gmail.com"},"email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\e58c2e3de9600b6dd3229377b3ae8b9b\\dulysse1-ts-helper-1.3.9.tgz","_integrity":"sha512-qWvPVmxzQrK2BMGnb4U+e5mvxTC26SpIxdS1g+69gYFKZDRrJPMbOKd64E6kf4hoJcfJ8nJNMprK6gFQFAnwdA==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.4.1","description":"Typescript library for typing helpers ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","husky":"^9.1.7","eslint":"^9.29.0","globals":"^16.2.0","prettier":"^3.6.1","@eslint/js":"^9.29.0","typescript":"^5.8.3","typescript-eslint":"^8.35.0","@arethetypeswrong/cli":"^0.17.4","eslint-plugin-prettier":"^5.5.1"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.3.9_1750948426033_0.008006430115238494","host":"s3://npm-registry-packages-npm-production"}},"1.3.10":{"name":"@dulysse1/ts-helper","version":"1.3.10","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-helper@1.3.10","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"ac2abb300a28297774e684f425d6f6832c6fc25e","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.3.10.tgz","fileCount":5,"integrity":"sha512-w25TFpI+TC5ZbrbK/VvsmOqKzLqE6ol5hAcIX/BkkkJP5Balu7sBlupgK1CVWg+2sq7ol1r4l0CVIsOgq+bIuA==","signatures":[{"sig":"MEUCIQCvEs2rIHYidZhD3FGFwUcLbPScJS/CeMk0R2Ng1MWEZwIgKER+1dg0bEuGeBQczmC2HBMznmkVkcNceZsFBWAV/1A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":173723},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.3.10.tgz","types":"./dist/index.d.ts","engines":{"node":">=22","pnpm":">=9"},"exports":{".":{"import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"lint":"npx eslint --fix .","test":"npx tsc --extendedDiagnostics","build":"tsup","format":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","actor":{"name":"dulysse1","type":"user","email":"ulyssedupont2707@gmail.com"},"email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\130977d2f8064783c3f93e868a1f45ef\\dulysse1-ts-helper-1.3.10.tgz","_integrity":"sha512-w25TFpI+TC5ZbrbK/VvsmOqKzLqE6ol5hAcIX/BkkkJP5Balu7sBlupgK1CVWg+2sq7ol1r4l0CVIsOgq+bIuA==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.4.1","description":"Typescript library for typing helpers ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","husky":"^9.1.7","eslint":"^9.29.0","globals":"^16.2.0","prettier":"^3.6.1","@eslint/js":"^9.29.0","typescript":"^5.8.3","typescript-eslint":"^8.35.0","@arethetypeswrong/cli":"^0.17.4","eslint-plugin-prettier":"^5.5.1"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.3.10_1751018854596_0.8207196554393268","host":"s3://npm-registry-packages-npm-production"}},"1.3.11":{"name":"@dulysse1/ts-helper","version":"1.3.11","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-helper@1.3.11","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"60159cc3a225775bc66865aa34b948fa67e56c07","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.3.11.tgz","fileCount":5,"integrity":"sha512-/PMvPCydgWSk0Ub5cg/ZHU3qsN4zD4XxiP2AQ3gODGHp2BcPDqOGYCqwjUtSXYQp/4bnVqEMq98yGv+a5fyvew==","signatures":[{"sig":"MEUCID0GO3GmtRWpeC1Gy+5MxXy2PrnEzRJKYB9xaYm7j64wAiEAtDDS7WPrzN/6N11SgoBHZahDomapjWgJfaN9QgIk0PI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":173789},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.3.11.tgz","types":"./dist/index.d.ts","engines":{"node":">=22","pnpm":">=9"},"exports":{".":{"import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"lint":"npx eslint --fix .","test":"npx tsc --extendedDiagnostics","build":"tsup","format":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","actor":{"name":"dulysse1","type":"user","email":"ulyssedupont2707@gmail.com"},"email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\e933138dafbb8f6c8f8bf288836de475\\dulysse1-ts-helper-1.3.11.tgz","_integrity":"sha512-/PMvPCydgWSk0Ub5cg/ZHU3qsN4zD4XxiP2AQ3gODGHp2BcPDqOGYCqwjUtSXYQp/4bnVqEMq98yGv+a5fyvew==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.4.1","description":"Typescript library for typing helpers ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","husky":"^9.1.7","eslint":"^9.29.0","globals":"^16.2.0","prettier":"^3.6.1","@eslint/js":"^9.29.0","typescript":"^5.8.3","typescript-eslint":"^8.35.0","@arethetypeswrong/cli":"^0.17.4","eslint-plugin-prettier":"^5.5.1"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.3.11_1751364887326_0.2007183320487651","host":"s3://npm-registry-packages-npm-production"}},"1.3.12":{"name":"@dulysse1/ts-helper","version":"1.3.12","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-helper@1.3.12","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"90a22974fb95f12cb16eca16b7a66a2f6f53f740","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.3.12.tgz","fileCount":5,"integrity":"sha512-K6FdJfipI2esIueYPDKI8uSAUwieVgY4z6e4MKsElz+Cw69bVAmDud6Rr381J8T3c6VdlKaNisCyjYWhI3O7fQ==","signatures":[{"sig":"MEYCIQC6FB0sqK9aghbGe1f+aReHIEueQRySCPv14Sun2lkERgIhAOjF/aE85kVq6UsI7fUcfjnOWzZ4mL9Pr4Q5kLc2JuV/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":174044},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.3.12.tgz","types":"./dist/index.d.ts","engines":{"node":">=22","pnpm":">=9"},"exports":{".":{"import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"lint":"npx eslint --fix .","test":"npx tsc --extendedDiagnostics","build":"tsup","format":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","actor":{"name":"dulysse1","type":"user","email":"ulyssedupont2707@gmail.com"},"email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\4a2338dabb8353acdfd8a1d0c5277134\\dulysse1-ts-helper-1.3.12.tgz","_integrity":"sha512-K6FdJfipI2esIueYPDKI8uSAUwieVgY4z6e4MKsElz+Cw69bVAmDud6Rr381J8T3c6VdlKaNisCyjYWhI3O7fQ==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.4.1","description":"Typescript library for typing helpers ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","husky":"^9.1.7","eslint":"^9.29.0","globals":"^16.2.0","prettier":"^3.6.1","@eslint/js":"^9.29.0","typescript":"^5.8.3","typescript-eslint":"^8.35.0","@arethetypeswrong/cli":"^0.17.4","eslint-plugin-prettier":"^5.5.1"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.3.12_1751365708465_0.4489838921620555","host":"s3://npm-registry-packages-npm-production"}},"1.3.13":{"name":"@dulysse1/ts-helper","version":"1.3.13","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-helper@1.3.13","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"470705865795f52063bbb40e33e44f6dfb320734","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.3.13.tgz","fileCount":5,"integrity":"sha512-H7CcWrfSeSVNl95JX80YEL7NQXZ74rychlfVVeI6h4hN7HFC2F+X+lMAv61djID34AYpXOW75H+68gOdJUXCgg==","signatures":[{"sig":"MEUCIDqb3sdy3N/7Zq8en4yU6bX/xDTYVfLwkDFAoiDPEJgMAiEA03mQQipV+439Khea2eKAmDLt/iPikrcrwUjT0eD/5AY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":180870},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.3.13.tgz","types":"./dist/index.d.ts","engines":{"node":">=22","pnpm":">=9"},"exports":{".":{"import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"lint":"npx eslint --fix .","test":"npx tsc --extendedDiagnostics","build":"tsup","format":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\0bacd842da5be8c7687cc87447f69ad6\\dulysse1-ts-helper-1.3.13.tgz","_integrity":"sha512-H7CcWrfSeSVNl95JX80YEL7NQXZ74rychlfVVeI6h4hN7HFC2F+X+lMAv61djID34AYpXOW75H+68gOdJUXCgg==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.4.1","description":"Typescript library for typing helpers ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","husky":"^9.1.7","eslint":"^9.39.1","globals":"^16.5.0","prettier":"^3.6.2","@eslint/js":"^9.39.1","typescript":"^5.9.3","typescript-eslint":"^8.46.4","@arethetypeswrong/cli":"^0.18.2","eslint-plugin-prettier":"^5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.3.13_1763043408644_0.6134272162298646","host":"s3://npm-registry-packages-npm-production"}},"1.3.14":{"name":"@dulysse1/ts-helper","version":"1.3.14","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-helper@1.3.14","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"538cb8650fb1d7a9341670f9af581cc17fabf5c5","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.3.14.tgz","fileCount":5,"integrity":"sha512-5Lv9W3UjN1Ht74/0LsHocpdSpfyyzIGX4vnK1exw+VQtSdzektFsvWlJXbe6HVkv70HgotJZgnvLOuFxbAkp2A==","signatures":[{"sig":"MEYCIQC2Rb1DZWHIxGQhJU7JXylz9xvACuMMNtG8jKgMPfAA2AIhAM367+rO+6nJHt6LLMNaRNel6A8bpDcg2zWux37t4S79","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":180870},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.3.14.tgz","types":"./dist/index.d.ts","engines":{"node":">=22","pnpm":">=9"},"exports":{".":{"import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"lint":"npx eslint --fix .","test":"npx tsc --extendedDiagnostics","build":"tsup","format":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\489cf118cb9a571dc8605a0a4622872e\\dulysse1-ts-helper-1.3.14.tgz","_integrity":"sha512-5Lv9W3UjN1Ht74/0LsHocpdSpfyyzIGX4vnK1exw+VQtSdzektFsvWlJXbe6HVkv70HgotJZgnvLOuFxbAkp2A==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.4.1","description":"Typescript library for typing helpers ✨","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","husky":"^9.1.7","eslint":"^9.39.1","globals":"^16.5.0","prettier":"^3.6.2","@eslint/js":"^9.39.1","typescript":"^5.9.3","typescript-eslint":"^8.46.4","@arethetypeswrong/cli":"^0.18.2","eslint-plugin-prettier":"^5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.3.14_1763043762217_0.04932985214978203","host":"s3://npm-registry-packages-npm-production"}},"1.3.15":{"name":"@dulysse1/ts-helper","version":"1.3.15","keywords":["node","typescript","type","types","safe","tools","typesafe","utility","helpers","ts-helper"],"author":{"url":"https://github.com/dulysse","name":"Ulysse Dupont","email":"ulyssedupont2707@gmail.com"},"license":"ISC","_id":"@dulysse1/ts-helper@1.3.15","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"2de56c01315b2b08eb1318aff2a567862129ef05","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.3.15.tgz","fileCount":5,"integrity":"sha512-x1OBHX0+9HgS/CqKFqidhnC6CohhfpSw85gtxDKEbvCvMlgdUtpO0eGnaHC2HSLLKHw+g6w5DRIu0xIQFQRR2Q==","signatures":[{"sig":"MEUCIEuN/g0ae8gdOGVu7OsLVI4Y1ls5XEtpoW4h9wdZmhZFAiEAsPeyt34C29a43qlW3/74tPEKRWJu4BvxuRCuJ6AGP0c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":182872},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.3.15.tgz","types":"./dist/index.d.ts","engines":{"node":">=22","pnpm":">=9"},"exports":{".":{"import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"lint":"npx eslint --fix .","test":"npx tsc --extendedDiagnostics","build":"tsup","format":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\8d6e84113a3dd5ac1f6c335f4cb90ad6\\dulysse1-ts-helper-1.3.15.tgz","_integrity":"sha512-x1OBHX0+9HgS/CqKFqidhnC6CohhfpSw85gtxDKEbvCvMlgdUtpO0eGnaHC2HSLLKHw+g6w5DRIu0xIQFQRR2Q==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.4.1","description":"Typescript library that provide typing utilities ✨","directories":{},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"8.5.1","husky":"9.1.7","eslint":"9.39.1","globals":"16.5.0","prettier":"3.6.2","@eslint/js":"9.39.1","typescript":"5.9.3","typescript-eslint":"8.47.0","@arethetypeswrong/cli":"0.18.2","eslint-plugin-prettier":"5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.3.15_1763475171924_0.1231738293406539","host":"s3://npm-registry-packages-npm-production"}},"1.3.16":{"name":"@dulysse1/ts-helper","version":"1.3.16","keywords":["node","typescript","type","types","safe","tools","typesafe","utility","helpers","ts-helper"],"author":{"url":"https://github.com/dulysse","name":"Ulysse Dupont","email":"ulyssedupont2707@gmail.com"},"license":"ISC","_id":"@dulysse1/ts-helper@1.3.16","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"198595e26a1001848d5d1895db6e65023dcdf0a1","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.3.16.tgz","fileCount":5,"integrity":"sha512-L9QqhcIrDIHg3Tk45jLILs3skAfewJBMOPuxhcWfweDQK0ROACyjn67DuYSixkPDkyQ/x7zARnBlpicxY8d6/Q==","signatures":[{"sig":"MEUCIQC4UGh4zwb3Mj3QGFtr1vELUUDpM8BnW5gsJwfg3CZR6QIgLXziEDU+deceqtWzxveKGNKsKMI2Ys4QlZYCZ553mvU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":186408},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.3.16.tgz","types":"./dist/index.d.ts","engines":{"node":">=22","pnpm":">=9"},"exports":{".":{"import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"lint":"npx eslint --fix .","test":"npx tsc --extendedDiagnostics","build":"tsup","format":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\e937ea247a9b712db00785666520cde0\\dulysse1-ts-helper-1.3.16.tgz","_integrity":"sha512-L9QqhcIrDIHg3Tk45jLILs3skAfewJBMOPuxhcWfweDQK0ROACyjn67DuYSixkPDkyQ/x7zARnBlpicxY8d6/Q==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.4.1","description":"Typescript library that provide typing utilities ✨","directories":{},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"8.5.1","husky":"9.1.7","eslint":"9.39.1","globals":"16.5.0","prettier":"3.6.2","@eslint/js":"9.39.1","typescript":"5.9.3","typescript-eslint":"8.47.0","@arethetypeswrong/cli":"0.18.2","eslint-plugin-prettier":"5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.3.16_1763727675011_0.4095470073229144","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@dulysse1/ts-helper","version":"1.4.0","keywords":["node","typescript","type","types","safe","tools","typesafe","utility","helpers","ts-helper"],"author":{"url":"https://github.com/dulysse","name":"Ulysse Dupont","email":"ulyssedupont2707@gmail.com"},"license":"ISC","_id":"@dulysse1/ts-helper@1.4.0","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"bcaec72b993e0df4b1ac10d118c78d240c1f34df","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.4.0.tgz","fileCount":5,"integrity":"sha512-a5IErxAgQnwcMvnmX6MbCGjSpGqirCVIiqrwNLGPgbe8wmA9XicXfMH9uP8TifjfLmj5t+RMRVhyg2kgQk2LxA==","signatures":[{"sig":"MEYCIQCkjK2RjQeL6EcPKtwwOeyypfRFy31eTQKpNhHihAZzBwIhAKOfgXitTc+5YA98vcEtXduoH8jxAR3GX/U+rWpFqW9m","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":197448},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.4.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22","pnpm":">=9"},"exports":{".":{"import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"lint":"npx eslint --fix .","test":"npx tsc --extendedDiagnostics","build":"tsup","format":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\7eac86192d3ed3b1516505cff5f16cb7\\dulysse1-ts-helper-1.4.0.tgz","_integrity":"sha512-a5IErxAgQnwcMvnmX6MbCGjSpGqirCVIiqrwNLGPgbe8wmA9XicXfMH9uP8TifjfLmj5t+RMRVhyg2kgQk2LxA==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.4.1","description":"Typescript library that provide typing utilities ✨","directories":{},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"8.5.1","husky":"9.1.7","eslint":"9.39.1","globals":"16.5.0","prettier":"3.6.2","@eslint/js":"9.39.1","typescript":"5.9.3","typescript-eslint":"8.47.0","@arethetypeswrong/cli":"0.18.2","eslint-plugin-prettier":"5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.4.0_1768073584811_0.49757668464469207","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@dulysse1/ts-helper","version":"1.4.1","keywords":["node","typescript","type","types","safe","tools","typesafe","utility","helpers","ts-helper"],"author":{"url":"https://github.com/dulysse","name":"Ulysse Dupont","email":"ulyssedupont2707@gmail.com"},"license":"ISC","_id":"@dulysse1/ts-helper@1.4.1","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"e1b943646cc6131216b793541953645e3074ac51","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.4.1.tgz","fileCount":5,"integrity":"sha512-SH4I2RtF6NX0AgWaRAuJ0vb/KAe9wkTFDokxdN4XmLtxHbl4ZpWT4Yc4LMCX3U+4EHe91XcRq64Oy+iBxRhn6w==","signatures":[{"sig":"MEUCIQD4lt8LQFkxf2Ds/jgQUt105ZIqSMVaE8i9itTcxnFhZwIgK6THRsRyimuG7Hn1nxKusY7DPy8oQ1hxwI8AGN8L51w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":199254},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.4.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=22","pnpm":">=9"},"exports":{".":{"import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"lint":"npx eslint --fix .","test":"npx tsc --extendedDiagnostics","build":"tsup","format":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\d3246ee70cbb2b77a534d4451e4ef1f2\\dulysse1-ts-helper-1.4.1.tgz","_integrity":"sha512-SH4I2RtF6NX0AgWaRAuJ0vb/KAe9wkTFDokxdN4XmLtxHbl4ZpWT4Yc4LMCX3U+4EHe91XcRq64Oy+iBxRhn6w==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.4.1","description":"Typescript library that provide typing utilities ✨","directories":{},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"8.5.1","husky":"9.1.7","eslint":"9.39.1","globals":"16.5.0","prettier":"3.6.2","@eslint/js":"9.39.1","typescript":"5.9.3","typescript-eslint":"8.47.0","@arethetypeswrong/cli":"0.18.2","eslint-plugin-prettier":"5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.4.1_1768136968867_0.7048800981826142","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"@dulysse1/ts-helper","version":"1.4.2","keywords":["node","typescript","type","types","safe","tools","typesafe","utility","helpers","ts-helper"],"author":{"url":"https://github.com/dulysse","name":"Ulysse Dupont","email":"ulyssedupont2707@gmail.com"},"license":"ISC","_id":"@dulysse1/ts-helper@1.4.2","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"21bba4dd73be6e2393650c6598e4388d66e150db","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.4.2.tgz","fileCount":5,"integrity":"sha512-DRAVfoAJ9h1gOBLHmQRn9O+tn3c4rPBcbkJ8fSDaNOISAEolT36v79VdfAxJLFrXPaeCmVk+jsbK3ZGBRpCCYQ==","signatures":[{"sig":"MEUCIQDXQCAXfHdBBL9qDSO6tCeqFd4IZXa3XncBL2rhcWlqYAIgH38sRGgQf1jlxm86yv44BfnLD981oH9XG+rNdlc/eCw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":203219},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.4.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=22","pnpm":">=9"},"exports":{".":{"import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"lint":"npx eslint --fix .","test":"npx tsc --extendedDiagnostics","build":"tsup","format":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\f87124d0ebe5b6adcabca973f2caad2f\\dulysse1-ts-helper-1.4.2.tgz","_integrity":"sha512-DRAVfoAJ9h1gOBLHmQRn9O+tn3c4rPBcbkJ8fSDaNOISAEolT36v79VdfAxJLFrXPaeCmVk+jsbK3ZGBRpCCYQ==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.4.1","description":"Typescript library that provide typing utilities ✨","directories":{},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"8.5.1","husky":"9.1.7","eslint":"9.39.1","globals":"16.5.0","prettier":"3.6.2","@eslint/js":"9.39.1","typescript":"5.9.3","typescript-eslint":"8.47.0","@arethetypeswrong/cli":"0.18.2","eslint-plugin-prettier":"5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.4.2_1768139147184_0.7189378018421604","host":"s3://npm-registry-packages-npm-production"}},"1.4.3":{"name":"@dulysse1/ts-helper","version":"1.4.3","keywords":["node","typescript","type","types","safe","tools","typesafe","utility","helpers","ts-helper"],"author":{"url":"https://github.com/dulysse","name":"Ulysse Dupont","email":"ulyssedupont2707@gmail.com"},"license":"ISC","_id":"@dulysse1/ts-helper@1.4.3","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"e3b9fafbca9790e85da37d6b730e97c828472717","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.4.3.tgz","fileCount":5,"integrity":"sha512-yhcJcNm4fK48IhP5nqw7gM6UAxKPrVNE939eSV1qaW44MfDVbOkGsp5bLwZDsdVJIB1Z//KU91zn5kgqkG/Y/g==","signatures":[{"sig":"MEQCIGp6UeO2UdDXMOHvviFQLhCDwr+sJHpAozR1u7HfNz/zAiANg+93Va+Tqox36c52q1/Buq5We51tJedK1GAhiQRZiQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":206773},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.4.3.tgz","types":"./dist/index.d.ts","engines":{"node":">=22","pnpm":">=9"},"exports":{".":{"import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"lint":"npx eslint --fix .","test":"npx tsc --extendedDiagnostics","build":"tsup","format":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\d3b444a95c0508796d430208173aa639\\dulysse1-ts-helper-1.4.3.tgz","_integrity":"sha512-yhcJcNm4fK48IhP5nqw7gM6UAxKPrVNE939eSV1qaW44MfDVbOkGsp5bLwZDsdVJIB1Z//KU91zn5kgqkG/Y/g==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.4.1","description":"Typescript library that provide typing utilities ✨","directories":{},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"8.5.1","husky":"9.1.7","eslint":"9.39.1","globals":"16.5.0","prettier":"3.6.2","@eslint/js":"9.39.1","typescript":"5.9.3","typescript-eslint":"8.47.0","@arethetypeswrong/cli":"0.18.2","eslint-plugin-prettier":"5.5.4","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.4.3_1768416108817_0.933250565595221","host":"s3://npm-registry-packages-npm-production"}},"1.4.4":{"name":"@dulysse1/ts-helper","version":"1.4.4","keywords":["node","typescript","type","types","safe","tools","typesafe","utility","helpers","ts-helper"],"author":{"url":"https://github.com/dulysse","name":"Ulysse Dupont","email":"ulyssedupont2707@gmail.com"},"license":"ISC","_id":"@dulysse1/ts-helper@1.4.4","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"1b9dc6cdd5ee9e86deff746c7c4a8f0e400b70f2","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.4.4.tgz","fileCount":5,"integrity":"sha512-0PF+scilm6vut41jwfKkuGkxe7LhOslZmbTDlKq5ZoPDw3I6zORe+rYODpR8EG6b01K0/IbjxC7c791aPbW66Q==","signatures":[{"sig":"MEUCIQCI4VJkCSKrdsQ+/yIz7TnozvOkLs1zAMVaYlf2nJlU4wIgVr4bDPcaljaf3YBlw21eq4NrWGYAUayNVmkQV1Vi+w4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDxqHyzfD2O+QEH/B1Y6vc3m9p/elJFO0KeYSKtgnpCqQIhAMN0r+YhJCa6TsPOAFfbaXUiE3HC8IFnXOB1nDUGfKDA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":206873},"main":"./dist/index.js","type":"module","_from":"file:dulysse1-ts-helper-1.4.4.tgz","types":"./dist/index.d.ts","engines":{"node":">=22","pnpm":">=9"},"exports":{".":{"import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"lint":"npx eslint --fix .","test":"npx tsc --extendedDiagnostics","build":"tsup","format":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"},"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\231ee53cc19ccbd5121f6ba6b6dcad97\\dulysse1-ts-helper-1.4.4.tgz","_integrity":"sha512-0PF+scilm6vut41jwfKkuGkxe7LhOslZmbTDlKq5ZoPDw3I6zORe+rYODpR8EG6b01K0/IbjxC7c791aPbW66Q==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.4.1","description":"Typescript library that provide typing utilities ✨","directories":{},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"8.5.1","husky":"9.1.7","eslint":"9.39.1","globals":"16.5.0","prettier":"3.6.2","@eslint/js":"9.39.1","typescript":"5.9.3","typescript-eslint":"8.47.0","@arethetypeswrong/cli":"0.18.5","eslint-plugin-prettier":"5.5.4","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-helper_1.4.4_1790181702674_0.3102681260166815","host":"s3://npm-registry-packages-npm-production"}},"1.4.5":{"_id":"@dulysse1/ts-helper@1.4.5","bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"dist":{"shasum":"005a8da755d8f06b8e56476817339feda0228383","tarball":"https://registry.npmjs.org/@dulysse1/ts-helper/-/ts-helper-1.4.5.tgz","fileCount":5,"integrity":"sha512-Nrxhdv3plzTnQ/iw6K83HvaEFZJ/ESDRuhB/ssDRHVx4Z+4o1tFYl6heLS2VZEKFxMNB3lsyelFPCor5wvhOzQ==","signatures":[{"sig":"MEUCIDEAIjAt/vWycTCHoyUAQzwaS6K+TzK8Py7TyA8N2ZeJAiEA4Q57bpT0fva6r878Na85LY/Wad8kLMU4fTMtyQLZHuM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCwlfwlmrc14ppTtEKeQOxIzk8ukZi3sKwb1Hp4dKLOUwIgOD2Opk68Ylna/3ENz6pA/yLJORn1APaQrFRYnyRt1CI="}],"unpackedSize":240154},"main":"./dist/index.js","name":"@dulysse1/ts-helper","type":"module","_from":"file:dulysse1-ts-helper-1.4.5.tgz","types":"./dist/index.d.ts","author":{"url":"https://github.com/dulysse","name":"Ulysse Dupont","email":"ulyssedupont2707@gmail.com"},"engines":{"node":">=22","pnpm":">=9"},"exports":{".":{"import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"license":"ISC","private":false,"scripts":{"lint":"npx eslint --fix .","test":"npx tsc --extendedDiagnostics","build":"tsup","format":"prettier . --write","check-exports":"attw --pack . --ignore-rules cjs-resolves-to-esm"},"version":"1.4.5","_npmUser":{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"},"homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","keywords":["node","typescript","type","types","safe","tools","typesafe","utility","helpers","ts-helper"],"_resolved":"C:\\Users\\ulysse\\AppData\\Local\\Temp\\2ca55ce46ea3f6c72588a1c1689f0af7\\dulysse1-ts-helper-1.4.5.tgz","_integrity":"sha512-Nrxhdv3plzTnQ/iw6K83HvaEFZJ/ESDRuhB/ssDRHVx4Z+4o1tFYl6heLS2VZEKFxMNB3lsyelFPCor5wvhOzQ==","repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"_npmVersion":"11.4.1","description":"A personal TypeScript playground to explore the limits of the type system and keep growing my knowledge ✨","directories":{},"maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"8.5.1","husky":"9.1.7","eslint":"9.39.1","globals":"16.5.0","prettier":"3.6.2","@eslint/js":"9.39.1","typescript":"5.9.3","typescript-eslint":"8.47.0","@arethetypeswrong/cli":"0.18.5","eslint-plugin-prettier":"5.5.4","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ts-helper_1.4.5_1790241490828_0.44780302123447946"}}},"time":{"created":"2023-12-13T12:17:32.708Z","modified":"2026-09-24T09:18:11.336Z","1.0.0":"2023-12-13T12:17:32.951Z","1.0.1":"2025-02-21T15:43:19.952Z","1.0.2":"2025-02-21T15:51:25.074Z","1.1.0":"2025-02-24T09:22:02.906Z","1.1.1":"2025-03-05T10:34:49.280Z","1.1.2":"2025-03-06T10:30:16.927Z","1.1.3":"2025-03-06T11:01:47.730Z","1.1.4":"2025-03-10T09:29:18.229Z","1.2.0":"2025-03-28T10:02:57.390Z","1.2.1":"2025-03-31T09:31:39.141Z","1.2.2":"2025-04-23T09:07:58.685Z","1.2.3":"2025-04-29T10:18:08.343Z","1.2.4":"2025-05-26T14:10:21.567Z","1.2.5":"2025-05-28T15:24:08.324Z","1.2.6":"2025-05-28T15:33:42.075Z","1.2.7":"2025-05-28T21:12:36.340Z","1.2.8":"2025-06-03T17:37:41.079Z","1.2.9":"2025-06-04T10:08:17.104Z","1.2.10":"2025-06-05T10:58:55.204Z","1.2.11":"2025-06-05T11:06:25.790Z","1.2.12":"2025-06-05T15:27:47.500Z","1.2.13":"2025-06-10T10:23:22.365Z","1.2.14":"2025-06-10T10:31:54.701Z","1.3.0":"2025-06-12T14:45:09.123Z","1.3.1":"2025-06-12T14:54:00.856Z","1.3.2":"2025-06-17T10:21:06.254Z","1.3.3":"2025-06-24T10:15:53.036Z","1.3.4":"2025-06-24T10:52:36.018Z","1.3.5":"2025-06-24T10:55:09.420Z","1.3.6":"2025-06-25T12:40:49.361Z","1.3.7":"2025-06-25T14:06:41.311Z","1.3.8":"2025-06-26T10:33:52.081Z","1.3.9":"2025-06-26T14:33:46.203Z","1.3.10":"2025-06-27T10:07:34.791Z","1.3.11":"2025-07-01T10:14:47.536Z","1.3.12":"2025-07-01T10:28:28.675Z","1.3.13":"2025-11-13T14:16:48.826Z","1.3.14":"2025-11-13T14:22:42.400Z","1.3.15":"2025-11-18T14:12:52.103Z","1.3.16":"2025-11-21T12:21:15.199Z","1.4.0":"2026-01-10T19:33:04.963Z","1.4.1":"2026-01-11T13:09:29.028Z","1.4.2":"2026-01-11T13:45:47.343Z","1.4.3":"2026-01-14T18:41:48.970Z","1.4.4":"2026-09-23T16:41:42.769Z","1.4.5":"2026-09-24T09:18:10.912Z"},"bugs":{"url":"https://github.com/Dulysse/ts-helper/issues"},"author":{"url":"https://github.com/dulysse","name":"Ulysse Dupont","email":"ulyssedupont2707@gmail.com"},"license":"ISC","homepage":"https://github.com/Dulysse/ts-helper/blob/master/README.md","keywords":["node","typescript","type","types","safe","tools","typesafe","utility","helpers","ts-helper"],"repository":{"url":"git+https://github.com/Dulysse/ts-helper.git","type":"public"},"description":"A personal TypeScript playground to explore the limits of the type system and keep growing my knowledge ✨","maintainers":[{"name":"dulysse1","email":"ulyssedupont2707@gmail.com"}],"readme":"![https://raw.githubusercontent.com/Dulysse/ts-helper/refs/heads/main/assets/logo.svg](https://raw.githubusercontent.com/Dulysse/ts-helper/refs/heads/main/assets/logo.svg)\n\n# 🛠 ts-helper 🛠\n\n<i>A personal TypeScript playground for exploring the limits of TypeScript's type system and sharpening my skills. ✨</i>\n\n## Getting started 🆙\n\n### Prerequisites\n\nInstall TypeScript in 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## Usage 🤔\n\n### ES module import ✅\n\n```tsx\nimport type { Num, Arr, Str } from \"@dulysse1/ts-helper\";\n// now you can create your types!\n```\n\n## Documentation 🧗\n\n| Num                 | Op                    | Obj               | Arr             | Union           | Str               | Any         | Lab         | Class           | Brd             | Test          |\n| ------------------- | --------------------- | ----------------- | --------------- | --------------- | ----------------- | ----------- | ----------- | --------------- | --------------- | ------------- |\n| [Numbers](#numbers) | [Operator](#operator) | [Object](#object) | [Array](#array) | [Union](#union) | [String](#string) | [Any](#any) | [Lab](#lab) | [Class](#class) | [Brand](#brand) | [Test](#test) |\n\n**Exports — overview**\n\nThis shows the exports currently provided from the `src/` directory.\n\n- Num: [Increment](#num-increment), [Decrement](#num-decrement), [Greater](#num-greater), [Lower](#num-lower), [GreaterEq](#num-greatereq), [LowerEq](#num-lowereq), [IsPositive](#num-ispositive), [IsNegative](#num-isnegative), [Add](#num-add), [Subtract](#num-subtract), [Opposite](#num-opposite), [Range](#num-range), [Between](#num-between), [IsZero](#num-iszero), [Multiply](#num-multiply), [Divide](#num-divide), [Eval](#num-eval), [Factorial](#num-factorial), [Modulo](#num-modulo), [Power](#num-power), [IsFloat](#num-isfloat), [Compare](#num-compare), [Comparators](#num-comparators), [ParseInt](#num-parseint), [ParseFloat](#num-parsefloat), [IsEven](#num-iseven), [IsOdd](#num-isodd), [IsInteger](#num-isinteger), [Abs](#num-abs)\n- Op: [Equal](#op-equal), [Satisfy](#op-satisfy), [And](#op-and), [Or](#op-or), [Not](#op-not), [Xor](#op-xor), [AndAll](#op-andall), [OrAll](#op-orall), [If](#op-if), [Fallback](#op-fallback), [IsEqual](#op-isequal), [IsAssignable](#op-isassignable)\n- Obj: [Merge](#obj-merge), [KeyOf](#obj-keyof), [Intersection](#obj-intersection), [Omit](#obj-omit), [Partial](#obj-partial), [Required](#obj-required), [Prettify](#obj-prettify), [Rename](#obj-rename), [HasKey](#obj-haskey), [Filter](#obj-filter), [Update](#obj-update), [Reversed](#obj-reversed), [Exclude](#obj-exclude), [Tree](#obj-tree), [Entries](#obj-entries)\n- Arr: [IsTuple](#arr-istuple), [Reverse](#arr-reverse), [Readable](#arr-readable), [Length](#arr-length), [At](#arr-at), [ToUnion](#arr-tounion), [IsReadonly](#arr-isreadonly), [Includes](#arr-includes), [Join](#arr-join), [First](#arr-first), [Last](#arr-last), [Count](#arr-count), [Concat](#arr-concat), [Flat](#arr-flat), [Fill](#arr-fill), [FillRange](#arr-fillrange), [Filter](#arr-filter), [Zip](#arr-zip), [Unique](#arr-unique), [Map](#arr-map), [Infer](#arr-infer), [Some](#arr-some), [IndexOf](#arr-indexof)\n- Union: [Last](#union-last), [Exclude](#union-exclude), [ToArray](#union-toarray), [Count](#union-count), [First](#union-first), [IsUnion](#union-isunion), [Through](#union-through), [Has](#union-has), [OneOf](#union-oneof)\n- Str: [IsExactString](#str-isexactstring), [ContainExactString](#str-containexactstring), [Split](#str-split), [Width](#str-width), [Replace](#str-replace), [ReplaceAll](#str-replaceall), [PlacedAt](#str-placedat), [Reversed](#str-reversed), [Repeat](#str-repeat), [TrimStart](#str-trimstart), [TrimEnd](#str-trimend), [Trim](#str-trim), [Count](#str-count), [Includes](#str-includes), [Infer](#str-infer), [Alphanumeric](#str-alphanumeric), [Special](#str-special), [ReplaceMap](#str-replacemap), [UnAccent](#str-unaccent), [ToCamelCase](#str-tocamelcase), [ToPascalCase](#str-topascalcase), [ToKebabCase](#str-tokebabcase), [ToSnakeCase](#str-tosnakecase), [AsciiMap](#str-asciimap), [AsciiCode](#str-asciicode), [AsciiRange](#str-asciirange), [IsUpperCase](#str-isuppercase), [IsLowerCase](#str-islowercase), [IsDigit](#str-isdigit), [Filter](#str-filter)\n- Any: [Implicit](#any-implicit), [IsAny](#any-isany), [IsLiteral](#any-isliteral), [PrimitiveOf](#any-primitiveof), [IsPrimitive](#any-isprimitive)\n- Lab: [TicTacToe](#lab-tictactoe), [Connect4](#lab-connect4)\n- Class: [Constructor](#class-constructor)\n- Brd: [Symbol](#brd-symbol), [IsBranded](#brd-isbranded), [Branded](#brd-branded)\n- Test: [Describe](#test-describe), [It](#test-it), [Out](#test-out)\n\n### Examples\n\n<a id=\"test\"></a>\n\n<a id=\"test-describe\"></a>\n\n<a id=\"test-it\"></a>\n\n<a id=\"test-out\"></a>\n\n### 🧪 Test your own types\n\n- Since version `1.3.0` you can test your own types like unit test with compiler check. Here is an example of usage with a type from my module:\n\n```tsx\nimport { Test, type Num } from \"@dulysse1/ts-helper\";\n\nTest.Describe(\n\t\"Evaluation of mathematical expressions represented as string\",\n\tTest.It<Num.Eval<\"2+2*2\">, 6, typeof Test.Out.PASS>(),\n\tTest.It<Num.Eval<\"20.2-4/2\">, 18.2, typeof Test.Out.PASS>(),\n\tTest.It<Num.Eval<\"HELLO\">, number, typeof Test.Out.FAIL>(),\n\tTest.It<Num.Eval<\"23.3/32323\">, number, typeof Test.Out.PASS>(),\n\t//         [Tested type]  [Expected]  [Comparison result]\n);\n\nTest.Describe(\n\t\"Check if a number is between two other numbers\",\n\tTest.It<Num.Between<1, 1, 5>, true, typeof Test.Out.PASS>(),\n\tTest.It<Num.Between<0, 10, 20>, true, typeof Test.Out.FAIL>(),\n\tTest.It<Num.Between<number, 10, 7>, boolean, typeof Test.Out.PASS>(),\n);\n```\n\n- Add the following script in your package.json:\n\n```json\n{\n\t\"test:type\": \"npx tsc --extendedDiagnostics --noEmit\"\n}\n```\n\n- You can now run the command to check your tested types!\n\n<a id=\"numbers\"></a>\n\n### 👉 `Numbers`\n\n- ⚠️ Returns an absolute result with a precision of two decimals for numbers that don't reach compiler limits, otherwise it returns an `explicit result`. ⚠️\n\n- New feature since version `1.2.6`! The multiply function allow one `float` type 🤯🤯🤯\n\n![https://raw.githubusercontent.com/Dulysse/ts-helper/refs/heads/main/assets/multiply.png](https://raw.githubusercontent.com/Dulysse/ts-helper/refs/heads/main/assets/multiply.png)\n\n- New feature since version `1.2.2`! Add and Substract functions allow `float` type 🤯🤯\n\n![https://raw.githubusercontent.com/Dulysse/ts-helper/refs/heads/main/assets/float.png](https://raw.githubusercontent.com/Dulysse/ts-helper/refs/heads/main/assets/float.png)\n\n- New feature since version `1.1.1`! Eval function return type for calculation 🤯\n\n![https://raw.githubusercontent.com/Dulysse/ts-helper/refs/heads/main/assets/eval.png](https://raw.githubusercontent.com/Dulysse/ts-helper/refs/heads/main/assets/eval.png)\n\n<a id=\"num-increment\"></a>\n\n- Increment a number by one\n\n```tsx\nimport type { Num } from \"@dulysse1/ts-helper\";\n\ntype A = Num.Increment<5>; // 6\ntype B = Num.Increment<0>; // 1\n```\n\n<a id=\"num-decrement\"></a>\n\n- Decrement a number by one\n\n```tsx\nimport type { Num } from \"@dulysse1/ts-helper\";\n\ntype A = Num.Decrement<5>; // 4\ntype B = Num.Decrement<0>; // -1\n```\n\n<a id=\"num-greater\"></a>\n\n- Check whether `A` is greater than `B`\n\n```tsx\nimport type { Num } from \"@dulysse1/ts-helper\";\n\ntype A = Num.Greater<5, 3>; // true\ntype B = Num.Greater<3, 5>; // false\n```\n\n<a id=\"num-lower\"></a>\n\n- Check whether `A` is lower than `B`\n\n```tsx\nimport type { Num } from \"@dulysse1/ts-helper\";\n\ntype A = Num.Lower<3, 5>; // true\ntype B = Num.Lower<5, 3>; // false\n```\n\n<a id=\"num-greatereq\"></a>\n\n- Check whether `A` is greater than or equal to `B`\n\n```tsx\nimport type { Num } from \"@dulysse1/ts-helper\";\n\ntype A = Num.GreaterEq<5, 5>; // true\ntype B = Num.GreaterEq<4, 5>; // false\n```\n\n<a id=\"num-lowereq\"></a>\n\n- Check whether `A` is lower than or equal to `B`\n\n```tsx\nimport type { Num } from \"@dulysse1/ts-helper\";\n\ntype A = Num.LowerEq<3, 3>; // true\ntype B = Num.LowerEq<4, 3>; // false\n```\n\n<a id=\"num-opposite\"></a>\n\n- Get the opposite of a number\n\n```tsx\nimport type { Num } from \"@dulysse1/ts-helper\";\n\ntype A = Num.Opposite<5>; // -5\ntype B = Num.Opposite<-3>; // 3\n```\n\n<a id=\"num-range\"></a>\n\n- Generate a range of numbers between `Start` and `End`\n\n```tsx\nimport type { Num } from \"@dulysse1/ts-helper\";\n\ntype A = Num.Range<1, 5>; // [1, 2, 3, 4, 5]\ntype B = Num.Range<5, 1>; // [5, 4, 3, 2, 1]\n```\n\n<a id=\"num-between\"></a>\n\n- Check if a number is between two other numbers\n\n```tsx\nimport type { Num } from \"@dulysse1/ts-helper\";\n\ntype A = Num.Between<3, 1, 5>; // true\ntype B = Num.Between<6, 1, 5>; // false\n```\n\n<a id=\"num-iszero\"></a>\n\n- Check if a number is zero\n\n```tsx\nimport type { Num } from \"@dulysse1/ts-helper\";\n\ntype A = Num.IsZero<0>; // true\ntype B = Num.IsZero<4>; // false\n```\n\n<a id=\"num-modulo\"></a>\n\n- Compute the modulo of two numbers\n\n```tsx\nimport type { Num } from \"@dulysse1/ts-helper\";\n\ntype A = Num.Modulo<10, 3>; // 1\ntype B = Num.Modulo<8, 4>; // 0\n```\n\n<a id=\"num-power\"></a>\n\n- Raise a number to a given power\n\n```tsx\nimport type { Num } from \"@dulysse1/ts-helper\";\n\ntype A = Num.Power<2, 3>; // 8\ntype B = Num.Power<5, 2>; // 25\n```\n\n<a id=\"num-compare\"></a>\n\n- Compare two numbers and return a comparison result\n\n```tsx\nimport type { Num } from \"@dulysse1/ts-helper\";\n\ntype A = Num.Compare<2, 5>; // -1\ntype B = Num.Compare<5, 2>; // 1\ntype C = Num.Compare<5, 5>; // 0\n```\n\n<a id=\"num-comparators\"></a>\n\n- Expose the available comparison operators\n\n```tsx\nimport type { Num } from \"@dulysse1/ts-helper\";\n\ntype Cmp = Num.Comparators; // { \"<\": ...; \">\": ...; \"==\": ... }\n```\n\n<a id=\"num-isinteger\"></a>\n\n- Check if a number is an integer\n\n```tsx\nimport type { Num } from \"@dulysse1/ts-helper\";\n\ntype A = Num.IsInteger<5>; // true\ntype B = Num.IsInteger<5.5>; // false\n```\n\n<a id=\"num-abs\"></a>\n\n- Get the absolute value of a number\n\n```tsx\nimport type { Num } from \"@dulysse1/ts-helper\";\n\ntype A = Num.Abs<-5>; // 5\ntype B = Num.Abs<7>; // 7\n```\n\n<a id=\"num-ispositive\"></a>\n\n- Check if a number is `positive`\n\n```tsx\nimport type { Num } from \"@dulysse1/ts-helper\";\n\ntype A = Num.IsPositive<-2343>; // false\ntype B = Num.IsPositive<134>; // true\ntype C = Num.IsPositive<0>; // true\n```\n\n<a id=\"num-add\"></a>\n\n- Add two numbers\n\n```tsx\nimport type { Num } from \"@dulysse1/ts-helper\";\n\ntype A = Num.Add<10, 10>; // 20\ntype B = Num.Add<-10, 10>; // 0\ntype C = Num.Add<-23, -34>; // -57\ntype C = Num.Add<87.67, 10.34>; // 98.01  NEW!\n```\n\n<a id=\"num-subtract\"></a>\n\n- Substract two numbers\n\n```tsx\nimport type { Num } from \"@dulysse1/ts-helper\";\n\ntype A = Num.Subtract<10, 10>; // 0\ntype B = Num.Subtract<10, -40>; // 50\ntype C = Num.Subtract<12.4, 3.2>; // 9.2  NEW!\n```\n\n<a id=\"num-multiply\"></a>\n\n- Multiply two numbers\n\n```tsx\nimport type { Num } from \"@dulysse1/ts-helper\";\n\ntype A = Num.Multiply<10, 10>; // 100\ntype B = Num.Multiply<-6, 7>; // -42\ntype C = Num.Multiply<234, 783>; // number\n```\n\n<a id=\"num-divide\"></a>\n\n- Divide two numbers\n\n```tsx\nimport type { Num } from \"@dulysse1/ts-helper\";\n\ntype A = Num.Divide<20, 10>; // 2\ntype B = Num.Divide<0, 7>; // 0\ntype C = Num.Divide<7, 0>; // number\n```\n\n<a id=\"num-factorial\"></a>\n\n- Get the `factorial` of one number\n\n```tsx\nimport type { Num } from \"@dulysse1/ts-helper\";\n\ntype A = Num.Factorial<0>; // 1\ntype B = Num.Factorial<-3>; // -6\ntype C = Num.Factorial<5>; // 120\n```\n\n<a id=\"num-iseven\"></a>\n\n- Check if a number is `even`\n\n```tsx\nimport type { Num } from \"@dulysse1/ts-helper\";\n\ntype A = Num.IsEven<0>; // true\ntype B = Num.IsEven<-3>; // false\ntype C = Num.IsEven<5.5>; // false\n```\n\n<a id=\"num-isodd\"></a>\n\n- Check if a number is `odd`\n\n```tsx\nimport type { Num } from \"@dulysse1/ts-helper\";\n\ntype A = Num.IsOdd<0>; // false\ntype B = Num.IsOdd<-3>; // true\ntype C = Num.IsOdd<5.5>; // true\n```\n\n<a id=\"num-isfloat\"></a>\n\n- Check if a number is `float`\n\n```tsx\nimport type { Num } from \"@dulysse1/ts-helper\";\n\ntype A = Num.IsFloat<0>; // false\ntype B = Num.IsFloat<-3>; // false\ntype C = Num.IsFloat<5.5>; // true\n```\n\n<a id=\"num-parsefloat\"></a>\n\n- Parse a string to `float` number\n\n```tsx\nimport type { Num } from \"@dulysse1/ts-helper\";\n\ntype A = Num.ParseFloat<\"0\">; // 0\ntype B = Num.ParseFloat<\"-3\">; // -3\ntype C = Num.ParseFloat<\"5.5\">; // 5.5\n```\n\n<a id=\"num-parseint\"></a>\n\n- Parse a string to `integer` number\n\n```tsx\nimport type { Num } from \"@dulysse1/ts-helper\";\n\ntype A = Num.ParseInt<\"0\">; // 0\ntype B = Num.ParseInt<\"-3\">; // -3\ntype C = Num.ParseInt<\"5.5\">; // 5\n```\n\n<a id=\"object\"></a>\n\n### 👉 `Object`\n\n- Get keys of object by an optional filter\n\n```tsx\nimport type { Obj } from \"@dulysse1/ts-helper\";\n\ntype A = Obj.KeyOf<{ a: string; b: number }, string>; // \"a\"\n```\n\n- Merge two type objects\n\n```tsx\nimport type { Obj } from \"@dulysse1/ts-helper\";\n\ntype A = Obj.Merge<{ a: string }, { b: number }>; // { a: string; b: number; }\n```\n\n<a id=\"obj-merge\"></a>\n\n- Merge two object types into one\n\n```tsx\nimport type { Obj } from \"@dulysse1/ts-helper\";\n\ntype A = Obj.Merge<{ a: string }, { b: number }>; // { a: string; b: number }\n```\n\n<a id=\"obj-keyof\"></a>\n\n- Get keys of an object by optional value filtering\n\n```tsx\nimport type { Obj } from \"@dulysse1/ts-helper\";\n\ntype A = Obj.KeyOf<{ a: string; b: number; c: boolean }, string>; // \"a\"\ntype B = Obj.KeyOf<{ a: string; b: number }, number>; // \"b\"\n```\n\n<a id=\"obj-intersection\"></a>\n\n- Intersect two object types\n\n```tsx\nimport type { Obj } from \"@dulysse1/ts-helper\";\n\ntype A = Obj.Intersection<{ a: string }, { a: string; b: number }>; // { a: string }\n```\n\n<a id=\"obj-omit\"></a>\n\n- Omit specific keys from an object type\n\n```tsx\nimport type { Obj } from \"@dulysse1/ts-helper\";\n\ntype A = Obj.Omit<{ a: string; b: number; c: boolean }, \"b\" | \"c\">; // { a: string }\n```\n\n<a id=\"obj-partial\"></a>\n\n- Make every object property optional\n\n```tsx\nimport type { Obj } from \"@dulysse1/ts-helper\";\n\ntype A = Obj.Partial<{ a: string; b: number }>; // { a?: string; b?: number }\n```\n\n<a id=\"obj-required\"></a>\n\n- Make every object property required\n\n```tsx\nimport type { Obj } from \"@dulysse1/ts-helper\";\n\ntype A = Obj.Required<{ a?: string; b?: number }>; // { a: string; b: number }\n```\n\n<a id=\"obj-prettify\"></a>\n\n- Flatten complex type intersections into a readable object\n\n```tsx\nimport type { Obj } from \"@dulysse1/ts-helper\";\n\ntype A = Obj.Prettify<{ a: string } & { b: number }>; // { a: string; b: number }\n```\n\n<a id=\"obj-rename\"></a>\n\n- Rename object keys without changing the value type\n\n```tsx\nimport type { Obj } from \"@dulysse1/ts-helper\";\n\ntype A = Obj.Rename<{ a: string }, \"a\", \"b\">; // { b: string }\n```\n\n<a id=\"obj-haskey\"></a>\n\n- Check whether a key exists in an object type\n\n```tsx\nimport type { Obj } from \"@dulysse1/ts-helper\";\n\ntype A = Obj.HasKey<{ a: string }, \"a\">; // true\ntype B = Obj.HasKey<{ a: string }, \"b\">; // false\n```\n\n<a id=\"obj-filter\"></a>\n\n- Filter object keys by value type\n\n```tsx\nimport type { Obj } from \"@dulysse1/ts-helper\";\n\ntype A = Obj.Filter<{ a: string; b: number; c: boolean }, string | number>; // { a: string; b: number }\n```\n\n<a id=\"obj-update\"></a>\n\n- Update the value type of an existing key\n\n```tsx\nimport type { Obj } from \"@dulysse1/ts-helper\";\n\ntype A = Obj.Update<{ count: number }, \"count\", string>; // { count: string }\n```\n\n<a id=\"obj-reversed\"></a>\n\n- Reverse the key order of an object type\n\n```tsx\nimport type { Obj } from \"@dulysse1/ts-helper\";\n\ntype A = Obj.Reversed<{ a: \"x\"; b: \"y\"; c: \"z\" }>; // { x: 'a'; y: 'b'; z: 'c'; }\n```\n\n<a id=\"obj-exclude\"></a>\n\n- Exclude one or more keys from an object type\n\n```tsx\nimport type { Obj } from \"@dulysse1/ts-helper\";\n\ntype A = Obj.Exclude<{ a: string; b: number; c: boolean }, \"a\" | \"c\">; // { b: number }\n```\n\n<a id=\"obj-tree\"></a>\n\n- Work with nested object trees and recursive structures\n\n```tsx\nimport type { Obj } from \"@dulysse1/ts-helper\";\n\ntype A = Obj.Tree<{ user: { name: string } }>; // { user: { name: string } }\n```\n\n<a id=\"obj-entries\"></a>\n\n- Extract object entries as a union of `[key, value]` tuples\n\n```tsx\nimport type { Obj } from \"@dulysse1/ts-helper\";\n\ntype A = Obj.Entries<{ a: string; b: number }>; // [\"a\", string] | [\"b\", number]\n```\n\n<a id=\"string\"></a>\n\n### 👉 `String`\n\n- Infer filter logic to a string (`since v1.3.0`)\n\n```tsx\nimport type { Str } from \"@dulysse1/ts-helper\";\n\nfunction checkEmail<T extends string>(\n\temail: Str.Infer<\n\t\tT,\n\t\t{\n\t\t\tminChar: 5;\n\t\t\tmaxChar: 40;\n\t\t\tpattern: `${string}@${string}.${\"com\" | \"fr\" | \"us\"}`;\n\t\t}\n\t>,\n) {\n\t//...\n}\n\ncheckEmail(\"\"); // ERROR ❌\ncheckEmail(\"demo@d\"); // ERROR ❌\ncheckEmail(\"demo@domain.com\"); // ✅\n```\n\n- Transform a string to `camelCase` or `snake_case` or `kebab-case` or `PascalCase`\n  (`since v1.4.1`)\n\n```tsx\nimport type { Str } from \"@dulysse1/ts-helper\";\n\ntype A = Str.ToCamelCase<\"hello world\">; // \"helloWorld\"\ntype B = Str.ToPascalCase<\"hello world\">; // \"HelloWorld\"\n\n// Typescript implementation example:\n\n// very usefull with vuejs to convert JS props to HTML attributes!\nconst toKebabCase = <T extends string>(str: T): Str.ToKebabCase<T> =>\n\tstr\n\t\t.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g)\n\t\t.map(x => x.toLowerCase())\n\t\t.join(\"-\") as Str.ToKebabCase<T>;\n\n// very usefull to convert JS props to Python/Django props!\nconst toSnakeCase = <T extends string>(str: T): Str.ToSnakeCase<T> =>\n\tstr\n\t\t.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g)\n\t\t.map(x => x.toLowerCase())\n\t\t.join(\"_\") as Str.ToSnakeCase<T>;\n```\n\n- Split a string to array\n\n```tsx\nimport type { Str } from \"@dulysse1/ts-helper\";\n\ntype A = Str.Split<\"coucou\">; // [\"c\", \"o\", \"u\", \"c\", \"o\", \"u\"]\ntype B = Str.Split<\"coucou\", \"c\">; // [\"ou\", \"ou\"]\n```\n\n- Replace all iteration of one character\n\n```tsx\nimport type { Str } from \"@dulysse1/ts-helper\";\n\ntype A = Str.ReplaceAll<\"coucou\", \"c\", \"x\">; // \"xouxou\"\n```\n\n<a id=\"str-isexactstring\"></a>\n\n- Check whether a string is exactly a specific literal value\n\n```tsx\nimport type { Str } from \"@dulysse1/ts-helper\";\n\ntype A = Str.IsExactString<\"hello\", \"hello\">; // true\ntype B = Str.IsExactString<\"hello\", \"world\">; // false\n```\n\n<a id=\"str-split\"></a>\n\n- Split a string into an array of characters\n\n```tsx\nimport type { Str } from \"@dulysse1/ts-helper\";\n\ntype A = Str.Split<\"coucou\">; // [\"c\", \"o\", \"u\", \"c\", \"o\", \"u\"]\n```\n\n<a id=\"str-containexactstring\"></a>\n\n- Check whether a string contains an exact substring\n\n```tsx\nimport type { Str } from \"@dulysse1/ts-helper\";\n\ntype A = Str.ContainExactString<\"hello world\", \"world\">; // true\n```\n\n<a id=\"str-width\"></a>\n\n- Measure the printable width of a string\n\n```tsx\nimport type { Str } from \"@dulysse1/ts-helper\";\n\ntype A = Str.Width<\"Hi\">; // 2\ntype B = Str.Width<\"é\">; // 1\n```\n\n<a id=\"str-replace\"></a>\n\n- Replace the first matching occurrence in a string\n\n```tsx\nimport type { Str } from \"@dulysse1/ts-helper\";\n\ntype A = Str.Replace<\"hello world\", \"world\", \"there\">; // \"hello there\"\n```\n\n<a id=\"str-replaceall\"></a>\n\n- Replace all occurrences of one character or substring\n\n```tsx\nimport type { Str } from \"@dulysse1/ts-helper\";\n\ntype A = Str.ReplaceAll<\"coucou\", \"c\", \"x\">; // \"xouxou\"\n```\n\n<a id=\"str-placedat\"></a>\n\n- Insert a string at a specific index\n\n```tsx\nimport type { Str } from \"@dulysse1/ts-helper\";\n\ntype A = Str.PlacedAt<\"abcd\", \"X\", 2>; // \"abXd\"\n```\n\n<a id=\"str-reversed\"></a>\n\n- Reverse a string\n\n```tsx\nimport type { Str } from \"@dulysse1/ts-helper\";\n\ntype A = Str.Reversed<\"abc\">; // \"cba\"\n```\n\n<a id=\"str-repeat\"></a>\n\n- Repeat a string a given number of times\n\n```tsx\nimport type { Str } from \"@dulysse1/ts-helper\";\n\ntype A = Str.Repeat<\"ha\", 3>; // \"hahaha\"\n```\n\n<a id=\"str-trimstart\"></a>\n\n- Remove leading whitespace from a string\n\n```tsx\nimport type { Str } from \"@dulysse1/ts-helper\";\n\ntype A = Str.TrimStart<\"  hello\">; // \"hello\"\n```\n\n<a id=\"str-trimend\"></a>\n\n- Remove trailing whitespace from a string\n\n```tsx\nimport type { Str } from \"@dulysse1/ts-helper\";\n\ntype A = Str.TrimEnd<\"hello  \">; // \"hello\"\n```\n\n<a id=\"str-trim\"></a>\n\n- Trim spaces from both ends of a string\n\n```tsx\nimport type { Str } from \"@dulysse1/ts-helper\";\n\ntype A = Str.Trim<\"  hello  \">; // \"hello\"\n```\n\n<a id=\"str-count\"></a>\n\n- Count the number of characters in a string\n\n```tsx\nimport type { Str } from \"@dulysse1/ts-helper\";\n\ntype A = Str.Count<\"hello\">; // 5\n```\n\n<a id=\"str-includes\"></a>\n\n- Check whether a string contains a given substring\n\n```tsx\nimport type { Str } from \"@dulysse1/ts-helper\";\n\ntype A = Str.Includes<\"hello world\", \"world\">; // true\n```\n\n<a id=\"str-infer\"></a>\n\n- Infer a string shape from a pattern or constraint\n\n```tsx\nimport type { Str } from \"@dulysse1/ts-helper\";\n\ntype A = Str.Infer<\"hello\", { minChar: 3; maxChar: 10 }>; // \"hello\"\n```\n\n<a id=\"str-alphanumeric\"></a>\n\n- Access the built-in alphanumeric character sets\n\n```tsx\nimport type { Str } from \"@dulysse1/ts-helper\";\n\ntype A = Str.Alphanumeric[\"a_z\"]; // [\"a\", \"b\", \"c\", ..., \"z\"]\ntype B = Str.Alphanumeric[\"0_9\"]; // [\"0\", \"1\", \"2\", ..., \"9\"]\n```\n\n<a id=\"str-special\"></a>\n\n- Use the special-character union from the library\n\n```tsx\nimport type { Str } from \"@dulysse1/ts-helper\";\n\ntype A = Str.Special; // \"!\" | \"@\" | \"#\" | ...\ntype B = Extract<Str.Special, \"-\">; // \"-\"\n```\n\n<a id=\"str-replacemap\"></a>\n\n- Replace characters using a map of replacements\n\n```tsx\nimport type { Str } from \"@dulysse1/ts-helper\";\n\ntype A = Str.ReplaceMap<\"a-b-c\", { a: \"x\"; b: \"y\" }>; // \"x-y-c\"\n```\n\n<a id=\"str-unaccent\"></a>\n\n- Remove accents from a string\n\n```tsx\nimport type { Str } from \"@dulysse1/ts-helper\";\n\ntype A = Str.UnAccent<\"café\">; // \"cafe\"\n```\n\n<a id=\"str-tocamelcase\"></a>\n\n- Convert a string to camelCase\n\n```tsx\nimport type { Str } from \"@dulysse1/ts-helper\";\n\ntype A = Str.ToCamelCase<\"hello world\">; // \"helloWorld\"\n```\n\n<a id=\"str-topascalcase\"></a>\n\n- Convert a string to PascalCase\n\n```tsx\nimport type { Str } from \"@dulysse1/ts-helper\";\n\ntype A = Str.ToPascalCase<\"hello world\">; // \"HelloWorld\"\n```\n\n<a id=\"str-tokebabcase\"></a>\n\n- Convert a string to kebab-case\n\n```tsx\nimport type { Str } from \"@dulysse1/ts-helper\";\n\ntype A = Str.ToKebabCase<\"helloWorld\">; // \"hello-world\"\n```\n\n<a id=\"str-tosnakecase\"></a>\n\n- Convert a string to snake_case\n\n```tsx\nimport type { Str } from \"@dulysse1/ts-helper\";\n\ntype A = Str.ToSnakeCase<\"helloWorld\">; // \"hello_world\"\n```\n\n<a id=\"str-asciimap\"></a>\n\n- Read the ASCII mapping object for a character\n\n```tsx\nimport type { Str } from \"@dulysse1/ts-helper\";\n\ntype A = Str.AsciiMap[\"A\"]; // 65\ntype B = Str.AsciiMap[\"B\"]; // 66\n```\n\n<a id=\"str-asciicode\"></a>\n\n- Get the ASCII code of a character\n\n```tsx\nimport type { Str } from \"@dulysse1/ts-helper\";\n\ntype A = Str.AsciiCode<\"A\">; // 65\n```\n\n<a id=\"str-asciirange\"></a>\n\n- Build an ASCII range between two numeric codes\n\n```tsx\nimport type { Str } from \"@dulysse1/ts-helper\";\n\ntype A = Str.AsciiRange<65, 67>; // [\"A\", \"B\", \"C\"]\n```\n\n<a id=\"str-isuppercase\"></a>\n\n- Check whether a string is uppercase\n\n```tsx\nimport type { Str } from \"@dulysse1/ts-helper\";\n\ntype A = Str.IsUpperCase<\"HELLO\">; // true\n```\n\n<a id=\"str-islowercase\"></a>\n\n- Check whether a string is lowercase\n\n```tsx\nimport type { Str } from \"@dulysse1/ts-helper\";\n\ntype A = Str.IsLowerCase<\"hello\">; // true\n```\n\n<a id=\"str-isdigit\"></a>\n\n- Check whether a string is made of digits\n\n```tsx\nimport type { Str } from \"@dulysse1/ts-helper\";\n\ntype A = Str.IsDigit<\"123\">; // true\n```\n\n<a id=\"str-filter\"></a>\n\n- Filter a string using allowed or excluded character sets\n\n```tsx\nimport type { Str } from \"@dulysse1/ts-helper\";\n\ntype A = Str.Filter<\"a1b2\", { allowedChars: [\"a\", \"b\"] }>; // \"ab\"\ntype B = Str.Filter<\"a1b2\", { excludedChars: [\"0\", \"1\", \"2\"] }>; // \"ab\"\n```\n\n<a id=\"array\"></a>\n\n### 👉 `Array`\n\nAll Array-related utilities grouped with practical examples. Import Arr (and Num when useful) once and reuse in the examples below.\n\n```tsx\nimport type { Arr, Num } from \"@dulysse1/ts-helper\";\n\n// Map examples\ntype M1 = Arr.Map<[1, 2, 3], `2 * ${number}`, \"eval\">; // [2, 4, 6]\ntype M2 = Arr.Map<[1, 2, 3], string>; // [\"1\", \"2\", \"3\"]\ntype M3 = Arr.Map<[1, 2, 3], \"a\">; // [\"a\", \"a\", \"a\"]\n\n// Filter examples\ntype F1 = Arr.Filter<[1, 2, 3, \"4\"], string>; // [\"4\"]\ntype F2 = Arr.Filter<[2, 3, 4, \"5\"], Num.Range<1, 3>[number]>; // [2, 3]\n\n// Fill / FillRange / Length\ntype Filled = Arr.Fill<3, number>; // [number, number, number]\ntype FilledConst = Arr.Fill<3, 0>; // [0, 0, 0]\ntype Range13 = Arr.FillRange<1, 3>; // [1, 2, 3]\ntype L = Arr.Length<[1, 2, 3]>; // 3\n\n// At / First / Last / IndexOf\ntype At1 = Arr.At<[10, 20, 30], 1>; // 20\ntype First1 = Arr.First<[10, 20, 30]>; // 10\ntype Last1 = Arr.Last<[10, 20, 30]>; // 30\ntype Idx = Arr.IndexOf<[1, 2, 3], 2>; // 1\n\n// Concat / Flat / Zip / Unique\ntype Concat = Arr.Concat<[1], [2]>; // [1, 2]\ntype Flat = Arr.Flat<[[1], [2]]>; // [1, 2]\ntype Z = Arr.Zip<[1, 2], [\"a\", \"b\"]>; // [[1, 'a'], [2, 'b']]\ntype U = Arr.Unique<[1, 1, 2]>; // [1, 2]\n\n// Some / Includes / ToUnion / Map to strings\ntype SomeTrue = Arr.Some<[true, false]>; // true\ntype Inc = Arr.Includes<[1, 2], 2>; // true\ntype ToU = Arr.ToUnion<[1, 2, 3]>; // 1 | 2 | 3\ntype MapStr = Arr.Map<[1, 2, 3], string>; // ['1','2','3']\n\n// Tuple / Readable / IsReadonly / Reverse\ntype IsT = Arr.IsTuple<[1, 2]>; // true\ntype Read = Arr.Readable<[1, 2]>; // readonly [1, 2]\ntype IsRO = Arr.IsReadonly<readonly [1, 2]>; // true\ntype Rev = Arr.Reverse<[1, 2, 3]>; // [3, 2, 1]\n```\n\nNotes:\n\n- Use Num utilities (Range, etc.) when you need numeric helpers inside array transforms (shown above).\n- These examples are type-level and intended to be used with `import type` in your TypeScript code.\n\n<a id=\"arr-istuple\"></a>\n\n- Check whether a type is a tuple\n\n```tsx\nimport type { Arr } from \"@dulysse1/ts-helper\";\n\ntype A = Arr.IsTuple<[1, 2, 3]>; // true\ntype B = Arr.IsTuple<number[]>; // false\n```\n\n<a id=\"arr-reverse\"></a>\n\n- Reverse the order of a tuple\n\n```tsx\nimport type { Arr } from \"@dulysse1/ts-helper\";\n\ntype A = Arr.Reverse<[1, 2, 3]>; // [3, 2, 1]\n```\n\n<a id=\"arr-readable\"></a>\n\n- Mark an array as readonly\n\n```tsx\nimport type { Arr } from \"@dulysse1/ts-helper\";\n\ntype A = Arr.Readable<[1, 2, 3]>; // readonly [1, 2, 3]\n```\n\n<a id=\"arr-length\"></a>\n\n- Read the length of a tuple\n\n```tsx\nimport type { Arr } from \"@dulysse1/ts-helper\";\n\ntype A = Arr.Length<[\"a\", \"b\", \"c\"]>; // 3\n```\n\n<a id=\"arr-at\"></a>\n\n- Access an item by index\n\n```tsx\nimport type { Arr } from \"@dulysse1/ts-helper\";\n\ntype A = Arr.At<[10, 20, 30], 1>; // 20\n```\n\n<a id=\"arr-tounion\"></a>\n\n- Convert a tuple into a union\n\n```tsx\nimport type { Arr } from \"@dulysse1/ts-helper\";\n\ntype A = Arr.ToUnion<[1, 2, 3]>; // 1 | 2 | 3\n```\n\n<a id=\"arr-isreadonly\"></a>\n\n- Check if an array is readonly\n\n```tsx\nimport type { Arr } from \"@dulysse1/ts-helper\";\n\ntype A = Arr.IsReadonly<readonly [1, 2]>; // true\n```\n\n<a id=\"arr-includes\"></a>\n\n- Check if a tuple includes a value\n\n```tsx\nimport type { Arr } from \"@dulysse1/ts-helper\";\n\ntype A = Arr.Includes<[1, 2, 3], 2>; // true\n```\n\n<a id=\"arr-join\"></a>\n\n- Join tuple items into a string\n\n```tsx\nimport type { Arr } from \"@dulysse1/ts-helper\";\n\ntype A = Arr.Join<[\"a\", \"b\", \"c\"], \", \">; // \"a, b, c\"\n```\n\n<a id=\"arr-first\"></a>\n\n- Get the first item of a tuple\n\n```tsx\nimport type { Arr } from \"@dulysse1/ts-helper\";\n\ntype A = Arr.First<[10, 20, 30]>; // 10\n```\n\n<a id=\"arr-last\"></a>\n\n- Get the last item of a tuple\n\n```tsx\nimport type { Arr } from \"@dulysse1/ts-helper\";\n\ntype A = Arr.Last<[10, 20, 30]>; // 30\n```\n\n<a id=\"arr-count\"></a>\n\n- Count the number of items in a tuple\n\n```tsx\nimport type { Arr } from \"@dulysse1/ts-helper\";\n\ntype A = Arr.Count<[1, 2, 3]>; // 3\n```\n\n<a id=\"arr-concat\"></a>\n\n- Concatenate two tuples\n\n```tsx\nimport type { Arr } from \"@dulysse1/ts-helper\";\n\ntype A = Arr.Concat<[1, 2], [3, 4]>; // [1, 2, 3, 4]\n```\n\n<a id=\"arr-flat\"></a>\n\n- Flatten a nested tuple array\n\n```tsx\nimport type { Arr } from \"@dulysse1/ts-helper\";\n\ntype A = Arr.Flat<[[1], [2, 3]]>; // [1, 2, 3]\n```\n\n<a id=\"arr-fill\"></a>\n\n- Fill a tuple with a value\n\n```tsx\nimport type { Arr } from \"@dulysse1/ts-helper\";\n\ntype A = Arr.Fill<3, number>; // [number, number, number]\n```\n\n<a id=\"arr-fillrange\"></a>\n\n- Fill a range of values\n\n```tsx\nimport type { Arr } from \"@dulysse1/ts-helper\";\n\ntype A = Arr.FillRange<1, 3>; // [1, 2, 3]\n```\n\n<a id=\"arr-filter\"></a>\n\n- Filter values of a tuple by a predicate\n\n```tsx\nimport type { Arr, Num } from \"@dulysse1/ts-helper\";\n\ntype A = Arr.Filter<[1, 2, 3, \"4\"], string>; // [\"4\"]\ntype B = Arr.Filter<[2, 3, 4, \"5\"], Num.Range<1, 3>[number]>; // [2, 3]\n```\n\n<a id=\"arr-zip\"></a>\n\n- Zip two tuples into pairs\n\n```tsx\nimport type { Arr } from \"@dulysse1/ts-helper\";\n\ntype A = Arr.Zip<[1, 2], [\"a\", \"b\"]>; // [[1, \"a\"], [2, \"b\"]]\n```\n\n<a id=\"arr-unique\"></a>\n\n- Remove duplicate values from a tuple\n\n```tsx\nimport type { Arr } from \"@dulysse1/ts-helper\";\n\ntype A = Arr.Unique<[1, 1, 2, 2, 3]>; // [1, 2, 3]\n```\n\n<a id=\"arr-map\"></a>\n\n- Map each value of a tuple to another type\n\n```tsx\nimport type { Arr } from \"@dulysse1/ts-helper\";\n\ntype A = Arr.Map<[1, 2, 3], string>; // [\"1\", \"2\", \"3\"]\n```\n\n<a id=\"arr-infer\"></a>\n\n- Infer a tuple based on a complex pattern\n\n```tsx\nimport type { Arr } from \"@dulysse1/ts-helper\";\n\ntype A = Arr.Infer<[1, 2, 3], number>; // [number, number, number]\n```\n\n<a id=\"arr-some\"></a>\n\n- Check whether at least one item matches a condition\n\n```tsx\nimport type { Arr } from \"@dulysse1/ts-helper\";\n\ntype A = Arr.Some<[false, true, false]>; // true\n```\n\n<a id=\"arr-indexof\"></a>\n\n- Find the index of a value inside a tuple\n\n```tsx\nimport type { Arr } from \"@dulysse1/ts-helper\";\n\ntype A = Arr.IndexOf<[1, 2, 3], 2>; // 1\n```\n\n<a id=\"any\"></a>\n\n### 👉 `Any`\n\n- Use a strict any type : The only valid way to use `any` as type. it's provide you to override the default eslint `@typescript-eslint/no-explicit-any` rule. But be careful ! Don't use this type in your code for bad reasons.\n\n```tsx\ndeclare type IAnyFunction = (...args: Any.Implicit[]) => Any.Implicit; // \"right way !\"\n\nconst name: Any.Implicit = {}; // \"wrong way !\"\n```\n\n<a id=\"any-isany\"></a>\n\n- Check whether a type is exactly `any`\n\n```tsx\nimport type { Any } from \"@dulysse1/ts-helper\";\n\ntype A = Any.IsAny<any>; // true\ntype B = Any.IsAny<string>; // false\n```\n\n<a id=\"any-isliteral\"></a>\n\n- Check whether a type is a literal value rather than a broader primitive\n\n```tsx\nimport type { Any } from \"@dulysse1/ts-helper\";\n\ntype A = Any.IsLiteral<\"hello\">; // true\ntype B = Any.IsLiteral<string>; // false\n```\n\n<a id=\"any-primitiveof\"></a>\n\n- Extract the primitive equivalent of a type\n\n```tsx\nimport type { Any } from \"@dulysse1/ts-helper\";\n\ntype A = Any.PrimitiveOf<string>; // string\n```\n\n<a id=\"any-isprimitive\"></a>\n\n- Check whether a type is a primitive value\n\n```tsx\nimport type { Any } from \"@dulysse1/ts-helper\";\n\ntype A = Any.IsPrimitive<string>; // true\ntype B = Any.IsPrimitive<{ a: string }>; // false\n```\n\n<a id=\"union\"></a>\n\n### 👉 `Union`\n\n- Make a union of object types discriminable and safe with `Union.OneOf`\n\n```tsx\nimport type { Union } from \"@dulysse1/ts-helper\";\n\ntype UserMessage =\n\t| { type: \"text\"; text: string }\n\t| { type: \"image\"; src: string };\n\ntype SafeMessage = Union.OneOf<\n\t[{ type: \"text\"; text: string }, { type: \"image\"; src: string }]\n>;\n\nconst ok: SafeMessage = { type: \"text\", text: \"hello\" };\n// const bad: SafeMessage = { type: \"text\", text: \"hello\", src: \"x\" }; // Error\n```\n\n- Check if a value type is included in a union\n\n```tsx\nimport type { Union } from \"@dulysse1/ts-helper\";\n\ntype A = Union.Has<\"a\" | \"b\" | \"c\", \"b\">; // true\n\ntype B = Union.Has<\"a\" | \"b\" | \"c\", \"d\">; // false\n```\n\n- Access a union member by index and get the last member\n\n```tsx\nimport type { Union } from \"@dulysse1/ts-helper\";\n\ntype A = Union.Through<1 | 2 | 3, 1>; // 2\n\ntype B = Union.Last<1 | 2 | 3>; // 3\n```\n\n<a id=\"union-last\"></a>\n\n- Get the last member of a union\n\n```tsx\nimport type { Union } from \"@dulysse1/ts-helper\";\n\ntype A = Union.Last<\"a\" | \"b\" | \"c\">; // \"c\"\n```\n\n<a id=\"union-exclude\"></a>\n\n- Exclude members from a union\n\n```tsx\nimport type { Union } from \"@dulysse1/ts-helper\";\n\ntype A = Union.Exclude<\"a\" | \"b\" | \"c\", \"b\">; // \"a\" | \"c\"\n```\n\n<a id=\"union-toarray\"></a>\n\n- Convert a union to a tuple-like array\n\n```tsx\nimport type { Union } from \"@dulysse1/ts-helper\";\n\ntype A = Union.ToArray<\"a\" | \"b\">; // [\"a\", \"b\"]\n```\n\n<a id=\"union-count\"></a>\n\n- Count the members of a union\n\n```tsx\nimport type { Union } from \"@dulysse1/ts-helper\";\n\ntype A = Union.Count<\"a\" | \"b\" | \"c\">; // 3\n```\n\n<a id=\"union-first\"></a>\n\n- Get the first member of a union\n\n```tsx\nimport type { Union } from \"@dulysse1/ts-helper\";\n\ntype A = Union.First<\"a\" | \"b\" | \"c\">; // \"a\"\n```\n\n<a id=\"union-isunion\"></a>\n\n- Check whether a type is a union\n\n```tsx\nimport type { Union } from \"@dulysse1/ts-helper\";\n\ntype A = Union.IsUnion<\"a\" | \"b\">; // true\ntype B = Union.IsUnion<string>; // false\n```\n\n<a id=\"union-through\"></a>\n\n- Read a union member at a given offset\n\n```tsx\nimport type { Union } from \"@dulysse1/ts-helper\";\n\ntype A = Union.Through<1 | 2 | 3, 1>; // 2\n```\n\n<a id=\"union-has\"></a>\n\n- Check whether a union contains a value\n\n```tsx\nimport type { Union } from \"@dulysse1/ts-helper\";\n\ntype A = Union.Has<\"a\" | \"b\" | \"c\", \"b\">; // true\n```\n\n<a id=\"union-oneof\"></a>\n\n- Enforce a discriminated union of object literals\n\n```tsx\nimport type { Union } from \"@dulysse1/ts-helper\";\n\ntype A = Union.OneOf<\n\t[{ type: \"text\"; text: string }, { type: \"image\"; src: string }]\n>;\n```\n\n<a id=\"operator\"></a>\n\n### 👉 `Operator`\n\n- Compose boolean logic in type-space with `Op.If`, `Op.And`, `Op.Or`, and `Op.IsEqual`\n\n```tsx\nimport type { Op } from \"@dulysse1/ts-helper\";\n\ntype A = Op.If<true, \"yes\", \"no\">; // \"yes\"\ntype B = Op.And<true, false>; // false\ntype C = Op.Or<true, false>; // true\ntype D = Op.IsEqual<\"a\", \"a\">; // true\n```\n\n- Use chained conditions to build type-safe guards\n\n```tsx\nimport type { Op } from \"@dulysse1/ts-helper\";\n\ntype Result<T extends boolean> = Op.If<T, \"allowed\", \"blocked\">;\n\ntype Ok = Result<Op.AndAll<[true, true, true]>>; // \"allowed\"\n```\n\n<a id=\"op-equal\"></a>\n\n- Check whether two values are structurally equal\n\n```tsx\nimport type { Op } from \"@dulysse1/ts-helper\";\n\ntype A = Op.Equal<1, 1>; // true\n```\n\n<a id=\"op-and\"></a>\n\n- Combine two boolean types with logical AND\n\n```tsx\nimport type { Op } from \"@dulysse1/ts-helper\";\n\ntype A = Op.And<true, false>; // false\n```\n\n<a id=\"op-or\"></a>\n\n- Combine two boolean types with logical OR\n\n```tsx\nimport type { Op } from \"@dulysse1/ts-helper\";\n\ntype A = Op.Or<true, false>; // true\n```\n\n<a id=\"op-satisfy\"></a>\n\n- Satisfy a type constraint with a conditional type\n\n```tsx\nimport type { Op } from \"@dulysse1/ts-helper\";\n\ntype A = Op.Satisfy<1, number>; // 1\n```\n\n<a id=\"op-not\"></a>\n\n- Negate a boolean type\n\n```tsx\nimport type { Op } from \"@dulysse1/ts-helper\";\n\ntype A = Op.Not<true>; // false\n```\n\n<a id=\"op-xor\"></a>\n\n- Exclusive-or between boolean types\n\n```tsx\nimport type { Op } from \"@dulysse1/ts-helper\";\n\ntype A = Op.Xor<true, false>; // true\n```\n\n<a id=\"op-andall\"></a>\n\n- Check whether all values in a tuple are true\n\n```tsx\nimport type { Op } from \"@dulysse1/ts-helper\";\n\ntype A = Op.AndAll<[true, true, true]>; // true\n```\n\n<a id=\"op-orall\"></a>\n\n- Check whether at least one value in a tuple is true\n\n```tsx\nimport type { Op } from \"@dulysse1/ts-helper\";\n\ntype A = Op.OrAll<[false, false, true]>; // true\n```\n\n<a id=\"op-if\"></a>\n\n- Conditionnally select a type based on a boolean\n\n```tsx\nimport type { Op } from \"@dulysse1/ts-helper\";\n\ntype A = Op.If<true, \"yes\", \"no\">; // \"yes\"\n```\n\n<a id=\"op-fallback\"></a>\n\n- Return a fallback when a type is unknown or invalid\n\n```tsx\nimport type { Op } from \"@dulysse1/ts-helper\";\n\ntype A = Op.Fallback<undefined, string>; // string\n```\n\n<a id=\"op-isequal\"></a>\n\n- Check exact equality between two types\n\n```tsx\nimport type { Op } from \"@dulysse1/ts-helper\";\n\ntype A = Op.IsEqual<\"a\", \"a\">; // true\n```\n\n<a id=\"op-isassignable\"></a>\n\n- Check whether one type is assignable to another\n\n```tsx\nimport type { Op } from \"@dulysse1/ts-helper\";\n\ntype A = Op.IsAssignable<string, any>; // true\n```\n\n<a id=\"brand\"></a>\n\n### 👉 `Brand`\n\n- Create nominal types with `Brd.Branded` to avoid accidental mixing of primitive values\n\n```tsx\nimport type { Brd } from \"@dulysse1/ts-helper\";\n\ntype UserId = Brd.Branded<string, \"userId\">;\ntype Email = Brd.Branded<string, \"email\">;\n\ntype IsUserId = Brd.IsBranded<UserId, \"userId\">; // true\ntype NotEmail = Brd.IsBranded<string, \"userId\">; // false\n```\n\n<a id=\"brd-symbol\"></a>\n\n- Use the hidden brand symbol as the nominal marker\n\n```tsx\nimport type { Brd } from \"@dulysse1/ts-helper\";\n\ntype A = Brd.Symbol; // unique symbol\n```\n\n<a id=\"brd-isbranded\"></a>\n\n- Check whether a type is branded with a given tag\n\n```tsx\nimport type { Brd } from \"@dulysse1/ts-helper\";\n\ntype A = Brd.IsBranded<Brd.Branded<string, \"userId\">, \"userId\">; // true\n```\n\n<a id=\"brd-branded\"></a>\n\n- Apply a brand tag to a primitive type\n\n```tsx\nimport type { Brd } from \"@dulysse1/ts-helper\";\n\ntype UserId = Brd.Branded<string, \"userId\">;\n```\n\n<a id=\"class\"></a>\n\n<a id=\"class-constructor\"></a>\n\n### 👉 `Class`\n\n- Model constructor signatures with `Class.Constructor`\n\n```tsx\nimport type { Class } from \"@dulysse1/ts-helper\";\n\ntype UserCtor = Class.Constructor<\n\t[string, number],\n\t{ name: string; age: number }\n>;\ntype UserInstance = InstanceType<UserCtor>; // { name: string; age: number }\n```\n\n<a id=\"lab\"></a>\n\n<a id=\"lab-tictactoe\"></a>\n\n<a id=\"lab-connect4\"></a>\n\n### `Lab`\n\n- Explore experimental type-level games and logic examples\n\n```tsx\nimport type { Lab } from \"@dulysse1/ts-helper\";\n\ntype Game = Lab.TicTacToe<[[0, 0, 0], [0, 0, 0], [0, 0, 0]]>;\n\ntype AnotherGame = Lab.Connect4<\n\t[\n\t\t[0, 0, 0, 0, 0, 0, 0],\n\t\t[0, 0, 0, 0, 0, 0, 0],\n\t\t[0, 0, 0, 0, 0, 0, 0],\n\t\t[0, 0, 0, 0, 0, 0, 0],\n\t\t[0, 0, 0, 0, 0, 0, 0],\n\t]\n>;\n```\n\n### And many more besides! 😲\n\n- New feature since version `1.2.3`! There is now a `lab` with experimental types to show the power of `@dulysse1/ts-helper`!\n\n![https://raw.githubusercontent.com/Dulysse/ts-helper/refs/heads/main/assets/tictactoe.png](https://raw.githubusercontent.com/Dulysse/ts-helper/refs/heads/main/assets/tictactoe.png)\n\n![https://raw.githubusercontent.com/Dulysse/ts-helper/refs/heads/main/assets/connect4.png](https://raw.githubusercontent.com/Dulysse/ts-helper/refs/heads/main/assets/connect4.png)\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"}