@strapi/content-releases 0.0.0-next.fdac61dd05ca665168f51f655f1d165b55ec4231 → 0.0.0-next.ffc36acb308febe288f1a31b62cbbb75b286585c

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.
Files changed (262) hide show
  1. package/dist/admin/assets/purchase-page-illustration-dark.svg.js +6 -0
  2. package/dist/admin/assets/purchase-page-illustration-dark.svg.js.map +1 -0
  3. package/dist/admin/assets/purchase-page-illustration-dark.svg.mjs +4 -0
  4. package/dist/admin/assets/purchase-page-illustration-dark.svg.mjs.map +1 -0
  5. package/dist/admin/assets/purchase-page-illustration-light.svg.js +6 -0
  6. package/dist/admin/assets/purchase-page-illustration-light.svg.js.map +1 -0
  7. package/dist/admin/assets/purchase-page-illustration-light.svg.mjs +4 -0
  8. package/dist/admin/assets/purchase-page-illustration-light.svg.mjs.map +1 -0
  9. package/dist/admin/components/EntryValidationPopover.js +344 -0
  10. package/dist/admin/components/EntryValidationPopover.js.map +1 -0
  11. package/dist/admin/components/EntryValidationPopover.mjs +342 -0
  12. package/dist/admin/components/EntryValidationPopover.mjs.map +1 -0
  13. package/dist/admin/components/RelativeTime.js +76 -0
  14. package/dist/admin/components/RelativeTime.js.map +1 -0
  15. package/dist/admin/components/RelativeTime.mjs +55 -0
  16. package/dist/admin/components/RelativeTime.mjs.map +1 -0
  17. package/dist/admin/components/ReleaseAction.js +203 -0
  18. package/dist/admin/components/ReleaseAction.js.map +1 -0
  19. package/dist/admin/components/ReleaseAction.mjs +201 -0
  20. package/dist/admin/components/ReleaseAction.mjs.map +1 -0
  21. package/dist/admin/components/ReleaseActionMenu.js +194 -0
  22. package/dist/admin/components/ReleaseActionMenu.js.map +1 -0
  23. package/dist/admin/components/ReleaseActionMenu.mjs +173 -0
  24. package/dist/admin/components/ReleaseActionMenu.mjs.map +1 -0
  25. package/dist/admin/components/ReleaseActionModal.js +268 -0
  26. package/dist/admin/components/ReleaseActionModal.js.map +1 -0
  27. package/dist/admin/components/ReleaseActionModal.mjs +244 -0
  28. package/dist/admin/components/ReleaseActionModal.mjs.map +1 -0
  29. package/dist/admin/components/ReleaseActionOptions.js +104 -0
  30. package/dist/admin/components/ReleaseActionOptions.js.map +1 -0
  31. package/dist/admin/components/ReleaseActionOptions.mjs +102 -0
  32. package/dist/admin/components/ReleaseActionOptions.mjs.map +1 -0
  33. package/dist/admin/components/ReleaseListCell.js +103 -0
  34. package/dist/admin/components/ReleaseListCell.js.map +1 -0
  35. package/dist/admin/components/ReleaseListCell.mjs +100 -0
  36. package/dist/admin/components/ReleaseListCell.mjs.map +1 -0
  37. package/dist/admin/components/ReleaseModal.js +323 -0
  38. package/dist/admin/components/ReleaseModal.js.map +1 -0
  39. package/dist/admin/components/ReleaseModal.mjs +302 -0
  40. package/dist/admin/components/ReleaseModal.mjs.map +1 -0
  41. package/dist/admin/components/ReleasesPanel.js +138 -0
  42. package/dist/admin/components/ReleasesPanel.js.map +1 -0
  43. package/dist/admin/components/ReleasesPanel.mjs +136 -0
  44. package/dist/admin/components/ReleasesPanel.mjs.map +1 -0
  45. package/dist/admin/constants.js +77 -0
  46. package/dist/admin/constants.js.map +1 -0
  47. package/dist/admin/constants.mjs +75 -0
  48. package/dist/admin/constants.mjs.map +1 -0
  49. package/dist/admin/index.js +121 -14
  50. package/dist/admin/index.js.map +1 -1
  51. package/dist/admin/index.mjs +122 -13
  52. package/dist/admin/index.mjs.map +1 -1
  53. package/dist/admin/modules/hooks.js +8 -0
  54. package/dist/admin/modules/hooks.js.map +1 -0
  55. package/dist/admin/modules/hooks.mjs +6 -0
  56. package/dist/admin/modules/hooks.mjs.map +1 -0
  57. package/dist/admin/pages/App.js +29 -0
  58. package/dist/admin/pages/App.js.map +1 -0
  59. package/dist/admin/pages/App.mjs +27 -0
  60. package/dist/admin/pages/App.mjs.map +1 -0
  61. package/dist/admin/pages/PurchaseContentReleases.js +192 -0
  62. package/dist/admin/pages/PurchaseContentReleases.js.map +1 -0
  63. package/dist/admin/pages/PurchaseContentReleases.mjs +190 -0
  64. package/dist/admin/pages/PurchaseContentReleases.mjs.map +1 -0
  65. package/dist/admin/pages/ReleaseDetailsPage.js +772 -0
  66. package/dist/admin/pages/ReleaseDetailsPage.js.map +1 -0
  67. package/dist/admin/pages/ReleaseDetailsPage.mjs +751 -0
  68. package/dist/admin/pages/ReleaseDetailsPage.mjs.map +1 -0
  69. package/dist/admin/pages/ReleasesPage.js +403 -0
  70. package/dist/admin/pages/ReleasesPage.js.map +1 -0
  71. package/dist/admin/pages/ReleasesPage.mjs +381 -0
  72. package/dist/admin/pages/ReleasesPage.mjs.map +1 -0
  73. package/dist/admin/{chunks/ReleasesSettingsPage-DFVGppsl.js → pages/ReleasesSettingsPage.js} +47 -30
  74. package/dist/admin/pages/ReleasesSettingsPage.js.map +1 -0
  75. package/dist/admin/{chunks/ReleasesSettingsPage-BzdLEfxa.mjs → pages/ReleasesSettingsPage.mjs} +41 -24
  76. package/dist/admin/pages/ReleasesSettingsPage.mjs.map +1 -0
  77. package/dist/admin/pluginId.js +6 -0
  78. package/dist/admin/pluginId.js.map +1 -0
  79. package/dist/admin/pluginId.mjs +4 -0
  80. package/dist/admin/pluginId.mjs.map +1 -0
  81. package/dist/admin/services/release.js +464 -0
  82. package/dist/admin/services/release.js.map +1 -0
  83. package/dist/admin/services/release.mjs +447 -0
  84. package/dist/admin/services/release.mjs.map +1 -0
  85. package/dist/admin/store/hooks.js +8 -0
  86. package/dist/admin/store/hooks.js.map +1 -0
  87. package/dist/admin/store/hooks.mjs +6 -0
  88. package/dist/admin/store/hooks.mjs.map +1 -0
  89. package/dist/admin/{chunks/en-BzpFfVeO.js → translations/en.json.js} +8 -3
  90. package/dist/admin/translations/en.json.js.map +1 -0
  91. package/dist/admin/{chunks/en-B2EeDoOz.mjs → translations/en.json.mjs} +7 -2
  92. package/dist/admin/translations/en.json.mjs.map +1 -0
  93. package/dist/admin/translations/uk.json.js +103 -0
  94. package/dist/admin/translations/uk.json.js.map +1 -0
  95. package/dist/admin/translations/uk.json.mjs +101 -0
  96. package/dist/admin/translations/uk.json.mjs.map +1 -0
  97. package/dist/admin/utils/api.js +8 -0
  98. package/dist/admin/utils/api.js.map +1 -0
  99. package/dist/admin/utils/api.mjs +6 -0
  100. package/dist/admin/utils/api.mjs.map +1 -0
  101. package/dist/admin/utils/prefixPluginTranslations.js +11 -0
  102. package/dist/admin/utils/prefixPluginTranslations.js.map +1 -0
  103. package/dist/admin/utils/prefixPluginTranslations.mjs +9 -0
  104. package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -0
  105. package/dist/admin/utils/time.js +42 -0
  106. package/dist/admin/utils/time.js.map +1 -0
  107. package/dist/admin/utils/time.mjs +39 -0
  108. package/dist/admin/utils/time.mjs.map +1 -0
  109. package/dist/admin/{chunks/schemas-DS7NeFDN.js → validation/schemas.js} +1 -1
  110. package/dist/admin/validation/schemas.js.map +1 -0
  111. package/dist/admin/{chunks/schemas-DMt8h1z-.mjs → validation/schemas.mjs} +2 -2
  112. package/dist/admin/validation/schemas.mjs.map +1 -0
  113. package/dist/server/bootstrap.js +68 -0
  114. package/dist/server/bootstrap.js.map +1 -0
  115. package/dist/server/bootstrap.mjs +66 -0
  116. package/dist/server/bootstrap.mjs.map +1 -0
  117. package/dist/server/constants.js +74 -0
  118. package/dist/server/constants.js.map +1 -0
  119. package/dist/server/constants.mjs +69 -0
  120. package/dist/server/constants.mjs.map +1 -0
  121. package/dist/server/content-types/index.js +12 -0
  122. package/dist/server/content-types/index.js.map +1 -0
  123. package/dist/server/content-types/index.mjs +10 -0
  124. package/dist/server/content-types/index.mjs.map +1 -0
  125. package/dist/server/content-types/release/index.js +10 -0
  126. package/dist/server/content-types/release/index.js.map +1 -0
  127. package/dist/server/content-types/release/index.mjs +8 -0
  128. package/dist/server/content-types/release/index.mjs.map +1 -0
  129. package/dist/server/content-types/release/schema.js +58 -0
  130. package/dist/server/content-types/release/schema.js.map +1 -0
  131. package/dist/server/content-types/release/schema.mjs +56 -0
  132. package/dist/server/content-types/release/schema.mjs.map +1 -0
  133. package/dist/server/content-types/release-action/index.js +10 -0
  134. package/dist/server/content-types/release-action/index.js.map +1 -0
  135. package/dist/server/content-types/release-action/index.mjs +8 -0
  136. package/dist/server/content-types/release-action/index.mjs.map +1 -0
  137. package/dist/server/content-types/release-action/schema.js +55 -0
  138. package/dist/server/content-types/release-action/schema.js.map +1 -0
  139. package/dist/server/content-types/release-action/schema.mjs +53 -0
  140. package/dist/server/content-types/release-action/schema.mjs.map +1 -0
  141. package/dist/server/controllers/index.js +14 -0
  142. package/dist/server/controllers/index.js.map +1 -0
  143. package/dist/server/controllers/index.mjs +12 -0
  144. package/dist/server/controllers/index.mjs.map +1 -0
  145. package/dist/server/controllers/release-action.js +150 -0
  146. package/dist/server/controllers/release-action.js.map +1 -0
  147. package/dist/server/controllers/release-action.mjs +148 -0
  148. package/dist/server/controllers/release-action.mjs.map +1 -0
  149. package/dist/server/controllers/release.js +302 -0
  150. package/dist/server/controllers/release.js.map +1 -0
  151. package/dist/server/controllers/release.mjs +300 -0
  152. package/dist/server/controllers/release.mjs.map +1 -0
  153. package/dist/server/controllers/settings.js +37 -0
  154. package/dist/server/controllers/settings.js.map +1 -0
  155. package/dist/server/controllers/settings.mjs +35 -0
  156. package/dist/server/controllers/settings.mjs.map +1 -0
  157. package/dist/server/controllers/validation/release-action.js +34 -0
  158. package/dist/server/controllers/validation/release-action.js.map +1 -0
  159. package/dist/server/controllers/validation/release-action.mjs +30 -0
  160. package/dist/server/controllers/validation/release-action.mjs.map +1 -0
  161. package/dist/server/controllers/validation/release.js +26 -0
  162. package/dist/server/controllers/validation/release.js.map +1 -0
  163. package/dist/server/controllers/validation/release.mjs +22 -0
  164. package/dist/server/controllers/validation/release.mjs.map +1 -0
  165. package/dist/server/controllers/validation/settings.js +32 -0
  166. package/dist/server/controllers/validation/settings.js.map +1 -0
  167. package/dist/server/controllers/validation/settings.mjs +10 -0
  168. package/dist/server/controllers/validation/settings.mjs.map +1 -0
  169. package/dist/server/destroy.js +15 -0
  170. package/dist/server/destroy.js.map +1 -0
  171. package/dist/server/destroy.mjs +13 -0
  172. package/dist/server/destroy.mjs.map +1 -0
  173. package/dist/server/index.js +16 -2336
  174. package/dist/server/index.js.map +1 -1
  175. package/dist/server/index.mjs +7 -2308
  176. package/dist/server/index.mjs.map +1 -1
  177. package/dist/server/middlewares/documents.js +104 -0
  178. package/dist/server/middlewares/documents.js.map +1 -0
  179. package/dist/server/middlewares/documents.mjs +101 -0
  180. package/dist/server/middlewares/documents.mjs.map +1 -0
  181. package/dist/server/migrations/database/5.0.0-document-id-in-actions.js +51 -0
  182. package/dist/server/migrations/database/5.0.0-document-id-in-actions.js.map +1 -0
  183. package/dist/server/migrations/database/5.0.0-document-id-in-actions.mjs +49 -0
  184. package/dist/server/migrations/database/5.0.0-document-id-in-actions.mjs.map +1 -0
  185. package/dist/server/migrations/index.js +205 -0
  186. package/dist/server/migrations/index.js.map +1 -0
  187. package/dist/server/migrations/index.mjs +198 -0
  188. package/dist/server/migrations/index.mjs.map +1 -0
  189. package/dist/server/register.js +23 -0
  190. package/dist/server/register.js.map +1 -0
  191. package/dist/server/register.mjs +21 -0
  192. package/dist/server/register.mjs.map +1 -0
  193. package/dist/server/routes/index.js +14 -0
  194. package/dist/server/routes/index.js.map +1 -0
  195. package/dist/server/routes/index.mjs +12 -0
  196. package/dist/server/routes/index.mjs.map +1 -0
  197. package/dist/server/routes/release-action.js +100 -0
  198. package/dist/server/routes/release-action.js.map +1 -0
  199. package/dist/server/routes/release-action.mjs +98 -0
  200. package/dist/server/routes/release-action.mjs.map +1 -0
  201. package/dist/server/routes/release.js +154 -0
  202. package/dist/server/routes/release.js.map +1 -0
  203. package/dist/server/routes/release.mjs +152 -0
  204. package/dist/server/routes/release.mjs.map +1 -0
  205. package/dist/server/routes/settings.js +46 -0
  206. package/dist/server/routes/settings.js.map +1 -0
  207. package/dist/server/routes/settings.mjs +44 -0
  208. package/dist/server/routes/settings.mjs.map +1 -0
  209. package/dist/server/services/index.js +18 -0
  210. package/dist/server/services/index.js.map +1 -0
  211. package/dist/server/services/index.mjs +16 -0
  212. package/dist/server/services/index.mjs.map +1 -0
  213. package/dist/server/services/release-action.js +324 -0
  214. package/dist/server/services/release-action.js.map +1 -0
  215. package/dist/server/services/release-action.mjs +322 -0
  216. package/dist/server/services/release-action.mjs.map +1 -0
  217. package/dist/server/services/release.js +324 -0
  218. package/dist/server/services/release.js.map +1 -0
  219. package/dist/server/services/release.mjs +322 -0
  220. package/dist/server/services/release.mjs.map +1 -0
  221. package/dist/server/services/scheduling.js +74 -0
  222. package/dist/server/services/scheduling.js.map +1 -0
  223. package/dist/server/services/scheduling.mjs +72 -0
  224. package/dist/server/services/scheduling.mjs.map +1 -0
  225. package/dist/server/services/settings.js +34 -0
  226. package/dist/server/services/settings.js.map +1 -0
  227. package/dist/server/services/settings.mjs +32 -0
  228. package/dist/server/services/settings.mjs.map +1 -0
  229. package/dist/server/services/validation.js +91 -0
  230. package/dist/server/services/validation.js.map +1 -0
  231. package/dist/server/services/validation.mjs +86 -0
  232. package/dist/server/services/validation.mjs.map +1 -0
  233. package/dist/server/src/destroy.d.ts.map +1 -1
  234. package/dist/server/src/index.d.ts +4 -4
  235. package/dist/server/src/services/index.d.ts +4 -4
  236. package/dist/server/src/services/release-action.d.ts.map +1 -1
  237. package/dist/server/src/services/scheduling.d.ts +4 -5
  238. package/dist/server/src/services/scheduling.d.ts.map +1 -1
  239. package/dist/server/src/utils/index.d.ts.map +1 -1
  240. package/dist/server/utils/index.js +94 -0
  241. package/dist/server/utils/index.js.map +1 -0
  242. package/dist/server/utils/index.mjs +88 -0
  243. package/dist/server/utils/index.mjs.map +1 -0
  244. package/package.json +10 -11
  245. package/dist/admin/chunks/App-B9yCdSLJ.js +0 -1866
  246. package/dist/admin/chunks/App-B9yCdSLJ.js.map +0 -1
  247. package/dist/admin/chunks/App-CuOosufQ.mjs +0 -1845
  248. package/dist/admin/chunks/App-CuOosufQ.mjs.map +0 -1
  249. package/dist/admin/chunks/PurchaseContentReleases-BCME5SQU.js +0 -55
  250. package/dist/admin/chunks/PurchaseContentReleases-BCME5SQU.js.map +0 -1
  251. package/dist/admin/chunks/PurchaseContentReleases-S1ccDSwp.mjs +0 -53
  252. package/dist/admin/chunks/PurchaseContentReleases-S1ccDSwp.mjs.map +0 -1
  253. package/dist/admin/chunks/ReleasesSettingsPage-BzdLEfxa.mjs.map +0 -1
  254. package/dist/admin/chunks/ReleasesSettingsPage-DFVGppsl.js.map +0 -1
  255. package/dist/admin/chunks/en-B2EeDoOz.mjs.map +0 -1
  256. package/dist/admin/chunks/en-BzpFfVeO.js.map +0 -1
  257. package/dist/admin/chunks/index-1nn-zHX-.js +0 -1657
  258. package/dist/admin/chunks/index-1nn-zHX-.js.map +0 -1
  259. package/dist/admin/chunks/index-CmAFGQWf.mjs +0 -1618
  260. package/dist/admin/chunks/index-CmAFGQWf.mjs.map +0 -1
  261. package/dist/admin/chunks/schemas-DMt8h1z-.mjs.map +0 -1
  262. package/dist/admin/chunks/schemas-DS7NeFDN.js.map +0 -1
