@webiny/api-headless-cms 0.0.0-unstable.de38392959 → 0.0.0-unstable.e0bfc55d5a
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 +18 -6
- package/constants.js +29 -16
- package/constants.js.map +1 -1
- package/context.d.ts +1 -1
- package/context.js +61 -32
- 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 +15 -1
- package/crud/contentEntry/afterDelete.js.map +1 -1
- package/crud/contentEntry/beforeCreate.d.ts +2 -2
- package/crud/contentEntry/beforeCreate.js.map +1 -1
- package/crud/contentEntry/beforeUpdate.d.ts +2 -2
- package/crud/contentEntry/beforeUpdate.js.map +1 -1
- package/crud/contentEntry/entryDataFactories/createEntryData.d.ts +8 -8
- package/crud/contentEntry/entryDataFactories/createEntryData.js +30 -4
- package/crud/contentEntry/entryDataFactories/createEntryData.js.map +1 -1
- package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.d.ts +8 -6
- package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.js +54 -11
- package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.js.map +1 -1
- package/crud/contentEntry/entryDataFactories/createPublishEntryData.d.ts +5 -5
- package/crud/contentEntry/entryDataFactories/createPublishEntryData.js +22 -20
- package/crud/contentEntry/entryDataFactories/createPublishEntryData.js.map +1 -1
- package/crud/contentEntry/entryDataFactories/createRepublishEntryData.d.ts +3 -3
- package/crud/contentEntry/entryDataFactories/createRepublishEntryData.js +18 -16
- package/crud/contentEntry/entryDataFactories/createRepublishEntryData.js.map +1 -1
- package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.d.ts +5 -5
- package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.js +10 -8
- package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.js.map +1 -1
- package/crud/contentEntry/entryDataFactories/createUpdateEntryData.d.ts +5 -5
- package/crud/contentEntry/entryDataFactories/createUpdateEntryData.js +8 -0
- package/crud/contentEntry/entryDataFactories/createUpdateEntryData.js.map +1 -1
- package/crud/contentEntry/entryDataFactories/index.js.map +1 -1
- package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.d.ts +1 -1
- package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.js.map +1 -1
- package/crud/contentEntry/entryDataFactories/statuses.js +3 -6
- package/crud/contentEntry/entryDataFactories/statuses.js.map +1 -1
- package/crud/contentEntry/entryDataValidation.d.ts +2 -2
- package/crud/contentEntry/entryDataValidation.js.map +1 -1
- package/crud/contentEntry/markLockedFields.d.ts +1 -1
- package/crud/contentEntry/markLockedFields.js.map +1 -1
- package/crud/contentEntry/referenceFieldsMapping.d.ts +1 -1
- package/crud/contentEntry/referenceFieldsMapping.js +10 -10
- package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
- package/crud/contentEntry/searchableFields.d.ts +2 -2
- 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 +9 -0
- package/crud/contentEntry/useCases/GetEntriesByIds/GetEntriesByIds.js +21 -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 +13 -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 +9 -0
- package/crud/contentEntry/useCases/GetLatestEntriesByIds/GetLatestEntriesByIds.js +21 -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 +13 -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 +9 -0
- package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/GetLatestRevisionByEntryId.js +22 -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 +15 -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 +9 -0
- package/crud/contentEntry/useCases/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryId.js +22 -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 +11 -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 +9 -0
- package/crud/contentEntry/useCases/GetPublishedEntriesByIds/GetPublishedEntriesByIds.js +21 -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 +13 -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 +9 -0
- package/crud/contentEntry/useCases/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryId.js +22 -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 +11 -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 +9 -0
- package/crud/contentEntry/useCases/GetRevisionById/GetRevisionById.js +22 -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 +11 -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 +9 -0
- package/crud/contentEntry/useCases/GetRevisionsByEntryId/GetRevisionsByEntryId.js +21 -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 +13 -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 +14 -0
- package/crud/contentEntry/useCases/ListEntries/ListEntriesOperation.js +24 -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 +26 -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 +9 -0
- package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBinOperation.js +19 -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 +25 -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 +6 -8
- package/crud/contentEntry.crud.js +304 -357
- package/crud/contentEntry.crud.js.map +1 -1
- package/crud/contentModel/beforeCreate.d.ts +2 -2
- package/crud/contentModel/beforeCreate.js.map +1 -1
- package/crud/contentModel/beforeDelete.d.ts +3 -5
- package/crud/contentModel/beforeDelete.js +49 -15
- package/crud/contentModel/beforeDelete.js.map +1 -1
- package/crud/contentModel/beforeUpdate.d.ts +2 -2
- package/crud/contentModel/beforeUpdate.js.map +1 -1
- package/crud/contentModel/compatibility/modelApiName.d.ts +1 -1
- package/crud/contentModel/compatibility/modelApiName.js.map +1 -1
- package/crud/contentModel/contentModelManagerFactory.d.ts +2 -2
- package/crud/contentModel/contentModelManagerFactory.js.map +1 -1
- package/crud/contentModel/createFieldStorageId.d.ts +1 -1
- package/crud/contentModel/createFieldStorageId.js.map +1 -1
- package/crud/contentModel/defaultFields.d.ts +1 -1
- package/crud/contentModel/defaultFields.js.map +1 -1
- package/crud/contentModel/ensureTypeTag.d.ts +1 -1
- package/crud/contentModel/ensureTypeTag.js.map +1 -1
- package/crud/contentModel/fields/descriptionField.d.ts +6 -2
- package/crud/contentModel/fields/descriptionField.js +14 -28
- package/crud/contentModel/fields/descriptionField.js.map +1 -1
- 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 -2
- package/crud/contentModel/fields/imageField.js +9 -28
- package/crud/contentModel/fields/imageField.js.map +1 -1
- package/crud/contentModel/fields/titleField.d.ts +6 -2
- package/crud/contentModel/fields/titleField.js +14 -43
- package/crud/contentModel/fields/titleField.js.map +1 -1
- package/crud/contentModel/listModelsFromDatabase.d.ts +3 -3
- package/crud/contentModel/listModelsFromDatabase.js.map +1 -1
- package/crud/contentModel/validate/endingAllowed.d.ts +1 -1
- package/crud/contentModel/validate/endingAllowed.js.map +1 -1
- package/crud/contentModel/validate/isModelEndingAllowed.js +1 -2
- package/crud/contentModel/validate/isModelEndingAllowed.js.map +1 -1
- package/crud/contentModel/validate/modelId.d.ts +1 -1
- package/crud/contentModel/validate/modelId.js.map +1 -1
- package/crud/contentModel/validate/pluralApiName.d.ts +1 -1
- package/crud/contentModel/validate/pluralApiName.js.map +1 -1
- package/crud/contentModel/validate/singularApiName.d.ts +1 -1
- package/crud/contentModel/validate/singularApiName.js.map +1 -1
- package/crud/contentModel/validateModel.d.ts +1 -1
- package/crud/contentModel/validateModel.js.map +1 -1
- package/crud/contentModel/validateModelFields.d.ts +1 -1
- package/crud/contentModel/validateModelFields.js +1 -1
- 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 +197 -176
- package/crud/contentModel/validation.js +5 -5
- package/crud/contentModel/validation.js.map +1 -1
- package/crud/contentModel.crud.d.ts +6 -6
- package/crud/contentModel.crud.js +76 -37
- package/crud/contentModel.crud.js.map +1 -1
- package/crud/contentModelGroup/beforeCreate.d.ts +3 -3
- package/crud/contentModelGroup/beforeCreate.js.map +1 -1
- package/crud/contentModelGroup/beforeDelete.d.ts +3 -3
- package/crud/contentModelGroup/beforeDelete.js.map +1 -1
- package/crud/contentModelGroup/beforeUpdate.d.ts +3 -3
- package/crud/contentModelGroup/beforeUpdate.js.map +1 -1
- package/crud/contentModelGroup/listGroupsFromDatabase.d.ts +1 -1
- package/crud/contentModelGroup/listGroupsFromDatabase.js.map +1 -1
- package/crud/contentModelGroup/validation.d.ts +1 -1
- package/crud/contentModelGroup/validation.js.map +1 -1
- package/crud/contentModelGroup.crud.d.ts +6 -6
- package/crud/contentModelGroup.crud.js +17 -28
- package/crud/contentModelGroup.crud.js.map +1 -1
- package/crud/system.crud.d.ts +4 -4
- package/crud/system.crud.js +10 -0
- package/crud/system.crud.js.map +1 -1
- package/export/crud/exporting.d.ts +2 -2
- package/export/crud/exporting.js.map +1 -1
- package/export/crud/importing.d.ts +2 -2
- package/export/crud/importing.js.map +1 -1
- package/export/crud/imports/importData.d.ts +2 -2
- package/export/crud/imports/importData.js.map +1 -1
- package/export/crud/imports/importGroups.d.ts +2 -2
- package/export/crud/imports/importGroups.js.map +1 -1
- package/export/crud/imports/importModels.d.ts +2 -2
- package/export/crud/imports/importModels.js.map +1 -1
- package/export/crud/imports/validateGroups.d.ts +2 -2
- package/export/crud/imports/validateGroups.js.map +1 -1
- package/export/crud/imports/validateInput.d.ts +2 -2
- package/export/crud/imports/validateInput.js.map +1 -1
- package/export/crud/imports/validateModels.d.ts +2 -2
- package/export/crud/imports/validateModels.js.map +1 -1
- package/export/crud/index.d.ts +1 -1
- package/export/crud/index.js.map +1 -1
- package/export/crud/sanitize.d.ts +3 -3
- package/export/crud/sanitize.js +2 -1
- package/export/crud/sanitize.js.map +1 -1
- package/export/graphql/index.d.ts +1 -1
- package/export/graphql/index.js +1 -1
- package/export/graphql/index.js.map +1 -1
- package/export/index.js.map +1 -1
- package/export/types.d.ts +5 -5
- package/export/types.js +1 -2
- package/export/types.js.map +1 -1
- package/fieldConverters/CmsModelDefaultFieldConverterPlugin.d.ts +5 -3
- package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.d.ts +3 -2
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +23 -65
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -1
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.d.ts +3 -2
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +2 -2
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
- package/fieldConverters/index.d.ts +3 -0
- package/fieldConverters/index.js +4 -0
- package/fieldConverters/index.js.map +1 -1
- package/graphql/buildSchemaPlugins.d.ts +3 -3
- package/graphql/buildSchemaPlugins.js.map +1 -1
- package/graphql/checkEndpointAccess.d.ts +1 -1
- package/graphql/checkEndpointAccess.js.map +1 -1
- package/graphql/createExecutableSchema.d.ts +2 -2
- package/graphql/createExecutableSchema.js +14 -7
- package/graphql/createExecutableSchema.js.map +1 -1
- package/graphql/createRequestBody.d.ts +1 -1
- package/graphql/createRequestBody.js.map +1 -1
- package/graphql/formatErrorPayload.js.map +1 -1
- package/graphql/generateSchema.d.ts +2 -2
- package/graphql/generateSchema.js +6 -1
- 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 +4 -4
- package/graphql/getSchema.js +13 -50
- package/graphql/getSchema.js.map +1 -1
- package/graphql/graphQLHandlerFactory.d.ts +2 -2
- package/graphql/graphQLHandlerFactory.js.map +1 -1
- package/graphql/handleRequest.d.ts +2 -2
- package/graphql/handleRequest.js +8 -1
- package/graphql/handleRequest.js.map +1 -1
- package/graphql/index.d.ts +4 -3
- package/graphql/index.js +1 -1
- 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 +1 -7
- package/graphql/schema/baseContentSchema.js.map +1 -1
- package/graphql/schema/baseSchema.js +12 -5
- package/graphql/schema/baseSchema.js.map +1 -1
- package/graphql/schema/contentEntries.d.ts +3 -3
- package/graphql/schema/contentEntries.js +3 -4
- package/graphql/schema/contentEntries.js.map +1 -1
- package/graphql/schema/contentModelGroups.d.ts +3 -3
- package/graphql/schema/contentModelGroups.js +1 -1
- package/graphql/schema/contentModelGroups.js.map +1 -1
- package/graphql/schema/contentModels.d.ts +4 -5
- package/graphql/schema/contentModels.js +21 -5
- package/graphql/schema/contentModels.js.map +1 -1
- package/graphql/schema/createFieldResolvers.d.ts +2 -2
- package/graphql/schema/createFieldResolvers.js +1 -3
- package/graphql/schema/createFieldResolvers.js.map +1 -1
- package/graphql/schema/createFieldTypePluginRecords.d.ts +2 -2
- package/graphql/schema/createFieldTypePluginRecords.js.map +1 -1
- package/graphql/schema/createManageResolvers.d.ts +1 -2
- package/graphql/schema/createManageResolvers.js +24 -49
- package/graphql/schema/createManageResolvers.js.map +1 -1
- package/graphql/schema/createManageSDL.d.ts +2 -2
- package/graphql/schema/createManageSDL.js +14 -5
- package/graphql/schema/createManageSDL.js.map +1 -1
- package/graphql/schema/createPreviewResolvers.d.ts +1 -2
- package/graphql/schema/createPreviewResolvers.js +4 -7
- package/graphql/schema/createPreviewResolvers.js.map +1 -1
- package/graphql/schema/createReadResolvers.d.ts +1 -2
- package/graphql/schema/createReadResolvers.js +4 -7
- package/graphql/schema/createReadResolvers.js.map +1 -1
- package/graphql/schema/createReadSDL.d.ts +2 -2
- package/graphql/schema/createReadSDL.js +6 -7
- 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 +2 -2
- package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveCreateFrom.d.ts +2 -2
- package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveDelete.d.ts +2 -2
- package/graphql/schema/resolvers/manage/resolveDelete.js +2 -1
- package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveDeleteMultiple.d.ts +2 -2
- package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveGet.d.ts +2 -2
- 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.map +1 -1
- package/graphql/schema/resolvers/manage/resolveGetRevisions.d.ts +2 -2
- package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.d.ts +2 -2
- package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveList.d.ts +2 -2
- 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 +2 -2
- package/graphql/schema/resolvers/manage/resolveMove.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolvePublish.d.ts +2 -2
- 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.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.map +1 -1
- package/graphql/schema/resolvers/manage/resolveUpdate.d.ts +2 -2
- package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveValidate.d.ts +2 -2
- package/graphql/schema/resolvers/manage/resolveValidate.js.map +1 -1
- package/graphql/schema/resolvers/preview/resolveGet.d.ts +2 -2
- 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.map +1 -1
- package/graphql/schema/resolvers/read/resolveGet.d.ts +2 -2
- 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.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 +32 -11
- package/graphql/schema/schemaPlugins.js.map +1 -1
- package/graphql/system.d.ts +1 -1
- package/graphql/system.js +2 -1
- package/graphql/system.js.map +1 -1
- package/graphqlFields/boolean.d.ts +1 -1
- package/graphqlFields/boolean.js.map +1 -1
- package/graphqlFields/datetime.d.ts +1 -1
- package/graphqlFields/datetime.js.map +1 -1
- package/graphqlFields/dynamicZone/dynamicZoneField.d.ts +1 -1
- package/graphqlFields/dynamicZone/dynamicZoneField.js +62 -8
- package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -1
- package/graphqlFields/dynamicZone/index.d.ts +0 -1
- package/graphqlFields/dynamicZone/index.js +0 -7
- package/graphqlFields/dynamicZone/index.js.map +1 -1
- package/graphqlFields/file.d.ts +1 -1
- package/graphqlFields/file.js.map +1 -1
- package/graphqlFields/helpers.d.ts +1 -1
- package/graphqlFields/helpers.js.map +1 -1
- package/graphqlFields/index.d.ts +1 -1
- package/graphqlFields/index.js +2 -1
- package/graphqlFields/index.js.map +1 -1
- package/graphqlFields/json.d.ts +1 -1
- package/graphqlFields/json.js.map +1 -1
- package/graphqlFields/longText.d.ts +1 -1
- package/graphqlFields/longText.js.map +1 -1
- package/graphqlFields/number.d.ts +1 -1
- package/graphqlFields/number.js.map +1 -1
- package/graphqlFields/object.d.ts +2 -2
- package/graphqlFields/object.js +14 -0
- package/graphqlFields/object.js.map +1 -1
- package/graphqlFields/ref.d.ts +1 -1
- package/graphqlFields/ref.js +1 -1
- package/graphqlFields/ref.js.map +1 -1
- package/graphqlFields/richText/RichTextPluginsProcessor.d.ts +2 -2
- package/graphqlFields/richText/RichTextPluginsProcessor.js.map +1 -1
- package/graphqlFields/richText/richTextResolver.d.ts +2 -2
- package/graphqlFields/richText/richTextResolver.js +4 -19
- package/graphqlFields/richText/richTextResolver.js.map +1 -1
- package/graphqlFields/richText.d.ts +1 -1
- package/graphqlFields/richText.js.map +1 -1
- package/graphqlFields/searchableJson.d.ts +2 -0
- package/graphqlFields/searchableJson.js +60 -0
- package/graphqlFields/searchableJson.js.map +1 -0
- package/graphqlFields/text.d.ts +1 -1
- package/graphqlFields/text.js.map +1 -1
- package/htmlRenderer/LexicalRenderer.d.ts +1 -1
- package/htmlRenderer/LexicalRenderer.js.map +1 -1
- package/htmlRenderer/createLexicalHTMLRenderer.js +1 -1
- package/htmlRenderer/createLexicalHTMLRenderer.js.map +1 -1
- package/index.d.ts +13 -7
- package/index.js +67 -7
- package/index.js.map +1 -1
- package/modelManager/DefaultCmsModelManager.d.ts +11 -10
- package/modelManager/DefaultCmsModelManager.js +16 -13
- 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 +16 -1
- package/modelManager/index.js.map +1 -1
- package/package.json +37 -38
- package/parameters/context.js.map +1 -1
- package/parameters/header.js.map +1 -1
- package/parameters/index.js.map +1 -1
- package/parameters/manual.d.ts +2 -1
- package/parameters/manual.js.map +1 -1
- package/parameters/path.js.map +1 -1
- package/plugins/CmsGraphQLSchemaPlugin/CmsGraphQLSchemaPlugin.d.ts +9 -0
- package/plugins/{CmsGraphQLSchemaPlugin.js → CmsGraphQLSchemaPlugin/CmsGraphQLSchemaPlugin.js} +5 -1
- 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.map +1 -1
- package/plugins/CmsGroupPlugin.d.ts +9 -1
- package/plugins/CmsGroupPlugin.js +17 -1
- package/plugins/CmsGroupPlugin.js.map +1 -1
- package/plugins/CmsModelFieldConverterPlugin.d.ts +5 -2
- package/plugins/CmsModelFieldConverterPlugin.js +4 -0
- package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
- package/plugins/CmsModelPlugin.d.ts +30 -10
- package/plugins/CmsModelPlugin.js +101 -19
- package/plugins/CmsModelPlugin.js.map +1 -1
- package/plugins/CmsParametersPlugin.d.ts +3 -3
- package/plugins/CmsParametersPlugin.js.map +1 -1
- package/plugins/CmsRichTextRendererPlugin.d.ts +6 -6
- package/plugins/CmsRichTextRendererPlugin.js.map +1 -1
- package/plugins/StorageOperationsCmsModelPlugin.d.ts +1 -1
- package/plugins/StorageOperationsCmsModelPlugin.js.map +1 -1
- package/plugins/StorageTransformPlugin.d.ts +6 -2
- package/plugins/StorageTransformPlugin.js +9 -1
- package/plugins/StorageTransformPlugin.js.map +1 -1
- 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.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.js +7 -1
- package/storage/index.js.map +1 -1
- package/storage/json.js +34 -5
- package/storage/json.js.map +1 -1
- package/storage/object.js +16 -12
- 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.d.ts → types/types.d.ts} +295 -1215
- package/{types.js → types/types.js} +18 -119
- 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 -2
- package/utils/caching/Cache.js +4 -7
- package/utils/caching/Cache.js.map +1 -1
- package/utils/caching/CacheKey.d.ts +2 -1
- package/utils/caching/CacheKey.js +5 -17
- package/utils/caching/CacheKey.js.map +1 -1
- package/utils/caching/index.js.map +1 -1
- package/utils/caching/types.d.ts +3 -1
- package/utils/caching/types.js +7 -0
- package/utils/caching/types.js.map +1 -1
- 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.map +1 -1
- package/utils/converters/ConverterCollection.d.ts +2 -2
- package/utils/converters/ConverterCollection.js.map +1 -1
- package/utils/converters/valueKeyStorageConverter.d.ts +3 -3
- 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 +1 -1
- package/utils/createTypeFromFields.js.map +1 -1
- package/utils/createTypeName.js.map +1 -1
- package/utils/date.js.map +1 -1
- package/utils/entryStorage.d.ts +13 -1
- package/utils/entryStorage.js +37 -3
- package/utils/entryStorage.js.map +1 -1
- package/utils/filterAsync.js.map +1 -1
- package/utils/getBaseFieldType.d.ts +1 -1
- package/utils/getBaseFieldType.js.map +1 -1
- package/utils/getEntryDescription.d.ts +1 -1
- package/utils/getEntryDescription.js.map +1 -1
- package/utils/getEntryImage.d.ts +1 -1
- package/utils/getEntryImage.js.map +1 -1
- package/utils/getEntryTitle.d.ts +1 -1
- package/utils/getEntryTitle.js.map +1 -1
- package/utils/getSchemaFromFieldPlugins.d.ts +6 -6
- package/utils/getSchemaFromFieldPlugins.js +5 -4
- package/utils/getSchemaFromFieldPlugins.js.map +1 -1
- package/utils/identity.d.ts +1 -1
- package/utils/identity.js.map +1 -1
- package/utils/incrementEntryIdVersion.js.map +1 -1
- package/utils/index.d.ts +1 -0
- package/utils/index.js +11 -0
- package/utils/index.js.map +1 -1
- package/utils/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 +1 -1
- package/utils/renderFields.js +2 -0
- package/utils/renderFields.js.map +1 -1
- package/utils/renderGetFilterFields.d.ts +1 -1
- package/utils/renderGetFilterFields.js.map +1 -1
- package/utils/renderInputFields.d.ts +1 -1
- package/utils/renderInputFields.js.map +1 -1
- package/utils/renderListFilterFields.d.ts +1 -1
- package/utils/renderListFilterFields.js.map +1 -1
- package/utils/renderSortEnum.d.ts +2 -2
- package/utils/renderSortEnum.js.map +1 -1
- package/utils/toSlug.js.map +1 -1
- package/validators/dateGte.d.ts +1 -1
- package/validators/dateGte.js.map +1 -1
- package/validators/dateLte.d.ts +1 -1
- package/validators/dateLte.js.map +1 -1
- package/validators/gte.d.ts +1 -1
- package/validators/gte.js.map +1 -1
- package/validators/in.d.ts +1 -1
- package/validators/in.js.map +1 -1
- package/validators/index.js.map +1 -1
- package/validators/lte.d.ts +1 -1
- package/validators/lte.js.map +1 -1
- package/validators/maxLength.d.ts +1 -1
- package/validators/maxLength.js.map +1 -1
- package/validators/minLength.d.ts +1 -1
- package/validators/minLength.js.map +1 -1
- package/validators/pattern.d.ts +1 -1
- package/validators/pattern.js.map +1 -1
- package/validators/patternPlugins/email.d.ts +1 -1
- package/validators/patternPlugins/email.js +1 -1
- package/validators/patternPlugins/email.js.map +1 -1
- package/validators/patternPlugins/index.d.ts +1 -1
- package/validators/patternPlugins/index.js.map +1 -1
- package/validators/patternPlugins/lowerCase.d.ts +1 -1
- package/validators/patternPlugins/lowerCase.js.map +1 -1
- package/validators/patternPlugins/lowerCaseSpace.d.ts +1 -1
- package/validators/patternPlugins/lowerCaseSpace.js.map +1 -1
- package/validators/patternPlugins/upperCase.d.ts +1 -1
- package/validators/patternPlugins/upperCase.js.map +1 -1
- package/validators/patternPlugins/upperCaseSpace.d.ts +1 -1
- package/validators/patternPlugins/upperCaseSpace.js.map +1 -1
- package/validators/patternPlugins/url.d.ts +1 -1
- package/validators/patternPlugins/url.js.map +1 -1
- package/validators/required.d.ts +1 -1
- package/validators/required.js.map +1 -1
- package/validators/timeGte.d.ts +1 -1
- package/validators/timeGte.js.map +1 -1
- package/validators/timeLte.d.ts +1 -1
- package/validators/timeLte.js.map +1 -1
- package/validators/unique.d.ts +1 -1
- package/validators/unique.js.map +1 -1
- package/graphqlFields/dynamicZone/dynamicZoneStorage.d.ts +0 -3
- package/graphqlFields/dynamicZone/dynamicZoneStorage.js +0 -111
- package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +0 -1
- package/plugins/CmsGraphQLSchemaPlugin.d.ts +0 -5
- package/plugins/CmsGraphQLSchemaPlugin.js.map +0 -1
- package/types.js.map +0 -1
- package/utils/access.d.ts +0 -9
- package/utils/access.js +0 -26
- package/utils/access.js.map +0 -1
- package/utils/permissions/EntriesPermissions.d.ts +0 -4
- package/utils/permissions/EntriesPermissions.js +0 -11
- package/utils/permissions/EntriesPermissions.js.map +0 -1
- package/utils/permissions/ModelGroupsPermissions.d.ts +0 -9
- package/utils/permissions/ModelGroupsPermissions.js +0 -50
- package/utils/permissions/ModelGroupsPermissions.js.map +0 -1
- package/utils/permissions/ModelsPermissions.d.ts +0 -22
- package/utils/permissions/ModelsPermissions.js +0 -90
- package/utils/permissions/ModelsPermissions.js.map +0 -1
|
@@ -8,7 +8,7 @@ exports.createModelUpdateValidation = exports.createModelImportValidation = expo
|
|
|
8
8
|
var _zod = _interopRequireDefault(require("zod"));
|
|
9
9
|
var _upperFirst = _interopRequireDefault(require("lodash/upperFirst"));
|
|
10
10
|
var _camelCase = _interopRequireDefault(require("lodash/camelCase"));
|
|
11
|
-
const fieldSystemFields = ["id", "
|
|
11
|
+
const fieldSystemFields = ["id", "entryId", "createdOn", "modifiedOn", "publishedOn", "savedOn", "deletedOn", "restoredOn", "firstPublishedOn", "lastPublishedOn", "createdBy", "modifiedBy", "savedBy", "deletedBy", "restoredBy", "firstPublishedBy", "lastPublishedBy", "revisionCreatedOn", "revisionModifiedOn", "revisionSavedOn", "revisionDeletedOn", "revisionRestoredOn", "revisionFirstPublishedOn", "revisionLastPublishedOn", "revisionCreatedBy", "revisionModifiedBy", "revisionSavedBy", "revisionDeletedBy", "revisionRestoredBy", "revisionFirstPublishedBy", "revisionLastPublishedBy", "meta", "wbyAco_location"];
|
|
12
12
|
const str = _zod.default.string().trim();
|
|
13
13
|
const shortString = str.max(255);
|
|
14
14
|
const optionalShortString = shortString.optional();
|
|
@@ -26,8 +26,7 @@ const fieldSchema = _zod.default.object({
|
|
|
26
26
|
if (fieldSystemFields.includes(value)) {
|
|
27
27
|
return ctx.addIssue({
|
|
28
28
|
code: _zod.default.ZodIssueCode.custom,
|
|
29
|
-
message: `
|
|
30
|
-
path: ["fieldId"]
|
|
29
|
+
message: `Field ID "${value}" is a reserved keyword, and is not allowed.`
|
|
31
30
|
});
|
|
32
31
|
}
|
|
33
32
|
}),
|
|
@@ -51,8 +50,9 @@ const fieldSchema = _zod.default.object({
|
|
|
51
50
|
values: []
|
|
52
51
|
}).optional(),
|
|
53
52
|
renderer: _zod.default.object({
|
|
54
|
-
name: shortString
|
|
55
|
-
|
|
53
|
+
name: shortString,
|
|
54
|
+
settings: _zod.default.object({}).passthrough().nullish().optional()
|
|
55
|
+
}).optional().nullable().default(null),
|
|
56
56
|
validation: _zod.default.array(_zod.default.object({
|
|
57
57
|
name: shortString,
|
|
58
58
|
message: optionalShortString.default("Value is required."),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_zod","_interopRequireDefault","require","_upperFirst","_camelCase","fieldSystemFields","str","zod","string","trim","shortString","max","optionalShortString","optional","optionalNullishShortString","nullish","fieldSchema","object","id","storageId","transform","fieldId","regex","message","superRefine","value","ctx","includes","addIssue","code","ZodIssueCode","custom","path","label","helpText","default","placeholderText","nullable","type","tags","array","multipleValues","boolean","predefinedValues","enabled","values","selected","renderer","name","validation","settings","passthrough","listValidation","apiNameRefinementValidation","match","upperFirst","camelCase","refinementSingularValidationMessage","refinementPluralValidationMessage","refinementModelIdValidation","camelCasedValue","toLowerCase","refinementModelIdValidationMessage","modelIdTransformation","createModelCreateValidation","modelId","singularApiName","min","refine","pluralApiName","description","group","icon","fields","layout","titleFieldId","descriptionFieldId","imageFieldId","defaultFields","exports","createModelImportValidation","createModelCreateFromValidation","locale","createModelUpdateValidation"],"sources":["validation.ts"],"sourcesContent":["import zod from \"zod\";\nimport upperFirst from \"lodash/upperFirst\";\nimport camelCase from \"lodash/camelCase\";\n\nconst fieldSystemFields: string[] = [\n \"id\",\n \"fieldId\",\n \"storageId\",\n \"label\",\n \"helpText\",\n \"placeholderText\",\n \"type\",\n \"multipleValues\",\n \"predefinedValues\",\n \"renderer\",\n \"validation\",\n \"listValidation\",\n \"settings\"\n];\n\nconst str = zod.string().trim();\nconst shortString = str.max(255);\nconst optionalShortString = shortString.optional();\nconst optionalNullishShortString = optionalShortString.nullish();\n\nconst fieldSchema = zod.object({\n id: shortString,\n storageId: zod\n .string()\n .optional()\n .transform(() => {\n return \"\";\n }),\n fieldId: shortString\n .max(100)\n .regex(/^!?[a-zA-Z]/, {\n message: `Provided value is not valid - must not start with a number.`\n })\n .regex(/^(^[a-zA-Z0-9]+)$/, {\n message: `Provided value is not valid - must be alphanumeric string.`\n })\n .superRefine((value, ctx) => {\n if (fieldSystemFields.includes(value)) {\n return ctx.addIssue({\n code: zod.ZodIssueCode.custom,\n message: `Provided ${value} is not valid - \"${value}\" is an auto-generated field.`,\n path: [\"fieldId\"]\n });\n }\n }),\n label: shortString,\n helpText: optionalShortString.optional().nullish().default(null),\n placeholderText: optionalShortString.optional().nullable().default(null),\n type: shortString,\n tags: zod.array(shortString).optional().default([]),\n multipleValues: zod\n .boolean()\n .optional()\n .nullish()\n .transform(value => {\n return !!value;\n })\n .default(false),\n predefinedValues: zod\n .object({\n enabled: zod.boolean(),\n values: zod\n .array(\n zod.object({\n value: shortString,\n label: shortString,\n selected: zod.boolean().optional().default(false)\n })\n )\n .default([])\n })\n .default({\n enabled: false,\n values: []\n })\n .optional(),\n renderer: zod\n .object({\n name: shortString\n })\n .optional(),\n validation: zod\n .array(\n zod.object({\n name: shortString,\n message: optionalShortString.default(\"Value is required.\"),\n settings: zod\n .object({})\n .passthrough()\n .optional()\n .nullish()\n .transform(value => {\n return value || {};\n })\n .default({})\n })\n )\n .nullish()\n .optional()\n .default([])\n .transform(value => value || []),\n listValidation: zod\n .array(\n zod.object({\n name: shortString,\n message: optionalShortString.default(\"Value is required.\"),\n settings: zod\n .object({})\n .passthrough()\n .optional()\n .nullish()\n .transform(value => {\n return value || {};\n })\n .default({})\n })\n )\n .nullish()\n .optional()\n .default([])\n .transform(value => value || []),\n settings: zod\n .object({})\n .passthrough()\n .optional()\n .nullish()\n .transform(value => {\n return value || {};\n })\n .default({})\n});\n\nconst apiNameRefinementValidation = (value: string): boolean => {\n if (value.match(/^[A-Z]/) === null) {\n return false;\n }\n return value === upperFirst(camelCase(value));\n};\nconst refinementSingularValidationMessage = (value?: string) => {\n return {\n message: `The Singular API Name value \"${\n value || \"undefined\"\n }\" is not valid. It must in Upper First + Camel Cased form. For example: \"ArticleCategory\" or \"CarMake\".`\n };\n};\nconst refinementPluralValidationMessage = (value?: string) => {\n return {\n message: `The Plural API Name value \"${\n value || \"undefined\"\n }\" is not valid. It must in Upper First + Camel Cased form. For example: \"ArticleCategories\" or \"CarMakes\".`\n };\n};\n\nconst refinementModelIdValidation = (value?: string) => {\n if (!value) {\n return true;\n } else if (value.match(/^[a-zA-Z]/) === null) {\n return false;\n }\n const camelCasedValue = camelCase(value).toLowerCase();\n return camelCasedValue === value.toLowerCase();\n};\nconst refinementModelIdValidationMessage = (value?: string) => {\n if (!value) {\n return {};\n } else if (value.match(/^[a-zA-Z]/) === null) {\n return {\n message: `The modelId \"${value}\" is not valid. It must start with a A-Z or a-z.`\n };\n }\n return {\n message: `The modelId \"${value}\" is not valid.`\n };\n};\n\nconst modelIdTransformation = (value?: string) => {\n if (!value) {\n return value;\n }\n const camelCasedValue = camelCase(value);\n if (camelCasedValue.toLowerCase() === value.toLowerCase()) {\n return value;\n }\n return camelCasedValue;\n};\n\nexport const createModelCreateValidation = () => {\n return zod.object({\n name: shortString,\n modelId: optionalShortString.transform(modelIdTransformation),\n singularApiName: shortString\n .min(1)\n .refine(apiNameRefinementValidation, refinementSingularValidationMessage),\n pluralApiName: shortString\n .min(1)\n .refine(apiNameRefinementValidation, refinementPluralValidationMessage),\n description: optionalNullishShortString,\n group: shortString,\n icon: optionalNullishShortString,\n fields: zod.array(fieldSchema).default([]),\n layout: zod.array(zod.array(shortString)).default([]),\n tags: zod.array(shortString).optional(),\n titleFieldId: optionalShortString.nullish(),\n descriptionFieldId: optionalShortString.nullish(),\n imageFieldId: optionalShortString.nullish(),\n defaultFields: zod.boolean().nullish()\n });\n};\n\nexport const createModelImportValidation = () => {\n return zod.object({\n name: shortString.min(1).refine(\n value => {\n return value.match(/[a-zA-Z]/) !== null;\n },\n value => {\n return {\n message: `The name \"${value}\" is not valid.`\n };\n }\n ),\n modelId: shortString\n .min(1)\n .refine(refinementModelIdValidation, refinementModelIdValidationMessage)\n .transform(modelIdTransformation),\n singularApiName: shortString\n .min(1)\n .refine(apiNameRefinementValidation, refinementSingularValidationMessage),\n pluralApiName: shortString\n .min(1)\n .refine(apiNameRefinementValidation, refinementPluralValidationMessage),\n description: optionalNullishShortString,\n group: shortString,\n icon: optionalNullishShortString,\n fields: zod.array(fieldSchema).min(1),\n layout: zod.array(zod.array(shortString)).min(1),\n tags: zod.array(shortString).optional(),\n titleFieldId: shortString.nullish(),\n descriptionFieldId: optionalShortString.nullish(),\n imageFieldId: optionalShortString.nullish()\n });\n};\n\nexport const createModelCreateFromValidation = () => {\n return zod.object({\n name: shortString,\n modelId: optionalShortString.transform(modelIdTransformation),\n singularApiName: shortString.refine(\n apiNameRefinementValidation,\n refinementSingularValidationMessage\n ),\n pluralApiName: shortString.refine(\n apiNameRefinementValidation,\n refinementPluralValidationMessage\n ),\n description: optionalNullishShortString,\n group: shortString,\n icon: optionalNullishShortString,\n locale: optionalShortString\n });\n};\n\nexport const createModelUpdateValidation = () => {\n return zod.object({\n name: optionalShortString,\n singularApiName: optionalShortString.refine(value => {\n if (!value) {\n return true;\n }\n return apiNameRefinementValidation(value);\n }, refinementSingularValidationMessage),\n pluralApiName: optionalShortString.refine(value => {\n if (!value) {\n return true;\n }\n return apiNameRefinementValidation(value);\n }, refinementPluralValidationMessage),\n description: optionalNullishShortString,\n group: optionalShortString,\n icon: optionalNullishShortString,\n fields: zod.array(fieldSchema),\n layout: zod.array(zod.array(shortString)),\n titleFieldId: optionalShortString.nullish(),\n descriptionFieldId: optionalShortString.nullish(),\n imageFieldId: optionalShortString.nullish(),\n tags: zod.array(shortString).optional()\n });\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_zod","_interopRequireDefault","require","_upperFirst","_camelCase","fieldSystemFields","str","zod","string","trim","shortString","max","optionalShortString","optional","optionalNullishShortString","nullish","fieldSchema","object","id","storageId","transform","fieldId","regex","message","superRefine","value","ctx","includes","addIssue","code","ZodIssueCode","custom","label","helpText","default","placeholderText","nullable","type","tags","array","multipleValues","boolean","predefinedValues","enabled","values","selected","renderer","name","settings","passthrough","validation","listValidation","apiNameRefinementValidation","match","upperFirst","camelCase","refinementSingularValidationMessage","refinementPluralValidationMessage","refinementModelIdValidation","camelCasedValue","toLowerCase","refinementModelIdValidationMessage","modelIdTransformation","createModelCreateValidation","modelId","singularApiName","min","refine","pluralApiName","description","group","icon","fields","layout","titleFieldId","descriptionFieldId","imageFieldId","defaultFields","exports","createModelImportValidation","createModelCreateFromValidation","locale","createModelUpdateValidation"],"sources":["validation.ts"],"sourcesContent":["import zod from \"zod\";\nimport upperFirst from \"lodash/upperFirst\";\nimport camelCase from \"lodash/camelCase\";\n\nconst fieldSystemFields: string[] = [\n \"id\",\n \"entryId\",\n \"createdOn\",\n \"modifiedOn\",\n \"publishedOn\",\n \"savedOn\",\n \"deletedOn\",\n \"restoredOn\",\n \"firstPublishedOn\",\n \"lastPublishedOn\",\n \"createdBy\",\n \"modifiedBy\",\n \"savedBy\",\n \"deletedBy\",\n \"restoredBy\",\n \"firstPublishedBy\",\n \"lastPublishedBy\",\n \"revisionCreatedOn\",\n \"revisionModifiedOn\",\n \"revisionSavedOn\",\n \"revisionDeletedOn\",\n \"revisionRestoredOn\",\n \"revisionFirstPublishedOn\",\n \"revisionLastPublishedOn\",\n \"revisionCreatedBy\",\n \"revisionModifiedBy\",\n \"revisionSavedBy\",\n \"revisionDeletedBy\",\n \"revisionRestoredBy\",\n \"revisionFirstPublishedBy\",\n \"revisionLastPublishedBy\",\n \"meta\",\n \"wbyAco_location\"\n];\n\nconst str = zod.string().trim();\nconst shortString = str.max(255);\nconst optionalShortString = shortString.optional();\nconst optionalNullishShortString = optionalShortString.nullish();\n\nconst fieldSchema = zod.object({\n id: shortString,\n storageId: zod\n .string()\n .optional()\n .transform(() => {\n return \"\";\n }),\n fieldId: shortString\n .max(100)\n .regex(/^!?[a-zA-Z]/, {\n message: `Provided value is not valid - must not start with a number.`\n })\n .regex(/^(^[a-zA-Z0-9]+)$/, {\n message: `Provided value is not valid - must be alphanumeric string.`\n })\n .superRefine((value, ctx) => {\n if (fieldSystemFields.includes(value)) {\n return ctx.addIssue({\n code: zod.ZodIssueCode.custom,\n message: `Field ID \"${value}\" is a reserved keyword, and is not allowed.`\n });\n }\n }),\n label: shortString,\n helpText: optionalShortString.optional().nullish().default(null),\n placeholderText: optionalShortString.optional().nullable().default(null),\n type: shortString,\n tags: zod.array(shortString).optional().default([]),\n multipleValues: zod\n .boolean()\n .optional()\n .nullish()\n .transform(value => {\n return !!value;\n })\n .default(false),\n predefinedValues: zod\n .object({\n enabled: zod.boolean(),\n values: zod\n .array(\n zod.object({\n value: shortString,\n label: shortString,\n selected: zod.boolean().optional().default(false)\n })\n )\n .default([])\n })\n .default({\n enabled: false,\n values: []\n })\n .optional(),\n renderer: zod\n .object({\n name: shortString,\n settings: zod.object({}).passthrough().nullish().optional()\n })\n .optional()\n .nullable()\n .default(null),\n validation: zod\n .array(\n zod.object({\n name: shortString,\n message: optionalShortString.default(\"Value is required.\"),\n settings: zod\n .object({})\n .passthrough()\n .optional()\n .nullish()\n .transform(value => {\n return value || {};\n })\n .default({})\n })\n )\n .nullish()\n .optional()\n .default([])\n .transform(value => value || []),\n listValidation: zod\n .array(\n zod.object({\n name: shortString,\n message: optionalShortString.default(\"Value is required.\"),\n settings: zod\n .object({})\n .passthrough()\n .optional()\n .nullish()\n .transform(value => {\n return value || {};\n })\n .default({})\n })\n )\n .nullish()\n .optional()\n .default([])\n .transform(value => value || []),\n settings: zod\n .object({})\n .passthrough()\n .optional()\n .nullish()\n .transform(value => {\n return value || {};\n })\n .default({})\n});\n\nconst apiNameRefinementValidation = (value: string): boolean => {\n if (value.match(/^[A-Z]/) === null) {\n return false;\n }\n return value === upperFirst(camelCase(value));\n};\nconst refinementSingularValidationMessage = (value?: string) => {\n return {\n message: `The Singular API Name value \"${\n value || \"undefined\"\n }\" is not valid. It must in Upper First + Camel Cased form. For example: \"ArticleCategory\" or \"CarMake\".`\n };\n};\nconst refinementPluralValidationMessage = (value?: string) => {\n return {\n message: `The Plural API Name value \"${\n value || \"undefined\"\n }\" is not valid. It must in Upper First + Camel Cased form. For example: \"ArticleCategories\" or \"CarMakes\".`\n };\n};\n\nconst refinementModelIdValidation = (value?: string) => {\n if (!value) {\n return true;\n } else if (value.match(/^[a-zA-Z]/) === null) {\n return false;\n }\n const camelCasedValue = camelCase(value).toLowerCase();\n return camelCasedValue === value.toLowerCase();\n};\nconst refinementModelIdValidationMessage = (value?: string) => {\n if (!value) {\n return {};\n } else if (value.match(/^[a-zA-Z]/) === null) {\n return {\n message: `The modelId \"${value}\" is not valid. It must start with a A-Z or a-z.`\n };\n }\n return {\n message: `The modelId \"${value}\" is not valid.`\n };\n};\n\nconst modelIdTransformation = (value?: string) => {\n if (!value) {\n return value;\n }\n const camelCasedValue = camelCase(value);\n if (camelCasedValue.toLowerCase() === value.toLowerCase()) {\n return value;\n }\n return camelCasedValue;\n};\n\nexport const createModelCreateValidation = () => {\n return zod.object({\n name: shortString,\n modelId: optionalShortString.transform(modelIdTransformation),\n singularApiName: shortString\n .min(1)\n .refine(apiNameRefinementValidation, refinementSingularValidationMessage),\n pluralApiName: shortString\n .min(1)\n .refine(apiNameRefinementValidation, refinementPluralValidationMessage),\n description: optionalNullishShortString,\n group: shortString,\n icon: optionalNullishShortString,\n fields: zod.array(fieldSchema).default([]),\n layout: zod.array(zod.array(shortString)).default([]),\n tags: zod.array(shortString).optional(),\n titleFieldId: optionalShortString.nullish(),\n descriptionFieldId: optionalShortString.nullish(),\n imageFieldId: optionalShortString.nullish(),\n defaultFields: zod.boolean().nullish()\n });\n};\n\nexport const createModelImportValidation = () => {\n return zod.object({\n name: shortString.min(1).refine(\n value => {\n return value.match(/[a-zA-Z]/) !== null;\n },\n value => {\n return {\n message: `The name \"${value}\" is not valid.`\n };\n }\n ),\n modelId: shortString\n .min(1)\n .refine(refinementModelIdValidation, refinementModelIdValidationMessage)\n .transform(modelIdTransformation),\n singularApiName: shortString\n .min(1)\n .refine(apiNameRefinementValidation, refinementSingularValidationMessage),\n pluralApiName: shortString\n .min(1)\n .refine(apiNameRefinementValidation, refinementPluralValidationMessage),\n description: optionalNullishShortString,\n group: shortString,\n icon: optionalNullishShortString,\n fields: zod.array(fieldSchema).min(1),\n layout: zod.array(zod.array(shortString)).min(1),\n tags: zod.array(shortString).optional(),\n titleFieldId: shortString.nullish(),\n descriptionFieldId: optionalShortString.nullish(),\n imageFieldId: optionalShortString.nullish()\n });\n};\n\nexport const createModelCreateFromValidation = () => {\n return zod.object({\n name: shortString,\n modelId: optionalShortString.transform(modelIdTransformation),\n singularApiName: shortString.refine(\n apiNameRefinementValidation,\n refinementSingularValidationMessage\n ),\n pluralApiName: shortString.refine(\n apiNameRefinementValidation,\n refinementPluralValidationMessage\n ),\n description: optionalNullishShortString,\n group: shortString,\n icon: optionalNullishShortString,\n locale: optionalShortString\n });\n};\n\nexport const createModelUpdateValidation = () => {\n return zod.object({\n name: optionalShortString,\n singularApiName: optionalShortString.refine(value => {\n if (!value) {\n return true;\n }\n return apiNameRefinementValidation(value);\n }, refinementSingularValidationMessage),\n pluralApiName: optionalShortString.refine(value => {\n if (!value) {\n return true;\n }\n return apiNameRefinementValidation(value);\n }, refinementPluralValidationMessage),\n description: optionalNullishShortString,\n group: optionalShortString,\n icon: optionalNullishShortString,\n fields: zod.array(fieldSchema),\n layout: zod.array(zod.array(shortString)),\n titleFieldId: optionalShortString.nullish(),\n descriptionFieldId: optionalShortString.nullish(),\n imageFieldId: optionalShortString.nullish(),\n tags: zod.array(shortString).optional()\n });\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { CmsContext, CmsModelContext, HeadlessCmsStorageOperations } from "../types";
|
|
2
|
-
import { Tenant } from "@webiny/api-tenancy/types";
|
|
3
|
-
import { I18NLocale } from "@webiny/api-i18n/types";
|
|
4
|
-
import { SecurityIdentity } from "@webiny/api-security/types";
|
|
5
|
-
import {
|
|
1
|
+
import type { CmsContext, CmsModelContext, HeadlessCmsStorageOperations } from "../types";
|
|
2
|
+
import type { Tenant } from "@webiny/api-tenancy/types";
|
|
3
|
+
import type { I18NLocale } from "@webiny/api-i18n/types";
|
|
4
|
+
import type { SecurityIdentity } from "@webiny/api-security/types";
|
|
5
|
+
import type { AccessControl } from "./AccessControl/AccessControl";
|
|
6
6
|
export interface CreateModelsCrudParams {
|
|
7
7
|
getTenant: () => Tenant;
|
|
8
8
|
getLocale: () => I18NLocale;
|
|
9
9
|
storageOperations: HeadlessCmsStorageOperations;
|
|
10
|
-
|
|
10
|
+
accessControl: AccessControl;
|
|
11
11
|
context: CmsContext;
|
|
12
12
|
getIdentity: () => SecurityIdentity;
|
|
13
13
|
}
|
|
@@ -20,13 +20,15 @@ var _utils2 = require("../utils");
|
|
|
20
20
|
var _ensureTypeTag = require("./contentModel/ensureTypeTag");
|
|
21
21
|
var _listModelsFromDatabase = require("./contentModel/listModelsFromDatabase");
|
|
22
22
|
var _filterAsync = require("../utils/filterAsync");
|
|
23
|
+
var _contentModelAst = require("../utils/contentModelAst");
|
|
24
|
+
var _modelManager = require("../modelManager");
|
|
23
25
|
const createModelsCrud = params => {
|
|
24
26
|
const {
|
|
25
27
|
getTenant,
|
|
26
28
|
getIdentity,
|
|
27
29
|
getLocale,
|
|
28
30
|
storageOperations,
|
|
29
|
-
|
|
31
|
+
accessControl,
|
|
30
32
|
context
|
|
31
33
|
} = params;
|
|
32
34
|
const listPluginModelsCache = (0, _utils2.createMemoryCache)();
|
|
@@ -42,23 +44,9 @@ const createModelsCrud = params => {
|
|
|
42
44
|
managers.set(model.modelId, manager);
|
|
43
45
|
return manager;
|
|
44
46
|
};
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
});
|
|
49
|
-
};
|
|
50
|
-
const filterModel = async model => {
|
|
51
|
-
const ownsModel = await modelsPermissions.ensure({
|
|
52
|
-
owns: model.createdBy
|
|
53
|
-
}, {
|
|
54
|
-
throw: false
|
|
55
|
-
});
|
|
56
|
-
if (!ownsModel) {
|
|
57
|
-
return false;
|
|
58
|
-
}
|
|
59
|
-
return modelsPermissions.canAccessModel({
|
|
60
|
-
model
|
|
61
|
-
});
|
|
47
|
+
const fieldTypePlugins = context.plugins.byType("cms-model-field-to-graphql");
|
|
48
|
+
const getModelToAstConverter = () => {
|
|
49
|
+
return new _contentModelAst.CmsModelToAstConverter(new _contentModelAst.CmsModelFieldToAstConverterFromPlugins(fieldTypePlugins));
|
|
62
50
|
};
|
|
63
51
|
const listPluginModels = async (tenant, locale) => {
|
|
64
52
|
const modelPlugins = context.plugins.byType(_CmsModelPlugin.CmsModelPlugin.type);
|
|
@@ -68,7 +56,7 @@ const createModelsCrud = params => {
|
|
|
68
56
|
models: modelPlugins.map(({
|
|
69
57
|
contentModel: model
|
|
70
58
|
}) => {
|
|
71
|
-
return `${model.modelId}#${model.pluralApiName}#${model.singularApiName}#${model.savedOn || "
|
|
59
|
+
return `${model.modelId}#${model.pluralApiName}#${model.singularApiName}#${model.savedOn || "savedOn:plugin"}`;
|
|
72
60
|
}).join("/"),
|
|
73
61
|
identity: context.security.isAuthorizationEnabled() ? getIdentity()?.id : undefined
|
|
74
62
|
});
|
|
@@ -97,7 +85,11 @@ const createModelsCrud = params => {
|
|
|
97
85
|
webinyVersion: context.WEBINY_VERSION
|
|
98
86
|
};
|
|
99
87
|
});
|
|
100
|
-
return (0, _filterAsync.filterAsync)(models,
|
|
88
|
+
return (0, _filterAsync.filterAsync)(models, async model => {
|
|
89
|
+
return accessControl.canAccessModel({
|
|
90
|
+
model
|
|
91
|
+
});
|
|
92
|
+
});
|
|
101
93
|
});
|
|
102
94
|
};
|
|
103
95
|
const getModelFromCache = async modelId => {
|
|
@@ -120,7 +112,7 @@ const createModelsCrud = params => {
|
|
|
120
112
|
* We always fetch the plugins and database models separately.
|
|
121
113
|
* Then we combine them and run access filtering on them
|
|
122
114
|
*/
|
|
123
|
-
const listModels = async
|
|
115
|
+
const listModels = async input => {
|
|
124
116
|
return context.benchmark.measure("headlessCms.crud.models.listModels", async () => {
|
|
125
117
|
/**
|
|
126
118
|
* Maybe we can cache based on permissions, not the identity id?
|
|
@@ -129,7 +121,7 @@ const createModelsCrud = params => {
|
|
|
129
121
|
*/
|
|
130
122
|
const tenant = getTenant().id;
|
|
131
123
|
const locale = getLocale().code;
|
|
132
|
-
|
|
124
|
+
let pluginModels = await listPluginModels(tenant, locale);
|
|
133
125
|
const dbCacheKey = (0, _utils2.createCacheKey)({
|
|
134
126
|
tenant,
|
|
135
127
|
locale
|
|
@@ -141,25 +133,38 @@ const createModelsCrud = params => {
|
|
|
141
133
|
dbCacheKey: dbCacheKey.get(),
|
|
142
134
|
identity: context.security.isAuthorizationEnabled() ? getIdentity()?.id : undefined
|
|
143
135
|
});
|
|
144
|
-
|
|
145
|
-
return (0, _filterAsync.filterAsync)(databaseModels,
|
|
136
|
+
let filteredModels = await listFilteredModelsCache.getOrSet(filteredCacheKey, async () => {
|
|
137
|
+
return (0, _filterAsync.filterAsync)(databaseModels, async model => {
|
|
138
|
+
return accessControl.canAccessModel({
|
|
139
|
+
model
|
|
140
|
+
});
|
|
141
|
+
});
|
|
146
142
|
});
|
|
143
|
+
/**
|
|
144
|
+
* Do we need to hide private models?
|
|
145
|
+
*/
|
|
146
|
+
if (input?.includePrivate === false) {
|
|
147
|
+
filteredModels = filteredModels.filter(model => !model.isPrivate);
|
|
148
|
+
pluginModels = pluginModels.filter(model => !model.isPrivate);
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Do we need to hide plugin models?
|
|
152
|
+
*/
|
|
153
|
+
if (input?.includePlugins === false) {
|
|
154
|
+
return filteredModels;
|
|
155
|
+
}
|
|
147
156
|
return filteredModels.concat(pluginModels);
|
|
148
157
|
});
|
|
149
158
|
};
|
|
150
159
|
const getModel = async modelId => {
|
|
151
160
|
return context.benchmark.measure("headlessCms.crud.models.getModel", async () => {
|
|
152
|
-
await checkModelPermissions("r");
|
|
153
161
|
const model = await context.security.withoutAuthorization(async () => {
|
|
154
162
|
return await getModelFromCache(modelId);
|
|
155
163
|
});
|
|
156
164
|
if (!model) {
|
|
157
165
|
throw new _handlerGraphql.NotFoundError(`Content model "${modelId}" was not found!`);
|
|
158
166
|
}
|
|
159
|
-
await
|
|
160
|
-
owns: model.createdBy
|
|
161
|
-
});
|
|
162
|
-
await modelsPermissions.ensureCanAccessModel({
|
|
167
|
+
await accessControl.ensureCanAccessModel({
|
|
163
168
|
model
|
|
164
169
|
});
|
|
165
170
|
return model;
|
|
@@ -173,6 +178,11 @@ const createModelsCrud = params => {
|
|
|
173
178
|
const model = await getModelFromCache(modelId);
|
|
174
179
|
return await updateManager(context, model);
|
|
175
180
|
};
|
|
181
|
+
const getSingletonEntryManager = async input => {
|
|
182
|
+
const model = typeof input === "string" ? await getModel(input) : input;
|
|
183
|
+
const manager = await getEntryManager(model);
|
|
184
|
+
return _modelManager.SingletonModelManager.create(manager);
|
|
185
|
+
};
|
|
176
186
|
|
|
177
187
|
/**
|
|
178
188
|
* Create
|
|
@@ -217,15 +227,16 @@ const createModelsCrud = params => {
|
|
|
217
227
|
});
|
|
218
228
|
(0, _beforeDelete.assignModelBeforeDelete)({
|
|
219
229
|
onModelBeforeDelete,
|
|
220
|
-
|
|
221
|
-
storageOperations
|
|
230
|
+
context
|
|
222
231
|
});
|
|
223
232
|
|
|
224
233
|
/**
|
|
225
234
|
* CRUD methods
|
|
226
235
|
*/
|
|
227
236
|
const createModel = async input => {
|
|
228
|
-
await
|
|
237
|
+
await accessControl.ensureCanAccessModel({
|
|
238
|
+
rwd: "w"
|
|
239
|
+
});
|
|
229
240
|
const result = await (0, _validation.createModelCreateValidation)().safeParseAsync(input);
|
|
230
241
|
if (!result.success) {
|
|
231
242
|
throw (0, _utils.createZodError)(result.error);
|
|
@@ -268,6 +279,10 @@ const createModelsCrud = params => {
|
|
|
268
279
|
webinyVersion: context.WEBINY_VERSION
|
|
269
280
|
};
|
|
270
281
|
model.tags = (0, _ensureTypeTag.ensureTypeTag)(model);
|
|
282
|
+
await accessControl.ensureCanAccessModel({
|
|
283
|
+
model,
|
|
284
|
+
rwd: "w"
|
|
285
|
+
});
|
|
271
286
|
try {
|
|
272
287
|
await onModelBeforeCreate.publish({
|
|
273
288
|
input: data,
|
|
@@ -293,7 +308,9 @@ const createModelsCrud = params => {
|
|
|
293
308
|
}
|
|
294
309
|
};
|
|
295
310
|
const updateModel = async (modelId, input) => {
|
|
296
|
-
await
|
|
311
|
+
await accessControl.ensureCanAccessModel({
|
|
312
|
+
rwd: "w"
|
|
313
|
+
});
|
|
297
314
|
|
|
298
315
|
// Get a model record; this will also perform ownership validation.
|
|
299
316
|
const original = await getModel(modelId);
|
|
@@ -333,6 +350,10 @@ const createModelsCrud = params => {
|
|
|
333
350
|
webinyVersion: context.WEBINY_VERSION,
|
|
334
351
|
savedOn: new Date().toISOString()
|
|
335
352
|
};
|
|
353
|
+
await accessControl.ensureCanAccessModel({
|
|
354
|
+
model,
|
|
355
|
+
rwd: "w"
|
|
356
|
+
});
|
|
336
357
|
model.tags = (0, _ensureTypeTag.ensureTypeTag)(model);
|
|
337
358
|
try {
|
|
338
359
|
await onModelBeforeUpdate.publish({
|
|
@@ -399,7 +420,10 @@ const createModelsCrud = params => {
|
|
|
399
420
|
}
|
|
400
421
|
};
|
|
401
422
|
const createModelFrom = async (modelId, input) => {
|
|
402
|
-
await
|
|
423
|
+
await accessControl.ensureCanAccessModel({
|
|
424
|
+
rwd: "w"
|
|
425
|
+
});
|
|
426
|
+
|
|
403
427
|
/**
|
|
404
428
|
* Get a model record; this will also perform ownership validation.
|
|
405
429
|
*/
|
|
@@ -451,6 +475,10 @@ const createModelsCrud = params => {
|
|
|
451
475
|
lockedFields: [],
|
|
452
476
|
webinyVersion: context.WEBINY_VERSION
|
|
453
477
|
};
|
|
478
|
+
await accessControl.ensureCanAccessModel({
|
|
479
|
+
model,
|
|
480
|
+
rwd: "w"
|
|
481
|
+
});
|
|
454
482
|
try {
|
|
455
483
|
await onModelBeforeCreateFrom.publish({
|
|
456
484
|
input: data,
|
|
@@ -479,8 +507,14 @@ const createModelsCrud = params => {
|
|
|
479
507
|
}
|
|
480
508
|
};
|
|
481
509
|
const deleteModel = async modelId => {
|
|
482
|
-
await
|
|
510
|
+
await accessControl.ensureCanAccessModel({
|
|
511
|
+
rwd: "d"
|
|
512
|
+
});
|
|
483
513
|
const model = await getModel(modelId);
|
|
514
|
+
await accessControl.ensureCanAccessModel({
|
|
515
|
+
model,
|
|
516
|
+
rwd: "d"
|
|
517
|
+
});
|
|
484
518
|
try {
|
|
485
519
|
await onModelBeforeDelete.publish({
|
|
486
520
|
model
|
|
@@ -513,8 +547,11 @@ const createModelsCrud = params => {
|
|
|
513
547
|
* We require that users have write permissions to initialize models.
|
|
514
548
|
* Maybe introduce another permission for it?
|
|
515
549
|
*/
|
|
516
|
-
await checkModelPermissions("w");
|
|
517
550
|
const model = await getModel(modelId);
|
|
551
|
+
await accessControl.ensureCanAccessModel({
|
|
552
|
+
model,
|
|
553
|
+
rwd: "w"
|
|
554
|
+
});
|
|
518
555
|
await onModelInitialize.publish({
|
|
519
556
|
model,
|
|
520
557
|
data
|
|
@@ -537,6 +574,7 @@ const createModelsCrud = params => {
|
|
|
537
574
|
onModelInitialize,
|
|
538
575
|
clearModelsCache,
|
|
539
576
|
getModel,
|
|
577
|
+
getModelToAstConverter,
|
|
540
578
|
listModels,
|
|
541
579
|
async createModel(input) {
|
|
542
580
|
return context.benchmark.measure("headlessCms.crud.models.createModel", async () => {
|
|
@@ -573,7 +611,8 @@ const createModelsCrud = params => {
|
|
|
573
611
|
});
|
|
574
612
|
},
|
|
575
613
|
getEntryManager,
|
|
576
|
-
getEntryManagers: () => managers
|
|
614
|
+
getEntryManagers: () => managers,
|
|
615
|
+
getSingletonEntryManager
|
|
577
616
|
};
|
|
578
617
|
};
|
|
579
618
|
exports.createModelsCrud = createModelsCrud;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_error","_interopRequireDefault","require","_handlerGraphql","_contentModelManagerFactory","_pubsub","_beforeCreate","_beforeUpdate","_beforeDelete","_CmsModelPlugin","_validation","_utils","_defaultFields","_utils2","_ensureTypeTag","_listModelsFromDatabase","_filterAsync","createModelsCrud","params","getTenant","getIdentity","getLocale","storageOperations","modelsPermissions","context","listPluginModelsCache","createMemoryCache","listFilteredModelsCache","listDatabaseModelsCache","clearModelsCache","clear","managers","Map","updateManager","model","manager","contentModelManagerFactory","set","modelId","checkModelPermissions","rwd","ensure","filterModel","ownsModel","owns","createdBy","throw","canAccessModel","listPluginModels","tenant","locale","modelPlugins","plugins","byType","CmsModelPlugin","type","cacheKey","createCacheKey","models","map","contentModel","pluralApiName","singularApiName","savedOn","join","identity","security","isAuthorizationEnabled","id","undefined","getOrSet","filter","plugin","modelTenant","modelLocale","tags","ensureTypeTag","webinyVersion","WEBINY_VERSION","filterAsync","getModelFromCache","listModels","find","m","NotFoundError","code","benchmark","measure","pluginModels","dbCacheKey","databaseModels","listModelsFromDatabase","filteredCacheKey","get","filteredModels","concat","getModel","withoutAuthorization","ensureCanAccessModel","getEntryManager","target","has","onModelBeforeCreate","createTopic","onModelAfterCreate","onModelCreateError","onModelBeforeCreateFrom","onModelAfterCreateFrom","onModelCreateFromError","onModelBeforeUpdate","onModelAfterUpdate","onModelUpdateError","onModelBeforeDelete","onModelAfterDelete","onModelDeleteError","onModelInitialize","assignModelBeforeCreate","assignModelBeforeUpdate","assignModelBeforeDelete","createModel","input","result","createModelCreateValidation","safeParseAsync","success","createZodError","error","defaultFields","data","removeUndefinedValues","assignModelDefaultFields","group","cms","getGroup","titleFieldId","descriptionFieldId","imageFieldId","description","name","displayName","createdOn","Date","toISOString","lockedFields","publish","createdModel","create","ex","updateModel","original","createModelUpdateValidation","Object","keys","length","groupId","groupData","resultModel","update","updateModelDirect","initialModel","createModelFrom","createModelCreateFromValidation","i18n","groups","icon","deleteModel","delete","WebinyError","message","initializeModel","userInput","getEntryManagers","exports"],"sources":["contentModel.crud.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport {\n CmsContext,\n CmsModel,\n CmsModelContext,\n CmsModelGroup,\n CmsModelManager,\n CmsModelUpdateInput,\n HeadlessCmsStorageOperations,\n OnModelAfterCreateFromTopicParams,\n OnModelAfterCreateTopicParams,\n OnModelAfterDeleteTopicParams,\n OnModelAfterUpdateTopicParams,\n OnModelBeforeCreateFromTopicParams,\n OnModelBeforeCreateTopicParams,\n OnModelBeforeDeleteTopicParams,\n OnModelBeforeUpdateTopicParams,\n OnModelCreateErrorTopicParams,\n OnModelCreateFromErrorParams,\n OnModelDeleteErrorTopicParams,\n OnModelInitializeParams,\n OnModelUpdateErrorTopicParams\n} from \"~/types\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport { contentModelManagerFactory } from \"./contentModel/contentModelManagerFactory\";\nimport { Tenant } from \"@webiny/api-tenancy/types\";\nimport { I18NLocale } from \"@webiny/api-i18n/types\";\nimport { SecurityIdentity } from \"@webiny/api-security/types\";\nimport { createTopic } from \"@webiny/pubsub\";\nimport { assignModelBeforeCreate } from \"./contentModel/beforeCreate\";\nimport { assignModelBeforeUpdate } from \"./contentModel/beforeUpdate\";\nimport { assignModelBeforeDelete } from \"./contentModel/beforeDelete\";\nimport { CmsModelPlugin } from \"~/plugins/CmsModelPlugin\";\nimport {\n createModelCreateFromValidation,\n createModelCreateValidation,\n createModelUpdateValidation\n} from \"~/crud/contentModel/validation\";\nimport { createZodError, removeUndefinedValues } from \"@webiny/utils\";\nimport { assignModelDefaultFields } from \"~/crud/contentModel/defaultFields\";\nimport { ModelsPermissions } from \"~/utils/permissions/ModelsPermissions\";\nimport { createCacheKey, createMemoryCache } from \"~/utils\";\nimport { ensureTypeTag } from \"./contentModel/ensureTypeTag\";\nimport { listModelsFromDatabase } from \"~/crud/contentModel/listModelsFromDatabase\";\nimport { filterAsync } from \"~/utils/filterAsync\";\n\nexport interface CreateModelsCrudParams {\n getTenant: () => Tenant;\n getLocale: () => I18NLocale;\n storageOperations: HeadlessCmsStorageOperations;\n modelsPermissions: ModelsPermissions;\n context: CmsContext;\n getIdentity: () => SecurityIdentity;\n}\n\nexport const createModelsCrud = (params: CreateModelsCrudParams): CmsModelContext => {\n const { getTenant, getIdentity, getLocale, storageOperations, modelsPermissions, context } =\n params;\n\n const listPluginModelsCache = createMemoryCache<Promise<CmsModel[]>>();\n const listFilteredModelsCache = createMemoryCache<Promise<CmsModel[]>>();\n const listDatabaseModelsCache = createMemoryCache<Promise<CmsModel[]>>();\n const clearModelsCache = (): void => {\n listDatabaseModelsCache.clear();\n listFilteredModelsCache.clear();\n };\n\n const managers = new Map<string, CmsModelManager>();\n const updateManager = async (\n context: CmsContext,\n model: CmsModel\n ): Promise<CmsModelManager> => {\n const manager = await contentModelManagerFactory(context, model);\n managers.set(model.modelId, manager);\n return manager;\n };\n\n const checkModelPermissions = async (rwd: string) => {\n return modelsPermissions.ensure({ rwd });\n };\n\n const filterModel = async (model: CmsModel): Promise<boolean> => {\n const ownsModel = await modelsPermissions.ensure(\n { owns: model.createdBy },\n { throw: false }\n );\n\n if (!ownsModel) {\n return false;\n }\n\n return modelsPermissions.canAccessModel({\n model\n });\n };\n\n const listPluginModels = async (tenant: string, locale: string): Promise<CmsModel[]> => {\n const modelPlugins = context.plugins.byType<CmsModelPlugin>(CmsModelPlugin.type);\n const cacheKey = createCacheKey({\n tenant,\n locale,\n models: modelPlugins\n .map(({ contentModel: model }) => {\n return `${model.modelId}#${model.pluralApiName}#${model.singularApiName}#${\n model.savedOn || \"unknown\"\n }`;\n })\n .join(\"/\"),\n identity: context.security.isAuthorizationEnabled() ? getIdentity()?.id : undefined\n });\n return listPluginModelsCache.getOrSet(cacheKey, async () => {\n const models = modelPlugins\n /**\n * We need to filter out models that are not for this tenant or locale.\n * If it does not have tenant or locale define, it is for every locale and tenant\n */\n .filter(plugin => {\n const { tenant: modelTenant, locale: modelLocale } = plugin.contentModel;\n if (modelTenant && modelTenant !== tenant) {\n return false;\n } else if (modelLocale && modelLocale !== locale) {\n return false;\n }\n return true;\n })\n .map(plugin => {\n return {\n ...plugin.contentModel,\n tags: ensureTypeTag(plugin.contentModel),\n tenant,\n locale,\n webinyVersion: context.WEBINY_VERSION\n };\n }) as unknown as CmsModel[];\n return filterAsync(models, filterModel);\n });\n };\n\n const getModelFromCache = async (modelId: string) => {\n const models = await listModels();\n const model = models.find(m => m.modelId === modelId);\n if (!model) {\n throw new NotFoundError(`Content model \"${modelId}\" was not found!`);\n }\n\n return {\n ...model,\n tags: ensureTypeTag(model),\n tenant: model.tenant || getTenant().id,\n locale: model.locale || getLocale().code\n };\n };\n\n /**\n * The list models cache is a key -> Promise pair so it the listModels() can be called multiple times but executed only once.\n *\n * We always fetch the plugins and database models separately.\n * Then we combine them and run access filtering on them\n */\n const listModels = async () => {\n return context.benchmark.measure(\"headlessCms.crud.models.listModels\", async () => {\n /**\n * Maybe we can cache based on permissions, not the identity id?\n *\n * TODO: @adrian please check if possible.\n */\n const tenant = getTenant().id;\n const locale = getLocale().code;\n const pluginModels = await listPluginModels(tenant, locale);\n const dbCacheKey = createCacheKey({\n tenant,\n locale\n });\n const databaseModels = await listDatabaseModelsCache.getOrSet(dbCacheKey, async () => {\n return await listModelsFromDatabase(params);\n });\n\n const filteredCacheKey = createCacheKey({\n dbCacheKey: dbCacheKey.get(),\n identity: context.security.isAuthorizationEnabled() ? getIdentity()?.id : undefined\n });\n\n const filteredModels = await listFilteredModelsCache.getOrSet(\n filteredCacheKey,\n async () => {\n return filterAsync(databaseModels, filterModel);\n }\n );\n\n return filteredModels.concat(pluginModels);\n });\n };\n\n const getModel = async (modelId: string): Promise<CmsModel> => {\n return context.benchmark.measure(\"headlessCms.crud.models.getModel\", async () => {\n await checkModelPermissions(\"r\");\n\n const model = await context.security.withoutAuthorization(async () => {\n return await getModelFromCache(modelId);\n });\n if (!model) {\n throw new NotFoundError(`Content model \"${modelId}\" was not found!`);\n }\n\n await modelsPermissions.ensure({ owns: model.createdBy });\n await modelsPermissions.ensureCanAccessModel({\n model\n });\n\n return model;\n });\n };\n\n const getEntryManager: CmsModelContext[\"getEntryManager\"] = async (\n target\n ): Promise<CmsModelManager> => {\n const modelId = typeof target === \"string\" ? target : target.modelId;\n if (managers.has(modelId)) {\n return managers.get(modelId) as CmsModelManager;\n }\n const model = await getModelFromCache(modelId);\n return await updateManager(context, model);\n };\n\n /**\n * Create\n */\n const onModelBeforeCreate =\n createTopic<OnModelBeforeCreateTopicParams>(\"cms.onModelBeforeCreate\");\n const onModelAfterCreate = createTopic<OnModelAfterCreateTopicParams>(\"cms.onModelAfterCreate\");\n const onModelCreateError = createTopic<OnModelCreateErrorTopicParams>(\"cms.onModelCreateError\");\n /**\n * Create from / clone\n */\n const onModelBeforeCreateFrom = createTopic<OnModelBeforeCreateFromTopicParams>(\n \"cms.onModelBeforeCreateFrom\"\n );\n const onModelAfterCreateFrom = createTopic<OnModelAfterCreateFromTopicParams>(\n \"cms.onModelAfterCreateFrom\"\n );\n const onModelCreateFromError = createTopic<OnModelCreateFromErrorParams>(\n \"cms.onModelCreateFromError\"\n );\n /**\n * Update\n */\n const onModelBeforeUpdate =\n createTopic<OnModelBeforeUpdateTopicParams>(\"cms.onModelBeforeUpdate\");\n const onModelAfterUpdate = createTopic<OnModelAfterUpdateTopicParams>(\"cms.onModelAfterUpdate\");\n const onModelUpdateError = createTopic<OnModelUpdateErrorTopicParams>(\"cms.onModelUpdateError\");\n /**\n * Delete\n */\n const onModelBeforeDelete =\n createTopic<OnModelBeforeDeleteTopicParams>(\"cms.onModelBeforeDelete\");\n const onModelAfterDelete = createTopic<OnModelAfterDeleteTopicParams>(\"cms.onModelAfterDelete\");\n const onModelDeleteError = createTopic<OnModelDeleteErrorTopicParams>(\"cms.onModelDeleteError\");\n /**\n * Initialize\n */\n const onModelInitialize = createTopic<OnModelInitializeParams>(\"cms.onModelInitialize\");\n /**\n * We need to assign some default behaviors.\n */\n assignModelBeforeCreate({\n onModelBeforeCreate,\n onModelBeforeCreateFrom,\n context,\n storageOperations\n });\n assignModelBeforeUpdate({\n onModelBeforeUpdate,\n context\n });\n assignModelBeforeDelete({\n onModelBeforeDelete,\n plugins: context.plugins,\n storageOperations\n });\n\n /**\n * CRUD methods\n */\n const createModel: CmsModelContext[\"createModel\"] = async input => {\n await checkModelPermissions(\"w\");\n\n const result = await createModelCreateValidation().safeParseAsync(input);\n if (!result.success) {\n throw createZodError(result.error);\n }\n /**\n * We need to extract the defaultFields because it is not for the CmsModel object.\n */\n const { defaultFields, ...data } = removeUndefinedValues(result.data);\n if (defaultFields) {\n assignModelDefaultFields(data);\n }\n\n const group = await context.cms.getGroup(data.group);\n\n const identity = getIdentity();\n const model: CmsModel = {\n ...data,\n modelId: data.modelId || \"\",\n singularApiName: data.singularApiName,\n pluralApiName: data.pluralApiName,\n titleFieldId: \"id\",\n descriptionFieldId: null,\n imageFieldId: null,\n description: data.description || \"\",\n locale: getLocale().code,\n tenant: getTenant().id,\n group: {\n id: group.id,\n name: group.name\n },\n createdBy: {\n id: identity.id,\n displayName: identity.displayName,\n type: identity.type\n },\n createdOn: new Date().toISOString(),\n savedOn: new Date().toISOString(),\n lockedFields: [],\n webinyVersion: context.WEBINY_VERSION\n };\n\n model.tags = ensureTypeTag(model);\n\n try {\n await onModelBeforeCreate.publish({\n input: data,\n model\n });\n\n const createdModel = await storageOperations.models.create({\n model\n });\n\n clearModelsCache();\n\n await updateManager(context, model);\n\n await onModelAfterCreate.publish({\n input: data,\n model: createdModel\n });\n\n return createdModel;\n } catch (ex) {\n await onModelCreateError.publish({\n input: data,\n model,\n error: ex\n });\n throw ex;\n }\n };\n const updateModel: CmsModelContext[\"updateModel\"] = async (modelId, input) => {\n await checkModelPermissions(\"w\");\n\n // Get a model record; this will also perform ownership validation.\n const original = await getModel(modelId);\n\n const result = await createModelUpdateValidation().safeParseAsync(input);\n if (!result.success) {\n throw createZodError(result.error);\n }\n\n const data = removeUndefinedValues(result.data);\n\n if (Object.keys(data).length === 0) {\n /**\n * We need to return the original if nothing is to be updated.\n */\n return original;\n }\n let group: CmsModelGroup = {\n id: original.group.id,\n name: original.group.name\n };\n const groupId = data.group;\n if (groupId) {\n const groupData = await context.cms.getGroup(groupId);\n group = {\n id: groupData.id,\n name: groupData.name\n };\n }\n const model: CmsModel = {\n ...original,\n ...data,\n titleFieldId:\n data.titleFieldId === undefined\n ? original.titleFieldId\n : (data.titleFieldId as string),\n descriptionFieldId:\n data.descriptionFieldId === undefined\n ? original.descriptionFieldId\n : data.descriptionFieldId,\n imageFieldId:\n data.imageFieldId === undefined ? original.imageFieldId : data.imageFieldId,\n group,\n description: data.description || original.description,\n tenant: original.tenant || getTenant().id,\n locale: original.locale || getLocale().code,\n webinyVersion: context.WEBINY_VERSION,\n savedOn: new Date().toISOString()\n };\n\n model.tags = ensureTypeTag(model);\n\n try {\n await onModelBeforeUpdate.publish({\n input: data,\n original,\n model\n });\n\n const resultModel = await storageOperations.models.update({\n model\n });\n\n await updateManager(context, resultModel);\n\n await onModelAfterUpdate.publish({\n input: data,\n original,\n model: resultModel\n });\n\n return resultModel;\n } catch (ex) {\n await onModelUpdateError.publish({\n input: data,\n model,\n original,\n error: ex\n });\n\n throw ex;\n }\n };\n const updateModelDirect: CmsModelContext[\"updateModelDirect\"] = async params => {\n const { model: initialModel, original } = params;\n\n const model: CmsModel = {\n ...initialModel,\n tenant: initialModel.tenant || getTenant().id,\n locale: initialModel.locale || getLocale().code,\n webinyVersion: context.WEBINY_VERSION\n };\n\n try {\n await onModelBeforeUpdate.publish({\n input: {} as CmsModelUpdateInput,\n original,\n model\n });\n\n const resultModel = await storageOperations.models.update({\n model\n });\n\n await updateManager(context, resultModel);\n\n clearModelsCache();\n\n await onModelAfterUpdate.publish({\n input: {} as CmsModelUpdateInput,\n original,\n model: resultModel\n });\n\n return resultModel;\n } catch (ex) {\n await onModelUpdateError.publish({\n input: {} as CmsModelUpdateInput,\n original,\n model,\n error: ex\n });\n throw ex;\n }\n };\n const createModelFrom: CmsModelContext[\"createModelFrom\"] = async (modelId, input) => {\n await checkModelPermissions(\"w\");\n /**\n * Get a model record; this will also perform ownership validation.\n */\n const original = await getModel(modelId);\n\n const result = await createModelCreateFromValidation().safeParseAsync({\n ...input,\n description: input.description || original.description\n });\n if (!result.success) {\n throw createZodError(result.error);\n }\n\n const data = removeUndefinedValues(result.data);\n\n const locale = await context.i18n.getLocale(data.locale || original.locale);\n if (!locale) {\n throw new NotFoundError(`There is no locale \"${data.locale}\".`);\n }\n /**\n * Use storage operations directly because we cannot get group from different locale via context methods.\n */\n const group = await context.cms.storageOperations.groups.get({\n id: data.group,\n tenant: original.tenant,\n locale: locale.code\n });\n if (!group) {\n throw new NotFoundError(`There is no group \"${data.group}\".`);\n }\n\n const identity = getIdentity();\n const model: CmsModel = {\n ...original,\n singularApiName: data.singularApiName,\n pluralApiName: data.pluralApiName,\n locale: locale.code,\n group: {\n id: group.id,\n name: group.name\n },\n icon: data.icon,\n name: data.name,\n modelId: data.modelId || \"\",\n description: data.description || \"\",\n createdBy: {\n id: identity.id,\n displayName: identity.displayName,\n type: identity.type\n },\n createdOn: new Date().toISOString(),\n savedOn: new Date().toISOString(),\n lockedFields: [],\n webinyVersion: context.WEBINY_VERSION\n };\n\n try {\n await onModelBeforeCreateFrom.publish({\n input: data,\n model,\n original\n });\n\n const createdModel = await storageOperations.models.create({\n model\n });\n\n clearModelsCache();\n\n await updateManager(context, model);\n\n await onModelAfterCreateFrom.publish({\n input: data,\n original,\n model: createdModel\n });\n\n return createdModel;\n } catch (ex) {\n await onModelCreateFromError.publish({\n input: data,\n original,\n model,\n error: ex\n });\n throw ex;\n }\n };\n const deleteModel: CmsModelContext[\"deleteModel\"] = async modelId => {\n await checkModelPermissions(\"d\");\n\n const model = await getModel(modelId);\n\n try {\n await onModelBeforeDelete.publish({\n model\n });\n\n try {\n await storageOperations.models.delete({\n model\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete the content model\",\n ex.code || \"CONTENT_MODEL_DELETE_ERROR\",\n {\n error: ex,\n modelId: model.modelId\n }\n );\n }\n\n clearModelsCache();\n\n await onModelAfterDelete.publish({\n model\n });\n\n managers.delete(model.modelId);\n } catch (ex) {\n await onModelDeleteError.publish({\n model,\n error: ex\n });\n throw ex;\n }\n };\n const initializeModel: CmsModelContext[\"initializeModel\"] = async (modelId, data) => {\n /**\n * We require that users have write permissions to initialize models.\n * Maybe introduce another permission for it?\n */\n await checkModelPermissions(\"w\");\n\n const model = await getModel(modelId);\n\n await onModelInitialize.publish({ model, data });\n\n return true;\n };\n return {\n onModelBeforeCreate,\n onModelAfterCreate,\n onModelCreateError,\n onModelBeforeCreateFrom,\n onModelAfterCreateFrom,\n onModelCreateFromError,\n onModelBeforeUpdate,\n onModelAfterUpdate,\n onModelUpdateError,\n onModelBeforeDelete,\n onModelAfterDelete,\n onModelDeleteError,\n onModelInitialize,\n clearModelsCache,\n getModel,\n listModels,\n async createModel(input) {\n return context.benchmark.measure(\"headlessCms.crud.models.createModel\", async () => {\n return createModel(input);\n });\n },\n /**\n * Method does not check for permissions or ownership.\n * @internal\n */\n async updateModelDirect(params) {\n return context.benchmark.measure(\n \"headlessCms.crud.models.updateModelDirect\",\n async () => {\n return updateModelDirect(params);\n }\n );\n },\n async createModelFrom(modelId, userInput) {\n return context.benchmark.measure(\n \"headlessCms.crud.models.createModelFrom\",\n async () => {\n return createModelFrom(modelId, userInput);\n }\n );\n },\n async updateModel(modelId, input) {\n return context.benchmark.measure(\"headlessCms.crud.models.updateModel\", async () => {\n return updateModel(modelId, input);\n });\n },\n async deleteModel(modelId) {\n return context.benchmark.measure(\"headlessCms.crud.models.deleteModel\", async () => {\n return deleteModel(modelId);\n });\n },\n async initializeModel(modelId, data) {\n return context.benchmark.measure(\n \"headlessCms.crud.models.initializeModel\",\n async () => {\n return initializeModel(modelId, data);\n }\n );\n },\n getEntryManager,\n getEntryManagers: () => managers\n };\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAuBA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,2BAAA,GAAAF,OAAA;AAIA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAL,OAAA;AACA,IAAAM,aAAA,GAAAN,OAAA;AACA,IAAAO,eAAA,GAAAP,OAAA;AACA,IAAAQ,WAAA,GAAAR,OAAA;AAKA,IAAAS,MAAA,GAAAT,OAAA;AACA,IAAAU,cAAA,GAAAV,OAAA;AAEA,IAAAW,OAAA,GAAAX,OAAA;AACA,IAAAY,cAAA,GAAAZ,OAAA;AACA,IAAAa,uBAAA,GAAAb,OAAA;AACA,IAAAc,YAAA,GAAAd,OAAA;AAWO,MAAMe,gBAAgB,GAAIC,MAA8B,IAAsB;EACjF,MAAM;IAAEC,SAAS;IAAEC,WAAW;IAAEC,SAAS;IAAEC,iBAAiB;IAAEC,iBAAiB;IAAEC;EAAQ,CAAC,GACtFN,MAAM;EAEV,MAAMO,qBAAqB,GAAG,IAAAC,yBAAiB,EAAsB,CAAC;EACtE,MAAMC,uBAAuB,GAAG,IAAAD,yBAAiB,EAAsB,CAAC;EACxE,MAAME,uBAAuB,GAAG,IAAAF,yBAAiB,EAAsB,CAAC;EACxE,MAAMG,gBAAgB,GAAGA,CAAA,KAAY;IACjCD,uBAAuB,CAACE,KAAK,CAAC,CAAC;IAC/BH,uBAAuB,CAACG,KAAK,CAAC,CAAC;EACnC,CAAC;EAED,MAAMC,QAAQ,GAAG,IAAIC,GAAG,CAA0B,CAAC;EACnD,MAAMC,aAAa,GAAG,MAAAA,CAClBT,OAAmB,EACnBU,KAAe,KACY;IAC3B,MAAMC,OAAO,GAAG,MAAM,IAAAC,sDAA0B,EAACZ,OAAO,EAAEU,KAAK,CAAC;IAChEH,QAAQ,CAACM,GAAG,CAACH,KAAK,CAACI,OAAO,EAAEH,OAAO,CAAC;IACpC,OAAOA,OAAO;EAClB,CAAC;EAED,MAAMI,qBAAqB,GAAG,MAAOC,GAAW,IAAK;IACjD,OAAOjB,iBAAiB,CAACkB,MAAM,CAAC;MAAED;IAAI,CAAC,CAAC;EAC5C,CAAC;EAED,MAAME,WAAW,GAAG,MAAOR,KAAe,IAAuB;IAC7D,MAAMS,SAAS,GAAG,MAAMpB,iBAAiB,CAACkB,MAAM,CAC5C;MAAEG,IAAI,EAAEV,KAAK,CAACW;IAAU,CAAC,EACzB;MAAEC,KAAK,EAAE;IAAM,CACnB,CAAC;IAED,IAAI,CAACH,SAAS,EAAE;MACZ,OAAO,KAAK;IAChB;IAEA,OAAOpB,iBAAiB,CAACwB,cAAc,CAAC;MACpCb;IACJ,CAAC,CAAC;EACN,CAAC;EAED,MAAMc,gBAAgB,GAAG,MAAAA,CAAOC,MAAc,EAAEC,MAAc,KAA0B;IACpF,MAAMC,YAAY,GAAG3B,OAAO,CAAC4B,OAAO,CAACC,MAAM,CAAiBC,8BAAc,CAACC,IAAI,CAAC;IAChF,MAAMC,QAAQ,GAAG,IAAAC,sBAAc,EAAC;MAC5BR,MAAM;MACNC,MAAM;MACNQ,MAAM,EAAEP,YAAY,CACfQ,GAAG,CAAC,CAAC;QAAEC,YAAY,EAAE1B;MAAM,CAAC,KAAK;QAC9B,OAAQ,GAAEA,KAAK,CAACI,OAAQ,IAAGJ,KAAK,CAAC2B,aAAc,IAAG3B,KAAK,CAAC4B,eAAgB,IACpE5B,KAAK,CAAC6B,OAAO,IAAI,SACpB,EAAC;MACN,CAAC,CAAC,CACDC,IAAI,CAAC,GAAG,CAAC;MACdC,QAAQ,EAAEzC,OAAO,CAAC0C,QAAQ,CAACC,sBAAsB,CAAC,CAAC,GAAG/C,WAAW,CAAC,CAAC,EAAEgD,EAAE,GAAGC;IAC9E,CAAC,CAAC;IACF,OAAO5C,qBAAqB,CAAC6C,QAAQ,CAACd,QAAQ,EAAE,YAAY;MACxD,MAAME,MAAM,GAAGP;MACX;AAChB;AACA;AACA,SAHgB,CAICoB,MAAM,CAACC,MAAM,IAAI;QACd,MAAM;UAAEvB,MAAM,EAAEwB,WAAW;UAAEvB,MAAM,EAAEwB;QAAY,CAAC,GAAGF,MAAM,CAACZ,YAAY;QACxE,IAAIa,WAAW,IAAIA,WAAW,KAAKxB,MAAM,EAAE;UACvC,OAAO,KAAK;QAChB,CAAC,MAAM,IAAIyB,WAAW,IAAIA,WAAW,KAAKxB,MAAM,EAAE;UAC9C,OAAO,KAAK;QAChB;QACA,OAAO,IAAI;MACf,CAAC,CAAC,CACDS,GAAG,CAACa,MAAM,IAAI;QACX,OAAO;UACH,GAAGA,MAAM,CAACZ,YAAY;UACtBe,IAAI,EAAE,IAAAC,4BAAa,EAACJ,MAAM,CAACZ,YAAY,CAAC;UACxCX,MAAM;UACNC,MAAM;UACN2B,aAAa,EAAErD,OAAO,CAACsD;QAC3B,CAAC;MACL,CAAC,CAA0B;MAC/B,OAAO,IAAAC,wBAAW,EAACrB,MAAM,EAAEhB,WAAW,CAAC;IAC3C,CAAC,CAAC;EACN,CAAC;EAED,MAAMsC,iBAAiB,GAAG,MAAO1C,OAAe,IAAK;IACjD,MAAMoB,MAAM,GAAG,MAAMuB,UAAU,CAAC,CAAC;IACjC,MAAM/C,KAAK,GAAGwB,MAAM,CAACwB,IAAI,CAACC,CAAC,IAAIA,CAAC,CAAC7C,OAAO,KAAKA,OAAO,CAAC;IACrD,IAAI,CAACJ,KAAK,EAAE;MACR,MAAM,IAAIkD,6BAAa,CAAE,kBAAiB9C,OAAQ,kBAAiB,CAAC;IACxE;IAEA,OAAO;MACH,GAAGJ,KAAK;MACRyC,IAAI,EAAE,IAAAC,4BAAa,EAAC1C,KAAK,CAAC;MAC1Be,MAAM,EAAEf,KAAK,CAACe,MAAM,IAAI9B,SAAS,CAAC,CAAC,CAACiD,EAAE;MACtClB,MAAM,EAAEhB,KAAK,CAACgB,MAAM,IAAI7B,SAAS,CAAC,CAAC,CAACgE;IACxC,CAAC;EACL,CAAC;;EAED;AACJ;AACA;AACA;AACA;AACA;EACI,MAAMJ,UAAU,GAAG,MAAAA,CAAA,KAAY;IAC3B,OAAOzD,OAAO,CAAC8D,SAAS,CAACC,OAAO,CAAC,oCAAoC,EAAE,YAAY;MAC/E;AACZ;AACA;AACA;AACA;MACY,MAAMtC,MAAM,GAAG9B,SAAS,CAAC,CAAC,CAACiD,EAAE;MAC7B,MAAMlB,MAAM,GAAG7B,SAAS,CAAC,CAAC,CAACgE,IAAI;MAC/B,MAAMG,YAAY,GAAG,MAAMxC,gBAAgB,CAACC,MAAM,EAAEC,MAAM,CAAC;MAC3D,MAAMuC,UAAU,GAAG,IAAAhC,sBAAc,EAAC;QAC9BR,MAAM;QACNC;MACJ,CAAC,CAAC;MACF,MAAMwC,cAAc,GAAG,MAAM9D,uBAAuB,CAAC0C,QAAQ,CAACmB,UAAU,EAAE,YAAY;QAClF,OAAO,MAAM,IAAAE,8CAAsB,EAACzE,MAAM,CAAC;MAC/C,CAAC,CAAC;MAEF,MAAM0E,gBAAgB,GAAG,IAAAnC,sBAAc,EAAC;QACpCgC,UAAU,EAAEA,UAAU,CAACI,GAAG,CAAC,CAAC;QAC5B5B,QAAQ,EAAEzC,OAAO,CAAC0C,QAAQ,CAACC,sBAAsB,CAAC,CAAC,GAAG/C,WAAW,CAAC,CAAC,EAAEgD,EAAE,GAAGC;MAC9E,CAAC,CAAC;MAEF,MAAMyB,cAAc,GAAG,MAAMnE,uBAAuB,CAAC2C,QAAQ,CACzDsB,gBAAgB,EAChB,YAAY;QACR,OAAO,IAAAb,wBAAW,EAACW,cAAc,EAAEhD,WAAW,CAAC;MACnD,CACJ,CAAC;MAED,OAAOoD,cAAc,CAACC,MAAM,CAACP,YAAY,CAAC;IAC9C,CAAC,CAAC;EACN,CAAC;EAED,MAAMQ,QAAQ,GAAG,MAAO1D,OAAe,IAAwB;IAC3D,OAAOd,OAAO,CAAC8D,SAAS,CAACC,OAAO,CAAC,kCAAkC,EAAE,YAAY;MAC7E,MAAMhD,qBAAqB,CAAC,GAAG,CAAC;MAEhC,MAAML,KAAK,GAAG,MAAMV,OAAO,CAAC0C,QAAQ,CAAC+B,oBAAoB,CAAC,YAAY;QAClE,OAAO,MAAMjB,iBAAiB,CAAC1C,OAAO,CAAC;MAC3C,CAAC,CAAC;MACF,IAAI,CAACJ,KAAK,EAAE;QACR,MAAM,IAAIkD,6BAAa,CAAE,kBAAiB9C,OAAQ,kBAAiB,CAAC;MACxE;MAEA,MAAMf,iBAAiB,CAACkB,MAAM,CAAC;QAAEG,IAAI,EAAEV,KAAK,CAACW;MAAU,CAAC,CAAC;MACzD,MAAMtB,iBAAiB,CAAC2E,oBAAoB,CAAC;QACzChE;MACJ,CAAC,CAAC;MAEF,OAAOA,KAAK;IAChB,CAAC,CAAC;EACN,CAAC;EAED,MAAMiE,eAAmD,GAAG,MACxDC,MAAM,IACqB;IAC3B,MAAM9D,OAAO,GAAG,OAAO8D,MAAM,KAAK,QAAQ,GAAGA,MAAM,GAAGA,MAAM,CAAC9D,OAAO;IACpE,IAAIP,QAAQ,CAACsE,GAAG,CAAC/D,OAAO,CAAC,EAAE;MACvB,OAAOP,QAAQ,CAAC8D,GAAG,CAACvD,OAAO,CAAC;IAChC;IACA,MAAMJ,KAAK,GAAG,MAAM8C,iBAAiB,CAAC1C,OAAO,CAAC;IAC9C,OAAO,MAAML,aAAa,CAACT,OAAO,EAAEU,KAAK,CAAC;EAC9C,CAAC;;EAED;AACJ;AACA;EACI,MAAMoE,mBAAmB,GACrB,IAAAC,mBAAW,EAAiC,yBAAyB,CAAC;EAC1E,MAAMC,kBAAkB,GAAG,IAAAD,mBAAW,EAAgC,wBAAwB,CAAC;EAC/F,MAAME,kBAAkB,GAAG,IAAAF,mBAAW,EAAgC,wBAAwB,CAAC;EAC/F;AACJ;AACA;EACI,MAAMG,uBAAuB,GAAG,IAAAH,mBAAW,EACvC,6BACJ,CAAC;EACD,MAAMI,sBAAsB,GAAG,IAAAJ,mBAAW,EACtC,4BACJ,CAAC;EACD,MAAMK,sBAAsB,GAAG,IAAAL,mBAAW,EACtC,4BACJ,CAAC;EACD;AACJ;AACA;EACI,MAAMM,mBAAmB,GACrB,IAAAN,mBAAW,EAAiC,yBAAyB,CAAC;EAC1E,MAAMO,kBAAkB,GAAG,IAAAP,mBAAW,EAAgC,wBAAwB,CAAC;EAC/F,MAAMQ,kBAAkB,GAAG,IAAAR,mBAAW,EAAgC,wBAAwB,CAAC;EAC/F;AACJ;AACA;EACI,MAAMS,mBAAmB,GACrB,IAAAT,mBAAW,EAAiC,yBAAyB,CAAC;EAC1E,MAAMU,kBAAkB,GAAG,IAAAV,mBAAW,EAAgC,wBAAwB,CAAC;EAC/F,MAAMW,kBAAkB,GAAG,IAAAX,mBAAW,EAAgC,wBAAwB,CAAC;EAC/F;AACJ;AACA;EACI,MAAMY,iBAAiB,GAAG,IAAAZ,mBAAW,EAA0B,uBAAuB,CAAC;EACvF;AACJ;AACA;EACI,IAAAa,qCAAuB,EAAC;IACpBd,mBAAmB;IACnBI,uBAAuB;IACvBlF,OAAO;IACPF;EACJ,CAAC,CAAC;EACF,IAAA+F,qCAAuB,EAAC;IACpBR,mBAAmB;IACnBrF;EACJ,CAAC,CAAC;EACF,IAAA8F,qCAAuB,EAAC;IACpBN,mBAAmB;IACnB5D,OAAO,EAAE5B,OAAO,CAAC4B,OAAO;IACxB9B;EACJ,CAAC,CAAC;;EAEF;AACJ;AACA;EACI,MAAMiG,WAA2C,GAAG,MAAMC,KAAK,IAAI;IAC/D,MAAMjF,qBAAqB,CAAC,GAAG,CAAC;IAEhC,MAAMkF,MAAM,GAAG,MAAM,IAAAC,uCAA2B,EAAC,CAAC,CAACC,cAAc,CAACH,KAAK,CAAC;IACxE,IAAI,CAACC,MAAM,CAACG,OAAO,EAAE;MACjB,MAAM,IAAAC,qBAAc,EAACJ,MAAM,CAACK,KAAK,CAAC;IACtC;IACA;AACR;AACA;IACQ,MAAM;MAAEC,aAAa;MAAE,GAAGC;IAAK,CAAC,GAAG,IAAAC,4BAAqB,EAACR,MAAM,CAACO,IAAI,CAAC;IACrE,IAAID,aAAa,EAAE;MACf,IAAAG,uCAAwB,EAACF,IAAI,CAAC;IAClC;IAEA,MAAMG,KAAK,GAAG,MAAM3G,OAAO,CAAC4G,GAAG,CAACC,QAAQ,CAACL,IAAI,CAACG,KAAK,CAAC;IAEpD,MAAMlE,QAAQ,GAAG7C,WAAW,CAAC,CAAC;IAC9B,MAAMc,KAAe,GAAG;MACpB,GAAG8F,IAAI;MACP1F,OAAO,EAAE0F,IAAI,CAAC1F,OAAO,IAAI,EAAE;MAC3BwB,eAAe,EAAEkE,IAAI,CAAClE,eAAe;MACrCD,aAAa,EAAEmE,IAAI,CAACnE,aAAa;MACjCyE,YAAY,EAAE,IAAI;MAClBC,kBAAkB,EAAE,IAAI;MACxBC,YAAY,EAAE,IAAI;MAClBC,WAAW,EAAET,IAAI,CAACS,WAAW,IAAI,EAAE;MACnCvF,MAAM,EAAE7B,SAAS,CAAC,CAAC,CAACgE,IAAI;MACxBpC,MAAM,EAAE9B,SAAS,CAAC,CAAC,CAACiD,EAAE;MACtB+D,KAAK,EAAE;QACH/D,EAAE,EAAE+D,KAAK,CAAC/D,EAAE;QACZsE,IAAI,EAAEP,KAAK,CAACO;MAChB,CAAC;MACD7F,SAAS,EAAE;QACPuB,EAAE,EAAEH,QAAQ,CAACG,EAAE;QACfuE,WAAW,EAAE1E,QAAQ,CAAC0E,WAAW;QACjCpF,IAAI,EAAEU,QAAQ,CAACV;MACnB,CAAC;MACDqF,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;MACnC/E,OAAO,EAAE,IAAI8E,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;MACjCC,YAAY,EAAE,EAAE;MAChBlE,aAAa,EAAErD,OAAO,CAACsD;IAC3B,CAAC;IAED5C,KAAK,CAACyC,IAAI,GAAG,IAAAC,4BAAa,EAAC1C,KAAK,CAAC;IAEjC,IAAI;MACA,MAAMoE,mBAAmB,CAAC0C,OAAO,CAAC;QAC9BxB,KAAK,EAAEQ,IAAI;QACX9F;MACJ,CAAC,CAAC;MAEF,MAAM+G,YAAY,GAAG,MAAM3H,iBAAiB,CAACoC,MAAM,CAACwF,MAAM,CAAC;QACvDhH;MACJ,CAAC,CAAC;MAEFL,gBAAgB,CAAC,CAAC;MAElB,MAAMI,aAAa,CAACT,OAAO,EAAEU,KAAK,CAAC;MAEnC,MAAMsE,kBAAkB,CAACwC,OAAO,CAAC;QAC7BxB,KAAK,EAAEQ,IAAI;QACX9F,KAAK,EAAE+G;MACX,CAAC,CAAC;MAEF,OAAOA,YAAY;IACvB,CAAC,CAAC,OAAOE,EAAE,EAAE;MACT,MAAM1C,kBAAkB,CAACuC,OAAO,CAAC;QAC7BxB,KAAK,EAAEQ,IAAI;QACX9F,KAAK;QACL4F,KAAK,EAAEqB;MACX,CAAC,CAAC;MACF,MAAMA,EAAE;IACZ;EACJ,CAAC;EACD,MAAMC,WAA2C,GAAG,MAAAA,CAAO9G,OAAO,EAAEkF,KAAK,KAAK;IAC1E,MAAMjF,qBAAqB,CAAC,GAAG,CAAC;;IAEhC;IACA,MAAM8G,QAAQ,GAAG,MAAMrD,QAAQ,CAAC1D,OAAO,CAAC;IAExC,MAAMmF,MAAM,GAAG,MAAM,IAAA6B,uCAA2B,EAAC,CAAC,CAAC3B,cAAc,CAACH,KAAK,CAAC;IACxE,IAAI,CAACC,MAAM,CAACG,OAAO,EAAE;MACjB,MAAM,IAAAC,qBAAc,EAACJ,MAAM,CAACK,KAAK,CAAC;IACtC;IAEA,MAAME,IAAI,GAAG,IAAAC,4BAAqB,EAACR,MAAM,CAACO,IAAI,CAAC;IAE/C,IAAIuB,MAAM,CAACC,IAAI,CAACxB,IAAI,CAAC,CAACyB,MAAM,KAAK,CAAC,EAAE;MAChC;AACZ;AACA;MACY,OAAOJ,QAAQ;IACnB;IACA,IAAIlB,KAAoB,GAAG;MACvB/D,EAAE,EAAEiF,QAAQ,CAAClB,KAAK,CAAC/D,EAAE;MACrBsE,IAAI,EAAEW,QAAQ,CAAClB,KAAK,CAACO;IACzB,CAAC;IACD,MAAMgB,OAAO,GAAG1B,IAAI,CAACG,KAAK;IAC1B,IAAIuB,OAAO,EAAE;MACT,MAAMC,SAAS,GAAG,MAAMnI,OAAO,CAAC4G,GAAG,CAACC,QAAQ,CAACqB,OAAO,CAAC;MACrDvB,KAAK,GAAG;QACJ/D,EAAE,EAAEuF,SAAS,CAACvF,EAAE;QAChBsE,IAAI,EAAEiB,SAAS,CAACjB;MACpB,CAAC;IACL;IACA,MAAMxG,KAAe,GAAG;MACpB,GAAGmH,QAAQ;MACX,GAAGrB,IAAI;MACPM,YAAY,EACRN,IAAI,CAACM,YAAY,KAAKjE,SAAS,GACzBgF,QAAQ,CAACf,YAAY,GACpBN,IAAI,CAACM,YAAuB;MACvCC,kBAAkB,EACdP,IAAI,CAACO,kBAAkB,KAAKlE,SAAS,GAC/BgF,QAAQ,CAACd,kBAAkB,GAC3BP,IAAI,CAACO,kBAAkB;MACjCC,YAAY,EACRR,IAAI,CAACQ,YAAY,KAAKnE,SAAS,GAAGgF,QAAQ,CAACb,YAAY,GAAGR,IAAI,CAACQ,YAAY;MAC/EL,KAAK;MACLM,WAAW,EAAET,IAAI,CAACS,WAAW,IAAIY,QAAQ,CAACZ,WAAW;MACrDxF,MAAM,EAAEoG,QAAQ,CAACpG,MAAM,IAAI9B,SAAS,CAAC,CAAC,CAACiD,EAAE;MACzClB,MAAM,EAAEmG,QAAQ,CAACnG,MAAM,IAAI7B,SAAS,CAAC,CAAC,CAACgE,IAAI;MAC3CR,aAAa,EAAErD,OAAO,CAACsD,cAAc;MACrCf,OAAO,EAAE,IAAI8E,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC;IACpC,CAAC;IAED5G,KAAK,CAACyC,IAAI,GAAG,IAAAC,4BAAa,EAAC1C,KAAK,CAAC;IAEjC,IAAI;MACA,MAAM2E,mBAAmB,CAACmC,OAAO,CAAC;QAC9BxB,KAAK,EAAEQ,IAAI;QACXqB,QAAQ;QACRnH;MACJ,CAAC,CAAC;MAEF,MAAM0H,WAAW,GAAG,MAAMtI,iBAAiB,CAACoC,MAAM,CAACmG,MAAM,CAAC;QACtD3H;MACJ,CAAC,CAAC;MAEF,MAAMD,aAAa,CAACT,OAAO,EAAEoI,WAAW,CAAC;MAEzC,MAAM9C,kBAAkB,CAACkC,OAAO,CAAC;QAC7BxB,KAAK,EAAEQ,IAAI;QACXqB,QAAQ;QACRnH,KAAK,EAAE0H;MACX,CAAC,CAAC;MAEF,OAAOA,WAAW;IACtB,CAAC,CAAC,OAAOT,EAAE,EAAE;MACT,MAAMpC,kBAAkB,CAACiC,OAAO,CAAC;QAC7BxB,KAAK,EAAEQ,IAAI;QACX9F,KAAK;QACLmH,QAAQ;QACRvB,KAAK,EAAEqB;MACX,CAAC,CAAC;MAEF,MAAMA,EAAE;IACZ;EACJ,CAAC;EACD,MAAMW,iBAAuD,GAAG,MAAM5I,MAAM,IAAI;IAC5E,MAAM;MAAEgB,KAAK,EAAE6H,YAAY;MAAEV;IAAS,CAAC,GAAGnI,MAAM;IAEhD,MAAMgB,KAAe,GAAG;MACpB,GAAG6H,YAAY;MACf9G,MAAM,EAAE8G,YAAY,CAAC9G,MAAM,IAAI9B,SAAS,CAAC,CAAC,CAACiD,EAAE;MAC7ClB,MAAM,EAAE6G,YAAY,CAAC7G,MAAM,IAAI7B,SAAS,CAAC,CAAC,CAACgE,IAAI;MAC/CR,aAAa,EAAErD,OAAO,CAACsD;IAC3B,CAAC;IAED,IAAI;MACA,MAAM+B,mBAAmB,CAACmC,OAAO,CAAC;QAC9BxB,KAAK,EAAE,CAAC,CAAwB;QAChC6B,QAAQ;QACRnH;MACJ,CAAC,CAAC;MAEF,MAAM0H,WAAW,GAAG,MAAMtI,iBAAiB,CAACoC,MAAM,CAACmG,MAAM,CAAC;QACtD3H;MACJ,CAAC,CAAC;MAEF,MAAMD,aAAa,CAACT,OAAO,EAAEoI,WAAW,CAAC;MAEzC/H,gBAAgB,CAAC,CAAC;MAElB,MAAMiF,kBAAkB,CAACkC,OAAO,CAAC;QAC7BxB,KAAK,EAAE,CAAC,CAAwB;QAChC6B,QAAQ;QACRnH,KAAK,EAAE0H;MACX,CAAC,CAAC;MAEF,OAAOA,WAAW;IACtB,CAAC,CAAC,OAAOT,EAAE,EAAE;MACT,MAAMpC,kBAAkB,CAACiC,OAAO,CAAC;QAC7BxB,KAAK,EAAE,CAAC,CAAwB;QAChC6B,QAAQ;QACRnH,KAAK;QACL4F,KAAK,EAAEqB;MACX,CAAC,CAAC;MACF,MAAMA,EAAE;IACZ;EACJ,CAAC;EACD,MAAMa,eAAmD,GAAG,MAAAA,CAAO1H,OAAO,EAAEkF,KAAK,KAAK;IAClF,MAAMjF,qBAAqB,CAAC,GAAG,CAAC;IAChC;AACR;AACA;IACQ,MAAM8G,QAAQ,GAAG,MAAMrD,QAAQ,CAAC1D,OAAO,CAAC;IAExC,MAAMmF,MAAM,GAAG,MAAM,IAAAwC,2CAA+B,EAAC,CAAC,CAACtC,cAAc,CAAC;MAClE,GAAGH,KAAK;MACRiB,WAAW,EAAEjB,KAAK,CAACiB,WAAW,IAAIY,QAAQ,CAACZ;IAC/C,CAAC,CAAC;IACF,IAAI,CAAChB,MAAM,CAACG,OAAO,EAAE;MACjB,MAAM,IAAAC,qBAAc,EAACJ,MAAM,CAACK,KAAK,CAAC;IACtC;IAEA,MAAME,IAAI,GAAG,IAAAC,4BAAqB,EAACR,MAAM,CAACO,IAAI,CAAC;IAE/C,MAAM9E,MAAM,GAAG,MAAM1B,OAAO,CAAC0I,IAAI,CAAC7I,SAAS,CAAC2G,IAAI,CAAC9E,MAAM,IAAImG,QAAQ,CAACnG,MAAM,CAAC;IAC3E,IAAI,CAACA,MAAM,EAAE;MACT,MAAM,IAAIkC,6BAAa,CAAE,uBAAsB4C,IAAI,CAAC9E,MAAO,IAAG,CAAC;IACnE;IACA;AACR;AACA;IACQ,MAAMiF,KAAK,GAAG,MAAM3G,OAAO,CAAC4G,GAAG,CAAC9G,iBAAiB,CAAC6I,MAAM,CAACtE,GAAG,CAAC;MACzDzB,EAAE,EAAE4D,IAAI,CAACG,KAAK;MACdlF,MAAM,EAAEoG,QAAQ,CAACpG,MAAM;MACvBC,MAAM,EAAEA,MAAM,CAACmC;IACnB,CAAC,CAAC;IACF,IAAI,CAAC8C,KAAK,EAAE;MACR,MAAM,IAAI/C,6BAAa,CAAE,sBAAqB4C,IAAI,CAACG,KAAM,IAAG,CAAC;IACjE;IAEA,MAAMlE,QAAQ,GAAG7C,WAAW,CAAC,CAAC;IAC9B,MAAMc,KAAe,GAAG;MACpB,GAAGmH,QAAQ;MACXvF,eAAe,EAAEkE,IAAI,CAAClE,eAAe;MACrCD,aAAa,EAAEmE,IAAI,CAACnE,aAAa;MACjCX,MAAM,EAAEA,MAAM,CAACmC,IAAI;MACnB8C,KAAK,EAAE;QACH/D,EAAE,EAAE+D,KAAK,CAAC/D,EAAE;QACZsE,IAAI,EAAEP,KAAK,CAACO;MAChB,CAAC;MACD0B,IAAI,EAAEpC,IAAI,CAACoC,IAAI;MACf1B,IAAI,EAAEV,IAAI,CAACU,IAAI;MACfpG,OAAO,EAAE0F,IAAI,CAAC1F,OAAO,IAAI,EAAE;MAC3BmG,WAAW,EAAET,IAAI,CAACS,WAAW,IAAI,EAAE;MACnC5F,SAAS,EAAE;QACPuB,EAAE,EAAEH,QAAQ,CAACG,EAAE;QACfuE,WAAW,EAAE1E,QAAQ,CAAC0E,WAAW;QACjCpF,IAAI,EAAEU,QAAQ,CAACV;MACnB,CAAC;MACDqF,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;MACnC/E,OAAO,EAAE,IAAI8E,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;MACjCC,YAAY,EAAE,EAAE;MAChBlE,aAAa,EAAErD,OAAO,CAACsD;IAC3B,CAAC;IAED,IAAI;MACA,MAAM4B,uBAAuB,CAACsC,OAAO,CAAC;QAClCxB,KAAK,EAAEQ,IAAI;QACX9F,KAAK;QACLmH;MACJ,CAAC,CAAC;MAEF,MAAMJ,YAAY,GAAG,MAAM3H,iBAAiB,CAACoC,MAAM,CAACwF,MAAM,CAAC;QACvDhH;MACJ,CAAC,CAAC;MAEFL,gBAAgB,CAAC,CAAC;MAElB,MAAMI,aAAa,CAACT,OAAO,EAAEU,KAAK,CAAC;MAEnC,MAAMyE,sBAAsB,CAACqC,OAAO,CAAC;QACjCxB,KAAK,EAAEQ,IAAI;QACXqB,QAAQ;QACRnH,KAAK,EAAE+G;MACX,CAAC,CAAC;MAEF,OAAOA,YAAY;IACvB,CAAC,CAAC,OAAOE,EAAE,EAAE;MACT,MAAMvC,sBAAsB,CAACoC,OAAO,CAAC;QACjCxB,KAAK,EAAEQ,IAAI;QACXqB,QAAQ;QACRnH,KAAK;QACL4F,KAAK,EAAEqB;MACX,CAAC,CAAC;MACF,MAAMA,EAAE;IACZ;EACJ,CAAC;EACD,MAAMkB,WAA2C,GAAG,MAAM/H,OAAO,IAAI;IACjE,MAAMC,qBAAqB,CAAC,GAAG,CAAC;IAEhC,MAAML,KAAK,GAAG,MAAM8D,QAAQ,CAAC1D,OAAO,CAAC;IAErC,IAAI;MACA,MAAM0E,mBAAmB,CAACgC,OAAO,CAAC;QAC9B9G;MACJ,CAAC,CAAC;MAEF,IAAI;QACA,MAAMZ,iBAAiB,CAACoC,MAAM,CAAC4G,MAAM,CAAC;UAClCpI;QACJ,CAAC,CAAC;MACN,CAAC,CAAC,OAAOiH,EAAE,EAAE;QACT,MAAM,IAAIoB,cAAW,CACjBpB,EAAE,CAACqB,OAAO,IAAI,oCAAoC,EAClDrB,EAAE,CAAC9D,IAAI,IAAI,4BAA4B,EACvC;UACIyC,KAAK,EAAEqB,EAAE;UACT7G,OAAO,EAAEJ,KAAK,CAACI;QACnB,CACJ,CAAC;MACL;MAEAT,gBAAgB,CAAC,CAAC;MAElB,MAAMoF,kBAAkB,CAAC+B,OAAO,CAAC;QAC7B9G;MACJ,CAAC,CAAC;MAEFH,QAAQ,CAACuI,MAAM,CAACpI,KAAK,CAACI,OAAO,CAAC;IAClC,CAAC,CAAC,OAAO6G,EAAE,EAAE;MACT,MAAMjC,kBAAkB,CAAC8B,OAAO,CAAC;QAC7B9G,KAAK;QACL4F,KAAK,EAAEqB;MACX,CAAC,CAAC;MACF,MAAMA,EAAE;IACZ;EACJ,CAAC;EACD,MAAMsB,eAAmD,GAAG,MAAAA,CAAOnI,OAAO,EAAE0F,IAAI,KAAK;IACjF;AACR;AACA;AACA;IACQ,MAAMzF,qBAAqB,CAAC,GAAG,CAAC;IAEhC,MAAML,KAAK,GAAG,MAAM8D,QAAQ,CAAC1D,OAAO,CAAC;IAErC,MAAM6E,iBAAiB,CAAC6B,OAAO,CAAC;MAAE9G,KAAK;MAAE8F;IAAK,CAAC,CAAC;IAEhD,OAAO,IAAI;EACf,CAAC;EACD,OAAO;IACH1B,mBAAmB;IACnBE,kBAAkB;IAClBC,kBAAkB;IAClBC,uBAAuB;IACvBC,sBAAsB;IACtBC,sBAAsB;IACtBC,mBAAmB;IACnBC,kBAAkB;IAClBC,kBAAkB;IAClBC,mBAAmB;IACnBC,kBAAkB;IAClBC,kBAAkB;IAClBC,iBAAiB;IACjBtF,gBAAgB;IAChBmE,QAAQ;IACRf,UAAU;IACV,MAAMsC,WAAWA,CAACC,KAAK,EAAE;MACrB,OAAOhG,OAAO,CAAC8D,SAAS,CAACC,OAAO,CAAC,qCAAqC,EAAE,YAAY;QAChF,OAAOgC,WAAW,CAACC,KAAK,CAAC;MAC7B,CAAC,CAAC;IACN,CAAC;IACD;AACR;AACA;AACA;IACQ,MAAMsC,iBAAiBA,CAAC5I,MAAM,EAAE;MAC5B,OAAOM,OAAO,CAAC8D,SAAS,CAACC,OAAO,CAC5B,2CAA2C,EAC3C,YAAY;QACR,OAAOuE,iBAAiB,CAAC5I,MAAM,CAAC;MACpC,CACJ,CAAC;IACL,CAAC;IACD,MAAM8I,eAAeA,CAAC1H,OAAO,EAAEoI,SAAS,EAAE;MACtC,OAAOlJ,OAAO,CAAC8D,SAAS,CAACC,OAAO,CAC5B,yCAAyC,EACzC,YAAY;QACR,OAAOyE,eAAe,CAAC1H,OAAO,EAAEoI,SAAS,CAAC;MAC9C,CACJ,CAAC;IACL,CAAC;IACD,MAAMtB,WAAWA,CAAC9G,OAAO,EAAEkF,KAAK,EAAE;MAC9B,OAAOhG,OAAO,CAAC8D,SAAS,CAACC,OAAO,CAAC,qCAAqC,EAAE,YAAY;QAChF,OAAO6D,WAAW,CAAC9G,OAAO,EAAEkF,KAAK,CAAC;MACtC,CAAC,CAAC;IACN,CAAC;IACD,MAAM6C,WAAWA,CAAC/H,OAAO,EAAE;MACvB,OAAOd,OAAO,CAAC8D,SAAS,CAACC,OAAO,CAAC,qCAAqC,EAAE,YAAY;QAChF,OAAO8E,WAAW,CAAC/H,OAAO,CAAC;MAC/B,CAAC,CAAC;IACN,CAAC;IACD,MAAMmI,eAAeA,CAACnI,OAAO,EAAE0F,IAAI,EAAE;MACjC,OAAOxG,OAAO,CAAC8D,SAAS,CAACC,OAAO,CAC5B,yCAAyC,EACzC,YAAY;QACR,OAAOkF,eAAe,CAACnI,OAAO,EAAE0F,IAAI,CAAC;MACzC,CACJ,CAAC;IACL,CAAC;IACD7B,eAAe;IACfwE,gBAAgB,EAAEA,CAAA,KAAM5I;EAC5B,CAAC;AACL,CAAC;AAAC6I,OAAA,CAAA3J,gBAAA,GAAAA,gBAAA"}
|
|
1
|
+
{"version":3,"names":["_error","_interopRequireDefault","require","_handlerGraphql","_contentModelManagerFactory","_pubsub","_beforeCreate","_beforeUpdate","_beforeDelete","_CmsModelPlugin","_validation","_utils","_defaultFields","_utils2","_ensureTypeTag","_listModelsFromDatabase","_filterAsync","_contentModelAst","_modelManager","createModelsCrud","params","getTenant","getIdentity","getLocale","storageOperations","accessControl","context","listPluginModelsCache","createMemoryCache","listFilteredModelsCache","listDatabaseModelsCache","clearModelsCache","clear","managers","Map","updateManager","model","manager","contentModelManagerFactory","set","modelId","fieldTypePlugins","plugins","byType","getModelToAstConverter","CmsModelToAstConverter","CmsModelFieldToAstConverterFromPlugins","listPluginModels","tenant","locale","modelPlugins","CmsModelPlugin","type","cacheKey","createCacheKey","models","map","contentModel","pluralApiName","singularApiName","savedOn","join","identity","security","isAuthorizationEnabled","id","undefined","getOrSet","filter","plugin","modelTenant","modelLocale","tags","ensureTypeTag","webinyVersion","WEBINY_VERSION","filterAsync","canAccessModel","getModelFromCache","listModels","find","m","NotFoundError","code","input","benchmark","measure","pluginModels","dbCacheKey","databaseModels","listModelsFromDatabase","filteredCacheKey","get","filteredModels","includePrivate","isPrivate","includePlugins","concat","getModel","withoutAuthorization","ensureCanAccessModel","getEntryManager","target","has","getSingletonEntryManager","SingletonModelManager","create","onModelBeforeCreate","createTopic","onModelAfterCreate","onModelCreateError","onModelBeforeCreateFrom","onModelAfterCreateFrom","onModelCreateFromError","onModelBeforeUpdate","onModelAfterUpdate","onModelUpdateError","onModelBeforeDelete","onModelAfterDelete","onModelDeleteError","onModelInitialize","assignModelBeforeCreate","assignModelBeforeUpdate","assignModelBeforeDelete","createModel","rwd","result","createModelCreateValidation","safeParseAsync","success","createZodError","error","defaultFields","data","removeUndefinedValues","assignModelDefaultFields","group","cms","getGroup","titleFieldId","descriptionFieldId","imageFieldId","description","name","createdBy","displayName","createdOn","Date","toISOString","lockedFields","publish","createdModel","ex","updateModel","original","createModelUpdateValidation","Object","keys","length","groupId","groupData","resultModel","update","updateModelDirect","initialModel","createModelFrom","createModelCreateFromValidation","i18n","groups","icon","deleteModel","delete","WebinyError","message","initializeModel","userInput","getEntryManagers","exports"],"sources":["contentModel.crud.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type {\n CmsContext,\n CmsEntryValues,\n CmsModel,\n CmsModelContext,\n CmsModelFieldToGraphQLPlugin,\n CmsModelGroup,\n CmsModelManager,\n CmsModelUpdateInput,\n HeadlessCmsStorageOperations,\n ICmsModelListParams,\n OnModelAfterCreateFromTopicParams,\n OnModelAfterCreateTopicParams,\n OnModelAfterDeleteTopicParams,\n OnModelAfterUpdateTopicParams,\n OnModelBeforeCreateFromTopicParams,\n OnModelBeforeCreateTopicParams,\n OnModelBeforeDeleteTopicParams,\n OnModelBeforeUpdateTopicParams,\n OnModelCreateErrorTopicParams,\n OnModelCreateFromErrorParams,\n OnModelDeleteErrorTopicParams,\n OnModelInitializeParams,\n OnModelUpdateErrorTopicParams\n} from \"~/types\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport { contentModelManagerFactory } from \"./contentModel/contentModelManagerFactory\";\nimport type { Tenant } from \"@webiny/api-tenancy/types\";\nimport type { I18NLocale } from \"@webiny/api-i18n/types\";\nimport type { SecurityIdentity } from \"@webiny/api-security/types\";\nimport { createTopic } from \"@webiny/pubsub\";\nimport { assignModelBeforeCreate } from \"./contentModel/beforeCreate\";\nimport { assignModelBeforeUpdate } from \"./contentModel/beforeUpdate\";\nimport { assignModelBeforeDelete } from \"./contentModel/beforeDelete\";\nimport { CmsModelPlugin } from \"~/plugins/CmsModelPlugin\";\nimport {\n createModelCreateFromValidation,\n createModelCreateValidation,\n createModelUpdateValidation\n} from \"~/crud/contentModel/validation\";\nimport { createZodError, removeUndefinedValues } from \"@webiny/utils\";\nimport { assignModelDefaultFields } from \"~/crud/contentModel/defaultFields\";\nimport { createCacheKey, createMemoryCache } from \"~/utils\";\nimport { ensureTypeTag } from \"./contentModel/ensureTypeTag\";\nimport { listModelsFromDatabase } from \"~/crud/contentModel/listModelsFromDatabase\";\nimport { filterAsync } from \"~/utils/filterAsync\";\nimport type { AccessControl } from \"./AccessControl/AccessControl\";\nimport {\n CmsModelFieldToAstConverterFromPlugins,\n CmsModelToAstConverter\n} from \"~/utils/contentModelAst\";\nimport { SingletonModelManager } from \"~/modelManager\";\n\nexport interface CreateModelsCrudParams {\n getTenant: () => Tenant;\n getLocale: () => I18NLocale;\n storageOperations: HeadlessCmsStorageOperations;\n accessControl: AccessControl;\n context: CmsContext;\n getIdentity: () => SecurityIdentity;\n}\n\nexport const createModelsCrud = (params: CreateModelsCrudParams): CmsModelContext => {\n const { getTenant, getIdentity, getLocale, storageOperations, accessControl, context } = params;\n\n const listPluginModelsCache = createMemoryCache<Promise<CmsModel[]>>();\n const listFilteredModelsCache = createMemoryCache<Promise<CmsModel[]>>();\n const listDatabaseModelsCache = createMemoryCache<Promise<CmsModel[]>>();\n const clearModelsCache = (): void => {\n listDatabaseModelsCache.clear();\n listFilteredModelsCache.clear();\n };\n\n const managers = new Map<string, CmsModelManager>();\n const updateManager = async <T extends CmsEntryValues = CmsEntryValues>(\n context: CmsContext,\n model: CmsModel\n ): Promise<CmsModelManager<T>> => {\n const manager = await contentModelManagerFactory<T>(context, model);\n managers.set(model.modelId, manager);\n return manager;\n };\n\n const fieldTypePlugins = context.plugins.byType<CmsModelFieldToGraphQLPlugin>(\n \"cms-model-field-to-graphql\"\n );\n\n const getModelToAstConverter = () => {\n return new CmsModelToAstConverter(\n new CmsModelFieldToAstConverterFromPlugins(fieldTypePlugins)\n );\n };\n\n const listPluginModels = async (tenant: string, locale: string): Promise<CmsModel[]> => {\n const modelPlugins = context.plugins.byType<CmsModelPlugin>(CmsModelPlugin.type);\n const cacheKey = createCacheKey({\n tenant,\n locale,\n models: modelPlugins\n .map(({ contentModel: model }) => {\n return `${model.modelId}#${model.pluralApiName}#${model.singularApiName}#${\n model.savedOn || \"savedOn:plugin\"\n }`;\n })\n .join(\"/\"),\n identity: context.security.isAuthorizationEnabled() ? getIdentity()?.id : undefined\n });\n return listPluginModelsCache.getOrSet(cacheKey, async () => {\n const models = modelPlugins\n /**\n * We need to filter out models that are not for this tenant or locale.\n * If it does not have tenant or locale define, it is for every locale and tenant\n */\n .filter(plugin => {\n const { tenant: modelTenant, locale: modelLocale } = plugin.contentModel;\n if (modelTenant && modelTenant !== tenant) {\n return false;\n } else if (modelLocale && modelLocale !== locale) {\n return false;\n }\n return true;\n })\n .map(plugin => {\n return {\n ...plugin.contentModel,\n tags: ensureTypeTag(plugin.contentModel),\n tenant,\n locale,\n webinyVersion: context.WEBINY_VERSION\n };\n }) as unknown as CmsModel[];\n\n return filterAsync(models, async model => {\n return accessControl.canAccessModel({ model });\n });\n });\n };\n\n const getModelFromCache = async (modelId: string) => {\n const models = await listModels();\n const model = models.find(m => m.modelId === modelId);\n if (!model) {\n throw new NotFoundError(`Content model \"${modelId}\" was not found!`);\n }\n\n return {\n ...model,\n tags: ensureTypeTag(model),\n tenant: model.tenant || getTenant().id,\n locale: model.locale || getLocale().code\n };\n };\n\n /**\n * The list models cache is a key -> Promise pair so it the listModels() can be called multiple times but executed only once.\n *\n * We always fetch the plugins and database models separately.\n * Then we combine them and run access filtering on them\n */\n const listModels = async (input?: ICmsModelListParams) => {\n return context.benchmark.measure(\"headlessCms.crud.models.listModels\", async () => {\n /**\n * Maybe we can cache based on permissions, not the identity id?\n *\n * TODO: @adrian please check if possible.\n */\n const tenant = getTenant().id;\n const locale = getLocale().code;\n let pluginModels = await listPluginModels(tenant, locale);\n const dbCacheKey = createCacheKey({\n tenant,\n locale\n });\n const databaseModels = await listDatabaseModelsCache.getOrSet(dbCacheKey, async () => {\n return await listModelsFromDatabase(params);\n });\n\n const filteredCacheKey = createCacheKey({\n dbCacheKey: dbCacheKey.get(),\n identity: context.security.isAuthorizationEnabled() ? getIdentity()?.id : undefined\n });\n\n let filteredModels = await listFilteredModelsCache.getOrSet(\n filteredCacheKey,\n async () => {\n return filterAsync(databaseModels, async model => {\n return accessControl.canAccessModel({ model });\n });\n }\n );\n /**\n * Do we need to hide private models?\n */\n if (input?.includePrivate === false) {\n filteredModels = filteredModels.filter(model => !model.isPrivate);\n pluginModels = pluginModels.filter(model => !model.isPrivate);\n }\n /**\n * Do we need to hide plugin models?\n */\n if (input?.includePlugins === false) {\n return filteredModels;\n }\n\n return filteredModels.concat(pluginModels);\n });\n };\n\n const getModel = async (modelId: string): Promise<CmsModel> => {\n return context.benchmark.measure(\"headlessCms.crud.models.getModel\", async () => {\n const model = await context.security.withoutAuthorization(async () => {\n return await getModelFromCache(modelId);\n });\n if (!model) {\n throw new NotFoundError(`Content model \"${modelId}\" was not found!`);\n }\n\n await accessControl.ensureCanAccessModel({ model });\n\n return model;\n });\n };\n\n const getEntryManager: CmsModelContext[\"getEntryManager\"] = async <\n T extends CmsEntryValues = CmsEntryValues\n >(\n target: string | Pick<CmsModel, \"modelId\">\n ): Promise<CmsModelManager<T>> => {\n const modelId = typeof target === \"string\" ? target : target.modelId;\n if (managers.has(modelId)) {\n return managers.get(modelId) as CmsModelManager<T>;\n }\n const model = await getModelFromCache(modelId);\n return await updateManager<T>(context, model);\n };\n\n const getSingletonEntryManager = async <T extends CmsEntryValues = CmsEntryValues>(\n input: CmsModel | string\n ) => {\n const model = typeof input === \"string\" ? await getModel(input) : input;\n\n const manager = await getEntryManager<T>(model);\n\n return SingletonModelManager.create<T>(manager);\n };\n\n /**\n * Create\n */\n const onModelBeforeCreate =\n createTopic<OnModelBeforeCreateTopicParams>(\"cms.onModelBeforeCreate\");\n const onModelAfterCreate = createTopic<OnModelAfterCreateTopicParams>(\"cms.onModelAfterCreate\");\n const onModelCreateError = createTopic<OnModelCreateErrorTopicParams>(\"cms.onModelCreateError\");\n /**\n * Create from / clone\n */\n const onModelBeforeCreateFrom = createTopic<OnModelBeforeCreateFromTopicParams>(\n \"cms.onModelBeforeCreateFrom\"\n );\n const onModelAfterCreateFrom = createTopic<OnModelAfterCreateFromTopicParams>(\n \"cms.onModelAfterCreateFrom\"\n );\n const onModelCreateFromError = createTopic<OnModelCreateFromErrorParams>(\n \"cms.onModelCreateFromError\"\n );\n /**\n * Update\n */\n const onModelBeforeUpdate =\n createTopic<OnModelBeforeUpdateTopicParams>(\"cms.onModelBeforeUpdate\");\n const onModelAfterUpdate = createTopic<OnModelAfterUpdateTopicParams>(\"cms.onModelAfterUpdate\");\n const onModelUpdateError = createTopic<OnModelUpdateErrorTopicParams>(\"cms.onModelUpdateError\");\n /**\n * Delete\n */\n const onModelBeforeDelete =\n createTopic<OnModelBeforeDeleteTopicParams>(\"cms.onModelBeforeDelete\");\n const onModelAfterDelete = createTopic<OnModelAfterDeleteTopicParams>(\"cms.onModelAfterDelete\");\n const onModelDeleteError = createTopic<OnModelDeleteErrorTopicParams>(\"cms.onModelDeleteError\");\n /**\n * Initialize\n */\n const onModelInitialize = createTopic<OnModelInitializeParams>(\"cms.onModelInitialize\");\n /**\n * We need to assign some default behaviors.\n */\n assignModelBeforeCreate({\n onModelBeforeCreate,\n onModelBeforeCreateFrom,\n context,\n storageOperations\n });\n assignModelBeforeUpdate({\n onModelBeforeUpdate,\n context\n });\n assignModelBeforeDelete({\n onModelBeforeDelete,\n context\n });\n\n /**\n * CRUD methods\n */\n const createModel: CmsModelContext[\"createModel\"] = async input => {\n await accessControl.ensureCanAccessModel({ rwd: \"w\" });\n\n const result = await createModelCreateValidation().safeParseAsync(input);\n if (!result.success) {\n throw createZodError(result.error);\n }\n /**\n * We need to extract the defaultFields because it is not for the CmsModel object.\n */\n const { defaultFields, ...data } = removeUndefinedValues(result.data);\n if (defaultFields) {\n assignModelDefaultFields(data);\n }\n\n const group = await context.cms.getGroup(data.group);\n\n const identity = getIdentity();\n const model: CmsModel = {\n ...data,\n modelId: data.modelId || \"\",\n singularApiName: data.singularApiName,\n pluralApiName: data.pluralApiName,\n titleFieldId: \"id\",\n descriptionFieldId: null,\n imageFieldId: null,\n description: data.description || \"\",\n locale: getLocale().code,\n tenant: getTenant().id,\n group: {\n id: group.id,\n name: group.name\n },\n createdBy: {\n id: identity.id,\n displayName: identity.displayName,\n type: identity.type\n },\n createdOn: new Date().toISOString(),\n savedOn: new Date().toISOString(),\n lockedFields: [],\n webinyVersion: context.WEBINY_VERSION\n };\n\n model.tags = ensureTypeTag(model);\n\n await accessControl.ensureCanAccessModel({ model, rwd: \"w\" });\n\n try {\n await onModelBeforeCreate.publish({\n input: data,\n model\n });\n\n const createdModel = await storageOperations.models.create({\n model\n });\n\n clearModelsCache();\n\n await updateManager(context, model);\n\n await onModelAfterCreate.publish({\n input: data,\n model: createdModel\n });\n\n return createdModel;\n } catch (ex) {\n await onModelCreateError.publish({\n input: data,\n model,\n error: ex\n });\n throw ex;\n }\n };\n const updateModel: CmsModelContext[\"updateModel\"] = async (modelId, input) => {\n await accessControl.ensureCanAccessModel({ rwd: \"w\" });\n\n // Get a model record; this will also perform ownership validation.\n const original = await getModel(modelId);\n\n const result = await createModelUpdateValidation().safeParseAsync(input);\n if (!result.success) {\n throw createZodError(result.error);\n }\n\n const data = removeUndefinedValues(result.data);\n\n if (Object.keys(data).length === 0) {\n /**\n * We need to return the original if nothing is to be updated.\n */\n return original;\n }\n let group: CmsModelGroup = {\n id: original.group.id,\n name: original.group.name\n };\n const groupId = data.group;\n if (groupId) {\n const groupData = await context.cms.getGroup(groupId);\n group = {\n id: groupData.id,\n name: groupData.name\n };\n }\n const model: CmsModel = {\n ...original,\n ...data,\n titleFieldId:\n data.titleFieldId === undefined\n ? original.titleFieldId\n : (data.titleFieldId as string),\n descriptionFieldId:\n data.descriptionFieldId === undefined\n ? original.descriptionFieldId\n : data.descriptionFieldId,\n imageFieldId:\n data.imageFieldId === undefined ? original.imageFieldId : data.imageFieldId,\n group,\n description: data.description || original.description,\n tenant: original.tenant || getTenant().id,\n locale: original.locale || getLocale().code,\n webinyVersion: context.WEBINY_VERSION,\n savedOn: new Date().toISOString()\n };\n\n await accessControl.ensureCanAccessModel({ model, rwd: \"w\" });\n\n model.tags = ensureTypeTag(model);\n\n try {\n await onModelBeforeUpdate.publish({\n input: data,\n original,\n model\n });\n\n const resultModel = await storageOperations.models.update({\n model\n });\n\n await updateManager(context, resultModel);\n\n await onModelAfterUpdate.publish({\n input: data,\n original,\n model: resultModel\n });\n\n return resultModel;\n } catch (ex) {\n await onModelUpdateError.publish({\n input: data,\n model,\n original,\n error: ex\n });\n\n throw ex;\n }\n };\n const updateModelDirect: CmsModelContext[\"updateModelDirect\"] = async params => {\n const { model: initialModel, original } = params;\n\n const model: CmsModel = {\n ...initialModel,\n tenant: initialModel.tenant || getTenant().id,\n locale: initialModel.locale || getLocale().code,\n webinyVersion: context.WEBINY_VERSION\n };\n\n try {\n await onModelBeforeUpdate.publish({\n input: {} as CmsModelUpdateInput,\n original,\n model\n });\n\n const resultModel = await storageOperations.models.update({\n model\n });\n\n await updateManager(context, resultModel);\n\n clearModelsCache();\n\n await onModelAfterUpdate.publish({\n input: {} as CmsModelUpdateInput,\n original,\n model: resultModel\n });\n\n return resultModel;\n } catch (ex) {\n await onModelUpdateError.publish({\n input: {} as CmsModelUpdateInput,\n original,\n model,\n error: ex\n });\n throw ex;\n }\n };\n const createModelFrom: CmsModelContext[\"createModelFrom\"] = async (modelId, input) => {\n await accessControl.ensureCanAccessModel({ rwd: \"w\" });\n\n /**\n * Get a model record; this will also perform ownership validation.\n */\n const original = await getModel(modelId);\n\n const result = await createModelCreateFromValidation().safeParseAsync({\n ...input,\n description: input.description || original.description\n });\n if (!result.success) {\n throw createZodError(result.error);\n }\n\n const data = removeUndefinedValues(result.data);\n\n const locale = await context.i18n.getLocale(data.locale || original.locale);\n if (!locale) {\n throw new NotFoundError(`There is no locale \"${data.locale}\".`);\n }\n /**\n * Use storage operations directly because we cannot get group from different locale via context methods.\n */\n const group = await context.cms.storageOperations.groups.get({\n id: data.group,\n tenant: original.tenant,\n locale: locale.code\n });\n if (!group) {\n throw new NotFoundError(`There is no group \"${data.group}\".`);\n }\n\n const identity = getIdentity();\n const model: CmsModel = {\n ...original,\n singularApiName: data.singularApiName,\n pluralApiName: data.pluralApiName,\n locale: locale.code,\n group: {\n id: group.id,\n name: group.name\n },\n icon: data.icon,\n name: data.name,\n modelId: data.modelId || \"\",\n description: data.description || \"\",\n createdBy: {\n id: identity.id,\n displayName: identity.displayName,\n type: identity.type\n },\n createdOn: new Date().toISOString(),\n savedOn: new Date().toISOString(),\n lockedFields: [],\n webinyVersion: context.WEBINY_VERSION\n };\n\n await accessControl.ensureCanAccessModel({ model, rwd: \"w\" });\n\n try {\n await onModelBeforeCreateFrom.publish({\n input: data,\n model,\n original\n });\n\n const createdModel = await storageOperations.models.create({\n model\n });\n\n clearModelsCache();\n\n await updateManager(context, model);\n\n await onModelAfterCreateFrom.publish({\n input: data,\n original,\n model: createdModel\n });\n\n return createdModel;\n } catch (ex) {\n await onModelCreateFromError.publish({\n input: data,\n original,\n model,\n error: ex\n });\n throw ex;\n }\n };\n const deleteModel: CmsModelContext[\"deleteModel\"] = async modelId => {\n await accessControl.ensureCanAccessModel({ rwd: \"d\" });\n\n const model = await getModel(modelId);\n\n await accessControl.ensureCanAccessModel({ model, rwd: \"d\" });\n\n try {\n await onModelBeforeDelete.publish({\n model\n });\n\n try {\n await storageOperations.models.delete({\n model\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete the content model\",\n ex.code || \"CONTENT_MODEL_DELETE_ERROR\",\n {\n error: ex,\n modelId: model.modelId\n }\n );\n }\n\n clearModelsCache();\n\n await onModelAfterDelete.publish({\n model\n });\n\n managers.delete(model.modelId);\n } catch (ex) {\n await onModelDeleteError.publish({\n model,\n error: ex\n });\n throw ex;\n }\n };\n const initializeModel: CmsModelContext[\"initializeModel\"] = async (modelId, data) => {\n /**\n * We require that users have write permissions to initialize models.\n * Maybe introduce another permission for it?\n */\n const model = await getModel(modelId);\n\n await accessControl.ensureCanAccessModel({ model, rwd: \"w\" });\n\n await onModelInitialize.publish({ model, data });\n\n return true;\n };\n return {\n onModelBeforeCreate,\n onModelAfterCreate,\n onModelCreateError,\n onModelBeforeCreateFrom,\n onModelAfterCreateFrom,\n onModelCreateFromError,\n onModelBeforeUpdate,\n onModelAfterUpdate,\n onModelUpdateError,\n onModelBeforeDelete,\n onModelAfterDelete,\n onModelDeleteError,\n onModelInitialize,\n clearModelsCache,\n getModel,\n getModelToAstConverter,\n listModels,\n async createModel(input) {\n return context.benchmark.measure(\"headlessCms.crud.models.createModel\", async () => {\n return createModel(input);\n });\n },\n /**\n * Method does not check for permissions or ownership.\n * @internal\n */\n async updateModelDirect(params) {\n return context.benchmark.measure(\n \"headlessCms.crud.models.updateModelDirect\",\n async () => {\n return updateModelDirect(params);\n }\n );\n },\n async createModelFrom(modelId, userInput) {\n return context.benchmark.measure(\n \"headlessCms.crud.models.createModelFrom\",\n async () => {\n return createModelFrom(modelId, userInput);\n }\n );\n },\n async updateModel(modelId, input) {\n return context.benchmark.measure(\"headlessCms.crud.models.updateModel\", async () => {\n return updateModel(modelId, input);\n });\n },\n async deleteModel(modelId) {\n return context.benchmark.measure(\"headlessCms.crud.models.deleteModel\", async () => {\n return deleteModel(modelId);\n });\n },\n async initializeModel(modelId, data) {\n return context.benchmark.measure(\n \"headlessCms.crud.models.initializeModel\",\n async () => {\n return initializeModel(modelId, data);\n }\n );\n },\n getEntryManager,\n getEntryManagers: () => managers,\n getSingletonEntryManager\n };\n};\n"],"mappings":"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","ignoreList":[]}
|