@justanarthur/payload-plugin-translator 1.3.19 → 1.3.21

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 (128) hide show
  1. package/dist/client.d.ts +6 -0
  2. package/dist/client.js +320 -0
  3. package/dist/index.d.ts +102 -11
  4. package/dist/index.js +1294 -80
  5. package/dist/jobs.d.ts +195 -0
  6. package/dist/jobs.js +824 -0
  7. package/dist/resolvers/copy.d.ts +21 -3
  8. package/dist/resolvers/copy.js +18 -12
  9. package/dist/resolvers/google.d.ts +29 -11
  10. package/dist/resolvers/google.js +58 -44
  11. package/dist/resolvers/libreTranslate.d.ts +33 -15
  12. package/dist/resolvers/libreTranslate.js +60 -45
  13. package/dist/resolvers/openAI.d.ts +39 -21
  14. package/dist/resolvers/openAI.js +111 -99
  15. package/dist/resolvers/types.d.ts +16 -16
  16. package/dist/resolvers/types.js +0 -3
  17. package/dist/{client/components/CustomButton/styles.scss → styles-jt3fm5fh.scss} +5 -5
  18. package/dist/{client/components/TranslatorModal/styles.scss → styles-vs6m7h55.scss} +76 -76
  19. package/dist/types.d.ts +70 -22
  20. package/dist/types.js +0 -3
  21. package/package.json +87 -64
  22. package/README.md +0 -215
  23. package/dist/client/api/index.d.ts +0 -8
  24. package/dist/client/api/index.d.ts.map +0 -1
  25. package/dist/client/api/index.js +0 -28
  26. package/dist/client/api/index.js.map +0 -1
  27. package/dist/client/components/CustomButton/CustomButtonWithTranslator.d.ts +0 -5
  28. package/dist/client/components/CustomButton/CustomButtonWithTranslator.d.ts.map +0 -1
  29. package/dist/client/components/CustomButton/CustomButtonWithTranslator.js +0 -28
  30. package/dist/client/components/CustomButton/CustomButtonWithTranslator.js.map +0 -1
  31. package/dist/client/components/CustomButton/index.d.ts +0 -3
  32. package/dist/client/components/CustomButton/index.d.ts.map +0 -1
  33. package/dist/client/components/CustomButton/index.js +0 -10
  34. package/dist/client/components/CustomButton/index.js.map +0 -1
  35. package/dist/client/components/LocaleLabel/LocaleLabel.d.ts +0 -5
  36. package/dist/client/components/LocaleLabel/LocaleLabel.d.ts.map +0 -1
  37. package/dist/client/components/LocaleLabel/LocaleLabel.js +0 -28
  38. package/dist/client/components/LocaleLabel/LocaleLabel.js.map +0 -1
  39. package/dist/client/components/LocaleLabel/index.d.ts +0 -2
  40. package/dist/client/components/LocaleLabel/index.d.ts.map +0 -1
  41. package/dist/client/components/LocaleLabel/index.js +0 -3
  42. package/dist/client/components/LocaleLabel/index.js.map +0 -1
  43. package/dist/client/components/ResolverButton/ResolverButton.d.ts +0 -5
  44. package/dist/client/components/ResolverButton/ResolverButton.d.ts.map +0 -1
  45. package/dist/client/components/ResolverButton/ResolverButton.js +0 -16
  46. package/dist/client/components/ResolverButton/ResolverButton.js.map +0 -1
  47. package/dist/client/components/ResolverButton/index.d.ts +0 -2
  48. package/dist/client/components/ResolverButton/index.d.ts.map +0 -1
  49. package/dist/client/components/ResolverButton/index.js +0 -3
  50. package/dist/client/components/ResolverButton/index.js.map +0 -1
  51. package/dist/client/components/TranslatorModal/Content.d.ts +0 -2
  52. package/dist/client/components/TranslatorModal/Content.d.ts.map +0 -1
  53. package/dist/client/components/TranslatorModal/Content.js +0 -60
  54. package/dist/client/components/TranslatorModal/Content.js.map +0 -1
  55. package/dist/client/components/TranslatorModal/TranslatorModal.d.ts +0 -3
  56. package/dist/client/components/TranslatorModal/TranslatorModal.d.ts.map +0 -1
  57. package/dist/client/components/TranslatorModal/TranslatorModal.js +0 -26
  58. package/dist/client/components/TranslatorModal/TranslatorModal.js.map +0 -1
  59. package/dist/client/components/TranslatorModal/index.d.ts +0 -2
  60. package/dist/client/components/TranslatorModal/index.d.ts.map +0 -1
  61. package/dist/client/components/TranslatorModal/index.js +0 -3
  62. package/dist/client/components/TranslatorModal/index.js.map +0 -1
  63. package/dist/client/providers/Translator/TranslatorProvider.d.ts +0 -5
  64. package/dist/client/providers/Translator/TranslatorProvider.d.ts.map +0 -1
  65. package/dist/client/providers/Translator/TranslatorProvider.js +0 -109
  66. package/dist/client/providers/Translator/TranslatorProvider.js.map +0 -1
  67. package/dist/client/providers/Translator/context.d.ts +0 -21
  68. package/dist/client/providers/Translator/context.d.ts.map +0 -1
  69. package/dist/client/providers/Translator/context.js +0 -9
  70. package/dist/client/providers/Translator/context.js.map +0 -1
  71. package/dist/exports/client.d.ts +0 -2
  72. package/dist/exports/client.d.ts.map +0 -1
  73. package/dist/exports/client.js +0 -3
  74. package/dist/exports/client.js.map +0 -1
  75. package/dist/i18n-translations.d.ts +0 -87
  76. package/dist/i18n-translations.d.ts.map +0 -1
  77. package/dist/i18n-translations.js +0 -88
  78. package/dist/i18n-translations.js.map +0 -1
  79. package/dist/index.d.ts.map +0 -1
  80. package/dist/index.js.map +0 -1
  81. package/dist/resolvers/copy.d.ts.map +0 -1
  82. package/dist/resolvers/copy.js.map +0 -1
  83. package/dist/resolvers/google.d.ts.map +0 -1
  84. package/dist/resolvers/google.js.map +0 -1
  85. package/dist/resolvers/libreTranslate.d.ts.map +0 -1
  86. package/dist/resolvers/libreTranslate.js.map +0 -1
  87. package/dist/resolvers/openAI.d.ts.map +0 -1
  88. package/dist/resolvers/openAI.js.map +0 -1
  89. package/dist/resolvers/types.d.ts.map +0 -1
  90. package/dist/resolvers/types.js.map +0 -1
  91. package/dist/translate/endpoint.d.ts +0 -3
  92. package/dist/translate/endpoint.d.ts.map +0 -1
  93. package/dist/translate/endpoint.js +0 -23
  94. package/dist/translate/endpoint.js.map +0 -1
  95. package/dist/translate/findEntityWithConfig.d.ts +0 -16
  96. package/dist/translate/findEntityWithConfig.d.ts.map +0 -1
  97. package/dist/translate/findEntityWithConfig.js +0 -34
  98. package/dist/translate/findEntityWithConfig.js.map +0 -1
  99. package/dist/translate/operation.d.ts +0 -9
  100. package/dist/translate/operation.d.ts.map +0 -1
  101. package/dist/translate/operation.js +0 -78
  102. package/dist/translate/operation.js.map +0 -1
  103. package/dist/translate/traverseFields.d.ts +0 -17
  104. package/dist/translate/traverseFields.d.ts.map +0 -1
  105. package/dist/translate/traverseFields.js +0 -233
  106. package/dist/translate/traverseFields.js.map +0 -1
  107. package/dist/translate/traverseRichText.d.ts +0 -10
  108. package/dist/translate/traverseRichText.d.ts.map +0 -1
  109. package/dist/translate/traverseRichText.js +0 -24
  110. package/dist/translate/traverseRichText.js.map +0 -1
  111. package/dist/translate/types.d.ts +0 -27
  112. package/dist/translate/types.d.ts.map +0 -1
  113. package/dist/translate/types.js +0 -3
  114. package/dist/translate/types.js.map +0 -1
  115. package/dist/translate/updateEntity.d.ts +0 -14
  116. package/dist/translate/updateEntity.d.ts.map +0 -1
  117. package/dist/translate/updateEntity.js +0 -26
  118. package/dist/translate/updateEntity.js.map +0 -1
  119. package/dist/types.d.ts.map +0 -1
  120. package/dist/types.js.map +0 -1
  121. package/dist/utils/chunkArray.d.ts +0 -2
  122. package/dist/utils/chunkArray.d.ts.map +0 -1
  123. package/dist/utils/chunkArray.js +0 -7
  124. package/dist/utils/chunkArray.js.map +0 -1
  125. package/dist/utils/isEmpty.d.ts +0 -2
  126. package/dist/utils/isEmpty.d.ts.map +0 -1
  127. package/dist/utils/isEmpty.js +0 -8
  128. package/dist/utils/isEmpty.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"operation.d.ts","sourceRoot":"","sources":["../../src/translate/operation.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,SAAS,CAAA;AAKrE,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAoB,MAAM,SAAS,CAAA;AAG/E,MAAM,MAAM,sBAAsB,GAAG,CACjC;IACE,OAAO,EAAE,OAAO,CAAA;CACjB,GACD;IACE,GAAG,EAAE,cAAc,CAAA;CACpB,CACJ,GACC,aAAa,CAAA;AAEf,eAAO,MAAM,kBAAkB,GAAU,MAAM,sBAAsB,6BA4FpE,CAAA"}
