@intlayer/babel 8.1.11 → 8.2.1

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 (120) hide show
  1. package/dist/cjs/babel-plugin-intlayer-extract.cjs +1 -1
  2. package/dist/cjs/babel-plugin-intlayer-extract.cjs.map +1 -1
  3. package/dist/cjs/babel-plugin-intlayer-optimize.cjs +1 -1
  4. package/dist/cjs/babel-plugin-intlayer-optimize.cjs.map +1 -1
  5. package/dist/cjs/extractContent/babelProcessor.cjs +2 -0
  6. package/dist/cjs/extractContent/babelProcessor.cjs.map +1 -0
  7. package/dist/cjs/extractContent/contentWriter.cjs +2 -0
  8. package/dist/cjs/extractContent/contentWriter.cjs.map +1 -0
  9. package/dist/cjs/extractContent/extractContent.cjs +2 -0
  10. package/dist/cjs/extractContent/extractContent.cjs.map +1 -0
  11. package/dist/cjs/extractContent/index.cjs +1 -0
  12. package/dist/cjs/extractContent/processTsxFile.cjs +6 -0
  13. package/dist/cjs/extractContent/processTsxFile.cjs.map +1 -0
  14. package/dist/cjs/extractContent/utils/constants.cjs +2 -0
  15. package/dist/cjs/extractContent/utils/constants.cjs.map +1 -0
  16. package/dist/cjs/extractContent/utils/detectPackageName.cjs +2 -0
  17. package/dist/cjs/extractContent/utils/detectPackageName.cjs.map +1 -0
  18. package/dist/cjs/extractContent/utils/extractDictionaryKey.cjs +2 -0
  19. package/dist/cjs/extractContent/utils/extractDictionaryKey.cjs.map +1 -0
  20. package/dist/cjs/extractContent/utils/generateKey.cjs +2 -0
  21. package/dist/cjs/extractContent/utils/generateKey.cjs.map +1 -0
  22. package/dist/cjs/extractContent/utils/getComponentName.cjs +2 -0
  23. package/dist/cjs/extractContent/utils/getComponentName.cjs.map +1 -0
  24. package/dist/cjs/extractContent/utils/getExistingIntlayerInfo.cjs +2 -0
  25. package/dist/cjs/extractContent/utils/getExistingIntlayerInfo.cjs.map +1 -0
  26. package/dist/cjs/extractContent/utils/getOrGenerateKey.cjs +2 -0
  27. package/dist/cjs/extractContent/utils/getOrGenerateKey.cjs.map +1 -0
  28. package/dist/cjs/extractContent/utils/index.cjs +1 -0
  29. package/dist/cjs/extractContent/utils/resolveDictionaryKey.cjs +2 -0
  30. package/dist/cjs/extractContent/utils/resolveDictionaryKey.cjs.map +1 -0
  31. package/dist/cjs/extractContent/utils/shouldExtract.cjs +2 -0
  32. package/dist/cjs/extractContent/utils/shouldExtract.cjs.map +1 -0
  33. package/dist/cjs/getExtractPluginOptions.cjs +1 -1
  34. package/dist/cjs/getOptimizePluginOptions.cjs.map +1 -1
  35. package/dist/cjs/index.cjs +1 -1
  36. package/dist/esm/babel-plugin-intlayer-extract.mjs +1 -1
  37. package/dist/esm/babel-plugin-intlayer-extract.mjs.map +1 -1
  38. package/dist/esm/babel-plugin-intlayer-optimize.mjs +1 -1
  39. package/dist/esm/babel-plugin-intlayer-optimize.mjs.map +1 -1
  40. package/dist/esm/extractContent/babelProcessor.mjs +2 -0
  41. package/dist/esm/extractContent/babelProcessor.mjs.map +1 -0
  42. package/dist/esm/extractContent/contentWriter.mjs +2 -0
  43. package/dist/esm/extractContent/contentWriter.mjs.map +1 -0
  44. package/dist/esm/extractContent/extractContent.mjs +2 -0
  45. package/dist/esm/extractContent/extractContent.mjs.map +1 -0
  46. package/dist/esm/extractContent/index.mjs +1 -0
  47. package/dist/esm/extractContent/processTsxFile.mjs +6 -0
  48. package/dist/esm/extractContent/processTsxFile.mjs.map +1 -0
  49. package/dist/esm/extractContent/utils/constants.mjs +2 -0
  50. package/dist/esm/extractContent/utils/constants.mjs.map +1 -0
  51. package/dist/esm/extractContent/utils/detectPackageName.mjs +2 -0
  52. package/dist/esm/extractContent/utils/detectPackageName.mjs.map +1 -0
  53. package/dist/esm/extractContent/utils/extractDictionaryKey.mjs +2 -0
  54. package/dist/esm/extractContent/utils/extractDictionaryKey.mjs.map +1 -0
  55. package/dist/esm/extractContent/utils/generateKey.mjs +2 -0
  56. package/dist/esm/extractContent/utils/generateKey.mjs.map +1 -0
  57. package/dist/esm/extractContent/utils/getComponentName.mjs +2 -0
  58. package/dist/esm/extractContent/utils/getComponentName.mjs.map +1 -0
  59. package/dist/esm/extractContent/utils/getExistingIntlayerInfo.mjs +2 -0
  60. package/dist/esm/extractContent/utils/getExistingIntlayerInfo.mjs.map +1 -0
  61. package/dist/esm/extractContent/utils/getOrGenerateKey.mjs +2 -0
  62. package/dist/esm/extractContent/utils/getOrGenerateKey.mjs.map +1 -0
  63. package/dist/esm/extractContent/utils/index.mjs +1 -0
  64. package/dist/esm/extractContent/utils/resolveDictionaryKey.mjs +2 -0
  65. package/dist/esm/extractContent/utils/resolveDictionaryKey.mjs.map +1 -0
  66. package/dist/esm/extractContent/utils/shouldExtract.mjs +2 -0
  67. package/dist/esm/extractContent/utils/shouldExtract.mjs.map +1 -0
  68. package/dist/esm/getExtractPluginOptions.mjs +1 -1
  69. package/dist/esm/getOptimizePluginOptions.mjs.map +1 -1
  70. package/dist/esm/index.mjs +1 -1
  71. package/dist/types/babel-plugin-intlayer-extract.d.ts +28 -58
  72. package/dist/types/babel-plugin-intlayer-extract.d.ts.map +1 -1
  73. package/dist/types/babel-plugin-intlayer-optimize.d.ts +2 -2
  74. package/dist/types/babel-plugin-intlayer-optimize.d.ts.map +1 -1
  75. package/dist/types/extractContent/babelProcessor.d.ts +41 -0
  76. package/dist/types/extractContent/babelProcessor.d.ts.map +1 -0
  77. package/dist/types/extractContent/contentWriter.d.ts +27 -0
  78. package/dist/types/extractContent/contentWriter.d.ts.map +1 -0
  79. package/dist/types/extractContent/extractContent.d.ts +52 -0
  80. package/dist/types/extractContent/extractContent.d.ts.map +1 -0
  81. package/dist/types/extractContent/index.d.ts +4 -0
  82. package/dist/types/extractContent/processTsxFile.d.ts +18 -0
  83. package/dist/types/extractContent/processTsxFile.d.ts.map +1 -0
  84. package/dist/types/extractContent/utils/constants.d.ts +16 -0
  85. package/dist/types/extractContent/utils/constants.d.ts.map +1 -0
  86. package/dist/types/extractContent/utils/detectPackageName.d.ts +8 -0
  87. package/dist/types/extractContent/utils/detectPackageName.d.ts.map +1 -0
  88. package/dist/types/extractContent/utils/extractDictionaryKey.d.ts +11 -0
  89. package/dist/types/extractContent/utils/extractDictionaryKey.d.ts.map +1 -0
  90. package/dist/types/extractContent/utils/generateKey.d.ts +5 -0
  91. package/dist/types/extractContent/utils/generateKey.d.ts.map +1 -0
  92. package/dist/types/extractContent/utils/getComponentName.d.ts +10 -0
  93. package/dist/types/extractContent/utils/getComponentName.d.ts.map +1 -0
  94. package/dist/types/extractContent/utils/getExistingIntlayerInfo.d.ts +13 -0
  95. package/dist/types/extractContent/utils/getExistingIntlayerInfo.d.ts.map +1 -0
  96. package/dist/types/extractContent/utils/getOrGenerateKey.d.ts +8 -0
  97. package/dist/types/extractContent/utils/getOrGenerateKey.d.ts.map +1 -0
  98. package/dist/types/extractContent/utils/index.d.ts +10 -0
  99. package/dist/types/extractContent/utils/resolveDictionaryKey.d.ts +12 -0
  100. package/dist/types/extractContent/utils/resolveDictionaryKey.d.ts.map +1 -0
  101. package/dist/types/extractContent/utils/shouldExtract.d.ts +14 -0
  102. package/dist/types/extractContent/utils/shouldExtract.d.ts.map +1 -0
  103. package/dist/types/getOptimizePluginOptions.d.ts +1 -1
  104. package/dist/types/index.d.ts +4 -1
  105. package/package.json +18 -13
  106. package/dist/cjs/test-babel-error.cjs +0 -7
  107. package/dist/cjs/test-babel-error.cjs.map +0 -1
  108. package/dist/cjs/test-merge.cjs +0 -2
  109. package/dist/cjs/test-merge.cjs.map +0 -1
  110. package/dist/cjs/test-preserve.cjs +0 -2
  111. package/dist/cjs/test-preserve.cjs.map +0 -1
  112. package/dist/esm/test-babel-error.mjs +0 -7
  113. package/dist/esm/test-babel-error.mjs.map +0 -1
  114. package/dist/esm/test-merge.mjs +0 -2
  115. package/dist/esm/test-merge.mjs.map +0 -1
  116. package/dist/esm/test-preserve.mjs +0 -2
  117. package/dist/esm/test-preserve.mjs.map +0 -1
  118. package/dist/types/test-babel-error.d.ts +0 -1
  119. package/dist/types/test-merge.d.ts +0 -1
  120. package/dist/types/test-preserve.d.ts +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shouldExtract.d.ts","names":[],"sources":["../../../../src/extractContent/utils/shouldExtract.ts"],"mappings":";;AASA;;;;;;;;cAAa,aAAA,GAAiB,IAAA"}
