@strapi/admin 5.57.0 → 5.59.0

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 (415) hide show
  1. package/dist/admin/admin/src/StrapiApp.js.map +1 -1
  2. package/dist/admin/admin/src/StrapiApp.mjs.map +1 -1
  3. package/dist/admin/admin/src/components/ConfirmDialog.js +10 -9
  4. package/dist/admin/admin/src/components/ConfirmDialog.js.map +1 -1
  5. package/dist/admin/admin/src/components/ConfirmDialog.mjs +10 -9
  6. package/dist/admin/admin/src/components/ConfirmDialog.mjs.map +1 -1
  7. package/dist/admin/admin/src/components/Filters.js +57 -12
  8. package/dist/admin/admin/src/components/Filters.js.map +1 -1
  9. package/dist/admin/admin/src/components/Filters.mjs +57 -12
  10. package/dist/admin/admin/src/components/Filters.mjs.map +1 -1
  11. package/dist/admin/admin/src/components/Form.js +3 -1
  12. package/dist/admin/admin/src/components/Form.js.map +1 -1
  13. package/dist/admin/admin/src/components/Form.mjs +3 -1
  14. package/dist/admin/admin/src/components/Form.mjs.map +1 -1
  15. package/dist/admin/admin/src/components/FormInputs/Boolean.js +3 -2
  16. package/dist/admin/admin/src/components/FormInputs/Boolean.js.map +1 -1
  17. package/dist/admin/admin/src/components/FormInputs/Boolean.mjs +3 -2
  18. package/dist/admin/admin/src/components/FormInputs/Boolean.mjs.map +1 -1
  19. package/dist/admin/admin/src/components/FormInputs/Enumeration.js +2 -1
  20. package/dist/admin/admin/src/components/FormInputs/Enumeration.js.map +1 -1
  21. package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs +2 -1
  22. package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs.map +1 -1
  23. package/dist/admin/admin/src/components/LeftMenu.js +5 -1
  24. package/dist/admin/admin/src/components/LeftMenu.js.map +1 -1
  25. package/dist/admin/admin/src/components/LeftMenu.mjs +5 -1
  26. package/dist/admin/admin/src/components/LeftMenu.mjs.map +1 -1
  27. package/dist/admin/admin/src/components/PageHelpers.js +2 -1
  28. package/dist/admin/admin/src/components/PageHelpers.js.map +1 -1
  29. package/dist/admin/admin/src/components/PageHelpers.mjs +2 -1
  30. package/dist/admin/admin/src/components/PageHelpers.mjs.map +1 -1
  31. package/dist/admin/admin/src/components/Pagination.js +7 -6
  32. package/dist/admin/admin/src/components/Pagination.js.map +1 -1
  33. package/dist/admin/admin/src/components/Pagination.mjs +7 -6
  34. package/dist/admin/admin/src/components/Pagination.mjs.map +1 -1
  35. package/dist/admin/admin/src/components/RelativeTime.js +2 -1
  36. package/dist/admin/admin/src/components/RelativeTime.js.map +1 -1
  37. package/dist/admin/admin/src/components/RelativeTime.mjs +2 -1
  38. package/dist/admin/admin/src/components/RelativeTime.mjs.map +1 -1
  39. package/dist/admin/admin/src/components/SubNav.js +6 -12
  40. package/dist/admin/admin/src/components/SubNav.js.map +1 -1
  41. package/dist/admin/admin/src/components/SubNav.mjs +7 -13
  42. package/dist/admin/admin/src/components/SubNav.mjs.map +1 -1
  43. package/dist/admin/admin/src/components/Table.js +3 -1
  44. package/dist/admin/admin/src/components/Table.js.map +1 -1
  45. package/dist/admin/admin/src/components/Table.mjs +3 -1
  46. package/dist/admin/admin/src/components/Table.mjs.map +1 -1
  47. package/dist/admin/admin/src/components/UpsellBanner.js.map +1 -1
  48. package/dist/admin/admin/src/components/UpsellBanner.mjs.map +1 -1
  49. package/dist/admin/admin/src/components/WidgetRoot.js.map +1 -1
  50. package/dist/admin/admin/src/components/WidgetRoot.mjs.map +1 -1
  51. package/dist/admin/admin/src/constants.js +14 -0
  52. package/dist/admin/admin/src/constants.js.map +1 -1
  53. package/dist/admin/admin/src/constants.mjs +14 -0
  54. package/dist/admin/admin/src/constants.mjs.map +1 -1
  55. package/dist/admin/admin/src/core/apis/Plugin.js.map +1 -1
  56. package/dist/admin/admin/src/core/apis/Plugin.mjs.map +1 -1
  57. package/dist/admin/admin/src/features/Auth.js +2 -1
  58. package/dist/admin/admin/src/features/Auth.js.map +1 -1
  59. package/dist/admin/admin/src/features/Auth.mjs +2 -1
  60. package/dist/admin/admin/src/features/Auth.mjs.map +1 -1
  61. package/dist/admin/admin/src/features/StrapiApp.js.map +1 -1
  62. package/dist/admin/admin/src/features/StrapiApp.mjs.map +1 -1
  63. package/dist/admin/admin/src/features/Tracking.js.map +1 -1
  64. package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
  65. package/dist/admin/admin/src/pages/Auth/components/ResetPassword.js +6 -12
  66. package/dist/admin/admin/src/pages/Auth/components/ResetPassword.js.map +1 -1
  67. package/dist/admin/admin/src/pages/Auth/components/ResetPassword.mjs +6 -12
  68. package/dist/admin/admin/src/pages/Auth/components/ResetPassword.mjs.map +1 -1
  69. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.js.map +1 -1
  70. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.mjs.map +1 -1
  71. package/dist/admin/admin/src/pages/ProfilePage.js +2 -2
  72. package/dist/admin/admin/src/pages/ProfilePage.js.map +1 -1
  73. package/dist/admin/admin/src/pages/ProfilePage.mjs +2 -2
  74. package/dist/admin/admin/src/pages/ProfilePage.mjs.map +1 -1
  75. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js +10 -2
  76. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js.map +1 -1
  77. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs +10 -2
  78. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs.map +1 -1
  79. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.js +4 -1
  80. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.js.map +1 -1
  81. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.mjs +4 -1
  82. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.mjs.map +1 -1
  83. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js +3 -1
  84. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js.map +1 -1
  85. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.mjs +3 -1
  86. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.mjs.map +1 -1
  87. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenTypeSelect.js +2 -1
  88. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenTypeSelect.js.map +1 -1
  89. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenTypeSelect.mjs +2 -1
  90. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenTypeSelect.mjs.map +1 -1
  91. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js +6 -5
  92. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js.map +1 -1
  93. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.mjs +6 -5
  94. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.mjs.map +1 -1
  95. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js +2 -1
  96. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js.map +1 -1
  97. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.mjs +2 -1
  98. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.mjs.map +1 -1
  99. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.js +4 -4
  100. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.js.map +1 -1
  101. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.mjs +4 -4
  102. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.mjs.map +1 -1
  103. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js +7 -58
  104. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js.map +1 -1
  105. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs +7 -58
  106. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs.map +1 -1
  107. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/DiagnosticSnapshotModal.js +217 -0
  108. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/DiagnosticSnapshotModal.js.map +1 -0
  109. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/DiagnosticSnapshotModal.mjs +195 -0
  110. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/DiagnosticSnapshotModal.mjs.map +1 -0
  111. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js.map +1 -1
  112. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.mjs.map +1 -1
  113. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/PlanCard.js +185 -0
  114. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/PlanCard.js.map +1 -0
  115. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/PlanCard.mjs +162 -0
  116. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/PlanCard.mjs.map +1 -0
  117. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/SupportCard.js +342 -0
  118. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/SupportCard.js.map +1 -0
  119. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/SupportCard.mjs +320 -0
  120. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/SupportCard.mjs.map +1 -0
  121. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js +9 -4
  122. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js.map +1 -1
  123. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.mjs +9 -4
  124. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.mjs.map +1 -1
  125. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.js +15 -9
  126. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.js.map +1 -1
  127. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.mjs +15 -9
  128. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.mjs.map +1 -1
  129. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js +5 -2
  130. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js.map +1 -1
  131. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs +5 -2
  132. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs.map +1 -1
  133. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.js +2 -1
  134. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.js.map +1 -1
  135. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.mjs +2 -1
  136. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.mjs.map +1 -1
  137. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js +2 -1
  138. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js.map +1 -1
  139. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs +2 -1
  140. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs.map +1 -1
  141. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js +2 -1
  142. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js.map +1 -1
  143. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.mjs +2 -1
  144. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.mjs.map +1 -1
  145. package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.js.map +1 -1
  146. package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.mjs.map +1 -1
  147. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js +3 -1
  148. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js.map +1 -1
  149. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.mjs +3 -1
  150. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.mjs.map +1 -1
  151. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js.map +1 -1
  152. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.mjs.map +1 -1
  153. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js.map +1 -1
  154. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs.map +1 -1
  155. package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.js.map +1 -1
  156. package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.mjs.map +1 -1
  157. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.js +4 -1
  158. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.js.map +1 -1
  159. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.mjs +4 -1
  160. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.mjs.map +1 -1
  161. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js +18 -3
  162. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js.map +1 -1
  163. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs +18 -3
  164. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs.map +1 -1
  165. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js.map +1 -1
  166. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs.map +1 -1
  167. package/dist/admin/admin/src/router.js.map +1 -1
  168. package/dist/admin/admin/src/router.mjs.map +1 -1
  169. package/dist/admin/admin/src/services/admin.js +11 -1
  170. package/dist/admin/admin/src/services/admin.js.map +1 -1
  171. package/dist/admin/admin/src/services/admin.mjs +11 -2
  172. package/dist/admin/admin/src/services/admin.mjs.map +1 -1
  173. package/dist/admin/admin/src/services/users.js.map +1 -1
  174. package/dist/admin/admin/src/services/users.mjs.map +1 -1
  175. package/dist/admin/admin/src/translations/en.json.js +71 -4
  176. package/dist/admin/admin/src/translations/en.json.js.map +1 -1
  177. package/dist/admin/admin/src/translations/en.json.mjs +71 -4
  178. package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
  179. package/dist/admin/admin/src/translations/eu.json.js +1 -1
  180. package/dist/admin/admin/src/translations/eu.json.mjs +1 -1
  181. package/dist/admin/admin/src/utils/browserStrapi.js +1 -1
  182. package/dist/admin/admin/src/utils/browserStrapi.js.map +1 -1
  183. package/dist/admin/admin/src/utils/browserStrapi.mjs +1 -1
  184. package/dist/admin/admin/src/utils/browserStrapi.mjs.map +1 -1
  185. package/dist/admin/admin/src/utils/cookies.js +7 -6
  186. package/dist/admin/admin/src/utils/cookies.js.map +1 -1
  187. package/dist/admin/admin/src/utils/cookies.mjs +7 -6
  188. package/dist/admin/admin/src/utils/cookies.mjs.map +1 -1
  189. package/dist/admin/admin/src/utils/getFetchClient.js +24 -0
  190. package/dist/admin/admin/src/utils/getFetchClient.js.map +1 -1
  191. package/dist/admin/admin/src/utils/getFetchClient.mjs +24 -1
  192. package/dist/admin/admin/src/utils/getFetchClient.mjs.map +1 -1
  193. package/dist/admin/admin/tests/utils.js +2 -1
  194. package/dist/admin/admin/tests/utils.js.map +1 -1
  195. package/dist/admin/admin/tests/utils.mjs +2 -1
  196. package/dist/admin/admin/tests/utils.mjs.map +1 -1
  197. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js +52 -22
  198. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js.map +1 -1
  199. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.mjs +53 -23
  200. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.mjs.map +1 -1
  201. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.js +16 -29
  202. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.js.map +1 -1
  203. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.mjs +18 -31
  204. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.mjs.map +1 -1
  205. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/LicenseInfo.js +473 -0
  206. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/LicenseInfo.js.map +1 -0
  207. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/LicenseInfo.mjs +471 -0
  208. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/LicenseInfo.mjs.map +1 -0
  209. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.js +2 -0
  210. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.js.map +1 -1
  211. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.mjs +2 -0
  212. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.mjs.map +1 -1
  213. package/dist/admin/index.js +1 -0
  214. package/dist/admin/index.js.map +1 -1
  215. package/dist/admin/index.mjs +1 -1
  216. package/dist/admin/shared/utils/auth-cookie-path.js +13 -10
  217. package/dist/admin/shared/utils/auth-cookie-path.js.map +1 -1
  218. package/dist/admin/shared/utils/auth-cookie-path.mjs +13 -10
  219. package/dist/admin/shared/utils/auth-cookie-path.mjs.map +1 -1
  220. package/dist/admin/shared/utils/get-project-type.js +49 -0
  221. package/dist/admin/shared/utils/get-project-type.js.map +1 -0
  222. package/dist/admin/shared/utils/get-project-type.mjs +46 -0
  223. package/dist/admin/shared/utils/get-project-type.mjs.map +1 -0
  224. package/dist/admin/src/components/Filters.d.ts +1 -1
  225. package/dist/admin/src/components/Form.d.ts +1 -1
  226. package/dist/admin/src/constants.d.ts +10 -0
  227. package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.d.ts +1 -1
  228. package/dist/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.d.ts +1 -1
  229. package/dist/admin/src/pages/Settings/pages/ApplicationInfo/components/DiagnosticSnapshotModal.d.ts +12 -0
  230. package/dist/admin/src/pages/Settings/pages/ApplicationInfo/components/PlanCard.d.ts +14 -0
  231. package/dist/admin/src/pages/Settings/pages/ApplicationInfo/components/SupportCard.d.ts +2 -0
  232. package/dist/admin/src/services/admin.d.ts +2 -2
  233. package/dist/admin/src/types/permissions.d.ts +1 -0
  234. package/dist/admin/src/utils/cookies.d.ts +7 -6
  235. package/dist/admin/src/utils/getFetchClient.d.ts +25 -0
  236. package/dist/ee/admin/src/hooks/useLicenseLimits.d.ts +29 -0
  237. package/dist/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.d.ts +6 -1
  238. package/dist/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/LicenseInfo.d.ts +2 -0
  239. package/dist/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.d.ts +2 -0
  240. package/dist/ee/server/src/audit-logs/entitlements.d.ts +8 -0
  241. package/dist/ee/server/src/audit-logs/entitlements.d.ts.map +1 -0
  242. package/dist/ee/server/src/audit-logs/services/lifecycles.d.ts +16 -0
  243. package/dist/ee/server/src/audit-logs/services/lifecycles.d.ts.map +1 -1
  244. package/dist/ee/server/src/controllers/admin.d.ts +36 -10
  245. package/dist/ee/server/src/controllers/admin.d.ts.map +1 -1
  246. package/dist/ee/server/src/controllers/authentication-utils/middlewares.d.ts.map +1 -1
  247. package/dist/ee/server/src/controllers/index.d.ts +36 -10
  248. package/dist/ee/server/src/controllers/index.d.ts.map +1 -1
  249. package/dist/ee/server/src/index.d.ts +36 -10
  250. package/dist/ee/server/src/index.d.ts.map +1 -1
  251. package/dist/ee/server/src/services/seat-enforcement.d.ts.map +1 -1
  252. package/dist/ee/server/src/validation/role.d.ts.map +1 -1
  253. package/dist/server/ee/server/src/audit-logs/entitlements.js +25 -0
  254. package/dist/server/ee/server/src/audit-logs/entitlements.js.map +1 -0
  255. package/dist/server/ee/server/src/audit-logs/entitlements.mjs +23 -0
  256. package/dist/server/ee/server/src/audit-logs/entitlements.mjs.map +1 -0
  257. package/dist/server/ee/server/src/audit-logs/services/lifecycles.js +20 -8
  258. package/dist/server/ee/server/src/audit-logs/services/lifecycles.js.map +1 -1
  259. package/dist/server/ee/server/src/audit-logs/services/lifecycles.mjs +19 -9
  260. package/dist/server/ee/server/src/audit-logs/services/lifecycles.mjs.map +1 -1
  261. package/dist/server/ee/server/src/audit-logs/utils/csv.js +3 -3
  262. package/dist/server/ee/server/src/audit-logs/utils/csv.js.map +1 -1
  263. package/dist/server/ee/server/src/audit-logs/utils/csv.mjs +3 -3
  264. package/dist/server/ee/server/src/audit-logs/utils/csv.mjs.map +1 -1
  265. package/dist/server/ee/server/src/controllers/admin.js +76 -3
  266. package/dist/server/ee/server/src/controllers/admin.js.map +1 -1
  267. package/dist/server/ee/server/src/controllers/admin.mjs +76 -3
  268. package/dist/server/ee/server/src/controllers/admin.mjs.map +1 -1
  269. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.js +28 -10
  270. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.js.map +1 -1
  271. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.mjs +28 -10
  272. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.mjs.map +1 -1
  273. package/dist/server/ee/server/src/index.js +2 -0
  274. package/dist/server/ee/server/src/index.js.map +1 -1
  275. package/dist/server/ee/server/src/index.mjs +2 -0
  276. package/dist/server/ee/server/src/index.mjs.map +1 -1
  277. package/dist/server/ee/server/src/services/seat-enforcement.js.map +1 -1
  278. package/dist/server/ee/server/src/services/seat-enforcement.mjs.map +1 -1
  279. package/dist/server/ee/server/src/validation/role.js +4 -2
  280. package/dist/server/ee/server/src/validation/role.js.map +1 -1
  281. package/dist/server/ee/server/src/validation/role.mjs +4 -2
  282. package/dist/server/ee/server/src/validation/role.mjs.map +1 -1
  283. package/dist/server/server/src/ai/services/ai.js.map +1 -1
  284. package/dist/server/server/src/ai/services/ai.mjs.map +1 -1
  285. package/dist/server/server/src/audit-logs/auth.js +72 -0
  286. package/dist/server/server/src/audit-logs/auth.js.map +1 -0
  287. package/dist/server/server/src/audit-logs/auth.mjs +67 -0
  288. package/dist/server/server/src/audit-logs/auth.mjs.map +1 -0
  289. package/dist/server/server/src/config/admin-actions.js +7 -0
  290. package/dist/server/server/src/config/admin-actions.js.map +1 -1
  291. package/dist/server/server/src/config/admin-actions.mjs +7 -0
  292. package/dist/server/server/src/config/admin-actions.mjs.map +1 -1
  293. package/dist/server/server/src/controllers/admin.js +17 -12
  294. package/dist/server/server/src/controllers/admin.js.map +1 -1
  295. package/dist/server/server/src/controllers/admin.mjs +17 -12
  296. package/dist/server/server/src/controllers/admin.mjs.map +1 -1
  297. package/dist/server/server/src/controllers/authentication.js +34 -8
  298. package/dist/server/server/src/controllers/authentication.js.map +1 -1
  299. package/dist/server/server/src/controllers/authentication.mjs +34 -8
  300. package/dist/server/server/src/controllers/authentication.mjs.map +1 -1
  301. package/dist/server/server/src/domain/permission/index.js.map +1 -1
  302. package/dist/server/server/src/domain/permission/index.mjs.map +1 -1
  303. package/dist/server/server/src/register.js +4 -0
  304. package/dist/server/server/src/register.js.map +1 -1
  305. package/dist/server/server/src/register.mjs +4 -0
  306. package/dist/server/server/src/register.mjs.map +1 -1
  307. package/dist/server/server/src/routes/admin.js +18 -0
  308. package/dist/server/server/src/routes/admin.js.map +1 -1
  309. package/dist/server/server/src/routes/admin.mjs +18 -0
  310. package/dist/server/server/src/routes/admin.mjs.map +1 -1
  311. package/dist/server/server/src/services/api-token.js +4 -8
  312. package/dist/server/server/src/services/api-token.js.map +1 -1
  313. package/dist/server/server/src/services/api-token.mjs +4 -8
  314. package/dist/server/server/src/services/api-token.mjs.map +1 -1
  315. package/dist/server/server/src/services/auth.js +4 -2
  316. package/dist/server/server/src/services/auth.js.map +1 -1
  317. package/dist/server/server/src/services/auth.mjs +4 -3
  318. package/dist/server/server/src/services/auth.mjs.map +1 -1
  319. package/dist/server/server/src/services/constants.js +4 -0
  320. package/dist/server/server/src/services/constants.js.map +1 -1
  321. package/dist/server/server/src/services/constants.mjs +4 -0
  322. package/dist/server/server/src/services/constants.mjs.map +1 -1
  323. package/dist/server/server/src/services/debug-dump.js +173 -0
  324. package/dist/server/server/src/services/debug-dump.js.map +1 -0
  325. package/dist/server/server/src/services/debug-dump.mjs +166 -0
  326. package/dist/server/server/src/services/debug-dump.mjs.map +1 -0
  327. package/dist/server/server/src/services/index.js +3 -1
  328. package/dist/server/server/src/services/index.js.map +1 -1
  329. package/dist/server/server/src/services/index.mjs +3 -1
  330. package/dist/server/server/src/services/index.mjs.map +1 -1
  331. package/dist/server/server/src/services/permission/rename-fields.js.map +1 -1
  332. package/dist/server/server/src/services/permission/rename-fields.mjs.map +1 -1
  333. package/dist/server/server/src/services/permission/sections-builder/handlers.js.map +1 -1
  334. package/dist/server/server/src/services/permission/sections-builder/handlers.mjs.map +1 -1
  335. package/dist/server/server/src/services/role.js +8 -5
  336. package/dist/server/server/src/services/role.js.map +1 -1
  337. package/dist/server/server/src/services/role.mjs +8 -5
  338. package/dist/server/server/src/services/role.mjs.map +1 -1
  339. package/dist/server/server/src/utils/debug-dump/redact.js +197 -0
  340. package/dist/server/server/src/utils/debug-dump/redact.js.map +1 -0
  341. package/dist/server/server/src/utils/debug-dump/redact.mjs +194 -0
  342. package/dist/server/server/src/utils/debug-dump/redact.mjs.map +1 -0
  343. package/dist/server/server/src/validation/admin-tokens.js +4 -4
  344. package/dist/server/server/src/validation/admin-tokens.js.map +1 -1
  345. package/dist/server/server/src/validation/admin-tokens.mjs +4 -4
  346. package/dist/server/server/src/validation/admin-tokens.mjs.map +1 -1
  347. package/dist/server/server/src/validation/api-tokens.js +4 -4
  348. package/dist/server/server/src/validation/api-tokens.js.map +1 -1
  349. package/dist/server/server/src/validation/api-tokens.mjs +4 -4
  350. package/dist/server/server/src/validation/api-tokens.mjs.map +1 -1
  351. package/dist/server/server/src/validation/role.js +6 -4
  352. package/dist/server/server/src/validation/role.js.map +1 -1
  353. package/dist/server/server/src/validation/role.mjs +6 -4
  354. package/dist/server/server/src/validation/role.mjs.map +1 -1
  355. package/dist/server/server/src/validation/transfer/token.js +4 -4
  356. package/dist/server/server/src/validation/transfer/token.js.map +1 -1
  357. package/dist/server/server/src/validation/transfer/token.mjs +4 -4
  358. package/dist/server/server/src/validation/transfer/token.mjs.map +1 -1
  359. package/dist/server/shared/utils/auth-cookie-path.js +13 -10
  360. package/dist/server/shared/utils/auth-cookie-path.js.map +1 -1
  361. package/dist/server/shared/utils/auth-cookie-path.mjs +13 -10
  362. package/dist/server/shared/utils/auth-cookie-path.mjs.map +1 -1
  363. package/dist/server/shared/utils/get-project-type.js +49 -0
  364. package/dist/server/shared/utils/get-project-type.js.map +1 -0
  365. package/dist/server/shared/utils/get-project-type.mjs +46 -0
  366. package/dist/server/shared/utils/get-project-type.mjs.map +1 -0
  367. package/dist/server/shared/utils/session-auth.js +70 -3
  368. package/dist/server/shared/utils/session-auth.js.map +1 -1
  369. package/dist/server/shared/utils/session-auth.mjs +70 -4
  370. package/dist/server/shared/utils/session-auth.mjs.map +1 -1
  371. package/dist/server/src/ai/services/ai.d.ts.map +1 -1
  372. package/dist/server/src/audit-logs/auth.d.ts +72 -0
  373. package/dist/server/src/audit-logs/auth.d.ts.map +1 -0
  374. package/dist/server/src/config/admin-actions.d.ts.map +1 -1
  375. package/dist/server/src/controllers/admin.d.ts +3 -0
  376. package/dist/server/src/controllers/admin.d.ts.map +1 -1
  377. package/dist/server/src/controllers/authentication.d.ts.map +1 -1
  378. package/dist/server/src/controllers/index.d.ts +3 -0
  379. package/dist/server/src/controllers/index.d.ts.map +1 -1
  380. package/dist/server/src/domain/permission/index.d.ts.map +1 -1
  381. package/dist/server/src/index.d.ts +8 -0
  382. package/dist/server/src/index.d.ts.map +1 -1
  383. package/dist/server/src/register.d.ts.map +1 -1
  384. package/dist/server/src/routes/admin.d.ts.map +1 -1
  385. package/dist/server/src/services/auth.d.ts +6 -0
  386. package/dist/server/src/services/auth.d.ts.map +1 -1
  387. package/dist/server/src/services/constants.d.ts +2 -0
  388. package/dist/server/src/services/constants.d.ts.map +1 -1
  389. package/dist/server/src/services/debug-dump.d.ts +9 -0
  390. package/dist/server/src/services/debug-dump.d.ts.map +1 -0
  391. package/dist/server/src/services/index.d.ts +5 -0
  392. package/dist/server/src/services/index.d.ts.map +1 -1
  393. package/dist/server/src/services/permission/rename-fields.d.ts.map +1 -1
  394. package/dist/server/src/services/permission/sections-builder/handlers.d.ts.map +1 -1
  395. package/dist/server/src/services/role.d.ts.map +1 -1
  396. package/dist/server/src/utils/debug-dump/redact.d.ts +8 -0
  397. package/dist/server/src/utils/debug-dump/redact.d.ts.map +1 -0
  398. package/dist/server/src/validation/role.d.ts.map +1 -1
  399. package/dist/shared/contracts/admin.d.ts +106 -0
  400. package/dist/shared/contracts/admin.d.ts.map +1 -1
  401. package/dist/shared/contracts/transfer.d.ts.map +1 -1
  402. package/dist/shared/utils/__tests__/get-project-type.test.d.ts +1 -0
  403. package/dist/shared/utils/__tests__/get-project-type.test.d.ts.map +1 -0
  404. package/dist/shared/utils/auth-cookie-path.d.ts +13 -10
  405. package/dist/shared/utils/auth-cookie-path.d.ts.map +1 -1
  406. package/dist/shared/utils/get-project-type.d.ts +37 -0
  407. package/dist/shared/utils/get-project-type.d.ts.map +1 -0
  408. package/dist/shared/utils/session-auth.d.ts +16 -0
  409. package/dist/shared/utils/session-auth.d.ts.map +1 -1
  410. package/package.json +8 -8
  411. package/dist/admin/admin/src/utils/getProjectType.js +0 -22
  412. package/dist/admin/admin/src/utils/getProjectType.js.map +0 -1
  413. package/dist/admin/admin/src/utils/getProjectType.mjs +0 -20
  414. package/dist/admin/admin/src/utils/getProjectType.mjs.map +0 -1
  415. package/dist/admin/src/utils/getProjectType.d.ts +0 -16
