@digitaldefiance/i18n-lib 3.8.2 → 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 +6 -5
- 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
|
@@ -1,142 +1,91 @@
|
|
|
1
1
|
import { ComponentDefinition } from './component-definition';
|
|
2
2
|
import { LanguageDefinition } from './language-definition';
|
|
3
|
-
|
|
4
3
|
/**
|
|
5
4
|
* Standard language context spaces
|
|
6
5
|
*/
|
|
7
6
|
export type LanguageContextSpace = 'admin' | 'user';
|
|
8
|
-
|
|
9
7
|
/**
|
|
10
8
|
* Default currency code
|
|
11
9
|
*/
|
|
12
|
-
export const DefaultCurrencyCode: string
|
|
13
|
-
|
|
10
|
+
export declare const DefaultCurrencyCode: string;
|
|
14
11
|
/**
|
|
15
12
|
* Default timezone
|
|
16
13
|
*/
|
|
17
|
-
export const DefaultTimezone: string
|
|
18
|
-
|
|
14
|
+
export declare const DefaultTimezone: string;
|
|
19
15
|
/**
|
|
20
16
|
* Default language code
|
|
21
17
|
*/
|
|
22
|
-
export const DefaultLanguageCode: string
|
|
23
|
-
|
|
18
|
+
export declare const DefaultLanguageCode: string;
|
|
24
19
|
/**
|
|
25
20
|
* Currency position type
|
|
26
21
|
*/
|
|
27
22
|
export type CurrencyPosition = 'prefix' | 'postfix' | 'infix';
|
|
28
|
-
|
|
29
23
|
/**
|
|
30
24
|
* Collection of localized strings for a specific language
|
|
31
25
|
*/
|
|
32
|
-
export type StringsCollection<TStringKey extends string> = Partial<
|
|
33
|
-
Record<TStringKey, string>
|
|
34
|
-
>;
|
|
35
|
-
|
|
26
|
+
export type StringsCollection<TStringKey extends string> = Partial<Record<TStringKey, string>>;
|
|
36
27
|
/**
|
|
37
28
|
* Mapping of languages to their respective string collections
|
|
38
29
|
*/
|
|
39
|
-
export type MasterStringsCollection<
|
|
40
|
-
TStringKey extends string,
|
|
41
|
-
TLanguage extends string,
|
|
42
|
-
> = Partial<Record<TLanguage, StringsCollection<TStringKey>>>;
|
|
43
|
-
|
|
30
|
+
export type MasterStringsCollection<TStringKey extends string, TLanguage extends string> = Partial<Record<TLanguage, StringsCollection<TStringKey>>>;
|
|
44
31
|
/**
|
|
45
32
|
* Mapping of language codes to their respective languages
|
|
46
33
|
*/
|
|
47
|
-
export type LanguageCodeCollection<TLanguage extends string> = Partial<
|
|
48
|
-
Record<TLanguage, string>
|
|
49
|
-
>;
|
|
50
|
-
|
|
34
|
+
export type LanguageCodeCollection<TLanguage extends string> = Partial<Record<TLanguage, string>>;
|
|
51
35
|
/**
|
|
52
36
|
* Mapping of enumeration values to their translations in multiple languages
|
|
53
37
|
*/
|
|
54
|
-
export type EnumTranslationMap<
|
|
55
|
-
TEnum extends string | number,
|
|
56
|
-
TLanguage extends string,
|
|
57
|
-
> = Partial<Record<TLanguage, Partial<Record<TEnum, string>>>>;
|
|
58
|
-
|
|
38
|
+
export type EnumTranslationMap<TEnum extends string | number, TLanguage extends string> = Partial<Record<TLanguage, Partial<Record<TEnum, string>>>>;
|
|
59
39
|
/**
|
|
60
40
|
* String collection for a specific language and component
|
|
61
41
|
*/
|
|
62
42
|
export type ComponentStrings<TStringKeys extends string> = {
|
|
63
|
-
|
|
43
|
+
[K in TStringKeys]: string;
|
|
64
44
|
};
|
|
65
|
-
|
|
66
45
|
/**
|
|
67
46
|
* Partial string collection (used during registration before validation)
|
|
68
47
|
*/
|
|
69
48
|
export type PartialComponentStrings<TStringKeys extends string> = {
|
|
70
|
-
|
|
49
|
+
[K in TStringKeys]?: string;
|
|
71
50
|
};
|
|
72
|
-
|
|
73
51
|
/**
|
|
74
52
|
* Language strings for a component across all registered languages
|
|
75
53
|
*/
|
|
76
|
-
export type ComponentLanguageStrings<
|
|
77
|
-
|
|
78
|
-
TLanguages extends string,
|
|
79
|
-
> = {
|
|
80
|
-
[L in TLanguages]: ComponentStrings<TStringKeys>;
|
|
54
|
+
export type ComponentLanguageStrings<TStringKeys extends string, TLanguages extends string> = {
|
|
55
|
+
[L in TLanguages]: ComponentStrings<TStringKeys>;
|
|
81
56
|
};
|
|
82
|
-
|
|
83
57
|
/**
|
|
84
58
|
* Partial language strings (used during registration before validation)
|
|
85
59
|
*/
|
|
86
|
-
export type PartialComponentLanguageStrings<
|
|
87
|
-
|
|
88
|
-
TLanguages extends string,
|
|
89
|
-
> = {
|
|
90
|
-
[L in TLanguages]?: PartialComponentStrings<TStringKeys>;
|
|
60
|
+
export type PartialComponentLanguageStrings<TStringKeys extends string, TLanguages extends string> = {
|
|
61
|
+
[L in TLanguages]?: PartialComponentStrings<TStringKeys>;
|
|
91
62
|
};
|
|
92
|
-
|
|
93
63
|
/**
|
|
94
64
|
* Generic translation type for any enumeration
|
|
95
65
|
*/
|
|
96
66
|
export type EnumTranslation<T extends string | number> = {
|
|
97
|
-
|
|
67
|
+
[K in T]: string;
|
|
98
68
|
};
|
|
99
|
-
|
|
100
69
|
/**
|
|
101
70
|
* Generic language translation type for any enumeration
|
|
102
71
|
*/
|
|
103
|
-
export type EnumLanguageTranslation<
|
|
104
|
-
|
|
105
|
-
TLanguage extends string = string,
|
|
106
|
-
> = Partial<{
|
|
107
|
-
[L in TLanguage]: EnumTranslation<T>;
|
|
72
|
+
export type EnumLanguageTranslation<T extends string | number, TLanguage extends string = string> = Partial<{
|
|
73
|
+
[L in TLanguage]: EnumTranslation<T>;
|
|
108
74
|
}>;
|
|
109
|
-
|
|
110
75
|
/**
|
|
111
76
|
* Type utility to extract string keys from a component definition
|
|
112
77
|
*/
|
|
113
|
-
export type ExtractStringKeys<T> = T extends ComponentDefinition<infer K>
|
|
114
|
-
? K
|
|
115
|
-
: never;
|
|
116
|
-
|
|
78
|
+
export type ExtractStringKeys<T> = T extends ComponentDefinition<infer K> ? K : never;
|
|
117
79
|
/**
|
|
118
80
|
* Type utility to extract languages from registry
|
|
119
81
|
*/
|
|
120
|
-
export type ExtractLanguages<T> = T extends LanguageDefinition
|
|
121
|
-
? T['id']
|
|
122
|
-
: never;
|
|
123
|
-
|
|
82
|
+
export type ExtractLanguages<T> = T extends LanguageDefinition ? T['id'] : never;
|
|
124
83
|
/**
|
|
125
84
|
* Utility type to ensure all string keys are provided for all languages
|
|
126
85
|
*/
|
|
127
|
-
export type CompleteComponentStrings<
|
|
128
|
-
TStringKeys extends string,
|
|
129
|
-
TLanguages extends string,
|
|
130
|
-
> = ComponentLanguageStrings<TStringKeys, TLanguages>;
|
|
131
|
-
|
|
86
|
+
export type CompleteComponentStrings<TStringKeys extends string, TLanguages extends string> = ComponentLanguageStrings<TStringKeys, TLanguages>;
|
|
132
87
|
/**
|
|
133
88
|
* Helper function to create typed translations for an enumeration
|
|
134
89
|
*/
|
|
135
|
-
export function createTranslations<
|
|
136
|
-
|
|
137
|
-
TLanguage extends string,
|
|
138
|
-
>(
|
|
139
|
-
translations: EnumLanguageTranslation<T, TLanguage>,
|
|
140
|
-
): EnumLanguageTranslation<T, TLanguage> {
|
|
141
|
-
return translations;
|
|
142
|
-
}
|
|
90
|
+
export declare function createTranslations<T extends string | number, TLanguage extends string>(translations: EnumLanguageTranslation<T, TLanguage>): EnumLanguageTranslation<T, TLanguage>;
|
|
91
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,MAAM,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAc,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAAc,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAgB,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,UAAU,SAAS,MAAM,IAAI,OAAO,CAChE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAC3B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,uBAAuB,CACjC,UAAU,SAAS,MAAM,EACzB,SAAS,SAAS,MAAM,IACtB,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,sBAAsB,CAAC,SAAS,SAAS,MAAM,IAAI,OAAO,CACpE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,CAC5B,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,SAAS,SAAS,MAAM,IACtB,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAE/D;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,WAAW,SAAS,MAAM,IAAI;KACxD,CAAC,IAAI,WAAW,GAAG,MAAM;CAC3B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,uBAAuB,CAAC,WAAW,SAAS,MAAM,IAAI;KAC/D,CAAC,IAAI,WAAW,CAAC,CAAC,EAAE,MAAM;CAC5B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,wBAAwB,CAClC,WAAW,SAAS,MAAM,EAC1B,UAAU,SAAS,MAAM,IACvB;KACD,CAAC,IAAI,UAAU,GAAG,gBAAgB,CAAC,WAAW,CAAC;CACjD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,+BAA+B,CACzC,WAAW,SAAS,MAAM,EAC1B,UAAU,SAAS,MAAM,IACvB;KACD,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,uBAAuB,CAAC,WAAW,CAAC;CACzD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI;KACtD,CAAC,IAAI,CAAC,GAAG,MAAM;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,uBAAuB,CACjC,CAAC,SAAS,MAAM,GAAG,MAAM,EACzB,SAAS,SAAS,MAAM,GAAG,MAAM,IAC/B,OAAO,CAAC;KACT,CAAC,IAAI,SAAS,GAAG,eAAe,CAAC,CAAC,CAAC;CACrC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS,mBAAmB,CAAC,MAAM,CAAC,CAAC,GACrE,CAAC,GACD,KAAK,CAAC;AAEV;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS,kBAAkB,GAC1D,CAAC,CAAC,IAAI,CAAC,GACP,KAAK,CAAC;AAEV;;GAEG;AACH,MAAM,MAAM,wBAAwB,CAClC,WAAW,SAAS,MAAM,EAC1B,UAAU,SAAS,MAAM,IACvB,wBAAwB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;AAEtD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,CAAC,SAAS,MAAM,GAAG,MAAM,EACzB,SAAS,SAAS,MAAM,EAExB,YAAY,EAAE,uBAAuB,CAAC,CAAC,EAAE,SAAS,CAAC,GAClD,uBAAuB,CAAC,CAAC,EAAE,SAAS,CAAC,CAEvC"}
|
package/src/types.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DefaultLanguageCode = exports.DefaultTimezone = exports.DefaultCurrencyCode = void 0;
|
|
4
|
+
exports.createTranslations = createTranslations;
|
|
5
|
+
/**
|
|
6
|
+
* Default currency code
|
|
7
|
+
*/
|
|
8
|
+
exports.DefaultCurrencyCode = 'USD';
|
|
9
|
+
/**
|
|
10
|
+
* Default timezone
|
|
11
|
+
*/
|
|
12
|
+
exports.DefaultTimezone = 'UTC';
|
|
13
|
+
/**
|
|
14
|
+
* Default language code
|
|
15
|
+
*/
|
|
16
|
+
exports.DefaultLanguageCode = 'en-US';
|
|
17
|
+
/**
|
|
18
|
+
* Helper function to create typed translations for an enumeration
|
|
19
|
+
*/
|
|
20
|
+
function createTranslations(translations) {
|
|
21
|
+
return translations;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=types.js.map
|
package/src/types.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/types.ts"],"names":[],"mappings":";;;AAsIA,gDAOC;AArID;;GAEG;AACU,QAAA,mBAAmB,GAAW,KAAK,CAAC;AAEjD;;GAEG;AACU,QAAA,eAAe,GAAW,KAAK,CAAC;AAE7C;;GAEG;AACU,QAAA,mBAAmB,GAAW,OAAO,CAAC;AA8GnD;;GAEG;AACH,SAAgB,kBAAkB,CAIhC,YAAmD;IAEnD,OAAO,YAAY,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Currency utilities (v2)
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Position of the currency symbol relative to the amount.
|
|
6
|
+
*/
|
|
7
|
+
export type CurrencyPosition = 'prefix' | 'postfix' | 'infix';
|
|
8
|
+
/**
|
|
9
|
+
* Configuration for formatting currency values in a specific locale.
|
|
10
|
+
*/
|
|
11
|
+
export interface CurrencyFormat {
|
|
12
|
+
/** The currency symbol (e.g., "$", "€") */
|
|
13
|
+
symbol: string;
|
|
14
|
+
/** Position of the symbol relative to the amount */
|
|
15
|
+
position: CurrencyPosition;
|
|
16
|
+
/** Character used to separate thousands (e.g., ",") */
|
|
17
|
+
groupSeparator: string;
|
|
18
|
+
/** Character used to separate decimal places (e.g., ".") */
|
|
19
|
+
decimalSeparator: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Detailed information about a currency.
|
|
23
|
+
*/
|
|
24
|
+
export interface CurrencyData {
|
|
25
|
+
/** ISO 4217 currency code (e.g., "USD") */
|
|
26
|
+
code: string;
|
|
27
|
+
/** Numeric currency code */
|
|
28
|
+
number: string;
|
|
29
|
+
/** Number of decimal digits */
|
|
30
|
+
digits: number;
|
|
31
|
+
/** Currency name */
|
|
32
|
+
currency: string;
|
|
33
|
+
/** Countries using this currency */
|
|
34
|
+
countries: string[];
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Represents a valid ISO 4217 currency code with validation.
|
|
38
|
+
*/
|
|
39
|
+
export declare class CurrencyCode {
|
|
40
|
+
private _value;
|
|
41
|
+
/**
|
|
42
|
+
* Creates a new CurrencyCode instance.
|
|
43
|
+
* @param value - The ISO 4217 currency code (defaults to 'USD')
|
|
44
|
+
* @throws {Error} If the currency code is invalid
|
|
45
|
+
*/
|
|
46
|
+
constructor(value?: string);
|
|
47
|
+
/**
|
|
48
|
+
* Gets the currency code value.
|
|
49
|
+
* @returns The ISO 4217 currency code
|
|
50
|
+
*/
|
|
51
|
+
get value(): string;
|
|
52
|
+
/**
|
|
53
|
+
* Gets the currency code (alias for value).
|
|
54
|
+
* @returns The ISO 4217 currency code
|
|
55
|
+
*/
|
|
56
|
+
get code(): string;
|
|
57
|
+
/**
|
|
58
|
+
* Checks if a currency code is valid according to ISO 4217.
|
|
59
|
+
* @param code - The currency code to validate
|
|
60
|
+
* @returns True if the code is valid, false otherwise
|
|
61
|
+
*/
|
|
62
|
+
static isValid(code: string): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Gets all valid ISO 4217 currency codes.
|
|
65
|
+
* @returns Array of currency codes
|
|
66
|
+
*/
|
|
67
|
+
static getAll(): string[];
|
|
68
|
+
/**
|
|
69
|
+
* Gets detailed information for all currencies.
|
|
70
|
+
* @returns Array of currency data objects
|
|
71
|
+
*/
|
|
72
|
+
static getAllData(): CurrencyData[];
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Gets the currency formatting rules for a specific locale and currency.
|
|
76
|
+
* @param locale - The locale code (e.g., 'en-US', 'fr-FR')
|
|
77
|
+
* @param currencyCode - The ISO 4217 currency code
|
|
78
|
+
* @returns Currency format configuration including symbol, position, and separators
|
|
79
|
+
*/
|
|
80
|
+
export declare function getCurrencyFormat(locale: string, currencyCode: string): CurrencyFormat;
|
|
81
|
+
//# sourceMappingURL=currency.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"currency.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/utils/currency.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,uDAAuD;IACvD,cAAc,EAAE,MAAM,CAAC;IACvB,4DAA4D;IAC5D,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAS;IAEvB;;;;OAIG;gBACS,KAAK,GAAE,MAAc;IAOjC;;;OAGG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;;OAGG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIrC;;;OAGG;IACH,MAAM,CAAC,MAAM,IAAI,MAAM,EAAE;IAIzB;;;OAGG;IACH,MAAM,CAAC,UAAU,IAAI,YAAY,EAAE;CAGpC;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,GACnB,cAAc,CA8BhB"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Currency utilities (v2)
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.CurrencyCode = void 0;
|
|
7
|
+
exports.getCurrencyFormat = getCurrencyFormat;
|
|
8
|
+
const currency_codes_1 = require("currency-codes");
|
|
9
|
+
/**
|
|
10
|
+
* Represents a valid ISO 4217 currency code with validation.
|
|
11
|
+
*/
|
|
12
|
+
class CurrencyCode {
|
|
13
|
+
_value;
|
|
14
|
+
/**
|
|
15
|
+
* Creates a new CurrencyCode instance.
|
|
16
|
+
* @param value - The ISO 4217 currency code (defaults to 'USD')
|
|
17
|
+
* @throws {Error} If the currency code is invalid
|
|
18
|
+
*/
|
|
19
|
+
constructor(value = 'USD') {
|
|
20
|
+
if (!CurrencyCode.isValid(value)) {
|
|
21
|
+
throw new Error(`Invalid currency code: ${value}`);
|
|
22
|
+
}
|
|
23
|
+
this._value = value;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Gets the currency code value.
|
|
27
|
+
* @returns The ISO 4217 currency code
|
|
28
|
+
*/
|
|
29
|
+
get value() {
|
|
30
|
+
return this._value;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Gets the currency code (alias for value).
|
|
34
|
+
* @returns The ISO 4217 currency code
|
|
35
|
+
*/
|
|
36
|
+
get code() {
|
|
37
|
+
return this._value;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Checks if a currency code is valid according to ISO 4217.
|
|
41
|
+
* @param code - The currency code to validate
|
|
42
|
+
* @returns True if the code is valid, false otherwise
|
|
43
|
+
*/
|
|
44
|
+
static isValid(code) {
|
|
45
|
+
return (0, currency_codes_1.codes)().includes(code);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Gets all valid ISO 4217 currency codes.
|
|
49
|
+
* @returns Array of currency codes
|
|
50
|
+
*/
|
|
51
|
+
static getAll() {
|
|
52
|
+
return (0, currency_codes_1.codes)();
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Gets detailed information for all currencies.
|
|
56
|
+
* @returns Array of currency data objects
|
|
57
|
+
*/
|
|
58
|
+
static getAllData() {
|
|
59
|
+
return currency_codes_1.data;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.CurrencyCode = CurrencyCode;
|
|
63
|
+
/**
|
|
64
|
+
* Gets the currency formatting rules for a specific locale and currency.
|
|
65
|
+
* @param locale - The locale code (e.g., 'en-US', 'fr-FR')
|
|
66
|
+
* @param currencyCode - The ISO 4217 currency code
|
|
67
|
+
* @returns Currency format configuration including symbol, position, and separators
|
|
68
|
+
*/
|
|
69
|
+
function getCurrencyFormat(locale, currencyCode) {
|
|
70
|
+
const formatter = new Intl.NumberFormat(locale, {
|
|
71
|
+
style: 'currency',
|
|
72
|
+
currency: currencyCode,
|
|
73
|
+
});
|
|
74
|
+
const parts = formatter.formatToParts(1234567.89);
|
|
75
|
+
const symbol = parts.find((part) => part.type === 'currency')?.value || '';
|
|
76
|
+
const symbolIndex = parts.findIndex((part) => part.type === 'currency');
|
|
77
|
+
const decimalIndex = parts.findIndex((part) => part.type === 'decimal');
|
|
78
|
+
const integerIndex = parts.findIndex((part) => part.type === 'integer');
|
|
79
|
+
let position;
|
|
80
|
+
if (decimalIndex === -1) {
|
|
81
|
+
position = symbolIndex < integerIndex ? 'prefix' : 'postfix';
|
|
82
|
+
}
|
|
83
|
+
else if (symbolIndex < decimalIndex && symbolIndex < integerIndex) {
|
|
84
|
+
position = 'prefix';
|
|
85
|
+
}
|
|
86
|
+
else if (symbolIndex > decimalIndex) {
|
|
87
|
+
position = 'postfix';
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
position = 'infix';
|
|
91
|
+
}
|
|
92
|
+
return {
|
|
93
|
+
symbol,
|
|
94
|
+
position,
|
|
95
|
+
groupSeparator: parts.find((part) => part.type === 'group')?.value || ',',
|
|
96
|
+
decimalSeparator: parts.find((part) => part.type === 'decimal')?.value || '.',
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=currency.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"currency.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/utils/currency.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAyGH,8CAiCC;AAxID,mDAA6C;AAqC7C;;GAEG;AACH,MAAa,YAAY;IACf,MAAM,CAAS;IAEvB;;;;OAIG;IACH,YAAY,QAAgB,KAAK;QAC/B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,IAAY;QACzB,OAAO,IAAA,sBAAK,GAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,MAAM;QACX,OAAO,IAAA,sBAAK,GAAE,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,UAAU;QACf,OAAO,qBAAsB,CAAC;IAChC,CAAC;CACF;AAvDD,oCAuDC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAC/B,MAAc,EACd,YAAoB;IAEpB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;QAC9C,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,YAAY;KACvB,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;IAC3E,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IACxE,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IACxE,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IAExE,IAAI,QAA0B,CAAC;IAC/B,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;QACxB,QAAQ,GAAG,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/D,CAAC;SAAM,IAAI,WAAW,GAAG,YAAY,IAAI,WAAW,GAAG,YAAY,EAAE,CAAC;QACpE,QAAQ,GAAG,QAAQ,CAAC;IACtB,CAAC;SAAM,IAAI,WAAW,GAAG,YAAY,EAAE,CAAC;QACtC,QAAQ,GAAG,SAAS,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,OAAO,CAAC;IACrB,CAAC;IAED,OAAO;QACL,MAAM;QACN,QAAQ;QACR,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,KAAK,IAAI,GAAG;QACzE,gBAAgB,EACd,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE,KAAK,IAAI,GAAG;KAC9D,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTML escaping utilities for XSS prevention
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Escapes HTML special characters to prevent XSS attacks.
|
|
6
|
+
* @param str - The string to escape
|
|
7
|
+
* @returns The escaped string
|
|
8
|
+
*/
|
|
9
|
+
export declare function escapeHtml(str: string): string;
|
|
10
|
+
/**
|
|
11
|
+
* Safely converts a value to a string, optionally escaping HTML.
|
|
12
|
+
* Rejects objects to prevent toString exploits.
|
|
13
|
+
* @param value - The value to stringify
|
|
14
|
+
* @param options - Options including whether to escape HTML
|
|
15
|
+
* @param options.escapeHtml - If true, HTML-escapes the result
|
|
16
|
+
* @returns The stringified value
|
|
17
|
+
* @throws {Error} If the value is an object (to prevent exploits)
|
|
18
|
+
*/
|
|
19
|
+
export declare function safeStringify(value: any, options?: {
|
|
20
|
+
escapeHtml?: boolean;
|
|
21
|
+
}): string;
|
|
22
|
+
//# sourceMappingURL=html-escape.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html-escape.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/utils/html-escape.ts"],"names":[],"mappings":"AAAA;;GAEG;AAmBH;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAepF"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* HTML escaping utilities for XSS prevention
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.escapeHtml = escapeHtml;
|
|
7
|
+
exports.safeStringify = safeStringify;
|
|
8
|
+
/**
|
|
9
|
+
* Map of HTML characters to their escaped equivalents.
|
|
10
|
+
*/
|
|
11
|
+
const HTML_ESCAPES = {
|
|
12
|
+
'&': '&',
|
|
13
|
+
'<': '<',
|
|
14
|
+
'>': '>',
|
|
15
|
+
'"': '"',
|
|
16
|
+
"'": ''',
|
|
17
|
+
'/': '/',
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Regular expression to match characters that need HTML escaping.
|
|
21
|
+
*/
|
|
22
|
+
const HTML_ESCAPE_REGEX = /[&<>"'/]/g;
|
|
23
|
+
/**
|
|
24
|
+
* Escapes HTML special characters to prevent XSS attacks.
|
|
25
|
+
* @param str - The string to escape
|
|
26
|
+
* @returns The escaped string
|
|
27
|
+
*/
|
|
28
|
+
function escapeHtml(str) {
|
|
29
|
+
return str.replace(HTML_ESCAPE_REGEX, char => HTML_ESCAPES[char]);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Safely converts a value to a string, optionally escaping HTML.
|
|
33
|
+
* Rejects objects to prevent toString exploits.
|
|
34
|
+
* @param value - The value to stringify
|
|
35
|
+
* @param options - Options including whether to escape HTML
|
|
36
|
+
* @param options.escapeHtml - If true, HTML-escapes the result
|
|
37
|
+
* @returns The stringified value
|
|
38
|
+
* @throws {Error} If the value is an object (to prevent exploits)
|
|
39
|
+
*/
|
|
40
|
+
function safeStringify(value, options) {
|
|
41
|
+
if (value === null || value === undefined) {
|
|
42
|
+
return '';
|
|
43
|
+
}
|
|
44
|
+
if (typeof value === 'string') {
|
|
45
|
+
return options?.escapeHtml ? escapeHtml(value) : value;
|
|
46
|
+
}
|
|
47
|
+
if (typeof value === 'number' || typeof value === 'boolean') {
|
|
48
|
+
return String(value);
|
|
49
|
+
}
|
|
50
|
+
// Reject objects to prevent toString exploits
|
|
51
|
+
throw new Error('Invalid value type for stringification');
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=html-escape.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html-escape.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/utils/html-escape.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAwBH,gCAEC;AAWD,sCAeC;AAlDD;;GAEG;AACH,MAAM,YAAY,GAA2B;IAC3C,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,QAAQ;CACd,CAAC;AAEF;;GAEG;AACH,MAAM,iBAAiB,GAAG,WAAW,CAAC;AAEtC;;;;GAIG;AACH,SAAgB,UAAU,CAAC,GAAW;IACpC,OAAO,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;AACpE,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,aAAa,CAAC,KAAU,EAAE,OAAkC;IAC1E,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACzD,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC5D,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED,8CAA8C;IAC9C,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;AAC5D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./plural-helpers"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./safe-object"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./string-utils"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./currency"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./timezone"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./validation"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./html-escape"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./lru-cache"), exports);
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/utils/index.ts"],"names":[],"mappings":";;;AAAA,2DAAiC;AACjC,wDAA8B;AAC9B,yDAA+B;AAC/B,qDAA2B;AAC3B,qDAA2B;AAC3B,uDAA6B;AAC7B,wDAA8B;AAC9B,sDAA4B"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple LRU Cache implementation for security
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Least Recently Used (LRU) cache implementation.
|
|
6
|
+
* Automatically evicts the oldest entries when the cache reaches maximum size.
|
|
7
|
+
* @template K - The type of cache keys
|
|
8
|
+
* @template V - The type of cached values
|
|
9
|
+
*/
|
|
10
|
+
export declare class LRUCache<K, V> {
|
|
11
|
+
private cache;
|
|
12
|
+
private readonly maxSize;
|
|
13
|
+
/**
|
|
14
|
+
* Creates a new LRUCache instance.
|
|
15
|
+
* @param maxSize - Maximum number of entries to store (default: 1000)
|
|
16
|
+
*/
|
|
17
|
+
constructor(maxSize?: number);
|
|
18
|
+
/**
|
|
19
|
+
* Retrieves a value from the cache by key.
|
|
20
|
+
* Accessing an item moves it to the end (marks it as most recently used).
|
|
21
|
+
* @param key - The key to look up
|
|
22
|
+
* @returns The cached value, or undefined if not found
|
|
23
|
+
*/
|
|
24
|
+
get(key: K): V | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* Adds or updates a value in the cache.
|
|
27
|
+
* If the cache is at capacity, the oldest entry is removed.
|
|
28
|
+
* @param key - The key to store
|
|
29
|
+
* @param value - The value to cache
|
|
30
|
+
*/
|
|
31
|
+
set(key: K, value: V): void;
|
|
32
|
+
/**
|
|
33
|
+
* Removes all entries from the cache.
|
|
34
|
+
*/
|
|
35
|
+
clear(): void;
|
|
36
|
+
/**
|
|
37
|
+
* Gets the current number of entries in the cache.
|
|
38
|
+
* @returns The number of cached entries
|
|
39
|
+
*/
|
|
40
|
+
size(): number;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=lru-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lru-cache.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/utils/lru-cache.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;GAKG;AACH,qBAAa,QAAQ,CAAC,CAAC,EAAE,CAAC;IACxB,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC;;;OAGG;gBACS,OAAO,GAAE,MAAa;IAIlC;;;;;OAKG;IACH,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAU1B;;;;;OAKG;IACH,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAiB3B;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;;OAGG;IACH,IAAI,IAAI,MAAM;CAGf"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Simple LRU Cache implementation for security
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.LRUCache = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Least Recently Used (LRU) cache implementation.
|
|
9
|
+
* Automatically evicts the oldest entries when the cache reaches maximum size.
|
|
10
|
+
* @template K - The type of cache keys
|
|
11
|
+
* @template V - The type of cached values
|
|
12
|
+
*/
|
|
13
|
+
class LRUCache {
|
|
14
|
+
cache = new Map();
|
|
15
|
+
maxSize;
|
|
16
|
+
/**
|
|
17
|
+
* Creates a new LRUCache instance.
|
|
18
|
+
* @param maxSize - Maximum number of entries to store (default: 1000)
|
|
19
|
+
*/
|
|
20
|
+
constructor(maxSize = 1000) {
|
|
21
|
+
this.maxSize = maxSize;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Retrieves a value from the cache by key.
|
|
25
|
+
* Accessing an item moves it to the end (marks it as most recently used).
|
|
26
|
+
* @param key - The key to look up
|
|
27
|
+
* @returns The cached value, or undefined if not found
|
|
28
|
+
*/
|
|
29
|
+
get(key) {
|
|
30
|
+
const value = this.cache.get(key);
|
|
31
|
+
if (value !== undefined) {
|
|
32
|
+
// Move to end (most recently used)
|
|
33
|
+
this.cache.delete(key);
|
|
34
|
+
this.cache.set(key, value);
|
|
35
|
+
}
|
|
36
|
+
return value;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Adds or updates a value in the cache.
|
|
40
|
+
* If the cache is at capacity, the oldest entry is removed.
|
|
41
|
+
* @param key - The key to store
|
|
42
|
+
* @param value - The value to cache
|
|
43
|
+
*/
|
|
44
|
+
set(key, value) {
|
|
45
|
+
// Remove if exists to update position
|
|
46
|
+
if (this.cache.has(key)) {
|
|
47
|
+
this.cache.delete(key);
|
|
48
|
+
}
|
|
49
|
+
// Remove oldest if at capacity
|
|
50
|
+
if (this.cache.size >= this.maxSize) {
|
|
51
|
+
const firstKey = this.cache.keys().next().value;
|
|
52
|
+
if (firstKey !== undefined) {
|
|
53
|
+
this.cache.delete(firstKey);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
this.cache.set(key, value);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Removes all entries from the cache.
|
|
60
|
+
*/
|
|
61
|
+
clear() {
|
|
62
|
+
this.cache.clear();
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Gets the current number of entries in the cache.
|
|
66
|
+
* @returns The number of cached entries
|
|
67
|
+
*/
|
|
68
|
+
size() {
|
|
69
|
+
return this.cache.size;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
exports.LRUCache = LRUCache;
|
|
73
|
+
//# sourceMappingURL=lru-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lru-cache.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/utils/lru-cache.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH;;;;;GAKG;AACH,MAAa,QAAQ;IACX,KAAK,GAAG,IAAI,GAAG,EAAQ,CAAC;IACf,OAAO,CAAS;IAEjC;;;OAGG;IACH,YAAY,UAAkB,IAAI;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAC,GAAM;QACR,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,mCAAmC;YACnC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAC,GAAM,EAAE,KAAQ;QAClB,sCAAsC;QACtC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QAED,+BAA+B;QAC/B,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAChD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;CACF;AAjED,4BAiEC"}
|