mirror of
https://github.com/Matysh/houseplan-card
synced 2026-10-01 12:18:51 +00:00
The production LANGUAGE_RUNTIME was a handwritten twin of the tested LanguageRuntime class (germanDictionary/Pending/Failed): equivalent on the day it was written, invisible to every i18n-runtime test afterwards. The registry now exports one page-scoped `new LanguageRuntime(LANGUAGE_REGISTRY, …)` instance — the whole existing suite starts proving the object production actually runs, and a contract unit (instanceof + source free of the old field names) keeps the duplicate from returning. The class gains an optional `loadFailed(code)` hook — fired once when a dictionary load settles into English fallback — and the registry fans it out through `subscribeLanguageLoadFailures`. Only the View card subscribes (it alone owns toast infrastructure): a failed language pack now shows the new `toast.locale_load_failed` message (en/ru/de) instead of a console-only warning; space card and both GUI editors keep the console warning as before. Proofs: contract unit, hook unit, subscription unit; smoke_german_locale extended — the both-attempts-failed scenario now asserts the visible toast; two new registry mutants (handwritten-twin returns, toast dropped). Issue: #354 User-Visible: yes
114 lines
3.5 KiB
JSON
114 lines
3.5 KiB
JSON
{
|
|
"schema": 1,
|
|
"fingerprint": "f4223f763dcd6ca7756b77bef6936c1cfd4eff678814c4d37f22bc3a15f49852",
|
|
"entry": "houseplan-card.js",
|
|
"initialViewFiles": [
|
|
"houseplan-assets/houseplan-card-CRVz7yAZ.js",
|
|
"houseplan-card.js"
|
|
],
|
|
"initialViewGzipBytes": 257222,
|
|
"lazyFiles": [
|
|
"houseplan-assets/de-CaUzN0Gb.js",
|
|
"houseplan-assets/editor-Cx6zLzlf.js",
|
|
"houseplan-assets/houseplan-editor-runtime-g5SOkk1f.js",
|
|
"houseplan-assets/houseplan-onboarding-runtime-gghL8Cm4.js",
|
|
"houseplan-assets/space-deletion-Efs-z9tD.js"
|
|
],
|
|
"lazyGzipBytes": 160428,
|
|
"lazyEditorFiles": [
|
|
"houseplan-assets/editor-Cx6zLzlf.js",
|
|
"houseplan-assets/houseplan-editor-runtime-g5SOkk1f.js",
|
|
"houseplan-assets/space-deletion-Efs-z9tD.js"
|
|
],
|
|
"lazyEditorGzipBytes": 131845,
|
|
"lazyOnboardingFiles": [
|
|
"houseplan-assets/houseplan-onboarding-runtime-gghL8Cm4.js",
|
|
"houseplan-assets/space-deletion-Efs-z9tD.js"
|
|
],
|
|
"lazyOnboardingGzipBytes": 7203,
|
|
"lazyLocaleFiles": [
|
|
"houseplan-assets/de-CaUzN0Gb.js"
|
|
],
|
|
"lazyLocaleGzipBytes": 21934,
|
|
"files": [
|
|
{
|
|
"path": "houseplan-assets/de-CaUzN0Gb.js",
|
|
"sha256": "28905f1ea79271d20a7837a9c03b5492dd4e581570dda1c1744b6c0649b38fbd",
|
|
"rawBytes": 71667,
|
|
"gzipBytes": 21934,
|
|
"isEntry": false,
|
|
"imports": [],
|
|
"dynamicImports": []
|
|
},
|
|
{
|
|
"path": "houseplan-assets/editor-Cx6zLzlf.js",
|
|
"sha256": "e1234c8e7ff9c1cc932d45a633fef965a23b6c8db9dc5b684092df6b25a5bffa",
|
|
"rawBytes": 3831,
|
|
"gzipBytes": 1586,
|
|
"isEntry": false,
|
|
"imports": [
|
|
"houseplan-assets/houseplan-card-CRVz7yAZ.js"
|
|
],
|
|
"dynamicImports": []
|
|
},
|
|
{
|
|
"path": "houseplan-assets/houseplan-card-CRVz7yAZ.js",
|
|
"sha256": "c8ed01fa23f357e2a2691a4b64ba459f67b2ff9567314be2159a30429fe951dd",
|
|
"rawBytes": 912395,
|
|
"gzipBytes": 256466,
|
|
"isEntry": false,
|
|
"imports": [],
|
|
"dynamicImports": [
|
|
"houseplan-assets/de-CaUzN0Gb.js",
|
|
"houseplan-assets/editor-Cx6zLzlf.js",
|
|
"houseplan-assets/houseplan-editor-runtime-g5SOkk1f.js",
|
|
"houseplan-assets/houseplan-onboarding-runtime-gghL8Cm4.js"
|
|
]
|
|
},
|
|
{
|
|
"path": "houseplan-assets/houseplan-editor-runtime-g5SOkk1f.js",
|
|
"sha256": "9e82dc7246a631a56e31e842603e099fdb5f8b89d2c4b282af4f3306330e3577",
|
|
"rawBytes": 504959,
|
|
"gzipBytes": 129705,
|
|
"isEntry": false,
|
|
"imports": [
|
|
"houseplan-assets/houseplan-card-CRVz7yAZ.js",
|
|
"houseplan-assets/space-deletion-Efs-z9tD.js"
|
|
],
|
|
"dynamicImports": []
|
|
},
|
|
{
|
|
"path": "houseplan-assets/houseplan-onboarding-runtime-gghL8Cm4.js",
|
|
"sha256": "8b429f66b9bdc598278504cebde6800730c9f8d19e42c7b184d6cd7445a92b04",
|
|
"rawBytes": 26356,
|
|
"gzipBytes": 6649,
|
|
"isEntry": false,
|
|
"imports": [
|
|
"houseplan-assets/houseplan-card-CRVz7yAZ.js",
|
|
"houseplan-assets/space-deletion-Efs-z9tD.js"
|
|
],
|
|
"dynamicImports": []
|
|
},
|
|
{
|
|
"path": "houseplan-assets/space-deletion-Efs-z9tD.js",
|
|
"sha256": "534af6bd61ad2404183665d7401e625383a59321feeb55db99c514d9f23415aa",
|
|
"rawBytes": 911,
|
|
"gzipBytes": 554,
|
|
"isEntry": false,
|
|
"imports": [],
|
|
"dynamicImports": []
|
|
},
|
|
{
|
|
"path": "houseplan-card.js",
|
|
"sha256": "a950c24f9f8f6cc9c50a67a5b41ad644acda7dc94501f4cbe2e771b0fa271090",
|
|
"rawBytes": 1089,
|
|
"gzipBytes": 756,
|
|
"isEntry": true,
|
|
"imports": [
|
|
"houseplan-assets/houseplan-card-CRVz7yAZ.js"
|
|
],
|
|
"dynamicImports": []
|
|
}
|
|
]
|
|
}
|