@@ -8,16 +8,16 @@ const adminTokenCreationSchema = utils.yup.object().shape({
8
8
  kind: utils.yup.string().oneOf([
9
9
  'admin'
10
10
  ]).optional(),
11
- name: utils.yup.string().min(1).required(),
12
- description: utils.yup.string().optional(),
11
+ name: utils.yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).required(),
12
+ description: utils.yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).optional(),
13
13
  lifespan: utils.yup.number().min(1).oneOf(Object.values(constants.API_TOKEN_LIFESPANS)).nullable(),
14
14
  adminPermissions: utils.yup.array().of(commonValidators.permission),
15
15
  // adminUserOwner is set by the controller from ctx.state.user (full user object) or a strapiID from body
16
16
  adminUserOwner: utils.yup.mixed().nullable()
17
17
  }).noUnknown().strict();
18
18
  const adminTokenUpdateSchema = utils.yup.object().shape({
19
- name: utils.yup.string().min(1).notNull(),
20
- description: utils.yup.string().nullable(),
19
+ name: utils.yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).notNull(),
20
+ description: utils.yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).nullable(),
21
21
  adminPermissions: utils.yup.array().of(commonValidators.permission).nullable()
22
22
  }).noUnknown().strict();
23
23
  const validateAdminTokenCreationInput = utils.validateYupSchema(adminTokenCreationSchema);
@@ -1 +1 @@
1
- {"version":3,"file":"admin-tokens.js","sources":["../../../../../server/src/validation/admin-tokens.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport constants from '../services/constants';\nimport { permission } from './common-validators';\n\nconst adminTokenCreationSchema = yup\n .object()\n .shape({\n kind: yup.string().oneOf(['admin']).optional(),\n name: yup.string().min(1).required(),\n description: yup.string().optional(),\n lifespan: yup.number().min(1).oneOf(Object.values(constants.API_TOKEN_LIFESPANS)).nullable(),\n adminPermissions: yup.array().of(permission),\n // adminUserOwner is set by the controller from ctx.state.user (full user object) or a strapiID from body\n adminUserOwner: yup.mixed().nullable(),\n })\n .noUnknown()\n .strict();\n\nconst adminTokenUpdateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).notNull(),\n description: yup.string().nullable(),\n adminPermissions: yup.array().of(permission).nullable(),\n })\n .noUnknown()\n .strict();\n\nexport const validateAdminTokenCreationInput = validateYupSchema(adminTokenCreationSchema);\nexport const validateAdminTokenUpdateInput = validateYupSchema(adminTokenUpdateSchema);\n"],"names":["adminTokenCreationSchema","yup","object","shape","kind","string","oneOf","optional","name","min","required","description","lifespan","number","Object","values","constants","API_TOKEN_LIFESPANS","nullable","adminPermissions","array","of","permission","adminUserOwner","mixed","noUnknown","strict","adminTokenUpdateSchema","notNull","validateAdminTokenCreationInput","validateYupSchema","validateAdminTokenUpdateInput"],"mappings":";;;;;;AAIA,MAAMA,wBAAAA,GAA2BC,SAAAA,CAC9BC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLC,IAAAA,IAAAA,EAAMH,SAAAA,CAAII,MAAM,EAAA,CAAGC,KAAK,CAAC;AAAC,QAAA;AAAQ,KAAA,CAAA,CAAEC,QAAQ,EAAA;AAC5CC,IAAAA,IAAAA,EAAMP,UAAII,MAAM,EAAA,CAAGI,GAAG,CAAC,GAAGC,QAAQ,EAAA;IAClCC,WAAAA,EAAaV,SAAAA,CAAII,MAAM,EAAA,CAAGE,QAAQ,EAAA;AAClCK,IAAAA,QAAAA,EAAUX,SAAAA,CAAIY,MAAM,EAAA,CAAGJ,GAAG,CAAC,CAAA,CAAA,CAAGH,KAAK,CAACQ,MAAAA,CAAOC,MAAM,CAACC,SAAAA,CAAUC,mBAAmB,GAAGC,QAAQ,EAAA;AAC1FC,IAAAA,gBAAAA,EAAkBlB,SAAAA,CAAImB,KAAK,EAAA,CAAGC,EAAE,CAACC,2BAAAA,CAAAA;;IAEjCC,cAAAA,EAAgBtB,SAAAA,CAAIuB,KAAK,EAAA,CAAGN,QAAQ;AACtC,CAAA,CAAA,CACCO,SAAS,GACTC,MAAM,EAAA;AAET,MAAMC,sBAAAA,GAAyB1B,SAAAA,CAC5BC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLK,IAAAA,IAAAA,EAAMP,UAAII,MAAM,EAAA,CAAGI,GAAG,CAAC,GAAGmB,OAAO,EAAA;IACjCjB,WAAAA,EAAaV,SAAAA,CAAII,MAAM,EAAA,CAAGa,QAAQ,EAAA;AAClCC,IAAAA,gBAAAA,EAAkBlB,UAAImB,KAAK,EAAA,CAAGC,EAAE,CAACC,6BAAYJ,QAAQ;AACvD,CAAA,CAAA,CACCO,SAAS,GACTC,MAAM,EAAA;AAEF,MAAMG,+BAAAA,GAAkCC,uBAAAA,CAAkB9B,wBAAAA;AAC1D,MAAM+B,6BAAAA,GAAgCD,uBAAAA,CAAkBH,sBAAAA;;;;;"}
1
+ {"version":3,"file":"admin-tokens.js","sources":["../../../../../server/src/validation/admin-tokens.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport constants from '../services/constants';\nimport { permission } from './common-validators';\n\nconst adminTokenCreationSchema = yup\n .object()\n .shape({\n kind: yup.string().oneOf(['admin']).optional(),\n name: yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).required(),\n description: yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).optional(),\n lifespan: yup.number().min(1).oneOf(Object.values(constants.API_TOKEN_LIFESPANS)).nullable(),\n adminPermissions: yup.array().of(permission),\n // adminUserOwner is set by the controller from ctx.state.user (full user object) or a strapiID from body\n adminUserOwner: yup.mixed().nullable(),\n })\n .noUnknown()\n .strict();\n\nconst adminTokenUpdateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).notNull(),\n description: yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).nullable(),\n adminPermissions: yup.array().of(permission).nullable(),\n })\n .noUnknown()\n .strict();\n\nexport const validateAdminTokenCreationInput = validateYupSchema(adminTokenCreationSchema);\nexport const validateAdminTokenUpdateInput = validateYupSchema(adminTokenUpdateSchema);\n"],"names":["adminTokenCreationSchema","yup","object","shape","kind","string","oneOf","optional","name","min","max","constants","TOKEN_TEXT_MAX_LENGTH","required","description","lifespan","number","Object","values","API_TOKEN_LIFESPANS","nullable","adminPermissions","array","of","permission","adminUserOwner","mixed","noUnknown","strict","adminTokenUpdateSchema","notNull","validateAdminTokenCreationInput","validateYupSchema","validateAdminTokenUpdateInput"],"mappings":";;;;;;AAIA,MAAMA,wBAAAA,GAA2BC,SAAAA,CAC9BC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLC,IAAAA,IAAAA,EAAMH,SAAAA,CAAII,MAAM,EAAA,CAAGC,KAAK,CAAC;AAAC,QAAA;AAAQ,KAAA,CAAA,CAAEC,QAAQ,EAAA;IAC5CC,IAAAA,EAAMP,SAAAA,CAAII,MAAM,EAAA,CAAGI,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,CAAA,CAAEC,QAAQ,EAAA;IACvEC,WAAAA,EAAab,SAAAA,CAAII,MAAM,EAAA,CAAGK,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,EAAEL,QAAQ,EAAA;AACvEQ,IAAAA,QAAAA,EAAUd,SAAAA,CAAIe,MAAM,EAAA,CAAGP,GAAG,CAAC,CAAA,CAAA,CAAGH,KAAK,CAACW,MAAAA,CAAOC,MAAM,CAACP,SAAAA,CAAUQ,mBAAmB,GAAGC,QAAQ,EAAA;AAC1FC,IAAAA,gBAAAA,EAAkBpB,SAAAA,CAAIqB,KAAK,EAAA,CAAGC,EAAE,CAACC,2BAAAA,CAAAA;;IAEjCC,cAAAA,EAAgBxB,SAAAA,CAAIyB,KAAK,EAAA,CAAGN,QAAQ;AACtC,CAAA,CAAA,CACCO,SAAS,GACTC,MAAM,EAAA;AAET,MAAMC,sBAAAA,GAAyB5B,SAAAA,CAC5BC,MAAM,EAAA,CACNC,KAAK,CAAC;IACLK,IAAAA,EAAMP,SAAAA,CAAII,MAAM,EAAA,CAAGI,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,CAAA,CAAEkB,OAAO,EAAA;IACtEhB,WAAAA,EAAab,SAAAA,CAAII,MAAM,EAAA,CAAGK,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,EAAEQ,QAAQ,EAAA;AACvEC,IAAAA,gBAAAA,EAAkBpB,UAAIqB,KAAK,EAAA,CAAGC,EAAE,CAACC,6BAAYJ,QAAQ;AACvD,CAAA,CAAA,CACCO,SAAS,GACTC,MAAM,EAAA;AAEF,MAAMG,+BAAAA,GAAkCC,uBAAAA,CAAkBhC,wBAAAA;AAC1D,MAAMiC,6BAAAA,GAAgCD,uBAAAA,CAAkBH,sBAAAA;;;;;"}
@@ -6,16 +6,16 @@ const adminTokenCreationSchema = yup.object().shape({
6
6
  kind: yup.string().oneOf([
7
7
  'admin'
8
8
  ]).optional(),
9
- name: yup.string().min(1).required(),
10
- description: yup.string().optional(),
9
+ name: yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).required(),
10
+ description: yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).optional(),
11
11
  lifespan: yup.number().min(1).oneOf(Object.values(constants.API_TOKEN_LIFESPANS)).nullable(),
