{"_id":"@12-apps/app-shell","_rev":"19-f12744a7fa50e58499f399ce59f3114c","name":"@12-apps/app-shell","dist-tags":{"latest":"5.7.0"},"versions":{"1.0.0":{"name":"@12-apps/app-shell","version":"1.0.0","license":"MIT","_id":"@12-apps/app-shell@1.0.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"e8e5aff2823342b03b3ca40b9a017c21686999b5","tarball":"https://registry.npmjs.org/@12-apps/app-shell/-/app-shell-1.0.0.tgz","fileCount":29,"integrity":"sha512-IcPT73QO7jX0x1eTuubkeIoc8xSWyZMrXy6WE/Zir7QWQHgD7FQUnWNBjoYH4pT4PaVKIPfZqba+UfnoiIPCBQ==","signatures":[{"sig":"MEQCIAQlH/IS4FV0HOaU1r8/9cAY4JYLKbyShzi+1kbT+WoLAiBC9gZ8ldFIoBjCvQX2XGwiWpOTSIKqZ3ISjxjjI4TCRw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":124486},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./hono":"./src/hono/index.ts","./vite":{"types":"./dist/vite/index.d.ts","default":"./dist/vite/index.js"},"./react":"./src/react/index.ts","./server":"./src/server/index.ts","./package.json":"./package.json"},"gitHead":"5994c4ee84eff4d9141a8a892f091a9b9f97e2d9","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage dist","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"tigredonorte","email":"tigredonorte3@gmail.com"},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/app-shell"},"_npmVersion":"12.0.2","description":"The shell three SPAs of one product share (12-18). Framework-free core (.): the typed JSON API client and its ApiError, the WCAG brand-palette correction, pt-BR formatting, the stale-chunk recovery and the consent wire. Browser half (./react: createWebApp","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@12-apps/ui":"^4.0.1","@12-apps/auth":"^1.22.0","@12-apps/observability-frontend":"^1.7.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","tsup":"^8.0.0","vite":"^6.4.1","jsdom":"^26.1.0","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","react-router-dom":"^7.1.1","@tanstack/react-query":"^5.62.0","@12-apps/eslint-config":"^1.20.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.20.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","vite":">=6.0.0","react":">=19.0.0","react-dom":">=19.0.0","react-router-dom":">=7.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"hono":{"optional":true},"vite":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/app-shell_1.0.0_1786610463086_0.2027231297091283","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@12-apps/app-shell","version":"2.0.0","license":"MIT","_id":"@12-apps/app-shell@2.0.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"28431f4c8c2ad6dc706dc0f9c4804b093e0f664a","tarball":"https://registry.npmjs.org/@12-apps/app-shell/-/app-shell-2.0.0.tgz","fileCount":29,"integrity":"sha512-hndN6CAYNd3KK/Y6FK5Zk+kA9EOtK2Fu6fPlC9+GBOGvbmiwQlrRzI6kWwHlOoYXDzsPv04gtibZW8VgVEDRSg==","signatures":[{"sig":"MEUCIFN16mIQyvhh2GSHkNoVXN+n4NGDhojCZG6xO9afTUQOAiEArcPEVxsxPiE/fia5ud3cRBKzpGu+4NIEvs8y5TYl5SE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fapp-shell@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":125365},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./hono":"./src/hono/index.ts","./vite":{"types":"./dist/vite/index.d.ts","default":"./dist/vite/index.js"},"./react":"./src/react/index.ts","./server":"./src/server/index.ts","./package.json":"./package.json"},"gitHead":"970fe8bd5d1877cc81edc8eaa335ee1e967dbcf4","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage dist","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9a108edc-7b1e-4661-b91d-329f74820c25"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/app-shell"},"_npmVersion":"12.0.2","description":"The shell three SPAs of one product share (12-18). Framework-free core (.): the typed JSON API client and its ApiError, the WCAG brand-palette correction, pt-BR formatting, the stale-chunk recovery and the consent wire. Browser half (./react: createWebApp","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@12-apps/ui":"^4.1.0","@12-apps/auth":"^1.22.0","@12-apps/observability-frontend":"^1.7.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","tsup":"^8.0.0","vite":"^6.4.1","jsdom":"^26.1.0","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","react-router-dom":"^7.1.1","@tanstack/react-query":"^5.62.0","@12-apps/eslint-config":"^1.20.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.20.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","vite":">=6.0.0","react":">=19.0.0","react-dom":">=19.0.0","react-router-dom":">=7.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"hono":{"optional":true},"vite":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/app-shell_2.0.0_1786752828302_0.7014113316695305","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@12-apps/app-shell","version":"2.1.0","license":"MIT","_id":"@12-apps/app-shell@2.1.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"5263af87bdc1d716bc6dd3f4b46ed321f1517145","tarball":"https://registry.npmjs.org/@12-apps/app-shell/-/app-shell-2.1.0.tgz","fileCount":29,"integrity":"sha512-mcezatGGwsh9vzxScMYHikYcRj62tai1WXKkZK4Dh3NDZvyTDfSUl7I288feC2rQs7466IJZsWTvOJ8nhtDSVA==","signatures":[{"sig":"MEYCIQC8ACSekwJWYCW82lqT07N7U446m6g8Jn3AIqKAYOwVGwIhANCeUC8eCQqtPYyozOclGiIGuVnwL60T9lf2+Sh8Jf1Z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fapp-shell@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":128201},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./hono":"./src/hono/index.ts","./vite":{"types":"./dist/vite/index.d.ts","default":"./dist/vite/index.js"},"./react":"./src/react/index.ts","./server":"./src/server/index.ts","./package.json":"./package.json"},"gitHead":"f1116e14d01f6c170c11f9ead36e7cbb6879edb5","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage dist","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9a108edc-7b1e-4661-b91d-329f74820c25"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/app-shell"},"_npmVersion":"12.0.2","description":"The shell three SPAs of one product share (12-18). Framework-free core (.): the typed JSON API client and its ApiError, the WCAG brand-palette correction, pt-BR formatting, the stale-chunk recovery and the consent wire. Browser half (./react: createWebApp","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@12-apps/ui":"^4.1.0","@12-apps/auth":"^1.22.0","@12-apps/observability-frontend":"^1.7.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","tsup":"^8.0.0","vite":"^6.4.1","jsdom":"^26.1.0","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","react-router-dom":"^7.1.1","@tanstack/react-query":"^5.62.0","@12-apps/eslint-config":"^1.20.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.20.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","vite":">=6.0.0","react":">=19.0.0","react-dom":">=19.0.0","react-router-dom":">=7.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"hono":{"optional":true},"vite":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/app-shell_2.1.0_1786766227840_0.792719057378011","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@12-apps/app-shell","version":"2.2.0","license":"MIT","_id":"@12-apps/app-shell@2.2.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"c4aaf72e8b426bab1ac750c4fa17f05a4b16b2e4","tarball":"https://registry.npmjs.org/@12-apps/app-shell/-/app-shell-2.2.0.tgz","fileCount":29,"integrity":"sha512-Hs644LBfoL8FZpmDZFJ6y8Oqtzygug/HxifWYTjmZmlrMiVpKD37FeiFMyC8W3JK3xJGGlOquKk66AtfRAVDOg==","signatures":[{"sig":"MEUCIH5DKHozrCnjXY5zuokOV9hGwVymFK5LzuLuELzc73QyAiEAx/rAtVOgpfo/xvh6m+SiJVtZbJwmXncjMM5d1F3O4mw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fapp-shell@2.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":129442},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./hono":"./src/hono/index.ts","./vite":{"types":"./dist/vite/index.d.ts","default":"./dist/vite/index.js"},"./react":"./src/react/index.ts","./server":"./src/server/index.ts","./package.json":"./package.json"},"gitHead":"6ce48d91e14cc2979c18c81dc98203f5d1b921f8","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage dist","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9a108edc-7b1e-4661-b91d-329f74820c25"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/app-shell"},"_npmVersion":"12.0.2","description":"The shell three SPAs of one product share (12-18). Framework-free core (.): the typed JSON API client and its ApiError, the WCAG brand-palette correction, pt-BR formatting, the stale-chunk recovery and the consent wire. Browser half (./react: createWebApp","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@12-apps/ui":"^4.1.0","@12-apps/auth":"^1.22.0","@12-apps/observability-frontend":"^1.7.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","tsup":"^8.0.0","vite":"^6.4.1","jsdom":"^26.1.0","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","react-router-dom":"^7.1.1","@tanstack/react-query":"^5.62.0","@12-apps/eslint-config":"^1.20.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.20.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","vite":">=6.0.0","react":">=19.0.0","react-dom":">=19.0.0","react-router-dom":">=7.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"hono":{"optional":true},"vite":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/app-shell_2.2.0_1786782366561_0.9827017474482425","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@12-apps/app-shell","version":"3.0.0","license":"MIT","_id":"@12-apps/app-shell@3.0.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"8a558f736e1502b8ba714fdf11013956d8bd07ac","tarball":"https://registry.npmjs.org/@12-apps/app-shell/-/app-shell-3.0.0.tgz","fileCount":29,"integrity":"sha512-DweG778hq8fAyXL4BvlhuakhgeB2Zx/BL2RS0eFqR7k27YWTzfRS/BN99nfQ7EIEfG7t40cPAgwVBanI9YmF6w==","signatures":[{"sig":"MEYCIQCJ077PI2ccmXcCxZphT89HG2euF310L9ds4v2SHtfyngIhAI/QRz4qKpYOn/TwGTgxjP//5NVtqumbwJBE7YwmMKBm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fapp-shell@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":129452},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./hono":"./src/hono/index.ts","./vite":{"types":"./dist/vite/index.d.ts","default":"./dist/vite/index.js"},"./react":"./src/react/index.ts","./server":"./src/server/index.ts","./package.json":"./package.json"},"gitHead":"f837d4958a5b21e02d2f02a1c008ff1d1a23937a","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage dist","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9a108edc-7b1e-4661-b91d-329f74820c25"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/app-shell"},"_npmVersion":"12.0.2","description":"The shell three SPAs of one product share (12-18). Framework-free core (.): the typed JSON API client and its ApiError, the WCAG brand-palette correction, pt-BR formatting, the stale-chunk recovery and the consent wire. Browser half (./react: createWebApp","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@12-apps/ui":"^5.0.0","@12-apps/auth":"^1.22.0","@12-apps/observability-frontend":"^2.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","tsup":"^8.0.0","vite":"^6.4.1","jsdom":"^26.1.0","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","react-router-dom":"^7.1.1","@tanstack/react-query":"^5.62.0","@12-apps/eslint-config":"^1.20.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.20.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","vite":">=6.0.0","react":">=19.0.0","react-dom":">=19.0.0","react-router-dom":">=7.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"hono":{"optional":true},"vite":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/app-shell_3.0.0_1786800376657_0.8582133284034423","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"@12-apps/app-shell","version":"3.1.0","license":"MIT","_id":"@12-apps/app-shell@3.1.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"a8ab18448269f2080bae280bffc55ef52eed8081","tarball":"https://registry.npmjs.org/@12-apps/app-shell/-/app-shell-3.1.0.tgz","fileCount":29,"integrity":"sha512-jBFglkKO69M7tx1shQAEGhGVOep3mv4unRHNFXnbhZvJAt2vumI2nPg/Vz+vBiWXSIDbDvjKb+7DnpFPMge2+g==","signatures":[{"sig":"MEUCICc1AcTuGdn+j7hGmR700ht5uN4I+pPaVC+I+2T7WVpSAiEA266nlMRrty47mIclaqNiH5HwCZ3Rlcs98nrLD9JoGCs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fapp-shell@3.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":129452},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./hono":"./src/hono/index.ts","./vite":{"types":"./dist/vite/index.d.ts","default":"./dist/vite/index.js"},"./react":"./src/react/index.ts","./server":"./src/server/index.ts","./package.json":"./package.json"},"gitHead":"96eb4c415df62ceb17308a914c912abed5c35f64","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage dist","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9a108edc-7b1e-4661-b91d-329f74820c25"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/app-shell"},"_npmVersion":"12.0.2","description":"The shell three SPAs of one product share (12-18). Framework-free core (.): the typed JSON API client and its ApiError, the WCAG brand-palette correction, pt-BR formatting, the stale-chunk recovery and the consent wire. Browser half (./react: createWebApp","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@12-apps/ui":"^5.0.0","@12-apps/auth":"^1.22.0","@12-apps/observability-frontend":"^2.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","tsup":"^8.0.0","vite":"^6.4.1","jsdom":"^26.1.0","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","react-router-dom":"^7.1.1","@tanstack/react-query":"^5.62.0","@12-apps/eslint-config":"^1.20.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.20.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","vite":">=6.0.0","react":">=19.0.0","react-dom":">=19.0.0","react-router-dom":">=7.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"hono":{"optional":true},"vite":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/app-shell_3.1.0_1786805469429_0.6698592300391504","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"@12-apps/app-shell","version":"3.2.0","license":"MIT","_id":"@12-apps/app-shell@3.2.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"244b1e0ace99edae5ff7d42ebb01616bd18a735b","tarball":"https://registry.npmjs.org/@12-apps/app-shell/-/app-shell-3.2.0.tgz","fileCount":29,"integrity":"sha512-XTjaN4+FdmBDyCCl+pu3Q9+nd88FJ5hRI2XGFvrd5sAeCK6/U7b31NZDlfbbcJVKgHI7dfkcVzy5ZCO+5W8crg==","signatures":[{"sig":"MEUCIEuI7vk2fO6JElHhwkdBWARe/b0S6H5clgpXurNAhijDAiEAhdm4983pUF3Vj0FFkShJxb6Hx31O/9oHBlhBSHlAIKo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fapp-shell@3.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":134522},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./hono":"./src/hono/index.ts","./vite":{"types":"./dist/vite/index.d.ts","default":"./dist/vite/index.js"},"./react":"./src/react/index.ts","./server":"./src/server/index.ts","./package.json":"./package.json"},"gitHead":"16d52bf64913839ec0b85639a67f5950017a656a","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage dist","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9a108edc-7b1e-4661-b91d-329f74820c25"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/app-shell"},"_npmVersion":"12.0.2","description":"The shell three SPAs of one product share (12-18). Framework-free core (.): the typed JSON API client and its ApiError, the WCAG brand-palette correction, pt-BR formatting, the stale-chunk recovery and the consent wire. Browser half (./react: createWebApp","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@12-apps/ui":"^5.0.0","@12-apps/auth":"^1.22.0","@12-apps/observability-frontend":"^2.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","tsup":"^8.0.0","vite":"^6.4.1","jsdom":"^26.1.0","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","react-router-dom":"^7.1.1","@tanstack/react-query":"^5.62.0","@12-apps/eslint-config":"^1.20.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.20.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","vite":">=6.0.0","react":">=19.0.0","react-dom":">=19.0.0","react-router-dom":">=7.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"hono":{"optional":true},"vite":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/app-shell_3.2.0_1786829287653_0.7693785011535457","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"@12-apps/app-shell","version":"4.0.0","license":"MIT","_id":"@12-apps/app-shell@4.0.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"d0adf6bc53a8501eea6842440b68a76c22ae41ae","tarball":"https://registry.npmjs.org/@12-apps/app-shell/-/app-shell-4.0.0.tgz","fileCount":50,"integrity":"sha512-WUWvCBzjBW9fP7eitx9SYA0Ba5S/Oif0Eg0h412GEFpVgL04wWA0LCOLr47odIa+BQhEcW6awLwoVr75zwRnCA==","signatures":[{"sig":"MEUCIApex/EhSQwzE6WiImteF/ilDsBKTK1hVPLrY57tviQ8AiEAk5Ufrn217uIlgXEX/lhtg4uPqIyxDbs4oE4+gZLWjbc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fapp-shell@4.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":331296},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./hono":{"types":"./dist/hono/index.d.ts","default":"./dist/hono/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","default":"./dist/vite/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./server":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./package.json":"./package.json"},"gitHead":"6f2a70cdbc22449d35727763e4dbfe7ddac1f14e","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage dist","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9a108edc-7b1e-4661-b91d-329f74820c25"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/app-shell"},"_npmVersion":"12.0.2","description":"The shell three SPAs of one product share (12-18). Framework-free core (.): the typed JSON API client and its ApiError, the WCAG brand-palette correction, pt-BR formatting, the stale-chunk recovery and the consent wire. Browser half (./react: createWebApp","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@12-apps/ui":"^5.0.0","@12-apps/auth":"^1.22.0","@12-apps/observability-frontend":"^2.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","tsup":"^8.0.0","vite":"^6.4.1","jsdom":"^26.1.0","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","react-router-dom":"^7.1.1","@tanstack/react-query":"^5.62.0","@12-apps/eslint-config":"^1.20.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.20.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","vite":">=6.0.0","react":">=19.0.0","react-dom":">=19.0.0","react-router-dom":">=7.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"hono":{"optional":true},"vite":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/app-shell_4.0.0_1786839235069_0.6901060625904669","host":"s3://npm-registry-packages-npm-production"}},"4.1.0":{"name":"@12-apps/app-shell","version":"4.1.0","license":"MIT","_id":"@12-apps/app-shell@4.1.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"66c14800cce0591433ad80a679756938ce0d6705","tarball":"https://registry.npmjs.org/@12-apps/app-shell/-/app-shell-4.1.0.tgz","fileCount":50,"integrity":"sha512-1Ym3F36Bf7oxev6EB5kM7yqjXQm1pBMokLJvRoBCAalq3Jike6IfQY6Q+u1Dp+dtL0kGL5Fc56+P6Y+uvBc59w==","signatures":[{"sig":"MEQCIFmCONHJUC6cUo6aDWRQ2uAYRHQNSNex2TtegkurCNzkAiB9foKWlCmFzD+RVP7mYBvwwOczJ5kFoZ5La+LbdMa/8A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fapp-shell@4.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":335399},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./hono":{"types":"./dist/hono/index.d.ts","default":"./dist/hono/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","default":"./dist/vite/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./server":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./package.json":"./package.json"},"gitHead":"5409d34e65e1965824d6bd2a00973ac285bda75a","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage dist","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9a108edc-7b1e-4661-b91d-329f74820c25"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/app-shell"},"_npmVersion":"12.0.2","description":"The shell three SPAs of one product share (12-18). Framework-free core (.): the typed JSON API client and its ApiError, the WCAG brand-palette correction, pt-BR formatting, the stale-chunk recovery and the consent wire. Browser half (./react: createWebApp","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@12-apps/ui":"^5.2.1","@12-apps/auth":"^1.23.0","@12-apps/observability-frontend":"^2.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","tsup":"^8.0.0","vite":"^6.4.1","jsdom":"^26.1.0","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","react-router-dom":"^7.1.1","@tanstack/react-query":"^5.62.0","@12-apps/eslint-config":"^1.20.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.20.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","vite":">=6.0.0","react":">=19.0.0","react-dom":">=19.0.0","react-router-dom":">=7.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"hono":{"optional":true},"vite":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/app-shell_4.1.0_1787114263726_0.35877492335404293","host":"s3://npm-registry-packages-npm-production"}},"5.0.0":{"name":"@12-apps/app-shell","version":"5.0.0","license":"MIT","_id":"@12-apps/app-shell@5.0.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"85de2036995ee5c7447ba373cf70d8a9ce288763","tarball":"https://registry.npmjs.org/@12-apps/app-shell/-/app-shell-5.0.0.tgz","fileCount":50,"integrity":"sha512-yzHiYOl2wWrtf/JXSW0sbDPq6VhRInS8tuI3mslLP01XpSBaQBYCT259XRwNkQFwFGTWlzeH9OASKNmu2CpqsA==","signatures":[{"sig":"MEQCIFkFM1umrMNOKZF4Fjzi3JcfyFENcxnzzHzwoaeZBbkIAiAGLw+bGBiJt7VKYlIj/vWukZgShejpjjw0tI3vZbv50g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fapp-shell@5.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":335296},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./hono":{"types":"./dist/hono/index.d.ts","default":"./dist/hono/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","default":"./dist/vite/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./server":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./package.json":"./package.json"},"gitHead":"5ec9d3e845f59472088998fa033bf9d8d0e7dce3","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage dist","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9a108edc-7b1e-4661-b91d-329f74820c25"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/app-shell"},"_npmVersion":"12.0.2","description":"The shell three SPAs of one product share (12-18). Framework-free core (.): the typed JSON API client and its ApiError, the WCAG brand-palette correction, pt-BR formatting, the stale-chunk recovery and the consent wire. Browser half (./react: createWebApp","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@12-apps/ui":"^6.0.0","@12-apps/auth":"^2.0.0","@12-apps/observability-frontend":"^2.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","tsup":"^8.0.0","vite":"^6.4.1","jsdom":"^26.1.0","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","react-router-dom":"^7.1.1","@tanstack/react-query":"^5.62.0","@12-apps/eslint-config":"^1.20.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.20.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","vite":">=6.0.0","react":">=19.0.0","react-dom":">=19.0.0","react-router-dom":">=7.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"hono":{"optional":true},"vite":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/app-shell_5.0.0_1787226230022_0.7090291171582055","host":"s3://npm-registry-packages-npm-production"}},"5.0.1":{"name":"@12-apps/app-shell","version":"5.0.1","license":"MIT","_id":"@12-apps/app-shell@5.0.1","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"8a6d12015fa621a71f28b367e346b6b318111e52","tarball":"https://registry.npmjs.org/@12-apps/app-shell/-/app-shell-5.0.1.tgz","fileCount":50,"integrity":"sha512-HRTrcXNd78XU6+pJua5UsJel8XVks8l8yQjNPJNvMdpX+BuKl7XQwREag5AHAtLHAMHmllLAYVCcQ9qfrxa9qQ==","signatures":[{"sig":"MEUCIQDaGAfVclSwSMMFtesaTjmGPwf2K1bglsgHOAiMViNF0AIgLr0b5BTPyc2FzbyYfFJFiGyRnwO5CBllig+cuJ0pKpI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fapp-shell@5.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":335296},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./hono":{"types":"./dist/hono/index.d.ts","default":"./dist/hono/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","default":"./dist/vite/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./server":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./package.json":"./package.json"},"gitHead":"3c4711049bf8351685612372531c3cae1370bbbb","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage dist","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9a108edc-7b1e-4661-b91d-329f74820c25"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/app-shell"},"_npmVersion":"12.0.2","description":"The shell three SPAs of one product share (12-18). Framework-free core (.): the typed JSON API client and its ApiError, the WCAG brand-palette correction, pt-BR formatting, the stale-chunk recovery and the consent wire. Browser half (./react: createWebApp","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@12-apps/ui":"^6.1.0","@12-apps/auth":"^2.7.0","@12-apps/observability-frontend":"^2.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","tsup":"^8.0.0","vite":"^6.4.1","jsdom":"^26.1.0","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","react-router-dom":"^7.1.1","@tanstack/react-query":"^5.62.0","@12-apps/eslint-config":"^1.21.1","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.20.1","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","vite":">=6.0.0","react":">=19.0.0","react-dom":">=19.0.0","react-router-dom":">=7.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"hono":{"optional":true},"vite":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/app-shell_5.0.1_1787327346529_0.9923941603551882","host":"s3://npm-registry-packages-npm-production"}},"5.1.0":{"name":"@12-apps/app-shell","version":"5.1.0","license":"MIT","_id":"@12-apps/app-shell@5.1.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"78afb62eb2fec441bcac3581729076e0780c4962","tarball":"https://registry.npmjs.org/@12-apps/app-shell/-/app-shell-5.1.0.tgz","fileCount":52,"integrity":"sha512-puYLm0H3JlATTx45O5umhAC3yeysUQwhCMz3Eoztqa+9/kP6ct0fSnfvb+0Lwl/DugCpT0rXVIPPoeM8a5LH8Q==","signatures":[{"sig":"MEUCIQCduzmBUDCFHGkg+mblM9FQOgN5uhFAlfgl1sES1URkZgIga+1HsKfjkpDyMp31QxOXelAl/g0s51JC3xnaTpsAHoo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fapp-shell@5.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":366210},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./hono":{"types":"./dist/hono/index.d.ts","default":"./dist/hono/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","default":"./dist/vite/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./server":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./package.json":"./package.json"},"gitHead":"c202a44e593f086d5cf8e65326f0c9b4a41230b5","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage dist","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fce5bdcd-f265-4694-abaa-f74eed2d2ca9"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/app-shell"},"_npmVersion":"12.0.2","description":"The shell three SPAs of one product share (12-18). Framework-free core (.): the typed JSON API client and its ApiError, the WCAG brand-palette correction, pt-BR formatting, the stale-chunk recovery and the consent wire. Browser half (./react: createWebApp","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@12-apps/ui":"^6.2.0","@12-apps/auth":"^2.8.0","@12-apps/observability-frontend":"^2.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","tsup":"^8.0.0","vite":"^6.4.1","jsdom":"^26.1.0","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","react-router-dom":"^7.1.1","@tanstack/react-query":"^5.62.0","@12-apps/eslint-config":"^1.21.1","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.20.1","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","vite":">=6.0.0","react":">=19.0.0","react-dom":">=19.0.0","react-router-dom":">=7.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"hono":{"optional":true},"vite":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/app-shell_5.1.0_1787348924471_0.3473543002235282","host":"s3://npm-registry-packages-npm-production"}},"5.2.0":{"name":"@12-apps/app-shell","version":"5.2.0","license":"MIT","_id":"@12-apps/app-shell@5.2.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"459af230ca43c4edc6ae83bffb0c50905a9dbbf8","tarball":"https://registry.npmjs.org/@12-apps/app-shell/-/app-shell-5.2.0.tgz","fileCount":53,"integrity":"sha512-xPNvI0jxk8U27KDxgmoQ+vSdCX0HVxDb0Wt7OuwRbz8U/taYe34JeeKQlbPAboVeKu9ZOlPLnttXJOSRDiM8BQ==","signatures":[{"sig":"MEQCIDrsHCGd6rfLANeOI4/baHmO9QGSQbHMEH+V3D6Aa1gQAiAa5K4DQnp/a4Xv+0f8sBv/tPMqxxbbwClquoHwB9RR8w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fapp-shell@5.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":388338},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./hono":{"types":"./dist/hono/index.d.ts","default":"./dist/hono/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","default":"./dist/vite/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./server":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./package.json":"./package.json"},"gitHead":"93f2818501b5fdb51eb132bcf2cf3725c0486020","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage dist","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fce5bdcd-f265-4694-abaa-f74eed2d2ca9"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/app-shell"},"_npmVersion":"12.0.2","description":"The shell three SPAs of one product share (12-18). Framework-free core (.): the typed JSON API client and its ApiError, the WCAG brand-palette correction, pt-BR formatting, the stale-chunk recovery and the consent wire. Browser half (./react: createWebApp","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@12-apps/ui":"^6.3.0","@12-apps/auth":"^2.8.0","@12-apps/observability-frontend":"^2.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","tsup":"^8.0.0","vite":"^6.4.1","jsdom":"^26.1.0","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","react-router-dom":"^7.1.1","@tanstack/react-query":"^5.62.0","@12-apps/eslint-config":"^1.21.1","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.20.1","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","vite":">=6.0.0","react":">=19.0.0","react-dom":">=19.0.0","react-router-dom":">=7.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"hono":{"optional":true},"vite":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/app-shell_5.2.0_1787426188573_0.013992166811716444","host":"s3://npm-registry-packages-npm-production"}},"5.3.0":{"name":"@12-apps/app-shell","version":"5.3.0","license":"MIT","_id":"@12-apps/app-shell@5.3.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"24e1fe5d5852bb49b9bef4e999b0c9746cad6130","tarball":"https://registry.npmjs.org/@12-apps/app-shell/-/app-shell-5.3.0.tgz","fileCount":53,"integrity":"sha512-OzhaSulz9ELkAIVjD2OjLpgwb+wq+IDFdo6OGDI16nsVtK/lXSa2z3VqxK3bkna2TClSzfv7h1x9ShEJgATo5A==","signatures":[{"sig":"MEUCIHwQQ2cdPoU8iMf3Otzo7GvqpqW7VyLFBqp2LGKv4uBBAiEAyki79UDQ5PsE9ZMtNSTAZt5qOZ+kNLdy/d39IRkyPWo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fapp-shell@5.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":408012},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./hono":{"types":"./dist/hono/index.d.ts","default":"./dist/hono/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","default":"./dist/vite/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./server":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./package.json":"./package.json"},"gitHead":"00e6af3bb7da2f1e2ae5ba3d5abad2f71013a933","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage dist","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fce5bdcd-f265-4694-abaa-f74eed2d2ca9"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/app-shell"},"_npmVersion":"12.0.2","description":"The shell three SPAs of one product share (12-18). Framework-free core (.): the typed JSON API client and its ApiError, the WCAG brand-palette correction, pt-BR formatting, the stale-chunk recovery and the consent wire. Browser half (./react: createWebApp","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@12-apps/ui":"^6.8.0","@12-apps/auth":"^2.10.0","@12-apps/observability-frontend":"^2.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","tsup":"^8.0.0","vite":"^6.4.1","jsdom":"^26.1.0","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","react-router-dom":"^7.1.1","@tanstack/react-query":"^5.62.0","@12-apps/eslint-config":"^1.21.1","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.20.1","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","vite":">=6.0.0","react":">=19.0.0","react-dom":">=19.0.0","react-router-dom":">=7.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"hono":{"optional":true},"vite":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/app-shell_5.3.0_1787537586497_0.20274190145323745","host":"s3://npm-registry-packages-npm-production"}},"5.4.0":{"name":"@12-apps/app-shell","version":"5.4.0","license":"MIT","_id":"@12-apps/app-shell@5.4.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"2d5adc0bd1b452cd5fcb50acd3da8e0a0a38de24","tarball":"https://registry.npmjs.org/@12-apps/app-shell/-/app-shell-5.4.0.tgz","fileCount":63,"integrity":"sha512-d5HvB1ea+6oBXOqv4/R0EK8AF9SD70rbswFb9j/2B4k+n4Fr2K+OUiqK9jRgzW1qJs/xNKP9VVgNzWQQLl5Lvw==","signatures":[{"sig":"MEUCIE7xlU9yLj/5SmhwmAmHd5IPkoS6eEkFhqZK6ldqjMnaAiEA/hx3ZPiTYNCmF3tqTjZ16Q0aHwycFa0G0MnEch2CrgA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fapp-shell@5.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":436287},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./hono":{"types":"./dist/hono/index.d.ts","default":"./dist/hono/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","default":"./dist/vite/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./server":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./manifest":{"types":"./dist/manifest/index.d.ts","default":"./dist/manifest/index.js"},"./package.json":"./package.json","./manifest/server":{"types":"./dist/manifest/server.d.ts","default":"./dist/manifest/server.js"}},"gitHead":"7214db3f0537b1f81937a8c40470c589325ed661","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage dist","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fce5bdcd-f265-4694-abaa-f74eed2d2ca9"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/app-shell"},"_npmVersion":"12.0.2","description":"The shell three SPAs of one product share (12-18). Framework-free core (.): the typed JSON API client and its ApiError, the WCAG brand-palette correction, pt-BR formatting, the stale-chunk recovery and the consent wire. Browser half (./react: createWebApp","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@12-apps/ui":"^6.9.0","@12-apps/auth":"^2.11.0","@12-apps/observability-frontend":"^2.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","tsup":"^8.0.0","vite":"^6.4.1","jsdom":"^26.1.0","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@12-apps/wiring":"^1.12.0","@types/react-dom":"19.2.2","react-router-dom":"^7.1.1","@tanstack/react-query":"^5.62.0","@12-apps/eslint-config":"^1.21.1","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.20.1","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","vite":">=6.0.0","react":">=19.0.0","react-dom":">=19.0.0","@12-apps/wiring":">=1.9.0","react-router-dom":">=7.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"hono":{"optional":true},"vite":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"@12-apps/wiring":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/app-shell_5.4.0_1787587535460_0.43169844473231134","host":"s3://npm-registry-packages-npm-production"}},"5.5.0":{"name":"@12-apps/app-shell","version":"5.5.0","license":"MIT","_id":"@12-apps/app-shell@5.5.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"8a59e4fcfdac11aadad06ae98b9a19127d7032b6","tarball":"https://registry.npmjs.org/@12-apps/app-shell/-/app-shell-5.5.0.tgz","fileCount":63,"integrity":"sha512-T3ll2AQsx+g9RfuCUhe/IW28IzUC01NHXTzp7c14zQEFgJevhfiEpAR2M3cDh8ttMofzq7oDTCsCfoccUHODjA==","signatures":[{"sig":"MEUCIHHemntUDBT+J04tEK5T6BTaITozuRryBRvd/WK0Hy1ZAiEA1qWSjTbt+RVUZhEnTTRdMeWBIGx+6tVi6Wal9bbznrg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fapp-shell@5.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":436312},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./hono":{"types":"./dist/hono/index.d.ts","default":"./dist/hono/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","default":"./dist/vite/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./server":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./manifest":{"types":"./dist/manifest/index.d.ts","default":"./dist/manifest/index.js"},"./package.json":"./package.json","./manifest/server":{"types":"./dist/manifest/server.d.ts","default":"./dist/manifest/server.js"}},"gitHead":"4714bd10c901bcc51544843d5d6091cc1509e649","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage dist","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fce5bdcd-f265-4694-abaa-f74eed2d2ca9"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/app-shell"},"_npmVersion":"12.0.2","description":"The shell three SPAs of one product share (12-18). Framework-free core (.): the typed JSON API client and its ApiError, the WCAG brand-palette correction, pt-BR formatting, the stale-chunk recovery and the consent wire. Browser half (./react: createWebApp","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"@12-apps/ui":"^6.10.0","@12-apps/auth":"^2.14.0","@12-apps/observability-frontend":"^2.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","tsup":"^8.0.0","vite":"^6.4.1","jsdom":"^26.1.0","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@12-apps/wiring":"^1.14.0","@types/react-dom":"19.2.2","react-router-dom":"^7.1.1","@tanstack/react-query":"^5.62.0","@12-apps/eslint-config":"^1.22.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.21.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","vite":">=6.0.0","react":">=19.0.0","react-dom":">=19.0.0","@12-apps/wiring":">=1.9.0","react-router-dom":">=7.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"hono":{"optional":true},"vite":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"@12-apps/wiring":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/app-shell_5.5.0_1787617934395_0.6435431867913937","host":"s3://npm-registry-packages-npm-production"}},"5.5.1":{"name":"@12-apps/app-shell","version":"5.5.1","license":"MIT","_id":"@12-apps/app-shell@5.5.1","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"de20759dd9714a7c3b8b891b83d8b77ec83d2fa3","tarball":"https://registry.npmjs.org/@12-apps/app-shell/-/app-shell-5.5.1.tgz","fileCount":66,"integrity":"sha512-fohBCeAEy8WFDwTJx6lwO0yiTWUzpzot36fFbG21hxh/L04oHtKJfORGB1fQzT9T0+5p87CSbqPp0JRB68D93w==","signatures":[{"sig":"MEYCIQD/R52pr2GzlNCkgc4apEWT+bhBTb849yYPMerJ7YlSLQIhAMnNda6gi4/rbdX2uq1On0qLzyL6WXSe7Jlihk/aVTuc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fapp-shell@5.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":441847},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./hono":{"types":"./dist/hono/index.d.ts","default":"./dist/hono/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","default":"./dist/vite/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./server":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./manifest":{"types":"./dist/manifest/index.d.ts","default":"./dist/manifest/index.js"},"./package.json":"./package.json","./manifest/server":{"types":"./dist/manifest/server.d.ts","default":"./dist/manifest/server.js"}},"gitHead":"d3f513e6fa2c83a8332759255767ba283d0acc36","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage dist","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fce5bdcd-f265-4694-abaa-f74eed2d2ca9"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/app-shell"},"_npmVersion":"12.0.2","description":"The shell three SPAs of one product share (12-18). Framework-free core (.): the typed JSON API client and its ApiError, the WCAG brand-palette correction, pt-BR formatting, the stale-chunk recovery and the consent wire. Browser half (./react: createWebApp","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"@12-apps/ui":"^6.11.1","@12-apps/auth":"^2.15.0","@12-apps/observability-frontend":"^2.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","tsup":"^8.0.0","vite":"^6.4.1","jsdom":"^26.1.0","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@12-apps/wiring":"^1.14.0","@types/react-dom":"19.2.2","react-router-dom":"^7.1.1","@tanstack/react-query":"^5.62.0","@12-apps/eslint-config":"^1.22.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.21.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","vite":">=6.0.0","react":">=19.0.0","react-dom":">=19.0.0","@12-apps/wiring":">=1.9.0","react-router-dom":">=7.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"hono":{"optional":true},"vite":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"@12-apps/wiring":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/app-shell_5.5.1_1787685801538_0.19385119305070297","host":"s3://npm-registry-packages-npm-production"}},"5.6.0":{"name":"@12-apps/app-shell","version":"5.6.0","license":"MIT","_id":"@12-apps/app-shell@5.6.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"b8e1812ef630df3c5af51aa451eed54db4ec92fd","tarball":"https://registry.npmjs.org/@12-apps/app-shell/-/app-shell-5.6.0.tgz","fileCount":66,"integrity":"sha512-duffk2cukr2CPzWAqHYrdHoltUpyL1lic3OkXiKiKavJ0/7soZy4Jde4qYhPCL27a3MjAHXV4Qo4Yg60qXAmkw==","signatures":[{"sig":"MEYCIQDs2Ggi9D3KkmwatqRA8Fh1KlagUSU7jHRI1+q/0kHlhQIhAODU/HtdU6WtPCq5dT4+kQpLRSCYqB38VQ5fmbXmFRpL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fapp-shell@5.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":452716},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./hono":{"types":"./dist/hono/index.d.ts","default":"./dist/hono/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","default":"./dist/vite/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./server":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./manifest":{"types":"./dist/manifest/index.d.ts","default":"./dist/manifest/index.js"},"./package.json":"./package.json","./manifest/server":{"types":"./dist/manifest/server.d.ts","default":"./dist/manifest/server.js"}},"gitHead":"3c1f93db03791b282007a819ca803f65db18fcd2","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage dist","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fce5bdcd-f265-4694-abaa-f74eed2d2ca9"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/app-shell"},"_npmVersion":"12.0.2","description":"The shell three SPAs of one product share (12-18). Framework-free core (.): the typed JSON API client and its ApiError, the WCAG brand-palette correction, pt-BR formatting, the stale-chunk recovery and the consent wire. Browser half (./react: createWebApp","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"@12-apps/ui":"^6.11.1","@12-apps/auth":"^2.15.0","@12-apps/observability-frontend":"^2.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","tsup":"^8.0.0","vite":"^6.4.1","jsdom":"^26.1.0","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@12-apps/wiring":"^1.14.0","@types/react-dom":"19.2.2","react-router-dom":"^7.1.1","@tanstack/react-query":"^5.62.0","@12-apps/eslint-config":"^1.22.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.21.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","vite":">=6.0.0","react":">=19.0.0","react-dom":">=19.0.0","@12-apps/wiring":">=1.9.0","react-router-dom":">=7.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"hono":{"optional":true},"vite":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"@12-apps/wiring":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/app-shell_5.6.0_1787696594097_0.706928117291806","host":"s3://npm-registry-packages-npm-production"}},"5.7.0":{"name":"@12-apps/app-shell","version":"5.7.0","type":"module","sideEffects":false,"description":"The shell three SPAs of one product share (12-18). Framework-free core (.): the typed JSON API client and its ApiError, the WCAG brand-palette correction, pt-BR formatting, the stale-chunk recovery and the consent wire. Browser half (./react: createWebApp","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./server":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./hono":{"types":"./dist/hono/index.d.ts","default":"./dist/hono/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","default":"./dist/vite/index.js"},"./manifest":{"types":"./dist/manifest/index.d.ts","default":"./dist/manifest/index.js"},"./manifest/server":{"types":"./dist/manifest/server.d.ts","default":"./dist/manifest/server.js"},"./package.json":"./package.json"},"scripts":{"clean":"rm -rf node_modules coverage dist","build":"rm -rf dist && tsup","test":"node ../../scripts/vitest-with-teardown.mjs run","test:watch":"vitest watch","lint":"eslint src --max-warnings 0","check-types":"tsc --noEmit","typecheck":"tsc --noEmit"},"dependencies":{"@12-apps/auth":"^2.16.0","@12-apps/observability-frontend":"^2.3.0","@12-apps/ui":"^6.11.1"},"peerDependencies":{"@12-apps/wiring":">=1.9.0","@tanstack/react-query":">=5.0.0","hono":">=4.0.0","react":">=19.0.0","react-dom":">=19.0.0","react-router-dom":">=7.0.0","vite":">=6.0.0"},"peerDependenciesMeta":{"@12-apps/wiring":{"optional":true},"@tanstack/react-query":{"optional":true},"hono":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"react-router-dom":{"optional":true},"vite":{"optional":true}},"devDependencies":{"@12-apps/eslint-config":"^1.22.0","@12-apps/typescript-config":"^1.21.0","@12-apps/wiring":"^1.15.0","@tanstack/react-query":"^5.62.0","@testing-library/react":"^16.1.0","@types/react":"19.2.2","@types/react-dom":"19.2.2","eslint":"^9.39.1","eslint-plugin-test-flakiness":"^1.4.0","hono":"^4.6.0","jsdom":"^26.1.0","react":"^19.2.0","react-dom":"^19.2.0","react-router-dom":"^7.1.1","tsup":"^8.0.0","typescript":"^5.9.2","vite":"^6.4.1","vitest":"^3.2.4"},"engines":{"node":">=22.0.0"},"license":"MIT","publishConfig":{"registry":"https://registry.npmjs.org","access":"public"},"repository":{"type":"git","url":"git+https://github.com/12-apps/shared-packages.git","directory":"packages/app-shell"},"gitHead":"2c692b90ed09938c60b847aecff462546b425339","_id":"@12-apps/app-shell@5.7.0","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"homepage":"https://github.com/12-apps/shared-packages#readme","_nodeVersion":"24.19.0","_npmVersion":"12.0.2","dist":{"integrity":"sha512-UMlZ8GP1xkZwK8s2UdsmQ09SKjKyLakYrfTRWi2JkfDU5LL7zPQ3gsc9YJcmv8gR0hHuvkdFluImMUIOKpjdVA==","shasum":"a93e2689f68aa74d0d30cea7970f7d6383674178","tarball":"https://registry.npmjs.org/@12-apps/app-shell/-/app-shell-5.7.0.tgz","fileCount":69,"unpackedSize":482689,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fapp-shell@5.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBEcFwUJ1FgvNMluozT0CUoUiU+XduDj0Jv2I2vo56u3AiARqY2WBhe/Z9QOGPDIYCSbAVcoBku2I+cTUKdybgxDeQ=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fce5bdcd-f265-4694-abaa-f74eed2d2ca9"}},"directories":{},"maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/app-shell_5.7.0_1787715408543_0.5394394198126113"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-13T08:41:02.841Z","modified":"2026-08-26T03:36:49.069Z","1.0.0":"2026-08-13T08:41:03.239Z","2.0.0":"2026-08-15T00:13:48.452Z","2.1.0":"2026-08-15T03:57:07.990Z","2.2.0":"2026-08-15T08:26:06.737Z","3.0.0":"2026-08-15T13:26:16.815Z","3.1.0":"2026-08-15T14:51:09.570Z","3.2.0":"2026-08-15T21:28:07.799Z","4.0.0":"2026-08-16T00:13:55.256Z","4.1.0":"2026-08-19T04:37:43.861Z","5.0.0":"2026-08-20T11:43:50.161Z","5.0.1":"2026-08-21T15:49:06.670Z","5.1.0":"2026-08-21T21:48:44.623Z","5.2.0":"2026-08-22T19:16:28.709Z","5.3.0":"2026-08-24T02:13:06.666Z","5.4.0":"2026-08-24T16:05:35.672Z","5.5.0":"2026-08-25T00:32:14.578Z","5.5.1":"2026-08-25T19:23:21.701Z","5.6.0":"2026-08-25T22:23:14.286Z","5.7.0":"2026-08-26T03:36:48.692Z"},"bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"license":"MIT","homepage":"https://github.com/12-apps/shared-packages#readme","repository":{"type":"git","url":"git+https://github.com/12-apps/shared-packages.git","directory":"packages/app-shell"},"description":"The shell three SPAs of one product share (12-18). Framework-free core (.): the typed JSON API client and its ApiError, the WCAG brand-palette correction, pt-BR formatting, the stale-chunk recovery and the consent wire. Browser half (./react: createWebApp","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"readme":"# @12-apps/app-shell\n\nThe shell several SPAs of one product share, as an installable package: the typed\nAPI client and its `ApiError`, the MUI theme built from a tenant's brand seed, the\nsession, the route error boundary, route-level code splitting that survives a\ndeploy, the terms/privacy consent gate — and the small backend surface that gate\nneeds.\n\n```bash\npnpm add @12-apps/app-shell\n```\n\nAdoption contract, the required knobs and the sharp edges: **[ADOPTING.md](./ADOPTING.md)**.\n\n## Why it is a package\n\nThree SPAs cannot share nothing, so they share a private package — and a private\npackage is one nobody else can install. This one was 5218 LOC of exactly the things\nevery multi-tenant product needs in a browser, and its subsystems have been going\nout to their own packages one at a time (`@12-apps/realtime`,\n`@12-apps/notifications`, `@12-apps/observability-frontend`, `@12-apps/auth`). What\nremained is the shell itself, and it is what all of them mount inside.\n\n## The two halves\n\n```ts\nconst shell        = createWebAppShell({ /* config */ });   // browser\nconst { routes }   = createApiAppShell({ /* config */ });    // backend\n```\n\n`shell.Provider` around your routes is the whole browser wiring — the route error\nboundary is **inside** it, so `onCrash` is reached without you mounting anything.\nPlace a second boundary below your own chrome if you want a crashed page to keep the\nsidebar; the nearest one catches, so nothing doubles.\n\n| Subpath | What is in it |\n|---|---|\n| `.` | Framework-free: `apiFetch` / `ApiError`, `restResult`, `joinApiPath` / `stripTrailingSlashes`, the WCAG brand-palette correction, pt-BR money and duration formatters, the stale-chunk recovery, the consent wire. |\n| `./react` | `createWebAppShell` — the provider tower (boundary included), the theme, `lazyRoute`, the consent gate, `useDeviceDetection`, `useServerDataViews`, and the collapsible nav's persisted state (`useCollapsedSections`, `useSidebarRail`). |\n| `./server` | `createApiAppShell` — the consent status/accept descriptors, framework-neutral. |\n| `./hono` | The forty-line adapter. `hono` is an optional peer. |\n| `./vite` | `appShellOptimizeDeps()` — the dependency pre-bundling preset. Compiled, and it has to be. |\n\n## Two clients, and the split is by CALLER\n\n`apiFetch` **throws** `ApiError` on a non-2xx. `restResult` **returns**\n`{ ok: false, error, fieldErrors?, status? }`. Both speak the `{ data }` /\n`{ error, issues }` envelope every `createApi*` package answers in, so a screen\ncan mix them without a second adapter.\n\nReach for `apiFetch` for reads and for anything whose failure is somebody else's\nto handle — a query, a prefetch, a background refresh. Reach for `restResult`\nfor a write a human is waiting on: a submit has two ordinary outcomes, one of\nwhich is \"the server refused it and named the fields\", so writing that as a\nthrow costs every handler a `try`/`catch` whose catch is the main path.\n\n`status` is deliberately ABSENT on a network failure. That is the only thing\nseparating \"the server said no\" from \"nothing answered\" — one is a message to\nshow, the other is a retry — and it is what lets a concurrent surface tell a 403\n(\"not yours\", say so beside the button) from a 409 (\"somebody was faster\",\nrefresh).\n\n## `useServerDataViews` — the URL is the query\n\nA `DataViewsGrid` in server mode filters and sorts nothing itself: it EMITS a\n`DataViewQuery` and the host fetches. This hook is the router-driven answer —\nit maps that query into search params and replaces them, and the page's query\nhook, keyed on those params, re-fetches. Keeping the state in the URL is most of\nwhat separates an admin list somebody can work in from one they fight: it makes\na filtered view linkable, reloadable and back-button-able.\n\n```ts\nconst server = useServerDataViews({\n  totalCount, page, pageSize,\n  toParams: (query) => ({ q: query.search || undefined, type: query.filters.type }),\n});\n```\n\nTwo behaviours are load-bearing and are pinned by cases rather than left to\ncomments:\n\n- **Only free text debounces.** A filter chip or a page number leaves the search\n  unchanged and applies synchronously; a click that waited 250ms feels broken.\n- **It merges against the LIVE URL**, not the router's functional snapshot. A\n  debounced search commits from a timer scheduled before an interleaving write\n  by another owner of the URL (a row click writing `?view=`), and the router's\n  snapshot can lag it — so the row selection would vanish a moment after the\n  operator made it.\n\nThe basename is read from the ROUTER (`useHref('/')`), not from the bundler's\nconfigured base. Those are two sources for one fact that agree only while they\nare configured identically, and reading the bundler's would make the module\nunloadable outside it.\n\n## Three things worth knowing before you read the code\n\n**`ApiError` is load-bearing for another published package.**\n`@12-apps/entitlements`' upsell channel decides whether a rejection is a plan\ndenial by reading `status` and `body` off one of these. The three fields are pinned\nby a test for that reason.\n\n**Nothing here reports success it cannot back.** The consent endpoint propagates a\nfailed write as a 500 rather than answering 204, because a 204 over a failed write\ntells the user they accepted while every guard keeps refusing them. `onCrash`,\n`isCurrent`, `consent` and `brand.name` are required rather than defaulted, because\neach of their plausible defaults fails silently in exactly the direction nobody\nchecks — and the boundary `onCrash` is reported from is mounted rather than\ndocumented, for the same reason.\n\n**A colour a tenant TYPED is not a colour you can paint.** A brand hex is chosen to\nlook good on a sign, not to be legible as 14px text on a white card: one real seeded\ntenant's `#7ED957` renders its prices at 1.76:1 against a 4.5:1 floor. The palette\nkeeps the hue and moves only the lightness, so the tenant recognises their colour and\ncannot pick an unreadable one.\n\n## The consent story, in one paragraph\n\n`POST /consent/terms` could always FIX a user whose acceptance had gone stale.\nNothing could TELL them, so nobody ever called it: bumping the terms version turned\nevery previously-consented user into a pending one silently — still signed in,\navatar and cart intact — and the first thing they heard was a bare\n`401 {\"error\":\"Unauthorized\"}` at the payment step, with a retry that could never\nsucceed. `GET /consent/status` is the missing half and the gate is what renders it,\nwhich is why both halves are in one package: the two ends agreeing on a path is the\nwhole feature.\n\n## Tests\n\n```bash\npnpm test          # the package's own suites\n```\n\nThe consumer proof lives in `harness/` at the repo root: a page driving the real\n`createWebAppShell` against a real `createApiAppShell` mount, both installed from\npacked tarballs.\n","readmeFilename":"README.md"}