@webiny/api-headless-cms 0.0.0-unstable.3386f66516 → 0.0.0-unstable.3bc8100a7f
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 +44 -0
- package/constants.js +70 -0
- package/constants.js.map +1 -0
- package/context.d.ts +1 -1
- package/context.js +121 -76
- package/context.js.map +1 -1
- package/crud/AccessControl/AccessControl.d.ts +98 -0
- package/crud/AccessControl/AccessControl.js +542 -0
- package/crud/AccessControl/AccessControl.js.map +1 -0
- package/crud/AccessControl/README.md +47 -0
- package/crud/AccessControl/groups-own.png +0 -0
- package/crud/AccessControl/models-own.png +0 -0
- package/crud/contentEntry/abstractions/IDeleteEntry.d.ts +4 -0
- package/crud/contentEntry/abstractions/IDeleteEntry.js +7 -0
- package/crud/contentEntry/abstractions/IDeleteEntry.js.map +1 -0
- package/crud/contentEntry/abstractions/IDeleteEntryOperation.d.ts +4 -0
- package/crud/contentEntry/abstractions/IDeleteEntryOperation.js +7 -0
- package/crud/contentEntry/abstractions/IDeleteEntryOperation.js.map +1 -0
- package/crud/contentEntry/abstractions/IGetEntriesByIds.d.ts +4 -0
- package/crud/contentEntry/abstractions/IGetEntriesByIds.js +7 -0
- package/crud/contentEntry/abstractions/IGetEntriesByIds.js.map +1 -0
- package/crud/contentEntry/abstractions/IGetEntry.d.ts +4 -0
- package/crud/contentEntry/abstractions/IGetEntry.js +7 -0
- package/crud/contentEntry/abstractions/IGetEntry.js.map +1 -0
- package/crud/contentEntry/abstractions/IGetLatestEntriesByIds.d.ts +4 -0
- package/crud/contentEntry/abstractions/IGetLatestEntriesByIds.js +7 -0
- package/crud/contentEntry/abstractions/IGetLatestEntriesByIds.js.map +1 -0
- package/crud/contentEntry/abstractions/IGetLatestRevisionByEntryId.d.ts +4 -0
- package/crud/contentEntry/abstractions/IGetLatestRevisionByEntryId.js +7 -0
- package/crud/contentEntry/abstractions/IGetLatestRevisionByEntryId.js.map +1 -0
- package/crud/contentEntry/abstractions/IGetPreviousRevisionByEntryId.d.ts +4 -0
- package/crud/contentEntry/abstractions/IGetPreviousRevisionByEntryId.js +7 -0
- package/crud/contentEntry/abstractions/IGetPreviousRevisionByEntryId.js.map +1 -0
- package/crud/contentEntry/abstractions/IGetPublishedEntriesByIds.d.ts +4 -0
- package/crud/contentEntry/abstractions/IGetPublishedEntriesByIds.js +7 -0
- package/crud/contentEntry/abstractions/IGetPublishedEntriesByIds.js.map +1 -0
- package/crud/contentEntry/abstractions/IGetPublishedRevisionByEntryId.d.ts +4 -0
- package/crud/contentEntry/abstractions/IGetPublishedRevisionByEntryId.js +7 -0
- package/crud/contentEntry/abstractions/IGetPublishedRevisionByEntryId.js.map +1 -0
- package/crud/contentEntry/abstractions/IGetRevisionById.d.ts +4 -0
- package/crud/contentEntry/abstractions/IGetRevisionById.js +7 -0
- package/crud/contentEntry/abstractions/IGetRevisionById.js.map +1 -0
- package/crud/contentEntry/abstractions/IGetRevisionsByEntryId.d.ts +4 -0
- package/crud/contentEntry/abstractions/IGetRevisionsByEntryId.js +7 -0
- package/crud/contentEntry/abstractions/IGetRevisionsByEntryId.js.map +1 -0
- package/crud/contentEntry/abstractions/IListEntries.d.ts +4 -0
- package/crud/contentEntry/abstractions/IListEntries.js +7 -0
- package/crud/contentEntry/abstractions/IListEntries.js.map +1 -0
- package/crud/contentEntry/abstractions/IListEntriesOperation.d.ts +4 -0
- package/crud/contentEntry/abstractions/IListEntriesOperation.js +7 -0
- package/crud/contentEntry/abstractions/IListEntriesOperation.js.map +1 -0
- package/crud/contentEntry/abstractions/IMoveEntryToBinOperation.d.ts +4 -0
- package/crud/contentEntry/abstractions/IMoveEntryToBinOperation.js +7 -0
- package/crud/contentEntry/abstractions/IMoveEntryToBinOperation.js.map +1 -0
- package/crud/contentEntry/abstractions/IRestoreEntryFromBin.d.ts +4 -0
- package/crud/contentEntry/abstractions/IRestoreEntryFromBin.js +7 -0
- package/crud/contentEntry/abstractions/IRestoreEntryFromBin.js.map +1 -0
- package/crud/contentEntry/abstractions/IRestoreEntryFromBinOperation.d.ts +4 -0
- package/crud/contentEntry/abstractions/IRestoreEntryFromBinOperation.js +7 -0
- package/crud/contentEntry/abstractions/IRestoreEntryFromBinOperation.js.map +1 -0
- package/crud/contentEntry/abstractions/index.d.ts +16 -0
- package/crud/contentEntry/abstractions/index.js +183 -0
- package/crud/contentEntry/abstractions/index.js.map +1 -0
- package/crud/contentEntry/afterDelete.d.ts +6 -2
- package/crud/contentEntry/afterDelete.js +16 -5
- package/crud/contentEntry/afterDelete.js.map +1 -1
- package/crud/contentEntry/beforeCreate.d.ts +2 -2
- package/crud/contentEntry/beforeCreate.js +2 -3
- package/crud/contentEntry/beforeCreate.js.map +1 -1
- package/crud/contentEntry/beforeUpdate.d.ts +2 -2
- package/crud/contentEntry/beforeUpdate.js +2 -3
- package/crud/contentEntry/beforeUpdate.js.map +1 -1
- package/crud/contentEntry/entryDataFactories/createEntryData.d.ts +20 -0
- package/crud/contentEntry/entryDataFactories/createEntryData.js +254 -0
- package/crud/contentEntry/entryDataFactories/createEntryData.js.map +1 -0
- package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.d.ts +23 -0
- package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.js +157 -0
- package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.js.map +1 -0
- package/crud/contentEntry/entryDataFactories/createPublishEntryData.d.ts +13 -0
- package/crud/contentEntry/entryDataFactories/createPublishEntryData.js +63 -0
- package/crud/contentEntry/entryDataFactories/createPublishEntryData.js.map +1 -0
- package/crud/contentEntry/entryDataFactories/createRepublishEntryData.d.ts +12 -0
- package/crud/contentEntry/entryDataFactories/createRepublishEntryData.js +59 -0
- package/crud/contentEntry/entryDataFactories/createRepublishEntryData.js.map +1 -0
- package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.d.ts +12 -0
- package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.js +40 -0
- package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.js.map +1 -0
- package/crud/contentEntry/entryDataFactories/createUpdateEntryData.d.ts +20 -0
- package/crud/contentEntry/entryDataFactories/createUpdateEntryData.js +130 -0
- package/crud/contentEntry/entryDataFactories/createUpdateEntryData.js.map +1 -0
- package/crud/contentEntry/entryDataFactories/index.d.ts +8 -0
- package/crud/contentEntry/entryDataFactories/index.js +95 -0
- package/crud/contentEntry/entryDataFactories/index.js.map +1 -0
- package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.d.ts +5 -0
- package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.js +36 -0
- package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.js.map +1 -0
- package/crud/contentEntry/entryDataFactories/statuses.d.ts +4 -0
- package/crud/contentEntry/entryDataFactories/statuses.js +12 -0
- package/crud/contentEntry/entryDataFactories/statuses.js.map +1 -0
- package/crud/contentEntry/entryDataValidation.d.ts +5 -3
- package/crud/contentEntry/entryDataValidation.js +222 -83
- package/crud/contentEntry/entryDataValidation.js.map +1 -1
- package/crud/contentEntry/markLockedFields.d.ts +1 -1
- package/crud/contentEntry/markLockedFields.js +31 -37
- package/crud/contentEntry/markLockedFields.js.map +1 -1
- package/crud/contentEntry/referenceFieldsMapping.d.ts +7 -1
- package/crud/contentEntry/referenceFieldsMapping.js +143 -147
- package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
- package/crud/contentEntry/searchableFields.d.ts +2 -2
- package/crud/contentEntry/searchableFields.js +5 -15
- package/crud/contentEntry/searchableFields.js.map +1 -1
- package/crud/contentEntry/useCases/DeleteEntry/DeleteEntry.d.ts +10 -0
- package/crud/contentEntry/useCases/DeleteEntry/DeleteEntry.js +58 -0
- package/crud/contentEntry/useCases/DeleteEntry/DeleteEntry.js.map +1 -0
- package/crud/contentEntry/useCases/DeleteEntry/DeleteEntryOperation.d.ts +7 -0
- package/crud/contentEntry/useCases/DeleteEntry/DeleteEntryOperation.js +17 -0
- package/crud/contentEntry/useCases/DeleteEntry/DeleteEntryOperation.js.map +1 -0
- package/crud/contentEntry/useCases/DeleteEntry/DeleteEntryOperationWithEvents.d.ts +9 -0
- package/crud/contentEntry/useCases/DeleteEntry/DeleteEntryOperationWithEvents.js +45 -0
- package/crud/contentEntry/useCases/DeleteEntry/DeleteEntryOperationWithEvents.js.map +1 -0
- package/crud/contentEntry/useCases/DeleteEntry/DeleteEntrySecure.d.ts +9 -0
- package/crud/contentEntry/useCases/DeleteEntry/DeleteEntrySecure.js +22 -0
- package/crud/contentEntry/useCases/DeleteEntry/DeleteEntrySecure.js.map +1 -0
- package/crud/contentEntry/useCases/DeleteEntry/MoveEntryToBin.d.ts +10 -0
- package/crud/contentEntry/useCases/DeleteEntry/MoveEntryToBin.js +33 -0
- package/crud/contentEntry/useCases/DeleteEntry/MoveEntryToBin.js.map +1 -0
- package/crud/contentEntry/useCases/DeleteEntry/MoveEntryToBinOperation.d.ts +7 -0
- package/crud/contentEntry/useCases/DeleteEntry/MoveEntryToBinOperation.js +17 -0
- package/crud/contentEntry/useCases/DeleteEntry/MoveEntryToBinOperation.js.map +1 -0
- package/crud/contentEntry/useCases/DeleteEntry/MoveEntryToBinOperationWithEvents.d.ts +9 -0
- package/crud/contentEntry/useCases/DeleteEntry/MoveEntryToBinOperationWithEvents.js +45 -0
- package/crud/contentEntry/useCases/DeleteEntry/MoveEntryToBinOperationWithEvents.js.map +1 -0
- package/crud/contentEntry/useCases/DeleteEntry/TransformEntryDelete.d.ts +6 -0
- package/crud/contentEntry/useCases/DeleteEntry/TransformEntryDelete.js +21 -0
- package/crud/contentEntry/useCases/DeleteEntry/TransformEntryDelete.js.map +1 -0
- package/crud/contentEntry/useCases/DeleteEntry/TransformEntryMoveToBin.d.ts +9 -0
- package/crud/contentEntry/useCases/DeleteEntry/TransformEntryMoveToBin.js +54 -0
- package/crud/contentEntry/useCases/DeleteEntry/TransformEntryMoveToBin.js.map +1 -0
- package/crud/contentEntry/useCases/DeleteEntry/index.d.ts +28 -0
- package/crud/contentEntry/useCases/DeleteEntry/index.js +42 -0
- package/crud/contentEntry/useCases/DeleteEntry/index.js.map +1 -0
- package/crud/contentEntry/useCases/GetEntriesByIds/GetEntriesByIds.d.ts +7 -0
- package/crud/contentEntry/useCases/GetEntriesByIds/GetEntriesByIds.js +17 -0
- package/crud/contentEntry/useCases/GetEntriesByIds/GetEntriesByIds.js.map +1 -0
- package/crud/contentEntry/useCases/GetEntriesByIds/GetEntriesByIdsNotDeleted.d.ts +7 -0
- package/crud/contentEntry/useCases/GetEntriesByIds/GetEntriesByIdsNotDeleted.js +18 -0
- package/crud/contentEntry/useCases/GetEntriesByIds/GetEntriesByIdsNotDeleted.js.map +1 -0
- package/crud/contentEntry/useCases/GetEntriesByIds/GetEntriesByIdsSecure.d.ts +9 -0
- package/crud/contentEntry/useCases/GetEntriesByIds/GetEntriesByIdsSecure.js +28 -0
- package/crud/contentEntry/useCases/GetEntriesByIds/GetEntriesByIdsSecure.js.map +1 -0
- package/crud/contentEntry/useCases/GetEntriesByIds/index.d.ts +11 -0
- package/crud/contentEntry/useCases/GetEntriesByIds/index.js +20 -0
- package/crud/contentEntry/useCases/GetEntriesByIds/index.js.map +1 -0
- package/crud/contentEntry/useCases/GetLatestEntriesByIds/GetLatestEntriesByIds.d.ts +7 -0
- package/crud/contentEntry/useCases/GetLatestEntriesByIds/GetLatestEntriesByIds.js +17 -0
- package/crud/contentEntry/useCases/GetLatestEntriesByIds/GetLatestEntriesByIds.js.map +1 -0
- package/crud/contentEntry/useCases/GetLatestEntriesByIds/GetLatestEntriesByIdsNotDeleted.d.ts +7 -0
- package/crud/contentEntry/useCases/GetLatestEntriesByIds/GetLatestEntriesByIdsNotDeleted.js +18 -0
- package/crud/contentEntry/useCases/GetLatestEntriesByIds/GetLatestEntriesByIdsNotDeleted.js.map +1 -0
- package/crud/contentEntry/useCases/GetLatestEntriesByIds/GetLatestEntriesByIdsSecure.d.ts +9 -0
- package/crud/contentEntry/useCases/GetLatestEntriesByIds/GetLatestEntriesByIdsSecure.js +28 -0
- package/crud/contentEntry/useCases/GetLatestEntriesByIds/GetLatestEntriesByIdsSecure.js.map +1 -0
- package/crud/contentEntry/useCases/GetLatestEntriesByIds/index.d.ts +11 -0
- package/crud/contentEntry/useCases/GetLatestEntriesByIds/index.js +20 -0
- package/crud/contentEntry/useCases/GetLatestEntriesByIds/index.js.map +1 -0
- package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/GetLatestRevisionByEntryId.d.ts +7 -0
- package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/GetLatestRevisionByEntryId.js +17 -0
- package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/GetLatestRevisionByEntryId.js.map +1 -0
- package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdDeleted.d.ts +7 -0
- package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdDeleted.js +21 -0
- package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdDeleted.js.map +1 -0
- package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdNotDeleted.d.ts +7 -0
- package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdNotDeleted.js +21 -0
- package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdNotDeleted.js.map +1 -0
- package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/index.d.ts +13 -0
- package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/index.js +22 -0
- package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/index.js.map +1 -0
- package/crud/contentEntry/useCases/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryId.d.ts +7 -0
- package/crud/contentEntry/useCases/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryId.js +17 -0
- package/crud/contentEntry/useCases/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryId.js.map +1 -0
- package/crud/contentEntry/useCases/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdNotDeleted.d.ts +7 -0
- package/crud/contentEntry/useCases/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdNotDeleted.js +21 -0
- package/crud/contentEntry/useCases/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdNotDeleted.js.map +1 -0
- package/crud/contentEntry/useCases/GetPreviousRevisionByEntryId/index.d.ts +9 -0
- package/crud/contentEntry/useCases/GetPreviousRevisionByEntryId/index.js +18 -0
- package/crud/contentEntry/useCases/GetPreviousRevisionByEntryId/index.js.map +1 -0
- package/crud/contentEntry/useCases/GetPublishedEntriesByIds/GetPublishedEntriesByIds.d.ts +7 -0
- package/crud/contentEntry/useCases/GetPublishedEntriesByIds/GetPublishedEntriesByIds.js +17 -0
- package/crud/contentEntry/useCases/GetPublishedEntriesByIds/GetPublishedEntriesByIds.js.map +1 -0
- package/crud/contentEntry/useCases/GetPublishedEntriesByIds/GetPublishedEntriesByIdsNotDeleted.d.ts +7 -0
- package/crud/contentEntry/useCases/GetPublishedEntriesByIds/GetPublishedEntriesByIdsNotDeleted.js +18 -0
- package/crud/contentEntry/useCases/GetPublishedEntriesByIds/GetPublishedEntriesByIdsNotDeleted.js.map +1 -0
- package/crud/contentEntry/useCases/GetPublishedEntriesByIds/GetPublishedEntriesByIdsSecure.d.ts +9 -0
- package/crud/contentEntry/useCases/GetPublishedEntriesByIds/GetPublishedEntriesByIdsSecure.js +28 -0
- package/crud/contentEntry/useCases/GetPublishedEntriesByIds/GetPublishedEntriesByIdsSecure.js.map +1 -0
- package/crud/contentEntry/useCases/GetPublishedEntriesByIds/index.d.ts +11 -0
- package/crud/contentEntry/useCases/GetPublishedEntriesByIds/index.js +20 -0
- package/crud/contentEntry/useCases/GetPublishedEntriesByIds/index.js.map +1 -0
- package/crud/contentEntry/useCases/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryId.d.ts +7 -0
- package/crud/contentEntry/useCases/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryId.js +17 -0
- package/crud/contentEntry/useCases/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryId.js.map +1 -0
- package/crud/contentEntry/useCases/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdNotDeleted.d.ts +7 -0
- package/crud/contentEntry/useCases/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdNotDeleted.js +21 -0
- package/crud/contentEntry/useCases/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdNotDeleted.js.map +1 -0
- package/crud/contentEntry/useCases/GetPublishedRevisionByEntryId/index.d.ts +9 -0
- package/crud/contentEntry/useCases/GetPublishedRevisionByEntryId/index.js +18 -0
- package/crud/contentEntry/useCases/GetPublishedRevisionByEntryId/index.js.map +1 -0
- package/crud/contentEntry/useCases/GetRevisionById/GetRevisionById.d.ts +7 -0
- package/crud/contentEntry/useCases/GetRevisionById/GetRevisionById.js +17 -0
- package/crud/contentEntry/useCases/GetRevisionById/GetRevisionById.js.map +1 -0
- package/crud/contentEntry/useCases/GetRevisionById/GetRevisionByIdNotDeleted.d.ts +7 -0
- package/crud/contentEntry/useCases/GetRevisionById/GetRevisionByIdNotDeleted.js +21 -0
- package/crud/contentEntry/useCases/GetRevisionById/GetRevisionByIdNotDeleted.js.map +1 -0
- package/crud/contentEntry/useCases/GetRevisionById/index.d.ts +9 -0
- package/crud/contentEntry/useCases/GetRevisionById/index.js +18 -0
- package/crud/contentEntry/useCases/GetRevisionById/index.js.map +1 -0
- package/crud/contentEntry/useCases/GetRevisionsByEntryId/GetRevisionsByEntryId.d.ts +7 -0
- package/crud/contentEntry/useCases/GetRevisionsByEntryId/GetRevisionsByEntryId.js +17 -0
- package/crud/contentEntry/useCases/GetRevisionsByEntryId/GetRevisionsByEntryId.js.map +1 -0
- package/crud/contentEntry/useCases/GetRevisionsByEntryId/GetRevisionsByEntryIdNotDeleted.d.ts +7 -0
- package/crud/contentEntry/useCases/GetRevisionsByEntryId/GetRevisionsByEntryIdNotDeleted.js +18 -0
- package/crud/contentEntry/useCases/GetRevisionsByEntryId/GetRevisionsByEntryIdNotDeleted.js.map +1 -0
- package/crud/contentEntry/useCases/GetRevisionsByEntryId/index.d.ts +11 -0
- package/crud/contentEntry/useCases/GetRevisionsByEntryId/index.js +18 -0
- package/crud/contentEntry/useCases/GetRevisionsByEntryId/index.js.map +1 -0
- package/crud/contentEntry/useCases/ListEntries/GetEntry.d.ts +7 -0
- package/crud/contentEntry/useCases/ListEntries/GetEntry.js +29 -0
- package/crud/contentEntry/useCases/ListEntries/GetEntry.js.map +1 -0
- package/crud/contentEntry/useCases/ListEntries/GetEntrySecure.d.ts +11 -0
- package/crud/contentEntry/useCases/ListEntries/GetEntrySecure.js +38 -0
- package/crud/contentEntry/useCases/ListEntries/GetEntrySecure.js.map +1 -0
- package/crud/contentEntry/useCases/ListEntries/ListEntries.d.ts +7 -0
- package/crud/contentEntry/useCases/ListEntries/ListEntries.js +62 -0
- package/crud/contentEntry/useCases/ListEntries/ListEntries.js.map +1 -0
- package/crud/contentEntry/useCases/ListEntries/ListEntriesOperation.d.ts +7 -0
- package/crud/contentEntry/useCases/ListEntries/ListEntriesOperation.js +17 -0
- package/crud/contentEntry/useCases/ListEntries/ListEntriesOperation.js.map +1 -0
- package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationDeleted.d.ts +7 -0
- package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationDeleted.js +24 -0
- package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationDeleted.js.map +1 -0
- package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationLatest.d.ts +7 -0
- package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationLatest.js +25 -0
- package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationLatest.js.map +1 -0
- package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationNotDeleted.d.ts +7 -0
- package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationNotDeleted.js +24 -0
- package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationNotDeleted.js.map +1 -0
- package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationPublished.d.ts +7 -0
- package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationPublished.js +24 -0
- package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationPublished.js.map +1 -0
- package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithEvents.d.ts +9 -0
- package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithEvents.js +22 -0
- package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithEvents.js.map +1 -0
- package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithSearchableFields.d.ts +8 -0
- package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithSearchableFields.js +27 -0
- package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithSearchableFields.js.map +1 -0
- package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithSort.d.ts +8 -0
- package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithSort.js +26 -0
- package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithSort.js.map +1 -0
- package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithStatusCheck.d.ts +7 -0
- package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithStatusCheck.js +36 -0
- package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithStatusCheck.js.map +1 -0
- package/crud/contentEntry/useCases/ListEntries/ListEntriesSecure.d.ts +11 -0
- package/crud/contentEntry/useCases/ListEntries/ListEntriesSecure.js +41 -0
- package/crud/contentEntry/useCases/ListEntries/ListEntriesSecure.js.map +1 -0
- package/crud/contentEntry/useCases/ListEntries/index.d.ts +24 -0
- package/crud/contentEntry/useCases/ListEntries/index.js +61 -0
- package/crud/contentEntry/useCases/ListEntries/index.js.map +1 -0
- package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBin.d.ts +10 -0
- package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBin.js +37 -0
- package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBin.js.map +1 -0
- package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBinOperation.d.ts +7 -0
- package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBinOperation.js +17 -0
- package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBinOperation.js.map +1 -0
- package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBinOperationWithEvents.d.ts +9 -0
- package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBinOperationWithEvents.js +42 -0
- package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBinOperationWithEvents.js.map +1 -0
- package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBinSecure.d.ts +9 -0
- package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBinSecure.js +22 -0
- package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBinSecure.js.map +1 -0
- package/crud/contentEntry/useCases/RestoreEntryFromBin/TransformEntryRestoreFromBin.d.ts +9 -0
- package/crud/contentEntry/useCases/RestoreEntryFromBin/TransformEntryRestoreFromBin.js +53 -0
- package/crud/contentEntry/useCases/RestoreEntryFromBin/TransformEntryRestoreFromBin.js.map +1 -0
- package/crud/contentEntry/useCases/RestoreEntryFromBin/index.d.ts +23 -0
- package/crud/contentEntry/useCases/RestoreEntryFromBin/index.js +24 -0
- package/crud/contentEntry/useCases/RestoreEntryFromBin/index.js.map +1 -0
- package/crud/contentEntry/useCases/index.d.ts +11 -0
- package/crud/contentEntry/useCases/index.js +128 -0
- package/crud/contentEntry/useCases/index.js.map +1 -0
- package/crud/contentEntry.crud.d.ts +9 -7
- package/crud/contentEntry.crud.js +1047 -1115
- package/crud/contentEntry.crud.js.map +1 -1
- package/crud/contentModel/beforeCreate.d.ts +2 -2
- package/crud/contentModel/beforeCreate.js +49 -113
- package/crud/contentModel/beforeCreate.js.map +1 -1
- package/crud/contentModel/beforeDelete.d.ts +3 -5
- package/crud/contentModel/beforeDelete.js +51 -29
- package/crud/contentModel/beforeDelete.js.map +1 -1
- package/crud/contentModel/beforeUpdate.d.ts +2 -2
- package/crud/contentModel/beforeUpdate.js +30 -10
- package/crud/contentModel/beforeUpdate.js.map +1 -1
- package/crud/contentModel/compatibility/modelApiName.d.ts +3 -0
- package/crud/contentModel/compatibility/modelApiName.js +26 -0
- package/crud/contentModel/compatibility/modelApiName.js.map +1 -0
- package/crud/contentModel/contentModelManagerFactory.d.ts +2 -2
- package/crud/contentModel/contentModelManagerFactory.js +2 -7
- package/crud/contentModel/contentModelManagerFactory.js.map +1 -1
- package/crud/contentModel/createFieldStorageId.d.ts +1 -1
- package/crud/contentModel/createFieldStorageId.js +2 -3
- package/crud/contentModel/createFieldStorageId.js.map +1 -1
- package/crud/contentModel/defaultFields.d.ts +5 -0
- package/crud/contentModel/defaultFields.js +60 -0
- package/crud/contentModel/defaultFields.js.map +1 -0
- package/crud/contentModel/ensureTypeTag.d.ts +5 -0
- package/crud/contentModel/ensureTypeTag.js +21 -0
- package/crud/contentModel/ensureTypeTag.js.map +1 -0
- package/crud/contentModel/fields/descriptionField.d.ts +6 -0
- package/crud/contentModel/fields/descriptionField.js +30 -0
- package/crud/contentModel/fields/descriptionField.js.map +1 -0
- package/crud/contentModel/fields/getApplicableFieldById.d.ts +2 -0
- package/crud/contentModel/fields/getApplicableFieldById.js +15 -0
- package/crud/contentModel/fields/getApplicableFieldById.js.map +1 -0
- package/crud/contentModel/fields/imageField.d.ts +2 -0
- package/crud/contentModel/fields/imageField.js +25 -0
- package/crud/contentModel/fields/imageField.js.map +1 -0
- package/crud/contentModel/fields/titleField.d.ts +6 -0
- package/crud/contentModel/fields/titleField.js +31 -0
- package/crud/contentModel/fields/titleField.js.map +1 -0
- package/crud/contentModel/listModelsFromDatabase.d.ts +10 -0
- package/crud/contentModel/listModelsFromDatabase.js +38 -0
- package/crud/contentModel/listModelsFromDatabase.js.map +1 -0
- package/crud/contentModel/validate/endingAllowed.d.ts +6 -0
- package/crud/contentModel/validate/endingAllowed.js +28 -0
- package/crud/contentModel/validate/endingAllowed.js.map +1 -0
- package/crud/contentModel/validate/isModelEndingAllowed.d.ts +6 -0
- package/crud/contentModel/validate/isModelEndingAllowed.js +25 -0
- package/crud/contentModel/validate/isModelEndingAllowed.js.map +1 -0
- package/crud/contentModel/validate/modelId.d.ts +11 -0
- package/crud/contentModel/validate/modelId.js +38 -0
- package/crud/contentModel/validate/modelId.js.map +1 -0
- package/crud/contentModel/validate/pluralApiName.d.ts +7 -0
- package/crud/contentModel/validate/pluralApiName.js +26 -0
- package/crud/contentModel/validate/pluralApiName.js.map +1 -0
- package/crud/contentModel/validate/singularApiName.d.ts +7 -0
- package/crud/contentModel/validate/singularApiName.js +26 -0
- package/crud/contentModel/validate/singularApiName.js.map +1 -0
- package/crud/contentModel/validateModel.d.ts +2 -1
- package/crud/contentModel/validateModel.js +2 -8
- package/crud/contentModel/validateModel.js.map +1 -1
- package/crud/contentModel/validateModelFields.d.ts +2 -1
- package/crud/contentModel/validateModelFields.js +41 -134
- package/crud/contentModel/validateModelFields.js.map +1 -1
- package/crud/contentModel/validateStorageId.d.ts +1 -0
- package/crud/contentModel/validateStorageId.js +19 -0
- package/crud/contentModel/validateStorageId.js.map +1 -0
- package/crud/contentModel/validation.d.ts +626 -210
- package/crud/contentModel/validation.js +129 -33
- package/crud/contentModel/validation.js.map +1 -1
- package/crud/contentModel.crud.d.ts +6 -4
- package/crud/contentModel.crud.js +478 -500
- package/crud/contentModel.crud.js.map +1 -1
- package/crud/contentModelGroup/beforeCreate.d.ts +3 -3
- package/crud/contentModelGroup/beforeCreate.js +14 -12
- package/crud/contentModelGroup/beforeCreate.js.map +1 -1
- package/crud/contentModelGroup/beforeDelete.d.ts +3 -3
- package/crud/contentModelGroup/beforeDelete.js +2 -8
- package/crud/contentModelGroup/beforeDelete.js.map +1 -1
- package/crud/contentModelGroup/beforeUpdate.d.ts +3 -3
- package/crud/contentModelGroup/beforeUpdate.js +2 -5
- package/crud/contentModelGroup/beforeUpdate.js.map +1 -1
- package/crud/contentModelGroup/listGroupsFromDatabase.d.ts +8 -0
- package/crud/contentModelGroup/listGroupsFromDatabase.js +22 -0
- package/crud/contentModelGroup/listGroupsFromDatabase.js.map +1 -0
- package/crud/contentModelGroup/validation.d.ts +10 -7
- package/crud/contentModelGroup/validation.js +4 -10
- package/crud/contentModelGroup/validation.js.map +1 -1
- package/crud/contentModelGroup.crud.d.ts +6 -4
- package/crud/contentModelGroup.crud.js +259 -268
- package/crud/contentModelGroup.crud.js.map +1 -1
- package/crud/system.crud.d.ts +4 -4
- package/crud/system.crud.js +18 -106
- package/crud/system.crud.js.map +1 -1
- package/export/crud/exporting.d.ts +3 -0
- package/export/crud/exporting.js +49 -0
- package/export/crud/exporting.js.map +1 -0
- package/export/crud/importing.d.ts +3 -0
- package/export/crud/importing.js +79 -0
- package/export/crud/importing.js.map +1 -0
- package/export/crud/imports/importData.d.ts +14 -0
- package/export/crud/imports/importData.js +52 -0
- package/export/crud/imports/importData.js.map +1 -0
- package/export/crud/imports/importGroups.d.ts +8 -0
- package/export/crud/imports/importGroups.js +104 -0
- package/export/crud/imports/importGroups.js.map +1 -0
- package/export/crud/imports/importModels.d.ts +8 -0
- package/export/crud/imports/importModels.js +136 -0
- package/export/crud/imports/importModels.js.map +1 -0
- package/export/crud/imports/validateGroups.d.ts +8 -0
- package/export/crud/imports/validateGroups.js +112 -0
- package/export/crud/imports/validateGroups.js.map +1 -0
- package/export/crud/imports/validateInput.d.ts +19 -0
- package/export/crud/imports/validateInput.js +55 -0
- package/export/crud/imports/validateInput.js.map +1 -0
- package/export/crud/imports/validateModels.d.ts +12 -0
- package/export/crud/imports/validateModels.js +203 -0
- package/export/crud/imports/validateModels.js.map +1 -0
- package/export/crud/index.d.ts +4 -0
- package/export/crud/index.js +15 -0
- package/export/crud/index.js.map +1 -0
- package/export/crud/sanitize.d.ts +4 -0
- package/export/crud/sanitize.js +36 -0
- package/export/crud/sanitize.js.map +1 -0
- package/export/graphql/index.d.ts +3 -0
- package/export/graphql/index.js +188 -0
- package/export/graphql/index.js.map +1 -0
- package/export/index.d.ts +2 -0
- package/export/index.js +29 -0
- package/export/index.js.map +1 -0
- package/export/types.d.ts +113 -0
- package/export/types.js +21 -0
- package/export/types.js.map +1 -0
- package/fieldConverters/CmsModelDefaultFieldConverterPlugin.d.ts +5 -3
- package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +3 -19
- package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.d.ts +3 -2
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +25 -106
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -1
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.d.ts +3 -2
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +48 -92
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
- package/fieldConverters/index.d.ts +3 -0
- package/fieldConverters/index.js +5 -4
- package/fieldConverters/index.js.map +1 -1
- package/graphql/buildSchemaPlugins.d.ts +3 -3
- package/graphql/buildSchemaPlugins.js +9 -8
- package/graphql/buildSchemaPlugins.js.map +1 -1
- package/graphql/checkEndpointAccess.d.ts +2 -0
- package/graphql/checkEndpointAccess.js +20 -0
- package/graphql/checkEndpointAccess.js.map +1 -0
- package/graphql/createExecutableSchema.d.ts +2 -3
- package/graphql/createExecutableSchema.js +18 -13
- package/graphql/createExecutableSchema.js.map +1 -1
- package/graphql/createRequestBody.d.ts +2 -0
- package/graphql/createRequestBody.js +16 -0
- package/graphql/createRequestBody.js.map +1 -0
- package/graphql/formatErrorPayload.d.ts +1 -0
- package/graphql/formatErrorPayload.js +27 -0
- package/graphql/formatErrorPayload.js.map +1 -0
- package/graphql/generateSchema.d.ts +2 -2
- package/graphql/generateSchema.js +8 -8
- package/graphql/generateSchema.js.map +1 -1
- package/graphql/getSchema/generateCacheId.d.ts +10 -0
- package/graphql/getSchema/generateCacheId.js +17 -0
- package/graphql/getSchema/generateCacheId.js.map +1 -0
- package/graphql/getSchema/generateCacheKey.d.ts +10 -0
- package/graphql/getSchema/generateCacheKey.js +34 -0
- package/graphql/getSchema/generateCacheKey.js.map +1 -0
- package/graphql/getSchema.d.ts +16 -0
- package/graphql/getSchema.js +81 -0
- package/graphql/getSchema.js.map +1 -0
- package/graphql/graphQLHandlerFactory.d.ts +2 -2
- package/graphql/graphQLHandlerFactory.js +8 -173
- package/graphql/graphQLHandlerFactory.js.map +1 -1
- package/graphql/handleRequest.d.ts +11 -0
- package/graphql/handleRequest.js +86 -0
- package/graphql/handleRequest.js.map +1 -0
- package/graphql/index.d.ts +4 -3
- package/graphql/index.js +3 -6
- package/graphql/index.js.map +1 -1
- package/graphql/scalars/RevisionId.d.ts +2 -0
- package/graphql/scalars/RevisionId.js +26 -0
- package/graphql/scalars/RevisionId.js.map +1 -0
- package/graphql/scalars/RevisionIdScalarPlugin.d.ts +2 -0
- package/graphql/scalars/RevisionIdScalarPlugin.js +18 -0
- package/graphql/scalars/RevisionIdScalarPlugin.js.map +1 -0
- package/graphql/schema/baseContentSchema.d.ts +3 -3
- package/graphql/schema/baseContentSchema.js +12 -29
- package/graphql/schema/baseContentSchema.js.map +1 -1
- package/graphql/schema/baseSchema.d.ts +2 -3
- package/graphql/schema/baseSchema.js +102 -9
- package/graphql/schema/baseSchema.js.map +1 -1
- package/graphql/schema/contentEntries.d.ts +3 -3
- package/graphql/schema/contentEntries.js +150 -108
- package/graphql/schema/contentEntries.js.map +1 -1
- package/graphql/schema/contentModelGroups.d.ts +3 -3
- package/graphql/schema/contentModelGroups.js +14 -28
- package/graphql/schema/contentModelGroups.js.map +1 -1
- package/graphql/schema/contentModels.d.ts +4 -5
- package/graphql/schema/contentModels.js +55 -42
- package/graphql/schema/contentModels.js.map +1 -1
- package/graphql/schema/createFieldResolvers.d.ts +2 -2
- package/graphql/schema/createFieldResolvers.js +21 -50
- package/graphql/schema/createFieldResolvers.js.map +1 -1
- package/graphql/schema/createFieldTypePluginRecords.d.ts +3 -0
- package/graphql/schema/createFieldTypePluginRecords.js +15 -0
- package/graphql/schema/createFieldTypePluginRecords.js.map +1 -0
- package/graphql/schema/createManageResolvers.d.ts +1 -2
- package/graphql/schema/createManageResolvers.js +62 -80
- package/graphql/schema/createManageResolvers.js.map +1 -1
- package/graphql/schema/createManageSDL.d.ts +3 -2
- package/graphql/schema/createManageSDL.js +124 -80
- package/graphql/schema/createManageSDL.js.map +1 -1
- package/graphql/schema/createPreviewResolvers.d.ts +1 -2
- package/graphql/schema/createPreviewResolvers.js +13 -29
- package/graphql/schema/createPreviewResolvers.js.map +1 -1
- package/graphql/schema/createReadResolvers.d.ts +1 -2
- package/graphql/schema/createReadResolvers.js +14 -30
- package/graphql/schema/createReadResolvers.js.map +1 -1
- package/graphql/schema/createReadSDL.d.ts +3 -2
- package/graphql/schema/createReadSDL.js +49 -47
- package/graphql/schema/createReadSDL.js.map +1 -1
- package/graphql/schema/createSingularResolvers.d.ts +12 -0
- package/graphql/schema/createSingularResolvers.js +56 -0
- package/graphql/schema/createSingularResolvers.js.map +1 -0
- package/graphql/schema/createSingularSDL.d.ts +12 -0
- package/graphql/schema/createSingularSDL.js +95 -0
- package/graphql/schema/createSingularSDL.js.map +1 -0
- package/graphql/schema/resolvers/manage/normalizeGraphQlInput.d.ts +7 -0
- package/graphql/schema/resolvers/manage/normalizeGraphQlInput.js +59 -0
- package/graphql/schema/resolvers/manage/normalizeGraphQlInput.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveCreate.d.ts +3 -2
- package/graphql/schema/resolvers/manage/resolveCreate.js +3 -4
- package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveCreateFrom.d.ts +3 -2
- package/graphql/schema/resolvers/manage/resolveCreateFrom.js +3 -4
- package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveDelete.d.ts +3 -2
- package/graphql/schema/resolvers/manage/resolveDelete.js +16 -9
- package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveDeleteMultiple.d.ts +7 -0
- package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js +22 -0
- package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveGet.d.ts +2 -2
- package/graphql/schema/resolvers/manage/resolveGet.js +11 -20
- package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveGetByIds.d.ts +2 -2
- package/graphql/schema/resolvers/manage/resolveGetByIds.js +2 -3
- package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveGetRevisions.d.ts +2 -2
- package/graphql/schema/resolvers/manage/resolveGetRevisions.js +2 -3
- package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.d.ts +4 -0
- package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js +20 -0
- package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveList.d.ts +2 -2
- package/graphql/schema/resolvers/manage/resolveList.js +2 -3
- package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveListDeleted.d.ts +4 -0
- package/graphql/schema/resolvers/manage/resolveListDeleted.js +20 -0
- package/graphql/schema/resolvers/manage/resolveListDeleted.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveMove.d.ts +8 -0
- package/graphql/schema/resolvers/manage/resolveMove.js +27 -0
- package/graphql/schema/resolvers/manage/resolveMove.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolvePublish.d.ts +2 -2
- package/graphql/schema/resolvers/manage/resolvePublish.js +2 -3
- package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveRepublish.d.ts +2 -2
- package/graphql/schema/resolvers/manage/resolveRepublish.js +2 -3
- package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveRestoreFromBin.d.ts +7 -0
- package/graphql/schema/resolvers/manage/resolveRestoreFromBin.js +20 -0
- package/graphql/schema/resolvers/manage/resolveRestoreFromBin.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveUnpublish.d.ts +2 -2
- package/graphql/schema/resolvers/manage/resolveUnpublish.js +2 -3
- package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveUpdate.d.ts +3 -2
- package/graphql/schema/resolvers/manage/resolveUpdate.js +3 -4
- package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveValidate.d.ts +8 -0
- package/graphql/schema/resolvers/manage/resolveValidate.js +20 -0
- package/graphql/schema/resolvers/manage/resolveValidate.js.map +1 -0
- package/graphql/schema/resolvers/preview/resolveGet.d.ts +2 -2
- package/graphql/schema/resolvers/preview/resolveGet.js +5 -12
- package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
- package/graphql/schema/resolvers/preview/resolveList.d.ts +2 -2
- package/graphql/schema/resolvers/preview/resolveList.js +2 -3
- package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
- package/graphql/schema/resolvers/read/resolveGet.d.ts +2 -2
- package/graphql/schema/resolvers/read/resolveGet.js +5 -12
- package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
- package/graphql/schema/resolvers/read/resolveList.d.ts +2 -2
- package/graphql/schema/resolvers/read/resolveList.js +2 -3
- package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
- package/graphql/schema/resolvers/singular/resolveGet.d.ts +7 -0
- package/graphql/schema/resolvers/singular/resolveGet.js +21 -0
- package/graphql/schema/resolvers/singular/resolveGet.js.map +1 -0
- package/graphql/schema/resolvers/singular/resolveUpdate.d.ts +8 -0
- package/graphql/schema/resolvers/singular/resolveUpdate.js +21 -0
- package/graphql/schema/resolvers/singular/resolveUpdate.js.map +1 -0
- package/graphql/schema/schemaPlugins.d.ts +3 -3
- package/graphql/schema/schemaPlugins.js +42 -38
- package/graphql/schema/schemaPlugins.js.map +1 -1
- package/graphql/system.d.ts +3 -6
- package/graphql/system.js +6 -42
- package/graphql/system.js.map +1 -1
- package/graphqlFields/boolean.d.ts +1 -1
- package/graphqlFields/boolean.js +2 -12
- package/graphqlFields/boolean.js.map +1 -1
- package/graphqlFields/datetime.d.ts +1 -1
- package/graphqlFields/datetime.js +4 -21
- package/graphqlFields/datetime.js.map +1 -1
- package/graphqlFields/dynamicZone/dynamicZoneField.d.ts +1 -1
- package/graphqlFields/dynamicZone/dynamicZoneField.js +144 -58
- package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -1
- package/graphqlFields/dynamicZone/index.d.ts +0 -1
- package/graphqlFields/dynamicZone/index.js +1 -8
- package/graphqlFields/dynamicZone/index.js.map +1 -1
- package/graphqlFields/file.d.ts +1 -1
- package/graphqlFields/file.js +2 -8
- package/graphqlFields/file.js.map +1 -1
- package/graphqlFields/helpers.d.ts +1 -2
- package/graphqlFields/helpers.js +5 -27
- package/graphqlFields/helpers.js.map +1 -1
- package/graphqlFields/index.d.ts +1 -1
- package/graphqlFields/index.js +5 -13
- package/graphqlFields/index.js.map +1 -1
- package/graphqlFields/json.d.ts +2 -0
- package/graphqlFields/json.js +49 -0
- package/graphqlFields/json.js.map +1 -0
- package/graphqlFields/longText.d.ts +1 -1
- package/graphqlFields/longText.js +13 -12
- package/graphqlFields/longText.js.map +1 -1
- package/graphqlFields/number.d.ts +1 -1
- package/graphqlFields/number.js +3 -12
- package/graphqlFields/number.js.map +1 -1
- package/graphqlFields/object.d.ts +2 -2
- package/graphqlFields/object.js +46 -69
- package/graphqlFields/object.js.map +1 -1
- package/graphqlFields/ref.d.ts +1 -1
- package/graphqlFields/ref.js +85 -79
- package/graphqlFields/ref.js.map +1 -1
- package/graphqlFields/richText/RichTextPluginsProcessor.d.ts +6 -0
- package/graphqlFields/richText/RichTextPluginsProcessor.js +34 -0
- package/graphqlFields/richText/RichTextPluginsProcessor.js.map +1 -0
- package/graphqlFields/richText/richTextResolver.d.ts +7 -0
- package/graphqlFields/richText/richTextResolver.js +24 -0
- package/graphqlFields/richText/richTextResolver.js.map +1 -0
- package/graphqlFields/richText.d.ts +1 -1
- package/graphqlFields/richText.js +10 -11
- package/graphqlFields/richText.js.map +1 -1
- package/graphqlFields/searchableJson.d.ts +2 -0
- package/graphqlFields/searchableJson.js +55 -0
- package/graphqlFields/searchableJson.js.map +1 -0
- package/graphqlFields/text.d.ts +1 -1
- package/graphqlFields/text.js +4 -11
- package/graphqlFields/text.js.map +1 -1
- package/htmlRenderer/LexicalRenderer.d.ts +5 -0
- package/htmlRenderer/LexicalRenderer.js +28 -0
- package/htmlRenderer/LexicalRenderer.js.map +1 -0
- package/htmlRenderer/createLexicalHTMLRenderer.d.ts +2 -0
- package/htmlRenderer/createLexicalHTMLRenderer.js +31 -0
- package/htmlRenderer/createLexicalHTMLRenderer.js.map +1 -0
- package/index.d.ts +15 -6
- package/index.js +105 -26
- package/index.js.map +1 -1
- package/modelManager/DefaultCmsModelManager.d.ts +11 -10
- package/modelManager/DefaultCmsModelManager.js +18 -33
- package/modelManager/DefaultCmsModelManager.js.map +1 -1
- package/modelManager/SingletonModelManager.d.ts +12 -0
- package/modelManager/SingletonModelManager.js +48 -0
- package/modelManager/SingletonModelManager.js.map +1 -0
- package/modelManager/index.d.ts +2 -1
- package/modelManager/index.js +18 -5
- package/modelManager/index.js.map +1 -1
- package/package.json +40 -45
- package/parameters/context.js +3 -5
- package/parameters/context.js.map +1 -1
- package/parameters/header.js +6 -16
- package/parameters/header.js.map +1 -1
- package/parameters/index.js +3 -9
- package/parameters/index.js.map +1 -1
- package/parameters/manual.d.ts +2 -1
- package/parameters/manual.js +9 -11
- package/parameters/manual.js.map +1 -1
- package/parameters/path.js +3 -13
- package/parameters/path.js.map +1 -1
- package/plugins/CmsGraphQLSchemaPlugin/CmsGraphQLSchemaPlugin.d.ts +9 -0
- package/plugins/CmsGraphQLSchemaPlugin/CmsGraphQLSchemaPlugin.js +17 -0
- package/plugins/CmsGraphQLSchemaPlugin/CmsGraphQLSchemaPlugin.js.map +1 -0
- package/plugins/CmsGraphQLSchemaPlugin/index.d.ts +1 -0
- package/plugins/CmsGraphQLSchemaPlugin/index.js +18 -0
- package/plugins/CmsGraphQLSchemaPlugin/index.js.map +1 -0
- package/plugins/CmsGraphQLSchemaSorterPlugin.d.ts +1 -1
- package/plugins/CmsGraphQLSchemaSorterPlugin.js +3 -14
- package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -1
- package/plugins/CmsGroupPlugin.d.ts +15 -4
- package/plugins/CmsGroupPlugin.js +23 -13
- package/plugins/CmsGroupPlugin.js.map +1 -1
- package/plugins/CmsModelFieldConverterPlugin.d.ts +5 -2
- package/plugins/CmsModelFieldConverterPlugin.js +8 -8
- package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
- package/plugins/CmsModelPlugin.d.ts +47 -7
- package/plugins/CmsModelPlugin.js +169 -68
- package/plugins/CmsModelPlugin.js.map +1 -1
- package/plugins/CmsParametersPlugin.d.ts +3 -3
- package/plugins/CmsParametersPlugin.js +6 -10
- package/plugins/CmsParametersPlugin.js.map +1 -1
- package/plugins/CmsRichTextRendererPlugin.d.ts +24 -0
- package/plugins/CmsRichTextRendererPlugin.js +28 -0
- package/plugins/CmsRichTextRendererPlugin.js.map +1 -0
- package/plugins/StorageOperationsCmsModelPlugin.d.ts +23 -0
- package/plugins/StorageOperationsCmsModelPlugin.js +41 -0
- package/plugins/StorageOperationsCmsModelPlugin.js.map +1 -0
- package/plugins/StorageTransformPlugin.d.ts +7 -3
- package/plugins/StorageTransformPlugin.js +11 -13
- package/plugins/StorageTransformPlugin.js.map +1 -1
- package/plugins/index.d.ts +2 -0
- package/plugins/index.js +25 -15
- package/plugins/index.js.map +1 -1
- package/storage/date.d.ts +3 -0
- package/storage/date.js +119 -0
- package/storage/date.js.map +1 -0
- package/storage/default.js +2 -3
- package/storage/default.js.map +1 -1
- package/storage/dynamicZone.d.ts +2 -0
- package/storage/dynamicZone.js +157 -0
- package/storage/dynamicZone.js.map +1 -0
- package/storage/index.d.ts +1 -0
- package/storage/index.js +21 -0
- package/storage/index.js.map +1 -0
- package/storage/json.d.ts +2 -0
- package/storage/json.js +56 -0
- package/storage/json.js.map +1 -0
- package/storage/object.js +23 -38
- package/storage/object.js.map +1 -1
- package/types/context.d.ts +146 -0
- package/types/context.js +7 -0
- package/types/context.js.map +1 -0
- package/types/fields/dynamicZoneField.d.ts +23 -0
- package/types/fields/dynamicZoneField.js +7 -0
- package/types/fields/dynamicZoneField.js.map +1 -0
- package/types/fields/objectField.d.ts +13 -0
- package/types/fields/objectField.js +7 -0
- package/types/fields/objectField.js.map +1 -0
- package/types/identity.d.ts +19 -0
- package/types/identity.js +7 -0
- package/types/identity.js.map +1 -0
- package/types/index.d.ts +10 -0
- package/types/index.js +117 -0
- package/types/index.js.map +1 -0
- package/types/model.d.ts +199 -0
- package/types/model.js +7 -0
- package/types/model.js.map +1 -0
- package/types/modelAst.d.ts +39 -0
- package/types/modelAst.js +7 -0
- package/types/modelAst.js.map +1 -0
- package/types/modelField.d.ts +330 -0
- package/types/modelField.js +7 -0
- package/types/modelField.js.map +1 -0
- package/types/modelGroup.d.ts +77 -0
- package/types/modelGroup.js +7 -0
- package/types/modelGroup.js.map +1 -0
- package/types/plugins.d.ts +365 -0
- package/types/plugins.js +7 -0
- package/types/plugins.js.map +1 -0
- package/types/types.d.ts +1897 -0
- package/{types.js → types/types.js} +33 -213
- package/types/types.js.map +1 -0
- package/utils/RichTextRenderer.d.ts +10 -0
- package/utils/RichTextRenderer.js +33 -0
- package/utils/RichTextRenderer.js.map +1 -0
- package/utils/caching/Cache.d.ts +5 -0
- package/utils/caching/Cache.js +48 -0
- package/utils/caching/Cache.js.map +1 -0
- package/utils/caching/CacheKey.d.ts +3 -0
- package/utils/caching/CacheKey.js +28 -0
- package/utils/caching/CacheKey.js.map +1 -0
- package/utils/caching/index.d.ts +2 -0
- package/utils/caching/index.js +29 -0
- package/utils/caching/index.js.map +1 -0
- package/utils/caching/types.d.ts +13 -0
- package/utils/caching/types.js +14 -0
- package/utils/caching/types.js.map +1 -0
- package/utils/contentEntryTraverser/ContentEntryTraverser.d.ts +13 -0
- package/utils/contentEntryTraverser/ContentEntryTraverser.js +97 -0
- package/utils/contentEntryTraverser/ContentEntryTraverser.js.map +1 -0
- package/utils/contentModelAst/CmsModelFieldToAstConverterFromPlugins.d.ts +6 -0
- package/utils/contentModelAst/CmsModelFieldToAstConverterFromPlugins.js +23 -0
- package/utils/contentModelAst/CmsModelFieldToAstConverterFromPlugins.js.map +1 -0
- package/utils/contentModelAst/CmsModelFieldToAstFromPlugin.d.ts +7 -0
- package/utils/contentModelAst/CmsModelFieldToAstFromPlugin.js +22 -0
- package/utils/contentModelAst/CmsModelFieldToAstFromPlugin.js.map +1 -0
- package/utils/contentModelAst/CmsModelToAstConverter.d.ts +11 -0
- package/utils/contentModelAst/CmsModelToAstConverter.js +28 -0
- package/utils/contentModelAst/CmsModelToAstConverter.js.map +1 -0
- package/utils/contentModelAst/index.d.ts +3 -0
- package/utils/contentModelAst/index.js +40 -0
- package/utils/contentModelAst/index.js.map +1 -0
- package/utils/converters/Converter.d.ts +3 -3
- package/utils/converters/Converter.js +3 -17
- package/utils/converters/Converter.js.map +1 -1
- package/utils/converters/ConverterCollection.d.ts +2 -2
- package/utils/converters/ConverterCollection.js +21 -39
- package/utils/converters/ConverterCollection.js.map +1 -1
- package/utils/converters/valueKeyStorageConverter.d.ts +4 -8
- package/utils/converters/valueKeyStorageConverter.js +32 -45
- package/utils/converters/valueKeyStorageConverter.js.map +1 -1
- package/utils/createModelField.d.ts +7 -0
- package/utils/createModelField.js +51 -0
- package/utils/createModelField.js.map +1 -0
- package/utils/createTypeFromFields.d.ts +2 -1
- package/utils/createTypeFromFields.js +17 -21
- package/utils/createTypeFromFields.js.map +1 -1
- package/utils/createTypeName.d.ts +0 -2
- package/utils/createTypeName.js +2 -17
- package/utils/createTypeName.js.map +1 -1
- package/utils/date.d.ts +10 -0
- package/utils/date.js +36 -0
- package/utils/date.js.map +1 -0
- package/utils/entryStorage.d.ts +9 -4
- package/utils/entryStorage.js +17 -30
- package/utils/entryStorage.js.map +1 -1
- package/utils/filterAsync.js +8 -12
- package/utils/filterAsync.js.map +1 -1
- package/utils/getBaseFieldType.d.ts +2 -4
- package/utils/getBaseFieldType.js +2 -2
- package/utils/getBaseFieldType.js.map +1 -1
- package/utils/getEntryDescription.d.ts +2 -0
- package/utils/getEntryDescription.js +19 -0
- package/utils/getEntryDescription.js.map +1 -0
- package/utils/getEntryImage.d.ts +2 -0
- package/utils/getEntryImage.js +19 -0
- package/utils/getEntryImage.js.map +1 -0
- package/utils/getEntryTitle.d.ts +2 -2
- package/utils/getEntryTitle.js +3 -10
- package/utils/getEntryTitle.js.map +1 -1
- package/utils/getSchemaFromFieldPlugins.d.ts +14 -3
- package/utils/getSchemaFromFieldPlugins.js +25 -15
- package/utils/getSchemaFromFieldPlugins.js.map +1 -1
- package/utils/identity.d.ts +2 -0
- package/utils/identity.js +20 -0
- package/utils/identity.js.map +1 -0
- package/utils/incrementEntryIdVersion.d.ts +5 -0
- package/utils/incrementEntryIdVersion.js +31 -0
- package/utils/incrementEntryIdVersion.js.map +1 -0
- package/utils/index.d.ts +2 -0
- package/utils/index.js +29 -0
- package/utils/index.js.map +1 -0
- package/utils/isHeadlessCmsReady.d.ts +2 -0
- package/utils/isHeadlessCmsReady.js +23 -0
- package/utils/isHeadlessCmsReady.js.map +1 -0
- 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
- package/utils/renderFields.d.ts +5 -3
- package/utils/renderFields.js +14 -11
- package/utils/renderFields.js.map +1 -1
- package/utils/renderGetFilterFields.d.ts +2 -2
- package/utils/renderGetFilterFields.js +8 -33
- package/utils/renderGetFilterFields.js.map +1 -1
- package/utils/renderInputFields.d.ts +5 -3
- package/utils/renderInputFields.js +19 -14
- package/utils/renderInputFields.js.map +1 -1
- package/utils/renderListFilterFields.d.ts +3 -1
- package/utils/renderListFilterFields.js +24 -30
- package/utils/renderListFilterFields.js.map +1 -1
- package/utils/renderSortEnum.d.ts +4 -3
- package/utils/renderSortEnum.js +9 -11
- package/utils/renderSortEnum.js.map +1 -1
- package/utils/toSlug.js +2 -4
- package/utils/toSlug.js.map +1 -1
- package/validators/dateGte.d.ts +1 -1
- package/validators/dateGte.js +2 -7
- package/validators/dateGte.js.map +1 -1
- package/validators/dateLte.d.ts +1 -1
- package/validators/dateLte.js +2 -7
- package/validators/dateLte.js.map +1 -1
- package/validators/gte.d.ts +1 -1
- package/validators/gte.js +3 -10
- package/validators/gte.js.map +1 -1
- package/validators/in.d.ts +1 -1
- package/validators/in.js +3 -10
- package/validators/in.js.map +1 -1
- package/validators/index.js +3 -18
- package/validators/index.js.map +1 -1
- package/validators/lte.d.ts +1 -1
- package/validators/lte.js +3 -10
- package/validators/lte.js.map +1 -1
- package/validators/maxLength.d.ts +1 -1
- package/validators/maxLength.js +3 -10
- package/validators/maxLength.js.map +1 -1
- package/validators/minLength.d.ts +1 -1
- package/validators/minLength.js +3 -10
- package/validators/minLength.js.map +1 -1
- package/validators/pattern.d.ts +1 -1
- package/validators/pattern.js +4 -11
- package/validators/pattern.js.map +1 -1
- package/validators/patternPlugins/email.d.ts +1 -1
- package/validators/patternPlugins/email.js +3 -3
- package/validators/patternPlugins/email.js.map +1 -1
- package/validators/patternPlugins/index.d.ts +1 -1
- package/validators/patternPlugins/index.js +2 -8
- package/validators/patternPlugins/index.js.map +1 -1
- package/validators/patternPlugins/lowerCase.d.ts +1 -1
- package/validators/patternPlugins/lowerCase.js +2 -2
- package/validators/patternPlugins/lowerCase.js.map +1 -1
- package/validators/patternPlugins/lowerCaseSpace.d.ts +1 -1
- package/validators/patternPlugins/lowerCaseSpace.js +2 -2
- package/validators/patternPlugins/lowerCaseSpace.js.map +1 -1
- package/validators/patternPlugins/upperCase.d.ts +1 -1
- package/validators/patternPlugins/upperCase.js +2 -2
- package/validators/patternPlugins/upperCase.js.map +1 -1
- package/validators/patternPlugins/upperCaseSpace.d.ts +1 -1
- package/validators/patternPlugins/upperCaseSpace.js +2 -2
- package/validators/patternPlugins/upperCaseSpace.js.map +1 -1
- package/validators/patternPlugins/url.d.ts +1 -1
- package/validators/patternPlugins/url.js +2 -2
- package/validators/patternPlugins/url.js.map +1 -1
- package/validators/required.d.ts +1 -1
- package/validators/required.js +2 -5
- package/validators/required.js.map +1 -1
- package/validators/timeGte.d.ts +1 -1
- package/validators/timeGte.js +3 -10
- package/validators/timeGte.js.map +1 -1
- package/validators/timeLte.d.ts +1 -1
- package/validators/timeLte.js +3 -10
- package/validators/timeLte.js.map +1 -1
- package/validators/unique.d.ts +1 -1
- package/validators/unique.js +3 -8
- package/validators/unique.js.map +1 -1
- package/crud/contentModel/afterCreate.d.ts +0 -8
- package/crud/contentModel/afterCreate.js +0 -18
- package/crud/contentModel/afterCreate.js.map +0 -1
- package/crud/contentModel/afterCreateFrom.d.ts +0 -8
- package/crud/contentModel/afterCreateFrom.js +0 -18
- package/crud/contentModel/afterCreateFrom.js.map +0 -1
- package/crud/contentModel/afterDelete.d.ts +0 -8
- package/crud/contentModel/afterDelete.js +0 -18
- package/crud/contentModel/afterDelete.js.map +0 -1
- package/crud/contentModel/afterUpdate.d.ts +0 -8
- package/crud/contentModel/afterUpdate.js +0 -18
- package/crud/contentModel/afterUpdate.js.map +0 -1
- package/crud/contentModel/createFieldModels.d.ts +0 -2
- package/crud/contentModel/createFieldModels.js +0 -26
- package/crud/contentModel/createFieldModels.js.map +0 -1
- package/crud/contentModel/fieldIdValidation.d.ts +0 -1
- package/crud/contentModel/fieldIdValidation.js +0 -25
- package/crud/contentModel/fieldIdValidation.js.map +0 -1
- package/crud/contentModel/idValidation.d.ts +0 -1
- package/crud/contentModel/idValidation.js +0 -22
- package/crud/contentModel/idValidation.js.map +0 -1
- package/crud/contentModel/models.d.ts +0 -4
- package/crud/contentModel/models.js +0 -192
- package/crud/contentModel/models.js.map +0 -1
- package/crud/contentModel/systemFields.d.ts +0 -1
- package/crud/contentModel/systemFields.js +0 -8
- package/crud/contentModel/systemFields.js.map +0 -1
- package/crud/contentModel/validateLayout.d.ts +0 -2
- package/crud/contentModel/validateLayout.js +0 -36
- package/crud/contentModel/validateLayout.js.map +0 -1
- package/crud/settings.crud.d.ts +0 -10
- package/crud/settings.crud.js +0 -83
- package/crud/settings.crud.js.map +0 -1
- package/graphql/schema/resolvers/commonFieldResolvers.d.ts +0 -6
- package/graphql/schema/resolvers/commonFieldResolvers.js +0 -14
- package/graphql/schema/resolvers/commonFieldResolvers.js.map +0 -1
- package/graphqlFields/dynamicZone/dynamicZoneStorage.d.ts +0 -3
- package/graphqlFields/dynamicZone/dynamicZoneStorage.js +0 -79
- package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +0 -1
- package/plugins/CmsGraphQLSchemaPlugin.d.ts +0 -5
- package/plugins/CmsGraphQLSchemaPlugin.js +0 -17
- package/plugins/CmsGraphQLSchemaPlugin.js.map +0 -1
- package/types.d.ts +0 -2640
- package/types.js.map +0 -1
- package/upgrades/5.33.0/index.d.ts +0 -3
- package/upgrades/5.33.0/index.js +0 -182
- package/upgrades/5.33.0/index.js.map +0 -1
- package/upgrades/index.d.ts +0 -1
- package/upgrades/index.js +0 -12
- package/upgrades/index.js.map +0 -1
- package/utils/access.d.ts +0 -8
- package/utils/access.js +0 -90
- package/utils/access.js.map +0 -1
- package/utils/ownership.d.ts +0 -8
- package/utils/ownership.js +0 -41
- package/utils/ownership.js.map +0 -1
- package/utils/permissions.d.ts +0 -7
- package/utils/permissions.js +0 -106
- package/utils/permissions.js.map +0 -1
- package/utils/pluralizedTypeName.d.ts +0 -1
- package/utils/pluralizedTypeName.js +0 -26
- package/utils/pluralizedTypeName.js.map +0 -1
- package/validators/dynamicZone.d.ts +0 -2
- package/validators/dynamicZone.js +0 -24
- package/validators/dynamicZone.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["validateModel","params","model","context","plugins","modelPlugin","byType","CmsModelPlugin","type","find","item","contentModel","modelId","WebinyError","validateModelFields"],"sources":["validateModel.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { CmsModelPlugin } from \"~/plugins/CmsModelPlugin\";\nimport { CmsContext, CmsModel } from \"~/types\";\nimport { validateModelFields } from \"
|
|
1
|
+
{"version":3,"names":["_error","_interopRequireDefault","require","_CmsModelPlugin","_validateModelFields","validateModel","params","model","context","plugins","modelPlugin","byType","CmsModelPlugin","type","find","item","contentModel","modelId","WebinyError","validateModelFields","exports"],"sources":["validateModel.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { CmsModelPlugin } from \"~/plugins/CmsModelPlugin\";\nimport type { CmsContext, CmsModel } from \"~/types\";\nimport { validateModelFields } from \"./validateModelFields\";\n\ninterface ValidateModelParams {\n models: CmsModel[];\n model: CmsModel;\n original?: CmsModel;\n context: CmsContext;\n}\n\nexport const validateModel = async (params: ValidateModelParams): Promise<void> => {\n const { model, context } = params;\n\n const { plugins } = context;\n\n const modelPlugin = plugins\n .byType<CmsModelPlugin>(CmsModelPlugin.type)\n .find(item => item.contentModel.modelId === model.modelId);\n\n if (modelPlugin) {\n throw new WebinyError(\n \"Content models defined via plugins cannot be updated.\",\n \"CONTENT_MODEL_UPDATE_ERROR\",\n {\n modelId: model.modelId\n }\n );\n }\n\n await validateModelFields(params);\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AAEA,IAAAE,oBAAA,GAAAF,OAAA;AASO,MAAMG,aAAa,GAAG,MAAOC,MAA2B,IAAoB;EAC/E,MAAM;IAAEC,KAAK;IAAEC;EAAQ,CAAC,GAAGF,MAAM;EAEjC,MAAM;IAAEG;EAAQ,CAAC,GAAGD,OAAO;EAE3B,MAAME,WAAW,GAAGD,OAAO,CACtBE,MAAM,CAAiBC,8BAAc,CAACC,IAAI,CAAC,CAC3CC,IAAI,CAACC,IAAI,IAAIA,IAAI,CAACC,YAAY,CAACC,OAAO,KAAKV,KAAK,CAACU,OAAO,CAAC;EAE9D,IAAIP,WAAW,EAAE;IACb,MAAM,IAAIQ,cAAW,CACjB,uDAAuD,EACvD,4BAA4B,EAC5B;MACID,OAAO,EAAEV,KAAK,CAACU;IACnB,CACJ,CAAC;EACL;EAEA,MAAM,IAAAE,wCAAmB,EAACb,MAAM,CAAC;AACrC,CAAC;AAACc,OAAA,CAAAf,aAAA,GAAAA,aAAA","ignoreList":[]}
|
|
@@ -1,98 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.validateModelFields = void 0;
|
|
9
|
-
|
|
10
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
11
|
-
|
|
8
|
+
var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
|
|
12
9
|
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
13
|
-
|
|
14
10
|
var _createManageSDL = require("../../graphql/schema/createManageSDL");
|
|
15
|
-
|
|
16
|
-
var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
|
|
17
|
-
|
|
18
11
|
var _createFieldStorageId = require("./createFieldStorageId");
|
|
19
|
-
|
|
20
12
|
var _getBaseFieldType = require("../../utils/getBaseFieldType");
|
|
21
|
-
|
|
13
|
+
var _titleField = require("./fields/titleField");
|
|
14
|
+
var _descriptionField = require("./fields/descriptionField");
|
|
15
|
+
var _imageField = require("./fields/imageField");
|
|
22
16
|
var _plugins = require("../../plugins");
|
|
23
|
-
|
|
24
17
|
var _buildSchemaPlugins = require("../../graphql/buildSchemaPlugins");
|
|
25
|
-
|
|
26
18
|
var _createExecutableSchema = require("../../graphql/createExecutableSchema");
|
|
27
|
-
|
|
28
|
-
var _handlerGraphql = require("@webiny/handler-graphql");
|
|
29
|
-
|
|
30
|
-
const defaultTitleFieldId = "id";
|
|
31
|
-
const allowedTitleFieldTypes = ["text", "number"];
|
|
32
|
-
|
|
33
|
-
const getContentModelTitleFieldId = (fields, titleFieldId) => {
|
|
34
|
-
/**
|
|
35
|
-
* If there are no fields defined, we will return the default field
|
|
36
|
-
*/
|
|
37
|
-
if (fields.length === 0) {
|
|
38
|
-
return defaultTitleFieldId;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* if there is no title field defined either in input data or existing content model data
|
|
42
|
-
* we will take first text field that has no multiple values enabled
|
|
43
|
-
* or if initial titleFieldId is the default one also try to find first available text field
|
|
44
|
-
*/
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
if (!titleFieldId || titleFieldId === defaultTitleFieldId) {
|
|
48
|
-
const titleField = fields.find(field => {
|
|
49
|
-
return (0, _getBaseFieldType.getBaseFieldType)(field) === "text" && !field.multipleValues;
|
|
50
|
-
});
|
|
51
|
-
return (titleField === null || titleField === void 0 ? void 0 : titleField.fieldId) || defaultTitleFieldId;
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* check existing titleFieldId for existence in the model
|
|
55
|
-
* for correct type
|
|
56
|
-
* and that it is not multiple values field
|
|
57
|
-
*/
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
const target = fields.find(f => f.fieldId === titleFieldId);
|
|
61
|
-
|
|
62
|
-
if (!target) {
|
|
63
|
-
throw new _error.default(`Field selected for the title field does not exist in the model.`, "VALIDATION_ERROR", {
|
|
64
|
-
fieldId: titleFieldId,
|
|
65
|
-
fields
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
if (allowedTitleFieldTypes.includes(target.type) === false) {
|
|
70
|
-
throw new _error.default(`Only ${allowedTitleFieldTypes.join(", ")} and id fields can be used as an entry title.`, "ENTRY_TITLE_FIELD_TYPE", {
|
|
71
|
-
storageId: target.storageId,
|
|
72
|
-
fieldId: target.fieldId,
|
|
73
|
-
type: target.type
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
if (target.multipleValues) {
|
|
78
|
-
throw new _error.default(`Fields that accept multiple values cannot be used as the entry title.`, "ENTRY_TITLE_FIELD_TYPE", {
|
|
79
|
-
storageId: target.storageId,
|
|
80
|
-
fieldId: target.fieldId,
|
|
81
|
-
type: target.type
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
return target.fieldId;
|
|
86
|
-
};
|
|
87
|
-
|
|
19
|
+
var _utils = require("@webiny/utils");
|
|
88
20
|
const extractInvalidField = (model, err) => {
|
|
89
|
-
|
|
21
|
+
const sdl = err.source?.body || "";
|
|
90
22
|
|
|
91
|
-
const sdl = ((_err$source = err.source) === null || _err$source === void 0 ? void 0 : _err$source.body) || "";
|
|
92
23
|
/**
|
|
93
24
|
* Find the invalid type
|
|
94
25
|
*/
|
|
95
|
-
|
|
96
26
|
const {
|
|
97
27
|
line: lineNumber
|
|
98
28
|
} = err.locations ? err.locations[0] : {
|
|
@@ -101,33 +31,25 @@ const extractInvalidField = (model, err) => {
|
|
|
101
31
|
const sdlLines = sdl.split("\n");
|
|
102
32
|
let sdlLine;
|
|
103
33
|
let gqlType;
|
|
104
|
-
|
|
105
34
|
for (let i = lineNumber; i > 0; i--) {
|
|
106
35
|
if (sdlLine && sdlLine.includes("type ")) {
|
|
107
36
|
gqlType = sdlLine.match(/type\s+(.*?)\s+{/);
|
|
108
37
|
break;
|
|
109
38
|
}
|
|
110
|
-
|
|
111
39
|
sdlLine = sdlLines[i];
|
|
112
40
|
}
|
|
113
|
-
|
|
114
41
|
let invalidField = undefined;
|
|
115
|
-
|
|
116
42
|
if (Array.isArray(gqlType)) {
|
|
117
43
|
const fieldRegex = new RegExp(`([^\\s+].*?):\\s+\\[?${gqlType[1]}!?\\]?`);
|
|
118
44
|
const matched = sdl.match(fieldRegex);
|
|
119
|
-
|
|
120
45
|
if (matched) {
|
|
121
46
|
invalidField = matched[1];
|
|
122
47
|
}
|
|
123
48
|
}
|
|
124
|
-
|
|
125
49
|
let message = `See more details in the browser console.`;
|
|
126
|
-
|
|
127
50
|
if (invalidField) {
|
|
128
51
|
message = `Please review the definition of "${invalidField}" field.`;
|
|
129
52
|
}
|
|
130
|
-
|
|
131
53
|
return {
|
|
132
54
|
data: {
|
|
133
55
|
modelId: model.modelId,
|
|
@@ -138,7 +60,6 @@ const extractInvalidField = (model, err) => {
|
|
|
138
60
|
message: [`Model "${model.modelId}" was not saved!`, message].join("\n")
|
|
139
61
|
};
|
|
140
62
|
};
|
|
141
|
-
|
|
142
63
|
const createValidateChildFields = plugins => {
|
|
143
64
|
return ({
|
|
144
65
|
fields,
|
|
@@ -147,7 +68,6 @@ const createValidateChildFields = plugins => {
|
|
|
147
68
|
if (fields.length === 0 && originalFields.length === 0) {
|
|
148
69
|
return;
|
|
149
70
|
}
|
|
150
|
-
|
|
151
71
|
validateFields({
|
|
152
72
|
fields,
|
|
153
73
|
originalFields,
|
|
@@ -156,7 +76,6 @@ const createValidateChildFields = plugins => {
|
|
|
156
76
|
});
|
|
157
77
|
};
|
|
158
78
|
};
|
|
159
|
-
|
|
160
79
|
const validateFields = params => {
|
|
161
80
|
const {
|
|
162
81
|
plugins,
|
|
@@ -167,11 +86,9 @@ const validateFields = params => {
|
|
|
167
86
|
const idList = [];
|
|
168
87
|
const fieldIdList = [];
|
|
169
88
|
const storageIdList = [];
|
|
170
|
-
|
|
171
89
|
for (const field of fields) {
|
|
172
90
|
const baseType = (0, _getBaseFieldType.getBaseFieldType)(field);
|
|
173
91
|
const plugin = plugins.find(plugin => plugin.fieldType === baseType);
|
|
174
|
-
|
|
175
92
|
if (!plugin) {
|
|
176
93
|
throw new Error(`Cannot update content model because of the unknown "${baseType}" field.`);
|
|
177
94
|
}
|
|
@@ -179,18 +96,14 @@ const validateFields = params => {
|
|
|
179
96
|
* Check the field's id against existing ones.
|
|
180
97
|
* There cannot be two fields with the same id.
|
|
181
98
|
*/
|
|
182
|
-
|
|
183
|
-
|
|
184
99
|
if (idList.includes(field.id)) {
|
|
185
100
|
throw new _error.default(`Cannot update content model because field "${field.storageId || field.fieldId}" has id "${field.id}", which is already used.`);
|
|
186
101
|
}
|
|
187
|
-
|
|
188
102
|
idList.push(field.id);
|
|
189
103
|
const originalField = originalFields.find(f => f.id === field.id);
|
|
190
104
|
/**
|
|
191
105
|
* Field MUST have an fieldId defined.
|
|
192
106
|
*/
|
|
193
|
-
|
|
194
107
|
if (!field.fieldId) {
|
|
195
108
|
throw new _error.default(`Field does not have an "fieldId" defined.`, "MISSING_FIELD_ID", {
|
|
196
109
|
field
|
|
@@ -209,12 +122,9 @@ const validateFields = params => {
|
|
|
209
122
|
* https://discuss.elastic.co/t/special-characters-in-field-names/10658/3
|
|
210
123
|
* https://discuss.elastic.co/t/illegal-characters-in-elasticsearch-field-names/17196/2
|
|
211
124
|
*/
|
|
212
|
-
|
|
213
|
-
|
|
214
125
|
const isLocked = lockedFields.some(lockedField => {
|
|
215
126
|
return lockedField.fieldId === field.storageId || lockedField.fieldId === field.fieldId;
|
|
216
127
|
});
|
|
217
|
-
|
|
218
128
|
if (!field.storageId) {
|
|
219
129
|
/**
|
|
220
130
|
* In case field is locked, we must set the storageId to the fieldId value.
|
|
@@ -243,32 +153,25 @@ const validateFields = params => {
|
|
|
243
153
|
* Check the field's fieldId against existing ones.
|
|
244
154
|
* There cannot be two fields with the same fieldId - outside world identifier.
|
|
245
155
|
*/
|
|
246
|
-
|
|
247
|
-
|
|
248
156
|
if (fieldIdList.includes(field.fieldId)) {
|
|
249
157
|
throw new _error.default(`Cannot update content model because field "${field.storageId}" has fieldId "${field.fieldId}", which is already used.`);
|
|
250
158
|
}
|
|
251
|
-
|
|
252
159
|
fieldIdList.push(field.fieldId);
|
|
253
160
|
/**
|
|
254
161
|
* Check the field's storageId against the existing ones.
|
|
255
162
|
* There cannot be two fields with the same storageId.
|
|
256
163
|
*/
|
|
257
|
-
|
|
258
164
|
if (storageIdList.includes(field.storageId)) {
|
|
259
165
|
throw new _error.default(`Cannot update content model because field "${field.label}" has storageId "${field.storageId}", which is already used.`);
|
|
260
166
|
}
|
|
261
|
-
|
|
262
167
|
storageIdList.push(field.storageId);
|
|
263
168
|
/**
|
|
264
169
|
* There might be some plugins which allow child fields.
|
|
265
170
|
* We use this method to validate them as well.
|
|
266
171
|
*/
|
|
267
|
-
|
|
268
172
|
if (!plugin.validateChildFields) {
|
|
269
173
|
continue;
|
|
270
174
|
}
|
|
271
|
-
|
|
272
175
|
const validateChildFields = createValidateChildFields(plugins);
|
|
273
176
|
plugin.validateChildFields({
|
|
274
177
|
field,
|
|
@@ -277,81 +180,91 @@ const validateFields = params => {
|
|
|
277
180
|
});
|
|
278
181
|
}
|
|
279
182
|
};
|
|
280
|
-
|
|
281
183
|
const createGraphQLSchema = async params => {
|
|
282
184
|
const {
|
|
283
185
|
context,
|
|
284
186
|
model
|
|
285
187
|
} = params;
|
|
188
|
+
const models = await context.security.withoutAuthorization(async () => {
|
|
189
|
+
return (await context.cms.listModels()).filter(model => {
|
|
190
|
+
return model.isPrivate !== true;
|
|
191
|
+
});
|
|
192
|
+
});
|
|
286
193
|
const modelPlugins = await (0, _buildSchemaPlugins.buildSchemaPlugins)({
|
|
287
194
|
context,
|
|
288
|
-
models: [model]
|
|
195
|
+
models: models.concat([model])
|
|
289
196
|
});
|
|
290
|
-
const plugins = context.plugins.byType(
|
|
291
|
-
|
|
197
|
+
const plugins = context.plugins.byType(_plugins.CmsGraphQLSchemaPlugin.type).filter(plugin => plugin.isApplicable(context)).reduce((collection, plugin) => {
|
|
198
|
+
const name = plugin.name || `${_plugins.CmsGraphQLSchemaPlugin.type}-${(0, _utils.generateAlphaNumericId)(16)}`;
|
|
199
|
+
collection[name] = plugin;
|
|
200
|
+
return collection;
|
|
201
|
+
}, {});
|
|
202
|
+
for (const plugin of modelPlugins) {
|
|
203
|
+
const name = plugin.name || `${plugin.type}-${(0, _utils.generateAlphaNumericId)(16)}`;
|
|
204
|
+
plugins[name] = plugin;
|
|
205
|
+
}
|
|
292
206
|
return (0, _createExecutableSchema.createExecutableSchema)({
|
|
293
|
-
plugins
|
|
207
|
+
plugins: Object.values(plugins)
|
|
294
208
|
});
|
|
295
209
|
};
|
|
296
|
-
|
|
297
210
|
const extractErrorObject = error => {
|
|
298
211
|
return ["message", "code", "data", "stack"].reduce((output, key) => {
|
|
299
212
|
if (!error[key]) {
|
|
300
213
|
return output;
|
|
301
214
|
}
|
|
302
|
-
|
|
303
215
|
output[key] = error[key];
|
|
304
216
|
return output;
|
|
305
217
|
}, {});
|
|
306
218
|
};
|
|
307
|
-
|
|
308
219
|
const validateModelFields = async params => {
|
|
309
220
|
const {
|
|
221
|
+
models,
|
|
310
222
|
model,
|
|
311
223
|
original,
|
|
312
224
|
context
|
|
313
225
|
} = params;
|
|
314
226
|
const {
|
|
315
|
-
titleFieldId
|
|
227
|
+
titleFieldId,
|
|
228
|
+
descriptionFieldId,
|
|
229
|
+
imageFieldId
|
|
316
230
|
} = model;
|
|
317
231
|
const {
|
|
318
232
|
plugins
|
|
319
233
|
} = context;
|
|
234
|
+
|
|
320
235
|
/**
|
|
321
236
|
* There should be fields/locked fields in either model or data to be updated.
|
|
322
237
|
*/
|
|
323
|
-
|
|
324
238
|
const {
|
|
325
239
|
fields = [],
|
|
326
240
|
lockedFields = []
|
|
327
241
|
} = model;
|
|
242
|
+
|
|
328
243
|
/**
|
|
329
244
|
* Let's inspect the fields of the received content model. We prevent saving of a content model if it
|
|
330
245
|
* contains a field for which a "cms-model-field-to-graphql" plugin does not exist on the backend.
|
|
331
246
|
*/
|
|
332
|
-
|
|
333
247
|
const fieldTypePlugins = plugins.byType("cms-model-field-to-graphql");
|
|
334
248
|
validateFields({
|
|
335
249
|
fields,
|
|
336
|
-
originalFields:
|
|
250
|
+
originalFields: original?.fields || [],
|
|
337
251
|
lockedFields,
|
|
338
252
|
plugins: fieldTypePlugins
|
|
339
253
|
});
|
|
340
|
-
|
|
341
254
|
if (fields.length) {
|
|
342
255
|
const sorterPlugins = plugins.byType(_plugins.CmsGraphQLSchemaSorterPlugin.type);
|
|
343
256
|
/**
|
|
344
257
|
* Make sure that this model can be safely converted to a GraphQL SDL
|
|
345
258
|
*/
|
|
346
|
-
|
|
347
259
|
const schema = (0, _createManageSDL.createManageSDL)({
|
|
260
|
+
models,
|
|
348
261
|
model,
|
|
349
|
-
fieldTypePlugins: fieldTypePlugins.reduce((acc, pl) => (
|
|
262
|
+
fieldTypePlugins: fieldTypePlugins.reduce((acc, pl) => ({
|
|
263
|
+
...acc,
|
|
350
264
|
[pl.fieldType]: pl
|
|
351
265
|
}), {}),
|
|
352
266
|
sorterPlugins
|
|
353
267
|
});
|
|
354
|
-
|
|
355
268
|
try {
|
|
356
269
|
(0, _graphqlTag.default)(schema);
|
|
357
270
|
} catch (err) {
|
|
@@ -360,8 +273,6 @@ const validateModelFields = async params => {
|
|
|
360
273
|
/**
|
|
361
274
|
*
|
|
362
275
|
*/
|
|
363
|
-
|
|
364
|
-
|
|
365
276
|
try {
|
|
366
277
|
await createGraphQLSchema({
|
|
367
278
|
context,
|
|
@@ -378,34 +289,32 @@ const validateModelFields = async params => {
|
|
|
378
289
|
});
|
|
379
290
|
}
|
|
380
291
|
}
|
|
381
|
-
|
|
382
|
-
model.
|
|
292
|
+
model.titleFieldId = (0, _titleField.getContentModelTitleFieldId)(fields, titleFieldId);
|
|
293
|
+
model.descriptionFieldId = (0, _descriptionField.getContentModelDescriptionFieldId)(fields, descriptionFieldId);
|
|
294
|
+
model.imageFieldId = (0, _imageField.getContentModelImageFieldId)(fields, imageFieldId);
|
|
383
295
|
const cmsLockedFieldPlugins = plugins.byType("cms-model-locked-field");
|
|
296
|
+
|
|
384
297
|
/**
|
|
385
298
|
* We must not allow removal or changes in fields that are already in use in content entries.
|
|
386
299
|
* Locked fields still have fieldId (should be storageId) because of the old existing locked fields in the models.
|
|
387
300
|
*/
|
|
388
|
-
|
|
389
301
|
for (const lockedField of lockedFields) {
|
|
390
302
|
const existingField = fields.find(item => item.storageId === lockedField.fieldId);
|
|
303
|
+
|
|
391
304
|
/**
|
|
392
305
|
* Starting with 5.33.0 fields can be deleted.
|
|
393
306
|
* Our UI gives a warning upon locked field deletion, but if user is managing fields through API directly - we cannot do anything.
|
|
394
307
|
*/
|
|
395
|
-
|
|
396
308
|
if (!existingField) {
|
|
397
309
|
continue;
|
|
398
310
|
}
|
|
399
|
-
|
|
400
|
-
if (lockedField.multipleValues !== existingField.multipleValues) {
|
|
311
|
+
if (Boolean(lockedField.multipleValues) !== Boolean(existingField.multipleValues)) {
|
|
401
312
|
throw new _error.default(`Cannot change "multipleValues" for the "${lockedField.fieldId}" field because it's already in use in created content.`, "ENTRY_FIELD_USED", {
|
|
402
313
|
reason: `"multipleValues" changed`,
|
|
403
314
|
field: existingField
|
|
404
315
|
});
|
|
405
316
|
}
|
|
406
|
-
|
|
407
317
|
const fieldType = (0, _getBaseFieldType.getBaseFieldType)(existingField);
|
|
408
|
-
|
|
409
318
|
if (lockedField.type !== fieldType) {
|
|
410
319
|
throw new _error.default(`Cannot change field type for the "${lockedField.fieldId}" field because it's already in use in created content.`, "ENTRY_FIELD_USED", {
|
|
411
320
|
reason: `"type" changed`,
|
|
@@ -413,18 +322,15 @@ const validateModelFields = async params => {
|
|
|
413
322
|
existingFieldType: fieldType
|
|
414
323
|
});
|
|
415
324
|
}
|
|
325
|
+
|
|
416
326
|
/**
|
|
417
327
|
* Check `lockedField` invariant for specific field
|
|
418
328
|
*/
|
|
419
|
-
|
|
420
|
-
|
|
421
329
|
const lockedFieldsByType = cmsLockedFieldPlugins.filter(pl => pl.fieldType === (0, _getBaseFieldType.getBaseFieldType)(lockedField));
|
|
422
|
-
|
|
423
330
|
for (const plugin of lockedFieldsByType) {
|
|
424
331
|
if (typeof plugin.checkLockedField !== "function") {
|
|
425
332
|
continue;
|
|
426
333
|
}
|
|
427
|
-
|
|
428
334
|
plugin.checkLockedField({
|
|
429
335
|
lockedField,
|
|
430
336
|
field: existingField
|
|
@@ -432,5 +338,6 @@ const validateModelFields = async params => {
|
|
|
432
338
|
}
|
|
433
339
|
}
|
|
434
340
|
};
|
|
341
|
+
exports.validateModelFields = validateModelFields;
|
|
435
342
|
|
|
436
|
-
|
|
343
|
+
//# sourceMappingURL=validateModelFields.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["defaultTitleFieldId","allowedTitleFieldTypes","getContentModelTitleFieldId","fields","titleFieldId","length","titleField","find","field","getBaseFieldType","multipleValues","fieldId","target","f","WebinyError","includes","type","join","storageId","extractInvalidField","model","err","sdl","source","body","line","lineNumber","locations","sdlLines","split","sdlLine","gqlType","i","match","invalidField","undefined","Array","isArray","fieldRegex","RegExp","matched","message","data","modelId","code","createValidateChildFields","plugins","originalFields","validateFields","lockedFields","params","idList","fieldIdList","storageIdList","baseType","plugin","fieldType","Error","id","push","originalField","isLocked","some","lockedField","createFieldStorageId","label","validateChildFields","validate","createGraphQLSchema","context","modelPlugins","buildSchemaPlugins","models","byType","GraphQLSchemaPlugin","createExecutableSchema","extractErrorObject","error","reduce","output","key","validateModelFields","original","fieldTypePlugins","sorterPlugins","CmsGraphQLSchemaSorterPlugin","schema","createManageSDL","acc","pl","gql","cmsLockedFieldPlugins","existingField","item","reason","lockedFieldType","existingFieldType","lockedFieldsByType","filter","checkLockedField"],"sources":["validateModelFields.ts"],"sourcesContent":["import {\n CmsContext,\n CmsModel,\n CmsModelField,\n CmsModelFieldToGraphQLPlugin,\n CmsModelFieldToGraphQLPluginValidateChildFieldsValidate,\n CmsModelLockedFieldPlugin,\n LockedField\n} from \"~/types\";\nimport WebinyError from \"@webiny/error\";\nimport { createManageSDL } from \"~/graphql/schema/createManageSDL\";\nimport gql from \"graphql-tag\";\nimport { createFieldStorageId } from \"./createFieldStorageId\";\nimport { GraphQLError } from \"graphql\";\nimport { getBaseFieldType } from \"~/utils/getBaseFieldType\";\nimport { CmsGraphQLSchemaSorterPlugin } from \"~/plugins\";\nimport { buildSchemaPlugins } from \"~/graphql/buildSchemaPlugins\";\nimport { createExecutableSchema } from \"~/graphql/createExecutableSchema\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\n\nconst defaultTitleFieldId = \"id\";\n\nconst allowedTitleFieldTypes = [\"text\", \"number\"];\n\nconst getContentModelTitleFieldId = (fields: CmsModelField[], titleFieldId?: string): string => {\n /**\n * If there are no fields defined, we will return the default field\n */\n if (fields.length === 0) {\n return defaultTitleFieldId;\n }\n /**\n * if there is no title field defined either in input data or existing content model data\n * we will take first text field that has no multiple values enabled\n * or if initial titleFieldId is the default one also try to find first available text field\n */\n if (!titleFieldId || titleFieldId === defaultTitleFieldId) {\n const titleField = fields.find(field => {\n return getBaseFieldType(field) === \"text\" && !field.multipleValues;\n });\n return titleField?.fieldId || defaultTitleFieldId;\n }\n /**\n * check existing titleFieldId for existence in the model\n * for correct type\n * and that it is not multiple values field\n */\n const target = fields.find(f => f.fieldId === titleFieldId);\n if (!target) {\n throw new WebinyError(\n `Field selected for the title field does not exist in the model.`,\n \"VALIDATION_ERROR\",\n {\n fieldId: titleFieldId,\n fields\n }\n );\n }\n\n if (allowedTitleFieldTypes.includes(target.type) === false) {\n throw new WebinyError(\n `Only ${allowedTitleFieldTypes.join(\n \", \"\n )} and id fields can be used as an entry title.`,\n \"ENTRY_TITLE_FIELD_TYPE\",\n {\n storageId: target.storageId,\n fieldId: target.fieldId,\n type: target.type\n }\n );\n }\n\n if (target.multipleValues) {\n throw new WebinyError(\n `Fields that accept multiple values cannot be used as the entry title.`,\n \"ENTRY_TITLE_FIELD_TYPE\",\n {\n storageId: target.storageId,\n fieldId: target.fieldId,\n type: target.type\n }\n );\n }\n\n return target.fieldId;\n};\n\nconst extractInvalidField = (model: CmsModel, err: GraphQLError) => {\n const sdl = err.source?.body || \"\";\n\n /**\n * Find the invalid type\n */\n const { line: lineNumber } = err.locations\n ? err.locations[0]\n : {\n line: 0\n };\n const sdlLines = sdl.split(\"\\n\");\n let sdlLine;\n let gqlType;\n for (let i = lineNumber; i > 0; i--) {\n if (sdlLine && sdlLine.includes(\"type \")) {\n gqlType = sdlLine.match(/type\\s+(.*?)\\s+{/);\n break;\n }\n\n sdlLine = sdlLines[i];\n }\n\n let invalidField: string | undefined = undefined;\n if (Array.isArray(gqlType)) {\n const fieldRegex = new RegExp(`([^\\\\s+].*?):\\\\s+\\\\[?${gqlType[1]}!?\\\\]?`);\n\n const matched = sdl.match(fieldRegex);\n if (matched) {\n invalidField = matched[1];\n }\n }\n\n let message = `See more details in the browser console.`;\n if (invalidField) {\n message = `Please review the definition of \"${invalidField}\" field.`;\n }\n\n return {\n data: {\n modelId: model.modelId,\n sdl,\n invalidField\n },\n code: \"INVALID_MODEL_DEFINITION\",\n message: [`Model \"${model.modelId}\" was not saved!`, message].join(\"\\n\")\n };\n};\n\nconst createValidateChildFields = (\n plugins: CmsModelFieldToGraphQLPlugin[]\n): CmsModelFieldToGraphQLPluginValidateChildFieldsValidate => {\n return ({ fields, originalFields }) => {\n if (fields.length === 0 && originalFields.length === 0) {\n return;\n }\n validateFields({\n fields,\n originalFields,\n plugins,\n lockedFields: []\n });\n };\n};\n\ninterface ValidateFieldsParams {\n plugins: CmsModelFieldToGraphQLPlugin[];\n fields: CmsModelField[];\n originalFields: CmsModelField[];\n lockedFields: LockedField[];\n}\nconst validateFields = (params: ValidateFieldsParams) => {\n const { plugins, fields, originalFields, lockedFields } = params;\n\n const idList: string[] = [];\n const fieldIdList: string[] = [];\n const storageIdList: string[] = [];\n\n for (const field of fields) {\n const baseType = getBaseFieldType(field);\n const plugin = plugins.find(plugin => plugin.fieldType === baseType);\n\n if (!plugin) {\n throw new Error(\n `Cannot update content model because of the unknown \"${baseType}\" field.`\n );\n }\n /**\n * Check the field's id against existing ones.\n * There cannot be two fields with the same id.\n */\n if (idList.includes(field.id)) {\n throw new WebinyError(\n `Cannot update content model because field \"${\n field.storageId || field.fieldId\n }\" has id \"${field.id}\", which is already used.`\n );\n }\n idList.push(field.id);\n\n const originalField = originalFields.find(f => f.id === field.id);\n /**\n * Field MUST have an fieldId defined.\n */\n if (!field.fieldId) {\n throw new WebinyError(`Field does not have an \"fieldId\" defined.`, \"MISSING_FIELD_ID\", {\n field\n });\n }\n /**\n * If storageId does not match a certain pattern, add that pattern, but only if field is not locked (used) already.\n * This is to avoid errors in the already installed systems.\n *\n * Why are we using the @?\n *\n * It is not part of special characters for the query syntax in the Lucene.\n *\n * Relevant links:\n * https://lucene.apache.org/core/3_4_0/queryparsersyntax.html\n * https://discuss.elastic.co/t/special-characters-in-field-names/10658/3\n * https://discuss.elastic.co/t/illegal-characters-in-elasticsearch-field-names/17196/2\n */\n const isLocked = lockedFields.some(lockedField => {\n return lockedField.fieldId === field.storageId || lockedField.fieldId === field.fieldId;\n });\n if (!field.storageId) {\n /**\n * In case field is locked, we must set the storageId to the fieldId value.\n * This should not happen, because we upgrade all the fields in 5.33.0, but let's have a check just in case of some upgrade miss.\n */\n //\n if (isLocked) {\n field.storageId = field.fieldId;\n }\n /**\n * When having original field, just set the storageId to value from the originalField\n */\n //\n else if (originalField) {\n field.storageId = originalField.storageId;\n }\n /**\n * The last case is when no original field and not locked - so this is a completely new field.\n */\n //\n else {\n field.storageId = createFieldStorageId(field);\n }\n }\n /**\n * Check the field's fieldId against existing ones.\n * There cannot be two fields with the same fieldId - outside world identifier.\n */\n if (fieldIdList.includes(field.fieldId)) {\n throw new WebinyError(\n `Cannot update content model because field \"${field.storageId}\" has fieldId \"${field.fieldId}\", which is already used.`\n );\n }\n fieldIdList.push(field.fieldId);\n /**\n * Check the field's storageId against the existing ones.\n * There cannot be two fields with the same storageId.\n */\n if (storageIdList.includes(field.storageId)) {\n throw new WebinyError(\n `Cannot update content model because field \"${field.label}\" has storageId \"${field.storageId}\", which is already used.`\n );\n }\n storageIdList.push(field.storageId);\n /**\n * There might be some plugins which allow child fields.\n * We use this method to validate them as well.\n */\n if (!plugin.validateChildFields) {\n continue;\n }\n const validateChildFields = createValidateChildFields(plugins);\n plugin.validateChildFields({\n field,\n originalField,\n validate: validateChildFields\n });\n }\n};\ninterface CreateGraphQLSchemaParams {\n context: CmsContext;\n model: CmsModel;\n}\nconst createGraphQLSchema = async (params: CreateGraphQLSchemaParams): Promise<any> => {\n const { context, model } = params;\n\n const modelPlugins = await buildSchemaPlugins({\n context,\n models: [model]\n });\n\n const plugins = context.plugins.byType<GraphQLSchemaPlugin<CmsContext>>(\n GraphQLSchemaPlugin.type\n );\n plugins.push(...modelPlugins);\n\n return createExecutableSchema({\n plugins\n });\n};\n\nconst extractErrorObject = (error: any) => {\n return [\"message\", \"code\", \"data\", \"stack\"].reduce<Record<string, any>>((output, key) => {\n if (!error[key]) {\n return output;\n }\n output[key] = error[key];\n return output;\n }, {});\n};\n\ninterface ValidateModelFieldsParams {\n model: CmsModel;\n original?: CmsModel;\n context: CmsContext;\n}\nexport const validateModelFields = async (params: ValidateModelFieldsParams): Promise<void> => {\n const { model, original, context } = params;\n const { titleFieldId } = model;\n const { plugins } = context;\n\n /**\n * There should be fields/locked fields in either model or data to be updated.\n */\n const { fields = [], lockedFields = [] } = model;\n\n /**\n * Let's inspect the fields of the received content model. We prevent saving of a content model if it\n * contains a field for which a \"cms-model-field-to-graphql\" plugin does not exist on the backend.\n */\n const fieldTypePlugins = plugins.byType<CmsModelFieldToGraphQLPlugin>(\n \"cms-model-field-to-graphql\"\n );\n\n validateFields({\n fields,\n originalFields: original?.fields || [],\n lockedFields,\n plugins: fieldTypePlugins\n });\n\n if (fields.length) {\n const sorterPlugins = plugins.byType<CmsGraphQLSchemaSorterPlugin>(\n CmsGraphQLSchemaSorterPlugin.type\n );\n /**\n * Make sure that this model can be safely converted to a GraphQL SDL\n */\n const schema = createManageSDL({\n model,\n fieldTypePlugins: fieldTypePlugins.reduce(\n (acc, pl) => ({ ...acc, [pl.fieldType]: pl }),\n {}\n ),\n sorterPlugins\n });\n\n try {\n gql(schema);\n } catch (err) {\n throw new WebinyError(extractInvalidField(model, err));\n }\n /**\n *\n */\n try {\n await createGraphQLSchema({\n context,\n model\n });\n } catch (err) {\n throw new WebinyError({\n message:\n \"Cannot generate GraphQL schema when testing with the given model. Please check the response for more details.\",\n code: \"GRAPHQL_SCHEMA_ERROR\",\n data: {\n modelId: model.modelId,\n error: extractErrorObject(err)\n }\n });\n }\n }\n\n model.titleFieldId = getContentModelTitleFieldId(fields, titleFieldId);\n\n const cmsLockedFieldPlugins =\n plugins.byType<CmsModelLockedFieldPlugin>(\"cms-model-locked-field\");\n\n /**\n * We must not allow removal or changes in fields that are already in use in content entries.\n * Locked fields still have fieldId (should be storageId) because of the old existing locked fields in the models.\n */\n for (const lockedField of lockedFields) {\n const existingField = fields.find(item => item.storageId === lockedField.fieldId);\n\n /**\n * Starting with 5.33.0 fields can be deleted.\n * Our UI gives a warning upon locked field deletion, but if user is managing fields through API directly - we cannot do anything.\n */\n if (!existingField) {\n continue;\n }\n\n if (lockedField.multipleValues !== existingField.multipleValues) {\n throw new WebinyError(\n `Cannot change \"multipleValues\" for the \"${lockedField.fieldId}\" field because it's already in use in created content.`,\n \"ENTRY_FIELD_USED\",\n {\n reason: `\"multipleValues\" changed`,\n field: existingField\n }\n );\n }\n\n const fieldType = getBaseFieldType(existingField);\n if (lockedField.type !== fieldType) {\n throw new WebinyError(\n `Cannot change field type for the \"${lockedField.fieldId}\" field because it's already in use in created content.`,\n \"ENTRY_FIELD_USED\",\n {\n reason: `\"type\" changed`,\n lockedFieldType: lockedField.type,\n existingFieldType: fieldType\n }\n );\n }\n\n /**\n * Check `lockedField` invariant for specific field\n */\n const lockedFieldsByType = cmsLockedFieldPlugins.filter(\n pl => pl.fieldType === getBaseFieldType(lockedField)\n );\n for (const plugin of lockedFieldsByType) {\n if (typeof plugin.checkLockedField !== \"function\") {\n continue;\n }\n plugin.checkLockedField({\n lockedField,\n field: existingField\n });\n }\n }\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_graphqlTag","_interopRequireDefault","require","_error","_createManageSDL","_createFieldStorageId","_getBaseFieldType","_titleField","_descriptionField","_imageField","_plugins","_buildSchemaPlugins","_createExecutableSchema","_utils","extractInvalidField","model","err","sdl","source","body","line","lineNumber","locations","sdlLines","split","sdlLine","gqlType","i","includes","match","invalidField","undefined","Array","isArray","fieldRegex","RegExp","matched","message","data","modelId","code","join","createValidateChildFields","plugins","fields","originalFields","length","validateFields","lockedFields","params","idList","fieldIdList","storageIdList","field","baseType","getBaseFieldType","plugin","find","fieldType","Error","id","WebinyError","storageId","fieldId","push","originalField","f","isLocked","some","lockedField","createFieldStorageId","label","validateChildFields","validate","createGraphQLSchema","context","models","security","withoutAuthorization","cms","listModels","filter","isPrivate","modelPlugins","buildSchemaPlugins","concat","byType","CmsGraphQLSchemaPlugin","type","isApplicable","reduce","collection","name","generateAlphaNumericId","createExecutableSchema","Object","values","extractErrorObject","error","output","key","validateModelFields","original","titleFieldId","descriptionFieldId","imageFieldId","fieldTypePlugins","sorterPlugins","CmsGraphQLSchemaSorterPlugin","schema","createManageSDL","acc","pl","gql","getContentModelTitleFieldId","getContentModelDescriptionFieldId","getContentModelImageFieldId","cmsLockedFieldPlugins","existingField","item","Boolean","multipleValues","reason","lockedFieldType","existingFieldType","lockedFieldsByType","checkLockedField","exports"],"sources":["validateModelFields.ts"],"sourcesContent":["import gql from \"graphql-tag\";\nimport WebinyError from \"@webiny/error\";\nimport type {\n CmsContext,\n CmsModel,\n CmsModelField,\n CmsModelFieldToGraphQLPlugin,\n CmsModelFieldToGraphQLPluginValidateChildFieldsValidate,\n CmsModelLockedFieldPlugin,\n LockedField\n} from \"~/types\";\nimport { createManageSDL } from \"~/graphql/schema/createManageSDL\";\nimport { createFieldStorageId } from \"./createFieldStorageId\";\nimport type { GraphQLError } from \"graphql\";\nimport { getBaseFieldType } from \"~/utils/getBaseFieldType\";\nimport { getContentModelTitleFieldId } from \"./fields/titleField\";\nimport { getContentModelDescriptionFieldId } from \"./fields/descriptionField\";\nimport { getContentModelImageFieldId } from \"./fields/imageField\";\nimport type { ICmsGraphQLSchemaPlugin } from \"~/plugins\";\nimport { CmsGraphQLSchemaPlugin, CmsGraphQLSchemaSorterPlugin } from \"~/plugins\";\nimport { buildSchemaPlugins } from \"~/graphql/buildSchemaPlugins\";\nimport { createExecutableSchema } from \"~/graphql/createExecutableSchema\";\nimport { generateAlphaNumericId } from \"@webiny/utils\";\n\nconst extractInvalidField = (model: CmsModel, err: GraphQLError) => {\n const sdl = err.source?.body || \"\";\n\n /**\n * Find the invalid type\n */\n const { line: lineNumber } = err.locations\n ? err.locations[0]\n : {\n line: 0\n };\n const sdlLines = sdl.split(\"\\n\");\n let sdlLine;\n let gqlType;\n for (let i = lineNumber; i > 0; i--) {\n if (sdlLine && sdlLine.includes(\"type \")) {\n gqlType = sdlLine.match(/type\\s+(.*?)\\s+{/);\n break;\n }\n\n sdlLine = sdlLines[i];\n }\n\n let invalidField: string | undefined = undefined;\n if (Array.isArray(gqlType)) {\n const fieldRegex = new RegExp(`([^\\\\s+].*?):\\\\s+\\\\[?${gqlType[1]}!?\\\\]?`);\n\n const matched = sdl.match(fieldRegex);\n if (matched) {\n invalidField = matched[1];\n }\n }\n\n let message = `See more details in the browser console.`;\n if (invalidField) {\n message = `Please review the definition of \"${invalidField}\" field.`;\n }\n\n return {\n data: {\n modelId: model.modelId,\n sdl,\n invalidField\n },\n code: \"INVALID_MODEL_DEFINITION\",\n message: [`Model \"${model.modelId}\" was not saved!`, message].join(\"\\n\")\n };\n};\n\nconst createValidateChildFields = (\n plugins: CmsModelFieldToGraphQLPlugin[]\n): CmsModelFieldToGraphQLPluginValidateChildFieldsValidate => {\n return ({ fields, originalFields }) => {\n if (fields.length === 0 && originalFields.length === 0) {\n return;\n }\n validateFields({\n fields,\n originalFields,\n plugins,\n lockedFields: []\n });\n };\n};\n\ninterface ValidateFieldsParams {\n plugins: CmsModelFieldToGraphQLPlugin[];\n fields: CmsModelField[];\n originalFields: CmsModelField[];\n lockedFields: LockedField[];\n}\n\nconst validateFields = (params: ValidateFieldsParams) => {\n const { plugins, fields, originalFields, lockedFields } = params;\n\n const idList: string[] = [];\n const fieldIdList: string[] = [];\n const storageIdList: string[] = [];\n\n for (const field of fields) {\n const baseType = getBaseFieldType(field);\n const plugin = plugins.find(plugin => plugin.fieldType === baseType);\n\n if (!plugin) {\n throw new Error(\n `Cannot update content model because of the unknown \"${baseType}\" field.`\n );\n }\n /**\n * Check the field's id against existing ones.\n * There cannot be two fields with the same id.\n */\n if (idList.includes(field.id)) {\n throw new WebinyError(\n `Cannot update content model because field \"${\n field.storageId || field.fieldId\n }\" has id \"${field.id}\", which is already used.`\n );\n }\n idList.push(field.id);\n\n const originalField = originalFields.find(f => f.id === field.id);\n /**\n * Field MUST have an fieldId defined.\n */\n if (!field.fieldId) {\n throw new WebinyError(`Field does not have an \"fieldId\" defined.`, \"MISSING_FIELD_ID\", {\n field\n });\n }\n /**\n * If storageId does not match a certain pattern, add that pattern, but only if field is not locked (used) already.\n * This is to avoid errors in the already installed systems.\n *\n * Why are we using the @?\n *\n * It is not part of special characters for the query syntax in the Lucene.\n *\n * Relevant links:\n * https://lucene.apache.org/core/3_4_0/queryparsersyntax.html\n * https://discuss.elastic.co/t/special-characters-in-field-names/10658/3\n * https://discuss.elastic.co/t/illegal-characters-in-elasticsearch-field-names/17196/2\n */\n const isLocked = lockedFields.some(lockedField => {\n return lockedField.fieldId === field.storageId || lockedField.fieldId === field.fieldId;\n });\n if (!field.storageId) {\n /**\n * In case field is locked, we must set the storageId to the fieldId value.\n * This should not happen, because we upgrade all the fields in 5.33.0, but let's have a check just in case of some upgrade miss.\n */\n //\n if (isLocked) {\n field.storageId = field.fieldId;\n }\n /**\n * When having original field, just set the storageId to value from the originalField\n */\n //\n else if (originalField) {\n field.storageId = originalField.storageId;\n }\n /**\n * The last case is when no original field and not locked - so this is a completely new field.\n */\n //\n else {\n field.storageId = createFieldStorageId(field);\n }\n }\n /**\n * Check the field's fieldId against existing ones.\n * There cannot be two fields with the same fieldId - outside world identifier.\n */\n if (fieldIdList.includes(field.fieldId)) {\n throw new WebinyError(\n `Cannot update content model because field \"${field.storageId}\" has fieldId \"${field.fieldId}\", which is already used.`\n );\n }\n fieldIdList.push(field.fieldId);\n /**\n * Check the field's storageId against the existing ones.\n * There cannot be two fields with the same storageId.\n */\n if (storageIdList.includes(field.storageId)) {\n throw new WebinyError(\n `Cannot update content model because field \"${field.label}\" has storageId \"${field.storageId}\", which is already used.`\n );\n }\n storageIdList.push(field.storageId);\n /**\n * There might be some plugins which allow child fields.\n * We use this method to validate them as well.\n */\n if (!plugin.validateChildFields) {\n continue;\n }\n const validateChildFields = createValidateChildFields(plugins);\n plugin.validateChildFields({\n field,\n originalField,\n validate: validateChildFields\n });\n }\n};\n\ninterface CreateGraphQLSchemaParams {\n context: CmsContext;\n model: CmsModel;\n}\n\nconst createGraphQLSchema = async (params: CreateGraphQLSchemaParams): Promise<any> => {\n const { context, model } = params;\n\n const models = await context.security.withoutAuthorization(async () => {\n return (await context.cms.listModels()).filter((model): model is CmsModel => {\n return model.isPrivate !== true;\n });\n });\n\n const modelPlugins = await buildSchemaPlugins({\n context,\n models: models.concat([model])\n });\n\n const plugins = context.plugins\n .byType<ICmsGraphQLSchemaPlugin>(CmsGraphQLSchemaPlugin.type)\n .filter(plugin => plugin.isApplicable(context))\n .reduce<Record<string, ICmsGraphQLSchemaPlugin>>((collection, plugin) => {\n const name =\n plugin.name || `${CmsGraphQLSchemaPlugin.type}-${generateAlphaNumericId(16)}`;\n collection[name] = plugin;\n return collection;\n }, {});\n for (const plugin of modelPlugins) {\n const name = plugin.name || `${plugin.type}-${generateAlphaNumericId(16)}`;\n plugins[name] = plugin;\n }\n\n return createExecutableSchema({\n plugins: Object.values(plugins)\n });\n};\n\nconst extractErrorObject = (error: any) => {\n return [\"message\", \"code\", \"data\", \"stack\"].reduce<Record<string, any>>((output, key) => {\n if (!error[key]) {\n return output;\n }\n output[key] = error[key];\n return output;\n }, {});\n};\n\ninterface ValidateModelFieldsParams {\n models: CmsModel[];\n model: CmsModel;\n original?: CmsModel;\n context: CmsContext;\n}\n\nexport const validateModelFields = async (params: ValidateModelFieldsParams): Promise<void> => {\n const { models, model, original, context } = params;\n const { titleFieldId, descriptionFieldId, imageFieldId } = model;\n const { plugins } = context;\n\n /**\n * There should be fields/locked fields in either model or data to be updated.\n */\n const { fields = [], lockedFields = [] } = model;\n\n /**\n * Let's inspect the fields of the received content model. We prevent saving of a content model if it\n * contains a field for which a \"cms-model-field-to-graphql\" plugin does not exist on the backend.\n */\n const fieldTypePlugins = plugins.byType<CmsModelFieldToGraphQLPlugin>(\n \"cms-model-field-to-graphql\"\n );\n\n validateFields({\n fields,\n originalFields: original?.fields || [],\n lockedFields,\n plugins: fieldTypePlugins\n });\n\n if (fields.length) {\n const sorterPlugins = plugins.byType<CmsGraphQLSchemaSorterPlugin>(\n CmsGraphQLSchemaSorterPlugin.type\n );\n /**\n * Make sure that this model can be safely converted to a GraphQL SDL\n */\n const schema = createManageSDL({\n models,\n model,\n fieldTypePlugins: fieldTypePlugins.reduce(\n (acc, pl) => ({ ...acc, [pl.fieldType]: pl }),\n {}\n ),\n sorterPlugins\n });\n\n try {\n gql(schema);\n } catch (err) {\n throw new WebinyError(extractInvalidField(model, err));\n }\n /**\n *\n */\n try {\n await createGraphQLSchema({\n context,\n model\n });\n } catch (err) {\n throw new WebinyError({\n message:\n \"Cannot generate GraphQL schema when testing with the given model. Please check the response for more details.\",\n code: \"GRAPHQL_SCHEMA_ERROR\",\n data: {\n modelId: model.modelId,\n error: extractErrorObject(err)\n }\n });\n }\n }\n\n model.titleFieldId = getContentModelTitleFieldId(fields, titleFieldId);\n model.descriptionFieldId = getContentModelDescriptionFieldId(fields, descriptionFieldId);\n model.imageFieldId = getContentModelImageFieldId(fields, imageFieldId);\n\n const cmsLockedFieldPlugins =\n plugins.byType<CmsModelLockedFieldPlugin>(\"cms-model-locked-field\");\n\n /**\n * We must not allow removal or changes in fields that are already in use in content entries.\n * Locked fields still have fieldId (should be storageId) because of the old existing locked fields in the models.\n */\n for (const lockedField of lockedFields) {\n const existingField = fields.find(item => item.storageId === lockedField.fieldId);\n\n /**\n * Starting with 5.33.0 fields can be deleted.\n * Our UI gives a warning upon locked field deletion, but if user is managing fields through API directly - we cannot do anything.\n */\n if (!existingField) {\n continue;\n }\n\n if (Boolean(lockedField.multipleValues) !== Boolean(existingField.multipleValues)) {\n throw new WebinyError(\n `Cannot change \"multipleValues\" for the \"${lockedField.fieldId}\" field because it's already in use in created content.`,\n \"ENTRY_FIELD_USED\",\n {\n reason: `\"multipleValues\" changed`,\n field: existingField\n }\n );\n }\n\n const fieldType = getBaseFieldType(existingField);\n if (lockedField.type !== fieldType) {\n throw new WebinyError(\n `Cannot change field type for the \"${lockedField.fieldId}\" field because it's already in use in created content.`,\n \"ENTRY_FIELD_USED\",\n {\n reason: `\"type\" changed`,\n lockedFieldType: lockedField.type,\n existingFieldType: fieldType\n }\n );\n }\n\n /**\n * Check `lockedField` invariant for specific field\n */\n const lockedFieldsByType = cmsLockedFieldPlugins.filter(\n pl => pl.fieldType === getBaseFieldType(lockedField)\n );\n for (const plugin of lockedFieldsByType) {\n if (typeof plugin.checkLockedField !== \"function\") {\n continue;\n }\n plugin.checkLockedField({\n lockedField,\n field: existingField\n });\n }\n }\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const validateStorageId: (storageId: string) => void;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.validateStorageId = void 0;
|
|
8
|
+
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
9
|
+
// We allow "@" because that's how we construct storageIds with `createModelField` utility.
|
|
10
|
+
const VALID_STORAGE_ID_REGEX = /^([@a-zA-Z-0-9]+)$/;
|
|
11
|
+
const validateStorageId = storageId => {
|
|
12
|
+
if (!storageId.match(VALID_STORAGE_ID_REGEX)) {
|
|
13
|
+
const message = [`Invalid storageId provided ("${storageId}").`, 'Only alphanumeric characters and "@" are allowed.'].join(" ");
|
|
14
|
+
throw new _error.default(message, "STORAGE_ID_NOT_ALPHANUMERIC_ERROR");
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
exports.validateStorageId = validateStorageId;
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=validateStorageId.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_error","_interopRequireDefault","require","VALID_STORAGE_ID_REGEX","validateStorageId","storageId","match","message","join","WebinyError","exports"],"sources":["validateStorageId.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\n\n// We allow \"@\" because that's how we construct storageIds with `createModelField` utility.\nconst VALID_STORAGE_ID_REGEX = /^([@a-zA-Z-0-9]+)$/;\n\nexport const validateStorageId = (storageId: string) => {\n if (!storageId.match(VALID_STORAGE_ID_REGEX)) {\n const message = [\n `Invalid storageId provided (\"${storageId}\").`,\n 'Only alphanumeric characters and \"@\" are allowed.'\n ].join(\" \");\n\n throw new WebinyError(message, \"STORAGE_ID_NOT_ALPHANUMERIC_ERROR\");\n }\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA;AACA,MAAMC,sBAAsB,GAAG,oBAAoB;AAE5C,MAAMC,iBAAiB,GAAIC,SAAiB,IAAK;EACpD,IAAI,CAACA,SAAS,CAACC,KAAK,CAACH,sBAAsB,CAAC,EAAE;IAC1C,MAAMI,OAAO,GAAG,CACZ,gCAAgCF,SAAS,KAAK,EAC9C,mDAAmD,CACtD,CAACG,IAAI,CAAC,GAAG,CAAC;IAEX,MAAM,IAAIC,cAAW,CAACF,OAAO,EAAE,mCAAmC,CAAC;EACvE;AACJ,CAAC;AAACG,OAAA,CAAAN,iBAAA,GAAAA,iBAAA","ignoreList":[]}
|