12
12
  adminPermissions: yup.array().of(permission),
13
13
  // adminUserOwner is set by the controller from ctx.state.user (full user object) or a strapiID from body
14
14
  adminUserOwner: yup.mixed().nullable()
15
15
  }).noUnknown().strict();
16
16
  const adminTokenUpdateSchema = yup.object().shape({
17
- name: yup.string().min(1).notNull(),
18
- description: yup.string().nullable(),
17
+ name: yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).notNull(),
18
+ description: yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).nullable(),
19
19
  adminPermissions: yup.array().of(permission).nullable()
20
20
  }).noUnknown().strict();
21
21
  const validateAdminTokenCreationInput = validateYupSchema(adminTokenCreationSchema);
@@ -1 +1 @@
1
- {"version":3,"file":"admin-tokens.mjs","sources":["../../../../../server/src/validation/admin-tokens.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport constants from '../services/constants';\nimport { permission } from './common-validators';\n\nconst adminTokenCreationSchema = yup\n .object()\n .shape({\n kind: yup.string().oneOf(['admin']).optional(),\n name: yup.string().min(1).required(),\n description: yup.string().optional(),\n lifespan: yup.number().min(1).oneOf(Object.values(constants.API_TOKEN_LIFESPANS)).nullable(),\n adminPermissions: yup.array().of(permission),\n // adminUserOwner is set by the controller from ctx.state.user (full user object) or a strapiID from body\n adminUserOwner: yup.mixed().nullable(),\n })\n .noUnknown()\n .strict();\n\nconst adminTokenUpdateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).notNull(),\n description: yup.string().nullable(),\n adminPermissions: yup.array().of(permission).nullable(),\n })\n .noUnknown()\n .strict();\n\nexport const validateAdminTokenCreationInput = validateYupSchema(adminTokenCreationSchema);\nexport const validateAdminTokenUpdateInput = validateYupSchema(adminTokenUpdateSchema);\n"],"names":["adminTokenCreationSchema","yup","object","shape","kind","string","oneOf","optional","name","min","required","description","lifespan","number","Object","values","constants","API_TOKEN_LIFESPANS","nullable","adminPermissions","array","of","permission","adminUserOwner","mixed","noUnknown","strict","adminTokenUpdateSchema","notNull","validateAdminTokenCreationInput","validateYupSchema","validateAdminTokenUpdateInput"],"mappings":";;;;AAIA,MAAMA,wBAAAA,GAA2BC,GAAAA,CAC9BC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLC,IAAAA,IAAAA,EAAMH,GAAAA,CAAII,MAAM,EAAA,CAAGC,KAAK,CAAC;AAAC,QAAA;AAAQ,KAAA,CAAA,CAAEC,QAAQ,EAAA;AAC5CC,IAAAA,IAAAA,EAAMP,IAAII,MAAM,EAAA,CAAGI,GAAG,CAAC,GAAGC,QAAQ,EAAA;IAClCC,WAAAA,EAAaV,GAAAA,CAAII,MAAM,EAAA,CAAGE,QAAQ,EAAA;AAClCK,IAAAA,QAAAA,EAAUX,GAAAA,CAAIY,MAAM,EAAA,CAAGJ,GAAG,CAAC,CAAA,CAAA,CAAGH,KAAK,CAACQ,MAAAA,CAAOC,MAAM,CAACC,SAAAA,CAAUC,mBAAmB,GAAGC,QAAQ,EAAA;AAC1FC,IAAAA,gBAAAA,EAAkBlB,GAAAA,CAAImB,KAAK,EAAA,CAAGC,EAAE,CAACC,UAAAA,CAAAA;;IAEjCC,cAAAA,EAAgBtB,GAAAA,CAAIuB,KAAK,EAAA,CAAGN,QAAQ;AACtC,CAAA,CAAA,CACCO,SAAS,GACTC,MAAM,EAAA;AAET,MAAMC,sBAAAA,GAAyB1B,GAAAA,CAC5BC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLK,IAAAA,IAAAA,EAAMP,IAAII,MAAM,EAAA,CAAGI,GAAG,CAAC,GAAGmB,OAAO,EAAA;IACjCjB,WAAAA,EAAaV,GAAAA,CAAII,MAAM,EAAA,CAAGa,QAAQ,EAAA;AAClCC,IAAAA,gBAAAA,EAAkBlB,IAAImB,KAAK,EAAA,CAAGC,EAAE,CAACC,YAAYJ,QAAQ;AACvD,CAAA,CAAA,CACCO,SAAS,GACTC,MAAM,EAAA;AAEF,MAAMG,+BAAAA,GAAkCC,iBAAAA,CAAkB9B,wBAAAA;AAC1D,MAAM+B,6BAAAA,GAAgCD,iBAAAA,CAAkBH,sBAAAA;;;;"}
1
+ {"version":3,"file":"admin-tokens.mjs","sources":["../../../../../server/src/validation/admin-tokens.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport constants from '../services/constants';\nimport { permission } from './common-validators';\n\nconst adminTokenCreationSchema = yup\n .object()\n .shape({\n kind: yup.string().oneOf(['admin']).optional(),\n name: yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).required(),\n description: yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).optional(),\n lifespan: yup.number().min(1).oneOf(Object.values(constants.API_TOKEN_LIFESPANS)).nullable(),\n adminPermissions: yup.array().of(permission),\n // adminUserOwner is set by the controller from ctx.state.user (full user object) or a strapiID from body\n adminUserOwner: yup.mixed().nullable(),\n })\n .noUnknown()\n .strict();\n\nconst adminTokenUpdateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).notNull(),\n description: yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).nullable(),\n adminPermissions: yup.array().of(permission).nullable(),\n })\n .noUnknown()\n .strict();\n\nexport const validateAdminTokenCreationInput = validateYupSchema(adminTokenCreationSchema);\nexport const validateAdminTokenUpdateInput = validateYupSchema(adminTokenUpdateSchema);\n"],"names":["adminTokenCreationSchema","yup","object","shape","kind","string","oneOf","optional","name","min","max","constants","TOKEN_TEXT_MAX_LENGTH","required","description","lifespan","number","Object","values","API_TOKEN_LIFESPANS","nullable","adminPermissions","array","of","permission","adminUserOwner","mixed","noUnknown","strict","adminTokenUpdateSchema","notNull","validateAdminTokenCreationInput","validateYupSchema","validateAdminTokenUpdateInput"],"mappings":";;;;AAIA,MAAMA,wBAAAA,GAA2BC,GAAAA,CAC9BC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLC,IAAAA,IAAAA,EAAMH,GAAAA,CAAII,MAAM,EAAA,CAAGC,KAAK,CAAC;AAAC,QAAA;AAAQ,KAAA,CAAA,CAAEC,QAAQ,EAAA;IAC5CC,IAAAA,EAAMP,GAAAA,CAAII,MAAM,EAAA,CAAGI,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,CAAA,CAAEC,QAAQ,EAAA;IACvEC,WAAAA,EAAab,GAAAA,CAAII,MAAM,EAAA,CAAGK,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,EAAEL,QAAQ,EAAA;AACvEQ,IAAAA,QAAAA,EAAUd,GAAAA,CAAIe,MAAM,EAAA,CAAGP,GAAG,CAAC,CAAA,CAAA,CAAGH,KAAK,CAACW,MAAAA,CAAOC,MAAM,CAACP,SAAAA,CAAUQ,mBAAmB,GAAGC,QAAQ,EAAA;AAC1FC,IAAAA,gBAAAA,EAAkBpB,GAAAA,CAAIqB,KAAK,EAAA,CAAGC,EAAE,CAACC,UAAAA,CAAAA;;IAEjCC,cAAAA,EAAgBxB,GAAAA,CAAIyB,KAAK,EAAA,CAAGN,QAAQ;AACtC,CAAA,CAAA,CACCO,SAAS,GACTC,MAAM,EAAA;AAET,MAAMC,sBAAAA,GAAyB5B,GAAAA,CAC5BC,MAAM,EAAA,CACNC,KAAK,CAAC;IACLK,IAAAA,EAAMP,GAAAA,CAAII,MAAM,EAAA,CAAGI,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,CAAA,CAAEkB,OAAO,EAAA;IACtEhB,WAAAA,EAAab,GAAAA,CAAII,MAAM,EAAA,CAAGK,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,EAAEQ,QAAQ,EAAA;AACvEC,IAAAA,gBAAAA,EAAkBpB,IAAIqB,KAAK,EAAA,CAAGC,EAAE,CAACC,YAAYJ,QAAQ;AACvD,CAAA,CAAA,CACCO,SAAS,GACTC,MAAM,EAAA;AAEF,MAAMG,+BAAAA,GAAkCC,iBAAAA,CAAkBhC,wBAAAA;AAC1D,MAAMiC,6BAAAA,GAAgCD,iBAAAA,CAAkBH,sBAAAA;;;;"}
@@ -7,15 +7,15 @@ const apiTokenCreationSchema = utils.yup.object().shape({
7
7
  kind: utils.yup.string().oneOf([
8
8
  'content-api'
9
9
  ]).optional(),
10
- name: utils.yup.string().min(1).required(),
11
- description: utils.yup.string().optional(),
10
+ name: utils.yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).required(),
11
+ description: utils.yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).optional(),
12
12
  type: utils.yup.string().oneOf(Object.values(constants.API_TOKEN_TYPE)).optional(),
13
13
  permissions: utils.yup.array().of(utils.yup.string()).nullable(),
14
14
  lifespan: utils.yup.number().min(1).oneOf(Object.values(constants.API_TOKEN_LIFESPANS)).nullable()
15
15
  }).noUnknown().strict();
16
16
  const apiTokenUpdateSchema = utils.yup.object().shape({
17
- name: utils.yup.string().min(1).notNull(),
18
- description: utils.yup.string().nullable(),
17
+ name: utils.yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).notNull(),
18
+ description: utils.yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).nullable(),
19
19
  type: utils.yup.string().oneOf(Object.values(constants.API_TOKEN_TYPE)).optional(),
20
20
  permissions: utils.yup.array().of(utils.yup.string()).nullable()
21
21
  }).noUnknown().strict();
@@ -1 +1 @@
1
- {"version":3,"file":"api-tokens.js","sources":["../../../../../server/src/validation/api-tokens.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport constants from '../services/constants';\n\nconst apiTokenCreationSchema = yup\n .object()\n .shape({\n kind: yup.string().oneOf(['content-api']).optional(),\n name: yup.string().min(1).required(),\n description: yup.string().optional(),\n type: yup.string().oneOf(Object.values(constants.API_TOKEN_TYPE)).optional(),\n permissions: yup.array().of(yup.string()).nullable(),\n lifespan: yup.number().min(1).oneOf(Object.values(constants.API_TOKEN_LIFESPANS)).nullable(),\n })\n .noUnknown()\n .strict();\n\nconst apiTokenUpdateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).notNull(),\n description: yup.string().nullable(),\n type: yup.string().oneOf(Object.values(constants.API_TOKEN_TYPE)).optional(),\n permissions: yup.array().of(yup.string()).nullable(),\n })\n .noUnknown()\n .strict();\n\nexport const validateApiTokenCreationInput = validateYupSchema(apiTokenCreationSchema);\nexport const validateApiTokenUpdateInput = validateYupSchema(apiTokenUpdateSchema);\n\nexport default {\n validateApiTokenCreationInput,\n validateApiTokenUpdateInput,\n};\n"],"names":["apiTokenCreationSchema","yup","object","shape","kind","string","oneOf","optional","name","min","required","description","type","Object","values","constants","API_TOKEN_TYPE","permissions","array","of","nullable","lifespan","number","API_TOKEN_LIFESPANS","noUnknown","strict","apiTokenUpdateSchema","notNull","validateApiTokenCreationInput","validateYupSchema","validateApiTokenUpdateInput"],"mappings":";;;;;AAGA,MAAMA,sBAAAA,GAAyBC,SAAAA,CAC5BC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLC,IAAAA,IAAAA,EAAMH,SAAAA,CAAII,MAAM,EAAA,CAAGC,KAAK,CAAC;AAAC,QAAA;AAAc,KAAA,CAAA,CAAEC,QAAQ,EAAA;AAClDC,IAAAA,IAAAA,EAAMP,UAAII,MAAM,EAAA,CAAGI,GAAG,CAAC,GAAGC,QAAQ,EAAA;IAClCC,WAAAA,EAAaV,SAAAA,CAAII,MAAM,EAAA,CAAGE,QAAQ,EAAA;IAClCK,IAAAA,EAAMX,SAAAA,CAAII,MAAM,EAAA,CAAGC,KAAK,CAACO,MAAAA,CAAOC,MAAM,CAACC,SAAAA,CAAUC,cAAc,CAAA,CAAA,CAAGT,QAAQ,EAAA;IAC1EU,WAAAA,EAAahB,SAAAA,CAAIiB,KAAK,EAAA,CAAGC,EAAE,CAAClB,SAAAA,CAAII,MAAM,IAAIe,QAAQ,EAAA;AAClDC,IAAAA,QAAAA,EAAUpB,SAAAA,CAAIqB,MAAM,EAAA,CAAGb,GAAG,CAAC,CAAA,CAAA,CAAGH,KAAK,CAACO,MAAAA,CAAOC,MAAM,CAACC,SAAAA,CAAUQ,mBAAmB,GAAGH,QAAQ;AAC5F,CAAA,CAAA,CACCI,SAAS,GACTC,MAAM,EAAA;AAET,MAAMC,oBAAAA,GAAuBzB,SAAAA,CAC1BC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLK,IAAAA,IAAAA,EAAMP,UAAII,MAAM,EAAA,CAAGI,GAAG,CAAC,GAAGkB,OAAO,EAAA;IACjChB,WAAAA,EAAaV,SAAAA,CAAII,MAAM,EAAA,CAAGe,QAAQ,EAAA;IAClCR,IAAAA,EAAMX,SAAAA,CAAII,MAAM,EAAA,CAAGC,KAAK,CAACO,MAAAA,CAAOC,MAAM,CAACC,SAAAA,CAAUC,cAAc,CAAA,CAAA,CAAGT,QAAQ,EAAA;IAC1EU,WAAAA,EAAahB,SAAAA,CAAIiB,KAAK,EAAA,CAAGC,EAAE,CAAClB,SAAAA,CAAII,MAAM,IAAIe,QAAQ;AACpD,CAAA,CAAA,CACCI,SAAS,GACTC,MAAM,EAAA;AAEF,MAAMG,6BAAAA,GAAgCC,uBAAAA,CAAkB7B,sBAAAA;AACxD,MAAM8B,2BAAAA,GAA8BD,uBAAAA,CAAkBH,oBAAAA;;;;;"}
1
+ {"version":3,"file":"api-tokens.js","sources":["../../../../../server/src/validation/api-tokens.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport constants from '../services/constants';\n\nconst apiTokenCreationSchema = yup\n .object()\n .shape({\n kind: yup.string().oneOf(['content-api']).optional(),\n name: yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).required(),\n description: yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).optional(),\n type: yup.string().oneOf(Object.values(constants.API_TOKEN_TYPE)).optional(),\n permissions: yup.array().of(yup.string()).nullable(),\n lifespan: yup.number().min(1).oneOf(Object.values(constants.API_TOKEN_LIFESPANS)).nullable(),\n })\n .noUnknown()\n .strict();\n\nconst apiTokenUpdateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).notNull(),\n description: yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).nullable(),\n type: yup.string().oneOf(Object.values(constants.API_TOKEN_TYPE)).optional(),\n permissions: yup.array().of(yup.string()).nullable(),\n })\n .noUnknown()\n .strict();\n\nexport const validateApiTokenCreationInput = validateYupSchema(apiTokenCreationSchema);\nexport const validateApiTokenUpdateInput = validateYupSchema(apiTokenUpdateSchema);\n\nexport default {\n validateApiTokenCreationInput,\n validateApiTokenUpdateInput,\n};\n"],"names":["apiTokenCreationSchema","yup","object","shape","kind","string","oneOf","optional","name","min","max","constants","TOKEN_TEXT_MAX_LENGTH","required","description","type","Object","values","API_TOKEN_TYPE","permissions","array","of","nullable","lifespan","number","API_TOKEN_LIFESPANS","noUnknown","strict","apiTokenUpdateSchema","notNull","validateApiTokenCreationInput","validateYupSchema","validateApiTokenUpdateInput"],"mappings":";;;;;AAGA,MAAMA,sBAAAA,GAAyBC,SAAAA,CAC5BC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLC,IAAAA,IAAAA,EAAMH,SAAAA,CAAII,MAAM,EAAA,CAAGC,KAAK,CAAC;AAAC,QAAA;AAAc,KAAA,CAAA,CAAEC,QAAQ,EAAA;IAClDC,IAAAA,EAAMP,SAAAA,CAAII,MAAM,EAAA,CAAGI,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,CAAA,CAAEC,QAAQ,EAAA;IACvEC,WAAAA,EAAab,SAAAA,CAAII,MAAM,EAAA,CAAGK,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,EAAEL,QAAQ,EAAA;IACvEQ,IAAAA,EAAMd,SAAAA,CAAII,MAAM,EAAA,CAAGC,KAAK,CAACU,MAAAA,CAAOC,MAAM,CAACN,SAAAA,CAAUO,cAAc,CAAA,CAAA,CAAGX,QAAQ,EAAA;IAC1EY,WAAAA,EAAalB,SAAAA,CAAImB,KAAK,EAAA,CAAGC,EAAE,CAACpB,SAAAA,CAAII,MAAM,IAAIiB,QAAQ,EAAA;AAClDC,IAAAA,QAAAA,EAAUtB,SAAAA,CAAIuB,MAAM,EAAA,CAAGf,GAAG,CAAC,CAAA,CAAA,CAAGH,KAAK,CAACU,MAAAA,CAAOC,MAAM,CAACN,SAAAA,CAAUc,mBAAmB,GAAGH,QAAQ;AAC5F,CAAA,CAAA,CACCI,SAAS,GACTC,MAAM,EAAA;AAET,MAAMC,oBAAAA,GAAuB3B,SAAAA,CAC1BC,MAAM,EAAA,CACNC,KAAK,CAAC;IACLK,IAAAA,EAAMP,SAAAA,CAAII,MAAM,EAAA,CAAGI,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,CAAA,CAAEiB,OAAO,EAAA;IACtEf,WAAAA,EAAab,SAAAA,CAAII,MAAM,EAAA,CAAGK,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,EAAEU,QAAQ,EAAA;IACvEP,IAAAA,EAAMd,SAAAA,CAAII,MAAM,EAAA,CAAGC,KAAK,CAACU,MAAAA,CAAOC,MAAM,CAACN,SAAAA,CAAUO,cAAc,CAAA,CAAA,CAAGX,QAAQ,EAAA;IAC1EY,WAAAA,EAAalB,SAAAA,CAAImB,KAAK,EAAA,CAAGC,EAAE,CAACpB,SAAAA,CAAII,MAAM,IAAIiB,QAAQ;AACpD,CAAA,CAAA,CACCI,SAAS,GACTC,MAAM,EAAA;AAEF,MAAMG,6BAAAA,GAAgCC,uBAAAA,CAAkB/B,sBAAAA;AACxD,MAAMgC,2BAAAA,GAA8BD,uBAAAA,CAAkBH,oBAAAA;;;;;"}
@@ -5,15 +5,15 @@ const apiTokenCreationSchema = yup.object().shape({
5
5
  kind: yup.string().oneOf([
6
6
  'content-api'
7
7
  ]).optional(),
8
- name: yup.string().min(1).required(),
9
- description: yup.string().optional(),
8
+ name: yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).required(),
9
+ description: yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).optional(),
10
10
  type: yup.string().oneOf(Object.values(constants.API_TOKEN_TYPE)).optional(),
