@stackbit/cms-core 0.1.3 → 0.1.4-alpha.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/content-source-interface.d.ts +9 -14
- package/dist/content-source-interface.d.ts.map +1 -1
- package/dist/content-source-interface.js.map +1 -1
- package/dist/content-store-types.d.ts +25 -24
- package/dist/content-store-types.d.ts.map +1 -1
- package/dist/content-store-utils.d.ts +9 -0
- package/dist/content-store-utils.d.ts.map +1 -0
- package/dist/content-store-utils.js +139 -0
- package/dist/content-store-utils.js.map +1 -0
- package/dist/content-store.d.ts +17 -4
- package/dist/content-store.d.ts.map +1 -1
- package/dist/content-store.js +147 -949
- package/dist/content-store.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/types/search-filter.d.ts +42 -0
- package/dist/types/search-filter.d.ts.map +1 -0
- package/dist/types/search-filter.js +3 -0
- package/dist/types/search-filter.js.map +1 -0
- package/dist/utils/create-update-csi-docs.d.ts +68 -0
- package/dist/utils/create-update-csi-docs.d.ts.map +1 -0
- package/dist/utils/create-update-csi-docs.js +376 -0
- package/dist/utils/create-update-csi-docs.js.map +1 -0
- package/dist/utils/csi-to-store-docs-converter.d.ts +15 -0
- package/dist/utils/csi-to-store-docs-converter.d.ts.map +1 -0
- package/dist/utils/csi-to-store-docs-converter.js +287 -0
- package/dist/utils/csi-to-store-docs-converter.js.map +1 -0
- package/dist/utils/search-utils.d.ts +21 -0
- package/dist/utils/search-utils.d.ts.map +1 -0
- package/dist/utils/search-utils.js +323 -0
- package/dist/utils/search-utils.js.map +1 -0
- package/dist/utils/store-to-api-docs-converter.d.ts +5 -0
- package/dist/utils/store-to-api-docs-converter.d.ts.map +1 -0
- package/dist/utils/store-to-api-docs-converter.js +247 -0
- package/dist/utils/store-to-api-docs-converter.js.map +1 -0
- package/package.json +6 -5
- package/src/content-source-interface.ts +6 -15
- package/src/content-store-types.ts +23 -10
- package/src/content-store-utils.ts +149 -0
- package/src/content-store.ts +137 -1079
- package/src/index.ts +3 -1
- package/src/types/search-filter.ts +53 -0
- package/src/utils/create-update-csi-docs.ts +440 -0
- package/src/utils/csi-to-store-docs-converter.ts +365 -0
- package/src/utils/search-utils.ts +436 -0
- package/src/utils/store-to-api-docs-converter.ts +246 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-utils.js","sourceRoot":"","sources":["../../src/utils/search-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import * as ContentStoreTypes from '../content-store-types';
|
|
2
|
+
export declare function mapDocumentsToLocalizedApiObjects(documents: ContentStoreTypes.Document[], locale?: string): ContentStoreTypes.APIDocumentObject[];
|
|
3
|
+
export declare function mapAssetsToLocalizedApiImages(assets: ContentStoreTypes.Asset[], locale?: string): ContentStoreTypes.APIImageObject[];
|
|
4
|
+
export declare function mapStoreAssetsToAPIAssets(assets: ContentStoreTypes.Asset[], locale?: string): ContentStoreTypes.APIAsset[];
|
|
5
|
+
//# sourceMappingURL=store-to-api-docs-converter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store-to-api-docs-converter.d.ts","sourceRoot":"","sources":["../../src/utils/store-to-api-docs-converter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAC;AAG5D,wBAAgB,iCAAiC,CAAC,SAAS,EAAE,iBAAiB,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC,iBAAiB,EAAE,CAEjJ;AAgLD,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,iBAAiB,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC,cAAc,EAAE,CAEpI;AAsCD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,iBAAiB,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC,QAAQ,EAAE,CAE1H"}
|
|
@@ -0,0 +1,247 @@
|
|
|
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.mapStoreAssetsToAPIAssets = exports.mapAssetsToLocalizedApiImages = exports.mapDocumentsToLocalizedApiObjects = void 0;
|
|
7
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
8
|
+
const utils_1 = require("@stackbit/utils");
|
|
9
|
+
const content_store_utils_1 = require("../content-store-utils");
|
|
10
|
+
function mapDocumentsToLocalizedApiObjects(documents, locale) {
|
|
11
|
+
return documents.map((document) => documentToLocalizedApiObject(document, locale));
|
|
12
|
+
}
|
|
13
|
+
exports.mapDocumentsToLocalizedApiObjects = mapDocumentsToLocalizedApiObjects;
|
|
14
|
+
function documentToLocalizedApiObject(document, locale) {
|
|
15
|
+
const { type, fields, ...rest } = document;
|
|
16
|
+
return {
|
|
17
|
+
type: 'object',
|
|
18
|
+
...rest,
|
|
19
|
+
fields: toLocalizedAPIFields(fields, locale)
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function toLocalizedAPIFields(docFields, locale) {
|
|
23
|
+
return lodash_1.default.mapValues(docFields, (docField) => toLocalizedAPIField(docField, locale));
|
|
24
|
+
}
|
|
25
|
+
function toLocalizedAPIField(docField, locale, isListItem = false) {
|
|
26
|
+
var _a;
|
|
27
|
+
function localeFields(localized, _locale) {
|
|
28
|
+
return isListItem
|
|
29
|
+
? null
|
|
30
|
+
: {
|
|
31
|
+
localized: !!localized,
|
|
32
|
+
locale: locale !== null && locale !== void 0 ? locale : _locale
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
switch (docField.type) {
|
|
36
|
+
case 'string':
|
|
37
|
+
case 'text':
|
|
38
|
+
case 'url':
|
|
39
|
+
case 'slug':
|
|
40
|
+
case 'html':
|
|
41
|
+
case 'number':
|
|
42
|
+
case 'boolean':
|
|
43
|
+
case 'enum':
|
|
44
|
+
case 'date':
|
|
45
|
+
case 'datetime':
|
|
46
|
+
case 'color':
|
|
47
|
+
case 'style':
|
|
48
|
+
case 'file':
|
|
49
|
+
case 'json':
|
|
50
|
+
case 'markdown':
|
|
51
|
+
case 'richText':
|
|
52
|
+
if (docField.localized) {
|
|
53
|
+
const { localized, locales, ...base } = docField;
|
|
54
|
+
const localeProps = locale ? locales[locale] : undefined;
|
|
55
|
+
return {
|
|
56
|
+
...base,
|
|
57
|
+
...(localeProps !== null && localeProps !== void 0 ? localeProps : { value: null }),
|
|
58
|
+
...localeFields(localized, locale),
|
|
59
|
+
...(['file', 'json', 'markdown', 'richText'].includes(docField.type) && !localeProps ? { isUnset: true } : null)
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
return {
|
|
63
|
+
...docField,
|
|
64
|
+
...localeFields(docField.localized, docField.locale)
|
|
65
|
+
};
|
|
66
|
+
case 'image':
|
|
67
|
+
if (docField.localized) {
|
|
68
|
+
const { localized, locales, ...base } = docField;
|
|
69
|
+
const localeProps = locale ? locales[locale] : undefined;
|
|
70
|
+
return {
|
|
71
|
+
...base,
|
|
72
|
+
...(localeProps !== null && localeProps !== void 0 ? localeProps : { isUnset: true }),
|
|
73
|
+
...localeFields(localized, locale)
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
return {
|
|
77
|
+
...docField,
|
|
78
|
+
...localeFields(docField.localized, docField.locale)
|
|
79
|
+
};
|
|
80
|
+
case 'object':
|
|
81
|
+
case 'model':
|
|
82
|
+
if (docField.localized) {
|
|
83
|
+
if (docField.type === 'object') {
|
|
84
|
+
const { localized, locales, ...base } = docField;
|
|
85
|
+
const localeProps = locale ? locales[locale] : undefined;
|
|
86
|
+
return {
|
|
87
|
+
...base,
|
|
88
|
+
...(localeProps
|
|
89
|
+
? {
|
|
90
|
+
...localeProps,
|
|
91
|
+
fields: toLocalizedAPIFields(localeProps.fields, locale)
|
|
92
|
+
}
|
|
93
|
+
: { isUnset: true }),
|
|
94
|
+
...localeFields(localized, locale)
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
const { localized, locales, ...base } = docField;
|
|
99
|
+
const localeProps = locale ? locales[locale] : undefined;
|
|
100
|
+
return {
|
|
101
|
+
...base,
|
|
102
|
+
type: 'object',
|
|
103
|
+
...(localeProps
|
|
104
|
+
? {
|
|
105
|
+
...localeProps,
|
|
106
|
+
fields: toLocalizedAPIFields(localeProps.fields, locale)
|
|
107
|
+
}
|
|
108
|
+
: { isUnset: true }),
|
|
109
|
+
...localeFields(localized, locale)
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return {
|
|
114
|
+
...(!docField.isUnset
|
|
115
|
+
? {
|
|
116
|
+
...docField,
|
|
117
|
+
type: 'object',
|
|
118
|
+
fields: toLocalizedAPIFields(docField.fields, locale)
|
|
119
|
+
}
|
|
120
|
+
: {
|
|
121
|
+
...docField,
|
|
122
|
+
type: 'object'
|
|
123
|
+
}),
|
|
124
|
+
...localeFields(docField.localized, docField.locale)
|
|
125
|
+
};
|
|
126
|
+
case 'reference':
|
|
127
|
+
if (docField.localized) {
|
|
128
|
+
const { type, refType, localized, locales, ...base } = docField;
|
|
129
|
+
const localeProps = locale ? locales[locale] : undefined;
|
|
130
|
+
// if reference field isUnset === true, it behaves like a regular object
|
|
131
|
+
if (!localeProps || localeProps.isUnset) {
|
|
132
|
+
return {
|
|
133
|
+
type: 'object',
|
|
134
|
+
isUnset: true,
|
|
135
|
+
...base,
|
|
136
|
+
...localeFields(localized, locale)
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
return {
|
|
140
|
+
type: 'unresolved_reference',
|
|
141
|
+
refType: refType === 'asset' ? 'image' : 'object',
|
|
142
|
+
...base,
|
|
143
|
+
...localeProps,
|
|
144
|
+
...localeFields(localized, locale)
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
const { type, refType, ...base } = docField;
|
|
148
|
+
if (base.isUnset) {
|
|
149
|
+
return {
|
|
150
|
+
type: 'object',
|
|
151
|
+
...base,
|
|
152
|
+
...localeFields(docField.localized, docField.locale)
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
return {
|
|
156
|
+
type: 'unresolved_reference',
|
|
157
|
+
refType: refType === 'asset' ? 'image' : 'object',
|
|
158
|
+
...base,
|
|
159
|
+
...localeFields(docField.localized, docField.locale)
|
|
160
|
+
};
|
|
161
|
+
case 'list':
|
|
162
|
+
if (docField.localized) {
|
|
163
|
+
const { localized, locales, ...base } = docField;
|
|
164
|
+
const localeProps = locale ? locales[locale] : undefined;
|
|
165
|
+
return {
|
|
166
|
+
...base,
|
|
167
|
+
...localeProps,
|
|
168
|
+
items: ((_a = localeProps === null || localeProps === void 0 ? void 0 : localeProps.items) !== null && _a !== void 0 ? _a : []).map((field) => toLocalizedAPIField(field, locale, true)),
|
|
169
|
+
...localeFields(localized, locale)
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
return {
|
|
173
|
+
...docField,
|
|
174
|
+
...localeFields(docField.localized, docField.locale),
|
|
175
|
+
items: docField.items.map((field) => toLocalizedAPIField(field, locale, true))
|
|
176
|
+
};
|
|
177
|
+
default:
|
|
178
|
+
const _exhaustiveCheck = docField;
|
|
179
|
+
console.error(`toLocalizedAPIField _exhaustiveCheck failed, docField.type: ${docField['type']}`);
|
|
180
|
+
return _exhaustiveCheck;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
function mapAssetsToLocalizedApiImages(assets, locale) {
|
|
184
|
+
return assets.map((asset) => assetToLocalizedApiImage(asset, locale));
|
|
185
|
+
}
|
|
186
|
+
exports.mapAssetsToLocalizedApiImages = mapAssetsToLocalizedApiImages;
|
|
187
|
+
function assetToLocalizedApiImage(asset, locale) {
|
|
188
|
+
const { type, fields, ...rest } = asset;
|
|
189
|
+
return {
|
|
190
|
+
type: 'image',
|
|
191
|
+
...rest,
|
|
192
|
+
fields: localizeAssetFields(fields, locale)
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
function localizeAssetFields(assetFields, locale) {
|
|
196
|
+
var _a, _b;
|
|
197
|
+
const fields = {
|
|
198
|
+
title: {
|
|
199
|
+
type: 'string',
|
|
200
|
+
value: null
|
|
201
|
+
},
|
|
202
|
+
url: {
|
|
203
|
+
type: 'string',
|
|
204
|
+
value: null
|
|
205
|
+
}
|
|
206
|
+
};
|
|
207
|
+
const titleFieldNonLocalized = (0, content_store_utils_1.getDocumentFieldForLocale)(assetFields.title, locale);
|
|
208
|
+
fields.title.value = titleFieldNonLocalized === null || titleFieldNonLocalized === void 0 ? void 0 : titleFieldNonLocalized.value;
|
|
209
|
+
fields.title.locale = locale !== null && locale !== void 0 ? locale : titleFieldNonLocalized === null || titleFieldNonLocalized === void 0 ? void 0 : titleFieldNonLocalized.locale;
|
|
210
|
+
const assetFileField = assetFields.file;
|
|
211
|
+
if (assetFileField.localized) {
|
|
212
|
+
if (locale) {
|
|
213
|
+
fields.url.value = (_b = (_a = assetFileField.locales[locale]) === null || _a === void 0 ? void 0 : _a.url) !== null && _b !== void 0 ? _b : null;
|
|
214
|
+
fields.url.locale = locale;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
fields.url.value = assetFileField.url;
|
|
219
|
+
fields.url.locale = assetFileField.locale;
|
|
220
|
+
}
|
|
221
|
+
return fields;
|
|
222
|
+
}
|
|
223
|
+
function mapStoreAssetsToAPIAssets(assets, locale) {
|
|
224
|
+
return assets.map((asset) => storeAssetToAPIAsset(asset, locale));
|
|
225
|
+
}
|
|
226
|
+
exports.mapStoreAssetsToAPIAssets = mapStoreAssetsToAPIAssets;
|
|
227
|
+
function storeAssetToAPIAsset(asset, locale) {
|
|
228
|
+
var _a, _b;
|
|
229
|
+
const assetTitleField = asset.fields.title;
|
|
230
|
+
const localizedTitleField = assetTitleField.localized ? assetTitleField.locales[locale] : assetTitleField;
|
|
231
|
+
const assetFileField = asset.fields.file;
|
|
232
|
+
const localizedFileField = assetFileField.localized ? assetFileField.locales[locale] : assetFileField;
|
|
233
|
+
return {
|
|
234
|
+
objectId: asset.srcObjectId,
|
|
235
|
+
createdAt: asset.createdAt,
|
|
236
|
+
url: localizedFileField.url,
|
|
237
|
+
...(0, utils_1.omitByNil)({
|
|
238
|
+
title: localizedTitleField.value,
|
|
239
|
+
fileName: localizedFileField.fileName,
|
|
240
|
+
contentType: localizedFileField.contentType,
|
|
241
|
+
size: localizedFileField.size,
|
|
242
|
+
width: (_a = localizedFileField.dimensions) === null || _a === void 0 ? void 0 : _a.width,
|
|
243
|
+
height: (_b = localizedFileField.dimensions) === null || _b === void 0 ? void 0 : _b.height
|
|
244
|
+
})
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
//# sourceMappingURL=store-to-api-docs-converter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store-to-api-docs-converter.js","sourceRoot":"","sources":["../../src/utils/store-to-api-docs-converter.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.4-alpha.0",
|
|
4
4
|
"description": "stackbit-dev",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"/src"
|
|
10
10
|
],
|
|
11
11
|
"scripts": {
|
|
12
|
-
"test": "jest
|
|
12
|
+
"test": "jest",
|
|
13
13
|
"build": "rm -rf dist && tsc",
|
|
14
14
|
"watch": "rm -rf dist && tsc -w",
|
|
15
15
|
"prettier": "prettier --write src",
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
"author": "Stackbit Inc.",
|
|
19
19
|
"license": "MIT",
|
|
20
20
|
"devDependencies": {
|
|
21
|
+
"@types/jest": "^27.5.2",
|
|
21
22
|
"@types/lodash": "^4.14.182",
|
|
22
23
|
"jest": "^27.4.7",
|
|
23
24
|
"prettier": "^2.5.1",
|
|
@@ -28,8 +29,8 @@
|
|
|
28
29
|
"@babel/parser": "^7.11.5",
|
|
29
30
|
"@babel/traverse": "^7.11.5",
|
|
30
31
|
"@iarna/toml": "^2.2.3",
|
|
31
|
-
"@stackbit/sdk": "^0.3.
|
|
32
|
-
"@stackbit/utils": "^0.2.
|
|
32
|
+
"@stackbit/sdk": "^0.3.3-alpha.1",
|
|
33
|
+
"@stackbit/utils": "^0.2.10-alpha.1",
|
|
33
34
|
"chalk": "^4.0.1",
|
|
34
35
|
"esm": "^3.2.25",
|
|
35
36
|
"fs-extra": "^8.1.0",
|
|
@@ -43,5 +44,5 @@
|
|
|
43
44
|
"sanitize-filename": "^1.6.3",
|
|
44
45
|
"slugify": "^1.6.5"
|
|
45
46
|
},
|
|
46
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "3b91d673129f56aa074519c5e940deebbfa8833d"
|
|
47
48
|
}
|
|
@@ -1,22 +1,13 @@
|
|
|
1
1
|
import type { Model, Field } from '@stackbit/sdk';
|
|
2
|
+
import { Logger as UtilsLogger } from '@stackbit/utils';
|
|
2
3
|
import { UserCommandSpawner } from './common/common-types';
|
|
3
4
|
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
export interface LeveledLogMethod {
|
|
7
|
-
(message: string): void;
|
|
8
|
-
(message: string, ...meta: any[]): void;
|
|
9
|
-
(message: any): void;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export interface Logger {
|
|
13
|
-
error: LeveledLogMethod;
|
|
14
|
-
warn: LeveledLogMethod;
|
|
15
|
-
info: LeveledLogMethod;
|
|
16
|
-
debug: LeveledLogMethod;
|
|
5
|
+
export interface Logger extends UtilsLogger {
|
|
17
6
|
createLogger: ({ label }: { label: string }) => Logger;
|
|
18
7
|
}
|
|
19
8
|
|
|
9
|
+
export type DocumentStatus = 'added' | 'modified' | 'published' | 'deleted';
|
|
10
|
+
|
|
20
11
|
export interface Locale {
|
|
21
12
|
code: string;
|
|
22
13
|
default?: boolean;
|
|
@@ -428,7 +419,7 @@ export interface ContentSourceInterface<UserContext = unknown, DocumentContext =
|
|
|
428
419
|
updatedFiles
|
|
429
420
|
}: {
|
|
430
421
|
updatedFiles: string[];
|
|
431
|
-
}): { schemaChanged?: boolean; contentChangeEvent?: ContentChangeEvent<DocumentContext, AssetContext> }
|
|
422
|
+
}): Promise<{ schemaChanged?: boolean; contentChangeEvent?: ContentChangeEvent<DocumentContext, AssetContext> }>;
|
|
432
423
|
|
|
433
424
|
startWatchingContentUpdates(options: {
|
|
434
425
|
getModelMap: () => ModelMap;
|
|
@@ -456,7 +447,7 @@ export interface ContentSourceInterface<UserContext = unknown, DocumentContext =
|
|
|
456
447
|
|
|
457
448
|
getAssets(): Promise<Asset<AssetContext>[]>;
|
|
458
449
|
|
|
459
|
-
hasAccess(options: { userContext?: UserContext }): Promise<boolean>;
|
|
450
|
+
hasAccess(options: { userContext?: UserContext }): Promise<{ hasConnection: boolean; hasPermissions: boolean }>;
|
|
460
451
|
|
|
461
452
|
createDocument(options: {
|
|
462
453
|
updateOperationFields: Record<string, UpdateOperationField>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DocumentStatus, FieldType } from './content-source-interface';
|
|
2
2
|
|
|
3
|
-
export { FieldType,
|
|
3
|
+
export { FieldType, DocumentStatus, Logger } from './content-source-interface';
|
|
4
4
|
|
|
5
5
|
export interface Document {
|
|
6
6
|
type: 'document';
|
|
@@ -168,7 +168,7 @@ export type DocumentFieldTypeLocalized<BaseFieldProps, LocalizedFieldProps> = Si
|
|
|
168
168
|
BaseFieldProps & {
|
|
169
169
|
label?: string;
|
|
170
170
|
localized: true;
|
|
171
|
-
locales: Record<string, { locale: string } &
|
|
171
|
+
locales: Record<string, { locale: string } & Exclude<LocalizedFieldProps, DocumentFieldUnsetProps>>;
|
|
172
172
|
}
|
|
173
173
|
>;
|
|
174
174
|
|
|
@@ -221,6 +221,8 @@ export type DocumentValueFieldProps = {
|
|
|
221
221
|
value: any;
|
|
222
222
|
};
|
|
223
223
|
|
|
224
|
+
export type DocumentFieldUnsetProps = { isUnset: true };
|
|
225
|
+
|
|
224
226
|
// object
|
|
225
227
|
export type DocumentObjectField = DocumentObjectFieldLocalized | DocumentObjectFieldNonLocalized;
|
|
226
228
|
export type DocumentObjectFieldLocalized = DocumentFieldTypeLocalized<DocumentObjectFieldBase, DocumentObjectFieldProps>;
|
|
@@ -230,22 +232,22 @@ export type DocumentObjectFieldBase = { type: 'object' };
|
|
|
230
232
|
export type DocumentObjectFieldPropsCommon = {
|
|
231
233
|
srcObjectLabel: string;
|
|
232
234
|
};
|
|
233
|
-
export type DocumentObjectFieldProps =
|
|
234
|
-
export type DocumentObjectFieldPropsAPI =
|
|
235
|
+
export type DocumentObjectFieldProps = DocumentFieldUnsetProps | ({ isUnset?: false; fields: Record<string, DocumentField> } & DocumentObjectFieldPropsCommon);
|
|
236
|
+
export type DocumentObjectFieldPropsAPI = DocumentFieldUnsetProps | ({ isUnset?: false; fields: Record<string, DocumentFieldAPI> } & DocumentObjectFieldPropsCommon);
|
|
235
237
|
|
|
236
238
|
// model
|
|
237
239
|
export type DocumentModelField = DocumentModelFieldLocalized | DocumentModelFieldNonLocalized;
|
|
238
240
|
export type DocumentModelFieldLocalized = DocumentFieldTypeLocalized<DocumentModelFieldBase, DocumentModelFieldProps>;
|
|
239
241
|
export type DocumentModelFieldNonLocalized = DocumentFieldTypeNonLocalized<DocumentModelFieldBase, DocumentModelFieldProps>;
|
|
240
|
-
export type DocumentModelFieldAPI = DocumentFieldTypeAPI<
|
|
242
|
+
export type DocumentModelFieldAPI = DocumentFieldTypeAPI<{ type: 'object' }, DocumentModelFieldPropsAPI>;
|
|
241
243
|
export type DocumentModelFieldBase = { type: 'model' };
|
|
242
244
|
export type DocumentModelFieldPropsCommon = {
|
|
243
245
|
srcObjectLabel: string;
|
|
244
246
|
srcModelName: string;
|
|
245
247
|
srcModelLabel: string;
|
|
246
248
|
};
|
|
247
|
-
export type DocumentModelFieldProps =
|
|
248
|
-
export type DocumentModelFieldPropsAPI =
|
|
249
|
+
export type DocumentModelFieldProps = DocumentFieldUnsetProps | ({ isUnset?: false; fields: Record<string, DocumentField> } & DocumentModelFieldPropsCommon);
|
|
250
|
+
export type DocumentModelFieldPropsAPI = DocumentFieldUnsetProps | ({ isUnset?: false; fields: Record<string, DocumentFieldAPI> } & DocumentModelFieldPropsCommon);
|
|
249
251
|
|
|
250
252
|
// reference
|
|
251
253
|
export type DocumentReferenceField = DocumentReferenceFieldLocalized | DocumentReferenceFieldNonLocalized;
|
|
@@ -256,7 +258,7 @@ export type DocumentReferenceFieldBase = {
|
|
|
256
258
|
type: 'reference';
|
|
257
259
|
refType: 'document' | 'asset';
|
|
258
260
|
};
|
|
259
|
-
export type DocumentReferenceFieldProps =
|
|
261
|
+
export type DocumentReferenceFieldProps = DocumentFieldUnsetProps | { isUnset?: false; refId: string };
|
|
260
262
|
export type DocumentReferenceFieldBaseAPI = {
|
|
261
263
|
type: 'unresolved_reference';
|
|
262
264
|
refType: 'object' | 'image';
|
|
@@ -312,8 +314,8 @@ export type DocumentImageFieldLocalized = DocumentFieldTypeLocalized<DocumentIma
|
|
|
312
314
|
export type DocumentImageFieldNonLocalized = DocumentFieldTypeNonLocalized<DocumentImageFieldBase, DocumentImageFieldProps>;
|
|
313
315
|
export type DocumentImageFieldAPI = DocumentFieldTypeAPI<DocumentImageFieldBase, DocumentImageFieldPropsAPI>;
|
|
314
316
|
export type DocumentImageFieldBase = { type: 'image' };
|
|
315
|
-
export type DocumentImageFieldProps =
|
|
316
|
-
export type DocumentImageFieldPropsAPI =
|
|
317
|
+
export type DocumentImageFieldProps = DocumentFieldUnsetProps | { isUnset?: false; fields: AssetFieldsAPI };
|
|
318
|
+
export type DocumentImageFieldPropsAPI = DocumentFieldUnsetProps | { isUnset?: false; fields: AssetFieldsAPI };
|
|
317
319
|
|
|
318
320
|
// assetFile
|
|
319
321
|
export type AssetFileField = AssetFileFieldLocalized | AssetFileFieldNonLocalized;
|
|
@@ -428,3 +430,14 @@ export type ValidationError = {
|
|
|
428
430
|
fieldPath: (string | number)[];
|
|
429
431
|
isUniqueValidation?: boolean;
|
|
430
432
|
};
|
|
433
|
+
|
|
434
|
+
export type HasAccessResult = {
|
|
435
|
+
hasConnection: boolean;
|
|
436
|
+
hasPermissions: boolean;
|
|
437
|
+
contentSources: {
|
|
438
|
+
srcType: string;
|
|
439
|
+
srcProjectId: string;
|
|
440
|
+
hasConnection: boolean;
|
|
441
|
+
hasPermissions: boolean;
|
|
442
|
+
}[]
|
|
443
|
+
};
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import _ from 'lodash';
|
|
2
|
+
import { Field, FieldList, FieldListItems, FieldListProps, FieldObjectProps, FieldSpecificProps, Model } from '@stackbit/sdk';
|
|
3
|
+
|
|
4
|
+
import * as ContentStoreTypes from './content-store-types';
|
|
5
|
+
import * as CSITypes from './content-source-interface';
|
|
6
|
+
|
|
7
|
+
export function getContentSourceIdForContentSource(contentSource: CSITypes.ContentSourceInterface): string {
|
|
8
|
+
return getContentSourceId(contentSource.getContentSourceType(), contentSource.getProjectId());
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export function getContentSourceId(contentSourceType: string, srcProjectId: string) {
|
|
12
|
+
return contentSourceType + ':' + srcProjectId;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export function getUserContextForSrcType(srcType: string, user?: ContentStoreTypes.User): unknown {
|
|
16
|
+
return user?.connections?.find((connection) => connection.type === srcType);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export function getDocumentFieldForLocale<Type extends ContentStoreTypes.FieldType>(
|
|
20
|
+
docField: ContentStoreTypes.DocumentFieldForType<Type>,
|
|
21
|
+
locale?: string
|
|
22
|
+
): ContentStoreTypes.DocumentFieldNonLocalizedForType<Type> | null {
|
|
23
|
+
if (docField.localized) {
|
|
24
|
+
if (!locale) {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
const { localized, locales, ...base } = docField;
|
|
28
|
+
const localizedField = locales[locale];
|
|
29
|
+
if (!localizedField) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
return ({
|
|
33
|
+
...base,
|
|
34
|
+
...localizedField
|
|
35
|
+
} as unknown) as ContentStoreTypes.DocumentFieldNonLocalizedForType<Type>;
|
|
36
|
+
} else {
|
|
37
|
+
return docField;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export function getModelFieldForFieldAtPath(
|
|
42
|
+
document: ContentStoreTypes.Document,
|
|
43
|
+
model: Model,
|
|
44
|
+
fieldPath: (string | number)[],
|
|
45
|
+
modelMap: Record<string, Model>,
|
|
46
|
+
locale?: string
|
|
47
|
+
): Field {
|
|
48
|
+
if (_.isEmpty(fieldPath)) {
|
|
49
|
+
throw new Error('the fieldPath can not be empty');
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
function getField(docField: ContentStoreTypes.DocumentField, modelField: FieldSpecificProps, fieldPath: (string | number)[]): Field {
|
|
53
|
+
const fieldName = _.head(fieldPath);
|
|
54
|
+
if (typeof fieldName === 'undefined') {
|
|
55
|
+
throw new Error('the first fieldPath item must be string');
|
|
56
|
+
}
|
|
57
|
+
const childFieldPath = _.tail(fieldPath);
|
|
58
|
+
let childDocField: ContentStoreTypes.DocumentField | undefined;
|
|
59
|
+
let childModelField: Field | undefined;
|
|
60
|
+
switch (docField.type) {
|
|
61
|
+
case 'object':
|
|
62
|
+
const localizedObjectField = getDocumentFieldForLocale(docField, locale);
|
|
63
|
+
if (!localizedObjectField) {
|
|
64
|
+
throw new Error(`locale for field was not found`);
|
|
65
|
+
}
|
|
66
|
+
if (localizedObjectField.isUnset) {
|
|
67
|
+
throw new Error(`field is not set`);
|
|
68
|
+
}
|
|
69
|
+
childDocField = localizedObjectField.fields[fieldName];
|
|
70
|
+
childModelField = _.find((modelField as FieldObjectProps).fields, (field) => field.name === fieldName);
|
|
71
|
+
if (!childDocField || !childModelField) {
|
|
72
|
+
throw new Error(`field ${fieldName} doesn't exist`);
|
|
73
|
+
}
|
|
74
|
+
if (childFieldPath.length === 0) {
|
|
75
|
+
return childModelField;
|
|
76
|
+
}
|
|
77
|
+
return getField(childDocField, childModelField, childFieldPath);
|
|
78
|
+
case 'model':
|
|
79
|
+
const localizedModelField = getDocumentFieldForLocale(docField, locale);
|
|
80
|
+
if (!localizedModelField) {
|
|
81
|
+
throw new Error(`locale for field was not found`);
|
|
82
|
+
}
|
|
83
|
+
if (localizedModelField.isUnset) {
|
|
84
|
+
throw new Error(`field is not set`);
|
|
85
|
+
}
|
|
86
|
+
const modelName = localizedModelField.srcModelName;
|
|
87
|
+
const childModel = modelMap[modelName];
|
|
88
|
+
if (!childModel) {
|
|
89
|
+
throw new Error(`model ${modelName} doesn't exist`);
|
|
90
|
+
}
|
|
91
|
+
childModelField = _.find(childModel.fields, (field) => field.name === fieldName);
|
|
92
|
+
childDocField = localizedModelField.fields![fieldName];
|
|
93
|
+
if (!childDocField || !childModelField) {
|
|
94
|
+
throw new Error(`field ${fieldName} doesn't exist`);
|
|
95
|
+
}
|
|
96
|
+
if (childFieldPath.length === 0) {
|
|
97
|
+
return childModelField;
|
|
98
|
+
}
|
|
99
|
+
return getField(childDocField, childModelField!, childFieldPath);
|
|
100
|
+
case 'list':
|
|
101
|
+
const localizedListField = getDocumentFieldForLocale(docField, locale);
|
|
102
|
+
if (!localizedListField) {
|
|
103
|
+
throw new Error(`locale for field was not found`);
|
|
104
|
+
}
|
|
105
|
+
const listItem = localizedListField.items && localizedListField.items[fieldName as number];
|
|
106
|
+
const listItemsModel = (modelField as FieldListProps).items;
|
|
107
|
+
if (!listItem || !listItemsModel) {
|
|
108
|
+
throw new Error(`field ${fieldName} doesn't exist`);
|
|
109
|
+
}
|
|
110
|
+
if (childFieldPath.length === 0) {
|
|
111
|
+
return modelField as FieldList;
|
|
112
|
+
}
|
|
113
|
+
if (!Array.isArray(listItemsModel)) {
|
|
114
|
+
return getField(listItem, listItemsModel, childFieldPath);
|
|
115
|
+
} else {
|
|
116
|
+
const fieldListItems = (listItemsModel as FieldListItems[]).find((listItemsModel) => listItemsModel.type === listItem.type);
|
|
117
|
+
if (!fieldListItems) {
|
|
118
|
+
throw new Error('cannot find matching field model');
|
|
119
|
+
}
|
|
120
|
+
return getField(listItem, fieldListItems, childFieldPath);
|
|
121
|
+
}
|
|
122
|
+
default:
|
|
123
|
+
if (!_.isEmpty(childFieldPath)) {
|
|
124
|
+
throw new Error('illegal fieldPath');
|
|
125
|
+
}
|
|
126
|
+
return modelField as Field;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
const fieldName = _.head(fieldPath);
|
|
131
|
+
const childFieldPath = _.tail(fieldPath);
|
|
132
|
+
|
|
133
|
+
if (typeof fieldName !== 'string') {
|
|
134
|
+
throw new Error('the first fieldPath item must be string');
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
const childDocField = document.fields[fieldName];
|
|
138
|
+
const childModelField = _.find(model.fields, { name: fieldName });
|
|
139
|
+
|
|
140
|
+
if (!childDocField || !childModelField) {
|
|
141
|
+
throw new Error(`field ${fieldName} doesn't exist`);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
if (childFieldPath.length === 0) {
|
|
145
|
+
return childModelField;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
return getField(childDocField, childModelField, childFieldPath);
|
|
149
|
+
}
|