payload-ai 1.0.0 → 1.0.2

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.
@@ -5,4 +5,4 @@ declare const aiTranslateHook: ({ collectionOptions, collection, pluginOptions,
5
5
  pluginOptions: any;
6
6
  }, fallback?: string) => CollectionAfterChangeHook;
7
7
  export default aiTranslateHook;
8
- export declare function translateCollection({ req, doc, collection, previousDoc, context, collectionOptions, onlyMissing, codes, settings, sourceLanguage, }: any): Promise<void>;
8
+ export declare function translateCollection({ req, doc, collection, previousDoc, context, collectionOptions, onlyMissing, codes, settings, sourceLanguage, onProgress, }: any): Promise<void>;
@@ -89,12 +89,12 @@ var aiTranslateHook = function (_a, fallback) {
89
89
  exports.default = aiTranslateHook;
90
90
  function translateCollection(_a) {
91
91
  var _b, _c;
92
- var req = _a.req, doc = _a.doc, collection = _a.collection, previousDoc = _a.previousDoc, context = _a.context, collectionOptions = _a.collectionOptions, onlyMissing = _a.onlyMissing, codes = _a.codes, settings = _a.settings, sourceLanguage = _a.sourceLanguage;
92
+ var req = _a.req, doc = _a.doc, collection = _a.collection, previousDoc = _a.previousDoc, context = _a.context, collectionOptions = _a.collectionOptions, onlyMissing = _a.onlyMissing, codes = _a.codes, settings = _a.settings, sourceLanguage = _a.sourceLanguage, onProgress = _a.onProgress;
93
93
  return __awaiter(this, void 0, void 0, function () {
94
- var localization, previousDocument, locales, localCodes, sourceLanguageI, translationPromises, translationResults, _i, translationResults_1, translatedContent, updatedLanguage;
94
+ var localization, previousDocument, locales, localCodes, sourceLanguageI, targetLanguages, _i, targetLanguages_1, targetLanguage, targetDoc, targetDocWithTranslation, id, _status, updatedAt, createdAt, publishedDate, dataNew, error_1, translationPromises, translationResults, _d, translationResults_1, translatedContent, updatedLanguage;
95
95
  var _this = this;
96
- return __generator(this, function (_d) {
97
- switch (_d.label) {
96
+ return __generator(this, function (_e) {
97
+ switch (_e.label) {
98
98
  case 0:
99
99
  localization = (_c = (_b = req === null || req === void 0 ? void 0 : req.payload) === null || _b === void 0 ? void 0 : _b.config) === null || _c === void 0 ? void 0 : _c.localization;
100
100
  previousDocument = previousDoc || {};
@@ -115,10 +115,70 @@ function translateCollection(_a) {
115
115
  return [2 /*return*/];
116
116
  if (!Array.isArray(localCodes) || localCodes.length < 2 || !sourceLanguageI)
117
117
  return [2 /*return*/];
118
- translationPromises = localCodes
119
- .filter(function (targetLanguage) {
118
+ targetLanguages = localCodes.filter(function (targetLanguage) {
120
119
  return targetLanguage !== sourceLanguageI && (!codes || codes.includes(targetLanguage));
121
- })
120
+ });
121
+ if (!targetLanguages.length)
122
+ return [2 /*return*/];
123
+ if (!(typeof onProgress === 'function')) return [3 /*break*/, 12];
124
+ _i = 0, targetLanguages_1 = targetLanguages;
125
+ _e.label = 1;
126
+ case 1:
127
+ if (!(_i < targetLanguages_1.length)) return [3 /*break*/, 11];
128
+ targetLanguage = targetLanguages_1[_i];
129
+ return [4 /*yield*/, onProgress({ language: targetLanguage, status: 'processing' })];
130
+ case 2:
131
+ _e.sent();
132
+ _e.label = 3;
133
+ case 3:
134
+ _e.trys.push([3, 8, , 10]);
135
+ return [4 /*yield*/, req.payload.findByID({
136
+ collection: collection.slug,
137
+ id: doc.id,
138
+ locale: targetLanguage,
139
+ fallbackLocale: false,
140
+ limit: 0,
141
+ depth: 0,
142
+ })];
143
+ case 4:
144
+ targetDoc = _e.sent();
145
+ return [4 /*yield*/, (0, deepCompareAndMerge_1.deepCompareTranslateAndMerge)(doc, previousDocument, targetDoc, collectionOptions.fields, targetLanguage, previousDocument.id ? 'update' : 'create', onlyMissing, sourceLanguageI, __assign(__assign({}, settings), { namespace: doc === null || doc === void 0 ? void 0 : doc.namespace, localization: localization }))];
146
+ case 5:
147
+ targetDocWithTranslation = _e.sent();
148
+ id = targetDocWithTranslation.id, _status = targetDocWithTranslation._status, updatedAt = targetDocWithTranslation.updatedAt, createdAt = targetDocWithTranslation.createdAt, publishedDate = targetDocWithTranslation.publishedDate, dataNew = __rest(targetDocWithTranslation, ["id", "_status", "updatedAt", "createdAt", "publishedDate"]);
149
+ return [4 /*yield*/, req.payload.update({
150
+ collection: collection.slug,
151
+ id: doc.id,
152
+ data: dataNew,
153
+ locale: targetLanguage,
154
+ limit: 1,
155
+ depth: 0,
156
+ context: {
157
+ triggerAfterChange: false,
158
+ },
159
+ })];
160
+ case 6:
161
+ _e.sent();
162
+ return [4 /*yield*/, onProgress({ language: targetLanguage, status: 'completed' })];
163
+ case 7:
164
+ _e.sent();
165
+ return [3 /*break*/, 10];
166
+ case 8:
167
+ error_1 = _e.sent();
168
+ return [4 /*yield*/, onProgress({
169
+ language: targetLanguage,
170
+ status: 'failed',
171
+ error: (error_1 === null || error_1 === void 0 ? void 0 : error_1.message) || 'Translation failed',
172
+ })];
173
+ case 9:
174
+ _e.sent();
175
+ throw error_1;
176
+ case 10:
177
+ _i++;
178
+ return [3 /*break*/, 1];
179
+ case 11: return [2 /*return*/];
180
+ case 12:
181
+ translationPromises = targetLanguages
122
182
  .map(function (tL) { return __awaiter(_this, void 0, void 0, function () {
123
183
  var targetDoc, targetDocWithTranslation, id, _status, updatedAt, createdAt, publishedDate, dataNew;
124
184
  return __generator(this, function (_a) {
@@ -142,13 +202,13 @@ function translateCollection(_a) {
142
202
  });
143
203
  }); });
144
204
  return [4 /*yield*/, Promise.all(translationPromises)];
145
- case 1:
146
- translationResults = _d.sent();
147
- _i = 0, translationResults_1 = translationResults;
148
- _d.label = 2;
149
- case 2:
150
- if (!(_i < translationResults_1.length)) return [3 /*break*/, 5];
151
- translatedContent = translationResults_1[_i];
205
+ case 13:
206
+ translationResults = _e.sent();
207
+ _d = 0, translationResults_1 = translationResults;
208
+ _e.label = 14;
209
+ case 14:
210
+ if (!(_d < translationResults_1.length)) return [3 /*break*/, 17];
211
+ translatedContent = translationResults_1[_d];
152
212
  return [4 /*yield*/, req.payload.update({
153
213
  //req,
154
214
  collection: collection.slug,
@@ -161,13 +221,13 @@ function translateCollection(_a) {
161
221
  triggerAfterChange: false,
162
222
  },
163
223
  })];
164
- case 3:
165
- updatedLanguage = _d.sent();
166
- _d.label = 4;
167
- case 4:
168
- _i++;
169
- return [3 /*break*/, 2];
170
- case 5: return [2 /*return*/];
224
+ case 15:
225
+ updatedLanguage = _e.sent();
226
+ _e.label = 16;
227
+ case 16:
228
+ _d++;
229
+ return [3 /*break*/, 14];
230
+ case 17: return [2 /*return*/];
171
231
  }
172
232
  });
173
233
  });
@@ -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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"}
@@ -41,6 +41,104 @@
41
41
  color: var(--theme-elevation-700);
42
42
  }
43
43
 
44
+ &__status-message {
45
+ margin: 0;
46
+ font-size: 0.875rem;
47
+ color: var(--theme-elevation-800);
48
+ }
49
+
50
+ &__status-panel {
51
+ display: flex;
52
+ flex-direction: column;
53
+ gap: calc(var(--base) * 0.5);
54
+ padding: calc(var(--base) * 0.75);
55
+ border: 1px solid var(--theme-elevation-100);
56
+ border-radius: var(--style-radius-s);
57
+ background: var(--theme-elevation-50);
58
+ }
59
+
60
+ &__status-list {
61
+ display: flex;
62
+ flex-direction: column;
63
+ gap: calc(var(--base) * 0.5);
64
+ }
65
+
66
+ &__status-item {
67
+ display: flex;
68
+ align-items: flex-start;
69
+ justify-content: space-between;
70
+ gap: calc(var(--base) * 0.75);
71
+ }
72
+
73
+ &__status-language,
74
+ &__status-error {
75
+ margin: 0;
76
+ }
77
+
78
+ &__status-language {
79
+ font-size: 0.95rem;
80
+ font-weight: 600;
81
+ color: var(--theme-elevation-900);
82
+ }
83
+
84
+ &__status-error {
85
+ margin-top: calc(var(--base) * 0.15);
86
+ font-size: 0.825rem;
87
+ color: var(--theme-error-500);
88
+ }
89
+
90
+ &__status-pill {
91
+ display: inline-flex;
92
+ align-items: center;
93
+ gap: calc(var(--base) * 0.25);
94
+ padding: calc(var(--base) * 0.2) calc(var(--base) * 0.45);
95
+ border-radius: 999px;
96
+ font-size: 0.8rem;
97
+ font-weight: 600;
98
+ white-space: nowrap;
99
+ }
100
+
101
+ &__status-pill--queued {
102
+ color: var(--theme-elevation-800);
103
+ background: var(--theme-elevation-100);
104
+ }
105
+
106
+ &__status-pill--processing {
107
+ color: var(--theme-warning-200);
108
+ background: color-mix(in srgb, var(--theme-warning-500) 35%, white);
109
+
110
+ .ai-translator__status-dot {
111
+ animation: ai-translator-pulse 1.1s ease-in-out infinite;
112
+ background: var(--theme-warning-500);
113
+ }
114
+ }
115
+
116
+ &__status-pill--completed {
117
+ color: var(--theme-success-200);
118
+ background: color-mix(in srgb, var(--theme-success-500) 35%, white);
119
+
120
+ .ai-translator__status-dot {
121
+ background: var(--theme-success-500);
122
+ }
123
+ }
124
+
125
+ &__status-pill--failed {
126
+ color: var(--theme-error-200);
127
+ background: color-mix(in srgb, var(--theme-error-500) 35%, white);
128
+
129
+ .ai-translator__status-dot {
130
+ background: var(--theme-error-500);
131
+ }
132
+ }
133
+
134
+ &__status-dot {
135
+ width: 0.5rem;
136
+ height: 0.5rem;
137
+ border-radius: 50%;
138
+ background: currentColor;
139
+ flex-shrink: 0;
140
+ }
141
+
44
142
  &__field {
45
143
  display: flex;
46
144
  flex-direction: column;
@@ -53,6 +151,25 @@
53
151
  font-weight: 600;
54
152
  }
55
153
 
154
+ &__radio-group {
155
+ display: grid;
156
+ gap: calc(var(--base) * 0.25);
157
+ }
158
+
159
+ &__radio-option {
160
+ display: flex;
161
+ align-items: center;
162
+ gap: calc(var(--base) * 0.35);
163
+ font-size: 0.9rem;
164
+ color: var(--theme-elevation-900);
165
+ cursor: pointer;
166
+
167
+ input[type='radio'] {
168
+ margin: 0;
169
+ accent-color: var(--theme-success-500);
170
+ }
171
+ }
172
+
56
173
  &__translation-buttons {
57
174
  display: flex;
58
175
  flex-wrap: wrap;
@@ -63,4 +180,17 @@
63
180
  &__loading {
64
181
  width: fit-content;
65
182
  }
183
+ }
184
+
185
+ @keyframes ai-translator-pulse {
186
+ 0%,
187
+ 100% {
188
+ transform: scale(1);
189
+ opacity: 1;
190
+ }
191
+
192
+ 50% {
193
+ transform: scale(0.8);
194
+ opacity: 0.45;
195
+ }
66
196
  }
@@ -1,3 +1,14 @@
1
1
  import React from 'react';
2
2
  import './Translator.scss';
3
- export declare const Translator: React.FC;
3
+ type LocaleShape = {
4
+ code: string;
5
+ label?: string;
6
+ };
7
+ type TranslatorProps = {
8
+ localization?: {
9
+ defaultLocale?: string;
10
+ locales?: Array<string | LocaleShape>;
11
+ };
12
+ };
13
+ export declare const Translator: React.FC<TranslatorProps>;
14
+ export {};