@strapi/content-releases 0.0.0-experimental.d23f1485e5669cca1cee1bf5f8168b6b8109b78f → 0.0.0-experimental.d2ab08126cfde998bfecc0aad44d3ea2b29293a6

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 (380) hide show
  1. package/dist/_chunks/App-dLXY5ei3.js +1353 -0
  2. package/dist/_chunks/App-dLXY5ei3.js.map +1 -0
  3. package/dist/_chunks/App-jrh58sXY.mjs +1330 -0
  4. package/dist/_chunks/App-jrh58sXY.mjs.map +1 -0
  5. package/dist/_chunks/PurchaseContentReleases-3tRbmbY3.mjs +51 -0
  6. package/dist/_chunks/PurchaseContentReleases-3tRbmbY3.mjs.map +1 -0
  7. package/dist/_chunks/PurchaseContentReleases-bpIYXOfu.js +51 -0
  8. package/dist/_chunks/PurchaseContentReleases-bpIYXOfu.js.map +1 -0
  9. package/dist/_chunks/en-HrREghh3.js +86 -0
  10. package/dist/_chunks/en-HrREghh3.js.map +1 -0
  11. package/dist/_chunks/en-ltT1TlKQ.mjs +86 -0
  12. package/dist/_chunks/en-ltT1TlKQ.mjs.map +1 -0
  13. package/dist/_chunks/index-CVO0Rqdm.js +1336 -0
  14. package/dist/_chunks/index-CVO0Rqdm.js.map +1 -0
  15. package/dist/_chunks/index-PiOGBETy.mjs +1315 -0
  16. package/dist/_chunks/index-PiOGBETy.mjs.map +1 -0
  17. package/dist/admin/index.js +18 -148
  18. package/dist/admin/index.js.map +1 -1
  19. package/dist/admin/index.mjs +18 -143
  20. package/dist/admin/index.mjs.map +1 -1
  21. package/dist/server/index.js +1784 -25
  22. package/dist/server/index.js.map +1 -1
  23. package/dist/server/index.mjs +1763 -24
  24. package/dist/server/index.mjs.map +1 -1
  25. package/package.json +43 -39
  26. package/strapi-server.js +3 -0
  27. package/dist/admin/assets/purchase-page-illustration-dark.svg.js +0 -6
  28. package/dist/admin/assets/purchase-page-illustration-dark.svg.js.map +0 -1
  29. package/dist/admin/assets/purchase-page-illustration-dark.svg.mjs +0 -4
  30. package/dist/admin/assets/purchase-page-illustration-dark.svg.mjs.map +0 -1
  31. package/dist/admin/assets/purchase-page-illustration-light.svg.js +0 -6
  32. package/dist/admin/assets/purchase-page-illustration-light.svg.js.map +0 -1
  33. package/dist/admin/assets/purchase-page-illustration-light.svg.mjs +0 -4
  34. package/dist/admin/assets/purchase-page-illustration-light.svg.mjs.map +0 -1
  35. package/dist/admin/components/EntryValidationPopover.js +0 -310
  36. package/dist/admin/components/EntryValidationPopover.js.map +0 -1
  37. package/dist/admin/components/EntryValidationPopover.mjs +0 -308
  38. package/dist/admin/components/EntryValidationPopover.mjs.map +0 -1
  39. package/dist/admin/components/RelativeTime.js +0 -76
  40. package/dist/admin/components/RelativeTime.js.map +0 -1
  41. package/dist/admin/components/RelativeTime.mjs +0 -55
  42. package/dist/admin/components/RelativeTime.mjs.map +0 -1
  43. package/dist/admin/components/ReleaseAction.js +0 -203
  44. package/dist/admin/components/ReleaseAction.js.map +0 -1
  45. package/dist/admin/components/ReleaseAction.mjs +0 -201
  46. package/dist/admin/components/ReleaseAction.mjs.map +0 -1
  47. package/dist/admin/components/ReleaseActionMenu.js +0 -194
  48. package/dist/admin/components/ReleaseActionMenu.js.map +0 -1
  49. package/dist/admin/components/ReleaseActionMenu.mjs +0 -173
  50. package/dist/admin/components/ReleaseActionMenu.mjs.map +0 -1
  51. package/dist/admin/components/ReleaseActionModal.js +0 -268
  52. package/dist/admin/components/ReleaseActionModal.js.map +0 -1
  53. package/dist/admin/components/ReleaseActionModal.mjs +0 -244
  54. package/dist/admin/components/ReleaseActionModal.mjs.map +0 -1
  55. package/dist/admin/components/ReleaseActionOptions.js +0 -104
  56. package/dist/admin/components/ReleaseActionOptions.js.map +0 -1
  57. package/dist/admin/components/ReleaseActionOptions.mjs +0 -102
  58. package/dist/admin/components/ReleaseActionOptions.mjs.map +0 -1
  59. package/dist/admin/components/ReleaseListCell.js +0 -103
  60. package/dist/admin/components/ReleaseListCell.js.map +0 -1
  61. package/dist/admin/components/ReleaseListCell.mjs +0 -100
  62. package/dist/admin/components/ReleaseListCell.mjs.map +0 -1
  63. package/dist/admin/components/ReleaseModal.js +0 -323
  64. package/dist/admin/components/ReleaseModal.js.map +0 -1
  65. package/dist/admin/components/ReleaseModal.mjs +0 -302
  66. package/dist/admin/components/ReleaseModal.mjs.map +0 -1
  67. package/dist/admin/components/ReleasesPanel.js +0 -138
  68. package/dist/admin/components/ReleasesPanel.js.map +0 -1
  69. package/dist/admin/components/ReleasesPanel.mjs +0 -136
  70. package/dist/admin/components/ReleasesPanel.mjs.map +0 -1
  71. package/dist/admin/components/Widgets.js +0 -122
  72. package/dist/admin/components/Widgets.js.map +0 -1
  73. package/dist/admin/components/Widgets.mjs +0 -120
  74. package/dist/admin/components/Widgets.mjs.map +0 -1
  75. package/dist/admin/constants.js +0 -79
  76. package/dist/admin/constants.js.map +0 -1
  77. package/dist/admin/constants.mjs +0 -76
  78. package/dist/admin/constants.mjs.map +0 -1
  79. package/dist/admin/modules/hooks.js +0 -8
  80. package/dist/admin/modules/hooks.js.map +0 -1
  81. package/dist/admin/modules/hooks.mjs +0 -6
  82. package/dist/admin/modules/hooks.mjs.map +0 -1
  83. package/dist/admin/pages/App.js +0 -29
  84. package/dist/admin/pages/App.js.map +0 -1
  85. package/dist/admin/pages/App.mjs +0 -27
  86. package/dist/admin/pages/App.mjs.map +0 -1
  87. package/dist/admin/pages/PurchaseContentReleases.js +0 -192
  88. package/dist/admin/pages/PurchaseContentReleases.js.map +0 -1
  89. package/dist/admin/pages/PurchaseContentReleases.mjs +0 -190
  90. package/dist/admin/pages/PurchaseContentReleases.mjs.map +0 -1
  91. package/dist/admin/pages/ReleaseDetailsPage.js +0 -772
  92. package/dist/admin/pages/ReleaseDetailsPage.js.map +0 -1
  93. package/dist/admin/pages/ReleaseDetailsPage.mjs +0 -751
  94. package/dist/admin/pages/ReleaseDetailsPage.mjs.map +0 -1
  95. package/dist/admin/pages/ReleasesPage.js +0 -403
  96. package/dist/admin/pages/ReleasesPage.js.map +0 -1
  97. package/dist/admin/pages/ReleasesPage.mjs +0 -381
  98. package/dist/admin/pages/ReleasesPage.mjs.map +0 -1
  99. package/dist/admin/pages/ReleasesSettingsPage.js +0 -225
  100. package/dist/admin/pages/ReleasesSettingsPage.js.map +0 -1
  101. package/dist/admin/pages/ReleasesSettingsPage.mjs +0 -223
  102. package/dist/admin/pages/ReleasesSettingsPage.mjs.map +0 -1
  103. package/dist/admin/pluginId.js +0 -6
  104. package/dist/admin/pluginId.js.map +0 -1
  105. package/dist/admin/pluginId.mjs +0 -4
  106. package/dist/admin/pluginId.mjs.map +0 -1
  107. package/dist/admin/services/homepage.js +0 -24
  108. package/dist/admin/services/homepage.js.map +0 -1
  109. package/dist/admin/services/homepage.mjs +0 -22
  110. package/dist/admin/services/homepage.mjs.map +0 -1
  111. package/dist/admin/services/release.js +0 -474
  112. package/dist/admin/services/release.js.map +0 -1
  113. package/dist/admin/services/release.mjs +0 -457
  114. package/dist/admin/services/release.mjs.map +0 -1
  115. package/dist/admin/src/components/EntryValidationPopover.d.ts +0 -13
  116. package/dist/admin/src/components/RelativeTime.d.ts +0 -28
  117. package/dist/admin/src/components/ReleaseAction.d.ts +0 -3
  118. package/dist/admin/src/components/ReleaseActionMenu.d.ts +0 -26
  119. package/dist/admin/src/components/ReleaseActionModal.d.ts +0 -24
  120. package/dist/admin/src/components/ReleaseActionOptions.d.ts +0 -9
  121. package/dist/admin/src/components/ReleaseListCell.d.ts +0 -28
  122. package/dist/admin/src/components/ReleaseModal.d.ts +0 -17
  123. package/dist/admin/src/components/ReleasesPanel.d.ts +0 -3
  124. package/dist/admin/src/components/Widgets.d.ts +0 -2
  125. package/dist/admin/src/constants.d.ts +0 -77
  126. package/dist/admin/src/index.d.ts +0 -3
  127. package/dist/admin/src/modules/hooks.d.ts +0 -7
  128. package/dist/admin/src/pages/App.d.ts +0 -1
  129. package/dist/admin/src/pages/PurchaseContentReleases.d.ts +0 -2
  130. package/dist/admin/src/pages/ReleaseDetailsPage.d.ts +0 -2
  131. package/dist/admin/src/pages/ReleasesPage.d.ts +0 -8
  132. package/dist/admin/src/pages/ReleasesSettingsPage.d.ts +0 -1
  133. package/dist/admin/src/pages/tests/mockReleaseDetailsPageData.d.ts +0 -181
  134. package/dist/admin/src/pages/tests/mockReleasesPageData.d.ts +0 -39
  135. package/dist/admin/src/pluginId.d.ts +0 -1
  136. package/dist/admin/src/services/homepage.d.ts +0 -9
  137. package/dist/admin/src/services/release.d.ts +0 -112
  138. package/dist/admin/src/store/hooks.d.ts +0 -7
  139. package/dist/admin/src/utils/api.d.ts +0 -6
  140. package/dist/admin/src/utils/prefixPluginTranslations.d.ts +0 -3
  141. package/dist/admin/src/utils/time.d.ts +0 -10
  142. package/dist/admin/src/validation/schemas.d.ts +0 -6
  143. package/dist/admin/store/hooks.js +0 -8
  144. package/dist/admin/store/hooks.js.map +0 -1
  145. package/dist/admin/store/hooks.mjs +0 -6
  146. package/dist/admin/store/hooks.mjs.map +0 -1
  147. package/dist/admin/translations/en.json.js +0 -111
  148. package/dist/admin/translations/en.json.js.map +0 -1
  149. package/dist/admin/translations/en.json.mjs +0 -109
  150. package/dist/admin/translations/en.json.mjs.map +0 -1
  151. package/dist/admin/translations/uk.json.js +0 -103
  152. package/dist/admin/translations/uk.json.js.map +0 -1
  153. package/dist/admin/translations/uk.json.mjs +0 -101
  154. package/dist/admin/translations/uk.json.mjs.map +0 -1
  155. package/dist/admin/utils/api.js +0 -8
  156. package/dist/admin/utils/api.js.map +0 -1
  157. package/dist/admin/utils/api.mjs +0 -6
  158. package/dist/admin/utils/api.mjs.map +0 -1
  159. package/dist/admin/utils/prefixPluginTranslations.js +0 -11
  160. package/dist/admin/utils/prefixPluginTranslations.js.map +0 -1
  161. package/dist/admin/utils/prefixPluginTranslations.mjs +0 -9
  162. package/dist/admin/utils/prefixPluginTranslations.mjs.map +0 -1
  163. package/dist/admin/utils/time.js +0 -42
  164. package/dist/admin/utils/time.js.map +0 -1
  165. package/dist/admin/utils/time.mjs +0 -39
  166. package/dist/admin/utils/time.mjs.map +0 -1
  167. package/dist/admin/validation/schemas.js +0 -65
  168. package/dist/admin/validation/schemas.js.map +0 -1
  169. package/dist/admin/validation/schemas.mjs +0 -43
  170. package/dist/admin/validation/schemas.mjs.map +0 -1
  171. package/dist/server/bootstrap.js +0 -68
  172. package/dist/server/bootstrap.js.map +0 -1
  173. package/dist/server/bootstrap.mjs +0 -66
  174. package/dist/server/bootstrap.mjs.map +0 -1
  175. package/dist/server/constants.js +0 -74
  176. package/dist/server/constants.js.map +0 -1
  177. package/dist/server/constants.mjs +0 -69
  178. package/dist/server/constants.mjs.map +0 -1
  179. package/dist/server/content-types/index.js +0 -12
  180. package/dist/server/content-types/index.js.map +0 -1
  181. package/dist/server/content-types/index.mjs +0 -10
  182. package/dist/server/content-types/index.mjs.map +0 -1
  183. package/dist/server/content-types/release/index.js +0 -10
  184. package/dist/server/content-types/release/index.js.map +0 -1
  185. package/dist/server/content-types/release/index.mjs +0 -8
  186. package/dist/server/content-types/release/index.mjs.map +0 -1
  187. package/dist/server/content-types/release/schema.js +0 -58
  188. package/dist/server/content-types/release/schema.js.map +0 -1
  189. package/dist/server/content-types/release/schema.mjs +0 -56
  190. package/dist/server/content-types/release/schema.mjs.map +0 -1
  191. package/dist/server/content-types/release-action/index.js +0 -10
  192. package/dist/server/content-types/release-action/index.js.map +0 -1
  193. package/dist/server/content-types/release-action/index.mjs +0 -8
  194. package/dist/server/content-types/release-action/index.mjs.map +0 -1
  195. package/dist/server/content-types/release-action/schema.js +0 -55
  196. package/dist/server/content-types/release-action/schema.js.map +0 -1
  197. package/dist/server/content-types/release-action/schema.mjs +0 -53
  198. package/dist/server/content-types/release-action/schema.mjs.map +0 -1
  199. package/dist/server/controllers/homepage.js +0 -15
  200. package/dist/server/controllers/homepage.js.map +0 -1
  201. package/dist/server/controllers/homepage.mjs +0 -13
  202. package/dist/server/controllers/homepage.mjs.map +0 -1
  203. package/dist/server/controllers/index.js +0 -16
  204. package/dist/server/controllers/index.js.map +0 -1
  205. package/dist/server/controllers/index.mjs +0 -14
  206. package/dist/server/controllers/index.mjs.map +0 -1
  207. package/dist/server/controllers/release-action.js +0 -150
  208. package/dist/server/controllers/release-action.js.map +0 -1
  209. package/dist/server/controllers/release-action.mjs +0 -148
  210. package/dist/server/controllers/release-action.mjs.map +0 -1
  211. package/dist/server/controllers/release.js +0 -302
  212. package/dist/server/controllers/release.js.map +0 -1
  213. package/dist/server/controllers/release.mjs +0 -300
  214. package/dist/server/controllers/release.mjs.map +0 -1
  215. package/dist/server/controllers/settings.js +0 -37
  216. package/dist/server/controllers/settings.js.map +0 -1
  217. package/dist/server/controllers/settings.mjs +0 -35
  218. package/dist/server/controllers/settings.mjs.map +0 -1
  219. package/dist/server/controllers/validation/release-action.js +0 -34
  220. package/dist/server/controllers/validation/release-action.js.map +0 -1
  221. package/dist/server/controllers/validation/release-action.mjs +0 -30
  222. package/dist/server/controllers/validation/release-action.mjs.map +0 -1
  223. package/dist/server/controllers/validation/release.js +0 -26
  224. package/dist/server/controllers/validation/release.js.map +0 -1
  225. package/dist/server/controllers/validation/release.mjs +0 -22
  226. package/dist/server/controllers/validation/release.mjs.map +0 -1
  227. package/dist/server/controllers/validation/settings.js +0 -32
  228. package/dist/server/controllers/validation/settings.js.map +0 -1
  229. package/dist/server/controllers/validation/settings.mjs +0 -10
  230. package/dist/server/controllers/validation/settings.mjs.map +0 -1
  231. package/dist/server/destroy.js +0 -15
  232. package/dist/server/destroy.js.map +0 -1
  233. package/dist/server/destroy.mjs +0 -13
  234. package/dist/server/destroy.mjs.map +0 -1
  235. package/dist/server/middlewares/documents.js +0 -104
  236. package/dist/server/middlewares/documents.js.map +0 -1
  237. package/dist/server/middlewares/documents.mjs +0 -101
  238. package/dist/server/middlewares/documents.mjs.map +0 -1
  239. package/dist/server/migrations/database/5.0.0-document-id-in-actions.js +0 -51
  240. package/dist/server/migrations/database/5.0.0-document-id-in-actions.js.map +0 -1
  241. package/dist/server/migrations/database/5.0.0-document-id-in-actions.mjs +0 -49
  242. package/dist/server/migrations/database/5.0.0-document-id-in-actions.mjs.map +0 -1
  243. package/dist/server/migrations/index.js +0 -205
  244. package/dist/server/migrations/index.js.map +0 -1
  245. package/dist/server/migrations/index.mjs +0 -198
  246. package/dist/server/migrations/index.mjs.map +0 -1
  247. package/dist/server/register.js +0 -23
  248. package/dist/server/register.js.map +0 -1
  249. package/dist/server/register.mjs +0 -21
  250. package/dist/server/register.mjs.map +0 -1
  251. package/dist/server/routes/homepage.js +0 -25
  252. package/dist/server/routes/homepage.js.map +0 -1
  253. package/dist/server/routes/homepage.mjs +0 -23
  254. package/dist/server/routes/homepage.mjs.map +0 -1
  255. package/dist/server/routes/index.js +0 -16
  256. package/dist/server/routes/index.js.map +0 -1
  257. package/dist/server/routes/index.mjs +0 -14
  258. package/dist/server/routes/index.mjs.map +0 -1
  259. package/dist/server/routes/release-action.js +0 -100
  260. package/dist/server/routes/release-action.js.map +0 -1
  261. package/dist/server/routes/release-action.mjs +0 -98
  262. package/dist/server/routes/release-action.mjs.map +0 -1
  263. package/dist/server/routes/release.js +0 -154
  264. package/dist/server/routes/release.js.map +0 -1
  265. package/dist/server/routes/release.mjs +0 -152
  266. package/dist/server/routes/release.mjs.map +0 -1
  267. package/dist/server/routes/settings.js +0 -46
  268. package/dist/server/routes/settings.js.map +0 -1
  269. package/dist/server/routes/settings.mjs +0 -44
  270. package/dist/server/routes/settings.mjs.map +0 -1
  271. package/dist/server/services/homepage.js +0 -26
  272. package/dist/server/services/homepage.js.map +0 -1
  273. package/dist/server/services/homepage.mjs +0 -24
  274. package/dist/server/services/homepage.mjs.map +0 -1
  275. package/dist/server/services/index.js +0 -20
  276. package/dist/server/services/index.js.map +0 -1
  277. package/dist/server/services/index.mjs +0 -18
  278. package/dist/server/services/index.mjs.map +0 -1
  279. package/dist/server/services/release-action.js +0 -324
  280. package/dist/server/services/release-action.js.map +0 -1
  281. package/dist/server/services/release-action.mjs +0 -322
  282. package/dist/server/services/release-action.mjs.map +0 -1
  283. package/dist/server/services/release.js +0 -324
  284. package/dist/server/services/release.js.map +0 -1
  285. package/dist/server/services/release.mjs +0 -322
  286. package/dist/server/services/release.mjs.map +0 -1
  287. package/dist/server/services/scheduling.js +0 -74
  288. package/dist/server/services/scheduling.js.map +0 -1
  289. package/dist/server/services/scheduling.mjs +0 -72
  290. package/dist/server/services/scheduling.mjs.map +0 -1
  291. package/dist/server/services/settings.js +0 -34
  292. package/dist/server/services/settings.js.map +0 -1
  293. package/dist/server/services/settings.mjs +0 -32
  294. package/dist/server/services/settings.mjs.map +0 -1
  295. package/dist/server/services/validation.js +0 -91
  296. package/dist/server/services/validation.js.map +0 -1
  297. package/dist/server/services/validation.mjs +0 -86
  298. package/dist/server/services/validation.mjs.map +0 -1
  299. package/dist/server/src/bootstrap.d.ts +0 -5
  300. package/dist/server/src/bootstrap.d.ts.map +0 -1
  301. package/dist/server/src/constants.d.ts +0 -21
  302. package/dist/server/src/constants.d.ts.map +0 -1
  303. package/dist/server/src/content-types/index.d.ts +0 -97
  304. package/dist/server/src/content-types/index.d.ts.map +0 -1
  305. package/dist/server/src/content-types/release/index.d.ts +0 -48
  306. package/dist/server/src/content-types/release/index.d.ts.map +0 -1
  307. package/dist/server/src/content-types/release/schema.d.ts +0 -47
  308. package/dist/server/src/content-types/release/schema.d.ts.map +0 -1
  309. package/dist/server/src/content-types/release-action/index.d.ts +0 -48
  310. package/dist/server/src/content-types/release-action/index.d.ts.map +0 -1
  311. package/dist/server/src/content-types/release-action/schema.d.ts +0 -47
  312. package/dist/server/src/content-types/release-action/schema.d.ts.map +0 -1
  313. package/dist/server/src/controllers/homepage.d.ts +0 -6
  314. package/dist/server/src/controllers/homepage.d.ts.map +0 -1
  315. package/dist/server/src/controllers/index.d.ts +0 -28
  316. package/dist/server/src/controllers/index.d.ts.map +0 -1
  317. package/dist/server/src/controllers/release-action.d.ts +0 -10
  318. package/dist/server/src/controllers/release-action.d.ts.map +0 -1
  319. package/dist/server/src/controllers/release.d.ts +0 -18
  320. package/dist/server/src/controllers/release.d.ts.map +0 -1
  321. package/dist/server/src/controllers/settings.d.ts +0 -11
  322. package/dist/server/src/controllers/settings.d.ts.map +0 -1
  323. package/dist/server/src/controllers/validation/release-action.d.ts +0 -14
  324. package/dist/server/src/controllers/validation/release-action.d.ts.map +0 -1
  325. package/dist/server/src/controllers/validation/release.d.ts +0 -4
  326. package/dist/server/src/controllers/validation/release.d.ts.map +0 -1
  327. package/dist/server/src/controllers/validation/settings.d.ts +0 -3
  328. package/dist/server/src/controllers/validation/settings.d.ts.map +0 -1
  329. package/dist/server/src/destroy.d.ts +0 -5
  330. package/dist/server/src/destroy.d.ts.map +0 -1
  331. package/dist/server/src/index.d.ts +0 -2120
  332. package/dist/server/src/index.d.ts.map +0 -1
  333. package/dist/server/src/middlewares/documents.d.ts +0 -6
  334. package/dist/server/src/middlewares/documents.d.ts.map +0 -1
  335. package/dist/server/src/migrations/database/5.0.0-document-id-in-actions.d.ts +0 -9
  336. package/dist/server/src/migrations/database/5.0.0-document-id-in-actions.d.ts.map +0 -1
  337. package/dist/server/src/migrations/index.d.ts +0 -13
  338. package/dist/server/src/migrations/index.d.ts.map +0 -1
  339. package/dist/server/src/register.d.ts +0 -5
  340. package/dist/server/src/register.d.ts.map +0 -1
  341. package/dist/server/src/routes/homepage.d.ts +0 -4
  342. package/dist/server/src/routes/homepage.d.ts.map +0 -1
  343. package/dist/server/src/routes/index.d.ts +0 -52
  344. package/dist/server/src/routes/index.d.ts.map +0 -1
  345. package/dist/server/src/routes/release-action.d.ts +0 -18
  346. package/dist/server/src/routes/release-action.d.ts.map +0 -1
  347. package/dist/server/src/routes/release.d.ts +0 -18
  348. package/dist/server/src/routes/release.d.ts.map +0 -1
  349. package/dist/server/src/routes/settings.d.ts +0 -18
  350. package/dist/server/src/routes/settings.d.ts.map +0 -1
  351. package/dist/server/src/services/homepage.d.ts +0 -9
  352. package/dist/server/src/services/homepage.d.ts.map +0 -1
  353. package/dist/server/src/services/index.d.ts +0 -1829
  354. package/dist/server/src/services/index.d.ts.map +0 -1
  355. package/dist/server/src/services/release-action.d.ts +0 -34
  356. package/dist/server/src/services/release-action.d.ts.map +0 -1
  357. package/dist/server/src/services/release.d.ts +0 -31
  358. package/dist/server/src/services/release.d.ts.map +0 -1
  359. package/dist/server/src/services/scheduling.d.ts +0 -17
  360. package/dist/server/src/services/scheduling.d.ts.map +0 -1
  361. package/dist/server/src/services/settings.d.ts +0 -13
  362. package/dist/server/src/services/settings.d.ts.map +0 -1
  363. package/dist/server/src/services/validation.d.ts +0 -18
  364. package/dist/server/src/services/validation.d.ts.map +0 -1
  365. package/dist/server/src/utils/index.d.ts +0 -35
  366. package/dist/server/src/utils/index.d.ts.map +0 -1
  367. package/dist/server/utils/index.js +0 -94
  368. package/dist/server/utils/index.js.map +0 -1
  369. package/dist/server/utils/index.mjs +0 -88
  370. package/dist/server/utils/index.mjs.map +0 -1
  371. package/dist/shared/contracts/homepage.d.ts +0 -11
  372. package/dist/shared/contracts/homepage.d.ts.map +0 -1
  373. package/dist/shared/contracts/release-actions.d.ts +0 -136
  374. package/dist/shared/contracts/release-actions.d.ts.map +0 -1
  375. package/dist/shared/contracts/releases.d.ts +0 -183
  376. package/dist/shared/contracts/releases.d.ts.map +0 -1
  377. package/dist/shared/contracts/settings.d.ts +0 -38
  378. package/dist/shared/contracts/settings.d.ts.map +0 -1
  379. package/dist/shared/types.d.ts +0 -24
  380. package/dist/shared/types.d.ts.map +0 -1
