@stackbit/cms-contentstack 0.1.1-staging.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.
Files changed (72) hide show
  1. package/README.md +1 -0
  2. package/dist/.tsbuildinfo +1 -0
  3. package/dist/contentstack-api-client.d.ts +63 -0
  4. package/dist/contentstack-api-client.d.ts.map +1 -0
  5. package/dist/contentstack-api-client.js +295 -0
  6. package/dist/contentstack-api-client.js.map +1 -0
  7. package/dist/contentstack-content-poller.d.ts +46 -0
  8. package/dist/contentstack-content-poller.d.ts.map +1 -0
  9. package/dist/contentstack-content-poller.js +111 -0
  10. package/dist/contentstack-content-poller.js.map +1 -0
  11. package/dist/contentstack-content-source.d.ts +138 -0
  12. package/dist/contentstack-content-source.d.ts.map +1 -0
  13. package/dist/contentstack-content-source.js +544 -0
  14. package/dist/contentstack-content-source.js.map +1 -0
  15. package/dist/contentstack-conversion-utils.d.ts +41 -0
  16. package/dist/contentstack-conversion-utils.d.ts.map +1 -0
  17. package/dist/contentstack-conversion-utils.js +504 -0
  18. package/dist/contentstack-conversion-utils.js.map +1 -0
  19. package/dist/contentstack-entries-converter.d.ts +39 -0
  20. package/dist/contentstack-entries-converter.d.ts.map +1 -0
  21. package/dist/contentstack-entries-converter.js +333 -0
  22. package/dist/contentstack-entries-converter.js.map +1 -0
  23. package/dist/contentstack-operation-converter.d.ts +42 -0
  24. package/dist/contentstack-operation-converter.d.ts.map +1 -0
  25. package/dist/contentstack-operation-converter.js +535 -0
  26. package/dist/contentstack-operation-converter.js.map +1 -0
  27. package/dist/contentstack-schema-converter.d.ts +26 -0
  28. package/dist/contentstack-schema-converter.d.ts.map +1 -0
  29. package/dist/contentstack-schema-converter.js +379 -0
  30. package/dist/contentstack-schema-converter.js.map +1 -0
  31. package/dist/contentstack-types.d.ts +429 -0
  32. package/dist/contentstack-types.d.ts.map +1 -0
  33. package/dist/contentstack-types.js +3 -0
  34. package/dist/contentstack-types.js.map +1 -0
  35. package/dist/contentstack-utils.d.ts +31 -0
  36. package/dist/contentstack-utils.d.ts.map +1 -0
  37. package/dist/contentstack-utils.js +144 -0
  38. package/dist/contentstack-utils.js.map +1 -0
  39. package/dist/entries-converter.d.ts +10 -0
  40. package/dist/entries-converter.d.ts.map +1 -0
  41. package/dist/entries-converter.js +245 -0
  42. package/dist/entries-converter.js.map +1 -0
  43. package/dist/file-download.d.ts +2 -0
  44. package/dist/file-download.d.ts.map +1 -0
  45. package/dist/file-download.js +33 -0
  46. package/dist/file-download.js.map +1 -0
  47. package/dist/index.d.ts +4 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +14 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/schema-converter.d.ts +3 -0
  52. package/dist/schema-converter.d.ts.map +1 -0
  53. package/dist/schema-converter.js +169 -0
  54. package/dist/schema-converter.js.map +1 -0
  55. package/dist/transformation-utils.d.ts +41 -0
  56. package/dist/transformation-utils.d.ts.map +1 -0
  57. package/dist/transformation-utils.js +730 -0
  58. package/dist/transformation-utils.js.map +1 -0
  59. package/dist/types.d.ts +120 -0
  60. package/dist/types.d.ts.map +1 -0
  61. package/dist/types.js +3 -0
  62. package/dist/types.js.map +1 -0
  63. package/package.json +44 -0
  64. package/src/contentstack-api-client.ts +330 -0
  65. package/src/contentstack-content-poller.ts +157 -0
  66. package/src/contentstack-content-source.ts +687 -0
  67. package/src/contentstack-entries-converter.ts +438 -0
  68. package/src/contentstack-operation-converter.ts +703 -0
  69. package/src/contentstack-schema-converter.ts +486 -0
  70. package/src/contentstack-types.ts +527 -0
  71. package/src/contentstack-utils.ts +174 -0
  72. package/src/index.ts +3 -0
