sanity-plugin-transifex 1.1.0 → 2.0.0

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.
package/dist/index.d.ts CHANGED
@@ -1,16 +1,11 @@
1
- import { TranslationsTab } from 'sanity-translations-tab';
2
- import { BaseDocumentDeserializer, BaseDocumentSerializer, BaseDocumentMerger, defaultStopTypes, customSerializers } from 'sanity-naive-html-serializer';
1
+ import { TranslationsTab, findLatestDraft, BaseDocumentDeserializer, BaseDocumentSerializer, BaseDocumentMerger, defaultStopTypes, customSerializers, Adapter } from 'sanity-translations-tab';
3
2
  import { TransifexAdapter } from './transifexAdapter';
4
- declare const defaultDocumentLevelConfig: {
5
- exportForTranslation: (id: string) => Promise<import("sanity-naive-html-serializer/dist/types").SerializedDocument>;
6
- importTranslation: (id: string, localeId: string, document: string) => void;
7
- adapter: import("sanity-translations-tab").Adapter;
8
- secretsNamespace: string;
9
- };
10
- declare const defaultFieldLevelConfig: {
11
- exportForTranslation: (id: string) => Promise<import("sanity-naive-html-serializer/dist/types").SerializedDocument>;
12
- importTranslation: (id: string, localeId: string, document: string) => void;
13
- adapter: import("sanity-translations-tab").Adapter;
14
- secretsNamespace: string;
15
- };
16
- export { TranslationsTab, BaseDocumentDeserializer, BaseDocumentSerializer, BaseDocumentMerger, defaultStopTypes, customSerializers, TransifexAdapter, defaultDocumentLevelConfig, defaultFieldLevelConfig, };
3
+ interface ConfigOptions {
4
+ adapter: Adapter;
5
+ secretsNamespace: string | null;
6
+ exportForTranslation: (id: string) => Promise<Record<string, any>>;
7
+ importTranslation: (id: string, localeId: string, doc: string) => Promise<void>;
8
+ }
9
+ declare const defaultDocumentLevelConfig: ConfigOptions;
10
+ declare const defaultFieldLevelConfig: ConfigOptions;
11
+ export { TranslationsTab, findLatestDraft, BaseDocumentDeserializer, BaseDocumentSerializer, BaseDocumentMerger, defaultStopTypes, customSerializers, TransifexAdapter, defaultDocumentLevelConfig, defaultFieldLevelConfig, };
@@ -2,11 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
6
-
7
5
  var sanityTranslationsTab = require('sanity-translations-tab');
8
- var sanityNaiveHtmlSerializer = require('sanity-naive-html-serializer');
9
- var sanityClient = _interopDefault(require('part:@sanity/base/client'));
10
6
 
11
7
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
12
8
  try {
@@ -44,6 +40,24 @@ function _asyncToGenerator(fn) {
44
40
  };
45
41
  }
46
42
 
43
+ function _extends() {
44
+ _extends = Object.assign || function (target) {
45
+ for (var i = 1; i < arguments.length; i++) {
46
+ var source = arguments[i];
47
+
48
+ for (var key in source) {
49
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
50
+ target[key] = source[key];
51
+ }
52
+ }
53
+ }
54
+
55
+ return target;
56
+ };
57
+
58
+ return _extends.apply(this, arguments);
59
+ }
60
+
47
61
  function createCommonjsModule(fn, module) {
48
62
  return module = { exports: {} }, fn(module, module.exports), module.exports;
49
63
  }
@@ -136,9 +150,9 @@ var runtime = (function (exports) {
136
150
  // This is a polyfill for %IteratorPrototype% for environments that
137
151
  // don't natively support it.
138
152
  var IteratorPrototype = {};
139
- IteratorPrototype[iteratorSymbol] = function () {
153
+ define(IteratorPrototype, iteratorSymbol, function () {
140
154
  return this;
141
- };
155
+ });
142
156
 
143
157
  var getProto = Object.getPrototypeOf;
144
158
  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));
