@stackbit/cms-core 1.0.17 → 1.0.18-feature-clac.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/.tsbuildinfo +1 -1
- package/dist/content-store.d.ts.map +1 -1
- package/dist/content-store.js +24 -38
- package/dist/content-store.js.map +1 -1
- package/dist/types/content-store-documents.d.ts +2 -1
- package/dist/types/content-store-documents.d.ts.map +1 -1
- package/dist/utils/csi-to-store-docs-converter.d.ts.map +1 -1
- package/dist/utils/csi-to-store-docs-converter.js +2 -1
- package/dist/utils/csi-to-store-docs-converter.js.map +1 -1
- package/dist/utils/custom-search-filters.d.ts +12 -0
- package/dist/utils/custom-search-filters.d.ts.map +1 -0
- package/dist/utils/custom-search-filters.js +46 -0
- package/dist/utils/custom-search-filters.js.map +1 -0
- package/dist/utils/filtered-entities.d.ts +7 -9
- package/dist/utils/filtered-entities.d.ts.map +1 -1
- package/dist/utils/filtered-entities.js +32 -55
- package/dist/utils/filtered-entities.js.map +1 -1
- package/package.json +5 -5
- package/src/content-store.ts +24 -38
- package/src/types/content-store-documents.ts +2 -1
- package/src/utils/csi-to-store-docs-converter.ts +2 -1
- package/src/utils/filtered-entities.ts +47 -73
- package/dist/connector/model-converter.d.mts +0 -3
- package/dist/connector/model-converter.d.mts.map +0 -1
- package/dist/connector/model-converter.mjs +0 -138
- package/dist/connector/model-converter.mjs.map +0 -1
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CUSTOM_FILTERS = void 0;
|
|
4
|
+
const search_utils_1 = require("./search-utils");
|
|
5
|
+
exports.CUSTOM_FILTERS = {
|
|
6
|
+
hasSchedules: (filter, document, opts) => {
|
|
7
|
+
var _a;
|
|
8
|
+
const field = {
|
|
9
|
+
type: 'boolean',
|
|
10
|
+
value: !!((_a = opts.activeScheduledActionsByDocumentId[document.srcObjectId]) === null || _a === void 0 ? void 0 : _a.length)
|
|
11
|
+
};
|
|
12
|
+
return (0, search_utils_1.isBooleanFieldMatches)({ field, filter, locale: opts.locale });
|
|
13
|
+
},
|
|
14
|
+
scheduledActionId: (filter, document, opts) => {
|
|
15
|
+
var _a, _b;
|
|
16
|
+
const field = {
|
|
17
|
+
type: 'list',
|
|
18
|
+
items: (_b = (_a = opts.activeScheduledActionsByDocumentId[document.srcObjectId]) === null || _a === void 0 ? void 0 : _a.map((scheduledAction) => ({
|
|
19
|
+
type: 'string',
|
|
20
|
+
value: scheduledAction.id
|
|
21
|
+
}))) !== null && _b !== void 0 ? _b : []
|
|
22
|
+
};
|
|
23
|
+
const model = {
|
|
24
|
+
type: 'object',
|
|
25
|
+
name: '',
|
|
26
|
+
fields: [
|
|
27
|
+
{
|
|
28
|
+
name: '',
|
|
29
|
+
type: 'list',
|
|
30
|
+
items: {
|
|
31
|
+
type: 'string'
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
|
+
};
|
|
36
|
+
return (0, search_utils_1.isListFieldMatches)({ field, filter, model, locale: opts.locale, document });
|
|
37
|
+
},
|
|
38
|
+
scheduledActionDate: (filter, document, opts) => {
|
|
39
|
+
var _a, _b;
|
|
40
|
+
return ((_b = (_a = opts.activeScheduledActionsByDocumentId[document.srcObjectId]) === null || _a === void 0 ? void 0 : _a.some((scheduledAction) => {
|
|
41
|
+
const field = { type: 'date', value: scheduledAction.executeAt };
|
|
42
|
+
return (0, search_utils_1.isDateFieldMatches)({ field, filter, locale: opts.locale });
|
|
43
|
+
})) !== null && _b !== void 0 ? _b : false);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=custom-search-filters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-search-filters.js","sourceRoot":"","sources":["../../src/utils/custom-search-filters.ts"],"names":[],"mappings":";;;AAIA,iDAAgH;AAQnG,QAAA,cAAc,GAAuC;IAC9D,YAAY,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;;QACrC,MAAM,KAAK,GAAG;YACV,IAAI,EAAE,SAAkB;YACxB,KAAK,EAAE,CAAC,CAAC,CAAA,MAAA,IAAI,CAAC,kCAAkC,CAAC,QAAQ,CAAC,WAAW,CAAC,0CAAE,MAAM,CAAA;SACjF,CAAC;QACF,OAAO,IAAA,oCAAqB,EAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACzE,CAAC;IACD,iBAAiB,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;;QAC1C,MAAM,KAAK,GAAsB;YAC7B,IAAI,EAAE,MAAM;YACZ,KAAK,EACD,MAAA,MAAA,IAAI,CAAC,kCAAkC,CAAC,QAAQ,CAAC,WAAW,CAAC,0CAAE,GAAG,CAAC,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;gBACrF,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,eAAe,CAAC,EAAE;aAC5B,CAAC,CAAC,mCAAI,EAAE;SAChB,CAAC;QACF,MAAM,KAAK,GAAU;YACjB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,EAAE;YACR,MAAM,EAAE;gBACJ;oBACI,IAAI,EAAE,EAAE;oBACR,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE;wBACH,IAAI,EAAE,QAAQ;qBACjB;iBACJ;aACJ;SACJ,CAAC;QACF,OAAO,IAAA,iCAAkB,EAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IACvF,CAAC;IACD,mBAAmB,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;;QAC5C,OAAO,CACH,MAAA,MAAA,IAAI,CAAC,kCAAkC,CAAC,QAAQ,CAAC,WAAW,CAAC,0CAAE,IAAI,CAAC,CAAC,eAAe,EAAE,EAAE;YACpF,MAAM,KAAK,GAAG,EAAE,IAAI,EAAE,MAAe,EAAE,KAAK,EAAE,eAAe,CAAC,SAAS,EAAE,CAAC;YAC1E,OAAO,IAAA,iCAAkB,EAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACtE,CAAC,CAAC,mCAAI,KAAK,CACd,CAAC;IACN,CAAC;CACJ,CAAC"}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
import * as CSITypes from '@stackbit/types';
|
|
2
2
|
import { ContentStoreTypes } from '../';
|
|
3
|
-
export declare const getFilteredDocumentsForUser: ({ user, documents,
|
|
3
|
+
export declare const getFilteredDocumentsForUser: ({ user, documents, permissionsForModel, permissionsForDocument, contentSourceDataById, createConfigDelegate, logger }: {
|
|
4
4
|
user?: ContentStoreTypes.User | undefined;
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
permissionsForModel: CSITypes.StackbitConfig['permissionsForModel'];
|
|
6
|
+
permissionsForDocument: CSITypes.StackbitConfig['permissionsForDocument'];
|
|
7
7
|
documents: ContentStoreTypes.Document[];
|
|
8
8
|
contentSourceDataById: Record<string, ContentStoreTypes.ContentSourceData>;
|
|
9
|
-
assetSources: CSITypes.AssetSource[];
|
|
10
9
|
createConfigDelegate: () => CSITypes.ConfigDelegate;
|
|
11
|
-
customActionRunStateMap: ContentStoreTypes.CustomActionRunStateMap;
|
|
12
10
|
logger: CSITypes.Logger;
|
|
13
11
|
}) => ContentStoreTypes.Document[];
|
|
14
12
|
export declare const getFilteredAssetsForUser: ({ user, assets, filterAsset, configDelegate, contentSourceDataById }: {
|
|
@@ -18,17 +16,17 @@ export declare const getFilteredAssetsForUser: ({ user, assets, filterAsset, con
|
|
|
18
16
|
configDelegate: CSITypes.ConfigDelegate;
|
|
19
17
|
contentSourceDataById: Record<string, ContentStoreTypes.ContentSourceData>;
|
|
20
18
|
}) => ContentStoreTypes.Asset[];
|
|
21
|
-
export declare const getContentSourceFilteredModelsForUser: ({ user, configDelegate, contentSourceData,
|
|
19
|
+
export declare const getContentSourceFilteredModelsForUser: ({ user, configDelegate, contentSourceData, permissionsForModel }: {
|
|
22
20
|
user?: ContentStoreTypes.User | undefined;
|
|
23
21
|
configDelegate: CSITypes.ConfigDelegate;
|
|
24
22
|
contentSourceData: ContentStoreTypes.ContentSourceData;
|
|
25
|
-
|
|
23
|
+
permissionsForModel: CSITypes.StackbitConfig['permissionsForModel'];
|
|
26
24
|
}) => CSITypes.Model[];
|
|
27
|
-
export declare const getFilteredModelForUser: ({ user, name, configDelegate, contentSourceData,
|
|
25
|
+
export declare const getFilteredModelForUser: ({ user, name, configDelegate, contentSourceData, permissionsForModel }: {
|
|
28
26
|
user?: ContentStoreTypes.User | undefined;
|
|
29
27
|
name: string;
|
|
30
28
|
configDelegate: CSITypes.ConfigDelegate;
|
|
31
29
|
contentSourceData: ContentStoreTypes.ContentSourceData;
|
|
32
|
-
|
|
30
|
+
permissionsForModel: CSITypes.StackbitConfig['permissionsForModel'];
|
|
33
31
|
}) => CSITypes.Model;
|
|
34
32
|
//# sourceMappingURL=filtered-entities.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filtered-entities.d.ts","sourceRoot":"","sources":["../../src/utils/filtered-entities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"filtered-entities.d.ts","sourceRoot":"","sources":["../../src/utils/filtered-entities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,KAAK,CAAC;AAOxC,eAAO,MAAM,2BAA2B;;yBAUf,SAAS,cAAc,CAAC,qBAAqB,CAAC;4BAC3C,SAAS,cAAc,CAAC,wBAAwB,CAAC;eAC9D,kBAAkB,QAAQ,EAAE;2BAChB,OAAO,MAAM,EAAE,kBAAkB,iBAAiB,CAAC;0BACpD,MAAM,SAAS,cAAc;YAC3C,SAAS,MAAM;MACvB,kBAAkB,QAAQ,EA2D7B,CAAC;AAEF,eAAO,MAAM,wBAAwB;;YAQzB,kBAAkB,KAAK,EAAE;iBACpB,SAAS,cAAc,CAAC,aAAa,CAAC;oBACnC,SAAS,cAAc;2BAChB,OAAO,MAAM,EAAE,kBAAkB,iBAAiB,CAAC;MAC1E,kBAAkB,KAAK,EAoD1B,CAAC;AAEF,eAAO,MAAM,qCAAqC;;oBAO9B,SAAS,cAAc;uBACpB,kBAAkB,iBAAiB;yBACjC,SAAS,cAAc,CAAC,qBAAqB,CAAC;MACnE,SAAS,KAAK,EAYjB,CAAC;AAEF,eAAO,MAAM,uBAAuB;;UAQ1B,MAAM;oBACI,SAAS,cAAc;uBACpB,kBAAkB,iBAAiB;yBACjC,SAAS,cAAc,CAAC,qBAAqB,CAAC;MACnE,SAAS,KAgCZ,CAAC"}
|
|
@@ -9,12 +9,11 @@ const consts_1 = require("../consts");
|
|
|
9
9
|
const content_store_utils_1 = require("../content-store-utils");
|
|
10
10
|
const csi_to_store_docs_converter_1 = require("./csi-to-store-docs-converter");
|
|
11
11
|
const document_utils_1 = require("./document-utils");
|
|
12
|
-
const getFilteredDocumentsForUser = ({ user, documents,
|
|
13
|
-
if (!user
|
|
12
|
+
const getFilteredDocumentsForUser = ({ user, documents, permissionsForModel, permissionsForDocument, contentSourceDataById, createConfigDelegate, logger }) => {
|
|
13
|
+
if (!user) {
|
|
14
14
|
return documents;
|
|
15
15
|
}
|
|
16
16
|
const documentsBySourceId = lodash_1.default.groupBy(documents, (object) => (0, content_store_utils_1.getContentSourceId)(object.srcType, object.srcProjectId));
|
|
17
|
-
const transformedCsiDocuments = [];
|
|
18
17
|
const resultDocuments = [];
|
|
19
18
|
const configDelegate = createConfigDelegate();
|
|
20
19
|
for (const [contentSourceId, contentSourceDocuments] of Object.entries(documentsBySourceId)) {
|
|
@@ -32,7 +31,7 @@ const getFilteredDocumentsForUser = ({ user, documents, filterModel, filterDocum
|
|
|
32
31
|
name: modelName,
|
|
33
32
|
contentSourceData,
|
|
34
33
|
configDelegate,
|
|
35
|
-
|
|
34
|
+
permissionsForModel
|
|
36
35
|
});
|
|
37
36
|
filteredModelsMap[modelName] = filteredModel;
|
|
38
37
|
}
|
|
@@ -41,52 +40,24 @@ const getFilteredDocumentsForUser = ({ user, documents, filterModel, filterDocum
|
|
|
41
40
|
if (!documentModel) {
|
|
42
41
|
throw new Error(`Can't find model with name '${document.srcModelName}' for object with id '${document.srcObjectId}' in content source '${contentSourceId}'`);
|
|
43
42
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
resultDocuments.push({
|
|
47
|
-
...document,
|
|
48
|
-
hidden: true
|
|
49
|
-
});
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
if (!filterDocument) {
|
|
53
|
-
// no filter function is defined, but the model is not hidden - just add this document as is
|
|
54
|
-
resultDocuments.push(document);
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
const csiDocWithSource = {
|
|
58
|
-
...lodash_1.default.cloneDeep(csiDoc),
|
|
59
|
-
srcType: contentSourceData.srcType,
|
|
60
|
-
srcProjectId: contentSourceData.srcProjectId
|
|
61
|
-
};
|
|
62
|
-
const shouldIncludeDoc = filterDocument({
|
|
43
|
+
const docPermissions = csiDoc.permissions ?? documentModel.permissions;
|
|
44
|
+
const permissions = permissionsForDocument?.({
|
|
63
45
|
...configDelegate,
|
|
64
|
-
document:
|
|
46
|
+
document: {
|
|
47
|
+
...csiDoc,
|
|
48
|
+
permissions: docPermissions,
|
|
49
|
+
srcType: contentSourceData.srcType,
|
|
50
|
+
srcProjectId: contentSourceData.srcProjectId
|
|
51
|
+
},
|
|
65
52
|
userContext: user
|
|
53
|
+
}) ?? docPermissions;
|
|
54
|
+
resultDocuments.push({
|
|
55
|
+
...document,
|
|
56
|
+
permissions,
|
|
57
|
+
hidden: documentModel.hidden || document.hidden || permissions?.canView === false
|
|
66
58
|
});
|
|
67
|
-
|
|
68
|
-
transformedCsiDocuments.push(csiDocWithSource);
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
transformedCsiDocuments.push({
|
|
72
|
-
...csiDocWithSource,
|
|
73
|
-
hidden: !shouldIncludeDoc
|
|
74
|
-
});
|
|
75
|
-
}
|
|
59
|
+
return;
|
|
76
60
|
});
|
|
77
|
-
if (transformedCsiDocuments.length) {
|
|
78
|
-
const csResultDocuments = (0, csi_to_store_docs_converter_1.mapCSIDocumentsToStoreDocuments)({
|
|
79
|
-
csiDocuments: transformedCsiDocuments,
|
|
80
|
-
contentSourceInstance: contentSourceData.instance,
|
|
81
|
-
modelMap: filteredModelsMap,
|
|
82
|
-
defaultLocaleCode: contentSourceData.defaultLocaleCode,
|
|
83
|
-
assetSources,
|
|
84
|
-
customActionRunStateMap,
|
|
85
|
-
createConfigDelegate,
|
|
86
|
-
logger
|
|
87
|
-
});
|
|
88
|
-
resultDocuments.push(...(csResultDocuments ?? []));
|
|
89
|
-
}
|
|
90
61
|
}
|
|
91
62
|
return resultDocuments;
|
|
92
63
|
};
|
|
@@ -137,26 +108,27 @@ const getFilteredAssetsForUser = ({ user, assets, filterAsset, configDelegate, c
|
|
|
137
108
|
return resultAssets;
|
|
138
109
|
};
|
|
139
110
|
exports.getFilteredAssetsForUser = getFilteredAssetsForUser;
|
|
140
|
-
const getContentSourceFilteredModelsForUser = ({ user, configDelegate, contentSourceData,
|
|
111
|
+
const getContentSourceFilteredModelsForUser = ({ user, configDelegate, contentSourceData, permissionsForModel }) => {
|
|
141
112
|
const filteredModels = contentSourceData.models.map((model) => {
|
|
142
113
|
return (0, exports.getFilteredModelForUser)({
|
|
143
114
|
user,
|
|
144
115
|
configDelegate,
|
|
145
116
|
name: model.name,
|
|
146
117
|
contentSourceData,
|
|
147
|
-
|
|
118
|
+
permissionsForModel
|
|
148
119
|
});
|
|
149
120
|
});
|
|
150
121
|
const cleanModels = filteredModels.filter((model) => model.name !== consts_1.STACKBIT_PRESET_MODEL_NAME);
|
|
151
122
|
return cleanModels;
|
|
152
123
|
};
|
|
153
124
|
exports.getContentSourceFilteredModelsForUser = getContentSourceFilteredModelsForUser;
|
|
154
|
-
const getFilteredModelForUser = ({ user, name, configDelegate, contentSourceData,
|
|
125
|
+
const getFilteredModelForUser = ({ user, name, configDelegate, contentSourceData, permissionsForModel }) => {
|
|
155
126
|
const model = contentSourceData.modelMap[name];
|
|
156
127
|
if (!model) {
|
|
157
128
|
throw new Error(`Model with name ${name} not found in source`);
|
|
158
129
|
}
|
|
159
|
-
|
|
130
|
+
const shouldResolvePermissions = permissionsForModel || typeof model?.permissions === 'function';
|
|
131
|
+
if (!user || !shouldResolvePermissions) {
|
|
160
132
|
return model;
|
|
161
133
|
}
|
|
162
134
|
const modelWithSource = {
|
|
@@ -164,13 +136,18 @@ const getFilteredModelForUser = ({ user, name, configDelegate, contentSourceData
|
|
|
164
136
|
srcType: contentSourceData.srcType,
|
|
165
137
|
srcProjectId: contentSourceData.srcProjectId
|
|
166
138
|
};
|
|
167
|
-
const
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
139
|
+
const permissionsResult = typeof model.permissions === 'function' ? model.permissions?.({ ...configDelegate, model: modelWithSource, userContext: user }) : model.permissions;
|
|
140
|
+
const permissionsHookResult = permissionsForModel?.({
|
|
141
|
+
...configDelegate,
|
|
142
|
+
model: { ...modelWithSource, permissions: permissionsResult },
|
|
143
|
+
userContext: user
|
|
144
|
+
}) ?? permissionsResult;
|
|
145
|
+
const permissions = lodash_1.default.isEmpty(permissionsHookResult) ? undefined : permissionsHookResult;
|
|
146
|
+
const shouldHideModel = permissions?.canView === false;
|
|
171
147
|
return {
|
|
172
148
|
...model,
|
|
173
|
-
|
|
149
|
+
permissions,
|
|
150
|
+
hidden: shouldHideModel
|
|
174
151
|
};
|
|
175
152
|
};
|
|
176
153
|
exports.getFilteredModelForUser = getFilteredModelForUser;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filtered-entities.js","sourceRoot":"","sources":["../../src/utils/filtered-entities.ts"],"names":[],"mappings":";;;;;;AACA,oDAAuB;AAEvB,sCAAuD;AACvD,gEAA6F;AAC7F,+
|
|
1
|
+
{"version":3,"file":"filtered-entities.js","sourceRoot":"","sources":["../../src/utils/filtered-entities.ts"],"names":[],"mappings":";;;;;;AACA,oDAAuB;AAEvB,sCAAuD;AACvD,gEAA6F;AAC7F,+EAA0E;AAC1E,qDAA+D;AAGxD,MAAM,2BAA2B,GAAG,CAAC,EACxC,IAAI,EACJ,SAAS,EACT,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,MAAM,EAST,EAAgC,EAAE;IAC/B,IAAI,CAAC,IAAI,EAAE;QACP,OAAO,SAAS,CAAC;KACpB;IAED,MAAM,mBAAmB,GAAG,gBAAC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAA,wCAAkB,EAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IACtH,MAAM,eAAe,GAAiC,EAAE,CAAC;IACzD,MAAM,cAAc,GAAG,oBAAoB,EAAE,CAAC;IAE9C,KAAK,MAAM,CAAC,eAAe,EAAE,sBAAsB,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE;QACzF,MAAM,iBAAiB,GAAG,IAAA,qDAA+B,EAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC;QAClG,MAAM,iBAAiB,GAAmC,EAAE,CAAC;QAE7D,sBAAsB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YACxC,MAAM,MAAM,GAAG,iBAAiB,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACtE,IAAI,CAAC,MAAM,EAAE;gBACT,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,CAAC,WAAW,kCAAkC,eAAe,GAAG,CAAC,CAAC;aAClH;YAED,IAAA,4CAA2B,EAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;gBACpE,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE;oBAC/B,MAAM,aAAa,GAAG,IAAA,+BAAuB,EAAC;wBAC1C,IAAI;wBACJ,IAAI,EAAE,SAAS;wBACf,iBAAiB;wBACjB,cAAc;wBACd,mBAAmB;qBACtB,CAAC,CAAC;oBACH,iBAAiB,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC;iBAChD;YACL,CAAC,CAAC,CAAC;YACH,MAAM,aAAa,GAAG,iBAAiB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAC/D,IAAI,CAAC,aAAa,EAAE;gBAChB,MAAM,IAAI,KAAK,CACX,+BAA+B,QAAQ,CAAC,YAAY,yBAAyB,QAAQ,CAAC,WAAW,wBAAwB,eAAe,GAAG,CAC9I,CAAC;aACL;YACD,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,IAAK,aAAa,CAAC,WAA+C,CAAC;YAC5G,MAAM,WAAW,GACb,sBAAsB,EAAE,CAAC;gBACrB,GAAG,cAAc;gBACjB,QAAQ,EAAE;oBACN,GAAG,MAAM;oBACT,WAAW,EAAE,cAAc;oBAC3B,OAAO,EAAE,iBAAiB,CAAC,OAAO;oBAClC,YAAY,EAAE,iBAAiB,CAAC,YAAY;iBAC/C;gBACD,WAAW,EAAE,IAAI;aACpB,CAAC,IAAI,cAAc,CAAC;YACzB,eAAe,CAAC,IAAI,CAAC;gBACjB,GAAG,QAAQ;gBACX,WAAW;gBACX,MAAM,EAAE,aAAa,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,IAAI,WAAW,EAAE,OAAO,KAAK,KAAK;aACpF,CAAC,CAAC;YACH,OAAO;QACX,CAAC,CAAC,CAAC;KACN;IAED,OAAO,eAAe,CAAC;AAC3B,CAAC,CAAC;AA3EW,QAAA,2BAA2B,+BA2EtC;AAEK,MAAM,wBAAwB,GAAG,CAAC,EACrC,IAAI,EACJ,MAAM,EACN,WAAW,EACX,cAAc,EACd,qBAAqB,EAOxB,EAA6B,EAAE;IAC5B,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE;QACvB,OAAO,MAAM,CAAC;KACjB;IAED,MAAM,gBAAgB,GAAG,gBAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAA,wCAAkB,EAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IAEhH,MAAM,oBAAoB,GAA+B,EAAE,CAAC;IAE5D,MAAM,YAAY,GAA8B,EAAE,CAAC;IAEnD,KAAK,MAAM,CAAC,eAAe,EAAE,mBAAmB,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;QACnF,MAAM,iBAAiB,GAAG,IAAA,qDAA+B,EAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC;QAElG,mBAAmB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAClC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAClE,IAAI,CAAC,QAAQ,EAAE;gBACX,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,CAAC,WAAW,kCAAkC,eAAe,GAAG,CAAC,CAAC;aAC5G;YAED,MAAM,kBAAkB,GAA6B;gBACjD,GAAG,gBAAC,CAAC,SAAS,CAAC,QAAQ,CAAC;gBACxB,OAAO,EAAE,iBAAiB,CAAC,OAAO;gBAClC,YAAY,EAAE,iBAAiB,CAAC,YAAY;aAC/C,CAAC;YACF,MAAM,kBAAkB,GAAG,WAAW,CAAC;gBACnC,GAAG,cAAc;gBACjB,KAAK,EAAE,kBAAkB;gBACzB,WAAW,EAAE,IAAI;aACpB,CAAC,CAAC;YACH,IAAI,OAAO,kBAAkB,KAAK,WAAW,EAAE;gBAC3C,oBAAoB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;aACjD;iBAAM;gBACH,oBAAoB,CAAC,IAAI,CAAC;oBACtB,GAAG,kBAAkB;oBACrB,MAAM,EAAE,CAAC,kBAAkB;iBAC9B,CAAC,CAAC;aACN;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,oBAAoB,CAAC,MAAM,EAAE;YAC7B,MAAM,cAAc,GAAG,IAAA,uDAAyB,EAAC;gBAC7C,SAAS,EAAE,oBAAoB;gBAC/B,qBAAqB,EAAE,iBAAiB,CAAC,QAAQ;gBACjD,iBAAiB,EAAE,iBAAiB,CAAC,iBAAiB;aACzD,CAAC,CAAC;YAEH,YAAY,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;SACxC;KACJ;IAED,OAAO,YAAY,CAAC;AACxB,CAAC,CAAC;AAhEW,QAAA,wBAAwB,4BAgEnC;AAEK,MAAM,qCAAqC,GAAG,CAAC,EAClD,IAAI,EACJ,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EAMtB,EAAoB,EAAE;IACnB,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1D,OAAO,IAAA,+BAAuB,EAAC;YAC3B,IAAI;YACJ,cAAc;YACd,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,iBAAiB;YACjB,mBAAmB;SACtB,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,mCAA0B,CAAC,CAAC;IAChG,OAAO,WAAW,CAAC;AACvB,CAAC,CAAC;AAtBW,QAAA,qCAAqC,yCAsBhD;AAEK,MAAM,uBAAuB,GAAG,CAAC,EACpC,IAAI,EACJ,IAAI,EACJ,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EAOtB,EAAkB,EAAE;IACjB,MAAM,KAAK,GAAG,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,CAAC,KAAK,EAAE;QACR,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,sBAAsB,CAAC,CAAC;KAClE;IAED,MAAM,wBAAwB,GAAG,mBAAmB,IAAI,OAAO,KAAK,EAAE,WAAW,KAAK,UAAU,CAAC;IACjG,IAAI,CAAC,IAAI,IAAI,CAAC,wBAAwB,EAAE;QACpC,OAAO,KAAK,CAAC;KAChB;IACD,MAAM,eAAe,GAAG;QACpB,GAAG,gBAAC,CAAC,SAAS,CAAC,KAAK,CAAC;QACrB,OAAO,EAAE,iBAAiB,CAAC,OAAO;QAClC,YAAY,EAAE,iBAAiB,CAAC,YAAY;KAC/C,CAAC;IAEF,MAAM,iBAAiB,GACnB,OAAO,KAAK,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,GAAG,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;IACxJ,MAAM,qBAAqB,GACvB,mBAAmB,EAAE,CAAC;QAClB,GAAG,cAAc;QACjB,KAAK,EAAE,EAAE,GAAG,eAAe,EAAE,WAAW,EAAE,iBAAiB,EAAE;QAC7D,WAAW,EAAE,IAAI;KACpB,CAAC,IAAI,iBAAiB,CAAC;IAC5B,MAAM,WAAW,GAAG,gBAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC;IAEzF,MAAM,eAAe,GAAG,WAAW,EAAE,OAAO,KAAK,KAAK,CAAC;IACvD,OAAO;QACH,GAAG,KAAK;QACR,WAAW;QACX,MAAM,EAAE,eAAe;KAC1B,CAAC;AACN,CAAC,CAAC;AA5CW,QAAA,uBAAuB,2BA4ClC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stackbit/cms-core",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.18-feature-clac.0",
|
|
4
4
|
"description": "stackbit-dev",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -26,9 +26,9 @@
|
|
|
26
26
|
"@babel/traverse": "^7.11.5",
|
|
27
27
|
"@iarna/toml": "^2.2.3",
|
|
28
28
|
"@netlify/sdk": "^1.17.2",
|
|
29
|
-
"@stackbit/sdk": "1.0.
|
|
30
|
-
"@stackbit/types": "0.11.
|
|
31
|
-
"@stackbit/utils": "0.4.
|
|
29
|
+
"@stackbit/sdk": "1.0.18-feature-clac.0",
|
|
30
|
+
"@stackbit/types": "0.11.7-feature-clac.0",
|
|
31
|
+
"@stackbit/utils": "0.4.7-feature-clac.0",
|
|
32
32
|
"chalk": "^4.0.1",
|
|
33
33
|
"content-engine": "0.0.29",
|
|
34
34
|
"esm": "^3.2.25",
|
|
@@ -44,5 +44,5 @@
|
|
|
44
44
|
"slugify": "^1.6.5",
|
|
45
45
|
"uuid": "^9.0.0"
|
|
46
46
|
},
|
|
47
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "1f5ad86fcad63dd9f1d4218301fb6689a8b19c7b"
|
|
48
48
|
}
|
package/src/content-store.ts
CHANGED
|
@@ -1484,7 +1484,7 @@ export class ContentStore {
|
|
|
1484
1484
|
user,
|
|
1485
1485
|
configDelegate,
|
|
1486
1486
|
contentSourceData,
|
|
1487
|
-
|
|
1487
|
+
permissionsForModel: this.stackbitConfig?.permissionsForModel
|
|
1488
1488
|
});
|
|
1489
1489
|
|
|
1490
1490
|
const modelsMap = getModelMap({ models: filteredModels });
|
|
@@ -1707,16 +1707,14 @@ export class ContentStore {
|
|
|
1707
1707
|
const [filteredDocument] = getFilteredDocumentsForUser({
|
|
1708
1708
|
user,
|
|
1709
1709
|
documents: [document],
|
|
1710
|
-
|
|
1711
|
-
|
|
1710
|
+
permissionsForModel: this.stackbitConfig?.permissionsForModel,
|
|
1711
|
+
permissionsForDocument: this.stackbitConfig?.permissionsForDocument,
|
|
1712
1712
|
contentSourceDataById: this.contentSourceDataById,
|
|
1713
|
-
assetSources: this.stackbitConfig?.assetSources ?? [],
|
|
1714
1713
|
createConfigDelegate: getCreateConfigDelegateThunk({
|
|
1715
1714
|
getContentSourceDataById: () => this.contentSourceDataById,
|
|
1716
1715
|
logger: this.userLogger
|
|
1717
1716
|
}),
|
|
1718
|
-
logger: this.userLogger
|
|
1719
|
-
customActionRunStateMap: this.customActionRunStateMap
|
|
1717
|
+
logger: this.userLogger
|
|
1720
1718
|
});
|
|
1721
1719
|
if (filteredDocument && filteredDocument.hidden) {
|
|
1722
1720
|
return accum;
|
|
@@ -1774,16 +1772,14 @@ export class ContentStore {
|
|
|
1774
1772
|
const [filteredDocument] = getFilteredDocumentsForUser({
|
|
1775
1773
|
user,
|
|
1776
1774
|
documents: [document],
|
|
1777
|
-
|
|
1778
|
-
|
|
1775
|
+
permissionsForModel: this.stackbitConfig?.permissionsForModel,
|
|
1776
|
+
permissionsForDocument: this.stackbitConfig?.permissionsForDocument,
|
|
1779
1777
|
contentSourceDataById: this.contentSourceDataById,
|
|
1780
|
-
assetSources: this.stackbitConfig?.assetSources ?? [],
|
|
1781
1778
|
createConfigDelegate: getCreateConfigDelegateThunk({
|
|
1782
1779
|
getContentSourceDataById: () => this.contentSourceDataById,
|
|
1783
1780
|
logger: this.userLogger
|
|
1784
1781
|
}),
|
|
1785
|
-
logger: this.userLogger
|
|
1786
|
-
customActionRunStateMap: this.customActionRunStateMap
|
|
1782
|
+
logger: this.userLogger
|
|
1787
1783
|
});
|
|
1788
1784
|
return filteredDocument;
|
|
1789
1785
|
}
|
|
@@ -1831,16 +1827,14 @@ export class ContentStore {
|
|
|
1831
1827
|
const [filteredDocument] = getFilteredDocumentsForUser({
|
|
1832
1828
|
user,
|
|
1833
1829
|
documents: [document],
|
|
1834
|
-
|
|
1835
|
-
|
|
1830
|
+
permissionsForModel: this.stackbitConfig?.permissionsForModel,
|
|
1831
|
+
permissionsForDocument: this.stackbitConfig?.permissionsForDocument,
|
|
1836
1832
|
contentSourceDataById: this.contentSourceDataById,
|
|
1837
|
-
assetSources: this.stackbitConfig?.assetSources ?? [],
|
|
1838
1833
|
createConfigDelegate: getCreateConfigDelegateThunk({
|
|
1839
1834
|
getContentSourceDataById: () => this.contentSourceDataById,
|
|
1840
1835
|
logger: this.userLogger
|
|
1841
1836
|
}),
|
|
1842
|
-
logger: this.userLogger
|
|
1843
|
-
customActionRunStateMap: this.customActionRunStateMap
|
|
1837
|
+
logger: this.userLogger
|
|
1844
1838
|
});
|
|
1845
1839
|
return filteredDocument ?? document;
|
|
1846
1840
|
}
|
|
@@ -1878,16 +1872,14 @@ export class ContentStore {
|
|
|
1878
1872
|
const filteredDocuments = getFilteredDocumentsForUser({
|
|
1879
1873
|
user,
|
|
1880
1874
|
documents,
|
|
1881
|
-
|
|
1882
|
-
|
|
1875
|
+
permissionsForModel: this.stackbitConfig?.permissionsForModel,
|
|
1876
|
+
permissionsForDocument: this.stackbitConfig?.permissionsForDocument,
|
|
1883
1877
|
contentSourceDataById: this.contentSourceDataById,
|
|
1884
|
-
assetSources: this.stackbitConfig?.assetSources ?? [],
|
|
1885
1878
|
createConfigDelegate: getCreateConfigDelegateThunk({
|
|
1886
1879
|
getContentSourceDataById: () => this.contentSourceDataById,
|
|
1887
1880
|
logger: this.userLogger
|
|
1888
1881
|
}),
|
|
1889
|
-
logger: this.userLogger
|
|
1890
|
-
customActionRunStateMap: this.customActionRunStateMap
|
|
1882
|
+
logger: this.userLogger
|
|
1891
1883
|
});
|
|
1892
1884
|
return filteredDocuments;
|
|
1893
1885
|
}
|
|
@@ -1920,16 +1912,14 @@ export class ContentStore {
|
|
|
1920
1912
|
filteredDocuments = getFilteredDocumentsForUser({
|
|
1921
1913
|
user,
|
|
1922
1914
|
documents: filteredDocuments,
|
|
1923
|
-
|
|
1924
|
-
|
|
1915
|
+
permissionsForModel: this.stackbitConfig?.permissionsForModel,
|
|
1916
|
+
permissionsForDocument: this.stackbitConfig?.permissionsForDocument,
|
|
1925
1917
|
contentSourceDataById: this.contentSourceDataById,
|
|
1926
|
-
assetSources: this.stackbitConfig?.assetSources ?? [],
|
|
1927
1918
|
createConfigDelegate: getCreateConfigDelegateThunk({
|
|
1928
1919
|
getContentSourceDataById: () => this.contentSourceDataById,
|
|
1929
1920
|
logger: this.userLogger
|
|
1930
1921
|
}),
|
|
1931
|
-
logger: this.userLogger
|
|
1932
|
-
customActionRunStateMap: this.customActionRunStateMap
|
|
1922
|
+
logger: this.userLogger
|
|
1933
1923
|
});
|
|
1934
1924
|
|
|
1935
1925
|
return {
|
|
@@ -2050,16 +2040,14 @@ export class ContentStore {
|
|
|
2050
2040
|
filteredDocuments = getFilteredDocumentsForUser({
|
|
2051
2041
|
user,
|
|
2052
2042
|
documents: filteredDocuments,
|
|
2053
|
-
|
|
2054
|
-
|
|
2043
|
+
permissionsForModel: this.stackbitConfig?.permissionsForModel,
|
|
2044
|
+
permissionsForDocument: this.stackbitConfig?.permissionsForDocument,
|
|
2055
2045
|
contentSourceDataById: this.contentSourceDataById,
|
|
2056
|
-
assetSources: this.stackbitConfig?.assetSources ?? [],
|
|
2057
2046
|
createConfigDelegate: getCreateConfigDelegateThunk({
|
|
2058
2047
|
getContentSourceDataById: () => this.contentSourceDataById,
|
|
2059
2048
|
logger: this.userLogger
|
|
2060
2049
|
}),
|
|
2061
|
-
logger: this.userLogger
|
|
2062
|
-
customActionRunStateMap: this.customActionRunStateMap
|
|
2050
|
+
logger: this.userLogger
|
|
2063
2051
|
});
|
|
2064
2052
|
|
|
2065
2053
|
assets = getFilteredAssetsForUser({
|
|
@@ -3005,16 +2993,14 @@ export class ContentStore {
|
|
|
3005
2993
|
const userDocuments = getFilteredDocumentsForUser({
|
|
3006
2994
|
user: data.user,
|
|
3007
2995
|
documents: filteredDocuments,
|
|
3008
|
-
|
|
3009
|
-
|
|
2996
|
+
permissionsForModel: this.stackbitConfig?.permissionsForModel,
|
|
2997
|
+
permissionsForDocument: this.stackbitConfig?.permissionsForDocument,
|
|
3010
2998
|
contentSourceDataById: this.contentSourceDataById,
|
|
3011
|
-
assetSources: this.stackbitConfig?.assetSources ?? [],
|
|
3012
2999
|
createConfigDelegate: getCreateConfigDelegateThunk({
|
|
3013
3000
|
getContentSourceDataById: () => this.contentSourceDataById,
|
|
3014
3001
|
logger: this.userLogger
|
|
3015
3002
|
}),
|
|
3016
|
-
logger: this.userLogger
|
|
3017
|
-
customActionRunStateMap: this.customActionRunStateMap
|
|
3003
|
+
logger: this.userLogger
|
|
3018
3004
|
});
|
|
3019
3005
|
|
|
3020
3006
|
// filter out hidden documents from the search
|
|
@@ -3074,7 +3060,7 @@ export class ContentStore {
|
|
|
3074
3060
|
contentSourceDataById: this.contentSourceDataById,
|
|
3075
3061
|
logger: this.userLogger
|
|
3076
3062
|
}),
|
|
3077
|
-
|
|
3063
|
+
permissionsForModel: this.stackbitConfig?.permissionsForModel
|
|
3078
3064
|
});
|
|
3079
3065
|
const apiVersions = mapDocumentVersionsToApiDocumentVersions({
|
|
3080
3066
|
assetSources: this.stackbitConfig?.assetSources ?? [],
|
|
@@ -3131,7 +3117,7 @@ export class ContentStore {
|
|
|
3131
3117
|
contentSourceDataById: this.contentSourceDataById,
|
|
3132
3118
|
logger: this.userLogger
|
|
3133
3119
|
}),
|
|
3134
|
-
|
|
3120
|
+
permissionsForModel: this.stackbitConfig?.permissionsForModel
|
|
3135
3121
|
});
|
|
3136
3122
|
const [apiVersion] = mapDocumentVersionsToApiDocumentVersions({
|
|
3137
3123
|
versions: [version],
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DocumentStatus, ConfigDelegate, DocumentVersion, DocumentVersionWithDocument } from '@stackbit/types';
|
|
1
|
+
import { DocumentStatus, ConfigDelegate, DocumentVersion, DocumentVersionWithDocument, DocumentPermissions } from '@stackbit/types';
|
|
2
2
|
import { DocumentField, DocumentFieldAPI, DocumentFieldAPIForType, DocumentStringLikeFieldForType } from './content-store-document-fields';
|
|
3
3
|
import { APIDocument } from './content-store-api-document-fields';
|
|
4
4
|
import { APICustomActionDocument } from './custom-actions';
|
|
@@ -25,6 +25,7 @@ export interface Document {
|
|
|
25
25
|
updatedBy?: string[];
|
|
26
26
|
locale?: string;
|
|
27
27
|
fields: Record<string, DocumentField>;
|
|
28
|
+
permissions?: DocumentPermissions;
|
|
28
29
|
}
|
|
29
30
|
|
|
30
31
|
export interface DocumentPreview {
|