@@ -1,78 +0,0 @@
1
- import he from 'he';
2
- import { APIError } from 'payload';
3
- import { findEntityWithConfig } from './findEntityWithConfig';
4
- import { traverseFields } from './traverseFields';
5
- import { updateEntity } from './updateEntity';
6
- export const translateOperation = async (args)=>{
7
- const req = 'req' in args ? args.req : {
8
- payload: args.payload
9
- };
10
- const { collectionSlug, globalSlug, id, locale, localeFrom, overrideAccess } = args;
11
- const { config, doc: dataFrom } = await findEntityWithConfig({
12
- collectionSlug,
13
- globalSlug,
14
- id,
15
- locale: localeFrom,
16
- req
17
- });
18
- const resolver = (req.payload.config.custom?.translator?.resolvers ?? []).find((each)=>each.key === args.resolver);
19
- if (!resolver) throw new APIError(`Resolver with the key ${args.resolver} was not found`);
20
- const valuesToTranslate = [];
21
- let translatedData = args.data;
22
- if (!translatedData) {
23
- const { doc } = await findEntityWithConfig({
24
- collectionSlug,
25
- globalSlug,
26
- id,
27
- locale,
28
- overrideAccess,
29
- req
30
- });
31
- translatedData = doc;
32
- }
33
- traverseFields({
34
- dataFrom,
35
- emptyOnly: args.emptyOnly,
36
- fields: config.fields,
37
- translatedData,
38
- valuesToTranslate,
39
- _options: req.payload.config.custom?.translator?._options
40
- });
41
- const resolveResult = await resolver.resolve({
42
- localeFrom: args.localeFrom,
43
- localeTo: args.locale,
44
- req,
45
- texts: valuesToTranslate.map((each)=>each.value)
46
- });
47
- let result;
48
- if (!resolveResult.success) {
49
- result = {
50
- success: false
51
- };
52
- } else {
53
- resolveResult.translatedTexts.forEach((translated, index)=>{
54
- const formattedValue = he.decode(translated);
55
- valuesToTranslate[index].onTranslate(formattedValue);
56
- });
57
- if (args.update) {
58
- await updateEntity({
59
- collectionSlug,
60
- data: translatedData,
61
- depth: 0,
62
- globalSlug,
63
- id,
64
- locale,
65
- overrideAccess,
66
- req
67
- });
68
- }
69
- result = {
70
- success: true,
71
- translatedData,
72
- dataFrom
73
- };
74
- }
75
- return result;
76
- };
77
-
78
- //# sourceMappingURL=operation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/translate/operation.ts"],"sourcesContent":["import he from 'he'\r\nimport { APIError, type Payload, type PayloadRequest } from 'payload'\r\n\r\nimport type { TranslateResolver } from '../resolvers/types'\r\nimport { findEntityWithConfig } from './findEntityWithConfig'\r\nimport { traverseFields } from './traverseFields'\r\nimport type { TranslateArgs, TranslateResult, ValueToTranslate } from './types'\r\nimport { updateEntity } from './updateEntity'\r\n\r\nexport type TranslateOperationArgs = (\r\n | {\r\n payload: Payload\r\n }\r\n | {\r\n req: PayloadRequest\r\n }\r\n) &\r\n TranslateArgs\r\n\r\nexport const translateOperation = async (args: TranslateOperationArgs) => {\r\n const req: PayloadRequest =\r\n 'req' in args\r\n ? args.req\r\n : ({\r\n payload: args.payload,\r\n } as PayloadRequest)\r\n\r\n const { collectionSlug, globalSlug, id, locale, localeFrom, overrideAccess } = args\r\n\r\n const { config, doc: dataFrom } = await findEntityWithConfig({\r\n collectionSlug,\r\n globalSlug,\r\n id,\r\n locale: localeFrom,\r\n req,\r\n })\r\n\r\n const resolver = (\r\n (req.payload.config.custom?.translator?.resolvers as TranslateResolver[]) ?? []\r\n ).find((each) => each.key === args.resolver)\r\n\r\n if (!resolver) throw new APIError(`Resolver with the key ${args.resolver} was not found`)\r\n\r\n const valuesToTranslate: ValueToTranslate[] = []\r\n\r\n let translatedData = args.data\r\n\r\n if (!translatedData) {\r\n const { doc } = await findEntityWithConfig({\r\n collectionSlug,\r\n globalSlug,\r\n id,\r\n locale,\r\n overrideAccess,\r\n req,\r\n })\r\n\r\n translatedData = doc\r\n }\r\n\r\n traverseFields({\r\n dataFrom,\r\n emptyOnly: args.emptyOnly,\r\n fields: config.fields,\r\n translatedData,\r\n valuesToTranslate,\r\n\r\n _options: req.payload.config.custom?.translator?._options\r\n })\r\n\r\n const resolveResult = await resolver.resolve({\r\n localeFrom: args.localeFrom,\r\n localeTo: args.locale,\r\n req,\r\n texts: valuesToTranslate.map((each) => each.value),\r\n })\r\n\r\n let result: TranslateResult\r\n\r\n if (!resolveResult.success) {\r\n result = {\r\n success: false,\r\n }\r\n } else {\r\n resolveResult.translatedTexts.forEach((translated, index) => {\r\n const formattedValue = he.decode(translated)\r\n\r\n valuesToTranslate[index].onTranslate(formattedValue)\r\n })\r\n\r\n if (args.update) {\r\n await updateEntity({\r\n collectionSlug,\r\n data: translatedData,\r\n depth: 0,\r\n globalSlug,\r\n id,\r\n locale,\r\n overrideAccess,\r\n req,\r\n })\r\n }\r\n\r\n result = {\r\n success: true,\r\n translatedData,\r\n dataFrom\r\n }\r\n }\r\n\r\n return result\r\n}\r\n"],"names":["he","APIError","findEntityWithConfig","traverseFields","updateEntity","translateOperation","args","req","payload","collectionSlug","globalSlug","id","locale","localeFrom","overrideAccess","config","doc","dataFrom","resolver","custom","translator","resolvers","find","each","key","valuesToTranslate","translatedData","data","emptyOnly","fields","_options","resolveResult","resolve","localeTo","texts","map","value","result","success","translatedTexts","forEach","translated","index","formattedValue","decode","onTranslate","update","depth"],"mappings":"AAAA,OAAOA,QAAQ,KAAI;AACnB,SAASC,QAAQ,QAA2C,UAAS;AAGrE,SAASC,oBAAoB,QAAQ,yBAAwB;AAC7D,SAASC,cAAc,QAAQ,mBAAkB;AAEjD,SAASC,YAAY,QAAQ,iBAAgB;AAY7C,OAAO,MAAMC,qBAAqB,OAAOC;IACvC,MAAMC,MACJ,SAASD,OACLA,KAAKC,GAAG,GACP;QACCC,SAASF,KAAKE,OAAO;IACvB;IAEN,MAAM,EAAEC,cAAc,EAAEC,UAAU,EAAEC,EAAE,EAAEC,MAAM,EAAEC,UAAU,EAAEC,cAAc,EAAE,GAAGR;IAE/E,MAAM,EAAES,MAAM,EAAEC,KAAKC,QAAQ,EAAE,GAAG,MAAMf,qBAAqB;QAC3DO;QACAC;QACAC;QACAC,QAAQC;QACRN;IACF;IAEA,MAAMW,WAAW,AACf,CAAA,AAACX,IAAIC,OAAO,CAACO,MAAM,CAACI,MAAM,EAAEC,YAAYC,aAAqC,EAAE,AAAD,EAC9EC,IAAI,CAAC,CAACC,OAASA,KAAKC,GAAG,KAAKlB,KAAKY,QAAQ;IAE3C,IAAI,CAACA,UAAU,MAAM,IAAIjB,SAAS,CAAC,sBAAsB,EAAEK,KAAKY,QAAQ,CAAC,cAAc,CAAC;IAExF,MAAMO,oBAAwC,EAAE;IAEhD,IAAIC,iBAAiBpB,KAAKqB,IAAI;IAE9B,IAAI,CAACD,gBAAgB;QACnB,MAAM,EAAEV,GAAG,EAAE,GAAG,MAAMd,qBAAqB;YACzCO;YACAC;YACAC;YACAC;YACAE;YACAP;QACF;QAEAmB,iBAAiBV;IACnB;IAEAb,eAAe;QACbc;QACAW,WAAWtB,KAAKsB,SAAS;QACzBC,QAAQd,OAAOc,MAAM;QACrBH;QACAD;QAEAK,UAAUvB,IAAIC,OAAO,CAACO,MAAM,CAACI,MAAM,EAAEC,YAAYU;IACnD;IAEA,MAAMC,gBAAgB,MAAMb,SAASc,OAAO,CAAC;QAC3CnB,YAAYP,KAAKO,UAAU;QAC3BoB,UAAU3B,KAAKM,MAAM;QACrBL;QACA2B,OAAOT,kBAAkBU,GAAG,CAAC,CAACZ,OAASA,KAAKa,KAAK;IACnD;IAEA,IAAIC;IAEJ,IAAI,CAACN,cAAcO,OAAO,EAAE;QAC1BD,SAAS;YACPC,SAAS;QACX;IACF,OAAO;QACLP,cAAcQ,eAAe,CAACC,OAAO,CAAC,CAACC,YAAYC;YACjD,MAAMC,iBAAiB3C,GAAG4C,MAAM,CAACH;YAEjChB,iBAAiB,CAACiB,MAAM,CAACG,WAAW,CAACF;QACvC;QAEA,IAAIrC,KAAKwC,MAAM,EAAE;YACf,MAAM1C,aAAa;gBACjBK;gBACAkB,MAAMD;gBACNqB,OAAO;gBACPrC;gBACAC;gBACAC;gBACAE;gBACAP;YACF;QACF;QAEA8B,SAAS;YACPC,SAAS;YACTZ;YACAT;QACF;IACF;IAEA,OAAOoB;AACT,EAAC"}
@@ -1,17 +0,0 @@
1
- import type { Field } from 'payload';
2
- import { traverseRichText } from './traverseRichText';
3
- import type { ValueToTranslate } from './types';
4
- export declare const traverseFields: ({ dataFrom, emptyOnly, fields, localizedParent, siblingDataFrom, siblingDataTranslated, translatedData, valuesToTranslate, _options }: {
5
- dataFrom: Record<string, unknown>;
6
- emptyOnly?: boolean;
7
- fields: Field[];
8
- localizedParent?: boolean;
9
- siblingDataFrom?: Record<string, unknown>;
10
- siblingDataTranslated?: Record<string, unknown>;
11
- translatedData: Record<string, unknown>;
12
- valuesToTranslate: ValueToTranslate[];
13
- _options?: {
14
- additionalTraverseRichText?: Parameters<typeof traverseRichText>[0]["additionalTraverseRichText"];
15
- };
16
- }) => void;
17
- //# sourceMappingURL=traverseFields.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../src/translate/traverseFields.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAIpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE/C,eAAO,MAAM,cAAc,GAAI,uIAWG;IAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACzC,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/C,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IAEtC,QAAQ,CAAC,EAAE;QACT,0BAA0B,CAAC,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAA;KAClG,CAAA;CACF,SAuSA,CAAA"}
@@ -1,233 +0,0 @@
1
- import ObjectID from 'bson-objectid';
2
- import { tabHasName } from 'payload/shared';
3
- import { isEmpty } from '../utils/isEmpty';
4
- import { traverseRichText } from './traverseRichText';
5
- export const traverseFields = ({ dataFrom, emptyOnly, fields, localizedParent, siblingDataFrom, siblingDataTranslated, translatedData, valuesToTranslate, _options })=>{
6
- const { additionalTraverseRichText } = _options ?? {};
7
- siblingDataFrom = siblingDataFrom ?? dataFrom;
8
- siblingDataTranslated = siblingDataTranslated ?? translatedData;
9
- for (const field of fields){
10
- switch(field.type){
11
- case 'tabs':
12
- for (const tab of field.tabs){
13
- const hasName = tabHasName(tab);
14
- const tabDataFrom = hasName ? siblingDataFrom[tab.name] : siblingDataFrom;
15
- if (!tabDataFrom) return;
16
- let tabDataTranslated;
17
- if (hasName) {
18
- if (!siblingDataTranslated[tab.name]) siblingDataTranslated[tab.name] = {};
19
- tabDataTranslated = siblingDataTranslated[tab.name];
20
- } else {
21
- tabDataTranslated = siblingDataTranslated;
22
- }
23
- traverseFields({
24
- dataFrom,
25
- emptyOnly,
26
- fields: tab.fields,
27
- localizedParent: localizedParent ?? tab.localized,
28
- siblingDataFrom: tabDataFrom,
29
- siblingDataTranslated: tabDataTranslated,
30
- translatedData,
31
- valuesToTranslate,
32
- _options
33
- });
34
- }
35
- break;
36
- case 'group':
37
- {
38
- if (!('name' in field)) break;
39
- const groupDataFrom = siblingDataFrom[field.name];
40
- if (!groupDataFrom) break;
41
- if (!siblingDataTranslated[field.name]) siblingDataTranslated[field.name] = {};
42
- const groupDataTranslated = siblingDataTranslated[field.name];
43
- traverseFields({
44
- dataFrom,
45
- emptyOnly,
46
- fields: field.fields,
47
- localizedParent: localizedParent ?? field.localized,
48
- siblingDataFrom: groupDataFrom,
49
- siblingDataTranslated: groupDataTranslated,
50
- translatedData,
51
- valuesToTranslate,
52
- _options
53
- });
54
- break;
55
- }
56
- case 'array':
57
- {
58
- const arrayDataFrom = siblingDataFrom[field.name];
59
- if (isEmpty(arrayDataFrom)) break;
60
- if (!siblingDataTranslated[field.name]) siblingDataTranslated[field.name] = [];
61
- let arrayDataTranslated = siblingDataTranslated[field.name];
62
- if (field.localized || localizedParent) {
63
- if (arrayDataTranslated.length > 0 && emptyOnly) break;
64
- arrayDataTranslated = arrayDataFrom.map(()=>({
65
- id: ObjectID().toHexString()
66
- }));
67
- }
68
- arrayDataTranslated.forEach((item, index)=>{
69
- traverseFields({
70
- dataFrom,
71
- emptyOnly,
72
- fields: field.fields,
73
- localizedParent: localizedParent ?? field.localized,
74
- siblingDataFrom: arrayDataFrom[index],
75
- siblingDataTranslated: item,
76
- translatedData,
77
- valuesToTranslate,
78
- _options
79
- });
80
- });
81
- siblingDataTranslated[field.name] = arrayDataTranslated;
82
- break;
83
- }
84
- case 'blocks':
85
- {
86
- const blocksDataFrom = siblingDataFrom[field.name];
87
- if (isEmpty(blocksDataFrom)) break;
88
- if (!siblingDataTranslated[field.name]) siblingDataTranslated[field.name] = [];
89
- let blocksDataTranslated = siblingDataTranslated[field.name];
90
- if (field.localized || localizedParent) {
91
- if (blocksDataTranslated.length > 0 && emptyOnly) break;
92
- blocksDataTranslated = blocksDataFrom.map(({ blockType })=>({
93
- blockType,
94
- id: ObjectID().toHexString()
95
- }));
96
- }
97
- blocksDataTranslated.forEach((item, index)=>{
98
- const block = field.blocks.find((each)=>each.slug === item.blockType);
99
- if (!block) return;
100
- traverseFields({
101
- dataFrom,
102
- emptyOnly,
103
- fields: block.fields,
104
- localizedParent: localizedParent ?? field.localized,
105
- siblingDataFrom: blocksDataFrom[index],
106
- siblingDataTranslated: item,
107
- translatedData,
108
- valuesToTranslate,
109
- _options
110
- });
111
- });
112
- siblingDataTranslated[field.name] = blocksDataTranslated;
113
- break;
114
- }
115
- case 'collapsible':
116
- case 'row':
117
- traverseFields({
118
- dataFrom,
119
- emptyOnly,
120
- fields: field.fields,
121
- localizedParent,
122
- siblingDataFrom,
123
- siblingDataTranslated,
124
- translatedData,
125
- valuesToTranslate,
126
- _options
127
- });
128
- break;
129
- // long ass cases here we have
130
- case 'date':
131
- case 'checkbox':
132
- case 'code':
133
- case 'email':
134
- case 'number':
135
- case 'point':
136
- case 'radio':
137
- case 'relationship':
138
- case 'select':
139
- case 'upload':
140
- siblingDataTranslated[field.name] = siblingDataFrom[field.name];
141
- break;
142
- case 'json':
143
- if (!(field.localized || localizedParent)) break;
144
- if (isEmpty(siblingDataFrom[field.name])) break;
145
- if (emptyOnly && siblingDataTranslated[field.name]) break;
146
- const jsonDataFrom = siblingDataFrom[field.name];
147
- const jsonDataTranslated = JSON.parse(JSON.stringify(jsonDataFrom));
148
- siblingDataTranslated[field.name] = jsonDataTranslated;
149
- function traverseObject(obj) {
150
- if (!obj || typeof obj !== 'object') return;
151
- for(const key in obj){
152
- const value = obj[key];
153
- if (typeof value === 'string' && value.trim()) {
154
- ((parentObj, parentKey, parentValue)=>{
155
- valuesToTranslate.push({
156
- onTranslate: (translated)=>{
157
- parentObj[parentKey] = translated;
158
- },
159
- value: parentValue
160
- });
161
- })(obj, key, value);
162
- } else if (typeof value === 'object' && value !== null) {
163
- traverseObject(value);
164
- }
165
- }
166
- }
167
- traverseObject(jsonDataTranslated);
168
- break;
169
- case 'text':
170
- case 'textarea':
171
- if (field.custom && typeof field.custom === 'object' && field.custom.translatorSkip) break;
172
- if (!(field.localized || localizedParent) || isEmpty(siblingDataFrom[field.name])) break;
173
- if (emptyOnly && siblingDataTranslated[field.name]) break;
174
- // do not translate the block ID or admin-facing label
175
- if (field.name === 'blockName' || field.name === 'id') {
176
- break;
177
- }
178
- valuesToTranslate.push({
179
- onTranslate: (translated)=>{
180
- siblingDataTranslated[field.name] = translated;
181
- },
182
- value: siblingDataFrom[field.name]
183
- });
184
- break;
185
- case 'richText':
186
- {
187
- if (!(field.localized || localizedParent) || isEmpty(siblingDataFrom[field.name])) break;
188
- if (emptyOnly && siblingDataTranslated[field.name]) break;
189
- const richTextDataFrom = siblingDataFrom[field.name];
190
- siblingDataTranslated[field.name] = richTextDataFrom;
191
- if (!richTextDataFrom) break;
192
- const isSlate = Array.isArray(richTextDataFrom);
193
- const isLexical = 'root' in richTextDataFrom;
194
- if (!isSlate && !isLexical) break;
195
- if (isLexical) {
196
- const root = siblingDataTranslated[field.name]?.root;
197
- if (root) traverseRichText({
198
- onText: (siblingData, attribute = 'text')=>{
199
- valuesToTranslate.push({
200
- onTranslate: (translated)=>{
201
- siblingData[attribute] = translated;
202
- },
203
- value: siblingData[attribute]
204
- });
205
- },
206
- root,
207
- additionalTraverseRichText
208
- });
209
- } else {
210
- for (const root of siblingDataTranslated[field.name]){
211
- traverseRichText({
212
- onText: (siblingData, attribute = 'text')=>{
213
- valuesToTranslate.push({
214
- onTranslate: (translated)=>{
215
- siblingData[attribute] = translated;
216
- },
217
- value: siblingData[attribute]
218
- });
219
- },
220
- root: root,
221
- additionalTraverseRichText
222
- });
223
- }
224
- }
225
- break;
226
- }
227
- default:
228
- break;
229
- }
230
- }
231
- };
232
-
233
- //# sourceMappingURL=traverseFields.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/translate/traverseFields.ts"],"sourcesContent":["import ObjectID from 'bson-objectid'\r\nimport type { Field } from 'payload'\r\nimport { tabHasName } from 'payload/shared'\r\n\r\nimport { isEmpty } from '../utils/isEmpty'\r\nimport { traverseRichText } from './traverseRichText'\r\nimport type { ValueToTranslate } from './types'\r\n\r\nexport const traverseFields = ({\r\n dataFrom,\r\n emptyOnly,\r\n fields,\r\n localizedParent,\r\n siblingDataFrom,\r\n siblingDataTranslated,\r\n translatedData,\r\n valuesToTranslate,\r\n\r\n _options\r\n }: {\r\n dataFrom: Record<string, unknown>\r\n emptyOnly?: boolean\r\n fields: Field[]\r\n localizedParent?: boolean\r\n siblingDataFrom?: Record<string, unknown>\r\n siblingDataTranslated?: Record<string, unknown>\r\n translatedData: Record<string, unknown>\r\n valuesToTranslate: ValueToTranslate[],\r\n\r\n _options?: {\r\n additionalTraverseRichText?: Parameters<typeof traverseRichText>[0]['additionalTraverseRichText']\r\n }\r\n}) => {\r\n const { additionalTraverseRichText } = _options ?? {}\r\n siblingDataFrom = siblingDataFrom ?? dataFrom\r\n siblingDataTranslated = siblingDataTranslated ?? translatedData\r\n\r\n for (const field of fields) {\r\n switch (field.type) {\r\n case 'tabs':\r\n for (const tab of field.tabs) {\r\n const hasName = tabHasName(tab)\r\n\r\n const tabDataFrom = hasName\r\n ? (siblingDataFrom[tab.name] as Record<string, unknown>)\r\n : siblingDataFrom\r\n\r\n if (!tabDataFrom) return\r\n\r\n let tabDataTranslated: Record<string, unknown>\r\n\r\n if (hasName) {\r\n if (!siblingDataTranslated[tab.name])\r\n siblingDataTranslated[tab.name] = {}\r\n\r\n tabDataTranslated = siblingDataTranslated[tab.name] as Record<string, unknown>\r\n } else {\r\n tabDataTranslated = siblingDataTranslated\r\n }\r\n\r\n traverseFields({\r\n dataFrom,\r\n emptyOnly,\r\n fields: tab.fields,\r\n localizedParent: localizedParent ?? tab.localized,\r\n siblingDataFrom: tabDataFrom,\r\n siblingDataTranslated: tabDataTranslated,\r\n translatedData,\r\n valuesToTranslate,\r\n _options\r\n })\r\n }\r\n\r\n break\r\n\r\n case 'group': {\r\n if (!('name' in field)) break\r\n\r\n const groupDataFrom = siblingDataFrom[field.name] as Record<string, unknown>\r\n\r\n if (!groupDataFrom) break\r\n\r\n if (!siblingDataTranslated[field.name])\r\n siblingDataTranslated[field.name] = {}\r\n\r\n const groupDataTranslated = siblingDataTranslated[field.name] as Record<string, unknown>\r\n\r\n traverseFields({\r\n dataFrom,\r\n emptyOnly,\r\n fields: field.fields,\r\n localizedParent: localizedParent ?? field.localized,\r\n siblingDataFrom: groupDataFrom,\r\n siblingDataTranslated: groupDataTranslated,\r\n translatedData,\r\n valuesToTranslate,\r\n _options\r\n })\r\n\r\n break\r\n }\r\n\r\n case 'array': {\r\n const arrayDataFrom = siblingDataFrom[field.name] as {\r\n id: string\r\n }[]\r\n\r\n if (isEmpty(arrayDataFrom)) break\r\n\r\n if (!siblingDataTranslated[field.name])\r\n siblingDataTranslated[field.name] = []\r\n\r\n let arrayDataTranslated = siblingDataTranslated[field.name] as { id: string }[]\r\n\r\n if (field.localized || localizedParent) {\r\n if (arrayDataTranslated.length > 0 && emptyOnly) break\r\n\r\n arrayDataTranslated = arrayDataFrom.map(() => ({\r\n id: ObjectID().toHexString()\r\n }))\r\n }\r\n\r\n arrayDataTranslated.forEach((item, index) => {\r\n traverseFields({\r\n dataFrom,\r\n emptyOnly,\r\n fields: field.fields,\r\n localizedParent: localizedParent ?? field.localized,\r\n siblingDataFrom: arrayDataFrom[index],\r\n siblingDataTranslated: item,\r\n translatedData,\r\n valuesToTranslate,\r\n _options\r\n })\r\n })\r\n\r\n siblingDataTranslated[field.name] = arrayDataTranslated\r\n\r\n break\r\n }\r\n\r\n case 'blocks': {\r\n const blocksDataFrom = siblingDataFrom[field.name] as {\r\n blockType: string\r\n id: string\r\n }[]\r\n\r\n if (isEmpty(blocksDataFrom)) break\r\n\r\n if (!siblingDataTranslated[field.name])\r\n siblingDataTranslated[field.name] = []\r\n\r\n let blocksDataTranslated = siblingDataTranslated[field.name] as { blockType: string; id: string }[]\r\n\r\n if (field.localized || localizedParent) {\r\n if (blocksDataTranslated.length > 0 && emptyOnly) break\r\n\r\n blocksDataTranslated = blocksDataFrom.map(({ blockType }) => ({\r\n blockType,\r\n id: ObjectID().toHexString()\r\n }))\r\n }\r\n\r\n blocksDataTranslated.forEach((item, index) => {\r\n const block = field.blocks.find((each) => each.slug === item.blockType)\r\n\r\n if (!block) return\r\n\r\n traverseFields({\r\n dataFrom,\r\n emptyOnly,\r\n fields: block.fields,\r\n localizedParent: localizedParent ?? field.localized,\r\n siblingDataFrom: blocksDataFrom[index],\r\n siblingDataTranslated: item,\r\n translatedData,\r\n valuesToTranslate,\r\n _options\r\n })\r\n })\r\n\r\n siblingDataTranslated[field.name] = blocksDataTranslated\r\n\r\n break\r\n }\r\n\r\n case 'collapsible':\r\n case 'row':\r\n traverseFields({\r\n dataFrom,\r\n emptyOnly,\r\n fields: field.fields,\r\n localizedParent,\r\n siblingDataFrom,\r\n siblingDataTranslated,\r\n translatedData,\r\n valuesToTranslate,\r\n _options\r\n })\r\n break\r\n\r\n // long ass cases here we have\r\n case 'date':\r\n case 'checkbox':\r\n case 'code':\r\n case 'email':\r\n case 'number':\r\n case 'point':\r\n case 'radio':\r\n case 'relationship':\r\n case 'select':\r\n case 'upload':\r\n siblingDataTranslated[field.name] = siblingDataFrom[field.name]\r\n break\r\n\r\n case 'json':\r\n if (!(field.localized || localizedParent)) break\r\n if (isEmpty(siblingDataFrom[field.name])) break\r\n if (emptyOnly && siblingDataTranslated[field.name]) break\r\n\r\n const jsonDataFrom = siblingDataFrom[field.name]\r\n const jsonDataTranslated = JSON.parse(JSON.stringify(jsonDataFrom))\r\n siblingDataTranslated[field.name] = jsonDataTranslated\r\n\r\n function traverseObject(obj: Record<string, any>) {\r\n if (!obj || typeof obj !== 'object') return\r\n\r\n for (const key in obj) {\r\n const value = obj[key]\r\n\r\n if (typeof value === 'string' && value.trim()) {\r\n ((parentObj, parentKey, parentValue) => {\r\n valuesToTranslate.push({\r\n onTranslate: (translated) => {\r\n parentObj[parentKey] = translated\r\n },\r\n value: parentValue\r\n })\r\n })(obj, key, value)\r\n } else if (typeof value === 'object' && value !== null) {\r\n traverseObject(value)\r\n }\r\n }\r\n }\r\n\r\n traverseObject(jsonDataTranslated)\r\n break\r\n\r\n case 'text':\r\n case 'textarea':\r\n if (field.custom && typeof field.custom === 'object' && field.custom.translatorSkip) break\r\n\r\n if (!(field.localized || localizedParent) || isEmpty(siblingDataFrom[field.name])) break\r\n if (emptyOnly && siblingDataTranslated[field.name]) break\r\n\r\n // do not translate the block ID or admin-facing label\r\n if (field.name === 'blockName' || field.name === 'id') {\r\n break\r\n }\r\n\r\n valuesToTranslate.push({\r\n onTranslate: (translated: string) => {\r\n siblingDataTranslated[field.name] = translated\r\n },\r\n value: siblingDataFrom[field.name]\r\n })\r\n break\r\n\r\n case 'richText': {\r\n if (!(field.localized || localizedParent) || isEmpty(siblingDataFrom[field.name])) break\r\n if (emptyOnly && siblingDataTranslated[field.name]) break\r\n\r\n const richTextDataFrom = siblingDataFrom[field.name] as object\r\n\r\n siblingDataTranslated[field.name] = richTextDataFrom\r\n\r\n if (!richTextDataFrom) break\r\n\r\n const isSlate = Array.isArray(richTextDataFrom)\r\n\r\n const isLexical = 'root' in richTextDataFrom\r\n\r\n if (!isSlate && !isLexical) break\r\n\r\n if (isLexical) {\r\n const root = (siblingDataTranslated[field.name] as Record<string, unknown>)\r\n ?.root as Record<string, unknown>\r\n\r\n if (root)\r\n traverseRichText({\r\n onText: (siblingData, attribute = 'text') => {\r\n valuesToTranslate.push({\r\n onTranslate: (translated: string) => {\r\n siblingData[attribute] = translated\r\n },\r\n value: siblingData[attribute]\r\n })\r\n },\r\n root,\r\n\r\n additionalTraverseRichText\r\n })\r\n } else {\r\n for (const root of siblingDataTranslated[field.name] as unknown[]) {\r\n traverseRichText({\r\n onText: (siblingData, attribute = 'text') => {\r\n valuesToTranslate.push({\r\n onTranslate: (translated: string) => {\r\n siblingData[attribute] = translated\r\n },\r\n value: siblingData[attribute]\r\n })\r\n },\r\n root: root as Record<string, unknown>,\r\n\r\n additionalTraverseRichText\r\n })\r\n }\r\n }\r\n\r\n break\r\n }\r\n\r\n default:\r\n break\r\n }\r\n }\r\n}\r\n"],"names":["ObjectID","tabHasName","isEmpty","traverseRichText","traverseFields","dataFrom","emptyOnly","fields","localizedParent","siblingDataFrom","siblingDataTranslated","translatedData","valuesToTranslate","_options","additionalTraverseRichText","field","type","tab","tabs","hasName","tabDataFrom","name","tabDataTranslated","localized","groupDataFrom","groupDataTranslated","arrayDataFrom","arrayDataTranslated","length","map","id","toHexString","forEach","item","index","blocksDataFrom","blocksDataTranslated","blockType","block","blocks","find","each","slug","jsonDataFrom","jsonDataTranslated","JSON","parse","stringify","traverseObject","obj","key","value","trim","parentObj","parentKey","parentValue","push","onTranslate","translated","custom","translatorSkip","richTextDataFrom","isSlate","Array","isArray","isLexical","root","onText","siblingData","attribute"],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- type TraverseRichTextParams = {
2
- onText: (siblingData: Record<string, unknown>, attribute?: string) => void;
3
- root: Record<string, unknown>;
4
- siblingData?: Record<string, unknown>;
5
- };
6
- export declare const traverseRichText: ({ onText, root, siblingData, additionalTraverseRichText }: TraverseRichTextParams & {
7
- additionalTraverseRichText: ((args: TraverseRichTextParams) => void) | undefined;
8
- }) => void;
9
- export {};
10
- //# sourceMappingURL=traverseRichText.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"traverseRichText.d.ts","sourceRoot":"","sources":["../../src/translate/traverseRichText.ts"],"names":[],"mappings":"AAAA,KAAK,sBAAsB,GAAG;IAC5B,MAAM,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1E,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACtC,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,2DAMG,sBAAsB,GAAG;IAC3D,0BAA0B,EAAE,CAAC,CAAC,IAAI,EAAE,sBAAsB,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;CACjF,SAmBA,CAAA"}
@@ -1,24 +0,0 @@
1
- export const traverseRichText = ({ onText, root, siblingData, additionalTraverseRichText })=>{
2
- siblingData = siblingData ?? root;
3
- if (siblingData.text) {
4
- onText(siblingData);
5
- }
6
- if (Array.isArray(siblingData?.children)) {
7
- for (const child of siblingData.children){
8
- traverseRichText({
9
- onText,
10
- root,
11
- siblingData: child,
12
- additionalTraverseRichText
13
- });
14
- }
15
- } else {
16
- additionalTraverseRichText?.({
17
- onText,
18
- root,
19
- siblingData
20
- });
21
- }
22
- };
23
-
24
- //# sourceMappingURL=traverseRichText.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/translate/traverseRichText.ts"],"sourcesContent":["type TraverseRichTextParams = {\r\n onText: (siblingData: Record<string, unknown>, attribute?: string) => void\r\n root: Record<string, unknown>\r\n siblingData?: Record<string, unknown>\r\n}\r\n\r\nexport const traverseRichText = ({\r\n onText,\r\n root,\r\n siblingData,\r\n\r\n additionalTraverseRichText\r\n }: TraverseRichTextParams & {\r\n additionalTraverseRichText: ((args: TraverseRichTextParams) => void) | undefined\r\n}) => {\r\n siblingData = siblingData ?? root\r\n\r\n if (siblingData.text) {\r\n onText(siblingData)\r\n }\r\n\r\n if (Array.isArray(siblingData?.children)) {\r\n for (const child of siblingData.children) {\r\n traverseRichText({\r\n onText,\r\n root,\r\n siblingData: child,\r\n additionalTraverseRichText\r\n })\r\n }\r\n } else {\r\n additionalTraverseRichText?.({ onText, root, siblingData })\r\n }\r\n}\r\n"],"names":["traverseRichText","onText","root","siblingData","additionalTraverseRichText","text","Array","isArray","children","child"],"mappings":"AAMA,OAAO,MAAMA,mBAAmB,CAAC,EACEC,MAAM,EACNC,IAAI,EACJC,WAAW,EAEXC,0BAA0B,EAG5D;IACCD,cAAcA,eAAeD;IAE7B,IAAIC,YAAYE,IAAI,EAAE;QACpBJ,OAAOE;IACT;IAEA,IAAIG,MAAMC,OAAO,CAACJ,aAAaK,WAAW;QACxC,KAAK,MAAMC,SAASN,YAAYK,QAAQ,CAAE;YACxCR,iBAAiB;gBACfC;gBACAC;gBACAC,aAAaM;gBACbL;YACF;QACF;IACF,OAAO;QACLA,6BAA6B;YAAEH;YAAQC;YAAMC;QAAY;IAC3D;AACF,EAAC"}
@@ -1,27 +0,0 @@
1
- import { Doc } from "./findEntityWithConfig";
2
- export type ValueToTranslate = {
3
- onTranslate: (translatedValue: any) => void;
4
- value: any;
5
- };
6
- export type TranslateArgs = {
7
- collectionSlug?: string;
8
- data?: Record<string, any>;
9
- emptyOnly?: boolean;
10
- globalSlug?: string;
11
- id?: number | string;
12
- /** active locale */
13
- locale: string;
14
- localeFrom: string;
15
- overrideAccess?: boolean;
16
- resolver: string;
17
- update?: boolean;
18
- };
19
- export type TranslateResult = {
20
- success: false;
21
- } | {
22
- success: true;
23
- translatedData: Record<string, any>;
24
- dataFrom: Doc;
25
- };
26
- export type TranslateEndpointArgs = Omit<TranslateArgs, 'update'>;
27
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/translate/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAA;AAE5C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,WAAW,EAAE,CAAC,eAAe,EAAE,GAAG,KAAK,IAAI,CAAA;IAC3C,KAAK,EAAE,GAAG,CAAA;CACX,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,oBAAoB;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,eAAe,GACvB;IACF,OAAO,EAAE,KAAK,CAAA;CACf,GACG;IACF,OAAO,EAAE,IAAI,CAAA;IACb,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,QAAQ,EAAE,GAAG,CAAA;CACd,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAA"}
@@ -1,3 +0,0 @@
1
- export { };
2
-
3
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/translate/types.ts"],"sourcesContent":["import { Doc } from \"./findEntityWithConfig\"\r\n\r\nexport type ValueToTranslate = {\r\n onTranslate: (translatedValue: any) => void\r\n value: any\r\n}\r\n\r\nexport type TranslateArgs = {\r\n collectionSlug?: string\r\n data?: Record<string, any>\r\n emptyOnly?: boolean\r\n globalSlug?: string\r\n id?: number | string\r\n /** active locale */\r\n locale: string\r\n localeFrom: string\r\n overrideAccess?: boolean\r\n resolver: string\r\n update?: boolean\r\n}\r\n\r\nexport type TranslateResult =\r\n | {\r\n success: false\r\n}\r\n | {\r\n success: true\r\n translatedData: Record<string, any>,\r\n dataFrom: Doc\r\n}\r\n\r\nexport type TranslateEndpointArgs = Omit<TranslateArgs, 'update'>\r\n"],"names":[],"mappings":"AA+BA,WAAiE"}
@@ -1,14 +0,0 @@
1
- import type { PayloadRequest, TypeWithID } from 'payload';
2
- type Args = {
3
- collectionSlug?: string;
4
- data: Record<string, any>;
5
- depth?: number;
6
- globalSlug?: string;
7
- id?: number | string;
8
- locale: string;
9
- overrideAccess?: boolean;
10
- req: PayloadRequest;
11
- };
12
- export declare const updateEntity: ({ collectionSlug, data, depth: incomingDepth, globalSlug, id, locale, overrideAccess, req, }: Args) => Promise<Record<string, unknown> & TypeWithID>;
13
- export {};
14
- //# sourceMappingURL=updateEntity.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"updateEntity.d.ts","sourceRoot":"","sources":["../../src/translate/updateEntity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA8B,cAAc,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAGrF,KAAK,IAAI,GAAG;IACV,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,8FAS1B,IAAI,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CA6BrD,CAAA"}
@@ -1,26 +0,0 @@
1
- import { APIError } from 'payload';
2
- export const updateEntity = ({ collectionSlug, data, depth: incomingDepth, globalSlug, id, locale, overrideAccess, req })=>{
3
- if (!collectionSlug && !globalSlug) throw new APIError('Bad Request', 400);
4
- const isGlobal = !!globalSlug;
5
- if (!isGlobal && !id) throw new APIError('Bad Request', 400);
6
- const depth = incomingDepth ?? req.payload.config.defaultDepth;
7
- const promise = isGlobal ? req.payload.updateGlobal({
8
- data,
9
- depth,
10
- locale: locale,
11
- overrideAccess,
12
- req,
13
- slug: globalSlug
14
- }) : req.payload.update({
15
- collection: collectionSlug,
16
- data,
17
- depth,
18
- id: id,
19
- locale: locale,
20
- overrideAccess,
21
- req
22
- });
23
- return promise;
24
- };
25
-
26
- //# sourceMappingURL=updateEntity.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/translate/updateEntity.ts"],"sourcesContent":["import type { CollectionSlug, GlobalSlug, PayloadRequest, TypeWithID } from 'payload'\r\nimport { APIError } from 'payload'\r\n\r\ntype Args = {\r\n collectionSlug?: string\r\n data: Record<string, any>\r\n depth?: number\r\n globalSlug?: string\r\n id?: number | string\r\n locale: string\r\n overrideAccess?: boolean\r\n req: PayloadRequest\r\n}\r\n\r\nexport const updateEntity = ({\r\n collectionSlug,\r\n data,\r\n depth: incomingDepth,\r\n globalSlug,\r\n id,\r\n locale,\r\n overrideAccess,\r\n req,\r\n}: Args): Promise<Record<string, unknown> & TypeWithID> => {\r\n if (!collectionSlug && !globalSlug) throw new APIError('Bad Request', 400)\r\n\r\n const isGlobal = !!globalSlug\r\n\r\n if (!isGlobal && !id) throw new APIError('Bad Request', 400)\r\n\r\n const depth = incomingDepth ?? req.payload.config.defaultDepth\r\n\r\n const promise = isGlobal\r\n ? req.payload.updateGlobal({\r\n data,\r\n depth,\r\n locale: locale as any,\r\n overrideAccess,\r\n req,\r\n slug: globalSlug as GlobalSlug,\r\n })\r\n : req.payload.update({\r\n collection: collectionSlug as CollectionSlug,\r\n data,\r\n depth,\r\n id: id as number | string,\r\n locale: locale as any,\r\n overrideAccess,\r\n req,\r\n })\r\n\r\n return promise as any\r\n}\r\n"],"names":["APIError","updateEntity","collectionSlug","data","depth","incomingDepth","globalSlug","id","locale","overrideAccess","req","isGlobal","payload","config","defaultDepth","promise","updateGlobal","slug","update","collection"],"mappings":"AACA,SAASA,QAAQ,QAAQ,UAAS;AAalC,OAAO,MAAMC,eAAe,CAAC,EAC3BC,cAAc,EACdC,IAAI,EACJC,OAAOC,aAAa,EACpBC,UAAU,EACVC,EAAE,EACFC,MAAM,EACNC,cAAc,EACdC,GAAG,EACE;IACL,IAAI,CAACR,kBAAkB,CAACI,YAAY,MAAM,IAAIN,SAAS,eAAe;IAEtE,MAAMW,WAAW,CAAC,CAACL;IAEnB,IAAI,CAACK,YAAY,CAACJ,IAAI,MAAM,IAAIP,SAAS,eAAe;IAExD,MAAMI,QAAQC,iBAAiBK,IAAIE,OAAO,CAACC,MAAM,CAACC,YAAY;IAE9D,MAAMC,UAAUJ,WACZD,IAAIE,OAAO,CAACI,YAAY,CAAC;QACvBb;QACAC;QACAI,QAAQA;QACRC;QACAC;QACAO,MAAMX;IACR,KACAI,IAAIE,OAAO,CAACM,MAAM,CAAC;QACjBC,YAAYjB;QACZC;QACAC;QACAG,IAAIA;QACJC,QAAQA;QACRC;QACAC;IACF;IAEJ,OAAOK;AACT,EAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAE3D,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,WAAW,EAAE,cAAc,EAAE,CAAA;IAC7B;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,OAAO,EAAE,UAAU,EAAE,CAAA;IACrB;;OAEG;IACH,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAE/B,QAAQ,CAAC,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;CAC5D,CAAA"}
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type { CollectionSlug, GlobalSlug } from 'payload'\r\n\r\nimport type { TranslateResolver } from './resolvers/types'\r\nimport { traverseFields } from \"./translate/traverseFields\"\r\n\r\nexport type TranslatorConfig = {\r\n /**\r\n * Collections with the enabled translator in the admin UI\r\n */\r\n collections: CollectionSlug[]\r\n /**\r\n * Disable the plugin\r\n */\r\n disabled?: boolean\r\n /**\r\n * Globals with the enabled translator in the admin UI\r\n */\r\n globals: GlobalSlug[]\r\n /**\r\n * Add resolvers that you want to include, examples on how to write your own in ./plugin/src/resolvers\r\n */\r\n resolvers: TranslateResolver[],\r\n\r\n _options?: Parameters<typeof traverseFields>[0]['_options']\r\n}\r\n"],"names":[],"mappings":"AAKA,WAmBC"}
@@ -1,2 +0,0 @@
1
- export declare const chunkArray: <T>(array: T[], length: number) => T[][];
2
- //# sourceMappingURL=chunkArray.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunkArray.d.ts","sourceRoot":"","sources":["../../src/utils/chunkArray.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,GAAI,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,QAAQ,MAAM,KAAG,CAAC,EAAE,EAI7D,CAAA"}
@@ -1,7 +0,0 @@
1
- export const chunkArray = (array, length)=>{
2
- return Array.from({
3
- length: Math.ceil(array.length / length)
4
- }, (_, i)=>array.slice(i * length, i * length + length));
5
- };
6
-
7
- //# sourceMappingURL=chunkArray.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utils/chunkArray.ts"],"sourcesContent":["export const chunkArray = <T>(array: T[], length: number): T[][] => {\r\n return Array.from({ length: Math.ceil(array.length / length) }, (_, i) =>\r\n array.slice(i * length, i * length + length),\r\n )\r\n}\r\n"],"names":["chunkArray","array","length","Array","from","Math","ceil","_","i","slice"],"mappings":"AAAA,OAAO,MAAMA,aAAa,CAAIC,OAAYC;IACxC,OAAOC,MAAMC,IAAI,CAAC;QAAEF,QAAQG,KAAKC,IAAI,CAACL,MAAMC,MAAM,GAAGA;IAAQ,GAAG,CAACK,GAAGC,IAClEP,MAAMQ,KAAK,CAACD,IAAIN,QAAQM,IAAIN,SAASA;AAEzC,EAAC"}
@@ -1,2 +0,0 @@
1
- export declare const isEmpty: (value: unknown) => boolean;
2
- //# sourceMappingURL=isEmpty.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isEmpty.d.ts","sourceRoot":"","sources":["../../src/utils/isEmpty.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,GAAI,OAAO,OAAO,YAMrC,CAAA"}
@@ -1,8 +0,0 @@
1
- export const isEmpty = (value)=>{
2
- if (Array.isArray(value)) return value.length === 0;
3
- if (value === null || typeof value === 'undefined') return true;
4
- if (typeof value === 'object' && Object.keys(value).length === 0) return true;
5
- return false;
6
- };
7
-
8
- //# sourceMappingURL=isEmpty.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utils/isEmpty.ts"],"sourcesContent":["export const isEmpty = (value: unknown) => {\r\n if (Array.isArray(value)) return value.length === 0\r\n if (value === null || typeof value === 'undefined') return true\r\n if (typeof value === 'object' && Object.keys(value).length === 0) return true\r\n\r\n return false\r\n}\r\n"],"names":["isEmpty","value","Array","isArray","length","Object","keys"],"mappings":"AAAA,OAAO,MAAMA,UAAU,CAACC;IACtB,IAAIC,MAAMC,OAAO,CAACF,QAAQ,OAAOA,MAAMG,MAAM,KAAK;IAClD,IAAIH,UAAU,QAAQ,OAAOA,UAAU,aAAa,OAAO;IAC3D,IAAI,OAAOA,UAAU,YAAYI,OAAOC,IAAI,CAACL,OAAOG,MAAM,KAAK,GAAG,OAAO;IAEzE,OAAO;AACT,EAAC"}