{"bugs":{"url":"https://github.com/sergiodxa/remix-utils/issues"},"dist":{"shasum":"961579f52cc8d94097a244415d4a86ef69594305","tarball":"https://registry.npmjs.org/remix-utils/-/remix-utils-10.0.1.tgz","fileCount":174,"integrity":"sha512-9W1j8oJzIEm55PVpN7dZsEnDD1bQ+0nSuUMIk2WoOWZA6XhIHNOTuUH+8MdICYAwaanZse8Z3lKozWNn/u4niA==","signatures":[{"sig":"MEUCICmrE1oNIGdYpz6VW9+AP777cmh+0+1SbzljCjGX23zHAiEA8rW7n088qPRraKB7GUgULWXWe+W8Nm+2AoOe4mKPHpE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCxFQLlDAQTyhWewXmShUiiJSaI2N0jjA1IasgH/BrdiQIgLgdVfYxPnlzbzISJq8dg46DTPaZhBHdHWhxOHLGZ/MI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remix-utils@10.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":665216},"name":"remix-utils","type":"module","author":{"url":"https://sergiodxa.com","name":"Sergio Xalambrí","email":"hello@sergiodxa.com"},"engines":{"node":">=22.22.0"},"exports":{"./cors":{"types":"./build/server/cors.d.ts","default":"./build/server/cors.js"},"./timers":{"types":"./build/common/timers.d.ts","default":"./build/common/timers.js"},"./promise":{"types":"./build/common/promise.d.ts","default":"./build/common/promise.js"},"./json-hash":{"types":"./build/server/json-hash.d.ts","default":"./build/server/json-hash.js"},"./responses":{"types":"./build/server/responses.d.ts","default":"./build/server/responses.js"},"./sec-fetch":{"types":"./build/server/sec-fetch.d.ts","default":"./build/server/sec-fetch.js"},"./sse/react":{"types":"./build/react/use-event-source.d.ts","default":"./build/react/use-event-source.js"},"./csrf/react":{"types":"./build/react/authenticity-token.d.ts","default":"./build/react/authenticity-token.js"},"./respond-to":{"types":"./build/server/respond-to.d.ts","default":"./build/server/respond-to.js"},"./sse/server":{"types":"./build/server/event-stream.d.ts","default":"./build/server/event-stream.js"},"./client-only":{"types":"./build/react/client-only.d.ts","default":"./build/react/client-only.js"},"./csrf/server":{"types":"./build/server/csrf.d.ts","default":"./build/server/csrf.js"},"./is-prefetch":{"types":"./build/server/is-prefetch.d.ts","default":"./build/server/is-prefetch.js"},"./server-only":{"types":"./build/react/server-only.d.ts","default":"./build/react/server-only.js"},"./cache-assets":{"types":"./build/client/cache-assets.d.ts","default":"./build/client/cache-assets.js"},"./fetcher-type":{"types":"./build/react/fetcher-type.d.ts","default":"./build/react/fetcher-type.js"},"./named-action":{"types":"./build/server/named-action.d.ts","default":"./build/server/named-action.js"},"./package.json":"./package.json","./typed-cookie":{"types":"./build/server/typed-cookie.d.ts","default":"./build/server/typed-cookie.js"},"./use-hydrated":{"types":"./build/react/use-hydrated.d.ts","default":"./build/react/use-hydrated.js"},"./locales/react":{"types":"./build/react/use-locales.d.ts","default":"./build/react/use-locales.js"},"./redirect-back":{"types":"./build/server/redirect-back.d.ts","default":"./build/server/redirect-back.js"},"./safe-redirect":{"types":"./build/server/safe-redirect.d.ts","default":"./build/server/safe-redirect.js"},"./honeypot/react":{"types":"./build/react/honeypot.d.ts","default":"./build/react/honeypot.js"},"./locales/server":{"types":"./build/server/get-client-locales.d.ts","default":"./build/server/get-client-locales.js"},"./rolling-cookie":{"types":"./build/server/rolling-cookie.d.ts","default":"./build/server/rolling-cookie.js"},"./honeypot/server":{"types":"./build/server/honeypot.d.ts","default":"./build/server/honeypot.js"},"./middleware/cors":{"types":"./build/server/middleware/cors.d.ts","default":"./build/server/middleware/cors.js"},"./middleware/csrf":{"types":"./build/server/middleware/csrf.d.ts","default":"./build/server/middleware/csrf.js"},"./external-scripts":{"types":"./build/react/external-scripts.d.ts","default":"./build/react/external-scripts.js"},"./middleware/logger":{"types":"./build/server/middleware/logger.d.ts","default":"./build/server/middleware/logger.js"},"./middleware/batcher":{"types":"./build/server/middleware/batcher.d.ts","default":"./build/server/middleware/batcher.js"},"./middleware/session":{"types":"./build/server/middleware/session.d.ts","default":"./build/server/middleware/session.js"},"./use-should-hydrate":{"types":"./build/react/use-should-hydrate.d.ts","default":"./build/react/use-should-hydrate.js"},"./middleware/honeypot":{"types":"./build/server/middleware/honeypot.d.ts","default":"./build/server/middleware/honeypot.js"},"./middleware/jwk-auth":{"types":"./build/server/middleware/jwk-auth.d.ts","default":"./build/server/middleware/jwk-auth.js"},"./parse-accept-header":{"types":"./build/server/parse-accept-header.d.ts","default":"./build/server/parse-accept-header.js"},"./use-debounce-submit":{"types":"./build/react/use-debounce-submit.d.ts","default":"./build/react/use-debounce-submit.js"},"./middleware/singleton":{"types":"./build/server/middleware/singleton.d.ts","default":"./build/server/middleware/singleton.js"},"./preload-route-assets":{"types":"./build/server/preload-route-assets.d.ts","default":"./build/server/preload-route-assets.js"},"./use-debounce-fetcher":{"types":"./build/react/use-debounce-fetcher.d.ts","default":"./build/react/use-debounce-fetcher.js"},"./get-client-ip-address":{"types":"./build/server/get-client-ip-address.d.ts","default":"./build/server/get-client-ip-address.js"},"./middleware/basic-auth":{"types":"./build/server/middleware/basic-auth.d.ts","default":"./build/server/middleware/basic-auth.js"},"./middleware/csrf-token":{"types":"./build/server/middleware/csrf-token.d.ts","default":"./build/server/middleware/csrf-token.js"},"./middleware/request-id":{"types":"./build/server/middleware/request-id.d.ts","default":"./build/server/middleware/request-id.js"},"./use-delegated-anchors":{"types":"./build/react/use-delegated-anchors.d.ts","default":"./build/react/use-delegated-anchors.js"},"./existing-search-params":{"types":"./build/react/existing-search-params.d.ts","default":"./build/react/existing-search-params.js"},"./middleware/server-timing":{"types":"./build/server/middleware/server-timing.d.ts","default":"./build/server/middleware/server-timing.js"},"./middleware/rolling-cookie":{"types":"./build/server/middleware/rolling-cookie.d.ts","default":"./build/server/middleware/rolling-cookie.js"},"./middleware/secure-headers":{"types":"./build/server/middleware/secure-headers.d.ts","default":"./build/server/middleware/secure-headers.js"},"./middleware/context-storage":{"types":"./build/server/middleware/context-storage.d.ts","default":"./build/server/middleware/context-storage.js"},"./use-global-navigation-state":{"types":"./build/react/use-global-navigation-state.d.ts","default":"./build/react/use-global-navigation-state.js"}},"funding":["https://github.com/sponsors/sergiodxa"],"gitHead":"276495d8e202891586439624894a1a2463717c52","license":"MIT","scripts":{"lint":"oxlint --ignore-path .gitignore --deny-warnings .","build":"tsc","format":"oxfmt --check .","exports":"bun run ./scripts/exports.ts","quality":"bun run lint && bun run format","lint:fix":"oxlint --ignore-path .gitignore --deny-warnings --fix .","typecheck":"tsc --noEmit","build:docs":"typedoc && shadcn build --output pages/r","format:fix":"oxfmt .","quality:fix":"bun run lint:fix && bun run format:fix","build:registry":"shadcn build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"fa0665cd-01bc-4461-8821-82da60eb6f73"}},"homepage":"https://github.com/sergiodxa/remix-utils#readme","keywords":["client IP address","client locale","client-only","cors","csrf","hydrated","json hash","named action","prefetch","react","redirect-back","remix","remix.run","request","response","rolling cookie","safe redirect","server-only","typed cookie","typed session","utils"],"repository":{"url":"git+https://github.com/sergiodxa/remix-utils.git","type":"git"},"_npmVersion":"11.19.1","description":"This package contains simple utility functions to use with [React Router](https://reactrouter.com/).","directories":{},"maintainers":[{"name":"sergiodxa","email":"hello@sergiodxa.com"}],"sideEffects":false,"_nodeVersion":"24.22.0","_hasShrinkwrap":false,"devDependencies":{"msw":"^2.12.10","zod":"^4.3.6","is-ip":"5.0.1","oxfmt":"^0.57.0","react":"^19.2.7","oxlint":"^1.72.0","shadcn":"^4.13.0","ts-node":"^10.9.2","typedoc":"^0.28.20","react-dom":"^19.2.7","@types/bun":"^1.3.10","typescript":"^5.9.3","@types/react":"^19.2.14","react-router":"^8.0.0","@oslojs/crypto":"^1.0.1","@oslojs/encoding":"^1.1.0","@edgefirst-dev/jwt":"^1.3.0","@arethetypeswrong/cli":"^0.18.4","@standard-schema/spec":"^1.1.0","@edgefirst-dev/batcher":"^1.0.1","@testing-library/react":"^16.3.2","@remix-run/file-storage":"^0.13.3","typedoc-plugin-mdn-links":"^5.1.1","@testing-library/jest-dom":"^6.9.1","@total-typescript/tsconfig":"^1.0.4","intl-parse-accept-language":"^1.0.0","@testing-library/user-event":"^14.6.1","@edgefirst-dev/server-timing":"^0.0.1","@happy-dom/global-registrator":"^20.8.3"},"peerDependencies":{"is-ip":"^5.0.1","react":">=19.2.7","react-router":"^8.0.0","@oslojs/crypto":"^1.0.1","@oslojs/encoding":"^1.1.0","@edgefirst-dev/jwt":"^1.2.0","@standard-schema/spec":"^1.0.0","@edgefirst-dev/batcher":"^1.0.0","intl-parse-accept-language":"^1.0.0","@edgefirst-dev/server-timing":"^0.0.1"},"peerDependenciesMeta":{"is-ip":{"optional":true},"react":{"optional":true},"react-router":{"optional":true},"@oslojs/crypto":{"optional":true},"@oslojs/encoding":{"optional":true},"@edgefirst-dev/jwt":{"optional":true},"@standard-schema/spec":{"optional":true},"@edgefirst-dev/batcher":{"optional":true},"intl-parse-accept-language":{"optional":true},"@edgefirst-dev/server-timing":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/remix-utils_10.0.1_1792531178340_0.021504091675992987","host":"s3://npm-registry-packages-npm-production"},"_id":"remix-utils@10.0.1","version":"10.0.1"}