{"_id":"@affectively/aeon-pages-runtime","_rev":"11-284159ad40ef4faaf7f94f7705f4aa55","name":"@affectively/aeon-pages-runtime","dist-tags":{"latest":"0.13.0"},"versions":{"0.1.0":{"name":"@affectively/aeon-pages-runtime","version":"0.1.0","keywords":["aeon","pages","framework","collaborative","bun","cloudflare"],"license":"MIT","_id":"@affectively/aeon-pages-runtime@0.1.0","maintainers":[{"name":"buley","email":"buley@outlook.com"}],"homepage":"https://github.com/affectively/aeon-pages#readme","bugs":{"url":"https://github.com/affectively/aeon-pages/issues"},"dist":{"shasum":"549e1ee3a6813cf0ed6324426a3ce1c7f6dba4a8","tarball":"https://registry.npmjs.org/@affectively/aeon-pages-runtime/-/aeon-pages-runtime-0.1.0.tgz","fileCount":24,"integrity":"sha512-O/EPYlaIteOiJyc11UCFmIW9DIg8OIEwD8ldscGDsV1nrV+TOCh4fNDDyLgJ+whA3b0YC1IsEqdoEIsJEKEuTA==","signatures":[{"sig":"MEQCIANPPodJelETYf41xE/ojB3vRXFxVxg+ZOsPfSt1BSllAiA/MIhlC98ifJaWA5xGvfCkOX6nE7R9+e+aY7dmYIuopg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":796081},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./router":{"types":"./dist/router/index.d.ts","import":"./dist/router/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"a22565decbb6d6dc41924bbe77123c631e38b171","scripts":{"dev":"bun --watch ./src/index.ts","test":"bun test","build":"bun build ./src/index.ts ./src/server.ts ./src/router/index.ts --outdir ./dist --target bun && tsc --declaration --emitDeclarationOnly","prepublishOnly":"bun run build"},"_npmUser":{"name":"buley","email":"buley@outlook.com"},"deprecated":"This package is deprecated and no longer supported. Do not use.","repository":{"url":"git+https://github.com/affectively/aeon-pages.git","type":"git"},"_npmVersion":"11.8.0","description":"Bun/Cloudflare runtime for @affectively/aeon-pages","directories":{},"_nodeVersion":"25.5.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.0","react":"^19.0.0","@types/bun":"latest","typescript":"^5.7.0","@types/react":"^19.0.0"},"peerDependencies":{"bun":">=1.0.0","zod":">=3.0.0","react":">=18.0.0","@affectively/aeon":">=0.1.0"},"peerDependenciesMeta":{"@affectively/aeon":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/aeon-pages-runtime_0.1.0_1770097250177_0.5962719700472037","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@affectively/aeon-pages-runtime","version":"0.3.0","keywords":["aeon","pages","framework","collaborative","bun","cloudflare"],"license":"MIT","_id":"@affectively/aeon-pages-runtime@0.3.0","maintainers":[{"name":"buley","email":"buley@outlook.com"}],"homepage":"https://github.com/affectively/aeon-pages#readme","bugs":{"url":"https://github.com/affectively/aeon-pages/issues"},"dist":{"shasum":"4b29b01d28367075e8c1a73211b0724e00817b6b","tarball":"https://registry.npmjs.org/@affectively/aeon-pages-runtime/-/aeon-pages-runtime-0.3.0.tgz","fileCount":38,"integrity":"sha512-YU1DEt/D2IVdwRINP4lqc3lUTmw+iGyEb6Q5a41icXvljSWZ1J8gKtPSC/Ec8NQJhdN7SKYd/GtT+PXE1W655w==","signatures":[{"sig":"MEUCIAQkROW4fEjCzeeF94AQUxnrlruHketB/zoKaOzucZdNAiEAzEk/km7KdyPdhFLgAAD0/qKp5GXR1sGmK0h+rgx8sVU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1002849},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./router":{"types":"./dist/router/index.d.ts","import":"./dist/router/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"f1fde8a7c125a4ead2a8c1f9635736c74f3a44da","scripts":{"dev":"bun --watch ./src/index.ts","tail":"wrangler tail","test":"bun test","build":"bun build ./src/index.ts ./src/server.ts ./src/router/index.ts --outdir ./dist --target bun && tsc --declaration --emitDeclarationOnly","deploy":"wrangler deploy","db:create":"wrangler d1 create aeon-pages","db:migrate":"wrangler d1 execute aeon-pages --file=./schema.sql","dev:worker":"wrangler dev","deploy:staging":"wrangler deploy --env staging","prepublishOnly":"bun run build","db:migrate:local":"wrangler d1 execute aeon-pages --local --file=./schema.sql"},"_npmUser":{"name":"buley","email":"buley@outlook.com"},"deprecated":"This package is deprecated and no longer supported. Do not use.","repository":{"url":"git+https://github.com/affectively/aeon-pages.git","type":"git"},"_npmVersion":"11.8.0","description":"Bun/Cloudflare runtime for @affectively/aeon-pages","directories":{},"_nodeVersion":"25.5.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.0","react":"^19.0.0","@types/bun":"latest","typescript":"^5.7.0","@types/react":"^19.0.0"},"peerDependencies":{"bun":">=1.0.0","zod":">=3.0.0","react":">=18.0.0","@affectively/aeon":">=0.1.0"},"peerDependenciesMeta":{"@affectively/aeon":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/aeon-pages-runtime_0.3.0_1770493581299_0.22336689686258016","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@affectively/aeon-pages-runtime","version":"0.3.1","keywords":["aeon","pages","framework","collaborative","bun","cloudflare"],"license":"MIT","_id":"@affectively/aeon-pages-runtime@0.3.1","maintainers":[{"name":"buley","email":"buley@outlook.com"}],"homepage":"https://github.com/affectively/aeon-pages#readme","bugs":{"url":"https://github.com/affectively/aeon-pages/issues"},"dist":{"shasum":"0683dc5f32d97ac908106bbe39dd01b523787e11","tarball":"https://registry.npmjs.org/@affectively/aeon-pages-runtime/-/aeon-pages-runtime-0.3.1.tgz","fileCount":38,"integrity":"sha512-a/S/U5VgSZE9u2wqKD5Zzrd7veLPXriDKCc4qrv7kIIiP/087ZVSlp3ebsXhSgxmF1oasDXlOWxhwK6tDOTemQ==","signatures":[{"sig":"MEUCIFthE+e8/tSeVxEzU8qtJFEaZl8JrQWya1nBk40OJvwRAiEA+0DzAZEh1wpQf7B74PVZCIu/CxpNZFZAGxpJdS6n+h4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1003480},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./router":{"types":"./dist/router/index.d.ts","import":"./dist/router/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"617d897abf67359e65e8930ff58da4fa4e2a264b","scripts":{"dev":"bun --watch ./src/index.ts","tail":"wrangler tail","test":"bun test","build":"bun build ./src/index.ts ./src/server.ts ./src/router/index.ts --outdir ./dist --target bun && tsc --declaration --emitDeclarationOnly","deploy":"wrangler deploy","db:create":"wrangler d1 create aeon-pages","db:migrate":"wrangler d1 execute aeon-pages --file=./schema.sql","dev:worker":"wrangler dev","deploy:staging":"wrangler deploy --env staging","prepublishOnly":"bun run build","db:migrate:local":"wrangler d1 execute aeon-pages --local --file=./schema.sql"},"_npmUser":{"name":"buley","email":"buley@outlook.com"},"deprecated":"This package is deprecated and no longer supported. Do not use.","repository":{"url":"git+https://github.com/affectively/aeon-pages.git","type":"git"},"_npmVersion":"11.8.0","description":"Bun/Cloudflare runtime for @affectively/aeon-pages","directories":{},"_nodeVersion":"25.5.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.0","react":"^19.0.0","@types/bun":"latest","typescript":"^5.7.0","@types/react":"^19.0.0"},"peerDependencies":{"bun":">=1.0.0","zod":">=3.0.0","react":">=18.0.0","@affectively/aeon":">=0.1.0"},"peerDependenciesMeta":{"@affectively/aeon":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/aeon-pages-runtime_0.3.1_1770494046056_0.23756534028637266","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@affectively/aeon-pages-runtime","version":"0.5.0","keywords":["aeon","pages","framework","collaborative","bun","cloudflare"],"license":"MIT","_id":"@affectively/aeon-pages-runtime@0.5.0","maintainers":[{"name":"buley","email":"buley@outlook.com"}],"homepage":"https://github.com/affectively/aeon-pages#readme","bugs":{"url":"https://github.com/affectively/aeon-pages/issues"},"dist":{"shasum":"5b74ebbd3a6e0dc0f27bcb7000114e294b4314ea","tarball":"https://registry.npmjs.org/@affectively/aeon-pages-runtime/-/aeon-pages-runtime-0.5.0.tgz","fileCount":60,"integrity":"sha512-p0pnmE1LTyM/jqhLBvYHF8+WrHZKdVI6fQL9XGKnWTyk/38LwH9gO+XDF6CEqw7U9TzDMPrLvMml9OJNuqUfSA==","signatures":[{"sig":"MEUCIDFhnYoLdPxPcG08rwt//h7k+hyD5a+vn1uKbnRWL5XbAiEAvJHR0uRSzOgvRgcflJuzuNJaRj8mm6uJqQvM8YXzJKg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1427359},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./router":{"types":"./dist/router/index.d.ts","import":"./dist/router/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"51bf96c6324fa55d8e53adf2be31ad25e9db3608","scripts":{"dev":"bun --watch ./src/index.ts","tail":"wrangler tail","test":"bun test","build":"bun run build.ts && tsc --declaration --emitDeclarationOnly","deploy":"wrangler deploy","db:create":"wrangler d1 create aeon-pages","db:migrate":"wrangler d1 execute aeon-pages --file=./schema.sql","dev:worker":"wrangler dev","deploy:staging":"wrangler deploy --env staging","prepublishOnly":"bun run build","db:migrate:local":"wrangler d1 execute aeon-pages --local --file=./schema.sql"},"_npmUser":{"name":"buley","email":"buley@outlook.com"},"deprecated":"This package is deprecated and no longer supported. Do not use.","repository":{"url":"git+https://github.com/affectively/aeon-pages.git","type":"git"},"_npmVersion":"11.8.0","description":"Bun/Cloudflare runtime for @affectively/aeon-pages","directories":{},"_nodeVersion":"25.5.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.0","react":"^19.0.0","@types/bun":"latest","typescript":"^5.7.0","@types/react":"^19.0.0"},"peerDependencies":{"bun":">=1.0.0","zod":">=3.0.0","react":">=18.0.0","@affectively/aeon":">=0.1.0"},"peerDependenciesMeta":{"@affectively/aeon":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/aeon-pages-runtime_0.5.0_1770526383975_0.17242999473673382","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@affectively/aeon-pages-runtime","version":"0.5.1","keywords":["aeon","pages","framework","collaborative","bun","cloudflare"],"license":"MIT","_id":"@affectively/aeon-pages-runtime@0.5.1","maintainers":[{"name":"buley","email":"buley@outlook.com"}],"homepage":"https://github.com/affectively/aeon-pages#readme","bugs":{"url":"https://github.com/affectively/aeon-pages/issues"},"dist":{"shasum":"05d270211b9399927c0cbe276dcd45fc8ba4e1c9","tarball":"https://registry.npmjs.org/@affectively/aeon-pages-runtime/-/aeon-pages-runtime-0.5.1.tgz","fileCount":60,"integrity":"sha512-lohId5aC/a5a6s+DBupxTrH4hc0iTvDVyPgDxk6oRETBfdoQtXiO9G4W6g0aSzILCvLojjrmrA4KIY12p/sLNw==","signatures":[{"sig":"MEUCIQCT95H7/Tuvl2hO/bH7kuPXOEWrk8aNzwVwBb5zbusJwQIgEsDSneVX62u+tjC8o1lqDpPdnkLhv8jfQxk+SFaIwEI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1427359},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./router":{"types":"./dist/router/index.d.ts","import":"./dist/router/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"51bf96c6324fa55d8e53adf2be31ad25e9db3608","scripts":{"dev":"bun --watch ./src/index.ts","tail":"wrangler tail","test":"bun test","build":"bun run build.ts && tsc --declaration --emitDeclarationOnly","deploy":"wrangler deploy","db:create":"wrangler d1 create aeon-pages","db:migrate":"wrangler d1 execute aeon-pages --file=./schema.sql","dev:worker":"wrangler dev","deploy:staging":"wrangler deploy --env staging","prepublishOnly":"bun run build","db:migrate:local":"wrangler d1 execute aeon-pages --local --file=./schema.sql"},"_npmUser":{"name":"buley","email":"buley@outlook.com"},"deprecated":"This package is deprecated and no longer supported. Do not use.","repository":{"url":"git+https://github.com/affectively/aeon-pages.git","type":"git"},"_npmVersion":"11.8.0","description":"Bun/Cloudflare runtime for @affectively/aeon-pages","directories":{},"_nodeVersion":"25.5.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.0","react":"^19.0.0","@types/bun":"latest","typescript":"^5.7.0","@types/react":"^19.0.0"},"peerDependencies":{"bun":">=1.0.0","zod":">=3.0.0","react":">=18.0.0","@affectively/aeon":">=0.1.0"},"peerDependenciesMeta":{"@affectively/aeon":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/aeon-pages-runtime_0.5.1_1770526588128_0.2722389836312411","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@affectively/aeon-pages-runtime","version":"0.5.2","keywords":["aeon","pages","framework","collaborative","bun","cloudflare"],"license":"MIT","_id":"@affectively/aeon-pages-runtime@0.5.2","maintainers":[{"name":"buley","email":"buley@outlook.com"}],"homepage":"https://github.com/affectively/aeon-pages#readme","bugs":{"url":"https://github.com/affectively/aeon-pages/issues"},"dist":{"shasum":"d1305a3d40121c1f518fc89042988e8d1114c8fb","tarball":"https://registry.npmjs.org/@affectively/aeon-pages-runtime/-/aeon-pages-runtime-0.5.2.tgz","fileCount":63,"integrity":"sha512-wbKCWpGCi8eO8O6cfCuCEHlEzd0M1owCX+UbrtYLO0g5Qi5JFCIekZifEzWWwAeMA+e3U7W43KESuJwHDMsbPQ==","signatures":[{"sig":"MEQCIAP9bRqp0m4SM+C9wlprYYkoTFlok4yvZ3KuiLNGy3u8AiBxf0jEJG9PzddY/s+DA2kDSNlpHZO7NvNmPsc6bxBzgg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1588896},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./router":{"types":"./dist/router/index.d.ts","import":"./dist/router/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"51bf96c6324fa55d8e53adf2be31ad25e9db3608","scripts":{"dev":"bun --watch ./src/index.ts","tail":"wrangler tail","test":"bun test","build":"bun run build.ts && tsc --declaration --emitDeclarationOnly","deploy":"wrangler deploy","db:create":"wrangler d1 create aeon-pages","db:migrate":"wrangler d1 execute aeon-pages --file=./schema.sql","dev:worker":"wrangler dev","deploy:staging":"wrangler deploy --env staging","prepublishOnly":"bun run build","db:migrate:local":"wrangler d1 execute aeon-pages --local --file=./schema.sql"},"_npmUser":{"name":"buley","email":"buley@outlook.com"},"deprecated":"This package is deprecated and no longer supported. Do not use.","repository":{"url":"git+https://github.com/affectively/aeon-pages.git","type":"git"},"_npmVersion":"11.8.0","description":"Bun/Cloudflare runtime for @affectively/aeon-pages","directories":{},"_nodeVersion":"25.5.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.0","react":"^19.0.0","@types/bun":"latest","typescript":"^5.7.0","@types/react":"^19.0.0"},"peerDependencies":{"bun":">=1.0.0","zod":">=3.0.0","react":">=18.0.0","@affectively/aeon":">=0.1.0"},"peerDependenciesMeta":{"@affectively/aeon":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/aeon-pages-runtime_0.5.2_1770527739537_0.4037900534048058","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@affectively/aeon-pages-runtime","version":"0.7.0","keywords":["aeon","pages","framework","collaborative","bun","cloudflare"],"license":"MIT","_id":"@affectively/aeon-pages-runtime@0.7.0","maintainers":[{"name":"buley","email":"buley@outlook.com"}],"homepage":"https://github.com/affectively/aeon-pages#readme","bugs":{"url":"https://github.com/affectively/aeon-pages/issues"},"dist":{"shasum":"78945dba0ae0961deb4b123afd357c428c946f36","tarball":"https://registry.npmjs.org/@affectively/aeon-pages-runtime/-/aeon-pages-runtime-0.7.0.tgz","fileCount":69,"integrity":"sha512-ajDUVCiVsSau35nCD8rMdKLEJekUbp5+Y8vRqG67lVjv3VYXRRNOu/Y0U6vNDG9QrntqkEPHbR8a97kwajFFiw==","signatures":[{"sig":"MEYCIQCL+BT5vxTz+FILlLGJBEROGFg/WJhJnL2YomKCm8vs0QIhAM68NGEBM1momZVWHsgGj0NmnfsU7qoOJuwV+cTaOjU/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1805407},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./router":{"types":"./dist/router/index.d.ts","import":"./dist/router/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"9a567985191e4a1dc6463f016a7fa03cd9f3c3f9","scripts":{"dev":"bun --watch ./src/index.ts","tail":"wrangler tail","test":"bun test","build":"bun run build.ts && tsc --declaration --emitDeclarationOnly","deploy":"wrangler deploy","db:create":"wrangler d1 create aeon-pages","db:migrate":"wrangler d1 execute aeon-pages --file=./schema.sql","dev:worker":"wrangler dev","deploy:staging":"wrangler deploy --env staging","prepublishOnly":"bun run build","db:migrate:local":"wrangler d1 execute aeon-pages --local --file=./schema.sql"},"_npmUser":{"name":"buley","email":"buley@outlook.com"},"deprecated":"This package is deprecated and no longer supported. Do not use.","repository":{"url":"git+https://github.com/affectively/aeon-pages.git","type":"git"},"_npmVersion":"11.8.0","description":"Bun/Cloudflare runtime for @affectively/aeon-pages","directories":{},"_nodeVersion":"25.5.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.0","react":"^19.0.0","@types/bun":"latest","typescript":"^5.7.0","@types/react":"^19.0.0"},"peerDependencies":{"bun":">=1.0.0","zod":">=3.0.0","react":">=18.0.0","@affectively/aeon":">=0.1.0"},"peerDependenciesMeta":{"@affectively/aeon":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/aeon-pages-runtime_0.7.0_1770530230355_0.6579870976615776","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@affectively/aeon-pages-runtime","version":"0.9.0","keywords":["aeon","pages","framework","collaborative","bun","cloudflare"],"license":"MIT","_id":"@affectively/aeon-pages-runtime@0.9.0","maintainers":[{"name":"buley","email":"buley@outlook.com"}],"homepage":"https://github.com/affectively/aeon-pages#readme","bugs":{"url":"https://github.com/affectively/aeon-pages/issues"},"dist":{"shasum":"282a5ad2126d25ea12bd77376f7d71ea303998b1","tarball":"https://registry.npmjs.org/@affectively/aeon-pages-runtime/-/aeon-pages-runtime-0.9.0.tgz","fileCount":75,"integrity":"sha512-aWwOmpXRLbdgueH835tJ9ZPgAqHrovhOocEktiAEntZZe4Cx4GjsBr7TNzfJR6SK63jJZdHA0TyUngEE9FcgSA==","signatures":[{"sig":"MEUCIBEIhiabuHoK1M1c+g1hipwbfx4BGPdrFkUvJjhJYPQ7AiEAouN8ZSC5fs4/eKYe/GwICvNAKwxUj1syqmq03tVU4yo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2224319},"main":"./dist/index.js","type":"module","types":"./dist/types.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./router":{"types":"./dist/router/index.d.ts","import":"./dist/router/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"bb1338854cc76c0863a7b6dbf129a564646412ee","scripts":{"dev":"bun --watch ./src/index.ts","tail":"wrangler tail","test":"bun test","build":"bun run build.ts && tsc --declaration --emitDeclarationOnly","deploy":"wrangler deploy","db:create":"wrangler d1 create aeon-pages","db:migrate":"wrangler d1 execute aeon-pages --file=./schema.sql","dev:worker":"wrangler dev","deploy:staging":"wrangler deploy --env staging","prepublishOnly":"bun run build","db:migrate:local":"wrangler d1 execute aeon-pages --local --file=./schema.sql"},"_npmUser":{"name":"buley","email":"buley@outlook.com"},"deprecated":"This package is deprecated and no longer supported. Do not use.","repository":{"url":"git+https://github.com/affectively/aeon-pages.git","type":"git"},"_npmVersion":"11.8.0","description":"Bun/Cloudflare runtime for @affectively/aeon-pages","directories":{},"sideEffects":false,"_nodeVersion":"25.5.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.0","react":"^19.0.0","@types/bun":"latest","typescript":"^5.7.0","@types/react":"^19.0.0"},"peerDependencies":{"bun":">=1.0.0","zod":">=3.0.0","react":">=18.0.0","@affectively/aeon":">=0.1.0"},"peerDependenciesMeta":{"@affectively/aeon":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/aeon-pages-runtime_0.9.0_1770950447855_0.1319280269671761","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"@affectively/aeon-pages-runtime","version":"0.13.0","keywords":["aeon","pages","framework","collaborative","bun","cloudflare"],"license":"MIT","_id":"@affectively/aeon-pages-runtime@0.13.0","maintainers":[{"name":"buley","email":"buley@outlook.com"}],"homepage":"https://github.com/affectively/aeon-pages#readme","bugs":{"url":"https://github.com/affectively/aeon-pages/issues"},"dist":{"shasum":"7ad0a71eddf01d6f0df28c44564d1baa328ef320","tarball":"https://registry.npmjs.org/@affectively/aeon-pages-runtime/-/aeon-pages-runtime-0.13.0.tgz","fileCount":115,"integrity":"sha512-v02AHAA0AF7VXg38OQBJhj2f+ODJB7UWr5WfvubP2twBYoKmWudzTtsjR0NIdgw4UA9aIJgXgE0TrdfrruP5ng==","signatures":[{"sig":"MEQCID4T2ypMsKcixyqAbIde8Kb2gb5ZmGiHXyITe6fEua32AiAD19GCbfNtnRfWbbnW2maa80wtE2bPN+akJur0t2BDMw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3502870},"main":"./dist/index.js","type":"module","types":"./dist/types.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./relay":{"types":"./dist/relay.d.ts","import":"./dist/relay.js"},"./router":{"types":"./dist/router/index.d.ts","import":"./dist/router/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"},"./tailwind":{"types":"./dist/tailwind.d.ts","import":"./dist/tailwind.js"},"./html-shell":{"types":"./dist/html-shell.d.ts","import":"./dist/html-shell.js"},"./react-errors":{"types":"./dist/react-errors.d.ts","import":"./dist/react-errors.js"},"./header-footer":{"types":"./dist/header-footer.d.ts","import":"./dist/header-footer.js"},"./neural-predictor":{"types":"./dist/neural-predictor.d.ts","import":"./dist/neural-predictor.js"}},"gitHead":"21064e589c1ee2370aa72d2f7f91b14aab454580","scripts":{"dev":"bun --watch ./src/index.ts","tail":"wrangler tail","test":"bun test","build":"bun run build.ts && tsc --declaration --emitDeclarationOnly","deploy":"wrangler deploy","db:create":"wrangler d1 create aeon-pages","db:migrate":"wrangler d1 execute aeon-pages --file=./schema.sql","dev:worker":"wrangler dev","deploy:staging":"wrangler deploy --env staging","prepublishOnly":"bun run build","db:migrate:local":"wrangler d1 execute aeon-pages --local --file=./schema.sql"},"_npmUser":{"name":"buley","email":"buley@outlook.com"},"deprecated":"This package is deprecated and no longer supported. Do not use.","repository":{"url":"git+https://github.com/affectively/aeon-pages.git","type":"git"},"_npmVersion":"11.8.0","description":"Bun/Cloudflare runtime for @affectively/aeon-pages","directories":{},"sideEffects":false,"_nodeVersion":"25.5.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.0","react":"^19.0.0","@types/bun":"latest","typescript":"^5.7.0","@types/react":"^19.0.0"},"peerDependencies":{"bun":">=1.0.0","zod":">=3.0.0","react":">=18.0.0","@affectively/aeon":">=0.1.0"},"peerDependenciesMeta":{"@affectively/aeon":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/aeon-pages-runtime_0.13.0_1771314036283_0.17713901219243455","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-02-03T05:40:49.987Z","modified":"2026-03-27T19:58:50.617Z","0.1.0":"2026-02-03T05:40:50.329Z","0.3.0":"2026-02-07T19:46:21.518Z","0.3.1":"2026-02-07T19:54:06.261Z","0.5.0":"2026-02-08T04:53:04.257Z","0.5.1":"2026-02-08T04:56:28.318Z","0.5.2":"2026-02-08T05:15:39.714Z","0.7.0":"2026-02-08T05:57:10.531Z","0.9.0":"2026-02-13T02:40:48.029Z","0.13.0":"2026-02-17T07:40:36.501Z"},"bugs":{"url":"https://github.com/affectively/aeon-pages/issues"},"license":"MIT","homepage":"https://github.com/affectively/aeon-pages#readme","keywords":["aeon","pages","framework","collaborative","bun","cloudflare"],"repository":{"url":"git+https://github.com/affectively/aeon-pages.git","type":"git"},"description":"Bun/Cloudflare runtime for @affectively/aeon-pages","maintainers":[{"name":"buley","email":"buley@outlook.com"}],"readme":"# @affectively/aeon-pages-runtime\n\nEdge-first rendering runtime for Aeon-Flux with Edge Side Inference (ESI), hyperpersonalized routing, and real-time collaboration.\n\n## Installation\n\n```bash\nbun add @affectively/aeon-pages-runtime\n```\n\n## Features\n\n### Edge Side Inference (ESI)\n\nAI-powered personalization at render time. Components that adapt to user context before reaching the browser.\n\n```tsx\nimport { ESI, ESIProvider } from '@affectively/aeon-pages-runtime/router';\n\nfunction App() {\n  return (\n    <ESIProvider>\n      {/* AI-generated personalized greeting */}\n      <ESI.Infer prompt=\"Greet the user based on time of day\">\n        {(greeting) => <h1>{greeting}</h1>}\n      </ESI.Infer>\n\n      {/* Tier-gated content */}\n      <ESI.TierGate tier=\"premium\">\n        <PremiumFeatures />\n      </ESI.TierGate>\n\n      {/* Emotion-aware content */}\n      <ESI.EmotionGate emotions={['calm', 'content']}>\n        <RelaxingContent />\n      </ESI.EmotionGate>\n    </ESIProvider>\n  );\n}\n```\n\n### AI Translation\n\nAutomatic translation at the edge. Supports 33 languages with LLM-based translation.\n\n```tsx\nimport { ESI, TranslationProvider } from '@affectively/aeon-pages-runtime/router';\n\n// App-wide translation with user's preferred language\nfunction App() {\n  return (\n    <TranslationProvider defaultLanguage=\"es\">\n      <ESI.Translate>Welcome to our platform</ESI.Translate>\n      {/* Renders: \"Bienvenido a nuestra plataforma\" */}\n    </TranslationProvider>\n  );\n}\n\n// Explicit target language\n<ESI.Translate targetLanguage=\"ja\">Hello world</ESI.Translate>\n// Renders: \"こんにちは世界\"\n\n// With context for better translation quality\n<ESI.Translate\n  targetLanguage=\"fr\"\n  context=\"emotional wellness app\"\n>\n  We're here to help you understand your feelings.\n</ESI.Translate>\n```\n\n#### Data-Attribute Translation\n\nAutomatically translate any element with `data-translate`:\n\n```html\n<p data-translate data-target-lang=\"es\">Hello world</p>\n<!-- Becomes: \"Hola mundo\" -->\n\n<span data-translate data-translate-context=\"formal, business\">\n  Please review the attached document.\n</span>\n```\n\n```tsx\nimport { useTranslationObserver } from '@affectively/aeon-pages-runtime/router';\n\nfunction App() {\n  // Automatically translates all data-translate elements\n  useTranslationObserver({ defaultTargetLanguage: 'es' });\n\n  return <div data-translate>Hello</div>;\n}\n```\n\n#### Language Configuration Priority\n\n1. `ESI.Translate` `targetLanguage` prop\n2. `TranslationProvider` context\n3. `window.__AEON_ESI_STATE__.preferences.language`\n4. `<meta name=\"aeon-language\" content=\"es\">`\n5. User preferences\n6. Browser `navigator.language`\n\n#### Supported Languages\n\n`en`, `es`, `fr`, `de`, `it`, `pt`, `nl`, `pl`, `ru`, `zh`, `ja`, `ko`, `ar`, `hi`, `bn`, `vi`, `th`, `tr`, `id`, `ms`, `tl`, `sv`, `da`, `no`, `fi`, `cs`, `el`, `he`, `uk`, `ro`, `hu`, `ca`, `hy`\n\n### Hyperpersonalized Routing\n\nRoutes adapt to user context: time, location, emotion state, and tier.\n\n```tsx\nimport { HeuristicAdapter } from '@affectively/aeon-pages-runtime/router';\n\nconst adapter = new HeuristicAdapter({\n  tierFeatures: {\n    free: { maxAIInferences: 5 },\n    premium: { maxAIInferences: 100 },\n  },\n});\n\n// Route decision based on user context\nconst decision = await adapter.decide(userContext, '/dashboard');\n// Returns: layout, theme, skeleton hints, prefetch suggestions\n```\n\n### Speculative Pre-rendering\n\nPages render before you click. Zero perceived latency.\n\n```tsx\nimport { SpeculationManager, autoInitSpeculation } from '@affectively/aeon-pages-runtime/router';\n\n// Auto-initialize based on browser support\nautoInitSpeculation();\n\n// Or manual control\nconst speculation = new SpeculationManager({\n  prefetchUrls: ['/dashboard', '/settings'],\n  prerenderUrls: ['/about'],\n});\nspeculation.start();\n```\n\n### ESI Control Components\n\nDeclarative control flow with AI-powered conditions.\n\n```tsx\nimport { ESI } from '@affectively/aeon-pages-runtime/router';\n\n// Conditional rendering\n<ESI.If condition=\"user.tier === 'premium'\">\n  <PremiumBadge />\n</ESI.If>\n\n// Pattern matching\n<ESI.Match value={userEmotion}>\n  <ESI.Case when=\"happy\"><HappyContent /></ESI.Case>\n  <ESI.Case when=\"sad\"><SupportContent /></ESI.Case>\n  <ESI.Default><NeutralContent /></ESI.Default>\n</ESI.Match>\n\n// Time-based gates\n<ESI.TimeGate hours={{ start: 9, end: 17 }}>\n  <BusinessHoursContent />\n</ESI.TimeGate>\n\n// A/B Testing\n<ESI.ABTest variants={['control', 'variant-a', 'variant-b']}>\n  {(variant) => <Component variant={variant} />}\n</ESI.ABTest>\n```\n\n### Cyrano Whisper Channel\n\nAI assistant guidance with contextual awareness.\n\n```tsx\nimport { esiCyrano, esiHalo } from '@affectively/aeon-pages-runtime/router';\n\n// Generate AI whisper for user guidance\nconst whisper = esiCyrano({\n  intent: 'guide',\n  tone: 'warm',\n  context: sessionContext,\n});\n\n// Halo insights for behavioral patterns\nconst insight = esiHalo({\n  observation: 'user-hesitation',\n  action: 'offer-help',\n});\n```\n\n### Merkle-Based UCAN Capabilities\n\nFine-grained access control to component nodes using Merkle hashes. Integrates with UCAN tokens for cryptographic authorization.\n\n```tsx\nimport {\n  createNodeCapabilityVerifier,\n  createNodeReadCapability,\n  createTreeCapability,\n  checkNodeAccess,\n} from '@affectively/aeon-pages-runtime';\n\n// Create capabilities for specific nodes by Merkle hash\nconst readCapability = createNodeReadCapability('a1b2c3d4e5f6');\n// { can: 'aeon:node:read', with: 'merkle:a1b2c3d4e5f6' }\n\n// Create tree capability (grants access to node and all descendants)\nconst treeCapability = createTreeCapability('a1b2c3d4e5f6');\n// { can: 'aeon:node:*', with: 'tree:a1b2c3d4e5f6' }\n\n// Create path-based capability (grants access to all nodes on a route)\nconst pathCapability = createPathCapability('/dashboard/*');\n// { can: 'aeon:node:*', with: 'path:/dashboard/*' }\n\n// Verify access to a specific node\nconst canAccess = checkNodeAccess(\n  userCapabilities,\n  { merkleHash: 'a1b2c3d4e5f6', routePath: '/dashboard' },\n  'read'\n);\n```\n\n#### Resource Formats\n\n| Format | Example | Description |\n|--------|---------|-------------|\n| `merkle:<hash>` | `merkle:a1b2c3d4e5f6` | Exact match on Merkle hash |\n| `tree:<hash>` | `tree:a1b2c3d4e5f6` | Match node or any ancestor |\n| `path:<route>` | `path:/dashboard/*` | All nodes on a route (wildcards) |\n| `*` | `*` | Match any node (wildcard) |\n\n#### Capability Actions\n\n| Action | Description |\n|--------|-------------|\n| `aeon:node:read` | Read access to node |\n| `aeon:node:write` | Write access to node |\n| `aeon:node:*` | Full access to node |\n\n#### Creating a Verifier from UCAN Token\n\n```tsx\nimport { createNodeCapabilityVerifier } from '@affectively/aeon-pages-runtime';\n\nconst verifier = createNodeCapabilityVerifier(token, {\n  extractCapabilities: async (t) => {\n    const decoded = await decodeUCAN(t);\n    return decoded.capabilities;\n  },\n  verifyToken: async (t) => {\n    return await verifyUCANSignature(t);\n  },\n});\n\n// Check if user can read a specific node\nconst canRead = await verifier(\n  { merkleHash: 'a1b2c3d4e5f6' },\n  'read'\n);\n\n// Check with full tree path context\nconst canWrite = await verifier(\n  {\n    merkleHash: 'a1b2c3d4e5f6',\n    treePath: ['root', 'layout', 'header', 'button'],\n    ancestorHashes: ['f1e2d3c4b5a6', 'b2c3d4e5f6a1'],\n    routePath: '/dashboard',\n  },\n  'write'\n);\n```\n\n#### Integration with Analytics\n\nMerkle capabilities integrate seamlessly with `@affectively/aeon-pages-analytics`:\n\n```tsx\nimport { buildMerkleTreeSync } from '@affectively/aeon-pages-analytics';\nimport { checkNodeAccess } from '@affectively/aeon-pages-runtime';\n\n// Build Merkle tree from component tree\nconst merkleTree = buildMerkleTreeSync(componentTree);\n\n// Check access for each node\nfor (const [nodeId, merkleNode] of merkleTree) {\n  const canEdit = checkNodeAccess(\n    userCapabilities,\n    {\n      merkleHash: merkleNode.hash,\n      treePath: merkleNode.path,\n      routePath: currentRoute,\n    },\n    'write'\n  );\n\n  if (canEdit) {\n    // Show edit controls for this node\n  }\n}\n```\n\n## API Reference\n\n### Components\n\n| Component | Description |\n|-----------|-------------|\n| `ESI.Provider` | Root ESI context provider |\n| `ESI.Infer` | AI inference at render time |\n| `ESI.Translate` | Automatic translation |\n| `ESI.TranslationProvider` | App-wide translation context |\n| `ESI.TierGate` | Tier-based content gating |\n| `ESI.EmotionGate` | Emotion-based content gating |\n| `ESI.TimeGate` | Time-based content gating |\n| `ESI.If` / `ESI.Show` / `ESI.Hide` | Conditional rendering |\n| `ESI.Match` / `ESI.Case` | Pattern matching |\n| `ESI.ABTest` | A/B testing |\n| `ESI.ForEach` | AI-powered iteration |\n| `ESI.Select` | AI-powered selection |\n\n### Hooks\n\n| Hook | Description |\n|------|-------------|\n| `useESI()` | Access ESI context and processing |\n| `useESIInfer()` | AI inference hook |\n| `useTranslation()` | Translation context access |\n| `useTranslationObserver()` | Auto-translate data-attribute elements |\n| `useGlobalESIState()` | Access global ESI state |\n| `useESITier()` | Get current user tier |\n| `useESIEmotionState()` | Get current emotion state |\n\n### Functions\n\n| Function | Description |\n|----------|-------------|\n| `esiTranslate()` | Create translation directive |\n| `translateWithAIGateway()` | Direct AI Gateway translation |\n| `normalizeLanguageCode()` | Normalize language code |\n| `getSupportedLanguages()` | Get list of supported languages |\n| `initTranslationObserver()` | Auto-init DOM translation observer |\n\n### Merkle Capability Functions\n\n| Function | Description |\n|----------|-------------|\n| `createNodeReadCapability(hash)` | Create read capability for a Merkle hash |\n| `createNodeWriteCapability(hash)` | Create write capability for a Merkle hash |\n| `createTreeCapability(hash, action)` | Create tree capability (node + descendants) |\n| `createPathCapability(path, action)` | Create path-based capability |\n| `createWildcardNodeCapability(action)` | Create wildcard capability (all nodes) |\n| `createNodeCapabilityVerifier(token, opts)` | Create verifier from UCAN token |\n| `checkNodeAccess(caps, request, action)` | Check if capabilities grant access |\n| `filterAccessibleNodes(nodes, caps, action)` | Filter nodes by access |\n| `getMostSpecificCapability(caps, request)` | Get most specific matching capability |\n| `parseResource(resource)` | Parse resource identifier |\n| `formatResource(type, value)` | Format resource identifier |\n| `capabilityGrantsAccess(cap, request, action)` | Check single capability |\n\n## Configuration\n\n### Head Meta Tags\n\n```html\n<!-- Default translation language -->\n<meta name=\"aeon-language\" content=\"es\">\n\n<!-- Translation endpoint -->\n<meta name=\"aeon-translation-endpoint\" content=\"https://ai-gateway.example.com\">\n\n<!-- Cache TTL in seconds -->\n<meta name=\"aeon-translation-cache-ttl\" content=\"86400\">\n```\n\n### ESI State\n\nGlobal state is available at `window.__AEON_ESI_STATE__`:\n\n```typescript\ninterface GlobalESIState {\n  tier: 'free' | 'premium' | 'enterprise';\n  emotion: EmotionState;\n  preferences: {\n    language: string;\n    theme: 'light' | 'dark' | 'system';\n  };\n  features: Record<string, boolean>;\n}\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}