payload-ai 0.0.3 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/README.md +58 -2
  2. package/dev/package.json +4 -2
  3. package/dev/src/collections/Examples.ts +19 -2
  4. package/dev/src/collections/ExamplesWithVersions.ts +12 -2
  5. package/dev/src/payload.config.ts +15 -6
  6. package/dist/aiTranslate.js +32 -23
  7. package/dist/aiTranslate.js.map +1 -1
  8. package/dist/components/Metadata/index.d.ts +2 -0
  9. package/dist/components/Metadata/index.js +101 -0
  10. package/dist/components/Metadata/index.js.map +1 -0
  11. package/dist/components/Translator/index.js +1 -3
  12. package/dist/components/Translator/index.js.map +1 -1
  13. package/dist/deepCompareAndMerge.d.ts +1 -1
  14. package/dist/deepCompareAndMerge.js +13 -18
  15. package/dist/deepCompareAndMerge.js.map +1 -1
  16. package/dist/generateImage.d.ts +1 -0
  17. package/dist/generateImage.js +80 -0
  18. package/dist/generateImage.js.map +1 -0
  19. package/dist/generateText.d.ts +5 -0
  20. package/dist/generateText.js +90 -0
  21. package/dist/generateText.js.map +1 -0
  22. package/dist/index.d.ts +1 -0
  23. package/dist/index.js +4 -1
  24. package/dist/index.js.map +1 -1
  25. package/dist/plugin.js +8 -4
  26. package/dist/plugin.js.map +1 -1
  27. package/dist/seoTools.d.ts +2 -0
  28. package/dist/seoTools.js +135 -0
  29. package/dist/seoTools.js.map +1 -0
  30. package/dist/stringTranslations.js +12 -0
  31. package/dist/stringTranslations.js.map +1 -1
  32. package/dist/translateTextAndObjects copy.d.ts +1 -0
  33. package/dist/translateTextAndObjects copy.js +84 -0
  34. package/dist/translateTextAndObjects copy.js.map +1 -0
  35. package/dist/translateTextAndObjects.d.ts +1 -1
  36. package/dist/translateTextAndObjects.js +63 -22
  37. package/dist/translateTextAndObjects.js.map +1 -1
  38. package/package.json +1 -1
  39. package/src/aiTranslate.ts +18 -15
  40. package/src/components/Metadata/index.scss +10 -0
  41. package/src/components/Metadata/index.tsx +59 -0
  42. package/src/components/Translator/index.tsx +1 -2
  43. package/src/deepCompareAndMerge.ts +9 -9
  44. package/src/generateImage.ts +39 -0
  45. package/src/generateText.ts +27 -0
  46. package/src/index.ts +2 -0
  47. package/src/plugin.ts +22 -4
  48. package/src/seoTools.ts +75 -0
  49. package/src/stringTranslations.ts +12 -0
  50. package/src/translateTextAndObjects copy.ts +77 -0
  51. package/src/translateTextAndObjects.ts +67 -23