@@ -152,8 +166,9 @@ var runtime = (function (exports) {
152
166
 
153
167
  var Gp = GeneratorFunctionPrototype.prototype =
154
168
  Generator.prototype = Object.create(IteratorPrototype);
155
- GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;
156
- GeneratorFunctionPrototype.constructor = GeneratorFunction;
169
+ GeneratorFunction.prototype = GeneratorFunctionPrototype;
170
+ define(Gp, "constructor", GeneratorFunctionPrototype);
171
+ define(GeneratorFunctionPrototype, "constructor", GeneratorFunction);
157
172
  GeneratorFunction.displayName = define(
158
173
  GeneratorFunctionPrototype,
159
174
  toStringTagSymbol,
@@ -267,9 +282,9 @@ var runtime = (function (exports) {
267
282
  }
268
283
 
269
284
  defineIteratorMethods(AsyncIterator.prototype);
270
- AsyncIterator.prototype[asyncIteratorSymbol] = function () {
285
+ define(AsyncIterator.prototype, asyncIteratorSymbol, function () {
271
286
  return this;
272
- };
287
+ });
273
288
  exports.AsyncIterator = AsyncIterator;
274
289
 
275
290
  // Note that simple async functions are implemented on top of
@@ -462,13 +477,13 @@ var runtime = (function (exports) {
462
477
  // iterator prototype chain incorrectly implement this, causing the Generator
463
478
  // object to not be returned from this call. This ensures that doesn't happen.
464
479
  // See https://github.com/facebook/regenerator/issues/274 for more details.
465
- Gp[iteratorSymbol] = function() {
480
+ define(Gp, iteratorSymbol, function() {
466
481
  return this;
467
- };
482
+ });
468
483
 
469
- Gp.toString = function() {
484
+ define(Gp, "toString", function() {
470
485
  return "[object Generator]";
471
- };
486
+ });
472
487
 
473
488
  function pushTryEntry(locs) {
474
489
  var entry = { tryLoc: locs[0] };
@@ -787,14 +802,19 @@ try {
787
802
  } catch (accidentalStrictMode) {
788
803
  // This module should not be running in strict mode, so the above
789
804
  // assignment should always work unless something is misconfigured. Just
790
- // in case runtime.js accidentally runs in strict mode, we can escape
805
+ // in case runtime.js accidentally runs in strict mode, in modern engines
806
+ // we can explicitly access globalThis. In older engines we can escape
791
807
  // strict mode using a global Function call. This could conceivably fail
792
808
  // if a Content Security Policy forbids using Function, but in that case
793
809
  // the proper solution is to fix the accidental strict mode problem. If
794
810
  // you've misconfigured your bundler to force strict mode and applied a
795
811
  // CSP to forbid Function, and you're not willing to fix either of those
796
812
  // problems, please detail your unique predicament in a GitHub issue.
797
- Function("r", "regeneratorRuntime = r")(runtime);
813
+ if (typeof globalThis === "object") {
814
+ globalThis.regeneratorRuntime = runtime;
815
+ } else {
816
+ Function("r", "regeneratorRuntime = r")(runtime);
817
+ }
798
818
  }
799
819
  });
800
820
 
@@ -859,23 +879,34 @@ var getTranslationTask = /*#__PURE__*/function () {
859
879
  while (1) {
860
880
  switch (_context2.prev = _context2.next) {
861
881
  case 0:
882
+ if (!(!documentId || !secrets)) {
883
+ _context2.next = 2;
884
+ break;
885
+ }
886
+
887
+ return _context2.abrupt("return", {
888
+ taskId: documentId,
889
+ documentId: documentId,
890
+ locales: []
891
+ });
892
+
893
+ case 2:
862
894
  projectFilter = "filter[project]=" + projOrgSlug(secrets);
863
895
  resourceFilter = "filter[resource]=" + projOrgSlug(secrets) + ":r:" + documentId;
864
- _context2.next = 4;
896
+ _context2.next = 6;
865
897
  return fetch(baseTransifexUrl + "/resource_language_stats?" + projectFilter + "&" + resourceFilter, {
866
898
  headers: getHeaders(secrets)
867
899
  }).then(function (res) {
868
900
  if (res.ok) {
869
901
  return res.json();
870
902
  } //normal -- just means that this task doesn't exist yet.
871
- else //normal -- just means that this task doesn't exist yet.
872
- if (res.status === 404) {
873
- return {
874
- data: []
875
- };
876
- } else {
877
- throw Error("Failed to retrieve tasks from Transifex. Status: " + res.status);
878
- }
903
+ else if (res.status === 404) {
904
+ return {
905
+ data: []
906
+ };
907
+ } else {
908
+ throw Error("Failed to retrieve tasks from Transifex. Status: " + res.status);
909
+ }
879
910
  }).then(function (res) {
880
911
  return {
881
912
  taskId: projOrgSlug(secrets) + ":r:" + documentId,
@@ -889,12 +920,12 @@ var getTranslationTask = /*#__PURE__*/function () {
889
920
  };
890
921
  });
891
922
 
892
- case 4:
923
+ case 6:
893
924
  task = _context2.sent;
894
- _context2.next = 7;
925
+ _context2.next = 9;
895
926
  return getLocales(secrets);
896
927
 
897
- case 7:
928
+ case 9:
898
929
  locales = _context2.sent;
899
930
  localeIds = locales.map(function (l) {
900
931
  return l.localeId;
@@ -907,7 +938,7 @@ var getTranslationTask = /*#__PURE__*/function () {
907
938
  task.locales = validLocales;
908
939
  return _context2.abrupt("return", task);
909
940
 
910
- case 12:
941
+ case 14:
911
942
  case "end":
912
943
  return _context2.stop();
913
944
  }
@@ -1097,6 +1128,7 @@ var getTranslation = /*#__PURE__*/function () {
1097
1128
  if (res.redirected) {
1098
1129
  return resolve(handleFileDownload(res.url));
1099
1130
  } else {
1131
+ console.log('no redirected, try again');
1100
1132
  return res.json();
1101
1133
  }
1102
1134
  });
@@ -1146,317 +1178,56 @@ var TransifexAdapter = {
1146
1178
  getTranslation: getTranslation
1147
1179
  };
1148
1180
 
1149
- var client = /*#__PURE__*/sanityClient.withConfig({
1150
- apiVersion: '2021-03-25'
1151
- }); //document fetch
1152
-
1153
- var findLatestDraft = function findLatestDraft(documentId, ignoreI18n) {
1154
- if (ignoreI18n === void 0) {
1155
- ignoreI18n = true;
1156
- }
1157
-
1158
- //eliminates i18n versions
1159
- var query = "*[_id match $id " + (ignoreI18n ? ' && (_id in path("drafts.*") || _id in path("*"))' : '') + "]";
1160
- var params = {
1161
- id: "*" + documentId
1162
- };
1163
- return client.fetch(query, params).then(function (docs) {
1164
- var _docs$find;
1165
-
1166
- return (_docs$find = docs.find(function (doc) {
1167
- return doc._id.includes('draft');
1168
- })) != null ? _docs$find : docs[0];
1169
- });
1170
- }; //revision fetch
1171
-
1172
- var findDocumentAtRevision = /*#__PURE__*/function () {
1173
- var _ref = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee(documentId, rev) {
1174
- var dataset, baseUrl, url, revisionDoc;
1175
- return runtime_1.wrap(function _callee$(_context) {
1176
- while (1) {
1177
- switch (_context.prev = _context.next) {
1178
- case 0:
1179
- dataset = client.config().dataset;
1180
- baseUrl = "/data/history/" + dataset + "/documents/" + documentId + "?revision=" + rev;
1181
- url = client.getUrl(baseUrl);
1182
- _context.next = 5;
1183
- return fetch(url, {
1184
- credentials: 'include'
1185
- }).then(function (req) {
1186
- return req.json();
1187
- }).then(function (req) {
1188
- return req.documents[0];
1189
- });
1190
-
1191
- case 5:
1192
- revisionDoc = _context.sent;
1193
-
1194
- if (!(!revisionDoc || revisionDoc._rev !== rev)) {
1195
- _context.next = 12;
1196
- break;
1197
- }
1198
-
1199
- baseUrl = "/data/history/" + dataset + "/documents/drafts." + documentId + "?revision=" + rev;
1200
- url = client.getUrl(baseUrl);
1201
- _context.next = 11;
1202
- return fetch(url, {
1203
- credentials: 'include'
1204
- }).then(function (req) {
1205
- return req.json();
1206
- }).then(function (req) {
1207
- return req.documents[0];
1208
- });
1209
-
1210
- case 11:
1211
- revisionDoc = _context.sent;
1212
-
1213
- case 12:
1214
- return _context.abrupt("return", revisionDoc);
1215
-
1216
- case 13:
1217
- case "end":
1218
- return _context.stop();
1219
- }
1220
- }
1221
- }, _callee);
1222
- }));
1223
-
1224
- return function findDocumentAtRevision(_x, _x2) {
1225
- return _ref.apply(this, arguments);
1226
- };
1227
- }(); //document-level patch
1228
-
1229
- var documentLevelPatch = /*#__PURE__*/function () {
1230
- var _ref2 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee2(documentId, translatedFields, localeId) {
1231
- var baseDoc, merged, targetId, i18nDoc, cleanedMerge;
1232
- return runtime_1.wrap(function _callee2$(_context2) {
1233
- while (1) {
1234
- switch (_context2.prev = _context2.next) {
1235
- case 0:
1236
- if (!translatedFields._rev) {
1237
- _context2.next = 6;
1238
- break;
1239
- }
1240
-
1241
- _context2.next = 3;
1242
- return findDocumentAtRevision(documentId, translatedFields._rev);
1243
-
1244
- case 3:
1245
- baseDoc = _context2.sent;
1246
- _context2.next = 9;
1247
- break;
1248
-
1249
- case 6:
1250
- _context2.next = 8;
1251
- return findLatestDraft(documentId);
1252
-
1253
- case 8:
1254
- baseDoc = _context2.sent;
1255
-
1256
- case 9:
1257
- merged = sanityNaiveHtmlSerializer.BaseDocumentMerger.documentLevelMerge(translatedFields, baseDoc);
1258
- targetId = "i18n." + documentId + "." + localeId;
1259
- _context2.next = 13;
1260
- return findLatestDraft(targetId, false);
1261
-
1262
- case 13:
1263
- i18nDoc = _context2.sent;
1264
-
1265
- if (i18nDoc) {
1266
- cleanedMerge = {}; //don't overwrite any existing values on the i18n doc
1267
-
1268
- Object.entries(merged).forEach(function (_ref3) {
1269
- var key = _ref3[0],
1270
- value = _ref3[1];
1271
-
1272
- if (Object.keys(translatedFields).includes(key) && !['_id', '_rev', '_updatedAt'].includes(key)) {
1273
- cleanedMerge[key] = value;
1274
- }
1275
- });
1276
- client.transaction() //@ts-ignore
1277
- .patch(i18nDoc._id, function (p) {
1278
- return p.set(cleanedMerge);
1279
- }).commit();
1280
- } else {
1281
- merged._id = "drafts." + targetId; //account for legacy implementations of i18n plugin lang
1282
-
1283
- if (baseDoc._lang) {
1284
- merged._lang = localeId;
1285
- } else if (baseDoc.__i18n_lang) {
1286
- merged.__i18n_lang = localeId;
1287
- }
1288
-
1289
- client.create(merged);
1290
- }
1291
-
1292
- case 15:
1293
- case "end":
1294
- return _context2.stop();
1295
- }
1296
- }
1297
- }, _callee2);
1298
- }));
1299
-
1300
- return function documentLevelPatch(_x3, _x4, _x5) {
1301
- return _ref2.apply(this, arguments);
1302
- };
1303
- }(); //field level patch
1304
-
1305
- var fieldLevelPatch = /*#__PURE__*/function () {
1306
- var _ref4 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee3(documentId, translatedFields, localeId) {
1307
- var baseDoc, merged;
1308
- return runtime_1.wrap(function _callee3$(_context3) {
1309
- while (1) {
1310
- switch (_context3.prev = _context3.next) {
1311
- case 0:
1312
- if (!translatedFields._rev) {
1313
- _context3.next = 6;
1314
- break;
1315
- }
1316
-
1317
- _context3.next = 3;
1318
- return findDocumentAtRevision(documentId, translatedFields._rev);
1319
-
1320
- case 3:
1321
- baseDoc = _context3.sent;
1322
- _context3.next = 9;
1323
- break;
1324
-
1325
- case 6:
1326
- _context3.next = 8;
1327
- return findLatestDraft(documentId);
1328
-
1329
- case 8:
1330
- baseDoc = _context3.sent;
1331
-
1332
- case 9:
1333
- merged = sanityNaiveHtmlSerializer.BaseDocumentMerger.fieldLevelMerge(translatedFields, baseDoc, localeId, 'en');
1334
- client.patch(baseDoc._id).set(merged).commit();
1335
-
1336
- case 11:
1337
- case "end":
1338
- return _context3.stop();
1339
- }
1340
- }
1341
- }, _callee3);
1342
- }));
1343
-
1344
- return function fieldLevelPatch(_x6, _x7, _x8) {
1345
- return _ref4.apply(this, arguments);
1346
- };
1347
- }();
1348
-
1349
- var defaultDocumentLevelConfig = {
1350
- exportForTranslation: /*#__PURE__*/function () {
1351
- var _exportForTranslation = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee(id) {
1352
- var doc, serialized;
1353
- return runtime_1.wrap(function _callee$(_context) {
1354
- while (1) {
1355
- switch (_context.prev = _context.next) {
1356
- case 0:
1357
- _context.next = 2;
1358
- return findLatestDraft(id);
1359
-
1360
- case 2:
1361
- doc = _context.sent;
1362
- serialized = sanityNaiveHtmlSerializer.BaseDocumentSerializer.serializeDocument(doc, 'document');
1363
- serialized.name = id;
1364
- return _context.abrupt("return", serialized);
1365
-
1366
- case 6:
1367
- case "end":
1368
- return _context.stop();
1369
- }
1370
- }
1371
- }, _callee);
1372
- }));
1373
-
1374
- function exportForTranslation(_x) {
1375
- return _exportForTranslation.apply(this, arguments);
1376
- }
1377
-
1378
- return exportForTranslation;
1379
- }(),
1380
- importTranslation: function importTranslation(id, localeId, document) {
1381
- var deserialized = sanityNaiveHtmlSerializer.BaseDocumentDeserializer.deserializeDocument(document);
1382
- documentLevelPatch(id, deserialized, localeId);
1383
- },
1181
+ var defaultDocumentLevelConfig = /*#__PURE__*/_extends({}, sanityTranslationsTab.baseDocumentLevelConfig, {
1384
1182
  adapter: TransifexAdapter,
1385
1183
  secretsNamespace: 'transifex'
1386
- };
1387
- var defaultFieldLevelConfig = {
1388
- exportForTranslation: /*#__PURE__*/function () {
1389
- var _exportForTranslation2 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee2(id) {
1390
- var doc, serialized;
1391
- return runtime_1.wrap(function _callee2$(_context2) {
1392
- while (1) {
1393
- switch (_context2.prev = _context2.next) {
1394
- case 0:
1395
- _context2.next = 2;
1396
- return findLatestDraft(id);
1397
-
1398
- case 2:
1399
- doc = _context2.sent;
1400
- serialized = sanityNaiveHtmlSerializer.BaseDocumentSerializer.serializeDocument(doc, 'field');
1401
- serialized.name = id;
1402
- return _context2.abrupt("return", serialized);
1403
-
1404
- case 6:
1405
- case "end":
1406
- return _context2.stop();
1407
- }
1408
- }
1409
- }, _callee2);
1410
- }));
1411
-
1412
- function exportForTranslation(_x2) {
1413
- return _exportForTranslation2.apply(this, arguments);
1414
- }
1184
+ });
1415
1185
 
1416
- return exportForTranslation;
1417
- }(),
1418
- importTranslation: function importTranslation(id, localeId, document) {
1419
- var deserialized = sanityNaiveHtmlSerializer.BaseDocumentDeserializer.deserializeDocument(document);
1420
- fieldLevelPatch(id, deserialized, localeId);
1421
- },
1186
+ var defaultFieldLevelConfig = /*#__PURE__*/_extends({}, sanityTranslationsTab.baseFieldLevelConfig, {
1422
1187
  adapter: TransifexAdapter,
1423
1188
  secretsNamespace: 'transifex'
1424
- };
1189
+ });
1425
1190
 