@@ -1,21 +1,12 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
- import { Page, useAPIErrorHandler, useNotification, useRBAC, Layouts, Form, useField, isFetchError } from '@strapi/admin/strapi-admin';
2
+ import { Page, useAPIErrorHandler, useNotification, useRBAC, Layouts, Form, GradientBadge, useField, isFetchError } from '@strapi/admin/strapi-admin';
3
3
  import { Button, Flex, Typography, Grid, Field, Combobox, ComboboxOption } from '@strapi/design-system';
4
4
  import { Check } from '@strapi/icons';
5
5
  import { useIntl } from 'react-intl';
6
- import { useSelector } from 'react-redux';
7
- import { a as useGetReleaseSettingsQuery, l as useUpdateReleaseSettingsMutation, g as getTimezones } from './index-CmAFGQWf.mjs';
8
- import { S as SETTINGS_SCHEMA } from './schemas-DMt8h1z-.mjs';
9
- import 'react';
10
- import 'formik';
11
- import '@strapi/content-manager/strapi-admin';
12
- import '@strapi/icons/symbols';
13
- import 'react-router-dom';
14
- import 'yup';
15
- import 'styled-components';
16
- import 'date-fns-tz';
17
-
18
- const useTypedSelector = useSelector;
6
+ import { useTypedSelector } from '../modules/hooks.mjs';
7
+ import { useGetReleaseSettingsQuery, useUpdateReleaseSettingsMutation } from '../services/release.mjs';
8
+ import { getTimezones } from '../utils/time.mjs';
9
+ import { SETTINGS_SCHEMA } from '../validation/schemas.mjs';
19
10
 