11
11
  permissions: yup.array().of(yup.string()).nullable(),
12
12
  lifespan: yup.number().min(1).oneOf(Object.values(constants.API_TOKEN_LIFESPANS)).nullable()
13
13
  }).noUnknown().strict();
14
14
  const apiTokenUpdateSchema = yup.object().shape({
15
- name: yup.string().min(1).notNull(),
16
- description: yup.string().nullable(),
15
+ name: yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).notNull(),
16
+ description: yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).nullable(),
17
17
  type: yup.string().oneOf(Object.values(constants.API_TOKEN_TYPE)).optional(),
18
18
  permissions: yup.array().of(yup.string()).nullable()
19
19
  }).noUnknown().strict();
@@ -1 +1 @@
1
- {"version":3,"file":"api-tokens.mjs","sources":["../../../../../server/src/validation/api-tokens.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport constants from '../services/constants';\n\nconst apiTokenCreationSchema = yup\n .object()\n .shape({\n kind: yup.string().oneOf(['content-api']).optional(),\n name: yup.string().min(1).required(),\n description: yup.string().optional(),\n type: yup.string().oneOf(Object.values(constants.API_TOKEN_TYPE)).optional(),\n permissions: yup.array().of(yup.string()).nullable(),\n lifespan: yup.number().min(1).oneOf(Object.values(constants.API_TOKEN_LIFESPANS)).nullable(),\n })\n .noUnknown()\n .strict();\n\nconst apiTokenUpdateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).notNull(),\n description: yup.string().nullable(),\n type: yup.string().oneOf(Object.values(constants.API_TOKEN_TYPE)).optional(),\n permissions: yup.array().of(yup.string()).nullable(),\n })\n .noUnknown()\n .strict();\n\nexport const validateApiTokenCreationInput = validateYupSchema(apiTokenCreationSchema);\nexport const validateApiTokenUpdateInput = validateYupSchema(apiTokenUpdateSchema);\n\nexport default {\n validateApiTokenCreationInput,\n validateApiTokenUpdateInput,\n};\n"],"names":["apiTokenCreationSchema","yup","object","shape","kind","string","oneOf","optional","name","min","required","description","type","Object","values","constants","API_TOKEN_TYPE","permissions","array","of","nullable","lifespan","number","API_TOKEN_LIFESPANS","noUnknown","strict","apiTokenUpdateSchema","notNull","validateApiTokenCreationInput","validateYupSchema","validateApiTokenUpdateInput"],"mappings":";;;AAGA,MAAMA,sBAAAA,GAAyBC,GAAAA,CAC5BC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLC,IAAAA,IAAAA,EAAMH,GAAAA,CAAII,MAAM,EAAA,CAAGC,KAAK,CAAC;AAAC,QAAA;AAAc,KAAA,CAAA,CAAEC,QAAQ,EAAA;AAClDC,IAAAA,IAAAA,EAAMP,IAAII,MAAM,EAAA,CAAGI,GAAG,CAAC,GAAGC,QAAQ,EAAA;IAClCC,WAAAA,EAAaV,GAAAA,CAAII,MAAM,EAAA,CAAGE,QAAQ,EAAA;IAClCK,IAAAA,EAAMX,GAAAA,CAAII,MAAM,EAAA,CAAGC,KAAK,CAACO,MAAAA,CAAOC,MAAM,CAACC,SAAAA,CAAUC,cAAc,CAAA,CAAA,CAAGT,QAAQ,EAAA;IAC1EU,WAAAA,EAAahB,GAAAA,CAAIiB,KAAK,EAAA,CAAGC,EAAE,CAAClB,GAAAA,CAAII,MAAM,IAAIe,QAAQ,EAAA;AAClDC,IAAAA,QAAAA,EAAUpB,GAAAA,CAAIqB,MAAM,EAAA,CAAGb,GAAG,CAAC,CAAA,CAAA,CAAGH,KAAK,CAACO,MAAAA,CAAOC,MAAM,CAACC,SAAAA,CAAUQ,mBAAmB,GAAGH,QAAQ;AAC5F,CAAA,CAAA,CACCI,SAAS,GACTC,MAAM,EAAA;AAET,MAAMC,oBAAAA,GAAuBzB,GAAAA,CAC1BC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLK,IAAAA,IAAAA,EAAMP,IAAII,MAAM,EAAA,CAAGI,GAAG,CAAC,GAAGkB,OAAO,EAAA;IACjChB,WAAAA,EAAaV,GAAAA,CAAII,MAAM,EAAA,CAAGe,QAAQ,EAAA;IAClCR,IAAAA,EAAMX,GAAAA,CAAII,MAAM,EAAA,CAAGC,KAAK,CAACO,MAAAA,CAAOC,MAAM,CAACC,SAAAA,CAAUC,cAAc,CAAA,CAAA,CAAGT,QAAQ,EAAA;IAC1EU,WAAAA,EAAahB,GAAAA,CAAIiB,KAAK,EAAA,CAAGC,EAAE,CAAClB,GAAAA,CAAII,MAAM,IAAIe,QAAQ;AACpD,CAAA,CAAA,CACCI,SAAS,GACTC,MAAM,EAAA;AAEF,MAAMG,6BAAAA,GAAgCC,iBAAAA,CAAkB7B,sBAAAA;AACxD,MAAM8B,2BAAAA,GAA8BD,iBAAAA,CAAkBH,oBAAAA;;;;"}
1
+ {"version":3,"file":"api-tokens.mjs","sources":["../../../../../server/src/validation/api-tokens.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport constants from '../services/constants';\n\nconst apiTokenCreationSchema = yup\n .object()\n .shape({\n kind: yup.string().oneOf(['content-api']).optional(),\n name: yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).required(),\n description: yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).optional(),\n type: yup.string().oneOf(Object.values(constants.API_TOKEN_TYPE)).optional(),\n permissions: yup.array().of(yup.string()).nullable(),\n lifespan: yup.number().min(1).oneOf(Object.values(constants.API_TOKEN_LIFESPANS)).nullable(),\n })\n .noUnknown()\n .strict();\n\nconst apiTokenUpdateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).notNull(),\n description: yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).nullable(),\n type: yup.string().oneOf(Object.values(constants.API_TOKEN_TYPE)).optional(),\n permissions: yup.array().of(yup.string()).nullable(),\n })\n .noUnknown()\n .strict();\n\nexport const validateApiTokenCreationInput = validateYupSchema(apiTokenCreationSchema);\nexport const validateApiTokenUpdateInput = validateYupSchema(apiTokenUpdateSchema);\n\nexport default {\n validateApiTokenCreationInput,\n validateApiTokenUpdateInput,\n};\n"],"names":["apiTokenCreationSchema","yup","object","shape","kind","string","oneOf","optional","name","min","max","constants","TOKEN_TEXT_MAX_LENGTH","required","description","type","Object","values","API_TOKEN_TYPE","permissions","array","of","nullable","lifespan","number","API_TOKEN_LIFESPANS","noUnknown","strict","apiTokenUpdateSchema","notNull","validateApiTokenCreationInput","validateYupSchema","validateApiTokenUpdateInput"],"mappings":";;;AAGA,MAAMA,sBAAAA,GAAyBC,GAAAA,CAC5BC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLC,IAAAA,IAAAA,EAAMH,GAAAA,CAAII,MAAM,EAAA,CAAGC,KAAK,CAAC;AAAC,QAAA;AAAc,KAAA,CAAA,CAAEC,QAAQ,EAAA;IAClDC,IAAAA,EAAMP,GAAAA,CAAII,MAAM,EAAA,CAAGI,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,CAAA,CAAEC,QAAQ,EAAA;IACvEC,WAAAA,EAAab,GAAAA,CAAII,MAAM,EAAA,CAAGK,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,EAAEL,QAAQ,EAAA;IACvEQ,IAAAA,EAAMd,GAAAA,CAAII,MAAM,EAAA,CAAGC,KAAK,CAACU,MAAAA,CAAOC,MAAM,CAACN,SAAAA,CAAUO,cAAc,CAAA,CAAA,CAAGX,QAAQ,EAAA;IAC1EY,WAAAA,EAAalB,GAAAA,CAAImB,KAAK,EAAA,CAAGC,EAAE,CAACpB,GAAAA,CAAII,MAAM,IAAIiB,QAAQ,EAAA;AAClDC,IAAAA,QAAAA,EAAUtB,GAAAA,CAAIuB,MAAM,EAAA,CAAGf,GAAG,CAAC,CAAA,CAAA,CAAGH,KAAK,CAACU,MAAAA,CAAOC,MAAM,CAACN,SAAAA,CAAUc,mBAAmB,GAAGH,QAAQ;AAC5F,CAAA,CAAA,CACCI,SAAS,GACTC,MAAM,EAAA;AAET,MAAMC,oBAAAA,GAAuB3B,GAAAA,CAC1BC,MAAM,EAAA,CACNC,KAAK,CAAC;IACLK,IAAAA,EAAMP,GAAAA,CAAII,MAAM,EAAA,CAAGI,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,CAAA,CAAEiB,OAAO,EAAA;IACtEf,WAAAA,EAAab,GAAAA,CAAII,MAAM,EAAA,CAAGK,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,EAAEU,QAAQ,EAAA;IACvEP,IAAAA,EAAMd,GAAAA,CAAII,MAAM,EAAA,CAAGC,KAAK,CAACU,MAAAA,CAAOC,MAAM,CAACN,SAAAA,CAAUO,cAAc,CAAA,CAAA,CAAGX,QAAQ,EAAA;IAC1EY,WAAAA,EAAalB,GAAAA,CAAImB,KAAK,EAAA,CAAGC,EAAE,CAACpB,GAAAA,CAAII,MAAM,IAAIiB,QAAQ;AACpD,CAAA,CAAA,CACCI,SAAS,GACTC,MAAM,EAAA;AAEF,MAAMG,6BAAAA,GAAgCC,iBAAAA,CAAkB/B,sBAAAA;AACxD,MAAMgC,2BAAAA,GAA8BD,iBAAAA,CAAkBH,oBAAAA;;;;"}
@@ -1,10 +1,12 @@
1
1
  'use strict';
2
2
 
3
3
  var utils = require('@strapi/utils');
4
+ var constants = require('../services/constants.js');
4
5
 
6
+ const { ROLE_TEXT_MAX_LENGTH } = constants;
5
7
  const roleCreateSchema = utils.yup.object().shape({
6
- name: utils.yup.string().min(1).required(),
7
- description: utils.yup.string().nullable()
8
+ name: utils.yup.string().min(1).max(ROLE_TEXT_MAX_LENGTH).required(),
9
+ description: utils.yup.string().max(ROLE_TEXT_MAX_LENGTH).nullable()
8
10
  }).noUnknown();