1426
- Object.defineProperty(exports, 'TranslationsTab', {
1191
+ Object.defineProperty(exports, 'BaseDocumentDeserializer', {
1427
1192
  enumerable: true,
1428
1193
  get: function () {
1429
- return sanityTranslationsTab.TranslationsTab;
1194
+ return sanityTranslationsTab.BaseDocumentDeserializer;
1430
1195
  }
1431
1196
  });
1432
- Object.defineProperty(exports, 'BaseDocumentDeserializer', {
1197
+ Object.defineProperty(exports, 'BaseDocumentMerger', {
1433
1198
  enumerable: true,
1434
1199
  get: function () {
1435
- return sanityNaiveHtmlSerializer.BaseDocumentDeserializer;
1200
+ return sanityTranslationsTab.BaseDocumentMerger;
1436
1201
  }
1437
1202
  });
1438
- Object.defineProperty(exports, 'BaseDocumentMerger', {
1203
+ Object.defineProperty(exports, 'BaseDocumentSerializer', {
1439
1204
  enumerable: true,
1440
1205
  get: function () {
1441
- return sanityNaiveHtmlSerializer.BaseDocumentMerger;
1206
+ return sanityTranslationsTab.BaseDocumentSerializer;
1442
1207
  }
1443
1208
  });
1444
- Object.defineProperty(exports, 'BaseDocumentSerializer', {
1209
+ Object.defineProperty(exports, 'TranslationsTab', {
1445
1210
  enumerable: true,
1446
1211
  get: function () {
1447
- return sanityNaiveHtmlSerializer.BaseDocumentSerializer;
1212
+ return sanityTranslationsTab.TranslationsTab;
1448
1213
  }
1449
1214
  });
1450
1215
  Object.defineProperty(exports, 'customSerializers', {
1451
1216
  enumerable: true,
1452
1217
  get: function () {
1453
- return sanityNaiveHtmlSerializer.customSerializers;
1218
+ return sanityTranslationsTab.customSerializers;
1454
1219
  }
1455
1220
  });
1456
1221
  Object.defineProperty(exports, 'defaultStopTypes', {
1457
1222
  enumerable: true,
1458
1223
  get: function () {
1459
- return sanityNaiveHtmlSerializer.defaultStopTypes;
1224
+ return sanityTranslationsTab.defaultStopTypes;
1225
+ }
1226
+ });
1227
+ Object.defineProperty(exports, 'findLatestDraft', {
1228
+ enumerable: true,
1229
+ get: function () {
1230
+ return sanityTranslationsTab.findLatestDraft;
1460
1231
  }
1461
1232
  });
1462
1233
  exports.TransifexAdapter = TransifexAdapter;