{"_id":"@voxpelli/typed-utils","_rev":"38-fe56285fb93dc813f647288409f661b1","name":"@voxpelli/typed-utils","dist-tags":{"latest":"5.0.0"},"versions":{"1.0.0":{"name":"@voxpelli/typed-utils","version":"1.0.0","keywords":[],"author":{"url":"http://kodfabrik.se/","name":"Pelle Wessman","email":"pelle@kodfabrik.se"},"license":"MIT","_id":"@voxpelli/typed-utils@1.0.0","maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"homepage":"http://github.com/voxpelli/typed-utils","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"dist":{"shasum":"661b3b305db034de915d8d5fdaef2963bb4e32dd","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-1.0.0.tgz","fileCount":8,"integrity":"sha512-kdGB0j/6MTWTrTTgwWKRNIy1zAtTYaqZ5kNJ4PoDRl4iJ6K1maFXCfzfIpLIQBLpo1rrBTHTSL2ohK8A0L+aFg==","signatures":[{"sig":"MEUCIHKzfRn3UDEIcf4GwPud65mC4w30nn4r07njO4K+m5AfAiEAwxE8P0FjdT2jgl2vqIxK1uXFhrc3akTtva0VZ8EqPnA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6326},"type":"module","types":"index.d.ts","engines":{"node":">=18.0.0"},"exports":"./index.js","gitHead":"d645ba3a55d555a7874164776b6256c83c9520e5","scripts":{"test":"run-s check test:*","build":"run-s build:*","check":"run-s clean && run-p check:*","clean":"run-p clean:*","build:0":"run-s clean","prepare":"husky install","test-ci":"run-s test:*","check:tsc":"tsc","check:knip":"knip","check:lint":"eslint --report-unused-disable-directives .","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","prepublishOnly":"run-s build","build:1-declaration":"tsc -p declaration.tsconfig.json","check:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*'","check:installed-check":"installed-check -i eslint-plugin-jsdoc -i knip -i installed-check","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')"},"_npmUser":{"name":"voxpelli","email":"pelle@kodfabrik.se"},"repository":{"url":"git://github.com/voxpelli/typed-utils.git","type":"git"},"_npmVersion":"10.2.5","description":"My personal (type-enabled) utils / helpers","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^8.0.1","chai":"^4.3.7","knip":"^3.6.1","husky":"^8.0.3","mocha":"^10.2.0","eslint":"^8.47.0","typescript":"~5.3.3","@types/chai":"^4.3.5","@types/node":"^18.19.3","@types/mocha":"^10.0.1","npm-run-all2":"^6.0.6","type-coverage":"^2.26.0","eslint-plugin-n":"^16.0.2","installed-check":"^8.0.0","@voxpelli/tsconfig":"^10.0.0","eslint-plugin-es-x":"^7.2.0","eslint-plugin-jsdoc":"^46.5.0","eslint-plugin-mocha":"^10.1.0","eslint-plugin-import":"^2.28.1","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^48.0.1","eslint-plugin-security":"^1.7.1","@voxpelli/eslint-config":"^19.0.0","eslint-plugin-sort-destructure-keys":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/typed-utils_1.0.0_1702061820652_0.3979293093093219","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@voxpelli/typed-utils","version":"1.1.0","keywords":[],"author":{"url":"http://kodfabrik.se/","name":"Pelle Wessman","email":"pelle@kodfabrik.se"},"license":"MIT","_id":"@voxpelli/typed-utils@1.1.0","maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"homepage":"http://github.com/voxpelli/typed-utils","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"dist":{"shasum":"b3f91686e3b003bef59322847179a6bd3131804d","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-1.1.0.tgz","fileCount":8,"integrity":"sha512-p9wqtBXzGXVHshKlkKn6NTa3xys10D8UQNGv/lu4kS+A1oFtzKIhUmfp8KEQ+OUAlWBB+YrZDriV9mcyQ0QZFQ==","signatures":[{"sig":"MEUCIQDUbHbwaQ6gQeBbtREkMDjU++QQT0BmxNWbQ4Io/S+6ogIgCqGGsCa5DT4pGYqpBq/jU4HaXuUOqef++zZptBAWrxQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7355},"type":"module","types":"index.d.ts","engines":{"node":">=18.0.0"},"exports":"./index.js","gitHead":"5fee954c679e911049b74d89fa0c9a92d4caa4d1","scripts":{"test":"run-s check test:*","build":"run-s build:*","check":"run-s clean && run-p check:*","clean":"run-p clean:*","build:0":"run-s clean","prepare":"husky install","test-ci":"run-s test:*","check:tsc":"tsc","check:knip":"knip","check:lint":"eslint --report-unused-disable-directives .","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","prepublishOnly":"run-s build","build:1-declaration":"tsc -p declaration.tsconfig.json","check:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*'","check:installed-check":"installed-check -i eslint-plugin-jsdoc -i knip -i installed-check","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')"},"_npmUser":{"name":"voxpelli","email":"pelle@kodfabrik.se"},"repository":{"url":"git://github.com/voxpelli/typed-utils.git","type":"git"},"_npmVersion":"10.2.5","description":"My personal (type-enabled) utils / helpers","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^8.0.1","chai":"^4.3.7","knip":"^3.6.1","husky":"^8.0.3","mocha":"^10.2.0","eslint":"^8.47.0","typescript":"~5.3.3","@types/chai":"^4.3.5","@types/node":"^18.19.3","@types/mocha":"^10.0.1","npm-run-all2":"^6.0.6","type-coverage":"^2.26.0","eslint-plugin-n":"^16.0.2","installed-check":"^8.0.0","@voxpelli/tsconfig":"^10.0.0","eslint-plugin-es-x":"^7.2.0","eslint-plugin-jsdoc":"^46.5.0","eslint-plugin-mocha":"^10.1.0","eslint-plugin-import":"^2.28.1","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^48.0.1","eslint-plugin-security":"^1.7.1","@voxpelli/eslint-config":"^19.0.0","eslint-plugin-sort-destructure-keys":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/typed-utils_1.1.0_1702063918871_0.2216270861570464","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"@voxpelli/typed-utils","version":"1.2.0","keywords":[],"author":{"url":"http://kodfabrik.se/","name":"Pelle Wessman","email":"pelle@kodfabrik.se"},"license":"MIT","_id":"@voxpelli/typed-utils@1.2.0","maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"homepage":"http://github.com/voxpelli/typed-utils","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"dist":{"shasum":"1a14dbe13f1a97d8ba58efd041514b8817df0d1d","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-1.2.0.tgz","fileCount":8,"integrity":"sha512-MTBb8iOvtoXbdrAI/q072MsfPNTnHhkgNzBHk6icImtDceB7sSakOlkrx5gDn9WVnDoN2xKd7XGAOWfwOs8PSw==","signatures":[{"sig":"MEYCIQCe10XDCAA/L4UBOVosizvzSty62R5D63FTCd0A//CkBwIhAMybOj5HBjJOx0PLVkvoLPvA6+4EBWlNlIexgKnDz4oR","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8175},"type":"module","types":"index.d.ts","engines":{"node":">=18.0.0"},"exports":"./index.js","gitHead":"50299bc1e36084876ad8bd28cdc514e8334cdb03","scripts":{"test":"run-s check test:*","build":"run-s build:*","check":"run-s clean && run-p check:*","clean":"run-p clean:*","build:0":"run-s clean","prepare":"husky install","test-ci":"run-s test:*","check:tsc":"tsc","check:knip":"knip","check:lint":"eslint --report-unused-disable-directives .","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","prepublishOnly":"run-s build","build:1-declaration":"tsc -p declaration.tsconfig.json","check:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*'","check:installed-check":"installed-check -i eslint-plugin-jsdoc -i knip -i installed-check","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')"},"_npmUser":{"name":"voxpelli","email":"pelle@kodfabrik.se"},"repository":{"url":"git://github.com/voxpelli/typed-utils.git","type":"git"},"_npmVersion":"10.2.5","description":"My personal (type-enabled) utils / helpers","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^8.0.1","chai":"^4.3.7","knip":"^3.6.1","husky":"^8.0.3","mocha":"^10.2.0","eslint":"^8.47.0","typescript":"~5.3.3","@types/chai":"^4.3.5","@types/node":"^18.19.3","@types/mocha":"^10.0.1","npm-run-all2":"^6.0.6","type-coverage":"^2.26.0","eslint-plugin-n":"^16.0.2","installed-check":"^8.0.0","@voxpelli/tsconfig":"^10.0.0","eslint-plugin-es-x":"^7.2.0","eslint-plugin-jsdoc":"^46.5.0","eslint-plugin-mocha":"^10.1.0","eslint-plugin-import":"^2.28.1","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^48.0.1","eslint-plugin-security":"^1.7.1","@voxpelli/eslint-config":"^19.0.0","eslint-plugin-sort-destructure-keys":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/typed-utils_1.2.0_1702210867980_0.3441608867464814","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"@voxpelli/typed-utils","version":"1.3.0","keywords":[],"author":{"url":"http://kodfabrik.se/","name":"Pelle Wessman","email":"pelle@kodfabrik.se"},"license":"MIT","_id":"@voxpelli/typed-utils@1.3.0","maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"homepage":"http://github.com/voxpelli/typed-utils","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"dist":{"shasum":"f755a6aea626854e0a802b9b53d81d9a869b93dd","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-1.3.0.tgz","fileCount":8,"integrity":"sha512-h6rczoHltnskZw2pE+pYy5UQE5oIOZbOJd8Qy4lXvpclgHNNVI7+MSADNa3jJ/SH01fKJtquAyy20sAs2obW+g==","signatures":[{"sig":"MEQCICAijs/qwN5K2nSxy3G1PH15Iz8oIemC43MIwJhY8pMbAiAkrzOS7BPHEjwcpg34Bz4yVF7DRk0+TACw8felaLlb0A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8744},"type":"module","types":"index.d.ts","engines":{"node":">=18.0.0"},"exports":"./index.js","gitHead":"aa2baf047fe00b7892ee5edd932fb5b506f11a8d","scripts":{"test":"run-s check test:*","build":"run-s build:*","check":"run-s clean && run-p check:*","clean":"run-p clean:*","build:0":"run-s clean","prepare":"husky install","test-ci":"run-s test:*","check:tsc":"tsc","check:knip":"knip","check:lint":"eslint --report-unused-disable-directives .","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","prepublishOnly":"run-s build","build:1-declaration":"tsc -p declaration.tsconfig.json","check:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*'","check:installed-check":"installed-check -i eslint-plugin-jsdoc -i knip -i installed-check","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')"},"_npmUser":{"name":"voxpelli","email":"pelle@kodfabrik.se"},"repository":{"url":"git://github.com/voxpelli/typed-utils.git","type":"git"},"_npmVersion":"10.2.5","description":"My personal (type-enabled) utils / helpers","directories":{},"_nodeVersion":"20.9.0","dependencies":{"@voxpelli/type-helpers":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^8.0.1","chai":"^4.3.7","knip":"^3.8.2","husky":"^8.0.3","mocha":"^10.2.0","eslint":"^8.56.0","typescript":"~5.3.3","@types/chai":"^4.3.5","@types/node":"^18.19.3","@types/mocha":"^10.0.1","npm-run-all2":"^6.0.6","type-coverage":"^2.26.0","eslint-plugin-n":"^16.4.0","installed-check":"^8.0.0","@voxpelli/tsconfig":"^10.0.0","eslint-plugin-es-x":"^7.5.0","eslint-plugin-jsdoc":"^46.9.1","eslint-plugin-mocha":"^10.2.0","eslint-plugin-import":"^2.29.1","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^48.0.1","eslint-plugin-security":"^1.7.1","@voxpelli/eslint-config":"^19.0.0","eslint-plugin-sort-destructure-keys":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/typed-utils_1.3.0_1702919101837_0.6134757933837649","host":"s3://npm-registry-packages"}},"1.4.0":{"name":"@voxpelli/typed-utils","version":"1.4.0","keywords":[],"author":{"url":"http://kodfabrik.se/","name":"Pelle Wessman","email":"pelle@kodfabrik.se"},"license":"MIT","_id":"@voxpelli/typed-utils@1.4.0","maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"homepage":"http://github.com/voxpelli/typed-utils","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"dist":{"shasum":"54322d92cda1dfa4582beed487acafcc2f9038d1","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-1.4.0.tgz","fileCount":14,"integrity":"sha512-oP00IP/2VJ/KLXhA/mBwb/BXII8b7ZW9w5BWa6EETXs2RXh0AWoMpm2vPm40D4/NaMJnB4Q6UUod1h92p0W2mQ==","signatures":[{"sig":"MEUCIQCMKI4ueHiS8pZUVrx5N5zAL0ga451VkGSyN1OlnPmIlAIgVZG3eIxYbgk4t4ZdQzYp/4XjmUk16K11Vnk2Em90eYs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@voxpelli%2ftyped-utils@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10509},"type":"module","types":"index.d.ts","engines":{"node":">=18.0.0"},"exports":"./index.js","gitHead":"f5f0994add890a137c4a5fa3bdf8599d0b4e0999","scripts":{"test":"run-s check test:*","build":"run-s build:*","check":"run-s check:*","clean":"run-p clean:*","build:0":"run-s clean","check:0":"run-s clean","check:1":"run-p check:1:*","check:2":"run-s build","check:3":"tsd","prepare":"husky","test-ci":"run-s test:*","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","check:1:tsc":"tsc","check:1:knip":"knip","check:1:lint":"eslint --report-unused-disable-directives .","prepublishOnly":"run-s build","build:1-declaration":"tsc -p declaration.tsconfig.json","check:1:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*'","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')","check:1:installed-check":"installed-check -i eslint-plugin-jsdoc -i knip -i linemod"},"_npmUser":{"name":"voxpelli","email":"pelle@kodfabrik.se"},"repository":{"url":"git://github.com/voxpelli/typed-utils.git","type":"git"},"_npmVersion":"10.5.0","description":"My personal (type-enabled) utils / helpers","directories":{},"_nodeVersion":"20.11.1","dependencies":{"@voxpelli/type-helpers":"^3.2.1"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^9.1.0","tsd":"^0.30.7","chai":"^4.4.1","knip":"^5.0.3","husky":"^9.0.11","mocha":"^10.3.0","eslint":"^8.57.0","typescript":"~5.4.2","@types/chai":"^4.3.12","@types/node":"^18.19.22","@types/mocha":"^10.0.1","npm-run-all2":"^6.1.2","type-coverage":"^2.27.1","eslint-plugin-n":"^16.6.2","installed-check":"^8.0.0","@voxpelli/tsconfig":"^11.0.0","eslint-plugin-es-x":"^7.5.0","eslint-plugin-jsdoc":"^46.10.1","eslint-plugin-mocha":"^10.4.1","eslint-plugin-import":"^2.29.1","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^48.0.1","eslint-plugin-security":"^1.7.1","@voxpelli/eslint-config":"^19.0.0","validate-conventional-commit":"^1.0.3","eslint-plugin-sort-destructure-keys":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/typed-utils_1.4.0_1710104480902_0.7365391114161699","host":"s3://npm-registry-packages"}},"1.4.1":{"name":"@voxpelli/typed-utils","version":"1.4.1","keywords":[],"author":{"url":"http://kodfabrik.se/","name":"Pelle Wessman","email":"pelle@kodfabrik.se"},"license":"MIT","_id":"@voxpelli/typed-utils@1.4.1","maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"homepage":"http://github.com/voxpelli/typed-utils","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"dist":{"shasum":"8b087a0416194d1fa6eb5cb7b05cea40ce9440e8","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-1.4.1.tgz","fileCount":14,"integrity":"sha512-5kqRStMCKD5lljkzM0Bqo0zpkYUszu1pPhiasb3d46O2A5tr1XyAprunFJelGNQfZArDPwVIG+P1dIqdYTKVPA==","signatures":[{"sig":"MEUCIC3iKpH3U0ae2qlDYdhdEBEY0Tf9rNJ3r3HKfKAaoLjWAiEAuArrFVLCu0/qke5ucK0q2v+jtR3isPApMXb49sHSsOA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@voxpelli%2ftyped-utils@1.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10567},"type":"module","types":"index.d.ts","engines":{"node":">=18.0.0"},"exports":"./index.js","gitHead":"a77233ebd064e473eae6f01ea5c2f33826968f5c","scripts":{"test":"run-s check test:*","build":"run-s build:*","check":"run-s check:*","clean":"run-p clean:*","build:0":"run-s clean","check:0":"run-s clean","check:1":"run-p check:1:*","check:2":"run-s build","check:3":"tsd","prepare":"husky","test-ci":"run-s test:*","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","check:1:tsc":"tsc","check:1:knip":"knip","check:1:lint":"eslint --report-unused-disable-directives .","prepublishOnly":"run-s build","build:1-declaration":"tsc -p declaration.tsconfig.json","check:1:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*'","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')","check:1:installed-check":"installed-check -i eslint-plugin-jsdoc -i knip -i linemod"},"_npmUser":{"name":"voxpelli","email":"pelle@kodfabrik.se"},"repository":{"url":"git://github.com/voxpelli/typed-utils.git","type":"git"},"_npmVersion":"10.5.0","description":"My personal (type-enabled) utils / helpers","directories":{},"_nodeVersion":"20.11.1","dependencies":{"@voxpelli/type-helpers":"^3.2.1"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^9.1.0","tsd":"^0.30.7","chai":"^4.4.1","knip":"^5.0.3","husky":"^9.0.11","mocha":"^10.3.0","eslint":"^8.57.0","typescript":"~5.4.2","@types/chai":"^4.3.12","@types/node":"^18.19.22","@types/mocha":"^10.0.1","npm-run-all2":"^6.1.2","type-coverage":"^2.27.1","eslint-plugin-n":"^16.6.2","installed-check":"^8.0.0","@voxpelli/tsconfig":"^11.0.0","eslint-plugin-es-x":"^7.5.0","eslint-plugin-jsdoc":"^46.10.1","eslint-plugin-mocha":"^10.4.1","eslint-plugin-import":"^2.29.1","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^48.0.1","eslint-plugin-security":"^1.7.1","@voxpelli/eslint-config":"^19.0.0","validate-conventional-commit":"^1.0.3","eslint-plugin-sort-destructure-keys":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/typed-utils_1.4.1_1710104975958_0.6338612080578137","host":"s3://npm-registry-packages"}},"1.5.0":{"name":"@voxpelli/typed-utils","version":"1.5.0","keywords":[],"author":{"url":"http://kodfabrik.se/","name":"Pelle Wessman","email":"pelle@kodfabrik.se"},"license":"MIT","_id":"@voxpelli/typed-utils@1.5.0","maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"homepage":"http://github.com/voxpelli/typed-utils","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"dist":{"shasum":"5caeb554b94dc2b32bf35446e92634d5bd0de602","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-1.5.0.tgz","fileCount":17,"integrity":"sha512-s/Q+W249y8PBbYIzlpA6YMJ6K0FFr5sxETWBCnYEzdugdy4GOBbb5SsrxrMCd1NgaTKsX/slNJNk4Mwyw0h6pw==","signatures":[{"sig":"MEYCIQCF/Huvvl//z/0k4e9662hOX5hZqBl2jnoBoCu+T8c3ngIhALrcEquPWQKWgrL1gy9tEtW2adwo0sKxOLdXchQNJUe8","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@voxpelli%2ftyped-utils@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11499},"type":"module","types":"index.d.ts","engines":{"node":">=18.0.0"},"exports":"./index.js","gitHead":"3482cf0b75d7245e452b3fc2e319e6807c8873bc","scripts":{"test":"run-s check test:*","build":"run-s build:*","check":"run-s check:*","clean":"run-p clean:*","build:0":"run-s clean","check:0":"run-s clean","check:1":"run-p check:1:*","check:2":"run-s build","check:3":"tsd","prepare":"husky","test-ci":"run-s test:*","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","check:1:tsc":"tsc","check:1:knip":"knip","check:1:lint":"eslint --report-unused-disable-directives .","prepublishOnly":"run-s build","build:1-declaration":"tsc -p declaration.tsconfig.json","check:1:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*'","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')","check:1:installed-check":"installed-check -i eslint-plugin-jsdoc -i knip -i linemod"},"_npmUser":{"name":"voxpelli","email":"pelle@kodfabrik.se"},"repository":{"url":"git://github.com/voxpelli/typed-utils.git","type":"git"},"_npmVersion":"10.5.0","description":"My personal (type-enabled) utils / helpers","directories":{},"_nodeVersion":"20.11.1","dependencies":{"@voxpelli/type-helpers":"^3.4.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^9.1.0","tsd":"^0.30.7","chai":"^4.4.1","knip":"^5.0.3","husky":"^9.0.11","mocha":"^10.3.0","eslint":"^8.57.0","typescript":"~5.4.2","@types/chai":"^4.3.12","@types/node":"^18.19.22","@types/mocha":"^10.0.1","npm-run-all2":"^6.1.2","type-coverage":"^2.27.1","eslint-plugin-n":"^16.6.2","installed-check":"^8.0.0","@voxpelli/tsconfig":"^11.0.0","eslint-plugin-es-x":"^7.5.0","eslint-plugin-jsdoc":"^46.10.1","eslint-plugin-mocha":"^10.4.1","eslint-plugin-import":"^2.29.1","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^48.0.1","eslint-plugin-security":"^1.7.1","@voxpelli/eslint-config":"^19.0.0","validate-conventional-commit":"^1.0.3","eslint-plugin-sort-destructure-keys":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/typed-utils_1.5.0_1710181299784_0.9160239728847441","host":"s3://npm-registry-packages"}},"1.6.0":{"name":"@voxpelli/typed-utils","version":"1.6.0","keywords":[],"author":{"url":"http://kodfabrik.se/","name":"Pelle Wessman","email":"pelle@kodfabrik.se"},"license":"MIT","_id":"@voxpelli/typed-utils@1.6.0","maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"homepage":"http://github.com/voxpelli/typed-utils","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"dist":{"shasum":"1016e9490c57a48c1239cd30c98eac131317b3f7","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-1.6.0.tgz","fileCount":17,"integrity":"sha512-Rm4dj1qHVOQzJjOvjdNsvG7ltYYcc2fc2ABzKgUoIfqV/8kY196lmnUSsN7QYm10I+AzYTsc/BExtsJPRif9TA==","signatures":[{"sig":"MEQCIFRF8S4BPid5CjVw+x4f2ABcBpQxyp/+gzX49YGa1Uq5AiBDvHf8yKpehYMh6kZoACr7EZe5scQMUcjitD/VUoc8SQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@voxpelli%2ftyped-utils@1.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12721},"type":"module","types":"index.d.ts","engines":{"node":">=18.0.0"},"exports":"./index.js","gitHead":"255bcbd22560b48c4dee94faaa98ab8c6b96ea5e","scripts":{"test":"run-s check test:*","build":"run-s build:*","check":"run-s check:*","clean":"run-p clean:*","build:0":"run-s clean","check:0":"run-s clean","check:1":"run-p check:1:*","check:2":"run-s build","check:3":"tsd","prepare":"husky","test-ci":"run-s test:*","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","check:1:tsc":"tsc","check:1:knip":"knip","check:1:lint":"eslint --report-unused-disable-directives .","prepublishOnly":"run-s build","build:1-declaration":"tsc -p declaration.tsconfig.json","check:1:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*'","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')","check:1:installed-check":"installed-check -i eslint-plugin-jsdoc -i knip -i linemod"},"_npmUser":{"name":"voxpelli","email":"pelle@kodfabrik.se"},"repository":{"url":"git://github.com/voxpelli/typed-utils.git","type":"git"},"_npmVersion":"10.5.0","description":"My personal (type-enabled) utils / helpers","directories":{},"_nodeVersion":"20.11.1","dependencies":{"@voxpelli/type-helpers":"^3.4.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^9.1.0","tsd":"^0.30.7","chai":"^4.4.1","knip":"^5.0.3","husky":"^9.0.11","mocha":"^10.3.0","eslint":"^8.57.0","typescript":"~5.4.2","@types/chai":"^4.3.12","@types/node":"^18.19.22","@types/mocha":"^10.0.1","npm-run-all2":"^6.1.2","type-coverage":"^2.27.1","eslint-plugin-n":"^16.6.2","installed-check":"^8.0.0","@voxpelli/tsconfig":"^11.0.0","eslint-plugin-es-x":"^7.5.0","eslint-plugin-jsdoc":"^46.10.1","eslint-plugin-mocha":"^10.4.1","eslint-plugin-import":"^2.29.1","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^48.0.1","eslint-plugin-security":"^1.7.1","@voxpelli/eslint-config":"^19.0.0","validate-conventional-commit":"^1.0.3","eslint-plugin-sort-destructure-keys":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/typed-utils_1.6.0_1710184685481_0.6367219018718839","host":"s3://npm-registry-packages"}},"1.7.0":{"name":"@voxpelli/typed-utils","version":"1.7.0","keywords":[],"author":{"url":"http://kodfabrik.se/","name":"Pelle Wessman","email":"pelle@kodfabrik.se"},"license":"MIT","_id":"@voxpelli/typed-utils@1.7.0","maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"homepage":"http://github.com/voxpelli/typed-utils","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"dist":{"shasum":"17ee9bd221475c3567f169e1fc2c548fa3956267","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-1.7.0.tgz","fileCount":17,"integrity":"sha512-PdXqqKySZFV9lRAQ++9R2noCEHB5RGvOYD+Dl2LvcIGXO+AYPStTIdRb1peHf26UIyEjdo6gG0xp5OZ1vDTrAQ==","signatures":[{"sig":"MEQCIFYlZbnxhQHLDmi1AgYIxWW6JAf+0f9Q8AnXPTpvlAJAAiAVoxG1PbBqYY4pfayAMYtqX7QjW8qFgP1pFzJaofdP3A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@voxpelli%2ftyped-utils@1.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":13799},"type":"module","types":"index.d.ts","engines":{"node":">=18.0.0"},"exports":"./index.js","gitHead":"c64768c67ded330fe6ed4c51f6c8212a4491f926","scripts":{"test":"run-s check test:*","build":"run-s build:*","check":"run-s check:*","clean":"run-p clean:*","build:0":"run-s clean","check:0":"run-s clean","check:1":"run-p check:1:*","check:2":"run-s build","check:3":"tsd","prepack":"run-s build","prepare":"husky","test-ci":"run-s test:*","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","check:1:tsc":"tsc","check:1:knip":"knip","check:1:lint":"eslint --report-unused-disable-directives .","build:1-declaration":"tsc -p declaration.tsconfig.json","check:1:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*'","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')","check:1:installed-check":"installed-check -i installed-check -i knip"},"_npmUser":{"name":"voxpelli","email":"pelle@kodfabrik.se"},"repository":{"url":"git://github.com/voxpelli/typed-utils.git","type":"git"},"_npmVersion":"10.5.0","description":"My personal (type-enabled) utils / helpers","directories":{},"_nodeVersion":"20.11.1","dependencies":{"@voxpelli/type-helpers":"^3.4.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^9.1.0","tsd":"^0.31.0","chai":"^4.4.1","knip":"^5.7.0","husky":"^9.0.11","mocha":"^10.4.0","eslint":"^8.57.0","typescript":"~5.4.3","@types/chai":"^4.3.14","@types/node":"^18.19.29","@types/mocha":"^10.0.6","npm-run-all2":"^6.1.2","type-coverage":"^2.27.2","eslint-plugin-n":"^16.6.2","installed-check":"^9.0.0","@voxpelli/tsconfig":"^11.0.0","eslint-plugin-es-x":"^7.6.0","eslint-plugin-jsdoc":"^46.10.1","eslint-plugin-mocha":"^10.4.1","eslint-plugin-import":"^2.29.1","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^48.0.1","eslint-plugin-security":"^1.7.1","@voxpelli/eslint-config":"^19.0.0","validate-conventional-commit":"^1.0.3","eslint-plugin-sort-destructure-keys":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/typed-utils_1.7.0_1712148858583_0.14589158804586","host":"s3://npm-registry-packages"}},"1.8.0":{"name":"@voxpelli/typed-utils","version":"1.8.0","keywords":[],"author":{"url":"http://kodfabrik.se/","name":"Pelle Wessman","email":"pelle@kodfabrik.se"},"license":"MIT","_id":"@voxpelli/typed-utils@1.8.0","maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"homepage":"http://github.com/voxpelli/typed-utils","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"dist":{"shasum":"ad17e21b9fae86a4f7ae56f7f412ec3cd587941f","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-1.8.0.tgz","fileCount":17,"integrity":"sha512-kjvj2kIDzFp0uJ92pWmFx5Ot85KMVPDZJf/OaRGakd3qNR+D3n9ekYR3RDmhNW3g6wAvfj0tI9H40h+1pIgPDw==","signatures":[{"sig":"MEUCIQCb2DvPKmvbKlvTg6OMrRfaZHqlFbWGBmpdhVwLSnovcAIgYnoSANDz/PcaFzVvrZi6KvtVVRILnIYErSPfa4v1cBQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@voxpelli%2ftyped-utils@1.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16237},"type":"module","types":"index.d.ts","engines":{"node":">=18.0.0"},"exports":"./index.js","gitHead":"e74f89c1d1686e521d7fba0a6a1cd36198091421","scripts":{"test":"run-s check test:*","build":"run-s build:*","check":"run-s check:*","clean":"run-p clean:*","build:0":"run-s clean","check:0":"run-s clean","check:1":"run-p check:1:*","check:2":"run-s build","check:3":"tsd","prepack":"run-s build","prepare":"husky","test-ci":"run-s test:*","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","check:1:tsc":"tsc","check:1:knip":"knip","check:1:lint":"eslint --report-unused-disable-directives .","build:1-declaration":"tsc -p declaration.tsconfig.json","check:1:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*'","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')","check:1:installed-check":"installed-check -i installed-check -i knip"},"_npmUser":{"name":"voxpelli","email":"pelle@kodfabrik.se"},"repository":{"url":"git://github.com/voxpelli/typed-utils.git","type":"git"},"_npmVersion":"10.5.2","description":"My personal (type-enabled) utils / helpers","directories":{},"_nodeVersion":"20.12.1","dependencies":{"@voxpelli/type-helpers":"^3.4.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^9.1.0","tsd":"^0.31.0","chai":"^4.4.1","knip":"^5.9.4","husky":"^9.0.11","mocha":"^10.4.0","eslint":"^8.57.0","typescript":"~5.4.5","@types/chai":"^4.3.14","@types/node":"^18.19.29","@types/mocha":"^10.0.6","npm-run-all2":"^6.1.2","type-coverage":"^2.28.1","eslint-plugin-n":"^16.6.2","installed-check":"^9.3.0","@voxpelli/tsconfig":"^11.0.0","eslint-plugin-es-x":"^7.6.0","eslint-plugin-jsdoc":"^46.10.1","eslint-plugin-mocha":"^10.4.2","eslint-plugin-import":"^2.29.1","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^48.0.1","eslint-plugin-security":"^1.7.1","@voxpelli/eslint-config":"^19.0.0","validate-conventional-commit":"^1.0.3","eslint-plugin-sort-destructure-keys":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/typed-utils_1.8.0_1713186599451_0.6234917206674506","host":"s3://npm-registry-packages"}},"1.9.0":{"name":"@voxpelli/typed-utils","version":"1.9.0","keywords":[],"author":{"url":"http://kodfabrik.se/","name":"Pelle Wessman","email":"pelle@kodfabrik.se"},"license":"MIT","_id":"@voxpelli/typed-utils@1.9.0","maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"homepage":"http://github.com/voxpelli/typed-utils","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"dist":{"shasum":"b24954eaab05edbe34a0598da8dc3f8b8463f971","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-1.9.0.tgz","fileCount":20,"integrity":"sha512-AdxRuL8/UhBvw9z0k3+Y1O1ryTodYDsxUT1VN+OvsBM0y62ckyb+hGe/dgDNSHwQspLFQ5ZWPkxdnYk9Zo/erA==","signatures":[{"sig":"MEUCIGILlw1NFMdeUQQDQmfED9PK4MqESEON3g5O6kokGSu3AiEAowzIgtoy84fGIgY1OxLWdB686PNikGH7G43hN3s3vJw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@voxpelli%2ftyped-utils@1.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20861},"type":"module","types":"index.d.ts","engines":{"node":">=18.0.0"},"exports":"./index.js","gitHead":"bcd809828be01ee317383f92c05855e65eb4eb9a","scripts":{"test":"run-s check test:*","build":"run-s build:*","check":"run-s check:*","clean":"run-p clean:*","build:0":"run-s clean","check:0":"run-s clean","check:1":"run-p check:1:*","check:2":"run-s build","check:3":"tsd","prepack":"run-s build","prepare":"husky","test-ci":"run-s test:*","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","check:1:tsc":"tsc","check:1:knip":"knip","check:1:lint":"eslint --report-unused-disable-directives .","build:1-declaration":"tsc -p declaration.tsconfig.json","check:1:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*'","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')","check:1:installed-check":"installed-check -i installed-check -i knip"},"_npmUser":{"name":"voxpelli","email":"pelle@kodfabrik.se"},"repository":{"url":"git://github.com/voxpelli/typed-utils.git","type":"git"},"_npmVersion":"10.5.2","description":"My personal (type-enabled) utils / helpers","directories":{},"_nodeVersion":"20.12.2","dependencies":{"@voxpelli/type-helpers":"^3.4.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^9.1.0","tsd":"^0.31.0","chai":"^4.4.1","knip":"^5.9.4","husky":"^9.0.11","mocha":"^10.4.0","eslint":"^8.57.0","typescript":"~5.4.5","@types/chai":"^4.3.14","@types/node":"^18.19.29","@types/mocha":"^10.0.6","npm-run-all2":"^6.1.2","type-coverage":"^2.28.1","eslint-plugin-n":"^16.6.2","installed-check":"^9.3.0","@voxpelli/tsconfig":"^11.0.0","eslint-plugin-es-x":"^7.6.0","eslint-plugin-jsdoc":"^46.10.1","eslint-plugin-mocha":"^10.4.2","eslint-plugin-import":"^2.29.1","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^48.0.1","eslint-plugin-security":"^1.7.1","@voxpelli/eslint-config":"^19.0.0","validate-conventional-commit":"^1.0.3","eslint-plugin-sort-destructure-keys":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/typed-utils_1.9.0_1713536965924_0.5591594582697192","host":"s3://npm-registry-packages"}},"1.10.0":{"name":"@voxpelli/typed-utils","version":"1.10.0","keywords":[],"author":{"url":"http://kodfabrik.se/","name":"Pelle Wessman","email":"pelle@kodfabrik.se"},"license":"MIT","_id":"@voxpelli/typed-utils@1.10.0","maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"homepage":"http://github.com/voxpelli/typed-utils","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"dist":{"shasum":"a5af552490fec733f683ee216c35287b3a3852b6","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-1.10.0.tgz","fileCount":20,"integrity":"sha512-EumK5tXMluJAhfOUoIKMNejxzJA9gFpjd43FkrXAHcpG48jS7zK3I9pUaTfTVTH79I7WXVy5twrsJJmPvMjLlA==","signatures":[{"sig":"MEUCIB+vZw5mKGQ9x55XazUh6peN345TN7y6sXmEjuSZY3kcAiEA+n0O4VDEQBEb79iwNg4RtN3w4zge4Fl8PiA47FLM/AI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@voxpelli%2ftyped-utils@1.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21135},"type":"module","types":"index.d.ts","engines":{"node":">=18.0.0"},"exports":"./index.js","gitHead":"982162a5730d39ab29026e0cfa030975c52bdf5c","scripts":{"test":"run-s check test:*","build":"run-s build:*","check":"run-s check:*","clean":"run-p clean:*","build:0":"run-s clean","check:0":"run-s clean","check:1":"run-p check:1:*","check:2":"run-s build","check:3":"tsd","prepack":"run-s build","prepare":"husky","test-ci":"run-s test:*","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","check:1:tsc":"tsc","check:1:knip":"knip","check:1:lint":"eslint --report-unused-disable-directives .","build:1-declaration":"tsc -p declaration.tsconfig.json","check:1:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*'","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')","check:1:installed-check":"installed-check -i installed-check -i knip"},"_npmUser":{"name":"voxpelli","email":"pelle@kodfabrik.se"},"repository":{"url":"git://github.com/voxpelli/typed-utils.git","type":"git"},"_npmVersion":"10.5.2","description":"My personal (type-enabled) utils / helpers","directories":{},"_nodeVersion":"20.12.2","dependencies":{"@voxpelli/type-helpers":"^3.4.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^9.1.0","tsd":"^0.31.0","chai":"^4.4.1","knip":"^5.9.4","husky":"^9.0.11","mocha":"^10.4.0","eslint":"^8.57.0","typescript":"~5.4.5","@types/chai":"^4.3.14","@types/node":"^18.19.29","@types/mocha":"^10.0.6","npm-run-all2":"^6.1.2","type-coverage":"^2.28.1","eslint-plugin-n":"^16.6.2","installed-check":"^9.3.0","@voxpelli/tsconfig":"^11.0.0","eslint-plugin-es-x":"^7.6.0","eslint-plugin-jsdoc":"^46.10.1","eslint-plugin-mocha":"^10.4.2","eslint-plugin-import":"^2.29.1","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^48.0.1","eslint-plugin-security":"^1.7.1","@voxpelli/eslint-config":"^19.0.0","validate-conventional-commit":"^1.0.3","eslint-plugin-sort-destructure-keys":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/typed-utils_1.10.0_1713537784852_0.9306117482929916","host":"s3://npm-registry-packages"}},"1.10.1":{"name":"@voxpelli/typed-utils","version":"1.10.1","keywords":[],"author":{"url":"http://kodfabrik.se/","name":"Pelle Wessman","email":"pelle@kodfabrik.se"},"license":"MIT","_id":"@voxpelli/typed-utils@1.10.1","maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"homepage":"http://github.com/voxpelli/typed-utils","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"dist":{"shasum":"5f40ddc253bc87d1581f9f62e29be139ee3474bc","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-1.10.1.tgz","fileCount":20,"integrity":"sha512-HNRZ+rTbjS9MphabJR44JKd+tI+aCQljkdUANHnk6gwE3EJ4w2D3Dodzwjy4x+bndw43JoGqOfUHC+1CRNOHaw==","signatures":[{"sig":"MEQCID5COCFVCwZj4/ZmWixAd1RwtULO8nQbBscXw/kcFQGEAiA4m7knTp8On4vt+Gld90yi4KJGwI+/LlCq5aVlKXqMQg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@voxpelli%2ftyped-utils@1.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21167},"type":"module","types":"index.d.ts","engines":{"node":">=18.0.0"},"exports":"./index.js","gitHead":"d293b98bf0ba20a1a599199c34e8816df2c3be66","scripts":{"test":"run-s check test:*","build":"run-s build:*","check":"run-s check:*","clean":"run-p clean:*","build:0":"run-s clean","check:0":"run-s clean","check:1":"run-p check:1:*","check:2":"run-s build","check:3":"tsd","prepack":"run-s build","prepare":"husky","test-ci":"run-s test:*","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","check:1:tsc":"tsc","check:1:knip":"knip","check:1:lint":"eslint --report-unused-disable-directives .","build:1-declaration":"tsc -p declaration.tsconfig.json","check:1:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*'","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')","check:1:installed-check":"installed-check -i installed-check -i knip"},"_npmUser":{"name":"voxpelli","email":"pelle@kodfabrik.se"},"repository":{"url":"git://github.com/voxpelli/typed-utils.git","type":"git"},"_npmVersion":"10.5.2","description":"My personal (type-enabled) utils / helpers","directories":{},"_nodeVersion":"20.12.2","dependencies":{"@voxpelli/type-helpers":"^3.4.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^9.1.0","tsd":"^0.31.0","chai":"^4.4.1","knip":"^5.9.4","husky":"^9.0.11","mocha":"^10.4.0","eslint":"^8.57.0","typescript":"~5.4.5","@types/chai":"^4.3.14","@types/node":"^18.19.29","@types/mocha":"^10.0.6","npm-run-all2":"^6.1.2","type-coverage":"^2.28.1","eslint-plugin-n":"^16.6.2","installed-check":"^9.3.0","@voxpelli/tsconfig":"^11.0.0","eslint-plugin-es-x":"^7.6.0","eslint-plugin-jsdoc":"^46.10.1","eslint-plugin-mocha":"^10.4.2","eslint-plugin-import":"^2.29.1","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^48.0.1","eslint-plugin-security":"^1.7.1","@voxpelli/eslint-config":"^19.0.0","validate-conventional-commit":"^1.0.3","eslint-plugin-sort-destructure-keys":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/typed-utils_1.10.1_1713777995701_0.9464252642511464","host":"s3://npm-registry-packages"}},"1.10.2":{"name":"@voxpelli/typed-utils","version":"1.10.2","keywords":[],"author":{"url":"http://kodfabrik.se/","name":"Pelle Wessman","email":"pelle@kodfabrik.se"},"license":"MIT","_id":"@voxpelli/typed-utils@1.10.2","homepage":"http://github.com/voxpelli/typed-utils","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"dist":{"shasum":"69b2f92e5e2c8dd2545d5e96968f3335db53b503","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-1.10.2.tgz","fileCount":20,"integrity":"sha512-icXQSR6SeGL6kr9koJw9zkDZqWyFXgpJG8kTaDydjZhy9/V0MQB9tYyibvRgJHlk98SDJJhPLCouTdqOdn+riw==","signatures":[{"sig":"MEYCIQDofZnPiFDfIUJiTe0qpNuGzIMEm4YiZNNBtd/3LPOp7wIhAOHNh06RM1/1nt7iq9mTT0DHUpbZh1yPqck0wgpNGtUR","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@voxpelli%2ftyped-utils@1.10.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22199},"type":"module","types":"index.d.ts","engines":{"node":">=18.0.0"},"exports":"./index.js","gitHead":"5c2098de7e8af0020691c3b8571bf5362c70eca6","scripts":{"test":"run-s check test:*","build":"run-s build:*","check":"run-s check:*","clean":"run-p clean:*","build:0":"run-s clean","check:0":"run-s clean","check:1":"run-p check:1:*","check:2":"run-s build","check:3":"tsd","prepack":"run-s build","prepare":"husky","test-ci":"run-s test:*","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","check:1:tsc":"tsc","check:1:knip":"knip","check:1:lint":"eslint --report-unused-disable-directives .","build:1-declaration":"tsc -p declaration.tsconfig.json","check:1:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*'","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')","check:1:installed-check":"installed-check -i @voxpelli/eslint-config -i eslint -i installed-check -i knip"},"_npmUser":{"name":"voxpelli","email":"pelle@kodfabrik.se"},"repository":{"url":"git://github.com/voxpelli/typed-utils.git","type":"git"},"_npmVersion":"10.8.1","description":"My personal (type-enabled) utils / helpers","directories":{},"_nodeVersion":"20.15.0","dependencies":{"@voxpelli/type-helpers":"^3.4.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.2","tsd":"^0.31.1","chai":"^4.4.1","knip":"^5.23.2","husky":"^9.0.11","mocha":"^10.5.2","eslint":"^9.6.0","typescript":"~5.5.2","@types/chai":"^4.3.16","@types/node":"^18.19.39","@types/mocha":"^10.0.7","npm-run-all2":"^6.2.0","type-coverage":"^2.29.0","installed-check":"^9.3.0","@voxpelli/tsconfig":"^12.0.1","@voxpelli/eslint-config":"^20.0.0-beta.4","validate-conventional-commit":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/typed-utils_1.10.2_1719683892805_0.07565330979176688","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"@voxpelli/typed-utils","version":"2.0.0","keywords":[],"author":{"url":"http://kodfabrik.se/","name":"Pelle Wessman","email":"pelle@kodfabrik.se"},"license":"MIT","_id":"@voxpelli/typed-utils@2.0.0","maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"homepage":"http://github.com/voxpelli/typed-utils","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"dist":{"shasum":"8640af11aeccdca675be3f62415d0ad77d63aecd","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-2.0.0.tgz","fileCount":26,"integrity":"sha512-S+FM/P9KHW8gZkPQfWsfFsr4tFFUJg+M9/vs2AZaWvv+jiloe8OSu0+oUx19XHn9+81nb1LeZz5+CVid96uKfA==","signatures":[{"sig":"MEUCIQDP0I/dURrzeyNRXU/MlHkZp9A8P4H/wHcIqrtEbGaWKgIgS8+8UFyXhxuMrLeDJom9bV8pzdXMPrNdIQ5kI8odBBo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@voxpelli%2ftyped-utils@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27534},"type":"module","types":"index.d.ts","engines":{"node":"^20.11.0 || >=22.0.0"},"exports":"./index.js","gitHead":"9dfe53da8f5b9e8ba17fb8e9eee198bb60776155","scripts":{"test":"run-s check test:*","build":"run-s build:*","check":"run-s check:*","clean":"run-p clean:*","build:0":"run-s clean","check:0":"run-s clean","check:1":"run-p check:1:*","check:2":"run-s build","check:3":"tsd","prepack":"run-s build","prepare":"husky","test-ci":"run-s test:*","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","check:1:tsc":"tsc","check:1:knip":"knip","check:1:lint":"eslint","build:1-declaration":"tsc -p declaration.tsconfig.json","check:1:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*'","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')","check:1:installed-check":"installed-check"},"_npmUser":{"name":"voxpelli","email":"pelle@kodfabrik.se"},"repository":{"url":"git://github.com/voxpelli/typed-utils.git","type":"git"},"_npmVersion":"11.4.1","description":"My personal (type-enabled) utils / helpers","directories":{},"_nodeVersion":"22.15.0","dependencies":{"@voxpelli/type-helpers":"^3.5.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsd":"^0.32.0","chai":"^4.5.0","knip":"^5.59.1","husky":"^9.1.7","mocha":"^11.5.0","eslint":"^9.28.0","typescript":"~5.8.3","@types/chai":"^4.3.20","@types/node":"^18.19.110","@types/mocha":"^10.0.10","npm-run-all2":"^8.0.4","type-coverage":"^2.29.7","installed-check":"^9.3.0","@voxpelli/tsconfig":"^15.1.2","@voxpelli/eslint-config":"^23.0.0","validate-conventional-commit":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/typed-utils_2.0.0_1748805253250_0.74832525507484","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@voxpelli/typed-utils","version":"2.0.1","keywords":[],"author":{"url":"http://kodfabrik.se/","name":"Pelle Wessman","email":"pelle@kodfabrik.se"},"license":"MIT","_id":"@voxpelli/typed-utils@2.0.1","maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"homepage":"http://github.com/voxpelli/typed-utils","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"dist":{"shasum":"4e14013bf7c6dd7032b189bf80f1972c44915b9b","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-2.0.1.tgz","fileCount":26,"integrity":"sha512-8xpe5ONKp0BQM4BWMeK1a5ZasE6Udf6mb18Jmw/x/Yzg80F+ySrkvqQyDvjuFqxngLvxgaIZYhmZH0uafbQmAQ==","signatures":[{"sig":"MEYCIQCjUR9poeSlYyJDu8hVJMXTyFa2pVYVMB0oJWdaixVoNAIhALhj/K18AUnqgWezlgLA99UGsfT+2uenFY2SPr3Q0Tgs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@voxpelli%2ftyped-utils@2.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29336},"type":"module","types":"index.d.ts","engines":{"node":"^20.11.0 || >=22.0.0"},"exports":"./index.js","gitHead":"f0d9613c673e3e30a3fd062900d5fb7328af5b0f","scripts":{"test":"run-s check test:*","build":"run-s build:*","check":"run-s check:*","clean":"run-p clean:*","build:0":"run-s clean","check:0":"run-s clean","check:1":"run-p check:1:*","check:2":"run-s build","check:3":"tsd","prepack":"run-s build","prepare":"husky","test-ci":"run-s test:*","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","check:1:tsc":"tsc","check:1:knip":"knip","check:1:lint":"eslint","build:1-declaration":"tsc -p declaration.tsconfig.json","check:1:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*'","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')","check:1:installed-check":"installed-check"},"_npmUser":{"name":"voxpelli","email":"pelle@kodfabrik.se"},"repository":{"url":"git://github.com/voxpelli/typed-utils.git","type":"git"},"_npmVersion":"11.4.1","description":"My personal (type-enabled) utils / helpers","directories":{},"_nodeVersion":"22.15.0","dependencies":{"@voxpelli/type-helpers":"^3.5.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsd":"^0.32.0","chai":"^4.5.0","knip":"^5.59.1","husky":"^9.1.7","mocha":"^11.5.0","eslint":"^9.28.0","typescript":"~5.8.3","@types/chai":"^4.3.20","@types/node":"^18.19.110","@types/mocha":"^10.0.10","npm-run-all2":"^8.0.4","type-coverage":"^2.29.7","installed-check":"^9.3.0","@voxpelli/tsconfig":"^15.1.2","@voxpelli/eslint-config":"^23.0.0","validate-conventional-commit":"^1.0.4"},"_npmOperationalInternal":{"tmp":"tmp/typed-utils_2.0.1_1748805968690_0.9547131014640395","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@voxpelli/typed-utils","version":"2.1.0","keywords":[],"author":{"url":"http://kodfabrik.se/","name":"Pelle Wessman","email":"pelle@kodfabrik.se"},"license":"MIT","_id":"@voxpelli/typed-utils@2.1.0","maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"homepage":"http://github.com/voxpelli/typed-utils","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"dist":{"shasum":"2a4609d7f7e0530923ae944582c70245ecde43c3","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-2.1.0.tgz","fileCount":26,"integrity":"sha512-8dC6Zn2Idkaarpzn5dbDBUHje9bjk86aJXTJzuR6kHmFElAHf4JbV3WTiU9VWPtR7dESQqTGBs6UUUGgfLIf0Q==","signatures":[{"sig":"MEYCIQC5vwlnOWVCjd8s5F3t5BY2S3bQhce80pQfx0gXg9jOEgIhALr9Ps4GyWdQn4W9e50XOwrnQqSl/WL2bcs/dywrv5ip","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@voxpelli%2ftyped-utils@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30541},"type":"module","types":"index.d.ts","engines":{"node":"^20.11.0 || >=22.0.0"},"exports":"./index.js","gitHead":"c7ef68d4fba5922f22196d92c9dec0c0c8eb88a9","scripts":{"test":"run-s check test:*","build":"run-s build:*","check":"run-s check:*","clean":"run-p clean:*","build:0":"run-s clean","check:0":"run-s clean","check:1":"run-p check:1:*","prepack":"run-s build","prepare":"husky","test-ci":"run-s test:*","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","check:1:tsc":"tsc","check:2-tsd":"run-s build && tsd && run-s clean","check:1:knip":"knip","check:1:lint":"eslint","build:1-declaration":"tsc -p declaration.tsconfig.json","check:1:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*'","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')","check:1:installed-check":"installed-check"},"_npmUser":{"name":"voxpelli","email":"pelle@kodfabrik.se"},"repository":{"url":"git://github.com/voxpelli/typed-utils.git","type":"git"},"_npmVersion":"11.4.1","description":"My personal (type-enabled) utils / helpers","directories":{},"_nodeVersion":"22.15.0","dependencies":{"@voxpelli/type-helpers":"^3.5.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsd":"^0.32.0","chai":"^4.5.0","knip":"^5.60.2","husky":"^9.1.7","mocha":"^11.6.0","eslint":"^9.28.0","typescript":"~5.8.3","@types/chai":"^4.3.20","@types/node":"^18.19.111","@types/mocha":"^10.0.10","npm-run-all2":"^8.0.4","type-coverage":"^2.29.7","installed-check":"^9.3.0","@voxpelli/tsconfig":"^15.1.2","@voxpelli/eslint-config":"^23.0.0","validate-conventional-commit":"^1.0.4"},"_npmOperationalInternal":{"tmp":"tmp/typed-utils_2.1.0_1749485447255_0.2591588229731434","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@voxpelli/typed-utils","version":"2.2.0","keywords":[],"author":{"url":"http://kodfabrik.se/","name":"Pelle Wessman","email":"pelle@kodfabrik.se"},"license":"MIT","_id":"@voxpelli/typed-utils@2.2.0","maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"homepage":"http://github.com/voxpelli/typed-utils","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"dist":{"shasum":"5c855b2f2b6dedec62c159421668c2548e701357","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-2.2.0.tgz","fileCount":26,"integrity":"sha512-nuTSQ4mzcP28OP+nl6DPZDR6/S0QuPxEfE+xkVmKu6OpNKLtRtMuIvn3Tz7rPCVg38cZ0rwCh/7/c22bQFmCqA==","signatures":[{"sig":"MEYCIQCZXzqyhmxmUX1+YFisVBKkiI6Gr7zS2fJtXX+JOH5omgIhAOYrJatAcz4SYvVw1QRKdGTcW3c5RO2rKRLDX6Q1Vkdq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@voxpelli%2ftyped-utils@2.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":32139},"type":"module","types":"index.d.ts","engines":{"node":"^20.11.0 || >=22.0.0"},"exports":"./index.js","gitHead":"850e1eb9c70b2024f1347df5727861075c474fe8","scripts":{"test":"run-s check test:*","build":"run-s build:*","check":"run-s check:*","clean":"run-p clean:*","build:0":"run-s clean","check:0":"run-s clean","check:1":"run-p check:1:*","prepack":"run-s build","prepare":"husky","test-ci":"run-s test:*","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","check:1:tsc":"tsc","check:2-tsd":"run-s build && tsd && run-s clean","check:1:knip":"knip","check:1:lint":"eslint","build:1-declaration":"tsc -p declaration.tsconfig.json","check:1:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*'","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')","check:1:installed-check":"installed-check"},"_npmUser":{"name":"voxpelli","email":"pelle@kodfabrik.se"},"repository":{"url":"git://github.com/voxpelli/typed-utils.git","type":"git"},"_npmVersion":"11.4.1","description":"My personal (type-enabled) utils / helpers","directories":{},"_nodeVersion":"22.15.0","dependencies":{"@voxpelli/type-helpers":"^3.5.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsd":"^0.32.0","chai":"^4.5.0","knip":"^5.60.2","husky":"^9.1.7","mocha":"^11.6.0","eslint":"^9.28.0","typescript":"~5.8.3","@types/chai":"^4.3.20","@types/node":"^18.19.111","@types/mocha":"^10.0.10","npm-run-all2":"^8.0.4","type-coverage":"^2.29.7","installed-check":"^9.3.0","@voxpelli/tsconfig":"^15.1.2","@voxpelli/eslint-config":"^23.0.0","validate-conventional-commit":"^1.0.4"},"_npmOperationalInternal":{"tmp":"tmp/typed-utils_2.2.0_1749497181311_0.8312806052011008","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"name":"@voxpelli/typed-utils","version":"2.2.1","keywords":[],"author":{"url":"http://kodfabrik.se/","name":"Pelle Wessman","email":"pelle@kodfabrik.se"},"license":"MIT","_id":"@voxpelli/typed-utils@2.2.1","maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"homepage":"http://github.com/voxpelli/typed-utils","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"dist":{"shasum":"a3f4620418b1e2c497278546a309be576e0b3725","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-2.2.1.tgz","fileCount":26,"integrity":"sha512-w/YdSY/f8RvtThWY4z42QeYB4m43mKLdHku6Xv7mMftxg7rtv8CGC7Urmhx44BhJJK+woRASFowNm2/zDmzfgA==","signatures":[{"sig":"MEUCIQCe/gDujOSiVQa2/4OgdE0abeE9YTiPSehQdfvp7IgouAIgNv7Qu1YDub038q2iA4r12BVkIxlYzxgEIwCq6KyF8Og=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@voxpelli%2ftyped-utils@2.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":33865},"type":"module","types":"index.d.ts","engines":{"node":"^20.11.0 || >=22.0.0"},"exports":"./index.js","gitHead":"2c79892bf58340f3871bfe4c4577c4646a4d5d31","scripts":{"test":"run-s check test:*","build":"run-s build:*","check":"run-s check:*","clean":"run-p clean:*","build:0":"run-s clean","check:0":"run-s clean","check:1":"run-p check:1:*","prepack":"run-s build","prepare":"husky","test-ci":"run-s test:*","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","check:1:tsc":"tsc","check:2-tsd":"run-s build && tsd && run-s clean","check:1:knip":"knip","check:1:lint":"eslint","build:1-declaration":"tsc -p declaration.tsconfig.json","check:1:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*'","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')","check:1:installed-check":"installed-check"},"_npmUser":{"name":"voxpelli","email":"pelle@kodfabrik.se"},"repository":{"url":"git://github.com/voxpelli/typed-utils.git","type":"git"},"_npmVersion":"11.4.1","description":"My personal (type-enabled) utils / helpers","directories":{},"_nodeVersion":"22.15.0","dependencies":{"@voxpelli/type-helpers":"^3.5.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsd":"^0.32.0","chai":"^4.5.0","knip":"^5.60.2","husky":"^9.1.7","mocha":"^11.6.0","eslint":"^9.28.0","typescript":"~5.8.3","@types/chai":"^4.3.20","@types/mocha":"^10.0.10","npm-run-all2":"^8.0.4","type-coverage":"^2.29.7","installed-check":"^9.3.0","@voxpelli/tsconfig":"^15.1.2","@voxpelli/eslint-config":"^23.0.0","validate-conventional-commit":"^1.0.4"},"_npmOperationalInternal":{"tmp":"tmp/typed-utils_2.2.1_1749506143479_0.5271523114846481","host":"s3://npm-registry-packages-npm-production"}},"2.2.2":{"name":"@voxpelli/typed-utils","version":"2.2.2","keywords":[],"author":{"url":"http://kodfabrik.se/","name":"Pelle Wessman","email":"pelle@kodfabrik.se"},"license":"MIT","_id":"@voxpelli/typed-utils@2.2.2","maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"homepage":"http://github.com/voxpelli/typed-utils","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"dist":{"shasum":"596668fe8fef299a0946998c1f9e4ee09688e581","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-2.2.2.tgz","fileCount":26,"integrity":"sha512-4NFyPohP3q+M4nzXzoebNZzmv/gBhYHI7GUt5+0mRWEj5AY7nRgenWfYpX7WstsrGkP06VH8c0N1GT8ambDlsg==","signatures":[{"sig":"MEYCIQDICUNU1pjvJYYt/Qcmpfxj2+UKlFFHRhHLMz0M9FldHgIhAJkPUvM/tW1CuRrhxAjCOfkHORFBT05gDc1RJ9v+vMrN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@voxpelli%2ftyped-utils@2.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":33807},"type":"module","types":"index.d.ts","engines":{"node":"^20.11.0 || >=22.0.0"},"exports":"./index.js","gitHead":"da6a5ca1517e043abb536856cd184235e7daad88","scripts":{"test":"run-s check test:*","build":"run-s build:*","check":"run-s check:*","clean":"run-p clean:*","build:0":"run-s clean","check:0":"run-s clean","check:1":"run-p check:1:*","prepack":"run-s build","prepare":"husky","test-ci":"run-s test:*","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","check:1:tsc":"tsc","check:2-tsd":"run-s build && tsd && run-s clean","check:1:knip":"knip","check:1:lint":"eslint","build:1-declaration":"tsc -p declaration.tsconfig.json","check:1:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*'","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')","check:1:installed-check":"installed-check"},"_npmUser":{"name":"voxpelli","email":"pelle@kodfabrik.se"},"repository":{"url":"git://github.com/voxpelli/typed-utils.git","type":"git"},"_npmVersion":"11.4.1","description":"My personal (type-enabled) utils / helpers","directories":{},"_nodeVersion":"22.16.0","dependencies":{"@voxpelli/type-helpers":"^3.5.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsd":"^0.32.0","chai":"^4.5.0","knip":"^5.60.2","husky":"^9.1.7","mocha":"^11.6.0","eslint":"^9.28.0","typescript":"~5.8.3","@types/chai":"^4.3.20","@types/mocha":"^10.0.10","npm-run-all2":"^8.0.4","type-coverage":"^2.29.7","installed-check":"^9.3.0","@voxpelli/tsconfig":"^15.1.2","@voxpelli/eslint-config":"^23.0.0","validate-conventional-commit":"^1.0.4"},"_npmOperationalInternal":{"tmp":"tmp/typed-utils_2.2.2_1749566606848_0.21025665803163496","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@voxpelli/typed-utils","version":"2.3.0","keywords":[],"author":{"url":"http://kodfabrik.se/","name":"Pelle Wessman","email":"pelle@kodfabrik.se"},"license":"MIT","_id":"@voxpelli/typed-utils@2.3.0","maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"homepage":"http://github.com/voxpelli/typed-utils","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"dist":{"shasum":"920f6e2a420cb404d12d004b6e99ae099b749530","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-2.3.0.tgz","fileCount":29,"integrity":"sha512-AH5vNUf2e6ZcFHY3Daf0jB2JDxUixpE8xzujk5K4E9+tOVxLRkeEPNcgPICqQxIiz3tQP+0293bw8sw5JlOKAg==","signatures":[{"sig":"MEQCIE+HJG5E1oAXOEih4qAiHlADRalz9z2p7riOdRxF8y+nAiBDtDC7gVvNdxVuXRFp74sDGXgaAfb1P5TgVp0LHdq3Ug==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@voxpelli%2ftyped-utils@2.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36295},"type":"module","types":"index.d.ts","engines":{"node":"^20.11.0 || >=22.0.0"},"exports":"./index.js","gitHead":"d0fe356479c1e2d894f3fcce23f642d42f521054","scripts":{"test":"run-s check test:*","build":"run-s build:*","check":"run-s check:*","clean":"run-p clean:*","build:0":"run-s clean","check:0":"run-s clean","check:1":"run-p check:1:*","prepack":"run-s build","prepare":"husky","test-ci":"run-s test:*","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","check:1:tsc":"tsc","check:2-tsd":"run-s build && tsd && run-s clean","check:1:knip":"knip","check:1:lint":"eslint","build:1-declaration":"tsc -p declaration.tsconfig.json","check:1:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*'","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')","check:1:installed-check":"installed-check"},"_npmUser":{"name":"voxpelli","email":"pelle@kodfabrik.se"},"repository":{"url":"git://github.com/voxpelli/typed-utils.git","type":"git"},"_npmVersion":"11.6.1","description":"My personal (type-enabled) utils / helpers","directories":{},"_nodeVersion":"22.19.0","dependencies":{"@voxpelli/type-helpers":"^3.5.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsd":"^0.32.0","chai":"^4.5.0","knip":"^5.60.2","husky":"^9.1.7","mocha":"^11.6.0","eslint":"^9.28.0","typescript":"~5.8.3","@types/chai":"^4.3.20","@types/mocha":"^10.0.10","npm-run-all2":"^8.0.4","type-coverage":"^2.29.7","installed-check":"^9.3.0","@voxpelli/tsconfig":"^15.1.2","@voxpelli/eslint-config":"^23.0.0","validate-conventional-commit":"^1.0.4"},"_npmOperationalInternal":{"tmp":"tmp/typed-utils_2.3.0_1758807111250_0.13222083871711487","host":"s3://npm-registry-packages-npm-production"}},"2.3.1":{"name":"@voxpelli/typed-utils","version":"2.3.1","keywords":[],"author":{"url":"http://kodfabrik.se/","name":"Pelle Wessman","email":"pelle@kodfabrik.se"},"license":"MIT","_id":"@voxpelli/typed-utils@2.3.1","maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"homepage":"http://github.com/voxpelli/typed-utils","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"dist":{"shasum":"1620db4fbbd0987021cd34faa15506adf021a84d","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-2.3.1.tgz","fileCount":29,"integrity":"sha512-0iKHaVev/Ss0Ni3wSAktCkZTisgeczR33iGmVFglb9IErOh5z1B1uPTPGZ+QIN3ADEvM+kHumW+bB1PipDrxyA==","signatures":[{"sig":"MEUCIGynZ3jsIAvlQwQWx74vHYzpht+cEMMpCCLnzgkwWcFrAiEAhIrDr1VnCMl9ifiHqDyyYaVAbmj4lFIg13E+M2A8v9E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@voxpelli%2ftyped-utils@2.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36446},"type":"module","types":"index.d.ts","engines":{"node":"^20.11.0 || >=22.0.0"},"exports":"./index.js","gitHead":"a6ccbd3d370b147d9fe3c2146e42cdd0a7596bcf","scripts":{"test":"run-s check test:*","build":"run-s build:*","check":"run-s check:*","clean":"run-p clean:*","build:0":"run-s clean","check:0":"run-s clean","check:1":"run-p check:1:*","prepack":"run-s build","prepare":"husky","test-ci":"run-s test:*","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","check:1:tsc":"tsc","check:2-tsd":"run-s build && tsd && run-s clean","check:1:knip":"knip","check:1:lint":"eslint","build:1-declaration":"tsc -p declaration.tsconfig.json","check:1:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*'","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')","check:1:installed-check":"installed-check"},"_npmUser":{"name":"voxpelli","email":"pelle@kodfabrik.se"},"repository":{"url":"git://github.com/voxpelli/typed-utils.git","type":"git"},"_npmVersion":"11.6.1","description":"My personal (type-enabled) utils / helpers","directories":{},"_nodeVersion":"22.19.0","dependencies":{"@voxpelli/type-helpers":"^3.5.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsd":"^0.32.0","chai":"^4.5.0","knip":"^5.60.2","husky":"^9.1.7","mocha":"^11.6.0","eslint":"^9.28.0","typescript":"~5.8.3","@types/chai":"^4.3.20","@types/mocha":"^10.0.10","npm-run-all2":"^8.0.4","type-coverage":"^2.29.7","installed-check":"^9.3.0","@voxpelli/tsconfig":"^15.1.2","@voxpelli/eslint-config":"^23.0.0","validate-conventional-commit":"^1.0.4"},"_npmOperationalInternal":{"tmp":"tmp/typed-utils_2.3.1_1758808771351_0.4971417427739233","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"@voxpelli/typed-utils","version":"2.4.0","keywords":[],"author":{"url":"http://kodfabrik.se/","name":"Pelle Wessman","email":"pelle@kodfabrik.se"},"license":"MIT","_id":"@voxpelli/typed-utils@2.4.0","maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"homepage":"http://github.com/voxpelli/typed-utils","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"dist":{"shasum":"0e47ab619262ee0923bcd177331a7b1c6660f389","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-2.4.0.tgz","fileCount":29,"integrity":"sha512-Bs6Dac/Q5PygbKuvyeNJFySns5QTOg1QYujYYHvwXFj/aplH5gKvqTo7A4cbN+tH7GPmv98kl4+OtKDYz8FX+A==","signatures":[{"sig":"MEUCIGtzPTx9Cu9NKE7rGkQyCkQZEhZB13FPnMq2+YuWoh1bAiEA1rJctxVrCZZs4V691CnyvzUmwiNAjtGSG/dbSLncdCU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@voxpelli%2ftyped-utils@2.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":38010},"type":"module","types":"index.d.ts","engines":{"node":"^20.11.0 || >=22.0.0"},"exports":"./index.js","gitHead":"5f9bbf2a5a5b00ebf0e9bdf45e0546ae35e7b265","scripts":{"test":"run-s check test:*","build":"run-s build:*","check":"run-s check:*","clean":"run-p clean:*","build:0":"run-s clean","check:0":"run-s clean","check:1":"run-p check:1:*","prepack":"run-s build","prepare":"husky","test-ci":"run-s test:*","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","check:1:tsc":"tsc","check:2-tsd":"run-s build && tsd && run-s clean","check:1:knip":"knip","check:1:lint":"eslint","build:1-declaration":"tsc -p declaration.tsconfig.json","check:1:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*'","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')","check:1:installed-check":"installed-check"},"_npmUser":{"name":"voxpelli","email":"pelle@kodfabrik.se"},"repository":{"url":"git://github.com/voxpelli/typed-utils.git","type":"git"},"_npmVersion":"11.6.1","description":"My personal (type-enabled) utils / helpers","directories":{},"_nodeVersion":"22.19.0","dependencies":{"@voxpelli/type-helpers":"^3.5.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsd":"^0.32.0","chai":"^4.5.0","knip":"^5.60.2","husky":"^9.1.7","mocha":"^11.6.0","eslint":"^9.28.0","typescript":"~5.8.3","@types/chai":"^4.3.20","@types/mocha":"^10.0.10","npm-run-all2":"^8.0.4","type-coverage":"^2.29.7","installed-check":"^9.3.0","@voxpelli/tsconfig":"^15.1.2","@voxpelli/eslint-config":"^23.0.0","validate-conventional-commit":"^1.0.4"},"_npmOperationalInternal":{"tmp":"tmp/typed-utils_2.4.0_1758878785573_0.0042736773251064175","host":"s3://npm-registry-packages-npm-production"}},"2.4.1":{"name":"@voxpelli/typed-utils","version":"2.4.1","keywords":[],"author":{"url":"http://kodfabrik.se/","name":"Pelle Wessman","email":"pelle@kodfabrik.se"},"license":"MIT","_id":"@voxpelli/typed-utils@2.4.1","maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"homepage":"http://github.com/voxpelli/typed-utils","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"dist":{"shasum":"711896ba7cbe7fa569edc15810382f0b9bbffcb3","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-2.4.1.tgz","fileCount":29,"integrity":"sha512-d7Ypz0kgOW9tL1PNJpHv9u8PLq0Ko33P+d0t89b+RkccMvVkUBsElIkVqsziU2L9/Xyy8n9u5PnlPy6iWHNvBw==","signatures":[{"sig":"MEUCIGznYzMrR2AR7Wt2YhNX7g62xoUTua6vRwzRZHCUthbxAiEA9kajWNNGGSJLtq3XQLlpxjq73ekFNrR+jCgOy1J7QIE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@voxpelli%2ftyped-utils@2.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":38193},"type":"module","types":"index.d.ts","engines":{"node":"^20.11.0 || >=22.0.0"},"exports":"./index.js","gitHead":"77e4343cd45a17d1303624ebe4e6d33853583297","scripts":{"test":"run-s check test:*","build":"run-s build:*","check":"run-s check:*","clean":"run-p clean:*","build:0":"run-s clean","check:0":"run-s clean","check:1":"run-p check:1:*","prepack":"run-s build","prepare":"husky","test-ci":"run-s test:*","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","check:1:tsc":"tsc","check:2-tsd":"run-s build && tsd && run-s clean","check:1:knip":"knip","check:1:lint":"eslint","build:1-declaration":"tsc -p declaration.tsconfig.json","check:1:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*'","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')","check:1:installed-check":"installed-check"},"_npmUser":{"name":"voxpelli","email":"pelle@kodfabrik.se"},"repository":{"url":"git://github.com/voxpelli/typed-utils.git","type":"git"},"_npmVersion":"11.6.1","description":"My personal (type-enabled) utils / helpers","directories":{},"_nodeVersion":"22.19.0","dependencies":{"@voxpelli/type-helpers":"^3.5.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsd":"^0.33.0","chai":"^4.5.0","knip":"^5.64.0","husky":"^9.1.7","mocha":"^11.7.2","eslint":"^9.36.0","typescript":"~5.9.0","@types/chai":"^4.3.20","@types/mocha":"^10.0.10","npm-run-all2":"^8.0.4","type-coverage":"^2.29.7","installed-check":"^9.3.0","@voxpelli/tsconfig":"^16.1.0","@voxpelli/eslint-config":"^23.0.0","validate-conventional-commit":"^1.0.4"},"_npmOperationalInternal":{"tmp":"tmp/typed-utils_2.4.1_1758887551746_0.5009564799548758","host":"s3://npm-registry-packages-npm-production"}},"2.4.2":{"name":"@voxpelli/typed-utils","version":"2.4.2","keywords":[],"author":{"url":"http://kodfabrik.se/","name":"Pelle Wessman","email":"pelle@kodfabrik.se"},"license":"MIT","_id":"@voxpelli/typed-utils@2.4.2","maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"homepage":"http://github.com/voxpelli/typed-utils","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"dist":{"shasum":"fd26d5f3de1f5449eccf9eb8bcb7e30d2361b817","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-2.4.2.tgz","fileCount":29,"integrity":"sha512-iE6vrz8T6nJnplbO1mAEobtggcfTRmJI2ysB4XGWa1I22ixSPs4EZBKnWFtvqsGpFgilgh4at7M1hbACiZTJ3g==","signatures":[{"sig":"MEUCICJPxy6t1teVsfsXuyw/1JTuEWzPAU32qZMd87TFrjuWAiEA5/l1j0/XUVAK5e67Kpm2bXThLKdjluNvX9LxhKdsb5k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@voxpelli%2ftyped-utils@2.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":38261},"type":"module","types":"index.d.ts","engines":{"node":"^20.11.0 || >=22.0.0"},"exports":"./index.js","gitHead":"fe2453f879ff18a68b5cbf4ac0c23e784ec9ea9b","scripts":{"test":"run-s check test:*","build":"run-s build:*","check":"run-s check:*","clean":"run-p clean:*","build:0":"run-s clean","check:0":"run-s clean","check:1":"run-p check:1:*","prepack":"run-s build","prepare":"husky","test-ci":"run-s test:*","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","check:1:tsc":"tsc","check:2-tsd":"run-s build && tsd && run-s clean","check:1:knip":"knip","check:1:lint":"eslint","build:1-declaration":"tsc -p declaration.tsconfig.json","check:1:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*'","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')","check:1:installed-check":"installed-check"},"_npmUser":{"name":"voxpelli","email":"pelle@kodfabrik.se"},"repository":{"url":"git://github.com/voxpelli/typed-utils.git","type":"git"},"_npmVersion":"11.6.1","description":"My personal (type-enabled) utils / helpers","directories":{},"_nodeVersion":"22.19.0","dependencies":{"@voxpelli/type-helpers":"^3.5.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsd":"^0.33.0","chai":"^4.5.0","knip":"^5.64.0","husky":"^9.1.7","mocha":"^11.7.2","eslint":"^9.36.0","typescript":"~5.9.0","@types/chai":"^4.3.20","@types/mocha":"^10.0.10","npm-run-all2":"^8.0.4","type-coverage":"^2.29.7","installed-check":"^9.3.0","@voxpelli/tsconfig":"^16.1.0","@voxpelli/eslint-config":"^23.0.0","validate-conventional-commit":"^1.0.4"},"_npmOperationalInternal":{"tmp":"tmp/typed-utils_2.4.2_1759145922645_0.7222528005027582","host":"s3://npm-registry-packages-npm-production"}},"2.4.3":{"name":"@voxpelli/typed-utils","version":"2.4.3","keywords":[],"author":{"url":"http://kodfabrik.se/","name":"Pelle Wessman","email":"pelle@kodfabrik.se"},"license":"MIT","_id":"@voxpelli/typed-utils@2.4.3","maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"homepage":"http://github.com/voxpelli/typed-utils","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"dist":{"shasum":"f47ade77cb816112214dc66088358f645aa788f6","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-2.4.3.tgz","fileCount":29,"integrity":"sha512-SsnhTLOSbszEixbaz3MG9KdfIzhbPoAecaOG5cU0QSGFSgvvl0RgLR0YTTDS8Iyte8KSfq3xS1xX5B8CKC8xWw==","signatures":[{"sig":"MEUCIB8mIl1turca/QXXRkH70Wn0j0OvH7GKkyWNIFrTvc46AiEApc4hBpldM99FNsSacpoguKaq189+EW6vPUEKkzkDyVI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@voxpelli%2ftyped-utils@2.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":38514},"type":"module","types":"index.d.ts","engines":{"node":"^20.11.0 || >=22.0.0"},"exports":"./index.js","gitHead":"16eff5950b52272d672af40fa377c1aa9741ea0c","scripts":{"test":"run-s check test:*","build":"run-s build:*","check":"run-s check:*","clean":"run-p clean:*","build:0":"run-s clean","check:0":"run-s clean","check:1":"run-p check:1:*","prepack":"run-s build","prepare":"husky","test-ci":"run-s test:*","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","check:1:tsc":"tsc","check:2-tsd":"run-s build && tsd && run-s clean","check:1:knip":"knip","check:1:lint":"eslint","build:1-declaration":"tsc -p declaration.tsconfig.json","check:1:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*'","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')","check:1:installed-check":"installed-check"},"_npmUser":{"name":"voxpelli","email":"pelle@kodfabrik.se"},"repository":{"url":"git://github.com/voxpelli/typed-utils.git","type":"git"},"_npmVersion":"11.6.1","description":"My personal (type-enabled) utils / helpers","directories":{},"_nodeVersion":"22.19.0","dependencies":{"@voxpelli/type-helpers":"^3.5.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsd":"^0.33.0","chai":"^4.5.0","knip":"^5.64.0","husky":"^9.1.7","mocha":"^11.7.2","eslint":"^9.36.0","typescript":"~5.9.0","@types/chai":"^4.3.20","@types/mocha":"^10.0.10","npm-run-all2":"^8.0.4","type-coverage":"^2.29.7","installed-check":"^9.3.0","@voxpelli/tsconfig":"^16.1.0","@voxpelli/eslint-config":"^23.0.0","validate-conventional-commit":"^1.0.4"},"_npmOperationalInternal":{"tmp":"tmp/typed-utils_2.4.3_1759154888218_0.26474549937490766","host":"s3://npm-registry-packages-npm-production"}},"2.4.4":{"name":"@voxpelli/typed-utils","version":"2.4.4","keywords":[],"author":{"url":"http://kodfabrik.se/","name":"Pelle Wessman","email":"pelle@kodfabrik.se"},"license":"MIT","_id":"@voxpelli/typed-utils@2.4.4","maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"homepage":"http://github.com/voxpelli/typed-utils","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"dist":{"shasum":"a091230bd1939ac2ac3a20e0a657b1696c8b0e2e","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-2.4.4.tgz","fileCount":29,"integrity":"sha512-npH6EvTipiQjz94OVIeSnI/thPCdxVhkaLN+2QS+7mHmFfCk7ymp7MDcrRAyri3QbXQNDLsyjbIdemvuXQAz9w==","signatures":[{"sig":"MEQCIEZC4wGvWr8M9E46aROwseXu61ddrJ2h+7ZsO9Ru7l6WAiBusutlKSfxIiv+zf7CWxp22+IrRuxArF8+ECbBtC5eKg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@voxpelli%2ftyped-utils@2.4.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":38308},"type":"module","types":"index.d.ts","engines":{"node":"^20.11.0 || >=22.0.0"},"exports":"./index.js","gitHead":"111e024df9049f7080faa4cb9af4be3f2b131cac","scripts":{"test":"run-s check test:*","build":"run-s build:*","check":"run-s check:*","clean":"run-p clean:*","build:0":"run-s clean","check:0":"run-s clean","check:1":"run-p check:1:*","prepack":"run-s build","prepare":"husky","test-ci":"run-s test:*","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","check:1:tsc":"tsc","check:2-tsd":"run-s build && tsd && run-s clean","check:1:knip":"knip","check:1:lint":"eslint","build:1-declaration":"tsc -p declaration.tsconfig.json","check:1:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*'","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')","check:1:installed-check":"installed-check"},"_npmUser":{"name":"voxpelli","email":"pelle@kodfabrik.se"},"repository":{"url":"git://github.com/voxpelli/typed-utils.git","type":"git"},"_npmVersion":"11.6.1","description":"My personal (type-enabled) utils / helpers","directories":{},"_nodeVersion":"22.19.0","dependencies":{"@voxpelli/type-helpers":"^3.5.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsd":"^0.33.0","chai":"^4.5.0","knip":"^5.64.0","husky":"^9.1.7","mocha":"^11.7.2","eslint":"^9.36.0","typescript":"~5.9.0","@types/chai":"^4.3.20","@types/mocha":"^10.0.10","npm-run-all2":"^8.0.4","type-coverage":"^2.29.7","installed-check":"^9.3.0","@voxpelli/tsconfig":"^16.1.0","@voxpelli/eslint-config":"^23.0.0","validate-conventional-commit":"^1.0.4"},"_npmOperationalInternal":{"tmp":"tmp/typed-utils_2.4.4_1759156095811_0.782441585465288","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"@voxpelli/typed-utils","version":"2.5.0","keywords":[],"author":{"url":"http://kodfabrik.se/","name":"Pelle Wessman","email":"pelle@kodfabrik.se"},"license":"MIT","_id":"@voxpelli/typed-utils@2.5.0","maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"homepage":"http://github.com/voxpelli/typed-utils","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"dist":{"shasum":"eeb9fa9673ace13cf0185d080a23bc63c42cd8a6","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-2.5.0.tgz","fileCount":29,"integrity":"sha512-1Twz/NNfI0UGJD6rEN8yGLV/3fqutxV0gOGx6ATQX8L6thCTo62IeF6L9752Q8sK98oqNN+cM3DaKCAo+h922Q==","signatures":[{"sig":"MEUCIQDDvtUnAb0rxQ9B2PjlNr8zVe8ewi3RhQg/o9Lvgorv/gIgWQqh3I4n9ggNQl7/NszmzDNFqo9pTkS9t1dBOQNMzUY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@voxpelli%2ftyped-utils@2.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41720},"type":"module","types":"index.d.ts","engines":{"node":"^20.11.0 || >=22.0.0"},"exports":"./index.js","gitHead":"6a21d0eb535d6a574654e5044181346d4fc0eabb","scripts":{"test":"run-s check test:*","build":"run-s build:*","check":"run-s check:*","clean":"run-p clean:*","build:0":"run-s clean","check:0":"run-s clean","check:1":"run-p check:1:*","prepack":"run-s build","prepare":"husky","test-ci":"run-s test:*","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","check:1:tsc":"tsc","check:2-tsd":"run-s build && tsd && run-s clean","check:1:knip":"knip","check:1:lint":"eslint","build:1-declaration":"tsc -p declaration.tsconfig.json","check:1:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*'","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')","check:1:installed-check":"installed-check"},"_npmUser":{"name":"voxpelli","email":"pelle@kodfabrik.se"},"repository":{"url":"git://github.com/voxpelli/typed-utils.git","type":"git"},"_npmVersion":"11.6.1","description":"My personal (type-enabled) utils / helpers","directories":{},"_nodeVersion":"22.19.0","dependencies":{"@voxpelli/type-helpers":"^3.5.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsd":"^0.33.0","chai":"^4.5.0","knip":"^5.64.0","husky":"^9.1.7","mocha":"^11.7.2","eslint":"^9.36.0","typescript":"~5.9.0","@types/chai":"^4.3.20","@types/mocha":"^10.0.10","npm-run-all2":"^8.0.4","type-coverage":"^2.29.7","installed-check":"^9.3.0","@voxpelli/tsconfig":"^16.1.0","@voxpelli/eslint-config":"^23.0.0","validate-conventional-commit":"^1.0.4"},"_npmOperationalInternal":{"tmp":"tmp/typed-utils_2.5.0_1759168821806_0.7914187314122281","host":"s3://npm-registry-packages-npm-production"}},"2.6.0":{"name":"@voxpelli/typed-utils","version":"2.6.0","keywords":[],"author":{"url":"http://kodfabrik.se/","name":"Pelle Wessman","email":"pelle@kodfabrik.se"},"license":"MIT","_id":"@voxpelli/typed-utils@2.6.0","maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"homepage":"http://github.com/voxpelli/typed-utils","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"dist":{"shasum":"32fa29d26a0f93e74bc1253709d19b815f57bf57","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-2.6.0.tgz","fileCount":29,"integrity":"sha512-9RYps32Or47sPtaMHSO+oD/RAvSMxb0bar/oZRpGQUWVGMcNgk0b+C5WleFoPCfRz2vMo4yu3iaQM2iwso2xjw==","signatures":[{"sig":"MEUCIBiDLfmGhw79tQjCcEwIFgjeypAnxivBJZCAtiZbpr71AiEAhmlUnA+6/PiR9x+WMkhfwabfF2oxVDzNw0WQScAUkG8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@voxpelli%2ftyped-utils@2.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":44108},"type":"module","types":"index.d.ts","engines":{"node":"^20.11.0 || >=22.0.0"},"exports":"./index.js","gitHead":"6dce05fbb1b7fe230bae3588807c897f15e11762","scripts":{"test":"run-s check test:*","build":"run-s build:*","check":"run-s check:*","clean":"run-p clean:*","build:0":"run-s clean","check:0":"run-s clean","check:1":"run-p check:1:*","prepack":"run-s build","prepare":"husky","test-ci":"run-s test:*","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","check:1:tsc":"tsc","check:2-tsd":"run-s build && tsd && run-s clean","check:1:knip":"knip","check:1:lint":"eslint","build:1-declaration":"tsc -p declaration.tsconfig.json","check:1:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*'","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')","check:1:installed-check":"installed-check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7943aacd-2217-43df-89d3-06b8c07e3910"}},"repository":{"url":"git://github.com/voxpelli/typed-utils.git","type":"git"},"_npmVersion":"11.7.0","description":"My personal (type-enabled) utils / helpers","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@voxpelli/type-helpers":"^3.5.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsd":"^0.33.0","chai":"^4.5.0","knip":"^5.64.0","husky":"^9.1.7","mocha":"^11.7.2","eslint":"^9.36.0","typescript":"~5.9.0","@types/chai":"^4.3.20","@types/mocha":"^10.0.10","npm-run-all2":"^8.0.4","type-coverage":"^2.29.7","installed-check":"^9.3.0","@voxpelli/tsconfig":"^16.1.0","@voxpelli/eslint-config":"^23.0.0","validate-conventional-commit":"^1.0.4"},"_npmOperationalInternal":{"tmp":"tmp/typed-utils_2.6.0_1768917107856_0.08290345961856693","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@voxpelli/typed-utils","version":"3.0.0","keywords":[],"author":{"url":"http://kodfabrik.se/","name":"Pelle Wessman","email":"pelle@kodfabrik.se"},"license":"MIT","_id":"@voxpelli/typed-utils@3.0.0","maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"homepage":"http://github.com/voxpelli/typed-utils","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"dist":{"shasum":"43aaa57b8150f9df47eb4e5ad85b1afd6af02964","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-3.0.0.tgz","fileCount":35,"integrity":"sha512-DkP6CRnIh3LpcsVfGvKhnCs9ggXBJqA1VJpgiUFaFkg4phfEGqDro5urBtCVdJeU2JqrGDk3pyL4fHk1bL5avQ==","signatures":[{"sig":"MEUCIGNN6cmlNaT+4TMyFvryeYkh8RK1sKEKiDbnHS3KkaTSAiEAqSX5c0SG/XxB5QaRoBUv0xfcM3H2yzOj7dD+0BBjOVU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@voxpelli%2ftyped-utils@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":53947},"type":"module","types":"index.d.ts","engines":{"node":"^20.11.0 || >=22.0.0","typescript":">=5.8"},"exports":"./index.js","gitHead":"37e031afe4d4a167ccbc0417dc2ea2dbf7c01ea7","scripts":{"test":"run-s check test:*","build":"run-s build:*","check":"run-s check:*","clean":"run-p clean:*","build:0":"run-s clean","check:0":"run-s clean","check:1":"run-p check:1:*","prepack":"run-s build","prepare":"husky","test-ci":"run-s test:mocha","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","check:1:tsc":"tsc","check:1:knip":"knip","check:1:lint":"eslint","test:tstyche":"run-s build && tstyche --target \"$(jq -r '.engines.typescript' package.json)\" --reporters ./node_modules/@voxpelli/tstyche-reporters/lib/tstyche-dot-reporter.js,summary && run-s clean","check:2-type-tests":"run-s build && tstyche --reporters ./node_modules/@voxpelli/tstyche-reporters/lib/tstyche-mocha-reporter.js,summary && run-s clean","build:1-declaration":"tsc -p declaration.tsconfig.json","check:1:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*' --ignore-files 'typetests/*'","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')","check:1:installed-check":"installed-check --engine-check --version-check -i tstyche -i @voxpelli/tstyche-reporters -i typescript"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7943aacd-2217-43df-89d3-06b8c07e3910"}},"repository":{"url":"git://github.com/voxpelli/typed-utils.git","type":"git"},"_npmVersion":"11.8.0","description":"My personal (type-enabled) utils / helpers","directories":{},"_nodeVersion":"24.13.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","chai":"^4.5.0","knip":"^5.82.1","husky":"^9.1.7","mocha":"^11.7.5","eslint":"^9.39.2","tstyche":"^6.1.0","typescript":"~5.9.3","@types/chai":"^4.3.20","@types/mocha":"^10.0.10","npm-run-all2":"^8.0.4","type-coverage":"^2.29.7","installed-check":"^9.3.0","@voxpelli/tsconfig":"^16.1.0","@voxpelli/eslint-config":"^23.0.0","@voxpelli/tstyche-reporters":"^1.0.0","validate-conventional-commit":"^1.0.4"},"peerDependencies":{"typescript":">=5.8.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/typed-utils_3.0.0_1769702375747_0.32007611262900304","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"@voxpelli/typed-utils","version":"3.1.0","keywords":[],"author":{"url":"http://kodfabrik.se/","name":"Pelle Wessman","email":"pelle@kodfabrik.se"},"license":"MIT","_id":"@voxpelli/typed-utils@3.1.0","maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"homepage":"http://github.com/voxpelli/typed-utils","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"dist":{"shasum":"0524aff96ebd243251411ae71a430f6e2fb4eb63","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-3.1.0.tgz","fileCount":35,"integrity":"sha512-Ft4D3Vk4a1Vzo8qTR9jUWpuAl62XC6S9uyAe8wfyirFAcFL7dpIYCt24uisP7s7640sduGEUKluhLSV/CF/tWw==","signatures":[{"sig":"MEUCIG2e5LhXj9GLfuIrgDNVyjMqE+ui5t3+Sv1M0nqjIgWgAiEA1hQsAfTkxev1PI3muUh+WGvvHtF+KTjK7czdd96cqc8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@voxpelli%2ftyped-utils@3.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":55090},"type":"module","types":"index.d.ts","engines":{"node":"^20.11.0 || >=22.0.0","typescript":">=5.8"},"exports":"./index.js","gitHead":"335dc97e3b0aa2cc2dea6b2a7d9bfa9c5adee53a","scripts":{"test":"run-s check test:*","build":"run-s build:*","check":"run-s check:*","clean":"run-p clean:*","build:0":"run-s clean","check:0":"run-s clean","check:1":"run-p check:1:*","prepack":"run-s build","prepare":"husky","test-ci":"run-s test:mocha","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","check:1:tsc":"tsc","check:1:knip":"knip","check:1:lint":"eslint","test:tstyche":"run-s build && tstyche --target \"$(jq -r '.engines.typescript' package.json)\" --reporters dot,summary && run-s clean","check:2-type-tests":"run-s build && tstyche --reporters ./node_modules/@voxpelli/tstyche-reporters/lib/tstyche-mocha-reporter.js,summary && run-s clean","build:1-declaration":"tsc -p declaration.tsconfig.json","check:1:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*' --ignore-files 'typetests/*'","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')","check:1:installed-check":"installed-check --engine-check --version-check -i tstyche -i @voxpelli/tstyche-reporters -i typescript"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7943aacd-2217-43df-89d3-06b8c07e3910"}},"repository":{"url":"git://github.com/voxpelli/typed-utils.git","type":"git"},"_npmVersion":"11.10.1","description":"My personal (type-enabled) utils / helpers","directories":{},"_nodeVersion":"24.13.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","chai":"^4.5.0","knip":"^5.82.1","husky":"^9.1.7","mocha":"^11.7.5","eslint":"^9.39.2","tstyche":"^6.2.0","typescript":"~5.9.3","@types/chai":"^4.3.20","@types/mocha":"^10.0.10","npm-run-all2":"^8.0.4","type-coverage":"^2.29.7","installed-check":"^9.3.0","@voxpelli/tsconfig":"^16.1.0","@voxpelli/eslint-config":"^23.0.0","@voxpelli/tstyche-reporters":"^1.0.0","validate-conventional-commit":"^1.0.4"},"peerDependencies":{"typescript":">=5.8.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/typed-utils_3.1.0_1771601690899_0.702050349762041","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"@voxpelli/typed-utils","version":"3.2.0","keywords":[],"author":{"url":"http://kodfabrik.se/","name":"Pelle Wessman","email":"pelle@kodfabrik.se"},"license":"MIT","_id":"@voxpelli/typed-utils@3.2.0","maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"homepage":"http://github.com/voxpelli/typed-utils","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"dist":{"shasum":"d56e233f51874d1e4ad9ad241b402122196008f7","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-3.2.0.tgz","fileCount":35,"integrity":"sha512-JV1s5VLt3g8hY8MjI1kwKp0y2wJxdbOfBmZSdhsJ0U0lo3AFfWC16wFIhhstOafeOy2n7vJY2JhBYPmxKHhVXg==","signatures":[{"sig":"MEUCIQDs6WiqsrXZzPBYS+sovLLwCGOlmQe5jQFgXOdNbDHCcwIgPkQDIvv8BpPhUGWPOEsHAFE1fi/glRD4koaHHr97b8Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@voxpelli%2ftyped-utils@3.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":55572},"type":"module","types":"index.d.ts","engines":{"node":"^20.11.0 || >=22.0.0","typescript":">=5.8"},"exports":"./index.js","gitHead":"791e7e012b261963bfc39095b9f49c458b05161f","scripts":{"test":"run-s check test:*","build":"run-s build:*","check":"run-s check:*","clean":"run-p clean:*","build:0":"run-s clean","check:0":"run-s clean","check:1":"run-p check:1:*","prepack":"run-s build","prepare":"husky","test-ci":"run-s test:mocha","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","check:1:tsc":"tsc","check:1:knip":"knip","check:1:lint":"eslint","test:tstyche":"run-s build && tstyche --target \"$(jq -r '.engines.typescript' package.json)\" --reporters dot,summary && run-s clean","check:2-type-tests":"run-s build && tstyche --reporters ./node_modules/@voxpelli/tstyche-reporters/lib/tstyche-mocha-reporter.js,summary && run-s clean","build:1-declaration":"tsc -p declaration.tsconfig.json","check:1:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*' --ignore-files 'typetests/*'","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')","check:1:installed-check":"installed-check --engine-check --version-check -i tstyche -i @voxpelli/tstyche-reporters -i typescript"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7943aacd-2217-43df-89d3-06b8c07e3910"}},"repository":{"url":"git://github.com/voxpelli/typed-utils.git","type":"git"},"_npmVersion":"11.11.0","description":"My personal (type-enabled) utils / helpers","directories":{},"_nodeVersion":"24.13.1","_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","chai":"^4.5.0","knip":"^5.85.0","husky":"^9.1.7","mocha":"^11.7.5","eslint":"^9.39.3","tstyche":"^6.2.0","typescript":"~5.9.3","@types/chai":"^4.3.20","@types/mocha":"^10.0.10","npm-run-all2":"^8.0.4","type-coverage":"^2.29.7","installed-check":"^9.3.0","@voxpelli/tsconfig":"^16.1.0","@voxpelli/eslint-config":"^23.0.0","@voxpelli/tstyche-reporters":"^1.1.0","validate-conventional-commit":"^1.0.4"},"peerDependencies":{"typescript":">=5.8.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/typed-utils_3.2.0_1772137799558_0.9892112710016305","host":"s3://npm-registry-packages-npm-production"}},"3.2.1":{"name":"@voxpelli/typed-utils","version":"3.2.1","keywords":[],"author":{"url":"http://kodfabrik.se/","name":"Pelle Wessman","email":"pelle@kodfabrik.se"},"license":"MIT","_id":"@voxpelli/typed-utils@3.2.1","maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"homepage":"http://github.com/voxpelli/typed-utils","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"dist":{"shasum":"88fd2f7ef7308c8ad9c1ca8e42e3db3d77ef2002","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-3.2.1.tgz","fileCount":35,"integrity":"sha512-dTI/DwFYkkzTUV1sXTf0Bv7cacgY72MkgLGe7MzNc7LIKhLfjEiXMnhcZAyduO0tOCnyMTxwI4kGq/21h1JYTg==","signatures":[{"sig":"MEUCIQCpHV0CXfFexvz5QHMxFJ80SDns2VjUHqGr1a55lhAOdAIgLQUGT6Ba8MaFu5Nz/SDNMC7/3ZV139nBjnKgBm3P/pw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@voxpelli%2ftyped-utils@3.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":55433},"type":"module","types":"index.d.ts","engines":{"node":"^20.11.0 || >=22.0.0","typescript":">=5.8"},"exports":"./index.js","gitHead":"51d8e6937e1a1355d4cbacbc44afa0c42db5bf40","scripts":{"test":"run-s check test:*","build":"run-s build:*","check":"run-s check:*","clean":"run-p clean:*","build:0":"run-s clean","check:0":"run-s clean","check:1":"run-p check:1:*","prepack":"run-s build","prepare":"husky","test-ci":"run-s test:mocha","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","check:1:tsc":"tsc","check:1:knip":"knip","check:1:lint":"eslint","test:tstyche":"run-s build && tstyche --target \"$(jq -r '.engines.typescript' package.json)\" --reporters dot,summary && run-s clean","check:2-type-tests":"run-s build && tstyche --reporters ./node_modules/@voxpelli/tstyche-reporters/lib/tstyche-mocha-reporter.js,summary && run-s clean","build:1-declaration":"tsc -p declaration.tsconfig.json","check:1:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*' --ignore-files 'typetests/*'","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')","check:1:installed-check":"installed-check --engine-check --version-check -i tstyche -i @voxpelli/tstyche-reporters -i typescript"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7943aacd-2217-43df-89d3-06b8c07e3910"}},"repository":{"url":"git://github.com/voxpelli/typed-utils.git","type":"git"},"_npmVersion":"11.11.0","description":"My personal (type-enabled) utils / helpers","directories":{},"_nodeVersion":"24.13.1","_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","chai":"^4.5.0","knip":"^5.85.0","husky":"^9.1.7","mocha":"^11.7.5","eslint":"^9.39.3","tstyche":"^6.2.0","typescript":"~5.9.3","@types/chai":"^4.3.20","@types/mocha":"^10.0.10","npm-run-all2":"^8.0.4","type-coverage":"^2.29.7","installed-check":"^9.3.0","@voxpelli/tsconfig":"^16.1.0","@voxpelli/eslint-config":"^23.0.0","@voxpelli/tstyche-reporters":"^1.1.0","validate-conventional-commit":"^1.0.4"},"_npmOperationalInternal":{"tmp":"tmp/typed-utils_3.2.1_1772293580725_0.11658272793548607","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"@voxpelli/typed-utils","version":"4.0.0","keywords":[],"author":{"url":"http://kodfabrik.se/","name":"Pelle Wessman","email":"pelle@kodfabrik.se"},"license":"MIT","_id":"@voxpelli/typed-utils@4.0.0","maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"homepage":"http://github.com/voxpelli/typed-utils","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"dist":{"shasum":"f8ad0c271dcb363a2e00ad7923541a3b0d816a02","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-4.0.0.tgz","fileCount":35,"integrity":"sha512-Znt9N8u3jV6tu2/dI11o3pS8RPVDvi+Smkj/MxHFgU/EpSvSgULfItABjItxp2axnwIGLtE66gHgdtS5tJWHaw==","signatures":[{"sig":"MEQCIGo8YZ6ioyvUDcuBrIGW4/GOLpVgA8UUNDJhPYQzPm0bAiAtg3gJovC0ul7TBgwAjJnrPJU8lh3ItV9R+v7K/zv3SA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@voxpelli%2ftyped-utils@4.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58506},"type":"module","types":"index.d.ts","engines":{"node":"^20.11.0 || >=22.0.0","typescript":">=5.8"},"exports":"./index.js","gitHead":"6516c7ed20db65063bf2c8c02ecd303219ca9e05","scripts":{"test":"run-s check test:*","build":"run-s build:*","check":"run-s check:*","clean":"run-p clean:*","build:0":"run-s clean","check:0":"run-s clean","check:1":"run-p check:1:*","prepack":"run-s build","prepare":"husky","test-ci":"run-s test:mocha","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","check:1:tsc":"tsc","check:1:knip":"knip","check:1:lint":"eslint","test:tstyche":"run-s build && tstyche --target \"$(jq -r '.engines.typescript' package.json)\" --reporters dot,summary && run-s clean","check:2-type-tests":"run-s build && tstyche --reporters ./node_modules/@voxpelli/tstyche-reporters/lib/tstyche-mocha-reporter.js,summary && run-s clean","build:1-declaration":"tsc -p declaration.tsconfig.json","check:1:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*' --ignore-files 'typetests/*'","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')","check:1:installed-check":"installed-check --engine-check --version-check -i tstyche -i @voxpelli/tstyche-reporters -i typescript"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7943aacd-2217-43df-89d3-06b8c07e3910"}},"repository":{"url":"git://github.com/voxpelli/typed-utils.git","type":"git"},"_npmVersion":"11.11.0","description":"My personal (type-enabled) utils / helpers","directories":{},"_nodeVersion":"24.13.1","_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","chai":"^4.5.0","knip":"^5.85.0","husky":"^9.1.7","mocha":"^11.7.5","eslint":"^9.39.3","tstyche":"^6.2.0","typescript":"~5.9.3","@types/chai":"^4.3.20","@types/mocha":"^10.0.10","npm-run-all2":"^8.0.4","type-coverage":"^2.29.7","installed-check":"^9.3.0","@voxpelli/tsconfig":"^16.1.0","@voxpelli/eslint-config":"^23.0.0","@voxpelli/tstyche-reporters":"^1.1.0","validate-conventional-commit":"^1.0.4"},"_npmOperationalInternal":{"tmp":"tmp/typed-utils_4.0.0_1772386568220_0.8638294160619979","host":"s3://npm-registry-packages-npm-production"}},"4.1.0":{"name":"@voxpelli/typed-utils","version":"4.1.0","keywords":[],"author":{"url":"http://kodfabrik.se/","name":"Pelle Wessman","email":"pelle@kodfabrik.se"},"license":"MIT","_id":"@voxpelli/typed-utils@4.1.0","maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"homepage":"http://github.com/voxpelli/typed-utils","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"dist":{"shasum":"1003c5e9fe8510fe478c9d8a59154bd4d5af70eb","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-4.1.0.tgz","fileCount":35,"integrity":"sha512-wtLJUT6pyrLLrn0vgeJkgaUFCnv5Mu2sFQZgpWwBXJEean3ynUv2dyFCHokvtkegDKOtkxLm7fELlyjekP9cOg==","signatures":[{"sig":"MEQCICS0S8rGX98exfv2oSQCieusyLjVlJawN/jMP+/79XXSAiAJ/708VaVC1hQJjbM2CYruimTlHTbXr+EGrMd+VfLSxw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@voxpelli%2ftyped-utils@4.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":66353},"type":"module","types":"index.d.ts","engines":{"node":"^20.11.0 || >=22.0.0","typescript":">=5.8"},"exports":"./index.js","gitHead":"0b0d3e751cba6291a4e9051cc12a4fb868dab295","scripts":{"test":"run-s check test:*","build":"run-s build:*","check":"run-s check:*","clean":"run-p clean:*","build:0":"run-s clean","check:0":"run-s clean","check:1":"run-p check:1:*","prepack":"run-s build","prepare":"husky","test-ci":"run-s test:mocha","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","check:1:tsc":"tsc","check:1:knip":"knip","check:1:lint":"eslint","test:tstyche":"run-s build && tstyche --target \"$(jq -r '.engines.typescript' package.json)\" --reporters dot,summary && run-s clean","check:2-type-tests":"run-s build && tstyche --reporters ./node_modules/@voxpelli/tstyche-reporters/lib/tstyche-mocha-reporter.js,summary && run-s clean","build:1-declaration":"tsc -p declaration.tsconfig.json","check:1:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*' --ignore-files 'typetests/*'","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')","check:1:installed-check":"installed-check --engine-check --version-check -i tstyche -i @voxpelli/tstyche-reporters -i typescript -i installed-check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7943aacd-2217-43df-89d3-06b8c07e3910"}},"repository":{"url":"git://github.com/voxpelli/typed-utils.git","type":"git"},"_npmVersion":"11.11.1","description":"My personal (type-enabled) utils / helpers","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","chai":"^4.5.0","knip":"^5.86.0","husky":"^9.1.7","mocha":"^11.7.5","eslint":"^9.39.4","tstyche":"^6.2.0","typescript":"~5.9.3","@types/chai":"^4.3.20","@types/mocha":"^10.0.10","npm-run-all2":"^8.0.4","type-coverage":"^2.29.7","installed-check":"^10.0.1","@voxpelli/tsconfig":"^16.1.0","@voxpelli/eslint-config":"^23.0.0","@voxpelli/tstyche-reporters":"^1.1.0","validate-conventional-commit":"^1.0.4"},"_npmOperationalInternal":{"tmp":"tmp/typed-utils_4.1.0_1773346881836_0.03071886313201988","host":"s3://npm-registry-packages-npm-production"}},"4.2.0":{"name":"@voxpelli/typed-utils","version":"4.2.0","keywords":[],"author":{"url":"http://kodfabrik.se/","name":"Pelle Wessman","email":"pelle@kodfabrik.se"},"license":"MIT","_id":"@voxpelli/typed-utils@4.2.0","maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"homepage":"http://github.com/voxpelli/typed-utils","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"dist":{"shasum":"3fa1350cd45b7f6af4708a735938489f807671f2","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-4.2.0.tgz","fileCount":35,"integrity":"sha512-hrTbzqS+H6ITXtoPDm3R6Ij/1WKf2V4+YEHE8qpE3+LE8AtU7jzKG70ctC8EAoeotHEoeHW7H7DzdQKCWVm0aw==","signatures":[{"sig":"MEUCIDIyFehgpw5QQGIR8XyuH0NGaUmR9W8XE7OU4tMhkQS7AiEA+/KUuqaMMf7x1sUNCYxyWAj4ur829TuOx+mZYTHKBaY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@voxpelli%2ftyped-utils@4.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":66627},"type":"module","types":"index.d.ts","engines":{"node":"^20.11.0 || >=22.0.0","typescript":">=5.8"},"exports":"./index.js","gitHead":"582807c13a2194159e612e7d204865ed6dd19621","scripts":{"test":"run-s check test:*","build":"run-s build:*","check":"run-s check:*","clean":"run-p clean:*","build:0":"run-s clean","check:0":"run-s clean","check:1":"run-p check:1:*","prepack":"run-s build","prepare":"husky","test-ci":"run-s test:mocha","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","check:1:tsc":"tsc","check:1:knip":"knip","check:1:lint":"eslint","test:tstyche":"run-s build && tstyche --target \"$(jq -r '.engines.typescript' package.json)\" --reporters dot,summary && run-s clean","check:2-type-tests":"run-s build && tstyche --reporters ./node_modules/@voxpelli/tstyche-reporters/lib/tstyche-mocha-reporter.js,summary && run-s clean","build:1-declaration":"tsc -p declaration.tsconfig.json","check:1:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*' --ignore-files 'typetests/*'","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')","check:1:installed-check":"installed-check --engine-check --version-check -i tstyche -i @voxpelli/tstyche-reporters -i typescript -i installed-check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7943aacd-2217-43df-89d3-06b8c07e3910"}},"repository":{"url":"git://github.com/voxpelli/typed-utils.git","type":"git"},"_npmVersion":"11.12.0","description":"My personal (type-enabled) utils / helpers","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","chai":"^4.5.0","knip":"^5.86.0","husky":"^9.1.7","mocha":"^11.7.5","eslint":"^9.39.4","tstyche":"^6.2.0","typescript":"~5.9.3","@types/chai":"^4.3.20","@types/mocha":"^10.0.10","npm-run-all2":"^8.0.4","type-coverage":"^2.29.7","installed-check":"^10.0.1","@voxpelli/tsconfig":"^16.1.0","@voxpelli/eslint-config":"^23.0.0","@voxpelli/tstyche-reporters":"^1.1.0","validate-conventional-commit":"^1.0.4"},"_npmOperationalInternal":{"tmp":"tmp/typed-utils_4.2.0_1773920731779_0.4321918592851388","host":"s3://npm-registry-packages-npm-production"}},"4.3.0":{"name":"@voxpelli/typed-utils","version":"4.3.0","keywords":[],"author":{"url":"http://kodfabrik.se/","name":"Pelle Wessman","email":"pelle@kodfabrik.se"},"license":"MIT","_id":"@voxpelli/typed-utils@4.3.0","maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"homepage":"http://github.com/voxpelli/typed-utils","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"dist":{"shasum":"1d1acea63a7b681fafa9547e8a301b0e10df8892","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-4.3.0.tgz","fileCount":38,"integrity":"sha512-1EsZyFuYchZxjI6c0lEWQXOSS6AAtqc0pNFObpxqSa48SjppDqpkQJdxw8Fl8j6PXzMoi+E6J1H4ddQahd+wlg==","signatures":[{"sig":"MEYCIQCI/Vwqr/ejCzhxMKrrBGDuIc4T7RBUYQUeslKuF5O/jgIhAJkXMOV9cKxgvx0J4Siouad6Nb8dY6uwAntVYwhV6SHB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@voxpelli%2ftyped-utils@4.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":68641},"type":"module","types":"index.d.ts","engines":{"node":"^20.11.0 || >=22.0.0","typescript":">=5.8"},"exports":"./index.js","gitHead":"63c2fabab3ee7faf395dee223fd6d9c178ea9ac6","scripts":{"test":"run-s check test:*","build":"run-s build:*","check":"run-s check:*","clean":"run-p clean:*","build:0":"run-s clean","check:0":"run-s clean","check:1":"run-p check:1:*","prepack":"run-s build","prepare":"husky","test-ci":"run-s test:mocha","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","check:1:tsc":"tsc","check:1:knip":"knip","check:1:lint":"eslint","test:tstyche":"run-s build && tstyche --target \"$(jq -r '.engines.typescript' package.json)\" --reporters dot,summary && run-s clean","check:2-type-tests":"run-s build && tstyche --reporters ./node_modules/@voxpelli/tstyche-reporters/lib/tstyche-mocha-reporter.js,summary && run-s clean","build:1-declaration":"tsc -p declaration.tsconfig.json","check:1:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*' --ignore-files 'typetests/*'","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')","check:1:installed-check":"installed-check --engine-check --version-check -i tstyche -i @voxpelli/tstyche-reporters -i typescript -i installed-check -i @voxpelli/tsconfig -i knip"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7943aacd-2217-43df-89d3-06b8c07e3910"}},"repository":{"url":"git://github.com/voxpelli/typed-utils.git","type":"git"},"_npmVersion":"11.13.0","description":"My personal (type-enabled) utils / helpers","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","chai":"^4.5.0","knip":"^6.6.2","husky":"^9.1.7","mocha":"^11.7.5","eslint":"^9.39.4","tstyche":"^6.2.0","typescript":"~6.0.3","@types/chai":"^4.3.20","@types/mocha":"^10.0.10","npm-run-all2":"^8.0.4","type-coverage":"^2.29.7","installed-check":"^10.0.1","@voxpelli/tsconfig":"^16.2.1","@voxpelli/eslint-config":"^23.0.0","@voxpelli/tstyche-reporters":"^1.1.0","validate-conventional-commit":"^1.0.4"},"_npmOperationalInternal":{"tmp":"tmp/typed-utils_4.3.0_1776962117356_0.7216402269428972","host":"s3://npm-registry-packages-npm-production"}},"5.0.0":{"name":"@voxpelli/typed-utils","version":"5.0.0","description":"My personal (type-enabled) utils / helpers","homepage":"http://github.com/voxpelli/typed-utils","repository":{"type":"git","url":"git://github.com/voxpelli/typed-utils.git"},"keywords":[],"author":{"name":"Pelle Wessman","email":"pelle@kodfabrik.se","url":"http://kodfabrik.se/"},"license":"MIT","engines":{"node":"^20.19.0 || ^22.13.0 || >=24.0.0","typescript":">=5.9"},"type":"module","exports":"./index.js","types":"index.d.ts","scripts":{"build":"run-s build:*","build:0":"run-s clean","build:1-declaration":"tsc -p declaration.tsconfig.json","check":"run-s check:*","check:0":"run-s clean","check:1":"run-p check:1:*","check:1:installed-check":"installed-check --engine-check --version-check -i tstyche -i @voxpelli/tstyche-reporters","check:1:knip":"knip","check:1:lint":"eslint","check:1:tsc":"tsc","check:1:type-coverage":"type-coverage --detail --strict --at-least 99 --ignore-files 'test/*' --ignore-files 'typetests/*'","check:2-type-tests":"run-s build && tstyche --reporters ./node_modules/@voxpelli/tstyche-reporters/lib/tstyche-mocha-reporter.js,summary && run-s clean","clean":"run-p clean:*","clean:declarations-lib":"rm -rf $(find lib -type f -name '*.d.ts*' ! -name '*-types.d.ts')","clean:declarations-top":"rm -rf $(find . -maxdepth 1 -type f -name '*.d.ts*' ! -name 'index.d.ts')","prepack":"run-s build","prepare":"husky","test":"run-s check test:*","test:mocha":"c8 --reporter=lcov --reporter text mocha 'test/**/*.spec.js'","test:tstyche":"run-s build && tstyche --target \"$(jq -r '.engines.typescript' package.json)\" --reporters dot,summary && run-s clean","test-ci":"run-s test:mocha"},"devDependencies":{"@types/chai":"^4.3.20","@types/mocha":"^10.0.10","@voxpelli/eslint-config":"^25.1.0","@voxpelli/tsconfig":"^16.2.1","@voxpelli/tstyche-reporters":"^1.1.0","c8":"^11.0.0","chai":"^4.5.0","eslint":"^9.39.4","husky":"^9.1.7","installed-check":"^10.0.1","knip":"^6.15.0","mocha":"^11.7.5","npm-run-all2":"^8.0.4","tstyche":"^6.2.0","type-coverage":"^2.29.7","typescript":"~6.0.3","validate-conventional-commit":"^1.0.4"},"gitHead":"486e95f66fa5a7f19791ffaecaa43e5ef7053eac","_id":"@voxpelli/typed-utils@5.0.0","bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"_nodeVersion":"24.16.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-QadkfDW9jmszubxLMxbj6gKpJ4aO1THblLVpE0zFuDc0d0wzufvkdSlfWdifhgmmnXv78VZsRCEIK+XRfWNTTg==","shasum":"93c0c77168b0cb3e584dc71eb1e3e51f87cab7da","tarball":"https://registry.npmjs.org/@voxpelli/typed-utils/-/typed-utils-5.0.0.tgz","fileCount":38,"unpackedSize":71338,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@voxpelli%2ftyped-utils@5.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDnqpd9YiMCwulBqqI4v1xTCKB7KedA/PPPUx3evzMc1AIgfHywtUtd7/eMgz4iyolqtGcAbzap5DoQFx5ohXGq+h8="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7943aacd-2217-43df-89d3-06b8c07e3910"}},"directories":{},"maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/typed-utils_5.0.0_1781524884251_0.5668267015346264"},"_hasShrinkwrap":false}},"time":{"created":"2023-12-08T18:57:00.575Z","modified":"2026-06-15T12:01:24.732Z","1.0.0":"2023-12-08T18:57:00.839Z","1.1.0":"2023-12-08T19:31:59.122Z","1.2.0":"2023-12-10T12:21:08.141Z","1.3.0":"2023-12-18T17:05:02.110Z","1.4.0":"2024-03-10T21:01:21.064Z","1.4.1":"2024-03-10T21:09:36.132Z","1.5.0":"2024-03-11T18:21:39.964Z","1.6.0":"2024-03-11T19:18:05.619Z","1.7.0":"2024-04-03T12:54:18.730Z","1.8.0":"2024-04-15T13:09:59.595Z","1.9.0":"2024-04-19T14:29:26.077Z","1.10.0":"2024-04-19T14:43:05.022Z","1.10.1":"2024-04-22T09:26:35.853Z","1.10.2":"2024-06-29T17:58:12.955Z","2.0.0":"2025-06-01T19:14:13.420Z","2.0.1":"2025-06-01T19:26:08.859Z","2.1.0":"2025-06-09T16:10:47.453Z","2.2.0":"2025-06-09T19:26:21.510Z","2.2.1":"2025-06-09T21:55:43.684Z","2.2.2":"2025-06-10T14:43:27.045Z","2.3.0":"2025-09-25T13:31:51.420Z","2.3.1":"2025-09-25T13:59:31.574Z","2.4.0":"2025-09-26T09:26:25.762Z","2.4.1":"2025-09-26T11:52:31.987Z","2.4.2":"2025-09-29T11:38:42.859Z","2.4.3":"2025-09-29T14:08:08.402Z","2.4.4":"2025-09-29T14:28:16.013Z","2.5.0":"2025-09-29T18:00:22.035Z","2.6.0":"2026-01-20T13:51:48.006Z","3.0.0":"2026-01-29T15:59:35.896Z","3.1.0":"2026-02-20T15:34:51.060Z","3.2.0":"2026-02-26T20:29:59.744Z","3.2.1":"2026-02-28T15:46:20.874Z","4.0.0":"2026-03-01T17:36:08.362Z","4.1.0":"2026-03-12T20:21:21.985Z","4.2.0":"2026-03-19T11:45:31.917Z","4.3.0":"2026-04-23T16:35:17.528Z","5.0.0":"2026-06-15T12:01:24.406Z"},"bugs":{"url":"https://github.com/voxpelli/typed-utils/issues"},"author":{"name":"Pelle Wessman","email":"pelle@kodfabrik.se","url":"http://kodfabrik.se/"},"license":"MIT","homepage":"http://github.com/voxpelli/typed-utils","keywords":[],"repository":{"type":"git","url":"git://github.com/voxpelli/typed-utils.git"},"description":"My personal (type-enabled) utils / helpers","maintainers":[{"name":"voxpelli","email":"pelle@kodfabrik.se"}],"readme":"# @voxpelli/typed-utils\n\nMy personal (type-enabled) utils / helpers\n\n[![npm version](https://img.shields.io/npm/v/@voxpelli/typed-utils.svg?style=flat)](https://www.npmjs.com/package/@voxpelli/typed-utils)\n[![npm downloads](https://img.shields.io/npm/dm/@voxpelli/typed-utils.svg?style=flat)](https://www.npmjs.com/package/@voxpelli/typed-utils)\n[![neostandard javascript style](https://img.shields.io/badge/code_style-neostandard-7fffff?style=flat&labelColor=ff80ff)](https://github.com/neostandard/neostandard)\n[![Types in JS](https://img.shields.io/badge/types_in_js-yes-brightgreen)](https://github.com/voxpelli/types-in-js)\n[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/voxpelli/typed-utils)\n[![Follow @voxpelli@mastodon.social](https://img.shields.io/mastodon/follow/109247025527949675?domain=https%3A%2F%2Fmastodon.social&style=social)](https://mastodon.social/@voxpelli)\n\n## Requirements\n\n> [!NOTE]\n> Check the `\"engines\"` field in [`package.json`](./package.json) for the definitive version requirements, as they may be updated independently of this README.\n\n- **Node.js**: ^20.11.0 or >=22.0.0\n- **TypeScript**: >=5.8\n\n## Usage\n\n### Simple\n\n```javascript\nimport { filter } from '@voxpelli/typed-utils';\n\n/** @type {string[]} */\nconst noUndefined = filter(['foo', undefined]);\n```\n\n## Helpers\n\n### Array\n\n#### `filter(inputArray, [valueToRemove]) => filteredArray`\n\nTakes an array as `inputArray` and a `valueToRemove` that is a string literal, `false`, `null` or `undefined`, defaulting to `undefined` if left out.\n\nCreates a new array with all values from `inputArray` except the one that matches `valueToRemove`, then returns that array with a type where the`valueToRemove` type has also been removed from the possible values.\n\nCan be useful in combination with eg. a `.map()` where some items in the array has resulted in `undefined` / `null` / `false` values that one wants to have removed before processing the result further.\n\n#### `filterWithCallback(value, callback)`\n\nSimilar to `Array.prototype.filter()` but expects the `callback` to be a function like `(value: unknown) => value is any` where the `is` is the magic sauce.\n\n#### `isArrayOfType(value, callback)`\n\nSimilar to `Array.isArray()` but also checks that the array only contains values of type verified by the `callback` function and sets the type to be an array of that type rather than simply `any[]`. The `callback` should be a function like `(value: unknown) => value is any` and needs to have an `is` in the return type for the types to work.\n\n#### `isStringArray(value)`\n\nSimilar to `Array.isArray()` but also checks that the array only contains values of type `string` and sets the type to `string[]` rather than `any[]`.\n\n#### `typesafeIsArray(value)`\n\nAlias: ~~`isUnknownArray(value)`~~ (deprecated)\n\nDoes the exact same thing as `Array.isArray()` but derives the type `unknown[]` rather than `any[]`, which improves strictness in a positive type narrowing scenario (`if (typesafeIsArray(value))`) but doesn't work as well for negative type narrowing (prefer `if (!Array.isArray(value))` then).\n\n#### `guardedArrayIncludes(collection, searchElement)`\n\nType-narrowing variant of `Array.prototype.includes` that works on arrays and sets. Returns `true` if `searchElement` is strictly equal to a member of `collection`. When `true`, narrows the type of `searchElement` to the element type of the iterable (`C extends Iterable<infer U> ? U : never`). Useful when you have an `unknown` (or union) value and want to both test membership and refine its type in one step.\n\nExample:\n```js\n/** @type {readonly (\"red\"|\"green\"|\"blue\")[]} */\nconst COLORS = [\"red\", \"green\", \"blue\"];\nlet input /** @type {string | number} */ = Math.random() > 0.5 ? 'red' : 42;\n\nif (guardedArrayIncludes(COLORS, input)) {\n  // inside: input is now \"red\"|\"green\"|\"blue\"\n}\n```\n\n#### `ensureArray(value)`\n\nConverts a value to an array if it isn't already one. If `value` is already an array, returns it as-is. Otherwise, wraps `value` in a new single-element array. Useful for normalizing inputs that may be either a single item or an array of items.\n\nExample:\n```js\n/** @type {string | string[]} */\nconst input = Math.random() > 0.5 ? 'single' : ['multiple', 'items'];\n\nconst normalized = ensureArray(input); // always string[]\n```\n\n### Assertions\n\n#### `TypeHelpersAssertionError`\n\nCustom error class thrown by all assertion helpers in this module. You can catch this error type to specifically handle assertion failures from these utilities.\n\n#### `TypeHelpersAssertionEqualityError`\n\nCustom error class thrown by equality assertions such as [`assertStrictEqual(actual, expected, [message])`](#assertstrictequalactual-expected-message).\n\n#### `assert(condition, message)`\n\nThrows a `TypeHelpersAssertionError` if `condition` is falsy. Used internally by other assertion helpers, but can also be used directly for custom runtime assertions.\n\n#### `assertStrictEqual(actual, expected, [message])`\n\nAsserts strict equality (`===`) between `actual` and `expected`.\n\nIf values differ, throws a `TypeHelpersAssertionEqualityError` with `actual` / `expected` metadata that many reporters can use for diff rendering.\n\n#### `assertObjectWithKey(obj, key)`\n\nAsserts that `obj` is an object and contains the property `key`. Throws an error if not.\n\n#### `assertType(value, type, [message])`\n\nAsserts that `value` is of the given `type` (string literal, eg. `'string'`, `'number'`, `'array'`, `'null'` – same as returned by [`explainVariable()`](#explainvariablevalue)). Throws an error if not. Optional custom error message.\n\nSupports union types by passing an array of type names:\n\n```javascript\nassertType(value, ['string', 'number']); // narrows to string | number\nassertType(value, ['string', 'boolean', 'null']); // narrows to string | boolean | null\n```\n\n#### `assertKeyWithType(obj, key, type)`\n\nAsserts that `obj` is an object, contains the property `key`, and that `obj[key]` is of the given `type`.\n\n#### `assertKeyWithValue(obj, key, value)`\n\nAsserts that `obj` is an object, contains the property `key`, and that `obj[key]` is strictly equal to the given `value`.\n\n#### `assertOptionalKeyWithType(obj, key, type)`\n\nAsserts that `obj` is an object and either does not contain the property `key`, or if present, that `obj[key]` is `undefined` or of the given `type`.\n\n#### `assertArrayOfLiteralType(value, type, [message])`\n\nAsserts that `value` is an array where every element is of the given `type` (string literal, eg. `'string'`, `'number'`, `'array'`, `'null'`). Throws an error if any element fails the type check. Optional custom error message.\n\nSupports union types by passing an array of type names:\n\n```javascript\nassertArrayOfLiteralType(value, ['string', 'number']); // narrows to Array<string | number>\n```\n\n#### `assertObjectValueType(obj, type)`\n\nAsserts that `obj` is an object where all values are of the given `type` and all keys are strings. This is useful for validating objects used as dictionaries/maps with homogeneous value types.\n\nSupports union types by passing an array of type names:\n\n```javascript\nassertObjectValueType(obj, 'string'); // narrows to Record<string, string>\nassertObjectValueType(obj, ['string', 'number', 'boolean']); // narrows to Record<string, string | number | boolean>\n```\n\n### `is`-calls / Type Checks\n\n#### `isObject(value)`\n\nReturns `true` if `value` is a non-null, non-array object. Narrows the type to `Record<string, unknown>`, providing an index signature for property access patterns.\n\nUse this when you need indexed property access after the check (e.g., `value['key']` or `'key' in value`). For exhaustiveness narrowing in type discrimination chains, use [`isType(value, 'object')`](#istypevalue-type) instead, which narrows to `object`.\n\n```javascript\nif (isObject(value)) {\n  // value is Record<string, unknown> — can do value['key']\n}\n```\n\n#### `isObjectWithKey(obj, key)`\n\nReturns `true` if `obj` is an object and contains the property `key`.\n\n#### `isType(value, type)`\n\nReturns `true` if `value` is of the given `type` (string literal, eg. `'string'`, `'number'`, `'array'`, `'null'` – same as returned by [`explainVariable()`](#explainvariablevalue)).\n\nSupports union types by passing an array of type names:\n\n```javascript\nif (isType(value, ['string', 'number'])) {\n  // value is narrowed to string | number\n}\n```\n\n#### `isKeyWithType(obj, key, type)`\n\nReturns `true` if `obj` is an object, contains the property `key`, and `obj[key]` is of the given `type`.\n\n#### `isKeyWithValue(obj, key, value)`\n\nReturns `true` if `obj` is an object, contains the property `key`, and `obj[key]` is strictly equal to the given `value`.\n\n#### `isOptionalKeyWithType(obj, key, type)`\n\nReturns `true` if `obj` is an object and either does not contain the property `key`, or if present, `obj[key]` is of the given `type` or `undefined`.\n\n#### `isArrayOfLiteralType(value, type)`\n\nReturns `true` if `value` is an array where every element is of the given `type` (string literal, eg. `'string'`, `'number'`, `'array'`, `'null'`).\n\nSupports union types by passing an array of type names:\n\n```javascript\nif (isArrayOfLiteralType(value, ['string', 'number'])) {\n  // value is narrowed to Array<string | number>\n}\n```\n\n#### `isObjectValueType(obj, type)`\n\nReturns `true` if `obj` is an object where all values are of the given `type` and all keys are strings.\n\nSupports union types by passing an array of type names:\n\n```javascript\nif (isObjectValueType(obj, 'string')) {\n  // obj is narrowed to Record<string, string>\n}\n```\n\n#### `isPropertyKey(value)`\n\nRuntime guard that returns `true` when `value` is a valid `PropertyKey` (`string | number | symbol`). Used internally by `hasOwn()` helpers; exported for external guard composition.\n\n### Getters\n\n#### `getValueOfKeyWithType(obj, key, type)`\n\nReturns `obj[key]` when `obj` is an object, contains the property `key`, and the value at that key is of the given `type`. Returns `undefined` otherwise.\n\nSupports union types by passing an array of type names:\n\n```javascript\nconst value = getValueOfKeyWithType({ count: 1 }, 'count', ['string', 'number']);\n// value: string | number | undefined\n```\n\nUseful when you want to both validate and retrieve a typed property in one step, without first calling [`isKeyWithType()`](#iskeywithtypeobj-key-type).\n\n### Miscellaneous\n\n#### `explainVariable(value)`\n\nReturns a `typeof` style explanation of a variable, with added support for eg. `null` and `array`\n\n#### `looksLikeAnErrnoException(err)`\n\nReturns `true` if the `err` looks like being of the `NodeJS.ErrnoException` type\n\n### Object\n\n#### `omit(obj, keys)`\n\nThe TypeScript utility type [`Omit<obj, keys>`](https://www.typescriptlang.org/docs/handbook/utility-types.html#omittype-keys) with code that does the actual omit.\n\n#### `pick(obj, keys)`\n\nThe TypeScript utility type [`Pick<obj, keys>`](https://www.typescriptlang.org/docs/handbook/utility-types.html#picktype-keys) with code that does the actual pick.\n\n#### `typedObjectKeys(obj)`\n\nLike [`Object.keys()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys) but typed with `Array<keyof obj>` rather than `string[]`. When `obj` is a union this means the type will resolve to only the keys _shared_ between all objects in the union.\n\n#### `typedObjectKeysAll(obj)`\n\nLike [`typedObjectKeys(obj)`](#typedobjectkeysobj) but when `obj` is a union this type will resolve to _all possible keys_ within that union, not just the shared ones.\n\n#### `hasOwn(obj, key)`\n\nSafe wrapper + type guard around `Object.hasOwn(obj, key)` that first ensures `key` is a `PropertyKey`. Narrows `key` to the intersection of keys when `obj` is a union type (same semantics as `typedObjectKeys`). Unlike the raw `in` operator, prototype chain properties are excluded.\n\nExample:\n```js\nconst shape = Math.random() > 0.5 ? { kind: 'a', value: 1 } : { kind: 'b', label: 'hi' };\nlet k /** @type {string | number | symbol} */ = 'kind';\nif (hasOwn(shape, k)) {\n  // k narrowed to 'kind'\n  console.log(shape[k]); // 'a' | 'b' (further narrowed by shape.kind checks)\n}\n```\n\n#### `hasOwnAll(obj, key)`\n\nVariant of `hasOwn()` whose key type narrows to the full union of all possible keys across union object members (like `typedObjectKeysAll`). Runtime behavior is identical to `hasOwn()`; the difference is purely at the type level. Indexed access still requires a further presence guard because not every union member has every key.\n\nExample union refinement:\n```js\n/** @type {{ foo: number; bar: string } | { foo: number; baz: boolean }} */\nconst maybe = Math.random() ? { foo: 1, bar: 'x' } : { foo: 2, baz: true };\n/** @type {string} */\nconst key = Math.random() ? 'bar' : 'baz';\nif (hasOwnAll(maybe, key)) {\n  // key: 'foo' | 'bar' | 'baz'\n  switch (key) {\n    case 'baz':\n      // Safe indexed access after runtime membership confirmation\n      if (key in maybe) console.log(maybe[key]);\n      break;\n    // ... more checks\n  }\n}\n```\n\n### Object Path\n\n#### `getObjectValueByPath(obj, path, createIfMissing)`\n\nReturns the object at the given path within `obj`, where `path` can be a string (dot-separated) or an array of strings. If `createIfMissing` is `true`, missing objects along the path are created. Returns `false` if a non-object is encountered, or `undefined` if the path does not exist.\n\n#### `getStringValueByPath(obj, path)`\n\nReturns the string value at the given path within `obj`, or `false` if the value is not a string, or `undefined` if the path does not exist. The path can be a string (dot-separated) or an array of strings.\n\n#### `getValueByPath(obj, path)`\n\nReturns an object `{ value }` where `value` is the value at the given path within `obj`, or `false` if a non-object is encountered, or `undefined` if the path does not exist. The path can be a string (dot-separated) or an array of strings.\n\n### Type Utilities\n\n#### `assertTypeIsNever(value, [message])`\n\nAsserts that a value is of type `never`, used for exhaustive switch/conditional checks. This function ensures all cases in a discriminated union are handled. If called at runtime, it throws an error indicating an unhandled case was encountered.\n\nUseful for compile-time exhaustiveness checking:\n```js\n/**\n * @param {'red' | 'green' | 'blue'} color\n */\nfunction handleColor(color) {\n  switch (color) {\n    case 'red': return '#f00';\n    case 'green': return '#0f0';\n    case 'blue': return '#00f';\n    default:\n      // TypeScript error if a color case is missing\n      assertTypeIsNever(color);\n  }\n}\n```\n\n#### `noopTypeIsAssignableToBase(base, superset)`\n\nNo-op function that validates at compile-time that `Superset` type is assignable to `Base` type. Does nothing at runtime. Useful for type tests and ensuring type relationships hold.\n\n#### `noopTypeIsEmptyObject(base, shouldHaveKeys)`\n\nNo-op function that validates at compile-time that `Base` type is an empty object. Does nothing at runtime. Useful for type tests.\n\n#### `noopTypeIsNever(value)`\n\nNo-op function that validates at compile-time that `value` is `never`. Does nothing at runtime. Useful for type tests and exhaustive switch/conditional checks where you want a non-throwing alternative to `assertTypeIsNever()`.\n\n### Set\n\n#### `FrozenSet`\n\nAn immutable variant of `Set`. All mutating methods (`add()`, `delete()`, `clear()`) throw a `TypeError`, making it safe to expose as a read-only collection without risking external mutation.\n\nUseful when you want a `Set` API for membership tests (`has()`, iteration, `size`) but want to guarantee it cannot be modified after creation.\n\nExample:\n\n```js\nimport { FrozenSet } from '@voxpelli/typed-utils';\n\nconst COLORS = new FrozenSet(['red', 'green', 'blue']);\n\nCOLORS.has('red'); // true\nCOLORS.size;       // 3\n\nCOLORS.add('purple'); // throws TypeError: Cannot modify frozen set\n```\n\nTo create one from an existing `Set`:\n\n```js\nconst regular = new Set([1, 2, 3]);\nconst frozen = new FrozenSet(regular); // copies current contents; further changes to `regular` won't affect `frozen`\n```\n\nNotes:\n* Still inherits all read-only / iteration behavior from `Set` (eg. `for...of`, spread, `keys()`, `values()`).\n* Throws eagerly on mutation attempts—no silent failures.\n* If you need deep immutability of nested values, freeze those separately; `FrozenSet` only prevents structural changes to the set itself.\n\n## Migration\n\n### From 3.x to 4.x\n\n#### `LiteralTypes['object']` changed back from `Record<string, unknown>` to `object`\n\n`isType(value, 'object')` and `assertType(value, 'object')` now narrow to `object` instead of `Record<string, unknown>`, reverting to the original behavior from `@voxpelli/type-helpers`. The `Record<string, unknown>` mapping was introduced for convenience (indexed property access), but it broke exhaustiveness narrowing in the false branch — TypeScript could not eliminate concrete object types like `{ kind: string }` from unions, making `assertTypeIsNever()` fail.\n\n**If you relied on indexed property access after narrowing:**\n\n| Old pattern | Migration |\n|---|---|\n| `isType(x, 'object')` then `x['key']` | Use `isObject(x)` (new), or `isObjectWithKey(x, 'key')` |\n| `assertType(x, 'object')` then `x['key']` | Use `assertObject(x)` (unchanged, still `Record<string, unknown>`) |\n| `isType(x, 'object') && 'key' in x` | Use `isObject(x) && 'key' in x`, or `isObjectWithKey(x, 'key')` |\n\n**If you use exhaustiveness chains** — these now work correctly:\n\n```javascript\nfunction process(val: string | number | { key: string }): string {\n  if (isType(val, 'string')) return val;\n  if (isType(val, 'number')) return String(val);\n  if (isType(val, 'object')) return val.key;\n  assertTypeIsNever(val); // now works — val is never\n}\n```\n\n#### `LiteralTypes['function']` changed from `() => unknown` to `(...args: any[]) => unknown`\n\n`isType(value, 'function')` and `assertType(value, 'function')` now narrow to `(...args: any[]) => unknown` instead of `() => unknown`. This is strictly more permissive — all existing code continues to work, and functions with parameters are now correctly accepted.\n\n#### `assertTypeIsNever` now returns `never`\n\n`assertTypeIsNever()` now has a return type of `never` instead of `void`. TypeScript recognizes it as a terminal statement (a function that never returns), so you no longer need a return statement after it in exhaustive switch/if chains.\n\n**`eslint-plugin-jsdoc` note:** The [`require-returns-check`](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns-check.md) rule does not perform cross-function control flow analysis — it cannot know that a call to `assertTypeIsNever()` will always throw and never return. If you write a function with a `@returns` JSDoc that relies on `assertTypeIsNever()` as the terminal statement instead of a `return`, the rule may report \"`@returns` declaration present but return expression not available in function.\" Suppress with `// eslint-disable-next-line jsdoc/require-returns-check` above the function's JSDoc block, or add an explicit `return` before the call (e.g., `return assertTypeIsNever(val)`). See [gajus/eslint-plugin-jsdoc#817](https://github.com/gajus/eslint-plugin-jsdoc/issues/817) for background.\n\n<!-- ## Used by\n\n* [`example`](https://example.com/) – used by this one to do X and Y\n -->\n## Similar modules\n\n* [`type-helpers`](https://github.com/voxpelli/type-helpers) – my personal type helpers, contains no code, just types\n<!--\n## See also\n\n* [Announcement blog post](#)\n* [Announcement tweet](#) -->\n","readmeFilename":"README.md"}