@@ -1,6 +1,6 @@
1
1
  import { OptimizePluginOptions } from "./babel-plugin-intlayer-optimize.js";
2
- import { GetConfigurationOptions } from "@intlayer/config/node";
3
2
  import { Dictionary } from "@intlayer/types";
3
+ import { GetConfigurationOptions } from "@intlayer/config/node";
4
4
 
5
5
  //#region src/getOptimizePluginOptions.d.ts
6
6
  type GetOptimizePluginOptionsParams = {
@@ -1,5 +1,8 @@
1
1
  import { ExtractPluginOptions, ExtractResult, intlayerExtractBabelPlugin } from "./babel-plugin-intlayer-extract.js";
2
2
  import { OptimizePluginOptions, intlayerOptimizeBabelPlugin } from "./babel-plugin-intlayer-optimize.js";
3
+ import { ATTRIBUTES_TO_EXTRACT, PackageName, packageList } from "./extractContent/utils/constants.js";
4
+ import { detectPackageName } from "./extractContent/utils/detectPackageName.js";
5
+ import { ExtractIntlayerOptions, extractContent } from "./extractContent/extractContent.js";
3
6
  import { getExtractPluginOptions } from "./getExtractPluginOptions.js";
4
7
  import { getOptimizePluginOptions } from "./getOptimizePluginOptions.js";
5
- export { ExtractPluginOptions, ExtractResult, OptimizePluginOptions, getExtractPluginOptions, getOptimizePluginOptions, intlayerExtractBabelPlugin, intlayerOptimizeBabelPlugin };
8
+ export { ATTRIBUTES_TO_EXTRACT, ExtractIntlayerOptions, ExtractPluginOptions, ExtractResult, OptimizePluginOptions, PackageName, detectPackageName, extractContent, getExtractPluginOptions, getOptimizePluginOptions, intlayerExtractBabelPlugin, intlayerOptimizeBabelPlugin, packageList };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intlayer/babel",
3
- "version": "8.1.11",
3
+ "version": "8.2.1",
4
4
  "private": false,
5
5
  "description": "A Babel plugin for Intlayer that transforms declaration files and provides internationalization features during the build process according to the Intlayer configuration.",
6
6
  "keywords": [
@@ -76,14 +76,15 @@
76
76
  },
77
77
  "dependencies": {
78
78
  "@babel/core": "7.29.0",
79
- "@babel/generator": "7.27.0",
80
- "@babel/parser": "7.1.5",
81
- "@babel/traverse": "7.28.0",
82
- "@babel/types": "7.28.4",
83
- "@intlayer/chokidar": "8.1.11",
84
- "@intlayer/config": "8.1.11",
85
- "@intlayer/core": "8.1.11",
86
- "@intlayer/types": "8.1.11",
79
+ "@babel/generator": "7.29.1",
80
+ "@babel/parser": "7.29.0",
81
+ "@babel/plugin-syntax-jsx": "7.28.6",
82
+ "@babel/traverse": "7.29.0",
83
+ "@babel/types": "7.29.0",
84
+ "@intlayer/chokidar": "8.2.1",
85
+ "@intlayer/config": "8.2.1",
86
+ "@intlayer/core": "8.2.1",
87
+ "@intlayer/types": "8.2.1",
87
88
  "@types/babel__core": "7.20.5",
88
89
  "@types/babel__generator": "7.27.0",
89
90
  "@types/babel__traverse": "7.28.0",
@@ -91,8 +92,8 @@
91
92
  },
92
93
  "devDependencies": {
93
94
  "@babel/plugin-syntax-jsx": "^7.28.6",
94
- "@intlayer/dictionaries-entry": "8.1.11",
95
- "@types/crypto-js": "4.2.2",
95
+ "@intlayer/dictionaries-entry": "8.2.1",
96
+ "@intlayer/unmerged-dictionaries-entry": "8.2.1",
96
97
  "@types/node": "25.3.3",
97
98
  "@utils/ts-config": "1.0.4",
98
99
  "@utils/ts-config-types": "1.0.4",
@@ -104,10 +105,14 @@
104
105
  "vitest": "4.0.18"
105
106
  },
106
107
  "peerDependencies": {
107
- "@intlayer/dictionaries-entry": "8.1.11"
108
+ "@intlayer/svelte-compiler": "8.2.1",
109
+ "@intlayer/vue-compiler": "8.2.1"
108
110
  },
109
111
  "peerDependenciesMeta": {
110
- "@intlayer/dictionaries-entry": {
112
+ "@intlayer/svelte-compiler": {
113
+ "optional": true
114
+ },
115
+ "@intlayer/vue-compiler": {
111
116
  "optional": true
112
117
  }
113
118
  },
@@ -1,7 +0,0 @@
1
- require(`./_virtual/_rolldown/runtime.cjs`);const e=require(`./babel-plugin-intlayer-extract.cjs`);(0,require(`@babel/core`).transformSync)(`
2
- export function MyComponent() {
3
- const getLabel = () => "Label Text";
4
- return <div>{getLabel()}</div>;
5
- }
6
- `,{filename:`/app/src/components/MyComponent.tsx`,plugins:[`@babel/plugin-syntax-jsx`,[e.intlayerExtractBabelPlugin,{packageName:`react-intlayer`,defaultLocale:`en`,onExtract:()=>{}}]],babelrc:!1,configFile:!1});
7
- //# sourceMappingURL=test-babel-error.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-babel-error.cjs","names":["intlayerExtractBabelPlugin"],"sources":["../../src/test-babel-error.ts"],"sourcesContent":["import { transformSync } from '@babel/core';\nimport { intlayerExtractBabelPlugin } from './babel-plugin-intlayer-extract';\n\nconst code = `\n export function MyComponent() {\n const getLabel = () => \"Label Text\";\n return <div>{getLabel()}</div>;\n }\n`;\n\ntransformSync(code, {\n filename: '/app/src/components/MyComponent.tsx',\n plugins: [\n '@babel/plugin-syntax-jsx',\n [\n intlayerExtractBabelPlugin,\n {\n packageName: 'react-intlayer',\n defaultLocale: 'en',\n onExtract: () => {},\n },\n ],\n ],\n babelrc: false,\n configFile: false,\n});\n"],"mappings":"4IAGa;;;;;EAOO,CAClB,SAAU,sCACV,QAAS,CACP,2BACA,CACEA,EAAAA,2BACA,CACE,YAAa,iBACb,cAAe,KACf,cAAiB,GAClB,CACF,CACF,CACD,QAAS,GACT,WAAY,GACb,CAAC"}
@@ -1,2 +0,0 @@
1
- const e={myKey:{nodeType:`translation`,translation:{en:`Old English Value`,fr:`Old French Value`}}},t={myKey:`New English Value`,newKey:`Brand New Key`},n={};for(let[r,i]of Object.entries(t)){let t=e?.[r];console.log(`Checking key:`,r),console.log(`existingEntry:`,t),t&&t.nodeType===`translation`&&t.translation?n[r]={nodeType:`translation`,translation:{...t.translation,en:i}}:n[r]={nodeType:`translation`,translation:{en:i}}}console.log(JSON.stringify(n,null,2));
2
- //# sourceMappingURL=test-merge.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-merge.cjs","names":[],"sources":["../../src/test-merge.ts"],"sourcesContent":["import { Dictionary } from '@intlayer/types';\n\n// Let's test the merge logic\nconst existingContent = {\n myKey: {\n nodeType: 'translation',\n translation: {\n en: 'Old English Value',\n fr: 'Old French Value',\n },\n },\n};\n\nconst extractedContent = {\n myKey: 'New English Value',\n newKey: 'Brand New Key',\n};\n\nconst defaultLocale = 'en';\n\nconst mergedContent: any = {};\n\nfor (const [key, value] of Object.entries(extractedContent)) {\n const existingEntry = existingContent?.[key];\n\n console.log('Checking key:', key);\n console.log('existingEntry:', existingEntry);\n\n if (\n existingEntry &&\n existingEntry.nodeType === 'translation' &&\n existingEntry.translation\n ) {\n // Key exists in both - preserve existing translations, update default locale\n mergedContent[key] = {\n nodeType: 'translation',\n translation: {\n ...existingEntry.translation,\n [defaultLocale]: value,\n },\n };\n } else {\n // New key - add with default locale only\n mergedContent[key] = {\n nodeType: 'translation',\n translation: {\n [defaultLocale]: value,\n },\n };\n }\n}\n\nconsole.log(JSON.stringify(mergedContent, null, 2));\n"],"mappings":"AAGA,MAAM,EAAkB,CACtB,MAAO,CACL,SAAU,cACV,YAAa,CACX,GAAI,oBACJ,GAAI,mBACL,CACF,CACF,CAEK,EAAmB,CACvB,MAAO,oBACP,OAAQ,gBACT,CAIK,EAAqB,EAAE,CAE7B,IAAK,GAAM,CAAC,EAAK,KAAU,OAAO,QAAQ,EAAiB,CAAE,CAC3D,IAAM,EAAgB,IAAkB,GAExC,QAAQ,IAAI,gBAAiB,EAAI,CACjC,QAAQ,IAAI,iBAAkB,EAAc,CAG1C,GACA,EAAc,WAAa,eAC3B,EAAc,YAGd,EAAc,GAAO,CACnB,SAAU,cACV,YAAa,CACX,GAAG,EAAc,YAChB,GAAgB,EAClB,CACF,CAGD,EAAc,GAAO,CACnB,SAAU,cACV,YAAa,CACV,GAAgB,EAClB,CACF,CAIL,QAAQ,IAAI,KAAK,UAAU,EAAe,KAAM,EAAE,CAAC"}
@@ -1,2 +0,0 @@
1
- const e={myKey:{nodeType:`translation`,title:`Copy button component`,description:`French localization for the copy button component`,tags:[`component`,`copy-button`],translation:{en:`Old English Value`,fr:`Old French Value`}}},t={myKey:`New English Value (Should not overwrite)`,newKey:`Brand New Key`},n={};for(let[r,i]of Object.entries(t)){let t=e?.[r];t&&t.nodeType===`translation`&&t.translation?n[r]={...t,nodeType:`translation`,translation:{...t.translation,en:t.translation.en??i}}:n[r]={nodeType:`translation`,translation:{en:i}}}console.log(JSON.stringify(n,null,2));
2
- //# sourceMappingURL=test-preserve.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-preserve.cjs","names":[],"sources":["../../src/test-preserve.ts"],"sourcesContent":["import { Dictionary } from '@intlayer/types';\n\n// Testing the NEW merge logic\nconst existingContent = {\n myKey: {\n nodeType: 'translation',\n title: 'Copy button component',\n description: 'French localization for the copy button component',\n tags: ['component', 'copy-button'],\n translation: {\n en: 'Old English Value',\n fr: 'Old French Value',\n },\n },\n};\n\nconst extractedContent = {\n myKey: 'New English Value (Should not overwrite)',\n newKey: 'Brand New Key',\n};\n\nconst defaultLocale = 'en';\n\nconst mergedContent: any = {};\n\nfor (const [key, value] of Object.entries(extractedContent)) {\n const existingEntry = existingContent?.[\n key as keyof typeof existingContent\n ] as any;\n\n if (\n existingEntry &&\n existingEntry.nodeType === 'translation' &&\n existingEntry.translation\n ) {\n mergedContent[key] = {\n ...existingEntry,\n nodeType: 'translation',\n translation: {\n ...existingEntry.translation,\n [defaultLocale]: existingEntry.translation[defaultLocale] ?? value,\n },\n };\n } else {\n mergedContent[key] = {\n nodeType: 'translation',\n translation: {\n [defaultLocale]: value,\n },\n };\n }\n}\n\nconsole.log(JSON.stringify(mergedContent, null, 2));\n"],"mappings":"AAGA,MAAM,EAAkB,CACtB,MAAO,CACL,SAAU,cACV,MAAO,wBACP,YAAa,oDACb,KAAM,CAAC,YAAa,cAAc,CAClC,YAAa,CACX,GAAI,oBACJ,GAAI,mBACL,CACF,CACF,CAEK,EAAmB,CACvB,MAAO,2CACP,OAAQ,gBACT,CAIK,EAAqB,EAAE,CAE7B,IAAK,GAAM,CAAC,EAAK,KAAU,OAAO,QAAQ,EAAiB,CAAE,CAC3D,IAAM,EAAgB,IACpB,GAIA,GACA,EAAc,WAAa,eAC3B,EAAc,YAEd,EAAc,GAAO,CACnB,GAAG,EACH,SAAU,cACV,YAAa,CACX,GAAG,EAAc,YAChB,GAAgB,EAAc,YAAY,IAAkB,EAC9D,CACF,CAED,EAAc,GAAO,CACnB,SAAU,cACV,YAAa,CACV,GAAgB,EAClB,CACF,CAIL,QAAQ,IAAI,KAAK,UAAU,EAAe,KAAM,EAAE,CAAC"}
@@ -1,7 +0,0 @@
1
- import{intlayerExtractBabelPlugin as e}from"./babel-plugin-intlayer-extract.mjs";import{transformSync as t}from"@babel/core";t(`
2
- export function MyComponent() {
3
- const getLabel = () => "Label Text";
4
- return <div>{getLabel()}</div>;
5
- }
6
- `,{filename:`/app/src/components/MyComponent.tsx`,plugins:[`@babel/plugin-syntax-jsx`,[e,{packageName:`react-intlayer`,defaultLocale:`en`,onExtract:()=>{}}]],babelrc:!1,configFile:!1});
7
- //# sourceMappingURL=test-babel-error.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-babel-error.mjs","names":[],"sources":["../../src/test-babel-error.ts"],"sourcesContent":["import { transformSync } from '@babel/core';\nimport { intlayerExtractBabelPlugin } from './babel-plugin-intlayer-extract';\n\nconst code = `\n export function MyComponent() {\n const getLabel = () => \"Label Text\";\n return <div>{getLabel()}</div>;\n }\n`;\n\ntransformSync(code, {\n filename: '/app/src/components/MyComponent.tsx',\n plugins: [\n '@babel/plugin-syntax-jsx',\n [\n intlayerExtractBabelPlugin,\n {\n packageName: 'react-intlayer',\n defaultLocale: 'en',\n onExtract: () => {},\n },\n ],\n ],\n babelrc: false,\n configFile: false,\n});\n"],"mappings":"6HAUA,EAPa;;;;;EAOO,CAClB,SAAU,sCACV,QAAS,CACP,2BACA,CACE,EACA,CACE,YAAa,iBACb,cAAe,KACf,cAAiB,GAClB,CACF,CACF,CACD,QAAS,GACT,WAAY,GACb,CAAC"}
@@ -1,2 +0,0 @@
1
- const e={myKey:{nodeType:`translation`,translation:{en:`Old English Value`,fr:`Old French Value`}}},t={myKey:`New English Value`,newKey:`Brand New Key`},n={};for(let[r,i]of Object.entries(t)){let t=e?.[r];console.log(`Checking key:`,r),console.log(`existingEntry:`,t),t&&t.nodeType===`translation`&&t.translation?n[r]={nodeType:`translation`,translation:{...t.translation,en:i}}:n[r]={nodeType:`translation`,translation:{en:i}}}console.log(JSON.stringify(n,null,2));
2
- //# sourceMappingURL=test-merge.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-merge.mjs","names":[],"sources":["../../src/test-merge.ts"],"sourcesContent":["import { Dictionary } from '@intlayer/types';\n\n// Let's test the merge logic\nconst existingContent = {\n myKey: {\n nodeType: 'translation',\n translation: {\n en: 'Old English Value',\n fr: 'Old French Value',\n },\n },\n};\n\nconst extractedContent = {\n myKey: 'New English Value',\n newKey: 'Brand New Key',\n};\n\nconst defaultLocale = 'en';\n\nconst mergedContent: any = {};\n\nfor (const [key, value] of Object.entries(extractedContent)) {\n const existingEntry = existingContent?.[key];\n\n console.log('Checking key:', key);\n console.log('existingEntry:', existingEntry);\n\n if (\n existingEntry &&\n existingEntry.nodeType === 'translation' &&\n existingEntry.translation\n ) {\n // Key exists in both - preserve existing translations, update default locale\n mergedContent[key] = {\n nodeType: 'translation',\n translation: {\n ...existingEntry.translation,\n [defaultLocale]: value,\n },\n };\n } else {\n // New key - add with default locale only\n mergedContent[key] = {\n nodeType: 'translation',\n translation: {\n [defaultLocale]: value,\n },\n };\n }\n}\n\nconsole.log(JSON.stringify(mergedContent, null, 2));\n"],"mappings":"AAGA,MAAM,EAAkB,CACtB,MAAO,CACL,SAAU,cACV,YAAa,CACX,GAAI,oBACJ,GAAI,mBACL,CACF,CACF,CAEK,EAAmB,CACvB,MAAO,oBACP,OAAQ,gBACT,CAIK,EAAqB,EAAE,CAE7B,IAAK,GAAM,CAAC,EAAK,KAAU,OAAO,QAAQ,EAAiB,CAAE,CAC3D,IAAM,EAAgB,IAAkB,GAExC,QAAQ,IAAI,gBAAiB,EAAI,CACjC,QAAQ,IAAI,iBAAkB,EAAc,CAG1C,GACA,EAAc,WAAa,eAC3B,EAAc,YAGd,EAAc,GAAO,CACnB,SAAU,cACV,YAAa,CACX,GAAG,EAAc,YAChB,GAAgB,EAClB,CACF,CAGD,EAAc,GAAO,CACnB,SAAU,cACV,YAAa,CACV,GAAgB,EAClB,CACF,CAIL,QAAQ,IAAI,KAAK,UAAU,EAAe,KAAM,EAAE,CAAC"}
@@ -1,2 +0,0 @@
1
- const e={myKey:{nodeType:`translation`,title:`Copy button component`,description:`French localization for the copy button component`,tags:[`component`,`copy-button`],translation:{en:`Old English Value`,fr:`Old French Value`}}},t={myKey:`New English Value (Should not overwrite)`,newKey:`Brand New Key`},n={};for(let[r,i]of Object.entries(t)){let t=e?.[r];t&&t.nodeType===`translation`&&t.translation?n[r]={...t,nodeType:`translation`,translation:{...t.translation,en:t.translation.en??i}}:n[r]={nodeType:`translation`,translation:{en:i}}}console.log(JSON.stringify(n,null,2));
2
- //# sourceMappingURL=test-preserve.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-preserve.mjs","names":[],"sources":["../../src/test-preserve.ts"],"sourcesContent":["import { Dictionary } from '@intlayer/types';\n\n// Testing the NEW merge logic\nconst existingContent = {\n myKey: {\n nodeType: 'translation',\n title: 'Copy button component',\n description: 'French localization for the copy button component',\n tags: ['component', 'copy-button'],\n translation: {\n en: 'Old English Value',\n fr: 'Old French Value',\n },\n },\n};\n\nconst extractedContent = {\n myKey: 'New English Value (Should not overwrite)',\n newKey: 'Brand New Key',\n};\n\nconst defaultLocale = 'en';\n\nconst mergedContent: any = {};\n\nfor (const [key, value] of Object.entries(extractedContent)) {\n const existingEntry = existingContent?.[\n key as keyof typeof existingContent\n ] as any;\n\n if (\n existingEntry &&\n existingEntry.nodeType === 'translation' &&\n existingEntry.translation\n ) {\n mergedContent[key] = {\n ...existingEntry,\n nodeType: 'translation',\n translation: {\n ...existingEntry.translation,\n [defaultLocale]: existingEntry.translation[defaultLocale] ?? value,\n },\n };\n } else {\n mergedContent[key] = {\n nodeType: 'translation',\n translation: {\n [defaultLocale]: value,\n },\n };\n }\n}\n\nconsole.log(JSON.stringify(mergedContent, null, 2));\n"],"mappings":"AAGA,MAAM,EAAkB,CACtB,MAAO,CACL,SAAU,cACV,MAAO,wBACP,YAAa,oDACb,KAAM,CAAC,YAAa,cAAc,CAClC,YAAa,CACX,GAAI,oBACJ,GAAI,mBACL,CACF,CACF,CAEK,EAAmB,CACvB,MAAO,2CACP,OAAQ,gBACT,CAIK,EAAqB,EAAE,CAE7B,IAAK,GAAM,CAAC,EAAK,KAAU,OAAO,QAAQ,EAAiB,CAAE,CAC3D,IAAM,EAAgB,IACpB,GAIA,GACA,EAAc,WAAa,eAC3B,EAAc,YAEd,EAAc,GAAO,CACnB,GAAG,EACH,SAAU,cACV,YAAa,CACX,GAAG,EAAc,YAChB,GAAgB,EAAc,YAAY,IAAkB,EAC9D,CACF,CAED,EAAc,GAAO,CACnB,SAAU,cACV,YAAa,CACV,GAAgB,EAClB,CACF,CAIL,QAAQ,IAAI,KAAK,UAAU,EAAe,KAAM,EAAE,CAAC"}
@@ -1 +0,0 @@
1
- export { };
@@ -1 +0,0 @@
1
- export { };
@@ -1 +0,0 @@
1
- export { };