@intlayer/core 8.4.4 → 8.4.5
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/dist/cjs/_virtual/_rolldown/runtime.cjs +29 -0
- package/dist/cjs/deepTransformPlugins/getFilterMissingTranslationsContent.cjs +213 -1
- package/dist/cjs/deepTransformPlugins/getFilterMissingTranslationsContent.cjs.map +1 -1
- package/dist/cjs/deepTransformPlugins/getFilterTranslationsOnlyContent.cjs +95 -1
- package/dist/cjs/deepTransformPlugins/getFilterTranslationsOnlyContent.cjs.map +1 -1
- package/dist/cjs/deepTransformPlugins/getFilteredLocalesContent.cjs +46 -1
- package/dist/cjs/deepTransformPlugins/getFilteredLocalesContent.cjs.map +1 -1
- package/dist/cjs/deepTransformPlugins/getLocalizedContent.cjs +33 -1
- package/dist/cjs/deepTransformPlugins/getLocalizedContent.cjs.map +1 -1
- package/dist/cjs/deepTransformPlugins/getMaskContent.cjs +27 -1
- package/dist/cjs/deepTransformPlugins/getMaskContent.cjs.map +1 -1
- package/dist/cjs/deepTransformPlugins/getMissingLocalesContent.cjs +151 -1
- package/dist/cjs/deepTransformPlugins/getMissingLocalesContent.cjs.map +1 -1
- package/dist/cjs/deepTransformPlugins/getMultilingualDictionary.cjs +87 -1
- package/dist/cjs/deepTransformPlugins/getMultilingualDictionary.cjs.map +1 -1
- package/dist/cjs/deepTransformPlugins/getReplacedValuesContent.cjs +60 -1
- package/dist/cjs/deepTransformPlugins/getReplacedValuesContent.cjs.map +1 -1
- package/dist/cjs/deepTransformPlugins/getSplittedContent.cjs +123 -1
- package/dist/cjs/deepTransformPlugins/getSplittedContent.cjs.map +1 -1
- package/dist/cjs/deepTransformPlugins/index.cjs +32 -1
- package/dist/cjs/deepTransformPlugins/insertContentInDictionary.cjs +107 -1
- package/dist/cjs/deepTransformPlugins/insertContentInDictionary.cjs.map +1 -1
- package/dist/cjs/dictionaryManipulator/editDictionaryByKeyPath.cjs +65 -1
- package/dist/cjs/dictionaryManipulator/editDictionaryByKeyPath.cjs.map +1 -1
- package/dist/cjs/dictionaryManipulator/getContentNodeByKeyPath.cjs +19 -1
- package/dist/cjs/dictionaryManipulator/getContentNodeByKeyPath.cjs.map +1 -1
- package/dist/cjs/dictionaryManipulator/getDefaultNode.cjs +56 -1
- package/dist/cjs/dictionaryManipulator/getDefaultNode.cjs.map +1 -1
- package/dist/cjs/dictionaryManipulator/getEmptyNode.cjs +27 -1
- package/dist/cjs/dictionaryManipulator/getEmptyNode.cjs.map +1 -1
- package/dist/cjs/dictionaryManipulator/getNodeChildren.cjs +24 -1
- package/dist/cjs/dictionaryManipulator/getNodeChildren.cjs.map +1 -1
- package/dist/cjs/dictionaryManipulator/getNodeType.cjs +55 -1
- package/dist/cjs/dictionaryManipulator/getNodeType.cjs.map +1 -1
- package/dist/cjs/dictionaryManipulator/index.cjs +27 -1
- package/dist/cjs/dictionaryManipulator/mergeDictionaries.cjs +69 -1
- package/dist/cjs/dictionaryManipulator/mergeDictionaries.cjs.map +1 -1
- package/dist/cjs/dictionaryManipulator/normalizeDictionary.cjs +30 -1
- package/dist/cjs/dictionaryManipulator/normalizeDictionary.cjs.map +1 -1
- package/dist/cjs/dictionaryManipulator/orderDictionaries.cjs +48 -1
- package/dist/cjs/dictionaryManipulator/orderDictionaries.cjs.map +1 -1
- package/dist/cjs/dictionaryManipulator/removeContentNodeByKeyPath.cjs +32 -1
- package/dist/cjs/dictionaryManipulator/removeContentNodeByKeyPath.cjs.map +1 -1
- package/dist/cjs/dictionaryManipulator/renameContentNodeByKeyPath.cjs +40 -1
- package/dist/cjs/dictionaryManipulator/renameContentNodeByKeyPath.cjs.map +1 -1
- package/dist/cjs/dictionaryManipulator/updateNodeChildren.cjs +39 -1
- package/dist/cjs/dictionaryManipulator/updateNodeChildren.cjs.map +1 -1
- package/dist/cjs/formatters/compact.cjs +25 -1
- package/dist/cjs/formatters/compact.cjs.map +1 -1
- package/dist/cjs/formatters/currency.cjs +29 -1
- package/dist/cjs/formatters/currency.cjs.map +1 -1
- package/dist/cjs/formatters/date.cjs +60 -1
- package/dist/cjs/formatters/date.cjs.map +1 -1
- package/dist/cjs/formatters/index.cjs +23 -1
- package/dist/cjs/formatters/list.cjs +30 -1
- package/dist/cjs/formatters/list.cjs.map +1 -1
- package/dist/cjs/formatters/number.cjs +20 -1
- package/dist/cjs/formatters/number.cjs.map +1 -1
- package/dist/cjs/formatters/percentage.cjs +27 -1
- package/dist/cjs/formatters/percentage.cjs.map +1 -1
- package/dist/cjs/formatters/relativeTime.cjs +43 -1
- package/dist/cjs/formatters/relativeTime.cjs.map +1 -1
- package/dist/cjs/formatters/units.cjs +23 -1
- package/dist/cjs/formatters/units.cjs.map +1 -1
- package/dist/cjs/getStorageAttributes.cjs +134 -1
- package/dist/cjs/getStorageAttributes.cjs.map +1 -1
- package/dist/cjs/index.cjs +315 -1
- package/dist/cjs/interpreter/getCondition.cjs +27 -1
- package/dist/cjs/interpreter/getCondition.cjs.map +1 -1
- package/dist/cjs/interpreter/getContent/deepTransform.cjs +42 -1
- package/dist/cjs/interpreter/getContent/deepTransform.cjs.map +1 -1
- package/dist/cjs/interpreter/getContent/getContent.cjs +32 -1
- package/dist/cjs/interpreter/getContent/getContent.cjs.map +1 -0
- package/dist/cjs/interpreter/getContent/index.cjs +15 -1
- package/dist/cjs/interpreter/getContent/plugins.cjs +163 -1
- package/dist/cjs/interpreter/getContent/plugins.cjs.map +1 -0
- package/dist/cjs/interpreter/getDictionary.cjs +25 -1
- package/dist/cjs/interpreter/getDictionary.cjs.map +1 -0
- package/dist/cjs/interpreter/getEnumeration.cjs +72 -1
- package/dist/cjs/interpreter/getEnumeration.cjs.map +1 -1
- package/dist/cjs/interpreter/getGender.cjs +38 -1
- package/dist/cjs/interpreter/getGender.cjs.map +1 -1
- package/dist/cjs/interpreter/getHTML.cjs +124 -1
- package/dist/cjs/interpreter/getHTML.cjs.map +1 -1
- package/dist/cjs/interpreter/getInsertion.cjs +22 -1
- package/dist/cjs/interpreter/getInsertion.cjs.map +1 -1
- package/dist/cjs/interpreter/getIntlayer.cjs +41 -1
- package/dist/cjs/interpreter/getIntlayer.cjs.map +1 -0
- package/dist/cjs/interpreter/getNesting.cjs +37 -1
- package/dist/cjs/interpreter/getNesting.cjs.map +1 -0
- package/dist/cjs/interpreter/getTranslation.cjs +112 -1
- package/dist/cjs/interpreter/getTranslation.cjs.map +1 -1
- package/dist/cjs/interpreter/index.cjs +32 -1
- package/dist/cjs/interpreter/splitAndJoinInsertion.cjs +55 -1
- package/dist/cjs/interpreter/splitAndJoinInsertion.cjs.map +1 -1
- package/dist/cjs/localization/getBrowserLocale.cjs +143 -1
- package/dist/cjs/localization/getBrowserLocale.cjs.map +1 -1
- package/dist/cjs/localization/getHTMLTextDir.cjs +40 -1
- package/dist/cjs/localization/getHTMLTextDir.cjs.map +1 -1
- package/dist/cjs/localization/getLocale.cjs +27 -1
- package/dist/cjs/localization/getLocale.cjs.map +1 -1
- package/dist/cjs/localization/getLocaleFromPath.cjs +36 -1
- package/dist/cjs/localization/getLocaleFromPath.cjs.map +1 -1
- package/dist/cjs/localization/getLocaleLang.cjs +20 -1
- package/dist/cjs/localization/getLocaleLang.cjs.map +1 -1
- package/dist/cjs/localization/getLocaleName.cjs +10 -1
- package/dist/cjs/localization/getLocaleName.cjs.map +1 -1
- package/dist/cjs/localization/getLocalizedUrl.cjs +73 -1
- package/dist/cjs/localization/getLocalizedUrl.cjs.map +1 -1
- package/dist/cjs/localization/getMultilingualUrls.cjs +46 -1
- package/dist/cjs/localization/getMultilingualUrls.cjs.map +1 -1
- package/dist/cjs/localization/getPathWithoutLocale.cjs +55 -1
- package/dist/cjs/localization/getPathWithoutLocale.cjs.map +1 -1
- package/dist/cjs/localization/getPrefix.cjs +73 -1
- package/dist/cjs/localization/getPrefix.cjs.map +1 -1
- package/dist/cjs/localization/index.cjs +41 -1
- package/dist/cjs/localization/localeDetector.cjs +133 -1
- package/dist/cjs/localization/localeDetector.cjs.map +1 -1
- package/dist/cjs/localization/localeMapper.cjs +124 -1
- package/dist/cjs/localization/localeMapper.cjs.map +1 -1
- package/dist/cjs/localization/localeResolver.cjs +28 -1
- package/dist/cjs/localization/localeResolver.cjs.map +1 -1
- package/dist/cjs/localization/rewriteUtils.cjs +110 -1
- package/dist/cjs/localization/rewriteUtils.cjs.map +1 -1
- package/dist/cjs/localization/validatePrefix.cjs +45 -1
- package/dist/cjs/localization/validatePrefix.cjs.map +1 -1
- package/dist/cjs/markdown/compiler.cjs +810 -10
- package/dist/cjs/markdown/compiler.cjs.map +1 -1
- package/dist/cjs/markdown/constants.cjs +328 -1
- package/dist/cjs/markdown/constants.cjs.map +1 -1
- package/dist/cjs/markdown/index.cjs +126 -1
- package/dist/cjs/markdown/parser.cjs +66 -1
- package/dist/cjs/markdown/parser.cjs.map +1 -1
- package/dist/cjs/markdown/renderer.cjs +61 -1
- package/dist/cjs/markdown/renderer.cjs.map +1 -1
- package/dist/cjs/markdown/utils.cjs +391 -6
- package/dist/cjs/markdown/utils.cjs.map +1 -1
- package/dist/cjs/messageFormat/ICU.cjs +334 -1
- package/dist/cjs/messageFormat/ICU.cjs.map +1 -1
- package/dist/cjs/messageFormat/i18next.cjs +345 -1
- package/dist/cjs/messageFormat/i18next.cjs.map +1 -1
- package/dist/cjs/messageFormat/index.cjs +11 -1
- package/dist/cjs/messageFormat/verify-icu-format.cjs +64 -2
- package/dist/cjs/messageFormat/verify-icu-format.cjs.map +1 -1
- package/dist/cjs/messageFormat/vue-i18n.cjs +181 -1
- package/dist/cjs/messageFormat/vue-i18n.cjs.map +1 -1
- package/dist/cjs/transpiler/condition/condition.cjs +26 -1
- package/dist/cjs/transpiler/condition/condition.cjs.map +1 -1
- package/dist/cjs/transpiler/condition/index.cjs +4 -1
- package/dist/cjs/transpiler/enumeration/enumeration.cjs +28 -1
- package/dist/cjs/transpiler/enumeration/enumeration.cjs.map +1 -1
- package/dist/cjs/transpiler/enumeration/index.cjs +4 -1
- package/dist/cjs/transpiler/file/file.cjs +51 -1
- package/dist/cjs/transpiler/file/file.cjs.map +1 -1
- package/dist/cjs/transpiler/file/fileBrowser.cjs +24 -1
- package/dist/cjs/transpiler/file/fileBrowser.cjs.map +1 -1
- package/dist/cjs/transpiler/file/index.cjs +5 -1
- package/dist/cjs/transpiler/gender/gender.cjs +26 -1
- package/dist/cjs/transpiler/gender/gender.cjs.map +1 -1
- package/dist/cjs/transpiler/gender/index.cjs +4 -1
- package/dist/cjs/transpiler/html/getHTMLCustomComponents.cjs +45 -1
- package/dist/cjs/transpiler/html/getHTMLCustomComponents.cjs.map +1 -0
- package/dist/cjs/transpiler/html/html.cjs +44 -1
- package/dist/cjs/transpiler/html/html.cjs.map +1 -0
- package/dist/cjs/transpiler/html/htmlTags.cjs +116 -1
- package/dist/cjs/transpiler/html/htmlTags.cjs.map +1 -1
- package/dist/cjs/transpiler/html/index.cjs +9 -1
- package/dist/cjs/transpiler/html/validateHTML.cjs +65 -1
- package/dist/cjs/transpiler/html/validateHTML.cjs.map +1 -1
- package/dist/cjs/transpiler/index.cjs +29 -1
- package/dist/cjs/transpiler/insertion/getInsertionValues.cjs +11 -1
- package/dist/cjs/transpiler/insertion/getInsertionValues.cjs.map +1 -1
- package/dist/cjs/transpiler/insertion/index.cjs +6 -1
- package/dist/cjs/transpiler/insertion/insertion.cjs +36 -1
- package/dist/cjs/transpiler/insertion/insertion.cjs.map +1 -1
- package/dist/cjs/transpiler/markdown/getMarkdownMetadata.cjs +23 -2
- package/dist/cjs/transpiler/markdown/getMarkdownMetadata.cjs.map +1 -1
- package/dist/cjs/transpiler/markdown/index.cjs +8 -1
- package/dist/cjs/transpiler/markdown/markdown.cjs +62 -1
- package/dist/cjs/transpiler/markdown/markdown.cjs.map +1 -1
- package/dist/cjs/transpiler/markdown/validateMarkdown.cjs +74 -4
- package/dist/cjs/transpiler/markdown/validateMarkdown.cjs.map +1 -1
- package/dist/cjs/transpiler/nesting/index.cjs +4 -1
- package/dist/cjs/transpiler/nesting/nesting.cjs +27 -1
- package/dist/cjs/transpiler/nesting/nesting.cjs.map +1 -1
- package/dist/cjs/transpiler/translation/index.cjs +4 -1
- package/dist/cjs/transpiler/translation/translation.cjs +29 -1
- package/dist/cjs/transpiler/translation/translation.cjs.map +1 -1
- package/dist/cjs/utils/checkIsURLAbsolute.cjs +7 -1
- package/dist/cjs/utils/checkIsURLAbsolute.cjs.map +1 -1
- package/dist/cjs/utils/getCookie.cjs +32 -1
- package/dist/cjs/utils/getCookie.cjs.map +1 -1
- package/dist/cjs/utils/index.cjs +21 -1
- package/dist/cjs/utils/intl.cjs +91 -1
- package/dist/cjs/utils/intl.cjs.map +1 -1
- package/dist/cjs/utils/isSameKeyPath.cjs +7 -1
- package/dist/cjs/utils/isSameKeyPath.cjs.map +1 -1
- package/dist/cjs/utils/isValidReactElement.cjs +14 -1
- package/dist/cjs/utils/isValidReactElement.cjs.map +1 -1
- package/dist/cjs/utils/localeStorage.cjs +140 -1
- package/dist/cjs/utils/localeStorage.cjs.map +1 -1
- package/dist/cjs/utils/parseYaml.cjs +322 -16
- package/dist/cjs/utils/parseYaml.cjs.map +1 -1
- package/dist/esm/deepTransformPlugins/getFilterMissingTranslationsContent.mjs +207 -1
- package/dist/esm/deepTransformPlugins/getFilterMissingTranslationsContent.mjs.map +1 -1
- package/dist/esm/deepTransformPlugins/getFilterTranslationsOnlyContent.mjs +89 -1
- package/dist/esm/deepTransformPlugins/getFilterTranslationsOnlyContent.mjs.map +1 -1
- package/dist/esm/deepTransformPlugins/getFilteredLocalesContent.mjs +42 -1
- package/dist/esm/deepTransformPlugins/getFilteredLocalesContent.mjs.map +1 -1
- package/dist/esm/deepTransformPlugins/getLocalizedContent.mjs +31 -1
- package/dist/esm/deepTransformPlugins/getLocalizedContent.mjs.map +1 -1
- package/dist/esm/deepTransformPlugins/getMaskContent.mjs +25 -1
- package/dist/esm/deepTransformPlugins/getMaskContent.mjs.map +1 -1
- package/dist/esm/deepTransformPlugins/getMissingLocalesContent.mjs +145 -1
- package/dist/esm/deepTransformPlugins/getMissingLocalesContent.mjs.map +1 -1
- package/dist/esm/deepTransformPlugins/getMultilingualDictionary.mjs +86 -1
- package/dist/esm/deepTransformPlugins/getMultilingualDictionary.mjs.map +1 -1
- package/dist/esm/deepTransformPlugins/getReplacedValuesContent.mjs +59 -1
- package/dist/esm/deepTransformPlugins/getReplacedValuesContent.mjs.map +1 -1
- package/dist/esm/deepTransformPlugins/getSplittedContent.mjs +119 -1
- package/dist/esm/deepTransformPlugins/getSplittedContent.mjs.map +1 -1
- package/dist/esm/deepTransformPlugins/index.mjs +12 -1
- package/dist/esm/deepTransformPlugins/insertContentInDictionary.mjs +104 -1
- package/dist/esm/deepTransformPlugins/insertContentInDictionary.mjs.map +1 -1
- package/dist/esm/dictionaryManipulator/editDictionaryByKeyPath.mjs +62 -1
- package/dist/esm/dictionaryManipulator/editDictionaryByKeyPath.mjs.map +1 -1
- package/dist/esm/dictionaryManipulator/getContentNodeByKeyPath.mjs +16 -1
- package/dist/esm/dictionaryManipulator/getContentNodeByKeyPath.mjs.map +1 -1
- package/dist/esm/dictionaryManipulator/getDefaultNode.mjs +53 -1
- package/dist/esm/dictionaryManipulator/getDefaultNode.mjs.map +1 -1
- package/dist/esm/dictionaryManipulator/getEmptyNode.mjs +24 -1
- package/dist/esm/dictionaryManipulator/getEmptyNode.mjs.map +1 -1
- package/dist/esm/dictionaryManipulator/getNodeChildren.mjs +21 -1
- package/dist/esm/dictionaryManipulator/getNodeChildren.mjs.map +1 -1
- package/dist/esm/dictionaryManipulator/getNodeType.mjs +52 -1
- package/dist/esm/dictionaryManipulator/getNodeType.mjs.map +1 -1
- package/dist/esm/dictionaryManipulator/index.mjs +14 -1
- package/dist/esm/dictionaryManipulator/mergeDictionaries.mjs +66 -1
- package/dist/esm/dictionaryManipulator/mergeDictionaries.mjs.map +1 -1
- package/dist/esm/dictionaryManipulator/normalizeDictionary.mjs +28 -1
- package/dist/esm/dictionaryManipulator/normalizeDictionary.mjs.map +1 -1
- package/dist/esm/dictionaryManipulator/orderDictionaries.mjs +45 -1
- package/dist/esm/dictionaryManipulator/orderDictionaries.mjs.map +1 -1
- package/dist/esm/dictionaryManipulator/removeContentNodeByKeyPath.mjs +29 -1
- package/dist/esm/dictionaryManipulator/removeContentNodeByKeyPath.mjs.map +1 -1
- package/dist/esm/dictionaryManipulator/renameContentNodeByKeyPath.mjs +37 -1
- package/dist/esm/dictionaryManipulator/renameContentNodeByKeyPath.mjs.map +1 -1
- package/dist/esm/dictionaryManipulator/updateNodeChildren.mjs +36 -1
- package/dist/esm/dictionaryManipulator/updateNodeChildren.mjs.map +1 -1
- package/dist/esm/formatters/compact.mjs +22 -1
- package/dist/esm/formatters/compact.mjs.map +1 -1
- package/dist/esm/formatters/currency.mjs +26 -1
- package/dist/esm/formatters/currency.mjs.map +1 -1
- package/dist/esm/formatters/date.mjs +57 -1
- package/dist/esm/formatters/date.mjs.map +1 -1
- package/dist/esm/formatters/index.mjs +11 -1
- package/dist/esm/formatters/list.mjs +27 -1
- package/dist/esm/formatters/list.mjs.map +1 -1
- package/dist/esm/formatters/number.mjs +17 -1
- package/dist/esm/formatters/number.mjs.map +1 -1
- package/dist/esm/formatters/percentage.mjs +24 -1
- package/dist/esm/formatters/percentage.mjs.map +1 -1
- package/dist/esm/formatters/relativeTime.mjs +40 -1
- package/dist/esm/formatters/relativeTime.mjs.map +1 -1
- package/dist/esm/formatters/units.mjs +20 -1
- package/dist/esm/formatters/units.mjs.map +1 -1
- package/dist/esm/getStorageAttributes.mjs +132 -1
- package/dist/esm/getStorageAttributes.mjs.map +1 -1
- package/dist/esm/index.mjs +87 -1
- package/dist/esm/interpreter/getCondition.mjs +25 -1
- package/dist/esm/interpreter/getCondition.mjs.map +1 -1
- package/dist/esm/interpreter/getContent/deepTransform.mjs +39 -1
- package/dist/esm/interpreter/getContent/deepTransform.mjs.map +1 -1
- package/dist/esm/interpreter/getContent/getContent.mjs +28 -1
- package/dist/esm/interpreter/getContent/getContent.mjs.map +1 -0
- package/dist/esm/interpreter/getContent/index.mjs +5 -1
- package/dist/esm/interpreter/getContent/plugins.mjs +154 -1
- package/dist/esm/interpreter/getContent/plugins.mjs.map +1 -0
- package/dist/esm/interpreter/getDictionary.mjs +24 -1
- package/dist/esm/interpreter/getDictionary.mjs.map +1 -0
- package/dist/esm/interpreter/getEnumeration.mjs +69 -1
- package/dist/esm/interpreter/getEnumeration.mjs.map +1 -1
- package/dist/esm/interpreter/getGender.mjs +36 -1
- package/dist/esm/interpreter/getGender.mjs.map +1 -1
- package/dist/esm/interpreter/getHTML.mjs +122 -1
- package/dist/esm/interpreter/getHTML.mjs.map +1 -1
- package/dist/esm/interpreter/getInsertion.mjs +20 -1
- package/dist/esm/interpreter/getInsertion.mjs.map +1 -1
- package/dist/esm/interpreter/getIntlayer.mjs +37 -1
- package/dist/esm/interpreter/getIntlayer.mjs.map +1 -0
- package/dist/esm/interpreter/getNesting.mjs +36 -1
- package/dist/esm/interpreter/getNesting.mjs.map +1 -0
- package/dist/esm/interpreter/getTranslation.mjs +110 -1
- package/dist/esm/interpreter/getTranslation.mjs.map +1 -1
- package/dist/esm/interpreter/index.mjs +13 -1
- package/dist/esm/interpreter/splitAndJoinInsertion.mjs +53 -1
- package/dist/esm/interpreter/splitAndJoinInsertion.mjs.map +1 -1
- package/dist/esm/localization/getBrowserLocale.mjs +138 -1
- package/dist/esm/localization/getBrowserLocale.mjs.map +1 -1
- package/dist/esm/localization/getHTMLTextDir.mjs +38 -1
- package/dist/esm/localization/getHTMLTextDir.mjs.map +1 -1
- package/dist/esm/localization/getLocale.mjs +24 -1
- package/dist/esm/localization/getLocale.mjs.map +1 -1
- package/dist/esm/localization/getLocaleFromPath.mjs +35 -1
- package/dist/esm/localization/getLocaleFromPath.mjs.map +1 -1
- package/dist/esm/localization/getLocaleLang.mjs +18 -1
- package/dist/esm/localization/getLocaleLang.mjs.map +1 -1
- package/dist/esm/localization/getLocaleName.mjs +9 -1
- package/dist/esm/localization/getLocaleName.mjs.map +1 -1
- package/dist/esm/localization/getLocalizedUrl.mjs +70 -1
- package/dist/esm/localization/getLocalizedUrl.mjs.map +1 -1
- package/dist/esm/localization/getMultilingualUrls.mjs +45 -1
- package/dist/esm/localization/getMultilingualUrls.mjs.map +1 -1
- package/dist/esm/localization/getPathWithoutLocale.mjs +52 -1
- package/dist/esm/localization/getPathWithoutLocale.mjs.map +1 -1
- package/dist/esm/localization/getPrefix.mjs +69 -1
- package/dist/esm/localization/getPrefix.mjs.map +1 -1
- package/dist/esm/localization/index.mjs +18 -1
- package/dist/esm/localization/localeDetector.mjs +131 -1
- package/dist/esm/localization/localeDetector.mjs.map +1 -1
- package/dist/esm/localization/localeMapper.mjs +119 -1
- package/dist/esm/localization/localeMapper.mjs.map +1 -1
- package/dist/esm/localization/localeResolver.mjs +25 -1
- package/dist/esm/localization/localeResolver.mjs.map +1 -1
- package/dist/esm/localization/rewriteUtils.mjs +104 -1
- package/dist/esm/localization/rewriteUtils.mjs.map +1 -1
- package/dist/esm/localization/validatePrefix.mjs +44 -1
- package/dist/esm/localization/validatePrefix.mjs.map +1 -1
- package/dist/esm/markdown/compiler.mjs +786 -10
- package/dist/esm/markdown/compiler.mjs.map +1 -1
- package/dist/esm/markdown/constants.mjs +247 -1
- package/dist/esm/markdown/constants.mjs.map +1 -1
- package/dist/esm/markdown/index.mjs +10 -1
- package/dist/esm/markdown/parser.mjs +65 -1
- package/dist/esm/markdown/parser.mjs.map +1 -1
- package/dist/esm/markdown/renderer.mjs +59 -1
- package/dist/esm/markdown/renderer.mjs.map +1 -1
- package/dist/esm/markdown/utils.mjs +361 -6
- package/dist/esm/markdown/utils.mjs.map +1 -1
- package/dist/esm/messageFormat/ICU.mjs +330 -1
- package/dist/esm/messageFormat/ICU.mjs.map +1 -1
- package/dist/esm/messageFormat/i18next.mjs +341 -1
- package/dist/esm/messageFormat/i18next.mjs.map +1 -1
- package/dist/esm/messageFormat/index.mjs +5 -1
- package/dist/esm/messageFormat/verify-icu-format.mjs +64 -2
- package/dist/esm/messageFormat/verify-icu-format.mjs.map +1 -1
- package/dist/esm/messageFormat/vue-i18n.mjs +177 -1
- package/dist/esm/messageFormat/vue-i18n.mjs.map +1 -1
- package/dist/esm/transpiler/condition/condition.mjs +24 -1
- package/dist/esm/transpiler/condition/condition.mjs.map +1 -1
- package/dist/esm/transpiler/condition/index.mjs +3 -1
- package/dist/esm/transpiler/enumeration/enumeration.mjs +26 -1
- package/dist/esm/transpiler/enumeration/enumeration.mjs.map +1 -1
- package/dist/esm/transpiler/enumeration/index.mjs +3 -1
- package/dist/esm/transpiler/file/file.mjs +48 -1
- package/dist/esm/transpiler/file/file.mjs.map +1 -1
- package/dist/esm/transpiler/file/fileBrowser.mjs +22 -1
- package/dist/esm/transpiler/file/fileBrowser.mjs.map +1 -1
- package/dist/esm/transpiler/file/index.mjs +3 -1
- package/dist/esm/transpiler/gender/gender.mjs +24 -1
- package/dist/esm/transpiler/gender/gender.mjs.map +1 -1
- package/dist/esm/transpiler/gender/index.mjs +3 -1
- package/dist/esm/transpiler/html/getHTMLCustomComponents.mjs +44 -1
- package/dist/esm/transpiler/html/getHTMLCustomComponents.mjs.map +1 -0
- package/dist/esm/transpiler/html/html.mjs +42 -1
- package/dist/esm/transpiler/html/html.mjs.map +1 -0
- package/dist/esm/transpiler/html/htmlTags.mjs +114 -1
- package/dist/esm/transpiler/html/htmlTags.mjs.map +1 -1
- package/dist/esm/transpiler/html/index.mjs +5 -1
- package/dist/esm/transpiler/html/validateHTML.mjs +62 -1
- package/dist/esm/transpiler/html/validateHTML.mjs.map +1 -1
- package/dist/esm/transpiler/index.mjs +15 -1
- package/dist/esm/transpiler/insertion/getInsertionValues.mjs +9 -1
- package/dist/esm/transpiler/insertion/getInsertionValues.mjs.map +1 -1
- package/dist/esm/transpiler/insertion/index.mjs +4 -1
- package/dist/esm/transpiler/insertion/insertion.mjs +34 -1
- package/dist/esm/transpiler/insertion/insertion.mjs.map +1 -1
- package/dist/esm/transpiler/markdown/getMarkdownMetadata.mjs +22 -2
- package/dist/esm/transpiler/markdown/getMarkdownMetadata.mjs.map +1 -1
- package/dist/esm/transpiler/markdown/index.mjs +5 -1
- package/dist/esm/transpiler/markdown/markdown.mjs +60 -1
- package/dist/esm/transpiler/markdown/markdown.mjs.map +1 -1
- package/dist/esm/transpiler/markdown/validateMarkdown.mjs +73 -4
- package/dist/esm/transpiler/markdown/validateMarkdown.mjs.map +1 -1
- package/dist/esm/transpiler/nesting/index.mjs +3 -1
- package/dist/esm/transpiler/nesting/nesting.mjs +25 -1
- package/dist/esm/transpiler/nesting/nesting.mjs.map +1 -1
- package/dist/esm/transpiler/translation/index.mjs +3 -1
- package/dist/esm/transpiler/translation/translation.mjs +27 -1
- package/dist/esm/transpiler/translation/translation.mjs.map +1 -1
- package/dist/esm/utils/checkIsURLAbsolute.mjs +5 -1
- package/dist/esm/utils/checkIsURLAbsolute.mjs.map +1 -1
- package/dist/esm/utils/getCookie.mjs +30 -1
- package/dist/esm/utils/getCookie.mjs.map +1 -1
- package/dist/esm/utils/index.mjs +9 -1
- package/dist/esm/utils/intl.mjs +86 -1
- package/dist/esm/utils/intl.mjs.map +1 -1
- package/dist/esm/utils/isSameKeyPath.mjs +5 -1
- package/dist/esm/utils/isSameKeyPath.mjs.map +1 -1
- package/dist/esm/utils/isValidReactElement.mjs +12 -1
- package/dist/esm/utils/isValidReactElement.mjs.map +1 -1
- package/dist/esm/utils/localeStorage.mjs +135 -1
- package/dist/esm/utils/localeStorage.mjs.map +1 -1
- package/dist/esm/utils/parseYaml.mjs +320 -16
- package/dist/esm/utils/parseYaml.mjs.map +1 -1
- package/dist/types/deepTransformPlugins/getFilterMissingTranslationsContent.d.ts +50 -2
- package/dist/types/deepTransformPlugins/getFilterMissingTranslationsContent.d.ts.map +1 -0
- package/dist/types/deepTransformPlugins/getFilterTranslationsOnlyContent.d.ts +42 -2
- package/dist/types/deepTransformPlugins/getFilterTranslationsOnlyContent.d.ts.map +1 -0
- package/dist/types/deepTransformPlugins/getFilteredLocalesContent.d.ts +34 -2
- package/dist/types/deepTransformPlugins/getFilteredLocalesContent.d.ts.map +1 -0
- package/dist/types/deepTransformPlugins/getLocalizedContent.d.ts +18 -2
- package/dist/types/deepTransformPlugins/getLocalizedContent.d.ts.map +1 -0
- package/dist/types/deepTransformPlugins/getMaskContent.d.ts +10 -2
- package/dist/types/deepTransformPlugins/getMaskContent.d.ts.map +1 -0
- package/dist/types/deepTransformPlugins/getMissingLocalesContent.d.ts +19 -2
- package/dist/types/deepTransformPlugins/getMissingLocalesContent.d.ts.map +1 -0
- package/dist/types/deepTransformPlugins/getMultilingualDictionary.d.ts +32 -2
- package/dist/types/deepTransformPlugins/getMultilingualDictionary.d.ts.map +1 -0
- package/dist/types/deepTransformPlugins/getReplacedValuesContent.d.ts +8 -2
- package/dist/types/deepTransformPlugins/getReplacedValuesContent.d.ts.map +1 -0
- package/dist/types/deepTransformPlugins/getSplittedContent.d.ts +43 -2
- package/dist/types/deepTransformPlugins/getSplittedContent.d.ts.map +1 -0
- package/dist/types/deepTransformPlugins/index.d.ts +10 -10
- package/dist/types/deepTransformPlugins/insertContentInDictionary.d.ts +25 -2
- package/dist/types/deepTransformPlugins/insertContentInDictionary.d.ts.map +1 -0
- package/dist/types/dictionaryManipulator/editDictionaryByKeyPath.d.ts +8 -2
- package/dist/types/dictionaryManipulator/editDictionaryByKeyPath.d.ts.map +1 -0
- package/dist/types/dictionaryManipulator/getContentNodeByKeyPath.d.ts +9 -2
- package/dist/types/dictionaryManipulator/getContentNodeByKeyPath.d.ts.map +1 -0
- package/dist/types/dictionaryManipulator/getDefaultNode.d.ts +9 -2
- package/dist/types/dictionaryManipulator/getDefaultNode.d.ts.map +1 -0
- package/dist/types/dictionaryManipulator/getEmptyNode.d.ts +7 -2
- package/dist/types/dictionaryManipulator/getEmptyNode.d.ts.map +1 -0
- package/dist/types/dictionaryManipulator/getNodeChildren.d.ts +7 -2
- package/dist/types/dictionaryManipulator/getNodeChildren.d.ts.map +1 -0
- package/dist/types/dictionaryManipulator/getNodeType.d.ts +8 -2
- package/dist/types/dictionaryManipulator/getNodeType.d.ts.map +1 -0
- package/dist/types/dictionaryManipulator/index.d.ts +12 -12
- package/dist/types/dictionaryManipulator/mergeDictionaries.d.ts +7 -2
- package/dist/types/dictionaryManipulator/mergeDictionaries.d.ts.map +1 -0
- package/dist/types/dictionaryManipulator/normalizeDictionary.d.ts +9 -2
- package/dist/types/dictionaryManipulator/normalizeDictionary.d.ts.map +1 -0
- package/dist/types/dictionaryManipulator/orderDictionaries.d.ts +15 -2
- package/dist/types/dictionaryManipulator/orderDictionaries.d.ts.map +1 -0
- package/dist/types/dictionaryManipulator/removeContentNodeByKeyPath.d.ts +8 -2
- package/dist/types/dictionaryManipulator/removeContentNodeByKeyPath.d.ts.map +1 -0
- package/dist/types/dictionaryManipulator/renameContentNodeByKeyPath.d.ts +8 -2
- package/dist/types/dictionaryManipulator/renameContentNodeByKeyPath.d.ts.map +1 -0
- package/dist/types/dictionaryManipulator/updateNodeChildren.d.ts +7 -2
- package/dist/types/dictionaryManipulator/updateNodeChildren.d.ts.map +1 -0
- package/dist/types/formatters/compact.d.ts +20 -2
- package/dist/types/formatters/compact.d.ts.map +1 -0
- package/dist/types/formatters/currency.d.ts +20 -2
- package/dist/types/formatters/currency.d.ts.map +1 -0
- package/dist/types/formatters/date.d.ts +20 -2
- package/dist/types/formatters/date.d.ts.map +1 -0
- package/dist/types/formatters/index.d.ts +9 -9
- package/dist/types/formatters/list.d.ts +30 -2
- package/dist/types/formatters/list.d.ts.map +1 -0
- package/dist/types/formatters/number.d.ts +18 -2
- package/dist/types/formatters/number.d.ts.map +1 -0
- package/dist/types/formatters/percentage.d.ts +18 -2
- package/dist/types/formatters/percentage.d.ts.map +1 -0
- package/dist/types/formatters/relativeTime.d.ts +21 -2
- package/dist/types/formatters/relativeTime.d.ts.map +1 -0
- package/dist/types/formatters/units.d.ts +16 -2
- package/dist/types/formatters/units.d.ts.map +1 -0
- package/dist/types/getStorageAttributes.d.ts +29 -2
- package/dist/types/getStorageAttributes.d.ts.map +1 -0
- package/dist/types/index.d.ts +88 -80
- package/dist/types/interpreter/getCondition.d.ts +22 -2
- package/dist/types/interpreter/getCondition.d.ts.map +1 -0
- package/dist/types/interpreter/getContent/deepTransform.d.ts +12 -2
- package/dist/types/interpreter/getContent/deepTransform.d.ts.map +1 -0
- package/dist/types/interpreter/getContent/getContent.d.ts +16 -2
- package/dist/types/interpreter/getContent/getContent.d.ts.map +1 -0
- package/dist/types/interpreter/getContent/index.d.ts +3 -1
- package/dist/types/interpreter/getContent/plugins.d.ts +152 -2
- package/dist/types/interpreter/getContent/plugins.d.ts.map +1 -0
- package/dist/types/interpreter/getDictionary.d.ts +17 -2
- package/dist/types/interpreter/getDictionary.d.ts.map +1 -0
- package/dist/types/interpreter/getEnumeration.d.ts +58 -2
- package/dist/types/interpreter/getEnumeration.d.ts.map +1 -0
- package/dist/types/interpreter/getGender.d.ts +1 -1
- package/dist/types/interpreter/getGender.d.ts.map +1 -1
- package/dist/types/interpreter/getHTML.d.ts +32 -2
- package/dist/types/interpreter/getHTML.d.ts.map +1 -0
- package/dist/types/interpreter/getInsertion.d.ts +1 -1
- package/dist/types/interpreter/getInsertion.d.ts.map +1 -1
- package/dist/types/interpreter/getIntlayer.d.ts +8 -2
- package/dist/types/interpreter/getIntlayer.d.ts.map +1 -0
- package/dist/types/interpreter/getNesting.d.ts +27 -2
- package/dist/types/interpreter/getNesting.d.ts.map +1 -0
- package/dist/types/interpreter/getTranslation.d.ts +30 -2
- package/dist/types/interpreter/getTranslation.d.ts.map +1 -0
- package/dist/types/interpreter/index.d.ts +11 -4
- package/dist/types/interpreter/splitAndJoinInsertion.d.ts +25 -2
- package/dist/types/interpreter/splitAndJoinInsertion.d.ts.map +1 -0
- package/dist/types/localization/getBrowserLocale.d.ts +35 -2
- package/dist/types/localization/getBrowserLocale.d.ts.map +1 -0
- package/dist/types/localization/getHTMLTextDir.d.ts +21 -2
- package/dist/types/localization/getHTMLTextDir.d.ts.map +1 -0
- package/dist/types/localization/getLocale.d.ts +11 -2
- package/dist/types/localization/getLocale.d.ts.map +1 -0
- package/dist/types/localization/getLocaleFromPath.d.ts +20 -2
- package/dist/types/localization/getLocaleFromPath.d.ts.map +1 -0
- package/dist/types/localization/getLocaleLang.d.ts +20 -2
- package/dist/types/localization/getLocaleLang.d.ts.map +1 -0
- package/dist/types/localization/getLocaleName.d.ts +7 -2
- package/dist/types/localization/getLocaleName.d.ts.map +1 -0
- package/dist/types/localization/getLocalizedUrl.d.ts +44 -2
- package/dist/types/localization/getLocalizedUrl.d.ts.map +1 -0
- package/dist/types/localization/getMultilingualUrls.d.ts +42 -2
- package/dist/types/localization/getMultilingualUrls.d.ts.map +1 -0
- package/dist/types/localization/getPathWithoutLocale.d.ts +31 -2
- package/dist/types/localization/getPathWithoutLocale.d.ts.map +1 -0
- package/dist/types/localization/getPrefix.d.ts +83 -2
- package/dist/types/localization/getPrefix.d.ts.map +1 -0
- package/dist/types/localization/index.d.ts +16 -16
- package/dist/types/localization/localeDetector.d.ts +18 -2
- package/dist/types/localization/localeDetector.d.ts.map +1 -0
- package/dist/types/localization/localeMapper.d.ts +92 -2
- package/dist/types/localization/localeMapper.d.ts.map +1 -0
- package/dist/types/localization/localeResolver.d.ts +12 -2
- package/dist/types/localization/localeResolver.d.ts.map +1 -0
- package/dist/types/localization/rewriteUtils.d.ts +34 -2
- package/dist/types/localization/rewriteUtils.d.ts.map +1 -0
- package/dist/types/localization/validatePrefix.d.ts +34 -2
- package/dist/types/localization/validatePrefix.d.ts.map +1 -0
- package/dist/types/markdown/compiler.d.ts +9 -2
- package/dist/types/markdown/compiler.d.ts.map +1 -0
- package/dist/types/markdown/constants.d.ts +177 -2
- package/dist/types/markdown/constants.d.ts.map +1 -0
- package/dist/types/markdown/index.d.ts +10 -10
- package/dist/types/markdown/parser.d.ts +16 -2
- package/dist/types/markdown/parser.d.ts.map +1 -0
- package/dist/types/markdown/renderer.d.ts +22 -2
- package/dist/types/markdown/renderer.d.ts.map +1 -0
- package/dist/types/markdown/types.d.ts +333 -2
- package/dist/types/markdown/types.d.ts.map +1 -0
- package/dist/types/markdown/utils.d.ts +140 -2
- package/dist/types/markdown/utils.d.ts.map +1 -0
- package/dist/types/messageFormat/ICU.d.ts +11 -2
- package/dist/types/messageFormat/ICU.d.ts.map +1 -0
- package/dist/types/messageFormat/i18next.d.ts +9 -2
- package/dist/types/messageFormat/i18next.d.ts.map +1 -0
- package/dist/types/messageFormat/index.d.ts +3 -3
- package/dist/types/messageFormat/vue-i18n.d.ts +9 -2
- package/dist/types/messageFormat/vue-i18n.d.ts.map +1 -0
- package/dist/types/transpiler/condition/condition.d.ts +28 -2
- package/dist/types/transpiler/condition/condition.d.ts.map +1 -0
- package/dist/types/transpiler/condition/index.d.ts +1 -1
- package/dist/types/transpiler/enumeration/enumeration.d.ts +40 -2
- package/dist/types/transpiler/enumeration/enumeration.d.ts.map +1 -0
- package/dist/types/transpiler/enumeration/index.d.ts +1 -1
- package/dist/types/transpiler/file/file.d.ts +28 -2
- package/dist/types/transpiler/file/file.d.ts.map +1 -0
- package/dist/types/transpiler/file/fileBrowser.d.ts +1 -1
- package/dist/types/transpiler/file/index.d.ts +1 -1
- package/dist/types/transpiler/gender/gender.d.ts +29 -2
- package/dist/types/transpiler/gender/gender.d.ts.map +1 -0
- package/dist/types/transpiler/gender/index.d.ts +1 -1
- package/dist/types/transpiler/html/html.d.ts +25 -2
- package/dist/types/transpiler/html/html.d.ts.map +1 -0
- package/dist/types/transpiler/html/htmlTags.d.ts +115 -2
- package/dist/types/transpiler/html/htmlTags.d.ts.map +1 -0
- package/dist/types/transpiler/html/index.d.ts +3 -3
- package/dist/types/transpiler/html/validateHTML.d.ts +21 -2
- package/dist/types/transpiler/html/validateHTML.d.ts.map +1 -0
- package/dist/types/transpiler/index.d.ts +15 -15
- package/dist/types/transpiler/insertion/getInsertionValues.d.ts +5 -2
- package/dist/types/transpiler/insertion/getInsertionValues.d.ts.map +1 -0
- package/dist/types/transpiler/insertion/index.d.ts +2 -2
- package/dist/types/transpiler/insertion/insertion.d.ts +23 -2
- package/dist/types/transpiler/insertion/insertion.d.ts.map +1 -0
- package/dist/types/transpiler/markdown/getMarkdownMetadata.d.ts +5 -2
- package/dist/types/transpiler/markdown/getMarkdownMetadata.d.ts.map +1 -0
- package/dist/types/transpiler/markdown/index.d.ts +4 -4
- package/dist/types/transpiler/markdown/markdown.d.ts +26 -2
- package/dist/types/transpiler/markdown/markdown.d.ts.map +1 -0
- package/dist/types/transpiler/markdown/validateMarkdown.d.ts +18 -3
- package/dist/types/transpiler/markdown/validateMarkdown.d.ts.map +1 -0
- package/dist/types/transpiler/nesting/index.d.ts +1 -1
- package/dist/types/transpiler/nesting/nesting.d.ts +49 -2
- package/dist/types/transpiler/nesting/nesting.d.ts.map +1 -0
- package/dist/types/transpiler/translation/index.d.ts +1 -1
- package/dist/types/transpiler/translation/translation.d.ts +33 -2
- package/dist/types/transpiler/translation/translation.d.ts.map +1 -0
- package/dist/types/utils/checkIsURLAbsolute.d.ts +5 -2
- package/dist/types/utils/checkIsURLAbsolute.d.ts.map +1 -0
- package/dist/types/utils/getCookie.d.ts +11 -2
- package/dist/types/utils/getCookie.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +7 -7
- package/dist/types/utils/intl.d.ts +33 -2
- package/dist/types/utils/intl.d.ts.map +1 -0
- package/dist/types/utils/isSameKeyPath.d.ts +7 -2
- package/dist/types/utils/isSameKeyPath.d.ts.map +1 -0
- package/dist/types/utils/isValidReactElement.d.ts +12 -2
- package/dist/types/utils/isValidReactElement.d.ts.map +1 -0
- package/dist/types/utils/localeStorage.d.ts +108 -2
- package/dist/types/utils/localeStorage.d.ts.map +1 -0
- package/dist/types/utils/parseYaml.d.ts +5 -2
- package/dist/types/utils/parseYaml.d.ts.map +1 -0
- package/package.json +6 -6
- package/dist/cjs/chunk-Bmb41Sf3.cjs +0 -1
- package/dist/cjs/getContent-DrqM8pqO.cjs +0 -2
- package/dist/cjs/getContent-DrqM8pqO.cjs.map +0 -1
- package/dist/cjs/html-CZ1N-VL0.cjs +0 -2
- package/dist/cjs/html-CZ1N-VL0.cjs.map +0 -1
- package/dist/esm/getContent-DKqtIZGL.mjs +0 -2
- package/dist/esm/getContent-DKqtIZGL.mjs.map +0 -1
- package/dist/esm/html-3bo80xzx.mjs +0 -2
- package/dist/esm/html-3bo80xzx.mjs.map +0 -1
- package/dist/types/ICU-tA3ZHN5U.d.ts +0 -11
- package/dist/types/ICU-tA3ZHN5U.d.ts.map +0 -1
- package/dist/types/checkIsURLAbsolute-CTf3JFU6.d.ts +0 -5
- package/dist/types/checkIsURLAbsolute-CTf3JFU6.d.ts.map +0 -1
- package/dist/types/compact-IHXcM4pT.d.ts +0 -20
- package/dist/types/compact-IHXcM4pT.d.ts.map +0 -1
- package/dist/types/compiler-DFiAsUdH.d.ts +0 -9
- package/dist/types/compiler-DFiAsUdH.d.ts.map +0 -1
- package/dist/types/condition-BDUtoh_1.d.ts +0 -28
- package/dist/types/condition-BDUtoh_1.d.ts.map +0 -1
- package/dist/types/constants-CI_D82B1.d.ts +0 -177
- package/dist/types/constants-CI_D82B1.d.ts.map +0 -1
- package/dist/types/currency-PbMCnHep.d.ts +0 -20
- package/dist/types/currency-PbMCnHep.d.ts.map +0 -1
- package/dist/types/date-C-PI8KqU.d.ts +0 -20
- package/dist/types/date-C-PI8KqU.d.ts.map +0 -1
- package/dist/types/editDictionaryByKeyPath-BYIHcsyf.d.ts +0 -8
- package/dist/types/editDictionaryByKeyPath-BYIHcsyf.d.ts.map +0 -1
- package/dist/types/enumeration-CtuvB5Zz.d.ts +0 -40
- package/dist/types/enumeration-CtuvB5Zz.d.ts.map +0 -1
- package/dist/types/file-C3q8xvQb.d.ts +0 -28
- package/dist/types/file-C3q8xvQb.d.ts.map +0 -1
- package/dist/types/gender-Dd39Ijmf.d.ts +0 -29
- package/dist/types/gender-Dd39Ijmf.d.ts.map +0 -1
- package/dist/types/getBrowserLocale-RD_Mwv1t.d.ts +0 -35
- package/dist/types/getBrowserLocale-RD_Mwv1t.d.ts.map +0 -1
- package/dist/types/getContentNodeByKeyPath-B0Tdi5mj.d.ts +0 -9
- package/dist/types/getContentNodeByKeyPath-B0Tdi5mj.d.ts.map +0 -1
- package/dist/types/getCookie-DPOvVv_h.d.ts +0 -11
- package/dist/types/getCookie-DPOvVv_h.d.ts.map +0 -1
- package/dist/types/getDefaultNode-DQNsje2D.d.ts +0 -9
- package/dist/types/getDefaultNode-DQNsje2D.d.ts.map +0 -1
- package/dist/types/getEmptyNode-DW27TTBj.d.ts +0 -7
- package/dist/types/getEmptyNode-DW27TTBj.d.ts.map +0 -1
- package/dist/types/getFilterMissingTranslationsContent-CDNQqoy1.d.ts +0 -50
- package/dist/types/getFilterMissingTranslationsContent-CDNQqoy1.d.ts.map +0 -1
- package/dist/types/getFilterTranslationsOnlyContent-D2YgBkHn.d.ts +0 -42
- package/dist/types/getFilterTranslationsOnlyContent-D2YgBkHn.d.ts.map +0 -1
- package/dist/types/getFilteredLocalesContent-D0GP-uEg.d.ts +0 -34
- package/dist/types/getFilteredLocalesContent-D0GP-uEg.d.ts.map +0 -1
- package/dist/types/getHTML-CP6OXtdo.d.ts +0 -32
- package/dist/types/getHTML-CP6OXtdo.d.ts.map +0 -1
- package/dist/types/getHTMLTextDir-4Zh8J3x7.d.ts +0 -21
- package/dist/types/getHTMLTextDir-4Zh8J3x7.d.ts.map +0 -1
- package/dist/types/getInsertionValues-Cu9IdbuE.d.ts +0 -5
- package/dist/types/getInsertionValues-Cu9IdbuE.d.ts.map +0 -1
- package/dist/types/getLocale-B9dECUM_.d.ts +0 -11
- package/dist/types/getLocale-B9dECUM_.d.ts.map +0 -1
- package/dist/types/getLocaleFromPath-621W32QA.d.ts +0 -26
- package/dist/types/getLocaleFromPath-621W32QA.d.ts.map +0 -1
- package/dist/types/getLocaleLang-Bcan1gS4.d.ts +0 -20
- package/dist/types/getLocaleLang-Bcan1gS4.d.ts.map +0 -1
- package/dist/types/getLocaleName-CfRAD9Hc.d.ts +0 -7
- package/dist/types/getLocaleName-CfRAD9Hc.d.ts.map +0 -1
- package/dist/types/getLocalizedContent-DOncZd-0.d.ts +0 -18
- package/dist/types/getLocalizedContent-DOncZd-0.d.ts.map +0 -1
- package/dist/types/getLocalizedUrl-BbqeA3-W.d.ts +0 -49
- package/dist/types/getLocalizedUrl-BbqeA3-W.d.ts.map +0 -1
- package/dist/types/getMarkdownMetadata-Bf1S1NQ0.d.ts +0 -5
- package/dist/types/getMarkdownMetadata-Bf1S1NQ0.d.ts.map +0 -1
- package/dist/types/getMaskContent-BwLFqp7v.d.ts +0 -10
- package/dist/types/getMaskContent-BwLFqp7v.d.ts.map +0 -1
- package/dist/types/getMissingLocalesContent-BYffYcdx.d.ts +0 -19
- package/dist/types/getMissingLocalesContent-BYffYcdx.d.ts.map +0 -1
- package/dist/types/getMultilingualDictionary-DO3i1MFs.d.ts +0 -32
- package/dist/types/getMultilingualDictionary-DO3i1MFs.d.ts.map +0 -1
- package/dist/types/getMultilingualUrls-CUxYYfA4.d.ts +0 -47
- package/dist/types/getMultilingualUrls-CUxYYfA4.d.ts.map +0 -1
- package/dist/types/getNodeChildren-OT7Liqke.d.ts +0 -7
- package/dist/types/getNodeChildren-OT7Liqke.d.ts.map +0 -1
- package/dist/types/getNodeType-Cp765I26.d.ts +0 -8
- package/dist/types/getNodeType-Cp765I26.d.ts.map +0 -1
- package/dist/types/getPathWithoutLocale-B_aIR7O0.d.ts +0 -31
- package/dist/types/getPathWithoutLocale-B_aIR7O0.d.ts.map +0 -1
- package/dist/types/getPrefix-X9XKkrZD.d.ts +0 -68
- package/dist/types/getPrefix-X9XKkrZD.d.ts.map +0 -1
- package/dist/types/getReplacedValuesContent-BvL25pdt.d.ts +0 -8
- package/dist/types/getReplacedValuesContent-BvL25pdt.d.ts.map +0 -1
- package/dist/types/getSplittedContent-YD4JDMfB.d.ts +0 -43
- package/dist/types/getSplittedContent-YD4JDMfB.d.ts.map +0 -1
- package/dist/types/getStorageAttributes-CIO2xWqQ.d.ts +0 -29
- package/dist/types/getStorageAttributes-CIO2xWqQ.d.ts.map +0 -1
- package/dist/types/getTranslation-BG2Wg-af.d.ts +0 -30
- package/dist/types/getTranslation-BG2Wg-af.d.ts.map +0 -1
- package/dist/types/html-Dn6KrpJ3.d.ts +0 -25
- package/dist/types/html-Dn6KrpJ3.d.ts.map +0 -1
- package/dist/types/htmlTags-YxTtVUx6.d.ts +0 -115
- package/dist/types/htmlTags-YxTtVUx6.d.ts.map +0 -1
- package/dist/types/i18next-qY0AixrB.d.ts +0 -9
- package/dist/types/i18next-qY0AixrB.d.ts.map +0 -1
- package/dist/types/index-1CTsSKEn.d.ts +0 -1
- package/dist/types/index-B8xF2zGo.d.ts +0 -1
- package/dist/types/index-BcsOTSQF.d.ts +0 -1
- package/dist/types/index-BnEeKNKW.d.ts +0 -322
- package/dist/types/index-BnEeKNKW.d.ts.map +0 -1
- package/dist/types/index-Cf8zm5QQ.d.ts +0 -1
- package/dist/types/index-CfvILin8.d.ts +0 -1
- package/dist/types/index-DK_kKFOF.d.ts +0 -1
- package/dist/types/index-DeJa0xZp.d.ts +0 -1
- package/dist/types/index-Vlqtiwjx.d.ts +0 -1
- package/dist/types/insertContentInDictionary-DZ3UzG4K.d.ts +0 -25
- package/dist/types/insertContentInDictionary-DZ3UzG4K.d.ts.map +0 -1
- package/dist/types/insertion-M5fwK-29.d.ts +0 -23
- package/dist/types/insertion-M5fwK-29.d.ts.map +0 -1
- package/dist/types/intl-B2Ap8I5x.d.ts +0 -33
- package/dist/types/intl-B2Ap8I5x.d.ts.map +0 -1
- package/dist/types/isSameKeyPath-CkH8NdJh.d.ts +0 -7
- package/dist/types/isSameKeyPath-CkH8NdJh.d.ts.map +0 -1
- package/dist/types/isValidReactElement-BsoJ01oP.d.ts +0 -12
- package/dist/types/isValidReactElement-BsoJ01oP.d.ts.map +0 -1
- package/dist/types/list-BdjJM2Gx.d.ts +0 -30
- package/dist/types/list-BdjJM2Gx.d.ts.map +0 -1
- package/dist/types/localeDetector-BWNCQRiZ.d.ts +0 -18
- package/dist/types/localeDetector-BWNCQRiZ.d.ts.map +0 -1
- package/dist/types/localeMapper-DoAnasqf.d.ts +0 -92
- package/dist/types/localeMapper-DoAnasqf.d.ts.map +0 -1
- package/dist/types/localeResolver-bb7AWQNX.d.ts +0 -12
- package/dist/types/localeResolver-bb7AWQNX.d.ts.map +0 -1
- package/dist/types/localeStorage-CZHwY0u3.d.ts +0 -108
- package/dist/types/localeStorage-CZHwY0u3.d.ts.map +0 -1
- package/dist/types/markdown-MzfikrI1.d.ts +0 -26
- package/dist/types/markdown-MzfikrI1.d.ts.map +0 -1
- package/dist/types/mergeDictionaries-D6WUMQN5.d.ts +0 -7
- package/dist/types/mergeDictionaries-D6WUMQN5.d.ts.map +0 -1
- package/dist/types/normalizeDictionary-coviIGTW.d.ts +0 -9
- package/dist/types/normalizeDictionary-coviIGTW.d.ts.map +0 -1
- package/dist/types/number-C8izkCmU.d.ts +0 -16
- package/dist/types/number-C8izkCmU.d.ts.map +0 -1
- package/dist/types/orderDictionaries-SSCMY6qG.d.ts +0 -15
- package/dist/types/orderDictionaries-SSCMY6qG.d.ts.map +0 -1
- package/dist/types/parseYaml-D5gxutvA.d.ts +0 -5
- package/dist/types/parseYaml-D5gxutvA.d.ts.map +0 -1
- package/dist/types/parser-BVwR6Tjw.d.ts +0 -16
- package/dist/types/parser-BVwR6Tjw.d.ts.map +0 -1
- package/dist/types/percentage-BqsvW0Zw.d.ts +0 -16
- package/dist/types/percentage-BqsvW0Zw.d.ts.map +0 -1
- package/dist/types/relativeTime-mJaYEq7H.d.ts +0 -11
- package/dist/types/relativeTime-mJaYEq7H.d.ts.map +0 -1
- package/dist/types/removeContentNodeByKeyPath-CotCOOsD.d.ts +0 -8
- package/dist/types/removeContentNodeByKeyPath-CotCOOsD.d.ts.map +0 -1
- package/dist/types/renameContentNodeByKeyPath-BuyH5gOr.d.ts +0 -8
- package/dist/types/renameContentNodeByKeyPath-BuyH5gOr.d.ts.map +0 -1
- package/dist/types/renderer-C06x2Orf.d.ts +0 -22
- package/dist/types/renderer-C06x2Orf.d.ts.map +0 -1
- package/dist/types/rewriteUtils-Bd82NiGR.d.ts +0 -34
- package/dist/types/rewriteUtils-Bd82NiGR.d.ts.map +0 -1
- package/dist/types/splitAndJoinInsertion-bkuLa7o2.d.ts +0 -25
- package/dist/types/splitAndJoinInsertion-bkuLa7o2.d.ts.map +0 -1
- package/dist/types/translation-CiC-Avxc.d.ts +0 -33
- package/dist/types/translation-CiC-Avxc.d.ts.map +0 -1
- package/dist/types/types-C2Om0aEM.d.ts +0 -333
- package/dist/types/types-C2Om0aEM.d.ts.map +0 -1
- package/dist/types/units-CouGqa8j.d.ts +0 -16
- package/dist/types/units-CouGqa8j.d.ts.map +0 -1
- package/dist/types/updateNodeChildren-B5Tu1UBZ.d.ts +0 -7
- package/dist/types/updateNodeChildren-B5Tu1UBZ.d.ts.map +0 -1
- package/dist/types/utils-Dcmgh_80.d.ts +0 -140
- package/dist/types/utils-Dcmgh_80.d.ts.map +0 -1
- package/dist/types/validateHTML-U7UKTtFd.d.ts +0 -21
- package/dist/types/validateHTML-U7UKTtFd.d.ts.map +0 -1
- package/dist/types/validateMarkdown-BUaTDDIu.d.ts +0 -18
- package/dist/types/validateMarkdown-BUaTDDIu.d.ts.map +0 -1
- package/dist/types/validatePrefix-Dtmg7QLq.d.ts +0 -38
- package/dist/types/validatePrefix-Dtmg7QLq.d.ts.map +0 -1
- package/dist/types/vue-i18n-JtUB7N_m.d.ts +0 -9
- package/dist/types/vue-i18n-JtUB7N_m.d.ts.map +0 -1
|
@@ -1,2 +1,39 @@
|
|
|
1
|
-
|
|
1
|
+
//#region src/localization/getHTMLTextDir.ts
|
|
2
|
+
/**
|
|
3
|
+
* Returns the text direction of the given locale.
|
|
4
|
+
*
|
|
5
|
+
* Example:
|
|
6
|
+
*
|
|
7
|
+
* getHTMLTextDir('en-US') // 'ltr'
|
|
8
|
+
* getHTMLTextDir('en') // 'ltr'
|
|
9
|
+
* getHTMLTextDir('fr-CA') // 'ltr'
|
|
10
|
+
* getHTMLTextDir('fr') // 'ltr'
|
|
11
|
+
*
|
|
12
|
+
* @param locale The locale to get the text direction for.
|
|
13
|
+
* @returns The text direction of the given locale.
|
|
14
|
+
*/
|
|
15
|
+
const getHTMLTextDir = (locale) => {
|
|
16
|
+
if (!locale) return "ltr";
|
|
17
|
+
try {
|
|
18
|
+
const localeInfo = new Intl.Locale(locale);
|
|
19
|
+
if ("getTextInfo" in localeInfo) return localeInfo.getTextInfo().direction;
|
|
20
|
+
if ("textInfo" in localeInfo) return localeInfo.textInfo.direction;
|
|
21
|
+
const maximized = localeInfo.maximize();
|
|
22
|
+
return [
|
|
23
|
+
"Arab",
|
|
24
|
+
"Hebr",
|
|
25
|
+
"Thaa",
|
|
26
|
+
"Syrc",
|
|
27
|
+
"Mand",
|
|
28
|
+
"Adlm",
|
|
29
|
+
"Rohg",
|
|
30
|
+
"Nkoo"
|
|
31
|
+
].includes(maximized.script ?? "") ? "rtl" : "ltr";
|
|
32
|
+
} catch {
|
|
33
|
+
return "ltr";
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
//#endregion
|
|
38
|
+
export { getHTMLTextDir };
|
|
2
39
|
//# sourceMappingURL=getHTMLTextDir.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getHTMLTextDir.mjs","names":[],"sources":["../../../src/localization/getHTMLTextDir.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"getHTMLTextDir.mjs","names":[],"sources":["../../../src/localization/getHTMLTextDir.ts"],"sourcesContent":["import type { LocalesValues } from '@intlayer/types/module_augmentation';\n\ntype Dir = 'ltr' | 'rtl' | 'auto';\n\n/**\n * Returns the text direction of the given locale.\n *\n * Example:\n *\n * getHTMLTextDir('en-US') // 'ltr'\n * getHTMLTextDir('en') // 'ltr'\n * getHTMLTextDir('fr-CA') // 'ltr'\n * getHTMLTextDir('fr') // 'ltr'\n *\n * @param locale The locale to get the text direction for.\n * @returns The text direction of the given locale.\n */\nexport const getHTMLTextDir = (locale?: LocalesValues): Dir => {\n if (!locale) return 'ltr';\n\n try {\n const localeInfo = new Intl.Locale(locale);\n\n // Check for the 'textInfo' property (part of the Intl Enumeration API)\n // Most modern browsers support 'direction' via 'getTextInfo()' or 'textInfo'\n if ('getTextInfo' in localeInfo) {\n return (localeInfo as any).getTextInfo().direction as Dir;\n }\n\n // Fallback for environments supporting 'textInfo' property\n if ('textInfo' in localeInfo) {\n return (localeInfo as any).textInfo.direction as Dir;\n }\n\n // Manual fallback for older environments using script detection\n const maximized = localeInfo.maximize();\n const rtlScripts = [\n 'Arab',\n 'Hebr',\n 'Thaa',\n 'Syrc',\n 'Mand',\n 'Adlm',\n 'Rohg',\n 'Nkoo',\n ];\n\n return rtlScripts.includes(maximized.script ?? '') ? 'rtl' : 'ltr';\n } catch {\n return 'ltr';\n }\n};\n"],"mappings":";;;;;;;;;;;;;;AAiBA,MAAa,kBAAkB,WAAgC;AAC7D,KAAI,CAAC,OAAQ,QAAO;AAEpB,KAAI;EACF,MAAM,aAAa,IAAI,KAAK,OAAO,OAAO;AAI1C,MAAI,iBAAiB,WACnB,QAAQ,WAAmB,aAAa,CAAC;AAI3C,MAAI,cAAc,WAChB,QAAQ,WAAmB,SAAS;EAItC,MAAM,YAAY,WAAW,UAAU;AAYvC,SAXmB;GACjB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAEiB,SAAS,UAAU,UAAU,GAAG,GAAG,QAAQ;SACvD;AACN,SAAO"}
|
|
@@ -1,2 +1,25 @@
|
|
|
1
|
-
import{getLocaleFromStorage
|
|
1
|
+
import { getLocaleFromStorage } from "../utils/localeStorage.mjs";
|
|
2
|
+
import { localeResolver } from "./localeResolver.mjs";
|
|
3
|
+
import { getPreferredLanguages } from "./localeDetector.mjs";
|
|
4
|
+
import { DEFAULT_LOCALE, LOCALES } from "@intlayer/config/defaultValues";
|
|
5
|
+
import configuration from "@intlayer/config/built";
|
|
6
|
+
|
|
7
|
+
//#region src/localization/getLocale.ts
|
|
8
|
+
const getLocale = async (ctx = {}) => {
|
|
9
|
+
const defaultLocale = configuration?.internationalization?.defaultLocale ?? DEFAULT_LOCALE;
|
|
10
|
+
const availableLocales = configuration?.internationalization?.locales ?? LOCALES;
|
|
11
|
+
const storedLocale = getLocaleFromStorage({
|
|
12
|
+
getCookie: ctx.getCookie,
|
|
13
|
+
getHeader: ctx.getHeader
|
|
14
|
+
});
|
|
15
|
+
if (storedLocale) return storedLocale;
|
|
16
|
+
const acceptLanguageHeader = ctx.getHeader?.("accept-language");
|
|
17
|
+
if (!acceptLanguageHeader) return defaultLocale;
|
|
18
|
+
const userFallbackLocale = localeResolver(getPreferredLanguages(acceptLanguageHeader, availableLocales), availableLocales, defaultLocale);
|
|
19
|
+
if (userFallbackLocale) return userFallbackLocale;
|
|
20
|
+
return defaultLocale;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
//#endregion
|
|
24
|
+
export { getLocale };
|
|
2
25
|
//# sourceMappingURL=getLocale.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getLocale.mjs","names":[],"sources":["../../../src/localization/getLocale.ts"],"sourcesContent":["import configuration from '@intlayer/config/built';\nimport { DEFAULT_LOCALE, LOCALES } from '@intlayer/config/defaultValues';\nimport type { Locale } from '@intlayer/types/allLocales';\nimport { getLocaleFromStorage } from '../utils/localeStorage';\nimport { getPreferredLanguages } from './localeDetector';\nimport { localeResolver } from './localeResolver';\n\nexport type RequestContext = {\n getHeader?: (name: string) => string | null | undefined;\n getCookie?: (name: string) => string | null | undefined;\n};\n\nexport const getLocale = async (ctx: RequestContext = {}): Promise<Locale> => {\n const defaultLocale =\n configuration?.internationalization?.defaultLocale ?? DEFAULT_LOCALE;\n const availableLocales =\n configuration?.internationalization?.locales ?? LOCALES;\n\n // Try locale from storage (cookie or header)\n const storedLocale = getLocaleFromStorage({\n getCookie: ctx.getCookie,\n getHeader: ctx.getHeader,\n });\n\n if (storedLocale) {\n return storedLocale;\n }\n\n // Fallback to Accept-Language negotiation\n const acceptLanguageHeader = ctx.getHeader?.('accept-language');\n\n if (!acceptLanguageHeader) {\n return defaultLocale;\n }\n\n const preferredLocaleStrings = getPreferredLanguages(\n acceptLanguageHeader,\n availableLocales\n );\n\n const userFallbackLocale = localeResolver(\n preferredLocaleStrings,\n availableLocales,\n defaultLocale\n );\n\n if (userFallbackLocale) {\n return userFallbackLocale;\n }\n\n // Default locale\n return defaultLocale;\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"getLocale.mjs","names":[],"sources":["../../../src/localization/getLocale.ts"],"sourcesContent":["import configuration from '@intlayer/config/built';\nimport { DEFAULT_LOCALE, LOCALES } from '@intlayer/config/defaultValues';\nimport type { Locale } from '@intlayer/types/allLocales';\nimport { getLocaleFromStorage } from '../utils/localeStorage';\nimport { getPreferredLanguages } from './localeDetector';\nimport { localeResolver } from './localeResolver';\n\nexport type RequestContext = {\n getHeader?: (name: string) => string | null | undefined;\n getCookie?: (name: string) => string | null | undefined;\n};\n\nexport const getLocale = async (ctx: RequestContext = {}): Promise<Locale> => {\n const defaultLocale =\n configuration?.internationalization?.defaultLocale ?? DEFAULT_LOCALE;\n const availableLocales =\n configuration?.internationalization?.locales ?? LOCALES;\n\n // Try locale from storage (cookie or header)\n const storedLocale = getLocaleFromStorage({\n getCookie: ctx.getCookie,\n getHeader: ctx.getHeader,\n });\n\n if (storedLocale) {\n return storedLocale;\n }\n\n // Fallback to Accept-Language negotiation\n const acceptLanguageHeader = ctx.getHeader?.('accept-language');\n\n if (!acceptLanguageHeader) {\n return defaultLocale;\n }\n\n const preferredLocaleStrings = getPreferredLanguages(\n acceptLanguageHeader,\n availableLocales\n );\n\n const userFallbackLocale = localeResolver(\n preferredLocaleStrings,\n availableLocales,\n defaultLocale\n );\n\n if (userFallbackLocale) {\n return userFallbackLocale;\n }\n\n // Default locale\n return defaultLocale;\n};\n"],"mappings":";;;;;;;AAYA,MAAa,YAAY,OAAO,MAAsB,EAAE,KAAsB;CAC5E,MAAM,gBACJ,eAAe,sBAAsB,iBAAiB;CACxD,MAAM,mBACJ,eAAe,sBAAsB,WAAW;CAGlD,MAAM,eAAe,qBAAqB;EACxC,WAAW,IAAI;EACf,WAAW,IAAI;EAChB,CAAC;AAEF,KAAI,aACF,QAAO;CAIT,MAAM,uBAAuB,IAAI,YAAY,kBAAkB;AAE/D,KAAI,CAAC,qBACH,QAAO;CAQT,MAAM,qBAAqB,eALI,sBAC7B,sBACA,iBACD,EAIC,kBACA,cACD;AAED,KAAI,mBACF,QAAO;AAIT,QAAO"}
|
|
@@ -1,2 +1,36 @@
|
|
|
1
|
-
import{checkIsURLAbsolute
|
|
1
|
+
import { checkIsURLAbsolute } from "../utils/checkIsURLAbsolute.mjs";
|
|
2
|
+
import { resolveRoutingConfig } from "./getPrefix.mjs";
|
|
3
|
+
|
|
4
|
+
//#region src/localization/getLocaleFromPath.ts
|
|
5
|
+
/**
|
|
6
|
+
* Extracts the locale segment from the given URL or pathname based on the routing mode.
|
|
7
|
+
*
|
|
8
|
+
* Mode Behaviors:
|
|
9
|
+
* - 'prefix-no-default': Checks path prefix. If no prefix found, assumes default locale.
|
|
10
|
+
* - 'prefix-all': Checks path prefix.
|
|
11
|
+
* - 'search-params': Checks for 'locale' query parameter.
|
|
12
|
+
* - 'no-prefix': Returns the default locale.
|
|
13
|
+
*
|
|
14
|
+
* @param inputUrl - The complete URL string or pathname to process.
|
|
15
|
+
* @returns The detected locale, default locale (if fallback/implicit), or undefined.
|
|
16
|
+
*/
|
|
17
|
+
const getLocaleFromPath = (inputUrl = "/", options) => {
|
|
18
|
+
const { defaultLocale, locales, mode } = resolveRoutingConfig(options);
|
|
19
|
+
if (!defaultLocale || !locales) return defaultLocale;
|
|
20
|
+
const isAbsoluteUrl = checkIsURLAbsolute(inputUrl);
|
|
21
|
+
const fixedInputUrl = inputUrl?.endsWith("/") && inputUrl.length > 1 ? inputUrl.slice(0, -1) : inputUrl;
|
|
22
|
+
const url = isAbsoluteUrl ? new URL(fixedInputUrl) : new URL(fixedInputUrl, "http://example.com");
|
|
23
|
+
if (mode === "search-params") {
|
|
24
|
+
const localeParam = url.searchParams.get("locale");
|
|
25
|
+
if (localeParam && locales.includes(localeParam)) return localeParam;
|
|
26
|
+
return defaultLocale;
|
|
27
|
+
}
|
|
28
|
+
if (mode === "no-prefix") return defaultLocale;
|
|
29
|
+
const firstSegment = url.pathname.split("/")[1];
|
|
30
|
+
if (firstSegment && locales.includes(firstSegment)) return firstSegment;
|
|
31
|
+
if (mode === "prefix-no-default") return defaultLocale;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
//#endregion
|
|
35
|
+
export { getLocaleFromPath };
|
|
2
36
|
//# sourceMappingURL=getLocaleFromPath.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getLocaleFromPath.mjs","names":[],"sources":["../../../src/localization/getLocaleFromPath.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"getLocaleFromPath.mjs","names":[],"sources":["../../../src/localization/getLocaleFromPath.ts"],"sourcesContent":["import type { Locale } from '@intlayer/types/allLocales';\nimport { checkIsURLAbsolute } from '../utils/checkIsURLAbsolute';\nimport { type RoutingOptions, resolveRoutingConfig } from './getPrefix';\n\n/**\n * Extracts the locale segment from the given URL or pathname based on the routing mode.\n *\n * Mode Behaviors:\n * - 'prefix-no-default': Checks path prefix. If no prefix found, assumes default locale.\n * - 'prefix-all': Checks path prefix.\n * - 'search-params': Checks for 'locale' query parameter.\n * - 'no-prefix': Returns the default locale.\n *\n * @param inputUrl - The complete URL string or pathname to process.\n * @returns The detected locale, default locale (if fallback/implicit), or undefined.\n */\nexport const getLocaleFromPath = (\n inputUrl: string = '/',\n options?: RoutingOptions\n): Locale | undefined => {\n const { defaultLocale, locales, mode } = resolveRoutingConfig(options);\n\n if (!defaultLocale || !locales) {\n return defaultLocale as Locale | undefined;\n }\n\n const isAbsoluteUrl = checkIsURLAbsolute(inputUrl);\n const fixedInputUrl =\n inputUrl?.endsWith('/') && inputUrl.length > 1\n ? inputUrl.slice(0, -1)\n : inputUrl;\n\n const url = isAbsoluteUrl\n ? new URL(fixedInputUrl)\n : new URL(fixedInputUrl, 'http://example.com');\n\n // Handle 'search-params' mode — locale is in query string\n if (mode === 'search-params') {\n const localeParam = url.searchParams.get('locale');\n if (localeParam && locales.includes(localeParam)) {\n return localeParam as Locale;\n }\n return defaultLocale as Locale;\n }\n\n // Handle 'no-prefix' mode — locale is not in the URL\n if (mode === 'no-prefix') {\n return defaultLocale as Locale;\n }\n\n // Handle prefix modes ('prefix-all' | 'prefix-no-default')\n const firstSegment = url.pathname.split('/')[1];\n if (firstSegment && locales.includes(firstSegment)) {\n return firstSegment as Locale;\n }\n\n // In 'prefix-no-default', no prefix implies the default locale\n if (mode === 'prefix-no-default') {\n return defaultLocale as Locale;\n }\n\n return undefined;\n};\n"],"mappings":";;;;;;;;;;;;;;;;AAgBA,MAAa,qBACX,WAAmB,KACnB,YACuB;CACvB,MAAM,EAAE,eAAe,SAAS,SAAS,qBAAqB,QAAQ;AAEtE,KAAI,CAAC,iBAAiB,CAAC,QACrB,QAAO;CAGT,MAAM,gBAAgB,mBAAmB,SAAS;CAClD,MAAM,gBACJ,UAAU,SAAS,IAAI,IAAI,SAAS,SAAS,IACzC,SAAS,MAAM,GAAG,GAAG,GACrB;CAEN,MAAM,MAAM,gBACR,IAAI,IAAI,cAAc,GACtB,IAAI,IAAI,eAAe,qBAAqB;AAGhD,KAAI,SAAS,iBAAiB;EAC5B,MAAM,cAAc,IAAI,aAAa,IAAI,SAAS;AAClD,MAAI,eAAe,QAAQ,SAAS,YAAY,CAC9C,QAAO;AAET,SAAO;;AAIT,KAAI,SAAS,YACX,QAAO;CAIT,MAAM,eAAe,IAAI,SAAS,MAAM,IAAI,CAAC;AAC7C,KAAI,gBAAgB,QAAQ,SAAS,aAAa,CAChD,QAAO;AAIT,KAAI,SAAS,oBACX,QAAO"}
|
|
@@ -1,2 +1,19 @@
|
|
|
1
|
-
|
|
1
|
+
//#region src/localization/getLocaleLang.ts
|
|
2
|
+
/**
|
|
3
|
+
* Returns the language code of the given locale for locales including the country code.
|
|
4
|
+
*
|
|
5
|
+
* Example:
|
|
6
|
+
*
|
|
7
|
+
* getLocaleLang('en-US') // 'en'
|
|
8
|
+
* getLocaleLang('en') // 'en'
|
|
9
|
+
* getLocaleLang('fr-CA') // 'fr'
|
|
10
|
+
* getLocaleLang('fr') // 'fr'
|
|
11
|
+
*
|
|
12
|
+
* @param locale The locale to get the language code for.
|
|
13
|
+
* @returns The language code of the given locale.
|
|
14
|
+
*/
|
|
15
|
+
const getLocaleLang = (locale) => locale?.split("-")[0] ?? "";
|
|
16
|
+
|
|
17
|
+
//#endregion
|
|
18
|
+
export { getLocaleLang };
|
|
2
19
|
//# sourceMappingURL=getLocaleLang.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getLocaleLang.mjs","names":[],"sources":["../../../src/localization/getLocaleLang.ts"],"sourcesContent":["import type { LocalesValues } from '@intlayer/types/module_augmentation';\n\n/**\n * Returns the language code of the given locale for locales including the country code.\n *\n * Example:\n *\n * getLocaleLang('en-US') // 'en'\n * getLocaleLang('en') // 'en'\n * getLocaleLang('fr-CA') // 'fr'\n * getLocaleLang('fr') // 'fr'\n *\n * @param locale The locale to get the language code for.\n * @returns The language code of the given locale.\n */\nexport const getLocaleLang = (locale?: LocalesValues): string =>\n locale?.split('-')[0] ?? '';\n"],"mappings":"AAeA,MAAa,
|
|
1
|
+
{"version":3,"file":"getLocaleLang.mjs","names":[],"sources":["../../../src/localization/getLocaleLang.ts"],"sourcesContent":["import type { LocalesValues } from '@intlayer/types/module_augmentation';\n\n/**\n * Returns the language code of the given locale for locales including the country code.\n *\n * Example:\n *\n * getLocaleLang('en-US') // 'en'\n * getLocaleLang('en') // 'en'\n * getLocaleLang('fr-CA') // 'fr'\n * getLocaleLang('fr') // 'fr'\n *\n * @param locale The locale to get the language code for.\n * @returns The language code of the given locale.\n */\nexport const getLocaleLang = (locale?: LocalesValues): string =>\n locale?.split('-')[0] ?? '';\n"],"mappings":";;;;;;;;;;;;;;AAeA,MAAa,iBAAiB,WAC5B,QAAQ,MAAM,IAAI,CAAC,MAAM"}
|
|
@@ -1,2 +1,10 @@
|
|
|
1
|
-
import{CachedIntl
|
|
1
|
+
import { CachedIntl } from "../utils/intl.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/localization/getLocaleName.ts
|
|
4
|
+
const getLocaleName = (displayLocale, targetLocale = displayLocale) => {
|
|
5
|
+
return new CachedIntl.DisplayNames(targetLocale, { type: "language" }).of(displayLocale) ?? "Unknown locale";
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
//#endregion
|
|
9
|
+
export { getLocaleName };
|
|
2
10
|
//# sourceMappingURL=getLocaleName.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getLocaleName.mjs","names":[],"sources":["../../../src/localization/getLocaleName.ts"],"sourcesContent":["import type { LocalesValues } from '@intlayer/types/module_augmentation';\nimport { CachedIntl } from '../utils/intl';\n\nexport const getLocaleName = (\n displayLocale: LocalesValues,\n targetLocale: LocalesValues = displayLocale\n): string => {\n // new Intl.DisplayNames() is fairly heavy: under the hood every call parses CLDR data and builds a resolver table. In your LocaleSwitcher it’s invoked:\n const displayNames = new CachedIntl.DisplayNames(targetLocale, {\n type: 'language',\n });\n\n return displayNames.of(displayLocale) ?? 'Unknown locale';\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"getLocaleName.mjs","names":[],"sources":["../../../src/localization/getLocaleName.ts"],"sourcesContent":["import type { LocalesValues } from '@intlayer/types/module_augmentation';\nimport { CachedIntl } from '../utils/intl';\n\nexport const getLocaleName = (\n displayLocale: LocalesValues,\n targetLocale: LocalesValues = displayLocale\n): string => {\n // new Intl.DisplayNames() is fairly heavy: under the hood every call parses CLDR data and builds a resolver table. In your LocaleSwitcher it’s invoked:\n const displayNames = new CachedIntl.DisplayNames(targetLocale, {\n type: 'language',\n });\n\n return displayNames.of(displayLocale) ?? 'Unknown locale';\n};\n"],"mappings":";;;AAGA,MAAa,iBACX,eACA,eAA8B,kBACnB;AAMX,QAJqB,IAAI,WAAW,aAAa,cAAc,EAC7D,MAAM,YACP,CAAC,CAEkB,GAAG,cAAc,IAAI"}
|
|
@@ -1,2 +1,71 @@
|
|
|
1
|
-
import{checkIsURLAbsolute
|
|
1
|
+
import { checkIsURLAbsolute } from "../utils/checkIsURLAbsolute.mjs";
|
|
2
|
+
import { getPrefix, resolveRoutingConfig } from "./getPrefix.mjs";
|
|
3
|
+
import { getPathWithoutLocale } from "./getPathWithoutLocale.mjs";
|
|
4
|
+
import { getCanonicalPath, getLocalizedPath, getRewriteRules } from "./rewriteUtils.mjs";
|
|
5
|
+
import configuration from "@intlayer/config/built";
|
|
6
|
+
|
|
7
|
+
//#region src/localization/getLocalizedUrl.ts
|
|
8
|
+
/**
|
|
9
|
+
* Generate URL by prefixing the given URL with the referenced locale or adding search parameters
|
|
10
|
+
* based on the routing mode. Handles both absolute and relative URLs appropriately.
|
|
11
|
+
*
|
|
12
|
+
* This function gets the locales, default locale, and routing mode from the configuration if not provided.
|
|
13
|
+
*
|
|
14
|
+
* Example:
|
|
15
|
+
*
|
|
16
|
+
* ```ts
|
|
17
|
+
* // prefix-no-default mode
|
|
18
|
+
* getLocalizedUrl('/about', 'fr', { locales: ['en', 'fr'], defaultLocale: 'en', mode: 'prefix-no-default' });
|
|
19
|
+
* // Returns '/fr/about' for the French locale
|
|
20
|
+
* // Returns '/about' for the English locale (default)
|
|
21
|
+
*
|
|
22
|
+
* // prefix-all mode
|
|
23
|
+
* getLocalizedUrl('/about', 'en', { locales: ['en', 'fr'], defaultLocale: 'en', mode: 'prefix-all' });
|
|
24
|
+
* // Returns '/en/about' for the English locale
|
|
25
|
+
* // Returns '/fr/about' for the French locale
|
|
26
|
+
*
|
|
27
|
+
* // search-params mode
|
|
28
|
+
* getLocalizedUrl('/about', 'fr', { locales: ['en', 'fr'], defaultLocale: 'en', mode: 'search-params' });
|
|
29
|
+
* // Returns '/about?locale=fr' for the French locale
|
|
30
|
+
*
|
|
31
|
+
* // no-prefix mode
|
|
32
|
+
* getLocalizedUrl('/about', 'fr', { locales: ['en', 'fr'], defaultLocale: 'en', mode: 'no-prefix' });
|
|
33
|
+
* // Returns '/about' for any locale
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
* @param url - The original URL string to be processed.
|
|
37
|
+
* @param currentLocale - The current locale.
|
|
38
|
+
* @param options - Configuration options
|
|
39
|
+
* @param options.locales - Optional array of supported locales. Defaults to configured locales.
|
|
40
|
+
* @param options.defaultLocale - The default locale. Defaults to configured default locale.
|
|
41
|
+
* @param options.mode - URL routing mode for locale handling. Defaults to configured mode.
|
|
42
|
+
* @returns The localized URL for the current locale.
|
|
43
|
+
*/
|
|
44
|
+
const getLocalizedUrl = (url, currentLocale = configuration?.internationalization?.defaultLocale, options = {}) => {
|
|
45
|
+
const { defaultLocale, mode, locales, rewrite } = resolveRoutingConfig(options);
|
|
46
|
+
const urlWithoutLocale = getPathWithoutLocale(url, locales);
|
|
47
|
+
const rewriteRules = getRewriteRules(rewrite, "url");
|
|
48
|
+
if (mode === "no-prefix") return getLocalizedPath(getCanonicalPath(urlWithoutLocale, void 0, rewriteRules), currentLocale, rewriteRules).path;
|
|
49
|
+
const isAbsoluteUrl = checkIsURLAbsolute(urlWithoutLocale);
|
|
50
|
+
const parsedUrl = isAbsoluteUrl ? new URL(urlWithoutLocale) : new URL(urlWithoutLocale, "http://example.com");
|
|
51
|
+
const translatedPathname = getLocalizedPath(getCanonicalPath(parsedUrl.pathname, void 0, rewriteRules), currentLocale, rewriteRules).path;
|
|
52
|
+
const baseUrl = isAbsoluteUrl ? `${parsedUrl.protocol}//${parsedUrl.host}` : "";
|
|
53
|
+
if (mode === "search-params") {
|
|
54
|
+
const searchParams = new URLSearchParams(parsedUrl.search);
|
|
55
|
+
searchParams.set("locale", currentLocale.toString());
|
|
56
|
+
const queryParams = searchParams.toString();
|
|
57
|
+
return `${baseUrl}${queryParams ? `${translatedPathname}?${queryParams}` : translatedPathname}${parsedUrl.hash}`;
|
|
58
|
+
}
|
|
59
|
+
const { prefix } = getPrefix(currentLocale, {
|
|
60
|
+
defaultLocale,
|
|
61
|
+
mode,
|
|
62
|
+
locales
|
|
63
|
+
});
|
|
64
|
+
let localizedPath = `/${prefix}${translatedPathname}`.replace(/\/+/g, "/");
|
|
65
|
+
if (localizedPath.length > 1 && localizedPath.endsWith("/")) localizedPath = localizedPath.slice(0, -1);
|
|
66
|
+
return `${baseUrl}${localizedPath}${parsedUrl.search}${parsedUrl.hash}`;
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
//#endregion
|
|
70
|
+
export { getLocalizedUrl };
|
|
2
71
|
//# sourceMappingURL=getLocalizedUrl.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getLocalizedUrl.mjs","names":[],"sources":["../../../src/localization/getLocalizedUrl.ts"],"sourcesContent":["import configuration from '@intlayer/config/built';\nimport
|
|
1
|
+
{"version":3,"file":"getLocalizedUrl.mjs","names":[],"sources":["../../../src/localization/getLocalizedUrl.ts"],"sourcesContent":["import configuration from '@intlayer/config/built';\nimport type { Locale } from '@intlayer/types/allLocales';\nimport type { LocalesValues } from '@intlayer/types/module_augmentation';\nimport { checkIsURLAbsolute } from '../utils/checkIsURLAbsolute';\nimport { getPathWithoutLocale } from './getPathWithoutLocale';\nimport {\n getPrefix,\n type RoutingOptions,\n resolveRoutingConfig,\n} from './getPrefix';\nimport {\n getCanonicalPath,\n getLocalizedPath,\n getRewriteRules,\n} from './rewriteUtils';\n\nexport type { RoutingOptions };\n\n/**\n * Generate URL by prefixing the given URL with the referenced locale or adding search parameters\n * based on the routing mode. Handles both absolute and relative URLs appropriately.\n *\n * This function gets the locales, default locale, and routing mode from the configuration if not provided.\n *\n * Example:\n *\n * ```ts\n * // prefix-no-default mode\n * getLocalizedUrl('/about', 'fr', { locales: ['en', 'fr'], defaultLocale: 'en', mode: 'prefix-no-default' });\n * // Returns '/fr/about' for the French locale\n * // Returns '/about' for the English locale (default)\n *\n * // prefix-all mode\n * getLocalizedUrl('/about', 'en', { locales: ['en', 'fr'], defaultLocale: 'en', mode: 'prefix-all' });\n * // Returns '/en/about' for the English locale\n * // Returns '/fr/about' for the French locale\n *\n * // search-params mode\n * getLocalizedUrl('/about', 'fr', { locales: ['en', 'fr'], defaultLocale: 'en', mode: 'search-params' });\n * // Returns '/about?locale=fr' for the French locale\n *\n * // no-prefix mode\n * getLocalizedUrl('/about', 'fr', { locales: ['en', 'fr'], defaultLocale: 'en', mode: 'no-prefix' });\n * // Returns '/about' for any locale\n * ```\n *\n * @param url - The original URL string to be processed.\n * @param currentLocale - The current locale.\n * @param options - Configuration options\n * @param options.locales - Optional array of supported locales. Defaults to configured locales.\n * @param options.defaultLocale - The default locale. Defaults to configured default locale.\n * @param options.mode - URL routing mode for locale handling. Defaults to configured mode.\n * @returns The localized URL for the current locale.\n */\nexport const getLocalizedUrl = (\n url: string,\n currentLocale: LocalesValues = configuration?.internationalization\n ?.defaultLocale,\n options: RoutingOptions = {}\n): string => {\n const { defaultLocale, mode, locales, rewrite } =\n resolveRoutingConfig(options);\n\n const urlWithoutLocale = getPathWithoutLocale(url, locales);\n const rewriteRules = getRewriteRules(rewrite, 'url');\n\n if (mode === 'no-prefix') {\n return getLocalizedPath(\n getCanonicalPath(urlWithoutLocale, undefined, rewriteRules),\n currentLocale as Locale,\n rewriteRules\n ).path;\n }\n\n const isAbsoluteUrl = checkIsURLAbsolute(urlWithoutLocale);\n const parsedUrl = isAbsoluteUrl\n ? new URL(urlWithoutLocale)\n : new URL(urlWithoutLocale, 'http://example.com');\n\n const translatedPathname = getLocalizedPath(\n getCanonicalPath(parsedUrl.pathname, undefined, rewriteRules),\n currentLocale as Locale,\n rewriteRules\n ).path;\n\n const baseUrl = isAbsoluteUrl\n ? `${parsedUrl.protocol}//${parsedUrl.host}`\n : '';\n\n if (mode === 'search-params') {\n const searchParams = new URLSearchParams(parsedUrl.search);\n\n searchParams.set('locale', currentLocale.toString());\n\n const queryParams = searchParams.toString();\n const path = queryParams\n ? `${translatedPathname}?${queryParams}`\n : translatedPathname;\n\n return `${baseUrl}${path}${parsedUrl.hash}`;\n }\n\n const { prefix } = getPrefix(currentLocale, { defaultLocale, mode, locales });\n\n let localizedPath = `/${prefix}${translatedPathname}`.replace(/\\/+/g, '/');\n\n if (localizedPath.length > 1 && localizedPath.endsWith('/')) {\n localizedPath = localizedPath.slice(0, -1);\n }\n\n return `${baseUrl}${localizedPath}${parsedUrl.search}${parsedUrl.hash}`;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDA,MAAa,mBACX,KACA,gBAA+B,eAAe,sBAC1C,eACJ,UAA0B,EAAE,KACjB;CACX,MAAM,EAAE,eAAe,MAAM,SAAS,YACpC,qBAAqB,QAAQ;CAE/B,MAAM,mBAAmB,qBAAqB,KAAK,QAAQ;CAC3D,MAAM,eAAe,gBAAgB,SAAS,MAAM;AAEpD,KAAI,SAAS,YACX,QAAO,iBACL,iBAAiB,kBAAkB,QAAW,aAAa,EAC3D,eACA,aACD,CAAC;CAGJ,MAAM,gBAAgB,mBAAmB,iBAAiB;CAC1D,MAAM,YAAY,gBACd,IAAI,IAAI,iBAAiB,GACzB,IAAI,IAAI,kBAAkB,qBAAqB;CAEnD,MAAM,qBAAqB,iBACzB,iBAAiB,UAAU,UAAU,QAAW,aAAa,EAC7D,eACA,aACD,CAAC;CAEF,MAAM,UAAU,gBACZ,GAAG,UAAU,SAAS,IAAI,UAAU,SACpC;AAEJ,KAAI,SAAS,iBAAiB;EAC5B,MAAM,eAAe,IAAI,gBAAgB,UAAU,OAAO;AAE1D,eAAa,IAAI,UAAU,cAAc,UAAU,CAAC;EAEpD,MAAM,cAAc,aAAa,UAAU;AAK3C,SAAO,GAAG,UAJG,cACT,GAAG,mBAAmB,GAAG,gBACzB,qBAEuB,UAAU;;CAGvC,MAAM,EAAE,WAAW,UAAU,eAAe;EAAE;EAAe;EAAM;EAAS,CAAC;CAE7E,IAAI,gBAAgB,IAAI,SAAS,qBAAqB,QAAQ,QAAQ,IAAI;AAE1E,KAAI,cAAc,SAAS,KAAK,cAAc,SAAS,IAAI,CACzD,iBAAgB,cAAc,MAAM,GAAG,GAAG;AAG5C,QAAO,GAAG,UAAU,gBAAgB,UAAU,SAAS,UAAU"}
|
|
@@ -1,2 +1,46 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import { resolveRoutingConfig } from "./getPrefix.mjs";
|
|
2
|
+
import { getLocalizedUrl } from "./getLocalizedUrl.mjs";
|
|
3
|
+
|
|
4
|
+
//#region src/localization/getMultilingualUrls.ts
|
|
5
|
+
/**
|
|
6
|
+
* Generates multilingual URLs by prefixing the given URL with each supported locale
|
|
7
|
+
* or adding search parameters based on the routing mode.
|
|
8
|
+
* Handles both absolute and relative URLs appropriately.
|
|
9
|
+
*
|
|
10
|
+
* This function gets the locales, default locale, and routing mode from the configuration if not provided.
|
|
11
|
+
*
|
|
12
|
+
* Example:
|
|
13
|
+
*
|
|
14
|
+
* ```ts
|
|
15
|
+
* // prefix-no-default mode
|
|
16
|
+
* getMultilingualUrls('/dashboard', { locales: ['en', 'fr'], defaultLocale: 'en', mode: 'prefix-no-default' })
|
|
17
|
+
* // Returns { en: '/dashboard', fr: '/fr/dashboard' }
|
|
18
|
+
*
|
|
19
|
+
* // prefix-all mode
|
|
20
|
+
* getMultilingualUrls('/dashboard', { locales: ['en', 'fr'], defaultLocale: 'en', mode: 'prefix-all' })
|
|
21
|
+
* // Returns { en: '/en/dashboard', fr: '/fr/dashboard' }
|
|
22
|
+
*
|
|
23
|
+
* // search-params mode
|
|
24
|
+
* getMultilingualUrls('/dashboard', { locales: ['en', 'fr'], defaultLocale: 'en', mode: 'search-params' })
|
|
25
|
+
* // Returns { en: '/dashboard?locale=en', fr: '/dashboard?locale=fr' }
|
|
26
|
+
*
|
|
27
|
+
* // no-prefix mode
|
|
28
|
+
* getMultilingualUrls('/dashboard', { locales: ['en', 'fr'], defaultLocale: 'en', mode: 'no-prefix' })
|
|
29
|
+
* // Returns { en: '/dashboard', fr: '/dashboard' }
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* @param url - The original URL string to be processed.
|
|
33
|
+
* @param options - Configuration options
|
|
34
|
+
* @param options.locales - Optional array of supported locales. Defaults to configured locales.
|
|
35
|
+
* @param options.defaultLocale - The default locale. Defaults to configured default locale.
|
|
36
|
+
* @param options.mode - URL routing mode for locale handling. Defaults to configured mode.
|
|
37
|
+
* @returns An object mapping each locale to its corresponding multilingual URL.
|
|
38
|
+
*/
|
|
39
|
+
const getMultilingualUrls = (url, options = {}) => {
|
|
40
|
+
const resolved = resolveRoutingConfig(options);
|
|
41
|
+
return Object.fromEntries((resolved.locales ?? []).map((locale) => [locale, getLocalizedUrl(url, locale, resolved)]));
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
//#endregion
|
|
45
|
+
export { getMultilingualUrls };
|
|
2
46
|
//# sourceMappingURL=getMultilingualUrls.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getMultilingualUrls.mjs","names":[],"sources":["../../../src/localization/getMultilingualUrls.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"getMultilingualUrls.mjs","names":[],"sources":["../../../src/localization/getMultilingualUrls.ts"],"sourcesContent":["import type { StrictModeLocaleMap } from '@intlayer/types/module_augmentation';\nimport { getLocalizedUrl } from './getLocalizedUrl';\nimport { type RoutingOptions, resolveRoutingConfig } from './getPrefix';\n\n/**\n * Generates multilingual URLs by prefixing the given URL with each supported locale\n * or adding search parameters based on the routing mode.\n * Handles both absolute and relative URLs appropriately.\n *\n * This function gets the locales, default locale, and routing mode from the configuration if not provided.\n *\n * Example:\n *\n * ```ts\n * // prefix-no-default mode\n * getMultilingualUrls('/dashboard', { locales: ['en', 'fr'], defaultLocale: 'en', mode: 'prefix-no-default' })\n * // Returns { en: '/dashboard', fr: '/fr/dashboard' }\n *\n * // prefix-all mode\n * getMultilingualUrls('/dashboard', { locales: ['en', 'fr'], defaultLocale: 'en', mode: 'prefix-all' })\n * // Returns { en: '/en/dashboard', fr: '/fr/dashboard' }\n *\n * // search-params mode\n * getMultilingualUrls('/dashboard', { locales: ['en', 'fr'], defaultLocale: 'en', mode: 'search-params' })\n * // Returns { en: '/dashboard?locale=en', fr: '/dashboard?locale=fr' }\n *\n * // no-prefix mode\n * getMultilingualUrls('/dashboard', { locales: ['en', 'fr'], defaultLocale: 'en', mode: 'no-prefix' })\n * // Returns { en: '/dashboard', fr: '/dashboard' }\n * ```\n *\n * @param url - The original URL string to be processed.\n * @param options - Configuration options\n * @param options.locales - Optional array of supported locales. Defaults to configured locales.\n * @param options.defaultLocale - The default locale. Defaults to configured default locale.\n * @param options.mode - URL routing mode for locale handling. Defaults to configured mode.\n * @returns An object mapping each locale to its corresponding multilingual URL.\n */\nexport const getMultilingualUrls = (\n url: string,\n options: RoutingOptions = {}\n): StrictModeLocaleMap<string> => {\n const resolved = resolveRoutingConfig(options);\n\n return Object.fromEntries(\n (resolved.locales ?? []).map((locale) => [\n locale,\n getLocalizedUrl(url, locale, resolved),\n ])\n ) as StrictModeLocaleMap<string>;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCA,MAAa,uBACX,KACA,UAA0B,EAAE,KACI;CAChC,MAAM,WAAW,qBAAqB,QAAQ;AAE9C,QAAO,OAAO,aACX,SAAS,WAAW,EAAE,EAAE,KAAK,WAAW,CACvC,QACA,gBAAgB,KAAK,QAAQ,SAAS,CACvC,CAAC,CACH"}
|
|
@@ -1,2 +1,53 @@
|
|
|
1
|
-
import{checkIsURLAbsolute
|
|
1
|
+
import { checkIsURLAbsolute } from "../utils/checkIsURLAbsolute.mjs";
|
|
2
|
+
import configuration from "@intlayer/config/built";
|
|
3
|
+
|
|
4
|
+
//#region src/localization/getPathWithoutLocale.ts
|
|
5
|
+
/**
|
|
6
|
+
* Removes the locale segment from the given URL or pathname if present.
|
|
7
|
+
* Also removes locale from search parameters if present.
|
|
8
|
+
*
|
|
9
|
+
* This function get the locales from the configuration if not provided.
|
|
10
|
+
*
|
|
11
|
+
* Example:
|
|
12
|
+
*
|
|
13
|
+
* ```ts
|
|
14
|
+
* getPathWithoutLocale('/en/dashboard') // Returns '/dashboard'
|
|
15
|
+
* getPathWithoutLocale('/fr/dashboard') // Returns '/dashboard'
|
|
16
|
+
* getPathWithoutLocale('/dashboard') // Returns '/dashboard'
|
|
17
|
+
* getPathWithoutLocale('dashboard') // Returns 'dashboard'
|
|
18
|
+
* getPathWithoutLocale('/dashboard?locale=fr') // Returns '/dashboard'
|
|
19
|
+
* getPathWithoutLocale('https://example.com/en/dashboard') // Returns 'https://example.com/dashboard'
|
|
20
|
+
* getPathWithoutLocale('https://example.com/fr/dashboard') // Returns 'https://example.com/dashboard'
|
|
21
|
+
* getPathWithoutLocale('https://example.com/dashboard') // Returns 'https://example.com/dashboard'
|
|
22
|
+
* getPathWithoutLocale('https://example.com/dashboard?locale=fr') // Returns 'https://example.com/dashboard'
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @param inputUrl - The complete URL string or pathname to process.
|
|
26
|
+
* @param locales - Optional array of supported locales. Defaults to `localesDefault`.
|
|
27
|
+
* @returns The URL string or pathname without the locale segment or locale search parameter.
|
|
28
|
+
*/
|
|
29
|
+
const getPathWithoutLocale = (inputUrl, locales = configuration?.internationalization?.locales) => {
|
|
30
|
+
const isAbsoluteUrl = checkIsURLAbsolute(inputUrl);
|
|
31
|
+
let fixedInputUrl = inputUrl;
|
|
32
|
+
if (inputUrl?.endsWith("/")) fixedInputUrl = inputUrl.slice(0, -1);
|
|
33
|
+
const url = isAbsoluteUrl ? new URL(fixedInputUrl) : new URL(fixedInputUrl, "http://example.com");
|
|
34
|
+
const pathname = url.pathname;
|
|
35
|
+
if (!pathname.startsWith("/")) url.pathname = `/${pathname}`;
|
|
36
|
+
const pathSegments = pathname.split("/");
|
|
37
|
+
const firstSegment = pathSegments[1];
|
|
38
|
+
if (locales?.includes(firstSegment)) {
|
|
39
|
+
pathSegments.splice(1, 1);
|
|
40
|
+
url.pathname = pathSegments.join("/") ?? "/";
|
|
41
|
+
}
|
|
42
|
+
const searchParams = new URLSearchParams(url.search);
|
|
43
|
+
if (searchParams.has("locale")) {
|
|
44
|
+
searchParams.delete("locale");
|
|
45
|
+
url.search = searchParams.toString();
|
|
46
|
+
}
|
|
47
|
+
if (isAbsoluteUrl) return url.toString();
|
|
48
|
+
return url.toString().replace("http://example.com", "");
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
//#endregion
|
|
52
|
+
export { getPathWithoutLocale };
|
|
2
53
|
//# sourceMappingURL=getPathWithoutLocale.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPathWithoutLocale.mjs","names":[],"sources":["../../../src/localization/getPathWithoutLocale.ts"],"sourcesContent":["import configuration from '@intlayer/config/built';\nimport type { LocalesValues } from '@intlayer/types/module_augmentation';\n\nimport { checkIsURLAbsolute } from '../utils/checkIsURLAbsolute';\n\n/**\n * Removes the locale segment from the given URL or pathname if present.\n * Also removes locale from search parameters if present.\n *\n * This function get the locales from the configuration if not provided.\n *\n * Example:\n *\n * ```ts\n * getPathWithoutLocale('/en/dashboard') // Returns '/dashboard'\n * getPathWithoutLocale('/fr/dashboard') // Returns '/dashboard'\n * getPathWithoutLocale('/dashboard') // Returns '/dashboard'\n * getPathWithoutLocale('dashboard') // Returns 'dashboard'\n * getPathWithoutLocale('/dashboard?locale=fr') // Returns '/dashboard'\n * getPathWithoutLocale('https://example.com/en/dashboard') // Returns 'https://example.com/dashboard'\n * getPathWithoutLocale('https://example.com/fr/dashboard') // Returns 'https://example.com/dashboard'\n * getPathWithoutLocale('https://example.com/dashboard') // Returns 'https://example.com/dashboard'\n * getPathWithoutLocale('https://example.com/dashboard?locale=fr') // Returns 'https://example.com/dashboard'\n * ```\n *\n * @param inputUrl - The complete URL string or pathname to process.\n * @param locales - Optional array of supported locales. Defaults to `localesDefault`.\n * @returns The URL string or pathname without the locale segment or locale search parameter.\n */\nexport const getPathWithoutLocale = (\n inputUrl: string,\n locales: LocalesValues[] = configuration?.internationalization?.locales\n): string => {\n // Determine if the original URL is absolute (includes protocol)\n const isAbsoluteUrl = checkIsURLAbsolute(inputUrl);\n\n let fixedInputUrl = inputUrl;\n\n if (inputUrl?.endsWith('/')) {\n fixedInputUrl = inputUrl.slice(0, -1);\n }\n\n // Initialize a URL object if the URL is absolute\n // For relative URLs, use a dummy base to leverage the URL API\n const url = isAbsoluteUrl\n ? new URL(fixedInputUrl)\n : new URL(fixedInputUrl, 'http://example.com');\n\n const pathname = url.pathname;\n\n // Ensure the pathname starts with '/'\n if (!pathname.startsWith('/')) {\n // If not, return the URL as is\n url.pathname = `/${pathname}`;\n }\n\n // Split the pathname to extract the first segment\n const pathSegments = pathname.split('/');\n const firstSegment = pathSegments[1]; // The segment after the first '/'\n\n // Check if the first segment is a supported locale\n if (locales?.includes(firstSegment as LocalesValues)) {\n // Remove the locale segment from the pathname\n pathSegments.splice(1, 1); // Remove the first segment\n\n // Reconstruct the pathname\n const newPathname = pathSegments.join('/') ?? '/';\n url.pathname = newPathname;\n }\n\n // Remove locale from search parameters if present\n const searchParams = new URLSearchParams(url.search);\n if (searchParams.has('locale')) {\n searchParams.delete('locale');\n url.search = searchParams.toString();\n }\n\n if (isAbsoluteUrl) {\n // Return the modified URL as a string\n return url.toString();\n }\n\n // Return the modified URL as a string\n return url.toString().replace('http://example.com', '');\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"getPathWithoutLocale.mjs","names":[],"sources":["../../../src/localization/getPathWithoutLocale.ts"],"sourcesContent":["import configuration from '@intlayer/config/built';\nimport type { LocalesValues } from '@intlayer/types/module_augmentation';\n\nimport { checkIsURLAbsolute } from '../utils/checkIsURLAbsolute';\n\n/**\n * Removes the locale segment from the given URL or pathname if present.\n * Also removes locale from search parameters if present.\n *\n * This function get the locales from the configuration if not provided.\n *\n * Example:\n *\n * ```ts\n * getPathWithoutLocale('/en/dashboard') // Returns '/dashboard'\n * getPathWithoutLocale('/fr/dashboard') // Returns '/dashboard'\n * getPathWithoutLocale('/dashboard') // Returns '/dashboard'\n * getPathWithoutLocale('dashboard') // Returns 'dashboard'\n * getPathWithoutLocale('/dashboard?locale=fr') // Returns '/dashboard'\n * getPathWithoutLocale('https://example.com/en/dashboard') // Returns 'https://example.com/dashboard'\n * getPathWithoutLocale('https://example.com/fr/dashboard') // Returns 'https://example.com/dashboard'\n * getPathWithoutLocale('https://example.com/dashboard') // Returns 'https://example.com/dashboard'\n * getPathWithoutLocale('https://example.com/dashboard?locale=fr') // Returns 'https://example.com/dashboard'\n * ```\n *\n * @param inputUrl - The complete URL string or pathname to process.\n * @param locales - Optional array of supported locales. Defaults to `localesDefault`.\n * @returns The URL string or pathname without the locale segment or locale search parameter.\n */\nexport const getPathWithoutLocale = (\n inputUrl: string,\n locales: LocalesValues[] = configuration?.internationalization?.locales\n): string => {\n // Determine if the original URL is absolute (includes protocol)\n const isAbsoluteUrl = checkIsURLAbsolute(inputUrl);\n\n let fixedInputUrl = inputUrl;\n\n if (inputUrl?.endsWith('/')) {\n fixedInputUrl = inputUrl.slice(0, -1);\n }\n\n // Initialize a URL object if the URL is absolute\n // For relative URLs, use a dummy base to leverage the URL API\n const url = isAbsoluteUrl\n ? new URL(fixedInputUrl)\n : new URL(fixedInputUrl, 'http://example.com');\n\n const pathname = url.pathname;\n\n // Ensure the pathname starts with '/'\n if (!pathname.startsWith('/')) {\n // If not, return the URL as is\n url.pathname = `/${pathname}`;\n }\n\n // Split the pathname to extract the first segment\n const pathSegments = pathname.split('/');\n const firstSegment = pathSegments[1]; // The segment after the first '/'\n\n // Check if the first segment is a supported locale\n if (locales?.includes(firstSegment as LocalesValues)) {\n // Remove the locale segment from the pathname\n pathSegments.splice(1, 1); // Remove the first segment\n\n // Reconstruct the pathname\n const newPathname = pathSegments.join('/') ?? '/';\n url.pathname = newPathname;\n }\n\n // Remove locale from search parameters if present\n const searchParams = new URLSearchParams(url.search);\n if (searchParams.has('locale')) {\n searchParams.delete('locale');\n url.search = searchParams.toString();\n }\n\n if (isAbsoluteUrl) {\n // Return the modified URL as a string\n return url.toString();\n }\n\n // Return the modified URL as a string\n return url.toString().replace('http://example.com', '');\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,MAAa,wBACX,UACA,UAA2B,eAAe,sBAAsB,YACrD;CAEX,MAAM,gBAAgB,mBAAmB,SAAS;CAElD,IAAI,gBAAgB;AAEpB,KAAI,UAAU,SAAS,IAAI,CACzB,iBAAgB,SAAS,MAAM,GAAG,GAAG;CAKvC,MAAM,MAAM,gBACR,IAAI,IAAI,cAAc,GACtB,IAAI,IAAI,eAAe,qBAAqB;CAEhD,MAAM,WAAW,IAAI;AAGrB,KAAI,CAAC,SAAS,WAAW,IAAI,CAE3B,KAAI,WAAW,IAAI;CAIrB,MAAM,eAAe,SAAS,MAAM,IAAI;CACxC,MAAM,eAAe,aAAa;AAGlC,KAAI,SAAS,SAAS,aAA8B,EAAE;AAEpD,eAAa,OAAO,GAAG,EAAE;AAIzB,MAAI,WADgB,aAAa,KAAK,IAAI,IAAI;;CAKhD,MAAM,eAAe,IAAI,gBAAgB,IAAI,OAAO;AACpD,KAAI,aAAa,IAAI,SAAS,EAAE;AAC9B,eAAa,OAAO,SAAS;AAC7B,MAAI,SAAS,aAAa,UAAU;;AAGtC,KAAI,cAEF,QAAO,IAAI,UAAU;AAIvB,QAAO,IAAI,UAAU,CAAC,QAAQ,sBAAsB,GAAG"}
|
|
@@ -1,2 +1,70 @@
|
|
|
1
|
-
import{DEFAULT_LOCALE
|
|
1
|
+
import { DEFAULT_LOCALE, LOCALES, ROUTING_MODE } from "@intlayer/config/defaultValues";
|
|
2
|
+
import configuration from "@intlayer/config/built";
|
|
3
|
+
|
|
4
|
+
//#region src/localization/getPrefix.ts
|
|
5
|
+
/**
|
|
6
|
+
* Resolves routing configuration by merging provided options with configuration defaults.
|
|
7
|
+
* Single source of truth for default routing config resolution across all localization functions.
|
|
8
|
+
*/
|
|
9
|
+
const resolveRoutingConfig = (options = {}) => {
|
|
10
|
+
const { internationalization, routing } = configuration ?? {};
|
|
11
|
+
return {
|
|
12
|
+
defaultLocale: internationalization?.defaultLocale ?? DEFAULT_LOCALE,
|
|
13
|
+
mode: routing?.mode ?? ROUTING_MODE,
|
|
14
|
+
locales: internationalization?.locales ?? LOCALES,
|
|
15
|
+
rewrite: routing?.rewrite,
|
|
16
|
+
...options
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Determines the URL prefix for a given locale based on the routing mode configuration.
|
|
21
|
+
*
|
|
22
|
+
* Example:
|
|
23
|
+
*
|
|
24
|
+
* ```ts
|
|
25
|
+
* // prefix-no-default mode with default locale
|
|
26
|
+
* getPrefix('en', { defaultLocale: 'en', mode: 'prefix-no-default' })
|
|
27
|
+
* // Returns { prefix: '', localePrefix: undefined }
|
|
28
|
+
*
|
|
29
|
+
* // prefix-no-default mode with non-default locale
|
|
30
|
+
* getPrefix('fr', { defaultLocale: 'en', mode: 'prefix-no-default' })
|
|
31
|
+
* // Returns { prefix: '/fr', localePrefix: 'fr' }
|
|
32
|
+
*
|
|
33
|
+
* // prefix-all mode
|
|
34
|
+
* getPrefix('en', { defaultLocale: 'en', mode: 'prefix-all' })
|
|
35
|
+
* // Returns { prefix: '/en', localePrefix: locale }
|
|
36
|
+
*
|
|
37
|
+
* // search-params mode
|
|
38
|
+
* getPrefix('en', { defaultLocale: 'en', mode: 'search-params' })
|
|
39
|
+
* // Returns { prefix: '', localePrefix: undefined }
|
|
40
|
+
*
|
|
41
|
+
* // no-prefix mode
|
|
42
|
+
* getPrefix('en', { defaultLocale: 'en', mode: 'no-prefix' })
|
|
43
|
+
* // Returns { prefix: '', localePrefix: undefined }
|
|
44
|
+
* ```
|
|
45
|
+
*
|
|
46
|
+
* @param locale - The locale to check for prefix. If not provided, uses configured default locale.
|
|
47
|
+
* @param options - Configuration options
|
|
48
|
+
* @param options.defaultLocale - The default locale. Defaults to configured default locale.
|
|
49
|
+
* @param options.mode - URL routing mode for locale handling. Defaults to configured mode.
|
|
50
|
+
* @returns An object containing pathPrefix, prefix, and localePrefix for the given locale.
|
|
51
|
+
*/
|
|
52
|
+
const getPrefix = (locale, options = {}) => {
|
|
53
|
+
const { defaultLocale, mode, locales } = resolveRoutingConfig(options);
|
|
54
|
+
if (!locale || !locales.includes(locale)) return {
|
|
55
|
+
prefix: "",
|
|
56
|
+
localePrefix: void 0
|
|
57
|
+
};
|
|
58
|
+
if (mode === "prefix-all" || mode === "prefix-no-default" && defaultLocale !== locale) return {
|
|
59
|
+
prefix: `${locale}/`,
|
|
60
|
+
localePrefix: locale
|
|
61
|
+
};
|
|
62
|
+
return {
|
|
63
|
+
prefix: "",
|
|
64
|
+
localePrefix: void 0
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
//#endregion
|
|
69
|
+
export { getPrefix, resolveRoutingConfig };
|
|
2
70
|
//# sourceMappingURL=getPrefix.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPrefix.mjs","names":[],"sources":["../../../src/localization/getPrefix.ts"],"sourcesContent":["import configuration from '@intlayer/config/built';\nimport {\n DEFAULT_LOCALE,\n LOCALES,\n ROUTING_MODE,\n} from '@intlayer/config/defaultValues';\nimport type { Locale } from '@intlayer/types/allLocales';\nimport type { RoutingConfig } from '@intlayer/types/config';\nimport type { LocalesValues } from '@intlayer/types/module_augmentation';\n\nexport type GetPrefixOptions = {\n defaultLocale?: LocalesValues;\n mode?: RoutingConfig['mode'];\n};\n\nexport type GetPrefixResult = {\n /**\n * The complete base URL path with leading and trailing slashes.\n *\n * @example\n * // https://example.com/fr/about -> '/fr'\n * // https://example.com/about -> ''\n */\n prefix: string;\n /**\n * The locale identifier without slashes.\n *\n * @example\n * // https://example.com/fr/about -> 'fr'\n * // https://example.com/about -> undefined\n */\n localePrefix: Locale | undefined;\n};\n\n/**\n * Determines the URL prefix for a given locale based on the routing mode configuration.\n *\n * Example:\n *\n * ```ts\n * // prefix-no-default mode with default locale\n * getPrefix('en', { defaultLocale: 'en', mode: 'prefix-no-default' })\n * // Returns { prefix: '', localePrefix: undefined }\n *\n * // prefix-no-default mode with non-default locale\n * getPrefix('fr', { defaultLocale: 'en', mode: 'prefix-no-default' })\n * // Returns { prefix: '/fr', localePrefix: 'fr' }\n *\n * // prefix-all mode\n * getPrefix('en', { defaultLocale: 'en', mode: 'prefix-all' })\n * // Returns { prefix: '/en', localePrefix: locale }\n *\n * // search-params mode\n * getPrefix('en', { defaultLocale: 'en', mode: 'search-params' })\n * // Returns { prefix: '', localePrefix: undefined }\n *\n * // no-prefix mode\n * getPrefix('en', { defaultLocale: 'en', mode: 'no-prefix' })\n * // Returns { prefix: '', localePrefix: undefined }\n * ```\n *\n * @param locale - The locale to check for prefix. If not provided, uses configured default locale.\n * @param options - Configuration options\n * @param options.defaultLocale - The default locale. Defaults to configured default locale.\n * @param options.mode - URL routing mode for locale handling. Defaults to configured mode.\n * @returns An object containing pathPrefix, prefix, and localePrefix for the given locale.\n */\nexport const getPrefix = (\n locale: LocalesValues | undefined,\n options:
|
|
1
|
+
{"version":3,"file":"getPrefix.mjs","names":[],"sources":["../../../src/localization/getPrefix.ts"],"sourcesContent":["import configuration from '@intlayer/config/built';\nimport {\n DEFAULT_LOCALE,\n LOCALES,\n ROUTING_MODE,\n} from '@intlayer/config/defaultValues';\nimport type { Locale } from '@intlayer/types/allLocales';\nimport type { RoutingConfig } from '@intlayer/types/config';\nimport type { LocalesValues } from '@intlayer/types/module_augmentation';\n\n/**\n * Shared routing options used across all URL localization functions.\n */\nexport type RoutingOptions = {\n locales?: LocalesValues[];\n defaultLocale?: LocalesValues;\n mode?: RoutingConfig['mode'];\n rewrite?: RoutingConfig['rewrite'];\n};\n\n/**\n * Resolves routing configuration by merging provided options with configuration defaults.\n * Single source of truth for default routing config resolution across all localization functions.\n */\nexport const resolveRoutingConfig = (options: RoutingOptions = {}) => {\n const { internationalization, routing } = configuration ?? {};\n return {\n defaultLocale: internationalization?.defaultLocale ?? DEFAULT_LOCALE,\n mode: routing?.mode ?? ROUTING_MODE,\n locales: internationalization?.locales ?? LOCALES,\n rewrite: routing?.rewrite,\n ...options,\n };\n};\n\nexport type GetPrefixOptions = {\n defaultLocale?: LocalesValues;\n mode?: RoutingConfig['mode'];\n};\n\nexport type GetPrefixResult = {\n /**\n * The complete base URL path with leading and trailing slashes.\n *\n * @example\n * // https://example.com/fr/about -> '/fr'\n * // https://example.com/about -> ''\n */\n prefix: string;\n /**\n * The locale identifier without slashes.\n *\n * @example\n * // https://example.com/fr/about -> 'fr'\n * // https://example.com/about -> undefined\n */\n localePrefix: Locale | undefined;\n};\n\n/**\n * Determines the URL prefix for a given locale based on the routing mode configuration.\n *\n * Example:\n *\n * ```ts\n * // prefix-no-default mode with default locale\n * getPrefix('en', { defaultLocale: 'en', mode: 'prefix-no-default' })\n * // Returns { prefix: '', localePrefix: undefined }\n *\n * // prefix-no-default mode with non-default locale\n * getPrefix('fr', { defaultLocale: 'en', mode: 'prefix-no-default' })\n * // Returns { prefix: '/fr', localePrefix: 'fr' }\n *\n * // prefix-all mode\n * getPrefix('en', { defaultLocale: 'en', mode: 'prefix-all' })\n * // Returns { prefix: '/en', localePrefix: locale }\n *\n * // search-params mode\n * getPrefix('en', { defaultLocale: 'en', mode: 'search-params' })\n * // Returns { prefix: '', localePrefix: undefined }\n *\n * // no-prefix mode\n * getPrefix('en', { defaultLocale: 'en', mode: 'no-prefix' })\n * // Returns { prefix: '', localePrefix: undefined }\n * ```\n *\n * @param locale - The locale to check for prefix. If not provided, uses configured default locale.\n * @param options - Configuration options\n * @param options.defaultLocale - The default locale. Defaults to configured default locale.\n * @param options.mode - URL routing mode for locale handling. Defaults to configured mode.\n * @returns An object containing pathPrefix, prefix, and localePrefix for the given locale.\n */\nexport const getPrefix = (\n locale: LocalesValues | undefined,\n options: RoutingOptions = {}\n): GetPrefixResult => {\n const { defaultLocale, mode, locales } = resolveRoutingConfig(options);\n\n if (!locale || !locales.includes(locale)) {\n return {\n prefix: '',\n localePrefix: undefined,\n };\n }\n\n // Handle prefix-based modes (prefix-all or prefix-no-default)\n const shouldPrefix =\n mode === 'prefix-all' ||\n (mode === 'prefix-no-default' && defaultLocale !== locale);\n\n if (shouldPrefix) {\n return {\n prefix: `${locale}/`,\n localePrefix: locale as Locale,\n };\n }\n\n return {\n prefix: '',\n localePrefix: undefined,\n };\n};\n"],"mappings":";;;;;;;;AAwBA,MAAa,wBAAwB,UAA0B,EAAE,KAAK;CACpE,MAAM,EAAE,sBAAsB,YAAY,iBAAiB,EAAE;AAC7D,QAAO;EACL,eAAe,sBAAsB,iBAAiB;EACtD,MAAM,SAAS,QAAQ;EACvB,SAAS,sBAAsB,WAAW;EAC1C,SAAS,SAAS;EAClB,GAAG;EACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DH,MAAa,aACX,QACA,UAA0B,EAAE,KACR;CACpB,MAAM,EAAE,eAAe,MAAM,YAAY,qBAAqB,QAAQ;AAEtE,KAAI,CAAC,UAAU,CAAC,QAAQ,SAAS,OAAO,CACtC,QAAO;EACL,QAAQ;EACR,cAAc;EACf;AAQH,KAHE,SAAS,gBACR,SAAS,uBAAuB,kBAAkB,OAGnD,QAAO;EACL,QAAQ,GAAG,OAAO;EAClB,cAAc;EACf;AAGH,QAAO;EACL,QAAQ;EACR,cAAc;EACf"}
|