{"_id":"motty-utils","_rev":"28-598662caafbd77d4c1f7a5540785676a","name":"motty-utils","dist-tags":{"latest":"1.2.8"},"versions":{"1.0.0":{"name":"motty-utils","version":"1.0.0","keywords":["motty"],"author":{"name":"fhird"},"license":"MIT","_id":"motty-utils@1.0.0","maintainers":[{"name":"fhird","email":"support@fhird.com"}],"dist":{"shasum":"c1e494bc7ca7fa69d208b7a2654e18eb521949d9","tarball":"https://registry.npmjs.org/motty-utils/-/motty-utils-1.0.0.tgz","fileCount":5,"integrity":"sha512-bs45eNhNQ7oYFhEfRE9tzPFnyYViR4OASOIEIybIbCgTnfTjJ3XjJLd0cqjEmMq6f5Z6nr+EUp7XNbd3AUHyOg==","signatures":[{"sig":"MEQCIEcSOaeNchZj0gCIJRdLkl/Bs3uUerRYCbGq8Zerb+JtAiA4fCJ5g/V9Fg4Iu8SBlHNxoHJGbV7ubQEkDZ6MimnRAg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7110},"main":"dist/index.js","gitHead":"db07b80ce938fe86c42c418e5f61c62daefe2ad6","scripts":{"test":"npm test","build":"webpack"},"_npmUser":{"name":"fhird","email":"support@fhird.com"},"_npmVersion":"9.8.0","description":"Utility functions for company applications","directories":{},"_nodeVersion":"20.5.0","_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.98.0","ts-loader":"^9.5.2","typescript":"^5.8.2","@types/node":"^22.13.13","webpack-cli":"^6.0.1"},"_npmOperationalInternal":{"tmp":"tmp/motty-utils_1.0.0_1742993242031_0.354783833177722","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"motty-utils","version":"1.0.1","keywords":["motty"],"author":{"name":"fhird"},"license":"MIT","_id":"motty-utils@1.0.1","maintainers":[{"name":"fhird","email":"support@fhird.com"}],"dist":{"shasum":"444aac9e0a939045828a40c6b872542dbcef4011","tarball":"https://registry.npmjs.org/motty-utils/-/motty-utils-1.0.1.tgz","fileCount":5,"integrity":"sha512-0hk4X8q3CfVFVll/1skSJL7pxN2jERjnilpLgQj0dNucbkLHQnhWHvya5/2RE4JPRKrfWCouvIYmOy059XC7+g==","signatures":[{"sig":"MEUCIQDquIdf+wcR3k1oEMrjbPPK9wgA5YJqognLeXylN31I2QIgc36nNrsj6iZ6yd7/KoIdojZJ21DGqNEoX8E8D4rvdAU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7429},"main":"dist/index.js","gitHead":"db07b80ce938fe86c42c418e5f61c62daefe2ad6","scripts":{"test":"npm test","build":"webpack"},"_npmUser":{"name":"fhird","email":"support@fhird.com"},"_npmVersion":"10.5.1","description":"Utility functions for company applications","directories":{},"_nodeVersion":"22.0.0","_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.98.0","ts-loader":"^9.5.2","typescript":"^5.8.2","@types/node":"^22.13.13","webpack-cli":"^6.0.1"},"_npmOperationalInternal":{"tmp":"tmp/motty-utils_1.0.1_1742995041010_0.4644402010892481","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"motty-utils","version":"1.0.2","keywords":["motty"],"author":{"name":"fhird"},"license":"MIT","_id":"motty-utils@1.0.2","maintainers":[{"name":"fhird","email":"support@fhird.com"}],"dist":{"shasum":"7eea920241de90331f547e0df666f16481480755","tarball":"https://registry.npmjs.org/motty-utils/-/motty-utils-1.0.2.tgz","fileCount":5,"integrity":"sha512-/qI9WMuPliL2w8F4MfS3yHCwfhRsl2yGiqjoupUJOkq23QsPQlTqLaDOOKWOGim4SCuOmwMrjYh1LmfWfo7QTQ==","signatures":[{"sig":"MEUCIQDebahx//cNN+quAUN+QmxfEHMS2CQnIP+VpGe1v1Ds/AIgCjUzyHuCOQIU+dk7FbzOxduciAZj1D5GHll2b84vqBY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7420},"main":"dist/index.js","gitHead":"55e88a82cde6184d3b0771c765530e6702c55aa0","scripts":{"test":"npm test","build":"webpack"},"_npmUser":{"name":"fhird","email":"support@fhird.com"},"_npmVersion":"10.5.1","description":"Utility functions for company applications","directories":{},"_nodeVersion":"22.0.0","_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.98.0","ts-loader":"^9.5.2","typescript":"^5.8.2","@types/node":"^22.13.13","webpack-cli":"^6.0.1"},"_npmOperationalInternal":{"tmp":"tmp/motty-utils_1.0.2_1743002862873_0.5500639714729152","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"motty-utils","version":"1.0.3","keywords":["motty"],"author":{"name":"fhird"},"license":"MIT","_id":"motty-utils@1.0.3","maintainers":[{"name":"fhird","email":"support@fhird.com"}],"dist":{"shasum":"9b988728ed86eb4013c43ba62ba22b3504cf52fd","tarball":"https://registry.npmjs.org/motty-utils/-/motty-utils-1.0.3.tgz","fileCount":6,"integrity":"sha512-QPdn9Qzqb0D4oJ2+HtUkC8CWonkDfWGKMgn+CfxjoY7UwaokrAc9JjksPr3IPHPyZc0yIF7djMK6Qp5DQvVFdA==","signatures":[{"sig":"MEQCIF63Z/7LYR/K1XQtWxXlutJXzu8l9Yis9mmgqu9ul6KkAiBV9NnKjjoC/MRyRkbJaD1/iaMYtljpKEyf4fas6QGoIg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9441},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"f140a0ddbda91b7165a36a5d85eccc00f79c5112","scripts":{"test":"npm test","build":"webpack && tsc","publish":"npm publish"},"_npmUser":{"name":"fhird","email":"support@fhird.com"},"_npmVersion":"10.5.1","description":"Utility functions for company applications","directories":{},"_nodeVersion":"22.0.0","_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.98.0","ts-loader":"^9.5.2","typescript":"^5.8.2","@types/node":"^22.13.13","webpack-cli":"^6.0.1"},"_npmOperationalInternal":{"tmp":"tmp/motty-utils_1.0.3_1753098580385_0.08327097087858104","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"motty-utils","version":"1.0.4","keywords":["motty"],"author":{"name":"fhird"},"license":"MIT","_id":"motty-utils@1.0.4","maintainers":[{"name":"fhird","email":"support@fhird.com"}],"dist":{"shasum":"7382a5ead1bcb39ec22a6fa831bef5b838d49bc3","tarball":"https://registry.npmjs.org/motty-utils/-/motty-utils-1.0.4.tgz","fileCount":6,"integrity":"sha512-bL6aetoRozSALBBcureSo2bMzPCVtvqSe6wrSOzdvd0L6z2tmPmjESSCMBV4fMrs2VSQpZSfbfBdhWao6PJTzg==","signatures":[{"sig":"MEQCIBstb6ZVQl+A6vT+Toxcen5vxdTf2f5/tHXoX4/6LbXNAiBjSWwB3gAv2GZrlFmi/QDDiCn4mfmeEEIYEbmoSrcMQw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7627},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"22e3701b97d9ae932e8b02670211237efe15d6ec","scripts":{"test":"npm test","build":"webpack","publish":"npm publish"},"_npmUser":{"name":"fhird","email":"support@fhird.com"},"_npmVersion":"10.5.1","description":"Utility functions for company applications","directories":{},"_nodeVersion":"22.0.0","_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.98.0","ts-loader":"^9.5.2","typescript":"^5.8.2","@types/node":"^22.13.13","webpack-cli":"^6.0.1"},"_npmOperationalInternal":{"tmp":"tmp/motty-utils_1.0.4_1757414981787_0.4752980012523056","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"motty-utils","version":"1.1.0","keywords":["motty"],"author":{"name":"fhird"},"license":"MIT","_id":"motty-utils@1.1.0","maintainers":[{"name":"fhird","email":"support@fhird.com"}],"dist":{"shasum":"033ed23a364a680037217d12b82f38b22aebb1a6","tarball":"https://registry.npmjs.org/motty-utils/-/motty-utils-1.1.0.tgz","fileCount":16,"integrity":"sha512-tZ8N6Dvyft1YH/o0R0TUs14fOKvvRmp9TNUUSpq/xJVWNNqGx9eWU3yFncRrwYmHGrqvpJNBB2qsdX/gWBMKgA==","signatures":[{"sig":"MEYCIQCWekXAJjmqNY1m+BX3f4Ep4GNdzi0UwZpOtWtxvTjObQIhAK/TWWUV0cttjOPCqiUzHokT3S1cVqv0EHDNHi1cI+Y+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15741},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"715c2c759f9b2299117c7a5812ff8d154d373d1d","scripts":{"test":"npm test","build":"webpack","publish":"npm publish"},"_npmUser":{"name":"fhird","email":"support@fhird.com"},"_npmVersion":"10.5.1","description":"Utility functions for company applications","directories":{},"_nodeVersion":"22.0.0","_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.98.0","ts-loader":"^9.5.2","typescript":"^5.8.2","@types/node":"^22.13.13","webpack-cli":"^6.0.1"},"_npmOperationalInternal":{"tmp":"tmp/motty-utils_1.1.0_1758884025921_0.10648915884980648","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"motty-utils","version":"1.1.1","keywords":["motty"],"author":{"name":"fhird"},"license":"MIT","_id":"motty-utils@1.1.1","maintainers":[{"name":"fhird","email":"support@fhird.com"}],"dist":{"shasum":"71451d73ce79545c71102a4c57da873e07759ad8","tarball":"https://registry.npmjs.org/motty-utils/-/motty-utils-1.1.1.tgz","fileCount":16,"integrity":"sha512-vl2serHn3LKX1Y7o1bizqb3wyR1sdr2cmUPJoeI96pGyRUJeaXEiuOWAAbzoFDflDDw1GSc4p45TsIFAs38IbQ==","signatures":[{"sig":"MEUCIQCX3cLHeQMFjvIoUl00tSnRv+6e+f0ouEIts07eL7Fz4AIgGmcq7iT45e+OFMzOm3Kwli5YTbfKqWu0Ec1cDSz9G90=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15711},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"cef95e48079a72940d62e0bfa0328d477a2dac9f","scripts":{"test":"npm test","build":"webpack","publish":"npm publish"},"_npmUser":{"name":"fhird","email":"support@fhird.com"},"_npmVersion":"10.5.1","description":"Utility functions for company applications","directories":{},"_nodeVersion":"22.0.0","_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.98.0","ts-loader":"^9.5.2","typescript":"^5.8.2","@types/node":"^22.13.13","webpack-cli":"^6.0.1"},"_npmOperationalInternal":{"tmp":"tmp/motty-utils_1.1.1_1759150716465_0.036325805606194805","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"motty-utils","version":"1.1.2","keywords":["motty"],"author":{"name":"fhird"},"license":"MIT","_id":"motty-utils@1.1.2","maintainers":[{"name":"fhird","email":"support@fhird.com"}],"dist":{"shasum":"d056295afc3184cfdb1186039607fb3c08840db9","tarball":"https://registry.npmjs.org/motty-utils/-/motty-utils-1.1.2.tgz","fileCount":16,"integrity":"sha512-LQYKIcSm7XD2XY9HZECYcQYmsGxd1J/7U4MjBKlejNbSgJlUq+3CwTFx6NZiZ/oRMiJ6cpu3sSRZhXdjuIG2Gw==","signatures":[{"sig":"MEYCIQCNZ5/oLPEuGauL0Vgg7eadrdD9/jRg5Go44zmCrfTSqQIhANqjB7T/W+ks2p3N1qIPv/a5mMiz6VDVk1Wu3Pb3tI8A","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15655},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"338b40fb03ec58eb57d16b97e7d1ea9ac164eb08","scripts":{"test":"npm test","build":"webpack","publish":"npm publish"},"_npmUser":{"name":"fhird","email":"support@fhird.com"},"_npmVersion":"10.5.1","description":"Utility functions for company applications","directories":{},"_nodeVersion":"22.0.0","_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.98.0","ts-loader":"^9.5.2","typescript":"^5.8.2","@types/node":"^22.13.13","webpack-cli":"^6.0.1"},"_npmOperationalInternal":{"tmp":"tmp/motty-utils_1.1.2_1759222407035_0.11945896594167316","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"motty-utils","version":"1.1.3","keywords":["motty"],"author":{"name":"fhird"},"license":"MIT","_id":"motty-utils@1.1.3","maintainers":[{"name":"fhird","email":"support@fhird.com"}],"dist":{"shasum":"523af38c690eeeb3f76630f910612a56744159de","tarball":"https://registry.npmjs.org/motty-utils/-/motty-utils-1.1.3.tgz","fileCount":16,"integrity":"sha512-lEUAzLX15S6Hmlv7xwqIjESOUJ60q/3lXLhz40x4t8Mn2fMs3Y6eZSI3iKIUXae7y7T4wk3mm0Ttqgez697Vpw==","signatures":[{"sig":"MEUCIQDlvUqSshOacSviZUIxjLl/KOUvb+zm9vCMLAYNpZxMKwIgf1y9gryamWnjly+jlJ77B6Cz2YMx8sB51kr+PbjATSo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16373},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"a55089ebfe5f6f7e370dc07129ad9f67850db835","scripts":{"test":"npm test","build":"webpack","publish":"npm publish"},"_npmUser":{"name":"fhird","email":"support@fhird.com"},"_npmVersion":"10.5.1","description":"Utility functions for company applications","directories":{},"_nodeVersion":"22.0.0","_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.98.0","ts-loader":"^9.5.2","typescript":"^5.8.2","@types/node":"^22.13.13","webpack-cli":"^6.0.1"},"_npmOperationalInternal":{"tmp":"tmp/motty-utils_1.1.3_1759745590984_0.14418526492821582","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"motty-utils","version":"1.1.4","keywords":["motty"],"author":{"name":"fhird"},"license":"MIT","_id":"motty-utils@1.1.4","maintainers":[{"name":"fhird","email":"support@fhird.com"}],"dist":{"shasum":"9d6022ef36f5765e2c591fc54c0ac0ce25b1300e","tarball":"https://registry.npmjs.org/motty-utils/-/motty-utils-1.1.4.tgz","fileCount":16,"integrity":"sha512-z2OUg+l0n5nf7WLAefRk28ATfbPfhynic7ORwnALBF0cT5exhvRDI6jpCjP0gtKMDXhIj6kzvW3oT2TZF/mZjg==","signatures":[{"sig":"MEUCIQC7Mv69RPSc7yTQrAcQaG5nj6OQEQRcpb3OavRDy1GwxAIgXi8RXtRAw1GpzBAxB5JZ6QqlRpfOwKLRyDdk7b6BwYM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16465},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"d2f4dc8d87be56a2cf9f76a270b3a30e539cfbee","scripts":{"test":"npm test","build":"webpack","release":"npm run build && npm publish"},"_npmUser":{"name":"fhird","email":"support@fhird.com"},"_npmVersion":"10.5.1","description":"Utility functions for company applications","directories":{},"_nodeVersion":"22.0.0","_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.98.0","ts-loader":"^9.5.2","typescript":"^5.8.2","@types/node":"^22.13.13","webpack-cli":"^6.0.1"},"_npmOperationalInternal":{"tmp":"tmp/motty-utils_1.1.4_1760099244282_0.4301282784831446","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"motty-utils","version":"1.1.5","keywords":["motty"],"author":{"name":"fhird"},"license":"MIT","_id":"motty-utils@1.1.5","maintainers":[{"name":"fhird","email":"support@fhird.com"}],"dist":{"shasum":"a9130dc767b6488a751e01ead0d20ca20c03570a","tarball":"https://registry.npmjs.org/motty-utils/-/motty-utils-1.1.5.tgz","fileCount":16,"integrity":"sha512-1yZIAUm2QOuBMsHsAQQdksB5+2j9G/hhWcqn5ygj3RVs+LeJpOu/qpjo1RMVhQhF84KljNrBF44V2dkX91bevg==","signatures":[{"sig":"MEQCIFNlNWBXDpUVEOFYop4DqfKMRxYWPKT9s9kPQ8Ncvy87AiAexpmMFTipAPByFC6Yuh5ZUKOQg+XycSIgVZsQCehAwQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16514},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"9902cc9c3b99e07310aa42e276f540345bde79d8","scripts":{"test":"npm test","build":"webpack","release":"npm run build && npm publish"},"_npmUser":{"name":"fhird","email":"support@fhird.com"},"_npmVersion":"10.5.1","description":"Utility functions for company applications","directories":{},"_nodeVersion":"22.0.0","_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.98.0","ts-loader":"^9.5.2","typescript":"^5.8.2","@types/node":"^22.13.13","webpack-cli":"^6.0.1"},"_npmOperationalInternal":{"tmp":"tmp/motty-utils_1.1.5_1762773991621_0.5283137452454385","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"motty-utils","version":"1.2.0","keywords":["motty"],"author":{"name":"fhird"},"license":"MIT","_id":"motty-utils@1.2.0","maintainers":[{"name":"fhird","email":"support@fhird.com"}],"dist":{"shasum":"40612aac855b1c97999fff8dfbf2e2bbb05b60b7","tarball":"https://registry.npmjs.org/motty-utils/-/motty-utils-1.2.0.tgz","fileCount":25,"integrity":"sha512-zHOk8xrKr0FpOTNFeer4tl7qNCp0t0HsP7ioOaIk0ZQvUC0D9LNe3MyHVnubz4PHrvbKUCSjpS/BSeUcE8pW+A==","signatures":[{"sig":"MEYCIQDlV4LmEX4hHwWEr5k+IaK9/yFIXiRcRT4Tixq2hQ+hTgIhAMtEpKy8Rm9XtSNLm5xHhK1U/cyPd0OrUY10bK2ELLc5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35454},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"9902cc9c3b99e07310aa42e276f540345bde79d8","scripts":{"test":"npm test","build":"webpack","release":"npm run build && npm publish"},"_npmUser":{"name":"fhird","email":"support@fhird.com"},"_npmVersion":"10.5.1","description":"Utility functions for company applications","directories":{},"_nodeVersion":"22.0.0","_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.98.0","ts-loader":"^9.5.2","typescript":"^5.8.2","@types/node":"^22.13.13","webpack-cli":"^6.0.1"},"_npmOperationalInternal":{"tmp":"tmp/motty-utils_1.2.0_1763726811507_0.12638849334132995","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"motty-utils","version":"1.2.1","keywords":["motty"],"author":{"name":"fhird"},"license":"MIT","_id":"motty-utils@1.2.1","maintainers":[{"name":"fhird","email":"support@fhird.com"}],"dist":{"shasum":"6a928ce1757e7385c568ac1203e316f9fc3aa8c7","tarball":"https://registry.npmjs.org/motty-utils/-/motty-utils-1.2.1.tgz","fileCount":25,"integrity":"sha512-IwgV1zAJojrNTWjPVasYDZZ7G/YDY4UBVN+9k5/KVza+O+/RiBNKj9MGH8xMxZEDsr4ZOh/aYrtUwe0M4OR0Ww==","signatures":[{"sig":"MEQCIEUg/t1Y/bX99JCZAXpl9kHb7P/WJMHDI82+MIL9L4l3AiBXKL6cDwzfAYPFtccUy+SxyBRW90Zq618Mw51H0xiARA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35153},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"9902cc9c3b99e07310aa42e276f540345bde79d8","scripts":{"test":"npm test","build":"webpack","release":"npm run build && npm publish"},"_npmUser":{"name":"fhird","email":"support@fhird.com"},"_npmVersion":"10.5.1","description":"Utility functions for company applications","directories":{},"_nodeVersion":"22.0.0","_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.98.0","ts-loader":"^9.5.2","typescript":"^5.8.2","@types/node":"^22.13.13","webpack-cli":"^6.0.1"},"_npmOperationalInternal":{"tmp":"tmp/motty-utils_1.2.1_1763732769693_0.7333679134075461","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"motty-utils","version":"1.2.2","keywords":["motty"],"author":{"name":"fhird"},"license":"MIT","_id":"motty-utils@1.2.2","maintainers":[{"name":"fhird","email":"support@fhird.com"}],"dist":{"shasum":"c6284cf43758f265986f98e9ac7c37abb6ab4f0b","tarball":"https://registry.npmjs.org/motty-utils/-/motty-utils-1.2.2.tgz","fileCount":25,"integrity":"sha512-uc+cx9jJz8cmFCrjCpe56cg+4vwANoG+7uRJ7SbPOMjdn7fB7n5QPfb0L/dQI//Qqs8jvROarHZgB9NTls46XQ==","signatures":[{"sig":"MEYCIQCwXB9kKjZPmj0dlYv5SO1QfvWO9S4uZV/EpfKQ57tkQAIhAND3Mb+CTyqan1KZibb6DnPKEonTk4RIQOM5SVy6Ka54","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35133},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"9902cc9c3b99e07310aa42e276f540345bde79d8","scripts":{"test":"npm test","build":"webpack","release":"npm run build && npm publish"},"_npmUser":{"name":"fhird","email":"support@fhird.com"},"_npmVersion":"10.5.1","description":"Utility functions for company applications","directories":{},"_nodeVersion":"22.0.0","_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.98.0","ts-loader":"^9.5.2","typescript":"^5.8.2","@types/node":"^22.13.13","webpack-cli":"^6.0.1"},"_npmOperationalInternal":{"tmp":"tmp/motty-utils_1.2.2_1763972665574_0.05773947350052877","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"motty-utils","version":"1.2.3","keywords":["motty"],"author":{"name":"fhird"},"license":"MIT","_id":"motty-utils@1.2.3","maintainers":[{"name":"fhird","email":"support@fhird.com"}],"dist":{"shasum":"c18a970b1fe30610e2f1708c88ebb3edd2a481fa","tarball":"https://registry.npmjs.org/motty-utils/-/motty-utils-1.2.3.tgz","fileCount":31,"integrity":"sha512-o85JNfXodaaGkxmaGvSQmRrROPs8lkDvTZ+JCeDxQz9AA8gwyHpkcheoc+4NjdelZbh0eZdIqt+kQxi4fkLMdw==","signatures":[{"sig":"MEUCIQCTJTKIIndmi3gQsF4Sgv8aM+Pi3jurdbxmILqcjOxo+gIgbUqVuKYNkQZ9cAHn5yrReq6OggxqglwsedfINp8lUGE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40290},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"5abafac53dff392f93a608da8201e959873eb559","scripts":{"test":"jest","build":"webpack","release":"npm run build && npm publish"},"_npmUser":{"name":"fhird","email":"support@fhird.com"},"_npmVersion":"10.5.2","description":"Utility functions for company applications","directories":{},"_nodeVersion":"20.13.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","ts-jest":"^29.4.5","webpack":"^5.98.0","ts-loader":"^9.5.2","typescript":"^5.8.2","@types/jest":"^30.0.0","@types/node":"^22.13.13","webpack-cli":"^6.0.1","@jest/globals":"^30.2.0"},"_npmOperationalInternal":{"tmp":"tmp/motty-utils_1.2.3_1774599582240_0.49263108101510333","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"motty-utils","version":"1.2.4","keywords":["motty"],"author":{"name":"fhird"},"license":"MIT","_id":"motty-utils@1.2.4","maintainers":[{"name":"fhird","email":"support@fhird.com"}],"dist":{"shasum":"e33b8ae1b193d4aab8441b493a9eb03c49160de6","tarball":"https://registry.npmjs.org/motty-utils/-/motty-utils-1.2.4.tgz","fileCount":31,"integrity":"sha512-CFE2GrLEXv8csuEms/kfHLvy3pZ6/pu5YEqxH0Mt/U2SmEQAVU5R2Fs7WhPY1vjjN49vcL8I73TptixbiMjc+w==","signatures":[{"sig":"MEUCIQCwRnZuZ4/n8kBGDLZCYXSwePg3c5Bdy9inilhhpB+4QgIgPYy3r14d2yj8IzlbxjpbD62INRyNwJk4sYfadJCkbbo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40265},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"5abafac53dff392f93a608da8201e959873eb559","scripts":{"test":"jest","build":"webpack","release":"npm run build && npm publish"},"_npmUser":{"name":"fhird","email":"support@fhird.com"},"_npmVersion":"10.5.2","description":"Utility functions for company applications","directories":{},"_nodeVersion":"20.13.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","ts-jest":"^29.4.5","webpack":"^5.98.0","ts-loader":"^9.5.2","typescript":"^5.8.2","@types/jest":"^30.0.0","@types/node":"^22.13.13","webpack-cli":"^6.0.1","@jest/globals":"^30.2.0"},"_npmOperationalInternal":{"tmp":"tmp/motty-utils_1.2.4_1774618192611_0.35934029599478756","host":"s3://npm-registry-packages-npm-production"}},"1.2.5":{"name":"motty-utils","version":"1.2.5","keywords":["motty"],"author":{"name":"fhird"},"license":"MIT","_id":"motty-utils@1.2.5","maintainers":[{"name":"fhird","email":"support@fhird.com"}],"dist":{"shasum":"820eafdfadad690dc783512ae65e43d028b6abbb","tarball":"https://registry.npmjs.org/motty-utils/-/motty-utils-1.2.5.tgz","fileCount":31,"integrity":"sha512-MZqUPVlOntc6CK9utYDZbwnK1YLd+JI/kFVfUAeYmbXtJzvZBU/q6tlaENEbZRAsQw9kuacTYaSDZLeAZuJJCg==","signatures":[{"sig":"MEYCIQC6/8OW7/pNGV09sua+Jh+iejxbKssYcipLFHhdJiRtGAIhAO/BS8ZDF/4FUyUIdr9OZNzW8Wd4CzyWrkf8CZhOUV1u","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41416},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"0278170639e5616071f743d449ab78709da73a12","scripts":{"test":"jest","build":"webpack","release":"npm run build && npm publish"},"_npmUser":{"name":"fhird","email":"support@fhird.com"},"_npmVersion":"10.5.2","description":"Utility functions for company applications","directories":{},"_nodeVersion":"20.13.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","ts-jest":"^29.4.5","webpack":"^5.98.0","ts-loader":"^9.5.2","typescript":"^5.8.2","@types/jest":"^30.0.0","@types/node":"^22.13.13","webpack-cli":"^6.0.1","@jest/globals":"^30.2.0"},"_npmOperationalInternal":{"tmp":"tmp/motty-utils_1.2.5_1777455663894_0.304602102997767","host":"s3://npm-registry-packages-npm-production"}},"1.2.6":{"name":"motty-utils","version":"1.2.6","keywords":["motty"],"author":{"name":"fhird"},"license":"MIT","_id":"motty-utils@1.2.6","maintainers":[{"name":"fhird","email":"support@fhird.com"}],"dist":{"shasum":"68bec86c8b331bb2edafd224c74336cf35d0c315","tarball":"https://registry.npmjs.org/motty-utils/-/motty-utils-1.2.6.tgz","fileCount":35,"integrity":"sha512-0ImboRvqCg0X+uTQv+K0s8fIa47SlYNE68tysynz/r0gKRgHmrKHkVAbCbif0v8TZ/6VTvlv5R0gzkhq9rkSHg==","signatures":[{"sig":"MEUCIQCIHrUsKKXMeaQ/HySiRd2kcVq5oaQ9v5WkuCntFeOd6QIgW5/m8jfcvd8lkSJaxjiBXcmbMqS9Cr2eFMK9/yDUQIg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53234},"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"test":"jest","build":"webpack","release":"npm run build && npm publish"},"_npmUser":{"name":"fhird","email":"support@fhird.com"},"_npmVersion":"10.5.2","description":"Utility functions for company applications","directories":{},"_nodeVersion":"20.13.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","ts-jest":"^29.4.5","webpack":"^5.98.0","ts-loader":"^9.5.2","typescript":"^5.8.2","@types/jest":"^30.0.0","@types/node":"^22.13.13","webpack-cli":"^6.0.1","@jest/globals":"^30.2.0"},"_npmOperationalInternal":{"tmp":"tmp/motty-utils_1.2.6_1782197449848_0.8342384841209902","host":"s3://npm-registry-packages-npm-production"}},"1.2.7":{"name":"motty-utils","version":"1.2.7","keywords":["motty"],"author":{"name":"fhird"},"license":"MIT","_id":"motty-utils@1.2.7","maintainers":[{"name":"fhird","email":"support@fhird.com"}],"dist":{"shasum":"f66ef7f5f3673a7347db89ab9f9718f5ea3da3a0","tarball":"https://registry.npmjs.org/motty-utils/-/motty-utils-1.2.7.tgz","fileCount":35,"integrity":"sha512-AZUR0ZqDImXrd5g4dbpCsaTP/sSDbAfC65gr/Z1ihFE/atEaPiZIjHfqKtumb0oTIsCTHLZ2APkr2Sfw6lXnXw==","signatures":[{"sig":"MEYCIQDW6uhxA/KbewpIjNjaIXQPFYLlhmKYyzUAifjXh+SdfAIhAJ8bBnbad/fuvRVYRW55ETcMmxf1aaCHKWsQRbwvFu9Y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54360},"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"test":"jest","build":"webpack","release":"npm run build && npm publish"},"_npmUser":{"name":"fhird","email":"support@fhird.com"},"_npmVersion":"10.5.2","description":"Utility functions for company applications","directories":{},"_nodeVersion":"20.13.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","ts-jest":"^29.4.5","webpack":"^5.98.0","ts-loader":"^9.5.2","typescript":"^5.8.2","@types/jest":"^30.0.0","@types/node":"^22.13.13","webpack-cli":"^6.0.1","@jest/globals":"^30.2.0"},"_npmOperationalInternal":{"tmp":"tmp/motty-utils_1.2.7_1788867820883_0.03186390679282436","host":"s3://npm-registry-packages-npm-production"}},"1.2.8":{"_id":"motty-utils@1.2.8","dist":{"shasum":"eca6be4d0e30a77b489334f1df81d6733653d55e","tarball":"https://registry.npmjs.org/motty-utils/-/motty-utils-1.2.8.tgz","fileCount":35,"integrity":"sha512-h2XWQPf9RpGJ5tsA9NWS/MXep7tI1x0i+7r+pXzmoRzmpRt8XJ6pZ096klCuwU7Amaj0bmAm4rO0aMd/EMvMwA==","signatures":[{"sig":"MEUCIDxXX3vkG9rfCovq5TnvRnknsyfQjI2h0IHo4KqdkFkCAiEAr2h9bLWY6YF9CU1zGQT6AzDkl3rwZOGnOcP5l3xtq94=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIF9bh9gxGK7510o5RNiq8LLlAL+yEwizEVbwwLrK2kicAiEA8FwWPRds+zyobcNg1qMdsgDteI6lo+pTldghq84mpRM="}],"unpackedSize":54642},"main":"dist/index.js","name":"motty-utils","types":"dist/index.d.ts","author":{"name":"fhird"},"license":"MIT","scripts":{"test":"jest","build":"webpack","release":"npm run build && npm publish"},"version":"1.2.8","_npmUser":{"name":"fhird","email":"support@fhird.com"},"keywords":["motty"],"_npmVersion":"10.5.2","description":"Utility functions for company applications","directories":{},"maintainers":[{"name":"fhird","email":"support@fhird.com"}],"_nodeVersion":"20.13.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","ts-jest":"^29.4.5","webpack":"^5.98.0","ts-loader":"^9.5.2","typescript":"^5.8.2","@types/jest":"^30.0.0","@types/node":"^22.13.13","webpack-cli":"^6.0.1","@jest/globals":"^30.2.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/motty-utils_1.2.8_1790764273476_0.7365772668218684"}}},"time":{"created":"2025-03-26T12:47:22.030Z","modified":"2026-09-30T10:31:13.731Z","1.0.0":"2025-03-26T12:47:22.366Z","1.0.1":"2025-03-26T13:17:21.212Z","1.0.2":"2025-03-26T15:27:43.060Z","1.0.3":"2025-07-21T11:49:40.573Z","1.0.4":"2025-09-09T10:49:41.966Z","1.0.5":"2025-09-09T10:51:13.881Z","1.0.6":"2025-09-26T10:48:59.151Z","1.1.0":"2025-09-26T10:53:46.168Z","1.1.1":"2025-09-29T12:58:36.624Z","1.1.2":"2025-09-30T08:53:27.205Z","1.1.3":"2025-10-06T10:13:11.180Z","1.1.4":"2025-10-10T12:27:24.585Z","1.1.5":"2025-11-10T11:26:31.812Z","1.2.0":"2025-11-21T12:06:51.696Z","1.2.1":"2025-11-21T13:46:09.888Z","1.2.2":"2025-11-24T08:24:25.749Z","1.2.3-alpha.0":"2026-03-26T15:30:53.432Z","1.2.3-alpha.1":"2026-03-26T15:41:10.695Z","1.2.3":"2026-03-27T08:19:42.419Z","1.2.4":"2026-03-27T13:29:52.786Z","1.2.5":"2026-04-29T09:41:04.033Z","1.2.6":"2026-06-23T06:50:49.999Z","1.2.7":"2026-09-08T11:43:41.049Z","1.2.8":"2026-09-30T10:31:13.564Z"},"author":{"name":"fhird"},"license":"MIT","keywords":["motty"],"description":"Utility functions for company applications","maintainers":[{"name":"fhird","email":"support@fhird.com"}],"readme":"# Motty Utils\n\nShared TypeScript utilities used by Motty client applications and websites. The package provides common lead handling, marketing attribution, financial calculations, and product configuration so these rules do not need to be duplicated across projects.\n\nThe package is published to npm as [`motty-utils`](https://www.npmjs.com/package/motty-utils). It includes TypeScript declarations and a UMD production bundle.\n\n## Installation\n\n```bash\nnpm install motty-utils\n```\n\nImport utilities directly from the package:\n\n```ts\nimport {\n    calculateMonthlyCost,\n    getProductConstraints,\n    getTrackingId,\n    ProductType\n} from 'motty-utils';\n\nconst monthlyCost = calculateMonthlyCost(200_000, 60, 8.5);\nconst constraints = getProductConstraints(ProductType.ConsumerLoan);\nconst trackingId = getTrackingId(new URLSearchParams('gclid=example-click-id'));\n```\n\n## What the package provides\n\n- Lead creation through the Motty Leads API, including tracking information.\n- Marketing attribution helpers for tracking IDs, publisher IDs, advertisement IDs, landing pages, and conversion URLs.\n- Support for common click identifiers, including Google `gclid` and Facebook `_fbc`/`fbclid` values.\n- Loan, credit-card, refinancing, creditworthiness, and mortgage calculations.\n- Product constraints for consumer loans, credit cards, and mortgages.\n- Shared product and loan-purpose types.\n- Browser-language detection for supported Motty languages.\n\nThe main public exports are defined in [`src/index.ts`](src/index.ts).\n\n### Runtime environments\n\nCalculation, product-constraint, and model utilities do not depend on browser APIs.\n\n`getTrackingId` and `getPublisherId` can run during Next.js server rendering. Pass `URLSearchParams` when request query parameters are available; browser-only values such as cookies, session storage, and the referrer are used only on the client.\n\nOther tracking helpers, browser-language detection, and lead creation currently rely on browser globals such as `window`, `document`, `navigator`, `location`, `performance`, or session storage. Call those utilities from client-side code.\n\n## Development\n\nInstall the exact dependency versions from the lockfile:\n\n```bash\nnpm ci\n```\n\nRun the test suite:\n\n```bash\nnpm test\n```\n\nCreate the production bundle and TypeScript declarations in `dist`:\n\n```bash\nnpm run build\n```\n\n## Testing a local build in a client application\n\nUse an npm package tarball to test changes in another Motty project before publishing them. This closely matches the package that npm consumers will receive and does not publish anything.\n\nIn this repository, run:\n\n```bash\nnpm test\nnpm run build\nnpm pack\n```\n\n`npm pack` creates a versioned file such as `motty-utils-x.y.z.tgz` in the repository root. Install the generated filename from the client application's directory:\n\n```bash\nnpm install C:\\path\\to\\Motty-Utils\\motty-utils-x.y.z.tgz\n```\n\nRestart the client's development server so its bundler loads the local build. The installation changes the client's dependency entry and lockfile to reference the tarball; restore them or reinstall the published package after testing:\n\n```bash\nnpm install motty-utils@latest\n```\n\nRebuild and create a new tarball after every utility change that needs to be retested.\n\n## Publishing a new npm version\n\nYou need an npm account with permission to publish `motty-utils`. Authenticate before starting:\n\n```bash\nnpm login\nnpm whoami\n```\n\nMake sure the intended changes are committed and the working tree is clean. Then install dependencies, test, build, and inspect the package contents:\n\n```bash\nnpm ci\nnpm test\nnpm run build\nnpm pack --dry-run\n```\n\nChoose the version increment according to semantic versioning:\n\n- `patch` for backwards-compatible fixes.\n- `minor` for backwards-compatible functionality.\n- `major` for breaking API changes.\n\nFor example, to create a patch release:\n\n```bash\nnpm version patch\n```\n\nThis updates `package.json` and `package-lock.json`, then creates a Git commit and tag. Publish the new version using the repository's release script:\n\n```bash\nnpm run release\n```\n\nThe release script rebuilds the package and runs `npm publish`. Complete any npm two-factor authentication prompt, then push the release commit and tag after publishing succeeds:\n\n```bash\ngit push --follow-tags\n```\n\nDo not reuse an already published version number; npm package versions are immutable.\n","readmeFilename":"README.md"}