@strapi/admin 4.14.1 → 4.14.3

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 (378) hide show
  1. package/admin/src/content-manager/hooks/useRelation/useRelation.js +1 -0
  2. package/build/{Admin-authenticatedApp.c0c1c027.chunk.js → Admin-authenticatedApp.a16cdc37.chunk.js} +1 -1
  3. package/build/{content-manager.0d2b4a60.chunk.js → content-manager.e1e49cc9.chunk.js} +1 -1
  4. package/build/index.html +1 -1
  5. package/build/{runtime~main.6c489074.js → runtime~main.377a22d0.js} +1 -1
  6. package/dist/server/admin/server/src/bootstrap.d.ts +2 -0
  7. package/dist/server/admin/server/src/controllers/admin.d.ts +42 -0
  8. package/dist/server/admin/server/src/controllers/api-token.d.ts +10 -0
  9. package/dist/server/admin/server/src/controllers/authenticated-user.d.ts +6 -0
  10. package/dist/server/admin/server/src/controllers/authentication.d.ts +12 -0
  11. package/dist/server/admin/server/src/controllers/permission.d.ts +13 -0
  12. package/dist/server/admin/server/src/controllers/role.d.ts +43 -0
  13. package/dist/server/admin/server/src/controllers/transfer/token.d.ts +9 -0
  14. package/dist/server/admin/server/src/controllers/user.d.ts +13 -0
  15. package/dist/server/admin/server/src/destroy.d.ts +2 -0
  16. package/dist/server/admin/server/src/domain/condition/index.d.ts +56 -0
  17. package/dist/server/admin/server/src/domain/condition/index.js +53 -0
  18. package/dist/server/admin/server/src/domain/condition/index.js.map +1 -0
  19. package/dist/server/admin/server/src/domain/condition/provider.d.ts +30 -0
  20. package/dist/server/admin/server/src/domain/condition/provider.js +37 -0
  21. package/dist/server/admin/server/src/domain/condition/provider.js.map +1 -0
  22. package/dist/server/admin/server/src/index.d.ts +10 -0
  23. package/dist/server/admin/server/src/middlewares/data-transfer.d.ts +2 -0
  24. package/dist/server/admin/server/src/services/action.d.ts +9 -0
  25. package/dist/server/admin/server/src/services/auth.d.ts +42 -0
  26. package/dist/server/admin/server/src/services/condition.d.ts +2 -0
  27. package/dist/server/admin/server/src/services/content-type.d.ts +51 -0
  28. package/dist/server/admin/server/src/services/index.d.ts +61 -0
  29. package/dist/server/admin/server/src/services/metrics.d.ts +7 -0
  30. package/dist/server/admin/server/src/services/permission/engine.d.ts +15 -0
  31. package/dist/server/admin/server/src/services/permission/queries.d.ts +44 -0
  32. package/dist/server/admin/server/src/services/permission.d.ts +67 -0
  33. package/dist/server/admin/server/src/services/role.d.ts +116 -0
  34. package/dist/server/admin/server/src/services/transfer/token.d.ts +103 -0
  35. package/dist/server/admin/server/src/services/transfer/utils.d.ts +19 -0
  36. package/dist/server/admin/server/src/services/user.d.ts +96 -0
  37. package/dist/server/admin/server/src/strategies/admin.d.ts +25 -0
  38. package/dist/server/admin/server/src/strategies/api-token.d.ts +60 -0
  39. package/dist/server/admin/server/src/strategies/data-transfer.d.ts +50 -0
  40. package/dist/server/admin/server/src/validation/common-validators.d.ts +59 -0
  41. package/dist/server/admin/server/src/validation/permission.d.ts +9 -0
  42. package/dist/server/bootstrap.d.ts +2 -0
  43. package/dist/server/bootstrap.js +84 -0
  44. package/dist/server/bootstrap.js.map +1 -0
  45. package/dist/server/config/admin-actions.d.ts +33 -0
  46. package/dist/server/config/admin-actions.js +219 -0
  47. package/dist/server/config/admin-actions.js.map +1 -0
  48. package/dist/server/config/admin-conditions.d.ts +46 -0
  49. package/dist/server/config/admin-conditions.js +29 -0
  50. package/dist/server/config/admin-conditions.js.map +1 -0
  51. package/dist/server/config/email-templates/forgot-password.d.ts +6 -0
  52. package/dist/server/config/email-templates/forgot-password.js +19 -0
  53. package/dist/server/config/email-templates/forgot-password.js.map +1 -0
  54. package/dist/server/config/index.d.ts +17 -0
  55. package/dist/server/config/index.js +14 -0
  56. package/dist/server/config/index.js.map +1 -0
  57. package/dist/server/config/settings.d.ts +7 -0
  58. package/dist/server/config/settings.js +11 -0
  59. package/dist/server/config/settings.js.map +1 -0
  60. package/dist/server/content-types/Permission.d.ts +62 -0
  61. package/dist/server/content-types/Permission.js +64 -0
  62. package/dist/server/content-types/Permission.js.map +1 -0
  63. package/dist/server/content-types/Role.d.ts +57 -0
  64. package/dist/server/content-types/Role.js +59 -0
  65. package/dist/server/content-types/Role.js.map +1 -0
  66. package/dist/server/content-types/User.d.ts +106 -0
  67. package/dist/server/content-types/User.js +109 -0
  68. package/dist/server/content-types/User.js.map +1 -0
  69. package/dist/server/content-types/api-token-permission.d.ts +35 -0
  70. package/dist/server/content-types/api-token-permission.js +37 -0
  71. package/dist/server/content-types/api-token-permission.js.map +1 -0
  72. package/dist/server/content-types/api-token.d.ts +73 -0
  73. package/dist/server/content-types/api-token.js +79 -0
  74. package/dist/server/content-types/api-token.js.map +1 -0
  75. package/dist/server/content-types/index.d.ts +437 -0
  76. package/dist/server/content-types/index.js +22 -0
  77. package/dist/server/content-types/index.js.map +1 -0
  78. package/dist/server/content-types/transfer-token-permission.d.ts +35 -0
  79. package/dist/server/content-types/transfer-token-permission.js +37 -0
  80. package/dist/server/content-types/transfer-token-permission.js.map +1 -0
  81. package/dist/server/content-types/transfer-token.d.ts +65 -0
  82. package/dist/server/content-types/transfer-token.js +67 -0
  83. package/dist/server/content-types/transfer-token.js.map +1 -0
  84. package/dist/server/controllers/admin.d.ts +42 -0
  85. package/dist/server/controllers/admin.js +131 -0
  86. package/dist/server/controllers/admin.js.map +1 -0
  87. package/dist/server/controllers/api-token.d.ts +10 -0
  88. package/dist/server/controllers/api-token.js +106 -0
  89. package/dist/server/controllers/api-token.js.map +1 -0
  90. package/dist/server/controllers/authenticated-user.d.ts +6 -0
  91. package/dist/server/controllers/authenticated-user.js +41 -0
  92. package/dist/server/controllers/authenticated-user.js.map +1 -0
  93. package/dist/server/controllers/authentication.d.ts +12 -0
  94. package/dist/server/controllers/authentication.js +130 -0
  95. package/dist/server/controllers/authentication.js.map +1 -0
  96. package/dist/server/controllers/content-api.d.ts +5 -0
  97. package/dist/server/controllers/content-api.js +13 -0
  98. package/dist/server/controllers/content-api.js.map +1 -0
  99. package/dist/server/controllers/formatters/conditions.d.ts +3 -0
  100. package/dist/server/controllers/formatters/conditions.js +9 -0
  101. package/dist/server/controllers/formatters/conditions.js.map +1 -0
  102. package/dist/server/controllers/formatters/format-actions-by-sections.d.ts +7 -0
  103. package/dist/server/controllers/formatters/format-actions-by-sections.js +36 -0
  104. package/dist/server/controllers/formatters/format-actions-by-sections.js.map +1 -0
  105. package/dist/server/controllers/formatters/index.d.ts +2 -0
  106. package/dist/server/controllers/formatters/index.js +11 -0
  107. package/dist/server/controllers/formatters/index.js.map +1 -0
  108. package/dist/server/controllers/index.d.ts +68 -0
  109. package/dist/server/controllers/index.js +51 -0
  110. package/dist/server/controllers/index.js.map +1 -0
  111. package/dist/server/controllers/permission.d.ts +13 -0
  112. package/dist/server/controllers/permission.js +38 -0
  113. package/dist/server/controllers/permission.js.map +1 -0
  114. package/dist/server/controllers/role.d.ts +43 -0
  115. package/dist/server/controllers/role.js +148 -0
  116. package/dist/server/controllers/role.js.map +1 -0
  117. package/dist/server/controllers/transfer/index.d.ts +4 -0
  118. package/dist/server/controllers/transfer/index.js +14 -0
  119. package/dist/server/controllers/transfer/index.js.map +1 -0
  120. package/dist/server/controllers/transfer/runner.d.ts +6 -0
  121. package/dist/server/controllers/transfer/runner.js +25 -0
  122. package/dist/server/controllers/transfer/runner.js.map +1 -0
  123. package/dist/server/controllers/transfer/token.d.ts +9 -0
  124. package/dist/server/controllers/transfer/token.js +100 -0
  125. package/dist/server/controllers/transfer/token.js.map +1 -0
  126. package/dist/server/controllers/user.d.ts +13 -0
  127. package/dist/server/controllers/user.js +105 -0
  128. package/dist/server/controllers/user.js.map +1 -0
  129. package/dist/server/controllers/webhooks.d.ts +10 -0
  130. package/dist/server/controllers/webhooks.js +100 -0
  131. package/dist/server/controllers/webhooks.js.map +1 -0
  132. package/dist/server/destroy.d.ts +2 -0
  133. package/dist/server/destroy.js +9 -0
  134. package/dist/server/destroy.js.map +1 -0
  135. package/dist/server/domain/action/index.d.ts +33 -0
  136. package/dist/server/domain/action/index.js +98 -0
  137. package/dist/server/domain/action/index.js.map +1 -0
  138. package/dist/server/domain/action/provider.d.ts +38 -0
  139. package/dist/server/domain/action/provider.js +66 -0
  140. package/dist/server/domain/action/provider.js.map +1 -0
  141. package/dist/server/domain/condition/index.d.ts +53 -0
  142. package/dist/server/domain/condition/index.js +56 -0
  143. package/dist/server/domain/condition/index.js.map +1 -0
  144. package/dist/server/domain/condition/provider.d.ts +30 -0
  145. package/dist/server/domain/condition/provider.js +37 -0
  146. package/dist/server/domain/condition/provider.js.map +1 -0
  147. package/dist/server/domain/permission/index.d.ts +77 -0
  148. package/dist/server/domain/permission/index.js +119 -0
  149. package/dist/server/domain/permission/index.js.map +1 -0
  150. package/dist/server/domain/user.d.ts +32 -0
  151. package/dist/server/domain/user.js +28 -0
  152. package/dist/server/domain/user.js.map +1 -0
  153. package/dist/server/index.d.ts +10 -0
  154. package/dist/server/index.js +27 -0
  155. package/dist/server/index.js.map +1 -0
  156. package/dist/server/middlewares/data-transfer.d.ts +2 -0
  157. package/dist/server/middlewares/data-transfer.js +21 -0
  158. package/dist/server/middlewares/data-transfer.js.map +1 -0
  159. package/dist/server/middlewares/index.d.ts +9 -0
  160. package/dist/server/middlewares/index.js +17 -0
  161. package/dist/server/middlewares/index.js.map +1 -0
  162. package/dist/server/middlewares/rateLimit.d.ts +5 -0
  163. package/dist/server/middlewares/rateLimit.js +42 -0
  164. package/dist/server/middlewares/rateLimit.js.map +1 -0
  165. package/dist/server/policies/hasPermissions.d.ts +6 -0
  166. package/dist/server/policies/hasPermissions.js +38 -0
  167. package/dist/server/policies/hasPermissions.js.map +1 -0
  168. package/dist/server/policies/index.d.ts +14 -0
  169. package/dist/server/policies/index.js +10 -0
  170. package/dist/server/policies/index.js.map +1 -0
  171. package/dist/server/policies/isAuthenticatedAdmin.d.ts +2 -0
  172. package/dist/server/policies/isAuthenticatedAdmin.js +6 -0
  173. package/dist/server/policies/isAuthenticatedAdmin.js.map +1 -0
  174. package/dist/server/policies/isTelemetryEnabled.d.ts +10 -0
  175. package/dist/server/policies/isTelemetryEnabled.js +18 -0
  176. package/dist/server/policies/isTelemetryEnabled.js.map +1 -0
  177. package/dist/server/register.d.ts +2 -0
  178. package/dist/server/register.js +18 -0
  179. package/dist/server/register.js.map +1 -0
  180. package/dist/server/routes/admin.d.ts +23 -0
  181. package/dist/server/routes/admin.js +72 -0
  182. package/dist/server/routes/admin.js.map +1 -0
  183. package/dist/server/routes/api-tokens.d.ts +14 -0
  184. package/dist/server/routes/api-tokens.js +71 -0
  185. package/dist/server/routes/api-tokens.js.map +1 -0
  186. package/dist/server/routes/authentication.d.ts +29 -0
  187. package/dist/server/routes/authentication.js +58 -0
  188. package/dist/server/routes/authentication.js.map +1 -0
  189. package/dist/server/routes/content-api.d.ts +9 -0
  190. package/dist/server/routes/content-api.js +21 -0
  191. package/dist/server/routes/content-api.js.map +1 -0
  192. package/dist/server/routes/index.d.ts +66 -0
  193. package/dist/server/routes/index.js +32 -0
  194. package/dist/server/routes/index.js.map +1 -0
  195. package/dist/server/routes/permissions.d.ts +9 -0
  196. package/dist/server/routes/permissions.js +21 -0
  197. package/dist/server/routes/permissions.js.map +1 -0
  198. package/dist/server/routes/roles.d.ts +14 -0
  199. package/dist/server/routes/roles.js +108 -0
  200. package/dist/server/routes/roles.js.map +1 -0
  201. package/dist/server/routes/serve-admin-panel.d.ts +5 -0
  202. package/dist/server/routes/serve-admin-panel.js +65 -0
  203. package/dist/server/routes/serve-admin-panel.js.map +1 -0
  204. package/dist/server/routes/transfer.d.ts +55 -0
  205. package/dist/server/routes/transfer.js +105 -0
  206. package/dist/server/routes/transfer.js.map +1 -0
  207. package/dist/server/routes/users.d.ts +14 -0
  208. package/dist/server/routes/users.js +89 -0
  209. package/dist/server/routes/users.js.map +1 -0
  210. package/dist/server/routes/webhooks.d.ts +14 -0
  211. package/dist/server/routes/webhooks.js +82 -0
  212. package/dist/server/routes/webhooks.js.map +1 -0
  213. package/dist/server/services/action.d.ts +9 -0
  214. package/dist/server/services/action.js +29 -0
  215. package/dist/server/services/action.js.map +1 -0
  216. package/dist/server/services/api-token.d.ts +102 -0
  217. package/dist/server/services/api-token.js +378 -0
  218. package/dist/server/services/api-token.js.map +1 -0
  219. package/dist/server/services/auth.d.ts +42 -0
  220. package/dist/server/services/auth.js +98 -0
  221. package/dist/server/services/auth.js.map +1 -0
  222. package/dist/server/services/condition.d.ts +2 -0
  223. package/dist/server/services/condition.js +11 -0
  224. package/dist/server/services/condition.js.map +1 -0
  225. package/dist/server/services/constants.d.ts +33 -0
  226. package/dist/server/services/constants.js +37 -0
  227. package/dist/server/services/constants.js.map +1 -0
  228. package/dist/server/services/content-type.d.ts +51 -0
  229. package/dist/server/services/content-type.js +158 -0
  230. package/dist/server/services/content-type.js.map +1 -0
  231. package/dist/server/services/index.d.ts +61 -0
  232. package/dist/server/services/index.js +57 -0
  233. package/dist/server/services/index.js.map +1 -0
  234. package/dist/server/services/metrics.d.ts +7 -0
  235. package/dist/server/services/metrics.js +37 -0
  236. package/dist/server/services/metrics.js.map +1 -0
  237. package/dist/server/services/passport/local-strategy.d.ts +3 -0
  238. package/dist/server/services/passport/local-strategy.js +28 -0
  239. package/dist/server/services/passport/local-strategy.js.map +1 -0
  240. package/dist/server/services/passport.d.ts +7 -0
  241. package/dist/server/services/passport.js +40 -0
  242. package/dist/server/services/passport.js.map +1 -0
  243. package/dist/server/services/permission/engine.d.ts +15 -0
  244. package/dist/server/services/permission/engine.js +67 -0
  245. package/dist/server/services/permission/engine.js.map +1 -0
  246. package/dist/server/services/permission/permissions-manager/index.d.ts +16 -0
  247. package/dist/server/services/permission/permissions-manager/index.js +48 -0
  248. package/dist/server/services/permission/permissions-manager/index.js.map +1 -0
  249. package/dist/server/services/permission/permissions-manager/query-builders.d.ts +3 -0
  250. package/dist/server/services/permission/permissions-manager/query-builders.js +66 -0
  251. package/dist/server/services/permission/permissions-manager/query-builders.js.map +1 -0
  252. package/dist/server/services/permission/permissions-manager/sanitize.d.ts +6 -0
  253. package/dist/server/services/permission/permissions-manager/sanitize.js +184 -0
  254. package/dist/server/services/permission/permissions-manager/sanitize.js.map +1 -0
  255. package/dist/server/services/permission/permissions-manager/validate.d.ts +5 -0
  256. package/dist/server/services/permission/permissions-manager/validate.js +134 -0
  257. package/dist/server/services/permission/permissions-manager/validate.js.map +1 -0
  258. package/dist/server/services/permission/queries.d.ts +44 -0
  259. package/dist/server/services/permission/queries.js +159 -0
  260. package/dist/server/services/permission/queries.js.map +1 -0
  261. package/dist/server/services/permission/sections-builder/builder.d.ts +39 -0
  262. package/dist/server/services/permission/sections-builder/builder.js +75 -0
  263. package/dist/server/services/permission/sections-builder/builder.js.map +1 -0
  264. package/dist/server/services/permission/sections-builder/handlers.d.ts +44 -0
  265. package/dist/server/services/permission/sections-builder/handlers.js +124 -0
  266. package/dist/server/services/permission/sections-builder/handlers.js.map +1 -0
  267. package/dist/server/services/permission/sections-builder/index.d.ts +8 -0
  268. package/dist/server/services/permission/sections-builder/index.js +39 -0
  269. package/dist/server/services/permission/sections-builder/index.js.map +1 -0
  270. package/dist/server/services/permission/sections-builder/section.d.ts +38 -0
  271. package/dist/server/services/permission/sections-builder/section.js +56 -0
  272. package/dist/server/services/permission/sections-builder/section.js.map +1 -0
  273. package/dist/server/services/permission/sections-builder/utils.d.ts +12 -0
  274. package/dist/server/services/permission/sections-builder/utils.js +23 -0
  275. package/dist/server/services/permission/sections-builder/utils.js.map +1 -0
  276. package/dist/server/services/permission.d.ts +67 -0
  277. package/dist/server/services/permission.js +33 -0
  278. package/dist/server/services/permission.js.map +1 -0
  279. package/dist/server/services/project-settings.d.ts +5 -0
  280. package/dist/server/services/project-settings.js +139 -0
  281. package/dist/server/services/project-settings.js.map +1 -0
  282. package/dist/server/services/role.d.ts +116 -0
  283. package/dist/server/services/role.js +382 -0
  284. package/dist/server/services/role.js.map +1 -0
  285. package/dist/server/services/token.d.ts +35 -0
  286. package/dist/server/services/token.js +58 -0
  287. package/dist/server/services/token.js.map +1 -0
  288. package/dist/server/services/transfer/index.d.ts +4 -0
  289. package/dist/server/services/transfer/index.js +33 -0
  290. package/dist/server/services/transfer/index.js.map +1 -0
  291. package/dist/server/services/transfer/permission.d.ts +6 -0
  292. package/dist/server/services/transfer/permission.js +20 -0
  293. package/dist/server/services/transfer/permission.js.map +1 -0
  294. package/dist/server/services/transfer/token.d.ts +84 -0
  295. package/dist/server/services/transfer/token.js +273 -0
  296. package/dist/server/services/transfer/token.js.map +1 -0
  297. package/dist/server/services/transfer/utils.d.ts +13 -0
  298. package/dist/server/services/transfer/utils.js +29 -0
  299. package/dist/server/services/transfer/utils.js.map +1 -0
  300. package/dist/server/services/user.d.ts +96 -0
  301. package/dist/server/services/user.js +311 -0
  302. package/dist/server/services/user.js.map +1 -0
  303. package/dist/server/strategies/admin.d.ts +25 -0
  304. package/dist/server/strategies/admin.js +44 -0
  305. package/dist/server/strategies/admin.js.map +1 -0
  306. package/dist/server/strategies/api-token.d.ts +60 -0
  307. package/dist/server/strategies/api-token.js +121 -0
  308. package/dist/server/strategies/api-token.js.map +1 -0
  309. package/dist/server/strategies/data-transfer.d.ts +66 -0
  310. package/dist/server/strategies/data-transfer.js +94 -0
  311. package/dist/server/strategies/data-transfer.js.map +1 -0
  312. package/dist/server/strategies/index.d.ts +17 -0
  313. package/dist/server/strategies/index.js +27 -0
  314. package/dist/server/strategies/index.js.map +1 -0
  315. package/dist/server/types/src/types/utils/object.d.ts +58 -0
  316. package/dist/server/types/src/types/utils/object.js +3 -0
  317. package/dist/server/types/src/types/utils/object.js.map +1 -0
  318. package/dist/server/utils/index.d.ts +1 -0
  319. package/dist/server/utils/index.js +9 -0
  320. package/dist/server/utils/index.js.map +1 -0
  321. package/dist/server/utils/types.d.ts +14 -0
  322. package/dist/server/utils/types.js +3 -0
  323. package/dist/server/utils/types.js.map +1 -0
  324. package/dist/server/validation/action-provider.d.ts +5 -0
  325. package/dist/server/validation/action-provider.js +58 -0
  326. package/dist/server/validation/action-provider.js.map +1 -0
  327. package/dist/server/validation/api-tokens.d.ts +7 -0
  328. package/dist/server/validation/api-tokens.js +36 -0
  329. package/dist/server/validation/api-tokens.js.map +1 -0
  330. package/dist/server/validation/authentication/forgot-password.d.ts +2 -0
  331. package/dist/server/validation/authentication/forgot-password.js +16 -0
  332. package/dist/server/validation/authentication/forgot-password.js.map +1 -0
  333. package/dist/server/validation/authentication/index.d.ts +5 -0
  334. package/dist/server/validation/authentication/index.js +17 -0
  335. package/dist/server/validation/authentication/index.js.map +1 -0
  336. package/dist/server/validation/authentication/register.d.ts +9 -0
  337. package/dist/server/validation/authentication/register.js +49 -0
  338. package/dist/server/validation/authentication/register.js.map +1 -0
  339. package/dist/server/validation/authentication/renew-token.d.ts +2 -0
  340. package/dist/server/validation/authentication/renew-token.js +6 -0
  341. package/dist/server/validation/authentication/renew-token.js.map +1 -0
  342. package/dist/server/validation/authentication/reset-password.d.ts +2 -0
  343. package/dist/server/validation/authentication/reset-password.js +17 -0
  344. package/dist/server/validation/authentication/reset-password.js.map +1 -0
  345. package/dist/server/validation/common-functions/check-fields-are-correctly-nested.d.ts +2 -0
  346. package/dist/server/validation/common-functions/check-fields-are-correctly-nested.js +26 -0
  347. package/dist/server/validation/common-functions/check-fields-are-correctly-nested.js.map +1 -0
  348. package/dist/server/validation/common-functions/check-fields-dont-have-duplicates.d.ts +2 -0
  349. package/dist/server/validation/common-functions/check-fields-dont-have-duplicates.js +18 -0
  350. package/dist/server/validation/common-functions/check-fields-dont-have-duplicates.js.map +1 -0
  351. package/dist/server/validation/common-functions/index.d.ts +3 -0
  352. package/dist/server/validation/common-functions/index.js +11 -0
  353. package/dist/server/validation/common-functions/index.js.map +1 -0
  354. package/dist/server/validation/common-validators.d.ts +59 -0
  355. package/dist/server/validation/common-validators.js +162 -0
  356. package/dist/server/validation/common-validators.js.map +1 -0
  357. package/dist/server/validation/permission.d.ts +9 -0
  358. package/dist/server/validation/permission.js +46 -0
  359. package/dist/server/validation/permission.js.map +1 -0
  360. package/dist/server/validation/policies/hasPermissions.d.ts +5 -0
  361. package/dist/server/validation/policies/hasPermissions.js +29 -0
  362. package/dist/server/validation/policies/hasPermissions.js.map +1 -0
  363. package/dist/server/validation/project-settings.d.ts +9 -0
  364. package/dist/server/validation/project-settings.js +44 -0
  365. package/dist/server/validation/project-settings.js.map +1 -0
  366. package/dist/server/validation/role.d.ts +11 -0
  367. package/dist/server/validation/role.js +62 -0
  368. package/dist/server/validation/role.js.map +1 -0
  369. package/dist/server/validation/transfer/index.d.ts +1 -0
  370. package/dist/server/validation/transfer/index.js +9 -0
  371. package/dist/server/validation/transfer/index.js.map +1 -0
  372. package/dist/server/validation/transfer/token.d.ts +7 -0
  373. package/dist/server/validation/transfer/token.js +46 -0
  374. package/dist/server/validation/transfer/token.js.map +1 -0
  375. package/dist/server/validation/user.d.ts +117 -0
  376. package/dist/server/validation/user.js +69 -0
  377. package/dist/server/validation/user.js.map +1 -0
  378. package/package.json +9 -9
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const _ = require("lodash");
4
+ const utils_1 = require("@strapi/utils");
5
+ const user_1 = require("../validation/user");
6
+ const utils_2 = require("../utils");
7
+ const { ApplicationError } = utils_1.errors;
8
+ exports.default = {
9
+ async create(ctx) {
10
+ const { body } = ctx.request;
11
+ const cleanData = { ...body, email: _.get(body, `email`, ``).toLowerCase() };
12
+ await (0, user_1.validateUserCreationInput)(cleanData);
13
+ const attributes = _.pick(cleanData, [
14
+ 'firstname',
15
+ 'lastname',
16
+ 'email',
17
+ 'roles',
18
+ 'preferedLanguage',
19
+ ]);
20
+ const userAlreadyExists = await (0, utils_2.getService)('user').exists({
21
+ email: attributes.email,
22
+ });
23
+ if (userAlreadyExists) {
24
+ throw new ApplicationError('Email already taken');
25
+ }
26
+ const createdUser = await (0, utils_2.getService)('user').create(attributes);
27
+ const userInfo = (0, utils_2.getService)('user').sanitizeUser(createdUser);
28
+ // Note: We need to assign manually the registrationToken to the
29
+ // final user payload so that it's not removed in the sanitation process.
30
+ Object.assign(userInfo, { registrationToken: createdUser.registrationToken });
31
+ // Send 201 created
32
+ ctx.created({ data: userInfo });
33
+ },
34
+ async find(ctx) {
35
+ const userService = (0, utils_2.getService)('user');
36
+ const permissionsManager = strapi.admin.services.permission.createPermissionsManager({
37
+ ability: ctx.state.userAbility,
38
+ model: 'admin::user',
39
+ });
40
+ await permissionsManager.validateQuery(ctx.query);
41
+ const sanitizedQuery = await permissionsManager.sanitizeQuery(ctx.query);
42
+ const { results, pagination } = await userService.findPage(sanitizedQuery);
43
+ ctx.body = {
44
+ data: {
45
+ results: results.map((user) => userService.sanitizeUser(user)),
46
+ pagination,
47
+ },
48
+ };
49
+ },
50
+ async findOne(ctx) {
51
+ const { id } = ctx.params;
52
+ const user = await (0, utils_2.getService)('user').findOne(id);
53
+ if (!user) {
54
+ return ctx.notFound('User does not exist');
55
+ }
56
+ ctx.body = {
57
+ data: (0, utils_2.getService)('user').sanitizeUser(user),
58
+ };
59
+ },
60
+ async update(ctx) {
61
+ const { id } = ctx.params;
62
+ const { body: input } = ctx.request;
63
+ await (0, user_1.validateUserUpdateInput)(input);
64
+ if (_.has(input, 'email')) {
65
+ const uniqueEmailCheck = await (0, utils_2.getService)('user').exists({
66
+ id: { $ne: id },
67
+ email: input.email,
68
+ });
69
+ if (uniqueEmailCheck) {
70
+ throw new ApplicationError('A user with this email address already exists');
71
+ }
72
+ }
73
+ const updatedUser = await (0, utils_2.getService)('user').updateById(id, input);
74
+ if (!updatedUser) {
75
+ return ctx.notFound('User does not exist');
76
+ }
77
+ ctx.body = {
78
+ data: (0, utils_2.getService)('user').sanitizeUser(updatedUser),
79
+ };
80
+ },
81
+ async deleteOne(ctx) {
82
+ const { id } = ctx.params;
83
+ const deletedUser = await (0, utils_2.getService)('user').deleteById(id);
84
+ if (!deletedUser) {
85
+ return ctx.notFound('User not found');
86
+ }
87
+ return ctx.deleted({
88
+ data: (0, utils_2.getService)('user').sanitizeUser(deletedUser),
89
+ });
90
+ },
91
+ /**
92
+ * Delete several users
93
+ * @param {KoaContext} ctx - koa context
94
+ */
95
+ async deleteMany(ctx) {
96
+ const { body } = ctx.request;
97
+ await (0, user_1.validateUsersDeleteInput)(body);
98
+ const users = await (0, utils_2.getService)('user').deleteByIds(body.ids);
99
+ const sanitizedUsers = users.map((0, utils_2.getService)('user').sanitizeUser);
100
+ return ctx.deleted({
101
+ data: sanitizedUsers,
102
+ });
103
+ },
104
+ };
105
+ //# sourceMappingURL=user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../server/src/controllers/user.ts"],"names":[],"mappings":";;AAAA,4BAA6B;AAC7B,yCAAuC;AACvC,6CAI4B;AAC5B,oCAAsC;AAEtC,MAAM,EAAE,gBAAgB,EAAE,GAAG,cAAM,CAAC;AAEpC,kBAAe;IACb,KAAK,CAAC,MAAM,CAAC,GAAQ;QACnB,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC;QAC7B,MAAM,SAAS,GAAG,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QAE7E,MAAM,IAAA,gCAAyB,EAAC,SAAS,CAAC,CAAC;QAE3C,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE;YACnC,WAAW;YACX,UAAU;YACV,OAAO;YACP,OAAO;YACP,kBAAkB;SACnB,CAAC,CAAC;QAEH,MAAM,iBAAiB,GAAG,MAAM,IAAA,kBAAU,EAAC,MAAM,CAAC,CAAC,MAAM,CAAC;YACxD,KAAK,EAAE,UAAU,CAAC,KAAK;SACxB,CAAC,CAAC;QAEH,IAAI,iBAAiB,EAAE;YACrB,MAAM,IAAI,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;SACnD;QAED,MAAM,WAAW,GAAG,MAAM,IAAA,kBAAU,EAAC,MAAM,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAEhE,MAAM,QAAQ,GAAG,IAAA,kBAAU,EAAC,MAAM,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAE9D,gEAAgE;QAChE,yEAAyE;QACzE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,iBAAiB,EAAE,WAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAE9E,mBAAmB;QACnB,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAQ;QACjB,MAAM,WAAW,GAAG,IAAA,kBAAU,EAAC,MAAM,CAAC,CAAC;QAEvC,MAAM,kBAAkB,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,wBAAwB,CAAC;YACnF,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,WAAW;YAC9B,KAAK,EAAE,aAAa;SACrB,CAAC,CAAC;QAEH,MAAM,kBAAkB,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,cAAc,GAAG,MAAM,kBAAkB,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEzE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAE3E,GAAG,CAAC,IAAI,GAAG;YACT,IAAI,EAAE;gBACJ,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBAC9D,UAAU;aACX;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAQ;QACpB,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAE1B,MAAM,IAAI,GAAG,MAAM,IAAA,kBAAU,EAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAElD,IAAI,CAAC,IAAI,EAAE;YACT,OAAO,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;SAC5C;QAED,GAAG,CAAC,IAAI,GAAG;YACT,IAAI,EAAE,IAAA,kBAAU,EAAC,MAAM,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC;SAC5C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAQ;QACnB,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAC1B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC;QAEpC,MAAM,IAAA,8BAAuB,EAAC,KAAK,CAAC,CAAC;QAErC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;YACzB,MAAM,gBAAgB,GAAG,MAAM,IAAA,kBAAU,EAAC,MAAM,CAAC,CAAC,MAAM,CAAC;gBACvD,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;gBACf,KAAK,EAAE,KAAK,CAAC,KAAK;aACnB,CAAC,CAAC;YAEH,IAAI,gBAAgB,EAAE;gBACpB,MAAM,IAAI,gBAAgB,CAAC,+CAA+C,CAAC,CAAC;aAC7E;SACF;QAED,MAAM,WAAW,GAAG,MAAM,IAAA,kBAAU,EAAC,MAAM,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAEnE,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;SAC5C;QAED,GAAG,CAAC,IAAI,GAAG;YACT,IAAI,EAAE,IAAA,kBAAU,EAAC,MAAM,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC;SACnD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAQ;QACtB,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAE1B,MAAM,WAAW,GAAG,MAAM,IAAA,kBAAU,EAAC,MAAM,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAE5D,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;SACvC;QAED,OAAO,GAAG,CAAC,OAAO,CAAC;YACjB,IAAI,EAAE,IAAA,kBAAU,EAAC,MAAM,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC;SACnD,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU,CAAC,GAAQ;QACvB,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC;QAC7B,MAAM,IAAA,+BAAwB,EAAC,IAAI,CAAC,CAAC;QAErC,MAAM,KAAK,GAAG,MAAM,IAAA,kBAAU,EAAC,MAAM,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE7D,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,IAAA,kBAAU,EAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAElE,OAAO,GAAG,CAAC,OAAO,CAAC;YACjB,IAAI,EAAE,cAAc;SACrB,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -0,0 +1,10 @@
1
+ declare const _default: {
2
+ listWebhooks(ctx: any): Promise<void>;
3
+ getWebhook(ctx: any): Promise<any>;
4
+ createWebhook(ctx: any): Promise<void>;
5
+ updateWebhook(ctx: any): Promise<any>;
6
+ deleteWebhook(ctx: any): Promise<any>;
7
+ deleteWebhooks(ctx: any): Promise<any>;
8
+ triggerWebhook(ctx: any): Promise<void>;
9
+ };
10
+ export default _default;
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const lodash_1 = __importDefault(require("lodash"));
7
+ const utils_1 = require("@strapi/utils");
8
+ const urlRegex = /^(?:([a-z0-9+.-]+):\/\/)(?:\S+(?::\S*)?@)?(?:(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9_]-*)*[a-z\u00a1-\uffff0-9_]+)(?:\.(?:[a-z\u00a1-\uffff0-9_]-*)*[a-z\u00a1-\uffff0-9_]+)*\.?)(?::\d{2,5})?(?:[/?#]\S*)?$/;
9
+ const webhookValidator = utils_1.yup
10
+ .object({
11
+ name: utils_1.yup.string().required(),
12
+ url: utils_1.yup.string().matches(urlRegex, 'url must be a valid URL').required(),
13
+ headers: utils_1.yup.lazy((data) => {
14
+ if (typeof data !== 'object') {
15
+ return utils_1.yup.object().required();
16
+ }
17
+ return utils_1.yup
18
+ .object(
19
+ // @ts-expect-error
20
+ lodash_1.default.mapValues(data, () => {
21
+ utils_1.yup.string().min(1).required();
22
+ }))
23
+ .required();
24
+ }),
25
+ events: utils_1.yup.array().of(utils_1.yup.string()).required(),
26
+ })
27
+ .noUnknown();
28
+ const updateWebhookValidator = webhookValidator.shape({
29
+ isEnabled: utils_1.yup.boolean(),
30
+ });
31
+ exports.default = {
32
+ async listWebhooks(ctx) {
33
+ const webhooks = await strapi.webhookStore.findWebhooks();
34
+ ctx.send({ data: webhooks });
35
+ },
36
+ async getWebhook(ctx) {
37
+ const { id } = ctx.params;
38
+ const webhook = await strapi.webhookStore.findWebhook(id);
39
+ if (!webhook) {
40
+ return ctx.notFound('webhook.notFound');
41
+ }
42
+ ctx.send({ data: webhook });
43
+ },
44
+ async createWebhook(ctx) {
45
+ const { body } = ctx.request;
46
+ await (0, utils_1.validateYupSchema)(webhookValidator)(body);
47
+ const webhook = await strapi.webhookStore.createWebhook(body);
48
+ strapi.webhookRunner.add(webhook);
49
+ ctx.created({ data: webhook });
50
+ },
51
+ async updateWebhook(ctx) {
52
+ const { id } = ctx.params;
53
+ const { body } = ctx.request;
54
+ await (0, utils_1.validateYupSchema)(updateWebhookValidator)(body);
55
+ const webhook = await strapi.webhookStore.findWebhook(id);
56
+ if (!webhook) {
57
+ return ctx.notFound('webhook.notFound');
58
+ }
59
+ const updatedWebhook = await strapi.webhookStore.updateWebhook(id, {
60
+ ...webhook,
61
+ ...body,
62
+ });
63
+ if (!updatedWebhook) {
64
+ return ctx.notFound('webhook.notFound');
65
+ }
66
+ strapi.webhookRunner.update(updatedWebhook);
67
+ ctx.send({ data: updatedWebhook });
68
+ },
69
+ async deleteWebhook(ctx) {
70
+ const { id } = ctx.params;
71
+ const webhook = await strapi.webhookStore.findWebhook(id);
72
+ if (!webhook) {
73
+ return ctx.notFound('webhook.notFound');
74
+ }
75
+ await strapi.webhookStore.deleteWebhook(id);
76
+ strapi.webhookRunner.remove(webhook);
77
+ ctx.body = { data: webhook };
78
+ },
79
+ async deleteWebhooks(ctx) {
80
+ const { ids } = ctx.request.body;
81
+ if (!Array.isArray(ids) || ids.length === 0) {
82
+ return ctx.badRequest('ids must be an array of id');
83
+ }
84
+ for (const id of ids) {
85
+ const webhook = await strapi.webhookStore.findWebhook(id);
86
+ if (webhook) {
87
+ await strapi.webhookStore.deleteWebhook(id);
88
+ strapi.webhookRunner.remove(webhook);
89
+ }
90
+ }
91
+ ctx.send({ data: ids });
92
+ },
93
+ async triggerWebhook(ctx) {
94
+ const { id } = ctx.params;
95
+ const webhook = (await strapi.webhookStore.findWebhook(id));
96
+ const response = await strapi.webhookRunner.run(webhook, 'trigger-test', {});
97
+ ctx.body = { data: response };
98
+ },
99
+ };
100
+ //# sourceMappingURL=webhooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../../server/src/controllers/webhooks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ declare const _default: () => Promise<void>;
2
+ export default _default;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const utils_1 = require("./utils");
4
+ exports.default = async () => {
5
+ const { conditionProvider, actionProvider } = (0, utils_1.getService)('permission');
6
+ await conditionProvider.clear();
7
+ await actionProvider.clear();
8
+ };
9
+ //# sourceMappingURL=destroy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"destroy.js","sourceRoot":"","sources":["../../server/src/destroy.ts"],"names":[],"mappings":";;AAAA,mCAAqC;AAErC,kBAAe,KAAK,IAAI,EAAE;IACxB,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,GAAG,IAAA,kBAAU,EAAC,YAAY,CAAC,CAAC;IAEvE,MAAM,iBAAiB,CAAC,KAAK,EAAE,CAAC;IAChC,MAAM,cAAc,CAAC,KAAK,EAAE,CAAC;AAC/B,CAAC,CAAC"}
@@ -0,0 +1,33 @@
1
+ /// <reference types="lodash" />
2
+ import { Utils } from '@strapi/types';
3
+ export type Action = {
4
+ actionId: string;
5
+ section: string;
6
+ displayName: string;
7
+ category: string;
8
+ subCategory?: string;
9
+ pluginName?: string;
10
+ subjects?: string[];
11
+ options: {
12
+ applyToProperties: string[] | null;
13
+ };
14
+ };
15
+ /**
16
+ * Set of attributes used to create a new {@link Action} object
17
+ * @typedef {Action, { uid: string }} CreateActionPayload
18
+ */
19
+ export type CreateActionPayload = Utils.Object.PartialBy<Omit<Action, 'actionId'>, 'options'> & {
20
+ uid: string;
21
+ };
22
+ declare const _default: {
23
+ actionFields: readonly ["section", "displayName", "category", "subCategory", "pluginName", "subjects", "options", "actionId"];
24
+ appliesToProperty: import("lodash").CurriedFunction2<string, Action, boolean>;
25
+ appliesToSubject: import("lodash").CurriedFunction2<string, Action, boolean>;
26
+ assignActionId: (attrs: CreateActionPayload) => CreateActionPayload;
27
+ assignOrOmitSubCategory: (action: Action) => Action;
28
+ create: (payload: CreateActionPayload) => Action;
29
+ computeActionId: (attributes: CreateActionPayload) => string;
30
+ getDefaultActionAttributes: () => Partial<Action>;
31
+ sanitizeActionAttributes: (action: Action | CreateActionPayload) => Action;
32
+ };
33
+ export default _default;
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const fp_1 = require("lodash/fp");
4
+ /**
5
+ * Return the default attributes of a new {@link Action}
6
+ * @return Partial<Action>
7
+ */
8
+ const getDefaultActionAttributes = () => ({
9
+ options: {
10
+ applyToProperties: null,
11
+ },
12
+ });
13
+ /**
14
+ * Get the list of all the valid attributes of an {@link Action}
15
+ */
16
+ const actionFields = [
17
+ 'section',
18
+ 'displayName',
19
+ 'category',
20
+ 'subCategory',
21
+ 'pluginName',
22
+ 'subjects',
23
+ 'options',
24
+ 'actionId',
25
+ ];
26
+ /**
27
+ * Remove unwanted attributes from an {@link Action}
28
+ */
29
+ const sanitizeActionAttributes = (0, fp_1.pick)(actionFields);
30
+ /**
31
+ * Create and return an identifier for an {@link CreateActionPayload}.
32
+ * The format is based on the action's source ({@link CreateActionPayload.pluginName} or 'application') and {@link CreateActionPayload.uid}.
33
+ * @param {CreateActionPayload} attributes
34
+ * @return {string}
35
+ */
36
+ // TODO: TS - Use Common.UID
37
+ const computeActionId = (attributes) => {
38
+ const { pluginName, uid } = attributes;
39
+ if (!pluginName) {
40
+ return `api::${uid}`;
41
+ }
42
+ if (pluginName === 'admin') {
43
+ return `admin::${uid}`;
44
+ }
45
+ return `plugin::${pluginName}.${uid}`;
46
+ };
47
+ /**
48
+ * Assign an actionId attribute to an {@link CreateActionPayload} object
49
+ */
50
+ const assignActionId = (attrs) => (0, fp_1.set)('actionId', computeActionId(attrs), attrs);
51
+ /**
52
+ * Transform an action by adding or removing the {@link Action.subCategory} attribute
53
+ * @param {Action} action - The action to process
54
+ * @return {Action}
55
+ */
56
+ const assignOrOmitSubCategory = (action) => {
57
+ const shouldHaveSubCategory = ['settings', 'plugins'].includes(action.section);
58
+ return shouldHaveSubCategory
59
+ ? (0, fp_1.set)('subCategory', action.subCategory || 'general', action)
60
+ : (0, fp_1.omit)('subCategory', action);
61
+ };
62
+ /**
63
+ * Check if a property can be applied to an {@link Action}
64
+ */
65
+ const appliesToProperty = (0, fp_1.curry)((property, action) => {
66
+ return (0, fp_1.pipe)((0, fp_1.prop)('options.applyToProperties'), (0, fp_1.includes)(property))(action);
67
+ });
68
+ /**
69
+ * Check if an action applies to a subject
70
+ */
71
+ const appliesToSubject = (0, fp_1.curry)((subject, action) => {
72
+ return (0, fp_1.isArray)(action.subjects) && (0, fp_1.includes)(subject, action.subjects);
73
+ });
74
+ /**
75
+ * Transform the given attributes into a domain representation of an Action
76
+ */
77
+ const create = (0, fp_1.pipe)(
78
+ // Create and assign an action identifier to the action
79
+ // (need to be done before the sanitizeActionAttributes since we need the uid here)
80
+ assignActionId,
81
+ // Add or remove the sub category field based on the pluginName attribute
82
+ assignOrOmitSubCategory,
83
+ // Remove unwanted attributes from the payload
84
+ sanitizeActionAttributes,
85
+ // Complete the action creation by adding default values for some attributes
86
+ (0, fp_1.merge)(getDefaultActionAttributes()));
87
+ exports.default = {
88
+ actionFields,
89
+ appliesToProperty,
90
+ appliesToSubject,
91
+ assignActionId,
92
+ assignOrOmitSubCategory,
93
+ create,
94
+ computeActionId,
95
+ getDefaultActionAttributes,
96
+ sanitizeActionAttributes,
97
+ };
98
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/src/domain/action/index.ts"],"names":[],"mappings":";;AAAA,kCAAyF;AA8BzF;;;GAGG;AACH,MAAM,0BAA0B,GAAG,GAAoB,EAAE,CAAC,CAAC;IACzD,OAAO,EAAE;QACP,iBAAiB,EAAE,IAAI;KACxB;CACF,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,YAAY,GAAG;IACnB,SAAS;IACT,aAAa;IACb,UAAU;IACV,aAAa;IACb,YAAY;IACZ,UAAU;IACV,SAAS;IACT,UAAU;CACF,CAAC;AAEX;;GAEG;AACH,MAAM,wBAAwB,GAAG,IAAA,SAAI,EAAC,YAAY,CAEvC,CAAC;AAEZ;;;;;GAKG;AACH,4BAA4B;AAC5B,MAAM,eAAe,GAAG,CAAC,UAA+B,EAAU,EAAE;IAClE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC;IAEvC,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,QAAQ,GAAG,EAAE,CAAC;KACtB;IAED,IAAI,UAAU,KAAK,OAAO,EAAE;QAC1B,OAAO,UAAU,GAAG,EAAE,CAAC;KACxB;IAED,OAAO,WAAW,UAAU,IAAI,GAAG,EAAE,CAAC;AACxC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,cAAc,GAAG,CAAC,KAA0B,EAAE,EAAE,CACpD,IAAA,QAAG,EAAC,UAAU,EAAE,eAAe,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;AAEjD;;;;GAIG;AACH,MAAM,uBAAuB,GAAG,CAAC,MAAc,EAAU,EAAE;IACzD,MAAM,qBAAqB,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE/E,OAAO,qBAAqB;QAC1B,CAAC,CAAC,IAAA,QAAG,EAAC,aAAa,EAAE,MAAM,CAAC,WAAW,IAAI,SAAS,EAAE,MAAM,CAAC;QAC7D,CAAC,CAAC,IAAA,SAAI,EAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,iBAAiB,GAAG,IAAA,UAAK,EAAC,CAAC,QAAgB,EAAE,MAAc,EAAW,EAAE;IAC5E,OAAO,IAAA,SAAI,EAAC,IAAA,SAAI,EAAC,2BAA2B,CAAC,EAAE,IAAA,aAAQ,EAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAC7E,CAAC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,gBAAgB,GAAG,IAAA,UAAK,EAAC,CAAC,OAAe,EAAE,MAAc,EAAW,EAAE;IAC1E,OAAO,IAAA,YAAO,EAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAA,aAAQ,EAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;AACxE,CAAC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,GAA6C,IAAA,SAAI;AAC3D,uDAAuD;AACvD,mFAAmF;AACnF,cAAc;AACd,yEAAyE;AACzE,uBAAuB;AACvB,8CAA8C;AAC9C,wBAAwB;AACxB,4EAA4E;AAC5E,IAAA,UAAK,EAAC,0BAA0B,EAAE,CAAC,CACpC,CAAC;AAEF,kBAAe;IACb,YAAY;IACZ,iBAAiB;IACjB,gBAAgB;IAChB,cAAc;IACd,uBAAuB;IACvB,MAAM;IACN,eAAe;IACf,0BAA0B;IAC1B,wBAAwB;CACzB,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { providerFactory } from '@strapi/utils';
2
+ import type { CreateActionPayload } from './index';
3
+ type Options = Parameters<typeof providerFactory>['0'];
4
+ /**
5
+ * Creates a new instance of an action provider
6
+ */
7
+ declare const createActionProvider: (options?: Options) => {
8
+ hooks: {
9
+ appliesPropertyToSubject: {
10
+ call(context: unknown): Promise<any[]>;
11
+ getHandlers(): import("@strapi/utils/dist/hooks").Handler[];
12
+ register(handler: import("@strapi/utils/dist/hooks").Handler): import("@strapi/utils/dist/hooks").Hook<import("@strapi/utils/dist/hooks").Handler>;
13
+ delete(handler: import("@strapi/utils/dist/hooks").Handler): import("@strapi/utils/dist/hooks").Hook<import("@strapi/utils/dist/hooks").Handler>;
14
+ };
15
+ willRegister: import("@strapi/utils/dist/hooks").AsyncSeriesHook;
16
+ didRegister: import("@strapi/utils/dist/hooks").AsyncParallelHook;
17
+ willDelete: import("@strapi/utils/dist/hooks").AsyncParallelHook;
18
+ didDelete: import("@strapi/utils/dist/hooks").AsyncParallelHook;
19
+ };
20
+ register(actionAttributes: CreateActionPayload): Promise<import("@strapi/utils/dist/provider-factory").Provider>;
21
+ registerMany(actionsAttributes: CreateActionPayload[]): Promise<any>;
22
+ appliesToProperty(property: string, actionId: string, subject: string): Promise<boolean>;
23
+ delete(key: string): Promise<import("@strapi/utils/dist/provider-factory").Provider>;
24
+ get(key: string): {
25
+ [x: string]: unknown;
26
+ } | undefined;
27
+ getWhere(filters?: Record<string, unknown> | undefined): {
28
+ [x: string]: unknown;
29
+ }[];
30
+ values(): {
31
+ [x: string]: unknown;
32
+ }[];
33
+ keys(): string[];
34
+ has(key: string): boolean;
35
+ size(): number;
36
+ clear(): Promise<import("@strapi/utils/dist/provider-factory").Provider>;
37
+ };
38
+ export default createActionProvider;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const utils_1 = require("@strapi/utils");
7
+ const action_provider_1 = require("../../validation/action-provider");
8
+ const index_1 = __importDefault(require("./index"));
9
+ /**
10
+ * Creates a new instance of an action provider
11
+ */
12
+ const createActionProvider = (options) => {
13
+ const provider = (0, utils_1.providerFactory)(options);
14
+ const actionHooks = {
15
+ appliesPropertyToSubject: utils_1.hooks.createAsyncParallelHook(),
16
+ };
17
+ return {
18
+ ...provider,
19
+ hooks: {
20
+ ...provider.hooks,
21
+ ...actionHooks,
22
+ },
23
+ async register(actionAttributes) {
24
+ if (strapi.isLoaded) {
25
+ throw new Error(`You can't register new actions outside of the bootstrap function.`);
26
+ }
27
+ (0, action_provider_1.validateRegisterProviderAction)([actionAttributes]);
28
+ const action = index_1.default.create(actionAttributes);
29
+ return provider.register(action.actionId, action);
30
+ },
31
+ async registerMany(actionsAttributes) {
32
+ (0, action_provider_1.validateRegisterProviderAction)(actionsAttributes);
33
+ for (const attributes of actionsAttributes) {
34
+ await this.register(attributes);
35
+ }
36
+ return this;
37
+ },
38
+ async appliesToProperty(property, actionId, subject) {
39
+ const action = provider.get(actionId);
40
+ if (!action) {
41
+ return false;
42
+ }
43
+ const appliesToAction = index_1.default.appliesToProperty(property, action);
44
+ // If the property isn't valid for this action, ignore the rest of the checks
45
+ if (!appliesToAction) {
46
+ return false;
47
+ }
48
+ // If the property is valid for this action and there isn't any subject
49
+ if (!subject) {
50
+ return true;
51
+ }
52
+ // If the property is valid for this action and the subject is not handled by the action
53
+ if (!index_1.default.appliesToSubject(subject, action)) {
54
+ return false;
55
+ }
56
+ const results = await actionHooks.appliesPropertyToSubject.call({
57
+ property,
58
+ action,
59
+ subject,
60
+ });
61
+ return results.every((result) => result !== false);
62
+ },
63
+ };
64
+ };
65
+ exports.default = createActionProvider;
66
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../../server/src/domain/action/provider.ts"],"names":[],"mappings":";;;;;AAAA,yCAAuD;AACvD,sEAAkF;AAElF,oDAA6B;AAK7B;;GAEG;AACH,MAAM,oBAAoB,GAAG,CAAC,OAAiB,EAAE,EAAE;IACjD,MAAM,QAAQ,GAAG,IAAA,uBAAe,EAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG;QAClB,wBAAwB,EAAE,aAAK,CAAC,uBAAuB,EAAE;KAC1D,CAAC;IAEF,OAAO;QACL,GAAG,QAAQ;QAEX,KAAK,EAAE;YACL,GAAG,QAAQ,CAAC,KAAK;YACjB,GAAG,WAAW;SACf;QAED,KAAK,CAAC,QAAQ,CAAC,gBAAqC;YAClD,IAAI,MAAM,CAAC,QAAQ,EAAE;gBACnB,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;aACtF;YAED,IAAA,gDAA8B,EAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAEnD,MAAM,MAAM,GAAG,eAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAE/C,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACpD,CAAC;QAED,KAAK,CAAC,YAAY,CAAC,iBAAwC;YACzD,IAAA,gDAA8B,EAAC,iBAAiB,CAAC,CAAC;YAElD,KAAK,MAAM,UAAU,IAAI,iBAAiB,EAAE;gBAC1C,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;aACjC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAED,KAAK,CAAC,iBAAiB,CAAC,QAAgB,EAAE,QAAgB,EAAE,OAAe;YACzE,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAuB,CAAC;YAC5D,IAAI,CAAC,MAAM,EAAE;gBACX,OAAO,KAAK,CAAC;aACd;YAED,MAAM,eAAe,GAAG,eAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAEnE,6EAA6E;YAC7E,IAAI,CAAC,eAAe,EAAE;gBACpB,OAAO,KAAK,CAAC;aACd;YAED,uEAAuE;YACvE,IAAI,CAAC,OAAO,EAAE;gBACZ,OAAO,IAAI,CAAC;aACb;YAED,wFAAwF;YACxF,IAAI,CAAC,eAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE;gBAC7C,OAAO,KAAK,CAAC;aACd;YAED,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC;gBAC9D,QAAQ;gBACR,MAAM;gBACN,OAAO;aACR,CAAC,CAAC;YAEH,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;QACrD,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,oBAAoB,CAAC"}
@@ -0,0 +1,53 @@
1
+ export type Condition = {
2
+ id: string;
3
+ displayName: string;
4
+ name: string;
5
+ plugin?: string;
6
+ category?: string;
7
+ /**
8
+ * The handler of a {@link Condition}
9
+ */
10
+ handler: (user: object, options: object) => object | boolean;
11
+ };
12
+ /**
13
+ * Set of attributes used to create a new {@link Action} object
14
+ */
15
+ export type CreateConditionPayload = Omit<Condition, 'id'>;
16
+ /**
17
+ * Get the default value used for every condition
18
+ * @return {Condition}
19
+ */
20
+ export declare const getDefaultConditionAttributes: () => {
21
+ category: string;
22
+ };
23
+ /**
24
+ * Get the list of all the valid attributes of a {@link Condition}
25
+ * @return {string[]}
26
+ */
27
+ export declare const conditionFields: readonly ["id", "displayName", "handler", "plugin", "category"];
28
+ /**
29
+ * Remove unwanted attributes from a {@link Condition}
30
+ */
31
+ export declare const sanitizeConditionAttributes: import("lodash/fp").LodashPick2x1;
32
+ export declare const computeConditionId: (condition: CreateConditionPayload) => string;
33
+ /**
34
+ * Assign an id attribute to a {@link CreateConditionPayload} object
35
+ * @param attrs - Payload used to create a condition
36
+ */
37
+ export declare const assignConditionId: (attrs: CreateConditionPayload) => Condition;
38
+ /**
39
+ * Transform the given attributes into a domain representation of a Condition
40
+ * @param payload - The condition payload containing the attributes needed to create a {@link Condition}
41
+ */
42
+ export declare const create: (payload: CreateConditionPayload) => Condition;
43
+ declare const _default: {
44
+ assignConditionId: (attrs: CreateConditionPayload) => Condition;
45
+ computeConditionId: (condition: CreateConditionPayload) => string;
46
+ conditionFields: readonly ["id", "displayName", "handler", "plugin", "category"];
47
+ create: (payload: CreateConditionPayload) => Condition;
48
+ getDefaultConditionAttributes: () => {
49
+ category: string;
50
+ };
51
+ sanitizeConditionAttributes: import("lodash/fp").LodashPick2x1;
52
+ };
53
+ export default _default;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.create = exports.assignConditionId = exports.computeConditionId = exports.sanitizeConditionAttributes = exports.conditionFields = exports.getDefaultConditionAttributes = void 0;
4
+ const fp_1 = require("lodash/fp");
5
+ const DEFAULT_CATEGORY = 'default';
6
+ /**
7
+ * Get the default value used for every condition
8
+ * @return {Condition}
9
+ */
10
+ const getDefaultConditionAttributes = () => ({
11
+ category: DEFAULT_CATEGORY,
12
+ });
13
+ exports.getDefaultConditionAttributes = getDefaultConditionAttributes;
14
+ /**
15
+ * Get the list of all the valid attributes of a {@link Condition}
16
+ * @return {string[]}
17
+ */
18
+ exports.conditionFields = ['id', 'displayName', 'handler', 'plugin', 'category'];
19
+ /**
20
+ * Remove unwanted attributes from a {@link Condition}
21
+ */
22
+ exports.sanitizeConditionAttributes = (0, fp_1.pick)(exports.conditionFields);
23
+ const computeConditionId = (condition) => {
24
+ const { name, plugin } = condition;
25
+ if (!plugin) {
26
+ return `api::${name}`;
27
+ }
28
+ if (plugin === 'admin') {
29
+ return `admin::${name}`;
30
+ }
31
+ return `plugin::${plugin}.${name}`;
32
+ };
33
+ exports.computeConditionId = computeConditionId;
34
+ /**
35
+ * Assign an id attribute to a {@link CreateConditionPayload} object
36
+ * @param attrs - Payload used to create a condition
37
+ */
38
+ const assignConditionId = (attrs) => {
39
+ const condition = (0, fp_1.set)('id', (0, exports.computeConditionId)(attrs), attrs);
40
+ return condition;
41
+ };
42
+ exports.assignConditionId = assignConditionId;
43
+ /**
44
+ * Transform the given attributes into a domain representation of a Condition
45
+ * @param payload - The condition payload containing the attributes needed to create a {@link Condition}
46
+ */
47
+ exports.create = (0, fp_1.pipe)(exports.assignConditionId, exports.sanitizeConditionAttributes, (0, fp_1.merge)((0, exports.getDefaultConditionAttributes)()));
48
+ exports.default = {
49
+ assignConditionId: exports.assignConditionId,
50
+ computeConditionId: exports.computeConditionId,
51
+ conditionFields: exports.conditionFields,
52
+ create: exports.create,
53
+ getDefaultConditionAttributes: exports.getDefaultConditionAttributes,
54
+ sanitizeConditionAttributes: exports.sanitizeConditionAttributes,
55
+ };
56
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/src/domain/condition/index.ts"],"names":[],"mappings":";;;AAAA,kCAAmD;AAoBnD,MAAM,gBAAgB,GAAG,SAAS,CAAC;AAEnC;;;GAGG;AACI,MAAM,6BAA6B,GAAG,GAAG,EAAE,CAAC,CAAC;IAClD,QAAQ,EAAE,gBAAgB;CAC3B,CAAC,CAAC;AAFU,QAAA,6BAA6B,iCAEvC;AAEH;;;GAGG;AACU,QAAA,eAAe,GAAG,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAU,CAAC;AAE/F;;GAEG;AACU,QAAA,2BAA2B,GAAG,IAAA,SAAI,EAAC,uBAAe,CAAC,CAAC;AAE1D,MAAM,kBAAkB,GAAG,CAAC,SAAiC,EAAE,EAAE;IACtE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAEnC,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,QAAQ,IAAI,EAAE,CAAC;KACvB;IAED,IAAI,MAAM,KAAK,OAAO,EAAE;QACtB,OAAO,UAAU,IAAI,EAAE,CAAC;KACzB;IAED,OAAO,WAAW,MAAM,IAAI,IAAI,EAAE,CAAC;AACrC,CAAC,CAAC;AAZW,QAAA,kBAAkB,sBAY7B;AAEF;;;GAGG;AACI,MAAM,iBAAiB,GAAG,CAAC,KAA6B,EAAa,EAAE;IAC5E,MAAM,SAAS,GAAG,IAAA,QAAG,EAAC,IAAI,EAAE,IAAA,0BAAkB,EAAC,KAAK,CAAC,EAAE,KAAK,CAE3D,CAAC;IACF,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AALW,QAAA,iBAAiB,qBAK5B;AAEF;;;GAGG;AACU,QAAA,MAAM,GAAG,IAAA,SAAI,EACxB,yBAAiB,EACjB,mCAA2B,EAC3B,IAAA,UAAK,EAAC,IAAA,qCAA6B,GAAE,CAAC,CACW,CAAC;AAEpD,kBAAe;IACb,iBAAiB,EAAjB,yBAAiB;IACjB,kBAAkB,EAAlB,0BAAkB;IAClB,eAAe,EAAf,uBAAe;IACf,MAAM,EAAN,cAAM;IACN,6BAA6B,EAA7B,qCAA6B;IAC7B,2BAA2B,EAA3B,mCAA2B;CAC5B,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { CreateConditionPayload } from '.';
2
+ /**
3
+ * @typedef ConditionProviderOverride
4
+ * @property {function(CreateConditionPayload)} register
5
+ * @property {function(attributes CreateConditionPayload[]): Promise<this>} registerMany
6
+ */
7
+ /**
8
+ * Creates a new instance of a condition provider
9
+ * @return {Provider & ConditionProviderOverride}
10
+ */
11
+ declare const createConditionProvider: () => {
12
+ register(conditionAttributes: CreateConditionPayload): Promise<import("@strapi/utils/dist/provider-factory").Provider>;
13
+ registerMany(conditionsAttributes: CreateConditionPayload[]): Promise<any>;
14
+ hooks: import("@strapi/utils/dist/provider-factory").ProviderHooksMap;
15
+ delete(key: string): Promise<import("@strapi/utils/dist/provider-factory").Provider>;
16
+ get(key: string): {
17
+ [x: string]: unknown;
18
+ } | undefined;
19
+ getWhere(filters?: Record<string, unknown> | undefined): {
20
+ [x: string]: unknown;
21
+ }[];
22
+ values(): {
23
+ [x: string]: unknown;
24
+ }[];
25
+ keys(): string[];
26
+ has(key: string): boolean;
27
+ size(): number;
28
+ clear(): Promise<import("@strapi/utils/dist/provider-factory").Provider>;
29
+ };
30
+ export default createConditionProvider;