{"_id":"@fajarmaulana/komerce-lp-helper","_rev":"26-c543970bb5a76170e07e45301cd04dd9","name":"@fajarmaulana/komerce-lp-helper","dist-tags":{"latest":"0.4.16"},"versions":{"0.1.0":{"name":"@fajarmaulana/komerce-lp-helper","version":"0.1.0","keywords":["react","debounce","slider","router","fetcher","utils","hooks"],"author":{"name":"Fajar Maulana"},"license":"MIT","_id":"@fajarmaulana/komerce-lp-helper@0.1.0","maintainers":[{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"}],"dist":{"shasum":"75d95ecb1d5035fd1c5d3668488ac44b488516a7","tarball":"https://registry.npmjs.org/@fajarmaulana/komerce-lp-helper/-/komerce-lp-helper-0.1.0.tgz","fileCount":29,"integrity":"sha512-yDNghRPBCTo0PSan43Lb0KNtuYAeV4jrqgpOXsfRaoOJzzWit0o2Qfz/zbPjumDy1axueJy5oO7rvx2L9+ZQpg==","signatures":[{"sig":"MEUCIQD3SvSQUiMUWZfNEp5A8VDbaVUJHxsjyLgPJ7yxkvxYvgIgS4ZHZh3vZ4D/SblGLGFih4kC4ZV0hf09xceUR1hvKc0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":116328},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"be5d4cc7a9fab71dd6c1e237f634c89c6d5594cc","scripts":{"build":"tsc"},"_npmUser":{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"},"_npmVersion":"10.7.0","description":"Helper functions, hooks and utils for Komerce LP","directories":{},"_nodeVersion":"20.15.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.2.0","@types/react":"^18.2.0","@types/react-dom":"^18.2.0"},"peerDependencies":{"react":">=18","react-dom":">=18","react-router-dom":">=6"},"_npmOperationalInternal":{"tmp":"tmp/komerce-lp-helper_0.1.0_1767347859732_0.20511367314716566","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@fajarmaulana/komerce-lp-helper","version":"0.1.1","keywords":["react","debounce","slider","router","fetcher","utils","hooks"],"author":{"name":"Fajar Maulana"},"license":"MIT","_id":"@fajarmaulana/komerce-lp-helper@0.1.1","maintainers":[{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"}],"homepage":"https://github.com/fajarmaulana-dev/komerce-lp-helper#readme","bugs":{"url":"https://github.com/fajarmaulana-dev/komerce-lp-helper/issues"},"dist":{"shasum":"8c8e7a2f101f09e13443f82e445a1c83cfeb2708","tarball":"https://registry.npmjs.org/@fajarmaulana/komerce-lp-helper/-/komerce-lp-helper-0.1.1.tgz","fileCount":29,"integrity":"sha512-0Qcq/khohPkc8PEvs4QrbmtehJ2j6EcPTw6PAP8IOf6nbiRt7ZjET8p0n1oqJqbb4Qjx5eN4h280BcB+LLry7w==","signatures":[{"sig":"MEYCIQD1xtHBiZTUq49JFghC5EPCHWZV7aEyinBAHK87NxezPAIhAMBVr1XuZuP+UQ3QaI1XB7b0j5K0O8lTCnJkfuyVxxYy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":116440},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"4bbcd60d595fd92fb9d71945302d0373cd2cf556","scripts":{"build":"tsc"},"_npmUser":{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"},"repository":{"url":"git+https://github.com/fajarmaulana-dev/komerce-lp-helper.git","type":"git"},"_npmVersion":"10.8.2","description":"Helper functions, hooks and utils for Komerce LP","directories":{},"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.2.0","@types/react":"^18.2.0","@changesets/cli":"^2.29.8","@types/react-dom":"^18.2.0"},"peerDependencies":{"react":">=18","react-dom":">=18","react-router-dom":">=6"},"_npmOperationalInternal":{"tmp":"tmp/komerce-lp-helper_0.1.1_1767578136191_0.6680095290831467","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@fajarmaulana/komerce-lp-helper","version":"0.2.0","keywords":["react","debounce","slider","router","fetcher","utils","hooks"],"author":{"name":"Fajar Maulana"},"license":"MIT","_id":"@fajarmaulana/komerce-lp-helper@0.2.0","maintainers":[{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"}],"homepage":"https://github.com/fajarmaulana-dev/komerce-lp-helper#readme","bugs":{"url":"https://github.com/fajarmaulana-dev/komerce-lp-helper/issues"},"dist":{"shasum":"4e8e3afc4caddcd9cb22bdcd8daa7a3d06139267","tarball":"https://registry.npmjs.org/@fajarmaulana/komerce-lp-helper/-/komerce-lp-helper-0.2.0.tgz","fileCount":47,"integrity":"sha512-wkUyCf6dQXaRX0Q5vHAkOPnCRdgpq6/WTKwo89S/eFAxBqHAb6nYSNA5OkVRIpR5L61LFsrC1I4JV3iGdgvj0w==","signatures":[{"sig":"MEUCICqFNKoDWIFsxkyVXCSOE3DSilWJrShbpa6U/C42MIuQAiEA9/pVoqY5MHX4Tm9DZ7/r6MLwIx0QqUjEaSypypWjNKo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":143933},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"b776fb2e70807fd13716b6748aecc7aa43e915bd","scripts":{"build":"tsc"},"_npmUser":{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"},"repository":{"url":"git+https://github.com/fajarmaulana-dev/komerce-lp-helper.git","type":"git"},"_npmVersion":"10.8.2","description":"Helper functions, hooks, and utils for Komerce LP","directories":{},"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","globals":"^15.14.0","prettier":"^3.6.2","@eslint/js":"^9.33.0","typescript":"^5.2.0","@types/react":"^19.0.8","@changesets/cli":"^2.29.8","@types/react-dom":"^19.0.3","react-router-dom":"^7.11.0","eslint-plugin-react":"^7.37.5","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.39.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","eslint-plugin-unused-imports":"^4.1.4","@typescript-eslint/eslint-plugin":"^8.39.1","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":">=19","react-dom":">=19","react-router-dom":">=7"},"_npmOperationalInternal":{"tmp":"tmp/komerce-lp-helper_0.2.0_1767585325622_0.7706802276445679","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@fajarmaulana/komerce-lp-helper","version":"0.2.1","keywords":["react","debounce","slider","router","fetcher","utils","hooks","form"],"author":{"name":"Fajar Maulana"},"license":"MIT","_id":"@fajarmaulana/komerce-lp-helper@0.2.1","maintainers":[{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"}],"homepage":"https://github.com/fajarmaulana-dev/komerce-lp-helper#readme","bugs":{"url":"https://github.com/fajarmaulana-dev/komerce-lp-helper/issues"},"dist":{"shasum":"a33130befcc5dc8013ad2ee1ee37d70ffb5831fd","tarball":"https://registry.npmjs.org/@fajarmaulana/komerce-lp-helper/-/komerce-lp-helper-0.2.1.tgz","fileCount":47,"integrity":"sha512-nPCFswpZOc7M0fxn8xWaQ1VfCmbn4ZhBKi50zBdL0BNTCdP45xWoCmqLa6nbm8cT4jZJfrlt1BGWsFajL/qKgA==","signatures":[{"sig":"MEQCIGFaKnxl9LptgVeqTPcosElXVTFn3zxmBNpJ1VHZZgUoAiBtx4dylI4SbZu7jHHcZEns5hXo3zAIFF2RL97P1m/v2w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":143959},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"8d7212a4cda9b3192735e57b0b95e71e31ae657e","scripts":{"build":"tsc"},"_npmUser":{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"},"repository":{"url":"git+https://github.com/fajarmaulana-dev/komerce-lp-helper.git","type":"git"},"_npmVersion":"10.8.2","description":"Helper functions, hooks, and utils for Komerce LP","directories":{},"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","globals":"^15.14.0","prettier":"^3.6.2","@eslint/js":"^9.33.0","typescript":"^5.2.0","@types/react":"^19.0.8","@changesets/cli":"^2.29.8","@types/react-dom":"^19.0.3","react-router-dom":"^7.11.0","eslint-plugin-react":"^7.37.5","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.39.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","eslint-plugin-unused-imports":"^4.1.4","@typescript-eslint/eslint-plugin":"^8.39.1","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":">=19","react-dom":">=19","react-router-dom":">=7"},"_npmOperationalInternal":{"tmp":"tmp/komerce-lp-helper_0.2.1_1767586437480_0.14668714906429892","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@fajarmaulana/komerce-lp-helper","version":"0.2.2","keywords":["react","debounce","slider","router","fetcher","utils","hooks","form"],"author":{"name":"Fajar Maulana"},"license":"MIT","_id":"@fajarmaulana/komerce-lp-helper@0.2.2","maintainers":[{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"}],"homepage":"https://github.com/fajarmaulana-dev/komerce-lp-helper#readme","bugs":{"url":"https://github.com/fajarmaulana-dev/komerce-lp-helper/issues"},"dist":{"shasum":"56e507d648b2705e1e36e4b04dad9ae08d971bbc","tarball":"https://registry.npmjs.org/@fajarmaulana/komerce-lp-helper/-/komerce-lp-helper-0.2.2.tgz","fileCount":53,"integrity":"sha512-KznszKBYo7Vi0Y87FmXNaW+hon/OxT+4gmy9fEVBCBjgKu4GLtv/yzpZT/ClsmpnwkI1WnAr/rJzcvHQ54Wi2A==","signatures":[{"sig":"MEQCIGj7DKqXqY0AV6Erfh8SEjkrSvj7YVUAhGmHBHaUx/G0AiBCUhMnub/77/7IvG12emPaybohaKfnuE4gd4egy3L3ew==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":144813},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"0d6a398daff1e6b215915965f855c7eddd7967de","scripts":{"build":"tsc && tsc-alias"},"_npmUser":{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"},"repository":{"url":"git+https://github.com/fajarmaulana-dev/komerce-lp-helper.git","type":"git"},"_npmVersion":"10.8.2","description":"Helper functions, hooks, and utils for Komerce LP","directories":{},"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","globals":"^15.14.0","prettier":"^3.6.2","tsc-alias":"^1.8.16","@eslint/js":"^9.33.0","typescript":"^5.2.0","@types/react":"^19.0.8","@changesets/cli":"^2.29.8","@types/react-dom":"^19.0.3","react-router-dom":"^7.11.0","eslint-plugin-react":"^7.37.5","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.39.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","eslint-plugin-unused-imports":"^4.1.4","@typescript-eslint/eslint-plugin":"^8.39.1","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":">=19","react-dom":">=19","react-router-dom":">=7"},"_npmOperationalInternal":{"tmp":"tmp/komerce-lp-helper_0.2.2_1767587785062_0.68072749251103","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@fajarmaulana/komerce-lp-helper","version":"0.3.0","keywords":["react","debounce","slider","router","fetcher","utils","hooks","form"],"author":{"name":"Fajar Maulana"},"license":"MIT","_id":"@fajarmaulana/komerce-lp-helper@0.3.0","maintainers":[{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"}],"homepage":"https://github.com/fajarmaulana-dev/komerce-lp-helper#readme","bugs":{"url":"https://github.com/fajarmaulana-dev/komerce-lp-helper/issues"},"dist":{"shasum":"fe0b80c1e6bb09a75c5798f55e2d038dd3f35b55","tarball":"https://registry.npmjs.org/@fajarmaulana/komerce-lp-helper/-/komerce-lp-helper-0.3.0.tgz","fileCount":53,"integrity":"sha512-xDPKaQ/OhJGitWBx2jZyVKSItJXHbRw0NTMmLFPzglmRsJb52ECqe/HUhA1Pu6xKO8wQ6RCCYsGtIzIEISD0UA==","signatures":[{"sig":"MEUCIQDIssKIJ0GRTruEemQGPY0M6zemeH8VfNX5MYuh4A3R9gIgGVbF41Umj9Gjx1s3Se+EFS8LenGzuuETPFslLx2GgII=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113019},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"3aad5e50de4d27871a03a1459223f21b325bcd94","scripts":{"build":"tsc && tsc-alias"},"_npmUser":{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"},"repository":{"url":"git+https://github.com/fajarmaulana-dev/komerce-lp-helper.git","type":"git"},"_npmVersion":"10.8.2","description":"Helper functions, hooks, and utils for Komerce LP","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","globals":"^15.14.0","prettier":"^3.6.2","tsc-alias":"^1.8.16","@eslint/js":"^9.33.0","typescript":"^5.2.0","@types/react":"^19.0.8","@changesets/cli":"^2.29.8","@types/react-dom":"^19.0.3","react-router-dom":"^7.11.0","eslint-plugin-react":"^7.37.5","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.39.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","eslint-plugin-unused-imports":"^4.1.4","@typescript-eslint/eslint-plugin":"^8.39.1","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":">=19","react-dom":">=19","react-router-dom":">=7"},"_npmOperationalInternal":{"tmp":"tmp/komerce-lp-helper_0.3.0_1767754995725_0.8082859159713878","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@fajarmaulana/komerce-lp-helper","version":"0.3.1","keywords":["react","debounce","slider","router","fetcher","utils","hooks","form"],"author":{"name":"Fajar Maulana"},"license":"MIT","_id":"@fajarmaulana/komerce-lp-helper@0.3.1","maintainers":[{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"}],"homepage":"https://github.com/fajarmaulana-dev/komerce-lp-helper#readme","bugs":{"url":"https://github.com/fajarmaulana-dev/komerce-lp-helper/issues"},"dist":{"shasum":"a0fd6ade1f2fb08865acea1d859b168f538f7f1a","tarball":"https://registry.npmjs.org/@fajarmaulana/komerce-lp-helper/-/komerce-lp-helper-0.3.1.tgz","fileCount":53,"integrity":"sha512-fsOg7I28vsIlqJxMwVoHbTZeXnvlJMp5i9/9eRVJov9071Z7YZT7tWWESZxefLwNW4ndS4HB2q93MsdpjPGMEw==","signatures":[{"sig":"MEQCIBRFMENqglDPNM5VcgA6gQMlDvAsoUk6mYGQz4vhVH9hAiAZeae7Q9hjMcUFbGcpDwRtMEq4x2e8klBXOy78Rn0sbA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112928},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"712370b85cc0fb8b2cb131988f859f11ea851e48","scripts":{"build":"tsc && tsc-alias"},"_npmUser":{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"},"repository":{"url":"git+https://github.com/fajarmaulana-dev/komerce-lp-helper.git","type":"git"},"_npmVersion":"10.8.2","description":"Helper functions, hooks, and utils for Komerce LP","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","globals":"^15.14.0","prettier":"^3.6.2","tsc-alias":"^1.8.16","@eslint/js":"^9.33.0","typescript":"^5.2.0","@types/react":"^19.0.8","@changesets/cli":"^2.29.8","@types/react-dom":"^19.0.3","react-router-dom":"^7.11.0","eslint-plugin-react":"^7.37.5","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.39.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","eslint-plugin-unused-imports":"^4.1.4","@typescript-eslint/eslint-plugin":"^8.39.1","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":">=19","react-dom":">=19","react-router-dom":">=7"},"_npmOperationalInternal":{"tmp":"tmp/komerce-lp-helper_0.3.1_1767756250664_0.516458099422602","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@fajarmaulana/komerce-lp-helper","version":"0.3.2","keywords":["react","debounce","slider","router","fetcher","utils","hooks","form"],"author":{"name":"Fajar Maulana"},"license":"MIT","_id":"@fajarmaulana/komerce-lp-helper@0.3.2","maintainers":[{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"}],"homepage":"https://github.com/fajarmaulana-dev/komerce-lp-helper#readme","bugs":{"url":"https://github.com/fajarmaulana-dev/komerce-lp-helper/issues"},"dist":{"shasum":"3fa8e705deb0a9a398e39cf9937c109efcd5beb2","tarball":"https://registry.npmjs.org/@fajarmaulana/komerce-lp-helper/-/komerce-lp-helper-0.3.2.tgz","fileCount":53,"integrity":"sha512-RxsJa+IdJn8f6zW90YZThkDvWLNqsiGGakPXobFUK68rfFPbkXruGNPciC++1Igt+PWQG4N9BjxbijWQpaXgwQ==","signatures":[{"sig":"MEUCIQCyU0at4O2IozIVnRg1TbUuuZnh9s+La3755DCNfzTebQIgEEr/kgDwvcedaEJbka7iCPlA95z8b0EBbXc6n2ujt78=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113566},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"5efd3a8f105191d4cd4a15eaf9aa0b108e9c86ec","scripts":{"build":"tsc && tsc-alias","prepublishOnly":"npm run build"},"_npmUser":{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"},"repository":{"url":"git+https://github.com/fajarmaulana-dev/komerce-lp-helper.git","type":"git"},"_npmVersion":"10.8.2","description":"Helper functions, hooks, and utils for Komerce LP","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","globals":"^15.14.0","prettier":"^3.6.2","tsc-alias":"^1.8.16","@eslint/js":"^9.33.0","typescript":"^5.2.0","@types/react":"^19.0.8","@changesets/cli":"^2.29.8","@types/react-dom":"^19.0.3","react-router-dom":"^7.11.0","eslint-plugin-react":"^7.37.5","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.39.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","eslint-plugin-unused-imports":"^4.1.4","@typescript-eslint/eslint-plugin":"^8.39.1","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":">=19","react-dom":">=19","react-router-dom":">=7"},"_npmOperationalInternal":{"tmp":"tmp/komerce-lp-helper_0.3.2_1770074928721_0.6115083825687284","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@fajarmaulana/komerce-lp-helper","version":"0.3.3","keywords":["react","debounce","slider","router","fetcher","utils","hooks","form"],"author":{"name":"Fajar Maulana"},"license":"MIT","_id":"@fajarmaulana/komerce-lp-helper@0.3.3","maintainers":[{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"}],"homepage":"https://github.com/fajarmaulana-dev/komerce-lp-helper#readme","bugs":{"url":"https://github.com/fajarmaulana-dev/komerce-lp-helper/issues"},"dist":{"shasum":"fa83368fc97c085866a7e42709219dd7a827d8fd","tarball":"https://registry.npmjs.org/@fajarmaulana/komerce-lp-helper/-/komerce-lp-helper-0.3.3.tgz","fileCount":53,"integrity":"sha512-249y+6w1Q/+v9WczUH25lQyjCJKDGegK2YoH/UuneuTvOfmTbGUt8paPzHYnYZYFXnIge3MRvQQuC34L9xyOeQ==","signatures":[{"sig":"MEYCIQDZcvDUop2lxRNRzmqomCm3LGrIVeXS2xIooLP6losR0gIhAMfL051kPAFL/Eu+oaYhC9CJ+ipwr3TobRfNn9EMkekw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113632},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"994e29516357d15d9562c2f63a865ead84b4b226","scripts":{"build":"tsc && tsc-alias","prepublishOnly":"npm run build"},"_npmUser":{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"},"repository":{"url":"git+https://github.com/fajarmaulana-dev/komerce-lp-helper.git","type":"git"},"_npmVersion":"10.8.2","description":"Helper functions, hooks, and utils for Komerce LP","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","globals":"^15.14.0","prettier":"^3.6.2","tsc-alias":"^1.8.16","@eslint/js":"^9.33.0","typescript":"^5.2.0","@types/react":"^19.0.8","@changesets/cli":"^2.29.8","@types/react-dom":"^19.0.3","react-router-dom":"^7.11.0","eslint-plugin-react":"^7.37.5","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.39.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","eslint-plugin-unused-imports":"^4.1.4","@typescript-eslint/eslint-plugin":"^8.39.1","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":">=19","react-dom":">=19","react-router-dom":">=7"},"_npmOperationalInternal":{"tmp":"tmp/komerce-lp-helper_0.3.3_1770076139006_0.33653896779490666","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@fajarmaulana/komerce-lp-helper","version":"0.4.0","keywords":["react","debounce","slider","router","fetcher","utils","hooks","form"],"author":{"name":"Fajar Maulana"},"license":"MIT","_id":"@fajarmaulana/komerce-lp-helper@0.4.0","maintainers":[{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"}],"homepage":"https://github.com/fajarmaulana-dev/komerce-lp-helper#readme","bugs":{"url":"https://github.com/fajarmaulana-dev/komerce-lp-helper/issues"},"dist":{"shasum":"b1954e6a9517317cf189440238bbb8963ab39737","tarball":"https://registry.npmjs.org/@fajarmaulana/komerce-lp-helper/-/komerce-lp-helper-0.4.0.tgz","fileCount":53,"integrity":"sha512-ZJclh/rj2eD72E/mhOnyOzNc+3/1YSTthLsw3L8gIbb/L2e7efLr5VhAHK7URKMJBvyGfO/8C72SJpuVzEfpFA==","signatures":[{"sig":"MEUCIQCFba8M9EJ/yZi553VKxXPCiS2Cv/2ad7GxRGRCrCPAxQIgKQUg5W2xFqAhHm7MisjOz8v90tus5iBcLJKnDsW/zTw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":117136},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"d907d8840c941b66133992782d62e199cce4a51c","scripts":{"build":"tsc && tsc-alias","prepublishOnly":"npm run build"},"_npmUser":{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"},"repository":{"url":"git+https://github.com/fajarmaulana-dev/komerce-lp-helper.git","type":"git"},"_npmVersion":"10.8.2","description":"Helper functions, hooks, and utils for Komerce LP","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","globals":"^15.14.0","prettier":"^3.6.2","tsc-alias":"^1.8.16","@eslint/js":"^9.33.0","typescript":"^5.2.0","@types/react":"^19.0.8","@changesets/cli":"^2.29.8","@types/react-dom":"^19.0.3","react-router-dom":"^7.11.0","eslint-plugin-react":"^7.37.5","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.39.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","eslint-plugin-unused-imports":"^4.1.4","@typescript-eslint/eslint-plugin":"^8.39.1","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":">=19","react-dom":">=19","react-router-dom":">=7"},"_npmOperationalInternal":{"tmp":"tmp/komerce-lp-helper_0.4.0_1771843787001_0.8868969003913205","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@fajarmaulana/komerce-lp-helper","version":"0.4.1","keywords":["react","debounce","slider","router","fetcher","utils","hooks","form"],"author":{"name":"Fajar Maulana"},"license":"MIT","_id":"@fajarmaulana/komerce-lp-helper@0.4.1","maintainers":[{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"}],"homepage":"https://github.com/fajarmaulana-dev/komerce-lp-helper#readme","bugs":{"url":"https://github.com/fajarmaulana-dev/komerce-lp-helper/issues"},"dist":{"shasum":"8406b22041eed4f2a5028250720330a759d625c0","tarball":"https://registry.npmjs.org/@fajarmaulana/komerce-lp-helper/-/komerce-lp-helper-0.4.1.tgz","fileCount":53,"integrity":"sha512-2lomYork/QeNXCK6QNEDArgkvwZZaKn2u+pXSSiw/mn9NoLl8c4lr26ncDTcB1idMfoZeP4k85C36NhIVkuQUw==","signatures":[{"sig":"MEUCIGseNdlb+hKLk2lwLRsZOI2qI0T/KkWyjxhxgPSpGt6eAiEA8Y/MaJH2TQIirmQ5+xntMyGcBEBaxYuETqeSHSVfk0U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":117137},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"c5187d29b1fc7e9ab898dabe9b0f82c0e40692d8","scripts":{"build":"tsc && tsc-alias","prepublishOnly":"npm run build"},"_npmUser":{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"},"repository":{"url":"git+https://github.com/fajarmaulana-dev/komerce-lp-helper.git","type":"git"},"_npmVersion":"10.8.2","description":"Helper functions, hooks, and utils for Komerce LP","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","globals":"^15.14.0","prettier":"^3.6.2","tsc-alias":"^1.8.16","@eslint/js":"^9.33.0","typescript":"^5.2.0","@types/react":"^19.0.8","@changesets/cli":"^2.29.8","@types/react-dom":"^19.0.3","react-router-dom":"^7.11.0","eslint-plugin-react":"^7.37.5","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.39.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","eslint-plugin-unused-imports":"^4.1.4","@typescript-eslint/eslint-plugin":"^8.39.1","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":">=19","react-dom":">=19","react-router-dom":">=7"},"_npmOperationalInternal":{"tmp":"tmp/komerce-lp-helper_0.4.1_1771890074642_0.5378865383515683","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@fajarmaulana/komerce-lp-helper","version":"0.4.2","keywords":["react","debounce","slider","router","fetcher","utils","hooks","form"],"author":{"name":"Fajar Maulana"},"license":"MIT","_id":"@fajarmaulana/komerce-lp-helper@0.4.2","maintainers":[{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"}],"homepage":"https://github.com/fajarmaulana-dev/komerce-lp-helper#readme","bugs":{"url":"https://github.com/fajarmaulana-dev/komerce-lp-helper/issues"},"dist":{"shasum":"a2ae43b612fb7f62651363c09863d58cd51babc7","tarball":"https://registry.npmjs.org/@fajarmaulana/komerce-lp-helper/-/komerce-lp-helper-0.4.2.tgz","fileCount":53,"integrity":"sha512-tcYS91lGjvZGJAXuAh2zj7Oq3+zyBAvPcjMilZU1xzOIzOa5iRv1fZXeWGCqr3nZJrsO7jkNp8rRKU4OHj3rdg==","signatures":[{"sig":"MEYCIQDnme9O4mtfFznKzuU6vtsB9fpmQVEffOfPMgMTxJBySgIhAIPLs0v9oHZlCBsLU1L1+L/rAvKjRfJJ3ChWiypd7gel","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":117134},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"ab0cd8bb524029adcc372acebfab8123c7b206b7","scripts":{"build":"tsc && tsc-alias","prepublishOnly":"npm run build"},"_npmUser":{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"},"repository":{"url":"git+https://github.com/fajarmaulana-dev/komerce-lp-helper.git","type":"git"},"_npmVersion":"10.8.2","description":"Helper functions, hooks, and utils for Komerce LP","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","globals":"^15.14.0","prettier":"^3.6.2","tsc-alias":"^1.8.16","@eslint/js":"^9.33.0","typescript":"^5.2.0","@types/react":"^19.0.8","@changesets/cli":"^2.29.8","@types/react-dom":"^19.0.3","react-router-dom":"^7.11.0","eslint-plugin-react":"^7.37.5","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.39.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","eslint-plugin-unused-imports":"^4.1.4","@typescript-eslint/eslint-plugin":"^8.39.1","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":">=19","react-dom":">=19","react-router-dom":">=7"},"_npmOperationalInternal":{"tmp":"tmp/komerce-lp-helper_0.4.2_1771890884787_0.7532354358122797","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@fajarmaulana/komerce-lp-helper","version":"0.4.3","keywords":["react","debounce","slider","router","fetcher","utils","hooks","form"],"author":{"name":"Fajar Maulana"},"license":"MIT","_id":"@fajarmaulana/komerce-lp-helper@0.4.3","maintainers":[{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"}],"homepage":"https://github.com/fajarmaulana-dev/komerce-lp-helper#readme","bugs":{"url":"https://github.com/fajarmaulana-dev/komerce-lp-helper/issues"},"dist":{"shasum":"8df5693a4de88b32b16dfb8f38649765557704a6","tarball":"https://registry.npmjs.org/@fajarmaulana/komerce-lp-helper/-/komerce-lp-helper-0.4.3.tgz","fileCount":53,"integrity":"sha512-f8Ymo70NwCSbF+mkMBLjEBAbap2Hkq6JA7GOnY60sCi5rT6rJwTrPIxKWotlFR7VCwMznZnvTsGVNlS75trTkw==","signatures":[{"sig":"MEUCIAD7mfciZgbJt7fTW4G15jaRYR7huBqFmpg2HDEa1KOcAiEA1q0zRUm2YZNxY/lNcLvO4PF0J6MsoAep1LJEar6iPqI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118261},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"00a35f4edb11ac951218b66b1fe3776d368a5a42","scripts":{"build":"tsc && tsc-alias","prepublishOnly":"npm run build"},"_npmUser":{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"},"repository":{"url":"git+https://github.com/fajarmaulana-dev/komerce-lp-helper.git","type":"git"},"_npmVersion":"10.8.2","description":"Helper functions, hooks, and utils for Komerce LP","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","globals":"^15.14.0","prettier":"^3.6.2","tsc-alias":"^1.8.16","@eslint/js":"^9.33.0","typescript":"^5.2.0","@types/react":"^19.0.8","@changesets/cli":"^2.29.8","@types/react-dom":"^19.0.3","react-router-dom":"^7.11.0","eslint-plugin-react":"^7.37.5","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.39.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","eslint-plugin-unused-imports":"^4.1.4","@typescript-eslint/eslint-plugin":"^8.39.1","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":">=19","react-dom":">=19","react-router-dom":">=7"},"_npmOperationalInternal":{"tmp":"tmp/komerce-lp-helper_0.4.3_1772086308442_0.7193896808557168","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"@fajarmaulana/komerce-lp-helper","version":"0.4.4","keywords":["react","debounce","slider","router","fetcher","utils","hooks","form"],"author":{"name":"Fajar Maulana"},"license":"MIT","_id":"@fajarmaulana/komerce-lp-helper@0.4.4","maintainers":[{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"}],"homepage":"https://github.com/fajarmaulana-dev/komerce-lp-helper#readme","bugs":{"url":"https://github.com/fajarmaulana-dev/komerce-lp-helper/issues"},"dist":{"shasum":"525c73b1a56dcf8243acbfea59beb334ac0b35e1","tarball":"https://registry.npmjs.org/@fajarmaulana/komerce-lp-helper/-/komerce-lp-helper-0.4.4.tgz","fileCount":53,"integrity":"sha512-aD5DrTtofkArDy2UttnBsPgQHfGUqnpsU8FgWiMtvBHUc3x6chwpXY5opZ7t2L+ahBOTzGatXGw/mYT7p6oz4A==","signatures":[{"sig":"MEQCIASNxsY/nRFP3yLrCztMNFYQo9BTUiN5NRKZKztx42czAiAYk16wcY+9RTOo7he8A9qO2jWd8wgXVMRX54+dvTLq1g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":117659},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"e07b0821c5b7d80b081fb782a93cd217e440067e","scripts":{"build":"tsc && tsc-alias","prepublishOnly":"npm run build"},"_npmUser":{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"},"repository":{"url":"git+https://github.com/fajarmaulana-dev/komerce-lp-helper.git","type":"git"},"_npmVersion":"10.8.2","description":"Helper functions, hooks, and utils for Komerce LP","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","globals":"^15.14.0","prettier":"^3.6.2","tsc-alias":"^1.8.16","@eslint/js":"^9.33.0","typescript":"^5.2.0","@types/react":"^19.0.8","@changesets/cli":"^2.29.8","@types/react-dom":"^19.0.3","react-router-dom":"^7.11.0","eslint-plugin-react":"^7.37.5","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.39.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","eslint-plugin-unused-imports":"^4.1.4","@typescript-eslint/eslint-plugin":"^8.39.1","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":">=19","react-dom":">=19","react-router-dom":">=7"},"_npmOperationalInternal":{"tmp":"tmp/komerce-lp-helper_0.4.4_1772088022057_0.6432651917696188","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"@fajarmaulana/komerce-lp-helper","version":"0.4.5","keywords":["react","debounce","slider","router","fetcher","utils","hooks","form"],"author":{"name":"Fajar Maulana"},"license":"MIT","_id":"@fajarmaulana/komerce-lp-helper@0.4.5","maintainers":[{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"}],"homepage":"https://github.com/fajarmaulana-dev/komerce-lp-helper#readme","bugs":{"url":"https://github.com/fajarmaulana-dev/komerce-lp-helper/issues"},"dist":{"shasum":"298afc2feaa9c9cb1d67eb6595bf883f4a6f5352","tarball":"https://registry.npmjs.org/@fajarmaulana/komerce-lp-helper/-/komerce-lp-helper-0.4.5.tgz","fileCount":53,"integrity":"sha512-4JSU80/TJXXXTOGsiAkJsB/c1V9wyTgemL1BwV13NiylAytHhULcbntKOfXDSxLuPD0qRTBzgb+yHEO7YAltoA==","signatures":[{"sig":"MEUCIQDL+YDSDk149CGRpa1tQtj0Ztf1FHfkX8yapXLQjDhVngIgVvBmsCLqd4C9MBvrVe7/Rb2ngeNVIaIOur3Hz1kFBBs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118679},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"32edb4f3144c9a8925df06c73e8f0b3894406f53","scripts":{"build":"tsc && tsc-alias","prepublishOnly":"npm run build"},"_npmUser":{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"},"repository":{"url":"git+https://github.com/fajarmaulana-dev/komerce-lp-helper.git","type":"git"},"_npmVersion":"10.8.2","description":"Helper functions, hooks, and utils for Komerce LP","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","globals":"^15.14.0","prettier":"^3.6.2","tsc-alias":"^1.8.16","@eslint/js":"^9.33.0","typescript":"^5.2.0","@types/react":"^19.0.8","@changesets/cli":"^2.29.8","@types/react-dom":"^19.0.3","react-router-dom":"^7.11.0","eslint-plugin-react":"^7.37.5","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.39.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","eslint-plugin-unused-imports":"^4.1.4","@typescript-eslint/eslint-plugin":"^8.39.1","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":">=19","react-dom":">=19","react-router-dom":">=7"},"_npmOperationalInternal":{"tmp":"tmp/komerce-lp-helper_0.4.5_1772160701525_0.7270422168931607","host":"s3://npm-registry-packages-npm-production"}},"0.4.6":{"name":"@fajarmaulana/komerce-lp-helper","version":"0.4.6","keywords":["react","debounce","slider","router","fetcher","utils","hooks","form"],"author":{"name":"Fajar Maulana"},"license":"MIT","_id":"@fajarmaulana/komerce-lp-helper@0.4.6","maintainers":[{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"}],"homepage":"https://github.com/fajarmaulana-dev/komerce-lp-helper#readme","bugs":{"url":"https://github.com/fajarmaulana-dev/komerce-lp-helper/issues"},"dist":{"shasum":"33b0c5901f30295329d5fff5882754daa396dca7","tarball":"https://registry.npmjs.org/@fajarmaulana/komerce-lp-helper/-/komerce-lp-helper-0.4.6.tgz","fileCount":53,"integrity":"sha512-zAjHn7NCs12n4M1ufyxuDOnfMS3au1zIhyhsgGDB6MEsiEm0FVDBJZBFVZTjrvcdqbAa8SBV8IbMnyUBz7P3Mw==","signatures":[{"sig":"MEYCIQDEpYXluv5SKhmOF9EjY7yb3AxUqps90n4ZKzF3cP91OgIhAMtXr555VEbiV4zgeaqcKdh/HseEUVdZ8nxxWyHDo1vU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":119139},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"cbe0bb2901de26a0257c451cd7c92a4d5032ed03","scripts":{"build":"tsc && tsc-alias","prepublishOnly":"npm run build"},"_npmUser":{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"},"repository":{"url":"git+https://github.com/fajarmaulana-dev/komerce-lp-helper.git","type":"git"},"_npmVersion":"10.8.2","description":"Helper functions, hooks, and utils for Komerce LP","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","globals":"^15.14.0","prettier":"^3.6.2","tsc-alias":"^1.8.16","@eslint/js":"^9.33.0","typescript":"^5.2.0","@types/react":"^19.0.8","@changesets/cli":"^2.29.8","@types/react-dom":"^19.0.3","react-router-dom":"^7.11.0","eslint-plugin-react":"^7.37.5","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.39.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","eslint-plugin-unused-imports":"^4.1.4","@typescript-eslint/eslint-plugin":"^8.39.1","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":">=19","react-dom":">=19","react-router-dom":">=7"},"_npmOperationalInternal":{"tmp":"tmp/komerce-lp-helper_0.4.6_1772161881620_0.8011957080040659","host":"s3://npm-registry-packages-npm-production"}},"0.4.7":{"name":"@fajarmaulana/komerce-lp-helper","version":"0.4.7","keywords":["react","debounce","slider","router","fetcher","utils","hooks","form"],"author":{"name":"Fajar Maulana"},"license":"MIT","_id":"@fajarmaulana/komerce-lp-helper@0.4.7","maintainers":[{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"}],"homepage":"https://github.com/fajarmaulana-dev/komerce-lp-helper#readme","bugs":{"url":"https://github.com/fajarmaulana-dev/komerce-lp-helper/issues"},"dist":{"shasum":"e1c5701aebc35eb1f00714526e203f9acb68aa90","tarball":"https://registry.npmjs.org/@fajarmaulana/komerce-lp-helper/-/komerce-lp-helper-0.4.7.tgz","fileCount":53,"integrity":"sha512-CjVdxLbRB7hY+3N8maqXnwKxPSuuKp8D74SRXTRiAP6gu0B/ITjKu0DH0G4z8ThYV0AuKXCDQXATUsASo/uf6w==","signatures":[{"sig":"MEUCIFGfHo7mnfK8sZkGE/3pzf55Tzyd3KMV2Je9MZNeamMlAiEAkaB+tE5+g5DMKNkfTaRVnzVh7fPksfwahm82WDRYmLc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":120812},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"7175f465041b367028b9ddc191f69f7e773bd42e","scripts":{"build":"tsc && tsc-alias","prepublishOnly":"npm run build"},"_npmUser":{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"},"repository":{"url":"git+https://github.com/fajarmaulana-dev/komerce-lp-helper.git","type":"git"},"_npmVersion":"10.8.2","description":"Helper functions, hooks, and utils for Komerce LP","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","globals":"^15.14.0","prettier":"^3.6.2","tsc-alias":"^1.8.16","@eslint/js":"^9.33.0","typescript":"^5.2.0","@types/react":"^19.0.8","@changesets/cli":"^2.29.8","@types/react-dom":"^19.0.3","react-router-dom":"^7.11.0","eslint-plugin-react":"^7.37.5","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.39.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","eslint-plugin-unused-imports":"^4.1.4","@typescript-eslint/eslint-plugin":"^8.39.1","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":">=19","react-dom":">=19","react-router-dom":">=7"},"_npmOperationalInternal":{"tmp":"tmp/komerce-lp-helper_0.4.7_1772255694441_0.42043115715648627","host":"s3://npm-registry-packages-npm-production"}},"0.4.8":{"name":"@fajarmaulana/komerce-lp-helper","version":"0.4.8","keywords":["react","debounce","slider","router","fetcher","utils","hooks","form"],"author":{"name":"Fajar Maulana"},"license":"MIT","_id":"@fajarmaulana/komerce-lp-helper@0.4.8","maintainers":[{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"}],"homepage":"https://github.com/fajarmaulana-dev/komerce-lp-helper#readme","bugs":{"url":"https://github.com/fajarmaulana-dev/komerce-lp-helper/issues"},"dist":{"shasum":"b00760ca7d381a9e9324614763f38bfdf78835de","tarball":"https://registry.npmjs.org/@fajarmaulana/komerce-lp-helper/-/komerce-lp-helper-0.4.8.tgz","fileCount":53,"integrity":"sha512-smNF13JtIhKWpSe4IYRaaNDr6nSxclxD489XbS7cE3dw3I487gxqAt//4lPLSSTKHdw6wgPLXrSepF9/Gzlf3Q==","signatures":[{"sig":"MEQCIFkqEJtIQhIamuVsCpxWiWg+ldh3sI/MMPWsHKv9IA1NAiAwV0O9ZAEa0VTChcgBxI2ZxDn0NKMX4rNiCSiv9tcjRg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":122050},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"79d0a2e1b177c004e9d75fd5572779d9248e640a","scripts":{"build":"tsc && tsc-alias","prepublishOnly":"npm run build"},"_npmUser":{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"},"repository":{"url":"git+https://github.com/fajarmaulana-dev/komerce-lp-helper.git","type":"git"},"_npmVersion":"10.8.2","description":"Helper functions, hooks, and utils for Komerce LP","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","globals":"^15.14.0","prettier":"^3.6.2","tsc-alias":"^1.8.16","@eslint/js":"^9.33.0","typescript":"^5.2.0","@types/react":"^19.0.8","@changesets/cli":"^2.29.8","@types/react-dom":"^19.0.3","react-router-dom":"^7.11.0","eslint-plugin-react":"^7.37.5","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.39.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","eslint-plugin-unused-imports":"^4.1.4","@typescript-eslint/eslint-plugin":"^8.39.1","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":">=19","react-dom":">=19","react-router-dom":">=7"},"_npmOperationalInternal":{"tmp":"tmp/komerce-lp-helper_0.4.8_1772338506118_0.21280891646719602","host":"s3://npm-registry-packages-npm-production"}},"0.4.9":{"name":"@fajarmaulana/komerce-lp-helper","version":"0.4.9","keywords":["react","debounce","slider","router","fetcher","utils","hooks","form"],"author":{"name":"Fajar Maulana"},"license":"MIT","_id":"@fajarmaulana/komerce-lp-helper@0.4.9","maintainers":[{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"}],"homepage":"https://github.com/fajarmaulana-dev/komerce-lp-helper#readme","bugs":{"url":"https://github.com/fajarmaulana-dev/komerce-lp-helper/issues"},"dist":{"shasum":"5de042a9c27fa1e84ef7a7a85caf8de3e7d4f6b1","tarball":"https://registry.npmjs.org/@fajarmaulana/komerce-lp-helper/-/komerce-lp-helper-0.4.9.tgz","fileCount":53,"integrity":"sha512-awG1OUl+2nR7lof464Ih0M3AYqrIyli4sWVlOR+XoDEVmAPi1oWGtDwMhPss2OinTWmadGdxAzZo8Jxx/72H0A==","signatures":[{"sig":"MEUCIQCIY3bnhvBH3q0YoxMZ3P6z+pxaeNo/c8f4ezyFtEGHpAIgGZxGgJE8O24ZFCzuSe9rqQd8xV1StQpbrq+KQxt0TCo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":122252},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"2c4db06823bd0ae2a27cac8f4e1e6d50c541e03e","scripts":{"build":"tsc && tsc-alias","prepublishOnly":"npm run build"},"_npmUser":{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"},"repository":{"url":"git+https://github.com/fajarmaulana-dev/komerce-lp-helper.git","type":"git"},"_npmVersion":"10.8.2","description":"Helper functions, hooks, and utils for Komerce LP","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","globals":"^15.14.0","prettier":"^3.6.2","tsc-alias":"^1.8.16","@eslint/js":"^9.33.0","typescript":"^5.2.0","@types/react":"^19.0.8","@changesets/cli":"^2.29.8","@types/react-dom":"^19.0.3","react-router-dom":"^7.11.0","eslint-plugin-react":"^7.37.5","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.39.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","eslint-plugin-unused-imports":"^4.1.4","@typescript-eslint/eslint-plugin":"^8.39.1","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":">=19","react-dom":">=19","react-router-dom":">=7"},"_npmOperationalInternal":{"tmp":"tmp/komerce-lp-helper_0.4.9_1772346144823_0.5997959347256177","host":"s3://npm-registry-packages-npm-production"}},"0.4.10":{"name":"@fajarmaulana/komerce-lp-helper","version":"0.4.10","keywords":["react","debounce","slider","router","fetcher","utils","hooks","form"],"author":{"name":"Fajar Maulana"},"license":"MIT","_id":"@fajarmaulana/komerce-lp-helper@0.4.10","maintainers":[{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"}],"homepage":"https://github.com/fajarmaulana-dev/komerce-lp-helper#readme","bugs":{"url":"https://github.com/fajarmaulana-dev/komerce-lp-helper/issues"},"dist":{"shasum":"ea6d831bcbadc5ae9d8893f664f5a12c89d7aba4","tarball":"https://registry.npmjs.org/@fajarmaulana/komerce-lp-helper/-/komerce-lp-helper-0.4.10.tgz","fileCount":53,"integrity":"sha512-4EaHCEGTV206XbEe+9NSQhFO1PfMVD1E7ZThBfMia2KrFCJVzYcBCZ4yCoNfbCX7CVZFrtoWcogkU+QOiingag==","signatures":[{"sig":"MEUCID53TXmQ26/Oa+Pc8W+VbjQd76R48R8PWAfCE2mj5RqvAiEA+FxZLNULZnoN/fuIPOg6GZnAdhTVhs4TfJD9zbYon7w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":122413},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"bae08e9514b3940ff98414a12e206615d4e8b672","scripts":{"build":"tsc && tsc-alias","prepublishOnly":"npm run build"},"_npmUser":{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"},"repository":{"url":"git+https://github.com/fajarmaulana-dev/komerce-lp-helper.git","type":"git"},"_npmVersion":"10.8.2","description":"Helper functions, hooks, and utils for Komerce LP","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","globals":"^15.14.0","prettier":"^3.6.2","tsc-alias":"^1.8.16","@eslint/js":"^9.33.0","typescript":"^5.2.0","@types/react":"^19.0.8","@changesets/cli":"^2.29.8","@types/react-dom":"^19.0.3","react-router-dom":"^7.11.0","eslint-plugin-react":"^7.37.5","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.39.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","eslint-plugin-unused-imports":"^4.1.4","@typescript-eslint/eslint-plugin":"^8.39.1","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":">=19","react-dom":">=19","react-router-dom":">=7"},"_npmOperationalInternal":{"tmp":"tmp/komerce-lp-helper_0.4.10_1772524001760_0.5882462082625428","host":"s3://npm-registry-packages-npm-production"}},"0.4.11":{"name":"@fajarmaulana/komerce-lp-helper","version":"0.4.11","keywords":["react","debounce","slider","router","fetcher","utils","hooks","form"],"author":{"name":"Fajar Maulana"},"license":"MIT","_id":"@fajarmaulana/komerce-lp-helper@0.4.11","maintainers":[{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"}],"homepage":"https://github.com/fajarmaulana-dev/komerce-lp-helper#readme","bugs":{"url":"https://github.com/fajarmaulana-dev/komerce-lp-helper/issues"},"dist":{"shasum":"7778ead8a74c8a2bdf5398c6b063eb8d732ea969","tarball":"https://registry.npmjs.org/@fajarmaulana/komerce-lp-helper/-/komerce-lp-helper-0.4.11.tgz","fileCount":53,"integrity":"sha512-XFapXo9VFGQ+EYFENn0k1BYUWFyiN5LD5FXna7grFqSmkkWpPiqXbpR7IHQ5kH5Sdd+jAolo+5rXwKDLbDu9ow==","signatures":[{"sig":"MEYCIQDmWF3gXENOIylsRtqe88h5sqi65U/pxP83+MtwpLq/zgIhAJxjvqRwN0LJh7GR0vbllbV5acuf5VnjKIfOYg7RF6Pz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":122687},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"848c89d65c7f0aff6c286e23e69b27a2ec04ca2d","scripts":{"build":"tsc && tsc-alias","prepublishOnly":"npm run build"},"_npmUser":{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"},"repository":{"url":"git+https://github.com/fajarmaulana-dev/komerce-lp-helper.git","type":"git"},"_npmVersion":"10.8.2","description":"Helper functions, hooks, and utils for Komerce LP","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","globals":"^15.14.0","prettier":"^3.6.2","tsc-alias":"^1.8.16","@eslint/js":"^9.33.0","typescript":"^5.2.0","@types/react":"^19.0.8","@changesets/cli":"^2.29.8","@types/react-dom":"^19.0.3","react-router-dom":"^7.11.0","eslint-plugin-react":"^7.37.5","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.39.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","eslint-plugin-unused-imports":"^4.1.4","@typescript-eslint/eslint-plugin":"^8.39.1","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":">=19","react-dom":">=19","react-router-dom":">=7"},"_npmOperationalInternal":{"tmp":"tmp/komerce-lp-helper_0.4.11_1772524459975_0.3089447999715118","host":"s3://npm-registry-packages-npm-production"}},"0.4.12":{"name":"@fajarmaulana/komerce-lp-helper","version":"0.4.12","keywords":["react","debounce","slider","router","fetcher","utils","hooks","form"],"author":{"name":"Fajar Maulana"},"license":"MIT","_id":"@fajarmaulana/komerce-lp-helper@0.4.12","maintainers":[{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"}],"homepage":"https://github.com/fajarmaulana-dev/komerce-lp-helper#readme","bugs":{"url":"https://github.com/fajarmaulana-dev/komerce-lp-helper/issues"},"dist":{"shasum":"074bc76056ea89b7f6af0daa60f98c8ea5beed71","tarball":"https://registry.npmjs.org/@fajarmaulana/komerce-lp-helper/-/komerce-lp-helper-0.4.12.tgz","fileCount":53,"integrity":"sha512-681tYPeR/0rJQCaNnxqXlFLDU/TNMOg/vfpxRV3vdh1YFtBELF+xIyv9GxAbpzqVexuEDXgn/xdrX5ugKAYqDA==","signatures":[{"sig":"MEUCIFXLwGilI2emM0ssGYVYCsAtGl1XCt1V8rgOi+T/RFUuAiEAoEOsFXi5X4mL4hTSED4BiRLHTD9PMcEcBXGAunEKSjY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":122887},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"7b239b2a495bf8cf6ce37a278da017c84fb4bc95","scripts":{"build":"tsc && tsc-alias","prepublishOnly":"npm run build"},"_npmUser":{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"},"repository":{"url":"git+https://github.com/fajarmaulana-dev/komerce-lp-helper.git","type":"git"},"_npmVersion":"10.8.2","description":"Helper functions, hooks, and utils for Komerce LP","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","globals":"^15.14.0","prettier":"^3.6.2","tsc-alias":"^1.8.16","@eslint/js":"^9.33.0","typescript":"^5.2.0","@types/react":"^19.0.8","@changesets/cli":"^2.29.8","@types/react-dom":"^19.0.3","react-router-dom":"^7.11.0","eslint-plugin-react":"^7.37.5","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.39.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","eslint-plugin-unused-imports":"^4.1.4","@typescript-eslint/eslint-plugin":"^8.39.1","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":">=19","react-dom":">=19","react-router-dom":">=7"},"_npmOperationalInternal":{"tmp":"tmp/komerce-lp-helper_0.4.12_1772571622521_0.07253888684078458","host":"s3://npm-registry-packages-npm-production"}},"0.4.13":{"name":"@fajarmaulana/komerce-lp-helper","version":"0.4.13","keywords":["react","debounce","slider","router","fetcher","utils","hooks","form"],"author":{"name":"Fajar Maulana"},"license":"MIT","_id":"@fajarmaulana/komerce-lp-helper@0.4.13","maintainers":[{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"}],"homepage":"https://github.com/fajarmaulana-dev/komerce-lp-helper#readme","bugs":{"url":"https://github.com/fajarmaulana-dev/komerce-lp-helper/issues"},"dist":{"shasum":"812bd16024e307d1acd2be5b6e717bdc8b0eec33","tarball":"https://registry.npmjs.org/@fajarmaulana/komerce-lp-helper/-/komerce-lp-helper-0.4.13.tgz","fileCount":53,"integrity":"sha512-sCqCNtmxozc8TeYaJNHls1RRm+wcRRpVx1r5A6HC2uoQ0IQLw1932RrEqDP/7chZw2ysex7CyDkk6uF5d1+HoA==","signatures":[{"sig":"MEQCIGCZD44sXtNkWEKn5VGHh1zkxecH1X4Q1jUk5/8M4ckAAiAKDZ85BN2/6jukbMSO7Yl+LCDjoQxMgLyoI9MOq4cDbA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":124470},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"f3f5e06955c6168c207ed7d4c1da6a593b429bfd","scripts":{"build":"tsc && tsc-alias","prepublishOnly":"npm run build"},"_npmUser":{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"},"repository":{"url":"git+https://github.com/fajarmaulana-dev/komerce-lp-helper.git","type":"git"},"_npmVersion":"10.8.2","description":"Helper functions, hooks, and utils for Komerce LP","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","globals":"^15.14.0","prettier":"^3.6.2","tsc-alias":"^1.8.16","@eslint/js":"^9.33.0","typescript":"^5.2.0","@types/react":"^19.0.8","@changesets/cli":"^2.29.8","@types/react-dom":"^19.0.3","react-router-dom":"^7.11.0","eslint-plugin-react":"^7.37.5","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.39.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","eslint-plugin-unused-imports":"^4.1.4","@typescript-eslint/eslint-plugin":"^8.39.1","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":">=19","react-dom":">=19","react-router-dom":">=7"},"_npmOperationalInternal":{"tmp":"tmp/komerce-lp-helper_0.4.13_1772991902781_0.6149748251649874","host":"s3://npm-registry-packages-npm-production"}},"0.4.14":{"name":"@fajarmaulana/komerce-lp-helper","version":"0.4.14","keywords":["react","debounce","slider","router","fetcher","utils","hooks","form"],"author":{"name":"Fajar Maulana"},"license":"MIT","_id":"@fajarmaulana/komerce-lp-helper@0.4.14","maintainers":[{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"}],"homepage":"https://github.com/fajarmaulana-dev/komerce-lp-helper#readme","bugs":{"url":"https://github.com/fajarmaulana-dev/komerce-lp-helper/issues"},"dist":{"shasum":"c765fbfc6b61ca64822ea0c3e16a4708e3b9acbb","tarball":"https://registry.npmjs.org/@fajarmaulana/komerce-lp-helper/-/komerce-lp-helper-0.4.14.tgz","fileCount":53,"integrity":"sha512-J3Z4RLsVnCaniRbSiiFgXZOPtgLfnMiXExTsTKjmNosAVHjdnjEla1YR6vRaQbu6aFp8L5MzRK5ky98uYdh1yg==","signatures":[{"sig":"MEUCIAOkawlw5M9SS0GnerTpCbdJ0IIfRNgORABuCTCf/2PnAiEAjuwDragxfJZ072/NLPed+yUHbx/t21KcaGATBShg0J4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":124772},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"267e369e7efd12d5b0aebac493eb0296c3235354","scripts":{"build":"tsc && tsc-alias","prepublishOnly":"npm run build"},"_npmUser":{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"},"repository":{"url":"git+https://github.com/fajarmaulana-dev/komerce-lp-helper.git","type":"git"},"_npmVersion":"10.8.2","description":"Helper functions, hooks, and utils for Komerce LP","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","globals":"^15.14.0","prettier":"^3.6.2","tsc-alias":"^1.8.16","@eslint/js":"^9.33.0","typescript":"^5.2.0","@types/react":"^19.0.8","@changesets/cli":"^2.29.8","@types/react-dom":"^19.0.3","react-router-dom":"^7.11.0","eslint-plugin-react":"^7.37.5","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.39.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","eslint-plugin-unused-imports":"^4.1.4","@typescript-eslint/eslint-plugin":"^8.39.1","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":">=19","react-dom":">=19","react-router-dom":">=7"},"_npmOperationalInternal":{"tmp":"tmp/komerce-lp-helper_0.4.14_1773206023116_0.7841580834971176","host":"s3://npm-registry-packages-npm-production"}},"0.4.15":{"name":"@fajarmaulana/komerce-lp-helper","version":"0.4.15","keywords":["react","debounce","slider","router","fetcher","utils","hooks","form"],"author":{"name":"Fajar Maulana"},"license":"MIT","_id":"@fajarmaulana/komerce-lp-helper@0.4.15","maintainers":[{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"}],"homepage":"https://github.com/fajarmaulana-dev/komerce-lp-helper#readme","bugs":{"url":"https://github.com/fajarmaulana-dev/komerce-lp-helper/issues"},"dist":{"shasum":"94c6b174aa4526af4da0babfa8a80d5634c47c3a","tarball":"https://registry.npmjs.org/@fajarmaulana/komerce-lp-helper/-/komerce-lp-helper-0.4.15.tgz","fileCount":53,"integrity":"sha512-y+h0QNdlheIKzpo63SR/KkQV2v3Er3ahyXSNn40JnQLpyBIaiw45Xyw9ytbW0Rnk+il1kcVyyAw/L/bhe5s+Fg==","signatures":[{"sig":"MEYCIQChx3M4HHcaCIp+DQq0NWaRP0kVDOO0lQMkVPOQh4TySgIhAN4HjJwUJ0b12dUX1nzYtrTfIQ6df6qGupBkAL4EteDR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142639},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"9746398e3bc78a36fb8bcdf59be7833cba80547a","scripts":{"build":"tsc && tsc-alias","prepublishOnly":"npm run build"},"_npmUser":{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"},"repository":{"url":"git+https://github.com/fajarmaulana-dev/komerce-lp-helper.git","type":"git"},"_npmVersion":"10.8.2","description":"Helper functions, hooks, and utils for Komerce LP","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","globals":"^15.14.0","prettier":"^3.6.2","tsc-alias":"^1.8.16","@eslint/js":"^9.33.0","typescript":"^5.2.0","@types/react":"^19.0.8","@changesets/cli":"^2.29.8","@types/react-dom":"^19.0.3","react-router-dom":"^7.11.0","eslint-plugin-react":"^7.37.5","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.39.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","eslint-plugin-unused-imports":"^4.1.4","@typescript-eslint/eslint-plugin":"^8.39.1","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":">=19","react-dom":">=19","react-router-dom":">=7"},"_npmOperationalInternal":{"tmp":"tmp/komerce-lp-helper_0.4.15_1776929574331_0.48710598631273583","host":"s3://npm-registry-packages-npm-production"}},"0.4.16":{"name":"@fajarmaulana/komerce-lp-helper","version":"0.4.16","description":"Helper functions, hooks, and utils for Komerce LP","type":"module","main":"dist/index.js","module":"dist/index.js","types":"dist/index.d.ts","sideEffects":false,"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"build":"tsc && tsc-alias","prepublishOnly":"npm run build"},"peerDependencies":{"react":">=19","react-dom":">=19","react-router-dom":">=7"},"devDependencies":{"@changesets/cli":"^2.29.8","@eslint/js":"^9.33.0","@types/react":"^19.0.8","@types/react-dom":"^19.0.3","@typescript-eslint/eslint-plugin":"^8.39.1","@typescript-eslint/parser":"^8.39.1","eslint":"^9.18.0","eslint-config-prettier":"^10.1.8","eslint-plugin-import":"^2.32.0","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-prettier":"^5.5.4","eslint-plugin-react":"^7.37.5","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","eslint-plugin-simple-import-sort":"^12.1.1","eslint-plugin-unused-imports":"^4.1.4","globals":"^15.14.0","prettier":"^3.6.2","react-router-dom":"^7.11.0","tsc-alias":"^1.8.16","typescript":"^5.2.0"},"author":{"name":"Fajar Maulana","email":"fajarmaulana.dev@gmail.com","url":"https://github.com/fajarmaulana-dev"},"license":"MIT","keywords":["react","debounce","slider","router","fetcher","utils","hooks","form"],"repository":{"type":"git","url":"git+https://github.com/fajarmaulana-dev/komerce-lp-helper.git"},"publishConfig":{"access":"public"},"_id":"@fajarmaulana/komerce-lp-helper@0.4.16","gitHead":"995bbf47bd640345db5a809b47d53e78ea635801","bugs":{"url":"https://github.com/fajarmaulana-dev/komerce-lp-helper/issues"},"homepage":"https://github.com/fajarmaulana-dev/komerce-lp-helper#readme","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-qIH5Ze+wssinyF/0fYHbrWLEVTX3zs2nsBRTbwlDeGlXyMmiUo0qO9oH1xlAwNss4NODq2HCcp+xkZqLJCEuoA==","shasum":"fa6cc81292f2445839c8389edcc2d6a53470ff1d","tarball":"https://registry.npmjs.org/@fajarmaulana/komerce-lp-helper/-/komerce-lp-helper-0.4.16.tgz","fileCount":55,"unpackedSize":148404,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD2UkqBjCSd2ccnsOTZOUVkJezYiOVwUEWHwKmfgQa4YgIgVJrY9CrO+gGVjYNtMHVV3O+ZtU1OJRezBCMd8hvT5eg="}]},"_npmUser":{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"},"directories":{},"maintainers":[{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/komerce-lp-helper_0.4.16_1779989869173_0.9373086709395508"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-02T09:57:39.605Z","modified":"2026-05-28T17:37:49.432Z","0.1.0":"2026-01-02T09:57:39.871Z","0.1.1":"2026-01-05T01:55:36.321Z","0.2.0":"2026-01-05T03:55:25.752Z","0.2.1":"2026-01-05T04:13:57.633Z","0.2.2":"2026-01-05T04:36:25.241Z","0.3.0":"2026-01-07T03:03:15.873Z","0.3.1":"2026-01-07T03:24:10.838Z","0.3.2":"2026-02-02T23:28:48.886Z","0.3.3":"2026-02-02T23:48:59.158Z","0.4.0":"2026-02-23T10:49:47.150Z","0.4.1":"2026-02-23T23:41:14.792Z","0.4.2":"2026-02-23T23:54:44.933Z","0.4.3":"2026-02-26T06:11:48.607Z","0.4.4":"2026-02-26T06:40:22.214Z","0.4.5":"2026-02-27T02:51:41.700Z","0.4.6":"2026-02-27T03:11:21.746Z","0.4.7":"2026-02-28T05:14:54.582Z","0.4.8":"2026-03-01T04:15:06.287Z","0.4.9":"2026-03-01T06:22:24.987Z","0.4.10":"2026-03-03T07:46:41.901Z","0.4.11":"2026-03-03T07:54:20.133Z","0.4.12":"2026-03-03T21:00:22.662Z","0.4.13":"2026-03-08T17:45:02.977Z","0.4.14":"2026-03-11T05:13:43.280Z","0.4.15":"2026-04-23T07:32:54.492Z","0.4.16":"2026-05-28T17:37:49.347Z"},"bugs":{"url":"https://github.com/fajarmaulana-dev/komerce-lp-helper/issues"},"author":{"name":"Fajar Maulana","email":"fajarmaulana.dev@gmail.com","url":"https://github.com/fajarmaulana-dev"},"license":"MIT","homepage":"https://github.com/fajarmaulana-dev/komerce-lp-helper#readme","keywords":["react","debounce","slider","router","fetcher","utils","hooks","form"],"repository":{"type":"git","url":"git+https://github.com/fajarmaulana-dev/komerce-lp-helper.git"},"description":"Helper functions, hooks, and utils for Komerce LP","maintainers":[{"name":"fajarmaulana","email":"fajarmaulana.dev@gmail.com"}],"readme":"# komerce-lp-helper\n\nA collection of useful React hooks, utilities, and helper functions designed for Komerce Landing Page projects.\n\n## Installation\n\n```bash\nnpm install @fajarmaulana/komerce-lp-helper\n```\n\n## Features\n\n### Components\n\n#### `Form`\n\nA reusable form component that simplifies form submission handling by preventing default browser submit behavior,\ncollecting form values into a `FormData` object, and passing it to an action callback.\n\n| Prop       | Type                            | Description                                       |\n| ---------- | ------------------------------- | ------------------------------------------------- |\n| `action`   | `(formData: FormData) => void`  | Function called when the form is submitted.       |\n| `ref`      | `Ref<HTMLFormElement>`          | Exposes the underlying `<form>` element.          |\n| `children` | `ReactNode`                     | The form’s inner content (inputs, buttons, etc.). |\n| `...props` | `ComponentPropsWithRef<'form'>` | All standard HTML form attributes.                |\n\n**Usage:**\n\n```tsx\nimport { Form } from '@fajarmaulana/komerce-lp-helper'\n\nconst handleSubmit = (formData: FormData) => {\n  console.log(formData.get('username'))\n}\n\n;<Form action={handleSubmit} className=\"my-form\">\n  <input name=\"username\" />\n  <button type=\"submit\">Submit</button>\n</Form>\n```\n\n#### `LazyBackground`\n\nA wrapper component that lazily loads a background image when it enters the viewport using the Intersection Observer\nAPI.\n\n| Prop        | Type        | Description                                                 |\n| ----------- | ----------- | ----------------------------------------------------------- |\n| `url`       | `string`    | The image URL to be lazily loaded as the background.        |\n| `children`  | `ReactNode` | Optional elements or content rendered inside the container. |\n| `className` | `string`    | Additional CSS class names applied to the outer container.  |\n\n**Usage:**\n\n```tsx\nimport { LazyBackground } from '@fajarmaulana/komerce-lp-helper'\n;<LazyBackground url=\"https://example.com/bg.jpg\" className=\"h-64 w-full\">\n  <h1>Content inside lazy background</h1>\n</LazyBackground>\n```\n\n### Hooks\n\n#### `useDebounce`\n\nReturns a debounced version of a value. It updates the returned value only after a specified delay has passed without\nany changes to the input value.\n\n| Parameter | Type     | Default    | Description                         |\n| --------- | -------- | ---------- | ----------------------------------- |\n| `value`   | `T`      | (Required) | The input value to debounce.        |\n| `delay`   | `number` | `500`      | The debounce delay in milliseconds. |\n\n**Returns:** `T` - The debounced value.\n\n**Usage:**\n\n```ts\nconst debouncedSearchTerm = useDebounce(searchTerm, 500)\n```\n\n#### `useDebounceFunc`\n\nReturns a debounced version of a callback function.\n\n| Parameter  | Type           | Default    | Description                                            |\n| ---------- | -------------- | ---------- | ------------------------------------------------------ |\n| `callback` | `T` (Function) | (Required) | The original function to debounce.                     |\n| `delay`    | `number`       | (Required) | Delay in milliseconds before the callback is executed. |\n\n**Returns:** `(...args: Parameters<T>) => void` - A debounced function.\n\n**Usage:**\n\n```ts\nconst debouncedSearch = useDebounceFunc(q => fetchResults(q), 300)\n```\n\n#### `useConditionalDebounce`\n\nConditionally executes a callback function after a specified debounce delay. Only triggers the callback if a given\ncondition is `true`.\n\n| Parameter | Type     | Default | Description                         |\n| --------- | -------- | ------- | ----------------------------------- |\n| `delay`   | `number` | `500`   | The debounce delay in milliseconds. |\n\n**Returns:** `(condition: boolean, callback: () => void) => void` - The function to execute.\n\n**Usage:**\n\n```ts\nconst run = useConditionalDebounce(300)\nrun(isValid, () => submitData())\n```\n\n#### `useForm`\n\nManages form fields, retrieval of values, and error handling for both named inputs and standalone fields.\n\n| Parameter              | Type       | Default | Description                                            |\n| ---------------------- | ---------- | ------- | ------------------------------------------------------ |\n| `fieldsWithoutNameIds` | `string[]` | `[]`    | List of field IDs that exist outside the form element. |\n\n**Returns:**\n\n| Property | Type | Description |\n|---|---|---|\n| `form` | `RefObject<HTMLFormElement>` | Ref to attach to the target `<form>`. |\n| `fields` | `() => TFields<T>` | Function returning the values and elements of named form inputs. |\n| `fieldsWithoutName` | `() => TFields<U>` | Function returning the values and elements of external inputs. |\n\n_Note: `TFields` returns an object where keys are the field names and values are of type `TFieldItem<T>` containing\n`field_value`, `field_id`, `field_error`, and `field_info`. Create a input component with small element with id\n`{fieldName}_error` to show error message, and with id `{fieldName}_info` to show info message._\n\n**Usage:**\n\n```tsx\nconst { form, fields, fieldsWithoutName } = useForm<{ email: string }>(['custom-input-id'])\n\nconst handleSubmit = e => {\n  e.preventDefault()\n  const data = fields()\n  console.log(data.email.field_value)\n}\n\n;<form ref={form} onSubmit={handleSubmit}>\n  <input name=\"email\" id=\"email\" />\n  <span id=\"email_error\"></span>\n</form>\n```\n\n#### `useRouter`\n\nCustom router API built on top of React Router DOM that provides easier navigation methods and state management.\n\n**Returns:**\n\n| Property | Type | Description |\n|---|---|---|\n| `push` | `IRouterPush` | Navigate to a new page (string or object with pathname, query, hash). |\n| `route` | `(pathname, query?, options?) => void` | Navigate to a new page with query parameters. |\n| `replace` | `IRouterPush` | Replace the current history entry. |\n| `back` | `() => void` | Go back to previous page. |\n| `next` | `() => void` | Go forward to next page. |\n| `go` | `(num: number) => void` | Jump to specific history index. |\n| `refresh` | `() => void` | Reload the current page. |\n| `path` | `string` | The current pathname without query/hash. |\n| `hash` | `string` | The hash portion of current URL. |\n| `fullpath` | `string` | Full path including query and hash. |\n| `origin` | `string` | The base URL. |\n| `href` | `string` | Full URL including origin. |\n| `query` | `TRouterQuery` | Parsed query parameters as object. |\n| `params` | `Record<string, string>` | Current route parameters. |\n| `beforePopState` | `(cb) => void` | Hook to cancel navigation if callback returns false. |\n\n#### `useQueryParams`\n\nA hook for reading and updating query parameters in the URL locally.\n\n| Parameter       | Type         | Default     | Description                                   |\n| --------------- | ------------ | ----------- | --------------------------------------------- |\n| `defaultValues` | `Partial<T>` | `undefined` | Optional default values for query parameters. |\n\n**Returns:** `[T, (updates: Partial<T>) => void]` - Tuple containing query object and updater function.\n\n#### `useSectionObserver`\n\nUses the Intersection Observer API to detect when a trigger element comes into view and updates the `data-active`\nattribute of a target element.\n\n| Parameter    | Type                     | Default    | Description                                         |\n| ------------ | ------------------------ | ---------- | --------------------------------------------------- |\n| `triggerRef` | `RefObject<HTMLElement>` | (Required) | Ref pointing to the element triggering observation. |\n| `targetId`   | `string`                 | (Required) | ID of the target element to toggle `data-active`.   |\n| `threshold`  | `number`                 | `0.8`      | Visibility threshold (0 to 1).                      |\n\n#### `useSlider`\n\nManages logic for custom slider components, including touch/drag support and navigation.\n\n| Parameter       | Type         | Default     | Description                                           |\n| --------------- | ------------ | ----------- | ----------------------------------------------------- |\n| `data`          | `any[]`      | (Required)  | Array of data to display.                             |\n| `mobileOnly`    | `boolean`    | `false`     | If true, slider only works below `mobileBound` width. |\n| `infiniteSlide` | `boolean`    | `false`     | Allow infinite sliding.                               |\n| `isLoading`     | `boolean`    | `false`     | Is data still loading.                                |\n| `mobileBound`   | `number`     | `640`       | Screen width bound for mobile only mode.              |\n| `onNext`        | `() => void` | `undefined` | Override the next function.                           |\n| `onBack`        | `() => void` | `undefined` | Override the back function.                           |\n\n**Returns:**\n\n| Property | Type | Description |\n|---|---|---|\n| `currentSlide` | `number` | The current active slide index. |\n| `movement` | `number` | Current drag movement value. |\n| `grab` | `boolean` | Whether the slider is currently being grabbed/dragged. |\n| `disableLeftArrow` | `boolean` | Whether left arrow should be disabled. |\n| `disableRightArrow`| `boolean` | Whether right arrow should be disabled. |\n| `setCurrentSlide` | `(val) => void` | Manually set the slide. |\n| `startSlide` | `(param) => void` | Call on mouse down / touch start. |\n| `moveSlide` | `(param) => void` | Call on mouse move / touch move. |\n| `endSlide` | `(param) => void` | Call on mouse up / touch end. |\n| `next`, `back` | `() => void` | Navigate to next/prev slide. |\n\n### Utilities\n\n#### HTTP Client & API\n\n**`http`** A robust wrapper around `fetch` with caching, retry, and interceptors.\n\n| Method                           | Parameters                                          | Returns                    | Description                   |\n| -------------------------------- | --------------------------------------------------- | -------------------------- | ----------------------------- |\n| `get`                            | `url: string`, `config?: Omit<THttpConfig, 'body'>` | `Promise<TApiResponse<T>>` | Performs a GET request.       |\n| `post`, `put`, `patch`, `delete` | `url: string`, `body?: U`, `config?: THttpConfig`   | `Promise<TApiResponse<T>>` | Performs a mutation request.  |\n| `request`                        | `config: TApiConfig`                                | `Promise<TApiResponse<T>>` | Full configuration request.   |\n| `getCache`                       | `key: string`                                       | `T \\| undefined`           | Retrieves cached data.        |\n| `setCache`                       | `key: string, data: T, ttl?: number`                | `void`                     | Manually store data in cache. |\n| `removeCache`                    | `key: string`                                       | `void`                     | Remove specific cache entry.  |\n| `clearCache`                     |                                                     | `void`                     | Clears all cache.             |\n| `create`                         | `options?: TApiInstanceOptions`                     | `IApiInstance`             | Creates a new instance.       |\n\n**`createApi(options)`** Creates a new API instance with built-in React hooks for data fetching, mutation, and infinite\npagination. Returns an object with the following hooks:\n\n**1. `fetch<T>(url, config?, enabled?)`**\n\n| Parameter | Type | Default | Description |\n|---|---|---|---|\n| `url` | `string` | (Required) | The endpoint URL. Changing this automatically triggers a new request. |\n| `config` | `Omit<THttpConfig, 'onUpload' \\| 'onDownload'>` | `undefined` | Optional HTTP configuration (headers, params, cache, etc.). |\n| `enabled` | `boolean` | `true` | Whether the fetch should run automatically on mount or when URL changes. |\n\n**Returns:**\n| Property | Type | Description |\n|---|---|---|\n| `data` | `T \\| null` | Fetched data. |\n| `error` | `unknown` | Any encountered error. |\n| `isLoading`| `boolean` | Request state. |\n| `cacheKey` | `string \\| null` | Identifier for cache. |\n| `refetch` | `() => Promise<TFetchState<T>>` | Manually trigger a fresh fetch. |\n| `setData` | `(data) => void` | Manually update state data. |\n\n**Example:**\n```tsx\nconst { data, isLoading, refetch } = api.fetch<User[]>('/users', { params: { status: 'active' } })\n```\n\n**2. `mutation<TData, TRequest>(url, config?)`**\n\n| Parameter | Type | Default | Description |\n|---|---|---|---|\n| `url` | `string` | (Required) | Endpoint URL for the mutation. |\n| `config` | `TMutationOptions` | `undefined` | Optional mutation config (method, headers, progress, etc.). |\n\n**Returns:**\n| Property | Type | Description |\n|---|---|---|\n| `mutate` | `(request?: TRequest) => Promise<TApiResponse<TData>>` | Trigger the mutation. |\n| `isLoading`| `boolean` | In progress state. |\n| `progress` | `TProgress \\| null` | Upload/Download progress. |\n\n**Example:**\n```tsx\nconst { mutate, isLoading, progress } = api.mutation<User, FormData>('/users/upload', { \n  method: 'POST',\n  progress: 'upload'\n})\n\n// To trigger:\n// await mutate(formData)\n```\n\n**3. `infinite<T, TOffset>(url, options, config?, enabled?)`**\n\n| Parameter | Type | Default | Description |\n|---|---|---|---|\n| `url` | `string` | (Required) | Endpoint URL. Changing this resets items and fetches from the beginning. |\n| `options` | `TInfiniteFetchOptions` | (Required) | Options containing `initialOffset`, `offsetKey`, and `setOffset` logic. |\n| `config` | `Omit<THttpConfig, 'onUpload' \\| 'onDownload'>` | `undefined` | Optional HTTP configuration. |\n| `enabled` | `boolean` | `true` | Whether the fetch should run automatically. |\n\n**Returns:**\n| Property | Type | Description |\n|---|---|---|\n| `data` | `T \\| null` | Aggregated items. |\n| `error` | `unknown` | Any encountered error. |\n| `isLoading` | `boolean` | Initial page request state. |\n| `hasNextPage`| `boolean` | More pages available. |\n| `isFetchingNextPage`| `boolean` | Fetching next page state. |\n| `fetchNextPage`| `() => Promise<void>` | Trigger fetch for next offset. |\n| `refetch` | `() => Promise<void>` | Reset state and trigger a fresh fetch from initial offset. |\n| `setData` | `(updater: T \\| null \\| ((prev: T \\| null) => T \\| null)) => void` | Manually update local cache data. |\n| `reset` | `() => void` | Reset all local states to initial values. |\n\n**Example:**\n```tsx\nimport { createApi } from '@fajarmaulana/komerce-lp-helper'\n\nconst api = createApi({ baseURL: 'https://api.example.com' })\n\nconst UserList = () => {\n  const {\n    data: users,\n    error,\n    isLoading,\n    hasNextPage,\n    isFetchingNextPage,\n    fetchNextPage,\n    refetch,\n  } = api.infinite<User[], number>(\n    '/users',\n    {\n      initialOffset: 1,\n      offsetKey: 'page',\n      setOffset: (lastItems, allItems, lastOffset) => {\n        // Return next offset (page) or null if there is no more data\n        return lastItems && lastItems.length >= 10 ? lastOffset + 1 : null\n      }\n    }\n  )\n\n  if (isLoading) return <p>Loading...</p>\n  if (error) return <p>Error loading users</p>\n\n  return (\n    <div>\n      <button onClick={refetch}>Refetch</button>\n      <ul>\n        {users?.map(user => (\n          <li key={user.id}>{user.name}</li>\n        ))}\n      </ul>\n      {hasNextPage && (\n        <button onClick={fetchNextPage} disabled={isFetchingNextPage}>\n          {isFetchingNextPage ? 'Loading more...' : 'Load More'}\n        </button>\n      )}\n    </div>\n  )\n}\n```\n\n\n**4. `batch<T>(initialRequests?)`**\nExecute multiple API requests in parallel. \n\n| Parameter | Type | Default | Description |\n|---|---|---|---|\n| `initialRequests` | `{ [K in keyof T]: string \\| TApiConfig }` | `undefined` | Array of URLs or full request configurations. |\n\n**Returns:**\n| Property | Type | Description |\n|---|---|---|\n| `mutate` | `(overrideRequests?) => Promise<TBatchResponse<T>>` | Trigger the batch execution. |\n| `isLoading`| `boolean` | Whether any request in the batch is in progress. |\n| `error` | `unknown` | The first error encountered. |\n| `cacheKeys`| `(string \\| null)[]` | Array of cache keys for each request. |\n\n**Example:**\n```tsx\nconst { mutate, isLoading } = api.batch<[User[], Post[]]>([\n  '/users',\n  { url: '/posts', method: 'GET' }\n])\n\n// To trigger:\n// const [usersResponse, postsResponse] = await mutate()\n```\n\n#### Interceptor Setup Example\n\nYou can set up custom interceptors on an API instance to attach tokens globally, or handle specific error codes:\n\n```typescript\nimport { ApiMeta, createApi, getCookie, type TApiConfig } from '@fajarmaulana/komerce-lp-helper'\n\nimport { INTERNAL_API } from '@/constants/env'\n\nimport { COOKIE_KEY_JWT, forceLogout } from './auth'\n\nconst PUBLIC_ENDPOINTS: Record<string, string[]> = {\n  [INTERNAL_API.baseURL!]: ['/auth/api/v1/live-chat/verify-token'],\n}\n\nconst isPublicEndpoint = (path: string, baseUrl: string) => {\n  const publicPaths = PUBLIC_ENDPOINTS[baseUrl]\n  return publicPaths && publicPaths.some(publicPath => path.startsWith(publicPath))\n}\n\nconst interceptor = {\n  request: (config: TApiConfig) => {\n    if (!config.baseURL || isPublicEndpoint(config.url, config.baseURL)) return config\n\n    const token = getCookie<string>(COOKIE_KEY_JWT)\n    if (!token) {\n      forceLogout()\n      throw new Error('Token expired or missing')\n    }\n\n    return {\n      ...config,\n      headers: {\n        ...config.headers,\n        Authorization: `Bearer ${token}`,\n      },\n    }\n  },\n  error: async (error: unknown) => {\n    if (error instanceof ApiMeta && [401, 403].includes(error.code)) forceLogout()\n\n    const isNetworkError =\n      error instanceof Error &&\n      (error.message === 'Network Error' || (error as { code?: string }).code === 'ERR_NETWORK')\n\n    if (isNetworkError && window.location.pathname !== '/error-network') {\n      window.location.replace('/error-network')\n    }\n\n    return Promise.reject(error)\n  },\n}\n\nconst internalApi = createApi({ ...INTERNAL_API })\ninternalApi.setInterceptors(interceptor)\n\nexport { internalApi }\n```\n\n#### Cookie\n\nManaged wrappers for `document.cookie`.\n\n| Function        | Parameters                           | Description                               |\n| --------------- | ------------------------------------ | ----------------------------------------- |\n| `setCookie`     | `{ key, value, maxAge?: number, sameSite?: Lax/Strict/None }` | Sets a cookie. Value is JSON stringified. |\n| `setCookies`    | `items: TCookie[]`                   | Sets multiple cookies.                    |\n| `getCookie`     | `key: string`                        | Gets and parses a cookie value.           |\n| `getCookies`    | `keys: string[]`                     | Retrieves multiple cookies as an object.  |\n| `removeCookie`  | `key: string`                        | Removes a cookie.                         |\n| `removeCookies` | `keys: string[]`                     | Removes multiple cookies.                 |\n| `clearCookies`  |                                      | Clears all cookies.                       |\n\n#### Local Storage\n\nType-safe wrappers for `localStorage`.\n\n| Function       | Parameters                | Description                             |\n| -------------- | ------------------------- | --------------------------------------- |\n| `setLocal`     | `key: string, value: T`   | Stores a value (JSON stringified).      |\n| `setLocals`    | `items: { key, value }[]` | Stores multiple values.                 |\n| `getLocal`     | `key: string`             | Retrieves and parses a value.           |\n| `getLocals`    | `keys: string[]`          | Retrieves multiple values as an object. |\n| `removeLocal`  | `key: string`             | Removes an item.                        |\n| `removeLocals` | `keys: string[]`          | Removes multiple items.                 |\n| `clearLocals`  |                           | Clears local storage.                   |\n\n#### Session Storage\n\nType-safe wrappers for `sessionStorage`.\n\n| Function         | Parameters                | Description                             |\n| ---------------- | ------------------------- | --------------------------------------- |\n| `setSession`     | `key: string, value: T`   | Stores a value (JSON stringified).      |\n| `setSessions`    | `items: { key, value }[]` | Stores multiple values.                 |\n| `getSession`     | `key: string`             | Retrieves and parses a value.           |\n| `getSessions`    | `keys: string[]`          | Retrieves multiple values as an object. |\n| `removeSession`  | `key: string`             | Removes an item.                        |\n| `removeSessions` | `keys: string[]`          | Removes multiple items.                 |\n| `clearSessions`  |                           | Clears session storage.                 |\n\n#### File\n\nHelpers for file and blob manipulation.\n\n| Function                | Parameters                                   | Returns               | Description                                             |\n| ----------------------- | -------------------------------------------- | --------------------- | ------------------------------------------------------- |\n| `checkImage`            | `url: string`                                | `Promise<string>`     | Checks if an image URL is valid (returns URL or empty). |\n| `convertBlob`           | `blob: Blob`                                 | `Promise<string>`     | Converts a Blob to a Base64 string.                     |\n| `getExtension`          | `mimeType: string`                           | `string`              | Gets file extension from MIME type.                     |\n| `filenameWithExtension` | `blob: Blob, prefix?: string`                | `string`              | Generates a filename.                                   |\n| `createDownloadAnchor`  | `blob: Blob, options?: { filename, target }` | `{ anchor, blobUrl }` | Creates an anchor for downloading.                      |\n| `downloadBlob`          | `blob: Blob, filename: string`               | `void`                | Triggers a file download.                               |\n\n#### General\n\nCommon DOM and string utilities.\n\n| Function         | Parameters                                 | Returns          | Description                                 |\n| ---------------- | ------------------------------------------ | ---------------- | ------------------------------------------- |\n| `getById`        | `id: string`                               | `HTMLElement`    | Type-safe `document.getElementById`.        |\n| `getByAny`       | `selector: string`                         | `HTMLElement`    | Type-safe `document.querySelector`.         |\n| `clickById`      | `id: string`                               | `void`           | Triggers a click on an element by ID.       |\n| `focusById`      | `id: string`                               | `void`           | Focuses an element by ID.                   |\n| `handleHashLink` | `hash: string, currentHash: string, func?` | `void`           | Smooth scrolling for hash links.            |\n| `acronym`        | `name: string`                             | `string`         | Generates a 1-2 letter acronym from a name. |\n| `isNotPrimitive` | `value: unknown`                           | `boolean`        | Checks if a value is an object/array.       |\n| `toWA`           | `message: string, options?: { urlOnly?: boolean; phoneNumber?: string }`                | `string \\| void` | Get WhatsApp URL or open in new window.     |\n\n#### Form Validation (Error Provider)\n\nHelpers for validating inputs and displaying error messages dynamically.\n\n**`provideFieldError(params)`** Validates a field against a set of rules, updates the target error element, and modifies\nthe target `<label>` border color.\n\n- `params`: `{ field_id, field_value, field_error, rules }`\n- `rules`: A mapping of error messages to their boolean validation results (`true` = invalid).\n\n**Example Rules:**\n\n```typescript\nexport const VALID_EMAIL = {\n  re: /^(?![.])[A-Za-z0-9._-]+(?<![.])@[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*\\.[A-Za-z]{2,4}$/,\n  text: 'masukkan email yang valid',\n}\n\nexport const ALPHASPACE = {\n  re: /^[A-Za-z]+(?: [A-Za-z]+)*$/,\n  text: ' hanya boleh berisi huruf dan spasi antar kata',\n}\n\nexport const REGISTER_RULES = {\n  emailRules: (email: string) => ({\n    'email harus diisi': !email,\n    [VALID_EMAIL.text]: !VALID_EMAIL.re.test(email),\n  }),\n  fullnameRules: (fullname: string) => ({\n    'nama harus diisi': !fullname,\n    'panjang nama minimal adalah 3 karakter': fullname.length < 3,\n    [`nama ${ALPHASPACE.text}`]: !ALPHASPACE.re.test(fullname),\n    'panjang nama maksimal adalah 40 karakter': fullname.length > 40,\n  }),\n}\n```\n\n**`providePasswordFieldError(params)`** Specialized validation for password strength (length, uppercase, lowercase,\nnumbers, symbols, no spaces).\n\n- `params`: `{ field_id, field_value, field_error }`\n\n## 👨‍💻 Author & Creator\n\n* **Fajar Maulana** - *Initial Work & Creator* - [fajarmaulana-dev](https://github.com/fajarmaulana-dev)\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.","readmeFilename":"README.md"}