@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.
- package/dist/content-store-types.d.ts +1 -1
- package/dist/content-store-types.d.ts.map +1 -1
- package/dist/content-store.d.ts +8 -1
- package/dist/content-store.d.ts.map +1 -1
- package/dist/content-store.js +57 -25
- package/dist/content-store.js.map +1 -1
- package/dist/utils/create-update-csi-docs.d.ts +12 -8
- package/dist/utils/create-update-csi-docs.d.ts.map +1 -1
- package/dist/utils/create-update-csi-docs.js +120 -53
- package/dist/utils/create-update-csi-docs.js.map +1 -1
- package/dist/utils/csi-to-store-docs-converter.js +31 -9
- package/dist/utils/csi-to-store-docs-converter.js.map +1 -1
- package/dist/utils/model-utils.js +2 -2
- package/dist/utils/model-utils.js.map +1 -1
- package/dist/utils/site-map.d.ts +5 -0
- package/dist/utils/site-map.d.ts.map +1 -1
- package/dist/utils/site-map.js +11 -3
- package/dist/utils/site-map.js.map +1 -1
- package/package.json +5 -5
- package/src/content-store-types.ts +1 -1
- package/src/content-store.ts +75 -29
- package/src/utils/create-update-csi-docs.ts +141 -58
- package/src/utils/csi-to-store-docs-converter.ts +31 -9
- package/src/utils/model-utils.ts +2 -2
- package/src/utils/site-map.ts +11 -3
package/dist/utils/site-map.js
CHANGED
|
@@ -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
|
-
?
|
|
121
|
-
|
|
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.
|
|
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.
|
|
33
|
-
"@stackbit/types": "^0.1.
|
|
34
|
-
"@stackbit/utils": "^0.2.
|
|
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": "
|
|
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 {
|
package/src/content-store.ts
CHANGED
|
@@ -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:
|
|
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:
|
|
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 =
|
|
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
|
|
1188
|
-
if (!
|
|
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
|
|
1195
|
-
if (!
|
|
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 =
|
|
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
|
-
|
|
1256
|
+
csiModelField.type === 'list'
|
|
1234
1257
|
? {
|
|
1235
1258
|
opType: 'insert',
|
|
1236
1259
|
fieldPath: fieldPath,
|
|
1237
|
-
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:
|
|
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
|
|
1352
|
-
if (!
|
|
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 =
|
|
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
|
-
|
|
1404
|
+
csiModelField.type === 'list'
|
|
1382
1405
|
? {
|
|
1383
1406
|
opType: 'insert',
|
|
1384
1407
|
fieldPath: fieldPath,
|
|
1385
|
-
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:
|
|
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
|
-
|
|
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
|
-
|
|
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 {
|
|
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 {
|
|
1565
|
+
return {
|
|
1566
|
+
...updateOperation,
|
|
1567
|
+
modelField: csiModelField
|
|
1568
|
+
};
|
|
1527
1569
|
case 'reorder':
|
|
1528
|
-
return {
|
|
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,
|