@@ -1,91 +0,0 @@
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
@@ -1 +0,0 @@
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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"}
@@ -1,86 +0,0 @@
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
@@ -1 +0,0 @@
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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"}
@@ -1,5 +0,0 @@
1
- import type { Core } from '@strapi/types';
2
- export declare const bootstrap: ({ strapi }: {
3
- strapi: Core.Strapi;
4
- }) => Promise<void>;
5
- //# sourceMappingURL=bootstrap.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,21 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,97 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/content-types/index.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGxB,CAAC"}
@@ -1,48 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../server/src/content-types/release/index.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAEnB,CAAC"}
@@ -1,47 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../server/src/content-types/release/schema.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,wBA4CE"}
@@ -1,48 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,47 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../server/src/content-types/release-action/schema.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,wBA4CE"}
@@ -1,6 +0,0 @@
1
- import type { GetUpcomingReleases } from '../../../shared/contracts/homepage';
2
- declare const homepageController: () => {
3
- getUpcomingReleases(): Promise<GetUpcomingReleases.Response>;
4
- };
5
- export default homepageController;
6
- //# sourceMappingURL=homepage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"homepage.d.ts","sourceRoot":"","sources":["../../../../server/src/controllers/homepage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAE9E,QAAA,MAAM,kBAAkB;2BAIS,QAAQ,4BAA4B,CAAC;CAIrE,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -1,28 +0,0 @@
1
- /// <reference types="koa" />
2
- export declare const controllers: {
3
- homepage: () => {
4
- getUpcomingReleases(): Promise<import("../../../shared/contracts/homepage").GetUpcomingReleases.Response>;
5
- };
6
- release: {
7
- findByDocumentAttached(ctx: import("koa").Context): Promise<void>;
8
- findPage(ctx: import("koa").Context): Promise<void>;
9
- findOne(ctx: import("koa").Context): Promise<void>;
10
- mapEntriesToReleases(ctx: import("koa").Context): Promise<void>;
11
- create(ctx: import("koa").Context): Promise<void>;
12
- update(ctx: import("koa").Context): Promise<void>;
13
- delete(ctx: import("koa").Context): Promise<void>;
14
- publish(ctx: import("koa").Context): Promise<void>;
15
- };
16
- 'release-action': {
17
- create(ctx: import("koa").Context): Promise<void>;
18
- createMany(ctx: import("koa").Context): Promise<void>;
19
- findMany(ctx: import("koa").Context): Promise<void>;
20
- update(ctx: import("koa").Context): Promise<void>;
21
- delete(ctx: import("koa").Context): Promise<void>;
22
- };
23
- settings: {
24
- find(ctx: import("koa").Context): Promise<void>;
25
- update(ctx: import("koa").Context): Promise<void>;
26
- };
27
- };
28
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/controllers/index.ts"],"names":[],"mappings":";AAKA,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;CAKvB,CAAC"}
@@ -1,10 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,18 +0,0 @@
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
@@ -1 +0,0 @@
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"}