@stackbit/cms-contentstack 0.2.4-staging.1 → 0.2.4-staging.3
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/contentstack-api-client.d.ts +2 -1
- package/dist/contentstack-api-client.d.ts.map +1 -1
- package/dist/contentstack-api-client.js +6 -0
- package/dist/contentstack-api-client.js.map +1 -1
- package/dist/contentstack-content-source.d.ts.map +1 -1
- package/dist/contentstack-content-source.js +25 -16
- package/dist/contentstack-content-source.js.map +1 -1
- package/dist/contentstack-conversion-utils.d.ts +41 -0
- package/dist/contentstack-conversion-utils.d.ts.map +1 -0
- package/dist/contentstack-conversion-utils.js +504 -0
- package/dist/contentstack-conversion-utils.js.map +1 -0
- package/dist/contentstack-entries-converter.d.ts.map +1 -1
- package/dist/contentstack-entries-converter.js +13 -0
- package/dist/contentstack-entries-converter.js.map +1 -1
- package/dist/contentstack-operation-converter.d.ts.map +1 -1
- package/dist/contentstack-operation-converter.js +37 -7
- package/dist/contentstack-operation-converter.js.map +1 -1
- package/dist/contentstack-schema-converter.d.ts +2 -1
- package/dist/contentstack-schema-converter.d.ts.map +1 -1
- package/dist/contentstack-schema-converter.js +29 -3
- package/dist/contentstack-schema-converter.js.map +1 -1
- package/dist/contentstack-types.d.ts +21 -0
- package/dist/contentstack-types.d.ts.map +1 -1
- package/dist/entries-converter.d.ts +10 -0
- package/dist/entries-converter.d.ts.map +1 -0
- package/dist/entries-converter.js +245 -0
- package/dist/entries-converter.js.map +1 -0
- package/dist/file-download.d.ts +2 -0
- package/dist/file-download.d.ts.map +1 -0
- package/dist/file-download.js +33 -0
- package/dist/file-download.js.map +1 -0
- package/dist/schema-converter.d.ts +3 -0
- package/dist/schema-converter.d.ts.map +1 -0
- package/dist/schema-converter.js +169 -0
- package/dist/schema-converter.js.map +1 -0
- package/dist/transformation-utils.d.ts +41 -0
- package/dist/transformation-utils.d.ts.map +1 -0
- package/dist/transformation-utils.js +730 -0
- package/dist/transformation-utils.js.map +1 -0
- package/dist/types.d.ts +120 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/package.json +3 -3
- package/src/contentstack-api-client.ts +8 -1
- package/src/contentstack-content-source.ts +25 -16
- package/src/contentstack-entries-converter.ts +13 -0
- package/src/contentstack-operation-converter.ts +42 -4
- package/src/contentstack-schema-converter.ts +37 -1
- package/src/contentstack-types.ts +31 -0
|
@@ -69,12 +69,19 @@ export function convertLocales({
|
|
|
69
69
|
return locales;
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
-
export function convertModels({
|
|
72
|
+
export function convertModels({
|
|
73
|
+
contentStackModels,
|
|
74
|
+
cloudinaryExtensionUID
|
|
75
|
+
}: {
|
|
76
|
+
contentStackModels: (ContentType | GlobalField)[];
|
|
77
|
+
cloudinaryExtensionUID: string | undefined;
|
|
78
|
+
}): ModelWithContext[] {
|
|
73
79
|
const modelsToClone: CloneModelOptions[] = [];
|
|
74
80
|
const models = contentStackModels.reduce((stackbitModels: ModelWithContext[], contentStackModel) => {
|
|
75
81
|
const blockModels: ModelWithContext[] = [];
|
|
76
82
|
const stackbitModel = convertModel({
|
|
77
83
|
contentStackModel: contentStackModel,
|
|
84
|
+
cloudinaryExtensionUID,
|
|
78
85
|
addBlockModel: (model: ModelWithContext) => {
|
|
79
86
|
blockModels.push(model);
|
|
80
87
|
},
|
|
@@ -117,11 +124,13 @@ export function convertModels({ contentStackModels }: { contentStackModels: (Con
|
|
|
117
124
|
|
|
118
125
|
function convertModel({
|
|
119
126
|
contentStackModel,
|
|
127
|
+
cloudinaryExtensionUID,
|
|
120
128
|
addBlockModel,
|
|
121
129
|
cloneModel,
|
|
122
130
|
referencedIn
|
|
123
131
|
}: {
|
|
124
132
|
contentStackModel: ContentType | GlobalField;
|
|
133
|
+
cloudinaryExtensionUID: string | undefined;
|
|
125
134
|
addBlockModel: AddBlockModel;
|
|
126
135
|
cloneModel: CloneModel;
|
|
127
136
|
referencedIn?: ReferencedIn;
|
|
@@ -140,6 +149,7 @@ function convertModel({
|
|
|
140
149
|
parentModelName: contentStackModel.uid,
|
|
141
150
|
isNested: !!referencedIn,
|
|
142
151
|
fieldPath: [],
|
|
152
|
+
cloudinaryExtensionUID,
|
|
143
153
|
addBlockMap: ({ blockFieldPath, modelName, blockUID }) => {
|
|
144
154
|
if (!blockMap[blockFieldPath]) {
|
|
145
155
|
blockMap[blockFieldPath] = {
|
|
@@ -168,6 +178,7 @@ function convertFields(options: {
|
|
|
168
178
|
parentModelName: string;
|
|
169
179
|
isNested: boolean;
|
|
170
180
|
fieldPath: string[];
|
|
181
|
+
cloudinaryExtensionUID: string | undefined;
|
|
171
182
|
addBlockMap: AddBlockMap;
|
|
172
183
|
addBlockModel: AddBlockModel;
|
|
173
184
|
cloneModel: CloneModel;
|
|
@@ -187,6 +198,7 @@ function convertField({
|
|
|
187
198
|
parentModelName,
|
|
188
199
|
isNested,
|
|
189
200
|
fieldPath,
|
|
201
|
+
cloudinaryExtensionUID,
|
|
190
202
|
addBlockMap,
|
|
191
203
|
addBlockModel,
|
|
192
204
|
cloneModel
|
|
@@ -195,6 +207,7 @@ function convertField({
|
|
|
195
207
|
parentModelName: string;
|
|
196
208
|
isNested: boolean;
|
|
197
209
|
fieldPath: string[];
|
|
210
|
+
cloudinaryExtensionUID: string | undefined;
|
|
198
211
|
addBlockMap: AddBlockMap;
|
|
199
212
|
addBlockModel: AddBlockModel;
|
|
200
213
|
cloneModel: CloneModel;
|
|
@@ -238,6 +251,27 @@ function convertField({
|
|
|
238
251
|
return toFieldOrListField(field, {
|
|
239
252
|
type: 'richText'
|
|
240
253
|
});
|
|
254
|
+
} else if (field.field_metadata.extension && field.extension_uid === cloudinaryExtensionUID) {
|
|
255
|
+
// In Contentstack, custom Cloudinary images are always stored in arrays.
|
|
256
|
+
// If the custom cloudinary field is configured with "advanced.max_limit: 1",
|
|
257
|
+
// then treat it as a regular 'image' field. Otherwise, treat it as list of images.
|
|
258
|
+
const cloudinaryImageProps = {
|
|
259
|
+
type: 'image',
|
|
260
|
+
source: 'cloudinary'
|
|
261
|
+
} as const;
|
|
262
|
+
if (field.config?.advanced?.max_limit === 1) {
|
|
263
|
+
const commonProps = getStackbitFieldPropsFromContentStackField(field, false);
|
|
264
|
+
return {
|
|
265
|
+
...cloudinaryImageProps,
|
|
266
|
+
...commonProps
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
const commonProps = getStackbitFieldPropsFromContentStackField(field, true);
|
|
270
|
+
return {
|
|
271
|
+
type: 'list',
|
|
272
|
+
...commonProps,
|
|
273
|
+
items: cloudinaryImageProps
|
|
274
|
+
};
|
|
241
275
|
}
|
|
242
276
|
return toFieldOrListField(field, {
|
|
243
277
|
type: 'json'
|
|
@@ -309,6 +343,7 @@ function convertField({
|
|
|
309
343
|
parentModelName: parentModelName,
|
|
310
344
|
isNested,
|
|
311
345
|
fieldPath,
|
|
346
|
+
cloudinaryExtensionUID,
|
|
312
347
|
addBlockMap,
|
|
313
348
|
addBlockModel,
|
|
314
349
|
cloneModel
|
|
@@ -351,6 +386,7 @@ function convertField({
|
|
|
351
386
|
} as GlobalField;
|
|
352
387
|
const blockModel = convertModel({
|
|
353
388
|
contentStackModel,
|
|
389
|
+
cloudinaryExtensionUID,
|
|
354
390
|
addBlockModel,
|
|
355
391
|
cloneModel,
|
|
356
392
|
referencedIn: {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Stack as ContentStackStack } from '@contentstack/management/types/stack';
|
|
2
2
|
import type { User as ContentStackUser } from '@contentstack/management/types/user';
|
|
3
|
+
import type { Extension as ContentStackExtension } from '@contentstack/management/types/stack/extension';
|
|
3
4
|
import type { ContentType as ContentStackContentType } from '@contentstack/management/types/stack/contentType';
|
|
4
5
|
import type { GlobalField as ContentStackGlobalField } from '@contentstack/management/types/stack/globalField';
|
|
5
6
|
import type { Environment as ContentStackEnvironment } from '@contentstack/management/types/stack/environment';
|
|
@@ -34,6 +35,30 @@ export type User = ContentStackUser & {
|
|
|
34
35
|
active?: boolean;
|
|
35
36
|
};
|
|
36
37
|
|
|
38
|
+
// Extensions
|
|
39
|
+
// ==========
|
|
40
|
+
|
|
41
|
+
export type Extension = ContentStackExtension & {
|
|
42
|
+
uid: string;
|
|
43
|
+
urlPath?: string;
|
|
44
|
+
// e.g.: "Cloudinary"
|
|
45
|
+
title?: string;
|
|
46
|
+
app_installation_uid?: string;
|
|
47
|
+
app_uid?: string;
|
|
48
|
+
config?: any;
|
|
49
|
+
// e.g.: "field"
|
|
50
|
+
type?: string;
|
|
51
|
+
// e.g.: "json"
|
|
52
|
+
data_type?: string;
|
|
53
|
+
multiple?: boolean;
|
|
54
|
+
src?: string;
|
|
55
|
+
created_at?: string;
|
|
56
|
+
updated_at?: string;
|
|
57
|
+
signed?: boolean;
|
|
58
|
+
_version?: number;
|
|
59
|
+
_branch?: string;
|
|
60
|
+
};
|
|
61
|
+
|
|
37
62
|
// Models
|
|
38
63
|
// ======
|
|
39
64
|
|
|
@@ -104,11 +129,17 @@ export type ContentStackFieldCommon = {
|
|
|
104
129
|
multiple: boolean;
|
|
105
130
|
non_localizable: boolean;
|
|
106
131
|
unique: boolean;
|
|
132
|
+
// extension uid (custom field id)
|
|
133
|
+
extension_uid?: string;
|
|
134
|
+
// extension config (custom field config)
|
|
135
|
+
config?: any;
|
|
107
136
|
field_metadata: {
|
|
108
137
|
description?: string;
|
|
109
138
|
placeholder?: string;
|
|
110
139
|
instruction?: string;
|
|
111
140
|
default_value?: any;
|
|
141
|
+
// extension => custom field
|
|
142
|
+
extension?: boolean;
|
|
112
143
|
};
|
|
113
144
|
};
|
|
114
145
|
|