{"_id":"@aimidy/util","_rev":"20-278093f494a70e138d1828edbc2fdda9","name":"@aimidy/util","dist-tags":{"test":"1.0.8-test","latest":"1.2.2"},"versions":{"1.0.0":{"name":"@aimidy/util","version":"1.0.0","keywords":["demo","typescript","npm"],"author":{"name":"aimidy"},"license":"ISC","_id":"@aimidy/util@1.0.0","maintainers":[{"name":"aimidy","email":"zoe52888@gmail.com"}],"dist":{"shasum":"31ef97dace50202feb6de11a17e0163be6e3fc16","tarball":"https://registry.npmjs.org/@aimidy/util/-/util-1.0.0.tgz","fileCount":8,"integrity":"sha512-0sfW4Xlyfo7aZIvHSGy/UA7Tyv1qsvRhgImUwMW4YQToNHplrnAXQVcRsKquUxG5aO0+2w6nQ4fROTDUSGHfdA==","signatures":[{"sig":"MEUCICVaLkfIFVGBfpz1YBpcfVZDlhu72qUTth6YuQLOa+KBAiEArvDgWZZiQu7lPqQIgpNrzhyFZAs1LqLx//HBuMH0N3g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2561},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","scripts":{"test":"jest","build":"tsup"},"_npmUser":{"name":"aimidy","email":"zoe52888@gmail.com"},"_npmVersion":"10.4.0","description":"hi","directories":{},"_nodeVersion":"20.11.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.2","ts-jest":"^29.1.2","ts-node":"^10.9.2","typescript":"^5.3.3","@types/jest":"^29.5.12"},"_npmOperationalInternal":{"tmp":"tmp/util_1.0.0_1708495716348_0.5371733305430135","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@aimidy/util","version":"1.0.1","keywords":["demo","typescript","npm"],"author":{"name":"aimidy"},"license":"ISC","_id":"@aimidy/util@1.0.1","maintainers":[{"name":"aimidy","email":"zoe52888@gmail.com"}],"dist":{"shasum":"88d2768cbe1f24e9eecbe5b3b2dc4e87851fb863","tarball":"https://registry.npmjs.org/@aimidy/util/-/util-1.0.1.tgz","fileCount":8,"integrity":"sha512-OXSCUFLQ2uA4GVlZo+A4NKp7gxZjlw9oG6dp5qUVO/7s3XKZVLqJU901Z53S1ZrtvV1+2flUECbVE/CMNWE5bg==","signatures":[{"sig":"MEUCIHaocfo3oIEMFyB/tyI0vm0DrhJXwzTl5ABMm2giSnkLAiEAuVLWCbgKtP7hvChyrh1zJP/DCl97QPTST+dS2XgnSwU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2357},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","scripts":{"test":"jest","build":"tsup"},"_npmUser":{"name":"aimidy","email":"zoe52888@gmail.com"},"_npmVersion":"10.4.0","description":"hi","directories":{},"_nodeVersion":"20.11.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.2","ts-jest":"^29.1.2","ts-node":"^10.9.2","typescript":"^5.3.3","@types/jest":"^29.5.12"},"_npmOperationalInternal":{"tmp":"tmp/util_1.0.1_1708495903619_0.6223125537843399","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"@aimidy/util","version":"1.0.2","keywords":["demo","typescript","npm"],"author":{"name":"aimidy"},"license":"ISC","_id":"@aimidy/util@1.0.2","maintainers":[{"name":"aimidy","email":"zoe52888@gmail.com"}],"dist":{"shasum":"2f924127d366508bc87bf601fad5a6b4579efda8","tarball":"https://registry.npmjs.org/@aimidy/util/-/util-1.0.2.tgz","fileCount":14,"integrity":"sha512-xMspTJ0RQl1LmNIO8O2L61BeWeZrbMe5ImVgcHQ0Dm92EHyypuay3md6p9K/MbYp+NxNd17jCY+Q2xY5cvULhg==","signatures":[{"sig":"MEUCIBMrtKkYvRHs0PHMUzkmMFcsq7jLgFC+Tey+0tGbjrkpAiEAhIU6h6A5UMfB64wpfB1T2kPRGK4hmHCtJmxqtfT7Rv0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6479},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","scripts":{"push":"npm publish --access=public","test":"jest","build":"tsup"},"_npmUser":{"name":"aimidy","email":"zoe52888@gmail.com"},"_npmVersion":"10.4.0","description":"hi","directories":{},"_nodeVersion":"20.11.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.2","ts-jest":"^29.1.2","ts-node":"^10.9.2","typescript":"^5.3.3","@types/jest":"^29.5.12"},"_npmOperationalInternal":{"tmp":"tmp/util_1.0.2_1708496072634_0.5950781986229943","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"@aimidy/util","version":"1.0.3","keywords":["demo","typescript","npm"],"author":{"name":"aimidy"},"license":"ISC","_id":"@aimidy/util@1.0.3","maintainers":[{"name":"aimidy","email":"zoe52888@gmail.com"}],"dist":{"shasum":"fe00b9e93ba5868b3160747fb4f4474cdb2ab9c1","tarball":"https://registry.npmjs.org/@aimidy/util/-/util-1.0.3.tgz","fileCount":8,"integrity":"sha512-LaugoGgRjmykCpBroehrqayP69Rp33yZ5J3FPvJq008SDdb6pPKzFokkiVq/dVkG3FEMqgfTYE3sPiUDyJI9Pw==","signatures":[{"sig":"MEQCIHaBX2M7PHOuScB0pqwgNxyfj1DWnmdv6Mp8HAALlzUHAiA4TQTvVW6Yof8KSS0v/jhNlEmgtt2xmNynduMyYhecUQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5427},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","scripts":{"push":"npm publish --access=public","test":"jest","build":"tsup"},"_npmUser":{"name":"aimidy","email":"zoe52888@gmail.com"},"_npmVersion":"10.4.0","description":"hi","directories":{},"_nodeVersion":"20.11.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.2","ts-jest":"^29.1.2","ts-node":"^10.9.2","typescript":"^5.3.3","@types/jest":"^29.5.12"},"_npmOperationalInternal":{"tmp":"tmp/util_1.0.3_1708496359754_0.783398165699335","host":"s3://npm-registry-packages"}},"1.0.4":{"name":"@aimidy/util","version":"1.0.4","keywords":["demo","typescript","npm"],"author":{"name":"aimidy"},"license":"ISC","_id":"@aimidy/util@1.0.4","maintainers":[{"name":"aimidy","email":"zoe52888@gmail.com"}],"homepage":"https://github.com/aimidy/util.get#readme","bugs":{"url":"https://github.com/aimidy/util.get/issues"},"dist":{"shasum":"5b0d4dd1d9847d8b2e3f8414664a6977c19d9495","tarball":"https://registry.npmjs.org/@aimidy/util/-/util-1.0.4.tgz","fileCount":8,"integrity":"sha512-6AGE+LJtqYgpEuxi7OyPoNKU9txzboD+SsB7rPejcepVFZ7YqOPovPV9IQ9pfPjODdooenHazF1cvnWRJI4vPQ==","signatures":[{"sig":"MEYCIQC1g0rhHNkOCUklwSbsxTZvk8RAYzmbqT3ZxZxcKPwh8gIhAPNlZ0mAjwweX70ZAMbIOdOVZBu20jh+1uKfLNG5nTAd","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18616},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"cd6a748badd93e32405101c08b11f3a39e692c99","scripts":{"push":"npm publish --access=public","test":"jest","build":"tsup"},"_npmUser":{"name":"aimidy","email":"zoe52888@gmail.com"},"repository":{"url":"git+https://github.com/aimidy/util.get.git","type":"git"},"_npmVersion":"10.4.0","description":"hi","directories":{},"_nodeVersion":"20.11.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.2","ts-jest":"^29.1.2","ts-node":"^10.9.2","typescript":"^5.3.3","@types/jest":"^29.5.12"},"_npmOperationalInternal":{"tmp":"tmp/util_1.0.4_1708508254918_0.2949780049222106","host":"s3://npm-registry-packages"}},"1.0.5":{"name":"@aimidy/util","version":"1.0.5","keywords":["demo","typescript","npm"],"author":{"name":"aimidy"},"license":"ISC","_id":"@aimidy/util@1.0.5","maintainers":[{"name":"aimidy","email":"zoe52888@gmail.com"}],"homepage":"https://github.com/aimidy/util#readme","bugs":{"url":"https://github.com/aimidy/util/issues"},"dist":{"shasum":"dd8c26df79a3aead71b64c0fb45a83d8b86ef580","tarball":"https://registry.npmjs.org/@aimidy/util/-/util-1.0.5.tgz","fileCount":8,"integrity":"sha512-SWiXjxX2e27nqoSLlvxvYu6QcA3EvcPhwXhX/9GQNFc91e0t8SCHhOG8Hr3IRRFm0KHQ2LVlo81w6JqcFxavJw==","signatures":[{"sig":"MEUCICzKIAU/xwi0CjIVy/7JRoHcPyfZj6OlcCsBVC8FM//7AiEA5C3BpbuZRLXVxeK08oBeFacKr10EL2wvt9hJY3CmvLk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":21892},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"b53caebb34b0be4d5dde3a58617c4d01332e2cff","scripts":{"push":"npm publish --access=public","test":"jest","build":"tsup"},"_npmUser":{"name":"aimidy","email":"zoe52888@gmail.com"},"repository":{"url":"git+https://github.com/aimidy/util.git","type":"git"},"_npmVersion":"10.4.0","description":"hi","directories":{},"_nodeVersion":"20.11.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.2","ts-jest":"^29.1.2","ts-node":"^10.9.2","typescript":"^5.3.3","@types/jest":"^29.5.12"},"_npmOperationalInternal":{"tmp":"tmp/util_1.0.5_1708929086215_0.024337035592110867","host":"s3://npm-registry-packages"}},"1.0.6":{"name":"@aimidy/util","version":"1.0.6","keywords":["demo","typescript","npm"],"author":{"name":"aimidy"},"license":"ISC","_id":"@aimidy/util@1.0.6","maintainers":[{"name":"aimidy","email":"zoe52888@gmail.com"}],"homepage":"https://github.com/aimidy/util#readme","bugs":{"url":"https://github.com/aimidy/util/issues"},"dist":{"shasum":"1075c7d1592aad6382e7e9a350ac94bd3543c98c","tarball":"https://registry.npmjs.org/@aimidy/util/-/util-1.0.6.tgz","fileCount":8,"integrity":"sha512-Kuo/49v8b/mULT3tLY4+f3ymtEv5VtOLtsnvqq5JIOt/156JE3xjTLi2VA3qEZXL9XPYDR1AjiuLcz/eTw8JWw==","signatures":[{"sig":"MEYCIQDw8lHv0bYzfzZRkqcJddMOM6K/x2bDYUgrwv2orVfJkgIhANTbmjQ57ns1YUwre4jscBpbS+UmpcbpOjviuMzOjtyR","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27726},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"b53caebb34b0be4d5dde3a58617c4d01332e2cff","scripts":{"push":"npm publish --access=public","test":"jest","build":"tsup"},"_npmUser":{"name":"aimidy","email":"zoe52888@gmail.com"},"repository":{"url":"git+https://github.com/aimidy/util.git","type":"git"},"_npmVersion":"10.4.0","description":"hi","directories":{},"_nodeVersion":"20.11.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.2","ts-jest":"^29.1.2","ts-node":"^10.9.2","typescript":"^5.3.3","@types/jest":"^29.5.12"},"_npmOperationalInternal":{"tmp":"tmp/util_1.0.6_1708930312738_0.2042315450402601","host":"s3://npm-registry-packages"}},"1.0.7":{"name":"@aimidy/util","version":"1.0.7","keywords":["demo","typescript","npm"],"author":{"name":"aimidy"},"license":"ISC","_id":"@aimidy/util@1.0.7","maintainers":[{"name":"aimidy","email":"zoe52888@gmail.com"}],"homepage":"https://github.com/aimidy/util#readme","bugs":{"url":"https://github.com/aimidy/util/issues"},"dist":{"shasum":"e458e711e2e7b3681c2d9c44ffa2526e37e88067","tarball":"https://registry.npmjs.org/@aimidy/util/-/util-1.0.7.tgz","fileCount":14,"integrity":"sha512-ZjClRH5vJgdLPjBPAm4DhmI2jMinJ8pyDq8rD/E0QGQKWK74hBQT/G6MinM+qkSwwPL/IdUBOgTeKvYKQPam7A==","signatures":[{"sig":"MEUCIDOMFMC/kBTHfMiz1B7BF31sYB0y4fblxXGMvi58tHlYAiEA3tIfLLgIKXdJ/kM9lD+Q/WlnrePhLo4m5LYHiv+aJ00=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":69731},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"8810682adbd81fd51a4f7d1d37a4113838429a8a","scripts":{"push":"npm publish --access=public","test":"jest","build":"tsup"},"_npmUser":{"name":"aimidy","email":"zoe52888@gmail.com"},"repository":{"url":"git+https://github.com/aimidy/util.git","type":"git"},"_npmVersion":"10.4.0","description":"hi","directories":{},"_nodeVersion":"20.11.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.2","ts-jest":"^29.1.2","ts-node":"^10.9.2","typescript":"^5.3.3","@types/jest":"^29.5.12"},"_npmOperationalInternal":{"tmp":"tmp/util_1.0.7_1709017092092_0.14791613749724775","host":"s3://npm-registry-packages"}},"1.0.8":{"name":"@aimidy/util","version":"1.0.8","keywords":["demo","typescript","npm"],"author":{"name":"aimidy"},"license":"ISC","_id":"@aimidy/util@1.0.8","maintainers":[{"name":"aimidy","email":"zoe52888@gmail.com"}],"homepage":"https://github.com/aimidy/util#readme","bugs":{"url":"https://github.com/aimidy/util/issues"},"dist":{"shasum":"2f344af208db4c8fa6ab5d3e7cfe770cba011177","tarball":"https://registry.npmjs.org/@aimidy/util/-/util-1.0.8.tgz","fileCount":14,"integrity":"sha512-nG7OubYcRADdYLoiDshPAfmYkxYcJu7lpAe2GeEtin0JHGr2P10PZsvHVYITdHvfceYvrJRAKVdi36vjH656Ew==","signatures":[{"sig":"MEUCIH+JybVyJ/ZtgsU2+w9/jA4fWxeWnanSPGkPZhiXjaoKAiEAq2BHufm6hXRTj9aT9neRjjkYQW87PKGrlRY3p0jkFxY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":71003},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"c5b8e9f416c5d1bb08c70aa46ec2a9f17f6db73d","scripts":{"push":"npm publish --access=public","test":"jest","build":"tsup"},"_npmUser":{"name":"aimidy","email":"zoe52888@gmail.com"},"repository":{"url":"git+https://github.com/aimidy/util.git","type":"git"},"_npmVersion":"10.4.0","description":"hi","directories":{},"_nodeVersion":"20.11.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.2","ts-jest":"^29.1.2","ts-node":"^10.9.2","typescript":"^5.3.3","@types/jest":"^29.5.12"},"_npmOperationalInternal":{"tmp":"tmp/util_1.0.8_1709018308310_0.7484720106553129","host":"s3://npm-registry-packages"}},"1.0.8-test":{"name":"@aimidy/util","version":"1.0.8-test","keywords":["demo","typescript","npm"],"author":{"name":"aimidy"},"license":"ISC","_id":"@aimidy/util@1.0.8-test","maintainers":[{"name":"aimidy","email":"zoe52888@gmail.com"}],"homepage":"https://github.com/aimidy/util#readme","bugs":{"url":"https://github.com/aimidy/util/issues"},"tag":"test","dist":{"shasum":"571732dd04ec8a962eca52f634f36bdf716823ec","tarball":"https://registry.npmjs.org/@aimidy/util/-/util-1.0.8-test.tgz","fileCount":14,"integrity":"sha512-roT2/Ab9qeh6XKVjQdevO7K6feHfls/xnSwotz3JUJMcxkSGa+J8ZHkyx13ZDSgE1XuHeNSym58uD4wTx1+FQg==","signatures":[{"sig":"MEUCIQC8La4MjwMon02KSB9romoOWO4XaBPz00FDNfBIyjYFVwIgXmp98aYi3vo2nYmocxha8kEwMy48lB9aWvD42lWVMt8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":71027},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"c5b8e9f416c5d1bb08c70aa46ec2a9f17f6db73d","scripts":{"push":"npm publish --access=public","test":"jest","build":"tsup"},"_npmUser":{"name":"aimidy","email":"zoe52888@gmail.com"},"repository":{"url":"git+https://github.com/aimidy/util.git","type":"git"},"_npmVersion":"10.4.0","description":"hi","directories":{},"_nodeVersion":"20.11.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.7.0","tsup":"^8.0.2","ts-jest":"^29.1.2","ts-node":"^10.9.2","typescript":"^5.3.3","@types/jest":"^29.5.12"},"_npmOperationalInternal":{"tmp":"tmp/util_1.0.8-test_1709019354115_0.4855429880894142","host":"s3://npm-registry-packages"}},"1.0.9":{"name":"@aimidy/util","version":"1.0.9","keywords":["demo","typescript","npm"],"author":{"name":"aimidy"},"license":"ISC","_id":"@aimidy/util@1.0.9","maintainers":[{"name":"aimidy","email":"zoe52888@gmail.com"}],"homepage":"https://github.com/aimidy/util#readme","bugs":{"url":"https://github.com/aimidy/util/issues"},"dist":{"shasum":"bd46abbb2a020a7f9f18ee831f8857e18f5a8263","tarball":"https://registry.npmjs.org/@aimidy/util/-/util-1.0.9.tgz","fileCount":14,"integrity":"sha512-CI3jzAvZto49N6q8or2GxACQ++hbw+zS9j1kmh1HODbUr0+IklQVsdZsqPTo7judH1mTJETSDNPAuS/wIOxptg==","signatures":[{"sig":"MEUCIEL/0RM/puKXHMJUE6PlXLHM7WUmMP6lRVS0omxGj85+AiEA9YH04RE34iEkkbCaW0IJTcgX473xajEB5eNBVdr3Mgc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":71003},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"6d597cb77654c0cce38c71facd1f10bd7cf458ce","scripts":{"push":"npm publish --access=public","test":"jest","build":"tsup"},"_npmUser":{"name":"aimidy","email":"zoe52888@gmail.com"},"repository":{"url":"git+https://github.com/aimidy/util.git","type":"git"},"_npmVersion":"10.4.0","description":"hi","directories":{},"_nodeVersion":"20.11.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.2","ts-jest":"^29.1.2","ts-node":"^10.9.2","typescript":"^5.3.3","@types/jest":"^29.5.12"},"_npmOperationalInternal":{"tmp":"tmp/util_1.0.9_1710405440064_0.20993941490912693","host":"s3://npm-registry-packages"}},"1.0.10":{"name":"@aimidy/util","version":"1.0.10","keywords":["demo","typescript","npm"],"author":{"name":"aimidy"},"license":"ISC","_id":"@aimidy/util@1.0.10","maintainers":[{"name":"aimidy","email":"zoe52888@gmail.com"}],"homepage":"https://github.com/aimidy/util#readme","bugs":{"url":"https://github.com/aimidy/util/issues"},"dist":{"shasum":"3d5c038394bacbea79ed6da3c45c25d79ab726cf","tarball":"https://registry.npmjs.org/@aimidy/util/-/util-1.0.10.tgz","fileCount":14,"integrity":"sha512-iK0/isWI51fkv5Rxo4MdcsH+nbOCSbnkBdEWwLV08ZrBi8CU+U8ici0lITISluQ2psHSzY6vZ96HVj4TYojaXQ==","signatures":[{"sig":"MEUCIBWsuyBSanHPWWwMECUxgTx3qzCDYTVu+SS/FpM6OrTgAiEAutMEtEj9zUjng8lSl/+bogWY+onP7aVcviL1PQcryPk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":70742},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"f0d83ea2d907ec1b6c89b3f80d2969644334fcc4","scripts":{"push":"npm publish --access=public","test":"jest","build":"tsup"},"_npmUser":{"name":"aimidy","email":"zoe52888@gmail.com"},"repository":{"url":"git+https://github.com/aimidy/util.git","type":"git"},"_npmVersion":"10.4.0","description":"hi","directories":{},"_nodeVersion":"20.11.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.2","ts-jest":"^29.1.2","ts-node":"^10.9.2","typescript":"^5.3.3","@types/jest":"^29.5.12"},"_npmOperationalInternal":{"tmp":"tmp/util_1.0.10_1710405850237_0.4295524837842488","host":"s3://npm-registry-packages"}},"1.0.11":{"name":"@aimidy/util","version":"1.0.11","keywords":["demo","typescript","npm"],"author":{"name":"aimidy"},"license":"ISC","_id":"@aimidy/util@1.0.11","maintainers":[{"name":"aimidy","email":"zoe52888@gmail.com"}],"homepage":"https://github.com/aimidy/util#readme","bugs":{"url":"https://github.com/aimidy/util/issues"},"dist":{"shasum":"272d89954058df1e713f63865fe8cb9ac374084d","tarball":"https://registry.npmjs.org/@aimidy/util/-/util-1.0.11.tgz","fileCount":14,"integrity":"sha512-WxOc1gQSEo5GFeidhb9DCRP4AJbvab6yWwOjzOiCagjeDvzuHe78b1KD4+Xjaf58ZEQFHxjiQB2z3tw+p8iOvA==","signatures":[{"sig":"MEYCIQDB/ev0V1uaK3je+wthXn8sfyHz4+4+CvtQ+KWJHyP8awIhAJ2whBpUhzaS5DbW7amQAQ+C938kVtngXBEQmZJmVI1O","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":81561},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"f0d83ea2d907ec1b6c89b3f80d2969644334fcc4","scripts":{"push":"npm publish --access=public","test":"jest","build":"tsup"},"_npmUser":{"name":"aimidy","email":"zoe52888@gmail.com"},"repository":{"url":"git+https://github.com/aimidy/util.git","type":"git"},"_npmVersion":"10.6.0","description":"hi","directories":{},"_nodeVersion":"20.12.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.2","ts-jest":"^29.1.2","ts-node":"^10.9.2","typescript":"^5.4.5","@types/jest":"^29.5.12"},"_npmOperationalInternal":{"tmp":"tmp/util_1.0.11_1714703457135_0.11604820419399098","host":"s3://npm-registry-packages"}},"1.0.12":{"name":"@aimidy/util","version":"1.0.12","keywords":["demo","typescript","npm"],"author":{"name":"aimidy"},"license":"ISC","_id":"@aimidy/util@1.0.12","maintainers":[{"name":"aimidy","email":"zoe52888@gmail.com"}],"homepage":"https://github.com/aimidy/util#readme","bugs":{"url":"https://github.com/aimidy/util/issues"},"dist":{"shasum":"caa46c3ca5762e134fd867904df002e5ff54c140","tarball":"https://registry.npmjs.org/@aimidy/util/-/util-1.0.12.tgz","fileCount":14,"integrity":"sha512-gAsNzPT2SLUFIDMgYKycl5Lv6V/CLfwrzC9X4ZEhHGOCkpZeoEtwp7VhJ3XPrJd62vrF3wf837AOWPb2PpjWkw==","signatures":[{"sig":"MEYCIQCbq8V1WHBRr+XL7KBqvtEzLl7BhJ5dkWJ/DswZ6P7QaAIhAO/hx7rx6qkg659MAe1R3O7RBeTns87katDZhH/Gjwg+","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":85142},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"a7d376db4d2f07ff75e827ac760a585bb74013e0","scripts":{"push":"npm publish --access=public","test":"jest","build":"tsup"},"_npmUser":{"name":"aimidy","email":"zoe52888@gmail.com"},"repository":{"url":"git+https://github.com/aimidy/util.git","type":"git"},"_npmVersion":"10.6.0","description":"hi","directories":{},"_nodeVersion":"20.12.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.2","ts-jest":"^29.1.2","ts-node":"^10.9.2","typescript":"^5.4.5","@types/jest":"^29.5.12"},"_npmOperationalInternal":{"tmp":"tmp/util_1.0.12_1714721860928_0.29086285212541796","host":"s3://npm-registry-packages"}},"1.0.13":{"name":"@aimidy/util","version":"1.0.13","keywords":["demo","typescript","npm"],"author":{"name":"aimidy"},"license":"ISC","_id":"@aimidy/util@1.0.13","maintainers":[{"name":"aimidy","email":"zoe52888@gmail.com"}],"homepage":"https://github.com/aimidy/util#readme","bugs":{"url":"https://github.com/aimidy/util/issues"},"dist":{"shasum":"a574f44e54b1d82d5e3171e2850d96c291c885b4","tarball":"https://registry.npmjs.org/@aimidy/util/-/util-1.0.13.tgz","fileCount":14,"integrity":"sha512-QQJU56GokZcgVJJ1o9geJUWNFkxyM/4rBN3IZyjzHWlFhTTx5DoD6MSDEXN6067w+nyVVvL1oIxoSd5zs18Lmw==","signatures":[{"sig":"MEQCIBW7/lK1L02QkNHGosEEvJfx4u+/LotZEm4MToNb1Ay5AiAWFQyOBxK7END1IAl9J0HDATlpAg/jBoPbo4jIAwTFAQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":85294},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"59509f58ab3f3b55b07aca9ed7d3569e37b713b3","scripts":{"push":"npm publish --access=public","test":"jest","build":"tsup"},"_npmUser":{"name":"aimidy","email":"zoe52888@gmail.com"},"repository":{"url":"git+https://github.com/aimidy/util.git","type":"git"},"_npmVersion":"10.9.2","description":"","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.3.5","ts-jest":"^29.2.5","ts-node":"^10.9.2","typescript":"^5.7.2","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/util_1.0.13_1734919609032_0.6312862562836519","host":"s3://npm-registry-packages-npm-production"}},"1.0.14":{"name":"@aimidy/util","version":"1.0.14","keywords":["demo","typescript","npm"],"author":{"name":"aimidy"},"license":"ISC","_id":"@aimidy/util@1.0.14","maintainers":[{"name":"aimidy","email":"zoe52888@gmail.com"}],"homepage":"https://github.com/aimidy/util#readme","bugs":{"url":"https://github.com/aimidy/util/issues"},"dist":{"shasum":"5f5d495bcd19bfc6b615e8095a481781e64ae764","tarball":"https://registry.npmjs.org/@aimidy/util/-/util-1.0.14.tgz","fileCount":14,"integrity":"sha512-l5Kw9kLBx5+I4mwGlT5FwubqiumEojKbCnaotZg1VjOm1KKfBS8UAVpzl7nmWkmNpovu5qnTn/dEMZOoybuSPw==","signatures":[{"sig":"MEYCIQC2QAVGcLesqt9cXgDBl6vxGvKbmYl1P5PISa8Gvt5Q+gIhAN3mMXesgOE2cN6WTimFr7yjHCFBmJ6GCxUeN6VLr+Km","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":90954},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"c0a3e964ec42160eed10d062c6322c741365ccc3","scripts":{"push":"npm publish --access=public","test":"jest","build":"tsup"},"_npmUser":{"name":"aimidy","email":"zoe52888@gmail.com"},"repository":{"url":"git+https://github.com/aimidy/util.git","type":"git"},"_npmVersion":"11.0.0","description":"","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.3.5","ts-jest":"^29.2.5","ts-node":"^10.9.2","typescript":"^5.7.2","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/util_1.0.14_1735035094892_0.5608650236168107","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@aimidy/util","version":"1.1.0","keywords":["util","typescript","npm"],"author":{"name":"aimidy"},"license":"ISC","_id":"@aimidy/util@1.1.0","maintainers":[{"name":"aimidy","email":"zoe52888@gmail.com"}],"homepage":"https://github.com/aimidy/util#readme","bugs":{"url":"https://github.com/aimidy/util/issues"},"dist":{"shasum":"ccadd4cafd02c9a68ee823d3d1c3c8e8b8a4d0fa","tarball":"https://registry.npmjs.org/@aimidy/util/-/util-1.1.0.tgz","fileCount":14,"integrity":"sha512-gaN+99rtLek8/aqYUqWwHhQ/pPgeClZLcWAR/mJxfk76i64YfrJCRbZGIl52SBswbddQzXsZNolHuzve+0lI2Q==","signatures":[{"sig":"MEUCIBxPJVDgHmcsN7o903v92ssJia0cpviDxAbqCRQOZskDAiEAoVbxUrWiJHP6pFrkgXNBKkV52kE6cx2qWjqxCg+n+MU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":91059},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"54d03ac5209fad85371fd82bba63b325a16a4d95","scripts":{"push":"npm publish --access=public","test":"jest","build":"tsup"},"_npmUser":{"name":"aimidy","email":"zoe52888@gmail.com"},"repository":{"url":"git+https://github.com/aimidy/util.git","type":"git"},"_npmVersion":"11.4.1","description":"","directories":{},"_nodeVersion":"22.16.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.5.0","ts-jest":"^29.3.4","ts-node":"^10.9.2","typescript":"^5.8.3","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/util_1.1.0_1749609800814_0.4752029073914854","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@aimidy/util","version":"1.2.0","keywords":["util","typescript","npm"],"author":{"name":"aimidy"},"license":"ISC","_id":"@aimidy/util@1.2.0","maintainers":[{"name":"aimidy","email":"zoe52888@gmail.com"}],"homepage":"https://github.com/aimidy/util#readme","bugs":{"url":"https://github.com/aimidy/util/issues"},"dist":{"shasum":"1de5db70fb2f0027c5c4bab6aad7a26e7a5ad2bf","tarball":"https://registry.npmjs.org/@aimidy/util/-/util-1.2.0.tgz","fileCount":14,"integrity":"sha512-sTK5fdfgjySffYB0CUNVoyjnlMbwaA0dkv2+mJNLRWfDW5P4XgC1jV8uSDZIosGSNvyz+qDhW6EDxNmEvooh2g==","signatures":[{"sig":"MEQCIHW5oJ9V56HYENanQQWvNtcN1RSblWRnC4rS1uKyPUqVAiBjVqmZu6fj1JHeTIAQvDhtMIOgA8zv62Ks9DFC8hOUrg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94740},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"057da4b3cab5f97165b1e20d8ff23037c322ab7e","scripts":{"push":"npm publish --access=public","test":"jest","build":"tsup"},"_npmUser":{"name":"aimidy","email":"zoe52888@gmail.com"},"repository":{"url":"git+https://github.com/aimidy/util.git","type":"git"},"_npmVersion":"11.7.0","description":"一個實用的 TypeScript 工具函數庫，提供常用的資料處理、物件操作、字串轉換等功能。✨","directories":{},"_nodeVersion":"24.9.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","tsup":"^8.5.1","ts-jest":"^29.4.6","ts-node":"^10.9.2","prettier":"^3.7.4","typescript":"^5.9.3","@types/jest":"^30.0.0"},"_npmOperationalInternal":{"tmp":"tmp/util_1.2.0_1767065283758_0.1983571757522702","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@aimidy/util","version":"1.2.1","keywords":["util","typescript","npm"],"author":{"name":"aimidy"},"license":"ISC","_id":"@aimidy/util@1.2.1","maintainers":[{"name":"aimidy","email":"zoe52888@gmail.com"}],"homepage":"https://github.com/aimidy/util#readme","bugs":{"url":"https://github.com/aimidy/util/issues"},"dist":{"shasum":"35a50b611f3460de5ec75238d39444c0f326abc2","tarball":"https://registry.npmjs.org/@aimidy/util/-/util-1.2.1.tgz","fileCount":14,"integrity":"sha512-0uXFEb2z7BpF+91nsqVWt6Wx8rxcJej7Dg3qnV1K+iiCc0zqgXw9aWPjmi/ZeC0XdAHwrp7zfymo0uZmZ1kNbw==","signatures":[{"sig":"MEUCIQDrWzi90Vmsnsv5gefh7PIyWQ/c01DA1RD1DR9PVivG2QIgFHzIcaD6VHk+biXzzxlAfRpg3e/nU/4siwJWaBL4nRQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112194},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"97cb394ed186ae447fb761d4ca71b0b58eb16d0f","scripts":{"push":"npm publish --access=public","test":"jest","build":"tsup"},"_npmUser":{"name":"aimidy","email":"zoe52888@gmail.com"},"repository":{"url":"git+https://github.com/aimidy/util.git","type":"git"},"_npmVersion":"11.7.0","description":"一個實用的 TypeScript 工具函數庫，提供常用的資料處理、物件操作、字串轉換等功能。✨","directories":{},"_nodeVersion":"24.9.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","tsup":"^8.5.1","ts-jest":"^29.4.6","ts-node":"^10.9.2","prettier":"^3.7.4","typescript":"^5.9.3","@types/jest":"^30.0.0"},"_npmOperationalInternal":{"tmp":"tmp/util_1.2.1_1767066782569_0.8559281809683312","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@aimidy/util","version":"1.2.2","description":"一個實用的 TypeScript 工具函數庫，提供常用的資料處理、物件操作、字串轉換等功能。✨","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","scripts":{"build":"tsup","test":"jest","push":"npm publish --access=public"},"repository":{"type":"git","url":"git+https://github.com/aimidy/util.git"},"keywords":["util","typescript","npm","library","tool","helper","aimidy","front-end","backend"],"author":{"name":"aimidy"},"license":"ISC","devDependencies":{"@types/jest":"^30.0.0","jest":"^30.2.0","prettier":"^3.7.4","ts-jest":"^29.4.6","ts-node":"^10.9.2","tsup":"^8.5.1","typescript":"^5.9.3"},"gitHead":"aaaa61e7a912e553daa060cfafb4698d15eb56fa","_id":"@aimidy/util@1.2.2","bugs":{"url":"https://github.com/aimidy/util/issues"},"homepage":"https://github.com/aimidy/util#readme","_nodeVersion":"24.9.0","_npmVersion":"11.7.0","dist":{"integrity":"sha512-hPMZtOTpHyaCB1jFo3OJayk4FTlHm4tcDVxYIdP4haKYzRK6OGkcPpDx4bYcE+P2jwYUwVxDsPb1fyDPeIWn4Q==","shasum":"9a09f5b7d6471d8fbf61cf7b41d1e9925f2aa2b1","tarball":"https://registry.npmjs.org/@aimidy/util/-/util-1.2.2.tgz","fileCount":14,"unpackedSize":125397,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCKAAoxJmBxcXFCV64P3KMF/yTFzNpSR31QvOiuAUOstwIgeu61fb5xWsdQFLe0yI87O7nqMCS0FB74lBX0//Ba4QM="}]},"_npmUser":{"name":"aimidy","email":"zoe52888@gmail.com"},"directories":{},"maintainers":[{"name":"aimidy","email":"zoe52888@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/util_1.2.2_1767949190666_0.3665481088229481"},"_hasShrinkwrap":false}},"time":{"created":"2024-02-21T06:08:36.234Z","modified":"2026-01-09T08:59:51.016Z","1.0.0":"2024-02-21T06:08:36.514Z","1.0.1":"2024-02-21T06:11:43.769Z","1.0.2":"2024-02-21T06:14:32.780Z","1.0.3":"2024-02-21T06:19:19.948Z","1.0.4":"2024-02-21T09:37:35.075Z","1.0.5":"2024-02-26T06:31:26.356Z","1.0.6":"2024-02-26T06:51:52.907Z","1.0.7":"2024-02-27T06:58:12.227Z","1.0.8":"2024-02-27T07:18:28.501Z","1.0.8-test":"2024-02-27T07:35:54.326Z","1.0.9":"2024-03-14T08:37:20.213Z","1.0.10":"2024-03-14T08:44:10.416Z","1.0.11":"2024-05-03T02:30:57.279Z","1.0.12":"2024-05-03T07:37:41.124Z","1.0.13":"2024-12-23T02:06:49.205Z","1.0.14":"2024-12-24T10:11:35.083Z","1.1.0":"2025-06-11T02:43:21.027Z","1.2.0":"2025-12-30T03:28:03.906Z","1.2.1":"2025-12-30T03:53:02.709Z","1.2.2":"2026-01-09T08:59:50.820Z"},"bugs":{"url":"https://github.com/aimidy/util/issues"},"author":{"name":"aimidy"},"license":"ISC","homepage":"https://github.com/aimidy/util#readme","keywords":["util","typescript","npm","library","tool","helper","aimidy","front-end","backend"],"repository":{"type":"git","url":"git+https://github.com/aimidy/util.git"},"description":"一個實用的 TypeScript 工具函數庫，提供常用的資料處理、物件操作、字串轉換等功能。✨","maintainers":[{"name":"aimidy","email":"zoe52888@gmail.com"}],"readme":"# @aimidy/util ⚡\r\n\r\n一個實用的 TypeScript 工具函數庫，提供常用的資料處理、物件操作、字串轉換等功能。✨\r\n\r\n## 📦 安裝\r\n\r\n```bash\r\nnpm install @aimidy/util\r\n```\r\n\r\n## 🚀 使用方式\r\n\r\n```typescript\r\nimport { data_get, deepAssign, strToHump } from '@aimidy/util';\r\n```\r\n\r\n## 📚 API 文件\r\n\r\n### 🗄️ 資料存取\r\n\r\n#### `data_get<T>(data, key, defaultValue?)`\r\n\r\n從巢狀物件或陣列中安全地獲取資料。\r\n\r\n**參數：**\r\n\r\n- `data`: 資料集 (物件、陣列或 null/undefined)\r\n- `key`: 資料路徑，使用點號分隔 (例如：`'app.column.name'`)\r\n- `defaultValue`: 取不到值時的預設值 (預設為 `null`)\r\n\r\n**範例：**\r\n\r\n```typescript\r\nconst data = { a: [{ b: 'value1' }, { b: 'value2' }] };\r\ndata_get(data, 'a.b'); // ['value1', 'value2']\r\n```\r\n\r\n#### `data_set(data, key, value)`\r\n\r\n動態設定多層物件的參數。\r\n\r\n**參數：**\r\n\r\n- `data`: 被設定的物件\r\n- `key`: 位置 (使用點號分隔)\r\n- `value`: 要設定的值\r\n\r\n**範例：**\r\n\r\n```typescript\r\nconst obj = {};\r\ndata_set(obj, 'user.profile.name', 'John');\r\n// { user: { profile: { name: 'John' } } }\r\n```\r\n\r\n### 🔧 物件操作\r\n\r\n#### `deepAssign(...objects)`\r\n\r\n深度合併多個物件。\r\n\r\n**範例：**\r\n\r\n```typescript\r\nconst obj1 = { a: { b: 1 } };\r\nconst obj2 = { a: { c: 2 } };\r\ndeepAssign(obj1, obj2); // { a: { b: 1, c: 2 } }\r\n```\r\n\r\n#### `recursiveDeepCopy<T>(obj)`\r\n\r\n透過遞迴深度複製物件或陣列。\r\n\r\n**範例：**\r\n\r\n```typescript\r\nconst original = { a: [1, 2], b: { c: 3 } };\r\nconst copy = recursiveDeepCopy(original);\r\n```\r\n\r\n#### `deepCloneWithJson<T>(obj)`\r\n\r\n透過 JSON 序列化/反序列化複製物件（速度較快但有限制）。\r\n\r\n**範例：**\r\n\r\n```typescript\r\nconst clone = deepCloneWithJson({ a: 1, b: { c: 2 } });\r\n```\r\n\r\n#### `parameterMerge(value1?, value2?)`\r\n\r\n合併兩個參數（物件或陣列）。\r\n\r\n**範例：**\r\n\r\n```typescript\r\nparameterMerge([1, 2], [3, 4]); // [1, 2, 3, 4]\r\nparameterMerge({ a: 1 }, { b: 2 }); // { a: 1, b: 2 }\r\n```\r\n\r\n### 🔤 字串轉換\r\n\r\n#### `convertCase(input, to)`\r\n\r\n將字串在不同命名風格間轉換，支持混合命名風格的拆解（如連續大寫字母、數字等）。\r\n\r\n**參數：**\r\n\r\n- `input`: 輸入字串（支持 PascalCase、camelCase、snake_case、kebab-case、混雜風格）\r\n- `to`: 目標格式 (`'pascal'` | `'camel'` | `'snake'` | `'kebab'`)\r\n\r\n**範例：**\r\n\r\n```typescript\r\nconvertCase('user_name', 'camel'); // 'userName'\r\nconvertCase('UserName', 'snake'); // 'user_name'\r\nconvertCase('user-name', 'pascal'); // 'UserName'\r\nconvertCase('JSONDataAPI', 'camel'); // 'jsonDataApi'\r\nconvertCase('API2Version', 'snake'); // 'api_2_version'\r\n```\r\n\r\n#### `convertAllCases(input)`\r\n\r\n一次轉換字串成所有四種命名風格。\r\n\r\n**範例：**\r\n\r\n```typescript\r\nconvertAllCases('user_name');\r\n// {\r\n//   pascal: 'UserName',\r\n//   camel: 'userName',\r\n//   snake: 'user_name',\r\n//   kebab: 'user-name'\r\n// }\r\n```\r\n\r\n#### `strToHump(str)`\r\n\r\n底線轉駝峰命名。\r\n\r\n**範例：**\r\n\r\n```typescript\r\nstrToHump('user_name'); // 'userName'\r\nstrToHump('_user_name'); // 'userName'\r\n```\r\n\r\n#### `strToConvert(str, convert?)`\r\n\r\n駝峰轉小寫+分隔符（預設為底線）。\r\n\r\n**參數：**\r\n\r\n- `str`: 輸入字串\r\n- `convert`: 分隔符號 (預設為 `'_'`)\r\n\r\n**範例：**\r\n\r\n```typescript\r\nstrToConvert('userName'); // 'user_name'\r\nstrToConvert('userName', '-'); // 'user-name'\r\n```\r\n\r\n#### `replacePathParams(str, data, prefix?)`\r\n\r\n替換路徑中的參數佔位符，支持自定義前綴。\r\n\r\n**參數：**\r\n\r\n- `str`: 路徑字串\r\n- `data`: 參數物件\r\n- `prefix`: 佔位符前綴 (預設為 `':'`)，支持 `'{}'`、`'$'`、`'#'`、`'@'` 等\r\n\r\n**範例：**\r\n\r\n```typescript\r\n// 預設使用 : 前綴\r\nreplacePathParams('/abc/:id', { id: '1' }); // '/abc/1'\r\nreplacePathParams('/user/:userId/post/:postId', { userId: '123', postId: '456' }); \r\n// '/user/123/post/456'\r\n\r\n// 使用 {} 包裹語法\r\nreplacePathParams('/abc/{id}', { id: '1' }, '{}'); // '/abc/1'\r\nreplacePathParams('/user/{userId}/post/{postId}', { userId: '123', postId: '456' }, '{}');\r\n// '/user/123/post/456'\r\n\r\n// 使用 $ 前綴\r\nreplacePathParams('/abc/$id', { id: '1' }, '$'); // '/abc/1'\r\n\r\n// 使用 # 前綴\r\nreplacePathParams('/page/#pageNum', { pageNum: '5' }, '#'); // '/page/5'\r\n\r\n// 使用 @ 前綴\r\nreplacePathParams('/user/@username', { username: 'john' }, '@'); // '/user/john'\r\n\r\n// 參數不存在時保留原樣\r\nreplacePathParams('/abc/:id/:name', { id: '1' }); // '/abc/1/:name'\r\n\r\n// 混合前綴不會互相干擾\r\nreplacePathParams('/api/:version/user/{id}', { version: 'v1', id: '123' }, ':');\r\n// '/api/v1/user/{id}'\r\n```\r\n\r\n### 📋 陣列操作\r\n\r\n#### `head<T>(arr)`\r\n\r\n回傳陣列的第一個值或 null。\r\n\r\n**範例：**\r\n\r\n```typescript\r\nhead([1, 2, 3]); // 1\r\nhead([]); // null\r\n```\r\n\r\n#### `remove(arr, item)`\r\n\r\n移除陣列中指定的值。\r\n\r\n**參數：**\r\n\r\n- `arr`: 字串或數字陣列\r\n- `item`: 要移除的值\r\n\r\n**範例：**\r\n\r\n```typescript\r\nremove([1, 2, 3, 2], 2); // [1, 3, 2]\r\n```\r\n\r\n#### `fieldSorter(sort)`\r\n\r\n多欄位排序函數。\r\n\r\n**參數：**\r\n\r\n- `sort.isDesc`: 是否降冪排序\r\n- `sort.fields`: 欄位設定陣列\r\n  - `key`: 欄位名稱\r\n  - `isNumber`: 是否為數字\r\n  - `isDesc`: 該欄位是否降冪\r\n\r\n**範例：**\r\n\r\n```typescript\r\nconst data = [\r\n  { name: 'John', age: 30 },\r\n  { name: 'Jane', age: 25 },\r\n];\r\ndata.sort(\r\n  fieldSorter({\r\n    fields: [{ key: 'age', isNumber: true, isDesc: true }],\r\n  }),\r\n);\r\n```\r\n\r\n#### `range(start, stop, step)`\r\n\r\n取得數值區間的陣列。\r\n\r\n**範例：**\r\n\r\n```typescript\r\nrange(1, 5, 1); // [1, 2, 3, 4, 5]\r\nrange(0, 10, 2); // [0, 2, 4, 6, 8, 10]\r\n```\r\n\r\n### 🛠️ 工具函數\r\n\r\n#### `gettype(obj)`\r\n\r\n回傳物件的精確型態。\r\n\r\n**回傳值：** `'array'` | `'date'` | `'null'` | `'undefined'` | `'object'` | `'string'` | `'number'` | `'boolean'` 等\r\n\r\n**範例：**\r\n\r\n```typescript\r\ngettype([]); // 'array'\r\ngettype(null); // 'null'\r\ngettype(new Date()); // 'date'\r\n```\r\n\r\n#### `emptyData(data)`\r\n\r\n判斷資料是否為空值（`undefined` 或 `null`）。\r\n\r\n**範例：**\r\n\r\n```typescript\r\nemptyData(null); // true\r\nemptyData(undefined); // true\r\nemptyData(0); // false\r\nemptyData(''); // false\r\n```\r\n\r\n#### `searchInStr(str, key)`\r\n\r\n尋找字串內是否有符合的值，並移除後回傳結果。\r\n\r\n**回傳值：** `[boolean, string]`\r\n\r\n**範例：**\r\n\r\n```typescript\r\nsearchInStr('hello world', 'world'); // [true, 'hello ']\r\nsearchInStr('hello', 'bye'); // [false, 'hello']\r\n```\r\n\r\n## 💻 開發\r\n\r\n```bash\r\n# 執行測試\r\nnpm test\r\n\r\n# 建置專案\r\nnpm run build\r\n\r\n# 發布套件\r\nnpm run push\r\n```\r\n\r\n## 📄 授權\r\n\r\nISC\r\n\r\n## 👤 作者\r\n\r\naimidy\r\n\r\n## 🔗 Repository\r\n\r\n<https://github.com/aimidy/util>\r\n","readmeFilename":"README.md"}