@webiny/api-headless-cms 5.40.6 → 5.41.0-beta.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/constants.d.ts +1 -1
- package/crud/AccessControl/AccessControl.d.ts +2 -2
- package/crud/contentEntry/abstractions/IListEntries.d.ts +2 -2
- package/crud/contentEntry/abstractions/IListEntries.js.map +1 -1
- package/crud/contentEntry/afterDelete.js +7 -1
- package/crud/contentEntry/afterDelete.js.map +1 -1
- package/crud/contentEntry/entryDataFactories/createEntryData.d.ts +1 -1
- package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.d.ts +1 -1
- package/crud/contentEntry/entryDataFactories/createPublishEntryData.d.ts +1 -1
- package/crud/contentEntry/entryDataFactories/createRepublishEntryData.d.ts +1 -1
- package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.d.ts +1 -1
- package/crud/contentEntry/entryDataFactories/createUpdateEntryData.d.ts +1 -1
- package/crud/contentEntry/entryDataValidation.d.ts +1 -1
- package/crud/contentEntry/useCases/DeleteEntry/TransformEntryMoveToBin.js +0 -8
- package/crud/contentEntry/useCases/DeleteEntry/TransformEntryMoveToBin.js.map +1 -1
- package/crud/contentEntry/useCases/RestoreEntryFromBin/TransformEntryRestoreFromBin.js +0 -8
- package/crud/contentEntry/useCases/RestoreEntryFromBin/TransformEntryRestoreFromBin.js.map +1 -1
- package/crud/contentEntry.crud.js.map +1 -1
- package/crud/contentModel/validation.d.ts +50 -50
- package/crud/contentModel.crud.js.map +1 -1
- package/export/crud/sanitize.d.ts +1 -1
- package/export/crud/sanitize.js.map +1 -1
- package/export/types.d.ts +3 -3
- package/graphql/createExecutableSchema.js +14 -7
- package/graphql/createExecutableSchema.js.map +1 -1
- package/graphql/getSchema.js +6 -5
- package/graphql/getSchema.js.map +1 -1
- package/graphql/index.d.ts +1 -1
- package/graphql/schema/contentEntries.js.map +1 -1
- package/graphql/schema/createFieldResolvers.d.ts +1 -1
- package/graphql/schema/createFieldResolvers.js +1 -3
- package/graphql/schema/createFieldResolvers.js.map +1 -1
- package/graphql/schema/createSingularSDL.js +4 -0
- package/graphql/schema/createSingularSDL.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveCreate.d.ts +1 -1
- package/graphql/schema/resolvers/manage/resolveCreateFrom.d.ts +1 -1
- package/graphql/schema/resolvers/manage/resolveDelete.d.ts +1 -1
- package/graphql/schema/resolvers/manage/resolveDeleteMultiple.d.ts +1 -1
- package/graphql/schema/resolvers/manage/resolveGet.d.ts +1 -1
- package/graphql/schema/resolvers/manage/resolveGetByIds.d.ts +1 -1
- package/graphql/schema/resolvers/manage/resolveGetRevisions.d.ts +1 -1
- package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.d.ts +1 -1
- package/graphql/schema/resolvers/manage/resolveList.d.ts +1 -1
- package/graphql/schema/resolvers/manage/resolveListDeleted.d.ts +1 -1
- package/graphql/schema/resolvers/manage/resolveMove.d.ts +1 -1
- package/graphql/schema/resolvers/manage/resolvePublish.d.ts +1 -1
- package/graphql/schema/resolvers/manage/resolveRepublish.d.ts +1 -1
- package/graphql/schema/resolvers/manage/resolveRestoreFromBin.d.ts +1 -1
- package/graphql/schema/resolvers/manage/resolveUnpublish.d.ts +1 -1
- package/graphql/schema/resolvers/manage/resolveUpdate.d.ts +1 -1
- package/graphql/schema/resolvers/manage/resolveValidate.d.ts +1 -1
- package/graphql/schema/resolvers/preview/resolveGet.d.ts +1 -1
- package/graphql/schema/resolvers/preview/resolveList.d.ts +1 -1
- package/graphql/schema/resolvers/read/resolveGet.d.ts +1 -1
- package/graphql/schema/resolvers/read/resolveList.d.ts +1 -1
- package/graphql/schema/resolvers/singular/resolveGet.d.ts +1 -1
- package/graphql/schema/resolvers/singular/resolveUpdate.d.ts +1 -1
- package/index.d.ts +4 -2
- package/index.js +24 -0
- package/index.js.map +1 -1
- package/package.json +26 -24
- package/plugins/CmsGraphQLSchemaPlugin/CmsGraphQLSchemaPlugin.d.ts +2 -2
- package/plugins/CmsModelPlugin.d.ts +1 -1
- package/plugins/CmsModelPlugin.js +1 -1
- package/plugins/CmsModelPlugin.js.map +1 -1
- package/plugins/CmsParametersPlugin.d.ts +2 -2
- package/types/context.d.ts +7 -7
- package/types/context.js.map +1 -1
- package/types/modelAst.d.ts +4 -4
- package/types/modelField.d.ts +3 -2
- package/types/modelField.js.map +1 -1
- package/types/types.d.ts +25 -17
- package/types/types.js.map +1 -1
- package/utils/contentEntryTraverser/ContentEntryTraverser.d.ts +4 -1
- package/utils/contentEntryTraverser/ContentEntryTraverser.js.map +1 -1
- package/utils/contentModelAst/CmsModelToAstConverter.d.ts +1 -1
- package/utils/contentModelAst/CmsModelToAstConverter.js.map +1 -1
- package/utils/index.d.ts +1 -0
- package/utils/index.js +11 -0
- package/utils/index.js.map +1 -1
- package/utils/modelFieldTraverser/ModelFieldTraverser.d.ts +16 -0
- package/utils/modelFieldTraverser/ModelFieldTraverser.js +41 -0
- package/utils/modelFieldTraverser/ModelFieldTraverser.js.map +1 -0
- package/utils/modelFieldTraverser/index.d.ts +1 -0
- package/utils/modelFieldTraverser/index.js +18 -0
- package/utils/modelFieldTraverser/index.js.map +1 -0
|
@@ -69,8 +69,8 @@ export declare const createModelCreateValidation: () => zod.ZodObject<{
|
|
|
69
69
|
message: string;
|
|
70
70
|
}, {
|
|
71
71
|
name: string;
|
|
72
|
-
message?: string | undefined;
|
|
73
72
|
settings?: zod.objectInputType<{}, zod.ZodTypeAny, "passthrough"> | null | undefined;
|
|
73
|
+
message?: string | undefined;
|
|
74
74
|
}>, "many">>>>>, {
|
|
75
75
|
name: string;
|
|
76
76
|
settings: {} & {
|
|
@@ -79,8 +79,8 @@ export declare const createModelCreateValidation: () => zod.ZodObject<{
|
|
|
79
79
|
message: string;
|
|
80
80
|
}[], {
|
|
81
81
|
name: string;
|
|
82
|
-
message?: string | undefined;
|
|
83
82
|
settings?: zod.objectInputType<{}, zod.ZodTypeAny, "passthrough"> | null | undefined;
|
|
83
|
+
message?: string | undefined;
|
|
84
84
|
}[] | null | undefined>;
|
|
85
85
|
listValidation: zod.ZodEffects<zod.ZodDefault<zod.ZodOptional<zod.ZodOptional<zod.ZodNullable<zod.ZodArray<zod.ZodObject<{
|
|
86
86
|
name: zod.ZodString;
|
|
@@ -94,8 +94,8 @@ export declare const createModelCreateValidation: () => zod.ZodObject<{
|
|
|
94
94
|
message: string;
|
|
95
95
|
}, {
|
|
96
96
|
name: string;
|
|
97
|
-
message?: string | undefined;
|
|
98
97
|
settings?: zod.objectInputType<{}, zod.ZodTypeAny, "passthrough"> | null | undefined;
|
|
98
|
+
message?: string | undefined;
|
|
99
99
|
}>, "many">>>>>, {
|
|
100
100
|
name: string;
|
|
101
101
|
settings: {} & {
|
|
@@ -104,8 +104,8 @@ export declare const createModelCreateValidation: () => zod.ZodObject<{
|
|
|
104
104
|
message: string;
|
|
105
105
|
}[], {
|
|
106
106
|
name: string;
|
|
107
|
-
message?: string | undefined;
|
|
108
107
|
settings?: zod.objectInputType<{}, zod.ZodTypeAny, "passthrough"> | null | undefined;
|
|
108
|
+
message?: string | undefined;
|
|
109
109
|
}[] | null | undefined>;
|
|
110
110
|
settings: zod.ZodDefault<zod.ZodEffects<zod.ZodOptional<zod.ZodNullable<zod.ZodOptional<zod.ZodObject<{}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{}, zod.ZodTypeAny, "passthrough">>>>>, zod.objectOutputType<{}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{}, zod.ZodTypeAny, "passthrough"> | null | undefined>>;
|
|
111
111
|
}, "strip", zod.ZodTypeAny, {
|
|
@@ -155,8 +155,6 @@ export declare const createModelCreateValidation: () => zod.ZodObject<{
|
|
|
155
155
|
storageId?: string | undefined;
|
|
156
156
|
helpText?: string | null | undefined;
|
|
157
157
|
placeholderText?: string | null | undefined;
|
|
158
|
-
tags?: string[] | undefined;
|
|
159
|
-
multipleValues?: boolean | null | undefined;
|
|
160
158
|
predefinedValues?: {
|
|
161
159
|
enabled: boolean;
|
|
162
160
|
values?: {
|
|
@@ -171,14 +169,16 @@ export declare const createModelCreateValidation: () => zod.ZodObject<{
|
|
|
171
169
|
} | null | undefined;
|
|
172
170
|
validation?: {
|
|
173
171
|
name: string;
|
|
174
|
-
message?: string | undefined;
|
|
175
172
|
settings?: zod.objectInputType<{}, zod.ZodTypeAny, "passthrough"> | null | undefined;
|
|
173
|
+
message?: string | undefined;
|
|
176
174
|
}[] | null | undefined;
|
|
177
175
|
listValidation?: {
|
|
178
176
|
name: string;
|
|
179
|
-
message?: string | undefined;
|
|
180
177
|
settings?: zod.objectInputType<{}, zod.ZodTypeAny, "passthrough"> | null | undefined;
|
|
178
|
+
message?: string | undefined;
|
|
181
179
|
}[] | null | undefined;
|
|
180
|
+
multipleValues?: boolean | null | undefined;
|
|
181
|
+
tags?: string[] | undefined;
|
|
182
182
|
settings?: zod.objectInputType<{}, zod.ZodTypeAny, "passthrough"> | null | undefined;
|
|
183
183
|
}>, "many">>;
|
|
184
184
|
layout: zod.ZodDefault<zod.ZodArray<zod.ZodArray<zod.ZodString, "many">, "many">>;
|
|
@@ -233,10 +233,10 @@ export declare const createModelCreateValidation: () => zod.ZodObject<{
|
|
|
233
233
|
singularApiName: string;
|
|
234
234
|
pluralApiName: string;
|
|
235
235
|
group: string;
|
|
236
|
-
modelId?: string | undefined;
|
|
237
236
|
description?: string | null | undefined;
|
|
238
237
|
icon?: string | null | undefined;
|
|
239
238
|
tags?: string[] | undefined;
|
|
239
|
+
modelId?: string | undefined;
|
|
240
240
|
titleFieldId?: string | null | undefined;
|
|
241
241
|
descriptionFieldId?: string | null | undefined;
|
|
242
242
|
imageFieldId?: string | null | undefined;
|
|
@@ -246,9 +246,9 @@ export declare const createModelCreateValidation: () => zod.ZodObject<{
|
|
|
246
246
|
singularApiName: string;
|
|
247
247
|
pluralApiName: string;
|
|
248
248
|
group: string;
|
|
249
|
-
modelId?: string | undefined;
|
|
250
249
|
description?: string | null | undefined;
|
|
251
250
|
icon?: string | null | undefined;
|
|
251
|
+
tags?: string[] | undefined;
|
|
252
252
|
fields?: {
|
|
253
253
|
id: string;
|
|
254
254
|
type: string;
|
|
@@ -257,8 +257,6 @@ export declare const createModelCreateValidation: () => zod.ZodObject<{
|
|
|
257
257
|
storageId?: string | undefined;
|
|
258
258
|
helpText?: string | null | undefined;
|
|
259
259
|
placeholderText?: string | null | undefined;
|
|
260
|
-
tags?: string[] | undefined;
|
|
261
|
-
multipleValues?: boolean | null | undefined;
|
|
262
260
|
predefinedValues?: {
|
|
263
261
|
enabled: boolean;
|
|
264
262
|
values?: {
|
|
@@ -273,18 +271,20 @@ export declare const createModelCreateValidation: () => zod.ZodObject<{
|
|
|
273
271
|
} | null | undefined;
|
|
274
272
|
validation?: {
|
|
275
273
|
name: string;
|
|
276
|
-
message?: string | undefined;
|
|
277
274
|
settings?: zod.objectInputType<{}, zod.ZodTypeAny, "passthrough"> | null | undefined;
|
|
275
|
+
message?: string | undefined;
|
|
278
276
|
}[] | null | undefined;
|
|
279
277
|
listValidation?: {
|
|
280
278
|
name: string;
|
|
281
|
-
message?: string | undefined;
|
|
282
279
|
settings?: zod.objectInputType<{}, zod.ZodTypeAny, "passthrough"> | null | undefined;
|
|
280
|
+
message?: string | undefined;
|
|
283
281
|
}[] | null | undefined;
|
|
282
|
+
multipleValues?: boolean | null | undefined;
|
|
283
|
+
tags?: string[] | undefined;
|
|
284
284
|
settings?: zod.objectInputType<{}, zod.ZodTypeAny, "passthrough"> | null | undefined;
|
|
285
285
|
}[] | undefined;
|
|
286
286
|
layout?: string[][] | undefined;
|
|
287
|
-
|
|
287
|
+
modelId?: string | undefined;
|
|
288
288
|
titleFieldId?: string | null | undefined;
|
|
289
289
|
descriptionFieldId?: string | null | undefined;
|
|
290
290
|
imageFieldId?: string | null | undefined;
|
|
@@ -360,8 +360,8 @@ export declare const createModelImportValidation: () => zod.ZodObject<{
|
|
|
360
360
|
message: string;
|
|
361
361
|
}, {
|
|
362
362
|
name: string;
|
|
363
|
-
message?: string | undefined;
|
|
364
363
|
settings?: zod.objectInputType<{}, zod.ZodTypeAny, "passthrough"> | null | undefined;
|
|
364
|
+
message?: string | undefined;
|
|
365
365
|
}>, "many">>>>>, {
|
|
366
366
|
name: string;
|
|
367
367
|
settings: {} & {
|
|
@@ -370,8 +370,8 @@ export declare const createModelImportValidation: () => zod.ZodObject<{
|
|
|
370
370
|
message: string;
|
|
371
371
|
}[], {
|
|
372
372
|
name: string;
|
|
373
|
-
message?: string | undefined;
|
|
374
373
|
settings?: zod.objectInputType<{}, zod.ZodTypeAny, "passthrough"> | null | undefined;
|
|
374
|
+
message?: string | undefined;
|
|
375
375
|
}[] | null | undefined>;
|
|
376
376
|
listValidation: zod.ZodEffects<zod.ZodDefault<zod.ZodOptional<zod.ZodOptional<zod.ZodNullable<zod.ZodArray<zod.ZodObject<{
|
|
377
377
|
name: zod.ZodString;
|
|
@@ -385,8 +385,8 @@ export declare const createModelImportValidation: () => zod.ZodObject<{
|
|
|
385
385
|
message: string;
|
|
386
386
|
}, {
|
|
387
387
|
name: string;
|
|
388
|
-
message?: string | undefined;
|
|
389
388
|
settings?: zod.objectInputType<{}, zod.ZodTypeAny, "passthrough"> | null | undefined;
|
|
389
|
+
message?: string | undefined;
|
|
390
390
|
}>, "many">>>>>, {
|
|
391
391
|
name: string;
|
|
392
392
|
settings: {} & {
|
|
@@ -395,8 +395,8 @@ export declare const createModelImportValidation: () => zod.ZodObject<{
|
|
|
395
395
|
message: string;
|
|
396
396
|
}[], {
|
|
397
397
|
name: string;
|
|
398
|
-
message?: string | undefined;
|
|
399
398
|
settings?: zod.objectInputType<{}, zod.ZodTypeAny, "passthrough"> | null | undefined;
|
|
399
|
+
message?: string | undefined;
|
|
400
400
|
}[] | null | undefined>;
|
|
401
401
|
settings: zod.ZodDefault<zod.ZodEffects<zod.ZodOptional<zod.ZodNullable<zod.ZodOptional<zod.ZodObject<{}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{}, zod.ZodTypeAny, "passthrough">>>>>, zod.objectOutputType<{}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{}, zod.ZodTypeAny, "passthrough"> | null | undefined>>;
|
|
402
402
|
}, "strip", zod.ZodTypeAny, {
|
|
@@ -446,8 +446,6 @@ export declare const createModelImportValidation: () => zod.ZodObject<{
|
|
|
446
446
|
storageId?: string | undefined;
|
|
447
447
|
helpText?: string | null | undefined;
|
|
448
448
|
placeholderText?: string | null | undefined;
|
|
449
|
-
tags?: string[] | undefined;
|
|
450
|
-
multipleValues?: boolean | null | undefined;
|
|
451
449
|
predefinedValues?: {
|
|
452
450
|
enabled: boolean;
|
|
453
451
|
values?: {
|
|
@@ -462,14 +460,16 @@ export declare const createModelImportValidation: () => zod.ZodObject<{
|
|
|
462
460
|
} | null | undefined;
|
|
463
461
|
validation?: {
|
|
464
462
|
name: string;
|
|
465
|
-
message?: string | undefined;
|
|
466
463
|
settings?: zod.objectInputType<{}, zod.ZodTypeAny, "passthrough"> | null | undefined;
|
|
464
|
+
message?: string | undefined;
|
|
467
465
|
}[] | null | undefined;
|
|
468
466
|
listValidation?: {
|
|
469
467
|
name: string;
|
|
470
|
-
message?: string | undefined;
|
|
471
468
|
settings?: zod.objectInputType<{}, zod.ZodTypeAny, "passthrough"> | null | undefined;
|
|
469
|
+
message?: string | undefined;
|
|
472
470
|
}[] | null | undefined;
|
|
471
|
+
multipleValues?: boolean | null | undefined;
|
|
472
|
+
tags?: string[] | undefined;
|
|
473
473
|
settings?: zod.objectInputType<{}, zod.ZodTypeAny, "passthrough"> | null | undefined;
|
|
474
474
|
}>, "many">;
|
|
475
475
|
layout: zod.ZodArray<zod.ZodArray<zod.ZodString, "many">, "many">;
|
|
@@ -523,10 +523,10 @@ export declare const createModelImportValidation: () => zod.ZodObject<{
|
|
|
523
523
|
singularApiName: string;
|
|
524
524
|
pluralApiName: string;
|
|
525
525
|
group: string;
|
|
526
|
-
modelId?: string | undefined;
|
|
527
526
|
description?: string | null | undefined;
|
|
528
527
|
icon?: string | null | undefined;
|
|
529
528
|
tags?: string[] | undefined;
|
|
529
|
+
modelId?: string | undefined;
|
|
530
530
|
titleFieldId?: string | null | undefined;
|
|
531
531
|
descriptionFieldId?: string | null | undefined;
|
|
532
532
|
imageFieldId?: string | null | undefined;
|
|
@@ -540,8 +540,6 @@ export declare const createModelImportValidation: () => zod.ZodObject<{
|
|
|
540
540
|
storageId?: string | undefined;
|
|
541
541
|
helpText?: string | null | undefined;
|
|
542
542
|
placeholderText?: string | null | undefined;
|
|
543
|
-
tags?: string[] | undefined;
|
|
544
|
-
multipleValues?: boolean | null | undefined;
|
|
545
543
|
predefinedValues?: {
|
|
546
544
|
enabled: boolean;
|
|
547
545
|
values?: {
|
|
@@ -556,14 +554,16 @@ export declare const createModelImportValidation: () => zod.ZodObject<{
|
|
|
556
554
|
} | null | undefined;
|
|
557
555
|
validation?: {
|
|
558
556
|
name: string;
|
|
559
|
-
message?: string | undefined;
|
|
560
557
|
settings?: zod.objectInputType<{}, zod.ZodTypeAny, "passthrough"> | null | undefined;
|
|
558
|
+
message?: string | undefined;
|
|
561
559
|
}[] | null | undefined;
|
|
562
560
|
listValidation?: {
|
|
563
561
|
name: string;
|
|
564
|
-
message?: string | undefined;
|
|
565
562
|
settings?: zod.objectInputType<{}, zod.ZodTypeAny, "passthrough"> | null | undefined;
|
|
563
|
+
message?: string | undefined;
|
|
566
564
|
}[] | null | undefined;
|
|
565
|
+
multipleValues?: boolean | null | undefined;
|
|
566
|
+
tags?: string[] | undefined;
|
|
567
567
|
settings?: zod.objectInputType<{}, zod.ZodTypeAny, "passthrough"> | null | undefined;
|
|
568
568
|
}[];
|
|
569
569
|
layout: string[][];
|
|
@@ -592,19 +592,19 @@ export declare const createModelCreateFromValidation: () => zod.ZodObject<{
|
|
|
592
592
|
singularApiName: string;
|
|
593
593
|
pluralApiName: string;
|
|
594
594
|
group: string;
|
|
595
|
-
|
|
595
|
+
locale?: string | undefined;
|
|
596
596
|
description?: string | null | undefined;
|
|
597
597
|
icon?: string | null | undefined;
|
|
598
|
-
|
|
598
|
+
modelId?: string | undefined;
|
|
599
599
|
}, {
|
|
600
600
|
name: string;
|
|
601
601
|
singularApiName: string;
|
|
602
602
|
pluralApiName: string;
|
|
603
603
|
group: string;
|
|
604
|
-
|
|
604
|
+
locale?: string | undefined;
|
|
605
605
|
description?: string | null | undefined;
|
|
606
606
|
icon?: string | null | undefined;
|
|
607
|
-
|
|
607
|
+
modelId?: string | undefined;
|
|
608
608
|
}>;
|
|
609
609
|
export declare const createModelUpdateValidation: () => zod.ZodObject<{
|
|
610
610
|
name: zod.ZodOptional<zod.ZodString>;
|
|
@@ -675,8 +675,8 @@ export declare const createModelUpdateValidation: () => zod.ZodObject<{
|
|
|
675
675
|
message: string;
|
|
676
676
|
}, {
|
|
677
677
|
name: string;
|
|
678
|
-
message?: string | undefined;
|
|
679
678
|
settings?: zod.objectInputType<{}, zod.ZodTypeAny, "passthrough"> | null | undefined;
|
|
679
|
+
message?: string | undefined;
|
|
680
680
|
}>, "many">>>>>, {
|
|
681
681
|
name: string;
|
|
682
682
|
settings: {} & {
|
|
@@ -685,8 +685,8 @@ export declare const createModelUpdateValidation: () => zod.ZodObject<{
|
|
|
685
685
|
message: string;
|
|
686
686
|
}[], {
|
|
687
687
|
name: string;
|
|
688
|
-
message?: string | undefined;
|
|
689
688
|
settings?: zod.objectInputType<{}, zod.ZodTypeAny, "passthrough"> | null | undefined;
|
|
689
|
+
message?: string | undefined;
|
|
690
690
|
}[] | null | undefined>;
|
|
691
691
|
listValidation: zod.ZodEffects<zod.ZodDefault<zod.ZodOptional<zod.ZodOptional<zod.ZodNullable<zod.ZodArray<zod.ZodObject<{
|
|
692
692
|
name: zod.ZodString;
|
|
@@ -700,8 +700,8 @@ export declare const createModelUpdateValidation: () => zod.ZodObject<{
|
|
|
700
700
|
message: string;
|
|
701
701
|
}, {
|
|
702
702
|
name: string;
|
|
703
|
-
message?: string | undefined;
|
|
704
703
|
settings?: zod.objectInputType<{}, zod.ZodTypeAny, "passthrough"> | null | undefined;
|
|
704
|
+
message?: string | undefined;
|
|
705
705
|
}>, "many">>>>>, {
|
|
706
706
|
name: string;
|
|
707
707
|
settings: {} & {
|
|
@@ -710,8 +710,8 @@ export declare const createModelUpdateValidation: () => zod.ZodObject<{
|
|
|
710
710
|
message: string;
|
|
711
711
|
}[], {
|
|
712
712
|
name: string;
|
|
713
|
-
message?: string | undefined;
|
|
714
713
|
settings?: zod.objectInputType<{}, zod.ZodTypeAny, "passthrough"> | null | undefined;
|
|
714
|
+
message?: string | undefined;
|
|
715
715
|
}[] | null | undefined>;
|
|
716
716
|
settings: zod.ZodDefault<zod.ZodEffects<zod.ZodOptional<zod.ZodNullable<zod.ZodOptional<zod.ZodObject<{}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{}, zod.ZodTypeAny, "passthrough">>>>>, zod.objectOutputType<{}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{}, zod.ZodTypeAny, "passthrough"> | null | undefined>>;
|
|
717
717
|
}, "strip", zod.ZodTypeAny, {
|
|
@@ -761,8 +761,6 @@ export declare const createModelUpdateValidation: () => zod.ZodObject<{
|
|
|
761
761
|
storageId?: string | undefined;
|
|
762
762
|
helpText?: string | null | undefined;
|
|
763
763
|
placeholderText?: string | null | undefined;
|
|
764
|
-
tags?: string[] | undefined;
|
|
765
|
-
multipleValues?: boolean | null | undefined;
|
|
766
764
|
predefinedValues?: {
|
|
767
765
|
enabled: boolean;
|
|
768
766
|
values?: {
|
|
@@ -777,14 +775,16 @@ export declare const createModelUpdateValidation: () => zod.ZodObject<{
|
|
|
777
775
|
} | null | undefined;
|
|
778
776
|
validation?: {
|
|
779
777
|
name: string;
|
|
780
|
-
message?: string | undefined;
|
|
781
778
|
settings?: zod.objectInputType<{}, zod.ZodTypeAny, "passthrough"> | null | undefined;
|
|
779
|
+
message?: string | undefined;
|
|
782
780
|
}[] | null | undefined;
|
|
783
781
|
listValidation?: {
|
|
784
782
|
name: string;
|
|
785
|
-
message?: string | undefined;
|
|
786
783
|
settings?: zod.objectInputType<{}, zod.ZodTypeAny, "passthrough"> | null | undefined;
|
|
784
|
+
message?: string | undefined;
|
|
787
785
|
}[] | null | undefined;
|
|
786
|
+
multipleValues?: boolean | null | undefined;
|
|
787
|
+
tags?: string[] | undefined;
|
|
788
788
|
settings?: zod.objectInputType<{}, zod.ZodTypeAny, "passthrough"> | null | undefined;
|
|
789
789
|
}>, "many">;
|
|
790
790
|
layout: zod.ZodArray<zod.ZodArray<zod.ZodString, "many">, "many">;
|
|
@@ -835,15 +835,15 @@ export declare const createModelUpdateValidation: () => zod.ZodObject<{
|
|
|
835
835
|
}[];
|
|
836
836
|
layout: string[][];
|
|
837
837
|
name?: string | undefined;
|
|
838
|
+
description?: string | null | undefined;
|
|
839
|
+
icon?: string | null | undefined;
|
|
840
|
+
tags?: string[] | undefined;
|
|
838
841
|
singularApiName?: string | undefined;
|
|
839
842
|
pluralApiName?: string | undefined;
|
|
840
|
-
description?: string | null | undefined;
|
|
841
843
|
group?: string | undefined;
|
|
842
|
-
icon?: string | null | undefined;
|
|
843
844
|
titleFieldId?: string | null | undefined;
|
|
844
845
|
descriptionFieldId?: string | null | undefined;
|
|
845
846
|
imageFieldId?: string | null | undefined;
|
|
846
|
-
tags?: string[] | undefined;
|
|
847
847
|
}, {
|
|
848
848
|
fields: {
|
|
849
849
|
id: string;
|
|
@@ -853,8 +853,6 @@ export declare const createModelUpdateValidation: () => zod.ZodObject<{
|
|
|
853
853
|
storageId?: string | undefined;
|
|
854
854
|
helpText?: string | null | undefined;
|
|
855
855
|
placeholderText?: string | null | undefined;
|
|
856
|
-
tags?: string[] | undefined;
|
|
857
|
-
multipleValues?: boolean | null | undefined;
|
|
858
856
|
predefinedValues?: {
|
|
859
857
|
enabled: boolean;
|
|
860
858
|
values?: {
|
|
@@ -869,25 +867,27 @@ export declare const createModelUpdateValidation: () => zod.ZodObject<{
|
|
|
869
867
|
} | null | undefined;
|
|
870
868
|
validation?: {
|
|
871
869
|
name: string;
|
|
872
|
-
message?: string | undefined;
|
|
873
870
|
settings?: zod.objectInputType<{}, zod.ZodTypeAny, "passthrough"> | null | undefined;
|
|
871
|
+
message?: string | undefined;
|
|
874
872
|
}[] | null | undefined;
|
|
875
873
|
listValidation?: {
|
|
876
874
|
name: string;
|
|
877
|
-
message?: string | undefined;
|
|
878
875
|
settings?: zod.objectInputType<{}, zod.ZodTypeAny, "passthrough"> | null | undefined;
|
|
876
|
+
message?: string | undefined;
|
|
879
877
|
}[] | null | undefined;
|
|
878
|
+
multipleValues?: boolean | null | undefined;
|
|
879
|
+
tags?: string[] | undefined;
|
|
880
880
|
settings?: zod.objectInputType<{}, zod.ZodTypeAny, "passthrough"> | null | undefined;
|
|
881
881
|
}[];
|
|
882
882
|
layout: string[][];
|
|
883
883
|
name?: string | undefined;
|
|
884
|
+
description?: string | null | undefined;
|
|
885
|
+
icon?: string | null | undefined;
|
|
886
|
+
tags?: string[] | undefined;
|
|
884
887
|
singularApiName?: string | undefined;
|
|
885
888
|
pluralApiName?: string | undefined;
|
|
886
|
-
description?: string | null | undefined;
|
|
887
889
|
group?: string | undefined;
|
|
888
|
-
icon?: string | null | undefined;
|
|
889
890
|
titleFieldId?: string | null | undefined;
|
|
890
891
|
descriptionFieldId?: string | null | undefined;
|
|
891
892
|
imageFieldId?: string | null | undefined;
|
|
892
|
-
tags?: string[] | undefined;
|
|
893
893
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_error","_interopRequireDefault","require","_handlerGraphql","_contentModelManagerFactory","_pubsub","_beforeCreate","_beforeUpdate","_beforeDelete","_CmsModelPlugin","_validation","_utils","_defaultFields","_utils2","_ensureTypeTag","_listModelsFromDatabase","_filterAsync","_contentModelAst","_modelManager","createModelsCrud","params","getTenant","getIdentity","getLocale","storageOperations","accessControl","context","listPluginModelsCache","createMemoryCache","listFilteredModelsCache","listDatabaseModelsCache","clearModelsCache","clear","managers","Map","updateManager","model","manager","contentModelManagerFactory","set","modelId","fieldTypePlugins","plugins","byType","getModelToAstConverter","CmsModelToAstConverter","CmsModelFieldToAstConverterFromPlugins","listPluginModels","tenant","locale","modelPlugins","CmsModelPlugin","type","cacheKey","createCacheKey","models","map","contentModel","pluralApiName","singularApiName","savedOn","join","identity","security","isAuthorizationEnabled","id","undefined","getOrSet","filter","plugin","modelTenant","modelLocale","tags","ensureTypeTag","webinyVersion","WEBINY_VERSION","filterAsync","canAccessModel","getModelFromCache","listModels","find","m","NotFoundError","code","benchmark","measure","pluginModels","dbCacheKey","databaseModels","listModelsFromDatabase","filteredCacheKey","get","filteredModels","concat","getModel","withoutAuthorization","ensureCanAccessModel","getEntryManager","target","has","getSingletonEntryManager","input","SingletonModelManager","create","onModelBeforeCreate","createTopic","onModelAfterCreate","onModelCreateError","onModelBeforeCreateFrom","onModelAfterCreateFrom","onModelCreateFromError","onModelBeforeUpdate","onModelAfterUpdate","onModelUpdateError","onModelBeforeDelete","onModelAfterDelete","onModelDeleteError","onModelInitialize","assignModelBeforeCreate","assignModelBeforeUpdate","assignModelBeforeDelete","createModel","rwd","result","createModelCreateValidation","safeParseAsync","success","createZodError","error","defaultFields","data","removeUndefinedValues","assignModelDefaultFields","group","cms","getGroup","titleFieldId","descriptionFieldId","imageFieldId","description","name","createdBy","displayName","createdOn","Date","toISOString","lockedFields","publish","createdModel","ex","updateModel","original","createModelUpdateValidation","Object","keys","length","groupId","groupData","resultModel","update","updateModelDirect","initialModel","createModelFrom","createModelCreateFromValidation","i18n","groups","icon","deleteModel","delete","WebinyError","message","initializeModel","userInput","getEntryManagers","exports"],"sources":["contentModel.crud.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport {\n CmsContext,\n CmsEntryValues,\n CmsModel,\n CmsModelContext,\n CmsModelFieldToGraphQLPlugin,\n CmsModelGroup,\n CmsModelManager,\n CmsModelUpdateInput,\n HeadlessCmsStorageOperations,\n OnModelAfterCreateFromTopicParams,\n OnModelAfterCreateTopicParams,\n OnModelAfterDeleteTopicParams,\n OnModelAfterUpdateTopicParams,\n OnModelBeforeCreateFromTopicParams,\n OnModelBeforeCreateTopicParams,\n OnModelBeforeDeleteTopicParams,\n OnModelBeforeUpdateTopicParams,\n OnModelCreateErrorTopicParams,\n OnModelCreateFromErrorParams,\n OnModelDeleteErrorTopicParams,\n OnModelInitializeParams,\n OnModelUpdateErrorTopicParams\n} from \"~/types\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport { contentModelManagerFactory } from \"./contentModel/contentModelManagerFactory\";\nimport { Tenant } from \"@webiny/api-tenancy/types\";\nimport { I18NLocale } from \"@webiny/api-i18n/types\";\nimport { SecurityIdentity } from \"@webiny/api-security/types\";\nimport { createTopic } from \"@webiny/pubsub\";\nimport { assignModelBeforeCreate } from \"./contentModel/beforeCreate\";\nimport { assignModelBeforeUpdate } from \"./contentModel/beforeUpdate\";\nimport { assignModelBeforeDelete } from \"./contentModel/beforeDelete\";\nimport { CmsModelPlugin } from \"~/plugins/CmsModelPlugin\";\nimport {\n createModelCreateFromValidation,\n createModelCreateValidation,\n createModelUpdateValidation\n} from \"~/crud/contentModel/validation\";\nimport { createZodError, removeUndefinedValues } from \"@webiny/utils\";\nimport { assignModelDefaultFields } from \"~/crud/contentModel/defaultFields\";\nimport { createCacheKey, createMemoryCache } from \"~/utils\";\nimport { ensureTypeTag } from \"./contentModel/ensureTypeTag\";\nimport { listModelsFromDatabase } from \"~/crud/contentModel/listModelsFromDatabase\";\nimport { filterAsync } from \"~/utils/filterAsync\";\nimport { AccessControl } from \"./AccessControl/AccessControl\";\nimport {\n CmsModelFieldToAstConverterFromPlugins,\n CmsModelToAstConverter\n} from \"~/utils/contentModelAst\";\nimport { SingletonModelManager } from \"~/modelManager\";\n\nexport interface CreateModelsCrudParams {\n getTenant: () => Tenant;\n getLocale: () => I18NLocale;\n storageOperations: HeadlessCmsStorageOperations;\n accessControl: AccessControl;\n context: CmsContext;\n getIdentity: () => SecurityIdentity;\n}\n\nexport const createModelsCrud = (params: CreateModelsCrudParams): CmsModelContext => {\n const { getTenant, getIdentity, getLocale, storageOperations, accessControl, context } = params;\n\n const listPluginModelsCache = createMemoryCache<Promise<CmsModel[]>>();\n const listFilteredModelsCache = createMemoryCache<Promise<CmsModel[]>>();\n const listDatabaseModelsCache = createMemoryCache<Promise<CmsModel[]>>();\n const clearModelsCache = (): void => {\n listDatabaseModelsCache.clear();\n listFilteredModelsCache.clear();\n };\n\n const managers = new Map<string, CmsModelManager>();\n const updateManager = async <T>(\n context: CmsContext,\n model: CmsModel\n ): Promise<CmsModelManager<T>> => {\n const manager = await contentModelManagerFactory<T>(context, model);\n managers.set(model.modelId, manager);\n return manager;\n };\n\n const fieldTypePlugins = context.plugins.byType<CmsModelFieldToGraphQLPlugin>(\n \"cms-model-field-to-graphql\"\n );\n\n const getModelToAstConverter = () => {\n return new CmsModelToAstConverter(\n new CmsModelFieldToAstConverterFromPlugins(fieldTypePlugins)\n );\n };\n\n const listPluginModels = async (tenant: string, locale: string): Promise<CmsModel[]> => {\n const modelPlugins = context.plugins.byType<CmsModelPlugin>(CmsModelPlugin.type);\n const cacheKey = createCacheKey({\n tenant,\n locale,\n models: modelPlugins\n .map(({ contentModel: model }) => {\n return `${model.modelId}#${model.pluralApiName}#${model.singularApiName}#${\n model.savedOn || \"unknown\"\n }`;\n })\n .join(\"/\"),\n identity: context.security.isAuthorizationEnabled() ? getIdentity()?.id : undefined\n });\n return listPluginModelsCache.getOrSet(cacheKey, async () => {\n const models = modelPlugins\n /**\n * We need to filter out models that are not for this tenant or locale.\n * If it does not have tenant or locale define, it is for every locale and tenant\n */\n .filter(plugin => {\n const { tenant: modelTenant, locale: modelLocale } = plugin.contentModel;\n if (modelTenant && modelTenant !== tenant) {\n return false;\n } else if (modelLocale && modelLocale !== locale) {\n return false;\n }\n return true;\n })\n .map(plugin => {\n return {\n ...plugin.contentModel,\n tags: ensureTypeTag(plugin.contentModel),\n tenant,\n locale,\n webinyVersion: context.WEBINY_VERSION\n };\n }) as unknown as CmsModel[];\n\n return filterAsync(models, async model => {\n return accessControl.canAccessModel({ model });\n });\n });\n };\n\n const getModelFromCache = async (modelId: string) => {\n const models = await listModels();\n const model = models.find(m => m.modelId === modelId);\n if (!model) {\n throw new NotFoundError(`Content model \"${modelId}\" was not found!`);\n }\n\n return {\n ...model,\n tags: ensureTypeTag(model),\n tenant: model.tenant || getTenant().id,\n locale: model.locale || getLocale().code\n };\n };\n\n /**\n * The list models cache is a key -> Promise pair so it the listModels() can be called multiple times but executed only once.\n *\n * We always fetch the plugins and database models separately.\n * Then we combine them and run access filtering on them\n */\n const listModels = async () => {\n return context.benchmark.measure(\"headlessCms.crud.models.listModels\", async () => {\n /**\n * Maybe we can cache based on permissions, not the identity id?\n *\n * TODO: @adrian please check if possible.\n */\n const tenant = getTenant().id;\n const locale = getLocale().code;\n const pluginModels = await listPluginModels(tenant, locale);\n const dbCacheKey = createCacheKey({\n tenant,\n locale\n });\n const databaseModels = await listDatabaseModelsCache.getOrSet(dbCacheKey, async () => {\n return await listModelsFromDatabase(params);\n });\n\n const filteredCacheKey = createCacheKey({\n dbCacheKey: dbCacheKey.get(),\n identity: context.security.isAuthorizationEnabled() ? getIdentity()?.id : undefined\n });\n\n const filteredModels = await listFilteredModelsCache.getOrSet(\n filteredCacheKey,\n async () => {\n return filterAsync(databaseModels, async model => {\n return accessControl.canAccessModel({ model });\n });\n }\n );\n\n return filteredModels.concat(pluginModels);\n });\n };\n\n const getModel = async (modelId: string): Promise<CmsModel> => {\n return context.benchmark.measure(\"headlessCms.crud.models.getModel\", async () => {\n const model = await context.security.withoutAuthorization(async () => {\n return await getModelFromCache(modelId);\n });\n if (!model) {\n throw new NotFoundError(`Content model \"${modelId}\" was not found!`);\n }\n\n await accessControl.ensureCanAccessModel({ model });\n\n return model;\n });\n };\n\n const getEntryManager: CmsModelContext[\"getEntryManager\"] = async <T>(\n target: string | Pick<CmsModel, \"modelId\">\n ): Promise<CmsModelManager<T>> => {\n const modelId = typeof target === \"string\" ? target : target.modelId;\n if (managers.has(modelId)) {\n return managers.get(modelId) as CmsModelManager<T>;\n }\n const model = await getModelFromCache(modelId);\n return await updateManager<T>(context, model);\n };\n\n const getSingletonEntryManager = async <T extends CmsEntryValues = CmsEntryValues>(\n input: CmsModel | string\n ) => {\n const model = typeof input === \"string\" ? await getModel(input) : input;\n\n const manager = await getEntryManager<T>(model);\n\n return SingletonModelManager.create<T>(manager);\n };\n\n /**\n * Create\n */\n const onModelBeforeCreate =\n createTopic<OnModelBeforeCreateTopicParams>(\"cms.onModelBeforeCreate\");\n const onModelAfterCreate = createTopic<OnModelAfterCreateTopicParams>(\"cms.onModelAfterCreate\");\n const onModelCreateError = createTopic<OnModelCreateErrorTopicParams>(\"cms.onModelCreateError\");\n /**\n * Create from / clone\n */\n const onModelBeforeCreateFrom = createTopic<OnModelBeforeCreateFromTopicParams>(\n \"cms.onModelBeforeCreateFrom\"\n );\n const onModelAfterCreateFrom = createTopic<OnModelAfterCreateFromTopicParams>(\n \"cms.onModelAfterCreateFrom\"\n );\n const onModelCreateFromError = createTopic<OnModelCreateFromErrorParams>(\n \"cms.onModelCreateFromError\"\n );\n /**\n * Update\n */\n const onModelBeforeUpdate =\n createTopic<OnModelBeforeUpdateTopicParams>(\"cms.onModelBeforeUpdate\");\n const onModelAfterUpdate = createTopic<OnModelAfterUpdateTopicParams>(\"cms.onModelAfterUpdate\");\n const onModelUpdateError = createTopic<OnModelUpdateErrorTopicParams>(\"cms.onModelUpdateError\");\n /**\n * Delete\n */\n const onModelBeforeDelete =\n createTopic<OnModelBeforeDeleteTopicParams>(\"cms.onModelBeforeDelete\");\n const onModelAfterDelete = createTopic<OnModelAfterDeleteTopicParams>(\"cms.onModelAfterDelete\");\n const onModelDeleteError = createTopic<OnModelDeleteErrorTopicParams>(\"cms.onModelDeleteError\");\n /**\n * Initialize\n */\n const onModelInitialize = createTopic<OnModelInitializeParams>(\"cms.onModelInitialize\");\n /**\n * We need to assign some default behaviors.\n */\n assignModelBeforeCreate({\n onModelBeforeCreate,\n onModelBeforeCreateFrom,\n context,\n storageOperations\n });\n assignModelBeforeUpdate({\n onModelBeforeUpdate,\n context\n });\n assignModelBeforeDelete({\n onModelBeforeDelete,\n context\n });\n\n /**\n * CRUD methods\n */\n const createModel: CmsModelContext[\"createModel\"] = async input => {\n await accessControl.ensureCanAccessModel({ rwd: \"w\" });\n\n const result = await createModelCreateValidation().safeParseAsync(input);\n if (!result.success) {\n throw createZodError(result.error);\n }\n /**\n * We need to extract the defaultFields because it is not for the CmsModel object.\n */\n const { defaultFields, ...data } = removeUndefinedValues(result.data);\n if (defaultFields) {\n assignModelDefaultFields(data);\n }\n\n const group = await context.cms.getGroup(data.group);\n\n const identity = getIdentity();\n const model: CmsModel = {\n ...data,\n modelId: data.modelId || \"\",\n singularApiName: data.singularApiName,\n pluralApiName: data.pluralApiName,\n titleFieldId: \"id\",\n descriptionFieldId: null,\n imageFieldId: null,\n description: data.description || \"\",\n locale: getLocale().code,\n tenant: getTenant().id,\n group: {\n id: group.id,\n name: group.name\n },\n createdBy: {\n id: identity.id,\n displayName: identity.displayName,\n type: identity.type\n },\n createdOn: new Date().toISOString(),\n savedOn: new Date().toISOString(),\n lockedFields: [],\n webinyVersion: context.WEBINY_VERSION\n };\n\n model.tags = ensureTypeTag(model);\n\n await accessControl.ensureCanAccessModel({ model, rwd: \"w\" });\n\n try {\n await onModelBeforeCreate.publish({\n input: data,\n model\n });\n\n const createdModel = await storageOperations.models.create({\n model\n });\n\n clearModelsCache();\n\n await updateManager(context, model);\n\n await onModelAfterCreate.publish({\n input: data,\n model: createdModel\n });\n\n return createdModel;\n } catch (ex) {\n await onModelCreateError.publish({\n input: data,\n model,\n error: ex\n });\n throw ex;\n }\n };\n const updateModel: CmsModelContext[\"updateModel\"] = async (modelId, input) => {\n await accessControl.ensureCanAccessModel({ rwd: \"w\" });\n\n // Get a model record; this will also perform ownership validation.\n const original = await getModel(modelId);\n\n const result = await createModelUpdateValidation().safeParseAsync(input);\n if (!result.success) {\n throw createZodError(result.error);\n }\n\n const data = removeUndefinedValues(result.data);\n\n if (Object.keys(data).length === 0) {\n /**\n * We need to return the original if nothing is to be updated.\n */\n return original;\n }\n let group: CmsModelGroup = {\n id: original.group.id,\n name: original.group.name\n };\n const groupId = data.group;\n if (groupId) {\n const groupData = await context.cms.getGroup(groupId);\n group = {\n id: groupData.id,\n name: groupData.name\n };\n }\n const model: CmsModel = {\n ...original,\n ...data,\n titleFieldId:\n data.titleFieldId === undefined\n ? original.titleFieldId\n : (data.titleFieldId as string),\n descriptionFieldId:\n data.descriptionFieldId === undefined\n ? original.descriptionFieldId\n : data.descriptionFieldId,\n imageFieldId:\n data.imageFieldId === undefined ? original.imageFieldId : data.imageFieldId,\n group,\n description: data.description || original.description,\n tenant: original.tenant || getTenant().id,\n locale: original.locale || getLocale().code,\n webinyVersion: context.WEBINY_VERSION,\n savedOn: new Date().toISOString()\n };\n\n await accessControl.ensureCanAccessModel({ model, rwd: \"w\" });\n\n model.tags = ensureTypeTag(model);\n\n try {\n await onModelBeforeUpdate.publish({\n input: data,\n original,\n model\n });\n\n const resultModel = await storageOperations.models.update({\n model\n });\n\n await updateManager(context, resultModel);\n\n await onModelAfterUpdate.publish({\n input: data,\n original,\n model: resultModel\n });\n\n return resultModel;\n } catch (ex) {\n await onModelUpdateError.publish({\n input: data,\n model,\n original,\n error: ex\n });\n\n throw ex;\n }\n };\n const updateModelDirect: CmsModelContext[\"updateModelDirect\"] = async params => {\n const { model: initialModel, original } = params;\n\n const model: CmsModel = {\n ...initialModel,\n tenant: initialModel.tenant || getTenant().id,\n locale: initialModel.locale || getLocale().code,\n webinyVersion: context.WEBINY_VERSION\n };\n\n try {\n await onModelBeforeUpdate.publish({\n input: {} as CmsModelUpdateInput,\n original,\n model\n });\n\n const resultModel = await storageOperations.models.update({\n model\n });\n\n await updateManager(context, resultModel);\n\n clearModelsCache();\n\n await onModelAfterUpdate.publish({\n input: {} as CmsModelUpdateInput,\n original,\n model: resultModel\n });\n\n return resultModel;\n } catch (ex) {\n await onModelUpdateError.publish({\n input: {} as CmsModelUpdateInput,\n original,\n model,\n error: ex\n });\n throw ex;\n }\n };\n const createModelFrom: CmsModelContext[\"createModelFrom\"] = async (modelId, input) => {\n await accessControl.ensureCanAccessModel({ rwd: \"w\" });\n\n /**\n * Get a model record; this will also perform ownership validation.\n */\n const original = await getModel(modelId);\n\n const result = await createModelCreateFromValidation().safeParseAsync({\n ...input,\n description: input.description || original.description\n });\n if (!result.success) {\n throw createZodError(result.error);\n }\n\n const data = removeUndefinedValues(result.data);\n\n const locale = await context.i18n.getLocale(data.locale || original.locale);\n if (!locale) {\n throw new NotFoundError(`There is no locale \"${data.locale}\".`);\n }\n /**\n * Use storage operations directly because we cannot get group from different locale via context methods.\n */\n const group = await context.cms.storageOperations.groups.get({\n id: data.group,\n tenant: original.tenant,\n locale: locale.code\n });\n if (!group) {\n throw new NotFoundError(`There is no group \"${data.group}\".`);\n }\n\n const identity = getIdentity();\n const model: CmsModel = {\n ...original,\n singularApiName: data.singularApiName,\n pluralApiName: data.pluralApiName,\n locale: locale.code,\n group: {\n id: group.id,\n name: group.name\n },\n icon: data.icon,\n name: data.name,\n modelId: data.modelId || \"\",\n description: data.description || \"\",\n createdBy: {\n id: identity.id,\n displayName: identity.displayName,\n type: identity.type\n },\n createdOn: new Date().toISOString(),\n savedOn: new Date().toISOString(),\n lockedFields: [],\n webinyVersion: context.WEBINY_VERSION\n };\n\n await accessControl.ensureCanAccessModel({ model, rwd: \"w\" });\n\n try {\n await onModelBeforeCreateFrom.publish({\n input: data,\n model,\n original\n });\n\n const createdModel = await storageOperations.models.create({\n model\n });\n\n clearModelsCache();\n\n await updateManager(context, model);\n\n await onModelAfterCreateFrom.publish({\n input: data,\n original,\n model: createdModel\n });\n\n return createdModel;\n } catch (ex) {\n await onModelCreateFromError.publish({\n input: data,\n original,\n model,\n error: ex\n });\n throw ex;\n }\n };\n const deleteModel: CmsModelContext[\"deleteModel\"] = async modelId => {\n await accessControl.ensureCanAccessModel({ rwd: \"d\" });\n\n const model = await getModel(modelId);\n\n await accessControl.ensureCanAccessModel({ model, rwd: \"d\" });\n\n try {\n await onModelBeforeDelete.publish({\n model\n });\n\n try {\n await storageOperations.models.delete({\n model\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete the content model\",\n ex.code || \"CONTENT_MODEL_DELETE_ERROR\",\n {\n error: ex,\n modelId: model.modelId\n }\n );\n }\n\n clearModelsCache();\n\n await onModelAfterDelete.publish({\n model\n });\n\n managers.delete(model.modelId);\n } catch (ex) {\n await onModelDeleteError.publish({\n model,\n error: ex\n });\n throw ex;\n }\n };\n const initializeModel: CmsModelContext[\"initializeModel\"] = async (modelId, data) => {\n /**\n * We require that users have write permissions to initialize models.\n * Maybe introduce another permission for it?\n */\n const model = await getModel(modelId);\n\n await accessControl.ensureCanAccessModel({ model, rwd: \"w\" });\n\n await onModelInitialize.publish({ model, data });\n\n return true;\n };\n return {\n onModelBeforeCreate,\n onModelAfterCreate,\n onModelCreateError,\n onModelBeforeCreateFrom,\n onModelAfterCreateFrom,\n onModelCreateFromError,\n onModelBeforeUpdate,\n onModelAfterUpdate,\n onModelUpdateError,\n onModelBeforeDelete,\n onModelAfterDelete,\n onModelDeleteError,\n onModelInitialize,\n clearModelsCache,\n getModel,\n getModelToAstConverter,\n listModels,\n async createModel(input) {\n return context.benchmark.measure(\"headlessCms.crud.models.createModel\", async () => {\n return createModel(input);\n });\n },\n /**\n * Method does not check for permissions or ownership.\n * @internal\n */\n async updateModelDirect(params) {\n return context.benchmark.measure(\n \"headlessCms.crud.models.updateModelDirect\",\n async () => {\n return updateModelDirect(params);\n }\n );\n },\n async createModelFrom(modelId, userInput) {\n return context.benchmark.measure(\n \"headlessCms.crud.models.createModelFrom\",\n async () => {\n return createModelFrom(modelId, userInput);\n }\n );\n },\n async updateModel(modelId, input) {\n return context.benchmark.measure(\"headlessCms.crud.models.updateModel\", async () => {\n return updateModel(modelId, input);\n });\n },\n async deleteModel(modelId) {\n return context.benchmark.measure(\"headlessCms.crud.models.deleteModel\", async () => {\n return deleteModel(modelId);\n });\n },\n async initializeModel(modelId, data) {\n return context.benchmark.measure(\n \"headlessCms.crud.models.initializeModel\",\n async () => {\n return initializeModel(modelId, data);\n }\n );\n },\n getEntryManager,\n getEntryManagers: () => managers,\n getSingletonEntryManager\n };\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAyBA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,2BAAA,GAAAF,OAAA;AAIA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAL,OAAA;AACA,IAAAM,aAAA,GAAAN,OAAA;AACA,IAAAO,eAAA,GAAAP,OAAA;AACA,IAAAQ,WAAA,GAAAR,OAAA;AAKA,IAAAS,MAAA,GAAAT,OAAA;AACA,IAAAU,cAAA,GAAAV,OAAA;AACA,IAAAW,OAAA,GAAAX,OAAA;AACA,IAAAY,cAAA,GAAAZ,OAAA;AACA,IAAAa,uBAAA,GAAAb,OAAA;AACA,IAAAc,YAAA,GAAAd,OAAA;AAEA,IAAAe,gBAAA,GAAAf,OAAA;AAIA,IAAAgB,aAAA,GAAAhB,OAAA;AAWO,MAAMiB,gBAAgB,GAAIC,MAA8B,IAAsB;EACjF,MAAM;IAAEC,SAAS;IAAEC,WAAW;IAAEC,SAAS;IAAEC,iBAAiB;IAAEC,aAAa;IAAEC;EAAQ,CAAC,GAAGN,MAAM;EAE/F,MAAMO,qBAAqB,GAAG,IAAAC,yBAAiB,EAAsB,CAAC;EACtE,MAAMC,uBAAuB,GAAG,IAAAD,yBAAiB,EAAsB,CAAC;EACxE,MAAME,uBAAuB,GAAG,IAAAF,yBAAiB,EAAsB,CAAC;EACxE,MAAMG,gBAAgB,GAAGA,CAAA,KAAY;IACjCD,uBAAuB,CAACE,KAAK,CAAC,CAAC;IAC/BH,uBAAuB,CAACG,KAAK,CAAC,CAAC;EACnC,CAAC;EAED,MAAMC,QAAQ,GAAG,IAAIC,GAAG,CAA0B,CAAC;EACnD,MAAMC,aAAa,GAAG,MAAAA,CAClBT,OAAmB,EACnBU,KAAe,KACe;IAC9B,MAAMC,OAAO,GAAG,MAAM,IAAAC,sDAA0B,EAAIZ,OAAO,EAAEU,KAAK,CAAC;IACnEH,QAAQ,CAACM,GAAG,CAACH,KAAK,CAACI,OAAO,EAAEH,OAAO,CAAC;IACpC,OAAOA,OAAO;EAClB,CAAC;EAED,MAAMI,gBAAgB,GAAGf,OAAO,CAACgB,OAAO,CAACC,MAAM,CAC3C,4BACJ,CAAC;EAED,MAAMC,sBAAsB,GAAGA,CAAA,KAAM;IACjC,OAAO,IAAIC,uCAAsB,CAC7B,IAAIC,uDAAsC,CAACL,gBAAgB,CAC/D,CAAC;EACL,CAAC;EAED,MAAMM,gBAAgB,GAAG,MAAAA,CAAOC,MAAc,EAAEC,MAAc,KAA0B;IACpF,MAAMC,YAAY,GAAGxB,OAAO,CAACgB,OAAO,CAACC,MAAM,CAAiBQ,8BAAc,CAACC,IAAI,CAAC;IAChF,MAAMC,QAAQ,GAAG,IAAAC,sBAAc,EAAC;MAC5BN,MAAM;MACNC,MAAM;MACNM,MAAM,EAAEL,YAAY,CACfM,GAAG,CAAC,CAAC;QAAEC,YAAY,EAAErB;MAAM,CAAC,KAAK;QAC9B,OAAQ,GAAEA,KAAK,CAACI,OAAQ,IAAGJ,KAAK,CAACsB,aAAc,IAAGtB,KAAK,CAACuB,eAAgB,IACpEvB,KAAK,CAACwB,OAAO,IAAI,SACpB,EAAC;MACN,CAAC,CAAC,CACDC,IAAI,CAAC,GAAG,CAAC;MACdC,QAAQ,EAAEpC,OAAO,CAACqC,QAAQ,CAACC,sBAAsB,CAAC,CAAC,GAAG1C,WAAW,CAAC,CAAC,EAAE2C,EAAE,GAAGC;IAC9E,CAAC,CAAC;IACF,OAAOvC,qBAAqB,CAACwC,QAAQ,CAACd,QAAQ,EAAE,YAAY;MACxD,MAAME,MAAM,GAAGL;MACX;AAChB;AACA;AACA,SAHgB,CAICkB,MAAM,CAACC,MAAM,IAAI;QACd,MAAM;UAAErB,MAAM,EAAEsB,WAAW;UAAErB,MAAM,EAAEsB;QAAY,CAAC,GAAGF,MAAM,CAACZ,YAAY;QACxE,IAAIa,WAAW,IAAIA,WAAW,KAAKtB,MAAM,EAAE;UACvC,OAAO,KAAK;QAChB,CAAC,MAAM,IAAIuB,WAAW,IAAIA,WAAW,KAAKtB,MAAM,EAAE;UAC9C,OAAO,KAAK;QAChB;QACA,OAAO,IAAI;MACf,CAAC,CAAC,CACDO,GAAG,CAACa,MAAM,IAAI;QACX,OAAO;UACH,GAAGA,MAAM,CAACZ,YAAY;UACtBe,IAAI,EAAE,IAAAC,4BAAa,EAACJ,MAAM,CAACZ,YAAY,CAAC;UACxCT,MAAM;UACNC,MAAM;UACNyB,aAAa,EAAEhD,OAAO,CAACiD;QAC3B,CAAC;MACL,CAAC,CAA0B;MAE/B,OAAO,IAAAC,wBAAW,EAACrB,MAAM,EAAE,MAAMnB,KAAK,IAAI;QACtC,OAAOX,aAAa,CAACoD,cAAc,CAAC;UAAEzC;QAAM,CAAC,CAAC;MAClD,CAAC,CAAC;IACN,CAAC,CAAC;EACN,CAAC;EAED,MAAM0C,iBAAiB,GAAG,MAAOtC,OAAe,IAAK;IACjD,MAAMe,MAAM,GAAG,MAAMwB,UAAU,CAAC,CAAC;IACjC,MAAM3C,KAAK,GAAGmB,MAAM,CAACyB,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACzC,OAAO,KAAKA,OAAO,CAAC;IACrD,IAAI,CAACJ,KAAK,EAAE;MACR,MAAM,IAAI8C,6BAAa,CAAE,kBAAiB1C,OAAQ,kBAAiB,CAAC;IACxE;IAEA,OAAO;MACH,GAAGJ,KAAK;MACRoC,IAAI,EAAE,IAAAC,4BAAa,EAACrC,KAAK,CAAC;MAC1BY,MAAM,EAAEZ,KAAK,CAACY,MAAM,IAAI3B,SAAS,CAAC,CAAC,CAAC4C,EAAE;MACtChB,MAAM,EAAEb,KAAK,CAACa,MAAM,IAAI1B,SAAS,CAAC,CAAC,CAAC4D;IACxC,CAAC;EACL,CAAC;;EAED;AACJ;AACA;AACA;AACA;AACA;EACI,MAAMJ,UAAU,GAAG,MAAAA,CAAA,KAAY;IAC3B,OAAOrD,OAAO,CAAC0D,SAAS,CAACC,OAAO,CAAC,oCAAoC,EAAE,YAAY;MAC/E;AACZ;AACA;AACA;AACA;MACY,MAAMrC,MAAM,GAAG3B,SAAS,CAAC,CAAC,CAAC4C,EAAE;MAC7B,MAAMhB,MAAM,GAAG1B,SAAS,CAAC,CAAC,CAAC4D,IAAI;MAC/B,MAAMG,YAAY,GAAG,MAAMvC,gBAAgB,CAACC,MAAM,EAAEC,MAAM,CAAC;MAC3D,MAAMsC,UAAU,GAAG,IAAAjC,sBAAc,EAAC;QAC9BN,MAAM;QACNC;MACJ,CAAC,CAAC;MACF,MAAMuC,cAAc,GAAG,MAAM1D,uBAAuB,CAACqC,QAAQ,CAACoB,UAAU,EAAE,YAAY;QAClF,OAAO,MAAM,IAAAE,8CAAsB,EAACrE,MAAM,CAAC;MAC/C,CAAC,CAAC;MAEF,MAAMsE,gBAAgB,GAAG,IAAApC,sBAAc,EAAC;QACpCiC,UAAU,EAAEA,UAAU,CAACI,GAAG,CAAC,CAAC;QAC5B7B,QAAQ,EAAEpC,OAAO,CAACqC,QAAQ,CAACC,sBAAsB,CAAC,CAAC,GAAG1C,WAAW,CAAC,CAAC,EAAE2C,EAAE,GAAGC;MAC9E,CAAC,CAAC;MAEF,MAAM0B,cAAc,GAAG,MAAM/D,uBAAuB,CAACsC,QAAQ,CACzDuB,gBAAgB,EAChB,YAAY;QACR,OAAO,IAAAd,wBAAW,EAACY,cAAc,EAAE,MAAMpD,KAAK,IAAI;UAC9C,OAAOX,aAAa,CAACoD,cAAc,CAAC;YAAEzC;UAAM,CAAC,CAAC;QAClD,CAAC,CAAC;MACN,CACJ,CAAC;MAED,OAAOwD,cAAc,CAACC,MAAM,CAACP,YAAY,CAAC;IAC9C,CAAC,CAAC;EACN,CAAC;EAED,MAAMQ,QAAQ,GAAG,MAAOtD,OAAe,IAAwB;IAC3D,OAAOd,OAAO,CAAC0D,SAAS,CAACC,OAAO,CAAC,kCAAkC,EAAE,YAAY;MAC7E,MAAMjD,KAAK,GAAG,MAAMV,OAAO,CAACqC,QAAQ,CAACgC,oBAAoB,CAAC,YAAY;QAClE,OAAO,MAAMjB,iBAAiB,CAACtC,OAAO,CAAC;MAC3C,CAAC,CAAC;MACF,IAAI,CAACJ,KAAK,EAAE;QACR,MAAM,IAAI8C,6BAAa,CAAE,kBAAiB1C,OAAQ,kBAAiB,CAAC;MACxE;MAEA,MAAMf,aAAa,CAACuE,oBAAoB,CAAC;QAAE5D;MAAM,CAAC,CAAC;MAEnD,OAAOA,KAAK;IAChB,CAAC,CAAC;EACN,CAAC;EAED,MAAM6D,eAAmD,GAAG,MACxDC,MAA0C,IACZ;IAC9B,MAAM1D,OAAO,GAAG,OAAO0D,MAAM,KAAK,QAAQ,GAAGA,MAAM,GAAGA,MAAM,CAAC1D,OAAO;IACpE,IAAIP,QAAQ,CAACkE,GAAG,CAAC3D,OAAO,CAAC,EAAE;MACvB,OAAOP,QAAQ,CAAC0D,GAAG,CAACnD,OAAO,CAAC;IAChC;IACA,MAAMJ,KAAK,GAAG,MAAM0C,iBAAiB,CAACtC,OAAO,CAAC;IAC9C,OAAO,MAAML,aAAa,CAAIT,OAAO,EAAEU,KAAK,CAAC;EACjD,CAAC;EAED,MAAMgE,wBAAwB,GAAG,MAC7BC,KAAwB,IACvB;IACD,MAAMjE,KAAK,GAAG,OAAOiE,KAAK,KAAK,QAAQ,GAAG,MAAMP,QAAQ,CAACO,KAAK,CAAC,GAAGA,KAAK;IAEvE,MAAMhE,OAAO,GAAG,MAAM4D,eAAe,CAAI7D,KAAK,CAAC;IAE/C,OAAOkE,mCAAqB,CAACC,MAAM,CAAIlE,OAAO,CAAC;EACnD,CAAC;;EAED;AACJ;AACA;EACI,MAAMmE,mBAAmB,GACrB,IAAAC,mBAAW,EAAiC,yBAAyB,CAAC;EAC1E,MAAMC,kBAAkB,GAAG,IAAAD,mBAAW,EAAgC,wBAAwB,CAAC;EAC/F,MAAME,kBAAkB,GAAG,IAAAF,mBAAW,EAAgC,wBAAwB,CAAC;EAC/F;AACJ;AACA;EACI,MAAMG,uBAAuB,GAAG,IAAAH,mBAAW,EACvC,6BACJ,CAAC;EACD,MAAMI,sBAAsB,GAAG,IAAAJ,mBAAW,EACtC,4BACJ,CAAC;EACD,MAAMK,sBAAsB,GAAG,IAAAL,mBAAW,EACtC,4BACJ,CAAC;EACD;AACJ;AACA;EACI,MAAMM,mBAAmB,GACrB,IAAAN,mBAAW,EAAiC,yBAAyB,CAAC;EAC1E,MAAMO,kBAAkB,GAAG,IAAAP,mBAAW,EAAgC,wBAAwB,CAAC;EAC/F,MAAMQ,kBAAkB,GAAG,IAAAR,mBAAW,EAAgC,wBAAwB,CAAC;EAC/F;AACJ;AACA;EACI,MAAMS,mBAAmB,GACrB,IAAAT,mBAAW,EAAiC,yBAAyB,CAAC;EAC1E,MAAMU,kBAAkB,GAAG,IAAAV,mBAAW,EAAgC,wBAAwB,CAAC;EAC/F,MAAMW,kBAAkB,GAAG,IAAAX,mBAAW,EAAgC,wBAAwB,CAAC;EAC/F;AACJ;AACA;EACI,MAAMY,iBAAiB,GAAG,IAAAZ,mBAAW,EAA0B,uBAAuB,CAAC;EACvF;AACJ;AACA;EACI,IAAAa,qCAAuB,EAAC;IACpBd,mBAAmB;IACnBI,uBAAuB;IACvBlF,OAAO;IACPF;EACJ,CAAC,CAAC;EACF,IAAA+F,qCAAuB,EAAC;IACpBR,mBAAmB;IACnBrF;EACJ,CAAC,CAAC;EACF,IAAA8F,qCAAuB,EAAC;IACpBN,mBAAmB;IACnBxF;EACJ,CAAC,CAAC;;EAEF;AACJ;AACA;EACI,MAAM+F,WAA2C,GAAG,MAAMpB,KAAK,IAAI;IAC/D,MAAM5E,aAAa,CAACuE,oBAAoB,CAAC;MAAE0B,GAAG,EAAE;IAAI,CAAC,CAAC;IAEtD,MAAMC,MAAM,GAAG,MAAM,IAAAC,uCAA2B,EAAC,CAAC,CAACC,cAAc,CAACxB,KAAK,CAAC;IACxE,IAAI,CAACsB,MAAM,CAACG,OAAO,EAAE;MACjB,MAAM,IAAAC,qBAAc,EAACJ,MAAM,CAACK,KAAK,CAAC;IACtC;IACA;AACR;AACA;IACQ,MAAM;MAAEC,aAAa;MAAE,GAAGC;IAAK,CAAC,GAAG,IAAAC,4BAAqB,EAACR,MAAM,CAACO,IAAI,CAAC;IACrE,IAAID,aAAa,EAAE;MACf,IAAAG,uCAAwB,EAACF,IAAI,CAAC;IAClC;IAEA,MAAMG,KAAK,GAAG,MAAM3G,OAAO,CAAC4G,GAAG,CAACC,QAAQ,CAACL,IAAI,CAACG,KAAK,CAAC;IAEpD,MAAMvE,QAAQ,GAAGxC,WAAW,CAAC,CAAC;IAC9B,MAAMc,KAAe,GAAG;MACpB,GAAG8F,IAAI;MACP1F,OAAO,EAAE0F,IAAI,CAAC1F,OAAO,IAAI,EAAE;MAC3BmB,eAAe,EAAEuE,IAAI,CAACvE,eAAe;MACrCD,aAAa,EAAEwE,IAAI,CAACxE,aAAa;MACjC8E,YAAY,EAAE,IAAI;MAClBC,kBAAkB,EAAE,IAAI;MACxBC,YAAY,EAAE,IAAI;MAClBC,WAAW,EAAET,IAAI,CAACS,WAAW,IAAI,EAAE;MACnC1F,MAAM,EAAE1B,SAAS,CAAC,CAAC,CAAC4D,IAAI;MACxBnC,MAAM,EAAE3B,SAAS,CAAC,CAAC,CAAC4C,EAAE;MACtBoE,KAAK,EAAE;QACHpE,EAAE,EAAEoE,KAAK,CAACpE,EAAE;QACZ2E,IAAI,EAAEP,KAAK,CAACO;MAChB,CAAC;MACDC,SAAS,EAAE;QACP5E,EAAE,EAAEH,QAAQ,CAACG,EAAE;QACf6E,WAAW,EAAEhF,QAAQ,CAACgF,WAAW;QACjC1F,IAAI,EAAEU,QAAQ,CAACV;MACnB,CAAC;MACD2F,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;MACnCrF,OAAO,EAAE,IAAIoF,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;MACjCC,YAAY,EAAE,EAAE;MAChBxE,aAAa,EAAEhD,OAAO,CAACiD;IAC3B,CAAC;IAEDvC,KAAK,CAACoC,IAAI,GAAG,IAAAC,4BAAa,EAACrC,KAAK,CAAC;IAEjC,MAAMX,aAAa,CAACuE,oBAAoB,CAAC;MAAE5D,KAAK;MAAEsF,GAAG,EAAE;IAAI,CAAC,CAAC;IAE7D,IAAI;MACA,MAAMlB,mBAAmB,CAAC2C,OAAO,CAAC;QAC9B9C,KAAK,EAAE6B,IAAI;QACX9F;MACJ,CAAC,CAAC;MAEF,MAAMgH,YAAY,GAAG,MAAM5H,iBAAiB,CAAC+B,MAAM,CAACgD,MAAM,CAAC;QACvDnE;MACJ,CAAC,CAAC;MAEFL,gBAAgB,CAAC,CAAC;MAElB,MAAMI,aAAa,CAACT,OAAO,EAAEU,KAAK,CAAC;MAEnC,MAAMsE,kBAAkB,CAACyC,OAAO,CAAC;QAC7B9C,KAAK,EAAE6B,IAAI;QACX9F,KAAK,EAAEgH;MACX,CAAC,CAAC;MAEF,OAAOA,YAAY;IACvB,CAAC,CAAC,OAAOC,EAAE,EAAE;MACT,MAAM1C,kBAAkB,CAACwC,OAAO,CAAC;QAC7B9C,KAAK,EAAE6B,IAAI;QACX9F,KAAK;QACL4F,KAAK,EAAEqB;MACX,CAAC,CAAC;MACF,MAAMA,EAAE;IACZ;EACJ,CAAC;EACD,MAAMC,WAA2C,GAAG,MAAAA,CAAO9G,OAAO,EAAE6D,KAAK,KAAK;IAC1E,MAAM5E,aAAa,CAACuE,oBAAoB,CAAC;MAAE0B,GAAG,EAAE;IAAI,CAAC,CAAC;;IAEtD;IACA,MAAM6B,QAAQ,GAAG,MAAMzD,QAAQ,CAACtD,OAAO,CAAC;IAExC,MAAMmF,MAAM,GAAG,MAAM,IAAA6B,uCAA2B,EAAC,CAAC,CAAC3B,cAAc,CAACxB,KAAK,CAAC;IACxE,IAAI,CAACsB,MAAM,CAACG,OAAO,EAAE;MACjB,MAAM,IAAAC,qBAAc,EAACJ,MAAM,CAACK,KAAK,CAAC;IACtC;IAEA,MAAME,IAAI,GAAG,IAAAC,4BAAqB,EAACR,MAAM,CAACO,IAAI,CAAC;IAE/C,IAAIuB,MAAM,CAACC,IAAI,CAACxB,IAAI,CAAC,CAACyB,MAAM,KAAK,CAAC,EAAE;MAChC;AACZ;AACA;MACY,OAAOJ,QAAQ;IACnB;IACA,IAAIlB,KAAoB,GAAG;MACvBpE,EAAE,EAAEsF,QAAQ,CAAClB,KAAK,CAACpE,EAAE;MACrB2E,IAAI,EAAEW,QAAQ,CAAClB,KAAK,CAACO;IACzB,CAAC;IACD,MAAMgB,OAAO,GAAG1B,IAAI,CAACG,KAAK;IAC1B,IAAIuB,OAAO,EAAE;MACT,MAAMC,SAAS,GAAG,MAAMnI,OAAO,CAAC4G,GAAG,CAACC,QAAQ,CAACqB,OAAO,CAAC;MACrDvB,KAAK,GAAG;QACJpE,EAAE,EAAE4F,SAAS,CAAC5F,EAAE;QAChB2E,IAAI,EAAEiB,SAAS,CAACjB;MACpB,CAAC;IACL;IACA,MAAMxG,KAAe,GAAG;MACpB,GAAGmH,QAAQ;MACX,GAAGrB,IAAI;MACPM,YAAY,EACRN,IAAI,CAACM,YAAY,KAAKtE,SAAS,GACzBqF,QAAQ,CAACf,YAAY,GACpBN,IAAI,CAACM,YAAuB;MACvCC,kBAAkB,EACdP,IAAI,CAACO,kBAAkB,KAAKvE,SAAS,GAC/BqF,QAAQ,CAACd,kBAAkB,GAC3BP,IAAI,CAACO,kBAAkB;MACjCC,YAAY,EACRR,IAAI,CAACQ,YAAY,KAAKxE,SAAS,GAAGqF,QAAQ,CAACb,YAAY,GAAGR,IAAI,CAACQ,YAAY;MAC/EL,KAAK;MACLM,WAAW,EAAET,IAAI,CAACS,WAAW,IAAIY,QAAQ,CAACZ,WAAW;MACrD3F,MAAM,EAAEuG,QAAQ,CAACvG,MAAM,IAAI3B,SAAS,CAAC,CAAC,CAAC4C,EAAE;MACzChB,MAAM,EAAEsG,QAAQ,CAACtG,MAAM,IAAI1B,SAAS,CAAC,CAAC,CAAC4D,IAAI;MAC3CT,aAAa,EAAEhD,OAAO,CAACiD,cAAc;MACrCf,OAAO,EAAE,IAAIoF,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC;IACpC,CAAC;IAED,MAAMxH,aAAa,CAACuE,oBAAoB,CAAC;MAAE5D,KAAK;MAAEsF,GAAG,EAAE;IAAI,CAAC,CAAC;IAE7DtF,KAAK,CAACoC,IAAI,GAAG,IAAAC,4BAAa,EAACrC,KAAK,CAAC;IAEjC,IAAI;MACA,MAAM2E,mBAAmB,CAACoC,OAAO,CAAC;QAC9B9C,KAAK,EAAE6B,IAAI;QACXqB,QAAQ;QACRnH;MACJ,CAAC,CAAC;MAEF,MAAM0H,WAAW,GAAG,MAAMtI,iBAAiB,CAAC+B,MAAM,CAACwG,MAAM,CAAC;QACtD3H;MACJ,CAAC,CAAC;MAEF,MAAMD,aAAa,CAACT,OAAO,EAAEoI,WAAW,CAAC;MAEzC,MAAM9C,kBAAkB,CAACmC,OAAO,CAAC;QAC7B9C,KAAK,EAAE6B,IAAI;QACXqB,QAAQ;QACRnH,KAAK,EAAE0H;MACX,CAAC,CAAC;MAEF,OAAOA,WAAW;IACtB,CAAC,CAAC,OAAOT,EAAE,EAAE;MACT,MAAMpC,kBAAkB,CAACkC,OAAO,CAAC;QAC7B9C,KAAK,EAAE6B,IAAI;QACX9F,KAAK;QACLmH,QAAQ;QACRvB,KAAK,EAAEqB;MACX,CAAC,CAAC;MAEF,MAAMA,EAAE;IACZ;EACJ,CAAC;EACD,MAAMW,iBAAuD,GAAG,MAAM5I,MAAM,IAAI;IAC5E,MAAM;MAAEgB,KAAK,EAAE6H,YAAY;MAAEV;IAAS,CAAC,GAAGnI,MAAM;IAEhD,MAAMgB,KAAe,GAAG;MACpB,GAAG6H,YAAY;MACfjH,MAAM,EAAEiH,YAAY,CAACjH,MAAM,IAAI3B,SAAS,CAAC,CAAC,CAAC4C,EAAE;MAC7ChB,MAAM,EAAEgH,YAAY,CAAChH,MAAM,IAAI1B,SAAS,CAAC,CAAC,CAAC4D,IAAI;MAC/CT,aAAa,EAAEhD,OAAO,CAACiD;IAC3B,CAAC;IAED,IAAI;MACA,MAAMoC,mBAAmB,CAACoC,OAAO,CAAC;QAC9B9C,KAAK,EAAE,CAAC,CAAwB;QAChCkD,QAAQ;QACRnH;MACJ,CAAC,CAAC;MAEF,MAAM0H,WAAW,GAAG,MAAMtI,iBAAiB,CAAC+B,MAAM,CAACwG,MAAM,CAAC;QACtD3H;MACJ,CAAC,CAAC;MAEF,MAAMD,aAAa,CAACT,OAAO,EAAEoI,WAAW,CAAC;MAEzC/H,gBAAgB,CAAC,CAAC;MAElB,MAAMiF,kBAAkB,CAACmC,OAAO,CAAC;QAC7B9C,KAAK,EAAE,CAAC,CAAwB;QAChCkD,QAAQ;QACRnH,KAAK,EAAE0H;MACX,CAAC,CAAC;MAEF,OAAOA,WAAW;IACtB,CAAC,CAAC,OAAOT,EAAE,EAAE;MACT,MAAMpC,kBAAkB,CAACkC,OAAO,CAAC;QAC7B9C,KAAK,EAAE,CAAC,CAAwB;QAChCkD,QAAQ;QACRnH,KAAK;QACL4F,KAAK,EAAEqB;MACX,CAAC,CAAC;MACF,MAAMA,EAAE;IACZ;EACJ,CAAC;EACD,MAAMa,eAAmD,GAAG,MAAAA,CAAO1H,OAAO,EAAE6D,KAAK,KAAK;IAClF,MAAM5E,aAAa,CAACuE,oBAAoB,CAAC;MAAE0B,GAAG,EAAE;IAAI,CAAC,CAAC;;IAEtD;AACR;AACA;IACQ,MAAM6B,QAAQ,GAAG,MAAMzD,QAAQ,CAACtD,OAAO,CAAC;IAExC,MAAMmF,MAAM,GAAG,MAAM,IAAAwC,2CAA+B,EAAC,CAAC,CAACtC,cAAc,CAAC;MAClE,GAAGxB,KAAK;MACRsC,WAAW,EAAEtC,KAAK,CAACsC,WAAW,IAAIY,QAAQ,CAACZ;IAC/C,CAAC,CAAC;IACF,IAAI,CAAChB,MAAM,CAACG,OAAO,EAAE;MACjB,MAAM,IAAAC,qBAAc,EAACJ,MAAM,CAACK,KAAK,CAAC;IACtC;IAEA,MAAME,IAAI,GAAG,IAAAC,4BAAqB,EAACR,MAAM,CAACO,IAAI,CAAC;IAE/C,MAAMjF,MAAM,GAAG,MAAMvB,OAAO,CAAC0I,IAAI,CAAC7I,SAAS,CAAC2G,IAAI,CAACjF,MAAM,IAAIsG,QAAQ,CAACtG,MAAM,CAAC;IAC3E,IAAI,CAACA,MAAM,EAAE;MACT,MAAM,IAAIiC,6BAAa,CAAE,uBAAsBgD,IAAI,CAACjF,MAAO,IAAG,CAAC;IACnE;IACA;AACR;AACA;IACQ,MAAMoF,KAAK,GAAG,MAAM3G,OAAO,CAAC4G,GAAG,CAAC9G,iBAAiB,CAAC6I,MAAM,CAAC1E,GAAG,CAAC;MACzD1B,EAAE,EAAEiE,IAAI,CAACG,KAAK;MACdrF,MAAM,EAAEuG,QAAQ,CAACvG,MAAM;MACvBC,MAAM,EAAEA,MAAM,CAACkC;IACnB,CAAC,CAAC;IACF,IAAI,CAACkD,KAAK,EAAE;MACR,MAAM,IAAInD,6BAAa,CAAE,sBAAqBgD,IAAI,CAACG,KAAM,IAAG,CAAC;IACjE;IAEA,MAAMvE,QAAQ,GAAGxC,WAAW,CAAC,CAAC;IAC9B,MAAMc,KAAe,GAAG;MACpB,GAAGmH,QAAQ;MACX5F,eAAe,EAAEuE,IAAI,CAACvE,eAAe;MACrCD,aAAa,EAAEwE,IAAI,CAACxE,aAAa;MACjCT,MAAM,EAAEA,MAAM,CAACkC,IAAI;MACnBkD,KAAK,EAAE;QACHpE,EAAE,EAAEoE,KAAK,CAACpE,EAAE;QACZ2E,IAAI,EAAEP,KAAK,CAACO;MAChB,CAAC;MACD0B,IAAI,EAAEpC,IAAI,CAACoC,IAAI;MACf1B,IAAI,EAAEV,IAAI,CAACU,IAAI;MACfpG,OAAO,EAAE0F,IAAI,CAAC1F,OAAO,IAAI,EAAE;MAC3BmG,WAAW,EAAET,IAAI,CAACS,WAAW,IAAI,EAAE;MACnCE,SAAS,EAAE;QACP5E,EAAE,EAAEH,QAAQ,CAACG,EAAE;QACf6E,WAAW,EAAEhF,QAAQ,CAACgF,WAAW;QACjC1F,IAAI,EAAEU,QAAQ,CAACV;MACnB,CAAC;MACD2F,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;MACnCrF,OAAO,EAAE,IAAIoF,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;MACjCC,YAAY,EAAE,EAAE;MAChBxE,aAAa,EAAEhD,OAAO,CAACiD;IAC3B,CAAC;IAED,MAAMlD,aAAa,CAACuE,oBAAoB,CAAC;MAAE5D,KAAK;MAAEsF,GAAG,EAAE;IAAI,CAAC,CAAC;IAE7D,IAAI;MACA,MAAMd,uBAAuB,CAACuC,OAAO,CAAC;QAClC9C,KAAK,EAAE6B,IAAI;QACX9F,KAAK;QACLmH;MACJ,CAAC,CAAC;MAEF,MAAMH,YAAY,GAAG,MAAM5H,iBAAiB,CAAC+B,MAAM,CAACgD,MAAM,CAAC;QACvDnE;MACJ,CAAC,CAAC;MAEFL,gBAAgB,CAAC,CAAC;MAElB,MAAMI,aAAa,CAACT,OAAO,EAAEU,KAAK,CAAC;MAEnC,MAAMyE,sBAAsB,CAACsC,OAAO,CAAC;QACjC9C,KAAK,EAAE6B,IAAI;QACXqB,QAAQ;QACRnH,KAAK,EAAEgH;MACX,CAAC,CAAC;MAEF,OAAOA,YAAY;IACvB,CAAC,CAAC,OAAOC,EAAE,EAAE;MACT,MAAMvC,sBAAsB,CAACqC,OAAO,CAAC;QACjC9C,KAAK,EAAE6B,IAAI;QACXqB,QAAQ;QACRnH,KAAK;QACL4F,KAAK,EAAEqB;MACX,CAAC,CAAC;MACF,MAAMA,EAAE;IACZ;EACJ,CAAC;EACD,MAAMkB,WAA2C,GAAG,MAAM/H,OAAO,IAAI;IACjE,MAAMf,aAAa,CAACuE,oBAAoB,CAAC;MAAE0B,GAAG,EAAE;IAAI,CAAC,CAAC;IAEtD,MAAMtF,KAAK,GAAG,MAAM0D,QAAQ,CAACtD,OAAO,CAAC;IAErC,MAAMf,aAAa,CAACuE,oBAAoB,CAAC;MAAE5D,KAAK;MAAEsF,GAAG,EAAE;IAAI,CAAC,CAAC;IAE7D,IAAI;MACA,MAAMR,mBAAmB,CAACiC,OAAO,CAAC;QAC9B/G;MACJ,CAAC,CAAC;MAEF,IAAI;QACA,MAAMZ,iBAAiB,CAAC+B,MAAM,CAACiH,MAAM,CAAC;UAClCpI;QACJ,CAAC,CAAC;MACN,CAAC,CAAC,OAAOiH,EAAE,EAAE;QACT,MAAM,IAAIoB,cAAW,CACjBpB,EAAE,CAACqB,OAAO,IAAI,oCAAoC,EAClDrB,EAAE,CAAClE,IAAI,IAAI,4BAA4B,EACvC;UACI6C,KAAK,EAAEqB,EAAE;UACT7G,OAAO,EAAEJ,KAAK,CAACI;QACnB,CACJ,CAAC;MACL;MAEAT,gBAAgB,CAAC,CAAC;MAElB,MAAMoF,kBAAkB,CAACgC,OAAO,CAAC;QAC7B/G;MACJ,CAAC,CAAC;MAEFH,QAAQ,CAACuI,MAAM,CAACpI,KAAK,CAACI,OAAO,CAAC;IAClC,CAAC,CAAC,OAAO6G,EAAE,EAAE;MACT,MAAMjC,kBAAkB,CAAC+B,OAAO,CAAC;QAC7B/G,KAAK;QACL4F,KAAK,EAAEqB;MACX,CAAC,CAAC;MACF,MAAMA,EAAE;IACZ;EACJ,CAAC;EACD,MAAMsB,eAAmD,GAAG,MAAAA,CAAOnI,OAAO,EAAE0F,IAAI,KAAK;IACjF;AACR;AACA;AACA;IACQ,MAAM9F,KAAK,GAAG,MAAM0D,QAAQ,CAACtD,OAAO,CAAC;IAErC,MAAMf,aAAa,CAACuE,oBAAoB,CAAC;MAAE5D,KAAK;MAAEsF,GAAG,EAAE;IAAI,CAAC,CAAC;IAE7D,MAAML,iBAAiB,CAAC8B,OAAO,CAAC;MAAE/G,KAAK;MAAE8F;IAAK,CAAC,CAAC;IAEhD,OAAO,IAAI;EACf,CAAC;EACD,OAAO;IACH1B,mBAAmB;IACnBE,kBAAkB;IAClBC,kBAAkB;IAClBC,uBAAuB;IACvBC,sBAAsB;IACtBC,sBAAsB;IACtBC,mBAAmB;IACnBC,kBAAkB;IAClBC,kBAAkB;IAClBC,mBAAmB;IACnBC,kBAAkB;IAClBC,kBAAkB;IAClBC,iBAAiB;IACjBtF,gBAAgB;IAChB+D,QAAQ;IACRlD,sBAAsB;IACtBmC,UAAU;IACV,MAAM0C,WAAWA,CAACpB,KAAK,EAAE;MACrB,OAAO3E,OAAO,CAAC0D,SAAS,CAACC,OAAO,CAAC,qCAAqC,EAAE,YAAY;QAChF,OAAOoC,WAAW,CAACpB,KAAK,CAAC;MAC7B,CAAC,CAAC;IACN,CAAC;IACD;AACR;AACA;AACA;IACQ,MAAM2D,iBAAiBA,CAAC5I,MAAM,EAAE;MAC5B,OAAOM,OAAO,CAAC0D,SAAS,CAACC,OAAO,CAC5B,2CAA2C,EAC3C,YAAY;QACR,OAAO2E,iBAAiB,CAAC5I,MAAM,CAAC;MACpC,CACJ,CAAC;IACL,CAAC;IACD,MAAM8I,eAAeA,CAAC1H,OAAO,EAAEoI,SAAS,EAAE;MACtC,OAAOlJ,OAAO,CAAC0D,SAAS,CAACC,OAAO,CAC5B,yCAAyC,EACzC,YAAY;QACR,OAAO6E,eAAe,CAAC1H,OAAO,EAAEoI,SAAS,CAAC;MAC9C,CACJ,CAAC;IACL,CAAC;IACD,MAAMtB,WAAWA,CAAC9G,OAAO,EAAE6D,KAAK,EAAE;MAC9B,OAAO3E,OAAO,CAAC0D,SAAS,CAACC,OAAO,CAAC,qCAAqC,EAAE,YAAY;QAChF,OAAOiE,WAAW,CAAC9G,OAAO,EAAE6D,KAAK,CAAC;MACtC,CAAC,CAAC;IACN,CAAC;IACD,MAAMkE,WAAWA,CAAC/H,OAAO,EAAE;MACvB,OAAOd,OAAO,CAAC0D,SAAS,CAACC,OAAO,CAAC,qCAAqC,EAAE,YAAY;QAChF,OAAOkF,WAAW,CAAC/H,OAAO,CAAC;MAC/B,CAAC,CAAC;IACN,CAAC;IACD,MAAMmI,eAAeA,CAACnI,OAAO,EAAE0F,IAAI,EAAE;MACjC,OAAOxG,OAAO,CAAC0D,SAAS,CAACC,OAAO,CAC5B,yCAAyC,EACzC,YAAY;QACR,OAAOsF,eAAe,CAACnI,OAAO,EAAE0F,IAAI,CAAC;MACzC,CACJ,CAAC;IACL,CAAC;IACDjC,eAAe;IACf4E,gBAAgB,EAAEA,CAAA,KAAM5I,QAAQ;IAChCmE;EACJ,CAAC;AACL,CAAC;AAAC0E,OAAA,CAAA3J,gBAAA,GAAAA,gBAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_error","_interopRequireDefault","require","_handlerGraphql","_contentModelManagerFactory","_pubsub","_beforeCreate","_beforeUpdate","_beforeDelete","_CmsModelPlugin","_validation","_utils","_defaultFields","_utils2","_ensureTypeTag","_listModelsFromDatabase","_filterAsync","_contentModelAst","_modelManager","createModelsCrud","params","getTenant","getIdentity","getLocale","storageOperations","accessControl","context","listPluginModelsCache","createMemoryCache","listFilteredModelsCache","listDatabaseModelsCache","clearModelsCache","clear","managers","Map","updateManager","model","manager","contentModelManagerFactory","set","modelId","fieldTypePlugins","plugins","byType","getModelToAstConverter","CmsModelToAstConverter","CmsModelFieldToAstConverterFromPlugins","listPluginModels","tenant","locale","modelPlugins","CmsModelPlugin","type","cacheKey","createCacheKey","models","map","contentModel","pluralApiName","singularApiName","savedOn","join","identity","security","isAuthorizationEnabled","id","undefined","getOrSet","filter","plugin","modelTenant","modelLocale","tags","ensureTypeTag","webinyVersion","WEBINY_VERSION","filterAsync","canAccessModel","getModelFromCache","listModels","find","m","NotFoundError","code","benchmark","measure","pluginModels","dbCacheKey","databaseModels","listModelsFromDatabase","filteredCacheKey","get","filteredModels","concat","getModel","withoutAuthorization","ensureCanAccessModel","getEntryManager","target","has","getSingletonEntryManager","input","SingletonModelManager","create","onModelBeforeCreate","createTopic","onModelAfterCreate","onModelCreateError","onModelBeforeCreateFrom","onModelAfterCreateFrom","onModelCreateFromError","onModelBeforeUpdate","onModelAfterUpdate","onModelUpdateError","onModelBeforeDelete","onModelAfterDelete","onModelDeleteError","onModelInitialize","assignModelBeforeCreate","assignModelBeforeUpdate","assignModelBeforeDelete","createModel","rwd","result","createModelCreateValidation","safeParseAsync","success","createZodError","error","defaultFields","data","removeUndefinedValues","assignModelDefaultFields","group","cms","getGroup","titleFieldId","descriptionFieldId","imageFieldId","description","name","createdBy","displayName","createdOn","Date","toISOString","lockedFields","publish","createdModel","ex","updateModel","original","createModelUpdateValidation","Object","keys","length","groupId","groupData","resultModel","update","updateModelDirect","initialModel","createModelFrom","createModelCreateFromValidation","i18n","groups","icon","deleteModel","delete","WebinyError","message","initializeModel","userInput","getEntryManagers","exports"],"sources":["contentModel.crud.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport {\n CmsContext,\n CmsEntryValues,\n CmsModel,\n CmsModelContext,\n CmsModelFieldToGraphQLPlugin,\n CmsModelGroup,\n CmsModelManager,\n CmsModelUpdateInput,\n HeadlessCmsStorageOperations,\n OnModelAfterCreateFromTopicParams,\n OnModelAfterCreateTopicParams,\n OnModelAfterDeleteTopicParams,\n OnModelAfterUpdateTopicParams,\n OnModelBeforeCreateFromTopicParams,\n OnModelBeforeCreateTopicParams,\n OnModelBeforeDeleteTopicParams,\n OnModelBeforeUpdateTopicParams,\n OnModelCreateErrorTopicParams,\n OnModelCreateFromErrorParams,\n OnModelDeleteErrorTopicParams,\n OnModelInitializeParams,\n OnModelUpdateErrorTopicParams\n} from \"~/types\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport { contentModelManagerFactory } from \"./contentModel/contentModelManagerFactory\";\nimport { Tenant } from \"@webiny/api-tenancy/types\";\nimport { I18NLocale } from \"@webiny/api-i18n/types\";\nimport { SecurityIdentity } from \"@webiny/api-security/types\";\nimport { createTopic } from \"@webiny/pubsub\";\nimport { assignModelBeforeCreate } from \"./contentModel/beforeCreate\";\nimport { assignModelBeforeUpdate } from \"./contentModel/beforeUpdate\";\nimport { assignModelBeforeDelete } from \"./contentModel/beforeDelete\";\nimport { CmsModelPlugin } from \"~/plugins/CmsModelPlugin\";\nimport {\n createModelCreateFromValidation,\n createModelCreateValidation,\n createModelUpdateValidation\n} from \"~/crud/contentModel/validation\";\nimport { createZodError, removeUndefinedValues } from \"@webiny/utils\";\nimport { assignModelDefaultFields } from \"~/crud/contentModel/defaultFields\";\nimport { createCacheKey, createMemoryCache } from \"~/utils\";\nimport { ensureTypeTag } from \"./contentModel/ensureTypeTag\";\nimport { listModelsFromDatabase } from \"~/crud/contentModel/listModelsFromDatabase\";\nimport { filterAsync } from \"~/utils/filterAsync\";\nimport { AccessControl } from \"./AccessControl/AccessControl\";\nimport {\n CmsModelFieldToAstConverterFromPlugins,\n CmsModelToAstConverter\n} from \"~/utils/contentModelAst\";\nimport { SingletonModelManager } from \"~/modelManager\";\n\nexport interface CreateModelsCrudParams {\n getTenant: () => Tenant;\n getLocale: () => I18NLocale;\n storageOperations: HeadlessCmsStorageOperations;\n accessControl: AccessControl;\n context: CmsContext;\n getIdentity: () => SecurityIdentity;\n}\n\nexport const createModelsCrud = (params: CreateModelsCrudParams): CmsModelContext => {\n const { getTenant, getIdentity, getLocale, storageOperations, accessControl, context } = params;\n\n const listPluginModelsCache = createMemoryCache<Promise<CmsModel[]>>();\n const listFilteredModelsCache = createMemoryCache<Promise<CmsModel[]>>();\n const listDatabaseModelsCache = createMemoryCache<Promise<CmsModel[]>>();\n const clearModelsCache = (): void => {\n listDatabaseModelsCache.clear();\n listFilteredModelsCache.clear();\n };\n\n const managers = new Map<string, CmsModelManager>();\n const updateManager = async <T extends CmsEntryValues = CmsEntryValues>(\n context: CmsContext,\n model: CmsModel\n ): Promise<CmsModelManager<T>> => {\n const manager = await contentModelManagerFactory<T>(context, model);\n managers.set(model.modelId, manager);\n return manager;\n };\n\n const fieldTypePlugins = context.plugins.byType<CmsModelFieldToGraphQLPlugin>(\n \"cms-model-field-to-graphql\"\n );\n\n const getModelToAstConverter = () => {\n return new CmsModelToAstConverter(\n new CmsModelFieldToAstConverterFromPlugins(fieldTypePlugins)\n );\n };\n\n const listPluginModels = async (tenant: string, locale: string): Promise<CmsModel[]> => {\n const modelPlugins = context.plugins.byType<CmsModelPlugin>(CmsModelPlugin.type);\n const cacheKey = createCacheKey({\n tenant,\n locale,\n models: modelPlugins\n .map(({ contentModel: model }) => {\n return `${model.modelId}#${model.pluralApiName}#${model.singularApiName}#${\n model.savedOn || \"unknown\"\n }`;\n })\n .join(\"/\"),\n identity: context.security.isAuthorizationEnabled() ? getIdentity()?.id : undefined\n });\n return listPluginModelsCache.getOrSet(cacheKey, async () => {\n const models = modelPlugins\n /**\n * We need to filter out models that are not for this tenant or locale.\n * If it does not have tenant or locale define, it is for every locale and tenant\n */\n .filter(plugin => {\n const { tenant: modelTenant, locale: modelLocale } = plugin.contentModel;\n if (modelTenant && modelTenant !== tenant) {\n return false;\n } else if (modelLocale && modelLocale !== locale) {\n return false;\n }\n return true;\n })\n .map(plugin => {\n return {\n ...plugin.contentModel,\n tags: ensureTypeTag(plugin.contentModel),\n tenant,\n locale,\n webinyVersion: context.WEBINY_VERSION\n };\n }) as unknown as CmsModel[];\n\n return filterAsync(models, async model => {\n return accessControl.canAccessModel({ model });\n });\n });\n };\n\n const getModelFromCache = async (modelId: string) => {\n const models = await listModels();\n const model = models.find(m => m.modelId === modelId);\n if (!model) {\n throw new NotFoundError(`Content model \"${modelId}\" was not found!`);\n }\n\n return {\n ...model,\n tags: ensureTypeTag(model),\n tenant: model.tenant || getTenant().id,\n locale: model.locale || getLocale().code\n };\n };\n\n /**\n * The list models cache is a key -> Promise pair so it the listModels() can be called multiple times but executed only once.\n *\n * We always fetch the plugins and database models separately.\n * Then we combine them and run access filtering on them\n */\n const listModels = async () => {\n return context.benchmark.measure(\"headlessCms.crud.models.listModels\", async () => {\n /**\n * Maybe we can cache based on permissions, not the identity id?\n *\n * TODO: @adrian please check if possible.\n */\n const tenant = getTenant().id;\n const locale = getLocale().code;\n const pluginModels = await listPluginModels(tenant, locale);\n const dbCacheKey = createCacheKey({\n tenant,\n locale\n });\n const databaseModels = await listDatabaseModelsCache.getOrSet(dbCacheKey, async () => {\n return await listModelsFromDatabase(params);\n });\n\n const filteredCacheKey = createCacheKey({\n dbCacheKey: dbCacheKey.get(),\n identity: context.security.isAuthorizationEnabled() ? getIdentity()?.id : undefined\n });\n\n const filteredModels = await listFilteredModelsCache.getOrSet(\n filteredCacheKey,\n async () => {\n return filterAsync(databaseModels, async model => {\n return accessControl.canAccessModel({ model });\n });\n }\n );\n\n return filteredModels.concat(pluginModels);\n });\n };\n\n const getModel = async (modelId: string): Promise<CmsModel> => {\n return context.benchmark.measure(\"headlessCms.crud.models.getModel\", async () => {\n const model = await context.security.withoutAuthorization(async () => {\n return await getModelFromCache(modelId);\n });\n if (!model) {\n throw new NotFoundError(`Content model \"${modelId}\" was not found!`);\n }\n\n await accessControl.ensureCanAccessModel({ model });\n\n return model;\n });\n };\n\n const getEntryManager: CmsModelContext[\"getEntryManager\"] = async <\n T extends CmsEntryValues = CmsEntryValues\n >(\n target: string | Pick<CmsModel, \"modelId\">\n ): Promise<CmsModelManager<T>> => {\n const modelId = typeof target === \"string\" ? target : target.modelId;\n if (managers.has(modelId)) {\n return managers.get(modelId) as CmsModelManager<T>;\n }\n const model = await getModelFromCache(modelId);\n return await updateManager<T>(context, model);\n };\n\n const getSingletonEntryManager = async <T extends CmsEntryValues = CmsEntryValues>(\n input: CmsModel | string\n ) => {\n const model = typeof input === \"string\" ? await getModel(input) : input;\n\n const manager = await getEntryManager<T>(model);\n\n return SingletonModelManager.create<T>(manager);\n };\n\n /**\n * Create\n */\n const onModelBeforeCreate =\n createTopic<OnModelBeforeCreateTopicParams>(\"cms.onModelBeforeCreate\");\n const onModelAfterCreate = createTopic<OnModelAfterCreateTopicParams>(\"cms.onModelAfterCreate\");\n const onModelCreateError = createTopic<OnModelCreateErrorTopicParams>(\"cms.onModelCreateError\");\n /**\n * Create from / clone\n */\n const onModelBeforeCreateFrom = createTopic<OnModelBeforeCreateFromTopicParams>(\n \"cms.onModelBeforeCreateFrom\"\n );\n const onModelAfterCreateFrom = createTopic<OnModelAfterCreateFromTopicParams>(\n \"cms.onModelAfterCreateFrom\"\n );\n const onModelCreateFromError = createTopic<OnModelCreateFromErrorParams>(\n \"cms.onModelCreateFromError\"\n );\n /**\n * Update\n */\n const onModelBeforeUpdate =\n createTopic<OnModelBeforeUpdateTopicParams>(\"cms.onModelBeforeUpdate\");\n const onModelAfterUpdate = createTopic<OnModelAfterUpdateTopicParams>(\"cms.onModelAfterUpdate\");\n const onModelUpdateError = createTopic<OnModelUpdateErrorTopicParams>(\"cms.onModelUpdateError\");\n /**\n * Delete\n */\n const onModelBeforeDelete =\n createTopic<OnModelBeforeDeleteTopicParams>(\"cms.onModelBeforeDelete\");\n const onModelAfterDelete = createTopic<OnModelAfterDeleteTopicParams>(\"cms.onModelAfterDelete\");\n const onModelDeleteError = createTopic<OnModelDeleteErrorTopicParams>(\"cms.onModelDeleteError\");\n /**\n * Initialize\n */\n const onModelInitialize = createTopic<OnModelInitializeParams>(\"cms.onModelInitialize\");\n /**\n * We need to assign some default behaviors.\n */\n assignModelBeforeCreate({\n onModelBeforeCreate,\n onModelBeforeCreateFrom,\n context,\n storageOperations\n });\n assignModelBeforeUpdate({\n onModelBeforeUpdate,\n context\n });\n assignModelBeforeDelete({\n onModelBeforeDelete,\n context\n });\n\n /**\n * CRUD methods\n */\n const createModel: CmsModelContext[\"createModel\"] = async input => {\n await accessControl.ensureCanAccessModel({ rwd: \"w\" });\n\n const result = await createModelCreateValidation().safeParseAsync(input);\n if (!result.success) {\n throw createZodError(result.error);\n }\n /**\n * We need to extract the defaultFields because it is not for the CmsModel object.\n */\n const { defaultFields, ...data } = removeUndefinedValues(result.data);\n if (defaultFields) {\n assignModelDefaultFields(data);\n }\n\n const group = await context.cms.getGroup(data.group);\n\n const identity = getIdentity();\n const model: CmsModel = {\n ...data,\n modelId: data.modelId || \"\",\n singularApiName: data.singularApiName,\n pluralApiName: data.pluralApiName,\n titleFieldId: \"id\",\n descriptionFieldId: null,\n imageFieldId: null,\n description: data.description || \"\",\n locale: getLocale().code,\n tenant: getTenant().id,\n group: {\n id: group.id,\n name: group.name\n },\n createdBy: {\n id: identity.id,\n displayName: identity.displayName,\n type: identity.type\n },\n createdOn: new Date().toISOString(),\n savedOn: new Date().toISOString(),\n lockedFields: [],\n webinyVersion: context.WEBINY_VERSION\n };\n\n model.tags = ensureTypeTag(model);\n\n await accessControl.ensureCanAccessModel({ model, rwd: \"w\" });\n\n try {\n await onModelBeforeCreate.publish({\n input: data,\n model\n });\n\n const createdModel = await storageOperations.models.create({\n model\n });\n\n clearModelsCache();\n\n await updateManager(context, model);\n\n await onModelAfterCreate.publish({\n input: data,\n model: createdModel\n });\n\n return createdModel;\n } catch (ex) {\n await onModelCreateError.publish({\n input: data,\n model,\n error: ex\n });\n throw ex;\n }\n };\n const updateModel: CmsModelContext[\"updateModel\"] = async (modelId, input) => {\n await accessControl.ensureCanAccessModel({ rwd: \"w\" });\n\n // Get a model record; this will also perform ownership validation.\n const original = await getModel(modelId);\n\n const result = await createModelUpdateValidation().safeParseAsync(input);\n if (!result.success) {\n throw createZodError(result.error);\n }\n\n const data = removeUndefinedValues(result.data);\n\n if (Object.keys(data).length === 0) {\n /**\n * We need to return the original if nothing is to be updated.\n */\n return original;\n }\n let group: CmsModelGroup = {\n id: original.group.id,\n name: original.group.name\n };\n const groupId = data.group;\n if (groupId) {\n const groupData = await context.cms.getGroup(groupId);\n group = {\n id: groupData.id,\n name: groupData.name\n };\n }\n const model: CmsModel = {\n ...original,\n ...data,\n titleFieldId:\n data.titleFieldId === undefined\n ? original.titleFieldId\n : (data.titleFieldId as string),\n descriptionFieldId:\n data.descriptionFieldId === undefined\n ? original.descriptionFieldId\n : data.descriptionFieldId,\n imageFieldId:\n data.imageFieldId === undefined ? original.imageFieldId : data.imageFieldId,\n group,\n description: data.description || original.description,\n tenant: original.tenant || getTenant().id,\n locale: original.locale || getLocale().code,\n webinyVersion: context.WEBINY_VERSION,\n savedOn: new Date().toISOString()\n };\n\n await accessControl.ensureCanAccessModel({ model, rwd: \"w\" });\n\n model.tags = ensureTypeTag(model);\n\n try {\n await onModelBeforeUpdate.publish({\n input: data,\n original,\n model\n });\n\n const resultModel = await storageOperations.models.update({\n model\n });\n\n await updateManager(context, resultModel);\n\n await onModelAfterUpdate.publish({\n input: data,\n original,\n model: resultModel\n });\n\n return resultModel;\n } catch (ex) {\n await onModelUpdateError.publish({\n input: data,\n model,\n original,\n error: ex\n });\n\n throw ex;\n }\n };\n const updateModelDirect: CmsModelContext[\"updateModelDirect\"] = async params => {\n const { model: initialModel, original } = params;\n\n const model: CmsModel = {\n ...initialModel,\n tenant: initialModel.tenant || getTenant().id,\n locale: initialModel.locale || getLocale().code,\n webinyVersion: context.WEBINY_VERSION\n };\n\n try {\n await onModelBeforeUpdate.publish({\n input: {} as CmsModelUpdateInput,\n original,\n model\n });\n\n const resultModel = await storageOperations.models.update({\n model\n });\n\n await updateManager(context, resultModel);\n\n clearModelsCache();\n\n await onModelAfterUpdate.publish({\n input: {} as CmsModelUpdateInput,\n original,\n model: resultModel\n });\n\n return resultModel;\n } catch (ex) {\n await onModelUpdateError.publish({\n input: {} as CmsModelUpdateInput,\n original,\n model,\n error: ex\n });\n throw ex;\n }\n };\n const createModelFrom: CmsModelContext[\"createModelFrom\"] = async (modelId, input) => {\n await accessControl.ensureCanAccessModel({ rwd: \"w\" });\n\n /**\n * Get a model record; this will also perform ownership validation.\n */\n const original = await getModel(modelId);\n\n const result = await createModelCreateFromValidation().safeParseAsync({\n ...input,\n description: input.description || original.description\n });\n if (!result.success) {\n throw createZodError(result.error);\n }\n\n const data = removeUndefinedValues(result.data);\n\n const locale = await context.i18n.getLocale(data.locale || original.locale);\n if (!locale) {\n throw new NotFoundError(`There is no locale \"${data.locale}\".`);\n }\n /**\n * Use storage operations directly because we cannot get group from different locale via context methods.\n */\n const group = await context.cms.storageOperations.groups.get({\n id: data.group,\n tenant: original.tenant,\n locale: locale.code\n });\n if (!group) {\n throw new NotFoundError(`There is no group \"${data.group}\".`);\n }\n\n const identity = getIdentity();\n const model: CmsModel = {\n ...original,\n singularApiName: data.singularApiName,\n pluralApiName: data.pluralApiName,\n locale: locale.code,\n group: {\n id: group.id,\n name: group.name\n },\n icon: data.icon,\n name: data.name,\n modelId: data.modelId || \"\",\n description: data.description || \"\",\n createdBy: {\n id: identity.id,\n displayName: identity.displayName,\n type: identity.type\n },\n createdOn: new Date().toISOString(),\n savedOn: new Date().toISOString(),\n lockedFields: [],\n webinyVersion: context.WEBINY_VERSION\n };\n\n await accessControl.ensureCanAccessModel({ model, rwd: \"w\" });\n\n try {\n await onModelBeforeCreateFrom.publish({\n input: data,\n model,\n original\n });\n\n const createdModel = await storageOperations.models.create({\n model\n });\n\n clearModelsCache();\n\n await updateManager(context, model);\n\n await onModelAfterCreateFrom.publish({\n input: data,\n original,\n model: createdModel\n });\n\n return createdModel;\n } catch (ex) {\n await onModelCreateFromError.publish({\n input: data,\n original,\n model,\n error: ex\n });\n throw ex;\n }\n };\n const deleteModel: CmsModelContext[\"deleteModel\"] = async modelId => {\n await accessControl.ensureCanAccessModel({ rwd: \"d\" });\n\n const model = await getModel(modelId);\n\n await accessControl.ensureCanAccessModel({ model, rwd: \"d\" });\n\n try {\n await onModelBeforeDelete.publish({\n model\n });\n\n try {\n await storageOperations.models.delete({\n model\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete the content model\",\n ex.code || \"CONTENT_MODEL_DELETE_ERROR\",\n {\n error: ex,\n modelId: model.modelId\n }\n );\n }\n\n clearModelsCache();\n\n await onModelAfterDelete.publish({\n model\n });\n\n managers.delete(model.modelId);\n } catch (ex) {\n await onModelDeleteError.publish({\n model,\n error: ex\n });\n throw ex;\n }\n };\n const initializeModel: CmsModelContext[\"initializeModel\"] = async (modelId, data) => {\n /**\n * We require that users have write permissions to initialize models.\n * Maybe introduce another permission for it?\n */\n const model = await getModel(modelId);\n\n await accessControl.ensureCanAccessModel({ model, rwd: \"w\" });\n\n await onModelInitialize.publish({ model, data });\n\n return true;\n };\n return {\n onModelBeforeCreate,\n onModelAfterCreate,\n onModelCreateError,\n onModelBeforeCreateFrom,\n onModelAfterCreateFrom,\n onModelCreateFromError,\n onModelBeforeUpdate,\n onModelAfterUpdate,\n onModelUpdateError,\n onModelBeforeDelete,\n onModelAfterDelete,\n onModelDeleteError,\n onModelInitialize,\n clearModelsCache,\n getModel,\n getModelToAstConverter,\n listModels,\n async createModel(input) {\n return context.benchmark.measure(\"headlessCms.crud.models.createModel\", async () => {\n return createModel(input);\n });\n },\n /**\n * Method does not check for permissions or ownership.\n * @internal\n */\n async updateModelDirect(params) {\n return context.benchmark.measure(\n \"headlessCms.crud.models.updateModelDirect\",\n async () => {\n return updateModelDirect(params);\n }\n );\n },\n async createModelFrom(modelId, userInput) {\n return context.benchmark.measure(\n \"headlessCms.crud.models.createModelFrom\",\n async () => {\n return createModelFrom(modelId, userInput);\n }\n );\n },\n async updateModel(modelId, input) {\n return context.benchmark.measure(\"headlessCms.crud.models.updateModel\", async () => {\n return updateModel(modelId, input);\n });\n },\n async deleteModel(modelId) {\n return context.benchmark.measure(\"headlessCms.crud.models.deleteModel\", async () => {\n return deleteModel(modelId);\n });\n },\n async initializeModel(modelId, data) {\n return context.benchmark.measure(\n \"headlessCms.crud.models.initializeModel\",\n async () => {\n return initializeModel(modelId, data);\n }\n );\n },\n getEntryManager,\n getEntryManagers: () => managers,\n getSingletonEntryManager\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { CmsGroup, CmsModel } from "../../types";
|
|
2
2
|
import { SanitizedCmsGroup, SanitizedCmsModel } from "../types";
|
|
3
3
|
export declare const sanitizeGroup: (group: CmsGroup) => SanitizedCmsGroup;
|
|
4
|
-
export declare const sanitizeModel: (group: Pick<CmsGroup, "id"
|
|
4
|
+
export declare const sanitizeModel: (group: Pick<CmsGroup, "id">, model: CmsModel) => SanitizedCmsModel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["sanitizeGroup","group","id","name","slug","description","icon","exports","sanitizeModel","model","modelId","singularApiName","pluralApiName","fields","layout","titleFieldId","descriptionFieldId","imageFieldId","tags"],"sources":["sanitize.ts"],"sourcesContent":["import { CmsGroup, CmsModel } from \"~/types\";\nimport { SanitizedCmsGroup, SanitizedCmsModel } from \"~/export/types\";\n\nexport const sanitizeGroup = (group: CmsGroup): SanitizedCmsGroup => {\n return {\n id: group.id,\n name: group.name,\n slug: group.slug,\n description: group.description,\n icon: group.icon\n };\n};\n\nexport const sanitizeModel = (
|
|
1
|
+
{"version":3,"names":["sanitizeGroup","group","id","name","slug","description","icon","exports","sanitizeModel","model","modelId","singularApiName","pluralApiName","fields","layout","titleFieldId","descriptionFieldId","imageFieldId","tags"],"sources":["sanitize.ts"],"sourcesContent":["import { CmsGroup, CmsModel } from \"~/types\";\nimport { SanitizedCmsGroup, SanitizedCmsModel } from \"~/export/types\";\n\nexport const sanitizeGroup = (group: CmsGroup): SanitizedCmsGroup => {\n return {\n id: group.id,\n name: group.name,\n slug: group.slug,\n description: group.description,\n icon: group.icon\n };\n};\n\nexport const sanitizeModel = (group: Pick<CmsGroup, \"id\">, model: CmsModel): SanitizedCmsModel => {\n return {\n modelId: model.modelId,\n name: model.name,\n group: group.id,\n icon: model.icon,\n description: model.description,\n singularApiName: model.singularApiName,\n pluralApiName: model.pluralApiName,\n fields: model.fields,\n layout: model.layout,\n titleFieldId: model.titleFieldId,\n descriptionFieldId: model.descriptionFieldId,\n imageFieldId: model.imageFieldId,\n tags: model.tags || []\n };\n};\n"],"mappings":";;;;;;AAGO,MAAMA,aAAa,GAAIC,KAAe,IAAwB;EACjE,OAAO;IACHC,EAAE,EAAED,KAAK,CAACC,EAAE;IACZC,IAAI,EAAEF,KAAK,CAACE,IAAI;IAChBC,IAAI,EAAEH,KAAK,CAACG,IAAI;IAChBC,WAAW,EAAEJ,KAAK,CAACI,WAAW;IAC9BC,IAAI,EAAEL,KAAK,CAACK;EAChB,CAAC;AACL,CAAC;AAACC,OAAA,CAAAP,aAAA,GAAAA,aAAA;AAEK,MAAMQ,aAAa,GAAGA,CAACP,KAA2B,EAAEQ,KAAe,KAAwB;EAC9F,OAAO;IACHC,OAAO,EAAED,KAAK,CAACC,OAAO;IACtBP,IAAI,EAAEM,KAAK,CAACN,IAAI;IAChBF,KAAK,EAAEA,KAAK,CAACC,EAAE;IACfI,IAAI,EAAEG,KAAK,CAACH,IAAI;IAChBD,WAAW,EAAEI,KAAK,CAACJ,WAAW;IAC9BM,eAAe,EAAEF,KAAK,CAACE,eAAe;IACtCC,aAAa,EAAEH,KAAK,CAACG,aAAa;IAClCC,MAAM,EAAEJ,KAAK,CAACI,MAAM;IACpBC,MAAM,EAAEL,KAAK,CAACK,MAAM;IACpBC,YAAY,EAAEN,KAAK,CAACM,YAAY;IAChCC,kBAAkB,EAAEP,KAAK,CAACO,kBAAkB;IAC5CC,YAAY,EAAER,KAAK,CAACQ,YAAY;IAChCC,IAAI,EAAET,KAAK,CAACS,IAAI,IAAI;EACxB,CAAC;AACL,CAAC;AAACX,OAAA,CAAAC,aAAA,GAAAA,aAAA","ignoreList":[]}
|
package/export/types.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export declare enum CmsImportAction {
|
|
|
17
17
|
export interface HeadlessCmsExportStructureParams {
|
|
18
18
|
models?: string[];
|
|
19
19
|
}
|
|
20
|
-
export
|
|
20
|
+
export type SanitizedCmsGroup = Pick<CmsGroup, "id" | "name" | "slug" | "description" | "icon">;
|
|
21
21
|
export interface SanitizedCmsModel extends Pick<CmsModel, "modelId" | "fields" | "titleFieldId" | "descriptionFieldId" | "imageFieldId" | "layout" | "icon" | "singularApiName" | "pluralApiName" | "name" | "description" | "tags"> {
|
|
22
22
|
group: string;
|
|
23
23
|
}
|
|
@@ -91,8 +91,8 @@ export interface InvalidCmsModelResult {
|
|
|
91
91
|
action: CmsImportAction;
|
|
92
92
|
error: CmsImportError;
|
|
93
93
|
}
|
|
94
|
-
export
|
|
95
|
-
export
|
|
94
|
+
export type ValidatedCmsGroupResult = ValidCmsGroupResult | InvalidCmsGroupResult;
|
|
95
|
+
export type ValidatedCmsModelResult = ValidCmsModelResult | InvalidCmsModelResult;
|
|
96
96
|
export interface HeadlessCmsImportValidateResponse {
|
|
97
97
|
groups: ValidatedCmsGroupResult[];
|
|
98
98
|
models: ValidatedCmsModelResult[];
|