@webiny/api-headless-cms 5.24.0 → 5.25.0-beta.2
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/content/contextSetup.js.map +1 -0
- package/content/graphQLHandlerFactory.js +4 -0
- package/content/graphQLHandlerFactory.js.map +1 -0
- package/content/parameterPlugins.js.map +1 -0
- package/content/plugins/CmsGroupPlugin.js.map +1 -0
- package/content/plugins/CmsModelPlugin.js.map +1 -0
- package/content/plugins/CmsParametersPlugin.d.ts +1 -1
- package/content/plugins/CmsParametersPlugin.js.map +1 -0
- package/content/plugins/buildSchemaPlugins.js.map +1 -0
- package/content/plugins/crud/contentEntry/afterDelete.js +2 -1
- package/content/plugins/crud/contentEntry/afterDelete.js.map +1 -0
- package/content/plugins/crud/contentEntry/beforeCreate.js.map +1 -0
- package/content/plugins/crud/contentEntry/beforeUpdate.js.map +1 -0
- package/content/plugins/crud/contentEntry/entryDataValidation.d.ts +2 -2
- package/content/plugins/crud/contentEntry/entryDataValidation.js +2 -3
- package/content/plugins/crud/contentEntry/entryDataValidation.js.map +1 -0
- package/content/plugins/crud/contentEntry/markLockedFields.js +1 -1
- package/content/plugins/crud/contentEntry/markLockedFields.js.map +1 -0
- package/content/plugins/crud/contentEntry/referenceFieldsMapping.js +7 -3
- package/content/plugins/crud/contentEntry/referenceFieldsMapping.js.map +1 -0
- package/content/plugins/crud/contentEntry.crud.d.ts +2 -2
- package/content/plugins/crud/contentEntry.crud.js +24 -13
- package/content/plugins/crud/contentEntry.crud.js.map +1 -0
- package/content/plugins/crud/contentModel/afterCreate.js.map +1 -0
- package/content/plugins/crud/contentModel/afterDelete.js.map +1 -0
- package/content/plugins/crud/contentModel/afterUpdate.js.map +1 -0
- package/content/plugins/crud/contentModel/beforeCreate.d.ts +2 -2
- package/content/plugins/crud/contentModel/beforeCreate.js +1 -1
- package/content/plugins/crud/contentModel/beforeCreate.js.map +1 -0
- package/content/plugins/crud/contentModel/beforeDelete.js.map +1 -0
- package/content/plugins/crud/contentModel/beforeUpdate.js +12 -4
- package/content/plugins/crud/contentModel/beforeUpdate.js.map +1 -0
- package/content/plugins/crud/contentModel/contentModelManagerFactory.js.map +1 -0
- package/content/plugins/crud/contentModel/createFieldModels.js.map +1 -0
- package/content/plugins/crud/contentModel/idValidation.js.map +1 -0
- package/content/plugins/crud/contentModel/models.js.map +1 -0
- package/content/plugins/crud/contentModel/validateLayout.js.map +1 -0
- package/content/plugins/crud/contentModel.crud.d.ts +2 -2
- package/content/plugins/crud/contentModel.crud.js +2 -2
- package/content/plugins/crud/contentModel.crud.js.map +1 -0
- package/content/plugins/crud/contentModelGroup/beforeCreate.js.map +1 -0
- package/content/plugins/crud/contentModelGroup/beforeDelete.js.map +1 -0
- package/content/plugins/crud/contentModelGroup/beforeUpdate.js.map +1 -0
- package/content/plugins/crud/contentModelGroup.crud.d.ts +2 -2
- package/content/plugins/crud/contentModelGroup.crud.js.map +1 -0
- package/content/plugins/crud/index.d.ts +2 -2
- package/content/plugins/crud/index.js.map +1 -0
- package/content/plugins/graphqlFields/boolean.js +2 -6
- package/content/plugins/graphqlFields/boolean.js.map +1 -0
- package/content/plugins/graphqlFields/datetime.js +2 -2
- package/content/plugins/graphqlFields/datetime.js.map +1 -0
- package/content/plugins/graphqlFields/file.js +2 -6
- package/content/plugins/graphqlFields/file.js.map +1 -0
- package/content/plugins/graphqlFields/helpers.d.ts +6 -0
- package/content/plugins/graphqlFields/helpers.js +49 -0
- package/content/plugins/graphqlFields/helpers.js.map +1 -0
- package/content/plugins/graphqlFields/index.js.map +1 -0
- package/content/plugins/graphqlFields/longText.js +2 -6
- package/content/plugins/graphqlFields/longText.js.map +1 -0
- package/content/plugins/graphqlFields/number.js +2 -6
- package/content/plugins/graphqlFields/number.js.map +1 -0
- package/content/plugins/graphqlFields/object.js +11 -5
- package/content/plugins/graphqlFields/object.js.map +1 -0
- package/content/plugins/graphqlFields/ref.js +26 -13
- package/content/plugins/graphqlFields/ref.js.map +1 -0
- package/content/plugins/graphqlFields/richText.js +2 -6
- package/content/plugins/graphqlFields/richText.js.map +1 -0
- package/content/plugins/graphqlFields/text.js +2 -6
- package/content/plugins/graphqlFields/text.js.map +1 -0
- package/content/plugins/internalSecurity/InternalAuthenticationPlugin.js.map +1 -0
- package/content/plugins/internalSecurity/InternalAuthorizationPlugin.js.map +1 -0
- package/content/plugins/modelManager/DefaultCmsModelManager.js.map +1 -0
- package/content/plugins/modelManager/index.js.map +1 -0
- package/content/plugins/schema/baseSchema.js +1 -0
- package/content/plugins/schema/baseSchema.js.map +1 -0
- package/content/plugins/schema/contentEntries.js +12 -5
- package/content/plugins/schema/contentEntries.js.map +1 -0
- package/content/plugins/schema/contentModelGroups.js +1 -2
- package/content/plugins/schema/contentModelGroups.js.map +1 -0
- package/content/plugins/schema/contentModels.js +2 -3
- package/content/plugins/schema/contentModels.js.map +1 -0
- package/content/plugins/schema/createFieldResolvers.js.map +1 -0
- package/content/plugins/schema/createManageResolvers.js.map +1 -0
- package/content/plugins/schema/createManageSDL.js.map +1 -0
- package/content/plugins/schema/createPreviewResolvers.js.map +1 -0
- package/content/plugins/schema/createReadResolvers.js.map +1 -0
- package/content/plugins/schema/createReadSDL.js.map +1 -0
- package/content/plugins/schema/resolvers/commonFieldResolvers.d.ts +1 -1
- package/content/plugins/schema/resolvers/commonFieldResolvers.js.map +1 -0
- package/content/plugins/schema/resolvers/manage/resolveCreate.js.map +1 -0
- package/content/plugins/schema/resolvers/manage/resolveCreateFrom.js.map +1 -0
- package/content/plugins/schema/resolvers/manage/resolveDelete.js.map +1 -0
- package/content/plugins/schema/resolvers/manage/resolveGet.js.map +1 -0
- package/content/plugins/schema/resolvers/manage/resolveGetByIds.js.map +1 -0
- package/content/plugins/schema/resolvers/manage/resolveGetRevisions.js.map +1 -0
- package/content/plugins/schema/resolvers/manage/resolveList.js.map +1 -0
- package/content/plugins/schema/resolvers/manage/resolvePublish.js.map +1 -0
- package/content/plugins/schema/resolvers/manage/resolveRepublish.js.map +1 -0
- package/content/plugins/schema/resolvers/manage/resolveRequestChanges.js.map +1 -0
- package/content/plugins/schema/resolvers/manage/resolveRequestReview.js.map +1 -0
- package/content/plugins/schema/resolvers/manage/resolveUnpublish.js.map +1 -0
- package/content/plugins/schema/resolvers/manage/resolveUpdate.js.map +1 -0
- package/content/plugins/schema/resolvers/preview/resolveGet.js.map +1 -0
- package/content/plugins/schema/resolvers/preview/resolveList.js.map +1 -0
- package/content/plugins/schema/resolvers/read/resolveGet.js.map +1 -0
- package/content/plugins/schema/resolvers/read/resolveList.js.map +1 -0
- package/content/plugins/schema/schemaPlugins.js.map +1 -0
- package/content/plugins/storage/StorageTransformPlugin.js.map +1 -0
- package/content/plugins/storage/default.js.map +1 -0
- package/content/plugins/storage/object.js +6 -2
- package/content/plugins/storage/object.js.map +1 -0
- package/content/plugins/utils/createTypeName.js.map +1 -0
- package/content/plugins/utils/entryStorage.d.ts +2 -2
- package/content/plugins/utils/entryStorage.js +0 -4
- package/content/plugins/utils/entryStorage.js.map +1 -0
- package/content/plugins/utils/getEntryTitle.js +1 -1
- package/content/plugins/utils/getEntryTitle.js.map +1 -0
- package/content/plugins/utils/getSchemaFromFieldPlugins.js +8 -3
- package/content/plugins/utils/getSchemaFromFieldPlugins.js.map +1 -0
- package/content/plugins/utils/pluralizedTypeName.js.map +1 -0
- package/content/plugins/utils/renderFields.js.map +1 -0
- package/content/plugins/utils/renderGetFilterFields.js +5 -0
- package/content/plugins/utils/renderGetFilterFields.js.map +1 -0
- package/content/plugins/utils/renderInputFields.d.ts +1 -1
- package/content/plugins/utils/renderInputFields.js.map +1 -0
- package/content/plugins/utils/renderListFilterFields.js.map +1 -0
- package/content/plugins/utils/renderSortEnum.js.map +1 -0
- package/content/plugins/validators/dateGte.js +1 -1
- package/content/plugins/validators/dateGte.js.map +1 -0
- package/content/plugins/validators/dateLte.js +1 -1
- package/content/plugins/validators/dateLte.js.map +1 -0
- package/content/plugins/validators/gte.js +3 -1
- package/content/plugins/validators/gte.js.map +1 -0
- package/content/plugins/validators/in.js +3 -1
- package/content/plugins/validators/in.js.map +1 -0
- package/content/plugins/validators/index.js.map +1 -0
- package/content/plugins/validators/lte.js +3 -1
- package/content/plugins/validators/lte.js.map +1 -0
- package/content/plugins/validators/maxLength.js +3 -1
- package/content/plugins/validators/maxLength.js.map +1 -0
- package/content/plugins/validators/minLength.js +3 -1
- package/content/plugins/validators/minLength.js.map +1 -0
- package/content/plugins/validators/pattern.js +2 -2
- package/content/plugins/validators/pattern.js.map +1 -0
- package/content/plugins/validators/patternPlugins/email.js.map +1 -0
- package/content/plugins/validators/patternPlugins/index.js.map +1 -0
- package/content/plugins/validators/patternPlugins/lowerCase.js.map +1 -0
- package/content/plugins/validators/patternPlugins/lowerCaseSpace.js.map +1 -0
- package/content/plugins/validators/patternPlugins/upperCase.js.map +1 -0
- package/content/plugins/validators/patternPlugins/upperCaseSpace.js.map +1 -0
- package/content/plugins/validators/patternPlugins/url.js.map +1 -0
- package/content/plugins/validators/required.js.map +1 -0
- package/content/plugins/validators/timeGte.js +3 -1
- package/content/plugins/validators/timeGte.js.map +1 -0
- package/content/plugins/validators/timeLte.js +3 -1
- package/content/plugins/validators/timeLte.js.map +1 -0
- package/content/plugins/validators/unique.js +1 -0
- package/content/plugins/validators/unique.js.map +1 -0
- package/index.d.ts +3 -3
- package/index.js.map +1 -0
- package/migrateCMSPermissions.js.map +1 -0
- package/package.json +26 -26
- package/plugins/context.js +8 -3
- package/plugins/context.js.map +1 -0
- package/plugins/crud/index.d.ts +2 -2
- package/plugins/crud/index.js.map +1 -0
- package/plugins/crud/settings.crud.d.ts +2 -2
- package/plugins/crud/settings.crud.js.map +1 -0
- package/plugins/crud/system.crud.d.ts +3 -2
- package/plugins/crud/system.crud.js +2 -2
- package/plugins/crud/system.crud.js.map +1 -0
- package/plugins/graphql/system.d.ts +1 -1
- package/plugins/graphql/system.js.map +1 -0
- package/plugins/graphql.js +7 -0
- package/plugins/graphql.js.map +1 -0
- package/plugins/upgrades/index.js.map +1 -0
- package/plugins/upgrades/v5.5.0/helpers.js.map +1 -0
- package/plugins/upgrades/v5.5.0/index.js +1 -0
- package/plugins/upgrades/v5.5.0/index.js.map +1 -0
- package/transformers.js.map +1 -0
- package/types.d.ts +58 -28
- package/types.js +6 -0
- package/types.js.map +1 -0
- package/utils.d.ts +12 -14
- package/utils.js.map +1 -0
- package/content/plugins/graphqlFields/requiredField.d.ts +0 -2
- package/content/plugins/graphqlFields/requiredField.js +0 -24
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["renderFields.ts"],"names":["renderFields","model","type","fieldTypePlugins","fields","map","field","renderField","filter","Boolean","plugin","defs","createTypeField"],"mappings":";;;;;;;AAkBO,MAAMA,YAA0B,GAAG,CAAC;AACvCC,EAAAA,KADuC;AAEvCC,EAAAA,IAFuC;AAGvCC,EAAAA;AAHuC,CAAD,KAIT;AAC7B,SAAOF,KAAK,CAACG,MAAN,CACFC,GADE,CACEC,KAAK,IAAIC,WAAW,CAAC;AAAEN,IAAAA,KAAF;AAASC,IAAAA,IAAT;AAAeI,IAAAA,KAAf;AAAsBH,IAAAA;AAAtB,GAAD,CADtB,EAEFK,MAFE,CAEKC,OAFL,CAAP;AAGH,CARM;;;;AAcA,MAAMF,WAAW,GAAG,CAAC;AACxBN,EAAAA,KADwB;AAExBC,EAAAA,IAFwB;AAGxBI,EAAAA,KAHwB;AAIxBH,EAAAA;AAJwB,CAAD,KAK8B;AACrD,QAAMO,MAAoC,GAAGP,gBAAgB,CAACG,KAAK,CAACJ,IAAP,CAA7D;;AACA,MAAI,CAACQ,MAAL,EAAa;AACT;AACA,WAAO,IAAP;AACH;;AACD,QAAMC,IAAI,GAAGD,MAAM,CAACR,IAAD,CAAN,CAAaU,eAAb,CAA6B;AACtCX,IAAAA,KADsC;AAEtCK,IAAAA,KAFsC;AAGtCH,IAAAA;AAHsC,GAA7B,CAAb;;AAMA,MAAI,CAACQ,IAAL,EAAW;AACP,WAAO,IAAP;AACH,GAFD,MAEO,IAAI,OAAOA,IAAP,KAAgB,QAApB,EAA8B;AACjC,WAAO;AACHP,MAAAA,MAAM,EAAEO;AADL,KAAP;AAGH;;AAED,SAAOA,IAAP;AACH,CA1BM","sourcesContent":["import {\n ApiEndpoint,\n CmsFieldTypePlugins,\n CmsModel,\n CmsModelField,\n CmsModelFieldDefinition,\n CmsModelFieldToGraphQLPlugin\n} from \"~/types\";\n\ninterface RenderFieldsParams {\n model: CmsModel;\n type: ApiEndpoint;\n fieldTypePlugins: CmsFieldTypePlugins;\n}\ninterface RenderFields {\n (params: RenderFieldsParams): CmsModelFieldDefinition[];\n}\n\nexport const renderFields: RenderFields = ({\n model,\n type,\n fieldTypePlugins\n}): CmsModelFieldDefinition[] => {\n return model.fields\n .map(field => renderField({ model, type, field, fieldTypePlugins }))\n .filter(Boolean) as CmsModelFieldDefinition[];\n};\n\ninterface RenderFieldParams extends RenderFieldsParams {\n field: CmsModelField;\n}\n\nexport const renderField = ({\n model,\n type,\n field,\n fieldTypePlugins\n}: RenderFieldParams): CmsModelFieldDefinition | null => {\n const plugin: CmsModelFieldToGraphQLPlugin = fieldTypePlugins[field.type];\n if (!plugin) {\n // Let's not render the field if it does not exist in the field plugins.\n return null;\n }\n const defs = plugin[type].createTypeField({\n model,\n field,\n fieldTypePlugins\n });\n\n if (!defs) {\n return null;\n } else if (typeof defs === \"string\") {\n return {\n fields: defs\n };\n }\n\n return defs;\n};\n"]}
|
|
@@ -33,6 +33,11 @@ const renderGetFilterFields = ({
|
|
|
33
33
|
|
|
34
34
|
for (const id of fieldIds) {
|
|
35
35
|
const field = model.fields.find(item => item.fieldId === id);
|
|
36
|
+
|
|
37
|
+
if (!field) {
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
|
|
36
41
|
const createGetFilters = getCreateFilters(fieldTypePlugins, field.type);
|
|
37
42
|
|
|
38
43
|
if (typeof createGetFilters !== "function") {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["renderGetFilterFields.ts"],"names":["getCreateFilters","plugins","fieldType","read","createGetFilters","renderGetFilterFields","model","fieldTypePlugins","fieldIds","fields","filter","field","type","isSearchable","map","f","fieldId","filters","id","find","item","push","Boolean","join"],"mappings":";;;;;;;AAUA,MAAMA,gBAAgB,GAAG,CACrBC,OADqB,EAErBC,SAFqB,KAG6C;AAClE,MAAI,CAACD,OAAO,CAACC,SAAD,CAAR,IAAuB,CAACD,OAAO,CAACC,SAAD,CAAP,CAAmBC,IAAnB,CAAwBC,gBAApD,EAAsE;AAClE,WAAO,IAAP;AACH;;AACD,SAAOH,OAAO,CAACC,SAAD,CAAP,CAAmBC,IAAnB,CAAwBC,gBAA/B;AACH,CARD;;AAUO,MAAMC,qBAA4C,GAAG,CAAC;AAAEC,EAAAA,KAAF;AAASC,EAAAA;AAAT,CAAD,KAAiC;AACzF,QAAMC,QAAQ,GAAGF,KAAK,CAACG,MAAN,CACZC,MADY,CACLC,KAAK,IAAI;AACb;AACA;AACA;AACA;AACA;AACA,QAAI,CAACJ,gBAAgB,CAACI,KAAK,CAACC,IAAP,CAArB,EAAmC;AAC/B,aAAO,KAAP;AACH;;AACD,WAAOL,gBAAgB,CAACI,KAAK,CAACC,IAAP,CAAhB,CAA6BC,YAApC;AACH,GAXY,EAYZC,GAZY,CAYRC,CAAC,IAAIA,CAAC,CAACC,OAZC,CAAjB;AAcA,QAAMC,OAAiB,GAAG,CAAC,QAAD,EAAW,iBAAX,CAA1B;;AAEA,OAAK,MAAMC,EAAX,IAAiBV,QAAjB,EAA2B;AACvB,UAAMG,KAAK,GAAGL,KAAK,CAACG,MAAN,CAAaU,IAAb,CAAkBC,IAAI,IAAIA,IAAI,CAACJ,OAAL,KAAiBE,EAA3C,CAAd;;AACA,QAAI,CAACP,KAAL,EAAY;AACR;AACH;;AACD,UAAMP,gBAAgB,GAAGJ,gBAAgB,CAACO,gBAAD,EAAmBI,KAAK,CAACC,IAAzB,CAAzC;;AACA,QAAI,OAAOR,gBAAP,KAA4B,UAAhC,EAA4C;AACxC;AACH;;AACDa,IAAAA,OAAO,CAACI,IAAR,CAAajB,gBAAgB,CAAC;AAAEE,MAAAA,KAAF;AAASK,MAAAA;AAAT,KAAD,CAA7B;AACH;;AAED,SAAOM,OAAO,CAACP,MAAR,CAAeY,OAAf,EAAwBC,IAAxB,CAA6B,IAA7B,CAAP;AACH,CA9BM","sourcesContent":["import { CmsFieldTypePlugins, CmsModel, CmsModelFieldToGraphQLPlugin } from \"~/types\";\n\ninterface RenderGetFilterFieldsParams {\n model: CmsModel;\n fieldTypePlugins: CmsFieldTypePlugins;\n}\ninterface RenderGetFilterFields {\n (params: RenderGetFilterFieldsParams): string;\n}\n\nconst getCreateFilters = (\n plugins: CmsFieldTypePlugins,\n fieldType: string\n): CmsModelFieldToGraphQLPlugin[\"read\"][\"createGetFilters\"] | null => {\n if (!plugins[fieldType] || !plugins[fieldType].read.createGetFilters) {\n return null;\n }\n return plugins[fieldType].read.createGetFilters;\n};\n\nexport const renderGetFilterFields: RenderGetFilterFields = ({ model, fieldTypePlugins }) => {\n const fieldIds = model.fields\n .filter(field => {\n // Every time a client updates content model's fields, we check the type of each field. If a field plugin\n // for a particular \"field.type\" doesn't exist on the backend yet, we throw an error. But still, we also\n // want to be careful when accessing the field plugin here too. It is still possible to have a content model\n // that contains a field, for which we don't have a plugin registered on the backend. For example, user\n // could've just removed the plugin from the backend.\n if (!fieldTypePlugins[field.type]) {\n return false;\n }\n return fieldTypePlugins[field.type].isSearchable;\n })\n .map(f => f.fieldId);\n\n const filters: string[] = [\"id: ID\", \"entryId: String\"];\n\n for (const id of fieldIds) {\n const field = model.fields.find(item => item.fieldId === id);\n if (!field) {\n continue;\n }\n const createGetFilters = getCreateFilters(fieldTypePlugins, field.type);\n if (typeof createGetFilters !== \"function\") {\n continue;\n }\n filters.push(createGetFilters({ model, field }));\n }\n\n return filters.filter(Boolean).join(\"\\n\");\n};\n"]}
|
|
@@ -10,5 +10,5 @@ interface RenderInputFields {
|
|
|
10
10
|
(params: RenderInputFieldsParams): CmsModelFieldDefinition[];
|
|
11
11
|
}
|
|
12
12
|
export declare const renderInputFields: RenderInputFields;
|
|
13
|
-
export declare const renderInputField: ({ model, field, fieldTypePlugins }: RenderInputFieldParams) => CmsModelFieldDefinition;
|
|
13
|
+
export declare const renderInputField: ({ model, field, fieldTypePlugins }: RenderInputFieldParams) => CmsModelFieldDefinition | null;
|
|
14
14
|
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["renderInputFields.ts"],"names":["renderInputFields","model","fieldTypePlugins","fields","map","field","renderInputField","filter","Boolean","plugin","type","def","manage","createInputField"],"mappings":";;;;;;;AAmBO,MAAMA,iBAAoC,GAAG,CAAC;AACjDC,EAAAA,KADiD;AAEjDC,EAAAA;AAFiD,CAAD,KAGnB;AAC7B,SAAOD,KAAK,CAACE,MAAN,CACFC,GADE,CACEC,KAAK,IAAIC,gBAAgB,CAAC;AAAEL,IAAAA,KAAF;AAASI,IAAAA,KAAT;AAAgBH,IAAAA;AAAhB,GAAD,CAD3B,EAEFK,MAFE,CAEKC,OAFL,CAAP;AAGH,CAPM;;;;AASA,MAAMF,gBAAgB,GAAG,CAAC;AAC7BL,EAAAA,KAD6B;AAE7BI,EAAAA,KAF6B;AAG7BH,EAAAA;AAH6B,CAAD,KAI8B;AAC1D;AACA;AACA;AACA;AACA;AACA,QAAMO,MAAoC,GAAGP,gBAAgB,CAACG,KAAK,CAACK,IAAP,CAA7D;;AAEA,MAAI,CAACD,MAAL,EAAa;AACT;AACA,WAAO,IAAP;AACH;;AAED,QAAME,GAAG,GAAGF,MAAM,CAACG,MAAP,CAAcC,gBAAd,CAA+B;AACvCZ,IAAAA,KADuC;AAEvCI,IAAAA,KAFuC;AAGvCH,IAAAA;AAHuC,GAA/B,CAAZ;;AAKA,MAAI,OAAOS,GAAP,KAAe,QAAnB,EAA6B;AACzB,WAAO;AACHR,MAAAA,MAAM,EAAEQ;AADL,KAAP;AAGH;;AAED,SAAOA,GAAP;AACH,CA7BM","sourcesContent":["import {\n CmsFieldTypePlugins,\n CmsModel,\n CmsModelField,\n CmsModelFieldDefinition,\n CmsModelFieldToGraphQLPlugin\n} from \"~/types\";\n\ninterface RenderInputFieldsParams {\n model: CmsModel;\n fieldTypePlugins: CmsFieldTypePlugins;\n}\ninterface RenderInputFieldParams extends RenderInputFieldsParams {\n field: CmsModelField;\n}\ninterface RenderInputFields {\n (params: RenderInputFieldsParams): CmsModelFieldDefinition[];\n}\n\nexport const renderInputFields: RenderInputFields = ({\n model,\n fieldTypePlugins\n}): CmsModelFieldDefinition[] => {\n return model.fields\n .map(field => renderInputField({ model, field, fieldTypePlugins }))\n .filter(Boolean) as CmsModelFieldDefinition[];\n};\n\nexport const renderInputField = ({\n model,\n field,\n fieldTypePlugins\n}: RenderInputFieldParams): CmsModelFieldDefinition | null => {\n // Every time a client updates content model's fields, we check the type of each field. If a field plugin\n // for a particular \"field.type\" doesn't exist on the backend yet, we throw an error. But still, we also\n // want to be careful when accessing the field plugin here too. It is still possible to have a content model\n // that contains a field, for which we don't have a plugin registered on the backend. For example, user\n // could've just removed the plugin from the backend.\n const plugin: CmsModelFieldToGraphQLPlugin = fieldTypePlugins[field.type];\n\n if (!plugin) {\n // Let's not render the field if it does not exist in the field plugins.\n return null;\n }\n\n const def = plugin.manage.createInputField({\n model,\n field,\n fieldTypePlugins\n });\n if (typeof def === \"string\") {\n return {\n fields: def\n };\n }\n\n return def;\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["renderListFilterFields.ts"],"names":["getCreateListFilters","plugins","fieldType","type","createListFilters","renderListFilterFields","model","fieldTypePlugins","fields","join","field","push","filter","Boolean"],"mappings":";;;;;;;AAcA;AACA;AACA;AACA;AACA;AACA,MAAMA,oBAAoB,GAAG,CACzBC,OADyB,EAEzBC,SAFyB,EAGzBC,IAHyB,KAIM;AAC/B,MAAI,CAACF,OAAO,CAACC,SAAD,CAAZ,EAAyB;AACrB,WAAO,IAAP;AACH,GAFD,MAEO,IAAI,CAACD,OAAO,CAACC,SAAD,CAAP,CAAmBC,IAAnB,CAAL,EAA+B;AAClC,WAAO,IAAP;AACH;;AACD,SAAOF,OAAO,CAACC,SAAD,CAAP,CAAmBC,IAAnB,EAAyBC,iBAAhC;AACH,CAXD;;AAaO,MAAMC,sBAA8C,GAAG,CAAC;AAC3DC,EAAAA,KAD2D;AAE3DH,EAAAA,IAF2D;AAG3DI,EAAAA;AAH2D,CAAD,KAIhD;AACV,QAAMC,MAAgB,GAAG,CACrB,CACI,QADJ,EAEI,YAFJ,EAGI,cAHJ,EAII,kBAJJ,EAKI,iBALJ,EAMI,qBANJ,EAOI,uBAPJ,EAQI,2BARJ,EASI,qBATJ,EAUI,wBAVJ,EAWI,yBAXJ,EAYI,wBAZJ,EAaI,yBAbJ,EAcI,gCAdJ,EAeI,oCAfJ,EAgBI,mBAhBJ,EAiBI,sBAjBJ,EAkBI,uBAlBJ,EAmBI,sBAnBJ,EAoBI,uBApBJ,EAqBI,8BArBJ,EAsBI,kCAtBJ,EAuBI,mBAvBJ,EAwBI,uBAxBJ,EAyBI,yBAzBJ,EA0BI,6BA1BJ,EA2BI,iBA3BJ,EA4BI,qBA5BJ,EA6BI,uBA7BJ,EA8BI,2BA9BJ,EA+BEC,IA/BF,CA+BO,IA/BP,CADqB,CAAzB;;AAmCA,OAAK,MAAMC,KAAX,IAAoBJ,KAAK,CAACE,MAA1B,EAAkC;AAC9B;AACA;AACA;AACA;AACA;AAEA,UAAMJ,iBAAiB,GAAGJ,oBAAoB,CAACO,gBAAD,EAAmBG,KAAK,CAACP,IAAzB,EAA+BA,IAA/B,CAA9C;;AACA,QAAI,OAAOC,iBAAP,KAA6B,UAAjC,EAA6C;AACzC;AACH;;AACDI,IAAAA,MAAM,CAACG,IAAP,CAAYP,iBAAiB,CAAC;AAAEE,MAAAA,KAAF;AAASI,MAAAA;AAAT,KAAD,CAA7B;AACH;;AAED,SAAOF,MAAM,CAACI,MAAP,CAAcC,OAAd,EAAuBJ,IAAvB,CAA4B,IAA5B,CAAP;AACH,CAvDM","sourcesContent":["import { ApiEndpoint, CmsFieldTypePlugins, CmsModel, CmsModelFieldToGraphQLPlugin } from \"~/types\";\n\ninterface RenderListFilterFieldsParams {\n model: CmsModel;\n type: ApiEndpoint;\n fieldTypePlugins: CmsFieldTypePlugins;\n}\ninterface RenderListFilterFields {\n (params: RenderListFilterFieldsParams): string;\n}\n\ntype CreateListFiltersType =\n | CmsModelFieldToGraphQLPlugin[\"read\"][\"createListFilters\"]\n | CmsModelFieldToGraphQLPlugin[\"manage\"][\"createListFilters\"];\n/**\n * We cast as read type, because input and output of read and manage are same. This way we ease things.\n * Internal stuff so it should be ok.\n * TODO note that if changing read/manage types, change this as well.\n */\nconst getCreateListFilters = (\n plugins: CmsFieldTypePlugins,\n fieldType: string,\n type: ApiEndpoint\n): CreateListFiltersType | null => {\n if (!plugins[fieldType]) {\n return null;\n } else if (!plugins[fieldType][type]) {\n return null;\n }\n return plugins[fieldType][type].createListFilters;\n};\n\nexport const renderListFilterFields: RenderListFilterFields = ({\n model,\n type,\n fieldTypePlugins\n}): string => {\n const fields: string[] = [\n [\n \"id: ID\",\n \"id_not: ID\",\n \"id_in: [ID!]\",\n \"id_not_in: [ID!]\",\n \"entryId: String\",\n \"entryId_not: String\",\n \"entryId_in: [String!]\",\n \"entryId_not_in: [String!]\",\n \"createdOn: DateTime\",\n \"createdOn_gt: DateTime\",\n \"createdOn_gte: DateTime\",\n \"createdOn_lt: DateTime\",\n \"createdOn_lte: DateTime\",\n \"createdOn_between: [DateTime!]\",\n \"createdOn_not_between: [DateTime!]\",\n \"savedOn: DateTime\",\n \"savedOn_gt: DateTime\",\n \"savedOn_gte: DateTime\",\n \"savedOn_lt: DateTime\",\n \"savedOn_lte: DateTime\",\n \"savedOn_between: [DateTime!]\",\n \"savedOn_not_between: [DateTime!]\",\n \"createdBy: String\",\n \"createdBy_not: String\",\n \"createdBy_in: [String!]\",\n \"createdBy_not_in: [String!]\",\n \"ownedBy: String\",\n \"ownedBy_not: String\",\n \"ownedBy_in: [String!]\",\n \"ownedBy_not_in: [String!]\"\n ].join(\"\\n\")\n ];\n\n for (const field of model.fields) {\n // Every time a client updates content model's fields, we check the type of each field. If a field plugin\n // for a particular \"field.type\" doesn't exist on the backend yet, we throw an error. But still, we also\n // want to be careful when accessing the field plugin here too. It is still possible to have a content model\n // that contains a field, for which we don't have a plugin registered on the backend. For example, user\n // could've just removed the plugin from the backend.\n\n const createListFilters = getCreateListFilters(fieldTypePlugins, field.type, type);\n if (typeof createListFilters !== \"function\") {\n continue;\n }\n fields.push(createListFilters({ model, field }));\n }\n\n return fields.filter(Boolean).join(\"\\n\");\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["renderSortEnum.ts"],"names":["renderSortEnum","model","fieldTypePlugins","sorters","field","fields","type","isSortable","push","fieldId","join"],"mappings":";;;;;;;AAMO,MAAMA,cAA8B,GAAG,CAAC;AAAEC,EAAAA,KAAF;AAASC,EAAAA;AAAT,CAAD,KAAyC;AACnF,QAAMC,OAAO,GAAG,CACX,QADW,EAEX,SAFW,EAGZ,aAHY,EAIZ,cAJY,EAKZ,eALY,EAMZ,gBANY,CAAhB;;AASA,OAAK,MAAMC,KAAX,IAAoBH,KAAK,CAACI,MAA1B,EAAkC;AAC9B,QAAI,CAACH,gBAAgB,CAACE,KAAK,CAACE,IAAP,CAArB,EAAmC;AAC/B;AACH;;AACD,UAAMC,UAAU,GAAGL,gBAAgB,CAACE,KAAK,CAACE,IAAP,CAAhB,CAA6BC,UAAhD;;AACA,QAAI,CAACA,UAAL,EAAiB;AACb;AACH;;AACDJ,IAAAA,OAAO,CAACK,IAAR,CAAc,GAAEJ,KAAK,CAACK,OAAQ,MAA9B;AACAN,IAAAA,OAAO,CAACK,IAAR,CAAc,GAAEJ,KAAK,CAACK,OAAQ,OAA9B;AACH;;AAED,SAAON,OAAO,CAACO,IAAR,CAAa,IAAb,CAAP;AACH,CAvBM","sourcesContent":["import { CmsFieldTypePlugins, CmsModel } from \"~/types\";\n\ninterface RenderSortEnum {\n (params: { model: CmsModel; fieldTypePlugins: CmsFieldTypePlugins }): string;\n}\n\nexport const renderSortEnum: RenderSortEnum = ({ model, fieldTypePlugins }): string => {\n const sorters = [\n `id_ASC`,\n `id_DESC`,\n \"savedOn_ASC\",\n \"savedOn_DESC\",\n \"createdOn_ASC\",\n \"createdOn_DESC\"\n ];\n\n for (const field of model.fields) {\n if (!fieldTypePlugins[field.type]) {\n continue;\n }\n const isSortable = fieldTypePlugins[field.type].isSortable;\n if (!isSortable) {\n continue;\n }\n sorters.push(`${field.fieldId}_ASC`);\n sorters.push(`${field.fieldId}_DESC`);\n }\n\n return sorters.join(\"\\n\");\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["dateGte.ts"],"names":["type","name","validator","validate","value","gteValue","settings","validation","then","v","catch"],"mappings":";;;;;;;AAAA;;eAGe,OAAqC;AAChDA,EAAAA,IAAI,EAAE,2BAD0C;AAEhDC,EAAAA,IAAI,EAAE,oCAF0C;AAGhDC,EAAAA,SAAS,EAAE;AACPD,IAAAA,IAAI,EAAE,SADC;;AAEP,UAAME,QAAN,CAAe;AAAEC,MAAAA,KAAF;AAASF,MAAAA;AAAT,KAAf,EAAqC;AACjC,YAAM;AAAEE,QAAAA,KAAK,EAAEC,QAAT;AAAmBL,QAAAA;AAAnB,UAA4BE,SAAS,CAACI,QAAV,IAAsB,EAAxD;;AACA,UAAI,OAAOD,QAAP,KAAoB,WAAxB,EAAqC;AACjC,eAAO,IAAP;AACH,OAFD,MAEO,IAAIL,IAAI,KAAK,MAAb,EAAqB;AACxB,eAAOO,uBACFJ,QADE,CACOC,KADP,EACe,WAAUC,QAAS,EADlC,EAEFG,IAFE,CAEGC,CAAC,IAAIA,CAAC,KAAK,IAFd,EAGFC,KAHE,CAGI,MAAM,KAHV,CAAP;AAIH;;AACD,aAAOH,uBACFJ,QADE,CACOC,KADP,EACe,WAAUC,QAAS,EADlC,EAEFG,IAFE,CAEGC,CAAC,IAAIA,CAAC,KAAK,IAFd,EAGFC,KAHE,CAGI,MAAM,KAHV,CAAP;AAIH;;AAhBM;AAHqC,CAArC,C","sourcesContent":["import { validation } from \"@webiny/validation\";\nimport { CmsModelFieldValidatorPlugin } from \"~/types\";\n\nexport default (): CmsModelFieldValidatorPlugin => ({\n type: \"cms-model-field-validator\",\n name: \"cms-model-field-validator-date-gte\",\n validator: {\n name: \"dateGte\",\n async validate({ value, validator }) {\n const { value: gteValue, type } = validator.settings || {};\n if (typeof gteValue === \"undefined\") {\n return true;\n } else if (type === \"time\") {\n return validation\n .validate(value, `timeGte:${gteValue}`)\n .then(v => v === true)\n .catch(() => false);\n }\n return validation\n .validate(value, `dateGte:${gteValue}`)\n .then(v => v === true)\n .catch(() => false);\n }\n }\n});\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["dateLte.ts"],"names":["type","name","validator","validate","value","lteValue","settings","validation","then","v","catch"],"mappings":";;;;;;;AAAA;;eAGe,OAAqC;AAChDA,EAAAA,IAAI,EAAE,2BAD0C;AAEhDC,EAAAA,IAAI,EAAE,oCAF0C;AAGhDC,EAAAA,SAAS,EAAE;AACPD,IAAAA,IAAI,EAAE,SADC;;AAEP,UAAME,QAAN,CAAe;AAAEC,MAAAA,KAAF;AAASF,MAAAA;AAAT,KAAf,EAAqC;AACjC,YAAM;AAAEE,QAAAA,KAAK,EAAEC,QAAT;AAAmBL,QAAAA;AAAnB,UAA4BE,SAAS,CAACI,QAAV,IAAsB,EAAxD;;AACA,UAAI,OAAOD,QAAP,KAAoB,WAAxB,EAAqC;AACjC,eAAO,IAAP;AACH,OAFD,MAEO,IAAIL,IAAI,KAAK,MAAb,EAAqB;AACxB,eAAOO,uBACFJ,QADE,CACOC,KADP,EACe,WAAUC,QAAS,EADlC,EAEFG,IAFE,CAEGC,CAAC,IAAIA,CAAC,KAAK,IAFd,EAGFC,KAHE,CAGI,MAAM,KAHV,CAAP;AAIH;;AACD,aAAOH,uBACFJ,QADE,CACOC,KADP,EACe,WAAUC,QAAS,EADlC,EAEFG,IAFE,CAEGC,CAAC,IAAIA,CAAC,KAAK,IAFd,EAGFC,KAHE,CAGI,MAAM,KAHV,CAAP;AAIH;;AAhBM;AAHqC,CAArC,C","sourcesContent":["import { validation } from \"@webiny/validation\";\nimport { CmsModelFieldValidatorPlugin } from \"~/types\";\n\nexport default (): CmsModelFieldValidatorPlugin => ({\n type: \"cms-model-field-validator\",\n name: \"cms-model-field-validator-date-lte\",\n validator: {\n name: \"dateLte\",\n async validate({ value, validator }) {\n const { value: lteValue, type } = validator.settings || {};\n if (typeof lteValue === \"undefined\") {\n return true;\n } else if (type === \"time\") {\n return validation\n .validate(value, `timeLte:${lteValue}`)\n .then(v => v === true)\n .catch(() => false);\n }\n return validation\n .validate(value, `dateLte:${lteValue}`)\n .then(v => v === true)\n .catch(() => false);\n }\n }\n});\n"]}
|
|
@@ -17,7 +17,9 @@ const plugin = {
|
|
|
17
17
|
value,
|
|
18
18
|
validator
|
|
19
19
|
}) {
|
|
20
|
-
|
|
20
|
+
var _validator$settings;
|
|
21
|
+
|
|
22
|
+
const gteValue = (_validator$settings = validator.settings) === null || _validator$settings === void 0 ? void 0 : _validator$settings.value;
|
|
21
23
|
|
|
22
24
|
if (typeof gteValue !== "undefined") {
|
|
23
25
|
return _validation.validation.validate(value, `gte:${gteValue}`).then(v => v === true).catch(() => false);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["gte.ts"],"names":["plugin","type","name","validator","validate","value","gteValue","settings","validation","then","v","catch","Promise","resolve"],"mappings":";;;;;;;AAAA;;AAGA,MAAMA,MAAoC,GAAG;AACzCC,EAAAA,IAAI,EAAE,2BADmC;AAEzCC,EAAAA,IAAI,EAAE,+BAFmC;AAGzCC,EAAAA,SAAS,EAAE;AACPD,IAAAA,IAAI,EAAE,KADC;;AAEPE,IAAAA,QAAQ,CAAC;AAAEC,MAAAA,KAAF;AAASF,MAAAA;AAAT,KAAD,EAAuB;AAAA;;AAC3B,YAAMG,QAAQ,0BAAGH,SAAS,CAACI,QAAb,wDAAG,oBAAoBF,KAArC;;AACA,UAAI,OAAOC,QAAP,KAAoB,WAAxB,EAAqC;AACjC,eAAOE,uBACFJ,QADE,CACOC,KADP,EACe,OAAMC,QAAS,EAD9B,EAEFG,IAFE,CAEGC,CAAC,IAAIA,CAAC,KAAK,IAFd,EAGFC,KAHE,CAGI,MAAM,KAHV,CAAP;AAIH;;AACD,aAAOC,OAAO,CAACC,OAAR,CAAgB,IAAhB,CAAP;AACH;;AAXM;AAH8B,CAA7C;eAkBeb,M","sourcesContent":["import { validation } from \"@webiny/validation\";\nimport { CmsModelFieldValidatorPlugin } from \"~/types\";\n\nconst plugin: CmsModelFieldValidatorPlugin = {\n type: \"cms-model-field-validator\",\n name: \"cms-model-field-validator-gte\",\n validator: {\n name: \"gte\",\n validate({ value, validator }) {\n const gteValue = validator.settings?.value;\n if (typeof gteValue !== \"undefined\") {\n return validation\n .validate(value, `gte:${gteValue}`)\n .then(v => v === true)\n .catch(() => false);\n }\n return Promise.resolve(true);\n }\n }\n};\n\nexport default plugin;\n"]}
|
|
@@ -17,7 +17,9 @@ const plugin = {
|
|
|
17
17
|
value,
|
|
18
18
|
validator
|
|
19
19
|
}) {
|
|
20
|
-
|
|
20
|
+
var _validator$settings;
|
|
21
|
+
|
|
22
|
+
const values = (_validator$settings = validator.settings) === null || _validator$settings === void 0 ? void 0 : _validator$settings.values;
|
|
21
23
|
|
|
22
24
|
if (Array.isArray(values)) {
|
|
23
25
|
return _validation.validation.validate(value, `in:${values.join(":")}`).then(v => v === true).catch(() => false);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["in.ts"],"names":["plugin","type","name","validator","validate","value","values","settings","Array","isArray","validation","join","then","v","catch","Promise","resolve"],"mappings":";;;;;;;AAAA;;AAGA,MAAMA,MAAoC,GAAG;AACzCC,EAAAA,IAAI,EAAE,2BADmC;AAEzCC,EAAAA,IAAI,EAAE,8BAFmC;AAGzCC,EAAAA,SAAS,EAAE;AACPD,IAAAA,IAAI,EAAE,IADC;;AAEPE,IAAAA,QAAQ,CAAC;AAAEC,MAAAA,KAAF;AAASF,MAAAA;AAAT,KAAD,EAAuB;AAAA;;AAC3B,YAAMG,MAAM,0BAAGH,SAAS,CAACI,QAAb,wDAAG,oBAAoBD,MAAnC;;AACA,UAAIE,KAAK,CAACC,OAAN,CAAcH,MAAd,CAAJ,EAA2B;AACvB,eAAOI,uBACFN,QADE,CACOC,KADP,EACe,MAAKC,MAAM,CAACK,IAAP,CAAY,GAAZ,CAAiB,EADrC,EAEFC,IAFE,CAEGC,CAAC,IAAIA,CAAC,KAAK,IAFd,EAGFC,KAHE,CAGI,MAAM,KAHV,CAAP;AAIH;;AAED,aAAOC,OAAO,CAACC,OAAR,CAAgB,IAAhB,CAAP;AACH;;AAZM;AAH8B,CAA7C;eAmBehB,M","sourcesContent":["import { validation } from \"@webiny/validation\";\nimport { CmsModelFieldValidatorPlugin } from \"~/types\";\n\nconst plugin: CmsModelFieldValidatorPlugin = {\n type: \"cms-model-field-validator\",\n name: \"cms-model-field-validator-in\",\n validator: {\n name: \"in\",\n validate({ value, validator }) {\n const values = validator.settings?.values;\n if (Array.isArray(values)) {\n return validation\n .validate(value, `in:${values.join(\":\")}`)\n .then(v => v === true)\n .catch(() => false);\n }\n\n return Promise.resolve(true);\n }\n }\n};\n\nexport default plugin;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":["gte","inValidator","lte","pattern","required","minLength","maxLength","patternPlugins"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;eAEe,MAAM,CACjBA,YADiB,EAEjBC,WAFiB,EAGjBC,YAHiB,EAIjBC,gBAJiB,EAKjBC,iBALiB,EAMjBC,kBANiB,EAOjBC,kBAPiB,EAQjBC,uBARiB,EASjB,uBATiB,EAUjB,uBAViB,EAWjB,uBAXiB,EAYjB,uBAZiB,EAajB,sBAbiB,C","sourcesContent":["import gte from \"./gte\";\nimport inValidator from \"./in\";\nimport lte from \"./lte\";\nimport maxLength from \"./maxLength\";\nimport minLength from \"./minLength\";\nimport pattern from \"./pattern\";\nimport required from \"./required\";\nimport patternPlugins from \"./patternPlugins\";\nimport dateLte from \"./dateLte\";\nimport dateGte from \"./dateGte\";\nimport timeLte from \"./timeLte\";\nimport timeGte from \"./timeGte\";\nimport unique from \"./unique\";\n\nexport default () => [\n gte,\n inValidator,\n lte,\n pattern,\n required,\n minLength,\n maxLength,\n patternPlugins,\n dateLte(),\n dateGte(),\n timeLte(),\n timeGte(),\n unique()\n];\n"]}
|
|
@@ -17,7 +17,9 @@ const plugin = {
|
|
|
17
17
|
value,
|
|
18
18
|
validator
|
|
19
19
|
}) {
|
|
20
|
-
|
|
20
|
+
var _validator$settings;
|
|
21
|
+
|
|
22
|
+
const lteValue = (_validator$settings = validator.settings) === null || _validator$settings === void 0 ? void 0 : _validator$settings.value;
|
|
21
23
|
|
|
22
24
|
if (typeof lteValue !== "undefined") {
|
|
23
25
|
return _validation.validation.validate(value, `lte:${lteValue}`).then(v => v === true).catch(() => false);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["lte.ts"],"names":["plugin","type","name","validator","validate","value","lteValue","settings","validation","then","v","catch","Promise","resolve"],"mappings":";;;;;;;AAAA;;AAGA,MAAMA,MAAoC,GAAG;AACzCC,EAAAA,IAAI,EAAE,2BADmC;AAEzCC,EAAAA,IAAI,EAAE,+BAFmC;AAGzCC,EAAAA,SAAS,EAAE;AACPD,IAAAA,IAAI,EAAE,KADC;;AAEPE,IAAAA,QAAQ,CAAC;AAAEC,MAAAA,KAAF;AAASF,MAAAA;AAAT,KAAD,EAAuB;AAAA;;AAC3B,YAAMG,QAAQ,0BAAGH,SAAS,CAACI,QAAb,wDAAG,oBAAoBF,KAArC;;AACA,UAAI,OAAOC,QAAP,KAAoB,WAAxB,EAAqC;AACjC,eAAOE,uBACFJ,QADE,CACOC,KADP,EACe,OAAMC,QAAS,EAD9B,EAEFG,IAFE,CAEGC,CAAC,IAAIA,CAAC,KAAK,IAFd,EAGFC,KAHE,CAGI,MAAM,KAHV,CAAP;AAIH;;AACD,aAAOC,OAAO,CAACC,OAAR,CAAgB,IAAhB,CAAP;AACH;;AAXM;AAH8B,CAA7C;eAkBeb,M","sourcesContent":["import { validation } from \"@webiny/validation\";\nimport { CmsModelFieldValidatorPlugin } from \"~/types\";\n\nconst plugin: CmsModelFieldValidatorPlugin = {\n type: \"cms-model-field-validator\",\n name: \"cms-model-field-validator-lte\",\n validator: {\n name: \"lte\",\n validate({ value, validator }) {\n const lteValue = validator.settings?.value;\n if (typeof lteValue !== \"undefined\") {\n return validation\n .validate(value, `lte:${lteValue}`)\n .then(v => v === true)\n .catch(() => false);\n }\n return Promise.resolve(true);\n }\n }\n};\n\nexport default plugin;\n"]}
|
|
@@ -17,7 +17,9 @@ const plugin = {
|
|
|
17
17
|
value,
|
|
18
18
|
validator
|
|
19
19
|
}) {
|
|
20
|
-
|
|
20
|
+
var _validator$settings;
|
|
21
|
+
|
|
22
|
+
const maxLengthValue = (_validator$settings = validator.settings) === null || _validator$settings === void 0 ? void 0 : _validator$settings.value;
|
|
21
23
|
|
|
22
24
|
if (typeof maxLengthValue !== "undefined") {
|
|
23
25
|
return _validation.validation.validate(value, `maxLength:${maxLengthValue}`).then(v => v === true).catch(() => false);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["maxLength.ts"],"names":["plugin","type","name","validator","validate","value","maxLengthValue","settings","validation","then","v","catch","Promise","resolve"],"mappings":";;;;;;;AAAA;;AAGA,MAAMA,MAAoC,GAAG;AACzCC,EAAAA,IAAI,EAAE,2BADmC;AAEzCC,EAAAA,IAAI,EAAE,sCAFmC;AAGzCC,EAAAA,SAAS,EAAE;AACPD,IAAAA,IAAI,EAAE,WADC;;AAEPE,IAAAA,QAAQ,CAAC;AAAEC,MAAAA,KAAF;AAASF,MAAAA;AAAT,KAAD,EAAuB;AAAA;;AAC3B,YAAMG,cAAc,0BAAGH,SAAS,CAACI,QAAb,wDAAG,oBAAoBF,KAA3C;;AACA,UAAI,OAAOC,cAAP,KAA0B,WAA9B,EAA2C;AACvC,eAAOE,uBACFJ,QADE,CACOC,KADP,EACe,aAAYC,cAAe,EAD1C,EAEFG,IAFE,CAEGC,CAAC,IAAIA,CAAC,KAAK,IAFd,EAGFC,KAHE,CAGI,MAAM,KAHV,CAAP;AAIH;;AAED,aAAOC,OAAO,CAACC,OAAR,CAAgB,IAAhB,CAAP;AACH;;AAZM;AAH8B,CAA7C;eAmBeb,M","sourcesContent":["import { validation } from \"@webiny/validation\";\nimport { CmsModelFieldValidatorPlugin } from \"~/types\";\n\nconst plugin: CmsModelFieldValidatorPlugin = {\n type: \"cms-model-field-validator\",\n name: \"cms-model-field-validator-max-length\",\n validator: {\n name: \"maxLength\",\n validate({ value, validator }) {\n const maxLengthValue = validator.settings?.value;\n if (typeof maxLengthValue !== \"undefined\") {\n return validation\n .validate(value, `maxLength:${maxLengthValue}`)\n .then(v => v === true)\n .catch(() => false);\n }\n\n return Promise.resolve(true);\n }\n }\n};\n\nexport default plugin;\n"]}
|
|
@@ -17,7 +17,9 @@ const plugin = {
|
|
|
17
17
|
value,
|
|
18
18
|
validator
|
|
19
19
|
}) {
|
|
20
|
-
|
|
20
|
+
var _validator$settings;
|
|
21
|
+
|
|
22
|
+
const minLengthValue = (_validator$settings = validator.settings) === null || _validator$settings === void 0 ? void 0 : _validator$settings.value;
|
|
21
23
|
|
|
22
24
|
if (typeof minLengthValue !== "undefined") {
|
|
23
25
|
return _validation.validation.validate(value, `minLength:${minLengthValue}`).then(v => v === true).catch(() => false);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["minLength.ts"],"names":["plugin","type","name","validator","validate","value","minLengthValue","settings","validation","then","v","catch","Promise","resolve"],"mappings":";;;;;;;AAAA;;AAGA,MAAMA,MAAoC,GAAG;AACzCC,EAAAA,IAAI,EAAE,2BADmC;AAEzCC,EAAAA,IAAI,EAAE,sCAFmC;AAGzCC,EAAAA,SAAS,EAAE;AACPD,IAAAA,IAAI,EAAE,WADC;;AAEPE,IAAAA,QAAQ,CAAC;AAAEC,MAAAA,KAAF;AAASF,MAAAA;AAAT,KAAD,EAAuB;AAAA;;AAC3B,YAAMG,cAAc,0BAAGH,SAAS,CAACI,QAAb,wDAAG,oBAAoBF,KAA3C;;AACA,UAAI,OAAOC,cAAP,KAA0B,WAA9B,EAA2C;AACvC,eAAOE,uBACFJ,QADE,CACOC,KADP,EACe,aAAYC,cAAe,EAD1C,EAEFG,IAFE,CAEGC,CAAC,IAAIA,CAAC,KAAK,IAFd,EAGFC,KAHE,CAGI,MAAM,KAHV,CAAP;AAIH;;AAED,aAAOC,OAAO,CAACC,OAAR,CAAgB,IAAhB,CAAP;AACH;;AAZM;AAH8B,CAA7C;eAmBeb,M","sourcesContent":["import { validation } from \"@webiny/validation\";\nimport { CmsModelFieldValidatorPlugin } from \"~/types\";\n\nconst plugin: CmsModelFieldValidatorPlugin = {\n type: \"cms-model-field-validator\",\n name: \"cms-model-field-validator-min-length\",\n validator: {\n name: \"minLength\",\n validate({ value, validator }) {\n const minLengthValue = validator.settings?.value;\n if (typeof minLengthValue !== \"undefined\") {\n return validation\n .validate(value, `minLength:${minLengthValue}`)\n .then(v => v === true)\n .catch(() => false);\n }\n\n return Promise.resolve(true);\n }\n }\n};\n\nexport default plugin;\n"]}
|
|
@@ -24,10 +24,10 @@ const plugin = {
|
|
|
24
24
|
} = validator;
|
|
25
25
|
let pattern;
|
|
26
26
|
|
|
27
|
-
if (settings.preset === "custom") {
|
|
27
|
+
if ((settings === null || settings === void 0 ? void 0 : settings.preset) === "custom") {
|
|
28
28
|
pattern = settings;
|
|
29
29
|
} else {
|
|
30
|
-
const patternPlugin = context.plugins.byType("cms-model-field-validator-pattern").find(item => item.pattern.name === settings.preset);
|
|
30
|
+
const patternPlugin = context.plugins.byType("cms-model-field-validator-pattern").find(item => item.pattern.name === (settings === null || settings === void 0 ? void 0 : settings.preset));
|
|
31
31
|
|
|
32
32
|
if (patternPlugin) {
|
|
33
33
|
pattern = patternPlugin.pattern;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["pattern.ts"],"names":["plugin","type","name","validator","validate","value","context","settings","pattern","preset","patternPlugin","plugins","byType","find","item","RegExp","regex","flags","test"],"mappings":";;;;;;AAEA,MAAMA,MAAoC,GAAG;AACzCC,EAAAA,IAAI,EAAE,2BADmC;AAEzCC,EAAAA,IAAI,EAAE,mCAFmC;AAGzCC,EAAAA,SAAS,EAAE;AACPD,IAAAA,IAAI,EAAE,SADC;;AAEP,UAAME,QAAN,CAAe;AAAEC,MAAAA,KAAF;AAASF,MAAAA,SAAT;AAAoBG,MAAAA;AAApB,KAAf,EAA8C;AAC1C,UAAI,CAACD,KAAL,EAAY;AACR,eAAO,IAAP;AACH;;AAED,YAAM;AAAEE,QAAAA;AAAF,UAAeJ,SAArB;AAEA,UAAIK,OAAJ;;AACA,UAAI,CAAAD,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAEE,MAAV,MAAqB,QAAzB,EAAmC;AAC/BD,QAAAA,OAAO,GAAGD,QAAV;AACH,OAFD,MAEO;AACH,cAAMG,aAAa,GAAGJ,OAAO,CAACK,OAAR,CACjBC,MADiB,CAEd,mCAFc,EAIjBC,IAJiB,CAIZC,IAAI,IAAIA,IAAI,CAACN,OAAL,CAAaN,IAAb,MAAsBK,QAAtB,aAAsBA,QAAtB,uBAAsBA,QAAQ,CAAEE,MAAhC,CAJI,CAAtB;;AAMA,YAAIC,aAAJ,EAAmB;AACfF,UAAAA,OAAO,GAAGE,aAAa,CAACF,OAAxB;AACH;AACJ;;AAED,UAAI,CAACA,OAAL,EAAc;AACV,eAAO,IAAP;AACH;;AAED,aAAO,IAAIO,MAAJ,CAAWP,OAAO,CAACQ,KAAnB,EAA0BR,OAAO,CAACS,KAAlC,EAAyCC,IAAzC,CAA8Cb,KAA9C,CAAP;AACH;;AA7BM;AAH8B,CAA7C;eAoCeL,M","sourcesContent":["import { CmsModelFieldPatternValidatorPlugin, CmsModelFieldValidatorPlugin } from \"~/types\";\n\nconst plugin: CmsModelFieldValidatorPlugin = {\n type: \"cms-model-field-validator\",\n name: \"cms-model-field-validator-pattern\",\n validator: {\n name: \"pattern\",\n async validate({ value, validator, context }) {\n if (!value) {\n return true;\n }\n\n const { settings } = validator;\n\n let pattern;\n if (settings?.preset === \"custom\") {\n pattern = settings;\n } else {\n const patternPlugin = context.plugins\n .byType<CmsModelFieldPatternValidatorPlugin>(\n \"cms-model-field-validator-pattern\"\n )\n .find(item => item.pattern.name === settings?.preset);\n\n if (patternPlugin) {\n pattern = patternPlugin.pattern;\n }\n }\n\n if (!pattern) {\n return true;\n }\n\n return new RegExp(pattern.regex, pattern.flags).test(value);\n }\n }\n};\n\nexport default plugin;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["email.ts"],"names":["plugin","type","name","pattern","regex","flags"],"mappings":";;;;;;AAEA,MAAMA,MAA2C,GAAG;AAChDC,EAAAA,IAAI,EAAE,mCAD0C;AAEhDC,EAAAA,IAAI,EAAE,yCAF0C;AAGhDC,EAAAA,OAAO,EAAE;AACLD,IAAAA,IAAI,EAAE,OADD;AAELE,IAAAA,KAAK,EAAG,oCAFH;AAGLC,IAAAA,KAAK,EAAE;AAHF;AAHuC,CAApD;eAUeL,M","sourcesContent":["import { CmsModelFieldPatternValidatorPlugin } from \"~/types\";\n\nconst plugin: CmsModelFieldPatternValidatorPlugin = {\n type: \"cms-model-field-validator-pattern\",\n name: \"cms-model-field-validator-pattern-email\",\n pattern: {\n name: \"email\",\n regex: `^\\\\w[\\\\w.-]*@([\\\\w-]+\\\\.)+[\\\\w-]+$`,\n flags: \"i\"\n }\n};\n\nexport default plugin;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":["email","url","lowerCase","upperCase","lowerCaseSpace","upperCaseSpace"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;eAEe,CAACA,cAAD,EAAQC,YAAR,EAAaC,kBAAb,EAAwBC,kBAAxB,EAAmCC,uBAAnC,EAAmDC,uBAAnD,C","sourcesContent":["import email from \"./email\";\nimport url from \"./url\";\nimport lowerCase from \"./lowerCase\";\nimport upperCase from \"./upperCase\";\nimport lowerCaseSpace from \"./lowerCaseSpace\";\nimport upperCaseSpace from \"./upperCaseSpace\";\n\nexport default [email, url, lowerCase, upperCase, lowerCaseSpace, upperCaseSpace];\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["lowerCase.ts"],"names":["plugin","type","name","pattern","regex","flags"],"mappings":";;;;;;AAEA,MAAMA,MAA2C,GAAG;AAChDC,EAAAA,IAAI,EAAE,mCAD0C;AAEhDC,EAAAA,IAAI,EAAE,8CAF0C;AAGhDC,EAAAA,OAAO,EAAE;AACLD,IAAAA,IAAI,EAAE,WADD;AAELE,IAAAA,KAAK,EAAG,YAFH;AAGLC,IAAAA,KAAK,EAAE;AAHF;AAHuC,CAApD;eAUeL,M","sourcesContent":["import { CmsModelFieldPatternValidatorPlugin } from \"~/types\";\n\nconst plugin: CmsModelFieldPatternValidatorPlugin = {\n type: \"cms-model-field-validator-pattern\",\n name: \"cms-model-field-validator-pattern-lower-case\",\n pattern: {\n name: \"lowerCase\",\n regex: `^([a-z]*)$`,\n flags: \"\"\n }\n};\n\nexport default plugin;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["lowerCaseSpace.ts"],"names":["plugin","type","name","pattern","regex","flags"],"mappings":";;;;;;AAEA,MAAMA,MAA2C,GAAG;AAChDC,EAAAA,IAAI,EAAE,mCAD0C;AAEhDC,EAAAA,IAAI,EAAE,oDAF0C;AAGhDC,EAAAA,OAAO,EAAE;AACLD,IAAAA,IAAI,EAAE,gBADD;AAELE,IAAAA,KAAK,EAAG,eAFH;AAGLC,IAAAA,KAAK,EAAE;AAHF;AAHuC,CAApD;eAUeL,M","sourcesContent":["import { CmsModelFieldPatternValidatorPlugin } from \"~/types\";\n\nconst plugin: CmsModelFieldPatternValidatorPlugin = {\n type: \"cms-model-field-validator-pattern\",\n name: \"cms-model-field-validator-pattern-lower-case-space\",\n pattern: {\n name: \"lowerCaseSpace\",\n regex: `^([a-z\\\\s]+)$`,\n flags: \"\"\n }\n};\n\nexport default plugin;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["upperCase.ts"],"names":["plugin","type","name","pattern","regex","flags"],"mappings":";;;;;;AAEA,MAAMA,MAA2C,GAAG;AAChDC,EAAAA,IAAI,EAAE,mCAD0C;AAEhDC,EAAAA,IAAI,EAAE,8CAF0C;AAGhDC,EAAAA,OAAO,EAAE;AACLD,IAAAA,IAAI,EAAE,WADD;AAELE,IAAAA,KAAK,EAAG,YAFH;AAGLC,IAAAA,KAAK,EAAE;AAHF;AAHuC,CAApD;eAUeL,M","sourcesContent":["import { CmsModelFieldPatternValidatorPlugin } from \"~/types\";\n\nconst plugin: CmsModelFieldPatternValidatorPlugin = {\n type: \"cms-model-field-validator-pattern\",\n name: \"cms-model-field-validator-pattern-upper-case\",\n pattern: {\n name: \"upperCase\",\n regex: `^([A-Z]*)$`,\n flags: \"\"\n }\n};\n\nexport default plugin;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["upperCaseSpace.ts"],"names":["plugin","type","name","pattern","regex","flags"],"mappings":";;;;;;AAEA,MAAMA,MAA2C,GAAG;AAChDC,EAAAA,IAAI,EAAE,mCAD0C;AAEhDC,EAAAA,IAAI,EAAE,oDAF0C;AAGhDC,EAAAA,OAAO,EAAE;AACLD,IAAAA,IAAI,EAAE,gBADD;AAELE,IAAAA,KAAK,EAAG,eAFH;AAGLC,IAAAA,KAAK,EAAE;AAHF;AAHuC,CAApD;eAUeL,M","sourcesContent":["import { CmsModelFieldPatternValidatorPlugin } from \"~/types\";\n\nconst plugin: CmsModelFieldPatternValidatorPlugin = {\n type: \"cms-model-field-validator-pattern\",\n name: \"cms-model-field-validator-pattern-upper-case-space\",\n pattern: {\n name: \"upperCaseSpace\",\n regex: `^([A-Z\\\\s]+)$`,\n flags: \"\"\n }\n};\n\nexport default plugin;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["url.ts"],"names":["plugin","type","name","pattern","regex","flags"],"mappings":";;;;;;AAEA,MAAMA,MAA2C,GAAG;AAChDC,EAAAA,IAAI,EAAE,mCAD0C;AAEhDC,EAAAA,IAAI,EAAE,uCAF0C;AAGhDC,EAAAA,OAAO,EAAE;AACLD,IAAAA,IAAI,EAAE,KADD;AAELE,IAAAA,KAAK,EAAE,+FAFF;AAGLC,IAAAA,KAAK,EAAE;AAHF;AAHuC,CAApD;eAUeL,M","sourcesContent":["import { CmsModelFieldPatternValidatorPlugin } from \"~/types\";\n\nconst plugin: CmsModelFieldPatternValidatorPlugin = {\n type: \"cms-model-field-validator-pattern\",\n name: \"cms-model-field-validator-pattern-url\",\n pattern: {\n name: \"url\",\n regex: \"^(ftp|http|https):\\\\/\\\\/(\\\\w+:{0,1}\\\\w*@)?(\\\\S+)(:[0-9]+)?(\\\\/|\\\\/([\\\\w#!:.?+=&%@!\\\\-\\\\/]))?$\",\n flags: \"i\"\n }\n};\n\nexport default plugin;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["required.ts"],"names":["plugin","type","name","validator","validate","value","validation","then","v","catch"],"mappings":";;;;;;;AAAA;;AAGA,MAAMA,MAAoC,GAAG;AACzCC,EAAAA,IAAI,EAAE,2BADmC;AAEzCC,EAAAA,IAAI,EAAE,oCAFmC;AAGzCC,EAAAA,SAAS,EAAE;AACPD,IAAAA,IAAI,EAAE,UADC;;AAEPE,IAAAA,QAAQ,CAAC;AAAEC,MAAAA;AAAF,KAAD,EAAY;AAChB,aAAOC,uBACFF,QADE,CACOC,KADP,EACc,UADd,EAEFE,IAFE,CAEGC,CAAC,IAAIA,CAAC,KAAK,IAFd,EAGFC,KAHE,CAGI,MAAM,KAHV,CAAP;AAIH;;AAPM;AAH8B,CAA7C;eAceT,M","sourcesContent":["import { validation } from \"@webiny/validation\";\nimport { CmsModelFieldValidatorPlugin } from \"~/types\";\n\nconst plugin: CmsModelFieldValidatorPlugin = {\n type: \"cms-model-field-validator\",\n name: \"cms-model-field-validator-required\",\n validator: {\n name: \"required\",\n validate({ value }) {\n return validation\n .validate(value, \"required\")\n .then(v => v === true)\n .catch(() => false);\n }\n }\n};\n\nexport default plugin;\n"]}
|
|
@@ -17,7 +17,9 @@ var _default = () => ({
|
|
|
17
17
|
value,
|
|
18
18
|
validator
|
|
19
19
|
}) {
|
|
20
|
-
|
|
20
|
+
var _validator$settings;
|
|
21
|
+
|
|
22
|
+
const gteValue = (_validator$settings = validator.settings) === null || _validator$settings === void 0 ? void 0 : _validator$settings.value;
|
|
21
23
|
|
|
22
24
|
if (typeof gteValue === "undefined") {
|
|
23
25
|
return true;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["timeGte.ts"],"names":["type","name","validator","validate","value","gteValue","settings","validation","then","v","catch"],"mappings":";;;;;;;AAAA;;eAGe,OAAqC;AAChDA,EAAAA,IAAI,EAAE,2BAD0C;AAEhDC,EAAAA,IAAI,EAAE,oCAF0C;AAGhDC,EAAAA,SAAS,EAAE;AACPD,IAAAA,IAAI,EAAE,SADC;;AAEP,UAAME,QAAN,CAAe;AAAEC,MAAAA,KAAF;AAASF,MAAAA;AAAT,KAAf,EAAqC;AAAA;;AACjC,YAAMG,QAAQ,0BAAGH,SAAS,CAACI,QAAb,wDAAG,oBAAoBF,KAArC;;AACA,UAAI,OAAOC,QAAP,KAAoB,WAAxB,EAAqC;AACjC,eAAO,IAAP;AACH;;AACD,aAAOE,uBACFJ,QADE,CACOC,KADP,EACe,WAAUC,QAAS,EADlC,EAEFG,IAFE,CAEGC,CAAC,IAAIA,CAAC,KAAK,IAFd,EAGFC,KAHE,CAGI,MAAM,KAHV,CAAP;AAIH;;AAXM;AAHqC,CAArC,C","sourcesContent":["import { validation } from \"@webiny/validation\";\nimport { CmsModelFieldValidatorPlugin } from \"~/types\";\n\nexport default (): CmsModelFieldValidatorPlugin => ({\n type: \"cms-model-field-validator\",\n name: \"cms-model-field-validator-time-gte\",\n validator: {\n name: \"timeGte\",\n async validate({ value, validator }) {\n const gteValue = validator.settings?.value;\n if (typeof gteValue === \"undefined\") {\n return true;\n }\n return validation\n .validate(value, `timeGte:${gteValue}`)\n .then(v => v === true)\n .catch(() => false);\n }\n }\n});\n"]}
|
|
@@ -17,7 +17,9 @@ var _default = () => ({
|
|
|
17
17
|
value,
|
|
18
18
|
validator
|
|
19
19
|
}) {
|
|
20
|
-
|
|
20
|
+
var _validator$settings;
|
|
21
|
+
|
|
22
|
+
const lteValue = (_validator$settings = validator.settings) === null || _validator$settings === void 0 ? void 0 : _validator$settings.value;
|
|
21
23
|
|
|
22
24
|
if (typeof lteValue === "undefined") {
|
|
23
25
|
return true;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["timeLte.ts"],"names":["type","name","validator","validate","value","lteValue","settings","validation","then","v","catch"],"mappings":";;;;;;;AAAA;;eAGe,OAAqC;AAChDA,EAAAA,IAAI,EAAE,2BAD0C;AAEhDC,EAAAA,IAAI,EAAE,oCAF0C;AAGhDC,EAAAA,SAAS,EAAE;AACPD,IAAAA,IAAI,EAAE,SADC;;AAEP,UAAME,QAAN,CAAe;AAAEC,MAAAA,KAAF;AAASF,MAAAA;AAAT,KAAf,EAAqC;AAAA;;AACjC,YAAMG,QAAQ,0BAAGH,SAAS,CAACI,QAAb,wDAAG,oBAAoBF,KAArC;;AACA,UAAI,OAAOC,QAAP,KAAoB,WAAxB,EAAqC;AACjC,eAAO,IAAP;AACH;;AACD,aAAOE,uBACFJ,QADE,CACOC,KADP,EACe,WAAUC,QAAS,EADlC,EAEFG,IAFE,CAEGC,CAAC,IAAIA,CAAC,KAAK,IAFd,EAGFC,KAHE,CAGI,MAAM,KAHV,CAAP;AAIH;;AAXM;AAHqC,CAArC,C","sourcesContent":["import { validation } from \"@webiny/validation\";\nimport { CmsModelFieldValidatorPlugin } from \"~/types\";\n\nexport default (): CmsModelFieldValidatorPlugin => ({\n type: \"cms-model-field-validator\",\n name: \"cms-model-field-validator-time-lte\",\n validator: {\n name: \"timeLte\",\n async validate({ value, validator }) {\n const lteValue = validator.settings?.value;\n if (typeof lteValue === \"undefined\") {\n return true;\n }\n return validation\n .validate(value, `timeLte:${lteValue}`)\n .then(v => v === true)\n .catch(() => false);\n }\n }\n});\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["unique.ts"],"names":["type","name","validator","validate","field","value","initialValue","context","model","entry","manager","cms","getModelManager","trim","items","listLatest","where","entryId_not","entryId","undefined","tenant","fieldId","limit","length","ex","WebinyError"],"mappings":";;;;;;;;;AAAA;;AAGA;AACA;AACA;AACA;eACe,MAAoC;AAC/C,SAAO;AACHA,IAAAA,IAAI,EAAE,2BADH;AAEHC,IAAAA,IAAI,EAAE,kCAFH;AAGHC,IAAAA,SAAS,EAAE;AACPD,MAAAA,IAAI,EAAE,QADC;AAEPE,MAAAA,QAAQ,EAAE,OAAO;AAAEC,QAAAA,KAAF;AAASC,QAAAA,KAAK,EAAEC,YAAhB;AAA8BC,QAAAA,OAA9B;AAAuCC,QAAAA,KAAvC;AAA8CC,QAAAA;AAA9C,OAAP,KAAiE;AACvE,cAAMC,OAAO,GAAG,MAAMH,OAAO,CAACI,GAAR,CAAYC,eAAZ,CAA4BJ,KAA5B,CAAtB;AACA;AAChB;AACA;AACA;;AACgB,cAAMH,KAAK,GAAG,CAACC,YAAY,IAAI,EAAjB,EAAqBO,IAArB,EAAd;;AACA,YAAI,CAACR,KAAL,EAAY;AACR,iBAAO,IAAP;AACH;;AACD,YAAI;AACA,gBAAM,CAACS,KAAD,IAAU,MAAMJ,OAAO,CAACK,UAAR,CAAmB;AACrCC,YAAAA,KAAK,EAAE;AACHC,cAAAA,WAAW,EAAER,KAAK,GAAGA,KAAK,CAACS,OAAT,GAAmBC,SADlC;AAEHC,cAAAA,MAAM,EAAEZ,KAAK,CAACY,MAFX;AAGH,eAAChB,KAAK,CAACiB,OAAP,GAAiBhB;AAHd,aAD8B;AAMrCiB,YAAAA,KAAK,EAAE;AAN8B,WAAnB,CAAtB;AAQA,iBAAOR,KAAK,CAACS,MAAN,KAAiB,CAAxB;AACH,SAVD,CAUE,OAAOC,EAAP,EAAW;AACT,gBAAM,IAAIC,cAAJ,CACF,oDADE,EAEF,oBAFE,EAGF;AACIrB,YAAAA,KADJ;AAEIC,YAAAA,KAFJ;AAGIG,YAAAA;AAHJ,WAHE,CAAN;AASH;AACJ;AAjCM;AAHR,GAAP;AAuCH,C","sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { CmsModelFieldValidatorPlugin } from \"~/types\";\n\n/**\n * Validation if the field value is unique.\n * Be aware of using this in DynamoDB only environment as all records will be loaded to check for the unique value.\n */\nexport default (): CmsModelFieldValidatorPlugin => {\n return {\n type: \"cms-model-field-validator\",\n name: \"cms-model-field-validator-unique\",\n validator: {\n name: \"unique\",\n validate: async ({ field, value: initialValue, context, model, entry }) => {\n const manager = await context.cms.getModelManager(model);\n /**\n * If there is no value passed, we are assuming that user does not want any value to be validated.\n * If user needs something to passed into a unique field, they must add \"required\" validator.\n */\n const value = (initialValue || \"\").trim();\n if (!value) {\n return true;\n }\n try {\n const [items] = await manager.listLatest({\n where: {\n entryId_not: entry ? entry.entryId : undefined,\n tenant: model.tenant,\n [field.fieldId]: value\n },\n limit: 1\n });\n return items.length === 0;\n } catch (ex) {\n throw new WebinyError(\n \"Error while checking if the field value is unique.\",\n \"UNIQUE_CHECK_ERROR\",\n {\n field,\n value,\n model\n }\n );\n }\n }\n }\n };\n};\n"]}
|
package/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { CreateAdminCrudsParams } from "./plugins/crud";
|
|
2
|
+
import { CreateContentCrudsParams } from "./content/plugins/crud";
|
|
3
3
|
import { CreateGraphQLHandlerOptions } from "./content/graphQLHandlerFactory";
|
|
4
4
|
import { StorageTransformPlugin } from "./content/plugins/storage/StorageTransformPlugin";
|
|
5
5
|
import { CreateParametersPluginsParams } from "./content/parameterPlugins";
|
|
@@ -13,5 +13,5 @@ export interface ContentContextParams extends CreateContentCrudsParams, CreatePa
|
|
|
13
13
|
}
|
|
14
14
|
export declare const createContentHeadlessCmsContext: (params: ContentContextParams) => (import("./types").ModelManagerPlugin | import("./types").CmsModelFieldToGraphQLPlugin[] | StorageTransformPlugin<any, any> | import("@webiny/handler").ContextPlugin<import("./types").CmsContext> | CmsParametersPlugin[] | (import("./types").CmsModelFieldValidatorPlugin | import("./types").CmsModelFieldPatternValidatorPlugin[])[])[];
|
|
15
15
|
export declare type ContentGraphQLParams = CreateGraphQLHandlerOptions;
|
|
16
|
-
export declare const createContentHeadlessCmsGraphQL: (params?:
|
|
16
|
+
export declare const createContentHeadlessCmsGraphQL: (params?: CreateGraphQLHandlerOptions | undefined) => import("@webiny/plugins/types").PluginCollection;
|
|
17
17
|
export { StorageTransformPlugin, CmsParametersPlugin, CmsGroupPlugin, CmsModelPlugin };
|
package/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":["createAdminHeadlessCmsContext","params","createAdminHeadlessCmsGraphQL","createContentHeadlessCmsContext","createContentHeadlessCmsGraphQL"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAIA;;AACA;;AACA;;AACA;;AACA;;AAIO,MAAMA,6BAA6B,GAAIC,MAAD,IAAgC;AACzE,SAAO,CAAC,uBAAD,EAAY,4BAAiBA,MAAjB,CAAZ,EAAsC,wBAAtC,CAAP;AACH,CAFM;;;;AAIA,MAAMC,6BAA6B,GAAG,MAAM;AAC/C,SAAO,mCAAP;AACH,CAFM;;;;AAOA,MAAMC,+BAA+B,GAAIF,MAAD,IAAkC;AAC7E,SAAO,CACH,+CAAwBA,MAAxB,CADG,EAEH,4BAFG,EAGH,4BAHG,EAIH,+BAAmBA,MAAnB,CAJG,EAKH,6BALG,EAMH,0BANG,EAOH,uBAPG,EAQH,sBARG,CASH;AACA;AAVG,GAAP;AAYH,CAbM;;;;AAeA,MAAMG,+BAA+B,GAAIH,MAAD,IAAmC;AAC9E,SAAO,kDAAsBA,MAAtB,CAAP;AACH,CAFM","sourcesContent":["import { createGraphQLPlugin } from \"~/plugins/graphql\";\nimport { createAdminCruds, CreateAdminCrudsParams } from \"~/plugins/crud\";\nimport context from \"~/plugins/context\";\nimport upgrades from \"~/plugins/upgrades\";\nimport contextSetup from \"~/content/contextSetup\";\nimport modelManager from \"~/content/plugins/modelManager\";\nimport { createContentCruds, CreateContentCrudsParams } from \"~/content/plugins/crud\";\nimport fieldTypePlugins from \"~/content/plugins/graphqlFields\";\nimport validatorsPlugins from \"~/content/plugins/validators\";\nimport defaultStoragePlugin from \"~/content/plugins/storage/default\";\nimport objectStoragePlugin from \"~/content/plugins/storage/object\";\nimport {\n CreateGraphQLHandlerOptions,\n graphQLHandlerFactory\n} from \"~/content/graphQLHandlerFactory\";\nimport { StorageTransformPlugin } from \"~/content/plugins/storage/StorageTransformPlugin\";\nimport { createParametersPlugins, CreateParametersPluginsParams } from \"~/content/parameterPlugins\";\nimport { CmsParametersPlugin } from \"~/content/plugins/CmsParametersPlugin\";\nimport { CmsGroupPlugin } from \"~/content/plugins/CmsGroupPlugin\";\nimport { CmsModelPlugin } from \"~/content/plugins/CmsModelPlugin\";\n\nexport type AdminContextParams = CreateAdminCrudsParams;\n\nexport const createAdminHeadlessCmsContext = (params: AdminContextParams) => {\n return [context(), createAdminCruds(params), upgrades()];\n};\n\nexport const createAdminHeadlessCmsGraphQL = () => {\n return createGraphQLPlugin();\n};\n\nexport interface ContentContextParams\n extends CreateContentCrudsParams,\n CreateParametersPluginsParams {}\nexport const createContentHeadlessCmsContext = (params: ContentContextParams) => {\n return [\n createParametersPlugins(params),\n contextSetup(),\n modelManager(),\n createContentCruds(params),\n fieldTypePlugins(),\n validatorsPlugins(),\n defaultStoragePlugin(),\n objectStoragePlugin()\n // new InternalAuthenticationPlugin(\"read-api-key\"),\n // new InternalAuthorizationPlugin(\"read-api-key\")\n ];\n};\nexport type ContentGraphQLParams = CreateGraphQLHandlerOptions;\nexport const createContentHeadlessCmsGraphQL = (params?: ContentGraphQLParams) => {\n return graphQLHandlerFactory(params);\n};\n\nexport { StorageTransformPlugin, CmsParametersPlugin, CmsGroupPlugin, CmsModelPlugin };\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["migrateCMSPermissions.ts"],"names":["AccessTypes","migrateCMSPermissions","permissions","getModel","fullAccess","find","permission","name","FULL","newPermissions","DEFAULT_PERMISSIONS","CONTENT_MODEL_GROUP","rwd","own","CONTENT_MODEL","CONTENT_ENTRY","forEach","entity","existingPermission","setAccessScopeToOwn","groups","moveGroups","models","moveModels","contentModels","contentModelGroups","locales","Object","keys","i","length","code","j","modelId","group","includes","id","push","values","mergeCustomizer","objValue","srcValue","Array","isArray","concat","filter","removeDuplicate","item","index","arr","findIndex","el"],"mappings":"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","sourcesContent":["/**\n * Not used anymore so ignore.\n */\n// @ts-nocheck\nimport mergeWith from \"lodash/mergeWith\";\nimport isEmpty from \"lodash/isEmpty\";\nimport { CmsModel } from \"./types\";\n\ntype Group = {\n [code: string]: string[];\n};\ntype Model = {\n [code: string]: string[];\n};\ninterface CMSPermission {\n name: string;\n rwd?: string;\n pw?: string;\n own?: boolean;\n groups?: Group;\n models?: Model;\n}\n\nenum AccessTypes {\n FULL = \"cms.*\",\n CONTENT_MODEL_GROUP = \"cms.contentModelGroup\",\n CONTENT_MODEL = \"cms.contentModel\",\n CONTENT_ENTRY = \"cms.contentEntry\"\n}\n\nexport const migrateCMSPermissions = async (\n permissions: CMSPermission[],\n getModel: (modelId: string) => Promise<CmsModel>\n): Promise<CMSPermission[]> => {\n // First we've to know whether is a \"full\" access or \"custom\" access.\n const fullAccess = permissions.find(permission => permission.name === AccessTypes.FULL);\n\n if (fullAccess) {\n return permissions;\n }\n\n // We'll construct the new newPermissions one by one.\n const newPermissions = {};\n\n const DEFAULT_PERMISSIONS = {\n [AccessTypes.CONTENT_MODEL_GROUP]: {\n name: AccessTypes.CONTENT_MODEL_GROUP,\n rwd: \"r\",\n own: false\n },\n [AccessTypes.CONTENT_MODEL]: {\n name: AccessTypes.CONTENT_MODEL,\n rwd: \"r\",\n own: false\n },\n [AccessTypes.CONTENT_ENTRY]: {\n name: AccessTypes.CONTENT_ENTRY,\n rwd: \"r\",\n own: false\n }\n };\n\n // Create new permissions.\n [AccessTypes.CONTENT_MODEL_GROUP, AccessTypes.CONTENT_MODEL, AccessTypes.CONTENT_ENTRY].forEach(\n entity => {\n // Check for \"entity\" permission existence.\n const existingPermission = permissions.find(permission => permission.name === entity);\n if (existingPermission) {\n newPermissions[entity] = existingPermission;\n } else {\n newPermissions[entity] = DEFAULT_PERMISSIONS[entity];\n }\n\n // Handle specific cases.\n if (entity === AccessTypes.CONTENT_MODEL_GROUP) {\n // Just to be on the safer side.\n if (newPermissions[entity].own) {\n setAccessScopeToOwn(newPermissions, entity);\n }\n }\n // Handle specific cases.\n if (entity === AccessTypes.CONTENT_MODEL) {\n // Just to be on the safer side.\n if (newPermissions[entity].own) {\n setAccessScopeToOwn(newPermissions, entity);\n }\n // If parent has the \"own\" access scope.\n if (newPermissions[AccessTypes.CONTENT_MODEL_GROUP].own) {\n setAccessScopeToOwn(newPermissions, entity);\n }\n // Transfer groups data to content model groups permission\n if (newPermissions[entity].groups) {\n moveGroups(newPermissions, entity);\n }\n }\n // Handle specific cases.\n if (entity === AccessTypes.CONTENT_ENTRY) {\n // Just to be on the safer side.\n if (newPermissions[entity].own) {\n setAccessScopeToOwn(newPermissions, entity);\n }\n // If parent has the \"own\" access scope.\n if (newPermissions[AccessTypes.CONTENT_MODEL].own) {\n setAccessScopeToOwn(newPermissions, entity);\n }\n // Transfer groups data to content model groups permission\n if (newPermissions[entity].groups) {\n moveGroups(newPermissions, entity);\n }\n // Transfer models data to content model groups permission\n if (newPermissions[entity].models) {\n moveModels(newPermissions, entity);\n }\n }\n }\n );\n\n /*\n * Sync \"models\" and \"groups\".\n * If there is a model from \"cms.contentModel\" permission's models property;\n * whose content group is missing from \"cms.contentModelGroup\" permission's groups property;\n * we add that into \"cms.contentModelGroup\" permission.\n *\n * Why?\n * Because, now the user must need to have at least READ permission on \"cms.contentModelGroup\" to access a model defined by \"cms.contentModel\".\n * */\n const contentModels = newPermissions[AccessTypes.CONTENT_MODEL].models;\n\n if (!isEmpty(contentModels)) {\n const contentModelGroups = newPermissions[AccessTypes.CONTENT_MODEL_GROUP].groups || {};\n\n const locales = Object.keys(contentModels);\n for (let i = 0; i < locales.length; i++) {\n const code = locales[i];\n for (let j = 0; j < contentModels[code].length; j++) {\n const modelId = contentModels[code][j];\n // Check if we've access to it's contentModelGroup.\n const { group } = await getModel(modelId);\n\n if (isEmpty(contentModelGroups[code])) {\n contentModelGroups[code] = [];\n }\n if (!contentModelGroups[code].includes(group.id)) {\n contentModelGroups[code].push(group.id);\n }\n }\n }\n\n // Update \"groups\" value in permission.\n newPermissions[AccessTypes.CONTENT_MODEL_GROUP].groups = contentModelGroups;\n }\n\n return Object.values(newPermissions);\n};\n\nconst mergeCustomizer = (objValue, srcValue) => {\n if (Array.isArray(objValue) === false) {\n return [];\n }\n return objValue.concat(srcValue).filter(removeDuplicate);\n};\n\nconst removeDuplicate = (item, index, arr) => arr.findIndex(el => el === item) === index;\n\nconst moveGroups = (permissions, entity) => {\n if (!isEmpty(permissions[AccessTypes.CONTENT_MODEL_GROUP][\"groups\"])) {\n permissions[AccessTypes.CONTENT_MODEL_GROUP][\"groups\"] = mergeWith(\n permissions[AccessTypes.CONTENT_MODEL_GROUP][\"groups\"],\n permissions[entity].groups,\n mergeCustomizer\n );\n } else {\n permissions[AccessTypes.CONTENT_MODEL_GROUP][\"groups\"] = permissions[entity].groups;\n }\n // Remove \"groups\" from content model permission\n delete permissions[entity].groups;\n};\n\nconst moveModels = (permissions, entity) => {\n if (!isEmpty(permissions[AccessTypes.CONTENT_MODEL][\"models\"])) {\n permissions[AccessTypes.CONTENT_MODEL][\"models\"] = mergeWith(\n permissions[AccessTypes.CONTENT_MODEL][\"models\"],\n permissions[entity].models,\n mergeCustomizer\n );\n } else {\n permissions[AccessTypes.CONTENT_MODEL][\"models\"] = permissions[entity].models;\n }\n // Remove \"models\" from content model permission\n delete permissions[entity].models;\n};\n\nconst setAccessScopeToOwn = (permissions, entity) => {\n permissions[entity].own = true;\n // Set primary action.\n permissions[entity].rwd = \"rwd\";\n\n // Remove \"groups\" from content model permission\n delete permissions[entity].groups;\n\n // Remove \"models\" from content model permission\n delete permissions[entity].models;\n};\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/api-headless-cms",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.25.0-beta.2",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cms:base"
|
|
@@ -18,27 +18,27 @@
|
|
|
18
18
|
],
|
|
19
19
|
"license": "MIT",
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@babel/runtime": "7.
|
|
21
|
+
"@babel/runtime": "7.17.7",
|
|
22
22
|
"@commodo/fields": "1.1.2-beta.20",
|
|
23
23
|
"@graphql-tools/schema": "7.1.5",
|
|
24
|
-
"@webiny/api-file-manager": "5.
|
|
25
|
-
"@webiny/api-i18n": "5.
|
|
26
|
-
"@webiny/api-i18n-content": "5.
|
|
27
|
-
"@webiny/api-i18n-ddb": "5.
|
|
28
|
-
"@webiny/api-security": "5.
|
|
29
|
-
"@webiny/api-tenancy": "5.
|
|
30
|
-
"@webiny/api-upgrade": "5.
|
|
31
|
-
"@webiny/error": "5.
|
|
32
|
-
"@webiny/handler": "5.
|
|
33
|
-
"@webiny/handler-aws": "5.
|
|
34
|
-
"@webiny/handler-db": "5.
|
|
35
|
-
"@webiny/handler-graphql": "5.
|
|
36
|
-
"@webiny/handler-http": "5.
|
|
37
|
-
"@webiny/plugins": "5.
|
|
38
|
-
"@webiny/pubsub": "5.
|
|
39
|
-
"@webiny/utils": "5.
|
|
40
|
-
"@webiny/validation": "5.
|
|
41
|
-
"boolean": "3.
|
|
24
|
+
"@webiny/api-file-manager": "5.25.0-beta.2",
|
|
25
|
+
"@webiny/api-i18n": "5.25.0-beta.2",
|
|
26
|
+
"@webiny/api-i18n-content": "5.25.0-beta.2",
|
|
27
|
+
"@webiny/api-i18n-ddb": "5.25.0-beta.2",
|
|
28
|
+
"@webiny/api-security": "5.25.0-beta.2",
|
|
29
|
+
"@webiny/api-tenancy": "5.25.0-beta.2",
|
|
30
|
+
"@webiny/api-upgrade": "5.25.0-beta.2",
|
|
31
|
+
"@webiny/error": "5.25.0-beta.2",
|
|
32
|
+
"@webiny/handler": "5.25.0-beta.2",
|
|
33
|
+
"@webiny/handler-aws": "5.25.0-beta.2",
|
|
34
|
+
"@webiny/handler-db": "5.25.0-beta.2",
|
|
35
|
+
"@webiny/handler-graphql": "5.25.0-beta.2",
|
|
36
|
+
"@webiny/handler-http": "5.25.0-beta.2",
|
|
37
|
+
"@webiny/plugins": "5.25.0-beta.2",
|
|
38
|
+
"@webiny/pubsub": "5.25.0-beta.2",
|
|
39
|
+
"@webiny/utils": "5.25.0-beta.2",
|
|
40
|
+
"@webiny/validation": "5.25.0-beta.2",
|
|
41
|
+
"boolean": "3.2.0",
|
|
42
42
|
"commodo-fields-object": "1.0.6",
|
|
43
43
|
"dataloader": "2.0.0",
|
|
44
44
|
"dot-prop": "6.0.1",
|
|
@@ -55,10 +55,10 @@
|
|
|
55
55
|
"@babel/core": "^7.16.0",
|
|
56
56
|
"@babel/preset-env": "^7.16.4",
|
|
57
57
|
"@babel/preset-flow": "^7.16.0",
|
|
58
|
-
"@webiny/api-security-so-ddb": "^5.
|
|
59
|
-
"@webiny/api-tenancy-so-ddb": "^5.
|
|
60
|
-
"@webiny/cli": "^5.
|
|
61
|
-
"@webiny/project-utils": "^5.
|
|
58
|
+
"@webiny/api-security-so-ddb": "^5.25.0-beta.2",
|
|
59
|
+
"@webiny/api-tenancy-so-ddb": "^5.25.0-beta.2",
|
|
60
|
+
"@webiny/cli": "^5.25.0-beta.2",
|
|
61
|
+
"@webiny/project-utils": "^5.25.0-beta.2",
|
|
62
62
|
"apollo-graphql": "^0.9.5",
|
|
63
63
|
"get-yarn-workspaces": "^1.0.2",
|
|
64
64
|
"graphql": "^15.7.2",
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
"rimraf": "^3.0.2",
|
|
69
69
|
"sinon": "^9.0.2",
|
|
70
70
|
"ttypescript": "^1.5.12",
|
|
71
|
-
"typescript": "
|
|
71
|
+
"typescript": "4.5.5"
|
|
72
72
|
},
|
|
73
73
|
"publishConfig": {
|
|
74
74
|
"access": "public",
|
|
@@ -78,5 +78,5 @@
|
|
|
78
78
|
"build": "yarn webiny run build",
|
|
79
79
|
"watch": "yarn webiny run watch"
|
|
80
80
|
},
|
|
81
|
-
"gitHead": "
|
|
81
|
+
"gitHead": "ed2f22976af47aea0b6b5d638f8afdc39951b014"
|
|
82
82
|
}
|
package/plugins/context.js
CHANGED
|
@@ -22,9 +22,14 @@ var _default = () => {
|
|
|
22
22
|
locale: locale ? locale.code : "en-US",
|
|
23
23
|
|
|
24
24
|
getLocale() {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
if (!locale) {
|
|
26
|
+
return {
|
|
27
|
+
code: "en-US",
|
|
28
|
+
default: true
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return locale;
|
|
28
33
|
}
|
|
29
34
|
|
|
30
35
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["context.ts"],"names":["ContextPlugin","context","locale","i18nContent","getCurrentLocale","cms","code","getLocale","default"],"mappings":";;;;;;;;;;;AAAA;;;;;;eAGe,MAAM;AACjB,SAAO,IAAIA,sBAAJ,CAA8BC,OAAO,IAAI;AAC5C,UAAMC,MAAM,GAAGD,OAAO,CAACE,WAAR,CAAoBC,gBAApB,EAAf;AAEAH,IAAAA,OAAO,CAACI,GAAR,mCACQJ,OAAO,CAACI,GAAR,IAAgB,EADxB;AAEIH,MAAAA,MAAM,EAAEA,MAAM,GAAGA,MAAM,CAACI,IAAV,GAAiB,OAFnC;;AAGIC,MAAAA,SAAS,GAAG;AACR,YAAI,CAACL,MAAL,EAAa;AACT,iBAAO;AACHI,YAAAA,IAAI,EAAE,OADH;AAEHE,YAAAA,OAAO,EAAE;AAFN,WAAP;AAIH;;AACD,eAAON,MAAP;AACH;;AAXL;AAaH,GAhBM,CAAP;AAiBH,C","sourcesContent":["import { ContextPlugin } from \"@webiny/handler\";\nimport { CmsContext } from \"~/types\";\n\nexport default () => {\n return new ContextPlugin<CmsContext>(context => {\n const locale = context.i18nContent.getCurrentLocale();\n\n context.cms = {\n ...(context.cms || ({} as any)),\n locale: locale ? locale.code : \"en-US\",\n getLocale() {\n if (!locale) {\n return {\n code: \"en-US\",\n default: true\n };\n }\n return locale;\n }\n };\n });\n};\n"]}
|
package/plugins/crud/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CmsContext, HeadlessCmsStorageOperations } from "../../types";
|
|
2
2
|
import { ContextPlugin } from "@webiny/handler";
|
|
3
|
-
export interface
|
|
3
|
+
export interface CreateAdminCrudsParams {
|
|
4
4
|
storageOperations: HeadlessCmsStorageOperations;
|
|
5
5
|
}
|
|
6
|
-
export declare const createAdminCruds: (params:
|
|
6
|
+
export declare const createAdminCruds: (params: CreateAdminCrudsParams) => ContextPlugin<CmsContext>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":["debug","process","env","DEBUG","createAdminCruds","params","storageOperations","ContextPlugin","context","cms","console","log","getLocale","getIdentity","security","getTenant","tenancy","getCurrentTenant","plugins","length","register","init"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;AACA;;;;;;AAEA,MAAMA,KAAK,GAAGC,OAAO,CAACC,GAAR,CAAYC,KAAZ,KAAsB,MAApC;;AAMO,MAAMC,gBAAgB,GAAIC,MAAD,IAAoC;AAChE,QAAM;AAAEC,IAAAA;AAAF,MAAwBD,MAA9B;AACA,SAAO,IAAIE,sBAAJ,CAA8B,MAAMC,OAAN,IAAiB;AAClD;AACR;AACA;AACA;AACQ,QAAI,CAACA,OAAO,CAACC,GAAb,EAAkB;AACdT,MAAAA,KAAK,IACDU,OAAO,CAACC,GAAR,CACK,iGADL,CADJ;AAIA;AACH;;AACD,UAAMC,SAAS,GAAG,MAAM;AACpB,aAAOJ,OAAO,CAACC,GAAR,CAAYG,SAAZ,EAAP;AACH,KAFD;;AAIA,UAAMC,WAAW,GAAG,MAAM;AACtB,aAAOL,OAAO,CAACM,QAAR,CAAiBD,WAAjB,EAAP;AACH,KAFD;;AAIA,UAAME,SAAS,GAAG,MAAM;AACpB,aAAOP,OAAO,CAACQ,OAAR,CAAgBC,gBAAhB,EAAP;AACH,KAFD;;AAIA,QAAIX,iBAAiB,CAACY,OAAlB,IAA6BZ,iBAAiB,CAACY,OAAlB,CAA0BC,MAA1B,GAAmC,CAApE,EAAuE;AACnEX,MAAAA,OAAO,CAACU,OAAR,CAAgBE,QAAhB,CAAyBd,iBAAiB,CAACY,OAA3C;AACH;;AAEDV,IAAAA,OAAO,CAACC,GAAR,2FACOD,OAAO,CAACC,GADf;AAEIH,MAAAA;AAFJ,OAGO,8BAAiB;AAChBE,MAAAA,OADgB;AAEhBO,MAAAA,SAFgB;AAGhBF,MAAAA,WAHgB;AAIhBP,MAAAA;AAJgB,KAAjB,CAHP,GASO,kCAAmB;AAClBE,MAAAA,OADkB;AAElBO,MAAAA,SAFkB;AAGlBH,MAAAA,SAHkB;AAIlBN,MAAAA;AAJkB,KAAnB,CATP,GAeO,8CAAsB;AACrBE,MAAAA,OADqB;AAErBO,MAAAA,SAFqB;AAGrBH,MAAAA,SAHqB;AAIrBC,MAAAA,WAJqB;AAKrBP,MAAAA;AALqB,KAAtB,CAfP,GAsBO,oCAAiB;AAChBE,MAAAA,OADgB;AAEhBO,MAAAA,SAFgB;AAGhBH,MAAAA,SAHgB;AAIhBC,MAAAA,WAJgB;AAKhBP,MAAAA;AALgB,KAAjB,CAtBP,GA6BO,0CAAuB;AACtBE,MAAAA,OADsB;AAEtBK,MAAAA,WAFsB;AAGtBP,MAAAA;AAHsB,KAAvB,CA7BP;;AAoCA,QAAI,CAACA,iBAAiB,CAACe,IAAvB,EAA6B;AACzB;AACH;;AACD,UAAMf,iBAAiB,CAACe,IAAlB,CAAuBb,OAAO,CAACC,GAA/B,CAAN;AACH,GApEM,CAAP;AAqEH,CAvEM","sourcesContent":["import { createSettingsCrud } from \"./settings.crud\";\nimport { createSystemCrud } from \"./system.crud\";\nimport { CmsContext, HeadlessCmsStorageOperations } from \"~/types\";\nimport { ContextPlugin } from \"@webiny/handler\";\nimport { createModelGroupsCrud } from \"~/content/plugins/crud/contentModelGroup.crud\";\nimport { createModelsCrud } from \"~/content/plugins/crud/contentModel.crud\";\nimport { createContentEntryCrud } from \"~/content/plugins/crud/contentEntry.crud\";\n\nconst debug = process.env.DEBUG === \"true\";\n\nexport interface CreateAdminCrudsParams {\n storageOperations: HeadlessCmsStorageOperations;\n}\n\nexport const createAdminCruds = (params: CreateAdminCrudsParams) => {\n const { storageOperations } = params;\n return new ContextPlugin<CmsContext>(async context => {\n /**\n * This should never happen in the actual project.\n * It is to make sure that we load setup context before the CRUD init in our internal code.\n */\n if (!context.cms) {\n debug &&\n console.log(\n `Missing initial \"cms\" on the context. Make sure that you set it up before creating Admin CRUDs.`\n );\n return;\n }\n const getLocale = () => {\n return context.cms.getLocale();\n };\n\n const getIdentity = () => {\n return context.security.getIdentity();\n };\n\n const getTenant = () => {\n return context.tenancy.getCurrentTenant();\n };\n\n if (storageOperations.plugins && storageOperations.plugins.length > 0) {\n context.plugins.register(storageOperations.plugins);\n }\n\n context.cms = {\n ...context.cms,\n storageOperations,\n ...createSystemCrud({\n context,\n getTenant,\n getIdentity,\n storageOperations\n }),\n ...createSettingsCrud({\n context,\n getTenant,\n getLocale,\n storageOperations\n }),\n ...createModelGroupsCrud({\n context,\n getTenant,\n getLocale,\n getIdentity,\n storageOperations\n }),\n ...createModelsCrud({\n context,\n getTenant,\n getLocale,\n getIdentity,\n storageOperations\n }),\n ...createContentEntryCrud({\n context,\n getIdentity,\n storageOperations\n })\n };\n\n if (!storageOperations.init) {\n return;\n }\n await storageOperations.init(context.cms);\n });\n};\n"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { CmsContext, HeadlessCmsStorageOperations, CmsSettingsContext } from "../../types";
|
|
2
2
|
import { Tenant } from "@webiny/api-tenancy/types";
|
|
3
3
|
import { I18NLocale } from "@webiny/api-i18n/types";
|
|
4
|
-
export interface
|
|
4
|
+
export interface CreateSettingsCrudParams {
|
|
5
5
|
getTenant: () => Tenant;
|
|
6
6
|
getLocale: () => I18NLocale;
|
|
7
7
|
storageOperations: HeadlessCmsStorageOperations;
|
|
8
8
|
context: CmsContext;
|
|
9
9
|
}
|
|
10
|
-
export declare const createSettingsCrud: (params:
|
|
10
|
+
export declare const createSettingsCrud: (params: CreateSettingsCrudParams) => CmsSettingsContext;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["settings.crud.ts"],"names":["createSettingsCrud","params","storageOperations","context","getTenant","getLocale","checkPermissions","utils","getSettings","settings","get","tenant","id","locale","code","updateModelLastChange","original","contentModelLastChange","Date","create","update","getModelLastChange","ex","console","log","error","message","data"],"mappings":";;;;;;;;;;;AAAA;;;;;;;;;;AAiBO,MAAMA,kBAAkB,GAAIC,MAAD,IAA0D;AACxF,QAAM;AAAEC,IAAAA,iBAAF;AAAqBC,IAAAA,OAArB;AAA8BC,IAAAA,SAA9B;AAAyCC,IAAAA;AAAzC,MAAuDJ,MAA7D;;AAEA,QAAMK,gBAAgB,GAAG,MAAsC;AAC3D,WAAOC,KAAK,CAACD,gBAAN,CAAuBH,OAAvB,EAAgC,cAAhC,CAAP;AACH,GAFD;;AAIA,SAAO;AACHK,IAAAA,WAAW,EAAE,YAAyC;AAClD,YAAMF,gBAAgB,EAAtB;AACA,aAAO,MAAMJ,iBAAiB,CAACO,QAAlB,CAA2BC,GAA3B,CAA+B;AACxCC,QAAAA,MAAM,EAAEP,SAAS,GAAGQ,EADoB;AAExCC,QAAAA,MAAM,EAAER,SAAS,GAAGS;AAFoB,OAA/B,CAAb;AAIH,KAPE;AAQHC,IAAAA,qBAAqB,EAAE,YAA2B;AAC9C,YAAMC,QAAQ,GAAG,MAAMd,iBAAiB,CAACO,QAAlB,CAA2BC,GAA3B,CAA+B;AAClDC,QAAAA,MAAM,EAAEP,SAAS,GAAGQ,EAD8B;AAElDC,QAAAA,MAAM,EAAER,SAAS,GAAGS;AAF8B,OAA/B,CAAvB;;AAKA,YAAML,QAAqB,mCACnBO,QAAQ,IAAI,EADO;AAEvBC,QAAAA,sBAAsB,EAAE,IAAIC,IAAJ,EAFD;AAGvBP,QAAAA,MAAM,EAAEP,SAAS,GAAGQ,EAHG;AAIvBC,QAAAA,MAAM,EAAER,SAAS,GAAGS;AAJG,QAA3B;;AAOA,UAAI,CAACE,QAAL,EAAe;AACX,cAAMd,iBAAiB,CAACO,QAAlB,CAA2BU,MAA3B,CAAkC;AAAEV,UAAAA;AAAF,SAAlC,CAAN;AACA;AACH;;AAED,YAAMP,iBAAiB,CAACO,QAAlB,CAA2BW,MAA3B,CAAkC;AACpCJ,QAAAA,QADoC;AAEpCP,QAAAA;AAFoC,OAAlC,CAAN;AAIH,KA9BE;AA+BHY,IAAAA,kBAAkB,EAAE,YAA2B;AAC3C,UAAI;AACA,cAAMZ,QAAQ,GAAG,MAAMP,iBAAiB,CAACO,QAAlB,CAA2BC,GAA3B,CAA+B;AAClDC,UAAAA,MAAM,EAAEP,SAAS,GAAGQ,EAD8B;AAElDC,UAAAA,MAAM,EAAER,SAAS,GAAGS;AAF8B,SAA/B,CAAvB;;AAIA,YAAI,CAACL,QAAD,IAAa,CAACA,QAAQ,CAACQ,sBAA3B,EAAmD;AAC/C,iBAAO,IAAIC,IAAJ,EAAP;AACH;;AACD,eAAOT,QAAQ,CAACQ,sBAAhB;AACH,OATD,CASE,OAAOK,EAAP,EAAW;AACTC,QAAAA,OAAO,CAACC,GAAR,CAAY;AACRC,UAAAA,KAAK,EAAE;AACHC,YAAAA,OAAO,EAAEJ,EAAE,CAACI,OADT;AAEHZ,YAAAA,IAAI,EAAEQ,EAAE,CAACR,IAAH,IAAW,2CAFd;AAGHa,YAAAA,IAAI,EAAEL;AAHH;AADC,SAAZ;AAOH;;AACD,aAAO,IAAIJ,IAAJ,EAAP;AACH;AAnDE,GAAP;AAqDH,CA5DM","sourcesContent":["import * as utils from \"~/utils\";\nimport {\n CmsContext,\n CmsSettingsPermission,\n CmsSettings,\n HeadlessCmsStorageOperations,\n CmsSettingsContext\n} from \"~/types\";\nimport { Tenant } from \"@webiny/api-tenancy/types\";\nimport { I18NLocale } from \"@webiny/api-i18n/types\";\n\nexport interface CreateSettingsCrudParams {\n getTenant: () => Tenant;\n getLocale: () => I18NLocale;\n storageOperations: HeadlessCmsStorageOperations;\n context: CmsContext;\n}\nexport const createSettingsCrud = (params: CreateSettingsCrudParams): CmsSettingsContext => {\n const { storageOperations, context, getTenant, getLocale } = params;\n\n const checkPermissions = (): Promise<CmsSettingsPermission> => {\n return utils.checkPermissions(context, \"cms.settings\");\n };\n\n return {\n getSettings: async (): Promise<CmsSettings | null> => {\n await checkPermissions();\n return await storageOperations.settings.get({\n tenant: getTenant().id,\n locale: getLocale().code\n });\n },\n updateModelLastChange: async (): Promise<void> => {\n const original = await storageOperations.settings.get({\n tenant: getTenant().id,\n locale: getLocale().code\n });\n\n const settings: CmsSettings = {\n ...(original || {}),\n contentModelLastChange: new Date(),\n tenant: getTenant().id,\n locale: getLocale().code\n };\n\n if (!original) {\n await storageOperations.settings.create({ settings });\n return;\n }\n\n await storageOperations.settings.update({\n original,\n settings\n });\n },\n getModelLastChange: async (): Promise<Date> => {\n try {\n const settings = await storageOperations.settings.get({\n tenant: getTenant().id,\n locale: getLocale().code\n });\n if (!settings || !settings.contentModelLastChange) {\n return new Date();\n }\n return settings.contentModelLastChange;\n } catch (ex) {\n console.log({\n error: {\n message: ex.message,\n code: ex.code || \"COULD_NOT_FETCH_CONTENT_MODEL_LAST_CHANGE\",\n data: ex\n }\n });\n }\n return new Date();\n }\n };\n};\n"]}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { CmsContext, CmsSystemContext, HeadlessCmsStorageOperations } from "../../types";
|
|
2
2
|
import { Tenant } from "@webiny/api-tenancy/types";
|
|
3
3
|
import { SecurityIdentity } from "@webiny/api-security/types";
|
|
4
|
-
|
|
4
|
+
interface CreateSystemCrudParams {
|
|
5
5
|
getTenant: () => Tenant;
|
|
6
6
|
storageOperations: HeadlessCmsStorageOperations;
|
|
7
7
|
context: CmsContext;
|
|
8
8
|
getIdentity: () => SecurityIdentity;
|
|
9
9
|
}
|
|
10
|
-
export declare const createSystemCrud: (params:
|
|
10
|
+
export declare const createSystemCrud: (params: CreateSystemCrudParams) => CmsSystemContext;
|
|
11
|
+
export {};
|
|
@@ -52,7 +52,7 @@ const createSystemCrud = params => {
|
|
|
52
52
|
const system = await storageOperations.system.get({
|
|
53
53
|
tenant: getTenant().id
|
|
54
54
|
});
|
|
55
|
-
return system ? system.version : null;
|
|
55
|
+
return system ? system.version || null : null;
|
|
56
56
|
};
|
|
57
57
|
|
|
58
58
|
const setVersion = async version => {
|
|
@@ -170,7 +170,7 @@ const createSystemCrud = params => {
|
|
|
170
170
|
|
|
171
171
|
const upgradePlugins = context.plugins.byType("api-upgrade").filter(pl => pl.app === "headless-cms");
|
|
172
172
|
const installedAppVersion = await this.getSystemVersion();
|
|
173
|
-
let plugin;
|
|
173
|
+
let plugin = undefined;
|
|
174
174
|
|
|
175
175
|
try {
|
|
176
176
|
plugin = (0, _apiUpgrade.getApplicablePlugin)({
|