9
11
  const rolesDeleteSchema = utils.yup.object().shape({
10
12
  ids: utils.yup.array().of(utils.yup.strapiID()).min(1).required().test('roles-deletion-checks', 'Roles deletion checks have failed', async function checkRolesDeletion(ids) {
@@ -35,8 +37,8 @@ const roleDeleteSchema = utils.yup.strapiID().required().test('no-admin-single-d
35
37
  return true;
36
38
  });
37
39
  const roleUpdateSchema = utils.yup.object().shape({
38
- name: utils.yup.string().min(1),
39
- description: utils.yup.string().nullable()
40
+ name: utils.yup.string().min(1).max(ROLE_TEXT_MAX_LENGTH),
41
+ description: utils.yup.string().max(ROLE_TEXT_MAX_LENGTH).nullable()
40
42
  }).noUnknown();
41
43
  const validateRoleCreateInput = utils.validateYupSchema(roleCreateSchema);
42
44
  const validateRoleUpdateInput = utils.validateYupSchema(roleUpdateSchema);
@@ -1 +1 @@
1
- {"version":3,"file":"role.js","sources":["../../../../../server/src/validation/role.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\n\nconst roleCreateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).required(),\n description: yup.string().nullable(),\n })\n .noUnknown();\n\nconst rolesDeleteSchema = yup\n .object()\n .shape({\n ids: yup\n .array()\n .of(yup.strapiID())\n .min(1)\n .required()\n .test(\n 'roles-deletion-checks',\n 'Roles deletion checks have failed',\n async function checkRolesDeletion(ids) {\n try {\n await strapi.service('admin::role').checkRolesIdForDeletion(ids);\n } catch (e) {\n // @ts-expect-error yup types\n return this.createError({ path: 'ids', message: e.message });\n }\n\n return true;\n }\n ),\n })\n .noUnknown();\n\nconst roleDeleteSchema = yup\n .strapiID()\n .required()\n .test(\n 'no-admin-single-delete',\n 'Role deletion checks have failed',\n async function checkRoleDeletion(id) {\n try {\n await strapi.service('admin::role').checkRolesIdForDeletion([id]);\n } catch (e) {\n // @ts-expect-error yup types\n return this.createError({ path: 'id', message: e.message });\n }\n\n return true;\n }\n );\n\nconst roleUpdateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1),\n description: yup.string().nullable(),\n })\n .noUnknown();\n\nexport const validateRoleCreateInput = validateYupSchema(roleCreateSchema);\nexport const validateRoleUpdateInput = validateYupSchema(roleUpdateSchema);\nexport const validateRolesDeleteInput = validateYupSchema(rolesDeleteSchema);\nexport const validateRoleDeleteInput = validateYupSchema(roleDeleteSchema);\n\nexport default {\n validateRoleUpdateInput,\n validateRoleCreateInput,\n validateRolesDeleteInput,\n validateRoleDeleteInput,\n};\n"],"names":["roleCreateSchema","yup","object","shape","name","string","min","required","description","nullable","noUnknown","rolesDeleteSchema","ids","array","of","strapiID","test","checkRolesDeletion","strapi","service","checkRolesIdForDeletion","e","createError","path","message","roleDeleteSchema","checkRoleDeletion","id","roleUpdateSchema","validateRoleCreateInput","validateYupSchema","validateRoleUpdateInput","validateRolesDeleteInput","validateRoleDeleteInput"],"mappings":";;;;AAEA,MAAMA,gBAAAA,GAAmBC,SAAAA,CACtBC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLC,IAAAA,IAAAA,EAAMH,UAAII,MAAM,EAAA,CAAGC,GAAG,CAAC,GAAGC,QAAQ,EAAA;IAClCC,WAAAA,EAAaP,SAAAA,CAAII,MAAM,EAAA,CAAGI,QAAQ;AACpC,CAAA,CAAA,CACCC,SAAS,EAAA;AAEZ,MAAMC,iBAAAA,GAAoBV,SAAAA,CACvBC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLS,IAAAA,GAAAA,EAAKX,UACFY,KAAK,EAAA,CACLC,EAAE,CAACb,SAAAA,CAAIc,QAAQ,EAAA,CAAA,CACfT,GAAG,CAAC,CAAA,CAAA,CACJC,QAAQ,GACRS,IAAI,CACH,yBACA,mCAAA,EACA,eAAeC,mBAAmBL,GAAG,EAAA;QACnC,IAAI;AACF,YAAA,MAAMM,MAAAA,CAAOC,OAAO,CAAC,aAAA,CAAA,CAAeC,uBAAuB,CAACR,GAAAA,CAAAA;AAC9D,QAAA,CAAA,CAAE,OAAOS,CAAAA,EAAG;;YAEV,OAAO,IAAI,CAACC,WAAW,CAAC;gBAAEC,IAAAA,EAAM,KAAA;AAAOC,gBAAAA,OAAAA,EAASH,EAAEG;AAAQ,aAAA,CAAA;AAC5D,QAAA;QAEA,OAAO,IAAA;AACT,IAAA,CAAA;AAEN,CAAA,CAAA,CACCd,SAAS,EAAA;AAEZ,MAAMe,gBAAAA,GAAmBxB,SAAAA,CACtBc,QAAQ,EAAA,CACRR,QAAQ,EAAA,CACRS,IAAI,CACH,wBAAA,EACA,kCAAA,EACA,eAAeU,iBAAAA,CAAkBC,EAAE,EAAA;IACjC,IAAI;AACF,QAAA,MAAMT,MAAAA,CAAOC,OAAO,CAAC,aAAA,CAAA,CAAeC,uBAAuB,CAAC;AAACO,YAAAA;AAAG,SAAA,CAAA;AAClE,IAAA,CAAA,CAAE,OAAON,CAAAA,EAAG;;QAEV,OAAO,IAAI,CAACC,WAAW,CAAC;YAAEC,IAAAA,EAAM,IAAA;AAAMC,YAAAA,OAAAA,EAASH,EAAEG;AAAQ,SAAA,CAAA;AAC3D,IAAA;IAEA,OAAO,IAAA;AACT,CAAA,CAAA;AAGJ,MAAMI,gBAAAA,GAAmB3B,SAAAA,CACtBC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLC,IAAAA,IAAAA,EAAMH,SAAAA,CAAII,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA;IACvBE,WAAAA,EAAaP,SAAAA,CAAII,MAAM,EAAA,CAAGI,QAAQ;AACpC,CAAA,CAAA,CACCC,SAAS,EAAA;AAEL,MAAMmB,uBAAAA,GAA0BC,uBAAAA,CAAkB9B,gBAAAA;AAClD,MAAM+B,uBAAAA,GAA0BD,uBAAAA,CAAkBF,gBAAAA;AAClD,MAAMI,wBAAAA,GAA2BF,uBAAAA,CAAkBnB,iBAAAA;AACnD,MAAMsB,uBAAAA,GAA0BH,uBAAAA,CAAkBL,gBAAAA;;;;;;;"}
1
+ {"version":3,"file":"role.js","sources":["../../../../../server/src/validation/role.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport constants from '../services/constants';\n\nconst { ROLE_TEXT_MAX_LENGTH } = constants;\n\nconst roleCreateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).max(ROLE_TEXT_MAX_LENGTH).required(),\n description: yup.string().max(ROLE_TEXT_MAX_LENGTH).nullable(),\n })\n .noUnknown();\n\nconst rolesDeleteSchema = yup\n .object()\n .shape({\n ids: yup\n .array()\n .of(yup.strapiID())\n .min(1)\n .required()\n .test(\n 'roles-deletion-checks',\n 'Roles deletion checks have failed',\n async function checkRolesDeletion(ids) {\n try {\n await strapi.service('admin::role').checkRolesIdForDeletion(ids);\n } catch (e) {\n // @ts-expect-error yup types\n return this.createError({ path: 'ids', message: e.message });\n }\n\n return true;\n }\n ),\n })\n .noUnknown();\n\nconst roleDeleteSchema = yup\n .strapiID()\n .required()\n .test(\n 'no-admin-single-delete',\n 'Role deletion checks have failed',\n async function checkRoleDeletion(id) {\n try {\n await strapi.service('admin::role').checkRolesIdForDeletion([id]);\n } catch (e) {\n // @ts-expect-error yup types\n return this.createError({ path: 'id', message: e.message });\n }\n\n return true;\n }\n );\n\nconst roleUpdateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).max(ROLE_TEXT_MAX_LENGTH),\n description: yup.string().max(ROLE_TEXT_MAX_LENGTH).nullable(),\n })\n .noUnknown();\n\nexport const validateRoleCreateInput = validateYupSchema(roleCreateSchema);\nexport const validateRoleUpdateInput = validateYupSchema(roleUpdateSchema);\nexport const validateRolesDeleteInput = validateYupSchema(rolesDeleteSchema);\nexport const validateRoleDeleteInput = validateYupSchema(roleDeleteSchema);\n\nexport default {\n validateRoleUpdateInput,\n validateRoleCreateInput,\n validateRolesDeleteInput,\n validateRoleDeleteInput,\n};\n"],"names":["ROLE_TEXT_MAX_LENGTH","constants","roleCreateSchema","yup","object","shape","name","string","min","max","required","description","nullable","noUnknown","rolesDeleteSchema","ids","array","of","strapiID","test","checkRolesDeletion","strapi","service","checkRolesIdForDeletion","e","createError","path","message","roleDeleteSchema","checkRoleDeletion","id","roleUpdateSchema","validateRoleCreateInput","validateYupSchema","validateRoleUpdateInput","validateRolesDeleteInput","validateRoleDeleteInput"],"mappings":";;;;;AAGA,MAAM,EAAEA,oBAAoB,EAAE,GAAGC,SAAAA;AAEjC,MAAMC,gBAAAA,GAAmBC,SAAAA,CACtBC,MAAM,EAAA,CACNC,KAAK,CAAC;IACLC,IAAAA,EAAMH,SAAAA,CAAII,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAACT,oBAAAA,CAAAA,CAAsBU,QAAQ,EAAA;AAC5DC,IAAAA,WAAAA,EAAaR,UAAII,MAAM,EAAA,CAAGE,GAAG,CAACT,sBAAsBY,QAAQ;AAC9D,CAAA,CAAA,CACCC,SAAS,EAAA;AAEZ,MAAMC,iBAAAA,GAAoBX,SAAAA,CACvBC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLU,IAAAA,GAAAA,EAAKZ,UACFa,KAAK,EAAA,CACLC,EAAE,CAACd,SAAAA,CAAIe,QAAQ,EAAA,CAAA,CACfV,GAAG,CAAC,CAAA,CAAA,CACJE,QAAQ,GACRS,IAAI,CACH,yBACA,mCAAA,EACA,eAAeC,mBAAmBL,GAAG,EAAA;QACnC,IAAI;AACF,YAAA,MAAMM,MAAAA,CAAOC,OAAO,CAAC,aAAA,CAAA,CAAeC,uBAAuB,CAACR,GAAAA,CAAAA;AAC9D,QAAA,CAAA,CAAE,OAAOS,CAAAA,EAAG;;YAEV,OAAO,IAAI,CAACC,WAAW,CAAC;gBAAEC,IAAAA,EAAM,KAAA;AAAOC,gBAAAA,OAAAA,EAASH,EAAEG;AAAQ,aAAA,CAAA;AAC5D,QAAA;QAEA,OAAO,IAAA;AACT,IAAA,CAAA;AAEN,CAAA,CAAA,CACCd,SAAS,EAAA;AAEZ,MAAMe,gBAAAA,GAAmBzB,SAAAA,CACtBe,QAAQ,EAAA,CACRR,QAAQ,EAAA,CACRS,IAAI,CACH,wBAAA,EACA,kCAAA,EACA,eAAeU,iBAAAA,CAAkBC,EAAE,EAAA;IACjC,IAAI;AACF,QAAA,MAAMT,MAAAA,CAAOC,OAAO,CAAC,aAAA,CAAA,CAAeC,uBAAuB,CAAC;AAACO,YAAAA;AAAG,SAAA,CAAA;AAClE,IAAA,CAAA,CAAE,OAAON,CAAAA,EAAG;;QAEV,OAAO,IAAI,CAACC,WAAW,CAAC;YAAEC,IAAAA,EAAM,IAAA;AAAMC,YAAAA,OAAAA,EAASH,EAAEG;AAAQ,SAAA,CAAA;AAC3D,IAAA;IAEA,OAAO,IAAA;AACT,CAAA,CAAA;AAGJ,MAAMI,gBAAAA,GAAmB5B,SAAAA,CACtBC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLC,IAAAA,IAAAA,EAAMH,UAAII,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAACT,oBAAAA,CAAAA;AAC9BW,IAAAA,WAAAA,EAAaR,UAAII,MAAM,EAAA,CAAGE,GAAG,CAACT,sBAAsBY,QAAQ;AAC9D,CAAA,CAAA,CACCC,SAAS,EAAA;AAEL,MAAMmB,uBAAAA,GAA0BC,uBAAAA,CAAkB/B,gBAAAA;AAClD,MAAMgC,uBAAAA,GAA0BD,uBAAAA,CAAkBF,gBAAAA;AAClD,MAAMI,wBAAAA,GAA2BF,uBAAAA,CAAkBnB,iBAAAA;AACnD,MAAMsB,uBAAAA,GAA0BH,uBAAAA,CAAkBL,gBAAAA;;;;;;;"}
@@ -1,8 +1,10 @@
1
1
  import { yup, validateYupSchema } from '@strapi/utils';
2
+ import constants from '../services/constants.mjs';
2
3
 
4
+ const { ROLE_TEXT_MAX_LENGTH } = constants;
3
5
  const roleCreateSchema = yup.object().shape({
4
- name: yup.string().min(1).required(),
5
- description: yup.string().nullable()
6
+ name: yup.string().min(1).max(ROLE_TEXT_MAX_LENGTH).required(),
7
+ description: yup.string().max(ROLE_TEXT_MAX_LENGTH).nullable()
6
8
  }).noUnknown();
7
9
  const rolesDeleteSchema = yup.object().shape({
8
10
  ids: yup.array().of(yup.strapiID()).min(1).required().test('roles-deletion-checks', 'Roles deletion checks have failed', async function checkRolesDeletion(ids) {
@@ -33,8 +35,8 @@ const roleDeleteSchema = yup.strapiID().required().test('no-admin-single-delete'
33
35
  return true;
34
36
  });
35
37
  const roleUpdateSchema = yup.object().shape({
36
- name: yup.string().min(1),
37
- description: yup.string().nullable()
38
+ name: yup.string().min(1).max(ROLE_TEXT_MAX_LENGTH),
39
+ description: yup.string().max(ROLE_TEXT_MAX_LENGTH).nullable()
38
40
  }).noUnknown();
39
41
  const validateRoleCreateInput = validateYupSchema(roleCreateSchema);
40
42
  const validateRoleUpdateInput = validateYupSchema(roleUpdateSchema);
@@ -1 +1 @@
1
- {"version":3,"file":"role.mjs","sources":["../../../../../server/src/validation/role.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\n\nconst roleCreateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).required(),\n description: yup.string().nullable(),\n })\n .noUnknown();\n\nconst rolesDeleteSchema = yup\n .object()\n .shape({\n ids: yup\n .array()\n .of(yup.strapiID())\n .min(1)\n .required()\n .test(\n 'roles-deletion-checks',\n 'Roles deletion checks have failed',\n async function checkRolesDeletion(ids) {\n try {\n await strapi.service('admin::role').checkRolesIdForDeletion(ids);\n } catch (e) {\n // @ts-expect-error yup types\n return this.createError({ path: 'ids', message: e.message });\n }\n\n return true;\n }\n ),\n })\n .noUnknown();\n\nconst roleDeleteSchema = yup\n .strapiID()\n .required()\n .test(\n 'no-admin-single-delete',\n 'Role deletion checks have failed',\n async function checkRoleDeletion(id) {\n try {\n await strapi.service('admin::role').checkRolesIdForDeletion([id]);\n } catch (e) {\n // @ts-expect-error yup types\n return this.createError({ path: 'id', message: e.message });\n }\n\n return true;\n }\n );\n\nconst roleUpdateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1),\n description: yup.string().nullable(),\n })\n .noUnknown();\n\nexport const validateRoleCreateInput = validateYupSchema(roleCreateSchema);\nexport const validateRoleUpdateInput = validateYupSchema(roleUpdateSchema);\nexport const validateRolesDeleteInput = validateYupSchema(rolesDeleteSchema);\nexport const validateRoleDeleteInput = validateYupSchema(roleDeleteSchema);\n\nexport default {\n validateRoleUpdateInput,\n validateRoleCreateInput,\n validateRolesDeleteInput,\n validateRoleDeleteInput,\n};\n"],"names":["roleCreateSchema","yup","object","shape","name","string","min","required","description","nullable","noUnknown","rolesDeleteSchema","ids","array","of","strapiID","test","checkRolesDeletion","strapi","service","checkRolesIdForDeletion","e","createError","path","message","roleDeleteSchema","checkRoleDeletion","id","roleUpdateSchema","validateRoleCreateInput","validateYupSchema","validateRoleUpdateInput","validateRolesDeleteInput","validateRoleDeleteInput"],"mappings":";;AAEA,MAAMA,gBAAAA,GAAmBC,GAAAA,CACtBC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLC,IAAAA,IAAAA,EAAMH,IAAII,MAAM,EAAA,CAAGC,GAAG,CAAC,GAAGC,QAAQ,EAAA;IAClCC,WAAAA,EAAaP,GAAAA,CAAII,MAAM,EAAA,CAAGI,QAAQ;AACpC,CAAA,CAAA,CACCC,SAAS,EAAA;AAEZ,MAAMC,iBAAAA,GAAoBV,GAAAA,CACvBC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLS,IAAAA,GAAAA,EAAKX,IACFY,KAAK,EAAA,CACLC,EAAE,CAACb,GAAAA,CAAIc,QAAQ,EAAA,CAAA,CACfT,GAAG,CAAC,CAAA,CAAA,CACJC,QAAQ,GACRS,IAAI,CACH,yBACA,mCAAA,EACA,eAAeC,mBAAmBL,GAAG,EAAA;QACnC,IAAI;AACF,YAAA,MAAMM,MAAAA,CAAOC,OAAO,CAAC,aAAA,CAAA,CAAeC,uBAAuB,CAACR,GAAAA,CAAAA;AAC9D,QAAA,CAAA,CAAE,OAAOS,CAAAA,EAAG;;YAEV,OAAO,IAAI,CAACC,WAAW,CAAC;gBAAEC,IAAAA,EAAM,KAAA;AAAOC,gBAAAA,OAAAA,EAASH,EAAEG;AAAQ,aAAA,CAAA;AAC5D,QAAA;QAEA,OAAO,IAAA;AACT,IAAA,CAAA;AAEN,CAAA,CAAA,CACCd,SAAS,EAAA;AAEZ,MAAMe,gBAAAA,GAAmBxB,GAAAA,CACtBc,QAAQ,EAAA,CACRR,QAAQ,EAAA,CACRS,IAAI,CACH,wBAAA,EACA,kCAAA,EACA,eAAeU,iBAAAA,CAAkBC,EAAE,EAAA;IACjC,IAAI;AACF,QAAA,MAAMT,MAAAA,CAAOC,OAAO,CAAC,aAAA,CAAA,CAAeC,uBAAuB,CAAC;AAACO,YAAAA;AAAG,SAAA,CAAA;AAClE,IAAA,CAAA,CAAE,OAAON,CAAAA,EAAG;;QAEV,OAAO,IAAI,CAACC,WAAW,CAAC;YAAEC,IAAAA,EAAM,IAAA;AAAMC,YAAAA,OAAAA,EAASH,EAAEG;AAAQ,SAAA,CAAA;AAC3D,IAAA;IAEA,OAAO,IAAA;AACT,CAAA,CAAA;AAGJ,MAAMI,gBAAAA,GAAmB3B,GAAAA,CACtBC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLC,IAAAA,IAAAA,EAAMH,GAAAA,CAAII,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA;IACvBE,WAAAA,EAAaP,GAAAA,CAAII,MAAM,EAAA,CAAGI,QAAQ;AACpC,CAAA,CAAA,CACCC,SAAS,EAAA;AAEL,MAAMmB,uBAAAA,GAA0BC,iBAAAA,CAAkB9B,gBAAAA;AAClD,MAAM+B,uBAAAA,GAA0BD,iBAAAA,CAAkBF,gBAAAA;AAClD,MAAMI,wBAAAA,GAA2BF,iBAAAA,CAAkBnB,iBAAAA;AACnD,MAAMsB,uBAAAA,GAA0BH,iBAAAA,CAAkBL,gBAAAA;;;;"}
1
+ {"version":3,"file":"role.mjs","sources":["../../../../../server/src/validation/role.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport constants from '../services/constants';\n\nconst { ROLE_TEXT_MAX_LENGTH } = constants;\n\nconst roleCreateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).max(ROLE_TEXT_MAX_LENGTH).required(),\n description: yup.string().max(ROLE_TEXT_MAX_LENGTH).nullable(),\n })\n .noUnknown();\n\nconst rolesDeleteSchema = yup\n .object()\n .shape({\n ids: yup\n .array()\n .of(yup.strapiID())\n .min(1)\n .required()\n .test(\n 'roles-deletion-checks',\n 'Roles deletion checks have failed',\n async function checkRolesDeletion(ids) {\n try {\n await strapi.service('admin::role').checkRolesIdForDeletion(ids);\n } catch (e) {\n // @ts-expect-error yup types\n return this.createError({ path: 'ids', message: e.message });\n }\n\n return true;\n }\n ),\n })\n .noUnknown();\n\nconst roleDeleteSchema = yup\n .strapiID()\n .required()\n .test(\n 'no-admin-single-delete',\n 'Role deletion checks have failed',\n async function checkRoleDeletion(id) {\n try {\n await strapi.service('admin::role').checkRolesIdForDeletion([id]);\n } catch (e) {\n // @ts-expect-error yup types\n return this.createError({ path: 'id', message: e.message });\n }\n\n return true;\n }\n );\n\nconst roleUpdateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).max(ROLE_TEXT_MAX_LENGTH),\n description: yup.string().max(ROLE_TEXT_MAX_LENGTH).nullable(),\n })\n .noUnknown();\n\nexport const validateRoleCreateInput = validateYupSchema(roleCreateSchema);\nexport const validateRoleUpdateInput = validateYupSchema(roleUpdateSchema);\nexport const validateRolesDeleteInput = validateYupSchema(rolesDeleteSchema);\nexport const validateRoleDeleteInput = validateYupSchema(roleDeleteSchema);\n\nexport default {\n validateRoleUpdateInput,\n validateRoleCreateInput,\n validateRolesDeleteInput,\n validateRoleDeleteInput,\n};\n"],"names":["ROLE_TEXT_MAX_LENGTH","constants","roleCreateSchema","yup","object","shape","name","string","min","max","required","description","nullable","noUnknown","rolesDeleteSchema","ids","array","of","strapiID","test","checkRolesDeletion","strapi","service","checkRolesIdForDeletion","e","createError","path","message","roleDeleteSchema","checkRoleDeletion","id","roleUpdateSchema","validateRoleCreateInput","validateYupSchema","validateRoleUpdateInput","validateRolesDeleteInput","validateRoleDeleteInput"],"mappings":";;;AAGA,MAAM,EAAEA,oBAAoB,EAAE,GAAGC,SAAAA;AAEjC,MAAMC,gBAAAA,GAAmBC,GAAAA,CACtBC,MAAM,EAAA,CACNC,KAAK,CAAC;IACLC,IAAAA,EAAMH,GAAAA,CAAII,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAACT,oBAAAA,CAAAA,CAAsBU,QAAQ,EAAA;AAC5DC,IAAAA,WAAAA,EAAaR,IAAII,MAAM,EAAA,CAAGE,GAAG,CAACT,sBAAsBY,QAAQ;AAC9D,CAAA,CAAA,CACCC,SAAS,EAAA;AAEZ,MAAMC,iBAAAA,GAAoBX,GAAAA,CACvBC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLU,IAAAA,GAAAA,EAAKZ,IACFa,KAAK,EAAA,CACLC,EAAE,CAACd,GAAAA,CAAIe,QAAQ,EAAA,CAAA,CACfV,GAAG,CAAC,CAAA,CAAA,CACJE,QAAQ,GACRS,IAAI,CACH,yBACA,mCAAA,EACA,eAAeC,mBAAmBL,GAAG,EAAA;QACnC,IAAI;AACF,YAAA,MAAMM,MAAAA,CAAOC,OAAO,CAAC,aAAA,CAAA,CAAeC,uBAAuB,CAACR,GAAAA,CAAAA;AAC9D,QAAA,CAAA,CAAE,OAAOS,CAAAA,EAAG;;YAEV,OAAO,IAAI,CAACC,WAAW,CAAC;gBAAEC,IAAAA,EAAM,KAAA;AAAOC,gBAAAA,OAAAA,EAASH,EAAEG;AAAQ,aAAA,CAAA;AAC5D,QAAA;QAEA,OAAO,IAAA;AACT,IAAA,CAAA;AAEN,CAAA,CAAA,CACCd,SAAS,EAAA;AAEZ,MAAMe,gBAAAA,GAAmBzB,GAAAA,CACtBe,QAAQ,EAAA,CACRR,QAAQ,EAAA,CACRS,IAAI,CACH,wBAAA,EACA,kCAAA,EACA,eAAeU,iBAAAA,CAAkBC,EAAE,EAAA;IACjC,IAAI;AACF,QAAA,MAAMT,MAAAA,CAAOC,OAAO,CAAC,aAAA,CAAA,CAAeC,uBAAuB,CAAC;AAACO,YAAAA;AAAG,SAAA,CAAA;AAClE,IAAA,CAAA,CAAE,OAAON,CAAAA,EAAG;;QAEV,OAAO,IAAI,CAACC,WAAW,CAAC;YAAEC,IAAAA,EAAM,IAAA;AAAMC,YAAAA,OAAAA,EAASH,EAAEG;AAAQ,SAAA,CAAA;AAC3D,IAAA;IAEA,OAAO,IAAA;AACT,CAAA,CAAA;AAGJ,MAAMI,gBAAAA,GAAmB5B,GAAAA,CACtBC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLC,IAAAA,IAAAA,EAAMH,IAAII,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAACT,oBAAAA,CAAAA;AAC9BW,IAAAA,WAAAA,EAAaR,IAAII,MAAM,EAAA,CAAGE,GAAG,CAACT,sBAAsBY,QAAQ;AAC9D,CAAA,CAAA,CACCC,SAAS,EAAA;AAEL,MAAMmB,uBAAAA,GAA0BC,iBAAAA,CAAkB/B,gBAAAA;AAClD,MAAMgC,uBAAAA,GAA0BD,iBAAAA,CAAkBF,gBAAAA;AAClD,MAAMI,wBAAAA,GAA2BF,iBAAAA,CAAkBnB,iBAAAA;AACnD,MAAMsB,uBAAAA,GAA0BH,iBAAAA,CAAkBL,gBAAAA;;;;"}
@@ -6,14 +6,14 @@ var utils = require('@strapi/utils');
6
6
  var constants = require('../../services/constants.js');
7
7
 
8
8
  const transferTokenCreationSchema = utils.yup.object().shape({
9
- name: utils.yup.string().min(1).required(),
10
- description: utils.yup.string().optional(),
9
+ name: utils.yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).required(),
10
+ description: utils.yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).optional(),
11
11
  permissions: utils.yup.array().min(1).of(utils.yup.string().oneOf(Object.values(constants.TRANSFER_TOKEN_TYPE))).required(),
12
12
  lifespan: utils.yup.number().min(1).oneOf(Object.values(constants.TRANSFER_TOKEN_LIFESPANS)).nullable()
13
13
  }).noUnknown().strict();
14
14
  const transferTokenUpdateSchema = utils.yup.object().shape({
15
- name: utils.yup.string().min(1).notNull(),
16
- description: utils.yup.string().nullable(),
15
+ name: utils.yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).notNull(),
16
+ description: utils.yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).nullable(),
17
17
  permissions: utils.yup.array().min(1).of(utils.yup.string().oneOf(Object.values(constants.TRANSFER_TOKEN_TYPE))).nullable()
18
18
  }).noUnknown().strict();
19
19
  const validateTransferTokenCreationInput = utils.validateYupSchema(transferTokenCreationSchema);
@@ -1 +1 @@
1
- {"version":3,"file":"token.js","sources":["../../../../../../server/src/validation/transfer/token.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport constants from '../../services/constants';\n\nconst transferTokenCreationSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).required(),\n description: yup.string().optional(),\n permissions: yup\n .array()\n .min(1)\n .of(yup.string().oneOf(Object.values(constants.TRANSFER_TOKEN_TYPE)))\n .required(),\n lifespan: yup\n .number()\n .min(1)\n .oneOf(Object.values(constants.TRANSFER_TOKEN_LIFESPANS))\n .nullable(),\n })\n .noUnknown()\n .strict();\n\nconst transferTokenUpdateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).notNull(),\n description: yup.string().nullable(),\n permissions: yup\n .array()\n .min(1)\n .of(yup.string().oneOf(Object.values(constants.TRANSFER_TOKEN_TYPE)))\n .nullable(),\n })\n .noUnknown()\n .strict();\n\nexport const validateTransferTokenCreationInput = validateYupSchema(transferTokenCreationSchema);\nexport const validateTransferTokenUpdateInput = validateYupSchema(transferTokenUpdateSchema);\n\nexport default {\n validateTransferTokenCreationInput,\n validateTransferTokenUpdateInput,\n};\n"],"names":["transferTokenCreationSchema","yup","object","shape","name","string","min","required","description","optional","permissions","array","of","oneOf","Object","values","constants","TRANSFER_TOKEN_TYPE","lifespan","number","TRANSFER_TOKEN_LIFESPANS","nullable","noUnknown","strict","transferTokenUpdateSchema","notNull","validateTransferTokenCreationInput","validateYupSchema","validateTransferTokenUpdateInput"],"mappings":";;;;;;;AAGA,MAAMA,2BAAAA,GAA8BC,SAAAA,CACjCC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLC,IAAAA,IAAAA,EAAMH,UAAII,MAAM,EAAA,CAAGC,GAAG,CAAC,GAAGC,QAAQ,EAAA;IAClCC,WAAAA,EAAaP,SAAAA,CAAII,MAAM,EAAA,CAAGI,QAAQ,EAAA;AAClCC,IAAAA,WAAAA,EAAaT,UACVU,KAAK,EAAA,CACLL,GAAG,CAAC,CAAA,CAAA,CACJM,EAAE,CAACX,SAAAA,CAAII,MAAM,EAAA,CAAGQ,KAAK,CAACC,MAAAA,CAAOC,MAAM,CAACC,SAAAA,CAAUC,mBAAmB,IACjEV,QAAQ,EAAA;AACXW,IAAAA,QAAAA,EAAUjB,SAAAA,CACPkB,MAAM,EAAA,CACNb,GAAG,CAAC,CAAA,CAAA,CACJO,KAAK,CAACC,MAAAA,CAAOC,MAAM,CAACC,SAAAA,CAAUI,wBAAwB,GACtDC,QAAQ;AACb,CAAA,CAAA,CACCC,SAAS,GACTC,MAAM,EAAA;AAET,MAAMC,yBAAAA,GAA4BvB,SAAAA,CAC/BC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLC,IAAAA,IAAAA,EAAMH,UAAII,MAAM,EAAA,CAAGC,GAAG,CAAC,GAAGmB,OAAO,EAAA;IACjCjB,WAAAA,EAAaP,SAAAA,CAAII,MAAM,EAAA,CAAGgB,QAAQ,EAAA;AAClCX,IAAAA,WAAAA,EAAaT,UACVU,KAAK,EAAA,CACLL,GAAG,CAAC,CAAA,CAAA,CACJM,EAAE,CAACX,SAAAA,CAAII,MAAM,EAAA,CAAGQ,KAAK,CAACC,MAAAA,CAAOC,MAAM,CAACC,SAAAA,CAAUC,mBAAmB,IACjEI,QAAQ;AACb,CAAA,CAAA,CACCC,SAAS,GACTC,MAAM,EAAA;AAEF,MAAMG,kCAAAA,GAAqCC,uBAAAA,CAAkB3B,2BAAAA;AAC7D,MAAM4B,gCAAAA,GAAmCD,uBAAAA,CAAkBH,yBAAAA;AAElE,YAAe;AACbE,IAAAA,kCAAAA;AACAE,IAAAA;AACF,CAAA;;;;;;"}
1
+ {"version":3,"file":"token.js","sources":["../../../../../../server/src/validation/transfer/token.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport constants from '../../services/constants';\n\nconst transferTokenCreationSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).required(),\n description: yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).optional(),\n permissions: yup\n .array()\n .min(1)\n .of(yup.string().oneOf(Object.values(constants.TRANSFER_TOKEN_TYPE)))\n .required(),\n lifespan: yup\n .number()\n .min(1)\n .oneOf(Object.values(constants.TRANSFER_TOKEN_LIFESPANS))\n .nullable(),\n })\n .noUnknown()\n .strict();\n\nconst transferTokenUpdateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).notNull(),\n description: yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).nullable(),\n permissions: yup\n .array()\n .min(1)\n .of(yup.string().oneOf(Object.values(constants.TRANSFER_TOKEN_TYPE)))\n .nullable(),\n })\n .noUnknown()\n .strict();\n\nexport const validateTransferTokenCreationInput = validateYupSchema(transferTokenCreationSchema);\nexport const validateTransferTokenUpdateInput = validateYupSchema(transferTokenUpdateSchema);\n\nexport default {\n validateTransferTokenCreationInput,\n validateTransferTokenUpdateInput,\n};\n"],"names":["transferTokenCreationSchema","yup","object","shape","name","string","min","max","constants","TOKEN_TEXT_MAX_LENGTH","required","description","optional","permissions","array","of","oneOf","Object","values","TRANSFER_TOKEN_TYPE","lifespan","number","TRANSFER_TOKEN_LIFESPANS","nullable","noUnknown","strict","transferTokenUpdateSchema","notNull","validateTransferTokenCreationInput","validateYupSchema","validateTransferTokenUpdateInput"],"mappings":";;;;;;;AAGA,MAAMA,2BAAAA,GAA8BC,SAAAA,CACjCC,MAAM,EAAA,CACNC,KAAK,CAAC;IACLC,IAAAA,EAAMH,SAAAA,CAAII,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,CAAA,CAAEC,QAAQ,EAAA;IACvEC,WAAAA,EAAaV,SAAAA,CAAII,MAAM,EAAA,CAAGE,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,EAAEG,QAAQ,EAAA;AACvEC,IAAAA,WAAAA,EAAaZ,UACVa,KAAK,EAAA,CACLR,GAAG,CAAC,CAAA,CAAA,CACJS,EAAE,CAACd,SAAAA,CAAII,MAAM,EAAA,CAAGW,KAAK,CAACC,MAAAA,CAAOC,MAAM,CAACV,SAAAA,CAAUW,mBAAmB,IACjET,QAAQ,EAAA;AACXU,IAAAA,QAAAA,EAAUnB,SAAAA,CACPoB,MAAM,EAAA,CACNf,GAAG,CAAC,CAAA,CAAA,CACJU,KAAK,CAACC,MAAAA,CAAOC,MAAM,CAACV,SAAAA,CAAUc,wBAAwB,GACtDC,QAAQ;AACb,CAAA,CAAA,CACCC,SAAS,GACTC,MAAM,EAAA;AAET,MAAMC,yBAAAA,GAA4BzB,SAAAA,CAC/BC,MAAM,EAAA,CACNC,KAAK,CAAC;IACLC,IAAAA,EAAMH,SAAAA,CAAII,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,CAAA,CAAEkB,OAAO,EAAA;IACtEhB,WAAAA,EAAaV,SAAAA,CAAII,MAAM,EAAA,CAAGE,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,EAAEc,QAAQ,EAAA;AACvEV,IAAAA,WAAAA,EAAaZ,UACVa,KAAK,EAAA,CACLR,GAAG,CAAC,CAAA,CAAA,CACJS,EAAE,CAACd,SAAAA,CAAII,MAAM,EAAA,CAAGW,KAAK,CAACC,MAAAA,CAAOC,MAAM,CAACV,SAAAA,CAAUW,mBAAmB,IACjEI,QAAQ;AACb,CAAA,CAAA,CACCC,SAAS,GACTC,MAAM,EAAA;AAEF,MAAMG,kCAAAA,GAAqCC,uBAAAA,CAAkB7B,2BAAAA;AAC7D,MAAM8B,gCAAAA,GAAmCD,uBAAAA,CAAkBH,yBAAAA;AAElE,YAAe;AACbE,IAAAA,kCAAAA;AACAE,IAAAA;AACF,CAAA;;;;;;"}
@@ -2,14 +2,14 @@ import { yup, validateYupSchema } from '@strapi/utils';
2
2
  import constants from '../../services/constants.mjs';
3
3
 
4
4
  const transferTokenCreationSchema = yup.object().shape({
5
- name: yup.string().min(1).required(),
6
- description: yup.string().optional(),
5
+ name: yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).required(),
6
+ description: yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).optional(),
7
7
  permissions: yup.array().min(1).of(yup.string().oneOf(Object.values(constants.TRANSFER_TOKEN_TYPE))).required(),
8
8
  lifespan: yup.number().min(1).oneOf(Object.values(constants.TRANSFER_TOKEN_LIFESPANS)).nullable()
9
9
  }).noUnknown().strict();