package/README.md CHANGED
@@ -36,19 +36,75 @@ export const config = buildConfig({
36
36
 
37
37
  Add the `collections` where you want to enable the translation and the `fields`. It will translate each field (also nested fields) on every update of the default language.
38
38
 
39
- ```jsx
39
+ ```ts
40
40
  plugins: [
41
41
  aiTranslatorPlugin({
42
42
  enabled: true,
43
43
  collections: {
44
44
  examples: {
45
- fields: ['stringText', 'richText'],
45
+ // prompts: [myCollectionPrompt]
46
+ fields: [
47
+ 'stringText',
48
+ 'richText',
49
+ {
50
+ "fieldWithCustomPrompt":
51
+ {prompt: myPromptFunction}
52
+ }
53
+ ],
46
54
  },
47
55
  },
48
56
  }),
49
57
  ],
50
58
  ```
51
59
 
60
+ #### Use in hooks
61
+
62
+ TODO: add documentation
63
+
64
+ myCollectionPrompt = ({source}) => {
65
+
66
+ source()
67
+
68
+ return
69
+ }
70
+
71
+ #### Custom prompts by Field
72
+
73
+ Use the `prompt` function for each field to use a customized prompt. The function will allow you to use the following
74
+
75
+
76
+ - `req`: Request
77
+ - `doc` Document in languages
78
+ - `previousDoc` Old document (only available on Update)
79
+ - `targetDoc` The old target document
80
+ - `collectionOptions`
81
+ - `language`
82
+ - translatorConfig
83
+ language: string,
84
+ sourceLanguage?: string,
85
+
86
+ - targetField
87
+ - sourceField
88
+
89
+
90
+ ```jsx
91
+ customPrompt = ({sourceField}) => `Translate ${sourceField} to ${targetLanguage}.`
92
+ ```
93
+
94
+ ### Use with [payload-seo](https://payloadcms.com/docs/plugins/seo)
95
+
96
+ ```jsx
97
+
98
+
99
+ import {generateTitle, generateDescription } from "payload-ai";
100
+
101
+ seo({
102
+ collections: ['examples'],
103
+ // uploadsCollection: 'media',
104
+ generateTitle: generateTitle,
105
+ generateDescription: ({ doc }) => generateDescription,
106
+ });
107
+ ```
52
108
 
53
109
  ### String translation
54
110
 
package/dev/package.json CHANGED
@@ -19,11 +19,13 @@
19
19
  "@payloadcms/bundler-webpack": "^1.0.0",
20
20
  "@payloadcms/db-mongodb": "^1.2.0",
21
21
  "@payloadcms/plugin-cloud": "^2.0.0",
22
+ "@payloadcms/plugin-seo": "^1.0.15",
23
+ "@payloadcms/richtext-lexical": "^0.5.1",
22
24
  "@payloadcms/richtext-slate": "^1.3.1",
23
25
  "cross-env": "^7.0.3",
24
26
  "dotenv": "^8.2.0",
25
27
  "express": "^4.17.1",
26
- "payload": "^2.6.0"
28
+ "payload": "^2.7.0"
27
29
  },
28
30
  "devDependencies": {
29
31
  "@types/express": "^4.17.9",
@@ -32,4 +34,4 @@
32
34
  "ts-node": "^9.1.1",
33
35
  "typescript": "^4.8.4"
34
36
  }
35
- }
37
+ }
@@ -1,17 +1,34 @@
1
+ import { lexicalEditor } from '@payloadcms/richtext-lexical'
1
2
  import { CollectionConfig } from 'payload/types'
2
3
 
3
4
  // Example Collection - For reference only, this must be added to payload.config.ts to be used.
4
5
  const Examples: CollectionConfig = {
5
6
  slug: 'examples',
6
7
  admin: {
7
- useAsTitle: 'someField',
8
+ useAsTitle: 'title',
8
9
  },
9
10
  fields: [
10
11
  {
11
- name: 'richText',
12
+ name: 'title',
12
13
  type: 'text',
13
14
  localized: true,
14
15
  },
16
+ {
17
+ name: 'contentRichText',
18
+ type: 'richText',
19
+ editor: lexicalEditor({}),
20
+ localized: true,
21
+ },
22
+ {
23
+ name: 'longText',
24
+ type: 'code',
25
+ localized: true,
26
+ },
27
+ {
28
+ name: 'doNotAutoTranslate',
29
+ type: 'code',
30
+ localized: true,
31
+ },
15
32
  ],
16
33
  }
17
34
 
@@ -4,17 +4,27 @@ import { CollectionConfig } from 'payload/types'
4
4
  const ExamplesWithVersions: CollectionConfig = {
5
5
  slug: 'examples-with-versions',
6
6
  admin: {
7
- useAsTitle: 'someField',
7
+ useAsTitle: 'title',
8
8
  },
9
9
  versions: {
10
10
  drafts: true,
11
11
  },
12
12
  fields: [
13
13
  {
14
- name: 'richText',
14
+ name: 'title',
15
15
  type: 'text',
16
16
  localized: true,
17
17
  },
18
+ {
19
+ name: 'longText',
20
+ type: 'code',
21
+ localized: true,
22
+ },
23
+ {
24
+ name: 'doNotAutoTranslate',
25
+ type: 'code',
26
+ localized: true,
27
+ },
18
28
  ],
19
29
  }
20
30
 
@@ -4,9 +4,11 @@ import Users from './collections/Users'
4
4
  import Examples from './collections/Examples'
5
5
  import { mongooseAdapter } from '@payloadcms/db-mongodb'
6
6
  import { webpackBundler } from '@payloadcms/bundler-webpack'
7
- import { slateEditor } from '@payloadcms/richtext-slate'
8
- import { aiTranslatorPlugin } from '../../src/index'
7
+ // import { slateEditor } from '@payloadcms/richtext-slate'
8
+ import { lexicalEditor } from '@payloadcms/richtext-lexical'
9
+ import { aiTranslatorPlugin, generateDescription, generateTitle } from '../../src/index'
9
10
  import ExamplesWithVersions from './collections/ExamplesWithVersions'
11
+ import seo from '@payloadcms/plugin-seo'
10
12
 
11
13
  export default buildConfig({
12
14
  admin: {
@@ -28,10 +30,11 @@ export default buildConfig({
28
30
  return newConfig
29
31
  },
30
32
  },
31
- editor: slateEditor({}),
33
+ editor: lexicalEditor({}),
34
+ // editor: slateEditor({}),
32
35
  collections: [Examples, ExamplesWithVersions, Users],
33
36
  localization: {
34
- locales: ['en', 'es', 'de'],
37
+ locales: ['en', 'de', 'ja' /* 'es','fr', 'it', 'ja'*/],
35
38
  defaultLocale: 'en',
36
39
  fallback: true,
37
40
  },
@@ -46,13 +49,19 @@ export default buildConfig({
46
49
  enabled: true,
47
50
  collections: {
48
51
  examples: {
49
- fields: ['stringText', 'richText'],
52
+ fields: ['title', 'longText', 'jsonContent', 'contentRichText'],
50
53
  },
51
54
  'examples-with-versions': {
52
- fields: ['stringText', 'richText'],
55
+ fields: ['title', 'longText', 'jsonContent'],
53
56
  },
54
57
  },
55
58
  }),
59
+ seo({
60
+ collections: ['examples'],
61
+ // uploadsCollection: 'media',
62
+ generateTitle: generateTitle,
63
+ generateDescription: generateDescription,
64
+ }),
56
65
  ],
57
66
  db: mongooseAdapter({
58
67
  url: process.env.DATABASE_URI,
@@ -74,12 +74,12 @@ exports.default = aiTranslateHook;
74
74
  function translateCollection(_a) {
75
75
  var req = _a.req, doc = _a.doc, collection = _a.collection, previousDoc = _a.previousDoc, context = _a.context, collectionOptions = _a.collectionOptions, onlyMissing = _a.onlyMissing;
76
76
  return __awaiter(this, void 0, void 0, function () {
77
- var localCodes, translationPromises, results, error_1;
77
+ var localCodes, translationPromises, translationResults, _i, translationResults_1, translatedContent, updatedLanguage, error_1;
78
78
  var _this = this;
79
79
  return __generator(this, function (_b) {
80
80
  switch (_b.label) {
81
81
  case 0:
82
- _b.trys.push([0, 2, , 3]);
82
+ _b.trys.push([0, 6, , 7]);
83
83
  if (context.triggerAfterChange === false ||
84
84
  req.locale !== req.payload.config.localization.defaultLocale)
85
85
  return [2 /*return*/];
@@ -87,7 +87,7 @@ function translateCollection(_a) {
87
87
  translationPromises = localCodes
88
88
  .filter(function (targetLanguage) { return targetLanguage !== req.payload.config.localization.defaultLocale; })
89
89
  .map(function (tL) { return __awaiter(_this, void 0, void 0, function () {
90
- var targetDoc, targetDocWithTranslation, id, _status, updatedAt, createdAt, publishedDate, dataNew, updatedLanguage;
90
+ var targetDoc, targetDocWithTranslation, id, _status, updatedAt, createdAt, publishedDate, dataNew;
91
91
  return __generator(this, function (_a) {
92
92
  switch (_a.label) {
93
93
  case 0: return [4 /*yield*/, req.payload.findByID({
@@ -100,37 +100,46 @@ function translateCollection(_a) {
100
100
  })];
101
101
  case 1:
102
102
  targetDoc = _a.sent();
103
- return [4 /*yield*/, (0, deepCompareAndMerge_1.deepCompareTranslateAndMerge)(doc, previousDoc, targetDoc, collectionOptions.fields, tL, previousDoc.id ? 'update' : 'create', onlyMissing)];
103
+ return [4 /*yield*/, (0, deepCompareAndMerge_1.deepCompareTranslateAndMerge)(doc, previousDoc, targetDoc, collectionOptions.fields, tL, previousDoc.id ? 'update' : 'create', onlyMissing, req.payload.config.localization.defaultLocale)];
104
104
  case 2:
105
105
  targetDocWithTranslation = _a.sent();
106
106
  id = targetDocWithTranslation.id, _status = targetDocWithTranslation._status, updatedAt = targetDocWithTranslation.updatedAt, createdAt = targetDocWithTranslation.createdAt, publishedDate = targetDocWithTranslation.publishedDate, dataNew = __rest(targetDocWithTranslation, ["id", "_status", "updatedAt", "createdAt", "publishedDate"]);
107
- return [4 /*yield*/, req.payload.update({
108
- req: req,
109
- collection: collection.slug,
110
- id: doc.id,
111
- data: dataNew,
112
- locale: tL,
113
- limit: 1,
114
- depth: 0,
115
- context: {
116
- triggerAfterChange: false,
117
- },
118
- })];
119
- case 3:
120
- updatedLanguage = _a.sent();
121
- return [2 /*return*/, updatedLanguage];
107
+ return [2 /*return*/, { dataNew: dataNew, tL: tL }];
122
108
  }
123
109
  });
124
110
  }); });
125
111
  return [4 /*yield*/, Promise.all(translationPromises)];
126
112
  case 1:
127
- results = _b.sent();
128
- return [3 /*break*/, 3];
113
+ translationResults = _b.sent();
114
+ _i = 0, translationResults_1 = translationResults;
115
+ _b.label = 2;
129
116
  case 2:
117
+ if (!(_i < translationResults_1.length)) return [3 /*break*/, 5];
118
+ translatedContent = translationResults_1[_i];
119
+ return [4 /*yield*/, req.payload.update({
120
+ //req,
121
+ collection: collection.slug,
122
+ id: doc.id,
123
+ data: translatedContent.dataNew,
124
+ locale: translatedContent.tL,
125
+ limit: 1,
126
+ depth: 0,
127
+ context: {
128
+ triggerAfterChange: false,
129
+ },
130
+ })];
131
+ case 3:
132
+ updatedLanguage = _b.sent();
133
+ _b.label = 4;
134
+ case 4:
135
+ _i++;
136
+ return [3 /*break*/, 2];
137
+ case 5: return [3 /*break*/, 7];
138
+ case 6:
130
139
  error_1 = _b.sent();
131
140
  console.log('error while generating languages', error_1);
132
- return [3 /*break*/, 3];
133
- case 3: return [2 /*return*/];
141
+ return [3 /*break*/, 7];
142
+ case 7: return [2 /*return*/];
134
143
  }
135
144
  });
136
145
  });
@@ -1 +1 @@
1
- {"version":3,"file":"aiTranslate.js","sourceRoot":"","sources":["../src/aiTranslate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aiTranslate.js","sourceRoot":"","sources":["../src/aiTranslate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const GenerateMetadata: React.FC;
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ var __importDefault = (this && this.__importDefault) || function (mod) {
50
+ return (mod && mod.__esModule) ? mod : { "default": mod };
51
+ };
52
+ Object.defineProperty(exports, "__esModule", { value: true });
53
+ exports.GenerateMetadata = void 0;
54
+ var react_1 = __importDefault(require("react"));
55
+ var elements_1 = require("payload/components/elements");
56
+ var utilities_1 = require("payload/components/utilities");
57
+ var forms_1 = require("payload/components/forms");
58
+ var baseClass = 'after-dashboard';
59
+ var GenerateMetadata = function () {
60
+ var _a = react_1.default.useState(false), isLoading = _a[0], setIsLoading = _a[1];
61
+ var _b = (0, forms_1.useAllFormFields)(), fields = _b[0], dispatchFields = _b[1];
62
+ var setModified = (0, forms_1.useForm)().setModified;
63
+ var locale = (0, utilities_1.useLocale)();
64
+ var documentInfo = (0, utilities_1.useDocumentInfo)();
65
+ var translate = function () { return __awaiter(void 0, void 0, void 0, function () {
66
+ return __generator(this, function (_a) {
67
+ setIsLoading(true);
68
+ try {
69
+ console.log('fields', fields);
70
+ dispatchFields({
71
+ type: 'REPLACE_STATE',
72
+ state: __assign(__assign({}, fields), { title: __assign(__assign({}, fields.title), { value: 'new title here' }) }),
73
+ });
74
+ setModified(true);
75
+ /*const response = await fetch(`/api/${documentInfo.collection.slug}/translate`, {
76
+ method: 'POST',
77
+ headers: {
78
+ 'Content-Type': 'application/json',
79
+ },
80
+ body: JSON.stringify({
81
+ id: documentInfo.id,
82
+ }),
83
+ })
84
+
85
+ const translatedValues = await response.json()*/
86
+ setIsLoading(false);
87
+ }
88
+ catch (error) {
89
+ setIsLoading(false);
90
+ console.error(error);
91
+ }
92
+ return [2 /*return*/];
93
+ });
94
+ }); };
95
+ return (react_1.default.createElement("div", { className: baseClass },
96
+ react_1.default.createElement(elements_1.Button, { disabled: isLoading, size: "small", onClick: translate },
97
+ react_1.default.createElement("span", null, "Generate metdadata"),
98
+ isLoading && react_1.default.createElement(react_1.default.Fragment, null, "Loading..."))));
99
+ };
100
+ exports.GenerateMetadata = GenerateMetadata;
101
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Metadata/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAyB;AAEzB,wDAAoD;AACpD,0DAAyE;AACzE,kDAA0F;AAG1F,IAAM,SAAS,GAAG,iBAAiB,CAAA;AAE5B,IAAM,gBAAgB,GAAa;IAClC,IAAA,KAA4B,eAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAhD,SAAS,QAAA,EAAE,YAAY,QAAyB,CAAA;IAEjD,IAAA,KAA2B,IAAA,wBAAgB,GAAE,EAA5C,MAAM,QAAA,EAAE,cAAc,QAAsB,CAAA;IAC3C,IAAA,WAAW,GAAK,IAAA,eAAO,GAAE,YAAd,CAAc;IAEjC,IAAM,MAAM,GAAG,IAAA,qBAAS,GAAE,CAAA;IAC1B,IAAM,YAAY,GAAQ,IAAA,2BAAe,GAAE,CAAA;IAC3C,IAAM,SAAS,GAAG;;YAChB,YAAY,CAAC,IAAI,CAAC,CAAA;YAClB,IAAI;gBACF,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;gBAC7B,cAAc,CAAC;oBACb,IAAI,EAAE,eAAe;oBACrB,KAAK,EAAE,sBACF,MAAM,KACT,KAAK,wBAAO,MAAM,CAAC,KAAK,KAAE,KAAK,EAAE,gBAAgB,MACxC;iBACZ,CAAC,CAAA;gBAEF,WAAW,CAAC,IAAI,CAAC,CAAA;gBAEjB;;;;;;;;;;gEAUgD;gBAEhD,YAAY,CAAC,KAAK,CAAC,CAAA;aACpB;YAAC,OAAO,KAAK,EAAE;gBACd,YAAY,CAAC,KAAK,CAAC,CAAA;gBACnB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;aACrB;;;SACF,CAAA;IAED,OAAO,CACL,uCAAK,SAAS,EAAE,SAAS;QACvB,8BAAC,iBAAM,IAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,SAAS;YAC1D,iEAA+B;YAC9B,SAAS,IAAI,2EAAe,CACtB,CACL,CACP,CAAA;AACH,CAAC,CAAA;AAjDY,QAAA,gBAAgB,oBAiD5B"}
@@ -83,9 +83,7 @@ var Translator = function () {
83
83
  });
84
84
  }); };
85
85
  return (react_1.default.createElement("div", { className: baseClass },
86
- react_1.default.createElement(elements_1.Button, { disabled: isLoading, size: "small", onClick: translate },
87
- react_1.default.createElement("span", null, "Translate content from default language"),
88
- isLoading && react_1.default.createElement(react_1.default.Fragment, null, "Loading..."))));
86
+ react_1.default.createElement(elements_1.Button, { disabled: isLoading, size: "small", onClick: translate }, isLoading ? react_1.default.createElement("span", null, "Results are loading...") : react_1.default.createElement("span", null, "Translate content"))));
89
87
  };
90
88
  exports.Translator = Translator;
91
89
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Translator/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAyB;AAEzB,wDAAoD;AACpD,0DAAyE;AAEzE,IAAM,SAAS,GAAG,iBAAiB,CAAA;AAE5B,IAAM,UAAU,GAAa;IAC5B,IAAA,KAA4B,eAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAhD,SAAS,QAAA,EAAE,YAAY,QAAyB,CAAA;IAEvD,IAAM,MAAM,GAAG,IAAA,qBAAS,GAAE,CAAA;IAC1B,IAAM,YAAY,GAAQ,IAAA,2BAAe,GAAE,CAAA;IAC3C,IAAM,SAAS,GAAG;;;;;oBAChB,YAAY,CAAC,IAAI,CAAC,CAAA;;;;oBAEC,qBAAM,KAAK,CAAC,eAAQ,YAAY,CAAC,UAAU,CAAC,IAAI,eAAY,EAAE;4BAC7E,MAAM,EAAE,MAAM;4BACd,OAAO,EAAE;gCACP,cAAc,EAAE,kBAAkB;6BACnC;4BACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gCACnB,EAAE,EAAE,YAAY,CAAC,EAAE;6BACpB,CAAC;yBACH,CAAC,EAAA;;oBARI,QAAQ,GAAG,SAQf;oBAEuB,qBAAM,QAAQ,CAAC,IAAI,EAAE,EAAA;;oBAAxC,gBAAgB,GAAG,SAAqB;oBAE9C,YAAY,CAAC,KAAK,CAAC,CAAA;;;;oBAEnB,YAAY,CAAC,KAAK,CAAC,CAAA;oBACnB,OAAO,CAAC,KAAK,CAAC,OAAK,CAAC,CAAA;;;;;SAEvB,CAAA;IAED,OAAO,CACL,uCAAK,SAAS,EAAE,SAAS;QACvB,8BAAC,iBAAM,IAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,SAAS;YAC1D,sFAAoD;YACnD,SAAS,IAAI,2EAAe,CACtB,CACL,CACP,CAAA;AACH,CAAC,CAAA;AAnCY,QAAA,UAAU,cAmCtB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Translator/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAyB;AAEzB,wDAAoD;AACpD,0DAAyE;AAEzE,IAAM,SAAS,GAAG,iBAAiB,CAAA;AAE5B,IAAM,UAAU,GAAa;IAC5B,IAAA,KAA4B,eAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAhD,SAAS,QAAA,EAAE,YAAY,QAAyB,CAAA;IAEvD,IAAM,MAAM,GAAG,IAAA,qBAAS,GAAE,CAAA;IAC1B,IAAM,YAAY,GAAQ,IAAA,2BAAe,GAAE,CAAA;IAC3C,IAAM,SAAS,GAAG;;;;;oBAChB,YAAY,CAAC,IAAI,CAAC,CAAA;;;;oBAEC,qBAAM,KAAK,CAAC,eAAQ,YAAY,CAAC,UAAU,CAAC,IAAI,eAAY,EAAE;4BAC7E,MAAM,EAAE,MAAM;4BACd,OAAO,EAAE;gCACP,cAAc,EAAE,kBAAkB;6BACnC;4BACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gCACnB,EAAE,EAAE,YAAY,CAAC,EAAE;6BACpB,CAAC;yBACH,CAAC,EAAA;;oBARI,QAAQ,GAAG,SAQf;oBAEuB,qBAAM,QAAQ,CAAC,IAAI,EAAE,EAAA;;oBAAxC,gBAAgB,GAAG,SAAqB;oBAE9C,YAAY,CAAC,KAAK,CAAC,CAAA;;;;oBAEnB,YAAY,CAAC,KAAK,CAAC,CAAA;oBACnB,OAAO,CAAC,KAAK,CAAC,OAAK,CAAC,CAAA;;;;;SAEvB,CAAA;IAED,OAAO,CACL,uCAAK,SAAS,EAAE,SAAS;QACvB,8BAAC,iBAAM,IAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,SAAS,IACzD,SAAS,CAAC,CAAC,CAAC,qEAAmC,CAAC,CAAC,CAAC,gEAA8B,CAC1E,CACL,CACP,CAAA;AACH,CAAC,CAAA;AAlCY,QAAA,UAAU,cAkCtB"}
@@ -1,5 +1,5 @@
1
1
  interface CollectionObjType {
2
2
  [prop: string]: any;
3
3
  }
4
- export declare function deepCompareTranslateAndMerge(newOriginalObj: CollectionObjType, originalObj: CollectionObjType, targetObj: CollectionObjType, fields: string[], language: string, action?: 'create' | 'update', onlyMissing?: boolean): Promise<CollectionObjType>;
4
+ export declare function deepCompareTranslateAndMerge(newOriginalObj: CollectionObjType, originalObj: CollectionObjType, targetObj: CollectionObjType, fields: string[], language: string, action?: 'create' | 'update', onlyMissing?: boolean, sourceLanguage?: string): Promise<CollectionObjType>;
5
5
  export {};
@@ -39,7 +39,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.deepCompareTranslateAndMerge = void 0;
40
40
  var translateTextAndObjects_1 = require("./translateTextAndObjects");
41
41
  var colllectionObj = {}; // Assuming targetObj is initialized somewhere
42
- function deepCompareTranslateAndMerge(newOriginalObj, originalObj, targetObj, fields, language, action, onlyMissing) {
42
+ function deepCompareTranslateAndMerge(newOriginalObj, originalObj, targetObj, fields, language, action, onlyMissing, sourceLanguage) {
43
43
  return __awaiter(this, void 0, void 0, function () {
44
44
  var promises;
45
45
  var _this = this;
@@ -48,7 +48,7 @@ function deepCompareTranslateAndMerge(newOriginalObj, originalObj, targetObj, fi
48
48
  case 0:
49
49
  if (!Array.isArray(newOriginalObj)) return [3 /*break*/, 1];
50
50
  return [2 /*return*/, Promise.all(newOriginalObj.map(function (item, index) {
51
- return deepCompareTranslateAndMerge(item, originalObj === null || originalObj === void 0 ? void 0 : originalObj[index], targetObj === null || targetObj === void 0 ? void 0 : targetObj[index], fields, language, action, onlyMissing);
51
+ return deepCompareTranslateAndMerge(item, originalObj === null || originalObj === void 0 ? void 0 : originalObj[index], targetObj === null || targetObj === void 0 ? void 0 : targetObj[index], fields, language, action, onlyMissing, sourceLanguage);
52
52
  }))];
53
53
  case 1:
54
54
  if (!(typeof newOriginalObj === 'object' && newOriginalObj !== null)) return [3 /*break*/, 3];
@@ -57,34 +57,29 @@ function deepCompareTranslateAndMerge(newOriginalObj, originalObj, targetObj, fi
57
57
  return __generator(this, function (_e) {
58
58
  switch (_e.label) {
59
59
  case 0:
60
- if (!newOriginalObj.hasOwnProperty(prop)) return [3 /*break*/, 6];
61
- if (!fields.includes(prop) /*&& typeof newOriginalObj[prop] === 'string'*/) return [3 /*break*/, 4]; /*&& typeof newOriginalObj[prop] === 'string'*/
60
+ if (!newOriginalObj.hasOwnProperty(prop)) return [3 /*break*/, 5];
61
+ if (!fields.includes(prop) /*&& typeof newOriginalObj[prop] === 'string'*/) return [3 /*break*/, 3]; /*&& typeof newOriginalObj[prop] === 'string'*/
62
62
  if (!((originalObj === null || originalObj === void 0 ? void 0 : originalObj[prop]) === undefined ||
63
63
  JSON.stringify(newOriginalObj[prop]) !== JSON.stringify(originalObj[prop]) ||
64
- action === 'create')) return [3 /*break*/, 3];
65
- // Translate the text and merge it into the English object
66
- console.log('found to translate', onlyMissing, targetObj[prop], newOriginalObj[prop], language);
64
+ action === 'create')) return [3 /*break*/, 2];
67
65
  if (!(!onlyMissing || targetObj[prop] === undefined || targetObj[prop] === '')) return [3 /*break*/, 2];
68
66
  _a = targetObj;
69
67
  _b = prop;
70
- return [4 /*yield*/, (0, translateTextAndObjects_1.translateTextOrObject)(newOriginalObj[prop], language)];
68
+ return [4 /*yield*/, (0, translateTextAndObjects_1.translateTextOrObject)(newOriginalObj[prop], language, sourceLanguage)];
71
69
  case 1:
72
70
  _a[_b] = _e.sent();
73
71
  return [3 /*break*/, 2];
74
- case 2:
75
- console.log('translation', targetObj[prop]);
76
- _e.label = 3;
77
- case 3: return [3 /*break*/, 6];
78
- case 4:
72
+ case 2: return [3 /*break*/, 5];
73
+ case 3:
79
74
  if (!(typeof newOriginalObj[prop] === 'object' &&
80
- typeof targetObj[prop] === 'object')) return [3 /*break*/, 6];
75
+ typeof targetObj[prop] === 'object')) return [3 /*break*/, 5];
81
76
  _c = targetObj;
82
77
  _d = prop;
83
- return [4 /*yield*/, deepCompareTranslateAndMerge(newOriginalObj[prop], (originalObj === null || originalObj === void 0 ? void 0 : originalObj[prop]) || null, targetObj[prop] || null, fields, language, action, onlyMissing)];
84
- case 5:
78
+ return [4 /*yield*/, deepCompareTranslateAndMerge(newOriginalObj[prop], (originalObj === null || originalObj === void 0 ? void 0 : originalObj[prop]) || null, targetObj[prop] || null, fields, language, action, onlyMissing, sourceLanguage)];
79
+ case 4:
85
80
  _c[_d] = _e.sent();
86
- _e.label = 6;
87
- case 6: return [2 /*return*/];
81
+ _e.label = 5;
82
+ case 5: return [2 /*return*/];
88
83
  }
89
84
  });
90
85
  }); });
@@ -1 +1 @@
1
- {"version":3,"file":"deepCompareAndMerge.js","sourceRoot":"","sources":["../src/deepCompareAndMerge.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qEAAiE;AAMjE,IAAI,cAAc,GAAsB,EAAE,CAAA,CAAC,8CAA8C;AAIzF,SAAsB,4BAA4B,CAChD,cAAiC,EACjC,WAA8B,EAC9B,SAA4B,EAC5B,MAAgB,EAChB,QAAgB,EAChB,MAA4B,EAC5B,WAAqB;;;;;;;yBAEjB,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAA7B,wBAA6B;oBAC/B,sBAAO,OAAO,CAAC,GAAG,CAChB,cAAc,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,KAAK;4BAC7B,OAAA,4BAA4B,CAC1B,IAAI,EACJ,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,KAAK,CAAC,EACpB,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAG,KAAK,CAAC,EAClB,MAAM,EACN,QAAQ,EACR,MAAM,EACN,WAAW,CACZ;wBARD,CAQC,CACF,CACF,EAAA;;yBACQ,CAAA,OAAO,cAAc,KAAK,QAAQ,IAAI,cAAc,KAAK,IAAI,CAAA,EAA7D,wBAA6D;oBAChE,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,UAAM,IAAI;;;;;yCACrD,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,EAAnC,wBAAmC;yCACjC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,+CAA+C,EAArE,wBAAqB,CAAC,+CAA+C;yCAErE,CAAA,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,IAAI,CAAC,MAAK,SAAS;wCACjC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;wCAC1E,MAAM,KAAK,QAAQ,CAAA,EAFnB,wBAEmB;oCAEnB,0DAA0D;oCAC1D,OAAO,CAAC,GAAG,CACT,oBAAoB,EACpB,WAAW,EACX,SAAS,CAAC,IAAI,CAAC,EACf,cAAc,CAAC,IAAI,CAAC,EACpB,QAAQ,CACT,CAAA;yCACG,CAAA,CAAC,WAAW,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,CAAA,EAAvE,wBAAuE;oCACzE,KAAA,SAAS,CAAA;oCAAC,KAAA,IAAI,CAAA;oCAAI,qBAAM,IAAA,+CAAqB,EAAC,cAAc,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAA;;oCAA7E,MAAe,GAAG,SAA2D,CAAA;;;oCAI/E,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;;;;yCAG7C,CAAA,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,QAAQ;wCACxC,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAA,EADnC,wBACmC;oCAEnC,KAAA,SAAS,CAAA;oCAAC,KAAA,IAAI,CAAA;oCAAI,qBAAM,4BAA4B,CAClD,cAAc,CAAC,IAAI,CAAC,EACpB,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,IAAI,CAAC,KAAI,IAAI,EAC3B,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,EACvB,MAAM,EACN,QAAQ,EACR,MAAM,EACN,WAAW,CACZ,EAAA;;oCARD,MAAe,GAAG,SAQjB,CAAA;;;;;yBAGN,CAAC,CAAA;oBACF,qBAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAA;;oBAA3B,SAA2B,CAAA;;wBAE7B,sBAAO,SAAS,EAAA;;;;CACjB;AAlED,oEAkEC"}
1
+ {"version":3,"file":"deepCompareAndMerge.js","sourceRoot":"","sources":["../src/deepCompareAndMerge.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qEAAiE;AAMjE,IAAI,cAAc,GAAsB,EAAE,CAAA,CAAC,8CAA8C;AAIzF,SAAsB,4BAA4B,CAChD,cAAiC,EACjC,WAA8B,EAC9B,SAA4B,EAC5B,MAAgB,EAChB,QAAgB,EAChB,MAA4B,EAC5B,WAAqB,EACrB,cAAuB;;;;;;;yBAEnB,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAA7B,wBAA6B;oBAC/B,sBAAO,OAAO,CAAC,GAAG,CAChB,cAAc,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,KAAK;4BAC7B,OAAA,4BAA4B,CAC1B,IAAI,EACJ,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,KAAK,CAAC,EACpB,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAG,KAAK,CAAC,EAClB,MAAM,EACN,QAAQ,EACR,MAAM,EACN,WAAW,EACX,cAAc,CACf;wBATD,CASC,CACF,CACF,EAAA;;yBACQ,CAAA,OAAO,cAAc,KAAK,QAAQ,IAAI,cAAc,KAAK,IAAI,CAAA,EAA7D,wBAA6D;oBAChE,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,UAAM,IAAI;;;;;yCACrD,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,EAAnC,wBAAmC;yCACjC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,+CAA+C,EAArE,wBAAqB,CAAC,+CAA+C;yCAErE,CAAA,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,IAAI,CAAC,MAAK,SAAS;wCACjC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;wCAC1E,MAAM,KAAK,QAAQ,CAAA,EAFnB,wBAEmB;yCAIf,CAAA,CAAC,WAAW,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,CAAA,EAAvE,wBAAuE;oCACzE,KAAA,SAAS,CAAA;oCAAC,KAAA,IAAI,CAAA;oCAAI,qBAAM,IAAA,+CAAqB,EAC3C,cAAc,CAAC,IAAI,CAAC,EACpB,QAAQ,EACR,cAAc,CACf,EAAA;;oCAJD,MAAe,GAAG,SAIjB,CAAA;;;;yCAML,CAAA,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,QAAQ;wCACxC,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAA,EADnC,wBACmC;oCAEnC,KAAA,SAAS,CAAA;oCAAC,KAAA,IAAI,CAAA;oCAAI,qBAAM,4BAA4B,CAClD,cAAc,CAAC,IAAI,CAAC,EACpB,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,IAAI,CAAC,KAAI,IAAI,EAC3B,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,EACvB,MAAM,EACN,QAAQ,EACR,MAAM,EACN,WAAW,EACX,cAAc,CACf,EAAA;;oCATD,MAAe,GAAG,SASjB,CAAA;;;;;yBAGN,CAAC,CAAA;oBACF,qBAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAA;;oBAA3B,SAA2B,CAAA;;wBAE7B,sBAAO,SAAS,EAAA;;;;CACjB;AAlED,oEAkEC"}
@@ -0,0 +1 @@
1
+ export declare function translateTextOrObject(text: string | object, language: string, sourceLanguage?: string): Promise<object | "url">;
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.translateTextOrObject = void 0;
43
+ var openai_1 = __importDefault(require("openai"));
44
+ function translateTextOrObject(text, language, sourceLanguage) {
45
+ return __awaiter(this, void 0, void 0, function () {
46
+ var openai, promptAbstractBlogPost, content, response;
47
+ return __generator(this, function (_a) {
48
+ switch (_a.label) {
49
+ case 0:
50
+ if (typeof text !== 'string') {
51
+ return [2 /*return*/, text];
52
+ }
53
+ openai = new openai_1.default({
54
+ apiKey: process.env.OPENAI_API_KEY,
55
+ });
56
+ promptAbstractBlogPost = function (text) {
57
+ return "\nGenerate an abstract illustration for this blog post:\n\n".concat(text, "\n");
58
+ };
59
+ content = typeof text !== 'string'
60
+ ? promptAbstractBlogPost(JSON.stringify(text, null, 2))
61
+ : promptAbstractBlogPost(text);
62
+ return [4 /*yield*/, openai.images.generate({
63
+ model: 'dall-e-3',
64
+ prompt: content,
65
+ n: 1,
66
+ size: '1024x1024',
67
+ })
68
+ //image_url = response.data.data[0].url
69
+ ];
70
+ case 1:
71
+ response = _a.sent();
72
+ //image_url = response.data.data[0].url
73
+ console.log('Translated', language, content);
74
+ return [2 /*return*/, 'url']; //image_url
75
+ }
76
+ });
77
+ });
78
+ }
79
+ exports.translateTextOrObject = translateTextOrObject;
80
+ //# sourceMappingURL=generateImage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateImage.js","sourceRoot":"","sources":["../src/generateImage.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA2B;AAE3B,SAAsB,qBAAqB,CACzC,IAAqB,EACrB,QAAgB,EAChB,cAAuB;;;;;;oBAEvB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;wBAC5B,sBAAO,IAAI,EAAA;qBACZ;oBACK,MAAM,GAAG,IAAI,gBAAM,CAAC;wBACxB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;qBACnC,CAAC,CAAA;oBAEI,sBAAsB,GAAG,UAAC,IAAY;wBAC1C,OAAO,qEAGT,IAAI,OACL,CAAA;oBACC,CAAC,CAAA;oBAEK,OAAO,GACX,OAAO,IAAI,KAAK,QAAQ;wBACtB,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;wBACvD,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAA;oBAEjB,qBAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;4BAC5C,KAAK,EAAE,UAAU;4BACjB,MAAM,EAAE,OAAO;4BACf,CAAC,EAAE,CAAC;4BACJ,IAAI,EAAE,WAAW;yBAClB,CAAC;wBACF,uCAAuC;sBADrC;;oBALI,QAAQ,GAAG,SAKf;oBACF,uCAAuC;oBAEvC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;oBAE5C,sBAAO,KAAK,EAAA,CAAC,WAAW;;;;CACzB;AApCD,sDAoCC"}
@@ -0,0 +1,5 @@
1
+ import OpenAI from 'openai';
2
+ import { PluginTypes } from './types';
3
+ import { PayloadHandler } from 'payload/config';
4
+ export declare function generateText(body: OpenAI.Chat.ChatCompletionCreateParams): Promise<any>;
5
+ export declare const generateTextHandler: (translatorConfig: PluginTypes) => PayloadHandler;