@strapi/content-releases 0.0.0-next.f8af92b375dc730ba47ed2117f25df893aae696c → 0.0.0-next.fb92031f3d90f3d2a2d191ba65725b6c8e329a5d
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/LICENSE +17 -1
- package/dist/admin/assets/purchase-page-illustration-dark.svg.js +6 -0
- package/dist/admin/assets/purchase-page-illustration-dark.svg.js.map +1 -0
- package/dist/admin/assets/purchase-page-illustration-dark.svg.mjs +4 -0
- package/dist/admin/assets/purchase-page-illustration-dark.svg.mjs.map +1 -0
- package/dist/admin/assets/purchase-page-illustration-light.svg.js +6 -0
- package/dist/admin/assets/purchase-page-illustration-light.svg.js.map +1 -0
- package/dist/admin/assets/purchase-page-illustration-light.svg.mjs +4 -0
- package/dist/admin/assets/purchase-page-illustration-light.svg.mjs.map +1 -0
- package/dist/admin/components/EntryValidationPopover.js +344 -0
- package/dist/admin/components/EntryValidationPopover.js.map +1 -0
- package/dist/admin/components/EntryValidationPopover.mjs +342 -0
- package/dist/admin/components/EntryValidationPopover.mjs.map +1 -0
- package/dist/admin/components/RelativeTime.js +76 -0
- package/dist/admin/components/RelativeTime.js.map +1 -0
- package/dist/admin/components/RelativeTime.mjs +55 -0
- package/dist/admin/components/RelativeTime.mjs.map +1 -0
- package/dist/admin/components/ReleaseAction.js +201 -0
- package/dist/admin/components/ReleaseAction.js.map +1 -0
- package/dist/admin/components/ReleaseAction.mjs +199 -0
- package/dist/admin/components/ReleaseAction.mjs.map +1 -0
- package/dist/admin/components/ReleaseActionMenu.js +243 -0
- package/dist/admin/components/ReleaseActionMenu.js.map +1 -0
- package/dist/admin/components/ReleaseActionMenu.mjs +222 -0
- package/dist/admin/components/ReleaseActionMenu.mjs.map +1 -0
- package/dist/admin/components/ReleaseActionModal.js +268 -0
- package/dist/admin/components/ReleaseActionModal.js.map +1 -0
- package/dist/admin/components/ReleaseActionModal.mjs +244 -0
- package/dist/admin/components/ReleaseActionModal.mjs.map +1 -0
- package/dist/admin/components/ReleaseActionOptions.js +104 -0
- package/dist/admin/components/ReleaseActionOptions.js.map +1 -0
- package/dist/admin/components/ReleaseActionOptions.mjs +102 -0
- package/dist/admin/components/ReleaseActionOptions.mjs.map +1 -0
- package/dist/admin/components/ReleaseListCell.js +103 -0
- package/dist/admin/components/ReleaseListCell.js.map +1 -0
- package/dist/admin/components/ReleaseListCell.mjs +100 -0
- package/dist/admin/components/ReleaseListCell.mjs.map +1 -0
- package/dist/admin/components/ReleaseModal.js +323 -0
- package/dist/admin/components/ReleaseModal.js.map +1 -0
- package/dist/admin/components/ReleaseModal.mjs +302 -0
- package/dist/admin/components/ReleaseModal.mjs.map +1 -0
- package/dist/admin/components/ReleasesPanel.js +138 -0
- package/dist/admin/components/ReleasesPanel.js.map +1 -0
- package/dist/admin/components/ReleasesPanel.mjs +136 -0
- package/dist/admin/components/ReleasesPanel.mjs.map +1 -0
- package/dist/admin/constants.js +77 -0
- package/dist/admin/constants.js.map +1 -0
- package/dist/admin/constants.mjs +75 -0
- package/dist/admin/constants.mjs.map +1 -0
- package/dist/admin/index.js +125 -18
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +120 -18
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/modules/hooks.js +8 -0
- package/dist/admin/modules/hooks.js.map +1 -0
- package/dist/admin/modules/hooks.mjs +6 -0
- package/dist/admin/modules/hooks.mjs.map +1 -0
- package/dist/admin/pages/App.js +29 -0
- package/dist/admin/pages/App.js.map +1 -0
- package/dist/admin/pages/App.mjs +27 -0
- package/dist/admin/pages/App.mjs.map +1 -0
- package/dist/admin/pages/PurchaseContentReleases.js +192 -0
- package/dist/admin/pages/PurchaseContentReleases.js.map +1 -0
- package/dist/admin/pages/PurchaseContentReleases.mjs +190 -0
- package/dist/admin/pages/PurchaseContentReleases.mjs.map +1 -0
- package/dist/admin/pages/ReleaseDetailsPage.js +821 -0
- package/dist/admin/pages/ReleaseDetailsPage.js.map +1 -0
- package/dist/admin/pages/ReleaseDetailsPage.mjs +800 -0
- package/dist/admin/pages/ReleaseDetailsPage.mjs.map +1 -0
- package/dist/admin/pages/ReleasesPage.js +397 -0
- package/dist/admin/pages/ReleasesPage.js.map +1 -0
- package/dist/admin/pages/ReleasesPage.mjs +375 -0
- package/dist/admin/pages/ReleasesPage.mjs.map +1 -0
- package/dist/admin/pages/ReleasesSettingsPage.js +199 -0
- package/dist/admin/pages/ReleasesSettingsPage.js.map +1 -0
- package/dist/admin/pages/ReleasesSettingsPage.mjs +197 -0
- package/dist/admin/pages/ReleasesSettingsPage.mjs.map +1 -0
- package/dist/admin/pluginId.js +6 -0
- package/dist/admin/pluginId.js.map +1 -0
- package/dist/admin/pluginId.mjs +4 -0
- package/dist/admin/pluginId.mjs.map +1 -0
- package/dist/admin/services/release.js +464 -0
- package/dist/admin/services/release.js.map +1 -0
- package/dist/admin/services/release.mjs +447 -0
- package/dist/admin/services/release.mjs.map +1 -0
- package/dist/admin/src/components/EntryValidationPopover.d.ts +13 -0
- package/dist/admin/src/components/RelativeTime.d.ts +28 -0
- package/dist/admin/src/components/ReleaseAction.d.ts +3 -0
- package/dist/admin/src/components/ReleaseActionMenu.d.ts +26 -0
- package/dist/admin/src/components/ReleaseActionModal.d.ts +24 -0
- package/dist/admin/src/components/ReleaseActionOptions.d.ts +9 -0
- package/dist/admin/src/components/ReleaseListCell.d.ts +28 -0
- package/dist/admin/src/components/ReleaseModal.d.ts +17 -0
- package/dist/admin/src/components/ReleasesPanel.d.ts +3 -0
- package/dist/admin/src/constants.d.ts +76 -0
- package/dist/admin/src/index.d.ts +3 -0
- package/dist/admin/src/modules/hooks.d.ts +7 -0
- package/dist/admin/src/pages/App.d.ts +1 -0
- package/dist/admin/src/pages/PurchaseContentReleases.d.ts +2 -0
- package/dist/admin/src/pages/ReleaseDetailsPage.d.ts +2 -0
- package/dist/admin/src/pages/ReleasesPage.d.ts +8 -0
- package/dist/admin/src/pages/ReleasesSettingsPage.d.ts +1 -0
- package/dist/admin/src/pages/tests/mockReleaseDetailsPageData.d.ts +181 -0
- package/dist/admin/src/pages/tests/mockReleasesPageData.d.ts +39 -0
- package/dist/admin/src/pluginId.d.ts +1 -0
- package/dist/admin/src/services/release.d.ts +112 -0
- package/dist/admin/src/store/hooks.d.ts +7 -0
- package/dist/admin/src/utils/api.d.ts +6 -0
- package/dist/admin/src/utils/prefixPluginTranslations.d.ts +3 -0
- package/dist/admin/src/utils/time.d.ts +10 -0
- package/dist/admin/src/validation/schemas.d.ts +6 -0
- package/dist/admin/store/hooks.js +8 -0
- package/dist/admin/store/hooks.js.map +1 -0
- package/dist/admin/store/hooks.mjs +6 -0
- package/dist/admin/store/hooks.mjs.map +1 -0
- package/dist/admin/translations/en.json.js +108 -0
- package/dist/admin/translations/en.json.js.map +1 -0
- package/dist/admin/translations/en.json.mjs +106 -0
- package/dist/admin/translations/en.json.mjs.map +1 -0
- package/dist/admin/translations/uk.json.js +103 -0
- package/dist/admin/translations/uk.json.js.map +1 -0
- package/dist/admin/translations/uk.json.mjs +101 -0
- package/dist/admin/translations/uk.json.mjs.map +1 -0
- package/dist/admin/utils/api.js +8 -0
- package/dist/admin/utils/api.js.map +1 -0
- package/dist/admin/utils/api.mjs +6 -0
- package/dist/admin/utils/api.mjs.map +1 -0
- package/dist/admin/utils/prefixPluginTranslations.js +11 -0
- package/dist/admin/utils/prefixPluginTranslations.js.map +1 -0
- package/dist/admin/utils/prefixPluginTranslations.mjs +9 -0
- package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -0
- package/dist/admin/utils/time.js +42 -0
- package/dist/admin/utils/time.js.map +1 -0
- package/dist/admin/utils/time.mjs +39 -0
- package/dist/admin/utils/time.mjs.map +1 -0
- package/dist/admin/validation/schemas.js +65 -0
- package/dist/admin/validation/schemas.js.map +1 -0
- package/dist/admin/validation/schemas.mjs +43 -0
- package/dist/admin/validation/schemas.mjs.map +1 -0
- package/dist/server/bootstrap.js +68 -0
- package/dist/server/bootstrap.js.map +1 -0
- package/dist/server/bootstrap.mjs +66 -0
- package/dist/server/bootstrap.mjs.map +1 -0
- package/dist/server/constants.js +74 -0
- package/dist/server/constants.js.map +1 -0
- package/dist/server/constants.mjs +69 -0
- package/dist/server/constants.mjs.map +1 -0
- package/dist/server/content-types/index.js +12 -0
- package/dist/server/content-types/index.js.map +1 -0
- package/dist/server/content-types/index.mjs +10 -0
- package/dist/server/content-types/index.mjs.map +1 -0
- package/dist/server/content-types/release/index.js +10 -0
- package/dist/server/content-types/release/index.js.map +1 -0
- package/dist/server/content-types/release/index.mjs +8 -0
- package/dist/server/content-types/release/index.mjs.map +1 -0
- package/dist/server/content-types/release/schema.js +58 -0
- package/dist/server/content-types/release/schema.js.map +1 -0
- package/dist/server/content-types/release/schema.mjs +56 -0
- package/dist/server/content-types/release/schema.mjs.map +1 -0
- package/dist/server/content-types/release-action/index.js +10 -0
- package/dist/server/content-types/release-action/index.js.map +1 -0
- package/dist/server/content-types/release-action/index.mjs +8 -0
- package/dist/server/content-types/release-action/index.mjs.map +1 -0
- package/dist/server/content-types/release-action/schema.js +55 -0
- package/dist/server/content-types/release-action/schema.js.map +1 -0
- package/dist/server/content-types/release-action/schema.mjs +53 -0
- package/dist/server/content-types/release-action/schema.mjs.map +1 -0
- package/dist/server/controllers/index.js +14 -0
- package/dist/server/controllers/index.js.map +1 -0
- package/dist/server/controllers/index.mjs +12 -0
- package/dist/server/controllers/index.mjs.map +1 -0
- package/dist/server/controllers/release-action.js +150 -0
- package/dist/server/controllers/release-action.js.map +1 -0
- package/dist/server/controllers/release-action.mjs +148 -0
- package/dist/server/controllers/release-action.mjs.map +1 -0
- package/dist/server/controllers/release.js +302 -0
- package/dist/server/controllers/release.js.map +1 -0
- package/dist/server/controllers/release.mjs +300 -0
- package/dist/server/controllers/release.mjs.map +1 -0
- package/dist/server/controllers/settings.js +37 -0
- package/dist/server/controllers/settings.js.map +1 -0
- package/dist/server/controllers/settings.mjs +35 -0
- package/dist/server/controllers/settings.mjs.map +1 -0
- package/dist/server/controllers/validation/release-action.js +34 -0
- package/dist/server/controllers/validation/release-action.js.map +1 -0
- package/dist/server/controllers/validation/release-action.mjs +30 -0
- package/dist/server/controllers/validation/release-action.mjs.map +1 -0
- package/dist/server/controllers/validation/release.js +26 -0
- package/dist/server/controllers/validation/release.js.map +1 -0
- package/dist/server/controllers/validation/release.mjs +22 -0
- package/dist/server/controllers/validation/release.mjs.map +1 -0
- package/dist/server/controllers/validation/settings.js +32 -0
- package/dist/server/controllers/validation/settings.js.map +1 -0
- package/dist/server/controllers/validation/settings.mjs +10 -0
- package/dist/server/controllers/validation/settings.mjs.map +1 -0
- package/dist/server/destroy.js +15 -0
- package/dist/server/destroy.js.map +1 -0
- package/dist/server/destroy.mjs +13 -0
- package/dist/server/destroy.mjs.map +1 -0
- package/dist/server/index.js +25 -1331
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +24 -1311
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/middlewares/documents.js +104 -0
- package/dist/server/middlewares/documents.js.map +1 -0
- package/dist/server/middlewares/documents.mjs +101 -0
- package/dist/server/middlewares/documents.mjs.map +1 -0
- package/dist/server/migrations/database/5.0.0-document-id-in-actions.js +51 -0
- package/dist/server/migrations/database/5.0.0-document-id-in-actions.js.map +1 -0
- package/dist/server/migrations/database/5.0.0-document-id-in-actions.mjs +49 -0
- package/dist/server/migrations/database/5.0.0-document-id-in-actions.mjs.map +1 -0
- package/dist/server/migrations/index.js +205 -0
- package/dist/server/migrations/index.js.map +1 -0
- package/dist/server/migrations/index.mjs +198 -0
- package/dist/server/migrations/index.mjs.map +1 -0
- package/dist/server/register.js +23 -0
- package/dist/server/register.js.map +1 -0
- package/dist/server/register.mjs +21 -0
- package/dist/server/register.mjs.map +1 -0
- package/dist/server/routes/index.js +14 -0
- package/dist/server/routes/index.js.map +1 -0
- package/dist/server/routes/index.mjs +12 -0
- package/dist/server/routes/index.mjs.map +1 -0
- package/dist/server/routes/release-action.js +100 -0
- package/dist/server/routes/release-action.js.map +1 -0
- package/dist/server/routes/release-action.mjs +98 -0
- package/dist/server/routes/release-action.mjs.map +1 -0
- package/dist/server/routes/release.js +154 -0
- package/dist/server/routes/release.js.map +1 -0
- package/dist/server/routes/release.mjs +152 -0
- package/dist/server/routes/release.mjs.map +1 -0
- package/dist/server/routes/settings.js +46 -0
- package/dist/server/routes/settings.js.map +1 -0
- package/dist/server/routes/settings.mjs +44 -0
- package/dist/server/routes/settings.mjs.map +1 -0
- package/dist/server/services/index.js +18 -0
- package/dist/server/services/index.js.map +1 -0
- package/dist/server/services/index.mjs +16 -0
- package/dist/server/services/index.mjs.map +1 -0
- package/dist/server/services/release-action.js +323 -0
- package/dist/server/services/release-action.js.map +1 -0
- package/dist/server/services/release-action.mjs +321 -0
- package/dist/server/services/release-action.mjs.map +1 -0
- package/dist/server/services/release.js +324 -0
- package/dist/server/services/release.js.map +1 -0
- package/dist/server/services/release.mjs +322 -0
- package/dist/server/services/release.mjs.map +1 -0
- package/dist/server/services/scheduling.js +70 -0
- package/dist/server/services/scheduling.js.map +1 -0
- package/dist/server/services/scheduling.mjs +68 -0
- package/dist/server/services/scheduling.mjs.map +1 -0
- package/dist/server/services/settings.js +34 -0
- package/dist/server/services/settings.js.map +1 -0
- package/dist/server/services/settings.mjs +32 -0
- package/dist/server/services/settings.mjs.map +1 -0
- package/dist/server/services/validation.js +91 -0
- package/dist/server/services/validation.js.map +1 -0
- package/dist/server/services/validation.mjs +86 -0
- package/dist/server/services/validation.mjs.map +1 -0
- package/dist/server/src/bootstrap.d.ts +5 -0
- package/dist/server/src/bootstrap.d.ts.map +1 -0
- package/dist/server/src/constants.d.ts +21 -0
- package/dist/server/src/constants.d.ts.map +1 -0
- package/dist/server/src/content-types/index.d.ts +97 -0
- package/dist/server/src/content-types/index.d.ts.map +1 -0
- package/dist/server/src/content-types/release/index.d.ts +48 -0
- package/dist/server/src/content-types/release/index.d.ts.map +1 -0
- package/dist/server/src/content-types/release/schema.d.ts +47 -0
- package/dist/server/src/content-types/release/schema.d.ts.map +1 -0
- package/dist/server/src/content-types/release-action/index.d.ts +48 -0
- package/dist/server/src/content-types/release-action/index.d.ts.map +1 -0
- package/dist/server/src/content-types/release-action/schema.d.ts +47 -0
- package/dist/server/src/content-types/release-action/schema.d.ts.map +1 -0
- package/dist/server/src/controllers/index.d.ts +25 -0
- package/dist/server/src/controllers/index.d.ts.map +1 -0
- package/dist/server/src/controllers/release-action.d.ts +10 -0
- package/dist/server/src/controllers/release-action.d.ts.map +1 -0
- package/dist/server/src/controllers/release.d.ts +18 -0
- package/dist/server/src/controllers/release.d.ts.map +1 -0
- package/dist/server/src/controllers/settings.d.ts +11 -0
- package/dist/server/src/controllers/settings.d.ts.map +1 -0
- package/dist/server/src/controllers/validation/release-action.d.ts +14 -0
- package/dist/server/src/controllers/validation/release-action.d.ts.map +1 -0
- package/dist/server/src/controllers/validation/release.d.ts +4 -0
- package/dist/server/src/controllers/validation/release.d.ts.map +1 -0
- package/dist/server/src/controllers/validation/settings.d.ts +3 -0
- package/dist/server/src/controllers/validation/settings.d.ts.map +1 -0
- package/dist/server/src/destroy.d.ts +5 -0
- package/dist/server/src/destroy.d.ts.map +1 -0
- package/dist/server/src/index.d.ts +2111 -0
- package/dist/server/src/index.d.ts.map +1 -0
- package/dist/server/src/middlewares/documents.d.ts +6 -0
- package/dist/server/src/middlewares/documents.d.ts.map +1 -0
- package/dist/server/src/migrations/database/5.0.0-document-id-in-actions.d.ts +9 -0
- package/dist/server/src/migrations/database/5.0.0-document-id-in-actions.d.ts.map +1 -0
- package/dist/server/src/migrations/index.d.ts +13 -0
- package/dist/server/src/migrations/index.d.ts.map +1 -0
- package/dist/server/src/register.d.ts +5 -0
- package/dist/server/src/register.d.ts.map +1 -0
- package/dist/server/src/routes/index.d.ts +51 -0
- package/dist/server/src/routes/index.d.ts.map +1 -0
- package/dist/server/src/routes/release-action.d.ts +18 -0
- package/dist/server/src/routes/release-action.d.ts.map +1 -0
- package/dist/server/src/routes/release.d.ts +18 -0
- package/dist/server/src/routes/release.d.ts.map +1 -0
- package/dist/server/src/routes/settings.d.ts +18 -0
- package/dist/server/src/routes/settings.d.ts.map +1 -0
- package/dist/server/src/services/index.d.ts +1824 -0
- package/dist/server/src/services/index.d.ts.map +1 -0
- package/dist/server/src/services/release-action.d.ts +34 -0
- package/dist/server/src/services/release-action.d.ts.map +1 -0
- package/dist/server/src/services/release.d.ts +31 -0
- package/dist/server/src/services/release.d.ts.map +1 -0
- package/dist/server/src/services/scheduling.d.ts +18 -0
- package/dist/server/src/services/scheduling.d.ts.map +1 -0
- package/dist/server/src/services/settings.d.ts +13 -0
- package/dist/server/src/services/settings.d.ts.map +1 -0
- package/dist/server/src/services/validation.d.ts +18 -0
- package/dist/server/src/services/validation.d.ts.map +1 -0
- package/dist/server/src/utils/index.d.ts +35 -0
- package/dist/server/src/utils/index.d.ts.map +1 -0
- package/dist/server/utils/index.js +93 -0
- package/dist/server/utils/index.js.map +1 -0
- package/dist/server/utils/index.mjs +87 -0
- package/dist/server/utils/index.mjs.map +1 -0
- package/dist/shared/contracts/release-actions.d.ts +136 -0
- package/dist/shared/contracts/release-actions.d.ts.map +1 -0
- package/dist/shared/contracts/releases.d.ts +183 -0
- package/dist/shared/contracts/releases.d.ts.map +1 -0
- package/dist/shared/contracts/settings.d.ts +38 -0
- package/dist/shared/contracts/settings.d.ts.map +1 -0
- package/dist/shared/types.d.ts +23 -0
- package/dist/shared/types.d.ts.map +1 -0
- package/package.json +40 -42
- package/dist/_chunks/App-OK4Xac-O.js +0 -1315
- package/dist/_chunks/App-OK4Xac-O.js.map +0 -1
- package/dist/_chunks/App-xAkiD42p.mjs +0 -1292
- package/dist/_chunks/App-xAkiD42p.mjs.map +0 -1
- package/dist/_chunks/PurchaseContentReleases-Clm0iACO.mjs +0 -51
- package/dist/_chunks/PurchaseContentReleases-Clm0iACO.mjs.map +0 -1
- package/dist/_chunks/PurchaseContentReleases-YhAPgpG9.js +0 -51
- package/dist/_chunks/PurchaseContentReleases-YhAPgpG9.js.map +0 -1
- package/dist/_chunks/en-r0otWaln.js +0 -77
- package/dist/_chunks/en-r0otWaln.js.map +0 -1
- package/dist/_chunks/en-veqvqeEr.mjs +0 -77
- package/dist/_chunks/en-veqvqeEr.mjs.map +0 -1
- package/dist/_chunks/index-JvA2_26n.js +0 -1015
- package/dist/_chunks/index-JvA2_26n.js.map +0 -1
- package/dist/_chunks/index-exoiSU3V.mjs +0 -994
- package/dist/_chunks/index-exoiSU3V.mjs.map +0 -1
- package/strapi-server.js +0 -3
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var utils = require('@strapi/utils');
|
|
6
|
+
var constants = require('../constants.js');
|
|
7
|
+
|
|
8
|
+
class AlreadyOnReleaseError extends utils.errors.ApplicationError {
|
|
9
|
+
constructor(message){
|
|
10
|
+
super(message);
|
|
11
|
+
this.name = 'AlreadyOnReleaseError';
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
const createReleaseValidationService = ({ strapi })=>({
|
|
15
|
+
async validateUniqueEntry (releaseId, releaseActionArgs) {
|
|
16
|
+
/**
|
|
17
|
+
* Asserting the type, otherwise TS complains: 'release.actions' is of type 'unknown', even though the types come through for non-populated fields...
|
|
18
|
+
* Possibly related to the comment on GetValues: https://github.com/strapi/strapi/blob/main/packages/core/types/src/modules/entity-service/result.ts
|
|
19
|
+
*/ const release = await strapi.db.query(constants.RELEASE_MODEL_UID).findOne({
|
|
20
|
+
where: {
|
|
21
|
+
id: releaseId
|
|
22
|
+
},
|
|
23
|
+
populate: {
|
|
24
|
+
actions: true
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
if (!release) {
|
|
28
|
+
throw new utils.errors.NotFoundError(`No release found for id ${releaseId}`);
|
|
29
|
+
}
|
|
30
|
+
const isEntryInRelease = release.actions.some((action)=>action.entryDocumentId === releaseActionArgs.entryDocumentId && action.contentType === releaseActionArgs.contentType && (releaseActionArgs.locale ? action.locale === releaseActionArgs.locale : true));
|
|
31
|
+
if (isEntryInRelease) {
|
|
32
|
+
throw new AlreadyOnReleaseError(`Entry with documentId ${releaseActionArgs.entryDocumentId}${releaseActionArgs.locale ? `( ${releaseActionArgs.locale})` : ''} and contentType ${releaseActionArgs.contentType} already exists in release with id ${releaseId}`);
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
validateEntryData (contentTypeUid, entryDocumentId) {
|
|
36
|
+
const contentType = strapi.contentType(contentTypeUid);
|
|
37
|
+
if (!contentType) {
|
|
38
|
+
throw new utils.errors.NotFoundError(`No content type found for uid ${contentTypeUid}`);
|
|
39
|
+
}
|
|
40
|
+
if (!utils.contentTypes.hasDraftAndPublish(contentType)) {
|
|
41
|
+
throw new utils.errors.ValidationError(`Content type with uid ${contentTypeUid} does not have draftAndPublish enabled`);
|
|
42
|
+
}
|
|
43
|
+
if (contentType.kind === 'collectionType' && !entryDocumentId) {
|
|
44
|
+
throw new utils.errors.ValidationError('Document id is required for collection type');
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
async validatePendingReleasesLimit () {
|
|
48
|
+
// Use the maximum releases option if it exists, otherwise default to 3
|
|
49
|
+
const featureCfg = strapi.ee.features.get('cms-content-releases');
|
|
50
|
+
const maximumPendingReleases = typeof featureCfg === 'object' && featureCfg?.options?.maximumReleases || 3;
|
|
51
|
+
const [, pendingReleasesCount] = await strapi.db.query(constants.RELEASE_MODEL_UID).findWithCount({
|
|
52
|
+
filters: {
|
|
53
|
+
releasedAt: {
|
|
54
|
+
$null: true
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
// Unlimited is a number that will never be reached like 9999
|
|
59
|
+
if (pendingReleasesCount >= maximumPendingReleases) {
|
|
60
|
+
throw new utils.errors.ValidationError('You have reached the maximum number of pending releases');
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
async validateUniqueNameForPendingRelease (name, id) {
|
|
64
|
+
const pendingReleases = await strapi.db.query(constants.RELEASE_MODEL_UID).findMany({
|
|
65
|
+
where: {
|
|
66
|
+
releasedAt: {
|
|
67
|
+
$null: true
|
|
68
|
+
},
|
|
69
|
+
name,
|
|
70
|
+
...id && {
|
|
71
|
+
id: {
|
|
72
|
+
$ne: id
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
const isNameUnique = pendingReleases.length === 0;
|
|
78
|
+
if (!isNameUnique) {
|
|
79
|
+
throw new utils.errors.ValidationError(`Release with name ${name} already exists`);
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
async validateScheduledAtIsLaterThanNow (scheduledAt) {
|
|
83
|
+
if (scheduledAt && new Date(scheduledAt) <= new Date()) {
|
|
84
|
+
throw new utils.errors.ValidationError('Scheduled at must be later than now');
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
exports.AlreadyOnReleaseError = AlreadyOnReleaseError;
|
|
90
|
+
exports.default = createReleaseValidationService;
|
|
91
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sources":["../../../server/src/services/validation.ts"],"sourcesContent":["import { errors, contentTypes } from '@strapi/utils';\nimport type { Core, UID } from '@strapi/types';\nimport type { Release, CreateRelease, UpdateRelease } from '../../../shared/contracts/releases';\nimport type { CreateReleaseAction } from '../../../shared/contracts/release-actions';\nimport { RELEASE_MODEL_UID } from '../constants';\n\nexport class AlreadyOnReleaseError extends errors.ApplicationError<'AlreadyOnReleaseError'> {\n constructor(message: string) {\n super(message);\n this.name = 'AlreadyOnReleaseError';\n }\n}\n\nconst createReleaseValidationService = ({ strapi }: { strapi: Core.Strapi }) => ({\n async validateUniqueEntry(\n releaseId: CreateReleaseAction.Request['params']['releaseId'],\n releaseActionArgs: CreateReleaseAction.Request['body']\n ) {\n /**\n * Asserting the type, otherwise TS complains: 'release.actions' is of type 'unknown', even though the types come through for non-populated fields...\n * Possibly related to the comment on GetValues: https://github.com/strapi/strapi/blob/main/packages/core/types/src/modules/entity-service/result.ts\n */\n const release = (await strapi.db.query(RELEASE_MODEL_UID).findOne({\n where: {\n id: releaseId,\n },\n populate: {\n actions: true,\n },\n })) as Release | null;\n\n if (!release) {\n throw new errors.NotFoundError(`No release found for id ${releaseId}`);\n }\n\n const isEntryInRelease = release.actions.some(\n (action) =>\n action.entryDocumentId === releaseActionArgs.entryDocumentId &&\n action.contentType === releaseActionArgs.contentType &&\n (releaseActionArgs.locale ? action.locale === releaseActionArgs.locale : true)\n );\n\n if (isEntryInRelease) {\n throw new AlreadyOnReleaseError(\n `Entry with documentId ${releaseActionArgs.entryDocumentId}${releaseActionArgs.locale ? `( ${releaseActionArgs.locale})` : ''} and contentType ${releaseActionArgs.contentType} already exists in release with id ${releaseId}`\n );\n }\n },\n validateEntryData(\n contentTypeUid: CreateReleaseAction.Request['body']['contentType'],\n entryDocumentId: CreateReleaseAction.Request['body']['entryDocumentId']\n ) {\n const contentType = strapi.contentType(contentTypeUid as UID.ContentType);\n\n if (!contentType) {\n throw new errors.NotFoundError(`No content type found for uid ${contentTypeUid}`);\n }\n\n if (!contentTypes.hasDraftAndPublish(contentType)) {\n throw new errors.ValidationError(\n `Content type with uid ${contentTypeUid} does not have draftAndPublish enabled`\n );\n }\n\n if (contentType.kind === 'collectionType' && !entryDocumentId) {\n throw new errors.ValidationError('Document id is required for collection type');\n }\n },\n async validatePendingReleasesLimit() {\n // Use the maximum releases option if it exists, otherwise default to 3\n const featureCfg = strapi.ee.features.get('cms-content-releases');\n\n const maximumPendingReleases =\n (typeof featureCfg === 'object' && featureCfg?.options?.maximumReleases) || 3;\n\n const [, pendingReleasesCount] = await strapi.db.query(RELEASE_MODEL_UID).findWithCount({\n filters: {\n releasedAt: {\n $null: true,\n },\n },\n });\n\n // Unlimited is a number that will never be reached like 9999\n if (pendingReleasesCount >= maximumPendingReleases) {\n throw new errors.ValidationError('You have reached the maximum number of pending releases');\n }\n },\n async validateUniqueNameForPendingRelease(\n name: CreateRelease.Request['body']['name'],\n id?: UpdateRelease.Request['params']['id']\n ) {\n const pendingReleases = (await strapi.db.query(RELEASE_MODEL_UID).findMany({\n where: {\n releasedAt: {\n $null: true,\n },\n name,\n ...(id && { id: { $ne: id } }),\n },\n })) as Release[];\n\n const isNameUnique = pendingReleases.length === 0;\n\n if (!isNameUnique) {\n throw new errors.ValidationError(`Release with name ${name} already exists`);\n }\n },\n async validateScheduledAtIsLaterThanNow(\n scheduledAt: CreateRelease.Request['body']['scheduledAt']\n ) {\n if (scheduledAt && new Date(scheduledAt) <= new Date()) {\n throw new errors.ValidationError('Scheduled at must be later than now');\n }\n },\n});\n\nexport default createReleaseValidationService;\n"],"names":["AlreadyOnReleaseError","errors","ApplicationError","constructor","message","name","createReleaseValidationService","strapi","validateUniqueEntry","releaseId","releaseActionArgs","release","db","query","RELEASE_MODEL_UID","findOne","where","id","populate","actions","NotFoundError","isEntryInRelease","some","action","entryDocumentId","contentType","locale","validateEntryData","contentTypeUid","contentTypes","hasDraftAndPublish","ValidationError","kind","validatePendingReleasesLimit","featureCfg","ee","features","get","maximumPendingReleases","options","maximumReleases","pendingReleasesCount","findWithCount","filters","releasedAt","$null","validateUniqueNameForPendingRelease","pendingReleases","findMany","$ne","isNameUnique","length","validateScheduledAtIsLaterThanNow","scheduledAt","Date"],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { errors, contentTypes } from '@strapi/utils';
|
|
2
|
+
import { RELEASE_MODEL_UID } from '../constants.mjs';
|
|
3
|
+
|
|
4
|
+
class AlreadyOnReleaseError extends errors.ApplicationError {
|
|
5
|
+
constructor(message){
|
|
6
|
+
super(message);
|
|
7
|
+
this.name = 'AlreadyOnReleaseError';
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
const createReleaseValidationService = ({ strapi })=>({
|
|
11
|
+
async validateUniqueEntry (releaseId, releaseActionArgs) {
|
|
12
|
+
/**
|
|
13
|
+
* Asserting the type, otherwise TS complains: 'release.actions' is of type 'unknown', even though the types come through for non-populated fields...
|
|
14
|
+
* Possibly related to the comment on GetValues: https://github.com/strapi/strapi/blob/main/packages/core/types/src/modules/entity-service/result.ts
|
|
15
|
+
*/ const release = await strapi.db.query(RELEASE_MODEL_UID).findOne({
|
|
16
|
+
where: {
|
|
17
|
+
id: releaseId
|
|
18
|
+
},
|
|
19
|
+
populate: {
|
|
20
|
+
actions: true
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
if (!release) {
|
|
24
|
+
throw new errors.NotFoundError(`No release found for id ${releaseId}`);
|
|
25
|
+
}
|
|
26
|
+
const isEntryInRelease = release.actions.some((action)=>action.entryDocumentId === releaseActionArgs.entryDocumentId && action.contentType === releaseActionArgs.contentType && (releaseActionArgs.locale ? action.locale === releaseActionArgs.locale : true));
|
|
27
|
+
if (isEntryInRelease) {
|
|
28
|
+
throw new AlreadyOnReleaseError(`Entry with documentId ${releaseActionArgs.entryDocumentId}${releaseActionArgs.locale ? `( ${releaseActionArgs.locale})` : ''} and contentType ${releaseActionArgs.contentType} already exists in release with id ${releaseId}`);
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
validateEntryData (contentTypeUid, entryDocumentId) {
|
|
32
|
+
const contentType = strapi.contentType(contentTypeUid);
|
|
33
|
+
if (!contentType) {
|
|
34
|
+
throw new errors.NotFoundError(`No content type found for uid ${contentTypeUid}`);
|
|
35
|
+
}
|
|
36
|
+
if (!contentTypes.hasDraftAndPublish(contentType)) {
|
|
37
|
+
throw new errors.ValidationError(`Content type with uid ${contentTypeUid} does not have draftAndPublish enabled`);
|
|
38
|
+
}
|
|
39
|
+
if (contentType.kind === 'collectionType' && !entryDocumentId) {
|
|
40
|
+
throw new errors.ValidationError('Document id is required for collection type');
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
async validatePendingReleasesLimit () {
|
|
44
|
+
// Use the maximum releases option if it exists, otherwise default to 3
|
|
45
|
+
const featureCfg = strapi.ee.features.get('cms-content-releases');
|
|
46
|
+
const maximumPendingReleases = typeof featureCfg === 'object' && featureCfg?.options?.maximumReleases || 3;
|
|
47
|
+
const [, pendingReleasesCount] = await strapi.db.query(RELEASE_MODEL_UID).findWithCount({
|
|
48
|
+
filters: {
|
|
49
|
+
releasedAt: {
|
|
50
|
+
$null: true
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
// Unlimited is a number that will never be reached like 9999
|
|
55
|
+
if (pendingReleasesCount >= maximumPendingReleases) {
|
|
56
|
+
throw new errors.ValidationError('You have reached the maximum number of pending releases');
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
async validateUniqueNameForPendingRelease (name, id) {
|
|
60
|
+
const pendingReleases = await strapi.db.query(RELEASE_MODEL_UID).findMany({
|
|
61
|
+
where: {
|
|
62
|
+
releasedAt: {
|
|
63
|
+
$null: true
|
|
64
|
+
},
|
|
65
|
+
name,
|
|
66
|
+
...id && {
|
|
67
|
+
id: {
|
|
68
|
+
$ne: id
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
const isNameUnique = pendingReleases.length === 0;
|
|
74
|
+
if (!isNameUnique) {
|
|
75
|
+
throw new errors.ValidationError(`Release with name ${name} already exists`);
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
async validateScheduledAtIsLaterThanNow (scheduledAt) {
|
|
79
|
+
if (scheduledAt && new Date(scheduledAt) <= new Date()) {
|
|
80
|
+
throw new errors.ValidationError('Scheduled at must be later than now');
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
export { AlreadyOnReleaseError, createReleaseValidationService as default };
|
|
86
|
+
//# sourceMappingURL=validation.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.mjs","sources":["../../../server/src/services/validation.ts"],"sourcesContent":["import { errors, contentTypes } from '@strapi/utils';\nimport type { Core, UID } from '@strapi/types';\nimport type { Release, CreateRelease, UpdateRelease } from '../../../shared/contracts/releases';\nimport type { CreateReleaseAction } from '../../../shared/contracts/release-actions';\nimport { RELEASE_MODEL_UID } from '../constants';\n\nexport class AlreadyOnReleaseError extends errors.ApplicationError<'AlreadyOnReleaseError'> {\n constructor(message: string) {\n super(message);\n this.name = 'AlreadyOnReleaseError';\n }\n}\n\nconst createReleaseValidationService = ({ strapi }: { strapi: Core.Strapi }) => ({\n async validateUniqueEntry(\n releaseId: CreateReleaseAction.Request['params']['releaseId'],\n releaseActionArgs: CreateReleaseAction.Request['body']\n ) {\n /**\n * Asserting the type, otherwise TS complains: 'release.actions' is of type 'unknown', even though the types come through for non-populated fields...\n * Possibly related to the comment on GetValues: https://github.com/strapi/strapi/blob/main/packages/core/types/src/modules/entity-service/result.ts\n */\n const release = (await strapi.db.query(RELEASE_MODEL_UID).findOne({\n where: {\n id: releaseId,\n },\n populate: {\n actions: true,\n },\n })) as Release | null;\n\n if (!release) {\n throw new errors.NotFoundError(`No release found for id ${releaseId}`);\n }\n\n const isEntryInRelease = release.actions.some(\n (action) =>\n action.entryDocumentId === releaseActionArgs.entryDocumentId &&\n action.contentType === releaseActionArgs.contentType &&\n (releaseActionArgs.locale ? action.locale === releaseActionArgs.locale : true)\n );\n\n if (isEntryInRelease) {\n throw new AlreadyOnReleaseError(\n `Entry with documentId ${releaseActionArgs.entryDocumentId}${releaseActionArgs.locale ? `( ${releaseActionArgs.locale})` : ''} and contentType ${releaseActionArgs.contentType} already exists in release with id ${releaseId}`\n );\n }\n },\n validateEntryData(\n contentTypeUid: CreateReleaseAction.Request['body']['contentType'],\n entryDocumentId: CreateReleaseAction.Request['body']['entryDocumentId']\n ) {\n const contentType = strapi.contentType(contentTypeUid as UID.ContentType);\n\n if (!contentType) {\n throw new errors.NotFoundError(`No content type found for uid ${contentTypeUid}`);\n }\n\n if (!contentTypes.hasDraftAndPublish(contentType)) {\n throw new errors.ValidationError(\n `Content type with uid ${contentTypeUid} does not have draftAndPublish enabled`\n );\n }\n\n if (contentType.kind === 'collectionType' && !entryDocumentId) {\n throw new errors.ValidationError('Document id is required for collection type');\n }\n },\n async validatePendingReleasesLimit() {\n // Use the maximum releases option if it exists, otherwise default to 3\n const featureCfg = strapi.ee.features.get('cms-content-releases');\n\n const maximumPendingReleases =\n (typeof featureCfg === 'object' && featureCfg?.options?.maximumReleases) || 3;\n\n const [, pendingReleasesCount] = await strapi.db.query(RELEASE_MODEL_UID).findWithCount({\n filters: {\n releasedAt: {\n $null: true,\n },\n },\n });\n\n // Unlimited is a number that will never be reached like 9999\n if (pendingReleasesCount >= maximumPendingReleases) {\n throw new errors.ValidationError('You have reached the maximum number of pending releases');\n }\n },\n async validateUniqueNameForPendingRelease(\n name: CreateRelease.Request['body']['name'],\n id?: UpdateRelease.Request['params']['id']\n ) {\n const pendingReleases = (await strapi.db.query(RELEASE_MODEL_UID).findMany({\n where: {\n releasedAt: {\n $null: true,\n },\n name,\n ...(id && { id: { $ne: id } }),\n },\n })) as Release[];\n\n const isNameUnique = pendingReleases.length === 0;\n\n if (!isNameUnique) {\n throw new errors.ValidationError(`Release with name ${name} already exists`);\n }\n },\n async validateScheduledAtIsLaterThanNow(\n scheduledAt: CreateRelease.Request['body']['scheduledAt']\n ) {\n if (scheduledAt && new Date(scheduledAt) <= new Date()) {\n throw new errors.ValidationError('Scheduled at must be later than now');\n }\n },\n});\n\nexport default createReleaseValidationService;\n"],"names":["AlreadyOnReleaseError","errors","ApplicationError","constructor","message","name","createReleaseValidationService","strapi","validateUniqueEntry","releaseId","releaseActionArgs","release","db","query","RELEASE_MODEL_UID","findOne","where","id","populate","actions","NotFoundError","isEntryInRelease","some","action","entryDocumentId","contentType","locale","validateEntryData","contentTypeUid","contentTypes","hasDraftAndPublish","ValidationError","kind","validatePendingReleasesLimit","featureCfg","ee","features","get","maximumPendingReleases","options","maximumReleases","pendingReleasesCount","findWithCount","filters","releasedAt","$null","validateUniqueNameForPendingRelease","pendingReleases","findMany","$ne","isNameUnique","length","validateScheduledAtIsLaterThanNow","scheduledAt","Date"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../server/src/bootstrap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAgB,MAAM,eAAe,CAAC;AA6BxD,eAAO,MAAM,SAAS,eAAsB;IAAE,MAAM,EAAE,KAAK,MAAM,CAAA;CAAE,kBAoDlE,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export declare const RELEASE_MODEL_UID = "plugin::content-releases.release";
|
|
2
|
+
export declare const RELEASE_ACTION_MODEL_UID = "plugin::content-releases.release-action";
|
|
3
|
+
export declare const ACTIONS: ({
|
|
4
|
+
section: string;
|
|
5
|
+
displayName: string;
|
|
6
|
+
uid: string;
|
|
7
|
+
pluginName: string;
|
|
8
|
+
category?: undefined;
|
|
9
|
+
subCategory?: undefined;
|
|
10
|
+
} | {
|
|
11
|
+
uid: string;
|
|
12
|
+
section: string;
|
|
13
|
+
displayName: string;
|
|
14
|
+
category: string;
|
|
15
|
+
subCategory: string;
|
|
16
|
+
pluginName: string;
|
|
17
|
+
})[];
|
|
18
|
+
export declare const ALLOWED_WEBHOOK_EVENTS: {
|
|
19
|
+
RELEASES_PUBLISH: string;
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../server/src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,qCAAqC,CAAC;AACpE,eAAO,MAAM,wBAAwB,4CAA4C,CAAC;AAElF,eAAO,MAAM,OAAO;;;;;;;;;;;;;;IA8DnB,CAAC;AAEF,eAAO,MAAM,sBAAsB;;CAElC,CAAC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
export declare const contentTypes: {
|
|
2
|
+
release: {
|
|
3
|
+
schema: {
|
|
4
|
+
collectionName: string;
|
|
5
|
+
info: {
|
|
6
|
+
singularName: string;
|
|
7
|
+
pluralName: string;
|
|
8
|
+
displayName: string;
|
|
9
|
+
};
|
|
10
|
+
options: {
|
|
11
|
+
draftAndPublish: boolean;
|
|
12
|
+
};
|
|
13
|
+
pluginOptions: {
|
|
14
|
+
'content-manager': {
|
|
15
|
+
visible: boolean;
|
|
16
|
+
};
|
|
17
|
+
'content-type-builder': {
|
|
18
|
+
visible: boolean;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
attributes: {
|
|
22
|
+
name: {
|
|
23
|
+
type: string;
|
|
24
|
+
required: boolean;
|
|
25
|
+
};
|
|
26
|
+
releasedAt: {
|
|
27
|
+
type: string;
|
|
28
|
+
};
|
|
29
|
+
scheduledAt: {
|
|
30
|
+
type: string;
|
|
31
|
+
};
|
|
32
|
+
timezone: {
|
|
33
|
+
type: string;
|
|
34
|
+
};
|
|
35
|
+
status: {
|
|
36
|
+
type: string;
|
|
37
|
+
enum: string[];
|
|
38
|
+
required: boolean;
|
|
39
|
+
};
|
|
40
|
+
actions: {
|
|
41
|
+
type: string;
|
|
42
|
+
relation: string;
|
|
43
|
+
target: string;
|
|
44
|
+
mappedBy: string;
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
'release-action': {
|
|
50
|
+
schema: {
|
|
51
|
+
collectionName: string;
|
|
52
|
+
info: {
|
|
53
|
+
singularName: string;
|
|
54
|
+
pluralName: string;
|
|
55
|
+
displayName: string;
|
|
56
|
+
};
|
|
57
|
+
options: {
|
|
58
|
+
draftAndPublish: boolean;
|
|
59
|
+
};
|
|
60
|
+
pluginOptions: {
|
|
61
|
+
'content-manager': {
|
|
62
|
+
visible: boolean;
|
|
63
|
+
};
|
|
64
|
+
'content-type-builder': {
|
|
65
|
+
visible: boolean;
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
attributes: {
|
|
69
|
+
type: {
|
|
70
|
+
type: string;
|
|
71
|
+
enum: string[];
|
|
72
|
+
required: boolean;
|
|
73
|
+
};
|
|
74
|
+
contentType: {
|
|
75
|
+
type: string;
|
|
76
|
+
required: boolean;
|
|
77
|
+
};
|
|
78
|
+
entryDocumentId: {
|
|
79
|
+
type: string;
|
|
80
|
+
};
|
|
81
|
+
locale: {
|
|
82
|
+
type: string;
|
|
83
|
+
};
|
|
84
|
+
release: {
|
|
85
|
+
type: string;
|
|
86
|
+
relation: string;
|
|
87
|
+
target: string;
|
|
88
|
+
inversedBy: string;
|
|
89
|
+
};
|
|
90
|
+
isEntryValid: {
|
|
91
|
+
type: string;
|
|
92
|
+
};
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
};
|
|
97
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/content-types/index.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGxB,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export declare const release: {
|
|
2
|
+
schema: {
|
|
3
|
+
collectionName: string;
|
|
4
|
+
info: {
|
|
5
|
+
singularName: string;
|
|
6
|
+
pluralName: string;
|
|
7
|
+
displayName: string;
|
|
8
|
+
};
|
|
9
|
+
options: {
|
|
10
|
+
draftAndPublish: boolean;
|
|
11
|
+
};
|
|
12
|
+
pluginOptions: {
|
|
13
|
+
'content-manager': {
|
|
14
|
+
visible: boolean;
|
|
15
|
+
};
|
|
16
|
+
'content-type-builder': {
|
|
17
|
+
visible: boolean;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
attributes: {
|
|
21
|
+
name: {
|
|
22
|
+
type: string;
|
|
23
|
+
required: boolean;
|
|
24
|
+
};
|
|
25
|
+
releasedAt: {
|
|
26
|
+
type: string;
|
|
27
|
+
};
|
|
28
|
+
scheduledAt: {
|
|
29
|
+
type: string;
|
|
30
|
+
};
|
|
31
|
+
timezone: {
|
|
32
|
+
type: string;
|
|
33
|
+
};
|
|
34
|
+
status: {
|
|
35
|
+
type: string;
|
|
36
|
+
enum: string[];
|
|
37
|
+
required: boolean;
|
|
38
|
+
};
|
|
39
|
+
actions: {
|
|
40
|
+
type: string;
|
|
41
|
+
relation: string;
|
|
42
|
+
target: string;
|
|
43
|
+
mappedBy: string;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../server/src/content-types/release/index.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAEnB,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
collectionName: string;
|
|
3
|
+
info: {
|
|
4
|
+
singularName: string;
|
|
5
|
+
pluralName: string;
|
|
6
|
+
displayName: string;
|
|
7
|
+
};
|
|
8
|
+
options: {
|
|
9
|
+
draftAndPublish: boolean;
|
|
10
|
+
};
|
|
11
|
+
pluginOptions: {
|
|
12
|
+
'content-manager': {
|
|
13
|
+
visible: boolean;
|
|
14
|
+
};
|
|
15
|
+
'content-type-builder': {
|
|
16
|
+
visible: boolean;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
attributes: {
|
|
20
|
+
name: {
|
|
21
|
+
type: string;
|
|
22
|
+
required: boolean;
|
|
23
|
+
};
|
|
24
|
+
releasedAt: {
|
|
25
|
+
type: string;
|
|
26
|
+
};
|
|
27
|
+
scheduledAt: {
|
|
28
|
+
type: string;
|
|
29
|
+
};
|
|
30
|
+
timezone: {
|
|
31
|
+
type: string;
|
|
32
|
+
};
|
|
33
|
+
status: {
|
|
34
|
+
type: string;
|
|
35
|
+
enum: string[];
|
|
36
|
+
required: boolean;
|
|
37
|
+
};
|
|
38
|
+
actions: {
|
|
39
|
+
type: string;
|
|
40
|
+
relation: string;
|
|
41
|
+
target: string;
|
|
42
|
+
mappedBy: string;
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
export default _default;
|
|
47
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../server/src/content-types/release/schema.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,wBA4CE"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export declare const releaseAction: {
|
|
2
|
+
schema: {
|
|
3
|
+
collectionName: string;
|
|
4
|
+
info: {
|
|
5
|
+
singularName: string;
|
|
6
|
+
pluralName: string;
|
|
7
|
+
displayName: string;
|
|
8
|
+
};
|
|
9
|
+
options: {
|
|
10
|
+
draftAndPublish: boolean;
|
|
11
|
+
};
|
|
12
|
+
pluginOptions: {
|
|
13
|
+
'content-manager': {
|
|
14
|
+
visible: boolean;
|
|
15
|
+
};
|
|
16
|
+
'content-type-builder': {
|
|
17
|
+
visible: boolean;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
attributes: {
|
|
21
|
+
type: {
|
|
22
|
+
type: string;
|
|
23
|
+
enum: string[];
|
|
24
|
+
required: boolean;
|
|
25
|
+
};
|
|
26
|
+
contentType: {
|
|
27
|
+
type: string;
|
|
28
|
+
required: boolean;
|
|
29
|
+
};
|
|
30
|
+
entryDocumentId: {
|
|
31
|
+
type: string;
|
|
32
|
+
};
|
|
33
|
+
locale: {
|
|
34
|
+
type: string;
|
|
35
|
+
};
|
|
36
|
+
release: {
|
|
37
|
+
type: string;
|
|
38
|
+
relation: string;
|
|
39
|
+
target: string;
|
|
40
|
+
inversedBy: string;
|
|
41
|
+
};
|
|
42
|
+
isEntryValid: {
|
|
43
|
+
type: string;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../server/src/content-types/release-action/index.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAEzB,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
collectionName: string;
|
|
3
|
+
info: {
|
|
4
|
+
singularName: string;
|
|
5
|
+
pluralName: string;
|
|
6
|
+
displayName: string;
|
|
7
|
+
};
|
|
8
|
+
options: {
|
|
9
|
+
draftAndPublish: boolean;
|
|
10
|
+
};
|
|
11
|
+
pluginOptions: {
|
|
12
|
+
'content-manager': {
|
|
13
|
+
visible: boolean;
|
|
14
|
+
};
|
|
15
|
+
'content-type-builder': {
|
|
16
|
+
visible: boolean;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
attributes: {
|
|
20
|
+
type: {
|
|
21
|
+
type: string;
|
|
22
|
+
enum: string[];
|
|
23
|
+
required: boolean;
|
|
24
|
+
};
|
|
25
|
+
contentType: {
|
|
26
|
+
type: string;
|
|
27
|
+
required: boolean;
|
|
28
|
+
};
|
|
29
|
+
entryDocumentId: {
|
|
30
|
+
type: string;
|
|
31
|
+
};
|
|
32
|
+
locale: {
|
|
33
|
+
type: string;
|
|
34
|
+
};
|
|
35
|
+
release: {
|
|
36
|
+
type: string;
|
|
37
|
+
relation: string;
|
|
38
|
+
target: string;
|
|
39
|
+
inversedBy: string;
|
|
40
|
+
};
|
|
41
|
+
isEntryValid: {
|
|
42
|
+
type: string;
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
export default _default;
|
|
47
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../server/src/content-types/release-action/schema.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,wBA4CE"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/// <reference types="koa" />
|
|
2
|
+
export declare const controllers: {
|
|
3
|
+
release: {
|
|
4
|
+
findByDocumentAttached(ctx: import("koa").Context): Promise<void>;
|
|
5
|
+
findPage(ctx: import("koa").Context): Promise<void>;
|
|
6
|
+
findOne(ctx: import("koa").Context): Promise<void>;
|
|
7
|
+
mapEntriesToReleases(ctx: import("koa").Context): Promise<void>;
|
|
8
|
+
create(ctx: import("koa").Context): Promise<void>;
|
|
9
|
+
update(ctx: import("koa").Context): Promise<void>;
|
|
10
|
+
delete(ctx: import("koa").Context): Promise<void>;
|
|
11
|
+
publish(ctx: import("koa").Context): Promise<void>;
|
|
12
|
+
};
|
|
13
|
+
'release-action': {
|
|
14
|
+
create(ctx: import("koa").Context): Promise<void>;
|
|
15
|
+
createMany(ctx: import("koa").Context): Promise<void>;
|
|
16
|
+
findMany(ctx: import("koa").Context): Promise<void>;
|
|
17
|
+
update(ctx: import("koa").Context): Promise<void>;
|
|
18
|
+
delete(ctx: import("koa").Context): Promise<void>;
|
|
19
|
+
};
|
|
20
|
+
settings: {
|
|
21
|
+
find(ctx: import("koa").Context): Promise<void>;
|
|
22
|
+
update(ctx: import("koa").Context): Promise<void>;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/controllers/index.ts"],"names":[],"mappings":";AAIA,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;CAIvB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type Koa from 'koa';
|
|
2
|
+
declare const releaseActionController: {
|
|
3
|
+
create(ctx: Koa.Context): Promise<void>;
|
|
4
|
+
createMany(ctx: Koa.Context): Promise<void>;
|
|
5
|
+
findMany(ctx: Koa.Context): Promise<void>;
|
|
6
|
+
update(ctx: Koa.Context): Promise<void>;
|
|
7
|
+
delete(ctx: Koa.Context): Promise<void>;
|
|
8
|
+
};
|
|
9
|
+
export default releaseActionController;
|
|
10
|
+
//# sourceMappingURL=release-action.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release-action.d.ts","sourceRoot":"","sources":["../../../../server/src/controllers/release-action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAmB3B,QAAA,MAAM,uBAAuB;gBACT,IAAI,OAAO;oBAcP,IAAI,OAAO;kBA8Cb,IAAI,OAAO;gBA2Eb,IAAI,OAAO;gBAoBX,IAAI,OAAO;CAY9B,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type Koa from 'koa';
|
|
2
|
+
declare const releaseController: {
|
|
3
|
+
/**
|
|
4
|
+
* Find releases based on documents attached or not to the release.
|
|
5
|
+
* If `hasEntryAttached` is true, it will return all releases that have the entry attached.
|
|
6
|
+
* If `hasEntryAttached` is false, it will return all releases that don't have the entry attached.
|
|
7
|
+
*/
|
|
8
|
+
findByDocumentAttached(ctx: Koa.Context): Promise<void>;
|
|
9
|
+
findPage(ctx: Koa.Context): Promise<void>;
|
|
10
|
+
findOne(ctx: Koa.Context): Promise<void>;
|
|
11
|
+
mapEntriesToReleases(ctx: Koa.Context): Promise<void>;
|
|
12
|
+
create(ctx: Koa.Context): Promise<void>;
|
|
13
|
+
update(ctx: Koa.Context): Promise<void>;
|
|
14
|
+
delete(ctx: Koa.Context): Promise<void>;
|
|
15
|
+
publish(ctx: Koa.Context): Promise<void>;
|
|
16
|
+
};
|
|
17
|
+
export default releaseController;
|
|
18
|
+
//# sourceMappingURL=release.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../../../../server/src/controllers/release.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAoB3B,QAAA,MAAM,iBAAiB;IACrB;;;;OAIG;gCAC+B,IAAI,OAAO;kBAiFzB,IAAI,OAAO;iBAmCZ,IAAI,OAAO;8BAmCE,IAAI,OAAO;gBAqDzB,IAAI,OAAO;gBAmBX,IAAI,OAAO;gBAoBX,IAAI,OAAO;iBAWV,IAAI,OAAO;CA+B/B,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Used to store user configurations related to releases.
|
|
3
|
+
* E.g the default timezone for the release schedule.
|
|
4
|
+
*/
|
|
5
|
+
import type Koa from 'koa';
|
|
6
|
+
declare const settingsController: {
|
|
7
|
+
find(ctx: Koa.Context): Promise<void>;
|
|
8
|
+
update(ctx: Koa.Context): Promise<void>;
|
|
9
|
+
};
|
|
10
|
+
export default settingsController;
|
|
11
|
+
//# sourceMappingURL=settings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../../server/src/controllers/settings.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAM3B,QAAA,MAAM,kBAAkB;cACN,IAAI,OAAO;gBAST,IAAI,OAAO;CAY9B,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
|