10
10
  const transferTokenUpdateSchema = yup.object().shape({
11
- name: yup.string().min(1).notNull(),
12
- description: yup.string().nullable(),
11
+ name: yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).notNull(),
12
+ description: yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).nullable(),
13
13
  permissions: yup.array().min(1).of(yup.string().oneOf(Object.values(constants.TRANSFER_TOKEN_TYPE))).nullable()
14
14
  }).noUnknown().strict();
15
15
  const validateTransferTokenCreationInput = validateYupSchema(transferTokenCreationSchema);
@@ -1 +1 @@
1
- {"version":3,"file":"token.mjs","sources":["../../../../../../server/src/validation/transfer/token.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport constants from '../../services/constants';\n\nconst transferTokenCreationSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).required(),\n description: yup.string().optional(),\n permissions: yup\n .array()\n .min(1)\n .of(yup.string().oneOf(Object.values(constants.TRANSFER_TOKEN_TYPE)))\n .required(),\n lifespan: yup\n .number()\n .min(1)\n .oneOf(Object.values(constants.TRANSFER_TOKEN_LIFESPANS))\n .nullable(),\n })\n .noUnknown()\n .strict();\n\nconst transferTokenUpdateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).notNull(),\n description: yup.string().nullable(),\n permissions: yup\n .array()\n .min(1)\n .of(yup.string().oneOf(Object.values(constants.TRANSFER_TOKEN_TYPE)))\n .nullable(),\n })\n .noUnknown()\n .strict();\n\nexport const validateTransferTokenCreationInput = validateYupSchema(transferTokenCreationSchema);\nexport const validateTransferTokenUpdateInput = validateYupSchema(transferTokenUpdateSchema);\n\nexport default {\n validateTransferTokenCreationInput,\n validateTransferTokenUpdateInput,\n};\n"],"names":["transferTokenCreationSchema","yup","object","shape","name","string","min","required","description","optional","permissions","array","of","oneOf","Object","values","constants","TRANSFER_TOKEN_TYPE","lifespan","number","TRANSFER_TOKEN_LIFESPANS","nullable","noUnknown","strict","transferTokenUpdateSchema","notNull","validateTransferTokenCreationInput","validateYupSchema","validateTransferTokenUpdateInput"],"mappings":";;;AAGA,MAAMA,2BAAAA,GAA8BC,GAAAA,CACjCC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLC,IAAAA,IAAAA,EAAMH,IAAII,MAAM,EAAA,CAAGC,GAAG,CAAC,GAAGC,QAAQ,EAAA;IAClCC,WAAAA,EAAaP,GAAAA,CAAII,MAAM,EAAA,CAAGI,QAAQ,EAAA;AAClCC,IAAAA,WAAAA,EAAaT,IACVU,KAAK,EAAA,CACLL,GAAG,CAAC,CAAA,CAAA,CACJM,EAAE,CAACX,GAAAA,CAAII,MAAM,EAAA,CAAGQ,KAAK,CAACC,MAAAA,CAAOC,MAAM,CAACC,SAAAA,CAAUC,mBAAmB,IACjEV,QAAQ,EAAA;AACXW,IAAAA,QAAAA,EAAUjB,GAAAA,CACPkB,MAAM,EAAA,CACNb,GAAG,CAAC,CAAA,CAAA,CACJO,KAAK,CAACC,MAAAA,CAAOC,MAAM,CAACC,SAAAA,CAAUI,wBAAwB,GACtDC,QAAQ;AACb,CAAA,CAAA,CACCC,SAAS,GACTC,MAAM,EAAA;AAET,MAAMC,yBAAAA,GAA4BvB,GAAAA,CAC/BC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLC,IAAAA,IAAAA,EAAMH,IAAII,MAAM,EAAA,CAAGC,GAAG,CAAC,GAAGmB,OAAO,EAAA;IACjCjB,WAAAA,EAAaP,GAAAA,CAAII,MAAM,EAAA,CAAGgB,QAAQ,EAAA;AAClCX,IAAAA,WAAAA,EAAaT,IACVU,KAAK,EAAA,CACLL,GAAG,CAAC,CAAA,CAAA,CACJM,EAAE,CAACX,GAAAA,CAAII,MAAM,EAAA,CAAGQ,KAAK,CAACC,MAAAA,CAAOC,MAAM,CAACC,SAAAA,CAAUC,mBAAmB,IACjEI,QAAQ;AACb,CAAA,CAAA,CACCC,SAAS,GACTC,MAAM,EAAA;AAEF,MAAMG,kCAAAA,GAAqCC,iBAAAA,CAAkB3B,2BAAAA;AAC7D,MAAM4B,gCAAAA,GAAmCD,iBAAAA,CAAkBH,yBAAAA;AAElE,YAAe;AACbE,IAAAA,kCAAAA;AACAE,IAAAA;AACF,CAAA;;;;"}
1
+ {"version":3,"file":"token.mjs","sources":["../../../../../../server/src/validation/transfer/token.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport constants from '../../services/constants';\n\nconst transferTokenCreationSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).required(),\n description: yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).optional(),\n permissions: yup\n .array()\n .min(1)\n .of(yup.string().oneOf(Object.values(constants.TRANSFER_TOKEN_TYPE)))\n .required(),\n lifespan: yup\n .number()\n .min(1)\n .oneOf(Object.values(constants.TRANSFER_TOKEN_LIFESPANS))\n .nullable(),\n })\n .noUnknown()\n .strict();\n\nconst transferTokenUpdateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).notNull(),\n description: yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).nullable(),\n permissions: yup\n .array()\n .min(1)\n .of(yup.string().oneOf(Object.values(constants.TRANSFER_TOKEN_TYPE)))\n .nullable(),\n })\n .noUnknown()\n .strict();\n\nexport const validateTransferTokenCreationInput = validateYupSchema(transferTokenCreationSchema);\nexport const validateTransferTokenUpdateInput = validateYupSchema(transferTokenUpdateSchema);\n\nexport default {\n validateTransferTokenCreationInput,\n validateTransferTokenUpdateInput,\n};\n"],"names":["transferTokenCreationSchema","yup","object","shape","name","string","min","max","constants","TOKEN_TEXT_MAX_LENGTH","required","description","optional","permissions","array","of","oneOf","Object","values","TRANSFER_TOKEN_TYPE","lifespan","number","TRANSFER_TOKEN_LIFESPANS","nullable","noUnknown","strict","transferTokenUpdateSchema","notNull","validateTransferTokenCreationInput","validateYupSchema","validateTransferTokenUpdateInput"],"mappings":";;;AAGA,MAAMA,2BAAAA,GAA8BC,GAAAA,CACjCC,MAAM,EAAA,CACNC,KAAK,CAAC;IACLC,IAAAA,EAAMH,GAAAA,CAAII,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,CAAA,CAAEC,QAAQ,EAAA;IACvEC,WAAAA,EAAaV,GAAAA,CAAII,MAAM,EAAA,CAAGE,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,EAAEG,QAAQ,EAAA;AACvEC,IAAAA,WAAAA,EAAaZ,IACVa,KAAK,EAAA,CACLR,GAAG,CAAC,CAAA,CAAA,CACJS,EAAE,CAACd,GAAAA,CAAII,MAAM,EAAA,CAAGW,KAAK,CAACC,MAAAA,CAAOC,MAAM,CAACV,SAAAA,CAAUW,mBAAmB,IACjET,QAAQ,EAAA;AACXU,IAAAA,QAAAA,EAAUnB,GAAAA,CACPoB,MAAM,EAAA,CACNf,GAAG,CAAC,CAAA,CAAA,CACJU,KAAK,CAACC,MAAAA,CAAOC,MAAM,CAACV,SAAAA,CAAUc,wBAAwB,GACtDC,QAAQ;AACb,CAAA,CAAA,CACCC,SAAS,GACTC,MAAM,EAAA;AAET,MAAMC,yBAAAA,GAA4BzB,GAAAA,CAC/BC,MAAM,EAAA,CACNC,KAAK,CAAC;IACLC,IAAAA,EAAMH,GAAAA,CAAII,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,CAAA,CAAEkB,OAAO,EAAA;IACtEhB,WAAAA,EAAaV,GAAAA,CAAII,MAAM,EAAA,CAAGE,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,EAAEc,QAAQ,EAAA;AACvEV,IAAAA,WAAAA,EAAaZ,IACVa,KAAK,EAAA,CACLR,GAAG,CAAC,CAAA,CAAA,CACJS,EAAE,CAACd,GAAAA,CAAII,MAAM,EAAA,CAAGW,KAAK,CAACC,MAAAA,CAAOC,MAAM,CAACV,SAAAA,CAAUW,mBAAmB,IACjEI,QAAQ;AACb,CAAA,CAAA,CACCC,SAAS,GACTC,MAAM,EAAA;AAEF,MAAMG,kCAAAA,GAAqCC,iBAAAA,CAAkB7B,2BAAAA;AAC7D,MAAM8B,gCAAAA,GAAmCD,iBAAAA,CAAkBH,yBAAAA;AAElE,YAAe;AACbE,IAAAA,kCAAAA;AACAE,IAAAA;AACF,CAAA;;;;"}
@@ -1,19 +1,22 @@
1
1
  'use strict';
