{"_id":"@airangomez/fullstack-utils","_rev":"4-dbb3432c347dd132ba2f137e3432af80","name":"@airangomez/fullstack-utils","dist-tags":{"latest":"0.2.2"},"versions":{"0.1.0":{"name":"@airangomez/fullstack-utils","version":"0.1.0","keywords":["fullstack","utils","react","resend","email","contact"],"author":{"name":"Airán Gómez"},"license":"MIT","_id":"@airangomez/fullstack-utils@0.1.0","maintainers":[{"name":"gurgui","email":"airangomez@hotmail.com"}],"homepage":"https://github.com/Gurguii/fullstack-utils#readme","bugs":{"url":"https://github.com/Gurguii/fullstack-utils/issues"},"dist":{"shasum":"a564904fbd5855b0289ef45c6c12d8e4946faea1","tarball":"https://registry.npmjs.org/@airangomez/fullstack-utils/-/fullstack-utils-0.1.0.tgz","fileCount":35,"integrity":"sha512-2GafyslQjG50mBDrjJPCCfPIUXEnjke22Nagwa2D9MGrgRS/mebbn1SYnVXgR6CfQr63rarvGv4FNb1gpxA4qg==","signatures":[{"sig":"MEQCIFFkfnZuQcqtyzwawHw+DtOtJ5XjXZqsbM3JPgi2ymInAiBY+N7+DWHyScjM5JNWoKxxs9LHtP9DM30fD3w9hEuWvg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30476},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./backend":{"types":"./dist/backend/index.d.ts","import":"./dist/backend/index.js"},"./frontend":{"types":"./dist/frontend/index.d.ts","import":"./dist/frontend/index.js"},"./backend/resend":{"types":"./dist/backend/resend/index.d.ts","import":"./dist/backend/resend/index.js"}},"gitHead":"e77fc547e9ac59263f70a199fe3004e2d581443f","scripts":{"dev":"tsc --watch","build":"npm run clean && tsc","clean":"node --input-type=module -e \"import fs from 'node:fs'; fs.rmSync('dist',{recursive:true,force:true})\"","prepack":"npm run build","pack:dry-run":"npm pack --dry-run"},"_npmUser":{"name":"gurgui","email":"airangomez@hotmail.com"},"repository":{"url":"git+https://github.com/Gurguii/fullstack-utils.git","type":"git"},"_npmVersion":"11.16.0","description":"Utilidades compartidas de frontend y backend","directories":{},"sideEffects":false,"_nodeVersion":"26.2.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.7","motion":"^12.42.0","react-dom":"^19.2.7","typescript":"^5.9.3","@types/react":"^19.2.17","lucide-react":"^0.577.0","@types/react-dom":"^19.2.3"},"peerDependencies":{"react":">=18.0.0","motion":">=12.0.0","resend":">=4.0.0","react-dom":">=18.0.0","lucide-react":">=0.500.0"},"peerDependenciesMeta":{"react":{"optional":true},"motion":{"optional":true},"resend":{"optional":true},"react-dom":{"optional":true},"lucide-react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fullstack-utils_0.1.0_1782933251462_0.7571857263376385","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@airangomez/fullstack-utils","version":"0.2.0","keywords":["fullstack","utils","react","nextjs","tailwindcss","resend","email","contact"],"author":{"name":"Airán Gómez"},"license":"MIT","_id":"@airangomez/fullstack-utils@0.2.0","maintainers":[{"name":"gurgui","email":"airangomez@hotmail.com"}],"homepage":"https://github.com/Gurguii/fullstack-utils#readme","bugs":{"url":"https://github.com/Gurguii/fullstack-utils/issues"},"dist":{"shasum":"3fd772a4454839757112b2dc9b3f6a098ef2df64","tarball":"https://registry.npmjs.org/@airangomez/fullstack-utils/-/fullstack-utils-0.2.0.tgz","fileCount":36,"integrity":"sha512-xBHCZ4raBQG/wXz31tdu73fx//1E6HqyCjU6LrvE3cRjUEBwr2lL6OQGAdXi4gYJlNEqE9EDrBpoiNwlDDaJfg==","signatures":[{"sig":"MEYCIQDZgcK0q5J3VTWh3ru0+WBlfuq52qKlBLyW75zwNLi/ZgIhAJ5gQGnkKrsG77dIHY8ky9CTgr/zM/I9XnJO2I4Q4nlr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":97658},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./backend":{"types":"./dist/backend/index.d.ts","import":"./dist/backend/index.js","require":"./dist/backend/index.cjs"},"./package.json":"./package.json","./tailwind.css":"./tailwind.css","./backend/resend":{"types":"./dist/backend/resend/index.d.ts","import":"./dist/backend/resend/index.js","require":"./dist/backend/resend/index.cjs"}},"gitHead":"2c8d865464c2a7a7fd279793f9495c647eebe161","scripts":{"dev":"tsup --watch","build":"tsup","clean":"node --input-type=module -e \"import fs from 'node:fs'; fs.rmSync('dist',{recursive:true,force:true})\"","prepack":"npm run build","pack:dry-run":"npm pack --dry-run"},"_npmUser":{"name":"gurgui","email":"airangomez@hotmail.com"},"repository":{"url":"git+https://github.com/Gurguii/fullstack-utils.git","type":"git"},"_npmVersion":"11.16.0","description":"Utilidades compartidas de frontend y backend para proyectos Next.js","directories":{},"sideEffects":["**/*.css","dist/react.js","dist/react.cjs"],"_nodeVersion":"26.2.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","react":"^19.2.7","motion":"^12.42.0","react-dom":"^19.2.7","typescript":"^5.9.3","@types/react":"^19.2.17","lucide-react":"^0.577.0","@types/react-dom":"^19.2.3"},"peerDependencies":{"next":">=14.0.0","react":">=18.0.0","motion":">=12.0.0","resend":">=4.0.0","react-dom":">=18.0.0","lucide-react":">=0.500.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true},"motion":{"optional":true},"resend":{"optional":true},"react-dom":{"optional":true},"lucide-react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fullstack-utils_0.2.0_1782935230990_0.9910862129655165","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@airangomez/fullstack-utils","version":"0.2.1","keywords":["fullstack","utils","react","resend","email","contact"],"author":{"name":"Airán Gómez"},"license":"MIT","_id":"@airangomez/fullstack-utils@0.2.1","maintainers":[{"name":"gurgui","email":"airangomez@hotmail.com"}],"homepage":"https://github.com/Gurguii/fullstack-utils#readme","bugs":{"url":"https://github.com/Gurguii/fullstack-utils/issues"},"dist":{"shasum":"5dcb94ef24430120e34cbab83c8be8bb51bef480","tarball":"https://registry.npmjs.org/@airangomez/fullstack-utils/-/fullstack-utils-0.2.1.tgz","fileCount":39,"integrity":"sha512-F8cNrVIMOuRsnuww5AKSSgX8ISP41Xqb47E9hp3JW/WX8KKwSWl4fitdJQL+TIktrp3FzDAr8M7vt5Ew1A9Ifw==","signatures":[{"sig":"MEUCIQCeIng+HDbsxRYyYNcWfCgDHl5KQf2lZb6Ji3dD0iVlXwIgITTBo9AdvBNZLuxPPnF+nfxUJzgX+qxoD7Y5aDHQmeQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47068},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./backend":{"types":"./dist/backend/index.d.ts","import":"./dist/backend/index.js"},"./frontend":{"types":"./dist/frontend/index.d.ts","import":"./dist/frontend/index.js"},"./backend/resend":{"types":"./dist/backend/resend/index.d.ts","import":"./dist/backend/resend/index.js"}},"gitHead":"29e7458c3e4191ad16487053be072f26a84de7fe","scripts":{"dev":"tsc --watch","build":"npm run clean && tsc","clean":"node --input-type=module -e \"import fs from 'node:fs'; fs.rmSync('dist',{recursive:true,force:true})\"","prepack":"npm run build","example:dev":"npm --prefix examples/playground run dev","pack:dry-run":"npm pack --dry-run","example:build":"npm run build && npm --prefix examples/playground run build","example:install":"npm install --prefix examples/playground"},"_npmUser":{"name":"gurgui","email":"airangomez@hotmail.com"},"repository":{"url":"git+https://github.com/Gurguii/fullstack-utils.git","type":"git"},"_npmVersion":"11.12.1","description":"Utilidades compartidas de frontend y backend","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"next":"^15.3.3","react":"^19.2.7","motion":"^12.42.0","react-dom":"^19.2.7","typescript":"^5.9.3","@types/react":"^19.2.17","lucide-react":"^0.577.0","@types/react-dom":"^19.2.3"},"peerDependencies":{"next":">=15.0.0","react":">=18.0.0","motion":">=12.0.0","resend":">=4.0.0","react-dom":">=18.0.0","lucide-react":">=0.500.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true},"motion":{"optional":true},"resend":{"optional":true},"react-dom":{"optional":true},"lucide-react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fullstack-utils_0.2.1_1783082717690_0.7350030483312393","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@airangomez/fullstack-utils","version":"0.2.2","description":"Utilidades compartidas de frontend y backend","type":"module","license":"MIT","author":{"name":"Airán Gómez"},"repository":{"type":"git","url":"git+https://github.com/Gurguii/fullstack-utils.git"},"homepage":"https://github.com/Gurguii/fullstack-utils#readme","bugs":{"url":"https://github.com/Gurguii/fullstack-utils/issues"},"keywords":["fullstack","utils","react","resend","email","contact"],"publishConfig":{"access":"public"},"sideEffects":false,"engines":{"node":">=18"},"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./backend":{"types":"./dist/backend/index.d.ts","import":"./dist/backend/index.js"},"./backend/resend":{"types":"./dist/backend/resend/index.d.ts","import":"./dist/backend/resend/index.js"},"./frontend":{"types":"./dist/frontend/index.d.ts","import":"./dist/frontend/index.js"}},"scripts":{"clean":"node --input-type=module -e \"import fs from 'node:fs'; fs.rmSync('dist',{recursive:true,force:true})\"","build":"npm run clean && tsc","dev":"tsc --watch","prepack":"npm run build","pack:dry-run":"npm pack --dry-run","example:install":"npm install --prefix examples/playground","example:dev":"npm --prefix examples/playground run dev","example:build":"npm run build && npm --prefix examples/playground run build"},"peerDependencies":{"lucide-react":">=0.500.0","motion":">=12.0.0","next":">=15.0.0","react":">=18.0.0","react-dom":">=18.0.0","resend":">=4.0.0"},"peerDependenciesMeta":{"lucide-react":{"optional":true},"motion":{"optional":true},"next":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"resend":{"optional":true}},"devDependencies":{"@types/react":"^19.2.17","@types/react-dom":"^19.2.3","lucide-react":"^0.577.0","motion":"^12.42.0","next":"^15.3.3","react":"^19.2.7","react-dom":"^19.2.7","typescript":"^5.9.3"},"_id":"@airangomez/fullstack-utils@0.2.2","gitHead":"62569c461b50a6ec998c89c369e4e06f13f9a462","_nodeVersion":"22.23.1","_npmVersion":"10.9.8","dist":{"integrity":"sha512-t7pyfSWPeI/c5fjwNlq+47N6Zm5SSdT7AG9JChIjcg7vQjN+wkpgwC9WIX1Uj4L+qRngnc477MNIk0c2kjoP3w==","shasum":"54ed4b2f4c1dc6fb367876d359d036de1c6de902","tarball":"https://registry.npmjs.org/@airangomez/fullstack-utils/-/fullstack-utils-0.2.2.tgz","fileCount":39,"unpackedSize":42190,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEwMwAcS+jBDxVn/bEdpmeKgSQz0fhMWwxuleu9XTRYPAiEA+PU8PsF5bECTb2sbx2+qIxICYKR+j+r/UFWbSr2pSCg="}]},"_npmUser":{"name":"gurgui","email":"airangomez@hotmail.com"},"directories":{},"maintainers":[{"name":"gurgui","email":"airangomez@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/fullstack-utils_0.2.2_1783329617790_0.2743673566574105"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-01T19:14:11.295Z","modified":"2026-07-06T09:20:18.060Z","0.1.0":"2026-07-01T19:14:11.606Z","0.2.0":"2026-07-01T19:47:11.132Z","0.2.1":"2026-07-03T12:45:17.859Z","0.2.2":"2026-07-06T09:20:17.922Z"},"bugs":{"url":"https://github.com/Gurguii/fullstack-utils/issues"},"author":{"name":"Airán Gómez"},"license":"MIT","homepage":"https://github.com/Gurguii/fullstack-utils#readme","keywords":["fullstack","utils","react","resend","email","contact"],"repository":{"type":"git","url":"git+https://github.com/Gurguii/fullstack-utils.git"},"description":"Utilidades compartidas de frontend y backend","maintainers":[{"name":"gurgui","email":"airangomez@hotmail.com"}],"readme":"# @airangomez/fullstack-utils\n\nUtilidades compartidas de frontend y backend para NodeJS.\n\n## Instalación\n\n```bash\nnpm install @airangomez/fullstack-utils\n```\n\n### Dependencias por módulo\n\nSolo instala las peer dependencies del módulo que uses:\n\n| Módulo | Peer dependencies |\n|--------|-------------------|\n| `@airangomez/fullstack-utils/backend/resend` | ninguna (opcional: `resend` en runtime) |\n| `@airangomez/fullstack-utils/frontend` | `next`, `react`, `react-dom`, `lucide-react`, `motion` |\n\n```bash\n# Solo backend\nnpm install @airangomez/fullstack-utils\n\n# Frontend (Next.js)\nnpm install @airangomez/fullstack-utils next react react-dom lucide-react motion\n```\n\n> **Next.js:** varios componentes del frontend usan APIs de Next (`next/image`, `next/link`). Para usar la totalidad del módulo frontend necesitas tener `next` instalado en tu proyecto.\n\n### Tailwind CSS\n\nLos componentes de frontend usan clases de Tailwind. Añade esta línea en tu `globals.css` para que el compilador incluya los estilos del paquete:\n\n```css\n@import \"tailwindcss\";\n@source \"../node_modules/@airangomez/fullstack-utils/**/*.{js,ts,jsx,tsx}\";\n```\n\nLa ruta es relativa al archivo `globals.css` (p. ej. `app/globals.css` en Next.js App Router).\n\n## Playground\n\nEl repositorio incluye una app Next.js en `examples/playground` para explorar todos los componentes de frontend y utilidades de backend del paquete con ejemplos interactivos.\n\n```bash\nnpm run example:install\nnpm run example:dev\n```\n\nAbre [http://localhost:3000](http://localhost:3000) en el navegador.\n\n## Estructura\n\n```\nsrc/\n├── index.ts                 # Re-exporta todo\n├── backend/\n│   ├── index.ts\n│   └── resend/\n│       ├── index.ts\n│       └── getResendSendParams.ts\n└── frontend/\n    ├── index.ts\n    ├── FloatingContact.tsx\n    ├── BeforeAndAfter.tsx\n    ├── BeforeAndAfterSlider.tsx\n    └── MobileFullScreenDropdown.tsx\n```\n\n## Licencia\n\nMIT © Airán Gómez","readmeFilename":"README.md"}