@stackbit/cms-core 0.1.16 → 0.1.17-alpha.1

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.
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getDocumentFieldLabelValueForSiteMapEntry = exports.updateSiteMapEntriesWithContentChanges = exports.getSiteMapEntriesFromStackbitConfig = exports.SiteMapStaticEntriesKey = void 0;
6
+ exports.getDocumentFieldLabelValueForSiteMapEntry = exports.getSiteMapGroupKeyForDocument = exports.updateSiteMapEntriesWithContentChanges = exports.getSiteMapEntriesFromStackbitConfig = exports.SiteMapStaticEntriesKey = void 0;
7
7
  const lodash_1 = __importDefault(require("lodash"));
8
8
  const utils_1 = require("@stackbit/utils");
9
9
  const store_to_csi_docs_converter_1 = require("./store-to-csi-docs-converter");
@@ -117,9 +117,17 @@ function sanitizeAndGroupSiteMapEntries(siteMapEntries) {
117
117
  }
118
118
  function getSiteMapGroupKey(siteMapEntry) {
119
119
  return 'document' in siteMapEntry
120
- ? `${siteMapEntry.document.srcType}:${siteMapEntry.document.srcProjectId}:${siteMapEntry.document.id}`
121
- : exports.SiteMapStaticEntriesKey;
120
+ ? getSiteMapGroupKeyForDocument({
121
+ srcType: siteMapEntry.document.srcType,
122
+ srcProjectId: siteMapEntry.document.srcProjectId,
123
+ srcDocumentId: siteMapEntry.document.id
124
+ })
125
+ : exports.SiteMapStaticEntriesKey.toString();
122
126
  }
