{"_id":"@alessiofrittoli/react-api","_rev":"9-4225ff476360efad2aba1c9c1d115682","name":"@alessiofrittoli/react-api","dist-tags":{"latest":"1.2.0"},"versions":{"0.1.0":{"name":"@alessiofrittoli/react-api","version":"0.1.0","keywords":["react","react-utilities"],"author":{"url":"https://alessiofrittoli.it","name":"Alessio Frittoli","email":"info@alessiofrittoli.it"},"license":"MIT","_id":"@alessiofrittoli/react-api@0.1.0","maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"homepage":"https://github.com/alessiofrittoli/react-api#readme","bugs":{"url":"https://github.com/alessiofrittoli/react-api/issues","email":"info@alessiofrittoli.it"},"dist":{"shasum":"db57f171bc1c3d35c351725883b5d420f1e1d01a","tarball":"https://registry.npmjs.org/@alessiofrittoli/react-api/-/react-api-0.1.0.tgz","fileCount":45,"integrity":"sha512-k+AVpByTRyq1VjtA3TuWR0a75U05YvQFn1+xDijo6Y8h65c9U6CHTAUOihsyEl5NqZMFMEnKVUqbTHtq0/UxBQ==","signatures":[{"sig":"MEQCIDqNJxOkGpkLl9RSMAshovxfelqup6CW+tJE1GRGP/CfAiAKNvb4+sCHMGy10AwkAJth3GMr0q00Ey7YpY89fzxN+A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72015},"main":"./dist/index.js","pnpm":{"onlyBuiltDependencies":["esbuild"]},"types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./utils":{"types":"./dist/utils.d.ts","import":"./dist/utils.mjs","require":"./dist/utils.js"},"./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.mjs","require":"./dist/components/index.js"}},"funding":[{"url":"https://github.com/sponsors/alessiofrittoli","type":"github"}],"gitHead":"88a71ef34f3944859e95eb199487d26f674ef60c","scripts":{"//1a":"*********************************************************************","//1b":"*********************** BUILD - LINT - RELEASE **********************","//1c":"*********************************************************************","//2a":"*********************************************************************","//2b":"***************************** UNIT TESTS ****************************","//2c":"*********************************************************************","//3a":"*********************************************************************","//3b":"************************ UNIT TESTS COVERAGE ************************","//3c":"*********************************************************************","//4a":"*********************************************************************","//4b":"************************ TARGETED UNIT TESTS ************************","//4c":"*********************************************************************","lint":"eslint","test":"jest --verbose","build":"pnpm lint && pnpm test:ci && tsup","release":"node scripts/publish.js --verbose --npm","test:ci":"jest --ci --verbose","test:utils":"pnpm test:watch utils.test.tsx","test:watch":"jest --watchAll --verbose","build:watch":"tsup --watch","test:coverage":"pnpm test:watch --coverage","test:components":"pnpm test:watch components/*","test:coverage:ci":"pnpm test:ci --coverage","test:coverage:serve":"concurrently --prefix none --kill-others \"pnpm test:coverage\" \"pnpm test:serve-coverage\"","test:serve-coverage":"http-server ./coverage/lcov-report --gzip true -p 0 -o --silent"},"_npmUser":{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"},"deprecated":"This version is deprecated. Please upgrade to >=1.0.0","repository":{"url":"git+https://github.com/alessiofrittoli/react-api.git","type":"git"},"_npmVersion":"11.0.0","description":"TypeScript React API utilities and Components","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","react":"^19.1.0","dotenv":"^16.5.0","eslint":"^9.25.1","globals":"^16.0.0","ts-jest":"^29.3.2","ts-node":"^10.9.2","react-dom":"^19.1.0","@eslint/js":"^9.25.1","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.14.1","http-server":"^14.1.1","@types/react":"^19.1.2","concurrently":"^9.1.2","@jest/globals":"^29.7.0","@eslint/compat":"^1.2.8","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^19.1.2","typescript-eslint":"^8.31.0","eslint-plugin-react":"^7.37.5","@testing-library/react":"^16.3.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.6.3","eslint-plugin-react-hooks":"^5.2.0","@alessiofrittoli/node-scripts":"^2.4.0","eslint-plugin-react-server-components":"^1.2.0"},"peerDependencies":{"react":"^19.1.0","react-dom":"^19.1.0","@types/react":"^19.1.2","@types/react-dom":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/react-api_0.1.0_1745516456394_0.9434668694355681","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@alessiofrittoli/react-api","version":"0.2.0","keywords":["react","react-utilities"],"author":{"url":"https://alessiofrittoli.it","name":"Alessio Frittoli","email":"info@alessiofrittoli.it"},"license":"MIT","_id":"@alessiofrittoli/react-api@0.2.0","maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"homepage":"https://github.com/alessiofrittoli/react-api#readme","bugs":{"url":"https://github.com/alessiofrittoli/react-api/issues","email":"info@alessiofrittoli.it"},"dist":{"shasum":"4617e35ecfd823708fd4757c2293fc91ac3a8fbc","tarball":"https://registry.npmjs.org/@alessiofrittoli/react-api/-/react-api-0.2.0.tgz","fileCount":45,"integrity":"sha512-Hs9bRIyl12XieygZw8Rj6QUvebgx+UgtnHg+qYpOgCw+EmIW6VtliTX9ZRqhi5MVU6cJpUi84ohrFHry2K/84g==","signatures":[{"sig":"MEUCIHqwzkVxcSyMgDfwjoPzQKZ53C3gBm5PJOJXhMHmZo4mAiEAiPFu0+JPZgbkdR7MrtarPRrVeN52HezqsPaMddb/6M8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71991},"main":"./dist/index.js","pnpm":{"onlyBuiltDependencies":["esbuild"]},"types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./utils":{"types":"./dist/utils.d.ts","import":"./dist/utils.mjs","require":"./dist/utils.js"},"./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.mjs","require":"./dist/components/index.js"}},"funding":[{"url":"https://github.com/sponsors/alessiofrittoli","type":"github"}],"gitHead":"8bc7ada8341efbaa1c90e959c962ac5aab10f14d","scripts":{"//1a":"*********************************************************************","//1b":"*********************** BUILD - LINT - RELEASE **********************","//1c":"*********************************************************************","//2a":"*********************************************************************","//2b":"***************************** UNIT TESTS ****************************","//2c":"*********************************************************************","//3a":"*********************************************************************","//3b":"************************ UNIT TESTS COVERAGE ************************","//3c":"*********************************************************************","//4a":"*********************************************************************","//4b":"************************ TARGETED UNIT TESTS ************************","//4c":"*********************************************************************","lint":"eslint","test":"jest --verbose","build":"pnpm lint && pnpm test:ci && tsup","release":"node scripts/publish.js --verbose --npm","test:ci":"jest --ci --verbose","test:utils":"pnpm test:watch utils.test.tsx","test:watch":"jest --watchAll --verbose","build:watch":"tsup --watch","test:coverage":"pnpm test:watch --coverage","test:components":"pnpm test:watch components/*","test:coverage:ci":"pnpm test:ci --coverage","test:coverage:serve":"concurrently --prefix none --kill-others \"pnpm test:coverage\" \"pnpm test:serve-coverage\"","test:serve-coverage":"http-server ./coverage/lcov-report --gzip true -p 0 -o --silent"},"_npmUser":{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"},"deprecated":"This version is deprecated. Please upgrade to >=1.0.0","repository":{"url":"git+https://github.com/alessiofrittoli/react-api.git","type":"git"},"_npmVersion":"11.0.0","description":"TypeScript React API utilities and Components","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","react":">=19","dotenv":"^16.5.0","eslint":"^9.25.1","globals":"^16.0.0","ts-jest":"^29.3.2","ts-node":"^10.9.2","react-dom":">=19","@eslint/js":"^9.25.1","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.14.1","http-server":"^14.1.1","@types/react":">=19","concurrently":"^9.1.2","@jest/globals":"^29.7.0","@eslint/compat":"^1.2.8","@eslint/eslintrc":"^3.3.1","@types/react-dom":">=19","typescript-eslint":"^8.31.0","eslint-plugin-react":"^7.37.5","@testing-library/react":"^16.3.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.6.3","eslint-plugin-react-hooks":"^5.2.0","@alessiofrittoli/node-scripts":"^2.4.0","eslint-plugin-react-server-components":"^1.2.0"},"peerDependencies":{"react":">=19","react-dom":">=19","@types/react":">=19","@types/react-dom":">=19"},"_npmOperationalInternal":{"tmp":"tmp/react-api_0.2.0_1745614618056_0.3958659787366974","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@alessiofrittoli/react-api","version":"0.3.0","keywords":["react","react-utilities"],"author":{"url":"https://alessiofrittoli.it","name":"Alessio Frittoli","email":"info@alessiofrittoli.it"},"license":"MIT","_id":"@alessiofrittoli/react-api@0.3.0","maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"homepage":"https://github.com/alessiofrittoli/react-api#readme","bugs":{"url":"https://github.com/alessiofrittoli/react-api/issues","email":"info@alessiofrittoli.it"},"dist":{"shasum":"1011f9175b7df73b2219c6ce718811ce73127934","tarball":"https://registry.npmjs.org/@alessiofrittoli/react-api/-/react-api-0.3.0.tgz","fileCount":43,"integrity":"sha512-nweEf6ffH+qdY62HDd9t9i4Aw0nmjz06hUqWJ4B1me1MU15yR/567l9uctOd65Dn9rGuZCFuaGg2hXSUyFMo0g==","signatures":[{"sig":"MEYCIQCfW3KRWsDo7KMduZ5lymhWgR9zxCKrF4N3XJcr0YQn1AIhANOkGDS4anD32pnE0DDk5yGt/8gsJNXkm0fAHiFzKqVK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27922},"main":"./dist/index.js","pnpm":{"onlyBuiltDependencies":["esbuild"]},"types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./utils":{"types":"./dist/utils.d.ts","import":"./dist/utils.mjs","require":"./dist/utils.js"},"./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.mjs","require":"./dist/components/index.js"}},"funding":[{"url":"https://github.com/sponsors/alessiofrittoli","type":"github"}],"gitHead":"15a349355df018cf9ad3272a47be126a0dd7f76c","scripts":{"dev":"NODE_ENV=development tsup --watch","//1a":"*********************************************************************","//1b":"******************** DEV - BUILD - LINT - RELEASE *******************","//1c":"*********************************************************************","//2a":"*********************************************************************","//2b":"***************************** UNIT TESTS ****************************","//2c":"*********************************************************************","//3a":"*********************************************************************","//3b":"************************ UNIT TESTS COVERAGE ************************","//3c":"*********************************************************************","//4a":"*********************************************************************","//4b":"************************ TARGETED UNIT TESTS ************************","//4c":"*********************************************************************","lint":"eslint","test":"jest --verbose","build":"pnpm lint && pnpm test:ci && pnpm build:prod","release":"node scripts/publish.js --verbose --npm","test:ci":"jest --ci --verbose","build:prod":"NODE_ENV=production tsup","test:utils":"pnpm test:watch utils.test.tsx","test:watch":"jest --watchAll --verbose","test:coverage":"pnpm test:watch --coverage","test:components":"pnpm test:watch components/*","test:coverage:ci":"pnpm test:ci --coverage","test:coverage:serve":"concurrently --prefix none --kill-others \"pnpm test:coverage\" \"pnpm test:serve-coverage\"","test:serve-coverage":"http-server ./coverage/lcov-report --gzip true -p 0 -o --silent"},"_npmUser":{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"},"deprecated":"This version is deprecated. Please upgrade to >=1.0.0","repository":{"url":"git+https://github.com/alessiofrittoli/react-api.git","type":"git"},"_npmVersion":"11.0.0","description":"TypeScript React API utilities and Components","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","react":">=19","dotenv":"^16.5.0","eslint":"^9.26.0","globals":"^16.0.0","ts-jest":"^29.3.2","ts-node":"^10.9.2","react-dom":">=19","@eslint/js":"^9.26.0","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.3","http-server":"^14.1.1","@types/react":">=19","concurrently":"^9.1.2","@jest/globals":"^29.7.0","@eslint/compat":"^1.2.9","@eslint/eslintrc":"^3.3.1","@types/react-dom":">=19","typescript-eslint":"^8.31.1","eslint-plugin-react":"^7.37.5","@testing-library/react":"^16.3.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.6.3","eslint-plugin-react-hooks":"^5.2.0","@alessiofrittoli/node-scripts":"^2.5.0","eslint-plugin-react-server-components":"^1.2.0"},"peerDependencies":{"react":">=19","react-dom":">=19","@types/react":">=19","@types/react-dom":">=19"},"_npmOperationalInternal":{"tmp":"tmp/react-api_0.3.0_1746377806331_0.6206663556853369","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@alessiofrittoli/react-api","version":"0.4.0","keywords":["react","react-utilities"],"author":{"url":"https://alessiofrittoli.it","name":"Alessio Frittoli","email":"info@alessiofrittoli.it"},"license":"MIT","_id":"@alessiofrittoli/react-api@0.4.0","maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"homepage":"https://github.com/alessiofrittoli/react-api#readme","bugs":{"url":"https://github.com/alessiofrittoli/react-api/issues","email":"info@alessiofrittoli.it"},"dist":{"shasum":"0c440db55bc629875679c33d937ca066f83fd63f","tarball":"https://registry.npmjs.org/@alessiofrittoli/react-api/-/react-api-0.4.0.tgz","fileCount":43,"integrity":"sha512-ruZOXsb6Ba6MYR3ZgErpFxDQr1xMdtiJ5GhWIMqgE/ixHrlm5/ewFgIWy6KTkG2dcPpcEF0PNC+5xwM7fVvnUQ==","signatures":[{"sig":"MEQCIFB3Pyub57a31dwMOetMmX/jQiZH7GFmsm6GSXn47ns4AiB0ALINjGcE/2q2cW4gn+GJ6pQOhIXmbHbBePHQERWTFw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34468},"main":"./dist/index.js","pnpm":{"onlyBuiltDependencies":["esbuild"]},"types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./utils":{"types":"./dist/utils.d.ts","import":"./dist/utils.mjs","require":"./dist/utils.js"},"./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.mjs","require":"./dist/components/index.js"}},"funding":[{"url":"https://github.com/sponsors/alessiofrittoli","type":"github"}],"gitHead":"77566dc5dbb56605dc06c5e32ef9aba76655f3a3","scripts":{"dev":"NODE_ENV=development tsup --watch","//1a":"*********************************************************************","//1b":"******************** DEV - BUILD - LINT - RELEASE *******************","//1c":"*********************************************************************","//2a":"*********************************************************************","//2b":"***************************** UNIT TESTS ****************************","//2c":"*********************************************************************","//3a":"*********************************************************************","//3b":"************************ UNIT TESTS COVERAGE ************************","//3c":"*********************************************************************","//4a":"*********************************************************************","//4b":"************************ TARGETED UNIT TESTS ************************","//4c":"*********************************************************************","lint":"eslint","test":"jest --verbose","build":"pnpm lint && pnpm test:ci && pnpm build:prod","release":"node scripts/publish.js --verbose --npm","test:ci":"jest --ci --verbose","build:prod":"NODE_ENV=production tsup","test:utils":"pnpm test:watch utils.test.tsx","test:watch":"jest --watchAll --verbose","test:coverage":"pnpm test:watch --coverage","test:components":"pnpm test:watch components/*","test:coverage:ci":"pnpm test:ci --coverage","test:coverage:serve":"concurrently --prefix none --kill-others \"pnpm test:coverage\" \"pnpm test:serve-coverage\"","test:serve-coverage":"http-server ./coverage/lcov-report --gzip true -p 0 -o --silent"},"_npmUser":{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"},"deprecated":"This version is deprecated. Please upgrade to >=1.0.0","repository":{"url":"git+https://github.com/alessiofrittoli/react-api.git","type":"git"},"_npmVersion":"10.9.2","description":"TypeScript React API utilities and Components","directories":{},"sideEffects":false,"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","react":">=19","dotenv":"^16.5.0","eslint":"^9.26.0","globals":"^16.0.0","ts-jest":"^29.3.2","ts-node":"^10.9.2","react-dom":">=19","@eslint/js":"^9.26.0","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.3","http-server":"^14.1.1","@types/react":">=19","concurrently":"^9.1.2","@jest/globals":"^29.7.0","@eslint/compat":"^1.2.9","@eslint/eslintrc":"^3.3.1","@types/react-dom":">=19","typescript-eslint":"^8.31.1","eslint-plugin-react":"^7.37.5","@testing-library/react":"^16.3.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.6.3","eslint-plugin-react-hooks":"^5.2.0","@alessiofrittoli/node-scripts":"^2.5.0","eslint-plugin-react-server-components":"^1.2.0"},"peerDependencies":{"react":">=19","react-dom":">=19","@types/react":">=19","@types/react-dom":">=19"},"_npmOperationalInternal":{"tmp":"tmp/react-api_0.4.0_1747417044288_0.462521814784864","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@alessiofrittoli/react-api","version":"0.5.0","keywords":["react","react-utilities"],"author":{"url":"https://alessiofrittoli.it","name":"Alessio Frittoli","email":"info@alessiofrittoli.it"},"license":"MIT","_id":"@alessiofrittoli/react-api@0.5.0","maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"homepage":"https://github.com/alessiofrittoli/react-api#readme","bugs":{"url":"https://github.com/alessiofrittoli/react-api/issues","email":"info@alessiofrittoli.it"},"dist":{"shasum":"22c213da840ca22b21c94eeff8803f87e36b8b84","tarball":"https://registry.npmjs.org/@alessiofrittoli/react-api/-/react-api-0.5.0.tgz","fileCount":43,"integrity":"sha512-yxFv9PKuGzdU/jpn208eiAF76mYhb67iStqg5gLbBeHU89zXUfSzMLAPJUKzpgskAdZQehhplVeA40v6hCPd7A==","signatures":[{"sig":"MEYCIQDBlQrf8MJJARPcRB9df9CZBVX+81Z8JN6cQ6wFF5Z4iQIhAM1pOUbfAciIUDzTeL6OZLsbPowQXxxRmyZoNIkH/7uy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35372},"main":"./dist/index.js","pnpm":{"onlyBuiltDependencies":["esbuild"]},"types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./utils":{"import":{"types":"./dist/utils.d.mts","default":"./dist/utils.mjs"},"require":{"types":"./dist/utils.d.ts","default":"./dist/utils.js"}},"./components":{"import":{"types":"./dist/components/index.d.mts","default":"./dist/components/index.mjs"},"require":{"types":"./dist/components/index.d.ts","default":"./dist/components/index.js"}}},"funding":[{"url":"https://github.com/sponsors/alessiofrittoli","type":"github"}],"gitHead":"67adb6a869114710309576a0d471956f694f041f","scripts":{"dev":"NODE_ENV=development tsup --watch","//1a":"*********************************************************************","//1b":"******************** DEV - BUILD - LINT - RELEASE *******************","//1c":"*********************************************************************","//2a":"*********************************************************************","//2b":"***************************** UNIT TESTS ****************************","//2c":"*********************************************************************","//3a":"*********************************************************************","//3b":"************************ UNIT TESTS COVERAGE ************************","//3c":"*********************************************************************","//4a":"*********************************************************************","//4b":"************************ TARGETED UNIT TESTS ************************","//4c":"*********************************************************************","lint":"eslint","test":"jest --verbose","build":"pnpm lint && pnpm test:ci && pnpm build:prod","release":"node scripts/publish.js --verbose --npm","test:ci":"jest --ci --verbose","build:prod":"NODE_ENV=production tsup","test:utils":"pnpm test:watch utils.test.tsx","test:watch":"jest --watchAll --verbose","test:coverage":"pnpm test:watch --coverage","test:components":"pnpm test:watch components/*","test:coverage:ci":"pnpm test:ci --coverage","test:coverage:serve":"concurrently --prefix none --kill-others \"pnpm test:coverage\" \"pnpm test:serve-coverage\"","test:serve-coverage":"http-server ./coverage/lcov-report --gzip true -p 0 -o --silent"},"_npmUser":{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"},"deprecated":"This version is deprecated. Please upgrade to >=1.0.0","repository":{"url":"git+https://github.com/alessiofrittoli/react-api.git","type":"git"},"_npmVersion":"10.9.2","description":"TypeScript React API utilities and Components","directories":{},"sideEffects":false,"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","react":">=19","dotenv":"^16.5.0","eslint":"^9.26.0","globals":"^16.0.0","ts-jest":"^29.3.2","ts-node":"^10.9.2","react-dom":">=19","@eslint/js":"^9.26.0","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.3","http-server":"^14.1.1","@types/react":">=19","concurrently":"^9.1.2","@jest/globals":"^29.7.0","@eslint/compat":"^1.2.9","@eslint/eslintrc":"^3.3.1","@types/react-dom":">=19","typescript-eslint":"^8.31.1","eslint-plugin-react":"^7.37.5","@testing-library/react":"^16.3.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.6.3","eslint-plugin-react-hooks":"^5.2.0","@alessiofrittoli/node-scripts":"^2.5.0","eslint-plugin-react-server-components":"^1.2.0"},"peerDependencies":{"react":">=19","react-dom":">=19","@types/react":">=19","@types/react-dom":">=19"},"_npmOperationalInternal":{"tmp":"tmp/react-api_0.5.0_1747422515150_0.3938059239615097","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@alessiofrittoli/react-api","version":"1.0.0","keywords":["react","react-utilities"],"author":{"url":"https://alessiofrittoli.it","name":"Alessio Frittoli","email":"info@alessiofrittoli.it"},"license":"MIT","_id":"@alessiofrittoli/react-api@1.0.0","maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"homepage":"https://github.com/alessiofrittoli/react-api#readme","bugs":{"url":"https://github.com/alessiofrittoli/react-api/issues","email":"info@alessiofrittoli.it"},"dist":{"shasum":"dacaa19cf038ca5d7847473758ef2cb4a1e2b9f5","tarball":"https://registry.npmjs.org/@alessiofrittoli/react-api/-/react-api-1.0.0.tgz","fileCount":13,"integrity":"sha512-vHEUUaruvbZWth86HOSKUNkhgFu3JvQcDx9JCNmsZCpMAMStRqpCk0V52JD9u591AZIxHRddlkSFxeV1y/VObw==","signatures":[{"sig":"MEUCIQC9NRoOS9JsEt+1rv3/oMtu+DFYUWhIMAdJY0sed4aXuQIgIv5qH6Al5DA0cz+dVwBp7hpjpJcM9tUKplFcNRUGDI0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19671},"main":"./dist/index.js","pnpm":{"onlyBuiltDependencies":["esbuild"]},"types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./utils":{"import":{"types":"./dist/utils.d.mts","default":"./dist/utils.mjs"},"require":{"types":"./dist/utils.d.ts","default":"./dist/utils.js"}}},"funding":[{"url":"https://github.com/sponsors/alessiofrittoli","type":"github"}],"gitHead":"d1700291834d3995e1b880315cafde9e79c6a1c0","scripts":{"dev":"NODE_ENV=development tsup --watch","//1a":"*********************************************************************","//1b":"******************** DEV - BUILD - LINT - RELEASE *******************","//1c":"*********************************************************************","//2a":"*********************************************************************","//2b":"***************************** UNIT TESTS ****************************","//2c":"*********************************************************************","//3a":"*********************************************************************","//3b":"************************ UNIT TESTS COVERAGE ************************","//3c":"*********************************************************************","//4a":"*********************************************************************","//4b":"************************ TARGETED UNIT TESTS ************************","//4c":"*********************************************************************","lint":"eslint","test":"jest --verbose","build":"pnpm lint && pnpm test:ci && pnpm build:prod","release":"node scripts/publish.js --verbose --npm","test:ci":"jest --ci --verbose","build:prod":"NODE_ENV=production tsup","test:utils":"pnpm test:watch utils.test.tsx","test:watch":"jest --watchAll --verbose","test:coverage":"pnpm test:watch --coverage","test:components":"pnpm test:watch components/*","test:coverage:ci":"pnpm test:ci --coverage","test:coverage:serve":"concurrently --prefix none --kill-others \"pnpm test:coverage\" \"pnpm test:serve-coverage\"","test:serve-coverage":"http-server ./coverage/lcov-report --gzip true -p 0 -o --silent"},"_npmUser":{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"},"repository":{"url":"git+https://github.com/alessiofrittoli/react-api.git","type":"git"},"_npmVersion":"10.9.2","description":"TypeScript React API utilities and Components","directories":{},"sideEffects":false,"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.5.0","react":">=19","dotenv":"^16.5.0","eslint":"^9.27.0","globals":"^16.1.0","ts-jest":"^29.3.4","ts-node":"^10.9.2","react-dom":">=19","@eslint/js":"^9.27.0","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.18","http-server":"^14.1.1","@types/react":">=19","concurrently":"^9.1.2","@jest/globals":"^29.7.0","@eslint/compat":"^1.2.9","@eslint/eslintrc":"^3.3.1","@types/react-dom":">=19","typescript-eslint":"^8.32.1","eslint-plugin-react":"^7.37.5","@testing-library/react":"^16.3.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.6.3","eslint-plugin-react-hooks":"^5.2.0","@alessiofrittoli/node-scripts":"^2.5.0","eslint-plugin-react-server-components":"^1.2.0"},"peerDependencies":{"react":">=19","react-dom":">=19","@types/react":">=19","@types/react-dom":">=19"},"_npmOperationalInternal":{"tmp":"tmp/react-api_1.0.0_1747422895796_0.971186800201397","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@alessiofrittoli/react-api","version":"1.1.0","keywords":["react","react-utilities"],"author":{"url":"https://alessiofrittoli.it","name":"Alessio Frittoli","email":"info@alessiofrittoli.it"},"license":"MIT","_id":"@alessiofrittoli/react-api@1.1.0","maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"homepage":"https://github.com/alessiofrittoli/react-api#readme","bugs":{"url":"https://github.com/alessiofrittoli/react-api/issues","email":"info@alessiofrittoli.it"},"dist":{"shasum":"3136946f140dad0db3eecaf82b531d6748e541f9","tarball":"https://registry.npmjs.org/@alessiofrittoli/react-api/-/react-api-1.1.0.tgz","fileCount":13,"integrity":"sha512-ozBApsGaSqUwy3gLexneKn1YxIUtVLPO5g5ZTtIFolH8/ni9BDsSHSmfwHGsIMt0uxQdnwDFdyJsKYekX9aw5Q==","signatures":[{"sig":"MEYCIQCErba6Vair9H1ZkwyC9ckpUjENI2xI9EdHsRYqSqHPewIhAOWshq4h+w+GyqwN6w5XdhFPYWz5vSGRp70Q1t+UlVjl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19588},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./utils":{"import":{"types":"./dist/utils.d.mts","default":"./dist/utils.mjs"},"require":{"types":"./dist/utils.d.ts","default":"./dist/utils.js"}}},"funding":[{"url":"https://github.com/sponsors/alessiofrittoli","type":"github"}],"gitHead":"4976feeb48e8c8be70382304f6c69e87d7f496b9","scripts":{"dev":"NODE_ENV=development tsup --watch","//1a":"*********************************************************************","//1b":"******************** DEV - BUILD - LINT - RELEASE *******************","//1c":"*********************************************************************","//2a":"*********************************************************************","//2b":"***************************** UNIT TESTS ****************************","//2c":"*********************************************************************","//3a":"*********************************************************************","//3b":"************************ UNIT TESTS COVERAGE ************************","//3c":"*********************************************************************","//4a":"*********************************************************************","//4b":"************************ TARGETED UNIT TESTS ************************","//4c":"*********************************************************************","lint":"eslint","test":"jest --verbose","build":"pnpm lint && pnpm test:ci && pnpm build:prod","release":"node scripts/publish.js --verbose --npm","test:ci":"jest --ci --verbose","build:prod":"NODE_ENV=production tsup","test:utils":"pnpm test:watch utils.test.tsx","test:watch":"jest --watchAll --verbose","test:coverage":"pnpm test:watch --coverage","test:components":"pnpm test:watch components/*","test:coverage:ci":"pnpm test:ci --coverage","test:coverage:serve":"concurrently --prefix none --kill-others \"pnpm test:coverage\" \"pnpm test:serve-coverage\"","test:serve-coverage":"http-server ./coverage/lcov-report --gzip true -p 0 -o --silent"},"_npmUser":{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"},"repository":{"url":"git+https://github.com/alessiofrittoli/react-api.git","type":"git"},"_npmVersion":"11.4.0","description":"TypeScript React API utilities","directories":{},"sideEffects":false,"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.0.4","tsup":"^8.5.0","react":">=19","dotenv":"^17.2.0","eslint":"^9.30.1","globals":"^16.3.0","ts-jest":"^29.4.0","ts-node":"^10.9.2","react-dom":">=19","@eslint/js":"^9.30.1","typescript":"^5.8.3","@types/jest":"^30.0.0","@types/node":"^24.0.13","http-server":"^14.1.1","@types/react":">=19","concurrently":"^9.2.0","@jest/globals":"^30.0.4","@eslint/compat":"^1.3.1","@eslint/eslintrc":"^3.3.1","@types/react-dom":">=19","typescript-eslint":"^8.36.0","eslint-plugin-react":"^7.37.5","@testing-library/react":"^16.3.0","jest-environment-jsdom":"^30.0.4","@testing-library/jest-dom":"^6.6.3","eslint-plugin-react-hooks":"^5.2.0","@alessiofrittoli/node-scripts":"^2.7.0","eslint-plugin-react-server-components":"^1.2.0"},"peerDependencies":{"react":">=19","react-dom":">=19","@types/react":">=19","@types/react-dom":">=19"},"_npmOperationalInternal":{"tmp":"tmp/react-api_1.1.0_1752244200230_0.1973795642274878","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@alessiofrittoli/react-api","version":"1.2.0","description":"TypeScript React API utilities","author":{"name":"Alessio Frittoli","email":"info@alessiofrittoli.it","url":"https://alessiofrittoli.it"},"license":"MIT","funding":[{"type":"github","url":"https://github.com/sponsors/alessiofrittoli"}],"keywords":["react","react-utilities"],"homepage":"https://github.com/alessiofrittoli/react-api#readme","bugs":{"url":"https://github.com/alessiofrittoli/react-api/issues","email":"info@alessiofrittoli.it"},"repository":{"type":"git","url":"git+https://github.com/alessiofrittoli/react-api.git"},"main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./utils":{"import":{"types":"./dist/utils.d.mts","default":"./dist/utils.mjs"},"require":{"types":"./dist/utils.d.ts","default":"./dist/utils.js"}}},"sideEffects":false,"scripts":{"//1a":"*********************************************************************","//1b":"******************** DEV - BUILD - LINT - RELEASE *******************","//1c":"*********************************************************************","dev":"cross-env NODE_ENV=development tsup --watch","build:prod":"cross-env NODE_ENV=production tsup","build":"pnpm lint && pnpm test:ci && pnpm build:prod","lint":"eslint","release":"node scripts/release.js --verbose --npm","//2a":"*********************************************************************","//2b":"***************************** UNIT TESTS ****************************","//2c":"*********************************************************************","test":"jest --verbose","test:watch":"jest --watchAll --verbose","test:ci":"jest --ci --verbose","//3a":"*********************************************************************","//3b":"************************ UNIT TESTS COVERAGE ************************","//3c":"*********************************************************************","test:coverage":"pnpm test:watch --coverage","test:coverage:ci":"pnpm test:ci --coverage","test:serve-coverage":"http-server ./coverage/lcov-report --gzip true -p 0 -o --silent","test:coverage:serve":"concurrently --prefix none --kill-others \"pnpm test:coverage\" \"pnpm test:serve-coverage\"","//4a":"*********************************************************************","//4b":"************************ TARGETED UNIT TESTS ************************","//4c":"*********************************************************************","test:utils":"pnpm test:watch utils.test.tsx"},"peerDependencies":{"@types/react":">=19","@types/react-dom":">=19","react":">=19","react-dom":">=19"},"devDependencies":{"@alessiofrittoli/node-scripts":"^3.2.0","@eslint/compat":"^2.0.0","@eslint/eslintrc":"^3.3.3","@eslint/js":"^9.39.1","@jest/globals":"^30.2.0","@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.0","@types/jest":"^30.0.0","@types/node":"^24.10.1","@types/react":">=19","@types/react-dom":">=19","concurrently":"^9.2.1","cross-env":"^10.1.0","dotenv":"^17.2.3","eslint":"^9.39.1","eslint-plugin-react":"^7.37.5","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-server-components":"^1.2.0","globals":"^16.5.0","http-server":"^14.1.1","jest":"^30.2.0","jest-environment-jsdom":"^30.2.0","react":">=19","react-dom":">=19","ts-jest":"^29.4.6","ts-node":"^10.9.2","tsup":"^8.5.1","typescript":"^5.9.3","typescript-eslint":"^8.48.1"},"_id":"@alessiofrittoli/react-api@1.2.0","gitHead":"2e4150724fcb058b9eabbd8048566527f94b9250","_nodeVersion":"22.15.0","_npmVersion":"11.5.2","dist":{"integrity":"sha512-5qENx1pwc+0as4ydHgi5BCpK/PhMSKNZEpUClQNU3VZphtB0vcbzSAU+gZbd2BxuRGixzBSiJtnl6NKiseoMag==","shasum":"0d5374020e6aec2dc6e5b9f71b310f903e6de9c4","tarball":"https://registry.npmjs.org/@alessiofrittoli/react-api/-/react-api-1.2.0.tgz","fileCount":13,"unpackedSize":19581,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIB2pLn2g83ch4mw/WdF5juOKbkDENS+8M81e/uQDvOhHAiEAonChl+hTmkGuHCe/YN0YPjkkRty4J6o3sRizYrIs4Fs="}]},"_npmUser":{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"},"directories":{},"maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react-api_1.2.0_1764793112750_0.8159165855717287"},"_hasShrinkwrap":false}},"time":{"created":"2025-04-24T17:40:56.317Z","modified":"2025-12-03T20:18:33.097Z","0.1.0":"2025-04-24T17:40:56.651Z","0.2.0":"2025-04-25T20:56:58.292Z","0.3.0":"2025-05-04T16:56:46.529Z","0.4.0":"2025-05-16T17:37:24.489Z","0.5.0":"2025-05-16T19:08:35.320Z","1.0.0":"2025-05-16T19:14:55.949Z","1.1.0":"2025-07-11T14:30:00.427Z","1.2.0":"2025-12-03T20:18:32.917Z"},"bugs":{"url":"https://github.com/alessiofrittoli/react-api/issues","email":"info@alessiofrittoli.it"},"author":{"name":"Alessio Frittoli","email":"info@alessiofrittoli.it","url":"https://alessiofrittoli.it"},"license":"MIT","homepage":"https://github.com/alessiofrittoli/react-api#readme","keywords":["react","react-utilities"],"repository":{"type":"git","url":"git+https://github.com/alessiofrittoli/react-api.git"},"description":"TypeScript React API utilities","maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"readme":"# React API ✇\n\n[![NPM Latest Version][version-badge]][npm-url] [![Coverage Status][coverage-badge]][coverage-url] [![Socket Status][socket-badge]][socket-url] [![NPM Monthly Downloads][downloads-badge]][npm-url] [![Dependencies][deps-badge]][deps-url]\n\n[![GitHub Sponsor][sponsor-badge]][sponsor-url]\n\n[version-badge]: https://img.shields.io/npm/v/%40alessiofrittoli%2Freact-api\n[npm-url]: https://npmjs.org/package/%40alessiofrittoli%2Freact-api\n[coverage-badge]: https://coveralls.io/repos/github/alessiofrittoli/react-api/badge.svg\n[coverage-url]: https://coveralls.io/github/alessiofrittoli/react-api\n[socket-badge]: https://socket.dev/api/badge/npm/package/@alessiofrittoli/react-api\n[socket-url]: https://socket.dev/npm/package/@alessiofrittoli/react-api/overview\n[downloads-badge]: https://img.shields.io/npm/dm/%40alessiofrittoli%2Freact-api.svg\n[deps-badge]: https://img.shields.io/librariesio/release/npm/%40alessiofrittoli%2Freact-api\n[deps-url]: https://libraries.io/npm/%40alessiofrittoli%2Freact-api\n\n[sponsor-badge]: https://img.shields.io/static/v1?label=Fund%20this%20package&message=%E2%9D%A4&logo=GitHub&color=%23DB61A2\n[sponsor-url]: https://github.com/sponsors/alessiofrittoli\n\n## TypeScript React API utilities\n\n### Table of Contents\n\n- [Getting started](#getting-started)\n- [API Reference](#api-reference)\n  - [Utilities](#utilities)\n- [Development](#development)\n  - [Install depenendencies](#install-depenendencies)\n  - [Build the source code](#build-the-source-code)\n  - [ESLint](#eslint)\n  - [Jest](#jest)\n- [Contributing](#contributing)\n- [Security](#security)\n- [Credits](#made-with-)\n\n---\n\n### Getting started\n\nRun the following command to start using `react-api` in your projects:\n\n```bash\nnpm i @alessiofrittoli/react-api\n```\n\nor using `pnpm`\n\n```bash\npnpm i @alessiofrittoli/react-api\n```\n\n---\n\n### API Reference\n\n#### Utilities\n\n##### `isComponentType`\n\nCheck if the given `input` is a React ComponentType.\n\n<details>\n\n<summary style=\"cursor:pointer\">Type Parameters</summary>\n\n| Parameter | Default   | Description |\n|-----------|-----------|-------------|\n| `P`       | `unknown` | The props the component accepts. |\n\n</details>\n\n---\n\n<details>\n\n<summary style=\"cursor:pointer\">Parameters</summary>\n\n| Parameter | Type      | Description         |\n|-----------|-----------|---------------------|\n| `input`   | `unknown` | The input to check. |\n\n</details>\n\n---\n\n<details>\n\n<summary style=\"cursor:pointer\">Returns</summary>\n\nType: `input is React.ComponentType<P>`\n\n- `true` if the given `input` is a React ComponentType.\n- `false` otherwise.\n\n</details>\n\n---\n\n<details>\n\n<summary style=\"cursor:pointer\">Usage</summary>\n\n```tsx\nimport { isComponentType } from '@alessiofrittoli/react-api'\n// or\nimport { isComponentType } from '@alessiofrittoli/react-api/utils'\n\nconst somefunction = ( Component: React.ComponentType | React.ReactNode ) => {\n\n if ( isComponentType( Component ) ) {\n  return <Component />\n }\n\n return (\n  <>{ Component }</>\n )\n\n}\n```\n\n</details>\n\n---\n\n##### `isReactNode`\n\nCheck if the given `input` is a React Node.\n\n<details>\n\n<summary style=\"cursor:pointer\">Parameters</summary>\n\n| Parameter | Type      | Description         |\n|-----------|-----------|---------------------|\n| `input`   | `unknown` | The input to check. |\n\n</details>\n\n---\n\n<details>\n\n<summary style=\"cursor:pointer\">Returns</summary>\n\nType: `input is React.ReactNode`\n\n- `true` if the given `input` is a React Node.\n- `false` otherwise.\n\n</details>\n\n---\n\n<details>\n\n<summary style=\"cursor:pointer\">Usage</summary>\n\n```tsx\nimport { isReactNode } from '@alessiofrittoli/react-api'\n// or\nimport { isReactNode } from '@alessiofrittoli/react-api/utils'\n\nconst somefunction = ( Component: React.ComponentType | React.ReactNode ) => {\n\n if ( isReactNode( Component ) ) {\n  return <>{ Component }</>\n }\n\n return (\n  <Component />\n )\n\n}\n```\n\n</details>\n\n---\n\n##### `childrenFn`\n\nRender `children` which could be possible a callable function.\n\n<details>\n\n<summary style=\"cursor:pointer\">Type Parameters</summary>\n\n| Parameter | Default   | Description |\n|-----------|-----------|-------------|\n| `T`       | `FunctionChildren<U>` | The `children` type which extends the `FunctionChildren<U>` interface. |\n| `U`       | `unknown[]` | An Array defining optional arguments passed to the `children` function. |\n\n</details>\n\n---\n\n<details>\n\n<summary style=\"cursor:pointer\">Parameters</summary>\n\n| Parameter  | Type | Description |\n|------------|------|-------------|\n| `children` | `T`  | The `children` to render. |\n| `args`     | `U`  | (Optional) Arguments passed to `children` if is a function. |\n\n</details>\n\n---\n\n<details>\n\n<summary style=\"cursor:pointer\">Returns</summary>\n\nType: `React.ReactNode`\n\nThe rendered `children`. If `children` is a function, the result of that function is returned.\n\n</details>\n\n---\n\n<details>\n\n<summary style=\"cursor:pointer\">Usage</summary>\n\n##### Define a Component that render a `FunctionChildren`\n\n```tsx\n'use client'\n\nimport { useState } from 'react'\nimport { childrenFn, type FunctionChildren } from '@alessiofrittoli/react-api'\n// or\nimport { childrenFn, type FunctionChildren } from '@alessiofrittoli/react-api/utils'\n\ninterface ComponentProps\n{\n  children?: FunctionChildren<[ state: boolean ]>\n}\n\nconst Component: React.FC<ComponentProps> = ( { children } ) => {\n\n  const [ state, setState ] = useState( false )\n\n  return (\n    <div>\n      { childrenFn( children, state ) }\n    </dib>\n  )\n}\n```\n\n---\n\n##### Use a Component that accepts a `FunctionChildren`\n\n```tsx\n'use client'\n\nconst Component2: React.FC<ComponentProps> = () => {\n\n  return (\n    <div>\n      <Component>\n        { ( state ) => {\n          return (\n            <div>children has access to `state` - { state }</div>\n          )\n        } }\n      </Component>\n      {/* multiple children accepted too */}\n      <Component>\n        { ( state ) => {\n          return (\n            <div>children has access to `state` - { state }</div>\n          )\n        } }\n        { ( state ) => {\n          return (\n            <div>multiple children are accepted too</div>\n          )\n        } }\n        <div>Another React.JSX.Element</div>\n      </Component>\n    </div>\n  )\n}\n```\n\n</details>\n\n---\n\n### Development\n\n#### Install depenendencies\n\n```bash\nnpm install\n```\n\nor using `pnpm`\n\n```bash\npnpm i\n```\n\n#### Build the source code\n\nRun the following command to test and build code for distribution.\n\n```bash\npnpm build\n```\n\n#### [ESLint](https://www.npmjs.com/package/eslint)\n\nwarnings / errors check.\n\n```bash\npnpm lint\n```\n\n#### [Jest](https://npmjs.com/package/jest)\n\nRun all the defined test suites by running the following:\n\n```bash\n# Run tests and watch file changes.\npnpm test:watch\n\n# Run tests in a CI environment.\npnpm test:ci\n```\n\n- See [`package.json`](./package.json) file scripts for more info.\n\nRun tests with coverage.\n\nAn HTTP server is then started to serve coverage files from `./coverage` folder.\n\n⚠️ You may see a blank page the first time you run this command. Simply refresh the browser to see the updates.\n\n```bash\ntest:coverage:serve\n```\n\n---\n\n### Contributing\n\nContributions are truly welcome!\n\nPlease refer to the [Contributing Doc](./CONTRIBUTING.md) for more information on how to start contributing to this project.\n\nHelp keep this project up to date with [GitHub Sponsor][sponsor-url].\n\n[![GitHub Sponsor][sponsor-badge]][sponsor-url]\n\n---\n\n### Security\n\nIf you believe you have found a security vulnerability, we encourage you to **_responsibly disclose this and NOT open a public issue_**. We will investigate all legitimate reports. Email `security@alessiofrittoli.it` to disclose any security vulnerabilities.\n\n### Made with ☕\n\n<table style='display:flex;gap:20px;'>\n  <tbody>\n    <tr>\n      <td>\n        <img alt=\"avatar\" src='https://avatars.githubusercontent.com/u/35973186' style='width:60px;border-radius:50%;object-fit:contain;'>\n      </td>\n      <td>\n        <table style='display:flex;gap:2px;flex-direction:column;'>\n          <tbody>\n              <tr>\n                <td>\n                  <a href='https://github.com/alessiofrittoli' target='_blank' rel='noopener'>Alessio Frittoli</a>\n                </td>\n              </tr>\n              <tr>\n                <td>\n                  <small>\n                    <a href='https://alessiofrittoli.it' target='_blank' rel='noopener'>https://alessiofrittoli.it</a> |\n                    <a href='mailto:info@alessiofrittoli.it' target='_blank' rel='noopener'>info@alessiofrittoli.it</a>\n                  </small>\n                </td>\n              </tr>\n          </tbody>\n        </table>\n      </td>\n    </tr>\n  </tbody>\n</table>\n","readmeFilename":"README.md"}