@intlayer/core 5.0.1 → 5.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/dist/cjs/dictionaryManipulator/getSectionType.cjs.map +1 -1
  2. package/dist/cjs/interpreter/getContent/getContent.cjs.map +1 -1
  3. package/dist/cjs/interpreter/getContent/plugins.cjs.map +1 -1
  4. package/dist/cjs/interpreter/getDictionary.cjs.map +1 -1
  5. package/dist/cjs/interpreter/getIntlayer.cjs.map +1 -1
  6. package/dist/cjs/interpreter/getIntlayerAsync.cjs.map +1 -1
  7. package/dist/cjs/interpreter/getNesting.cjs.map +1 -1
  8. package/dist/cjs/interpreter/getTranslation.cjs.map +1 -1
  9. package/dist/cjs/localization/getHTMLTextDir.cjs.map +1 -1
  10. package/dist/cjs/localization/getLocaleLang.cjs.map +1 -1
  11. package/dist/cjs/localization/getLocaleName.cjs.map +1 -1
  12. package/dist/cjs/localization/getLocalizedUrl.cjs.map +1 -1
  13. package/dist/cjs/localization/getMultilingualUrls.cjs.map +1 -1
  14. package/dist/cjs/localization/getPathWithoutLocale.cjs.map +1 -1
  15. package/dist/cjs/transpiler/condition/condition.cjs +1 -4
  16. package/dist/cjs/transpiler/condition/condition.cjs.map +1 -1
  17. package/dist/cjs/transpiler/enumeration/enumeration.cjs +1 -4
  18. package/dist/cjs/transpiler/enumeration/enumeration.cjs.map +1 -1
  19. package/dist/cjs/transpiler/markdown/markdown.cjs +1 -4
  20. package/dist/cjs/transpiler/markdown/markdown.cjs.map +1 -1
  21. package/dist/cjs/transpiler/nesting/nesting.cjs +3 -6
  22. package/dist/cjs/transpiler/nesting/nesting.cjs.map +1 -1
  23. package/dist/cjs/transpiler/translation/translation.cjs +1 -4
  24. package/dist/cjs/transpiler/translation/translation.cjs.map +1 -1
  25. package/dist/cjs/transpiler/translation/types.cjs.map +1 -1
  26. package/dist/cjs/types/dictionary.cjs.map +1 -1
  27. package/dist/cjs/types/nodeType.cjs +8 -2
  28. package/dist/cjs/types/nodeType.cjs.map +1 -1
  29. package/dist/esm/dictionaryManipulator/getSectionType.mjs.map +1 -1
  30. package/dist/esm/interpreter/getContent/getContent.mjs +3 -1
  31. package/dist/esm/interpreter/getContent/getContent.mjs.map +1 -1
  32. package/dist/esm/interpreter/getContent/plugins.mjs.map +1 -1
  33. package/dist/esm/interpreter/getDictionary.mjs.map +1 -1
  34. package/dist/esm/interpreter/getIntlayer.mjs.map +1 -1
  35. package/dist/esm/interpreter/getIntlayerAsync.mjs.map +1 -1
  36. package/dist/esm/interpreter/getNesting.mjs.map +1 -1
  37. package/dist/esm/interpreter/getTranslation.mjs.map +1 -1
  38. package/dist/esm/localization/getHTMLTextDir.mjs.map +1 -1
  39. package/dist/esm/localization/getLocaleLang.mjs.map +1 -1
  40. package/dist/esm/localization/getLocaleName.mjs.map +1 -1
  41. package/dist/esm/localization/getLocalizedUrl.mjs.map +1 -1
  42. package/dist/esm/localization/getMultilingualUrls.mjs.map +1 -1
  43. package/dist/esm/localization/getPathWithoutLocale.mjs +3 -1
  44. package/dist/esm/localization/getPathWithoutLocale.mjs.map +1 -1
  45. package/dist/esm/transpiler/condition/condition.mjs +5 -5
  46. package/dist/esm/transpiler/condition/condition.mjs.map +1 -1
  47. package/dist/esm/transpiler/enumeration/enumeration.mjs +2 -5
  48. package/dist/esm/transpiler/enumeration/enumeration.mjs.map +1 -1
  49. package/dist/esm/transpiler/markdown/markdown.mjs +5 -5
  50. package/dist/esm/transpiler/markdown/markdown.mjs.map +1 -1
  51. package/dist/esm/transpiler/nesting/nesting.mjs +7 -7
  52. package/dist/esm/transpiler/nesting/nesting.mjs.map +1 -1
  53. package/dist/esm/transpiler/translation/translation.mjs +2 -5
  54. package/dist/esm/transpiler/translation/translation.mjs.map +1 -1
  55. package/dist/esm/types/nodeType.mjs +6 -1
  56. package/dist/esm/types/nodeType.mjs.map +1 -1
  57. package/dist/types/dictionaryManipulator/getSectionType.d.ts.map +1 -1
  58. package/dist/types/interpreter/getContent/getContent.d.ts +2 -2
  59. package/dist/types/interpreter/getContent/getContent.d.ts.map +1 -1
  60. package/dist/types/interpreter/getContent/plugins.d.ts +2 -2
  61. package/dist/types/interpreter/getContent/plugins.d.ts.map +1 -1
  62. package/dist/types/interpreter/getDictionary.d.ts +2 -2
  63. package/dist/types/interpreter/getDictionary.d.ts.map +1 -1
  64. package/dist/types/interpreter/getIntlayer.d.ts +2 -2
  65. package/dist/types/interpreter/getIntlayer.d.ts.map +1 -1
  66. package/dist/types/interpreter/getIntlayerAsync.d.ts +2 -2
  67. package/dist/types/interpreter/getIntlayerAsync.d.ts.map +1 -1
  68. package/dist/types/interpreter/getNesting.d.ts.map +1 -1
  69. package/dist/types/interpreter/getTranslation.d.ts +2 -2
  70. package/dist/types/interpreter/getTranslation.d.ts.map +1 -1
  71. package/dist/types/localization/getHTMLTextDir.d.ts +2 -2
  72. package/dist/types/localization/getHTMLTextDir.d.ts.map +1 -1
  73. package/dist/types/localization/getLocaleLang.d.ts +2 -2
  74. package/dist/types/localization/getLocaleLang.d.ts.map +1 -1
  75. package/dist/types/localization/getLocaleName.d.ts +2 -2
  76. package/dist/types/localization/getLocaleName.d.ts.map +1 -1
  77. package/dist/types/localization/getLocalizedUrl.d.ts +2 -2
  78. package/dist/types/localization/getLocalizedUrl.d.ts.map +1 -1
  79. package/dist/types/localization/getMultilingualUrls.d.ts +2 -2
  80. package/dist/types/localization/getMultilingualUrls.d.ts.map +1 -1
  81. package/dist/types/localization/getPathWithoutLocale.d.ts +2 -2
  82. package/dist/types/localization/getPathWithoutLocale.d.ts.map +1 -1
  83. package/dist/types/transpiler/condition/condition.d.ts +3 -13
  84. package/dist/types/transpiler/condition/condition.d.ts.map +1 -1
  85. package/dist/types/transpiler/enumeration/enumeration.d.ts +3 -24
  86. package/dist/types/transpiler/enumeration/enumeration.d.ts.map +1 -1
  87. package/dist/types/transpiler/markdown/markdown.d.ts +2 -5
  88. package/dist/types/transpiler/markdown/markdown.d.ts.map +1 -1
  89. package/dist/types/transpiler/nesting/nesting.d.ts +2 -5
  90. package/dist/types/transpiler/nesting/nesting.d.ts.map +1 -1
  91. package/dist/types/transpiler/translation/translation.d.ts +3 -2
  92. package/dist/types/transpiler/translation/translation.d.ts.map +1 -1
  93. package/dist/types/transpiler/translation/types.d.ts +7 -40
  94. package/dist/types/transpiler/translation/types.d.ts.map +1 -1
  95. package/dist/types/types/dictionary.d.ts +12 -14
  96. package/dist/types/types/dictionary.d.ts.map +1 -1
  97. package/dist/types/types/nodeType.d.ts +6 -0
  98. package/dist/types/types/nodeType.d.ts.map +1 -1
  99. package/package.json +11 -11
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/dictionaryManipulator/getSectionType.ts"],"sourcesContent":["import type {\n TranslationContent,\n EnumerationContent,\n ConditionContent,\n MarkdownContent,\n NestedContent,\n} from '../transpiler';\nimport { NodeType, type DictionaryKeys } from '../types';\nimport type { ContentNode } from '../types/dictionary';\nimport { isValidElement } from '../utils/isValidReactElement';\n\nexport const getSectionType = (section: ContentNode): NodeType => {\n if (typeof section === 'string') {\n return NodeType.Text;\n }\n\n if (\n (section as TranslationContent<unknown>)?.nodeType === NodeType.Translation\n ) {\n return NodeType.Translation;\n }\n\n if (\n (section as EnumerationContent<unknown>)?.nodeType === NodeType.Enumeration\n ) {\n return NodeType.Enumeration;\n }\n\n if ((section as ConditionContent<unknown>)?.nodeType === NodeType.Condition) {\n return NodeType.Condition;\n }\n\n if ((section as MarkdownContent)?.nodeType === NodeType.Markdown) {\n return NodeType.Markdown;\n }\n\n if (\n (section as NestedContent<DictionaryKeys>)?.nodeType === NodeType.Nested\n ) {\n return NodeType.Nested;\n }\n\n if (Array.isArray(section)) {\n return NodeType.Array;\n }\n\n if (isValidElement(section)) {\n return NodeType.ReactNode;\n }\n\n return NodeType.Object;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,mBAA8C;AAE9C,iCAA+B;AAExB,MAAM,iBAAiB,CAAC,YAAmC;AAChE,MAAI,OAAO,YAAY,UAAU;AAC/B,WAAO,sBAAS;AAAA,EAClB;AAEA,MACG,SAAyC,aAAa,sBAAS,aAChE;AACA,WAAO,sBAAS;AAAA,EAClB;AAEA,MACG,SAAyC,aAAa,sBAAS,aAChE;AACA,WAAO,sBAAS;AAAA,EAClB;AAEA,MAAK,SAAuC,aAAa,sBAAS,WAAW;AAC3E,WAAO,sBAAS;AAAA,EAClB;AAEA,MAAK,SAA6B,aAAa,sBAAS,UAAU;AAChE,WAAO,sBAAS;AAAA,EAClB;AAEA,MACG,SAA2C,aAAa,sBAAS,QAClE;AACA,WAAO,sBAAS;AAAA,EAClB;AAEA,MAAI,MAAM,QAAQ,OAAO,GAAG;AAC1B,WAAO,sBAAS;AAAA,EAClB;AAEA,UAAI,2CAAe,OAAO,GAAG;AAC3B,WAAO,sBAAS;AAAA,EAClB;AAEA,SAAO,sBAAS;AAClB;","names":[]}
1
+ {"version":3,"sources":["../../../src/dictionaryManipulator/getSectionType.ts"],"sourcesContent":["import type {\n TranslationContent,\n EnumerationContent,\n ConditionContent,\n MarkdownContent,\n NestedContent,\n} from '../transpiler';\nimport { NodeType, type DictionaryKeys } from '../types';\nimport type { ContentNode } from '../types/dictionary';\nimport { isValidElement } from '../utils/isValidReactElement';\n\nexport const getSectionType = (section: ContentNode): NodeType => {\n if (typeof section === 'string') {\n return NodeType.Text;\n }\n\n if ((section as TranslationContent)?.nodeType === NodeType.Translation) {\n return NodeType.Translation;\n }\n\n if ((section as EnumerationContent)?.nodeType === NodeType.Enumeration) {\n return NodeType.Enumeration;\n }\n\n if ((section as ConditionContent)?.nodeType === NodeType.Condition) {\n return NodeType.Condition;\n }\n\n if ((section as MarkdownContent)?.nodeType === NodeType.Markdown) {\n return NodeType.Markdown;\n }\n\n if (\n (section as NestedContent<DictionaryKeys>)?.nodeType === NodeType.Nested\n ) {\n return NodeType.Nested;\n }\n\n if (Array.isArray(section)) {\n return NodeType.Array;\n }\n\n if (isValidElement(section)) {\n return NodeType.ReactNode;\n }\n\n return NodeType.Object;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,mBAA8C;AAE9C,iCAA+B;AAExB,MAAM,iBAAiB,CAAC,YAAmC;AAChE,MAAI,OAAO,YAAY,UAAU;AAC/B,WAAO,sBAAS;AAAA,EAClB;AAEA,MAAK,SAAgC,aAAa,sBAAS,aAAa;AACtE,WAAO,sBAAS;AAAA,EAClB;AAEA,MAAK,SAAgC,aAAa,sBAAS,aAAa;AACtE,WAAO,sBAAS;AAAA,EAClB;AAEA,MAAK,SAA8B,aAAa,sBAAS,WAAW;AAClE,WAAO,sBAAS;AAAA,EAClB;AAEA,MAAK,SAA6B,aAAa,sBAAS,UAAU;AAChE,WAAO,sBAAS;AAAA,EAClB;AAEA,MACG,SAA2C,aAAa,sBAAS,QAClE;AACA,WAAO,sBAAS;AAAA,EAClB;AAEA,MAAI,MAAM,QAAQ,OAAO,GAAG;AAC1B,WAAO,sBAAS;AAAA,EAClB;AAEA,UAAI,2CAAe,OAAO,GAAG;AAC3B,WAAO,sBAAS;AAAA,EAClB;AAEA,SAAO,sBAAS;AAClB;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/interpreter/getContent/getContent.ts"],"sourcesContent":["import { getConfiguration, type Locales } from '@intlayer/config/client';\nimport type { ContentNode } from '../../types';\nimport { deepTransformNode } from './deepTransform';\nimport {\n translationPlugin,\n enumerationPlugin,\n conditionPlugin,\n nestedPlugin,\n type DeepTransformContent,\n type NodeProps,\n type Plugins,\n} from './plugins';\n\n/**\n * Transforms a node in a single pass, applying each plugin as needed.\n *\n * @param node The node to transform.\n * @param locale The locale to use if your transformers need it (e.g. for translations).\n */\nexport const getContent = <\n T extends ContentNode,\n L extends Locales | `${Locales}` = Locales,\n>(\n node: T,\n nodeProps: NodeProps,\n locale?: L\n) => {\n const plugins: Plugins[] = [\n translationPlugin(\n locale ?? getConfiguration().internationalization.defaultLocale\n ),\n enumerationPlugin,\n conditionPlugin,\n nestedPlugin,\n ...(nodeProps.plugins ?? []),\n ];\n\n return deepTransformNode(node, {\n ...nodeProps,\n plugins,\n }) as DeepTransformContent<T>;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA+C;AAE/C,2BAAkC;AAClC,qBAQO;AAQA,MAAM,aAAa,CAIxB,MACA,WACA,WACG;AACH,QAAM,UAAqB;AAAA,QACzB;AAAA,MACE,cAAU,gCAAiB,EAAE,qBAAqB;AAAA,IACpD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAI,UAAU,WAAW,CAAC;AAAA,EAC5B;AAEA,aAAO,wCAAkB,MAAM;AAAA,IAC7B,GAAG;AAAA,IACH;AAAA,EACF,CAAC;AACH;","names":[]}
1
+ {"version":3,"sources":["../../../../src/interpreter/getContent/getContent.ts"],"sourcesContent":["import {\n getConfiguration,\n type Locales,\n type LocalesValues,\n} from '@intlayer/config/client';\nimport type { ContentNode } from '../../types';\nimport { deepTransformNode } from './deepTransform';\nimport {\n translationPlugin,\n enumerationPlugin,\n conditionPlugin,\n nestedPlugin,\n type DeepTransformContent,\n type NodeProps,\n type Plugins,\n} from './plugins';\n\n/**\n * Transforms a node in a single pass, applying each plugin as needed.\n *\n * @param node The node to transform.\n * @param locale The locale to use if your transformers need it (e.g. for translations).\n */\nexport const getContent = <\n T extends ContentNode,\n L extends LocalesValues = Locales,\n>(\n node: T,\n nodeProps: NodeProps,\n locale?: L\n) => {\n const plugins: Plugins[] = [\n translationPlugin(\n locale ?? getConfiguration().internationalization.defaultLocale\n ),\n enumerationPlugin,\n conditionPlugin,\n nestedPlugin,\n ...(nodeProps.plugins ?? []),\n ];\n\n return deepTransformNode(node, {\n ...nodeProps,\n plugins,\n }) as DeepTransformContent<T>;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAIO;AAEP,2BAAkC;AAClC,qBAQO;AAQA,MAAM,aAAa,CAIxB,MACA,WACA,WACG;AACH,QAAM,UAAqB;AAAA,QACzB;AAAA,MACE,cAAU,gCAAiB,EAAE,qBAAqB;AAAA,IACpD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAI,UAAU,WAAW,CAAC;AAAA,EAC5B;AAEA,aAAO,wCAAkB,MAAM;AAAA,IAC7B,GAAG;AAAA,IACH;AAAA,EACF,CAAC;AACH;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/interpreter/getContent/plugins.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport type { Locales } from '@intlayer/config/client';\n\nimport { type DictionaryKeys, type KeyPath, NodeType } from '../../types/index';\nimport type {\n ConditionContent,\n EnumerationContent,\n MarkdownContent,\n NestedContent,\n TranslationContent,\n} from '../../transpiler';\nimport { getTranslation } from '../getTranslation';\nimport { getEnumeration } from '../getEnumeration';\nimport { getCondition } from '../getCondition';\nimport { type GetNestingResult, getNesting } from '../getNesting';\n\n/** ---------------------------------------------\n * PLUGIN DEFINITION\n * --------------------------------------------- */\n\n/**\n * A plugin/transformer that can optionally transform a node during a single DFS pass.\n * - `canHandle` decides if the node is transformable by this plugin.\n * - `transform` returns the transformed node (and does not recurse further).\n *\n * > `transformFn` is a function that can be used to deeply transform inside the plugin.\n */\nexport type Plugins = {\n canHandle: (node: any) => boolean;\n transform: (\n node: any,\n props: NodeProps,\n transformFn: (node: any, props: NodeProps) => any\n ) => any;\n};\n\n/** ---------------------------------------------\n * TRANSLATION PLUGIN\n * --------------------------------------------- */\n\nexport type TranslationCond<T, S> = T extends {\n nodeType: NodeType | string;\n [NodeType.Translation]: object;\n}\n ? DeepTransformContent<\n T[NodeType.Translation][keyof T[NodeType.Translation]],\n S\n >\n : never;\n\n/** Translation plugin. Replaces node with a locale string if nodeType = Translation. */\nexport const translationPlugin = (locale: Locales | `${Locales}`): Plugins => ({\n canHandle: (node) =>\n typeof node === 'object' && node?.nodeType === NodeType.Translation,\n transform: (node: TranslationContent, props, deepTransformNode) => {\n const result = structuredClone(node.translation);\n\n for (const key in result) {\n const childProps = {\n ...props,\n content: result[key as unknown as keyof typeof result],\n keyPath: [\n ...props.keyPath,\n { type: NodeType.Translation, key } as KeyPath,\n ],\n };\n result[key as unknown as keyof typeof result] = deepTransformNode(\n result[key as unknown as keyof typeof result],\n childProps\n );\n }\n return getTranslation(result, locale);\n },\n});\n\n/** ---------------------------------------------\n * ENUMERATION PLUGIN\n * --------------------------------------------- */\n\nexport type EnumerationCond<T, S> = T extends {\n nodeType: NodeType | string;\n [NodeType.Enumeration]: object;\n}\n ? (\n quantity: number\n ) => DeepTransformContent<\n T[NodeType.Enumeration][keyof T[NodeType.Enumeration]],\n S\n >\n : never;\n\n/** Enumeration plugin. Replaces node with a function that takes quantity => string. */\nexport const enumerationPlugin: Plugins = {\n canHandle: (node) =>\n typeof node === 'object' && node?.nodeType === NodeType.Enumeration,\n transform: (node: EnumerationContent, props, deepTransformNode) => {\n const result = structuredClone(node.enumeration);\n\n for (const key in result) {\n const child = result[key as unknown as keyof typeof result];\n const childProps = {\n ...props,\n content: child,\n keyPath: [\n ...props.keyPath,\n { type: NodeType.Enumeration, key } as KeyPath,\n ],\n };\n result[key as unknown as keyof typeof result] = deepTransformNode(\n child,\n childProps\n );\n }\n\n return (quantity: number) => getEnumeration(result, quantity);\n },\n};\n\n/** ---------------------------------------------\n * CONDITION PLUGIN\n * --------------------------------------------- */\n\nexport type ConditionCond<T, S> = T extends {\n nodeType: NodeType | string;\n [NodeType.Condition]: object;\n}\n ? (\n value: boolean\n ) => DeepTransformContent<\n T[NodeType.Condition][keyof T[NodeType.Condition]],\n S\n >\n : never;\n\n/** Condition plugin. Replaces node with a function that takes boolean => string. */\nexport const conditionPlugin: Plugins = {\n canHandle: (node) =>\n typeof node === 'object' && node?.nodeType === NodeType.Condition,\n transform: (node: ConditionContent, props, deepTransformNode) => {\n const result = structuredClone(node.condition);\n\n for (const key in result) {\n const child = result[key as keyof typeof result];\n const childProps = {\n ...props,\n content: child,\n keyPath: [\n ...props.keyPath,\n { type: NodeType.Condition, key } as KeyPath,\n ],\n };\n result[key as unknown as keyof typeof result] = deepTransformNode(\n child,\n childProps\n );\n }\n\n return (value: boolean) => getCondition(result, value);\n },\n};\n\n/** ---------------------------------------------\n * NESTED PLUGIN\n * --------------------------------------------- */\n\nexport type NestedCond<T, S> = T extends {\n nodeType: NodeType | string;\n [NodeType.Nested]: infer U;\n}\n ? U extends {\n dictionaryKey: infer K extends DictionaryKeys;\n path?: infer P;\n }\n ? GetNestingResult<K, P, S>\n : never\n : never;\n\n/** Nested plugin. Replaces node with the result of `getNesting`. */\nexport const nestedPlugin: Plugins = {\n canHandle: (node) =>\n typeof node === 'object' && node?.nodeType === NodeType.Nested,\n transform: (node: NestedContent, props) =>\n // @ts-ignore\n getNesting(node.nested.dictionaryKey, node.nested.path, props),\n};\n\n/**\n * PLUGIN RESULT\n */\n\n/**\n * Interface that defines the properties of a node.\n * This interface can be augmented in other packages, such as `react-intlayer`.\n */\nexport interface NodeProps {\n dictionaryKey: string;\n keyPath: KeyPath[];\n plugins?: Plugins[];\n locale?: Locales;\n dictionaryPath?: string;\n content?: any;\n}\n\n/**\n * Interface that defines the plugins that can be used to transform a node.\n * This interface can be augmented in other packages, such as `react-intlayer`.\n */\nexport interface IInterpreterPlugin<T, S> {\n translation: TranslationCond<T, S>;\n enumeration: EnumerationCond<T, S>;\n condition: ConditionCond<T, S>;\n nested: NestedCond<T, S>;\n}\n\n/**\n * Allow to avoid overwriting import from `intlayer` package when `IInterpreterPlugin<T>` interface is augmented in another package, such as `react-intlayer`.\n */\nexport type IInterpreterPluginState = {\n translation: true;\n enumeration: true;\n condition: true;\n nested: true;\n};\n\n/**\n * Utility type to check if a plugin can be applied to a node.\n */\ntype CheckApplyPlugin<T, K extends keyof IInterpreterPlugin<T, S>, S> =\n // Test if the key is a key of S.\n K extends keyof S\n ? // Test if the key of S is true. Then the plugin can be applied.\n S[K] extends true\n ? // Test if the key of S exist\n IInterpreterPlugin<T, S>[K] extends never\n ? never\n : // Test if the plugin condition is true (if it's not, the plugin is skipped for this node)\n IInterpreterPlugin<T, S>[K]\n : never\n : never;\n\n/**\n * Traverse recursively through an object or array, applying each plugin as needed.\n */\ntype Traverse<T, S> = T extends object\n ? T extends (infer U)[]\n ? DeepTransformContent<U, S>[] // Transform each element in an array.\n : { [K in keyof T]: DeepTransformContent<T[K], S> } // Recursively transform each property.\n : T;\n\n/**\n * Traverse recursively through an object or array, applying each plugin as needed.\n */\nexport type DeepTransformContent<T, S = IInterpreterPluginState> =\n // Check if there is a plugin for T:\n CheckApplyPlugin<T, keyof IInterpreterPlugin<T, S>, S> extends never\n ? // No plugin was found, so try to transform T recursively:\n Traverse<T, S>\n : // A plugin was found – use the plugin’s transformation.\n IInterpreterPlugin<T, S>[keyof IInterpreterPlugin<T, S>];\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,mBAA4D;AAQ5D,4BAA+B;AAC/B,4BAA+B;AAC/B,0BAA6B;AAC7B,wBAAkD;AAqC3C,MAAM,oBAAoB,CAAC,YAA6C;AAAA,EAC7E,WAAW,CAAC,SACV,OAAO,SAAS,YAAY,MAAM,aAAa,sBAAS;AAAA,EAC1D,WAAW,CAAC,MAA0B,OAAO,sBAAsB;AACjE,UAAM,SAAS,gBAAgB,KAAK,WAAW;AAE/C,eAAW,OAAO,QAAQ;AACxB,YAAM,aAAa;AAAA,QACjB,GAAG;AAAA,QACH,SAAS,OAAO,GAAqC;AAAA,QACrD,SAAS;AAAA,UACP,GAAG,MAAM;AAAA,UACT,EAAE,MAAM,sBAAS,aAAa,IAAI;AAAA,QACpC;AAAA,MACF;AACA,aAAO,GAAqC,IAAI;AAAA,QAC9C,OAAO,GAAqC;AAAA,QAC5C;AAAA,MACF;AAAA,IACF;AACA,eAAO,sCAAe,QAAQ,MAAM;AAAA,EACtC;AACF;AAmBO,MAAM,oBAA6B;AAAA,EACxC,WAAW,CAAC,SACV,OAAO,SAAS,YAAY,MAAM,aAAa,sBAAS;AAAA,EAC1D,WAAW,CAAC,MAA0B,OAAO,sBAAsB;AACjE,UAAM,SAAS,gBAAgB,KAAK,WAAW;AAE/C,eAAW,OAAO,QAAQ;AACxB,YAAM,QAAQ,OAAO,GAAqC;AAC1D,YAAM,aAAa;AAAA,QACjB,GAAG;AAAA,QACH,SAAS;AAAA,QACT,SAAS;AAAA,UACP,GAAG,MAAM;AAAA,UACT,EAAE,MAAM,sBAAS,aAAa,IAAI;AAAA,QACpC;AAAA,MACF;AACA,aAAO,GAAqC,IAAI;AAAA,QAC9C;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAEA,WAAO,CAAC,iBAAqB,sCAAe,QAAQ,QAAQ;AAAA,EAC9D;AACF;AAmBO,MAAM,kBAA2B;AAAA,EACtC,WAAW,CAAC,SACV,OAAO,SAAS,YAAY,MAAM,aAAa,sBAAS;AAAA,EAC1D,WAAW,CAAC,MAAwB,OAAO,sBAAsB;AAC/D,UAAM,SAAS,gBAAgB,KAAK,SAAS;AAE7C,eAAW,OAAO,QAAQ;AACxB,YAAM,QAAQ,OAAO,GAA0B;AAC/C,YAAM,aAAa;AAAA,QACjB,GAAG;AAAA,QACH,SAAS;AAAA,QACT,SAAS;AAAA,UACP,GAAG,MAAM;AAAA,UACT,EAAE,MAAM,sBAAS,WAAW,IAAI;AAAA,QAClC;AAAA,MACF;AACA,aAAO,GAAqC,IAAI;AAAA,QAC9C;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAEA,WAAO,CAAC,cAAmB,kCAAa,QAAQ,KAAK;AAAA,EACvD;AACF;AAmBO,MAAM,eAAwB;AAAA,EACnC,WAAW,CAAC,SACV,OAAO,SAAS,YAAY,MAAM,aAAa,sBAAS;AAAA,EAC1D,WAAW,CAAC,MAAqB;AAAA;AAAA,QAE/B,8BAAW,KAAK,OAAO,eAAe,KAAK,OAAO,MAAM,KAAK;AAAA;AACjE;","names":[]}
1
+ {"version":3,"sources":["../../../../src/interpreter/getContent/plugins.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport type { Locales, LocalesValues } from '@intlayer/config/client';\n\nimport { type DictionaryKeys, type KeyPath, NodeType } from '../../types/index';\nimport type {\n ConditionContent,\n EnumerationContent,\n NestedContent,\n TranslationContent,\n} from '../../transpiler';\nimport { getTranslation } from '../getTranslation';\nimport { getEnumeration } from '../getEnumeration';\nimport { getCondition } from '../getCondition';\nimport { type GetNestingResult, getNesting } from '../getNesting';\n\n/** ---------------------------------------------\n * PLUGIN DEFINITION\n * --------------------------------------------- */\n\n/**\n * A plugin/transformer that can optionally transform a node during a single DFS pass.\n * - `canHandle` decides if the node is transformable by this plugin.\n * - `transform` returns the transformed node (and does not recurse further).\n *\n * > `transformFn` is a function that can be used to deeply transform inside the plugin.\n */\nexport type Plugins = {\n canHandle: (node: any) => boolean;\n transform: (\n node: any,\n props: NodeProps,\n transformFn: (node: any, props: NodeProps) => any\n ) => any;\n};\n\n/** ---------------------------------------------\n * TRANSLATION PLUGIN\n * --------------------------------------------- */\n\nexport type TranslationCond<T, S> = T extends {\n nodeType: NodeType | string;\n [NodeType.Translation]: object;\n}\n ? DeepTransformContent<\n T[NodeType.Translation][keyof T[NodeType.Translation]],\n S\n >\n : never;\n\n/** Translation plugin. Replaces node with a locale string if nodeType = Translation. */\nexport const translationPlugin = (locale: LocalesValues): Plugins => ({\n canHandle: (node) =>\n typeof node === 'object' && node?.nodeType === NodeType.Translation,\n transform: (node: TranslationContent, props, deepTransformNode) => {\n const result = structuredClone(node.translation);\n\n for (const key in result) {\n const childProps = {\n ...props,\n content: result[key as unknown as keyof typeof result],\n keyPath: [\n ...props.keyPath,\n { type: NodeType.Translation, key } as KeyPath,\n ],\n };\n result[key as unknown as keyof typeof result] = deepTransformNode(\n result[key as unknown as keyof typeof result],\n childProps\n );\n }\n return getTranslation(result, locale);\n },\n});\n\n/** ---------------------------------------------\n * ENUMERATION PLUGIN\n * --------------------------------------------- */\n\nexport type EnumerationCond<T, S> = T extends {\n nodeType: NodeType | string;\n [NodeType.Enumeration]: object;\n}\n ? (\n quantity: number\n ) => DeepTransformContent<\n T[NodeType.Enumeration][keyof T[NodeType.Enumeration]],\n S\n >\n : never;\n\n/** Enumeration plugin. Replaces node with a function that takes quantity => string. */\nexport const enumerationPlugin: Plugins = {\n canHandle: (node) =>\n typeof node === 'object' && node?.nodeType === NodeType.Enumeration,\n transform: (node: EnumerationContent, props, deepTransformNode) => {\n const result = structuredClone(node.enumeration);\n\n for (const key in result) {\n const child = result[key as unknown as keyof typeof result];\n const childProps = {\n ...props,\n content: child,\n keyPath: [\n ...props.keyPath,\n { type: NodeType.Enumeration, key } as KeyPath,\n ],\n };\n result[key as unknown as keyof typeof result] = deepTransformNode(\n child,\n childProps\n );\n }\n\n return (quantity: number) => getEnumeration(result, quantity);\n },\n};\n\n/** ---------------------------------------------\n * CONDITION PLUGIN\n * --------------------------------------------- */\n\nexport type ConditionCond<T, S> = T extends {\n nodeType: NodeType | string;\n [NodeType.Condition]: object;\n}\n ? (\n value: boolean\n ) => DeepTransformContent<\n T[NodeType.Condition][keyof T[NodeType.Condition]],\n S\n >\n : never;\n\n/** Condition plugin. Replaces node with a function that takes boolean => string. */\nexport const conditionPlugin: Plugins = {\n canHandle: (node) =>\n typeof node === 'object' && node?.nodeType === NodeType.Condition,\n transform: (node: ConditionContent, props, deepTransformNode) => {\n const result = structuredClone(node.condition);\n\n for (const key in result) {\n const child = result[key as keyof typeof result];\n const childProps = {\n ...props,\n content: child,\n keyPath: [\n ...props.keyPath,\n { type: NodeType.Condition, key } as KeyPath,\n ],\n };\n result[key as unknown as keyof typeof result] = deepTransformNode(\n child,\n childProps\n );\n }\n\n return (value: boolean) => getCondition(result, value);\n },\n};\n\n/** ---------------------------------------------\n * NESTED PLUGIN\n * --------------------------------------------- */\n\nexport type NestedCond<T, S> = T extends {\n nodeType: NodeType | string;\n [NodeType.Nested]: infer U;\n}\n ? U extends {\n dictionaryKey: infer K extends DictionaryKeys;\n path?: infer P;\n }\n ? GetNestingResult<K, P, S>\n : never\n : never;\n\n/** Nested plugin. Replaces node with the result of `getNesting`. */\nexport const nestedPlugin: Plugins = {\n canHandle: (node) =>\n typeof node === 'object' && node?.nodeType === NodeType.Nested,\n transform: (node: NestedContent, props) =>\n // @ts-ignore\n getNesting(node.nested.dictionaryKey, node.nested.path, props),\n};\n\n/**\n * PLUGIN RESULT\n */\n\n/**\n * Interface that defines the properties of a node.\n * This interface can be augmented in other packages, such as `react-intlayer`.\n */\nexport interface NodeProps {\n dictionaryKey: string;\n keyPath: KeyPath[];\n plugins?: Plugins[];\n locale?: Locales;\n dictionaryPath?: string;\n content?: any;\n}\n\n/**\n * Interface that defines the plugins that can be used to transform a node.\n * This interface can be augmented in other packages, such as `react-intlayer`.\n */\nexport interface IInterpreterPlugin<T, S> {\n translation: TranslationCond<T, S>;\n enumeration: EnumerationCond<T, S>;\n condition: ConditionCond<T, S>;\n nested: NestedCond<T, S>;\n}\n\n/**\n * Allow to avoid overwriting import from `intlayer` package when `IInterpreterPlugin<T>` interface is augmented in another package, such as `react-intlayer`.\n */\nexport type IInterpreterPluginState = {\n translation: true;\n enumeration: true;\n condition: true;\n nested: true;\n};\n\n/**\n * Utility type to check if a plugin can be applied to a node.\n */\ntype CheckApplyPlugin<T, K extends keyof IInterpreterPlugin<T, S>, S> =\n // Test if the key is a key of S.\n K extends keyof S\n ? // Test if the key of S is true. Then the plugin can be applied.\n S[K] extends true\n ? // Test if the key of S exist\n IInterpreterPlugin<T, S>[K] extends never\n ? never\n : // Test if the plugin condition is true (if it's not, the plugin is skipped for this node)\n IInterpreterPlugin<T, S>[K]\n : never\n : never;\n\n/**\n * Traverse recursively through an object or array, applying each plugin as needed.\n */\ntype Traverse<T, S> = T extends object\n ? T extends (infer U)[]\n ? DeepTransformContent<U, S>[] // Transform each element in an array.\n : { [K in keyof T]: DeepTransformContent<T[K], S> } // Recursively transform each property.\n : T;\n\n/**\n * Traverse recursively through an object or array, applying each plugin as needed.\n */\nexport type DeepTransformContent<T, S = IInterpreterPluginState> =\n // Check if there is a plugin for T:\n CheckApplyPlugin<T, keyof IInterpreterPlugin<T, S>, S> extends never\n ? // No plugin was found, so try to transform T recursively:\n Traverse<T, S>\n : // A plugin was found – use the plugin’s transformation.\n IInterpreterPlugin<T, S>[keyof IInterpreterPlugin<T, S>];\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,mBAA4D;AAO5D,4BAA+B;AAC/B,4BAA+B;AAC/B,0BAA6B;AAC7B,wBAAkD;AAqC3C,MAAM,oBAAoB,CAAC,YAAoC;AAAA,EACpE,WAAW,CAAC,SACV,OAAO,SAAS,YAAY,MAAM,aAAa,sBAAS;AAAA,EAC1D,WAAW,CAAC,MAA0B,OAAO,sBAAsB;AACjE,UAAM,SAAS,gBAAgB,KAAK,WAAW;AAE/C,eAAW,OAAO,QAAQ;AACxB,YAAM,aAAa;AAAA,QACjB,GAAG;AAAA,QACH,SAAS,OAAO,GAAqC;AAAA,QACrD,SAAS;AAAA,UACP,GAAG,MAAM;AAAA,UACT,EAAE,MAAM,sBAAS,aAAa,IAAI;AAAA,QACpC;AAAA,MACF;AACA,aAAO,GAAqC,IAAI;AAAA,QAC9C,OAAO,GAAqC;AAAA,QAC5C;AAAA,MACF;AAAA,IACF;AACA,eAAO,sCAAe,QAAQ,MAAM;AAAA,EACtC;AACF;AAmBO,MAAM,oBAA6B;AAAA,EACxC,WAAW,CAAC,SACV,OAAO,SAAS,YAAY,MAAM,aAAa,sBAAS;AAAA,EAC1D,WAAW,CAAC,MAA0B,OAAO,sBAAsB;AACjE,UAAM,SAAS,gBAAgB,KAAK,WAAW;AAE/C,eAAW,OAAO,QAAQ;AACxB,YAAM,QAAQ,OAAO,GAAqC;AAC1D,YAAM,aAAa;AAAA,QACjB,GAAG;AAAA,QACH,SAAS;AAAA,QACT,SAAS;AAAA,UACP,GAAG,MAAM;AAAA,UACT,EAAE,MAAM,sBAAS,aAAa,IAAI;AAAA,QACpC;AAAA,MACF;AACA,aAAO,GAAqC,IAAI;AAAA,QAC9C;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAEA,WAAO,CAAC,iBAAqB,sCAAe,QAAQ,QAAQ;AAAA,EAC9D;AACF;AAmBO,MAAM,kBAA2B;AAAA,EACtC,WAAW,CAAC,SACV,OAAO,SAAS,YAAY,MAAM,aAAa,sBAAS;AAAA,EAC1D,WAAW,CAAC,MAAwB,OAAO,sBAAsB;AAC/D,UAAM,SAAS,gBAAgB,KAAK,SAAS;AAE7C,eAAW,OAAO,QAAQ;AACxB,YAAM,QAAQ,OAAO,GAA0B;AAC/C,YAAM,aAAa;AAAA,QACjB,GAAG;AAAA,QACH,SAAS;AAAA,QACT,SAAS;AAAA,UACP,GAAG,MAAM;AAAA,UACT,EAAE,MAAM,sBAAS,WAAW,IAAI;AAAA,QAClC;AAAA,MACF;AACA,aAAO,GAAqC,IAAI;AAAA,QAC9C;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAEA,WAAO,CAAC,cAAmB,kCAAa,QAAQ,KAAK;AAAA,EACvD;AACF;AAmBO,MAAM,eAAwB;AAAA,EACnC,WAAW,CAAC,SACV,OAAO,SAAS,YAAY,MAAM,aAAa,sBAAS;AAAA,EAC1D,WAAW,CAAC,MAAqB;AAAA;AAAA,QAE/B,8BAAW,KAAK,OAAO,eAAe,KAAK,OAAO,MAAM,KAAK;AAAA;AACjE;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/interpreter/getDictionary.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { Locales } from '@intlayer/config/client';\nimport type { Dictionary } from '../types';\nimport { getContent } from './getContent/getContent';\nimport type { Plugins, NodeProps, DeepTransformContent } from './getContent';\n\n/**\n * Transforms a dictionary in a single pass, applying each plugin as needed.\n *\n * @param dictionary The dictionary to transform.\n * @param locale The locale to use if your transformers need it (e.g. for translations).\n * @param additionalPlugins An array of NodeTransformer that define how to transform recognized nodes.\n * If omitted, we’ll use a default set of plugins.\n */\nexport const getDictionary = <\n T extends Dictionary,\n L extends Locales | `${Locales}` = Locales,\n>(\n dictionary: T,\n locale?: L,\n plugins?: Plugins[]\n) => {\n const props: NodeProps = {\n dictionaryKey: dictionary.key,\n dictionaryPath: dictionary.filePath,\n keyPath: [],\n plugins,\n };\n\n // @ts-ignore\n return getContent(\n dictionary.content,\n props,\n locale\n ) as any as DeepTransformContent<T['content']>;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAA2B;AAWpB,MAAM,gBAAgB,CAI3B,YACA,QACA,YACG;AACH,QAAM,QAAmB;AAAA,IACvB,eAAe,WAAW;AAAA,IAC1B,gBAAgB,WAAW;AAAA,IAC3B,SAAS,CAAC;AAAA,IACV;AAAA,EACF;AAGA,aAAO;AAAA,IACL,WAAW;AAAA,IACX;AAAA,IACA;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/interpreter/getDictionary.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { Locales, LocalesValues } from '@intlayer/config/client';\nimport type { Dictionary } from '../types';\nimport { getContent } from './getContent/getContent';\nimport type { Plugins, NodeProps, DeepTransformContent } from './getContent';\n\n/**\n * Transforms a dictionary in a single pass, applying each plugin as needed.\n *\n * @param dictionary The dictionary to transform.\n * @param locale The locale to use if your transformers need it (e.g. for translations).\n * @param additionalPlugins An array of NodeTransformer that define how to transform recognized nodes.\n * If omitted, we’ll use a default set of plugins.\n */\nexport const getDictionary = <\n T extends Dictionary,\n L extends LocalesValues = Locales,\n>(\n dictionary: T,\n locale?: L,\n plugins?: Plugins[]\n) => {\n const props: NodeProps = {\n dictionaryKey: dictionary.key,\n dictionaryPath: dictionary.filePath,\n keyPath: [],\n plugins,\n };\n\n // @ts-ignore Type instantiation is excessively deep and possibly infinite\n return getContent(\n dictionary.content,\n props,\n locale\n ) as any as DeepTransformContent<T['content']>;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAA2B;AAWpB,MAAM,gBAAgB,CAI3B,YACA,QACA,YACG;AACH,QAAM,QAAmB;AAAA,IACvB,eAAe,WAAW;AAAA,IAC1B,gBAAgB,WAAW;AAAA,IAC3B,SAAS,CAAC;AAAA,IACV;AAAA,EACF;AAGA,aAAO;AAAA,IACL,WAAW;AAAA,IACX;AAAA,IACA;AAAA,EACF;AACF;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/interpreter/getIntlayer.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { Locales } from '@intlayer/config';\n/**\n * @intlayer/dictionaries-entry is a package that only returns the dictionary entry path.\n * Using an external package allow to alias it in the bundle configuration (such as webpack).\n * The alias allow hot reload the app (such as nextjs) on any dictionary change.\n */\nimport dictionaries from '@intlayer/dictionaries-entry';\nimport type { Dictionary, DictionaryKeys } from '../types';\nimport { getDictionary } from './getDictionary';\n// @ts-ignore intlayer declared for module augmentation\nimport { IntlayerDictionaryTypesConnector } from 'intlayer';\nimport type { DeepTransformContent, Plugins } from './getContent/plugins';\n\nexport const getIntlayer = <\n T extends DictionaryKeys,\n L extends Locales | `${Locales}`,\n>(\n key: T,\n locale?: L,\n plugins?: Plugins[]\n) => {\n const dictionary = dictionaries[key as T];\n\n if (!dictionary) {\n throw new Error(`Dictionary ${key as string} not found`, dictionaries);\n }\n\n return getDictionary(\n dictionary as unknown as Dictionary,\n locale,\n plugins\n ) as any as DeepTransformContent<\n IntlayerDictionaryTypesConnector[T]['content']\n >;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,gCAAyB;AAEzB,2BAA8B;AAKvB,MAAM,cAAc,CAIzB,KACA,QACA,YACG;AACH,QAAM,aAAa,0BAAAA,QAAa,GAAQ;AAExC,MAAI,CAAC,YAAY;AACf,UAAM,IAAI,MAAM,cAAc,GAAa,cAAc,0BAAAA,OAAY;AAAA,EACvE;AAEA,aAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAGF;","names":["dictionaries"]}
1
+ {"version":3,"sources":["../../../src/interpreter/getIntlayer.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/import/no-cycle */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { LocalesValues } from '@intlayer/config';\n/**\n * @intlayer/dictionaries-entry is a package that only returns the dictionary entry path.\n * Using an external package allow to alias it in the bundle configuration (such as webpack).\n * The alias allow hot reload the app (such as nextjs) on any dictionary change.\n */\nimport dictionaries from '@intlayer/dictionaries-entry';\nimport type { Dictionary, DictionaryKeys } from '../types';\nimport { getDictionary } from './getDictionary';\n// @ts-ignore intlayer declared for module augmentation\nimport { IntlayerDictionaryTypesConnector } from 'intlayer';\nimport type { DeepTransformContent, Plugins } from './getContent/plugins';\n\nexport const getIntlayer = <T extends DictionaryKeys, L extends LocalesValues>(\n key: T,\n locale?: L,\n plugins?: Plugins[]\n) => {\n const dictionary = dictionaries[key as T];\n\n if (!dictionary) {\n throw new Error(`Dictionary ${key as string} not found`, dictionaries);\n }\n\n return getDictionary(\n dictionary as Dictionary,\n locale,\n plugins\n ) as any as DeepTransformContent<\n IntlayerDictionaryTypesConnector[T]['content']\n >;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,gCAAyB;AAEzB,2BAA8B;AAKvB,MAAM,cAAc,CACzB,KACA,QACA,YACG;AACH,QAAM,aAAa,0BAAAA,QAAa,GAAQ;AAExC,MAAI,CAAC,YAAY;AACf,UAAM,IAAI,MAAM,cAAc,GAAa,cAAc,0BAAAA,OAAY;AAAA,EACvE;AAEA,aAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAGF;","names":["dictionaries"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/interpreter/getIntlayerAsync.ts"],"sourcesContent":["import { fetchDistantDictionary } from '@intlayer/api';\nimport type { Locales } from '@intlayer/config/client';\nimport { getDictionary } from './getDictionary';\nimport type { DictionaryKeys } from '../types';\nimport type { Plugins } from './getContent';\n\n/**\n * On the client side, Hook that picking one dictionary by its key and return the content\n *\n * This hook will prerender the locale dictionary and fetch simultaneously the distant dictionaries to hydrate it.\n *\n *\n * If the locale is not provided, it will use the locale from the client context\n */\nexport const getIntlayerAsync = async <\n T extends DictionaryKeys,\n L extends Locales | `${Locales}`,\n>(\n key: T,\n locale?: L,\n plugins?: Plugins[]\n) => {\n const jsonDistantDictionary = await fetchDistantDictionary(key as string);\n\n if (jsonDistantDictionary) {\n return getDictionary(jsonDistantDictionary, locale, plugins);\n }\n\n return null;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAuC;AAEvC,2BAA8B;AAYvB,MAAM,mBAAmB,OAI9B,KACA,QACA,YACG;AACH,QAAM,wBAAwB,UAAM,mCAAuB,GAAa;AAExE,MAAI,uBAAuB;AACzB,eAAO,oCAAc,uBAAuB,QAAQ,OAAO;AAAA,EAC7D;AAEA,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../../src/interpreter/getIntlayerAsync.ts"],"sourcesContent":["import { fetchDistantDictionary } from '@intlayer/api';\nimport type { LocalesValues } from '@intlayer/config/client';\nimport { getDictionary } from './getDictionary';\nimport type { DictionaryKeys } from '../types';\nimport type { Plugins } from './getContent';\n\n/**\n * On the client side, Hook that picking one dictionary by its key and return the content\n *\n * This hook will prerender the locale dictionary and fetch simultaneously the distant dictionaries to hydrate it.\n *\n *\n * If the locale is not provided, it will use the locale from the client context\n */\nexport const getIntlayerAsync = async <\n T extends DictionaryKeys,\n L extends LocalesValues,\n>(\n key: T,\n locale?: L,\n plugins?: Plugins[]\n) => {\n const jsonDistantDictionary = await fetchDistantDictionary(key as string);\n\n if (jsonDistantDictionary) {\n return getDictionary(jsonDistantDictionary, locale, plugins);\n }\n\n return null;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAuC;AAEvC,2BAA8B;AAYvB,MAAM,mBAAmB,OAI9B,KACA,QACA,YACG;AACH,QAAM,wBAAwB,UAAM,mCAAuB,GAAa;AAExE,MAAI,uBAAuB;AACzB,eAAO,oCAAc,uBAAuB,QAAQ,OAAO;AAAA,EAC7D;AAEA,SAAO;AACT;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/interpreter/getNesting.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { ValidDotPathsFor } from '../transpiler';\nimport type { DictionaryKeys } from '../types';\nimport type {\n DeepTransformContent,\n IInterpreterPluginState,\n NodeProps,\n} from './getContent';\nimport { getIntlayer } from './getIntlayer';\n// @ts-ignore intlayer declared for module augmentation\nimport { IntlayerDictionaryTypesConnector } from 'intlayer';\n\ntype GetSubPath<T, P> = P extends `${infer K}.${infer Rest}`\n ? K extends keyof T\n ? GetSubPath<T[K], Rest>\n : never\n : P extends keyof T\n ? T[P]\n : T;\n\nexport type GetNestingResult<\n K extends DictionaryKeys,\n P = undefined,\n S = IInterpreterPluginState,\n> = GetSubPath<\n DeepTransformContent<IntlayerDictionaryTypesConnector[K]['content'], S>,\n P\n>;\n\n/**\n * Allow to extract the content of another dictionary.\n *\n * Usage:\n * ```ts\n * const content = getNesting(\"dictionaryKey\", \"path.to.content\");\n * // 'Example content'\n * ```\n */\nexport const getNesting = <K extends DictionaryKeys, P>(\n dictionaryKey: K,\n path?: P extends ValidDotPathsFor<K> ? P : never,\n props?: NodeProps\n): GetNestingResult<K, P> => {\n const dictionary = getIntlayer(dictionaryKey, props?.locale, props?.plugins);\n\n if (typeof path === 'string') {\n const pathArray = (path as string).split('.');\n let current: any = dictionary;\n\n for (const key of pathArray) {\n // Safely traverse down the object using the path\n current = current?.[key];\n // If we cannot find the path, return the whole dictionary as a fallback\n if (current === undefined) {\n return dictionary as any;\n }\n }\n\n return current;\n }\n\n // Default or error handling if path is not a string or otherwise undefined\n return dictionary as any;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,yBAA4B;AA8BrB,MAAM,aAAa,CACxB,eACA,MACA,UAC2B;AAC3B,QAAM,iBAAa,gCAAY,eAAe,OAAO,QAAQ,OAAO,OAAO;AAE3E,MAAI,OAAO,SAAS,UAAU;AAC5B,UAAM,YAAa,KAAgB,MAAM,GAAG;AAC5C,QAAI,UAAe;AAEnB,eAAW,OAAO,WAAW;AAE3B,gBAAU,UAAU,GAAG;AAEvB,UAAI,YAAY,QAAW;AACzB,eAAO;AAAA,MACT;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAGA,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../../src/interpreter/getNesting.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/import/no-cycle */\nimport type { ValidDotPathsFor } from '../transpiler';\nimport type { DictionaryKeys } from '../types';\nimport type {\n DeepTransformContent,\n IInterpreterPluginState,\n NodeProps,\n} from './getContent';\nimport { getIntlayer } from './getIntlayer';\n// @ts-ignore intlayer declared for module augmentation\nimport { IntlayerDictionaryTypesConnector } from 'intlayer';\n\ntype GetSubPath<T, P> = P extends `${infer K}.${infer Rest}`\n ? K extends keyof T\n ? GetSubPath<T[K], Rest>\n : never\n : P extends keyof T\n ? T[P]\n : T;\n\nexport type GetNestingResult<\n K extends DictionaryKeys,\n P = undefined,\n S = IInterpreterPluginState,\n> = GetSubPath<\n DeepTransformContent<IntlayerDictionaryTypesConnector[K]['content'], S>,\n P\n>;\n\n/**\n * Allow to extract the content of another dictionary.\n *\n * Usage:\n * ```ts\n * const content = getNesting(\"dictionaryKey\", \"path.to.content\");\n * // 'Example content'\n * ```\n */\nexport const getNesting = <K extends DictionaryKeys, P>(\n dictionaryKey: K,\n path?: P extends ValidDotPathsFor<K> ? P : never,\n props?: NodeProps\n): GetNestingResult<K, P> => {\n const dictionary = getIntlayer(dictionaryKey, props?.locale, props?.plugins);\n\n if (typeof path === 'string') {\n const pathArray = (path as string).split('.');\n let current: any = dictionary;\n\n for (const key of pathArray) {\n // Safely traverse down the object using the path\n current = current?.[key];\n // If we cannot find the path, return the whole dictionary as a fallback\n if (current === undefined) {\n return dictionary as any;\n }\n }\n\n return current;\n }\n\n // Default or error handling if path is not a string or otherwise undefined\n return dictionary as any;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,yBAA4B;AA8BrB,MAAM,aAAa,CACxB,eACA,MACA,UAC2B;AAC3B,QAAM,iBAAa,gCAAY,eAAe,OAAO,QAAQ,OAAO,OAAO;AAE3E,MAAI,OAAO,SAAS,UAAU;AAC5B,UAAM,YAAa,KAAgB,MAAM,GAAG;AAC5C,QAAI,UAAe;AAEnB,eAAW,OAAO,WAAW;AAE3B,gBAAU,UAAU,GAAG;AAEvB,UAAI,YAAY,QAAW;AACzB,eAAO;AAAA,MACT;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAGA,SAAO;AACT;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/interpreter/getTranslation.ts"],"sourcesContent":["import { type Locales, getConfiguration } from '@intlayer/config/client';\nimport type { LanguageContent } from '../transpiler/translation/types';\n\n/**\n *\n * Allow to pick a content based on a locale.\n * If not locale found, it will return the content related to the default locale.\n *\n * Return either the content editor, or the content itself depending on the configuration.\n *\n * Usage:\n *\n * ```ts\n * const content = getTranslation<string>({\n * en: 'Hello',\n * fr: 'Bonjour',\n * }, 'fr');\n * // 'Bonjour'\n * ```\n *\n * Using TypeScript:\n * - this function will require each locale to be defined if defined in the project configuration.\n * - If a locale is missing, it will make each existing locale optional and raise an error if the locale is not found.\n */\nexport const getTranslation = <Content = string>(\n languageContent: LanguageContent<Content>,\n locale?: Locales | `${Locales}`\n): Content => {\n const { defaultLocale } = getConfiguration().internationalization;\n\n const result =\n languageContent[\n (locale ?? defaultLocale) as unknown as keyof typeof languageContent\n ] ??\n (languageContent[\n defaultLocale as unknown as keyof typeof languageContent\n ] as Content);\n\n return result;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA+C;AAwBxC,MAAM,iBAAiB,CAC5B,iBACA,WACY;AACZ,QAAM,EAAE,cAAc,QAAI,gCAAiB,EAAE;AAE7C,QAAM,SACJ,gBACG,UAAU,aACb,KACC,gBACC,aACF;AAEF,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../../src/interpreter/getTranslation.ts"],"sourcesContent":["import { type LocalesValues, getConfiguration } from '@intlayer/config/client';\nimport type { LanguageContent } from '../transpiler/translation/types';\n\n/**\n *\n * Allow to pick a content based on a locale.\n * If not locale found, it will return the content related to the default locale.\n *\n * Return either the content editor, or the content itself depending on the configuration.\n *\n * Usage:\n *\n * ```ts\n * const content = getTranslation<string>({\n * en: 'Hello',\n * fr: 'Bonjour',\n * }, 'fr');\n * // 'Bonjour'\n * ```\n *\n * Using TypeScript:\n * - this function will require each locale to be defined if defined in the project configuration.\n * - If a locale is missing, it will make each existing locale optional and raise an error if the locale is not found.\n */\nexport const getTranslation = <Content = string>(\n languageContent: LanguageContent<Content>,\n locale?: LocalesValues\n): Content => {\n const { defaultLocale } = getConfiguration().internationalization;\n\n const result =\n languageContent[\n (locale ?? defaultLocale) as unknown as keyof typeof languageContent\n ] ??\n (languageContent[\n defaultLocale as unknown as keyof typeof languageContent\n ] as Content);\n\n return result;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAqD;AAwB9C,MAAM,iBAAiB,CAC5B,iBACA,WACY;AACZ,QAAM,EAAE,cAAc,QAAI,gCAAiB,EAAE;AAE7C,QAAM,SACJ,gBACG,UAAU,aACb,KACC,gBACC,aACF;AAEF,SAAO;AACT;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/localization/getHTMLTextDir.ts"],"sourcesContent":["import { Locales } from '@intlayer/config/client';\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?: Locales | `${Locales}`): Dir => {\n switch (locale) {\n case Locales.ENGLISH:\n case Locales.FRENCH:\n case Locales.SPANISH:\n case Locales.PORTUGUESE:\n case Locales.GERMAN:\n case Locales.AFRIKAANS:\n case Locales.AZERI_LATIN:\n case Locales.BELARUSIAN:\n case Locales.BULGARIAN:\n case Locales.BOSNIAN:\n case Locales.CATALAN:\n case Locales.CZECH:\n case Locales.WELSH:\n case Locales.DANISH:\n case Locales.ESPERANTO:\n case Locales.ESTONIAN:\n case Locales.BASQUE:\n case Locales.FINNISH:\n case Locales.FAROESE:\n case Locales.GALICIAN:\n case Locales.GREEK:\n case Locales.CROATIAN:\n case Locales.HUNGARIAN:\n case Locales.ARMENIAN:\n case Locales.INDONESIAN:\n case Locales.ICELANDIC:\n case Locales.ITALIAN:\n case Locales.JAPANESE:\n case Locales.GEORGIAN:\n case Locales.KAZAKH:\n case Locales.KANNADA:\n case Locales.KOREAN:\n case Locales.KONKANI:\n case Locales.KYRGYZ:\n case Locales.LITHUANIAN:\n case Locales.LATVIAN:\n case Locales.MAORI:\n case Locales.FYRO_MACEDONIAN:\n case Locales.MONGOLIAN:\n case Locales.MARATHI:\n case Locales.MALAY:\n case Locales.MALTESE:\n case Locales.NORWEGIAN_BOKMAL:\n case Locales.DUTCH:\n case Locales.NORTHERN_SOTHO:\n case Locales.PUNJABI:\n case Locales.POLISH:\n case Locales.QUECHUA:\n case Locales.ROMANIAN:\n case Locales.RUSSIAN:\n case Locales.SANSKRIT:\n case Locales.SAMI_NORTHERN:\n case Locales.SLOVAK:\n case Locales.SLOVENIAN:\n case Locales.ALBANIAN:\n case Locales.SERBIAN_LATIN:\n case Locales.SWEDISH:\n case Locales.SWAHILI:\n case Locales.TAMIL:\n case Locales.TELUGU:\n case Locales.THAI:\n case Locales.TAGALOG:\n case Locales.TSWANA:\n case Locales.TURKISH:\n case Locales.UKRAINIAN:\n case Locales.UZBEK_LATIN:\n case Locales.VIETNAMESE:\n case Locales.XHOSA:\n case Locales.CHINESE_SIMPLIFIED:\n case Locales.CHINESE_TRADITIONAL:\n case Locales.ZULU:\n case Locales.AFRIKAANS_SOUTH_AFRICA:\n case Locales.AZERI_LATIN_AZERBAIJAN:\n case Locales.BELARUSIAN_BELARUS:\n case Locales.BULGARIAN_BULGARIA:\n case Locales.BOSNIAN_BOSNIA_AND_HERZEGOVINA:\n case Locales.CATALAN_SPAIN:\n case Locales.CZECH_CZECH_REPUBLIC:\n case Locales.WELSH_UNITED_KINGDOM:\n case Locales.DANISH_DENMARK:\n case Locales.GERMAN_AUSTRIA:\n case Locales.GERMAN_SWITZERLAND:\n case Locales.GERMAN_GERMANY:\n case Locales.GERMAN_LIECHTENSTEIN:\n case Locales.GERMAN_LUXEMBOURG:\n case Locales.GREEK_GREECE:\n case Locales.ENGLISH_AUSTRALIA:\n case Locales.ENGLISH_BELIZE:\n case Locales.ENGLISH_CANADA:\n case Locales.ENGLISH_CARIBBEAN:\n case Locales.ENGLISH_UNITED_KINGDOM:\n case Locales.ENGLISH_IRELAND:\n case Locales.ENGLISH_JAMAICA:\n case Locales.ENGLISH_NEW_ZEALAND:\n case Locales.ENGLISH_PHILIPPINES:\n case Locales.ENGLISH_TRINIDAD_AND_TOBAGO:\n case Locales.ENGLISH_UNITED_STATES:\n case Locales.ENGLISH_SOUTH_AFRICA:\n case Locales.ENGLISH_ZIMBABWE:\n case Locales.SPANISH_ARGENTINA:\n case Locales.SPANISH_BOLIVIA:\n case Locales.SPANISH_CHILE:\n case Locales.SPANISH_COLOMBIA:\n case Locales.SPANISH_COSTA_RICA:\n case Locales.SPANISH_DOMINICAN_REPUBLIC:\n case Locales.SPANISH_ECUADOR:\n case Locales.SPANISH_SPAIN:\n case Locales.SPANISH_GUATEMALA:\n case Locales.SPANISH_HONDURAS:\n case Locales.SPANISH_MEXICO:\n case Locales.SPANISH_NICARAGUA:\n case Locales.SPANISH_PANAMA:\n case Locales.SPANISH_PERU:\n case Locales.SPANISH_PUERTO_RICO:\n case Locales.SPANISH_PARAGUAY:\n case Locales.SPANISH_EL_SALVADOR:\n case Locales.SPANISH_URUGUAY:\n case Locales.SPANISH_VENEZUELA:\n case Locales.ESTONIAN_ESTONIA:\n case Locales.BASQUE_SPAIN:\n case Locales.FINNISH_FINLAND:\n case Locales.FAROESE_FAROE_ISLANDS:\n case Locales.FRENCH_BELGIUM:\n case Locales.FRENCH_CANADA:\n case Locales.FRENCH_SWITZERLAND:\n case Locales.FRENCH_FRANCE:\n case Locales.FRENCH_LUXEMBOURG:\n case Locales.FRENCH_PRINCIPALITY_OF_MONACO:\n case Locales.GALICIAN_SPAIN:\n case Locales.GUJARATI_INDIA:\n case Locales.HEBREW_ISRAEL:\n case Locales.HINDI_INDIA:\n case Locales.CROATIAN_BOSNIA_AND_HERZEGOVINA:\n case Locales.CROATIAN_CROATIA:\n case Locales.HUNGARIAN_HUNGARY:\n case Locales.ARMENIAN_ARMENIA:\n case Locales.INDONESIAN_INDONESIA:\n case Locales.ICELANDIC_ICELAND:\n case Locales.ITALIAN_SWITZERLAND:\n case Locales.ITALIAN_ITALY:\n case Locales.JAPANESE_JAPAN:\n case Locales.GEORGIAN_GEORGIA:\n case Locales.KAZAKH_KAZAKHSTAN:\n case Locales.KANNADA_INDIA:\n case Locales.KOREAN_KOREA:\n case Locales.KONKANI_INDIA:\n case Locales.KYRGYZ_KYRGYZSTAN:\n case Locales.LITHUANIAN_LITHUANIA:\n case Locales.LATVIAN_LATVIA:\n case Locales.MAORI_NEW_ZEALAND:\n case Locales.FYRO_MACEDONIAN_MACEDONIA:\n case Locales.MONGOLIAN_MONGOLIA:\n case Locales.MARATHI_INDIA:\n case Locales.MALAY_BRUNEI_DARUSSALAM:\n case Locales.MALAY_MALAYSIA:\n case Locales.MALTESE_MALTA:\n case Locales.NORWEGIAN_BOKMAL_NORWAY:\n case Locales.DUTCH_BELGIUM:\n case Locales.DUTCH_NETHERLANDS:\n case Locales.NORWEGIAN_NYNORSK_NORWAY:\n case Locales.NORTHERN_SOTHO_SOUTH_AFRICA:\n case Locales.PUNJABI_INDIA:\n case Locales.POLISH_POLAND:\n case Locales.PORTUGUESE_BRAZIL:\n case Locales.PORTUGUESE_PORTUGAL:\n case Locales.QUECHUA_BOLIVIA:\n case Locales.QUECHUA_ECUADOR:\n case Locales.QUECHUA_PERU:\n case Locales.ROMANIAN_ROMANIA:\n case Locales.RUSSIAN_RUSSIA:\n case Locales.SANSKRIT_INDIA:\n case Locales.SAMI_NORTHERN_FINLAND:\n case Locales.SAMI_NORTHERN_NORWAY:\n case Locales.SAMI_NORTHERN_SWEDEN:\n case Locales.SLOVAK_SLOVAKIA:\n case Locales.SLOVENIAN_SLOVENIA:\n case Locales.ALBANIAN_ALBANIA:\n case Locales.SERBIAN_LATIN_BOSNIA_AND_HERZEGOVINA:\n case Locales.SERBIAN_LATIN_SERBIA_AND_MONTENEGRO:\n case Locales.SWAHILI_KENYA:\n case Locales.TAMIL_INDIA:\n case Locales.TELUGU_INDIA:\n case Locales.THAI_THAILAND:\n case Locales.TAGALOG_PHILIPPINES:\n case Locales.TSWANA_SOUTH_AFRICA:\n case Locales.TURKISH_TURKEY:\n case Locales.TATAR_RUSSIA:\n case Locales.TSOGA:\n case Locales.UKRAINIAN_UKRAINE:\n case Locales.UZBEK_LATIN_UZBEKISTAN:\n case Locales.VIETNAMESE_VIET_NAM:\n case Locales.XHOSA_SOUTH_AFRICA:\n case Locales.CHINESE_HONG_KONG:\n case Locales.CHINESE_MACAU:\n case Locales.CHINESE_SINGAPORE:\n case Locales.ZULU_SOUTH_AFRICA:\n return 'ltr';\n\n case Locales.ARABIC:\n case Locales.FARSI:\n case Locales.URDU:\n case Locales.PASHTO:\n case Locales.SYRIAC:\n case Locales.ARABIC_UNITED_ARAB_EMIRATES:\n case Locales.ARABIC_BAHRAIN:\n case Locales.ARABIC_ALGERIA:\n case Locales.ARABIC_EGYPT:\n case Locales.ARABIC_IRAQ:\n case Locales.ARABIC_JORDAN:\n case Locales.ARABIC_KUWAIT:\n case Locales.ARABIC_LEBANON:\n case Locales.ARABIC_LIBYA:\n case Locales.ARABIC_MOROCCO:\n case Locales.ARABIC_OMAN:\n case Locales.ARABIC_QATAR:\n case Locales.ARABIC_SAUDI_ARABIA:\n case Locales.ARABIC_SYRIA:\n case Locales.ARABIC_TUNISIA:\n case Locales.ARABIC_YEMEN:\n case Locales.FARSI_IRAN:\n case Locales.URDU_ISLAMIC_REPUBLIC_OF_PAKISTAN:\n case Locales.PASHTO_AFGHANISTAN:\n case Locales.SYRIAC_SYRIA:\n return 'rtl';\n\n default:\n return 'auto';\n }\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAwB;AAiBjB,MAAM,iBAAiB,CAAC,WAAyC;AACtE,UAAQ,QAAQ;AAAA,IACd,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AACX,aAAO;AAAA,IAET,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AACX,aAAO;AAAA,IAET;AACE,aAAO;AAAA,EACX;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/localization/getHTMLTextDir.ts"],"sourcesContent":["import { Locales, type LocalesValues } from '@intlayer/config/client';\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 switch (locale) {\n case Locales.ENGLISH:\n case Locales.FRENCH:\n case Locales.SPANISH:\n case Locales.PORTUGUESE:\n case Locales.GERMAN:\n case Locales.AFRIKAANS:\n case Locales.AZERI_LATIN:\n case Locales.BELARUSIAN:\n case Locales.BULGARIAN:\n case Locales.BOSNIAN:\n case Locales.CATALAN:\n case Locales.CZECH:\n case Locales.WELSH:\n case Locales.DANISH:\n case Locales.ESPERANTO:\n case Locales.ESTONIAN:\n case Locales.BASQUE:\n case Locales.FINNISH:\n case Locales.FAROESE:\n case Locales.GALICIAN:\n case Locales.GREEK:\n case Locales.CROATIAN:\n case Locales.HUNGARIAN:\n case Locales.ARMENIAN:\n case Locales.INDONESIAN:\n case Locales.ICELANDIC:\n case Locales.ITALIAN:\n case Locales.JAPANESE:\n case Locales.GEORGIAN:\n case Locales.KAZAKH:\n case Locales.KANNADA:\n case Locales.KOREAN:\n case Locales.KONKANI:\n case Locales.KYRGYZ:\n case Locales.LITHUANIAN:\n case Locales.LATVIAN:\n case Locales.MAORI:\n case Locales.FYRO_MACEDONIAN:\n case Locales.MONGOLIAN:\n case Locales.MARATHI:\n case Locales.MALAY:\n case Locales.MALTESE:\n case Locales.NORWEGIAN_BOKMAL:\n case Locales.DUTCH:\n case Locales.NORTHERN_SOTHO:\n case Locales.PUNJABI:\n case Locales.POLISH:\n case Locales.QUECHUA:\n case Locales.ROMANIAN:\n case Locales.RUSSIAN:\n case Locales.SANSKRIT:\n case Locales.SAMI_NORTHERN:\n case Locales.SLOVAK:\n case Locales.SLOVENIAN:\n case Locales.ALBANIAN:\n case Locales.SERBIAN_LATIN:\n case Locales.SWEDISH:\n case Locales.SWAHILI:\n case Locales.TAMIL:\n case Locales.TELUGU:\n case Locales.THAI:\n case Locales.TAGALOG:\n case Locales.TSWANA:\n case Locales.TURKISH:\n case Locales.UKRAINIAN:\n case Locales.UZBEK_LATIN:\n case Locales.VIETNAMESE:\n case Locales.XHOSA:\n case Locales.CHINESE_SIMPLIFIED:\n case Locales.CHINESE_TRADITIONAL:\n case Locales.ZULU:\n case Locales.AFRIKAANS_SOUTH_AFRICA:\n case Locales.AZERI_LATIN_AZERBAIJAN:\n case Locales.BELARUSIAN_BELARUS:\n case Locales.BULGARIAN_BULGARIA:\n case Locales.BOSNIAN_BOSNIA_AND_HERZEGOVINA:\n case Locales.CATALAN_SPAIN:\n case Locales.CZECH_CZECH_REPUBLIC:\n case Locales.WELSH_UNITED_KINGDOM:\n case Locales.DANISH_DENMARK:\n case Locales.GERMAN_AUSTRIA:\n case Locales.GERMAN_SWITZERLAND:\n case Locales.GERMAN_GERMANY:\n case Locales.GERMAN_LIECHTENSTEIN:\n case Locales.GERMAN_LUXEMBOURG:\n case Locales.GREEK_GREECE:\n case Locales.ENGLISH_AUSTRALIA:\n case Locales.ENGLISH_BELIZE:\n case Locales.ENGLISH_CANADA:\n case Locales.ENGLISH_CARIBBEAN:\n case Locales.ENGLISH_UNITED_KINGDOM:\n case Locales.ENGLISH_IRELAND:\n case Locales.ENGLISH_JAMAICA:\n case Locales.ENGLISH_NEW_ZEALAND:\n case Locales.ENGLISH_PHILIPPINES:\n case Locales.ENGLISH_TRINIDAD_AND_TOBAGO:\n case Locales.ENGLISH_UNITED_STATES:\n case Locales.ENGLISH_SOUTH_AFRICA:\n case Locales.ENGLISH_ZIMBABWE:\n case Locales.SPANISH_ARGENTINA:\n case Locales.SPANISH_BOLIVIA:\n case Locales.SPANISH_CHILE:\n case Locales.SPANISH_COLOMBIA:\n case Locales.SPANISH_COSTA_RICA:\n case Locales.SPANISH_DOMINICAN_REPUBLIC:\n case Locales.SPANISH_ECUADOR:\n case Locales.SPANISH_SPAIN:\n case Locales.SPANISH_GUATEMALA:\n case Locales.SPANISH_HONDURAS:\n case Locales.SPANISH_MEXICO:\n case Locales.SPANISH_NICARAGUA:\n case Locales.SPANISH_PANAMA:\n case Locales.SPANISH_PERU:\n case Locales.SPANISH_PUERTO_RICO:\n case Locales.SPANISH_PARAGUAY:\n case Locales.SPANISH_EL_SALVADOR:\n case Locales.SPANISH_URUGUAY:\n case Locales.SPANISH_VENEZUELA:\n case Locales.ESTONIAN_ESTONIA:\n case Locales.BASQUE_SPAIN:\n case Locales.FINNISH_FINLAND:\n case Locales.FAROESE_FAROE_ISLANDS:\n case Locales.FRENCH_BELGIUM:\n case Locales.FRENCH_CANADA:\n case Locales.FRENCH_SWITZERLAND:\n case Locales.FRENCH_FRANCE:\n case Locales.FRENCH_LUXEMBOURG:\n case Locales.FRENCH_PRINCIPALITY_OF_MONACO:\n case Locales.GALICIAN_SPAIN:\n case Locales.GUJARATI_INDIA:\n case Locales.HEBREW_ISRAEL:\n case Locales.HINDI_INDIA:\n case Locales.CROATIAN_BOSNIA_AND_HERZEGOVINA:\n case Locales.CROATIAN_CROATIA:\n case Locales.HUNGARIAN_HUNGARY:\n case Locales.ARMENIAN_ARMENIA:\n case Locales.INDONESIAN_INDONESIA:\n case Locales.ICELANDIC_ICELAND:\n case Locales.ITALIAN_SWITZERLAND:\n case Locales.ITALIAN_ITALY:\n case Locales.JAPANESE_JAPAN:\n case Locales.GEORGIAN_GEORGIA:\n case Locales.KAZAKH_KAZAKHSTAN:\n case Locales.KANNADA_INDIA:\n case Locales.KOREAN_KOREA:\n case Locales.KONKANI_INDIA:\n case Locales.KYRGYZ_KYRGYZSTAN:\n case Locales.LITHUANIAN_LITHUANIA:\n case Locales.LATVIAN_LATVIA:\n case Locales.MAORI_NEW_ZEALAND:\n case Locales.FYRO_MACEDONIAN_MACEDONIA:\n case Locales.MONGOLIAN_MONGOLIA:\n case Locales.MARATHI_INDIA:\n case Locales.MALAY_BRUNEI_DARUSSALAM:\n case Locales.MALAY_MALAYSIA:\n case Locales.MALTESE_MALTA:\n case Locales.NORWEGIAN_BOKMAL_NORWAY:\n case Locales.DUTCH_BELGIUM:\n case Locales.DUTCH_NETHERLANDS:\n case Locales.NORWEGIAN_NYNORSK_NORWAY:\n case Locales.NORTHERN_SOTHO_SOUTH_AFRICA:\n case Locales.PUNJABI_INDIA:\n case Locales.POLISH_POLAND:\n case Locales.PORTUGUESE_BRAZIL:\n case Locales.PORTUGUESE_PORTUGAL:\n case Locales.QUECHUA_BOLIVIA:\n case Locales.QUECHUA_ECUADOR:\n case Locales.QUECHUA_PERU:\n case Locales.ROMANIAN_ROMANIA:\n case Locales.RUSSIAN_RUSSIA:\n case Locales.SANSKRIT_INDIA:\n case Locales.SAMI_NORTHERN_FINLAND:\n case Locales.SAMI_NORTHERN_NORWAY:\n case Locales.SAMI_NORTHERN_SWEDEN:\n case Locales.SLOVAK_SLOVAKIA:\n case Locales.SLOVENIAN_SLOVENIA:\n case Locales.ALBANIAN_ALBANIA:\n case Locales.SERBIAN_LATIN_BOSNIA_AND_HERZEGOVINA:\n case Locales.SERBIAN_LATIN_SERBIA_AND_MONTENEGRO:\n case Locales.SWAHILI_KENYA:\n case Locales.TAMIL_INDIA:\n case Locales.TELUGU_INDIA:\n case Locales.THAI_THAILAND:\n case Locales.TAGALOG_PHILIPPINES:\n case Locales.TSWANA_SOUTH_AFRICA:\n case Locales.TURKISH_TURKEY:\n case Locales.TATAR_RUSSIA:\n case Locales.TSOGA:\n case Locales.UKRAINIAN_UKRAINE:\n case Locales.UZBEK_LATIN_UZBEKISTAN:\n case Locales.VIETNAMESE_VIET_NAM:\n case Locales.XHOSA_SOUTH_AFRICA:\n case Locales.CHINESE_HONG_KONG:\n case Locales.CHINESE_MACAU:\n case Locales.CHINESE_SINGAPORE:\n case Locales.ZULU_SOUTH_AFRICA:\n return 'ltr';\n\n case Locales.ARABIC:\n case Locales.FARSI:\n case Locales.URDU:\n case Locales.PASHTO:\n case Locales.SYRIAC:\n case Locales.ARABIC_UNITED_ARAB_EMIRATES:\n case Locales.ARABIC_BAHRAIN:\n case Locales.ARABIC_ALGERIA:\n case Locales.ARABIC_EGYPT:\n case Locales.ARABIC_IRAQ:\n case Locales.ARABIC_JORDAN:\n case Locales.ARABIC_KUWAIT:\n case Locales.ARABIC_LEBANON:\n case Locales.ARABIC_LIBYA:\n case Locales.ARABIC_MOROCCO:\n case Locales.ARABIC_OMAN:\n case Locales.ARABIC_QATAR:\n case Locales.ARABIC_SAUDI_ARABIA:\n case Locales.ARABIC_SYRIA:\n case Locales.ARABIC_TUNISIA:\n case Locales.ARABIC_YEMEN:\n case Locales.FARSI_IRAN:\n case Locales.URDU_ISLAMIC_REPUBLIC_OF_PAKISTAN:\n case Locales.PASHTO_AFGHANISTAN:\n case Locales.SYRIAC_SYRIA:\n return 'rtl';\n\n default:\n return 'auto';\n }\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA4C;AAiBrC,MAAM,iBAAiB,CAAC,WAAgC;AAC7D,UAAQ,QAAQ;AAAA,IACd,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AACX,aAAO;AAAA,IAET,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AAAA,IACb,KAAK,sBAAQ;AACX,aAAO;AAAA,IAET;AACE,aAAO;AAAA,EACX;AACF;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/localization/getLocaleLang.ts"],"sourcesContent":["import type { Locales } from '@intlayer/config/client';\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?: Locales | `${Locales}`): string =>\n locale?.split('-')[0] ?? '';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAeO,MAAM,gBAAgB,CAAC,WAC5B,QAAQ,MAAM,GAAG,EAAE,CAAC,KAAK;","names":[]}
1
+ {"version":3,"sources":["../../../src/localization/getLocaleLang.ts"],"sourcesContent":["import type { LocalesValues } from '@intlayer/config/client';\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":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAeO,MAAM,gBAAgB,CAAC,WAC5B,QAAQ,MAAM,GAAG,EAAE,CAAC,KAAK;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/localization/getLocaleName.ts"],"sourcesContent":["import { Locales } from '@intlayer/config/client';\nimport { arabicLocales } from './localeNames/ar';\nimport { germanLocales } from './localeNames/du';\nimport { englishLocales } from './localeNames/en';\nimport { spanishLocales } from './localeNames/es';\nimport { frenchLocales } from './localeNames/fr';\nimport { hindiLocales } from './localeNames/hi';\nimport { italianLocales } from './localeNames/it';\nimport { japaneseLocales } from './localeNames/ja';\nimport { koreanLocales } from './localeNames/ko';\nimport { ownLocalesName } from './localeNames/ownLocalesName';\nimport { portugueseLocales } from './localeNames/pt';\nimport { russianLocales } from './localeNames/ru';\nimport { chineseLocales } from './localeNames/zh';\n\nconst localeNameTranslations: Record<\n Locales,\n Record<Locales | `${Locales}`, string> | undefined\n> = {\n [Locales.ENGLISH]: englishLocales,\n [Locales.ENGLISH_AUSTRALIA]: englishLocales,\n [Locales.ENGLISH_BELIZE]: englishLocales,\n [Locales.ENGLISH_CANADA]: englishLocales,\n [Locales.ENGLISH_CARIBBEAN]: englishLocales,\n [Locales.ENGLISH_UNITED_KINGDOM]: englishLocales,\n [Locales.ENGLISH_IRELAND]: englishLocales,\n [Locales.ENGLISH_JAMAICA]: englishLocales,\n [Locales.ENGLISH_NEW_ZEALAND]: englishLocales,\n [Locales.ENGLISH_PHILIPPINES]: englishLocales,\n [Locales.ENGLISH_TRINIDAD_AND_TOBAGO]: englishLocales,\n [Locales.ENGLISH_UNITED_STATES]: englishLocales,\n [Locales.ENGLISH_SOUTH_AFRICA]: englishLocales,\n [Locales.ENGLISH_ZIMBABWE]: englishLocales,\n [Locales.FRENCH]: frenchLocales,\n [Locales.FRENCH_BELGIUM]: frenchLocales,\n [Locales.FRENCH_CANADA]: frenchLocales,\n [Locales.FRENCH_SWITZERLAND]: frenchLocales,\n [Locales.FRENCH_FRANCE]: frenchLocales,\n [Locales.FRENCH_LUXEMBOURG]: frenchLocales,\n [Locales.FRENCH_PRINCIPALITY_OF_MONACO]: frenchLocales,\n [Locales.SPANISH]: spanishLocales,\n [Locales.SPANISH_ARGENTINA]: spanishLocales,\n [Locales.SPANISH_BOLIVIA]: spanishLocales,\n [Locales.SPANISH_CHILE]: spanishLocales,\n [Locales.SPANISH_COLOMBIA]: spanishLocales,\n [Locales.SPANISH_COSTA_RICA]: spanishLocales,\n [Locales.SPANISH_DOMINICAN_REPUBLIC]: spanishLocales,\n [Locales.SPANISH_ECUADOR]: spanishLocales,\n [Locales.SPANISH_SPAIN]: spanishLocales,\n [Locales.SPANISH_GUATEMALA]: spanishLocales,\n [Locales.SPANISH_HONDURAS]: spanishLocales,\n [Locales.SPANISH_MEXICO]: spanishLocales,\n [Locales.SPANISH_NICARAGUA]: spanishLocales,\n [Locales.SPANISH_PANAMA]: spanishLocales,\n [Locales.SPANISH_PERU]: spanishLocales,\n [Locales.SPANISH_PUERTO_RICO]: spanishLocales,\n [Locales.SPANISH_PARAGUAY]: spanishLocales,\n [Locales.SPANISH_EL_SALVADOR]: spanishLocales,\n [Locales.SPANISH_URUGUAY]: spanishLocales,\n [Locales.SPANISH_VENEZUELA]: spanishLocales,\n [Locales.PORTUGUESE]: portugueseLocales,\n [Locales.PORTUGUESE_BRAZIL]: portugueseLocales,\n [Locales.PORTUGUESE_PORTUGAL]: portugueseLocales,\n [Locales.ITALIAN]: italianLocales,\n [Locales.ITALIAN_SWITZERLAND]: italianLocales,\n [Locales.ITALIAN_ITALY]: italianLocales,\n [Locales.GERMAN]: germanLocales,\n [Locales.GERMAN_AUSTRIA]: germanLocales,\n [Locales.GERMAN_SWITZERLAND]: germanLocales,\n [Locales.GERMAN_GERMANY]: germanLocales,\n [Locales.GERMAN_LIECHTENSTEIN]: germanLocales,\n [Locales.GERMAN_LUXEMBOURG]: germanLocales,\n [Locales.CHINESE]: chineseLocales,\n [Locales.CHINESE_HONG_KONG]: chineseLocales,\n [Locales.CHINESE_MACAU]: chineseLocales,\n [Locales.CHINESE_SINGAPORE]: chineseLocales,\n [Locales.CHINESE_SIMPLIFIED]: chineseLocales,\n [Locales.CHINESE_SIMPLIFIED_CHINA]: chineseLocales,\n [Locales.CHINESE_TRADITIONAL]: chineseLocales,\n [Locales.RUSSIAN]: russianLocales,\n [Locales.RUSSIAN_RUSSIA]: russianLocales,\n [Locales.ARABIC]: arabicLocales,\n [Locales.ARABIC_UNITED_ARAB_EMIRATES]: arabicLocales,\n [Locales.ARABIC_BAHRAIN]: arabicLocales,\n [Locales.ARABIC_ALGERIA]: arabicLocales,\n [Locales.ARABIC_EGYPT]: arabicLocales,\n [Locales.ARABIC_IRAQ]: arabicLocales,\n [Locales.ARABIC_JORDAN]: arabicLocales,\n [Locales.ARABIC_KUWAIT]: arabicLocales,\n [Locales.ARABIC_LEBANON]: arabicLocales,\n [Locales.ARABIC_LIBYA]: arabicLocales,\n [Locales.ARABIC_MOROCCO]: arabicLocales,\n [Locales.ARABIC_OMAN]: arabicLocales,\n [Locales.ARABIC_QATAR]: arabicLocales,\n [Locales.ARABIC_SAUDI_ARABIA]: arabicLocales,\n [Locales.ARABIC_SYRIA]: arabicLocales,\n [Locales.ARABIC_TUNISIA]: arabicLocales,\n [Locales.ARABIC_YEMEN]: arabicLocales,\n [Locales.JAPANESE]: japaneseLocales,\n [Locales.JAPANESE_JAPAN]: japaneseLocales,\n [Locales.KOREAN]: koreanLocales,\n [Locales.KOREAN_KOREA]: koreanLocales,\n [Locales.HINDI]: hindiLocales,\n\n [Locales.DUTCH_BELGIUM]: undefined,\n [Locales.DUTCH_NETHERLANDS]: undefined,\n [Locales.DIVEHI_MALDIVES]: undefined,\n [Locales.AFRIKAANS]: undefined,\n [Locales.AZERI_LATIN]: undefined,\n [Locales.BELARUSIAN]: undefined,\n [Locales.BULGARIAN]: undefined,\n [Locales.BOSNIAN]: undefined,\n [Locales.CATALAN]: undefined,\n [Locales.CZECH]: undefined,\n [Locales.WELSH]: undefined,\n [Locales.DANISH]: undefined,\n [Locales.DIVEHI]: undefined,\n [Locales.GREEK]: undefined,\n [Locales.ESPERANTO]: undefined,\n [Locales.ESTONIAN]: undefined,\n [Locales.BASQUE]: undefined,\n [Locales.FARSI]: undefined,\n [Locales.FINNISH]: undefined,\n [Locales.FAROESE]: undefined,\n [Locales.GALICIAN]: undefined,\n [Locales.GUJARATI]: undefined,\n [Locales.HEBREW]: undefined,\n [Locales.CROATIAN]: undefined,\n [Locales.HUNGARIAN]: undefined,\n [Locales.ARMENIAN]: undefined,\n [Locales.INDONESIAN]: undefined,\n [Locales.ICELANDIC]: undefined,\n [Locales.GEORGIAN]: undefined,\n [Locales.KAZAKH]: undefined,\n [Locales.KANNADA]: undefined,\n [Locales.KONKANI]: undefined,\n [Locales.KYRGYZ]: undefined,\n [Locales.LITHUANIAN]: undefined,\n [Locales.LATVIAN]: undefined,\n [Locales.MAORI]: undefined,\n [Locales.FYRO_MACEDONIAN]: undefined,\n [Locales.MONGOLIAN]: undefined,\n [Locales.MARATHI]: undefined,\n [Locales.MALAY]: undefined,\n [Locales.MALTESE]: undefined,\n [Locales.NORWEGIAN_BOKMAL]: undefined,\n [Locales.DUTCH]: undefined,\n [Locales.NORTHERN_SOTHO]: undefined,\n [Locales.PUNJABI]: undefined,\n [Locales.POLISH]: undefined,\n [Locales.PASHTO]: undefined,\n [Locales.QUECHUA]: undefined,\n [Locales.ROMANIAN]: undefined,\n [Locales.SANSKRIT]: undefined,\n [Locales.SAMI_NORTHERN]: undefined,\n [Locales.SLOVAK]: undefined,\n [Locales.SLOVENIAN]: undefined,\n [Locales.ALBANIAN]: undefined,\n [Locales.SERBIAN_LATIN]: undefined,\n [Locales.SWEDISH]: undefined,\n [Locales.SWEDISH_FINLAND]: undefined,\n [Locales.SWEDISH_SWEDEN]: undefined,\n [Locales.SWAHILI]: undefined,\n [Locales.SYRIAC]: undefined,\n [Locales.TAMIL]: undefined,\n [Locales.TELUGU]: undefined,\n [Locales.THAI]: undefined,\n [Locales.TAGALOG]: undefined,\n [Locales.TSWANA]: undefined,\n [Locales.TURKISH]: undefined,\n [Locales.TATAR]: undefined,\n [Locales.UKRAINIAN]: undefined,\n [Locales.URDU]: undefined,\n [Locales.UZBEK_LATIN]: undefined,\n [Locales.VIETNAMESE]: undefined,\n [Locales.XHOSA]: undefined,\n [Locales.ZULU]: undefined,\n [Locales.AFRIKAANS_SOUTH_AFRICA]: undefined,\n [Locales.AZERI_LATIN_AZERBAIJAN]: undefined,\n [Locales.BELARUSIAN_BELARUS]: undefined,\n [Locales.BULGARIAN_BULGARIA]: undefined,\n [Locales.BOSNIAN_BOSNIA_AND_HERZEGOVINA]: undefined,\n [Locales.CATALAN_SPAIN]: undefined,\n [Locales.CZECH_CZECH_REPUBLIC]: undefined,\n [Locales.WELSH_UNITED_KINGDOM]: undefined,\n [Locales.DANISH_DENMARK]: undefined,\n [Locales.GREEK_GREECE]: undefined,\n [Locales.ESTONIAN_ESTONIA]: undefined,\n [Locales.BASQUE_SPAIN]: undefined,\n [Locales.FARSI_IRAN]: undefined,\n [Locales.FINNISH_FINLAND]: undefined,\n [Locales.FAROESE_FAROE_ISLANDS]: undefined,\n [Locales.GALICIAN_SPAIN]: undefined,\n [Locales.GUJARATI_INDIA]: undefined,\n [Locales.HEBREW_ISRAEL]: undefined,\n [Locales.HINDI_INDIA]: undefined,\n [Locales.CROATIAN_BOSNIA_AND_HERZEGOVINA]: undefined,\n [Locales.CROATIAN_CROATIA]: undefined,\n [Locales.HUNGARIAN_HUNGARY]: undefined,\n [Locales.ARMENIAN_ARMENIA]: undefined,\n [Locales.INDONESIAN_INDONESIA]: undefined,\n [Locales.ICELANDIC_ICELAND]: undefined,\n [Locales.GEORGIAN_GEORGIA]: undefined,\n [Locales.KAZAKH_KAZAKHSTAN]: undefined,\n [Locales.KANNADA_INDIA]: undefined,\n [Locales.KONKANI_INDIA]: undefined,\n [Locales.KYRGYZ_KYRGYZSTAN]: undefined,\n [Locales.LITHUANIAN_LITHUANIA]: undefined,\n [Locales.LATVIAN_LATVIA]: undefined,\n [Locales.MAORI_NEW_ZEALAND]: undefined,\n [Locales.FYRO_MACEDONIAN_MACEDONIA]: undefined,\n [Locales.MONGOLIAN_MONGOLIA]: undefined,\n [Locales.MARATHI_INDIA]: undefined,\n [Locales.MALAY_BRUNEI_DARUSSALAM]: undefined,\n [Locales.MALAY_MALAYSIA]: undefined,\n [Locales.MALTESE_MALTA]: undefined,\n [Locales.NORWEGIAN_BOKMAL_NORWAY]: undefined,\n [Locales.NORWEGIAN_NYNORSK_NORWAY]: undefined,\n [Locales.NORTHERN_SOTHO_SOUTH_AFRICA]: undefined,\n [Locales.PUNJABI_INDIA]: undefined,\n [Locales.POLISH_POLAND]: undefined,\n [Locales.PASHTO_AFGHANISTAN]: undefined,\n [Locales.QUECHUA_BOLIVIA]: undefined,\n [Locales.QUECHUA_ECUADOR]: undefined,\n [Locales.QUECHUA_PERU]: undefined,\n [Locales.ROMANIAN_ROMANIA]: undefined,\n [Locales.SANSKRIT_INDIA]: undefined,\n [Locales.SAMI_NORTHERN_FINLAND]: undefined,\n [Locales.SAMI_NORTHERN_NORWAY]: undefined,\n [Locales.SAMI_NORTHERN_SWEDEN]: undefined,\n [Locales.SLOVAK_SLOVAKIA]: undefined,\n [Locales.SLOVENIAN_SLOVENIA]: undefined,\n [Locales.ALBANIAN_ALBANIA]: undefined,\n [Locales.SERBIAN_LATIN_BOSNIA_AND_HERZEGOVINA]: undefined,\n [Locales.SERBIAN_LATIN_SERBIA_AND_MONTENEGRO]: undefined,\n [Locales.SWAHILI_KENYA]: undefined,\n [Locales.SYRIAC_SYRIA]: undefined,\n [Locales.TAMIL_INDIA]: undefined,\n [Locales.TELUGU_INDIA]: undefined,\n [Locales.THAI_THAILAND]: undefined,\n [Locales.TAGALOG_PHILIPPINES]: undefined,\n [Locales.TSWANA_SOUTH_AFRICA]: undefined,\n [Locales.TURKISH_TURKEY]: undefined,\n [Locales.TATAR_RUSSIA]: undefined,\n [Locales.TSOGA]: undefined,\n [Locales.UKRAINIAN_UKRAINE]: undefined,\n [Locales.URDU_ISLAMIC_REPUBLIC_OF_PAKISTAN]: undefined,\n [Locales.UZBEK_LATIN_UZBEKISTAN]: undefined,\n [Locales.VIETNAMESE_VIET_NAM]: undefined,\n [Locales.XHOSA_SOUTH_AFRICA]: undefined,\n [Locales.ZULU_SOUTH_AFRICA]: undefined,\n};\n\n/**\n * Given a displayLocale (the locale in which you want the name displayed)\n * and a targetLocale (the locale whose name you want),\n * returns the localized name.\n *\n * If no targetLocale is provided, the displayLocale's own name is returned.\n */\nexport const getLocaleName = (\n displayLocale: Locales | `${Locales}`,\n targetLocale?: Locales | `${Locales}`\n): string => {\n if (!targetLocale) {\n // Fallback to the displayLocale's own name if targetLocale is not provided\n return ownLocalesName[displayLocale];\n }\n\n return (\n localeNameTranslations[targetLocale]?.[displayLocale] ??\n ownLocalesName[displayLocale] ??\n 'Unknown locale'\n );\n};\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/localization/getLocaleName.ts"],"sourcesContent":["import { Locales, type LocalesValues } from '@intlayer/config/client';\nimport { arabicLocales } from './localeNames/ar';\nimport { germanLocales } from './localeNames/du';\nimport { englishLocales } from './localeNames/en';\nimport { spanishLocales } from './localeNames/es';\nimport { frenchLocales } from './localeNames/fr';\nimport { hindiLocales } from './localeNames/hi';\nimport { italianLocales } from './localeNames/it';\nimport { japaneseLocales } from './localeNames/ja';\nimport { koreanLocales } from './localeNames/ko';\nimport { ownLocalesName } from './localeNames/ownLocalesName';\nimport { portugueseLocales } from './localeNames/pt';\nimport { russianLocales } from './localeNames/ru';\nimport { chineseLocales } from './localeNames/zh';\n\nconst localeNameTranslations: Record<\n Locales,\n Record<LocalesValues, string> | undefined\n> = {\n [Locales.ENGLISH]: englishLocales,\n [Locales.ENGLISH_AUSTRALIA]: englishLocales,\n [Locales.ENGLISH_BELIZE]: englishLocales,\n [Locales.ENGLISH_CANADA]: englishLocales,\n [Locales.ENGLISH_CARIBBEAN]: englishLocales,\n [Locales.ENGLISH_UNITED_KINGDOM]: englishLocales,\n [Locales.ENGLISH_IRELAND]: englishLocales,\n [Locales.ENGLISH_JAMAICA]: englishLocales,\n [Locales.ENGLISH_NEW_ZEALAND]: englishLocales,\n [Locales.ENGLISH_PHILIPPINES]: englishLocales,\n [Locales.ENGLISH_TRINIDAD_AND_TOBAGO]: englishLocales,\n [Locales.ENGLISH_UNITED_STATES]: englishLocales,\n [Locales.ENGLISH_SOUTH_AFRICA]: englishLocales,\n [Locales.ENGLISH_ZIMBABWE]: englishLocales,\n [Locales.FRENCH]: frenchLocales,\n [Locales.FRENCH_BELGIUM]: frenchLocales,\n [Locales.FRENCH_CANADA]: frenchLocales,\n [Locales.FRENCH_SWITZERLAND]: frenchLocales,\n [Locales.FRENCH_FRANCE]: frenchLocales,\n [Locales.FRENCH_LUXEMBOURG]: frenchLocales,\n [Locales.FRENCH_PRINCIPALITY_OF_MONACO]: frenchLocales,\n [Locales.SPANISH]: spanishLocales,\n [Locales.SPANISH_ARGENTINA]: spanishLocales,\n [Locales.SPANISH_BOLIVIA]: spanishLocales,\n [Locales.SPANISH_CHILE]: spanishLocales,\n [Locales.SPANISH_COLOMBIA]: spanishLocales,\n [Locales.SPANISH_COSTA_RICA]: spanishLocales,\n [Locales.SPANISH_DOMINICAN_REPUBLIC]: spanishLocales,\n [Locales.SPANISH_ECUADOR]: spanishLocales,\n [Locales.SPANISH_SPAIN]: spanishLocales,\n [Locales.SPANISH_GUATEMALA]: spanishLocales,\n [Locales.SPANISH_HONDURAS]: spanishLocales,\n [Locales.SPANISH_MEXICO]: spanishLocales,\n [Locales.SPANISH_NICARAGUA]: spanishLocales,\n [Locales.SPANISH_PANAMA]: spanishLocales,\n [Locales.SPANISH_PERU]: spanishLocales,\n [Locales.SPANISH_PUERTO_RICO]: spanishLocales,\n [Locales.SPANISH_PARAGUAY]: spanishLocales,\n [Locales.SPANISH_EL_SALVADOR]: spanishLocales,\n [Locales.SPANISH_URUGUAY]: spanishLocales,\n [Locales.SPANISH_VENEZUELA]: spanishLocales,\n [Locales.PORTUGUESE]: portugueseLocales,\n [Locales.PORTUGUESE_BRAZIL]: portugueseLocales,\n [Locales.PORTUGUESE_PORTUGAL]: portugueseLocales,\n [Locales.ITALIAN]: italianLocales,\n [Locales.ITALIAN_SWITZERLAND]: italianLocales,\n [Locales.ITALIAN_ITALY]: italianLocales,\n [Locales.GERMAN]: germanLocales,\n [Locales.GERMAN_AUSTRIA]: germanLocales,\n [Locales.GERMAN_SWITZERLAND]: germanLocales,\n [Locales.GERMAN_GERMANY]: germanLocales,\n [Locales.GERMAN_LIECHTENSTEIN]: germanLocales,\n [Locales.GERMAN_LUXEMBOURG]: germanLocales,\n [Locales.CHINESE]: chineseLocales,\n [Locales.CHINESE_HONG_KONG]: chineseLocales,\n [Locales.CHINESE_MACAU]: chineseLocales,\n [Locales.CHINESE_SINGAPORE]: chineseLocales,\n [Locales.CHINESE_SIMPLIFIED]: chineseLocales,\n [Locales.CHINESE_SIMPLIFIED_CHINA]: chineseLocales,\n [Locales.CHINESE_TRADITIONAL]: chineseLocales,\n [Locales.RUSSIAN]: russianLocales,\n [Locales.RUSSIAN_RUSSIA]: russianLocales,\n [Locales.ARABIC]: arabicLocales,\n [Locales.ARABIC_UNITED_ARAB_EMIRATES]: arabicLocales,\n [Locales.ARABIC_BAHRAIN]: arabicLocales,\n [Locales.ARABIC_ALGERIA]: arabicLocales,\n [Locales.ARABIC_EGYPT]: arabicLocales,\n [Locales.ARABIC_IRAQ]: arabicLocales,\n [Locales.ARABIC_JORDAN]: arabicLocales,\n [Locales.ARABIC_KUWAIT]: arabicLocales,\n [Locales.ARABIC_LEBANON]: arabicLocales,\n [Locales.ARABIC_LIBYA]: arabicLocales,\n [Locales.ARABIC_MOROCCO]: arabicLocales,\n [Locales.ARABIC_OMAN]: arabicLocales,\n [Locales.ARABIC_QATAR]: arabicLocales,\n [Locales.ARABIC_SAUDI_ARABIA]: arabicLocales,\n [Locales.ARABIC_SYRIA]: arabicLocales,\n [Locales.ARABIC_TUNISIA]: arabicLocales,\n [Locales.ARABIC_YEMEN]: arabicLocales,\n [Locales.JAPANESE]: japaneseLocales,\n [Locales.JAPANESE_JAPAN]: japaneseLocales,\n [Locales.KOREAN]: koreanLocales,\n [Locales.KOREAN_KOREA]: koreanLocales,\n [Locales.HINDI]: hindiLocales,\n\n [Locales.DUTCH_BELGIUM]: undefined,\n [Locales.DUTCH_NETHERLANDS]: undefined,\n [Locales.DIVEHI_MALDIVES]: undefined,\n [Locales.AFRIKAANS]: undefined,\n [Locales.AZERI_LATIN]: undefined,\n [Locales.BELARUSIAN]: undefined,\n [Locales.BULGARIAN]: undefined,\n [Locales.BOSNIAN]: undefined,\n [Locales.CATALAN]: undefined,\n [Locales.CZECH]: undefined,\n [Locales.WELSH]: undefined,\n [Locales.DANISH]: undefined,\n [Locales.DIVEHI]: undefined,\n [Locales.GREEK]: undefined,\n [Locales.ESPERANTO]: undefined,\n [Locales.ESTONIAN]: undefined,\n [Locales.BASQUE]: undefined,\n [Locales.FARSI]: undefined,\n [Locales.FINNISH]: undefined,\n [Locales.FAROESE]: undefined,\n [Locales.GALICIAN]: undefined,\n [Locales.GUJARATI]: undefined,\n [Locales.HEBREW]: undefined,\n [Locales.CROATIAN]: undefined,\n [Locales.HUNGARIAN]: undefined,\n [Locales.ARMENIAN]: undefined,\n [Locales.INDONESIAN]: undefined,\n [Locales.ICELANDIC]: undefined,\n [Locales.GEORGIAN]: undefined,\n [Locales.KAZAKH]: undefined,\n [Locales.KANNADA]: undefined,\n [Locales.KONKANI]: undefined,\n [Locales.KYRGYZ]: undefined,\n [Locales.LITHUANIAN]: undefined,\n [Locales.LATVIAN]: undefined,\n [Locales.MAORI]: undefined,\n [Locales.FYRO_MACEDONIAN]: undefined,\n [Locales.MONGOLIAN]: undefined,\n [Locales.MARATHI]: undefined,\n [Locales.MALAY]: undefined,\n [Locales.MALTESE]: undefined,\n [Locales.NORWEGIAN_BOKMAL]: undefined,\n [Locales.DUTCH]: undefined,\n [Locales.NORTHERN_SOTHO]: undefined,\n [Locales.PUNJABI]: undefined,\n [Locales.POLISH]: undefined,\n [Locales.PASHTO]: undefined,\n [Locales.QUECHUA]: undefined,\n [Locales.ROMANIAN]: undefined,\n [Locales.SANSKRIT]: undefined,\n [Locales.SAMI_NORTHERN]: undefined,\n [Locales.SLOVAK]: undefined,\n [Locales.SLOVENIAN]: undefined,\n [Locales.ALBANIAN]: undefined,\n [Locales.SERBIAN_LATIN]: undefined,\n [Locales.SWEDISH]: undefined,\n [Locales.SWEDISH_FINLAND]: undefined,\n [Locales.SWEDISH_SWEDEN]: undefined,\n [Locales.SWAHILI]: undefined,\n [Locales.SYRIAC]: undefined,\n [Locales.TAMIL]: undefined,\n [Locales.TELUGU]: undefined,\n [Locales.THAI]: undefined,\n [Locales.TAGALOG]: undefined,\n [Locales.TSWANA]: undefined,\n [Locales.TURKISH]: undefined,\n [Locales.TATAR]: undefined,\n [Locales.UKRAINIAN]: undefined,\n [Locales.URDU]: undefined,\n [Locales.UZBEK_LATIN]: undefined,\n [Locales.VIETNAMESE]: undefined,\n [Locales.XHOSA]: undefined,\n [Locales.ZULU]: undefined,\n [Locales.AFRIKAANS_SOUTH_AFRICA]: undefined,\n [Locales.AZERI_LATIN_AZERBAIJAN]: undefined,\n [Locales.BELARUSIAN_BELARUS]: undefined,\n [Locales.BULGARIAN_BULGARIA]: undefined,\n [Locales.BOSNIAN_BOSNIA_AND_HERZEGOVINA]: undefined,\n [Locales.CATALAN_SPAIN]: undefined,\n [Locales.CZECH_CZECH_REPUBLIC]: undefined,\n [Locales.WELSH_UNITED_KINGDOM]: undefined,\n [Locales.DANISH_DENMARK]: undefined,\n [Locales.GREEK_GREECE]: undefined,\n [Locales.ESTONIAN_ESTONIA]: undefined,\n [Locales.BASQUE_SPAIN]: undefined,\n [Locales.FARSI_IRAN]: undefined,\n [Locales.FINNISH_FINLAND]: undefined,\n [Locales.FAROESE_FAROE_ISLANDS]: undefined,\n [Locales.GALICIAN_SPAIN]: undefined,\n [Locales.GUJARATI_INDIA]: undefined,\n [Locales.HEBREW_ISRAEL]: undefined,\n [Locales.HINDI_INDIA]: undefined,\n [Locales.CROATIAN_BOSNIA_AND_HERZEGOVINA]: undefined,\n [Locales.CROATIAN_CROATIA]: undefined,\n [Locales.HUNGARIAN_HUNGARY]: undefined,\n [Locales.ARMENIAN_ARMENIA]: undefined,\n [Locales.INDONESIAN_INDONESIA]: undefined,\n [Locales.ICELANDIC_ICELAND]: undefined,\n [Locales.GEORGIAN_GEORGIA]: undefined,\n [Locales.KAZAKH_KAZAKHSTAN]: undefined,\n [Locales.KANNADA_INDIA]: undefined,\n [Locales.KONKANI_INDIA]: undefined,\n [Locales.KYRGYZ_KYRGYZSTAN]: undefined,\n [Locales.LITHUANIAN_LITHUANIA]: undefined,\n [Locales.LATVIAN_LATVIA]: undefined,\n [Locales.MAORI_NEW_ZEALAND]: undefined,\n [Locales.FYRO_MACEDONIAN_MACEDONIA]: undefined,\n [Locales.MONGOLIAN_MONGOLIA]: undefined,\n [Locales.MARATHI_INDIA]: undefined,\n [Locales.MALAY_BRUNEI_DARUSSALAM]: undefined,\n [Locales.MALAY_MALAYSIA]: undefined,\n [Locales.MALTESE_MALTA]: undefined,\n [Locales.NORWEGIAN_BOKMAL_NORWAY]: undefined,\n [Locales.NORWEGIAN_NYNORSK_NORWAY]: undefined,\n [Locales.NORTHERN_SOTHO_SOUTH_AFRICA]: undefined,\n [Locales.PUNJABI_INDIA]: undefined,\n [Locales.POLISH_POLAND]: undefined,\n [Locales.PASHTO_AFGHANISTAN]: undefined,\n [Locales.QUECHUA_BOLIVIA]: undefined,\n [Locales.QUECHUA_ECUADOR]: undefined,\n [Locales.QUECHUA_PERU]: undefined,\n [Locales.ROMANIAN_ROMANIA]: undefined,\n [Locales.SANSKRIT_INDIA]: undefined,\n [Locales.SAMI_NORTHERN_FINLAND]: undefined,\n [Locales.SAMI_NORTHERN_NORWAY]: undefined,\n [Locales.SAMI_NORTHERN_SWEDEN]: undefined,\n [Locales.SLOVAK_SLOVAKIA]: undefined,\n [Locales.SLOVENIAN_SLOVENIA]: undefined,\n [Locales.ALBANIAN_ALBANIA]: undefined,\n [Locales.SERBIAN_LATIN_BOSNIA_AND_HERZEGOVINA]: undefined,\n [Locales.SERBIAN_LATIN_SERBIA_AND_MONTENEGRO]: undefined,\n [Locales.SWAHILI_KENYA]: undefined,\n [Locales.SYRIAC_SYRIA]: undefined,\n [Locales.TAMIL_INDIA]: undefined,\n [Locales.TELUGU_INDIA]: undefined,\n [Locales.THAI_THAILAND]: undefined,\n [Locales.TAGALOG_PHILIPPINES]: undefined,\n [Locales.TSWANA_SOUTH_AFRICA]: undefined,\n [Locales.TURKISH_TURKEY]: undefined,\n [Locales.TATAR_RUSSIA]: undefined,\n [Locales.TSOGA]: undefined,\n [Locales.UKRAINIAN_UKRAINE]: undefined,\n [Locales.URDU_ISLAMIC_REPUBLIC_OF_PAKISTAN]: undefined,\n [Locales.UZBEK_LATIN_UZBEKISTAN]: undefined,\n [Locales.VIETNAMESE_VIET_NAM]: undefined,\n [Locales.XHOSA_SOUTH_AFRICA]: undefined,\n [Locales.ZULU_SOUTH_AFRICA]: undefined,\n};\n\n/**\n * Given a displayLocale (the locale in which you want the name displayed)\n * and a targetLocale (the locale whose name you want),\n * returns the localized name.\n *\n * If no targetLocale is provided, the displayLocale's own name is returned.\n */\nexport const getLocaleName = (\n displayLocale: LocalesValues,\n targetLocale?: LocalesValues\n): string => {\n if (!targetLocale) {\n // Fallback to the displayLocale's own name if targetLocale is not provided\n return ownLocalesName[displayLocale];\n }\n\n return (\n localeNameTranslations[targetLocale]?.[displayLocale] ??\n ownLocalesName[displayLocale] ??\n 'Unknown locale'\n );\n};\n"],"mappings":"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","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/localization/getLocalizedUrl.ts"],"sourcesContent":["import { getConfiguration, Locales } from '@intlayer/config/client';\nimport { getMultilingualUrls } from './getMultilingualUrls';\n\n// Destructure necessary configurations\nconst { internationalization, middleware } = getConfiguration();\nconst { locales: localesDefault, defaultLocale: defaultLocaleDefault } =\n internationalization;\nconst { prefixDefault: prefixDefaultDefault } = middleware;\n\n/**\n * Generate URL by prefixing the given URL with the referenced locale.\n * Handles both absolute and relative URLs appropriately.\n *\n * This function get the locales, default locale, and prefix default from the configuration if not provided.\n *\n * Example:\n *\n * ```ts\n * getCurrentUrl('/about', currentLocale, ['en', 'fr'], 'en', false);\n * // Returns '/fr/about' for the French locale\n * // Returns '/about' for the default locale\n * // Returns '/about' for the Italian locale\n *\n * getCurrentUrl('https://example.com/about', currentLocale, ['en', 'fr'], 'en', false);\n * // Returns 'https://example.com/fr/about' for the French locale\n * // Returns 'https://example.com/about' for the default locale\n * // Returns 'https://example.com/about' for the Italian locale\n * ```\n *\n * @param url - The original URL string to be prefixed with locales.\n * @param currentLocale - The current locale.\n * @param locales - Optional array of supported locales. Defaults to `localesDefault`.\n * @param defaultLocale - The default locale. Defaults to `defaultLocaleDefault`.\n * @param prefixDefault - Whether to prefix the default locale. Defaults to `prefixDefaultDefault`.\n * @returns An object mapping each locale to its corresponding multilingual URL.\n */\nexport const getLocalizedUrl = (\n url: string,\n currentLocale: Locales | `${Locales}`,\n locales: (Locales | `${Locales}`)[] = localesDefault,\n defaultLocale: Locales | `${Locales}` = defaultLocaleDefault,\n prefixDefault: boolean = prefixDefaultDefault\n): string => {\n // Remove any existing locale segment from the URL\n const urlWithoutLocale = getMultilingualUrls(\n url,\n locales,\n defaultLocale,\n prefixDefault\n );\n\n return urlWithoutLocale[\n currentLocale as unknown as keyof typeof urlWithoutLocale\n ];\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA0C;AAC1C,iCAAoC;AAGpC,MAAM,EAAE,sBAAsB,WAAW,QAAI,gCAAiB;AAC9D,MAAM,EAAE,SAAS,gBAAgB,eAAe,qBAAqB,IACnE;AACF,MAAM,EAAE,eAAe,qBAAqB,IAAI;AA6BzC,MAAM,kBAAkB,CAC7B,KACA,eACA,UAAsC,gBACtC,gBAAwC,sBACxC,gBAAyB,yBACd;AAEX,QAAM,uBAAmB;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,SAAO,iBACL,aACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/localization/getLocalizedUrl.ts"],"sourcesContent":["import { getConfiguration, type LocalesValues } from '@intlayer/config/client';\nimport { getMultilingualUrls } from './getMultilingualUrls';\n\n// Destructure necessary configurations\nconst { internationalization, middleware } = getConfiguration();\nconst { locales: localesDefault, defaultLocale: defaultLocaleDefault } =\n internationalization;\nconst { prefixDefault: prefixDefaultDefault } = middleware;\n\n/**\n * Generate URL by prefixing the given URL with the referenced locale.\n * Handles both absolute and relative URLs appropriately.\n *\n * This function get the locales, default locale, and prefix default from the configuration if not provided.\n *\n * Example:\n *\n * ```ts\n * getCurrentUrl('/about', currentLocale, ['en', 'fr'], 'en', false);\n * // Returns '/fr/about' for the French locale\n * // Returns '/about' for the default locale\n * // Returns '/about' for the Italian locale\n *\n * getCurrentUrl('https://example.com/about', currentLocale, ['en', 'fr'], 'en', false);\n * // Returns 'https://example.com/fr/about' for the French locale\n * // Returns 'https://example.com/about' for the default locale\n * // Returns 'https://example.com/about' for the Italian locale\n * ```\n *\n * @param url - The original URL string to be prefixed with locales.\n * @param currentLocale - The current locale.\n * @param locales - Optional array of supported locales. Defaults to `localesDefault`.\n * @param defaultLocale - The default locale. Defaults to `defaultLocaleDefault`.\n * @param prefixDefault - Whether to prefix the default locale. Defaults to `prefixDefaultDefault`.\n * @returns An object mapping each locale to its corresponding multilingual URL.\n */\nexport const getLocalizedUrl = (\n url: string,\n currentLocale: LocalesValues,\n locales: LocalesValues[] = localesDefault,\n defaultLocale: LocalesValues = defaultLocaleDefault,\n prefixDefault: boolean = prefixDefaultDefault\n): string => {\n // Remove any existing locale segment from the URL\n const urlWithoutLocale = getMultilingualUrls(\n url,\n locales,\n defaultLocale,\n prefixDefault\n );\n\n return urlWithoutLocale[\n currentLocale as unknown as keyof typeof urlWithoutLocale\n ];\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAqD;AACrD,iCAAoC;AAGpC,MAAM,EAAE,sBAAsB,WAAW,QAAI,gCAAiB;AAC9D,MAAM,EAAE,SAAS,gBAAgB,eAAe,qBAAqB,IACnE;AACF,MAAM,EAAE,eAAe,qBAAqB,IAAI;AA6BzC,MAAM,kBAAkB,CAC7B,KACA,eACA,UAA2B,gBAC3B,gBAA+B,sBAC/B,gBAAyB,yBACd;AAEX,QAAM,uBAAmB;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,SAAO,iBACL,aACF;AACF;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/localization/getMultilingualUrls.ts"],"sourcesContent":["import { getConfiguration, Locales } from '@intlayer/config/client';\n// @ts-ignore intlayer declared for module augmentation\nimport type { IConfigLocales } from 'intlayer';\nimport { getPathWithoutLocale } from './getPathWithoutLocale';\nimport { checkIsURLAbsolute } from '../utils/checkIsURLAbsolute';\n\n// Destructure necessary configurations\nconst { internationalization, middleware } = getConfiguration();\nconst { locales: localesDefault, defaultLocale: defaultLocaleDefault } =\n internationalization;\nconst { prefixDefault: prefixDefaultDefault } = middleware;\n\n/**\n * Generates multilingual URLs by prefixing the given URL with each supported locale.\n * Handles both absolute and relative URLs appropriately.\n *\n * This function get the locales, default locale, and prefix default from the configuration if not provided.\n *\n * Example:\n *\n * ```ts\n * getMultilingualUrls('/dashboard', ['en', 'fr'], 'en', false)\n * // Returns { en: '/dashboard', fr: '/fr/dashboard' }\n * getMultilingualUrls('https://example.com/dashboard', ['en', 'fr'], 'en', true)\n * // Returns { en: 'https://example.com/en/dashboard', fr: 'https://example.com/fr/dashboard' }\n * ```\n *\n * @param url - The original URL string to be prefixed with locales.\n * @param locales - Optional array of supported locales. Defaults to `localesDefault`.\n * @param defaultLocale - The default locale. Defaults to `defaultLocaleDefault`.\n * @param prefixDefault - Whether to prefix the default locale. Defaults to `prefixDefaultDefault`.\n * @returns An object mapping each locale to its corresponding multilingual URL.\n */\nexport const getMultilingualUrls = (\n url: string,\n locales: (Locales | `${Locales}`)[] = localesDefault,\n defaultLocale: Locales | `${Locales}` = defaultLocaleDefault,\n prefixDefault: boolean = prefixDefaultDefault\n): IConfigLocales<string> => {\n // Remove any existing locale segment from the URL\n const urlWithoutLocale = getPathWithoutLocale(url, locales);\n\n // Determine if the original URL is absolute (includes protocol)\n const isAbsoluteUrl = checkIsURLAbsolute(urlWithoutLocale);\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 parsedUrl = isAbsoluteUrl\n ? new URL(urlWithoutLocale)\n : new URL(urlWithoutLocale, 'http://example.com');\n\n // Extract the pathname from the parsed URL\n let pathname = parsedUrl.pathname;\n\n // Ensure the pathname starts with a '/'\n if (!pathname.startsWith('/')) {\n pathname = `/${pathname}`;\n }\n\n // Prepare the base URL (protocol + host) if it's absolute\n const baseUrl = isAbsoluteUrl\n ? `${parsedUrl.protocol}//${parsedUrl.host}`\n : '';\n\n // Generate multilingual URLs by iterating over each locale\n const multilingualUrls = locales.reduce<IConfigLocales<string>>(\n (acc, locale) => {\n // Determine if the current locale is the default locale\n const isDefaultLocale = locale.toString() === defaultLocale.toString();\n\n // Decide whether to prefix the default locale based on `prefixDefault`\n const shouldPrefix = prefixDefault || !isDefaultLocale;\n\n // Construct the new pathname with or without the locale prefix\n let localizedPath = shouldPrefix ? `/${locale}${pathname}` : pathname;\n\n if (localizedPath.length > 1 && localizedPath.endsWith('/')) {\n localizedPath = localizedPath.slice(0, -1);\n }\n\n // Combine with the base URL if the original URL was absolute\n const localizedUrl = isAbsoluteUrl\n ? `${baseUrl}${localizedPath}${parsedUrl.search}${parsedUrl.hash}`\n : `${localizedPath}${parsedUrl.search}${parsedUrl.hash}`;\n\n // Assign the constructed URL to the corresponding locale key\n acc[locale as unknown as keyof typeof acc] = localizedUrl;\n\n return acc;\n },\n {} as IConfigLocales<string> // Initialize an empty object\n );\n\n return multilingualUrls;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA0C;AAG1C,kCAAqC;AACrC,gCAAmC;AAGnC,MAAM,EAAE,sBAAsB,WAAW,QAAI,gCAAiB;AAC9D,MAAM,EAAE,SAAS,gBAAgB,eAAe,qBAAqB,IACnE;AACF,MAAM,EAAE,eAAe,qBAAqB,IAAI;AAuBzC,MAAM,sBAAsB,CACjC,KACA,UAAsC,gBACtC,gBAAwC,sBACxC,gBAAyB,yBACE;AAE3B,QAAM,uBAAmB,kDAAqB,KAAK,OAAO;AAG1D,QAAM,oBAAgB,8CAAmB,gBAAgB;AAIzD,QAAM,YAAY,gBACd,IAAI,IAAI,gBAAgB,IACxB,IAAI,IAAI,kBAAkB,oBAAoB;AAGlD,MAAI,WAAW,UAAU;AAGzB,MAAI,CAAC,SAAS,WAAW,GAAG,GAAG;AAC7B,eAAW,IAAI,QAAQ;AAAA,EACzB;AAGA,QAAM,UAAU,gBACZ,GAAG,UAAU,QAAQ,KAAK,UAAU,IAAI,KACxC;AAGJ,QAAM,mBAAmB,QAAQ;AAAA,IAC/B,CAAC,KAAK,WAAW;AAEf,YAAM,kBAAkB,OAAO,SAAS,MAAM,cAAc,SAAS;AAGrE,YAAM,eAAe,iBAAiB,CAAC;AAGvC,UAAI,gBAAgB,eAAe,IAAI,MAAM,GAAG,QAAQ,KAAK;AAE7D,UAAI,cAAc,SAAS,KAAK,cAAc,SAAS,GAAG,GAAG;AAC3D,wBAAgB,cAAc,MAAM,GAAG,EAAE;AAAA,MAC3C;AAGA,YAAM,eAAe,gBACjB,GAAG,OAAO,GAAG,aAAa,GAAG,UAAU,MAAM,GAAG,UAAU,IAAI,KAC9D,GAAG,aAAa,GAAG,UAAU,MAAM,GAAG,UAAU,IAAI;AAGxD,UAAI,MAAqC,IAAI;AAE7C,aAAO;AAAA,IACT;AAAA,IACA,CAAC;AAAA;AAAA,EACH;AAEA,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../../src/localization/getMultilingualUrls.ts"],"sourcesContent":["import { getConfiguration, type LocalesValues } from '@intlayer/config/client';\n// @ts-ignore intlayer declared for module augmentation\nimport type { IConfigLocales } from 'intlayer';\nimport { getPathWithoutLocale } from './getPathWithoutLocale';\nimport { checkIsURLAbsolute } from '../utils/checkIsURLAbsolute';\n\n// Destructure necessary configurations\nconst { internationalization, middleware } = getConfiguration();\nconst { locales: localesDefault, defaultLocale: defaultLocaleDefault } =\n internationalization;\nconst { prefixDefault: prefixDefaultDefault } = middleware;\n\n/**\n * Generates multilingual URLs by prefixing the given URL with each supported locale.\n * Handles both absolute and relative URLs appropriately.\n *\n * This function get the locales, default locale, and prefix default from the configuration if not provided.\n *\n * Example:\n *\n * ```ts\n * getMultilingualUrls('/dashboard', ['en', 'fr'], 'en', false)\n * // Returns { en: '/dashboard', fr: '/fr/dashboard' }\n * getMultilingualUrls('https://example.com/dashboard', ['en', 'fr'], 'en', true)\n * // Returns { en: 'https://example.com/en/dashboard', fr: 'https://example.com/fr/dashboard' }\n * ```\n *\n * @param url - The original URL string to be prefixed with locales.\n * @param locales - Optional array of supported locales. Defaults to `localesDefault`.\n * @param defaultLocale - The default locale. Defaults to `defaultLocaleDefault`.\n * @param prefixDefault - Whether to prefix the default locale. Defaults to `prefixDefaultDefault`.\n * @returns An object mapping each locale to its corresponding multilingual URL.\n */\nexport const getMultilingualUrls = (\n url: string,\n locales: LocalesValues[] = localesDefault,\n defaultLocale: LocalesValues = defaultLocaleDefault,\n prefixDefault: boolean = prefixDefaultDefault\n): IConfigLocales<string> => {\n // Remove any existing locale segment from the URL\n const urlWithoutLocale = getPathWithoutLocale(url, locales);\n\n // Determine if the original URL is absolute (includes protocol)\n const isAbsoluteUrl = checkIsURLAbsolute(urlWithoutLocale);\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 parsedUrl = isAbsoluteUrl\n ? new URL(urlWithoutLocale)\n : new URL(urlWithoutLocale, 'http://example.com');\n\n // Extract the pathname from the parsed URL\n let pathname = parsedUrl.pathname;\n\n // Ensure the pathname starts with a '/'\n if (!pathname.startsWith('/')) {\n pathname = `/${pathname}`;\n }\n\n // Prepare the base URL (protocol + host) if it's absolute\n const baseUrl = isAbsoluteUrl\n ? `${parsedUrl.protocol}//${parsedUrl.host}`\n : '';\n\n // Generate multilingual URLs by iterating over each locale\n const multilingualUrls = locales.reduce<IConfigLocales<string>>(\n (acc, locale) => {\n // Determine if the current locale is the default locale\n const isDefaultLocale = locale.toString() === defaultLocale.toString();\n\n // Decide whether to prefix the default locale based on `prefixDefault`\n const shouldPrefix = prefixDefault || !isDefaultLocale;\n\n // Construct the new pathname with or without the locale prefix\n let localizedPath = shouldPrefix ? `/${locale}${pathname}` : pathname;\n\n if (localizedPath.length > 1 && localizedPath.endsWith('/')) {\n localizedPath = localizedPath.slice(0, -1);\n }\n\n // Combine with the base URL if the original URL was absolute\n const localizedUrl = isAbsoluteUrl\n ? `${baseUrl}${localizedPath}${parsedUrl.search}${parsedUrl.hash}`\n : `${localizedPath}${parsedUrl.search}${parsedUrl.hash}`;\n\n // Assign the constructed URL to the corresponding locale key\n acc[locale as unknown as keyof typeof acc] = localizedUrl;\n\n return acc;\n },\n {} as IConfigLocales<string> // Initialize an empty object\n );\n\n return multilingualUrls;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAqD;AAGrD,kCAAqC;AACrC,gCAAmC;AAGnC,MAAM,EAAE,sBAAsB,WAAW,QAAI,gCAAiB;AAC9D,MAAM,EAAE,SAAS,gBAAgB,eAAe,qBAAqB,IACnE;AACF,MAAM,EAAE,eAAe,qBAAqB,IAAI;AAuBzC,MAAM,sBAAsB,CACjC,KACA,UAA2B,gBAC3B,gBAA+B,sBAC/B,gBAAyB,yBACE;AAE3B,QAAM,uBAAmB,kDAAqB,KAAK,OAAO;AAG1D,QAAM,oBAAgB,8CAAmB,gBAAgB;AAIzD,QAAM,YAAY,gBACd,IAAI,IAAI,gBAAgB,IACxB,IAAI,IAAI,kBAAkB,oBAAoB;AAGlD,MAAI,WAAW,UAAU;AAGzB,MAAI,CAAC,SAAS,WAAW,GAAG,GAAG;AAC7B,eAAW,IAAI,QAAQ;AAAA,EACzB;AAGA,QAAM,UAAU,gBACZ,GAAG,UAAU,QAAQ,KAAK,UAAU,IAAI,KACxC;AAGJ,QAAM,mBAAmB,QAAQ;AAAA,IAC/B,CAAC,KAAK,WAAW;AAEf,YAAM,kBAAkB,OAAO,SAAS,MAAM,cAAc,SAAS;AAGrE,YAAM,eAAe,iBAAiB,CAAC;AAGvC,UAAI,gBAAgB,eAAe,IAAI,MAAM,GAAG,QAAQ,KAAK;AAE7D,UAAI,cAAc,SAAS,KAAK,cAAc,SAAS,GAAG,GAAG;AAC3D,wBAAgB,cAAc,MAAM,GAAG,EAAE;AAAA,MAC3C;AAGA,YAAM,eAAe,gBACjB,GAAG,OAAO,GAAG,aAAa,GAAG,UAAU,MAAM,GAAG,UAAU,IAAI,KAC9D,GAAG,aAAa,GAAG,UAAU,MAAM,GAAG,UAAU,IAAI;AAGxD,UAAI,MAAqC,IAAI;AAE7C,aAAO;AAAA,IACT;AAAA,IACA,CAAC;AAAA;AAAA,EACH;AAEA,SAAO;AACT;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/localization/getPathWithoutLocale.ts"],"sourcesContent":["import { getConfiguration, type Locales } from '@intlayer/config/client';\nimport { checkIsURLAbsolute } from '../utils/checkIsURLAbsolute';\n\nconst { internationalization } = getConfiguration();\nconst { locales: localesDefault } = internationalization;\n\n/**\n * Removes the locale segment from the given URL or pathname 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('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 * ```\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.\n */\nexport const getPathWithoutLocale = (\n inputUrl: string,\n locales: (Locales | `${Locales}`)[] = localesDefault\n): string => {\n // Determine if the original URL is absolute (includes protocol)\n const isAbsoluteUrl = checkIsURLAbsolute(inputUrl);\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(inputUrl)\n : new URL(inputUrl, '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 Locales)) {\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 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":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA+C;AAC/C,gCAAmC;AAEnC,MAAM,EAAE,qBAAqB,QAAI,gCAAiB;AAClD,MAAM,EAAE,SAAS,eAAe,IAAI;AAuB7B,MAAM,uBAAuB,CAClC,UACA,UAAsC,mBAC3B;AAEX,QAAM,oBAAgB,8CAAmB,QAAQ;AAIjD,QAAM,MAAM,gBACR,IAAI,IAAI,QAAQ,IAChB,IAAI,IAAI,UAAU,oBAAoB;AAE1C,QAAM,WAAW,IAAI;AAGrB,MAAI,CAAC,SAAS,WAAW,GAAG,GAAG;AAE7B,QAAI,WAAW,IAAI,QAAQ;AAAA,EAC7B;AAGA,QAAM,eAAe,SAAS,MAAM,GAAG;AACvC,QAAM,eAAe,aAAa,CAAC;AAGnC,MAAI,QAAQ,SAAS,YAAuB,GAAG;AAE7C,iBAAa,OAAO,GAAG,CAAC;AAGxB,UAAM,cAAc,aAAa,KAAK,GAAG,KAAK;AAC9C,QAAI,WAAW;AAAA,EACjB;AAEA,MAAI,eAAe;AAEjB,WAAO,IAAI,SAAS;AAAA,EACtB;AAGA,SAAO,IAAI,SAAS,EAAE,QAAQ,sBAAsB,EAAE;AACxD;","names":[]}
1
+ {"version":3,"sources":["../../../src/localization/getPathWithoutLocale.ts"],"sourcesContent":["import {\n getConfiguration,\n type Locales,\n type LocalesValues,\n} from '@intlayer/config/client';\nimport { checkIsURLAbsolute } from '../utils/checkIsURLAbsolute';\n\nconst { internationalization } = getConfiguration();\nconst { locales: localesDefault } = internationalization;\n\n/**\n * Removes the locale segment from the given URL or pathname 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('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 * ```\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.\n */\nexport const getPathWithoutLocale = (\n inputUrl: string,\n locales: LocalesValues[] = localesDefault\n): string => {\n // Determine if the original URL is absolute (includes protocol)\n const isAbsoluteUrl = checkIsURLAbsolute(inputUrl);\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(inputUrl)\n : new URL(inputUrl, '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 Locales)) {\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 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":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAIO;AACP,gCAAmC;AAEnC,MAAM,EAAE,qBAAqB,QAAI,gCAAiB;AAClD,MAAM,EAAE,SAAS,eAAe,IAAI;AAuB7B,MAAM,uBAAuB,CAClC,UACA,UAA2B,mBAChB;AAEX,QAAM,oBAAgB,8CAAmB,QAAQ;AAIjD,QAAM,MAAM,gBACR,IAAI,IAAI,QAAQ,IAChB,IAAI,IAAI,UAAU,oBAAoB;AAE1C,QAAM,WAAW,IAAI;AAGrB,MAAI,CAAC,SAAS,WAAW,GAAG,GAAG;AAE7B,QAAI,WAAW,IAAI,QAAQ;AAAA,EAC7B;AAGA,QAAM,eAAe,SAAS,MAAM,GAAG;AACvC,QAAM,eAAe,aAAa,CAAC;AAGnC,MAAI,QAAQ,SAAS,YAAuB,GAAG;AAE7C,iBAAa,OAAO,GAAG,CAAC;AAGxB,UAAM,cAAc,aAAa,KAAK,GAAG,KAAK;AAC9C,QAAI,WAAW;AAAA,EACjB;AAEA,MAAI,eAAe;AAEjB,WAAO,IAAI,SAAS;AAAA,EACtB;AAGA,SAAO,IAAI,SAAS,EAAE,QAAQ,sBAAsB,EAAE;AACxD;","names":[]}
@@ -22,10 +22,7 @@ __export(condition_exports, {
22
22
  });
23
23
  module.exports = __toCommonJS(condition_exports);
24
24
  var import_types = require('../../types/index.cjs');
25
- const condition = (content) => ({
26
- nodeType: import_types.NodeType.Condition,
27
- [import_types.NodeType.Condition]: { ...content }
28
- });
25
+ const condition = (content) => (0, import_types.formatNodeType)(import_types.NodeType.Condition, content);
29
26
  // Annotate the CommonJS export names for ESM import in node:
30
27
  0 && (module.exports = {
31
28
  cond
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/transpiler/condition/condition.ts"],"sourcesContent":["import { NodeType } from '../../types/index';\n\nexport type ConditionContentStates<Content> = Record<`${boolean}`, Content> & {\n fallback?: Content;\n};\n\nexport type ConditionContent<Content = unknown> = {\n nodeType: NodeType.Condition;\n [NodeType.Condition]: ConditionContentStates<Content>;\n};\n\n/**\n * Function intended to be used to build intlayer dictionaries.\n *\n * Allow to pick a content based on a condition.\n *\n * Usage:\n *\n * ```ts\n * cond({\n * 'true': 'The condition is validated',\n * 'false': 'The condition is not validated',\n * });\n * ```\n *\n * The last key provided will be used as the fallback value.\n *\n */\nconst condition = <Content>(content?: ConditionContentStates<Content>) => ({\n nodeType: NodeType.Condition,\n [NodeType.Condition]: { ...content },\n});\n\nexport { condition as cond };\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAyB;AA4BzB,MAAM,YAAY,CAAU,aAA+C;AAAA,EACzE,UAAU,sBAAS;AAAA,EACnB,CAAC,sBAAS,SAAS,GAAG,EAAE,GAAG,QAAQ;AACrC;","names":[]}
1
+ {"version":3,"sources":["../../../../src/transpiler/condition/condition.ts"],"sourcesContent":["import {\n formatNodeType,\n NodeType,\n type TypedNodeModel,\n} from '../../types/index';\n\nexport type ConditionContentStates<Content> = Record<`${boolean}`, Content> & {\n fallback?: Content;\n};\n\nexport type ConditionContent<Content = unknown> = TypedNodeModel<\n NodeType.Condition,\n ConditionContentStates<Content>\n>;\n\n/**\n * Function intended to be used to build intlayer dictionaries.\n *\n * Allow to pick a content based on a condition.\n *\n * Usage:\n *\n * ```ts\n * cond({\n * 'true': 'The condition is validated',\n * 'false': 'The condition is not validated',\n * });\n * ```\n *\n * The last key provided will be used as the fallback value.\n *\n */\nconst condition = <Content>(content?: ConditionContentStates<Content>) =>\n formatNodeType(NodeType.Condition, content);\n\nexport { condition as cond };\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAIO;AA4BP,MAAM,YAAY,CAAU,gBAC1B,6BAAe,sBAAS,WAAW,OAAO;","names":[]}
@@ -22,10 +22,7 @@ __export(enumeration_exports, {
22
22
  });
23
23
  module.exports = __toCommonJS(enumeration_exports);
24
24
  var import_types = require('../../types/index.cjs');
25
- const enumeration = (content) => ({
26
- nodeType: import_types.NodeType.Enumeration,
27
- [import_types.NodeType.Enumeration]: { ...content }
28
- });
25
+ const enumeration = (content) => (0, import_types.formatNodeType)(import_types.NodeType.Enumeration, content);
29
26
  // Annotate the CommonJS export names for ESM import in node:
30
27
  0 && (module.exports = {
31
28
  enu
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/transpiler/enumeration/enumeration.ts"],"sourcesContent":["import { NodeType } from '../../types/index';\n\ntype Positif = number | `${number}`;\ntype Negatif = `-${number}`;\ntype Numbers = Positif | Negatif;\n\ntype Equal = Numbers;\ntype EqualString = `=${Numbers}`;\ntype Superior = `>${Numbers}`;\ntype SuperiorOrEqual = `>=${Numbers}`;\ntype Inferior = `<${Numbers}`;\ntype InferiorOrEqual = `<=${Numbers}`;\n\nexport type EnterFormat =\n | Equal\n | EqualString\n | Superior\n | SuperiorOrEqual\n | Inferior\n | InferiorOrEqual;\n\nexport type EnumerationContentState<Content> = Partial<\n Record<EnterFormat, Content>\n> & {\n fallback?: Content;\n};\n\nexport type EnumerationContent<Content = unknown> = {\n nodeType: NodeType.Enumeration;\n [NodeType.Enumeration]: EnumerationContentState<Content>;\n};\n\n/**\n * Function intended to be used to build intlayer dictionaries.\n *\n * Allow to pick a content based on a quantity.\n *\n * Usage:\n *\n * ```ts\n * enu({\n * '<=-2.3': 'You have less than -2.3',\n * '<1': 'You have less than one',\n * '2': 'You have two',\n * '>=3': 'You have three or more',\n * });\n * ```\n *\n * > The order of the keys will define the priority of the content.\n *\n */\nconst enumeration = <Content>(content?: EnumerationContentState<Content>) => ({\n nodeType: NodeType.Enumeration,\n [NodeType.Enumeration]: { ...content },\n});\n\nexport { enumeration as enu };\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAyB;AAmDzB,MAAM,cAAc,CAAU,aAAgD;AAAA,EAC5E,UAAU,sBAAS;AAAA,EACnB,CAAC,sBAAS,WAAW,GAAG,EAAE,GAAG,QAAQ;AACvC;","names":[]}
1
+ {"version":3,"sources":["../../../../src/transpiler/enumeration/enumeration.ts"],"sourcesContent":["import { formatNodeType, NodeType, TypedNodeModel } from '../../types/index';\n\ntype Positif = number | `${number}`;\ntype Negatif = `-${number}`;\ntype Numbers = Positif | Negatif;\n\ntype Equal = Numbers;\ntype EqualString = `=${Numbers}`;\ntype Superior = `>${Numbers}`;\ntype SuperiorOrEqual = `>=${Numbers}`;\ntype Inferior = `<${Numbers}`;\ntype InferiorOrEqual = `<=${Numbers}`;\n\nexport type EnterFormat =\n | Equal\n | EqualString\n | Superior\n | SuperiorOrEqual\n | Inferior\n | InferiorOrEqual;\n\nexport type EnumerationContentState<Content> = Partial<\n Record<EnterFormat, Content>\n> & {\n fallback?: Content;\n};\n\nexport type EnumerationContent<Content = unknown> = TypedNodeModel<\n NodeType.Enumeration,\n EnumerationContentState<Content>\n>;\n\n/**\n * Function intended to be used to build intlayer dictionaries.\n *\n * Allow to pick a content based on a quantity.\n *\n * Usage:\n *\n * ```ts\n * enu({\n * '<=-2.3': 'You have less than -2.3',\n * '<1': 'You have less than one',\n * '2': 'You have two',\n * '>=3': 'You have three or more',\n * });\n * ```\n *\n * > The order of the keys will define the priority of the content.\n *\n */\nconst enumeration = <Content>(content?: EnumerationContentState<Content>) =>\n formatNodeType(NodeType.Enumeration, content);\n\nexport { enumeration as enu };\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAyD;AAmDzD,MAAM,cAAc,CAAU,gBAC5B,6BAAe,sBAAS,aAAa,OAAO;","names":[]}
@@ -22,10 +22,7 @@ __export(markdown_exports, {
22
22
  });
23
23
  module.exports = __toCommonJS(markdown_exports);
24
24
  var import_types = require('../../types/index.cjs');
25
- const markdown = (content) => ({
26
- nodeType: import_types.NodeType.Markdown,
27
- [import_types.NodeType.Markdown]: content
28
- });
25
+ const markdown = (content) => (0, import_types.formatNodeType)(import_types.NodeType.Markdown, content);
29
26
  // Annotate the CommonJS export names for ESM import in node:
30
27
  0 && (module.exports = {
31
28
  md
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/transpiler/markdown/markdown.ts"],"sourcesContent":["import { NodeType } from '../../types/index';\n\nexport type MarkdownContentState = string;\n\nexport type MarkdownContent = {\n nodeType: NodeType.Markdown;\n [NodeType.Markdown]: MarkdownContentState;\n};\n\n/**\n * Function intended to be used to build intlayer dictionaries.\n *\n * Allow to pick a content based on a quantity.\n *\n * Usage:\n *\n * ```ts\n * markdown('## Hello world!');\n * ```\n *\n */\nconst markdown = (content: string): MarkdownContent => ({\n nodeType: NodeType.Markdown,\n [NodeType.Markdown]: content,\n});\n\nexport { markdown as md };\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAyB;AAqBzB,MAAM,WAAW,CAAC,aAAsC;AAAA,EACtD,UAAU,sBAAS;AAAA,EACnB,CAAC,sBAAS,QAAQ,GAAG;AACvB;","names":[]}
1
+ {"version":3,"sources":["../../../../src/transpiler/markdown/markdown.ts"],"sourcesContent":["import {\n formatNodeType,\n NodeType,\n type TypedNodeModel,\n} from '../../types/index';\n\nexport type MarkdownContentState = string;\n\nexport type MarkdownContent = TypedNodeModel<\n NodeType.Markdown,\n MarkdownContentState\n>;\n\n/**\n * Function intended to be used to build intlayer dictionaries.\n *\n * Allow to pick a content based on a quantity.\n *\n * Usage:\n *\n * ```ts\n * markdown('## Hello world!');\n * ```\n *\n */\nconst markdown = (content: string): MarkdownContent =>\n formatNodeType(NodeType.Markdown, content);\n\nexport { markdown as md };\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAIO;AAqBP,MAAM,WAAW,CAAC,gBAChB,6BAAe,sBAAS,UAAU,OAAO;","names":[]}
@@ -22,12 +22,9 @@ __export(nesting_exports, {
22
22
  });
23
23
  module.exports = __toCommonJS(nesting_exports);
24
24
  var import_types = require('../../types/index.cjs');
25
- const nesting = (dictionaryKey, path) => ({
26
- nodeType: import_types.NodeType.Nested,
27
- [import_types.NodeType.Nested]: {
28
- dictionaryKey,
29
- path
30
- }
25
+ const nesting = (dictionaryKey, path) => (0, import_types.formatNodeType)(import_types.NodeType.Nested, {
26
+ dictionaryKey,
27
+ path
31
28
  });
32
29
  // Annotate the CommonJS export names for ESM import in node:
33
30
  0 && (module.exports = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/transpiler/nesting/nesting.ts"],"sourcesContent":["// @ts-ignore intlayer declared for module augmentation\nimport type { IntlayerDictionaryTypesConnector } from 'intlayer';\nimport type { DictionaryKeys } from '../../types/dictionary';\nimport { NodeType } from '../../types/index';\nimport type { DeepTransformContent } from '../../interpreter';\n\n/**\n * Recursively builds dot-notation strings for all valid paths in T.\n * Example:\n * type X = { a: { b: { c: string }}, d: number };\n * DotPath<X> = \"a\" | \"a.b\" | \"a.b.c\" | \"d\"\n */\nexport type DotPath<T> = T extends object\n ? {\n [K in keyof T & (string | number)]: T[K] extends object\n ? // Either just K, or K + '.' + deeper path\n `${K}` | `${K}.${DotPath<T[K]>}`\n : `${K}`;\n }[keyof T & (string | number)]\n : never;\n\ntype DeepReplace<T, From, To> = T extends From\n ? To\n : T extends object\n ? { [K in keyof T]: DeepReplace<T[K], From, To> }\n : T;\n\n/** Build all valid dot-notation strings for a dictionary entry. */\nexport type ValidDotPathsFor<K extends DictionaryKeys> = DotPath<\n DeepReplace<\n DeepTransformContent<IntlayerDictionaryTypesConnector[K]['content']>,\n // Replace ReactElement type with string\n {\n type: any;\n props: any;\n key: any;\n },\n string\n >\n>;\n\nexport type NestedContentState<K extends DictionaryKeys> = {\n dictionaryKey: K;\n\n /**\n * Path must match existing keys in IntlayerDictionaryTypesConnector[K].\n * Can be either:\n * - \"dot.dot.dot\" format\n */\n path?: ValidDotPathsFor<K>;\n};\n\nexport type NestedContent<K extends DictionaryKeys = never> = {\n nodeType: NodeType.Nested;\n [NodeType.Nested]: NestedContentState<K>;\n};\n\n/**\n * Function intended to be used to build intlayer dictionaries.\n *\n * Allow to extract the content of another dictionary and nest it in the current dictionary.\n *\n * Usage:\n *\n * ```ts\n * nest(\"dictionaryKey\");\n * nest(\"dictionaryKey\", \"path.to.content\");\n * ```\n *\n * The order of the keys will define the priority of the content.\n *\n */\nconst nesting = <K extends DictionaryKeys>(\n dictionaryKey: K,\n path?: ValidDotPathsFor<K>\n): NestedContent<K> => ({\n nodeType: NodeType.Nested,\n [NodeType.Nested]: {\n dictionaryKey,\n path,\n },\n});\n\nexport { nesting as nest };\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,mBAAyB;AAqEzB,MAAM,UAAU,CACd,eACA,UACsB;AAAA,EACtB,UAAU,sBAAS;AAAA,EACnB,CAAC,sBAAS,MAAM,GAAG;AAAA,IACjB;AAAA,IACA;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../../src/transpiler/nesting/nesting.ts"],"sourcesContent":["// @ts-ignore intlayer declared for module augmentation\nimport type { IntlayerDictionaryTypesConnector } from 'intlayer';\nimport type { DictionaryKeys } from '../../types/dictionary';\nimport {\n formatNodeType,\n NodeType,\n type TypedNodeModel,\n} from '../../types/index';\nimport type { DeepTransformContent } from '../../interpreter';\n\n/**\n * Recursively builds dot-notation strings for all valid paths in T.\n * Example:\n * type X = { a: { b: { c: string }}, d: number };\n * DotPath<X> = \"a\" | \"a.b\" | \"a.b.c\" | \"d\"\n */\nexport type DotPath<T> = T extends object\n ? {\n [K in keyof T & (string | number)]: T[K] extends object\n ? // Either just K, or K + '.' + deeper path\n `${K}` | `${K}.${DotPath<T[K]>}`\n : `${K}`;\n }[keyof T & (string | number)]\n : never;\n\ntype DeepReplace<T, From, To> = T extends From\n ? To\n : T extends object\n ? { [K in keyof T]: DeepReplace<T[K], From, To> }\n : T;\n\n/** Build all valid dot-notation strings for a dictionary entry. */\nexport type ValidDotPathsFor<K extends DictionaryKeys> = DotPath<\n DeepReplace<\n DeepTransformContent<IntlayerDictionaryTypesConnector[K]['content']>,\n // Replace ReactElement type with string\n {\n type: any;\n props: any;\n key: any;\n },\n string\n >\n>;\n\nexport type NestedContentState<K extends DictionaryKeys> = {\n dictionaryKey: K;\n\n /**\n * Path must match existing keys in IntlayerDictionaryTypesConnector[K].\n * Can be either:\n * - \"dot.dot.dot\" format\n */\n path?: ValidDotPathsFor<K>;\n};\n\nexport type NestedContent<K extends DictionaryKeys = never> = TypedNodeModel<\n NodeType.Nested,\n NestedContentState<K>\n>;\n\n/**\n * Function intended to be used to build intlayer dictionaries.\n *\n * Allow to extract the content of another dictionary and nest it in the current dictionary.\n *\n * Usage:\n *\n * ```ts\n * nest(\"dictionaryKey\");\n * nest(\"dictionaryKey\", \"path.to.content\");\n * ```\n *\n * The order of the keys will define the priority of the content.\n *\n */\nconst nesting = <K extends DictionaryKeys>(\n dictionaryKey: K,\n path?: ValidDotPathsFor<K>\n): NestedContent<K> =>\n formatNodeType(NodeType.Nested, {\n dictionaryKey,\n path,\n });\n\nexport { nesting as nest };\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,mBAIO;AAqEP,MAAM,UAAU,CACd,eACA,aAEA,6BAAe,sBAAS,QAAQ;AAAA,EAC9B;AAAA,EACA;AACF,CAAC;","names":[]}
@@ -22,10 +22,7 @@ __export(translation_exports, {
22
22
  });
23
23
  module.exports = __toCommonJS(translation_exports);
24
24
  var import_types = require('../../types/index.cjs');
25
- const translation = (content) => ({
26
- nodeType: import_types.NodeType.Translation,
27
- [import_types.NodeType.Translation]: content
28
- });
25
+ const translation = (content) => (0, import_types.formatNodeType)(import_types.NodeType.Translation, content);
29
26
  // Annotate the CommonJS export names for ESM import in node:
30
27
  0 && (module.exports = {
31
28
  t
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/transpiler/translation/translation.ts"],"sourcesContent":["import { NodeType } from '../../types/index';\nimport type { LanguageContent, TranslationContent } from './types';\n\n/**\n *\n * Function intended to be used to build intlayer dictionaries.\n *\n * Get the content of a translation based on the locale.\n *\n * Usage:\n *\n * ```ts\n * translation<string>({\n * \"en\": \"Hello\",\n * \"fr\": \"Bonjour\",\n * // ... any other available locale\n * })\n * ```\n *\n * Using TypeScript:\n * - this function require each locale to be defined if defined in the project configuration.\n * - If a locale is missing, it will make each existing locale optional and raise an error if the locale is not found.\n */\nconst translation = <Content = string>(content?: LanguageContent<Content>) =>\n ({\n nodeType: NodeType.Translation,\n [NodeType.Translation]: content,\n }) as TranslationContent<Content>;\n\nexport { translation as t };\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAyB;AAuBzB,MAAM,cAAc,CAAmB,aACpC;AAAA,EACC,UAAU,sBAAS;AAAA,EACnB,CAAC,sBAAS,WAAW,GAAG;AAC1B;","names":[]}
1
+ {"version":3,"sources":["../../../../src/transpiler/translation/translation.ts"],"sourcesContent":["import { formatNodeType, NodeType } from '../../types/index';\nimport type { LanguageContent, TranslationContent } from './types';\n\n/**\n *\n * Function intended to be used to build intlayer dictionaries.\n *\n * Get the content of a translation based on the locale.\n *\n * Usage:\n *\n * ```ts\n * translation<string>({\n * \"en\": \"Hello\",\n * \"fr\": \"Bonjour\",\n * // ... any other available locale\n * })\n * ```\n *\n * Using TypeScript:\n * - this function require each locale to be defined if defined in the project configuration.\n * - If a locale is missing, it will make each existing locale optional and raise an error if the locale is not found.\n */\nconst translation = <\n Content = unknown,\n ContentRecord extends LanguageContent<Content> = LanguageContent<Content>,\n>(\n content: ContentRecord\n) =>\n formatNodeType(NodeType.Translation, content) satisfies TranslationContent<\n Content,\n ContentRecord\n >;\n\nexport { translation as t };\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAyC;AAuBzC,MAAM,cAAc,CAIlB,gBAEA,6BAAe,sBAAS,aAAa,OAAO;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/transpiler/translation/types.ts"],"sourcesContent":["/** @ts-nocheck */\n\nimport type { LocalesValues } from '@intlayer/config/client';\n// @ts-ignore intlayer declared for module augmentation\nimport type { IConfigLocales } from 'intlayer';\nimport type { NodeType } from '../../types/index';\n\n/**\n * If module augmented, it will return the configured locales such as Locales.ENGLISH | Locales.FRENCH | Locales.SPANISH | ...\n * If not, it will return never\n */\nexport type ConfigLocales = keyof IConfigLocales<unknown>;\n\n/**\n * If module augmented, it will return the configured locales such as Locales.ENGLISH | Locales.FRENCH | Locales.SPANISH | ...\n * If not, it will return all available locales such as Locales.ENGLISH | Locales.FRENCH | Locales.SPANISH | ...\n */\nexport type CustomLocales = ConfigLocales extends never\n ? LocalesValues\n : ConfigLocales;\n\n/**\n * Record of locales and content\n *\n * const myVar1: LanguageContent<string> = {\n * \"en\": \"\",\n * \"fr\": \"\"\n * }\n *\n * const myVar2: LanguageContent<{age: number, name: string}> = {\n * \"en\": {age: 1, name: \"test\"},\n * \"fr\": {age: 1, name: \"test\"}\n * }\n */\nexport type TranslationContentState<Content = unknown> = Partial<\n Record<LocalesValues, Content>\n>;\n\n/**\n * Valid\n * const test: CustomizableLanguageContent<string, Locales.ENGLISH | Locales.FRENCH> = {\n * \"en\": \"test\",\n * \"fr\": \"test\"\n * }\n *\n * const test: CustomizableLanguageContent<number> = {\n * \"fr\": 1,\n * \"en\": 1,\n * ... any other available locale\n * }\n *\n * Invalid\n *\n * const test: CustomizableLanguageContent<string> = {\n * \"en\": \"test\",\n * \"fr\": \"test\",\n * \"sss\": \"test\" // Does not exist in Locales\n * }\n *\n * const test: CustomizableLanguageContent<string, Locales.ENGLISH | Locales.FRENCH> = {\n * \"fr\": \"test\"\n * // Locales.ENGLISH is missing\n * }\n *\n */\nexport type LanguageContent<Content = string> = ConfigLocales extends never\n ? IConfigLocales<Content>\n : TranslationContentState<Content>;\n\nexport type TranslationContent<Content = unknown> = {\n nodeType: NodeType.Translation;\n [NodeType.Translation]: LanguageContent<Content>;\n};\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
1
+ {"version":3,"sources":["../../../../src/transpiler/translation/types.ts"],"sourcesContent":["/** @ts-nocheck */\n\nimport type { LocalesValues } from '@intlayer/config/client';\n// @ts-ignore intlayer declared for module augmentation\nimport type { IConfigLocales } from 'intlayer';\nimport { NodeType, TypedNodeModel } from '../../types/index';\n\n/**\n * If module augmented, it will return the configured locales such as Locales.ENGLISH | Locales.FRENCH | Locales.SPANISH | ...\n * If not, it will return never\n */\nexport type ConfigLocales = keyof IConfigLocales<unknown>;\n\n/**\n * Record of locales and content\n *\n * const myVar1: TranslationContentState<string> = {\n * \"en\": \"\",\n * \"fr\": \"\"\n * }\n *\n * const myVar2: TranslationContentState<{age: number, name: string}> = {\n * \"en\": {age: 1, name: \"test\"},\n * \"fr\": {age: 1, name: \"test\"}\n * }\n */\nexport type TranslationContentState<Content = unknown> = {\n [locale in LocalesValues]?: Content;\n};\n\nexport type LanguageContent<Content = unknown> =\n keyof IConfigLocales<unknown> extends never\n ? TranslationContentState<Content> // Fall including all locales as optional\n : IConfigLocales<Content>;\n\nexport type TranslationContent<\n Content = unknown,\n RecordContent extends LanguageContent<Content> = LanguageContent<Content>,\n> = TypedNodeModel<NodeType.Translation, RecordContent>;\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/types/dictionary.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n// @ts-ignore intlayer declared for module augmentation\nimport { IntlayerDictionaryTypesConnector } from 'intlayer';\nimport type {\n ConditionContent,\n EnumerationContent,\n MarkdownContent,\n NestedContent,\n TranslationContent,\n} from '../transpiler/index';\n\n/**\n * Provides a fallback to string type if the generic type T is never,\n * otherwise returns T. This is useful for handling cases where no keys are found.\n * Example: StringFallback<never> -> string; StringFallback<'key'> -> 'key'\n */\nexport type StringFallback<T> = T extends never ? string : T; // If no keys are found, return string to disable error, and accept any string as dictionary key\n\n/**\n * Represents the keys of the IntlayerDictionaryTypesConnector,\n * ensuring they are valid dictionary keys or fallback to string if none exist.\n *\n * Example:\n * ```ts\n * DictionaryKeys -> 'key1' | 'key2'\n * // or if IntlayerDictionaryTypesConnector is not defined,\n * DictionaryKeys -> string\n * ```\n */\nexport type DictionaryKeys = StringFallback<\n keyof IntlayerDictionaryTypesConnector\n>;\n\nexport type TypedNode<NodeType = never> =\n | TranslationContent<NodeType>\n | EnumerationContent<NodeType>\n | ConditionContent<NodeType>\n | MarkdownContent\n | NestedContent<DictionaryKeys>;\n\nexport type BaseNode = string | number | bigint | boolean | null | undefined;\n\nexport type FetchableContentNode<NodeType = ContentNode> = (\n args?: any\n) => ContentNode<NodeType> | Promise<ContentNode<NodeType>>;\n\nexport type ContentNode<NodeType = never, FetchableNode = false> =\n | NodeType\n | TypedNode<NodeType>\n | { [paramKey: string | number]: ContentNode<NodeType[keyof NodeType]> }\n | ((args?: any) => ContentNode<NodeType>)\n | (FetchableNode extends true ? FetchableContentNode<NodeType> : never);\n\ntype IsArray<T> = T extends any[] ? true : false;\n\ntype ReplaceContentValueArray<T> = T extends (infer U)[]\n ? ReplaceContentValue<U>[]\n : ReplaceContentValue<T>;\n\n// Utility type that performs recursive replacement\ntype ReplaceContentValue<NodeType, FetchableNode = true> = {\n [P in keyof NodeType]: IsArray<NodeType[P]> extends true\n ? ReplaceContentValueArray<NodeType[P]>\n : NodeType[P] extends object\n ? ReplaceContentValue<NodeType[P]>\n : ContentNode<NodeType[P], FetchableNode>;\n};\n\nexport type Dictionary<NodeType = undefined, FetchableNode = false> = {\n $schema?: string;\n key: string;\n title?: string;\n description?: string;\n availableVersions?: string[];\n version?: string;\n filePath?: string;\n tags?: string[];\n content: NodeType extends undefined // Applying the generic to replace ContentValue with Replacement\n ? ContentNode<any, FetchableNode>\n : ReplaceContentValue<NodeType>;\n};\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
1
+ {"version":3,"sources":["../../../src/types/dictionary.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n// @ts-ignore intlayer declared for module augmentation\nimport { IntlayerDictionaryTypesConnector } from 'intlayer';\nimport type {\n ConditionContent,\n EnumerationContent,\n MarkdownContent,\n NestedContent,\n TranslationContent,\n} from '../transpiler/index';\n\n/**\n * Provides a fallback to string type if the generic type T is undefined,\n * otherwise returns T. This is useful for handling cases where no keys are found.\n * Example: StringFallback<undefined> -> string; StringFallback<'key'> -> 'key'\n */\nexport type StringFallback<T> = T extends undefined ? string : T; // If no keys are found, return string to disable error, and accept any string as dictionary key\n\n/**\n * Represents the keys of the IntlayerDictionaryTypesConnector,\n * ensuring they are valid dictionary keys or fallback to string if none exist.\n *\n * Example:\n * ```ts\n * DictionaryKeys -> 'key1' | 'key2'\n * // or if IntlayerDictionaryTypesConnector is not defined,\n * DictionaryKeys -> string\n * ```\n */\nexport type DictionaryKeys = StringFallback<\n keyof IntlayerDictionaryTypesConnector\n>;\n\nexport type TypedNode<NodeType = undefined> =\n | TranslationContent<NodeType>\n | EnumerationContent<NodeType>\n | ConditionContent<NodeType>\n | MarkdownContent\n | NestedContent<DictionaryKeys>;\n\ntype FetchableContentNode<NodeType> = (\n args?: any\n) => ContentNode<NodeType> | Promise<ContentNode<NodeType>>;\n\nexport type ContentNode<NodeType = undefined, FetchableNode = false> =\n | NodeType\n | TypedNode<NodeType>\n | ((args?: any) => ContentNode<NodeType>)\n | (FetchableNode extends true ? FetchableContentNode<NodeType> : undefined);\n\n// Utility types (unchanged)\ntype IsArray<T> = T extends any[] ? true : false;\n\ntype ReplaceContentValueArray<T, FetchableNode> = T extends (infer U)[]\n ? ReplaceContentValue<U, FetchableNode>[]\n : ReplaceContentValue<T, FetchableNode>;\n\ntype ReplaceContentValueObject<T, FetchableNode> = {\n [K in keyof T]: ReplaceContentValue<T[K], FetchableNode>;\n};\n\n// Modified: allow a full ContentNode wrapper OR an object shape when T is an object\ntype ReplaceContentValue<\n NodeType,\n FetchableNode = true,\n> = NodeType extends object\n ? IsArray<NodeType> extends true\n ? ReplaceContentValueArray<NodeType, FetchableNode>\n :\n | ContentNode<NodeType, FetchableNode>\n | ReplaceContentValueObject<NodeType, FetchableNode>\n : ContentNode<NodeType, FetchableNode>;\n\nexport type Dictionary<ContentType = undefined, FetchableNode = false> = {\n $schema?: string;\n key: string;\n title?: string;\n description?: string;\n availableVersions?: string[];\n version?: string;\n filePath?: string;\n tags?: string[];\n content: ContentType extends undefined // Applying the generic to replace ContentValue with Replacement\n ? any\n : ReplaceContentValue<ContentType, FetchableNode> | ContentType;\n};\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -18,7 +18,8 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var nodeType_exports = {};
20
20
  __export(nodeType_exports, {
21
- NodeType: () => NodeType
21
+ NodeType: () => NodeType,
22
+ formatNodeType: () => formatNodeType
22
23
  });
23
24
  module.exports = __toCommonJS(nodeType_exports);
24
25
  var NodeType = /* @__PURE__ */ ((NodeType2) => {
@@ -33,8 +34,13 @@ var NodeType = /* @__PURE__ */ ((NodeType2) => {
33
34
  NodeType2["Markdown"] = "markdown";
34
35
  return NodeType2;
35
36
  })(NodeType || {});
37
+ const formatNodeType = (nodeType, content) => ({
38
+ nodeType,
39
+ [nodeType]: content
40
+ });
36
41
  // Annotate the CommonJS export names for ESM import in node:
37
42
  0 && (module.exports = {
38
- NodeType
43
+ NodeType,
44
+ formatNodeType
39
45
  });
40
46
  //# sourceMappingURL=nodeType.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/types/nodeType.ts"],"sourcesContent":["export enum NodeType {\n Translation = 'translation',\n Enumeration = 'enumeration',\n Condition = 'condition',\n Object = 'object',\n Array = 'array',\n Text = 'text',\n Nested = 'nested',\n ReactNode = 'reactNode',\n Markdown = 'markdown',\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,IAAK,WAAL,kBAAKA,cAAL;AACL,EAAAA,UAAA,iBAAc;AACd,EAAAA,UAAA,iBAAc;AACd,EAAAA,UAAA,eAAY;AACZ,EAAAA,UAAA,YAAS;AACT,EAAAA,UAAA,WAAQ;AACR,EAAAA,UAAA,UAAO;AACP,EAAAA,UAAA,YAAS;AACT,EAAAA,UAAA,eAAY;AACZ,EAAAA,UAAA,cAAW;AATD,SAAAA;AAAA,GAAA;","names":["NodeType"]}
1
+ {"version":3,"sources":["../../../src/types/nodeType.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nexport enum NodeType {\n Translation = 'translation',\n Enumeration = 'enumeration',\n Condition = 'condition',\n Object = 'object',\n Array = 'array',\n Text = 'text',\n Nested = 'nested',\n ReactNode = 'reactNode',\n Markdown = 'markdown',\n}\n\nexport type TypedNodeModel<T extends NodeType, Content> = {\n nodeType: T | `${T}`;\n} & {\n [K in T]: Content;\n};\n\nexport const formatNodeType = <T extends NodeType, Content = any>(\n nodeType: T | `${T}`,\n content: Content\n) =>\n ({\n nodeType,\n [nodeType]: content,\n }) as TypedNodeModel<T, Content>;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACO,IAAK,WAAL,kBAAKA,cAAL;AACL,EAAAA,UAAA,iBAAc;AACd,EAAAA,UAAA,iBAAc;AACd,EAAAA,UAAA,eAAY;AACZ,EAAAA,UAAA,YAAS;AACT,EAAAA,UAAA,WAAQ;AACR,EAAAA,UAAA,UAAO;AACP,EAAAA,UAAA,YAAS;AACT,EAAAA,UAAA,eAAY;AACZ,EAAAA,UAAA,cAAW;AATD,SAAAA;AAAA,GAAA;AAkBL,MAAM,iBAAiB,CAC5B,UACA,aAEC;AAAA,EACC;AAAA,EACA,CAAC,QAAQ,GAAG;AACd;","names":["NodeType"]}