@digitaldefiance/i18n-lib 3.8.1 → 3.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +7 -6
- package/src/{active-context.ts → active-context.d.ts} +1 -0
- package/src/active-context.d.ts.map +1 -0
- package/src/active-context.js +3 -0
- package/src/active-context.js.map +1 -0
- package/src/builders/i18n-builder.d.ts +26 -0
- package/src/builders/i18n-builder.d.ts.map +1 -0
- package/src/builders/i18n-builder.js +70 -0
- package/src/builders/i18n-builder.js.map +1 -0
- package/src/builders/{index.ts → index.d.ts} +1 -1
- package/src/builders/index.d.ts.map +1 -0
- package/src/builders/index.js +8 -0
- package/src/builders/index.js.map +1 -0
- package/src/component-definition.d.ts +12 -0
- package/src/component-definition.d.ts.map +1 -0
- package/src/component-definition.js +3 -0
- package/src/component-definition.js.map +1 -0
- package/src/component-registration.d.ts +22 -0
- package/src/component-registration.d.ts.map +1 -0
- package/src/component-registration.js +3 -0
- package/src/component-registration.js.map +1 -0
- package/src/component-registry.d.ts +102 -0
- package/src/component-registry.d.ts.map +1 -0
- package/src/component-registry.js +282 -0
- package/src/component-registry.js.map +1 -0
- package/src/context-error-type.d.ts +8 -0
- package/src/context-error-type.d.ts.map +1 -0
- package/src/context-error-type.js +12 -0
- package/src/context-error-type.js.map +1 -0
- package/src/core/component-store.d.ts +93 -0
- package/src/core/component-store.d.ts.map +1 -0
- package/src/core/component-store.js +198 -0
- package/src/core/component-store.js.map +1 -0
- package/src/core/context-manager.d.ts +72 -0
- package/src/core/context-manager.d.ts.map +1 -0
- package/src/core/context-manager.js +98 -0
- package/src/core/context-manager.js.map +1 -0
- package/src/core/enum-registry.d.ts +48 -0
- package/src/core/enum-registry.d.ts.map +1 -0
- package/src/core/enum-registry.js +85 -0
- package/src/core/enum-registry.js.map +1 -0
- package/src/core/i18n-engine.d.ts +241 -0
- package/src/core/i18n-engine.d.ts.map +1 -0
- package/src/core/i18n-engine.js +568 -0
- package/src/core/i18n-engine.js.map +1 -0
- package/src/core/{index.ts → index.d.ts} +1 -4
- package/src/core/index.d.ts.map +1 -0
- package/src/core/index.js +21 -0
- package/src/core/index.js.map +1 -0
- package/src/core/language-registry.d.ts +180 -0
- package/src/core/language-registry.d.ts.map +1 -0
- package/src/core/language-registry.js +298 -0
- package/src/core/language-registry.js.map +1 -0
- package/src/{core-component-id.ts → core-component-id.d.ts} +2 -1
- package/src/core-component-id.d.ts.map +1 -0
- package/src/core-component-id.js +9 -0
- package/src/core-component-id.js.map +1 -0
- package/src/core-i18n.d.ts +69 -0
- package/src/core-i18n.d.ts.map +1 -0
- package/src/core-i18n.js +219 -0
- package/src/core-i18n.js.map +1 -0
- package/src/core-plugin-factory.d.ts +28 -0
- package/src/core-plugin-factory.d.ts.map +1 -0
- package/src/core-plugin-factory.js +80 -0
- package/src/core-plugin-factory.js.map +1 -0
- package/src/core-string-key.d.ts +52 -0
- package/src/core-string-key.d.ts.map +1 -0
- package/src/core-string-key.js +61 -0
- package/src/core-string-key.js.map +1 -0
- package/src/create-translation-adapter.d.ts +33 -0
- package/src/create-translation-adapter.d.ts.map +1 -0
- package/src/create-translation-adapter.js +72 -0
- package/src/create-translation-adapter.js.map +1 -0
- package/src/enum-registry.d.ts +65 -0
- package/src/enum-registry.d.ts.map +1 -0
- package/src/enum-registry.js +123 -0
- package/src/enum-registry.js.map +1 -0
- package/src/errors/{base.ts → base.d.ts} +1 -1
- package/src/errors/base.d.ts.map +1 -0
- package/src/errors/base.js +11 -0
- package/src/errors/base.js.map +1 -0
- package/src/errors/context-error.d.ts +50 -0
- package/src/errors/context-error.d.ts.map +1 -0
- package/src/errors/context-error.js +93 -0
- package/src/errors/context-error.js.map +1 -0
- package/src/errors/enhanced-error-base.d.ts +125 -0
- package/src/errors/enhanced-error-base.d.ts.map +1 -0
- package/src/errors/enhanced-error-base.js +165 -0
- package/src/errors/enhanced-error-base.js.map +1 -0
- package/src/errors/handleable.d.ts +83 -0
- package/src/errors/handleable.d.ts.map +1 -0
- package/src/errors/handleable.js +136 -0
- package/src/errors/handleable.js.map +1 -0
- package/src/errors/i18n-error.d.ts +211 -0
- package/src/errors/i18n-error.d.ts.map +1 -0
- package/src/errors/i18n-error.js +358 -0
- package/src/errors/i18n-error.js.map +1 -0
- package/src/errors/{index.ts → index.d.ts} +1 -4
- package/src/errors/index.d.ts.map +1 -0
- package/src/errors/index.js +17 -0
- package/src/errors/index.js.map +1 -0
- package/src/errors/simple-typed-error.d.ts +53 -0
- package/src/errors/simple-typed-error.d.ts.map +1 -0
- package/src/errors/simple-typed-error.js +51 -0
- package/src/errors/simple-typed-error.js.map +1 -0
- package/src/errors/{translatable-exports.ts → translatable-exports.d.ts} +1 -1
- package/src/errors/translatable-exports.d.ts.map +1 -0
- package/src/errors/translatable-exports.js +15 -0
- package/src/errors/translatable-exports.js.map +1 -0
- package/src/errors/translatable-generic.d.ts +87 -0
- package/src/errors/translatable-generic.d.ts.map +1 -0
- package/src/errors/translatable-generic.js +139 -0
- package/src/errors/translatable-generic.js.map +1 -0
- package/src/errors/translatable-handleable-generic.d.ts +116 -0
- package/src/errors/translatable-handleable-generic.d.ts.map +1 -0
- package/src/errors/translatable-handleable-generic.js +121 -0
- package/src/errors/translatable-handleable-generic.js.map +1 -0
- package/src/errors/translatable.d.ts +63 -0
- package/src/errors/translatable.d.ts.map +1 -0
- package/src/errors/translatable.js +85 -0
- package/src/errors/translatable.js.map +1 -0
- package/src/errors/typed-handleable.d.ts +62 -0
- package/src/errors/typed-handleable.d.ts.map +1 -0
- package/src/errors/typed-handleable.js +108 -0
- package/src/errors/typed-handleable.js.map +1 -0
- package/src/errors/typed.d.ts +206 -0
- package/src/errors/typed.d.ts.map +1 -0
- package/src/errors/typed.js +458 -0
- package/src/errors/typed.js.map +1 -0
- package/src/gender/{gender-categories.ts → gender-categories.d.ts} +2 -6
- package/src/gender/gender-categories.d.ts.map +1 -0
- package/src/gender/gender-categories.js +15 -0
- package/src/gender/gender-categories.js.map +1 -0
- package/src/gender/gender-resolver.d.ts +14 -0
- package/src/gender/gender-resolver.d.ts.map +1 -0
- package/src/gender/gender-resolver.js +35 -0
- package/src/gender/gender-resolver.js.map +1 -0
- package/src/gender/{index.ts → index.d.ts} +1 -0
- package/src/gender/index.d.ts.map +1 -0
- package/src/gender/index.js +6 -0
- package/src/gender/index.js.map +1 -0
- package/src/global-active-context.d.ts +50 -0
- package/src/global-active-context.d.ts.map +1 -0
- package/src/global-active-context.js +185 -0
- package/src/global-active-context.js.map +1 -0
- package/src/icu/ast.d.ts +48 -0
- package/src/icu/ast.d.ts.map +1 -0
- package/src/icu/ast.js +16 -0
- package/src/icu/ast.js.map +1 -0
- package/src/icu/compiler.d.ts +16 -0
- package/src/icu/compiler.d.ts.map +1 -0
- package/src/icu/compiler.js +87 -0
- package/src/icu/compiler.js.map +1 -0
- package/src/icu/formatter-registry.d.ts +10 -0
- package/src/icu/formatter-registry.d.ts.map +1 -0
- package/src/icu/formatter-registry.js +34 -0
- package/src/icu/formatter-registry.js.map +1 -0
- package/src/icu/formatters/base-formatter.d.ts +8 -0
- package/src/icu/formatters/base-formatter.d.ts.map +1 -0
- package/src/icu/formatters/base-formatter.js +3 -0
- package/src/icu/formatters/base-formatter.js.map +1 -0
- package/src/icu/formatters/date-formatter.d.ts +5 -0
- package/src/icu/formatters/date-formatter.d.ts.map +1 -0
- package/src/icu/formatters/date-formatter.js +31 -0
- package/src/icu/formatters/date-formatter.js.map +1 -0
- package/src/icu/formatters/number-formatter.d.ts +5 -0
- package/src/icu/formatters/number-formatter.d.ts.map +1 -0
- package/src/icu/formatters/number-formatter.js +33 -0
- package/src/icu/formatters/number-formatter.js.map +1 -0
- package/src/icu/formatters/plural-formatter.d.ts +5 -0
- package/src/icu/formatters/plural-formatter.d.ts.map +1 -0
- package/src/icu/formatters/plural-formatter.js +15 -0
- package/src/icu/formatters/plural-formatter.js.map +1 -0
- package/src/icu/formatters/select-formatter.d.ts +5 -0
- package/src/icu/formatters/select-formatter.d.ts.map +1 -0
- package/src/icu/formatters/select-formatter.js +10 -0
- package/src/icu/formatters/select-formatter.js.map +1 -0
- package/src/icu/formatters/selectordinal-formatter.d.ts +5 -0
- package/src/icu/formatters/selectordinal-formatter.d.ts.map +1 -0
- package/src/icu/formatters/selectordinal-formatter.js +22 -0
- package/src/icu/formatters/selectordinal-formatter.js.map +1 -0
- package/src/icu/formatters/time-formatter.d.ts +5 -0
- package/src/icu/formatters/time-formatter.d.ts.map +1 -0
- package/src/icu/formatters/time-formatter.js +31 -0
- package/src/icu/formatters/time-formatter.js.map +1 -0
- package/src/icu/helpers.d.ts +9 -0
- package/src/icu/helpers.d.ts.map +1 -0
- package/src/icu/helpers.js +31 -0
- package/src/icu/helpers.js.map +1 -0
- package/src/icu/parser.d.ts +31 -0
- package/src/icu/parser.d.ts.map +1 -0
- package/src/icu/parser.js +203 -0
- package/src/icu/parser.js.map +1 -0
- package/src/icu/runtime.d.ts +10 -0
- package/src/icu/runtime.d.ts.map +1 -0
- package/src/icu/runtime.js +33 -0
- package/src/icu/runtime.js.map +1 -0
- package/src/icu/tokenizer.d.ts +37 -0
- package/src/icu/tokenizer.d.ts.map +1 -0
- package/src/icu/tokenizer.js +187 -0
- package/src/icu/tokenizer.js.map +1 -0
- package/src/icu/validator.d.ts +11 -0
- package/src/icu/validator.d.ts.map +1 -0
- package/src/icu/validator.js +140 -0
- package/src/icu/validator.js.map +1 -0
- package/src/{index.ts → index.d.ts} +6 -38
- package/src/index.d.ts.map +1 -0
- package/src/index.js +76 -0
- package/src/index.js.map +1 -0
- package/src/interfaces/active-context.interface.d.ts +36 -0
- package/src/interfaces/active-context.interface.d.ts.map +1 -0
- package/src/interfaces/active-context.interface.js +3 -0
- package/src/interfaces/active-context.interface.js.map +1 -0
- package/src/interfaces/component-config.interface.d.ts +16 -0
- package/src/interfaces/component-config.interface.d.ts.map +1 -0
- package/src/interfaces/component-config.interface.js +6 -0
- package/src/interfaces/component-config.interface.js.map +1 -0
- package/src/interfaces/engine-config.interface.d.ts +22 -0
- package/src/interfaces/engine-config.interface.d.ts.map +1 -0
- package/src/interfaces/engine-config.interface.js +6 -0
- package/src/interfaces/engine-config.interface.js.map +1 -0
- package/src/interfaces/global-active-context.d.ts +23 -0
- package/src/interfaces/global-active-context.d.ts.map +1 -0
- package/src/interfaces/global-active-context.js +3 -0
- package/src/interfaces/global-active-context.js.map +1 -0
- package/src/interfaces/handleable-error-options.d.ts +14 -0
- package/src/interfaces/handleable-error-options.d.ts.map +1 -0
- package/src/interfaces/handleable-error-options.js +3 -0
- package/src/interfaces/handleable-error-options.js.map +1 -0
- package/src/interfaces/handleable.d.ts +21 -0
- package/src/interfaces/handleable.d.ts.map +1 -0
- package/src/interfaces/handleable.js +3 -0
- package/src/interfaces/handleable.js.map +1 -0
- package/src/interfaces/i18n-engine.interface.d.ts +46 -0
- package/src/interfaces/i18n-engine.interface.d.ts.map +1 -0
- package/src/interfaces/i18n-engine.interface.js +6 -0
- package/src/interfaces/i18n-engine.interface.js.map +1 -0
- package/src/interfaces/{index.ts → index.d.ts} +1 -1
- package/src/interfaces/index.d.ts.map +1 -0
- package/src/interfaces/index.js +7 -0
- package/src/interfaces/index.js.map +1 -0
- package/src/interfaces/language-definition.interface.d.ts +17 -0
- package/src/interfaces/language-definition.interface.d.ts.map +1 -0
- package/src/interfaces/language-definition.interface.js +6 -0
- package/src/interfaces/language-definition.interface.js.map +1 -0
- package/src/interfaces/translation-options.interface.d.ts +15 -0
- package/src/interfaces/translation-options.interface.d.ts.map +1 -0
- package/src/interfaces/translation-options.interface.js +6 -0
- package/src/interfaces/translation-options.interface.js.map +1 -0
- package/src/interfaces/validation-result.interface.d.ts +24 -0
- package/src/interfaces/validation-result.interface.d.ts.map +1 -0
- package/src/interfaces/validation-result.interface.js +6 -0
- package/src/interfaces/validation-result.interface.js.map +1 -0
- package/src/language-codes.d.ts +28 -0
- package/src/language-codes.d.ts.map +1 -0
- package/src/language-codes.js +32 -0
- package/src/language-codes.js.map +1 -0
- package/src/language-definition.d.ts +14 -0
- package/src/language-definition.d.ts.map +1 -0
- package/src/language-definition.js +3 -0
- package/src/language-definition.js.map +1 -0
- package/src/plugin-i18n-engine.d.ts +164 -0
- package/src/plugin-i18n-engine.d.ts.map +1 -0
- package/src/plugin-i18n-engine.js +493 -0
- package/src/plugin-i18n-engine.js.map +1 -0
- package/src/pluralization/{index.ts → index.d.ts} +1 -1
- package/src/pluralization/index.d.ts.map +1 -0
- package/src/pluralization/index.js +10 -0
- package/src/pluralization/index.js.map +1 -0
- package/src/pluralization/language-plural-map.d.ts +29 -0
- package/src/pluralization/language-plural-map.d.ts.map +1 -0
- package/src/pluralization/language-plural-map.js +155 -0
- package/src/pluralization/language-plural-map.js.map +1 -0
- package/src/pluralization/{plural-categories.ts → plural-categories.d.ts} +3 -5
- package/src/pluralization/plural-categories.d.ts.map +1 -0
- package/src/pluralization/plural-categories.js +8 -0
- package/src/pluralization/plural-categories.js.map +1 -0
- package/src/pluralization/plural-rules.d.ts +102 -0
- package/src/pluralization/plural-rules.d.ts.map +1 -0
- package/src/pluralization/plural-rules.js +263 -0
- package/src/pluralization/plural-rules.js.map +1 -0
- package/src/registry-config.d.ts +16 -0
- package/src/registry-config.d.ts.map +1 -0
- package/src/registry-config.js +3 -0
- package/src/registry-config.js.map +1 -0
- package/src/registry-error-type.d.ts +20 -0
- package/src/registry-error-type.d.ts.map +1 -0
- package/src/registry-error-type.js +24 -0
- package/src/registry-error-type.js.map +1 -0
- package/src/registry-error.d.ts +25 -0
- package/src/registry-error.d.ts.map +1 -0
- package/src/registry-error.js +63 -0
- package/src/registry-error.js.map +1 -0
- package/src/strict-types.d.ts +19 -0
- package/src/strict-types.d.ts.map +1 -0
- package/src/strict-types.js +18 -0
- package/src/strict-types.js.map +1 -0
- package/src/strings/de.d.ts +3 -0
- package/src/strings/de.d.ts.map +1 -0
- package/src/strings/de.js +57 -0
- package/src/strings/de.js.map +1 -0
- package/src/strings/en-GB.d.ts +3 -0
- package/src/strings/en-GB.d.ts.map +1 -0
- package/src/strings/en-GB.js +57 -0
- package/src/strings/en-GB.js.map +1 -0
- package/src/strings/en-US.d.ts +3 -0
- package/src/strings/en-US.d.ts.map +1 -0
- package/src/strings/en-US.js +57 -0
- package/src/strings/en-US.js.map +1 -0
- package/src/strings/es.d.ts +3 -0
- package/src/strings/es.d.ts.map +1 -0
- package/src/strings/es.js +57 -0
- package/src/strings/es.js.map +1 -0
- package/src/strings/fr.d.ts +3 -0
- package/src/strings/fr.d.ts.map +1 -0
- package/src/strings/fr.js +57 -0
- package/src/strings/fr.js.map +1 -0
- package/src/strings/ja.d.ts +3 -0
- package/src/strings/ja.d.ts.map +1 -0
- package/src/strings/ja.js +57 -0
- package/src/strings/ja.js.map +1 -0
- package/src/strings/uk.d.ts +3 -0
- package/src/strings/uk.d.ts.map +1 -0
- package/src/strings/uk.js +57 -0
- package/src/strings/uk.js.map +1 -0
- package/src/strings/zh-CN.d.ts +3 -0
- package/src/strings/zh-CN.d.ts.map +1 -0
- package/src/strings/zh-CN.js +57 -0
- package/src/strings/zh-CN.js.map +1 -0
- package/src/template.d.ts +13 -0
- package/src/template.d.ts.map +1 -0
- package/src/template.js +40 -0
- package/src/template.js.map +1 -0
- package/src/translation-engine.d.ts +9 -0
- package/src/translation-engine.d.ts.map +1 -0
- package/src/translation-engine.js +3 -0
- package/src/translation-engine.js.map +1 -0
- package/src/translation-request.d.ts +10 -0
- package/src/translation-request.d.ts.map +1 -0
- package/src/translation-request.js +3 -0
- package/src/translation-request.js.map +1 -0
- package/src/translation-response.d.ts +9 -0
- package/src/translation-response.d.ts.map +1 -0
- package/src/translation-response.js +3 -0
- package/src/translation-response.js.map +1 -0
- package/src/types/engine.d.ts +47 -0
- package/src/types/engine.d.ts.map +1 -0
- package/src/types/engine.js +8 -0
- package/src/types/engine.js.map +1 -0
- package/src/types/{index.ts → index.d.ts} +1 -1
- package/src/types/index.d.ts.map +1 -0
- package/src/types/index.js +9 -0
- package/src/types/index.js.map +1 -0
- package/src/types/{plural-types.ts → plural-types.d.ts} +3 -29
- package/src/types/plural-types.d.ts.map +1 -0
- package/src/types/plural-types.js +39 -0
- package/src/types/plural-types.js.map +1 -0
- package/src/{types.ts → types.d.ts} +21 -72
- package/src/types.d.ts.map +1 -0
- package/src/types.js +23 -0
- package/src/types.js.map +1 -0
- package/src/utils/currency.d.ts +81 -0
- package/src/utils/currency.d.ts.map +1 -0
- package/src/utils/currency.js +99 -0
- package/src/utils/currency.js.map +1 -0
- package/src/utils/html-escape.d.ts +22 -0
- package/src/utils/html-escape.d.ts.map +1 -0
- package/src/utils/html-escape.js +53 -0
- package/src/utils/html-escape.js.map +1 -0
- package/src/utils/{index.ts → index.d.ts} +1 -0
- package/src/utils/index.d.ts.map +1 -0
- package/src/utils/index.js +12 -0
- package/src/utils/index.js.map +1 -0
- package/src/utils/lru-cache.d.ts +42 -0
- package/src/utils/lru-cache.d.ts.map +1 -0
- package/src/utils/lru-cache.js +73 -0
- package/src/utils/lru-cache.js.map +1 -0
- package/src/utils/{plural-helpers.ts → plural-helpers.d.ts} +4 -14
- package/src/utils/plural-helpers.d.ts.map +1 -0
- package/src/utils/plural-helpers.js +35 -0
- package/src/utils/plural-helpers.js.map +1 -0
- package/src/utils/safe-object.d.ts +39 -0
- package/src/utils/safe-object.d.ts.map +1 -0
- package/src/utils/{safe-object.ts → safe-object.js} +34 -37
- package/src/utils/safe-object.js.map +1 -0
- package/src/utils/string-utils.d.ts +28 -0
- package/src/utils/string-utils.d.ts.map +1 -0
- package/src/utils/string-utils.js +63 -0
- package/src/utils/string-utils.js.map +1 -0
- package/src/utils/timezone.d.ts +50 -0
- package/src/utils/timezone.d.ts.map +1 -0
- package/src/utils/timezone.js +74 -0
- package/src/utils/timezone.js.map +1 -0
- package/src/utils/validation.d.ts +40 -0
- package/src/utils/validation.d.ts.map +1 -0
- package/src/utils/validation.js +69 -0
- package/src/utils/validation.js.map +1 -0
- package/src/utils.d.ts +65 -0
- package/src/utils.d.ts.map +1 -0
- package/src/utils.js +129 -0
- package/src/utils.js.map +1 -0
- package/src/validation/{index.ts → index.d.ts} +1 -0
- package/src/validation/index.d.ts.map +1 -0
- package/src/validation/index.js +5 -0
- package/src/validation/index.js.map +1 -0
- package/src/validation/plural-validator.d.ts +46 -0
- package/src/validation/plural-validator.d.ts.map +1 -0
- package/src/validation/plural-validator.js +123 -0
- package/src/validation/plural-validator.js.map +1 -0
- package/src/validation-config.d.ts +12 -0
- package/src/validation-config.d.ts.map +1 -0
- package/src/validation-config.js +3 -0
- package/src/validation-config.js.map +1 -0
- package/src/validation-result.d.ts +13 -0
- package/src/validation-result.d.ts.map +1 -0
- package/src/validation-result.js +3 -0
- package/src/validation-result.js.map +1 -0
- package/LICENSE +0 -21
- package/src/builders/i18n-builder.ts +0 -82
- package/src/component-definition.ts +0 -11
- package/src/component-registration.ts +0 -29
- package/src/component-registry.ts +0 -432
- package/src/context-error-type.ts +0 -7
- package/src/core/component-store.ts +0 -241
- package/src/core/context-manager.ts +0 -113
- package/src/core/enum-registry.ts +0 -106
- package/src/core/i18n-engine.ts +0 -710
- package/src/core/language-registry.ts +0 -345
- package/src/core-i18n.ts +0 -270
- package/src/core-plugin-factory.ts +0 -111
- package/src/core-string-key.ts +0 -59
- package/src/create-translation-adapter.ts +0 -93
- package/src/enum-registry.ts +0 -152
- package/src/errors/context-error.ts +0 -122
- package/src/errors/enhanced-error-base.ts +0 -260
- package/src/errors/handleable.ts +0 -152
- package/src/errors/i18n-error.ts +0 -494
- package/src/errors/simple-typed-error.ts +0 -81
- package/src/errors/translatable-generic.ts +0 -245
- package/src/errors/translatable-handleable-generic.ts +0 -222
- package/src/errors/translatable.ts +0 -138
- package/src/errors/typed-handleable.ts +0 -138
- package/src/errors/typed.ts +0 -617
- package/src/gender/gender-resolver.ts +0 -40
- package/src/global-active-context.ts +0 -266
- package/src/icu/ast.ts +0 -56
- package/src/icu/compiler.ts +0 -96
- package/src/icu/formatter-registry.ts +0 -36
- package/src/icu/formatters/base-formatter.ts +0 -8
- package/src/icu/formatters/date-formatter.ts +0 -30
- package/src/icu/formatters/number-formatter.ts +0 -32
- package/src/icu/formatters/plural-formatter.ts +0 -12
- package/src/icu/formatters/select-formatter.ts +0 -7
- package/src/icu/formatters/selectordinal-formatter.ts +0 -17
- package/src/icu/formatters/time-formatter.ts +0 -30
- package/src/icu/helpers.ts +0 -34
- package/src/icu/parser.ts +0 -242
- package/src/icu/runtime.ts +0 -37
- package/src/icu/tokenizer.ts +0 -212
- package/src/icu/validator.ts +0 -163
- package/src/interfaces/active-context.interface.ts +0 -41
- package/src/interfaces/component-config.interface.ts +0 -17
- package/src/interfaces/engine-config.interface.ts +0 -22
- package/src/interfaces/global-active-context.ts +0 -39
- package/src/interfaces/handleable-error-options.ts +0 -13
- package/src/interfaces/handleable.ts +0 -20
- package/src/interfaces/i18n-engine.interface.ts +0 -57
- package/src/interfaces/language-definition.interface.ts +0 -17
- package/src/interfaces/translation-options.interface.ts +0 -15
- package/src/interfaces/validation-result.interface.ts +0 -24
- package/src/language-codes.ts +0 -40
- package/src/language-definition.ts +0 -13
- package/src/plugin-i18n-engine.ts +0 -707
- package/src/pluralization/language-plural-map.ts +0 -186
- package/src/pluralization/plural-rules.ts +0 -228
- package/src/registry-config.ts +0 -16
- package/src/registry-error-type.ts +0 -19
- package/src/registry-error.ts +0 -100
- package/src/strict-types.ts +0 -35
- package/src/strings/de.ts +0 -75
- package/src/strings/en-GB.ts +0 -74
- package/src/strings/en-US.ts +0 -74
- package/src/strings/es.ts +0 -74
- package/src/strings/fr.ts +0 -75
- package/src/strings/ja.ts +0 -73
- package/src/strings/uk.ts +0 -73
- package/src/strings/zh-CN.ts +0 -72
- package/src/template.ts +0 -72
- package/src/translation-engine.ts +0 -18
- package/src/translation-request.ts +0 -12
- package/src/translation-response.ts +0 -8
- package/src/types/engine.ts +0 -55
- package/src/utils/currency.ts +0 -141
- package/src/utils/html-escape.ts +0 -55
- package/src/utils/lru-cache.ts +0 -76
- package/src/utils/string-utils.ts +0 -77
- package/src/utils/timezone.ts +0 -76
- package/src/utils/validation.ts +0 -66
- package/src/utils.ts +0 -215
- package/src/validation/plural-validator.ts +0 -168
- package/src/validation-config.ts +0 -11
- package/src/validation-result.ts +0 -12
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ICU MessageFormat Tokenizer
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Tokenizer = exports.TokenType = void 0;
|
|
7
|
+
var TokenType;
|
|
8
|
+
(function (TokenType) {
|
|
9
|
+
TokenType["TEXT"] = "TEXT";
|
|
10
|
+
TokenType["OPEN_BRACE"] = "OPEN_BRACE";
|
|
11
|
+
TokenType["CLOSE_BRACE"] = "CLOSE_BRACE";
|
|
12
|
+
TokenType["COMMA"] = "COMMA";
|
|
13
|
+
TokenType["HASH"] = "HASH";
|
|
14
|
+
TokenType["IDENTIFIER"] = "IDENTIFIER";
|
|
15
|
+
TokenType["EOF"] = "EOF";
|
|
16
|
+
})(TokenType || (exports.TokenType = TokenType = {}));
|
|
17
|
+
class Tokenizer {
|
|
18
|
+
input;
|
|
19
|
+
position = 0;
|
|
20
|
+
length;
|
|
21
|
+
braceDepth = 0;
|
|
22
|
+
lastTokenType = null;
|
|
23
|
+
formatDepths = new Set(); // Tracks which depths are format specs
|
|
24
|
+
lastIdentifierWasAtFormatDepth = false;
|
|
25
|
+
constructor(input) {
|
|
26
|
+
this.input = input;
|
|
27
|
+
this.length = input.length;
|
|
28
|
+
}
|
|
29
|
+
tokenize() {
|
|
30
|
+
const tokens = [];
|
|
31
|
+
while (this.position < this.length) {
|
|
32
|
+
const token = this.nextToken();
|
|
33
|
+
if (token.type !== TokenType.EOF) {
|
|
34
|
+
tokens.push(token);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
tokens.push({ type: TokenType.EOF, value: '', position: this.position });
|
|
38
|
+
return tokens;
|
|
39
|
+
}
|
|
40
|
+
nextToken() {
|
|
41
|
+
if (this.position >= this.length) {
|
|
42
|
+
return { type: TokenType.EOF, value: '', position: this.position };
|
|
43
|
+
}
|
|
44
|
+
const char = this.input[this.position];
|
|
45
|
+
// Handle escape sequences - quoted braces
|
|
46
|
+
if (char === "'") {
|
|
47
|
+
const next = this.peek();
|
|
48
|
+
if (next === '{' || next === '}') {
|
|
49
|
+
const pos = this.position;
|
|
50
|
+
this.position++; // Skip quote
|
|
51
|
+
this.position++; // Skip brace
|
|
52
|
+
return { type: TokenType.TEXT, value: next, position: pos };
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
// Special characters
|
|
56
|
+
if (char === '{') {
|
|
57
|
+
const prevDepth = this.braceDepth;
|
|
58
|
+
this.braceDepth++;
|
|
59
|
+
// Add to format depths if:
|
|
60
|
+
// 1. Start of message (null)
|
|
61
|
+
// 2. After TEXT - new format in message (unless after case name)
|
|
62
|
+
// 3. After CLOSE_BRACE at depth 0 - consecutive formats
|
|
63
|
+
// 4. After OPEN_BRACE - nested format (unless after case name)
|
|
64
|
+
// NOT after IDENTIFIER at format depth - that's a case name, next brace is message content
|
|
65
|
+
if (this.lastTokenType === null ||
|
|
66
|
+
(this.lastTokenType === TokenType.TEXT && !this.lastIdentifierWasAtFormatDepth) ||
|
|
67
|
+
(this.lastTokenType === TokenType.CLOSE_BRACE && prevDepth === 0) ||
|
|
68
|
+
(this.lastTokenType === TokenType.OPEN_BRACE && !this.lastIdentifierWasAtFormatDepth)) {
|
|
69
|
+
this.formatDepths.add(this.braceDepth);
|
|
70
|
+
}
|
|
71
|
+
this.lastIdentifierWasAtFormatDepth = false;
|
|
72
|
+
const token = { type: TokenType.OPEN_BRACE, value: char, position: this.position++ };
|
|
73
|
+
this.lastTokenType = TokenType.OPEN_BRACE;
|
|
74
|
+
return token;
|
|
75
|
+
}
|
|
76
|
+
if (char === '}') {
|
|
77
|
+
this.formatDepths.delete(this.braceDepth);
|
|
78
|
+
this.braceDepth--;
|
|
79
|
+
this.lastIdentifierWasAtFormatDepth = false; // Reset after closing
|
|
80
|
+
const token = { type: TokenType.CLOSE_BRACE, value: char, position: this.position++ };
|
|
81
|
+
this.lastTokenType = TokenType.CLOSE_BRACE;
|
|
82
|
+
return token;
|
|
83
|
+
}
|
|
84
|
+
if (char === ',') {
|
|
85
|
+
// Comma at depth 1+ is format separator, at depth 0 is text
|
|
86
|
+
if (this.braceDepth >= 1) {
|
|
87
|
+
const token = { type: TokenType.COMMA, value: char, position: this.position++ };
|
|
88
|
+
this.lastTokenType = TokenType.COMMA;
|
|
89
|
+
return token;
|
|
90
|
+
}
|
|
91
|
+
// At depth 0, comma is just text
|
|
92
|
+
return this.readText();
|
|
93
|
+
}
|
|
94
|
+
if (char === '#') {
|
|
95
|
+
return { type: TokenType.HASH, value: char, position: this.position++ };
|
|
96
|
+
}
|
|
97
|
+
// Whitespace - skip at format level OR after identifier at depth 1
|
|
98
|
+
if (this.isWhitespace(char) && (this.isAtFormatLevel() || (this.braceDepth === 1 && this.lastTokenType === TokenType.IDENTIFIER))) {
|
|
99
|
+
this.position++;
|
|
100
|
+
return this.nextToken();
|
|
101
|
+
}
|
|
102
|
+
// Identifier (variable names, keywords) - at format level
|
|
103
|
+
if (this.isIdentifierStart(char)) {
|
|
104
|
+
if (this.isAtFormatLevel()) {
|
|
105
|
+
return this.readIdentifier();
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
// Text (everything else)
|
|
109
|
+
return this.readText();
|
|
110
|
+
}
|
|
111
|
+
readIdentifier() {
|
|
112
|
+
const start = this.position;
|
|
113
|
+
while (this.position < this.length && this.isIdentifierChar(this.input[this.position])) {
|
|
114
|
+
this.position++;
|
|
115
|
+
}
|
|
116
|
+
const token = {
|
|
117
|
+
type: TokenType.IDENTIFIER,
|
|
118
|
+
value: this.input.substring(start, this.position),
|
|
119
|
+
position: start,
|
|
120
|
+
};
|
|
121
|
+
this.lastTokenType = TokenType.IDENTIFIER;
|
|
122
|
+
this.lastIdentifierWasAtFormatDepth = this.formatDepths.has(this.braceDepth);
|
|
123
|
+
return token;
|
|
124
|
+
}
|
|
125
|
+
readText() {
|
|
126
|
+
const start = this.position;
|
|
127
|
+
let text = '';
|
|
128
|
+
while (this.position < this.length) {
|
|
129
|
+
const char = this.input[this.position];
|
|
130
|
+
// Handle escaped quotes - stop before them
|
|
131
|
+
if (char === "'" && (this.peek() === '{' || this.peek() === '}')) {
|
|
132
|
+
break;
|
|
133
|
+
}
|
|
134
|
+
// Stop at special characters (but not if they're escaped)
|
|
135
|
+
if (char === '{' || char === '#') {
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
138
|
+
// For }, only stop if we're inside braces
|
|
139
|
+
if (char === '}' && this.braceDepth > 0) {
|
|
140
|
+
break;
|
|
141
|
+
}
|
|
142
|
+
// Stop at comma if we're at format level (depth >= 1)
|
|
143
|
+
if (char === ',' && this.braceDepth >= 1) {
|
|
144
|
+
break;
|
|
145
|
+
}
|
|
146
|
+
text += char;
|
|
147
|
+
this.position++;
|
|
148
|
+
}
|
|
149
|
+
const token = {
|
|
150
|
+
type: TokenType.TEXT,
|
|
151
|
+
value: text,
|
|
152
|
+
position: start,
|
|
153
|
+
};
|
|
154
|
+
this.lastTokenType = TokenType.TEXT;
|
|
155
|
+
// Don't reset the identifier flag for whitespace-only text
|
|
156
|
+
if (text.trim() !== '') {
|
|
157
|
+
this.lastIdentifierWasAtFormatDepth = false;
|
|
158
|
+
}
|
|
159
|
+
return token;
|
|
160
|
+
}
|
|
161
|
+
peek() {
|
|
162
|
+
return this.position + 1 < this.length ? this.input[this.position + 1] : '';
|
|
163
|
+
}
|
|
164
|
+
isIdentifierStart(char) {
|
|
165
|
+
return /[a-zA-Z_]/.test(char);
|
|
166
|
+
}
|
|
167
|
+
isIdentifierChar(char) {
|
|
168
|
+
return /[a-zA-Z0-9_]/.test(char);
|
|
169
|
+
}
|
|
170
|
+
isWhitespace(char) {
|
|
171
|
+
return /\s/.test(char);
|
|
172
|
+
}
|
|
173
|
+
isAtFormatLevel() {
|
|
174
|
+
// We're at format level if current depth is marked as format AND:
|
|
175
|
+
// 1. After OPEN_BRACE (expecting variable name)
|
|
176
|
+
// 2. After COMMA (expecting format type or case name)
|
|
177
|
+
// 3. After CLOSE_BRACE (just finished a case message, expecting another case name)
|
|
178
|
+
if (!this.formatDepths.has(this.braceDepth)) {
|
|
179
|
+
return false;
|
|
180
|
+
}
|
|
181
|
+
return this.lastTokenType === TokenType.OPEN_BRACE ||
|
|
182
|
+
this.lastTokenType === TokenType.COMMA ||
|
|
183
|
+
this.lastTokenType === TokenType.CLOSE_BRACE;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
exports.Tokenizer = Tokenizer;
|
|
187
|
+
//# sourceMappingURL=tokenizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenizer.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/icu/tokenizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { MessageNode } from './ast';
|
|
2
|
+
export declare class ValidationError extends Error {
|
|
3
|
+
constructor(message: string);
|
|
4
|
+
}
|
|
5
|
+
export interface ValidationOptions {
|
|
6
|
+
requireOtherCase?: boolean;
|
|
7
|
+
allowCircularReferences?: boolean;
|
|
8
|
+
maxDepth?: number;
|
|
9
|
+
}
|
|
10
|
+
export declare function validate(ast: MessageNode, options?: ValidationOptions): void;
|
|
11
|
+
//# sourceMappingURL=validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/icu/validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAqE,MAAM,OAAO,CAAC;AAEvG,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAI5B;AAED,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAQD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,GAAE,iBAAsB,GAAG,IAAI,CAIhF"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ValidationError = void 0;
|
|
4
|
+
exports.validate = validate;
|
|
5
|
+
const ast_1 = require("./ast");
|
|
6
|
+
class ValidationError extends Error {
|
|
7
|
+
constructor(message) {
|
|
8
|
+
super(message);
|
|
9
|
+
this.name = 'ValidationError';
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.ValidationError = ValidationError;
|
|
13
|
+
const DEFAULT_OPTIONS = {
|
|
14
|
+
requireOtherCase: true,
|
|
15
|
+
allowCircularReferences: false,
|
|
16
|
+
maxDepth: 10,
|
|
17
|
+
};
|
|
18
|
+
function validate(ast, options = {}) {
|
|
19
|
+
const opts = { ...DEFAULT_OPTIONS, ...options };
|
|
20
|
+
const context = new ValidationContext(opts);
|
|
21
|
+
validateMessage(ast, context);
|
|
22
|
+
}
|
|
23
|
+
class ValidationContext {
|
|
24
|
+
options;
|
|
25
|
+
argumentNames = new Set();
|
|
26
|
+
currentDepth = 0;
|
|
27
|
+
constructor(options) {
|
|
28
|
+
this.options = options;
|
|
29
|
+
}
|
|
30
|
+
addArgument(name) {
|
|
31
|
+
this.argumentNames.add(name);
|
|
32
|
+
}
|
|
33
|
+
hasArgument(name) {
|
|
34
|
+
return this.argumentNames.has(name);
|
|
35
|
+
}
|
|
36
|
+
enterDepth() {
|
|
37
|
+
this.currentDepth++;
|
|
38
|
+
if (this.currentDepth > this.options.maxDepth) {
|
|
39
|
+
throw new ValidationError(`Maximum nesting depth of ${this.options.maxDepth} exceeded`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exitDepth() {
|
|
43
|
+
this.currentDepth--;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function validateMessage(node, context) {
|
|
47
|
+
for (const element of node.elements) {
|
|
48
|
+
validateNode(element, context);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
function validateNode(node, context) {
|
|
52
|
+
switch (node.type) {
|
|
53
|
+
case ast_1.NodeType.LITERAL:
|
|
54
|
+
break;
|
|
55
|
+
case ast_1.NodeType.ARGUMENT:
|
|
56
|
+
validateArgument(node, context);
|
|
57
|
+
break;
|
|
58
|
+
case ast_1.NodeType.PLURAL:
|
|
59
|
+
validatePlural(node, context);
|
|
60
|
+
break;
|
|
61
|
+
case ast_1.NodeType.SELECT:
|
|
62
|
+
validateSelect(node, context);
|
|
63
|
+
break;
|
|
64
|
+
case ast_1.NodeType.SELECTORDINAL:
|
|
65
|
+
validateSelectOrdinal(node, context);
|
|
66
|
+
break;
|
|
67
|
+
default:
|
|
68
|
+
throw new ValidationError(`Unknown node type: ${node.type}`);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
function validateArgument(node, context) {
|
|
72
|
+
if (!node.name || node.name.trim() === '') {
|
|
73
|
+
throw new ValidationError('Argument name cannot be empty');
|
|
74
|
+
}
|
|
75
|
+
context.addArgument(node.name);
|
|
76
|
+
}
|
|
77
|
+
function validatePlural(node, context) {
|
|
78
|
+
if (!node.name || node.name.trim() === '') {
|
|
79
|
+
throw new ValidationError('Plural variable name cannot be empty');
|
|
80
|
+
}
|
|
81
|
+
context.addArgument(node.name);
|
|
82
|
+
if (!node.cases || Object.keys(node.cases).length === 0) {
|
|
83
|
+
throw new ValidationError(`Plural '${node.name}' must have at least one case`);
|
|
84
|
+
}
|
|
85
|
+
if (context.options.requireOtherCase && !node.cases.other) {
|
|
86
|
+
throw new ValidationError(`Plural '${node.name}' must have an 'other' case`);
|
|
87
|
+
}
|
|
88
|
+
const validCases = ['zero', 'one', 'two', 'few', 'many', 'other'];
|
|
89
|
+
for (const caseName of Object.keys(node.cases)) {
|
|
90
|
+
if (!validCases.includes(caseName)) {
|
|
91
|
+
throw new ValidationError(`Invalid plural case '${caseName}' in '${node.name}'`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
context.enterDepth();
|
|
95
|
+
for (const caseMessage of Object.values(node.cases)) {
|
|
96
|
+
validateMessage(caseMessage, context);
|
|
97
|
+
}
|
|
98
|
+
context.exitDepth();
|
|
99
|
+
}
|
|
100
|
+
function validateSelect(node, context) {
|
|
101
|
+
if (!node.name || node.name.trim() === '') {
|
|
102
|
+
throw new ValidationError('Select variable name cannot be empty');
|
|
103
|
+
}
|
|
104
|
+
context.addArgument(node.name);
|
|
105
|
+
if (!node.cases || Object.keys(node.cases).length === 0) {
|
|
106
|
+
throw new ValidationError(`Select '${node.name}' must have at least one case`);
|
|
107
|
+
}
|
|
108
|
+
if (context.options.requireOtherCase && !node.cases.other) {
|
|
109
|
+
throw new ValidationError(`Select '${node.name}' must have an 'other' case`);
|
|
110
|
+
}
|
|
111
|
+
context.enterDepth();
|
|
112
|
+
for (const caseMessage of Object.values(node.cases)) {
|
|
113
|
+
validateMessage(caseMessage, context);
|
|
114
|
+
}
|
|
115
|
+
context.exitDepth();
|
|
116
|
+
}
|
|
117
|
+
function validateSelectOrdinal(node, context) {
|
|
118
|
+
if (!node.name || node.name.trim() === '') {
|
|
119
|
+
throw new ValidationError('SelectOrdinal variable name cannot be empty');
|
|
120
|
+
}
|
|
121
|
+
context.addArgument(node.name);
|
|
122
|
+
if (!node.cases || Object.keys(node.cases).length === 0) {
|
|
123
|
+
throw new ValidationError(`SelectOrdinal '${node.name}' must have at least one case`);
|
|
124
|
+
}
|
|
125
|
+
if (context.options.requireOtherCase && !node.cases.other) {
|
|
126
|
+
throw new ValidationError(`SelectOrdinal '${node.name}' must have an 'other' case`);
|
|
127
|
+
}
|
|
128
|
+
const validCases = ['zero', 'one', 'two', 'few', 'many', 'other'];
|
|
129
|
+
for (const caseName of Object.keys(node.cases)) {
|
|
130
|
+
if (!validCases.includes(caseName)) {
|
|
131
|
+
throw new ValidationError(`Invalid selectordinal case '${caseName}' in '${node.name}'`);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
context.enterDepth();
|
|
135
|
+
for (const caseMessage of Object.values(node.cases)) {
|
|
136
|
+
validateMessage(caseMessage, context);
|
|
137
|
+
}
|
|
138
|
+
context.exitDepth();
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/icu/validator.ts"],"names":[],"mappings":";;;AAqBA,4BAIC;AAzBD,+BAAuG;AAEvG,MAAa,eAAgB,SAAQ,KAAK;IACxC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AALD,0CAKC;AAQD,MAAM,eAAe,GAAsB;IACzC,gBAAgB,EAAE,IAAI;IACtB,uBAAuB,EAAE,KAAK;IAC9B,QAAQ,EAAE,EAAE;CACb,CAAC;AAEF,SAAgB,QAAQ,CAAC,GAAgB,EAAE,UAA6B,EAAE;IACxE,MAAM,IAAI,GAAG,EAAE,GAAG,eAAe,EAAE,GAAG,OAAO,EAAE,CAAC;IAChD,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC5C,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,iBAAiB;IAIF;IAHX,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,YAAY,GAAG,CAAC,CAAC;IAEzB,YAAmB,OAA0B;QAA1B,YAAO,GAAP,OAAO,CAAmB;IAAG,CAAC;IAEjD,WAAW,CAAC,IAAY;QACtB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,WAAW,CAAC,IAAY;QACtB,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,UAAU;QACR,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAS,EAAE,CAAC;YAC/C,MAAM,IAAI,eAAe,CAAC,4BAA4B,IAAI,CAAC,OAAO,CAAC,QAAQ,WAAW,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;IAED,SAAS;QACP,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;CACF;AAED,SAAS,eAAe,CAAC,IAAiB,EAAE,OAA0B;IACpE,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,IAAS,EAAE,OAA0B;IACzD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,cAAQ,CAAC,OAAO;YACnB,MAAM;QACR,KAAK,cAAQ,CAAC,QAAQ;YACpB,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAChC,MAAM;QACR,KAAK,cAAQ,CAAC,MAAM;YAClB,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC9B,MAAM;QACR,KAAK,cAAQ,CAAC,MAAM;YAClB,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC9B,MAAM;QACR,KAAK,cAAQ,CAAC,aAAa;YACzB,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACrC,MAAM;QACR;YACE,MAAM,IAAI,eAAe,CAAC,sBAAsB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAkB,EAAE,OAA0B;IACtE,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC1C,MAAM,IAAI,eAAe,CAAC,+BAA+B,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,cAAc,CAAC,IAAgB,EAAE,OAA0B;IAClE,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC1C,MAAM,IAAI,eAAe,CAAC,sCAAsC,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE/B,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,eAAe,CAAC,WAAW,IAAI,CAAC,IAAI,+BAA+B,CAAC,CAAC;IACjF,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAC1D,MAAM,IAAI,eAAe,CAAC,WAAW,IAAI,CAAC,IAAI,6BAA6B,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAClE,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,eAAe,CAAC,wBAAwB,QAAQ,SAAS,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IAED,OAAO,CAAC,UAAU,EAAE,CAAC;IACrB,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACpD,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,CAAC,SAAS,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,cAAc,CAAC,IAAgB,EAAE,OAA0B;IAClE,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC1C,MAAM,IAAI,eAAe,CAAC,sCAAsC,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE/B,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,eAAe,CAAC,WAAW,IAAI,CAAC,IAAI,+BAA+B,CAAC,CAAC;IACjF,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAC1D,MAAM,IAAI,eAAe,CAAC,WAAW,IAAI,CAAC,IAAI,6BAA6B,CAAC,CAAC;IAC/E,CAAC;IAED,OAAO,CAAC,UAAU,EAAE,CAAC;IACrB,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACpD,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,CAAC,SAAS,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAuB,EAAE,OAA0B;IAChF,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC1C,MAAM,IAAI,eAAe,CAAC,6CAA6C,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE/B,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,eAAe,CAAC,kBAAkB,IAAI,CAAC,IAAI,+BAA+B,CAAC,CAAC;IACxF,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAC1D,MAAM,IAAI,eAAe,CAAC,kBAAkB,IAAI,CAAC,IAAI,6BAA6B,CAAC,CAAC;IACtF,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAClE,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,eAAe,CAAC,+BAA+B,QAAQ,SAAS,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;IAED,OAAO,CAAC,UAAU,EAAE,CAAC;IACrB,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACpD,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,CAAC,SAAS,EAAE,CAAC;AACtB,CAAC"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// V2 Exports (primary)
|
|
2
1
|
export * from './builders';
|
|
3
2
|
export * from './core';
|
|
4
3
|
export * from './errors';
|
|
@@ -8,37 +7,18 @@ export * from './pluralization';
|
|
|
8
7
|
export * from './types';
|
|
9
8
|
export * from './utils';
|
|
10
9
|
export * from './validation';
|
|
11
|
-
|
|
12
|
-
// Explicit exports for type safety
|
|
13
10
|
export type { GenderedString } from './gender/gender-categories';
|
|
14
11
|
export type { PluralString } from './types/plural-types';
|
|
15
12
|
export { CurrencyCode, getCurrencyFormat } from './utils/currency';
|
|
16
|
-
export type {
|
|
17
|
-
|
|
18
|
-
CurrencyFormat,
|
|
19
|
-
CurrencyPosition,
|
|
20
|
-
} from './utils/currency';
|
|
21
|
-
export {
|
|
22
|
-
createGenderedString,
|
|
23
|
-
createPluralString,
|
|
24
|
-
} from './utils/plural-helpers';
|
|
13
|
+
export type { CurrencyData, CurrencyFormat, CurrencyPosition, } from './utils/currency';
|
|
14
|
+
export { createGenderedString, createPluralString, } from './utils/plural-helpers';
|
|
25
15
|
export { isValidTimezone, Timezone } from './utils/timezone';
|
|
26
|
-
|
|
27
|
-
// Convenience aliases
|
|
28
16
|
export { I18nBuilder as Builder } from './builders/i18n-builder';
|
|
29
17
|
export { I18nEngine as I18n } from './core/i18n-engine';
|
|
30
|
-
|
|
31
|
-
// Reset utility
|
|
32
|
-
import { I18nEngine } from './core/i18n-engine';
|
|
33
|
-
export function resetAll(): void {
|
|
34
|
-
I18nEngine.resetAll();
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
// Legacy exports (deprecated - for backwards compatibility)
|
|
18
|
+
export declare function resetAll(): void;
|
|
38
19
|
export * from './active-context';
|
|
39
20
|
export * from './component-definition';
|
|
40
21
|
export * from './global-active-context';
|
|
41
|
-
// export * from './language-registry'; // Removed - conflicts with v2 core/language-registry
|
|
42
22
|
export * from './component-registration';
|
|
43
23
|
export * from './component-registry';
|
|
44
24
|
export * from './context-error-type';
|
|
@@ -59,20 +39,8 @@ export * from './translation-request';
|
|
|
59
39
|
export * from './translation-response';
|
|
60
40
|
export * from './types';
|
|
61
41
|
export * from './validation-config';
|
|
62
|
-
|
|
63
|
-
// Legacy convenience exports
|
|
64
|
-
export {
|
|
65
|
-
createCorePluginI18nEngine as createCoreI18n,
|
|
66
|
-
createCorePluginI18nEngine as createCoreI18nEngine,
|
|
67
|
-
getCorePluginTranslation as getCoreTranslation,
|
|
68
|
-
safeCorePluginTranslation as safeCoreTranslation,
|
|
69
|
-
} from './core-plugin-factory';
|
|
70
|
-
// Export core plugin factory functions
|
|
42
|
+
export { createCorePluginI18nEngine as createCoreI18n, createCorePluginI18nEngine as createCoreI18nEngine, getCorePluginTranslation as getCoreTranslation, safeCorePluginTranslation as safeCoreTranslation, } from './core-plugin-factory';
|
|
71
43
|
export * from './core-plugin-factory';
|
|
72
44
|
export { PluginI18nEngine as PluginI18n } from './plugin-i18n-engine';
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
import { PluginI18nEngine } from './plugin-i18n-engine';
|
|
76
|
-
export function resetAllI18nEngines(): void {
|
|
77
|
-
PluginI18nEngine.resetAll();
|
|
78
|
-
}
|
|
45
|
+
export declare function resetAllI18nEngines(): void;
|
|
46
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAG7B,YAAY,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACnE,YAAY,EACV,YAAY,EACZ,cAAc,EACd,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG7D,OAAO,EAAE,WAAW,IAAI,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,UAAU,IAAI,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAIxD,wBAAgB,QAAQ,IAAI,IAAI,CAE/B;AAGD,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AAExC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uCAAuC,CAAC;AACtD,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AAGpC,OAAO,EACL,0BAA0B,IAAI,cAAc,EAC5C,0BAA0B,IAAI,oBAAoB,EAClD,wBAAwB,IAAI,kBAAkB,EAC9C,yBAAyB,IAAI,mBAAmB,GACjD,MAAM,uBAAuB,CAAC;AAE/B,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,gBAAgB,IAAI,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAItE,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}
|
package/src/index.js
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PluginI18n = exports.safeCoreTranslation = exports.getCoreTranslation = exports.createCoreI18nEngine = exports.createCoreI18n = exports.I18n = exports.Builder = exports.Timezone = exports.isValidTimezone = exports.createPluralString = exports.createGenderedString = exports.getCurrencyFormat = exports.CurrencyCode = void 0;
|
|
4
|
+
exports.resetAll = resetAll;
|
|
5
|
+
exports.resetAllI18nEngines = resetAllI18nEngines;
|
|
6
|
+
const tslib_1 = require("tslib");
|
|
7
|
+
// V2 Exports (primary)
|
|
8
|
+
tslib_1.__exportStar(require("./builders"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./core"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./errors"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./gender"), exports);
|
|
12
|
+
tslib_1.__exportStar(require("./interfaces"), exports);
|
|
13
|
+
tslib_1.__exportStar(require("./pluralization"), exports);
|
|
14
|
+
tslib_1.__exportStar(require("./types"), exports);
|
|
15
|
+
tslib_1.__exportStar(require("./utils"), exports);
|
|
16
|
+
tslib_1.__exportStar(require("./validation"), exports);
|
|
17
|
+
var currency_1 = require("./utils/currency");
|
|
18
|
+
Object.defineProperty(exports, "CurrencyCode", { enumerable: true, get: function () { return currency_1.CurrencyCode; } });
|
|
19
|
+
Object.defineProperty(exports, "getCurrencyFormat", { enumerable: true, get: function () { return currency_1.getCurrencyFormat; } });
|
|
20
|
+
var plural_helpers_1 = require("./utils/plural-helpers");
|
|
21
|
+
Object.defineProperty(exports, "createGenderedString", { enumerable: true, get: function () { return plural_helpers_1.createGenderedString; } });
|
|
22
|
+
Object.defineProperty(exports, "createPluralString", { enumerable: true, get: function () { return plural_helpers_1.createPluralString; } });
|
|
23
|
+
var timezone_1 = require("./utils/timezone");
|
|
24
|
+
Object.defineProperty(exports, "isValidTimezone", { enumerable: true, get: function () { return timezone_1.isValidTimezone; } });
|
|
25
|
+
Object.defineProperty(exports, "Timezone", { enumerable: true, get: function () { return timezone_1.Timezone; } });
|
|
26
|
+
// Convenience aliases
|
|
27
|
+
var i18n_builder_1 = require("./builders/i18n-builder");
|
|
28
|
+
Object.defineProperty(exports, "Builder", { enumerable: true, get: function () { return i18n_builder_1.I18nBuilder; } });
|
|
29
|
+
var i18n_engine_1 = require("./core/i18n-engine");
|
|
30
|
+
Object.defineProperty(exports, "I18n", { enumerable: true, get: function () { return i18n_engine_1.I18nEngine; } });
|
|
31
|
+
// Reset utility
|
|
32
|
+
const i18n_engine_2 = require("./core/i18n-engine");
|
|
33
|
+
function resetAll() {
|
|
34
|
+
i18n_engine_2.I18nEngine.resetAll();
|
|
35
|
+
}
|
|
36
|
+
// Legacy exports (deprecated - for backwards compatibility)
|
|
37
|
+
tslib_1.__exportStar(require("./active-context"), exports);
|
|
38
|
+
tslib_1.__exportStar(require("./component-definition"), exports);
|
|
39
|
+
tslib_1.__exportStar(require("./global-active-context"), exports);
|
|
40
|
+
// export * from './language-registry'; // Removed - conflicts with v2 core/language-registry
|
|
41
|
+
tslib_1.__exportStar(require("./component-registration"), exports);
|
|
42
|
+
tslib_1.__exportStar(require("./component-registry"), exports);
|
|
43
|
+
tslib_1.__exportStar(require("./context-error-type"), exports);
|
|
44
|
+
tslib_1.__exportStar(require("./core-i18n"), exports);
|
|
45
|
+
tslib_1.__exportStar(require("./core-string-key"), exports);
|
|
46
|
+
tslib_1.__exportStar(require("./create-translation-adapter"), exports);
|
|
47
|
+
tslib_1.__exportStar(require("./enum-registry"), exports);
|
|
48
|
+
tslib_1.__exportStar(require("./interfaces/handleable"), exports);
|
|
49
|
+
tslib_1.__exportStar(require("./interfaces/handleable-error-options"), exports);
|
|
50
|
+
tslib_1.__exportStar(require("./language-codes"), exports);
|
|
51
|
+
tslib_1.__exportStar(require("./plugin-i18n-engine"), exports);
|
|
52
|
+
tslib_1.__exportStar(require("./registry-config"), exports);
|
|
53
|
+
tslib_1.__exportStar(require("./registry-error"), exports);
|
|
54
|
+
tslib_1.__exportStar(require("./registry-error-type"), exports);
|
|
55
|
+
tslib_1.__exportStar(require("./template"), exports);
|
|
56
|
+
tslib_1.__exportStar(require("./translation-engine"), exports);
|
|
57
|
+
tslib_1.__exportStar(require("./translation-request"), exports);
|
|
58
|
+
tslib_1.__exportStar(require("./translation-response"), exports);
|
|
59
|
+
tslib_1.__exportStar(require("./types"), exports);
|
|
60
|
+
tslib_1.__exportStar(require("./validation-config"), exports);
|
|
61
|
+
// Legacy convenience exports
|
|
62
|
+
var core_plugin_factory_1 = require("./core-plugin-factory");
|
|
63
|
+
Object.defineProperty(exports, "createCoreI18n", { enumerable: true, get: function () { return core_plugin_factory_1.createCorePluginI18nEngine; } });
|
|
64
|
+
Object.defineProperty(exports, "createCoreI18nEngine", { enumerable: true, get: function () { return core_plugin_factory_1.createCorePluginI18nEngine; } });
|
|
65
|
+
Object.defineProperty(exports, "getCoreTranslation", { enumerable: true, get: function () { return core_plugin_factory_1.getCorePluginTranslation; } });
|
|
66
|
+
Object.defineProperty(exports, "safeCoreTranslation", { enumerable: true, get: function () { return core_plugin_factory_1.safeCorePluginTranslation; } });
|
|
67
|
+
// Export core plugin factory functions
|
|
68
|
+
tslib_1.__exportStar(require("./core-plugin-factory"), exports);
|
|
69
|
+
var plugin_i18n_engine_1 = require("./plugin-i18n-engine");
|
|
70
|
+
Object.defineProperty(exports, "PluginI18n", { enumerable: true, get: function () { return plugin_i18n_engine_1.PluginI18nEngine; } });
|
|
71
|
+
// Legacy testing utilities
|
|
72
|
+
const plugin_i18n_engine_2 = require("./plugin-i18n-engine");
|
|
73
|
+
function resetAllI18nEngines() {
|
|
74
|
+
plugin_i18n_engine_2.PluginI18nEngine.resetAll();
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/index.ts"],"names":[],"mappings":";;;AAgCA,4BAEC;AAyCD,kDAEC;;AA7ED,uBAAuB;AACvB,qDAA2B;AAC3B,iDAAuB;AACvB,mDAAyB;AACzB,mDAAyB;AACzB,uDAA6B;AAC7B,0DAAgC;AAChC,kDAAwB;AACxB,kDAAwB;AACxB,uDAA6B;AAK7B,6CAAmE;AAA1D,wGAAA,YAAY,OAAA;AAAE,6GAAA,iBAAiB,OAAA;AAMxC,yDAGgC;AAF9B,sHAAA,oBAAoB,OAAA;AACpB,oHAAA,kBAAkB,OAAA;AAEpB,6CAA6D;AAApD,2GAAA,eAAe,OAAA;AAAE,oGAAA,QAAQ,OAAA;AAElC,sBAAsB;AACtB,wDAAiE;AAAxD,uGAAA,WAAW,OAAW;AAC/B,kDAAwD;AAA/C,mGAAA,UAAU,OAAQ;AAE3B,gBAAgB;AAChB,oDAAgD;AAChD,SAAgB,QAAQ;IACtB,wBAAU,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC;AAED,4DAA4D;AAC5D,2DAAiC;AACjC,iEAAuC;AACvC,kEAAwC;AACxC,6FAA6F;AAC7F,mEAAyC;AACzC,+DAAqC;AACrC,+DAAqC;AACrC,sDAA4B;AAC5B,4DAAkC;AAClC,uEAA6C;AAC7C,0DAAgC;AAChC,kEAAwC;AACxC,gFAAsD;AACtD,2DAAiC;AACjC,+DAAqC;AACrC,4DAAkC;AAClC,2DAAiC;AACjC,gEAAsC;AACtC,qDAA2B;AAC3B,+DAAqC;AACrC,gEAAsC;AACtC,iEAAuC;AACvC,kDAAwB;AACxB,8DAAoC;AAEpC,6BAA6B;AAC7B,6DAK+B;AAJ7B,qHAAA,0BAA0B,OAAkB;AAC5C,2HAAA,0BAA0B,OAAwB;AAClD,yHAAA,wBAAwB,OAAsB;AAC9C,0HAAA,yBAAyB,OAAuB;AAElD,uCAAuC;AACvC,gEAAsC;AACtC,2DAAsE;AAA7D,gHAAA,gBAAgB,OAAc;AAEvC,2BAA2B;AAC3B,6DAAwD;AACxD,SAAgB,mBAAmB;IACjC,qCAAgB,CAAC,QAAQ,EAAE,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { LanguageContextSpace } from '../types';
|
|
2
|
+
import type { CurrencyCode } from '../utils/currency';
|
|
3
|
+
import type { Timezone } from '../utils/timezone';
|
|
4
|
+
/**
|
|
5
|
+
* Represents the active internationalization context for user and admin interfaces,
|
|
6
|
+
* including language, currency, and timezone settings.
|
|
7
|
+
*
|
|
8
|
+
* @template TLanguage The type of language codes (e.g., 'en-US', 'fr').
|
|
9
|
+
*/
|
|
10
|
+
export interface IActiveContext<TLanguage extends string> {
|
|
11
|
+
/**
|
|
12
|
+
* The default language for the user-facing application.
|
|
13
|
+
*/
|
|
14
|
+
language: TLanguage;
|
|
15
|
+
/**
|
|
16
|
+
* The default language for the admin interface.
|
|
17
|
+
*/
|
|
18
|
+
adminLanguage: TLanguage;
|
|
19
|
+
/**
|
|
20
|
+
* The default currency code for the user-facing application.
|
|
21
|
+
*/
|
|
22
|
+
currencyCode: CurrencyCode;
|
|
23
|
+
/**
|
|
24
|
+
* The current language context space (e.g., 'user' or 'admin').
|
|
25
|
+
*/
|
|
26
|
+
currentContext: LanguageContextSpace;
|
|
27
|
+
/**
|
|
28
|
+
* The default timezone for the user-facing application.
|
|
29
|
+
*/
|
|
30
|
+
timezone: Timezone;
|
|
31
|
+
/**
|
|
32
|
+
* The default timezone for the admin interface.
|
|
33
|
+
*/
|
|
34
|
+
adminTimezone: Timezone;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=active-context.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"active-context.interface.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/interfaces/active-context.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD;;;;;GAKG;AACH,MAAM,WAAW,cAAc,CAAC,SAAS,SAAS,MAAM;IACtD;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;OAEG;IACH,aAAa,EAAE,SAAS,CAAC;IAEzB;;OAEG;IACH,YAAY,EAAE,YAAY,CAAC;IAE3B;;OAEG;IACH,cAAc,EAAE,oBAAoB,CAAC;IAErC;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC;IAEnB;;OAEG;IACH,aAAa,EAAE,QAAQ,CAAC;CACzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"active-context.interface.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/interfaces/active-context.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simplified component configuration
|
|
3
|
+
*/
|
|
4
|
+
import { PluralString } from '../types/plural-types';
|
|
5
|
+
/**
|
|
6
|
+
* Configuration for registering a component with the i18n system.
|
|
7
|
+
*/
|
|
8
|
+
export interface ComponentConfig {
|
|
9
|
+
/** Unique identifier for the component */
|
|
10
|
+
readonly id: string;
|
|
11
|
+
/** Translation strings organized by language and key */
|
|
12
|
+
readonly strings: Record<string, Record<string, string | PluralString>>;
|
|
13
|
+
/** Optional alternative names for referencing this component */
|
|
14
|
+
readonly aliases?: readonly string[];
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=component-config.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-config.interface.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/interfaces/component-config.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC;IACxE,gEAAgE;IAChE,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-config.interface.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/interfaces/component-config.interface.ts"],"names":[],"mappings":";AAAA;;GAEG"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Engine configuration interface
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Configuration options for the I18n engine.
|
|
6
|
+
*/
|
|
7
|
+
export interface EngineConfig {
|
|
8
|
+
/** Default language to use when none is specified */
|
|
9
|
+
defaultLanguage?: string;
|
|
10
|
+
/** Fallback language to use when a translation is missing */
|
|
11
|
+
fallbackLanguage?: string;
|
|
12
|
+
/** Constants available for variable replacement in templates */
|
|
13
|
+
constants?: Record<string, any>;
|
|
14
|
+
/** Validation configuration */
|
|
15
|
+
validation?: {
|
|
16
|
+
/** Whether all string keys must be provided for all languages */
|
|
17
|
+
requireCompleteStrings?: boolean;
|
|
18
|
+
/** Whether to allow component registration with missing translations */
|
|
19
|
+
allowPartialRegistration?: boolean;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=engine-config.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine-config.interface.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/interfaces/engine-config.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,qDAAqD;IACrD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,+BAA+B;IAC/B,UAAU,CAAC,EAAE;QACX,iEAAiE;QACjE,sBAAsB,CAAC,EAAE,OAAO,CAAC;QACjC,wEAAwE;QACxE,wBAAwB,CAAC,EAAE,OAAO,CAAC;KACpC,CAAC;CACH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine-config.interface.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/interfaces/engine-config.interface.ts"],"names":[],"mappings":";AAAA;;GAEG"}
|