2
2
 
3
3
  /**
4
- * Path attribute of the admin auth (access) token cookie, configurable
5
- * through `admin.auth.cookie.path` so multiple Strapi instances on the same
6
- * parent domain can keep separate cookies (e.g. `/strapi-de/admin`).
4
+ * Validates the Path attribute of the admin auth cookies. The path is
5
+ * configurable through `admin.auth.cookie.path` so multiple Strapi instances
6
+ * on the same parent domain can keep separate cookies (e.g. `/strapi-de/admin`).
7
7
  *
8
8
  * Browser-safe single source for both sides of the handoff: the admin panel
9
- * cannot read server config, so the build transports the config value into
10
- * the bundle through the internal `STRAPI_ADMIN_AUTH_COOKIE_PATH` variable
11
- * (see create-build-context.ts in @strapi/strapi); the server resolves the
12
- * same config at runtime. Changing the path requires an admin rebuild, like
13
- * any other admin config change.
9
+ * cannot read server config, so the build transports the access cookie path
10
+ * into the bundle through the internal `STRAPI_ADMIN_AUTH_COOKIE_PATH`
11
+ * variable (see create-build-context.ts in @strapi/strapi); the server
12
+ * resolves the same config at runtime. Changing the path requires an admin
13
+ * rebuild, like any other admin config change.
14
14
  *
15
- * Defaults to `/admin` to match the refresh-cookie path used by
16
- * `getRefreshCookieOptions`.
15
+ * The callers pick the value to validate (see session-auth.ts). When
16
+ * `admin.auth.cookie.path` is unset, the access cookie follows the path the
17
+ * panel is served from (`admin.url`) and the refresh cookie follows the admin
18
+ * API (`/admin`), each behind any `server.url` subpath.
19
+ * `DEFAULT_AUTH_COOKIE_PATH` is only the fallback for a missing or invalid value.
17
20
  */ const DEFAULT_AUTH_COOKIE_PATH = '/admin';
