{"_id":"@askrjs/i18n","_rev":"8-0a137022f83e293a5d57c0a8b7a33148","name":"@askrjs/i18n","dist-tags":{"latest":"0.4.0"},"versions":{"0.0.1":{"name":"@askrjs/i18n","version":"0.0.1","keywords":["askr","i18n","internationalization","typescript"],"author":{"url":"https://github.com/askrjs","name":"askrjs"},"license":"Apache-2.0","_id":"@askrjs/i18n@0.0.1","maintainers":[{"name":"smiggleworth","email":"jrepanich@gmail.com"}],"homepage":"https://github.com/askrjs/askr-i18n#readme","bugs":{"url":"https://github.com/askrjs/askr-i18n/issues"},"dist":{"shasum":"01bc729d4d2a1cd634cef6350b865d7c7cff971f","tarball":"https://registry.npmjs.org/@askrjs/i18n/-/i18n-0.0.1.tgz","fileCount":5,"integrity":"sha512-6NivZxocmIkwjTGQq/OZGlAoKoijHLYxdb4Y802vbfvHPRZyRg+dzBPXM/pixnyJCDu626mWK6G5IE1RQ+mHzg==","signatures":[{"sig":"MEQCIDisn+rYKJ5i7UebMVX6zoG56GS35t9KKTD9VA+HT4tVAiBiVNG68L6bXgeI8GpVd+9r/c2Dr2X5a+8F+hF4OdMDnQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21083},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"1886190c7d91d3a8d339dba966aa81b293e11800","scripts":{"fmt":"vp fmt .","lint":"vp lint src tests vite.config.ts && npm run typecheck","test":"vp test run","build":"vp pack","check":"npm run lint && npm run typecheck && npm test && npm run build && npm run test:publint && npm run pack:check","prepack":"npm run build","typecheck":"tsc -p tsconfig.json --noEmit --pretty false","pack:check":"npm pack --ignore-scripts --dry-run --json","test:publint":"publint","prepublishOnly":"npm run check"},"_npmUser":{"name":"smiggleworth","email":"jrepanich@gmail.com"},"repository":{"url":"git+https://github.com/askrjs/askr-i18n.git","type":"git"},"_npmVersion":"11.12.1","description":"Application-owned, typed internationalization scopes for Askr.","directories":{},"sideEffects":false,"_nodeVersion":"26.0.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.1","devDependencies":{"vitest":"^4.0.0","publint":"^0.3.21","vite-plus":"^0.2.4","typescript":"^6.0.3","@types/node":"^26.1.1","@askrjs/askr":"file:../askr"},"peerDependencies":{"@askrjs/askr":">=0.0.53 <0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/i18n_0.0.1_1784143285757_0.8816222897618311","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@askrjs/i18n","version":"0.0.2","keywords":["askr","i18n","internationalization","typescript"],"author":{"url":"https://github.com/askrjs","name":"askrjs"},"license":"Apache-2.0","_id":"@askrjs/i18n@0.0.2","maintainers":[{"name":"smiggleworth","email":"jrepanich@gmail.com"}],"homepage":"https://github.com/askrjs/askr-i18n#readme","bugs":{"url":"https://github.com/askrjs/askr-i18n/issues"},"dist":{"shasum":"03e40a6cfcae880a0581d1812e35d586f59819a4","tarball":"https://registry.npmjs.org/@askrjs/i18n/-/i18n-0.0.2.tgz","fileCount":5,"integrity":"sha512-TY9xCnXOYsZ4JJo5NVYmsXGu+1/UJohAOUmc0yirLjioUIMUDm+wQt7QyK8eSI8Jn9Jm/n1IB9XjxDpdAD589g==","signatures":[{"sig":"MEUCIGoPdQWwOApxXJ8jHmxf45/UAv83fuHfouR6xXUPJ35PAiEAsrR75Xe0i4nSfUQpXuAh6Jl/i9FYzx3H+y3e7oVHOiY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@askrjs%2fi18n@0.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21090},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"cd5bcb668a2f70c872ae7cfbe2ad47e73c974057","scripts":{"fmt":"vp fmt .","lint":"vp lint src tests vite.config.ts && npm run typecheck","test":"vp test run","build":"vp pack","check":"npm run lint && npm run typecheck && npm test && npm run build && npm run test:publint && npm run pack:check","prepack":"npm run build","typecheck":"tsc -p tsconfig.json --noEmit --pretty false","pack:check":"npm pack --ignore-scripts --dry-run --json","test:publint":"publint","prepublishOnly":"npm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e4d5a29e-3ece-407e-94ff-a6423f492f57"}},"repository":{"url":"git+https://github.com/askrjs/askr-i18n.git","type":"git"},"_npmVersion":"11.16.0","description":"Application-owned, typed internationalization scopes for Askr.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.1","devDependencies":{"vitest":"^4.0.0","publint":"^0.3.21","vite-plus":"^0.2.4","typescript":"^6.0.3","@types/node":"^26.1.1","@askrjs/askr":">=0.0.52 <0.1.0"},"peerDependencies":{"@askrjs/askr":">=0.0.52 <0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/i18n_0.0.2_1784316884027_0.8659828552054958","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@askrjs/i18n","version":"0.0.3","keywords":["askr","i18n","internationalization","typescript"],"author":{"url":"https://github.com/askrjs","name":"askrjs"},"license":"Apache-2.0","_id":"@askrjs/i18n@0.0.3","maintainers":[{"name":"smiggleworth","email":"jrepanich@gmail.com"}],"homepage":"https://github.com/askrjs/askr-i18n#readme","bugs":{"url":"https://github.com/askrjs/askr-i18n/issues"},"dist":{"shasum":"f7efaaef94c03ac992c522686c2e8b1733b9a1a1","tarball":"https://registry.npmjs.org/@askrjs/i18n/-/i18n-0.0.3.tgz","fileCount":5,"integrity":"sha512-boVCRMUL4swOfrPcBN9cUSspeXtsBo0HDPBO5jWXvo4bmxHkm/fWD5gN4LK60gZfYgwnZCxQwYoxPSB7HFd6Ww==","signatures":[{"sig":"MEQCIDuntA912EhLUdc3QRu648QP2oZrN8xDKsGqRPq2tmb4AiAj8KCPDZ1bhcsZnkaEDJutnD8krXxu9+FVMvcNyLTBhQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@askrjs%2fi18n@0.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21361},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"c428eda90571eccb952e32fc0ee500dbd4d781f9","scripts":{"fmt":"vp fmt .","lint":"vp lint src tests vite.config.ts && npm run typecheck","test":"vp test run","build":"vp pack","check":"npm run lint && npm run typecheck && npm test && npm run build && npm run test:publint && npm run pack:check","prepack":"npm run build","typecheck":"tsc -p tsconfig.json --noEmit --pretty false","pack:check":"npm pack --ignore-scripts --dry-run --json","test:publint":"publint","prepublishOnly":"npm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e4d5a29e-3ece-407e-94ff-a6423f492f57"}},"repository":{"url":"git+https://github.com/askrjs/askr-i18n.git","type":"git"},"_npmVersion":"11.16.0","description":"Application-owned, typed internationalization scopes for Askr.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.1","devDependencies":{"vitest":"^4.0.0","publint":"^0.3.21","vite-plus":"^0.2.4","typescript":"^6.0.3","@types/node":"^26.1.1","@askrjs/askr":">=0.0.52 <0.1.0"},"peerDependencies":{"@askrjs/askr":">=0.0.52 <0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/i18n_0.0.3_1785866165134_0.21828771022930948","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@askrjs/i18n","version":"0.0.4","keywords":["askr","i18n","internationalization","typescript"],"author":{"url":"https://github.com/askrjs","name":"askrjs"},"license":"Apache-2.0","_id":"@askrjs/i18n@0.0.4","maintainers":[{"name":"smiggleworth","email":"jrepanich@gmail.com"}],"homepage":"https://github.com/askrjs/askr-i18n#readme","bugs":{"url":"https://github.com/askrjs/askr-i18n/issues"},"dist":{"shasum":"3fa8ede4e24608bf8efbd90c09860dad96a90dd2","tarball":"https://registry.npmjs.org/@askrjs/i18n/-/i18n-0.0.4.tgz","fileCount":5,"integrity":"sha512-3NwgK/aGv/kJFBIh3p/wtmJyBlD7U4lYjUsh3fQtjEVIXJhLHbh3Lpbbt7pmeZd7ltC1yqo1lN2JCqz4EDvawA==","signatures":[{"sig":"MEQCIEIgwNcuM85sMWP2M9au0gRsYk+Xf/Tu8r+NsczfNXVLAiAVsUsAhyOOMR6/m/F4oI9qjJbWEFCmyLTmGbd+6qLtUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@askrjs%2fi18n@0.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21366},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"02024d95636cd7fead106060f13cbd09416e806a","scripts":{"fmt":"vp fmt .","lint":"vp lint src tests vite.config.ts && npm run typecheck","test":"vp test run","build":"vp pack","check":"npm run lint && npm run typecheck && npm test && npm run build && npm run test:publint && npm run pack:check","prepack":"npm run build","typecheck":"tsc -p tsconfig.json --noEmit --pretty false","pack:check":"npm pack --ignore-scripts --dry-run --json","test:publint":"publint","prepublishOnly":"npm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e4d5a29e-3ece-407e-94ff-a6423f492f57"}},"repository":{"url":"git+https://github.com/askrjs/askr-i18n.git","type":"git"},"_npmVersion":"11.16.0","description":"Application-owned, typed internationalization scopes for Askr.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.1","devDependencies":{"vitest":"^4.1.10","publint":"^0.3.23","vite-plus":"^0.2.8","typescript":"^7.0.2","@types/node":"^26.2.0","@askrjs/askr":">=0.0.88 <0.1.0"},"peerDependencies":{"@askrjs/askr":">=0.0.88 <0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/i18n_0.0.4_1786134838089_0.43523894623819626","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@askrjs/i18n","version":"0.2.0","keywords":["askr","i18n","internationalization","typescript"],"author":{"url":"https://github.com/askrjs","name":"askrjs"},"license":"Apache-2.0","_id":"@askrjs/i18n@0.2.0","maintainers":[{"name":"smiggleworth","email":"jrepanich@gmail.com"}],"homepage":"https://github.com/askrjs/askr-i18n#readme","bugs":{"url":"https://github.com/askrjs/askr-i18n/issues"},"dist":{"shasum":"101bacb3025203c6c604ce88074839f12132711a","tarball":"https://registry.npmjs.org/@askrjs/i18n/-/i18n-0.2.0.tgz","fileCount":5,"integrity":"sha512-QF3HTgkZd7gZ2UZHTBh/uNKJCB8rZMiBTkbtRCR9cYbnK31aTTJ4O/MtQT+WPfjwQ2UQ3ecr1jAtPs3sOMdRGg==","signatures":[{"sig":"MEUCIQCZsDlQkiileizcUyVz+wm+AZiKrwZTG8sERseASM/3/gIgTybAIm7hyE7Zm0Nrn1uFbIvL3l7hLXXbI+92eZhKAIk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@askrjs%2fi18n@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23136},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"7bac7e9e46e390f9ae101d3ae856d72dcc8f822e","scripts":{"fmt":"vp fmt .","lint":"vp lint src tests vite.config.ts && npm run typecheck","test":"vp test run","build":"vp pack","check":"npm run lint && npm run typecheck && npm test && npm run build && npm run test:publint && npm run pack:check","prepack":"npm run build","typecheck":"tsc -p tsconfig.json --noEmit --pretty false","pack:check":"npm pack --ignore-scripts --dry-run --json","test:publint":"publint","prepublishOnly":"npm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e4d5a29e-3ece-407e-94ff-a6423f492f57"}},"repository":{"url":"git+https://github.com/askrjs/askr-i18n.git","type":"git"},"_npmVersion":"11.17.0","description":"Application-owned, typed internationalization scopes for Askr.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.1","devDependencies":{"vitest":"^4.1.10","publint":"^0.3.23","vite-plus":"^0.2.8","typescript":"^7.0.2","@types/node":"^26.2.0","@askrjs/askr":">=0.2.0 <0.3.0"},"peerDependencies":{"@askrjs/askr":">=0.2.0 <0.3.0"},"_npmOperationalInternal":{"tmp":"tmp/i18n_0.2.0_1786904850580_0.585101056041379","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@askrjs/i18n","version":"0.2.1","keywords":["askr","i18n","internationalization","typescript"],"author":{"url":"https://github.com/askrjs","name":"askrjs"},"license":"Apache-2.0","_id":"@askrjs/i18n@0.2.1","maintainers":[{"name":"smiggleworth","email":"jrepanich@gmail.com"}],"homepage":"https://github.com/askrjs/askr-i18n#readme","bugs":{"url":"https://github.com/askrjs/askr-i18n/issues"},"dist":{"shasum":"d79c8882ae203025dba9c03edc7c1ebfe95006d7","tarball":"https://registry.npmjs.org/@askrjs/i18n/-/i18n-0.2.1.tgz","fileCount":5,"integrity":"sha512-s1OW4bH8tY4OI8M5JFDYDHMdQ3CzSA9mlemIU95tyZ4bNubIa0Kt7Sxx3QXHXH66Lqa5LSFdsttI4au8+k8fDA==","signatures":[{"sig":"MEUCIQCPQb9FF/XLOZb53rhzq4C5Bz7ij/k9YsOvvHFkh6DwngIgK16z/sDlUWoigLUFMLq7LAwgR4DfbhsmEIasO0p8nII=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCy4Cy2FFADNBet1yTjkat64on+p382Y2iPYXljY2pXGQIgZUcL0/GAZG0HnyIba9nGIQPr99lBTCRtIujkF48VuHY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@askrjs%2fi18n@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27530},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"06d85c54b21ef765fed9685208c9a072637238be","scripts":{"fmt":"vp fmt .","lint":"vp lint src tests vite.config.ts vitest.test.browser.config.ts && npm run typecheck","test":"npm run test:unit && npm run test:browser","build":"vp pack","check":"npm run lint && npm run typecheck && npm test && npm run build && npm run test:publint && npm run pack:check","prepack":"npm run build","test:unit":"vp test run","typecheck":"tsc -p tsconfig.json --noEmit --pretty false","pack:check":"npm pack --ignore-scripts --dry-run --json","test:browser":"vp test run -c vitest.test.browser.config.ts","test:publint":"publint","prepublishOnly":"npm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e4d5a29e-3ece-407e-94ff-a6423f492f57"}},"repository":{"url":"git+https://github.com/askrjs/askr-i18n.git","type":"git"},"_npmVersion":"11.19.0","description":"Application-owned, typed internationalization scopes for Askr.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.1","devDependencies":{"vitest":"^4.1.11","publint":"^0.3.24","vite-plus":"^0.3.0","playwright":"^1.62.1","typescript":"^7.0.2","@types/node":"^26.3.0","@askrjs/askr":">=0.2.3 <0.3.0","@vitest/browser-playwright":"^4.1.11"},"peerDependencies":{"@askrjs/askr":">=0.2.3 <0.3.0"},"_npmOperationalInternal":{"tmp":"tmp/i18n_0.2.1_1789131001831_0.32246927207036036","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@askrjs/i18n","version":"0.3.0","keywords":["askr","i18n","internationalization","typescript"],"author":{"url":"https://github.com/askrjs","name":"askrjs"},"license":"Apache-2.0","_id":"@askrjs/i18n@0.3.0","maintainers":[{"name":"smiggleworth","email":"jrepanich@gmail.com"}],"homepage":"https://github.com/askrjs/askr-i18n#readme","bugs":{"url":"https://github.com/askrjs/askr-i18n/issues"},"dist":{"shasum":"b8ca1a89e4f599190d7b1e0e89d208184891bdfa","tarball":"https://registry.npmjs.org/@askrjs/i18n/-/i18n-0.3.0.tgz","fileCount":5,"integrity":"sha512-joURqWQfpsnE8m3YhvEHPB5hz3ns59FY6XeZPx4Oy2uQpuqbhDATUuA9kKB957iTXs9Zc9Lopem2QUkAujfy9A==","signatures":[{"sig":"MEUCIGJDlenac0QVhCUhbE8q/rYndHcOK3ZiPNXzwg/6lwyoAiEAxis7wt5h0vx5fdbmlTGwiMIRwsF44HJ8ifxLOj2/myA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCOu/1hK71JLaBYr76Txdu2LSCvrVqVmg8Qh4g3hb+fAwIhAOJPcLfOLouAcF1za1wMq9Mj8gpirB+rSL/snjMaHUrg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@askrjs%2fi18n@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27512},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"b3fe88ddec2d82a2a4e514266163642a0fd45b3c","scripts":{"fmt":"vp fmt .","lint":"vp lint src tests vite.config.ts vite.harness.config.ts playwright.config.ts && npm run typecheck","test":"npm run test:unit && npm run test:browser","build":"vp pack","check":"npm run lint && npm run typecheck && npm test && npm run build && npm run test:publint && npm run pack:check","prepack":"npm run build","test:unit":"vp test run","typecheck":"tsc -p tsconfig.json --noEmit --pretty false","pack:check":"npm pack --ignore-scripts --dry-run --json","test:browser":"playwright test","test:publint":"publint","prepublishOnly":"npm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e4d5a29e-3ece-407e-94ff-a6423f492f57"}},"overrides":{"vite":"npm:@voidzero-dev/vite-plus-core@^0.3.1","vitest":"^4.1.11"},"repository":{"url":"git+https://github.com/askrjs/askr-i18n.git","type":"git"},"_npmVersion":"11.19.0","description":"Application-owned, typed internationalization scopes for Askr.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.1","devDependencies":{"vite":"npm:@voidzero-dev/vite-plus-core@^0.3.1","vitest":"^4.1.11","publint":"^0.3.24","vite-plus":"^0.3.1","typescript":"^7.0.2","@types/node":"^26.3.0","@askrjs/askr":">=0.3.0 <0.4.0","@playwright/test":"^1.62.1"},"peerDependencies":{"@askrjs/askr":">=0.3.0 <0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/i18n_0.3.0_1789166440165_0.7456389430934789","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"_id":"@askrjs/i18n@0.4.0","bugs":{"url":"https://github.com/askrjs/askr-i18n/issues"},"dist":{"shasum":"41f2ecea8c6354f2e7016b9e46dc6e9331ab1cfc","tarball":"https://registry.npmjs.org/@askrjs/i18n/-/i18n-0.4.0.tgz","fileCount":5,"integrity":"sha512-RQm9CVV2aTmdP4QnsKMpF6K4BWlrqOEijXLEaHBfOA0MRD+rxrBRL0xSbifV+AQzI7Dfmdlb+ZJRRFeEhTaFuA==","signatures":[{"sig":"MEYCIQCv6cwiXD7sYqCn/M2oXWugg+8T3RuXaBK8Au73Ulv32gIhAKYnMZmoKYjdDxQTzrOZYcj1JMMMUj8DSLdakemVE2oE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIA62H8xBZYw4yjlLdQSedHUytGF5A8mIY3lkJGe0gyC2AiEAhgJUGrKPIXXPfc2v3qpGDuZG/CC25lVpU06ERkeiNQQ="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@askrjs%2fi18n@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27512},"main":"./dist/index.js","name":"@askrjs/i18n","type":"module","types":"./dist/index.d.ts","author":{"url":"https://github.com/askrjs","name":"askrjs"},"engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"346c1ad926fc4abdc61a43cea0d3b5dda6040549","license":"Apache-2.0","scripts":{"fmt":"vp fmt .","lint":"vp lint src tests vite.config.ts vite.harness.config.ts playwright.config.ts && npm run typecheck","test":"npm run test:unit && npm run test:browser","build":"vp pack","check":"npm run lint && npm run typecheck && npm test && npm run build && npm run test:publint && npm run pack:check","prepack":"npm run build","test:unit":"vp test run","typecheck":"tsc -p tsconfig.json --noEmit --pretty false","pack:check":"npm pack --ignore-scripts --dry-run --json","test:browser":"playwright test","test:publint":"publint","prepublishOnly":"npm run check"},"version":"0.4.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"e4d5a29e-3ece-407e-94ff-a6423f492f57"}},"homepage":"https://github.com/askrjs/askr-i18n#readme","keywords":["askr","i18n","internationalization","typescript"],"overrides":{"vite":"npm:@voidzero-dev/vite-plus-core@^0.3.1","vitest":"^4.1.11"},"repository":{"url":"git+https://github.com/askrjs/askr-i18n.git","type":"git"},"_npmVersion":"11.19.0","description":"Application-owned, typed internationalization scopes for Askr.","directories":{},"maintainers":[{"name":"smiggleworth","email":"jrepanich@gmail.com"}],"sideEffects":false,"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.1","devDependencies":{"vite":"npm:@voidzero-dev/vite-plus-core@^0.3.1","vitest":"^4.1.11","publint":"^0.3.24","vite-plus":"^0.3.1","typescript":"^7.0.2","@types/node":"^26.3.0","@askrjs/askr":">=0.4.0 <0.5.0","@playwright/test":"^1.62.1"},"peerDependencies":{"@askrjs/askr":">=0.4.0 <0.5.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/i18n_0.4.0_1790634826357_0.6174301589801057"}}},"time":{"created":"2026-07-15T19:21:25.594Z","modified":"2026-09-28T22:33:46.774Z","0.0.1":"2026-07-15T19:21:25.910Z","0.0.2":"2026-07-17T19:34:44.150Z","0.0.3":"2026-08-04T17:56:05.266Z","0.0.4":"2026-08-07T20:33:58.238Z","0.2.0":"2026-08-16T18:27:30.733Z","0.2.1":"2026-09-11T12:50:01.981Z","0.3.0":"2026-09-11T22:40:40.270Z","0.4.0":"2026-09-28T22:33:46.454Z"},"bugs":{"url":"https://github.com/askrjs/askr-i18n/issues"},"author":{"url":"https://github.com/askrjs","name":"askrjs"},"license":"Apache-2.0","homepage":"https://github.com/askrjs/askr-i18n#readme","keywords":["askr","i18n","internationalization","typescript"],"repository":{"url":"git+https://github.com/askrjs/askr-i18n.git","type":"git"},"description":"Application-owned, typed internationalization scopes for Askr.","maintainers":[{"name":"smiggleworth","email":"jrepanich@gmail.com"}],"readme":"# @askrjs/i18n\n\n[![CI](https://github.com/askrjs/askr-i18n/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/askrjs/askr-i18n/actions/workflows/ci.yml)\n[![npm version](https://img.shields.io/npm/v/%40askrjs%2Fi18n.svg)](https://www.npmjs.com/package/@askrjs/i18n)\n\nTyped, application-owned internationalization for Askr. The package does not\nchoose locales, parse ICU messages, or install process-global state.\n\n```tsx\nimport { createI18n } from \"@askrjs/i18n\";\n\nconst i18n = createI18n(\"en\", {\n  en: {\n    welcome: ({ name }: { name: string }) => `Welcome, ${name}`,\n    total: (value: number) =>\n      new Intl.NumberFormat(\"en-US\", { style: \"currency\", currency: \"USD\" }).format(value),\n  },\n  fr: {\n    welcome: ({ name }: { name: string }) => `Bienvenue, ${name}`,\n    total: (value: number) =>\n      new Intl.NumberFormat(\"fr-FR\", { style: \"currency\", currency: \"EUR\" }).format(value),\n  },\n});\n\nfunction Welcome() {\n  return <h1>{i18n.text(\"welcome\", { name: \"Ada\" })}</h1>;\n}\n\nfunction LocalizedMain() {\n  return (\n    <main {...i18n.attributes()}>\n      <Welcome />\n    </main>\n  );\n}\n\n<i18n.Scope locale=\"fr\">\n  <LocalizedMain />\n</i18n.Scope>;\n```\n\n## Language and direction\n\nLocale state and HTML direction must change together. For the initial server\nrender, apply the same frozen attributes to the document element:\n\n```tsx\nimport { applyLocaleAttributes, localeAttributes } from \"@askrjs/i18n\";\n\nconst attributes = localeAttributes(locale);\n// Server template: <html lang={attributes.lang} dir={attributes.dir}>\n\n// Client boot and later locale switches use the same resolved attributes.\napplyLocaleAttributes(document.documentElement, attributes);\n```\n\n`localeAttributes()` uses `Intl.Locale#getTextInfo()` where available and a\ndeterministic compatibility fallback. Pass an explicit second argument when an\napplication uses a non-default script policy that needs an override:\n\n```ts\nconst attributes = localeAttributes(\"az-Arab\", \"rtl\");\n```\n\n`i18n.attributes()` reads the active lexical scope. Spread it onto a real DOM\nelement when a nested subtree uses a different language or direction. The\npackage does not insert a wrapper or mutate the global document implicitly.\n\nFor user-provided text whose direction is unknown, use semantic HTML isolation:\n\n```tsx\n<p>\n  Account: <bdi>{userDisplayName}</bdi>\n</p>\n<input dir=\"auto\" name=\"displayName\" />\n```\n\nUse CSS logical properties (`margin-inline-start`, `padding-inline`,\n`inset-inline-end`, `text-align: start`) for direction-sensitive layout rather\nthan mirrored left/right rules.\n\nApplications own locale resolution from URL prefixes, hosts, cookies, or user\nprofiles. `i18n.dehydrate()` returns an immutable, versioned snapshot containing\nthe active locale, direction, and selected catalog identity. Pass that snapshot\nback as `<i18n.Scope hydration={snapshot}>` during hydration.\n\nThe first argument names the source locale. Its exact keys and message argument\ntuples are required from every other locale; missing, extra, or incompatible\nmessages fail during type checking and are also rejected at runtime.\n\nSee [the runtime contract](docs/runtime.md) for isolation and hydration details.\n","readmeFilename":"README.md"}