127
+ function getSiteMapGroupKeyForDocument({ srcType, srcProjectId, srcDocumentId }) {
128
+ return `${srcType}:${srcProjectId}:${srcDocumentId}`;
129
+ }
130
+ exports.getSiteMapGroupKeyForDocument = getSiteMapGroupKeyForDocument;
123
131
  function getDocumentFieldLabelValueForSiteMapEntry({ siteMapEntry, locale, contentSourceDataById }) {
124
132
  var _a;
125
133
  if (!('document' in siteMapEntry)) {
@@ -1 +1 @@
1
- {"version":3,"file":"site-map.js","sourceRoot":"","sources":["../../src/utils/site-map.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"site-map.js","sourceRoot":"","sources":["../../src/utils/site-map.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stackbit/cms-core",
3
- "version": "0.1.16",
3
+ "version": "0.1.17-alpha.1",
4
4
  "description": "stackbit-dev",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -29,9 +29,9 @@
29
29
  "@babel/parser": "^7.11.5",
30
30
  "@babel/traverse": "^7.11.5",
31
31
  "@iarna/toml": "^2.2.3",
32
- "@stackbit/sdk": "^0.3.12",
33
- "@stackbit/types": "^0.1.8",
34
- "@stackbit/utils": "^0.2.13",
32
+ "@stackbit/sdk": "^0.3.13-alpha.1",
33
+ "@stackbit/types": "^0.1.9-alpha.1",
34
+ "@stackbit/utils": "^0.2.14-alpha.0",
35
35
  "chalk": "^4.0.1",
36
36
  "esm": "^3.2.25",
37
37
  "fs-extra": "^8.1.0",
@@ -45,5 +45,5 @@
45
45
  "sanitize-filename": "^1.6.3",
46
46
  "slugify": "^1.6.5"
47
47
  },
48
- "gitHead": "53b83989ac76a7e3350cae30ea251aef605599df"
48
+ "gitHead": "6f314d14cfa8d55d2a9ae5f13016df7616950b53"
49
49
  }
@@ -403,7 +403,7 @@ export interface UpdateOperationUnset extends UpdateOperationBase {
403
403
  export interface UpdateOperationInsert extends UpdateOperationBase {
404
404
  opType: 'insert';
405
405
  index?: number;
406
- item: UpdateOperationField;
406
+ item: Exclude<UpdateOperationField, UpdateOperationListField>;
407
407
  }
408
408
 
409
409
  export interface UpdateOperationRemove extends UpdateOperationBase {
@@ -38,6 +38,7 @@ import {
38
38
  getSiteMapEntriesFromStackbitConfig,
39
39
  updateSiteMapEntriesWithContentChanges,
40
40
  getDocumentFieldLabelValueForSiteMapEntry,
41
+ getSiteMapGroupKeyForDocument,
41
42
  SiteMapEntryGroups
42
43
  } from './utils/site-map';
43
44
  import { mapAssetsToLocalizedApiImages, mapDocumentsToLocalizedApiObjects, mapStoreAssetsToAPIAssets } from './utils/store-to-api-docs-converter';
@@ -401,7 +402,7 @@ export class ContentStore {
401
402
  // update all content sources at once to prevent race conditions
402
403
  this.contentSourceDataById = await this.processData({
403
404
  stackbitConfig: this.stackbitConfig,
404
- configModels: (this.modelExtensions as Model[]) ?? this.configModels ?? [],
405
+ configModels: this.modelExtensions ?? (this.configModels as ModelExtension[]) ?? [],
405
406
  presets: this.presets,
406
407
  contentSourceRawDataArr: contentSourceRawDataArr
407
408
  });
@@ -706,7 +707,7 @@ export class ContentStore {
706
707
  contentSourceRawDataArr
707
708
  }: {
708
709
  stackbitConfig: Config | null;
709
- configModels: Model[];
710
+ configModels: ModelExtension[];
710
711
  presets: Record<string, Preset>;
711
712
  contentSourceRawDataArr: ContentSourceRawData[];
712
713
  }): Promise<Record<string, ContentSourceData>> {
@@ -732,7 +733,7 @@ export class ContentStore {
732
733
  // log a warning and filter out that config model so it won't be merged with any
733
734
  // of the content source models.
734
735
  const nonMatchedModels: { configModel: ModelExtension; matchedCSIModels: CSITypes.ModelWithSource[] }[] = [];
735
- const configModelsByContentSourceId = (configModels as ModelExtension[]).reduce((modelGroups: Record<string, Model[]>, configModel) => {
736
+ const configModelsByContentSourceId = configModels.reduce((modelGroups: Record<string, ModelExtension[]>, configModel) => {
736
737
  const csiModels = csiModelGroups[configModel.name];
737
738
  if (!csiModels) {
738
739
  nonMatchedModels.push({
@@ -783,7 +784,8 @@ export class ContentStore {
783
784
  const contentSourceId = getContentSourceId(csData.srcType, csData.srcProjectId);
784
785
  const mergedModels = mergeConfigModelsWithExternalModels({
785
786
  configModels: configModelsByContentSourceId[contentSourceId] ?? [],
786
- externalModels: csData.csiModels
787
+ externalModels: csData.csiModels,
788
+ logger: this.userLogger
787
789
  });
788
790
  const modelsWithSource = mergedModels.map(
789
791
  (model): CSITypes.ModelWithSource => {
@@ -1034,6 +1036,27 @@ export class ContentStore {
1034
1036
  return _.isEmpty(locale) ? siteMapEntries : siteMapEntries.filter((siteMapEntry) => !siteMapEntry.locale || siteMapEntry.locale === locale);
1035
1037
  }
1036
1038
 
1039
+ getSiteMapEntriesForDocument({
1040
+ srcType,
1041
+ srcProjectId,
1042
+ srcDocumentId,
1043
+ locale
1044
+ }: {
1045
+ srcType: string;
1046
+ srcProjectId: string;
1047
+ srcDocumentId: string;
1048
+ locale?: string;
1049
+ }): CSITypes.SiteMapEntry[] {
1050
+ const key = getSiteMapGroupKeyForDocument({
1051
+ srcType: srcType,
1052
+ srcProjectId: srcProjectId,
1053
+ srcDocumentId: srcDocumentId
1054
+ });
1055
+ const siteMapEntryGroup = this.siteMapEntryGroups[key];
1056
+ const siteMapEntries = _.values(siteMapEntryGroup);
1057
+ return _.isEmpty(locale) ? siteMapEntries : siteMapEntries.filter((siteMapEntry) => !siteMapEntry.locale || siteMapEntry.locale === locale);
1058
+ }
1059
+
1037
1060
  getDocument({
1038
1061
  srcDocumentId,
1039
1062
  srcProjectId,
@@ -1184,18 +1207,18 @@ export class ContentStore {
1184
1207
  // get the document model
1185
1208
  const documentModelName = document.srcModelName;
1186
1209
  const csiModelMap = contentSourceData.csiModelMap;
1187
- const model = csiModelMap[documentModelName];
1188
- if (!model) {
1210
+ const csiModel = csiModelMap[documentModelName];
1211
+ if (!csiModel) {
1189
1212
  throw new Error(`error updating document, could not find document model: '${documentModelName}'`);
1190
1213
  }
1191
1214
 
1192
1215
  // get the 'reference' model field in the updated document that will be used to link the new document
1193
1216
  locale = locale ?? contentSourceData.defaultLocaleCode;
1194
- const modelField = getModelFieldForFieldAtPath(document, model, fieldPath, csiModelMap, locale);
1195
- if (!modelField) {
1217
+ const csiModelField = getModelFieldForFieldAtPath(document, csiModel, fieldPath, csiModelMap, locale);
1218
+ if (!csiModelField) {
1196
1219
  throw Error(`the "fieldPath" points to non existing model field: ${fieldPath.join('.')}`);
1197
1220
  }
1198
- const fieldProps = modelField.type === 'list' ? modelField.items! : modelField;
1221
+ const fieldProps = csiModelField.type === 'list' ? csiModelField.items! : csiModelField;
1199
1222
  if (fieldProps.type !== 'reference') {
1200
1223
  throw Error(`error in "createAndLinkDocument", this operation can only be used on reference field: ${fieldPath.join('.')}`);
1201
1224
  }
@@ -1230,11 +1253,11 @@ export class ContentStore {
1230
1253
  modelMap: csiModelMap,
1231
1254
  userContext: userContext,
1232
1255
  operations: [
1233
- modelField.type === 'list'
1256
+ csiModelField.type === 'list'
1234
1257
  ? {
1235
1258
  opType: 'insert',
1236
1259
  fieldPath: fieldPath,
1237
- modelField: modelField,
1260
+ modelField: csiModelField,
1238
1261
  locale: locale,
1239
1262
  index: index,
1240
1263
  item: field
@@ -1242,7 +1265,7 @@ export class ContentStore {
1242
1265
  : {
1243
1266
  opType: 'set',
1244
1267
  fieldPath: fieldPath,
1245
- modelField: modelField,
1268
+ modelField: csiModelField,
1246
1269
  locale: locale,
1247
1270
  field: field
1248
1271
  }
@@ -1348,11 +1371,11 @@ export class ContentStore {
1348
1371
 
1349
1372
  // get the 'reference' model field in the updated document that will be used to link the new asset
1350
1373
  locale = locale ?? contentSourceData.defaultLocaleCode;
1351
- const modelField = getModelFieldForFieldAtPath(document, csiModel, fieldPath, csiModelMap, locale);
1352
- if (!modelField) {
1374
+ const csiModelField = getModelFieldForFieldAtPath(document, csiModel, fieldPath, csiModelMap, locale);
1375
+ if (!csiModelField) {
1353
1376
  throw Error(`the "fieldPath" points to non existing model field: ${fieldPath.join('.')}`);
1354
1377
  }
1355
- const fieldProps = modelField.type === 'list' ? modelField.items! : modelField;
1378
+ const fieldProps = csiModelField.type === 'list' ? csiModelField.items! : csiModelField;
1356
1379
  if (fieldProps.type !== 'reference' && fieldProps.type !== 'image') {
1357
1380
  throw Error(`error in "uploadAndLinkAsset", this operation can only be used on reference and image fields: ${fieldPath.join('.')}`);
1358
1381
  }
@@ -1378,11 +1401,11 @@ export class ContentStore {
1378
1401
  modelMap: csiModelMap,
1379
1402
  userContext: userContext,
1380
1403
  operations: [
1381
- modelField.type === 'list'
1404
+ csiModelField.type === 'list'
1382
1405
  ? {
1383
1406
  opType: 'insert',
1384
1407
  fieldPath: fieldPath,
1385
- modelField: modelField,
1408
+ modelField: csiModelField,
1386
1409
  locale: locale,
1387
1410
  index: index,
1388
1411
  item: field
@@ -1390,7 +1413,7 @@ export class ContentStore {
1390
1413
  : {
1391
1414
  opType: 'set',
1392
1415
  fieldPath: fieldPath,
1393
- modelField: modelField,
1416
+ modelField: csiModelField,
1394
1417
  locale: locale,
1395
1418
  field: field
1396
1419
  }
@@ -1405,13 +1428,15 @@ export class ContentStore {
1405
1428
  modelName,
1406
1429
  object,
1407
1430
  locale,
1408
- user
1431
+ defaultLocaleDocumentId,
1432
+ user,
1409
1433
  }: {
1410
1434
  srcType: string;
1411
1435
  srcProjectId: string;
1412
1436
  modelName: string;
1413
1437
  object?: Record<string, any>;
1414
1438
  locale?: string;
1439
+ defaultLocaleDocumentId?: string;
1415
1440
  user?: ContentStoreTypes.User;
1416
1441
  }): Promise<{ srcDocumentId: string }> {
1417
1442
  this.logger.debug('createDocument', { srcType, srcProjectId, modelName, locale });
@@ -1427,10 +1452,12 @@ export class ContentStore {
1427
1452
  object,
1428
1453
  modelName,
1429
1454
  modelMap,
1455
+ csiModelMap,
1430
1456
  createDocument: getCreateDocumentThunk({
1431
1457
  locale: resolvedLocale,
1432
1458
  csiModelMap,
1433
1459
  userContext,
1460
+ defaultLocaleDocumentId,
1434
1461
  contentSourceInstance: contentSourceData.instance
1435
1462
  })
1436
1463
  });
@@ -1474,7 +1501,8 @@ export class ContentStore {
1474
1501
  const csiModelMap = contentSourceData.csiModelMap;
1475
1502
  const documentModelName = document.srcModelName;
1476
1503
  const model = modelMap[documentModelName];
1477
- if (!model) {
1504
+ const csiModel = csiModelMap[documentModelName];
1505
+ if (!model || !csiModel) {
1478
1506
  throw new Error(`error updating document, could not find document model: '${documentModelName}'`);
1479
1507
  }
1480
1508
 
@@ -1483,13 +1511,16 @@ export class ContentStore {
1483
1511
  async (updateOperation): Promise<CSITypes.UpdateOperation> => {
1484
1512
  const locale = updateOperation.locale ?? contentSourceData.defaultLocaleCode;
1485
1513
  const modelField = getModelFieldForFieldAtPath(document, model, updateOperation.fieldPath, modelMap, locale);
1514
+ const csiModelField = getModelFieldForFieldAtPath(document, csiModel, updateOperation.fieldPath, csiModelMap, locale);
1486
1515
  switch (updateOperation.opType) {
1487
1516
  case 'set':
1488
1517
  const field = await convertOperationField({
1489
1518
  operationField: updateOperation.field,
1490
- fieldPath: updateOperation.fieldPath,
1519
+ fieldPath: [csiModel.name, ...updateOperation.fieldPath],
1491
1520
  modelField,
1521
+ csiModelField,
1492
1522
  modelMap,
1523
+ csiModelMap,
1493
1524
  createDocument: getCreateDocumentThunk({
1494
1525
  locale: updateOperation.locale,
1495
1526
  csiModelMap,
@@ -1499,17 +1530,25 @@ export class ContentStore {
1499
1530
  });
1500
1531
  return {
1501
1532
  ...updateOperation,
1502
- modelField,
1533
+ modelField: csiModelField,
1503
1534
  field
1504
1535
  };
1505
1536
  case 'unset':
1506
- return { ...updateOperation, modelField };
1537
+ return {
1538
+ ...updateOperation,
1539
+ modelField: csiModelField
1540
+ };
1507
1541
  case 'insert':
1542
+ if (modelField.type !== 'list' || csiModelField.type !== 'list') {
1543
+ throw new Error(`error updating document, 'insert' operation can be performed on 'list' fields only`);
1544
+ }
1508
1545
  const item = await convertOperationField({
1509
1546
  operationField: updateOperation.item,
1510
- fieldPath: updateOperation.fieldPath,
1511
- modelField,
1547
+ fieldPath: [csiModel.name, ...updateOperation.fieldPath],
1548
+ modelField: modelField.items,
1549
+ csiModelField: csiModelField.items,
1512
1550
  modelMap,
1551
+ csiModelMap,
1513
1552
  createDocument: getCreateDocumentThunk({
1514
1553
  locale: updateOperation.locale,
1515
1554
  csiModelMap,
@@ -1519,13 +1558,19 @@ export class ContentStore {
1519
1558
  });
1520
1559
  return {
1521
1560
  ...updateOperation,
1522
- modelField,
1561
+ modelField: csiModelField,
1523
1562
  item
1524
- };
1563
+ } as CSITypes.UpdateOperationInsert;
1525
1564
  case 'remove':
1526
- return { ...updateOperation, modelField };
1565
+ return {
1566
+ ...updateOperation,
1567
+ modelField: csiModelField
1568
+ };
1527
1569
  case 'reorder':
1528
- return { ...updateOperation, modelField };
1570
+ return {
1571
+ ...updateOperation,
1572
+ modelField: csiModelField
1573
+ };
1529
1574
  }
1530
1575
  }
1531
1576
  );
@@ -1592,6 +1637,7 @@ export class ContentStore {
1592
1637
  object: extendedObject,
1593
1638
  modelName: model.name,
1594
1639
  modelMap,
1640
+ csiModelMap,
1595
1641
  createDocument: getCreateDocumentThunk({
1596
1642
  locale: resolvedLocale,
1597
1643
  csiModelMap,