18
21
  const isValidCookiePath = (path)=>{
19
22
  if (!path.startsWith('/')) {
@@ -1 +1 @@
1
- {"version":3,"file":"auth-cookie-path.js","sources":["../../../../shared/utils/auth-cookie-path.ts"],"sourcesContent":["/**\n * Path attribute of the admin auth (access) token cookie, configurable\n * through `admin.auth.cookie.path` so multiple Strapi instances on the same\n * parent domain can keep separate cookies (e.g. `/strapi-de/admin`).\n *\n * Browser-safe single source for both sides of the handoff: the admin panel\n * cannot read server config, so the build transports the config value into\n * the bundle through the internal `STRAPI_ADMIN_AUTH_COOKIE_PATH` variable\n * (see create-build-context.ts in @strapi/strapi); the server resolves the\n * same config at runtime. Changing the path requires an admin rebuild, like\n * any other admin config change.\n *\n * Defaults to `/admin` to match the refresh-cookie path used by\n * `getRefreshCookieOptions`.\n */\nexport const DEFAULT_AUTH_COOKIE_PATH = '/admin';\n\nconst isValidCookiePath = (path: string): boolean => {\n if (!path.startsWith('/')) {\n return false;\n }\n\n // RFC 6265 path-av: any CHAR except CTLs or \";\".\n // eslint-disable-next-line no-control-regex -- CTL chars are exactly what RFC 6265 forbids\n return !/[\\x00-\\x1F\\x7F;]/.test(path);\n};\n\nexport const resolveAuthCookiePath = (\n configuredPath?: string,\n warn: (message: string) => void = console.warn\n): string => {\n const cookiePath = (configuredPath || '').trim();\n\n if (!cookiePath) {\n return DEFAULT_AUTH_COOKIE_PATH;\n }\n\n if (!isValidCookiePath(cookiePath)) {\n warn(\n `Ignoring invalid admin auth cookie path \"${cookiePath}\" (must be an absolute path without \";\"); using \"${DEFAULT_AUTH_COOKIE_PATH}\" instead.`\n );\n return DEFAULT_AUTH_COOKIE_PATH;\n }\n\n return cookiePath;\n};\n"],"names":["DEFAULT_AUTH_COOKIE_PATH","isValidCookiePath","path","startsWith","test","resolveAuthCookiePath","configuredPath","warn","console","cookiePath","trim"],"mappings":";;AAAA;;;;;;;;;;;;;;IAeO,MAAMA,wBAAAA,GAA2B;AAExC,MAAMC,oBAAoB,CAACC,IAAAA,GAAAA;AACzB,IAAA,IAAI,CAACA,IAAAA,CAAKC,UAAU,CAAC,GAAA,CAAA,EAAM;QACzB,OAAO,KAAA;AACT,IAAA;;;IAIA,OAAO,CAAC,kBAAA,CAAmBC,IAAI,CAACF,IAAAA,CAAAA;AAClC,CAAA;MAEaG,qBAAAA,GAAwB,CACnCC,cAAAA,EACAC,IAAAA,GAAkCC,QAAQD,IAAI,GAAA;AAE9C,IAAA,MAAME,aAAa,CAACH,cAAAA,IAAkB,EAAC,EAAGI,IAAI,EAAA;AAE9C,IAAA,IAAI,CAACD,UAAAA,EAAY;QACf,OAAOT,wBAAAA;AACT,IAAA;IAEA,IAAI,CAACC,kBAAkBQ,UAAAA,CAAAA,EAAa;QAClCF,IAAAA,CACE,CAAC,yCAAyC,EAAEE,UAAAA,CAAW,iDAAiD,EAAET,wBAAAA,CAAyB,UAAU,CAAC,CAAA;QAEhJ,OAAOA,wBAAAA;AACT,IAAA;IAEA,OAAOS,UAAAA;AACT;;;;;"}
1
+ {"version":3,"file":"auth-cookie-path.js","sources":["../../../../shared/utils/auth-cookie-path.ts"],"sourcesContent":["/**\n * Validates the Path attribute of the admin auth cookies. The path is\n * configurable through `admin.auth.cookie.path` so multiple Strapi instances\n * on the same parent domain can keep separate cookies (e.g. `/strapi-de/admin`).\n *\n * Browser-safe single source for both sides of the handoff: the admin panel\n * cannot read server config, so the build transports the access cookie path\n * into the bundle through the internal `STRAPI_ADMIN_AUTH_COOKIE_PATH`\n * variable (see create-build-context.ts in @strapi/strapi); the server\n * resolves the same config at runtime. Changing the path requires an admin\n * rebuild, like any other admin config change.\n *\n * The callers pick the value to validate (see session-auth.ts). When\n * `admin.auth.cookie.path` is unset, the access cookie follows the path the\n * panel is served from (`admin.url`) and the refresh cookie follows the admin\n * API (`/admin`), each behind any `server.url` subpath.\n * `DEFAULT_AUTH_COOKIE_PATH` is only the fallback for a missing or invalid value.\n */\nexport const DEFAULT_AUTH_COOKIE_PATH = '/admin';\n\nconst isValidCookiePath = (path: string): boolean => {\n if (!path.startsWith('/')) {\n return false;\n }\n\n // RFC 6265 path-av: any CHAR except CTLs or \";\".\n // eslint-disable-next-line no-control-regex -- CTL chars are exactly what RFC 6265 forbids\n return !/[\\x00-\\x1F\\x7F;]/.test(path);\n};\n\nexport const resolveAuthCookiePath = (\n configuredPath?: string,\n warn: (message: string) => void = console.warn\n): string => {\n const cookiePath = (configuredPath || '').trim();\n\n if (!cookiePath) {\n return DEFAULT_AUTH_COOKIE_PATH;\n }\n\n if (!isValidCookiePath(cookiePath)) {\n warn(\n `Ignoring invalid admin auth cookie path \"${cookiePath}\" (must be an absolute path without \";\"); using \"${DEFAULT_AUTH_COOKIE_PATH}\" instead.`\n );\n return DEFAULT_AUTH_COOKIE_PATH;\n }\n\n return cookiePath;\n};\n"],"names":["DEFAULT_AUTH_COOKIE_PATH","isValidCookiePath","path","startsWith","test","resolveAuthCookiePath","configuredPath","warn","console","cookiePath","trim"],"mappings":";;AAAA;;;;;;;;;;;;;;;;;IAkBO,MAAMA,wBAAAA,GAA2B;AAExC,MAAMC,oBAAoB,CAACC,IAAAA,GAAAA;AACzB,IAAA,IAAI,CAACA,IAAAA,CAAKC,UAAU,CAAC,GAAA,CAAA,EAAM;QACzB,OAAO,KAAA;AACT,IAAA;;;IAIA,OAAO,CAAC,kBAAA,CAAmBC,IAAI,CAACF,IAAAA,CAAAA;AAClC,CAAA;MAEaG,qBAAAA,GAAwB,CACnCC,cAAAA,EACAC,IAAAA,GAAkCC,QAAQD,IAAI,GAAA;AAE9C,IAAA,MAAME,aAAa,CAACH,cAAAA,IAAkB,EAAC,EAAGI,IAAI,EAAA;AAE9C,IAAA,IAAI,CAACD,UAAAA,EAAY;QACf,OAAOT,wBAAAA;AACT,IAAA;IAEA,IAAI,CAACC,kBAAkBQ,UAAAA,CAAAA,EAAa;QAClCF,IAAAA,CACE,CAAC,yCAAyC,EAAEE,UAAAA,CAAW,iDAAiD,EAAET,wBAAAA,CAAyB,UAAU,CAAC,CAAA;QAEhJ,OAAOA,wBAAAA;AACT,IAAA;IAEA,OAAOS,UAAAA;AACT;;;;;"}
@@ -1,17 +1,20 @@
1
1
  /**
2
- * Path attribute of the admin auth (access) token cookie, configurable
3
- * through `admin.auth.cookie.path` so multiple Strapi instances on the same
4
- * parent domain can keep separate cookies (e.g. `/strapi-de/admin`).
2
+ * Validates the Path attribute of the admin auth cookies. The path is
3
+ * configurable through `admin.auth.cookie.path` so multiple Strapi instances
4
+ * on the same parent domain can keep separate cookies (e.g. `/strapi-de/admin`).
5
5
  *
6
6
  * Browser-safe single source for both sides of the handoff: the admin panel
7
- * cannot read server config, so the build transports the config value into
8
- * the bundle through the internal `STRAPI_ADMIN_AUTH_COOKIE_PATH` variable
9
- * (see create-build-context.ts in @strapi/strapi); the server resolves the
10
- * same config at runtime. Changing the path requires an admin rebuild, like
11
- * any other admin config change.
7
+ * cannot read server config, so the build transports the access cookie path
8
+ * into the bundle through the internal `STRAPI_ADMIN_AUTH_COOKIE_PATH`
9
+ * variable (see create-build-context.ts in @strapi/strapi); the server
10
+ * resolves the same config at runtime. Changing the path requires an admin
11
+ * rebuild, like any other admin config change.
12
12
  *
13
- * Defaults to `/admin` to match the refresh-cookie path used by
14
- * `getRefreshCookieOptions`.
13
+ * The callers pick the value to validate (see session-auth.ts). When
14
+ * `admin.auth.cookie.path` is unset, the access cookie follows the path the
15
+ * panel is served from (`admin.url`) and the refresh cookie follows the admin
16
+ * API (`/admin`), each behind any `server.url` subpath.
17
+ * `DEFAULT_AUTH_COOKIE_PATH` is only the fallback for a missing or invalid value.
15
18
  */ const DEFAULT_AUTH_COOKIE_PATH = '/admin';
16
19
  const isValidCookiePath = (path)=>{
17
20
  if (!path.startsWith('/')) {
@@ -1 +1 @@
1
- {"version":3,"file":"auth-cookie-path.mjs","sources":["../../../../shared/utils/auth-cookie-path.ts"],"sourcesContent":["/**\n * Path attribute of the admin auth (access) token cookie, configurable\n * through `admin.auth.cookie.path` so multiple Strapi instances on the same\n * parent domain can keep separate cookies (e.g. `/strapi-de/admin`).\n *\n * Browser-safe single source for both sides of the handoff: the admin panel\n * cannot read server config, so the build transports the config value into\n * the bundle through the internal `STRAPI_ADMIN_AUTH_COOKIE_PATH` variable\n * (see create-build-context.ts in @strapi/strapi); the server resolves the\n * same config at runtime. Changing the path requires an admin rebuild, like\n * any other admin config change.\n *\n * Defaults to `/admin` to match the refresh-cookie path used by\n * `getRefreshCookieOptions`.\n */\nexport const DEFAULT_AUTH_COOKIE_PATH = '/admin';\n\nconst isValidCookiePath = (path: string): boolean => {\n if (!path.startsWith('/')) {\n return false;\n }\n\n // RFC 6265 path-av: any CHAR except CTLs or \";\".\n // eslint-disable-next-line no-control-regex -- CTL chars are exactly what RFC 6265 forbids\n return !/[\\x00-\\x1F\\x7F;]/.test(path);\n};\n\nexport const resolveAuthCookiePath = (\n configuredPath?: string,\n warn: (message: string) => void = console.warn\n): string => {\n const cookiePath = (configuredPath || '').trim();\n\n if (!cookiePath) {\n return DEFAULT_AUTH_COOKIE_PATH;\n }\n\n if (!isValidCookiePath(cookiePath)) {\n warn(\n `Ignoring invalid admin auth cookie path \"${cookiePath}\" (must be an absolute path without \";\"); using \"${DEFAULT_AUTH_COOKIE_PATH}\" instead.`\n );\n return DEFAULT_AUTH_COOKIE_PATH;\n }\n\n return cookiePath;\n};\n"],"names":["DEFAULT_AUTH_COOKIE_PATH","isValidCookiePath","path","startsWith","test","resolveAuthCookiePath","configuredPath","warn","console","cookiePath","trim"],"mappings":"AAAA;;;;;;;;;;;;;;IAeO,MAAMA,wBAAAA,GAA2B;AAExC,MAAMC,oBAAoB,CAACC,IAAAA,GAAAA;AACzB,IAAA,IAAI,CAACA,IAAAA,CAAKC,UAAU,CAAC,GAAA,CAAA,EAAM;QACzB,OAAO,KAAA;AACT,IAAA;;;IAIA,OAAO,CAAC,kBAAA,CAAmBC,IAAI,CAACF,IAAAA,CAAAA;AAClC,CAAA;MAEaG,qBAAAA,GAAwB,CACnCC,cAAAA,EACAC,IAAAA,GAAkCC,QAAQD,IAAI,GAAA;AAE9C,IAAA,MAAME,aAAa,CAACH,cAAAA,IAAkB,EAAC,EAAGI,IAAI,EAAA;AAE9C,IAAA,IAAI,CAACD,UAAAA,EAAY;QACf,OAAOT,wBAAAA;AACT,IAAA;IAEA,IAAI,CAACC,kBAAkBQ,UAAAA,CAAAA,EAAa;QAClCF,IAAAA,CACE,CAAC,yCAAyC,EAAEE,UAAAA,CAAW,iDAAiD,EAAET,wBAAAA,CAAyB,UAAU,CAAC,CAAA;QAEhJ,OAAOA,wBAAAA;AACT,IAAA;IAEA,OAAOS,UAAAA;AACT;;;;"}
1
+ {"version":3,"file":"auth-cookie-path.mjs","sources":["../../../../shared/utils/auth-cookie-path.ts"],"sourcesContent":["/**\n * Validates the Path attribute of the admin auth cookies. The path is\n * configurable through `admin.auth.cookie.path` so multiple Strapi instances\n * on the same parent domain can keep separate cookies (e.g. `/strapi-de/admin`).\n *\n * Browser-safe single source for both sides of the handoff: the admin panel\n * cannot read server config, so the build transports the access cookie path\n * into the bundle through the internal `STRAPI_ADMIN_AUTH_COOKIE_PATH`\n * variable (see create-build-context.ts in @strapi/strapi); the server\n * resolves the same config at runtime. Changing the path requires an admin\n * rebuild, like any other admin config change.\n *\n * The callers pick the value to validate (see session-auth.ts). When\n * `admin.auth.cookie.path` is unset, the access cookie follows the path the\n * panel is served from (`admin.url`) and the refresh cookie follows the admin\n * API (`/admin`), each behind any `server.url` subpath.\n * `DEFAULT_AUTH_COOKIE_PATH` is only the fallback for a missing or invalid value.\n */\nexport const DEFAULT_AUTH_COOKIE_PATH = '/admin';\n\nconst isValidCookiePath = (path: string): boolean => {\n if (!path.startsWith('/')) {\n return false;\n }\n\n // RFC 6265 path-av: any CHAR except CTLs or \";\".\n // eslint-disable-next-line no-control-regex -- CTL chars are exactly what RFC 6265 forbids\n return !/[\\x00-\\x1F\\x7F;]/.test(path);\n};\n\nexport const resolveAuthCookiePath = (\n configuredPath?: string,\n warn: (message: string) => void = console.warn\n): string => {\n const cookiePath = (configuredPath || '').trim();\n\n if (!cookiePath) {\n return DEFAULT_AUTH_COOKIE_PATH;\n }\n\n if (!isValidCookiePath(cookiePath)) {\n warn(\n `Ignoring invalid admin auth cookie path \"${cookiePath}\" (must be an absolute path without \";\"); using \"${DEFAULT_AUTH_COOKIE_PATH}\" instead.`\n );\n return DEFAULT_AUTH_COOKIE_PATH;\n }\n\n return cookiePath;\n};\n"],"names":["DEFAULT_AUTH_COOKIE_PATH","isValidCookiePath","path","startsWith","test","resolveAuthCookiePath","configuredPath","warn","console","cookiePath","trim"],"mappings":"AAAA;;;;;;;;;;;;;;;;;IAkBO,MAAMA,wBAAAA,GAA2B;AAExC,MAAMC,oBAAoB,CAACC,IAAAA,GAAAA;AACzB,IAAA,IAAI,CAACA,IAAAA,CAAKC,UAAU,CAAC,GAAA,CAAA,EAAM;QACzB,OAAO,KAAA;AACT,IAAA;;;IAIA,OAAO,CAAC,kBAAA,CAAmBC,IAAI,CAACF,IAAAA,CAAAA;AAClC,CAAA;MAEaG,qBAAAA,GAAwB,CACnCC,cAAAA,EACAC,IAAAA,GAAkCC,QAAQD,IAAI,GAAA;AAE9C,IAAA,MAAME,aAAa,CAACH,cAAAA,IAAkB,EAAC,EAAGI,IAAI,EAAA;AAE9C,IAAA,IAAI,CAACD,UAAAA,EAAY;QACf,OAAOT,wBAAAA;AACT,IAAA;IAEA,IAAI,CAACC,kBAAkBQ,UAAAA,CAAAA,EAAa;QAClCF,IAAAA,CACE,CAAC,yCAAyC,EAAEE,UAAAA,CAAW,iDAAiD,EAAET,wBAAAA,CAAyB,UAAU,CAAC,CAAA;QAEhJ,OAAOA,wBAAAA;AACT,IAAA;IAEA,OAAOS,UAAAA;AACT;;;;"}
@@ -0,0 +1,49 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Resolves the plan label from the license information returned by the
5
+ * `/admin/project-type` endpoint (browser) or `strapi.ee` (server).
6
+ *
7
+ * This labels the edition that is running: it follows `isEE`, so a lapsed license reads
8
+ * Community. Browser tracking and NPS report this label and the startup table applies the same
9
+ * rule; server metrics also label the running edition, but never say Growth. For the plan a
10
+ * license was issued for, lapsed or not (the Plan card, the Support card and the debug dump),
11
+ * use `getLicensedPlan` below.
12
+ *
13
+ * The label is intentionally limited to three values:
14
+ * - `Community` when there is no license (Community Edition).
15
+ * - `Growth` when the licensed plan price id contains "growth".
16
+ * - `Enterprise` for any other licensed plan.
17
+ */ const getProjectType = ({ isEE, planPriceId })=>{
18
+ if (!isEE) {
19
+ return 'Community';
20
+ }
21
+ if (planPriceId?.toLowerCase().includes('growth')) {
22
+ return 'Growth';
23
+ }
24
+ return 'Enterprise';
25
+ };
26
+ // The statuses a license can be in once it has been read. `none` (never licensed) is left out
27
+ // on purpose, and so is a missing status, which a mixed-version install can produce.
28
+ const LICENSED_STATUSES = new Set([
29
+ 'active',
30
+ 'expired',
31
+ 'unknown'
32
+ ]);
33
+ /**
34
+ * Resolves the plan a license was issued for, including one that has lapsed or can no longer
35
+ * be read, so Support links, the Plan card and the debug dump can still name it. It unlocks
36
+ * nothing: feature gating stays on `isEE`.
37
+ *
38
+ * A plan is only reported when a type was verified at some point (live, or retained once the
39
+ * license lapsed) AND the status is licensed. A corrupt license file sets `unknown` before any
40
+ * type is stored, and with no price id `getProjectType` would fall through to Enterprise, so
41
+ * both conditions are required. Every caller that derives a plan should go through here.
42
+ */ const getLicensedPlan = ({ licenseStatus, type, planPriceId })=>getProjectType({
43
+ isEE: Boolean(type) && LICENSED_STATUSES.has(licenseStatus ?? ''),
44
+ planPriceId: planPriceId ?? undefined
45
+ });
46
+
47
+ exports.getLicensedPlan = getLicensedPlan;
48
+ exports.getProjectType = getProjectType;
49
+ //# sourceMappingURL=get-project-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-project-type.js","sources":["../../../../shared/utils/get-project-type.ts"],"sourcesContent":["type ProjectType = 'Community' | 'Growth' | 'Enterprise';\n\n/**\n * Resolves the plan label from the license information returned by the\n * `/admin/project-type` endpoint (browser) or `strapi.ee` (server).\n *\n * This labels the edition that is running: it follows `isEE`, so a lapsed license reads\n * Community. Browser tracking and NPS report this label and the startup table applies the same\n * rule; server metrics also label the running edition, but never say Growth. For the plan a\n * license was issued for, lapsed or not (the Plan card, the Support card and the debug dump),\n * use `getLicensedPlan` below.\n *\n * The label is intentionally limited to three values:\n * - `Community` when there is no license (Community Edition).\n * - `Growth` when the licensed plan price id contains \"growth\".\n * - `Enterprise` for any other licensed plan.\n */\nconst getProjectType = ({\n isEE,\n planPriceId,\n}: {\n isEE: boolean;\n planPriceId?: string;\n}): ProjectType => {\n if (!isEE) {\n return 'Community';\n }\n\n if (planPriceId?.toLowerCase().includes('growth')) {\n return 'Growth';\n }\n\n return 'Enterprise';\n};\n\n// The statuses a license can be in once it has been read. `none` (never licensed) is left out\n// on purpose, and so is a missing status, which a mixed-version install can produce.\nconst LICENSED_STATUSES: ReadonlySet<string> = new Set(['active', 'expired', 'unknown']);\n\n/**\n * Resolves the plan a license was issued for, including one that has lapsed or can no longer\n * be read, so Support links, the Plan card and the debug dump can still name it. It unlocks\n * nothing: feature gating stays on `isEE`.\n *\n * A plan is only reported when a type was verified at some point (live, or retained once the\n * license lapsed) AND the status is licensed. A corrupt license file sets `unknown` before any\n * type is stored, and with no price id `getProjectType` would fall through to Enterprise, so\n * both conditions are required. Every caller that derives a plan should go through here.\n */\nconst getLicensedPlan = ({\n licenseStatus,\n type,\n planPriceId,\n}: {\n licenseStatus: string | null | undefined;\n type: string | null | undefined;\n planPriceId?: string | null;\n}): ProjectType =>\n getProjectType({\n isEE: Boolean(type) && LICENSED_STATUSES.has(licenseStatus ?? ''),\n planPriceId: planPriceId ?? undefined,\n });\n\nexport { getLicensedPlan, getProjectType };\nexport type { ProjectType };\n"],"names":["getProjectType","isEE","planPriceId","toLowerCase","includes","LICENSED_STATUSES","Set","getLicensedPlan","licenseStatus","type","Boolean","has","undefined"],"mappings":";;AAEA;;;;;;;;;;;;;;AAcC,UACKA,cAAAA,GAAiB,CAAC,EACtBC,IAAI,EACJC,WAAW,EAIZ,GAAA;AACC,IAAA,IAAI,CAACD,IAAAA,EAAM;QACT,OAAO,WAAA;AACT,IAAA;IAEA,IAAIC,WAAAA,EAAaC,WAAAA,EAAAA,CAAcC,QAAAA,CAAS,QAAA,CAAA,EAAW;QACjD,OAAO,QAAA;AACT,IAAA;IAEA,OAAO,YAAA;AACT;AAEA;AACA;AACA,MAAMC,iBAAAA,GAAyC,IAAIC,GAAAA,CAAI;AAAC,IAAA,QAAA;AAAU,IAAA,SAAA;AAAW,IAAA;AAAU,CAAA,CAAA;AAEvF;;;;;;;;;IAUA,MAAMC,eAAAA,GAAkB,CAAC,EACvBC,aAAa,EACbC,IAAI,EACJP,WAAW,EAKZ,GACCF,cAAAA,CAAe;AACbC,QAAAA,IAAAA,EAAMS,OAAAA,CAAQD,IAAAA,CAAAA,IAASJ,iBAAAA,CAAkBM,GAAG,CAACH,aAAAA,IAAiB,EAAA,CAAA;AAC9DN,QAAAA,WAAAA,EAAaA,WAAAA,IAAeU;AAC9B,KAAA;;;;;"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Resolves the plan label from the license information returned by the
3
+ * `/admin/project-type` endpoint (browser) or `strapi.ee` (server).
4
+ *
5
+ * This labels the edition that is running: it follows `isEE`, so a lapsed license reads
6
+ * Community. Browser tracking and NPS report this label and the startup table applies the same
7
+ * rule; server metrics also label the running edition, but never say Growth. For the plan a
8
+ * license was issued for, lapsed or not (the Plan card, the Support card and the debug dump),
9
+ * use `getLicensedPlan` below.
10
+ *
11
+ * The label is intentionally limited to three values:
12
+ * - `Community` when there is no license (Community Edition).
13
+ * - `Growth` when the licensed plan price id contains "growth".
14
+ * - `Enterprise` for any other licensed plan.
15
+ */ const getProjectType = ({ isEE, planPriceId })=>{
16
+ if (!isEE) {
17
+ return 'Community';
18
+ }
19
+ if (planPriceId?.toLowerCase().includes('growth')) {
20
+ return 'Growth';
21
+ }
22
+ return 'Enterprise';
23
+ };
24
+ // The statuses a license can be in once it has been read. `none` (never licensed) is left out
25
+ // on purpose, and so is a missing status, which a mixed-version install can produce.
26
+ const LICENSED_STATUSES = new Set([
27
+ 'active',
28
+ 'expired',
29
+ 'unknown'
30
+ ]);
31
+ /**
32
+ * Resolves the plan a license was issued for, including one that has lapsed or can no longer
33
+ * be read, so Support links, the Plan card and the debug dump can still name it. It unlocks
34
+ * nothing: feature gating stays on `isEE`.
35
+ *
36
+ * A plan is only reported when a type was verified at some point (live, or retained once the
37
+ * license lapsed) AND the status is licensed. A corrupt license file sets `unknown` before any
38
+ * type is stored, and with no price id `getProjectType` would fall through to Enterprise, so
39
+ * both conditions are required. Every caller that derives a plan should go through here.
40
+ */ const getLicensedPlan = ({ licenseStatus, type, planPriceId })=>getProjectType({
41
+ isEE: Boolean(type) && LICENSED_STATUSES.has(licenseStatus ?? ''),
42
+ planPriceId: planPriceId ?? undefined
43
+ });
44
+
45
+ export { getLicensedPlan, getProjectType };
46
+ //# sourceMappingURL=get-project-type.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-project-type.mjs","sources":["../../../../shared/utils/get-project-type.ts"],"sourcesContent":["type ProjectType = 'Community' | 'Growth' | 'Enterprise';\n\n/**\n * Resolves the plan label from the license information returned by the\n * `/admin/project-type` endpoint (browser) or `strapi.ee` (server).\n *\n * This labels the edition that is running: it follows `isEE`, so a lapsed license reads\n * Community. Browser tracking and NPS report this label and the startup table applies the same\n * rule; server metrics also label the running edition, but never say Growth. For the plan a\n * license was issued for, lapsed or not (the Plan card, the Support card and the debug dump),\n * use `getLicensedPlan` below.\n *\n * The label is intentionally limited to three values:\n * - `Community` when there is no license (Community Edition).\n * - `Growth` when the licensed plan price id contains \"growth\".\n * - `Enterprise` for any other licensed plan.\n */\nconst getProjectType = ({\n isEE,\n planPriceId,\n}: {\n isEE: boolean;\n planPriceId?: string;\n}): ProjectType => {\n if (!isEE) {\n return 'Community';\n }\n\n if (planPriceId?.toLowerCase().includes('growth')) {\n return 'Growth';\n }\n\n return 'Enterprise';\n};\n\n// The statuses a license can be in once it has been read. `none` (never licensed) is left out\n// on purpose, and so is a missing status, which a mixed-version install can produce.\nconst LICENSED_STATUSES: ReadonlySet<string> = new Set(['active', 'expired', 'unknown']);\n\n/**\n * Resolves the plan a license was issued for, including one that has lapsed or can no longer\n * be read, so Support links, the Plan card and the debug dump can still name it. It unlocks\n * nothing: feature gating stays on `isEE`.\n *\n * A plan is only reported when a type was verified at some point (live, or retained once the\n * license lapsed) AND the status is licensed. A corrupt license file sets `unknown` before any\n * type is stored, and with no price id `getProjectType` would fall through to Enterprise, so\n * both conditions are required. Every caller that derives a plan should go through here.\n */\nconst getLicensedPlan = ({\n licenseStatus,\n type,\n planPriceId,\n}: {\n licenseStatus: string | null | undefined;\n type: string | null | undefined;\n planPriceId?: string | null;\n}): ProjectType =>\n getProjectType({\n isEE: Boolean(type) && LICENSED_STATUSES.has(licenseStatus ?? ''),\n planPriceId: planPriceId ?? undefined,\n });\n\nexport { getLicensedPlan, getProjectType };\nexport type { ProjectType };\n"],"names":["getProjectType","isEE","planPriceId","toLowerCase","includes","LICENSED_STATUSES","Set","getLicensedPlan","licenseStatus","type","Boolean","has","undefined"],"mappings":"AAEA;;;;;;;;;;;;;;AAcC,UACKA,cAAAA,GAAiB,CAAC,EACtBC,IAAI,EACJC,WAAW,EAIZ,GAAA;AACC,IAAA,IAAI,CAACD,IAAAA,EAAM;QACT,OAAO,WAAA;AACT,IAAA;IAEA,IAAIC,WAAAA,EAAaC,WAAAA,EAAAA,CAAcC,QAAAA,CAAS,QAAA,CAAA,EAAW;QACjD,OAAO,QAAA;AACT,IAAA;IAEA,OAAO,YAAA;AACT;AAEA;AACA;AACA,MAAMC,iBAAAA,GAAyC,IAAIC,GAAAA,CAAI;AAAC,IAAA,QAAA;AAAU,IAAA,SAAA;AAAW,IAAA;AAAU,CAAA,CAAA;AAEvF;;;;;;;;;IAUA,MAAMC,eAAAA,GAAkB,CAAC,EACvBC,aAAa,EACbC,IAAI,EACJP,WAAW,EAKZ,GACCF,cAAAA,CAAe;AACbC,QAAAA,IAAAA,EAAMS,OAAAA,CAAQD,IAAAA,CAAAA,IAASJ,iBAAAA,CAAkBM,GAAG,CAACH,aAAAA,IAAiB,EAAA,CAAA;AAC9DN,QAAAA,WAAAA,EAAaA,WAAAA,IAAeU;AAC9B,KAAA;;;;"}