@@ -0,0 +1,535 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.convertOperationFieldValue = exports.getUpdatedEntryAtFieldPathWithOperation = exports.updateEntryFromUpdateOperations = exports.createEntryFromOperationFields = void 0;
7
+ const uuid_1 = require("uuid");
8
+ const lodash_1 = __importDefault(require("lodash"));
9
+ function createEntryFromOperationFields({ updateOperationFields, model, getDocumentById, getModelByName, logger }) {
10
+ return lodash_1.default.reduce(updateOperationFields, (accum, updateOperationField, fieldName) => {
11
+ const modelField = getModelField(model, fieldName);
12
+ if (!modelField) {
13
+ return accum;
14
+ }
15
+ accum[fieldName] = convertOperationFieldValue({
16
+ updateOperationField,
17
+ modelField,
18
+ isInList: false,
19
+ rootModel: model,
20
+ entryFieldPath: [fieldName],
21
+ modelFieldPath: [fieldName],
22
+ getDocumentById,
23
+ getModelByName,
24
+ errorPrefix: 'Error occurred while creating an entry.'
25
+ });
26
+ return accum;
27
+ }, { title: (0, uuid_1.v4)() });
28
+ }
29
+ exports.createEntryFromOperationFields = createEntryFromOperationFields;
30
+ function updateEntryFromUpdateOperations({ entry, updateOperations, getDocumentById, getModelByName, logger }) {
31
+ const model = getModelByName(entry.content_type_uid);
32
+ if (!model) {
33
+ throw new Error(`Error occurred while updating entry ${entry.uid}, model ${entry.content_type_uid} not found.`);
34
+ }
35
+ let updatedEntry = lodash_1.default.reduce(updateOperations, (entry, updateOperation) => {
36
+ return getUpdatedEntryAtFieldPathWithOperation({
37
+ entry,
38
+ updateOperation,
39
+ model,
40
+ getDocumentById,
41
+ getModelByName,
42
+ logger
43
+ });
44
+ }, entry);
45
+ // Create a copy of the entry and remove fields that were not updated.
46
+ const modelFieldsMap = lodash_1.default.keyBy(model.fields, 'name');
47
+ const updatedRootFieldNames = updateOperations.reduce((fieldNamesMap, updateOperations) => {
48
+ fieldNamesMap[updateOperations.fieldPath[0]] = true;
49
+ return fieldNamesMap;
50
+ }, {});
51
+ // const includedMetaProps = _.transform(
52
+ // ['uid', 'stackHeaders', 'content_type_uid', 'taxonomy_uid', 'locale', '_version', 'urlPath'],
53
+ // (map, value) => {
54
+ // map[value] = true;
55
+ // },
56
+ // {} as Record<string, boolean>
57
+ // );
58
+ updatedEntry = lodash_1.default.reduce(updatedEntry, (newEntry, value, prop) => {
59
+ if (!modelFieldsMap[prop] || updatedRootFieldNames[prop]) {
60
+ newEntry[prop] = value;
61
+ }
62
+ return newEntry;
63
+ }, {});
64
+ return sanitizeForUpdate(updatedEntry);
65
+ }
66
+ exports.updateEntryFromUpdateOperations = updateEntryFromUpdateOperations;
67
+ function getUpdatedEntryAtFieldPathWithOperation({ entry, updateOperation, model, getDocumentById, getModelByName, logger }) {
68
+ let opMessage;
69
+ switch (updateOperation.opType) {
70
+ case 'set':
71
+ opMessage = 'setting a field';
72
+ break;
73
+ case 'unset':
74
+ opMessage = 'unsetting a field';
75
+ break;
76
+ case 'insert':
77
+ opMessage = 'inserting an item into a list';
78
+ break;
79
+ case 'remove':
80
+ opMessage = 'removing an item from a list';
81
+ break;
82
+ case 'reorder':
83
+ opMessage = 'reordering a list';
84
+ break;
85
+ }
86
+ const errorPrefix = `Error occurred while ${opMessage} in entry '${entry.uid}'.`;
87
+ function createError(detailedMessage) {
88
+ return new Error(`${errorPrefix} ${detailedMessage}`);
89
+ }
90
+ function iterateModel({ value, model, fieldPath, entryFieldPath, modelFieldPath }) {
91
+ if (fieldPath.length === 0) {
92
+ return getValueForOperation({
93
+ updateOperation,
94
+ value,
95
+ rootEntry: entry,
96
+ rootModel: model,
97
+ entryFieldPath,
98
+ modelFieldPath,
99
+ getDocumentById,
100
+ getModelByName,
101
+ errorPrefix,
102
+ logger
103
+ });
104
+ }
105
+ const fieldName = lodash_1.default.head(fieldPath);
106
+ const fieldPathTail = lodash_1.default.tail(fieldPath);
107
+ if (typeof fieldName !== 'string') {
108
+ throw createError(`The field '${fieldName}' in field path '${entryFieldPath.concat(fieldName).join('.')}' ` +
109
+ `is not a string, 'typeof ${fieldName} === ${typeof fieldName}'.`);
110
+ }
111
+ const modelField = getModelField(model, fieldName);
112
+ if (!modelField) {
113
+ throw createError(`The field '${fieldName}' in field path '${entryFieldPath.concat(fieldName).join('.')}' does not exist in model '${model.name}'.`);
114
+ }
115
+ return {
116
+ ...value,
117
+ [fieldName]: iterateField({
118
+ value: value ? value[fieldName] : undefined,
119
+ modelField,
120
+ fieldPath: fieldPathTail,
121
+ rootModel: model,
122
+ entryFieldPath: entryFieldPath.concat(fieldName),
123
+ modelFieldPath: modelFieldPath.concat(fieldName)
124
+ })
125
+ };
126
+ }
127
+ function iterateField({ value, modelField, fieldPath, rootModel, entryFieldPath, modelFieldPath }) {
128
+ var _a, _b;
129
+ if (fieldPath.length === 0) {
130
+ return getValueForOperation({
131
+ updateOperation,
132
+ value,
133
+ rootEntry: entry,
134
+ rootModel,
135
+ entryFieldPath,
136
+ modelFieldPath,
137
+ getDocumentById,
138
+ getModelByName,
139
+ errorPrefix,
140
+ logger
141
+ });
142
+ }
143
+ if (modelField.type === 'object') {
144
+ // The value must be an object to apply the operation on its nested field with name fieldName,
145
+ // otherwise the fieldPath is illegal
146
+ if (!isObject(value)) {
147
+ throw createError(`The field path '${entryFieldPath.join('.')}' points to an empty value.`);
148
+ }
149
+ const fieldName = lodash_1.default.head(fieldPath);
150
+ const fieldPathTail = lodash_1.default.tail(fieldPath);
151
+ if (typeof fieldName !== 'string') {
152
+ throw createError(`The field '${fieldName}' in field path '${entryFieldPath.concat(fieldName).join('.')}' ` +
153
+ `is not a string, 'typeof ${fieldName} === ${typeof fieldName}'.`);
154
+ }
155
+ const childModelField = getModelField(modelField, fieldName);
156
+ if (!childModelField) {
157
+ throw createError(`The field '${fieldName}' in field path '${entryFieldPath.concat(fieldName).join('.')}' does not exist in model '${model.name}'.`);
158
+ }
159
+ return {
160
+ ...value,
161
+ [fieldName]: iterateField({
162
+ value: value ? value[fieldName] : undefined,
163
+ modelField: childModelField,
164
+ fieldPath: fieldPathTail,
165
+ rootModel,
166
+ entryFieldPath: entryFieldPath.concat(fieldName),
167
+ modelFieldPath: modelFieldPath.concat(fieldName)
168
+ })
169
+ };
170
+ }
171
+ else if (modelField.type === 'model') {
172
+ // The value must be an object to apply the operation on its nested field with name fieldName,
173
+ // otherwise the fieldPath is illegal
174
+ if (!isObject(value)) {
175
+ throw createError(`The field path '${entryFieldPath.join('.')}' points to an empty value.`);
176
+ }
177
+ const fieldPathStr = modelFieldPath.join('.');
178
+ const blockMap = (_b = (_a = rootModel.context) === null || _a === void 0 ? void 0 : _a.blockMap) === null || _b === void 0 ? void 0 : _b[fieldPathStr];
179
+ if (blockMap) {
180
+ // This is a modular blocks field with keys mapping to inline (object)
181
+ // or global (model) fields mapped by model.context.blockMap[blockUID].
182
+ const blockUIDs = lodash_1.default.keys(value);
183
+ const blockUID = blockUIDs[0];
184
+ if (blockUIDs.length !== 1 || !blockUID) {
185
+ throw createError(`The modular block at field path '${entryFieldPath.join('.')}' has no UID.`);
186
+ }
187
+ const block = value[blockUID];
188
+ if (!isObject(block)) {
189
+ throw createError(`The field path '${entryFieldPath.join('.')}' points to an empty modular block '${blockUID}'.`);
190
+ }
191
+ const modelName = blockMap.blockIdToModelName[blockUID];
192
+ if (!modelName) {
193
+ throw createError(`Could not match model name for modular block '${blockUID}' at field path '${entryFieldPath.join('.')}'.`);
194
+ }
195
+ const nestedModel = getModelByName(modelName);
196
+ if (!nestedModel) {
197
+ throw createError(`Could not find model named '${modelName}' for modular block '${blockUID}' ` + `at field path '${entryFieldPath.join('.')}'.`);
198
+ }
199
+ return {
200
+ [blockUID]: iterateModel({
201
+ value: block,
202
+ fieldPath: fieldPath,
203
+ model: nestedModel,
204
+ entryFieldPath: entryFieldPath,
205
+ modelFieldPath: []
206
+ })
207
+ };
208
+ }
209
+ else {
210
+ // This is as a regular global field (model) with a single model or as a CNTSTK_LINK_MODEL
211
+ if (modelField.models.length !== 1) {
212
+ throw createError(`A model field at field path '${entryFieldPath.join('.')}' has more than one (or zero) models ${modelField.models.join('.')}.`);
213
+ }
214
+ const modelName = modelField.models[0];
215
+ const nestedModel = getModelByName(modelName);
216
+ if (!nestedModel) {
217
+ throw createError(`Could not find model named '${modelName}' for object at field path '${entryFieldPath.join('.')}.'`);
218
+ }
219
+ return iterateModel({
220
+ value: value,
221
+ fieldPath: fieldPath,
222
+ model: nestedModel,
223
+ entryFieldPath: entryFieldPath,
224
+ modelFieldPath: []
225
+ });
226
+ }
227
+ }
228
+ else if (modelField.type === 'list') {
229
+ // The value must be an array to apply the operation on its nested items with item index,
230
+ // otherwise the fieldPath is illegal
231
+ if (!Array.isArray(value)) {
232
+ throw createError(`The value at field path '${entryFieldPath.join('.')}' is not an array.`);
233
+ }
234
+ const fieldName = lodash_1.default.head(fieldPath);
235
+ const fieldPathTail = lodash_1.default.tail(fieldPath);
236
+ const index = lodash_1.default.toNumber(fieldName);
237
+ if (typeof index !== 'number' || lodash_1.default.isNaN(index)) {
238
+ throw createError(`The field '${fieldName}' in field path '${entryFieldPath.concat(fieldName).join('.')}' ` +
239
+ `is not a string, 'typeof ${fieldName} === ${typeof fieldName}'.`);
240
+ }
241
+ const newArray = value.slice();
242
+ newArray.splice(index, 1, iterateField({
243
+ value: value[index],
244
+ fieldPath: fieldPathTail,
245
+ modelField: modelField.items,
246
+ rootModel,
247
+ entryFieldPath: entryFieldPath.concat(index),
248
+ modelFieldPath: modelFieldPath
249
+ }));
250
+ return newArray;
251
+ }
252
+ throw createError(`The field type '${modelField.type}' at field path '${entryFieldPath.join('.')}' is not a container type (object, model, list).`);
253
+ }
254
+ return iterateModel({
255
+ value: entry,
256
+ model,
257
+ fieldPath: updateOperation.fieldPath,
258
+ entryFieldPath: [],
259
+ modelFieldPath: []
260
+ });
261
+ }
262
+ exports.getUpdatedEntryAtFieldPathWithOperation = getUpdatedEntryAtFieldPathWithOperation;
263
+ function getValueForOperation({ updateOperation, value, rootModel, entryFieldPath, modelFieldPath, getDocumentById, getModelByName, errorPrefix, logger }) {
264
+ switch (updateOperation.opType) {
265
+ case 'set':
266
+ return convertOperationFieldValue({
267
+ updateOperationField: updateOperation.field,
268
+ modelField: updateOperation.modelField,
269
+ isInList: false,
270
+ rootModel: rootModel,
271
+ entryFieldPath: entryFieldPath,
272
+ modelFieldPath: modelFieldPath,
273
+ getModelByName,
274
+ getDocumentById,
275
+ errorPrefix
276
+ });
277
+ case 'unset': {
278
+ return null;
279
+ }
280
+ case 'insert': {
281
+ if (typeof value === 'undefined') {
282
+ value = [];
283
+ }
284
+ if (!Array.isArray(value)) {
285
+ throw new Error(`${errorPrefix} The field path points to a non array value.`);
286
+ }
287
+ const newValue = convertOperationFieldValue({
288
+ updateOperationField: updateOperation.item,
289
+ modelField: updateOperation.modelField.items,
290
+ isInList: true,
291
+ rootModel: rootModel,
292
+ entryFieldPath: entryFieldPath,
293
+ modelFieldPath: modelFieldPath,
294
+ getModelByName,
295
+ getDocumentById,
296
+ errorPrefix
297
+ });
298
+ if (typeof updateOperation.index === 'undefined') {
299
+ return value.concat(newValue);
300
+ }
301
+ const newArray = value.slice();
302
+ newArray.splice(updateOperation.index, 0, newValue);
303
+ return newArray;
304
+ }
305
+ case 'remove': {
306
+ if (typeof value === 'undefined') {
307
+ value = [];
308
+ }
309
+ if (!Array.isArray(value)) {
310
+ throw new Error(`${errorPrefix} The field path points to a non array value.`);
311
+ }
312
+ const newArray = value.slice();
313
+ newArray.splice(updateOperation.index, 1);
314
+ return newArray;
315
+ }
316
+ case 'reorder': {
317
+ if (typeof value === 'undefined') {
318
+ value = [];
319
+ }
320
+ if (!Array.isArray(value)) {
321
+ throw new Error(`${errorPrefix} The field path points to a non array value.`);
322
+ }
323
+ return updateOperation.order.map((newIndex) => value[newIndex]);
324
+ }
325
+ default: {
326
+ const _exhaustiveCheck = updateOperation;
327
+ return _exhaustiveCheck;
328
+ }
329
+ }
330
+ }
331
+ function convertOperationFieldValue({ updateOperationField, rootModel, modelField, isInList, entryFieldPath, modelFieldPath, getDocumentById, getModelByName, errorPrefix }) {
332
+ var _a, _b;
333
+ function createError(detailedMessage) {
334
+ return new Error(`${errorPrefix} ${detailedMessage}`);
335
+ }
336
+ switch (updateOperationField.type) {
337
+ case 'string':
338
+ case 'url':
339
+ case 'slug':
340
+ case 'text':
341
+ case 'markdown':
342
+ case 'html':
343
+ case 'color': {
344
+ // when adding item to a list, it can't be empty string or undefined,
345
+ // otherwise Contentstack will not add it to the list
346
+ if (isInList && (updateOperationField.value === '' || lodash_1.default.isNil(updateOperationField.value))) {
347
+ return ' ';
348
+ }
349
+ return updateOperationField.value;
350
+ }
351
+ case 'date':
352
+ case 'datetime': {
353
+ if (lodash_1.default.isEmpty(updateOperationField.value)) {
354
+ return new Date().toISOString();
355
+ }
356
+ return updateOperationField.value;
357
+ }
358
+ case 'enum': {
359
+ if (updateOperationField.value === '') {
360
+ return null;
361
+ }
362
+ const firstOption = modelField.options[0];
363
+ const optionValue = firstOption && isObject(firstOption) ? firstOption.value : firstOption;
364
+ const isNumberEnum = typeof optionValue === 'number';
365
+ if (isNumberEnum) {
366
+ return lodash_1.default.toNumber(updateOperationField.value);
367
+ }
368
+ else {
369
+ return lodash_1.default.toString(updateOperationField.value);
370
+ }
371
+ }
372
+ case 'number': {
373
+ return updateOperationField.value || 0;
374
+ }
375
+ case 'boolean': {
376
+ return updateOperationField.value || false;
377
+ }
378
+ case 'file':
379
+ case 'image': {
380
+ return updateOperationField.value || null;
381
+ }
382
+ case 'richText':
383
+ case 'json':
384
+ case 'style':
385
+ case 'cross-reference': {
386
+ return updateOperationField.value;
387
+ }
388
+ case 'reference': {
389
+ if ((updateOperationField === null || updateOperationField === void 0 ? void 0 : updateOperationField.refType) === 'asset') {
390
+ return updateOperationField.refId;
391
+ }
392
+ const document = getDocumentById(updateOperationField === null || updateOperationField === void 0 ? void 0 : updateOperationField.refId);
393
+ if (!document) {
394
+ throw createError(`Could not find entry with ID '${updateOperationField === null || updateOperationField === void 0 ? void 0 : updateOperationField.refId}' referenced at field path ${entryFieldPath.join('.')}.`);
395
+ }
396
+ const refObject = {
397
+ uid: updateOperationField.refId,
398
+ _content_type_uid: document.modelName
399
+ };
400
+ // references fields are always stored as arrays, even if they are not marked as multiple
401
+ return isInList ? refObject : [refObject];
402
+ }
403
+ case 'object': {
404
+ if (modelField.type !== 'object') {
405
+ throw createError(`The operation field type 'object' does not match model field type '${modelField.type}' at field path ${entryFieldPath.join('.')}.`);
406
+ }
407
+ return lodash_1.default.reduce(updateOperationField.fields, (accum, nestedUpdateOperationField, fieldName) => {
408
+ const nestedModelField = getModelField(modelField, fieldName);
409
+ if (!nestedModelField) {
410
+ return accum;
411
+ }
412
+ accum[fieldName] = convertOperationFieldValue({
413
+ updateOperationField: nestedUpdateOperationField,
414
+ rootModel,
415
+ modelField: nestedModelField,
416
+ isInList: false,
417
+ entryFieldPath: entryFieldPath.concat(fieldName),
418
+ modelFieldPath: modelFieldPath.concat(fieldName),
419
+ getDocumentById,
420
+ getModelByName,
421
+ errorPrefix
422
+ });
423
+ return accum;
424
+ }, {});
425
+ }
426
+ case 'model': {
427
+ if (modelField.type !== 'model') {
428
+ throw createError(`The operation field type 'model' does not match model field type '${modelField.type}' at field path ${entryFieldPath.join('.')}.`);
429
+ }
430
+ const nestedModel = getModelByName(updateOperationField.modelName);
431
+ if (!nestedModel) {
432
+ throw createError(`Could not find model named '${updateOperationField.modelName}' for field at path '${entryFieldPath.join('.')}'.`);
433
+ }
434
+ const fieldPathStr = modelFieldPath.join('.');
435
+ const blockMap = (_b = (_a = rootModel.context) === null || _a === void 0 ? void 0 : _a.blockMap) === null || _b === void 0 ? void 0 : _b[fieldPathStr];
436
+ if (blockMap) {
437
+ // this is a modular blocks field with keys mapping to inline (object) or global (model) fields
438
+ // mapped by context.blockMap[blockUID]
439
+ const blockUID = blockMap.modelNameToBlockId[updateOperationField.modelName];
440
+ if (!blockUID) {
441
+ throw createError(`Could not match modular block UI for model '${updateOperationField.modelName}' for field path '${entryFieldPath.join('.')}'.`);
442
+ }
443
+ return {
444
+ [blockUID]: lodash_1.default.reduce(updateOperationField.fields, (accum, nestedUpdateOperationField, fieldName) => {
445
+ const nestedModelField = getModelField(nestedModel, fieldName);
446
+ if (!nestedModelField) {
447
+ return accum;
448
+ }
449
+ accum[fieldName] = convertOperationFieldValue({
450
+ updateOperationField: nestedUpdateOperationField,
451
+ rootModel: nestedModel,
452
+ modelField: nestedModelField,
453
+ isInList: false,
454
+ entryFieldPath: entryFieldPath.concat([blockUID, fieldName]),
455
+ modelFieldPath: [fieldName],
456
+ getDocumentById,
457
+ getModelByName,
458
+ errorPrefix
459
+ });
460
+ return accum;
461
+ }, {})
462
+ };
463
+ }
464
+ else {
465
+ // this is a regular global field (model) with a single model or as a CNTSTK_LINK_MODEL
466
+ return lodash_1.default.reduce(updateOperationField.fields, (accum, nestedUpdateOperationField, fieldName) => {
467
+ const nestedModelField = getModelField(nestedModel, fieldName);
468
+ if (!nestedModelField) {
469
+ return accum;
470
+ }
471
+ accum[fieldName] = convertOperationFieldValue({
472
+ updateOperationField: nestedUpdateOperationField,
473
+ rootModel: nestedModel,
474
+ modelField: nestedModelField,
475
+ isInList: false,
476
+ entryFieldPath: entryFieldPath.concat(fieldName),
477
+ modelFieldPath: [fieldName],
478
+ getDocumentById,
479
+ getModelByName,
480
+ errorPrefix
481
+ });
482
+ return accum;
483
+ }, {});
484
+ }
485
+ }
486
+ case 'list': {
487
+ if (modelField.type !== 'list') {
488
+ throw createError(`The operation field type 'list' does not match model field type '${modelField.type}' at field path ${entryFieldPath.join('.')}.`);
489
+ }
490
+ return lodash_1.default.reduce(updateOperationField.items, (accum, listItem, index) => {
491
+ accum.push(convertOperationFieldValue({
492
+ updateOperationField: listItem,
493
+ rootModel,
494
+ modelField: modelField.items,
495
+ isInList: true,
496
+ entryFieldPath: entryFieldPath.concat(index),
497
+ modelFieldPath: modelFieldPath,
498
+ getDocumentById,
499
+ getModelByName,
500
+ errorPrefix
501
+ }));
502
+ return accum;
503
+ }, []);
504
+ }
505
+ default: {
506
+ const _exhaustiveCheck = updateOperationField;
507
+ return _exhaustiveCheck;
508
+ }
509
+ }
510
+ }
511
+ exports.convertOperationFieldValue = convertOperationFieldValue;
512
+ function getModelField(model, fieldName) {
513
+ var _a;
514
+ return (_a = model.fields) === null || _a === void 0 ? void 0 : _a.find((field) => field.name === fieldName);
515
+ }
516
+ function isObject(value) {
517
+ return lodash_1.default.isPlainObject(value);
518
+ }
519
+ function sanitizeForUpdate(entry) {
520
+ return lodash_1.default.cloneDeepWith(entry, (value) => {
521
+ if (isAsset(value)) {
522
+ return value.uid;
523
+ }
524
+ });
525
+ }
526
+ function isAsset(value) {
527
+ if (!isObject(value) || !value.uid) {
528
+ return false;
529
+ }
530
+ // if all asset keys are present in the value, then it is an asset
531
+ const imageKeys = ['uid', 'created_at', 'updated_at', 'created_by', 'updated_by', 'content_type', 'file_size', 'filename', 'url'];
532
+ const objectKeys = lodash_1.default.keys(value);
533
+ return lodash_1.default.difference(imageKeys, objectKeys).length === 0;
534
+ }
535
+ //# sourceMappingURL=contentstack-operation-converter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contentstack-operation-converter.js","sourceRoot":"","sources":["../src/contentstack-operation-converter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import * as StackbitTypes from '@stackbit/types';
2
+ import type { ContentStackLocale, ContentType, GlobalField } from './contentstack-types';
3
+ export declare type ModelWithContext = StackbitTypes.Model<ModelContext>;
4
+ export declare type ModelContext = {
5
+ clonedFromModel?: string;
6
+ referencedIn?: ReferencedIn;
7
+ blockMap?: BlockMap;
8
+ };
9
+ export declare type ReferencedIn = {
10
+ modelName: string;
11
+ fieldPath: string;
12
+ blockUID: string;
13
+ };
14
+ export declare type BlockMap = Record<string, {
15
+ modelNameToBlockId: Record<string, string>;
16
+ blockIdToModelName: Record<string, string>;
17
+ }>;
18
+ export declare function convertLocales({ contentStackLocales, masterLocale, logger }: {
19
+ contentStackLocales: ContentStackLocale[];
20
+ masterLocale?: string;
21
+ logger: StackbitTypes.Logger;
22
+ }): StackbitTypes.Locale[];
23
+ export declare function convertModels({ contentStackModels }: {
24
+ contentStackModels: (ContentType | GlobalField)[];
25
+ }): ModelWithContext[];
26
+ //# sourceMappingURL=contentstack-schema-converter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contentstack-schema-converter.d.ts","sourceRoot":"","sources":["../src/contentstack-schema-converter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAKR,kBAAkB,EAClB,WAAW,EACX,WAAW,EACd,MAAM,sBAAsB,CAAC;AAE9B,oBAAY,gBAAgB,GAAG,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AACjE,oBAAY,YAAY,GAAG;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACvB,CAAC;AACF,oBAAY,YAAY,GAAG;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CACpB,CAAC;AACF,oBAAY,QAAQ,GAAG,MAAM,CACzB,MAAM,EACN;IACI,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9C,CACJ,CAAC;AAOF,wBAAgB,cAAc,CAAC,EAC3B,mBAAmB,EACnB,YAAY,EACZ,MAAM,EACT,EAAE;IACC,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC;CAChC,GAAG,aAAa,CAAC,MAAM,EAAE,CAyBzB;AAED,wBAAgB,aAAa,CAAC,EAAE,kBAAkB,EAAE,EAAE;IAAE,kBAAkB,EAAE,CAAC,WAAW,GAAG,WAAW,CAAC,EAAE,CAAA;CAAE,GAAG,gBAAgB,EAAE,CA4C/H"}