20
11
  const ReleasesSettingsPage = ()=>{
21
12
  const { formatMessage } = useIntl();
@@ -26,13 +17,28 @@ const ReleasesSettingsPage = ()=>{
26
17
  const permissions = useTypedSelector((state)=>state.admin_app.permissions['settings']?.['releases']);
27
18
  const { allowedActions: { canUpdate } } = useRBAC(permissions);
28
19
  const { timezoneList } = getTimezones(new Date());
29
- const handleSubmit = async (body)=>{
20
+ const handleSubmit = async (body, { setErrors })=>{
30
21
  const { defaultTimezone } = body;
31
- const isBodyTimezoneValid = timezoneList.some((timezone)=>timezone.value === defaultTimezone);
22
+ const formattedDefaultTimezone = defaultTimezone;
23
+ const isBodyTimezoneValid = timezoneList.some((timezone)=>timezone.value === formattedDefaultTimezone);
24
+ if (!isBodyTimezoneValid && defaultTimezone) {
25
+ const errorMessage = formatMessage({
26
+ id: 'components.Input.error.validation.combobox.invalid',
27
+ defaultMessage: 'The value provided is not valid'
28
+ });
29
+ setErrors({
30
+ defaultTimezone: errorMessage
31
+ });
32
+ toggleNotification({
33
+ type: 'danger',
34
+ message: errorMessage
35
+ });
36
+ return;
37
+ }
32
38
  const newBody = !defaultTimezone || !isBodyTimezoneValid ? {
33
39
  defaultTimezone: null
34
40
  } : {
35
- ...body
41
+ defaultTimezone: formattedDefaultTimezone
36
42
  };
37
43
  try {
38
44
  const response = await updateReleaseSettings(newBody);
@@ -71,6 +77,10 @@ const ReleasesSettingsPage = ()=>{
71
77
  if (isLoadingSettings) {
72
78
  return /*#__PURE__*/ jsx(Page.Loading, {});
73
79
  }
80
+ const releasePageTitle = formatMessage({
81
+ id: 'content-releases.pages.Releases.title',
82
+ defaultMessage: 'Releases'
83
+ });
74
84
  return /*#__PURE__*/ jsxs(Layouts.Root, {
75
85
  children: [
76
86
  /*#__PURE__*/ jsx(Page.Title, {
@@ -78,7 +88,7 @@ const ReleasesSettingsPage = ()=>{
78
88
  id: 'Settings.PageTitle',
79
89
  defaultMessage: 'Settings - {name}'
80
90
  }, {
81
- name: 'Releases'
91
+ name: releasePageTitle
82
92
  })
83
93
  }),
84
94
  /*#__PURE__*/ jsx(Page.Main, {
@@ -105,10 +115,13 @@ const ReleasesSettingsPage = ()=>{
105
115
  defaultMessage: 'Save'
106
116
  })
107
117
  }) : null,
108
- title: formatMessage({
109
- id: 'content-releases.pages.Settings.releases.title',
110
- defaultMessage: 'Releases'
118
+ secondaryAction: /*#__PURE__*/ jsx(GradientBadge, {
119
+ label: formatMessage({
120
+ id: 'components.premiumFeature.title',
121
+ defaultMessage: 'Premium feature'
122
+ })
111
123
  }),
124
+ title: releasePageTitle,
112
125
  subtitle: formatMessage({
113
126
  id: 'content-releases.pages.Settings.releases.description',
114
127
  defaultMessage: 'Create and manage content updates'
@@ -162,7 +175,7 @@ const TimezoneDropdown = ()=>{
162
175
  name: "defaultTimezone",
163
176
  hint: formatMessage({
164
177
  id: 'content-releases.pages.Settings.releases.timezone.hint',
165
- defaultMessage: 'The timezone of every release can still be changed individually. '
178
+ defaultMessage: 'The timezone of every release can still be changed individually.'
166
179
  }),
167
180
  error: field.error,
168
181
  children: [
@@ -177,8 +190,12 @@ const TimezoneDropdown = ()=>{
177
190
  type: 'list',
178
191
  filter: 'contains'
179
192
  },
180
- onChange: (value)=>field.onChange('defaultTimezone', value),
181
193
  onTextValueChange: (value)=>field.onChange('defaultTimezone', value),
194
+ onChange: (value)=>{
195
+ if (field.value && value || !field.value) {
196
+ field.onChange('defaultTimezone', value);
197
+ }
198
+ },
182
199
  onClear: ()=>field.onChange('defaultTimezone', ''),
183
200
  value: field.value,
184
201
  disabled: !canUpdate,
@@ -203,4 +220,4 @@ const TimezoneDropdown = ()=>{
203
220
  };
204
221
 
205
222
  export { ProtectedReleasesSettingsPage };
206
- //# sourceMappingURL=ReleasesSettingsPage-BzdLEfxa.mjs.map
223
+ //# sourceMappingURL=ReleasesSettingsPage.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReleasesSettingsPage.mjs","sources":["../../../admin/src/pages/ReleasesSettingsPage.tsx"],"sourcesContent":["import {\n Form,\n Layouts,\n Page,\n useAPIErrorHandler,\n isFetchError,\n GradientBadge,\n useNotification,\n useField,\n useRBAC,\n FormHelpers,\n} from '@strapi/admin/strapi-admin';\nimport {\n Button,\n Combobox,\n ComboboxOption,\n Field,\n Flex,\n Grid,\n Typography,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { useTypedSelector } from '../modules/hooks';\nimport { useGetReleaseSettingsQuery, useUpdateReleaseSettingsMutation } from '../services/release';\nimport { getTimezones } from '../utils/time';\nimport { SETTINGS_SCHEMA } from '../validation/schemas';\n\nimport type { UpdateSettings } from '../../../shared/contracts/settings';\n\ninterface UpdateDefaultTimezone {\n defaultTimezone: string;\n}\n\nconst ReleasesSettingsPage = () => {\n const { formatMessage } = useIntl();\n const { formatAPIError } = useAPIErrorHandler();\n const { toggleNotification } = useNotification();\n const { data, isLoading: isLoadingSettings } = useGetReleaseSettingsQuery();\n const [updateReleaseSettings, { isLoading: isSubmittingForm }] =\n useUpdateReleaseSettingsMutation();\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions['settings']?.['releases']\n );\n const {\n allowedActions: { canUpdate },\n } = useRBAC(permissions);\n\n const { timezoneList } = getTimezones(new Date());\n\n const handleSubmit = async (\n body: UpdateSettings.Request['body'],\n { setErrors }: FormHelpers<UpdateDefaultTimezone>\n ) => {\n const { defaultTimezone } = body;\n const formattedDefaultTimezone = defaultTimezone;\n const isBodyTimezoneValid = timezoneList.some(\n (timezone) => timezone.value === formattedDefaultTimezone\n );\n\n if (!isBodyTimezoneValid && defaultTimezone) {\n const errorMessage = formatMessage({\n id: 'components.Input.error.validation.combobox.invalid',\n defaultMessage: 'The value provided is not valid',\n });\n setErrors({\n defaultTimezone: errorMessage,\n });\n toggleNotification({\n type: 'danger',\n message: errorMessage,\n });\n return;\n }\n\n const newBody =\n !defaultTimezone || !isBodyTimezoneValid\n ? { defaultTimezone: null }\n : { defaultTimezone: formattedDefaultTimezone };\n\n try {\n const response = await updateReleaseSettings(newBody);\n\n if ('data' in response) {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'content-releases.pages.Settings.releases.setting.default-timezone-notification-success',\n defaultMessage: 'Default timezone updated.',\n }),\n });\n } else if (isFetchError(response.error)) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(response.error),\n });\n } else {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n } catch (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n if (isLoadingSettings) {\n return <Page.Loading />;\n }\n\n const releasePageTitle = formatMessage({\n id: 'content-releases.pages.Releases.title',\n defaultMessage: 'Releases',\n });\n\n return (\n <Layouts.Root>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: releasePageTitle,\n }\n )}\n </Page.Title>\n <Page.Main aria-busy={isLoadingSettings} tabIndex={-1}>\n <Form\n method=\"PUT\"\n initialValues={{\n defaultTimezone: data?.data.defaultTimezone,\n }}\n onSubmit={handleSubmit}\n validationSchema={SETTINGS_SCHEMA}\n >\n {({ modified, isSubmitting }: { modified: boolean; isSubmitting: boolean }) => {\n return (\n <>\n <Layouts.Header\n primaryAction={\n canUpdate ? (\n <Button\n disabled={!modified || isSubmittingForm}\n loading={isSubmitting}\n startIcon={<Check />}\n type=\"submit\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n ) : null\n }\n secondaryAction={\n <GradientBadge\n label={formatMessage({\n id: 'components.premiumFeature.title',\n defaultMessage: 'Premium feature',\n })}\n />\n }\n title={releasePageTitle}\n subtitle={formatMessage({\n id: 'content-releases.pages.Settings.releases.description',\n defaultMessage: 'Create and manage content updates',\n })}\n />\n <Layouts.Content>\n <Flex\n direction=\"column\"\n background=\"neutral0\"\n alignItems=\"stretch\"\n padding={6}\n gap={6}\n shadow=\"filterShadow\"\n hasRadius\n >\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'content-releases.pages.Settings.releases.preferences.title',\n defaultMessage: 'Preferences',\n })}\n </Typography>\n <Grid.Root>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <TimezoneDropdown />\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Layouts.Content>\n </>\n );\n }}\n </Form>\n </Page.Main>\n </Layouts.Root>\n );\n};\n\nconst TimezoneDropdown = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions['settings']?.['releases']\n );\n const {\n allowedActions: { canUpdate },\n } = useRBAC(permissions);\n const { formatMessage } = useIntl();\n const { timezoneList } = getTimezones(new Date());\n const field = useField('defaultTimezone');\n return (\n <Field.Root\n name=\"defaultTimezone\"\n hint={formatMessage({\n id: 'content-releases.pages.Settings.releases.timezone.hint',\n defaultMessage: 'The timezone of every release can still be changed individually.',\n })}\n error={field.error}\n >\n <Field.Label>\n {formatMessage({\n id: 'content-releases.pages.Settings.releases.timezone.label',\n defaultMessage: 'Default timezone',\n })}\n </Field.Label>\n <Combobox\n autocomplete={{ type: 'list', filter: 'contains' }}\n onTextValueChange={(value) => field.onChange('defaultTimezone', value)}\n onChange={(value) => {\n if ((field.value && value) || !field.value) {\n field.onChange('defaultTimezone', value);\n }\n }}\n onClear={() => field.onChange('defaultTimezone', '')}\n value={field.value}\n disabled={!canUpdate}\n >\n {timezoneList.map((timezone) => (\n <ComboboxOption key={timezone.value} value={timezone.value}>\n {timezone.value.replace(/&/, ' ')}\n </ComboboxOption>\n ))}\n </Combobox>\n <Field.Hint />\n <Field.Error />\n </Field.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedSettingsPage\n * -----------------------------------------------------------------------------------------------*/\n\nexport const ProtectedReleasesSettingsPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions['settings']?.['releases']?.read\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ReleasesSettingsPage />\n </Page.Protect>\n );\n};\n"],"names":["ReleasesSettingsPage","formatMessage","useIntl","formatAPIError","useAPIErrorHandler","toggleNotification","useNotification","data","isLoading","isLoadingSettings","useGetReleaseSettingsQuery","updateReleaseSettings","isSubmittingForm","useUpdateReleaseSettingsMutation","permissions","useTypedSelector","state","admin_app","allowedActions","canUpdate","useRBAC","timezoneList","getTimezones","Date","handleSubmit","body","setErrors","defaultTimezone","formattedDefaultTimezone","isBodyTimezoneValid","some","timezone","value","errorMessage","id","defaultMessage","type","message","newBody","response","isFetchError","error","_jsx","Page","Loading","releasePageTitle","_jsxs","Layouts","Root","Title","name","Main","aria-busy","tabIndex","Form","method","initialValues","onSubmit","validationSchema","SETTINGS_SCHEMA","modified","isSubmitting","_Fragment","Header","primaryAction","Button","disabled","loading","startIcon","Check","secondaryAction","GradientBadge","label","title","subtitle","Content","Flex","direction","background","alignItems","padding","gap","shadow","hasRadius","Typography","variant","tag","Grid","Item","col","s","TimezoneDropdown","field","useField","Field","hint","Label","Combobox","autocomplete","filter","onTextValueChange","onChange","onClear","map","ComboboxOption","replace","Hint","Error","ProtectedReleasesSettingsPage","read","Protect"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ const pluginId = 'content-releases';
4
+
5
+ exports.pluginId = pluginId;
6
+ //# sourceMappingURL=pluginId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pluginId.js","sources":["../../admin/src/pluginId.ts"],"sourcesContent":["export const pluginId = 'content-releases';\n"],"names":["pluginId"],"mappings":";;AAAO,MAAMA,WAAW;;;;"}
@@ -0,0 +1,4 @@
1
+ const pluginId = 'content-releases';
2
+
3
+ export { pluginId };
4
+ //# sourceMappingURL=pluginId.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pluginId.mjs","sources":["../../admin/src/pluginId.ts"],"sourcesContent":["export const pluginId = 'content-releases';\n"],"names":["pluginId"],"mappings":"AAAO,MAAMA,WAAW;;;;"}
@@ -0,0 +1,464 @@
1
+ 'use strict';
2
+
3
+ var strapiAdmin = require('@strapi/admin/strapi-admin');
4
+
5
+ // TODO: move this into the admin code & expose an improved version of enhanceEndpoints or a new function
6
+ const extendInvalidatesTags = (endpoint, extraTags)=>{
7
+ if (!endpoint) {
8
+ return;
9
+ }
10
+ const originalInvalidatesTags = endpoint.invalidatesTags;
11
+ const newInvalidatesTags = (result, err, args, meta)=>{
12
+ const originalTags = typeof originalInvalidatesTags === 'function' ? originalInvalidatesTags(result, err, args, meta) : originalInvalidatesTags;
13
+ return [
14
+ ...originalTags ?? [],
15
+ ...extraTags
16
+ ];
17
+ };
18
+ Object.assign(endpoint, {
19
+ invalidatesTags: newInvalidatesTags
20
+ });
21
+ };
22
+ const releaseApi = strapiAdmin.adminApi.enhanceEndpoints({
23
+ addTagTypes: [
24
+ 'Release',
25
+ 'ReleaseAction',
26
+ 'EntriesInRelease',
27
+ 'ReleaseSettings',
28
+ 'Document'
29
+ ],
30
+ endpoints: {
31
+ updateDocument (endpoint) {
32
+ extendInvalidatesTags(endpoint, [
33
+ {
34
+ type: 'Release',
35
+ id: 'LIST'
36
+ },
37
+ {
38
+ type: 'ReleaseAction',
39
+ id: 'LIST'
40
+ }
41
+ ]);
42
+ },
43
+ deleteDocument (endpoint) {
44
+ extendInvalidatesTags(endpoint, [
45
+ {
46
+ type: 'Release',
47
+ id: 'LIST'
48
+ },
49
+ {
50
+ type: 'ReleaseAction',
51
+ id: 'LIST'
52
+ }
53
+ ]);
54
+ },
55
+ deleteManyDocuments (endpoint) {
56
+ extendInvalidatesTags(endpoint, [
57
+ {
58
+ type: 'Release',
59
+ id: 'LIST'
60
+ },
61
+ {
62
+ type: 'ReleaseAction',
63
+ id: 'LIST'
64
+ }
65
+ ]);
66
+ },
67
+ discardDocument (endpoint) {
68
+ extendInvalidatesTags(endpoint, [
69
+ {
70
+ type: 'Release',
71
+ id: 'LIST'
72
+ },
73
+ {
74
+ type: 'ReleaseAction',
75
+ id: 'LIST'
76
+ }
77
+ ]);
78
+ },
79
+ createWorkflow (endpoint) {
80
+ extendInvalidatesTags(endpoint, [
81
+ {
82
+ type: 'Release',
83
+ id: 'LIST'
84
+ },
85
+ {
86
+ type: 'ReleaseAction',
87
+ id: 'LIST'
88
+ }
89
+ ]);
90
+ },
91
+ updateWorkflow (endpoint) {
92
+ extendInvalidatesTags(endpoint, [
93
+ {
94
+ type: 'Release',
95
+ id: 'LIST'
96
+ },
97
+ {
98
+ type: 'ReleaseAction',
99
+ id: 'LIST'
100
+ }
101
+ ]);
102
+ },
103
+ deleteWorkflow (endpoint) {
104
+ extendInvalidatesTags(endpoint, [
105
+ {
106
+ type: 'Release',
107
+ id: 'LIST'
108
+ },
109
+ {
110
+ type: 'ReleaseAction',
111
+ id: 'LIST'
112
+ }
113
+ ]);
114
+ }
115
+ }
116
+ }).injectEndpoints({
117
+ endpoints: (build)=>{
118
+ return {
119
+ getReleasesForEntry: build.query({
120
+ query (params) {
121
+ return {
122
+ url: '/content-releases/getByDocumentAttached',
123
+ method: 'GET',
124
+ config: {
125
+ params
126
+ }
127
+ };
128
+ },
129
+ providesTags: (result)=>result ? [
130
+ ...result.data.map(({ id })=>({
131
+ type: 'Release',
132
+ id
133
+ })),
134
+ {
135
+ type: 'Release',
136
+ id: 'LIST'
137
+ }
138
+ ] : []
139
+ }),
140
+ getReleases: build.query({
141
+ query ({ page, pageSize, filters } = {
142
+ page: 1,
143
+ pageSize: 16,
144
+ filters: {
145
+ releasedAt: {
146
+ $notNull: false
147
+ }
148
+ }
149
+ }) {
150
+ return {
151
+ url: '/content-releases',
152
+ method: 'GET',
153
+ config: {
154
+ params: {
155
+ page: page || 1,
156
+ pageSize: pageSize || 16,
157
+ filters: filters || {
158
+ releasedAt: {
159
+ $notNull: false
160
+ }
161
+ }
162
+ }
163
+ }
164
+ };
165
+ },
166
+ transformResponse (response, meta, arg) {
167
+ const releasedAtValue = arg?.filters?.releasedAt?.$notNull;
168
+ const isActiveDoneTab = releasedAtValue === 'true';
169
+ const newResponse = {
170
+ ...response,
171
+ meta: {
172
+ ...response.meta,
173
+ activeTab: isActiveDoneTab ? 'done' : 'pending'
174
+ }
175
+ };
176
+ return newResponse;
177
+ },
178
+ providesTags: (result)=>result ? [
179
+ ...result.data.map(({ id })=>({
180
+ type: 'Release',
181
+ id
182
+ })),
183
+ {
184
+ type: 'Release',
185
+ id: 'LIST'
186
+ }
187
+ ] : [
188
+ {
189
+ type: 'Release',
190
+ id: 'LIST'
191
+ }
192
+ ]
193
+ }),
194
+ getRelease: build.query({
195
+ query ({ id }) {
196
+ return {
197
+ url: `/content-releases/${id}`,
198
+ method: 'GET'
199
+ };
200
+ },
201
+ providesTags: (result, error, arg)=>[
202
+ {
203
+ type: 'Release',
204
+ id: 'LIST'
205
+ },
206
+ {
207
+ type: 'Release',
208
+ id: arg.id
209
+ }
210
+ ]
211
+ }),
212
+ getReleaseActions: build.query({
213
+ query ({ releaseId, ...params }) {
214
+ return {
215
+ url: `/content-releases/${releaseId}/actions`,
216
+ method: 'GET',
217
+ config: {
218
+ params
219
+ }
220
+ };
221
+ },
222
+ providesTags: [
223
+ {
224
+ type: 'ReleaseAction',
225
+ id: 'LIST'
226
+ }
227
+ ]
228
+ }),
229
+ createRelease: build.mutation({
230
+ query (data) {
231
+ return {
232
+ url: '/content-releases',
233
+ method: 'POST',
234
+ data
235
+ };
236
+ },
237
+ invalidatesTags: [
238
+ {
239
+ type: 'Release',
240
+ id: 'LIST'
241
+ }
242
+ ]
243
+ }),
244
+ updateRelease: build.mutation({
245
+ query ({ id, ...data }) {
246
+ return {
247
+ url: `/content-releases/${id}`,
248
+ method: 'PUT',
249
+ data
250
+ };
251
+ },
252
+ invalidatesTags: (result, error, arg)=>[
253
+ {
254
+ type: 'Release',
255
+ id: arg.id
256
+ }
257
+ ]
258
+ }),
259
+ createReleaseAction: build.mutation({
260
+ query ({ body, params }) {
261
+ return {
262
+ url: `/content-releases/${params.releaseId}/actions`,
263
+ method: 'POST',
264
+ data: body
265
+ };
266
+ },
267
+ invalidatesTags: [
268
+ {
269
+ type: 'Release',
270
+ id: 'LIST'
271
+ },
272
+ {
273
+ type: 'ReleaseAction',
274
+ id: 'LIST'
275
+ }
276
+ ]
277
+ }),
278
+ createManyReleaseActions: build.mutation({
279
+ query ({ body, params }) {
280
+ return {
281
+ url: `/content-releases/${params.releaseId}/actions/bulk`,
282
+ method: 'POST',
283
+ data: body
284
+ };
285
+ },
286
+ invalidatesTags: [
287
+ {
288
+ type: 'Release',
289
+ id: 'LIST'
290
+ },
291
+ {
292
+ type: 'ReleaseAction',
293
+ id: 'LIST'
294
+ },
295
+ {
296
+ type: 'EntriesInRelease'
297
+ }
298
+ ]
299
+ }),
300
+ updateReleaseAction: build.mutation({
301
+ query ({ body, params }) {
302
+ return {
303
+ url: `/content-releases/${params.releaseId}/actions/${params.actionId}`,
304
+ method: 'PUT',
305
+ data: body
306
+ };
307
+ },
308
+ invalidatesTags: (res, error, arg)=>[
309
+ {
310
+ type: 'ReleaseAction',
311
+ id: 'LIST'
312
+ },
313
+ {
314
+ type: 'Release',
315
+ id: 'LIST'
316
+ },
317
+ {
318
+ type: 'Release',
319
+ id: arg.params.releaseId
320
+ }
321
+ ],
322
+ async onQueryStarted ({ body, params, query, actionPath }, { dispatch, queryFulfilled }) {
323
+ // We need to mimic the same params received by the getReleaseActions query
324
+ const paramsWithoutActionId = {
325
+ releaseId: params.releaseId,
326
+ ...query
327
+ };
328
+ const patchResult = dispatch(releaseApi.util.updateQueryData('getReleaseActions', paramsWithoutActionId, (draft)=>{
329
+ const [key, index] = actionPath;
330
+ const action = draft.data[key][index];
331
+ if (action) {
332
+ action.type = body.type;
333
+ }
334
+ }));
335
+ try {
336
+ await queryFulfilled;
337
+ } catch {
338
+ patchResult.undo();
339
+ }
340
+ }
341
+ }),
342
+ deleteReleaseAction: build.mutation({
343
+ query ({ params }) {
344
+ return {
345
+ url: `/content-releases/${params.releaseId}/actions/${params.actionId}`,
346
+ method: 'DELETE'
347
+ };
348
+ },
349
+ invalidatesTags: (result, error, arg)=>[
350
+ {
351
+ type: 'Release',
352
+ id: 'LIST'
353
+ },
354
+ {
355
+ type: 'Release',
356
+ id: arg.params.releaseId
357
+ },
358
+ {
359
+ type: 'ReleaseAction',
360
+ id: 'LIST'
361
+ },
362
+ {
363
+ type: 'EntriesInRelease'
364
+ }
365
+ ]
366
+ }),
367
+ publishRelease: build.mutation({
368
+ query ({ id }) {
369
+ return {
370
+ url: `/content-releases/${id}/publish`,
371
+ method: 'POST'
372
+ };
373
+ },
374
+ invalidatesTags: (result, error, arg)=>[
375
+ {
376
+ type: 'Release',
377
+ id: arg.id
378
+ },
379
+ {
380
+ type: 'Document',
381
+ id: `ALL_LIST`
382
+ }
383
+ ]
384
+ }),
385
+ deleteRelease: build.mutation({
386
+ query ({ id }) {
387
+ return {
388
+ url: `/content-releases/${id}`,
389
+ method: 'DELETE'
390
+ };
391
+ },
392
+ invalidatesTags: ()=>[
393
+ {
394
+ type: 'Release',
395
+ id: 'LIST'
396
+ },
397
+ {
398
+ type: 'EntriesInRelease'
399
+ }
400
+ ]
401
+ }),
402
+ getMappedEntriesInReleases: build.query({
403
+ query (params) {
404
+ return {
405
+ url: '/content-releases/mapEntriesToReleases',
406
+ method: 'GET',
407
+ config: {
408
+ params
409
+ }
410
+ };
411
+ },
412
+ transformResponse (response) {
413
+ return response.data;
414
+ },
415
+ providesTags: [
416
+ {
417
+ type: 'EntriesInRelease'
418
+ }
419
+ ]
420
+ }),
421
+ getReleaseSettings: build.query({
422
+ query: ()=>'/content-releases/settings',
423
+ providesTags: [
424
+ {
425
+ type: 'ReleaseSettings'
426
+ }
427
+ ]
428
+ }),
429
+ updateReleaseSettings: build.mutation({
430
+ query (data) {
431
+ return {
432
+ url: '/content-releases/settings',
433
+ method: 'PUT',
434
+ data
435
+ };
436
+ },
437
+ invalidatesTags: [
438
+ {
439
+ type: 'ReleaseSettings'
440
+ }
441
+ ]
442
+ })
443
+ };
444
+ }
445
+ });
446
+ const { useGetReleasesQuery, useGetReleasesForEntryQuery, useGetReleaseQuery, useGetReleaseActionsQuery, useCreateReleaseMutation, useCreateReleaseActionMutation, useCreateManyReleaseActionsMutation, useUpdateReleaseMutation, useUpdateReleaseActionMutation, usePublishReleaseMutation, useDeleteReleaseActionMutation, useDeleteReleaseMutation, useGetMappedEntriesInReleasesQuery, useGetReleaseSettingsQuery, useUpdateReleaseSettingsMutation } = releaseApi;
447
+
448
+ exports.releaseApi = releaseApi;
449
+ exports.useCreateManyReleaseActionsMutation = useCreateManyReleaseActionsMutation;
450
+ exports.useCreateReleaseActionMutation = useCreateReleaseActionMutation;
451
+ exports.useCreateReleaseMutation = useCreateReleaseMutation;
452
+ exports.useDeleteReleaseActionMutation = useDeleteReleaseActionMutation;
453
+ exports.useDeleteReleaseMutation = useDeleteReleaseMutation;
454
+ exports.useGetMappedEntriesInReleasesQuery = useGetMappedEntriesInReleasesQuery;
455
+ exports.useGetReleaseActionsQuery = useGetReleaseActionsQuery;
456
+ exports.useGetReleaseQuery = useGetReleaseQuery;
457
+ exports.useGetReleaseSettingsQuery = useGetReleaseSettingsQuery;
458
+ exports.useGetReleasesForEntryQuery = useGetReleasesForEntryQuery;
459
+ exports.useGetReleasesQuery = useGetReleasesQuery;
460
+ exports.usePublishReleaseMutation = usePublishReleaseMutation;
461
+ exports.useUpdateReleaseActionMutation = useUpdateReleaseActionMutation;
462
+ exports.useUpdateReleaseMutation = useUpdateReleaseMutation;
463
+ exports.useUpdateReleaseSettingsMutation = useUpdateReleaseSettingsMutation;
464
+ //# sourceMappingURL=release.js.map