@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,35 @@
1
+ import type { AdminUser } from '../domain/user';
2
+ export type TokenOptions = {
3
+ expiresIn?: string;
4
+ [key: string]: unknown;
5
+ };
6
+ export type AdminAuthConfig = {
7
+ secret: string;
8
+ options: TokenOptions;
9
+ };
10
+ declare const getTokenOptions: () => {
11
+ secret: string;
12
+ options: {
13
+ expiresIn: string;
14
+ } & TokenOptions;
15
+ };
16
+ /**
17
+ * Create a random token
18
+ */
19
+ declare const createToken: () => string;
20
+ /**
21
+ * Creates a JWT token for an administration user
22
+ * @param user - admin user
23
+ */
24
+ declare const createJwtToken: (user: AdminUser) => string;
25
+ /**
26
+ * Tries to decode a token an return its payload and if it is valid
27
+ * @param token - a token to decode
28
+ * @return decodeInfo - the decoded info
29
+ */
30
+ declare const decodeJwtToken: (token: string) => {
31
+ payload: unknown;
32
+ isValid: boolean;
33
+ };
34
+ declare const checkSecretIsDefined: () => void;
35
+ export { createToken, createJwtToken, getTokenOptions, decodeJwtToken, checkSecretIsDefined };
@@ -0,0 +1,58 @@
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
+ exports.checkSecretIsDefined = exports.decodeJwtToken = exports.getTokenOptions = exports.createJwtToken = exports.createToken = void 0;
7
+ const crypto_1 = __importDefault(require("crypto"));
8
+ const lodash_1 = __importDefault(require("lodash"));
9
+ const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
10
+ const defaultJwtOptions = { expiresIn: '30d' };
11
+ const getTokenOptions = () => {
12
+ const { options, secret } = strapi.config.get('admin.auth', {});
13
+ return {
14
+ secret,
15
+ options: lodash_1.default.merge(defaultJwtOptions, options),
16
+ };
17
+ };
18
+ exports.getTokenOptions = getTokenOptions;
19
+ /**
20
+ * Create a random token
21
+ */
22
+ const createToken = () => {
23
+ return crypto_1.default.randomBytes(20).toString('hex');
24
+ };
25
+ exports.createToken = createToken;
26
+ /**
27
+ * Creates a JWT token for an administration user
28
+ * @param user - admin user
29
+ */
30
+ const createJwtToken = (user) => {
31
+ const { options, secret } = getTokenOptions();
32
+ return jsonwebtoken_1.default.sign({ id: user.id }, secret, options);
33
+ };
34
+ exports.createJwtToken = createJwtToken;
35
+ /**
36
+ * Tries to decode a token an return its payload and if it is valid
37
+ * @param token - a token to decode
38
+ * @return decodeInfo - the decoded info
39
+ */
40
+ const decodeJwtToken = (token) => {
41
+ const { secret } = getTokenOptions();
42
+ try {
43
+ const payload = jsonwebtoken_1.default.verify(token, secret);
44
+ return { payload, isValid: true };
45
+ }
46
+ catch (err) {
47
+ return { payload: null, isValid: false };
48
+ }
49
+ };
50
+ exports.decodeJwtToken = decodeJwtToken;
51
+ const checkSecretIsDefined = () => {
52
+ if (strapi.config.serveAdminPanel && !strapi.config.get('admin.auth.secret')) {
53
+ throw new Error(`Missing auth.secret. Please set auth.secret in config/admin.js (ex: you can generate one using Node with \`crypto.randomBytes(16).toString('base64')\`).
54
+ For security reasons, prefer storing the secret in an environment variable and read it in config/admin.js. See https://docs.strapi.io/developer-docs/latest/setup-deployment-guides/configurations/optional/environment.html#configuration-using-environment-variables.`);
55
+ }
56
+ };
57
+ exports.checkSecretIsDefined = checkSecretIsDefined;
58
+ //# sourceMappingURL=token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../../../server/src/services/token.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAC5B,oDAAuB;AACvB,gEAA+B;AAG/B,MAAM,iBAAiB,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAY/C,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAC3C,YAAY,EACZ,EAAqB,CACtB,CAAC;IAEF,OAAO;QACL,MAAM;QACN,OAAO,EAAE,gBAAC,CAAC,KAAK,CAAC,iBAAiB,EAAE,OAAO,CAAC;KAC7C,CAAC;AACJ,CAAC,CAAC;AA4CoC,0CAAe;AA1CrD;;GAEG;AACH,MAAM,WAAW,GAAG,GAAW,EAAE;IAC/B,OAAO,gBAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC,CAAC;AAqCO,kCAAW;AAnCpB;;;GAGG;AACH,MAAM,cAAc,GAAG,CAAC,IAAe,EAAE,EAAE;IACzC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,CAAC;IAE9C,OAAO,sBAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC,CAAC;AA2BoB,wCAAc;AAzBpC;;;;GAIG;AACH,MAAM,cAAc,GAAG,CAAC,KAAa,EAA0C,EAAE;IAC/E,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,CAAC;IAErC,IAAI;QACF,MAAM,OAAO,GAAG,sBAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;KACnC;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;KAC1C;AACH,CAAC,CAAC;AAWqD,wCAAc;AATrE,MAAM,oBAAoB,GAAG,GAAG,EAAE;IAChC,IAAI,MAAM,CAAC,MAAM,CAAC,eAAe,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE;QAC5E,MAAM,IAAI,KAAK,CACb;wQACkQ,CACnQ,CAAC;KACH;AACH,CAAC,CAAC;AAEqE,oDAAoB"}
@@ -0,0 +1,4 @@
1
+ import * as permission from './permission';
2
+ import * as token from './token';
3
+ import * as utils from './utils';
4
+ export { permission, token, utils };
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.utils = exports.token = exports.permission = void 0;
27
+ const permission = __importStar(require("./permission"));
28
+ exports.permission = permission;
29
+ const token = __importStar(require("./token"));
30
+ exports.token = token;
31
+ const utils = __importStar(require("./utils"));
32
+ exports.utils = utils;
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/src/services/transfer/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yDAA2C;AAIlC,gCAAU;AAHnB,+CAAiC;AAGZ,sBAAK;AAF1B,+CAAiC;AAEL,sBAAK"}
@@ -0,0 +1,6 @@
1
+ declare const providers: {
2
+ action: import("@strapi/utils/dist/provider-factory").Provider;
3
+ condition: import("@strapi/utils/dist/provider-factory").Provider;
4
+ };
5
+ declare const engine: import("@strapi/permissions/dist/engine").Engine;
6
+ export { engine, providers };
@@ -0,0 +1,20 @@
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
+ exports.providers = exports.engine = void 0;
7
+ const permissions_1 = __importDefault(require("@strapi/permissions"));
8
+ const utils_1 = require("@strapi/utils");
9
+ const DEFAULT_TRANSFER_ACTIONS = ['push', 'pull'];
10
+ const providers = {
11
+ action: (0, utils_1.providerFactory)(),
12
+ condition: (0, utils_1.providerFactory)(),
13
+ };
14
+ exports.providers = providers;
15
+ DEFAULT_TRANSFER_ACTIONS.forEach((action) => {
16
+ providers.action.register(action, { action });
17
+ });
18
+ const engine = permissions_1.default.engine.new({ providers });
19
+ exports.engine = engine;
20
+ //# sourceMappingURL=permission.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission.js","sourceRoot":"","sources":["../../../../server/src/services/transfer/permission.ts"],"names":[],"mappings":";;;;;;AAAA,sEAA8C;AAC9C,yCAAgD;AAEhD,MAAM,wBAAwB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAElD,MAAM,SAAS,GAAG;IAChB,MAAM,EAAE,IAAA,uBAAe,GAAE;IACzB,SAAS,EAAE,IAAA,uBAAe,GAAE;CAC7B,CAAC;AAQe,8BAAS;AAN1B,wBAAwB,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;IAC1C,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,qBAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;AAE5C,wBAAM"}
@@ -0,0 +1,84 @@
1
+ export type TransferTokenPermission = {
2
+ id: number | string;
3
+ action: string;
4
+ token: TransferToken | number;
5
+ };
6
+ export type TransferToken = {
7
+ id: number | string;
8
+ name: string;
9
+ description: string;
10
+ accessKey: string;
11
+ lastUsedAt: number;
12
+ lifespan: number;
13
+ expiresAt: number;
14
+ permissions: string[] | TransferTokenPermission[];
15
+ };
16
+ type SanitizedTransferToken = Omit<TransferToken, 'accessKey'>;
17
+ /**
18
+ * Return a list of all tokens and their permissions
19
+ */
20
+ declare const list: () => Promise<SanitizedTransferToken[]>;
21
+ export declare const hasAccessKey: <T extends {
22
+ accessKey?: string | undefined;
23
+ }>(attributes: T) => attributes is T & {
24
+ accessKey: string;
25
+ };
26
+ /**
27
+ * Create a token and its permissions
28
+ */
29
+ declare const create: (attributes: {
30
+ name: string;
31
+ description: string;
32
+ lifespan: number;
33
+ permissions: string[];
34
+ accessKey?: string;
35
+ }) => Promise<TransferToken>;
36
+ /**
37
+ * Update a token and its permissions
38
+ */
39
+ declare const update: (id: string | number, attributes: {
40
+ name: string;
41
+ description: string;
42
+ lastUsedAt: number;
43
+ permissions: string[];
44
+ lifespan: number;
45
+ }) => Promise<SanitizedTransferToken>;
46
+ /**
47
+ * Revoke (delete) a token
48
+ */
49
+ declare const revoke: (id: string | number) => Promise<SanitizedTransferToken>;
50
+ /**
51
+ * Get a token
52
+ */
53
+ declare const getBy: (whereParams?: {
54
+ id?: string | number | undefined;
55
+ name?: string | undefined;
56
+ lastUsedAt?: number | undefined;
57
+ description?: string | undefined;
58
+ accessKey?: string | undefined;
59
+ }) => Promise<SanitizedTransferToken | null>;
60
+ /**
61
+ * Retrieve a token by id
62
+ */
63
+ declare const getById: (id: string | number) => Promise<SanitizedTransferToken | null>;
64
+ /**
65
+ * Retrieve a token by name
66
+ */
67
+ declare const getByName: (name: string) => Promise<SanitizedTransferToken | null>;
68
+ /**
69
+ * Check if token exists
70
+ */
71
+ declare const exists: (whereParams?: {
72
+ id?: string | number | undefined;
73
+ name?: string | undefined;
74
+ lastUsedAt?: number | undefined;
75
+ description?: string | undefined;
76
+ accessKey?: string | undefined;
77
+ }) => Promise<boolean>;
78
+ declare const regenerate: (id: string | number) => Promise<TransferToken>;
79
+ /**
80
+ * Return a secure sha512 hash of an accessKey
81
+ */
82
+ declare const hash: (accessKey: string) => string;
83
+ declare const checkSaltIsDefined: () => void;
84
+ export { create, list, exists, getBy, getById, getByName, update, revoke, regenerate, hash, checkSaltIsDefined, };
@@ -0,0 +1,273 @@
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
+ exports.checkSaltIsDefined = exports.hash = exports.regenerate = exports.revoke = exports.update = exports.getByName = exports.getById = exports.getBy = exports.exists = exports.list = exports.create = exports.hasAccessKey = void 0;
7
+ const crypto_1 = __importDefault(require("crypto"));
8
+ const assert_1 = __importDefault(require("assert"));
9
+ const fp_1 = require("lodash/fp");
10
+ const utils_1 = require("@strapi/utils");
11
+ const constants_1 = __importDefault(require("../constants"));
12
+ const utils_2 = require("../../utils");
13
+ const { ValidationError, NotFoundError } = utils_1.errors;
14
+ const TRANSFER_TOKEN_UID = 'admin::transfer-token';
15
+ const TRANSFER_TOKEN_PERMISSION_UID = 'admin::transfer-token-permission';
16
+ const SELECT_FIELDS = [
17
+ 'id',
18
+ 'name',
19
+ 'description',
20
+ 'lastUsedAt',
21
+ 'lifespan',
22
+ 'expiresAt',
23
+ 'createdAt',
24
+ 'updatedAt',
25
+ ];
26
+ const POPULATE_FIELDS = ['permissions'];
27
+ /**
28
+ * Return a list of all tokens and their permissions
29
+ */
30
+ const list = async () => {
31
+ const tokens = await strapi.query(TRANSFER_TOKEN_UID).findMany({
32
+ select: SELECT_FIELDS,
33
+ populate: POPULATE_FIELDS,
34
+ orderBy: { name: 'ASC' },
35
+ });
36
+ if (!tokens)
37
+ return tokens;
38
+ return tokens.map((token) => flattenTokenPermissions(token));
39
+ };
40
+ exports.list = list;
41
+ /**
42
+ * Create a random token's access key
43
+ */
44
+ const generateRandomAccessKey = () => crypto_1.default.randomBytes(128).toString('hex');
45
+ /**
46
+ * Validate the given access key's format and returns it if valid
47
+ */
48
+ const validateAccessKey = (accessKey) => {
49
+ (0, assert_1.default)(typeof accessKey === 'string', 'Access key needs to be a string');
50
+ (0, assert_1.default)(accessKey.length >= 15, 'Access key needs to have at least 15 characters');
51
+ return accessKey;
52
+ };
53
+ const hasAccessKey = (attributes) => {
54
+ return 'accessKey' in attributes;
55
+ };
56
+ exports.hasAccessKey = hasAccessKey;
57
+ /**
58
+ * Create a token and its permissions
59
+ */
60
+ const create = async (attributes) => {
61
+ const accessKey = (0, exports.hasAccessKey)(attributes)
62
+ ? validateAccessKey(attributes.accessKey)
63
+ : generateRandomAccessKey();
64
+ // Make sure the access key isn't picked up directly from the attributes for the next steps
65
+ delete attributes.accessKey;
66
+ assertTokenPermissionsValidity(attributes);
67
+ assertValidLifespan(attributes);
68
+ const result = (await strapi.db.transaction(async () => {
69
+ const transferToken = await strapi.query(TRANSFER_TOKEN_UID).create({
70
+ select: SELECT_FIELDS,
71
+ populate: POPULATE_FIELDS,
72
+ data: {
73
+ ...(0, fp_1.omit)('permissions', attributes),
74
+ accessKey: hash(accessKey),
75
+ ...getExpirationFields(attributes.lifespan),
76
+ },
77
+ });
78
+ await Promise.all((0, fp_1.uniq)(attributes.permissions).map((action) => strapi
79
+ .query(TRANSFER_TOKEN_PERMISSION_UID)
80
+ .create({ data: { action, token: transferToken } })));
81
+ const currentPermissions = await strapi.entityService.load(TRANSFER_TOKEN_UID, transferToken, 'permissions');
82
+ if (currentPermissions) {
83
+ Object.assign(transferToken, { permissions: (0, fp_1.map)('action', currentPermissions) });
84
+ }
85
+ return transferToken;
86
+ }));
87
+ return { ...result, accessKey };
88
+ };
89
+ exports.create = create;
90
+ /**
91
+ * Update a token and its permissions
92
+ */
93
+ const update = async (id, attributes) => {
94
+ // retrieve token without permissions
95
+ const originalToken = await strapi.query(TRANSFER_TOKEN_UID).findOne({ where: { id } });
96
+ if (!originalToken) {
97
+ throw new NotFoundError('Token not found');
98
+ }
99
+ assertTokenPermissionsValidity(attributes);
100
+ assertValidLifespan(attributes);
101
+ return strapi.db.transaction(async () => {
102
+ const updatedToken = await strapi.query(TRANSFER_TOKEN_UID).update({
103
+ select: SELECT_FIELDS,
104
+ where: { id },
105
+ data: {
106
+ ...(0, fp_1.omit)('permissions', attributes),
107
+ },
108
+ });
109
+ if (attributes.permissions) {
110
+ const currentPermissionsResult = await strapi.entityService.load(TRANSFER_TOKEN_UID, updatedToken, 'permissions');
111
+ const currentPermissions = (0, fp_1.map)('action', currentPermissionsResult || []);
112
+ const newPermissions = (0, fp_1.uniq)(attributes.permissions);
113
+ const actionsToDelete = (0, fp_1.difference)(currentPermissions, newPermissions);
114
+ const actionsToAdd = (0, fp_1.difference)(newPermissions, currentPermissions);
115
+ // TODO: improve efficiency here
116
+ // method using a loop -- works but very inefficient
117
+ await Promise.all(actionsToDelete.map((action) => strapi.query(TRANSFER_TOKEN_PERMISSION_UID).delete({
118
+ where: { action, token: id },
119
+ })));
120
+ // TODO: improve efficiency here
121
+ // using a loop -- works but very inefficient
122
+ await Promise.all(actionsToAdd.map((action) => strapi.query(TRANSFER_TOKEN_PERMISSION_UID).create({
123
+ data: { action, token: id },
124
+ })));
125
+ }
126
+ // retrieve permissions
127
+ const permissionsFromDb = (await strapi.entityService.load(TRANSFER_TOKEN_UID, updatedToken, 'permissions'));
128
+ return {
129
+ ...updatedToken,
130
+ permissions: permissionsFromDb ? permissionsFromDb.map((p) => p.action) : undefined,
131
+ };
132
+ });
133
+ };
134
+ exports.update = update;
135
+ /**
136
+ * Revoke (delete) a token
137
+ */
138
+ const revoke = async (id) => {
139
+ return strapi.db.transaction(async () => strapi
140
+ .query(TRANSFER_TOKEN_UID)
141
+ .delete({ select: SELECT_FIELDS, populate: POPULATE_FIELDS, where: { id } }));
142
+ };
143
+ exports.revoke = revoke;
144
+ /**
145
+ * Get a token
146
+ */
147
+ const getBy = async (whereParams = {}) => {
148
+ if (Object.keys(whereParams).length === 0) {
149
+ return null;
150
+ }
151
+ const token = await strapi
152
+ .query(TRANSFER_TOKEN_UID)
153
+ .findOne({ select: SELECT_FIELDS, populate: POPULATE_FIELDS, where: whereParams });
154
+ if (!token)
155
+ return token;
156
+ return flattenTokenPermissions(token);
157
+ };
158
+ exports.getBy = getBy;
159
+ /**
160
+ * Retrieve a token by id
161
+ */
162
+ const getById = async (id) => {
163
+ return getBy({ id });
164
+ };
165
+ exports.getById = getById;
166
+ /**
167
+ * Retrieve a token by name
168
+ */
169
+ const getByName = async (name) => {
170
+ return getBy({ name });
171
+ };
172
+ exports.getByName = getByName;
173
+ /**
174
+ * Check if token exists
175
+ */
176
+ const exists = async (whereParams = {}) => {
177
+ const transferToken = await getBy(whereParams);
178
+ return !!transferToken;
179
+ };
180
+ exports.exists = exists;
181
+ const regenerate = async (id) => {
182
+ const accessKey = crypto_1.default.randomBytes(128).toString('hex');
183
+ const transferToken = (await strapi.db.transaction(async () => strapi.query(TRANSFER_TOKEN_UID).update({
184
+ select: ['id', 'accessKey'],
185
+ where: { id },
186
+ data: {
187
+ accessKey: hash(accessKey),
188
+ },
189
+ })));
190
+ if (!transferToken) {
191
+ throw new NotFoundError('The provided token id does not exist');
192
+ }
193
+ return {
194
+ ...transferToken,
195
+ accessKey,
196
+ };
197
+ };
198
+ exports.regenerate = regenerate;
199
+ const getExpirationFields = (lifespan) => {
200
+ // it must be nil or a finite number >= 0
201
+ const isValidNumber = Number.isFinite(lifespan) && lifespan > 0;
202
+ if (!isValidNumber && !(0, fp_1.isNil)(lifespan)) {
203
+ throw new ValidationError('lifespan must be a positive number or null');
204
+ }
205
+ return {
206
+ lifespan: lifespan || null,
207
+ expiresAt: lifespan ? Date.now() + lifespan : null,
208
+ };
209
+ };
210
+ /**
211
+ * Return a secure sha512 hash of an accessKey
212
+ */
213
+ const hash = (accessKey) => {
214
+ const { hasValidTokenSalt } = (0, utils_2.getService)('transfer').utils;
215
+ if (!hasValidTokenSalt()) {
216
+ throw new TypeError('Required token salt is not defined');
217
+ }
218
+ return crypto_1.default
219
+ .createHmac('sha512', strapi.config.get('admin.transfer.token.salt'))
220
+ .update(accessKey)
221
+ .digest('hex');
222
+ };
223
+ exports.hash = hash;
224
+ const checkSaltIsDefined = () => {
225
+ const { hasValidTokenSalt, isDisabledFromEnv } = (0, utils_2.getService)('transfer').utils;
226
+ // Ignore the check if the data-transfer feature is manually disabled
227
+ if (isDisabledFromEnv()) {
228
+ return;
229
+ }
230
+ if (!hasValidTokenSalt()) {
231
+ process.emitWarning(`Missing transfer.token.salt: Data transfer features have been disabled.
232
+ Please set transfer.token.salt in config/admin.js (ex: you can generate one using Node with \`crypto.randomBytes(16).toString('base64')\`)
233
+ For security reasons, prefer storing the secret in an environment variable and read it in config/admin.js. See https://docs.strapi.io/developer-docs/latest/setup-deployment-guides/configurations/optional/environment.html#configuration-using-environment-variables.`);
234
+ }
235
+ };
236
+ exports.checkSaltIsDefined = checkSaltIsDefined;
237
+ /**
238
+ * Flatten a token's database permissions objects to an array of strings
239
+ */
240
+ const flattenTokenPermissions = (token) => {
241
+ if (!token)
242
+ return token;
243
+ return {
244
+ ...token,
245
+ permissions: (0, fp_1.isArray)(token.permissions)
246
+ ? (0, fp_1.map)('action', token.permissions)
247
+ : token.permissions,
248
+ };
249
+ };
250
+ /**
251
+ * Assert that a token's permissions are valid
252
+ */
253
+ const assertTokenPermissionsValidity = (attributes) => {
254
+ const permissionService = strapi.admin.services.transfer.permission;
255
+ const validPermissions = permissionService.providers.action.keys();
256
+ const invalidPermissions = (0, fp_1.difference)(attributes.permissions, validPermissions);
257
+ if (!(0, fp_1.isEmpty)(invalidPermissions)) {
258
+ throw new ValidationError(`Unknown permissions provided: ${invalidPermissions.join(', ')}`);
259
+ }
260
+ };
261
+ /**
262
+ * Assert that a token's lifespan is valid
263
+ */
264
+ const assertValidLifespan = ({ lifespan }) => {
265
+ if ((0, fp_1.isNil)(lifespan)) {
266
+ return;
267
+ }
268
+ if (!Object.values(constants_1.default.TRANSFER_TOKEN_LIFESPANS).includes(lifespan)) {
269
+ throw new ValidationError(`lifespan must be one of the following values:
270
+ ${Object.values(constants_1.default.TRANSFER_TOKEN_LIFESPANS).join(', ')}`);
271
+ }
272
+ };
273
+ //# sourceMappingURL=token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../../../../server/src/services/transfer/token.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAC5B,oDAA4B;AAC5B,kCAAiF;AACjF,yCAAuC;AACvC,6DAAqC;AACrC,uCAAyC;AAEzC,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,cAAM,CAAC;AAElD,MAAM,kBAAkB,GAAG,uBAAuB,CAAC;AACnD,MAAM,6BAA6B,GAAG,kCAAkC,CAAC;AAqBzE,MAAM,aAAa,GAAG;IACpB,IAAI;IACJ,MAAM;IACN,aAAa;IACb,YAAY;IACZ,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;CACH,CAAC;AAEX,MAAM,eAAe,GAAG,CAAC,aAAa,CAAU,CAAC;AAEjD;;GAEG;AACH,MAAM,IAAI,GAAG,KAAK,IAAuC,EAAE;IACzD,MAAM,MAAM,GAAoB,MAAM,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC;QAC9E,MAAM,EAAE,aAAa;QACrB,QAAQ,EAAE,eAAe;QACzB,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;KACzB,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC;IAC3B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/D,CAAC,CAAC;AAmVA,oBAAI;AAjVN;;GAEG;AACH,MAAM,uBAAuB,GAAG,GAAW,EAAE,CAAC,gBAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAEtF;;GAEG;AACH,MAAM,iBAAiB,GAAG,CAAC,SAAiB,EAAU,EAAE;IACtD,IAAA,gBAAM,EAAC,OAAO,SAAS,KAAK,QAAQ,EAAE,iCAAiC,CAAC,CAAC;IACzE,IAAA,gBAAM,EAAC,SAAS,CAAC,MAAM,IAAI,EAAE,EAAE,iDAAiD,CAAC,CAAC;IAElF,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEK,MAAM,YAAY,GAAG,CAC1B,UAAa,EAC4B,EAAE;IAC3C,OAAO,WAAW,IAAI,UAAU,CAAC;AACnC,CAAC,CAAC;AAJW,QAAA,YAAY,gBAIvB;AAEF;;GAEG;AACH,MAAM,MAAM,GAAG,KAAK,EAAE,UAMrB,EAA0B,EAAE;IAC3B,MAAM,SAAS,GAAG,IAAA,oBAAY,EAAC,UAAU,CAAC;QACxC,CAAC,CAAC,iBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC;QACzC,CAAC,CAAC,uBAAuB,EAAE,CAAC;IAE9B,2FAA2F;IAC3F,OAAO,UAAU,CAAC,SAAS,CAAC;IAE5B,8BAA8B,CAAC,UAAU,CAAC,CAAC;IAC3C,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAEhC,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QACrD,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC;YAClE,MAAM,EAAE,aAAa;YACrB,QAAQ,EAAE,eAAe;YACzB,IAAI,EAAE;gBACJ,GAAG,IAAA,SAAI,EAAC,aAAa,EAAE,UAAU,CAAC;gBAClC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC;gBAC1B,GAAG,mBAAmB,CAAC,UAAU,CAAC,QAAQ,CAAC;aAC5C;SACF,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,GAAG,CACf,IAAA,SAAI,EAAC,UAAU,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAC1C,MAAM;aACH,KAAK,CAAC,6BAA6B,CAAC;aACpC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,CAAC,CACtD,CACF,CAAC;QAEF,MAAM,kBAAkB,GAA8B,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CACnF,kBAAkB,EAClB,aAAa,EACb,aAAa,CACd,CAAC;QAEF,IAAI,kBAAkB,EAAE;YACtB,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,WAAW,EAAE,IAAA,QAAG,EAAC,QAAQ,EAAE,kBAAkB,CAAC,EAAE,CAAC,CAAC;SAClF;QAED,OAAO,aAAa,CAAC;IACvB,CAAC,CAAC,CAAkB,CAAC;IAErB,OAAO,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,CAAC;AAClC,CAAC,CAAC;AAsQA,wBAAM;AApQR;;GAEG;AACH,MAAM,MAAM,GAAG,KAAK,EAClB,EAAmB,EACnB,UAMC,EACgC,EAAE;IACnC,qCAAqC;IACrC,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAExF,IAAI,CAAC,aAAa,EAAE;QAClB,MAAM,IAAI,aAAa,CAAC,iBAAiB,CAAC,CAAC;KAC5C;IAED,8BAA8B,CAAC,UAAU,CAAC,CAAC;IAC3C,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAEhC,OAAO,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QACtC,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC;YACjE,MAAM,EAAE,aAAa;YACrB,KAAK,EAAE,EAAE,EAAE,EAAE;YACb,IAAI,EAAE;gBACJ,GAAG,IAAA,SAAI,EAAC,aAAa,EAAE,UAAU,CAAC;aACnC;SACF,CAAC,CAAC;QAEH,IAAI,UAAU,CAAC,WAAW,EAAE;YAC1B,MAAM,wBAAwB,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAC9D,kBAAkB,EAClB,YAAY,EACZ,aAAa,CACd,CAAC;YAEF,MAAM,kBAAkB,GAAG,IAAA,QAAG,EAAC,QAAQ,EAAE,wBAAwB,IAAI,EAAE,CAAC,CAAC;YACzE,MAAM,cAAc,GAAG,IAAA,SAAI,EAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAEpD,MAAM,eAAe,GAAG,IAAA,eAAU,EAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;YACvE,MAAM,YAAY,GAAG,IAAA,eAAU,EAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YAEpE,gCAAgC;YAChC,oDAAoD;YACpD,MAAM,OAAO,CAAC,GAAG,CACf,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAC7B,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,MAAM,CAAC;gBACjD,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;aAC7B,CAAC,CACH,CACF,CAAC;YAEF,gCAAgC;YAChC,6CAA6C;YAC7C,MAAM,OAAO,CAAC,GAAG,CACf,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAC1B,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,MAAM,CAAC;gBACjD,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;aAC5B,CAAC,CACH,CACF,CAAC;SACH;QAED,uBAAuB;QACvB,MAAM,iBAAiB,GAAG,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CACxD,kBAAkB,EAClB,YAAY,EACZ,aAAa,CACd,CAA8B,CAAC;QAEhC,OAAO;YACL,GAAG,YAAY;YACf,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;SACpF,CAAC;IACJ,CAAC,CAAoC,CAAC;AACxC,CAAC,CAAC;AA4LA,wBAAM;AA1LR;;GAEG;AACH,MAAM,MAAM,GAAG,KAAK,EAAE,EAAmB,EAAmC,EAAE;IAC5E,OAAO,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CACtC,MAAM;SACH,KAAK,CAAC,kBAAkB,CAAC;SACzB,MAAM,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAC5C,CAAC;AACvC,CAAC,CAAC;AAkLA,wBAAM;AAhLR;;GAEG;AACH,MAAM,KAAK,GAAG,KAAK,EACjB,cAAc,EAMb,EACuC,EAAE;IAC1C,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;QACzC,OAAO,IAAI,CAAC;KACb;IAED,MAAM,KAAK,GAAG,MAAM,MAAM;SACvB,KAAK,CAAC,kBAAkB,CAAC;SACzB,OAAO,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;IAErF,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC,CAAC;AAsJA,sBAAK;AApJP;;GAEG;AACH,MAAM,OAAO,GAAG,KAAK,EAAE,EAAmB,EAA0C,EAAE;IACpF,OAAO,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACvB,CAAC,CAAC;AAgJA,0BAAO;AA9IT;;GAEG;AACH,MAAM,SAAS,GAAG,KAAK,EAAE,IAAY,EAA0C,EAAE;IAC/E,OAAO,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AACzB,CAAC,CAAC;AA0IA,8BAAS;AAxIX;;GAEG;AACH,MAAM,MAAM,GAAG,KAAK,EAClB,cAAc,EAMb,EACiB,EAAE;IACpB,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,CAAC;IAE/C,OAAO,CAAC,CAAC,aAAa,CAAC;AACzB,CAAC,CAAC;AAsHA,wBAAM;AApHR,MAAM,UAAU,GAAG,KAAK,EAAE,EAAmB,EAA0B,EAAE;IACvE,MAAM,SAAS,GAAG,gBAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,CAAC,MAAM,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAC5D,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC;QACtC,MAAM,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC;QAC3B,KAAK,EAAE,EAAE,EAAE,EAAE;QACb,IAAI,EAAE;YACJ,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC;SAC3B;KACF,CAAC,CACH,CAA2B,CAAC;IAE7B,IAAI,CAAC,aAAa,EAAE;QAClB,MAAM,IAAI,aAAa,CAAC,sCAAsC,CAAC,CAAC;KACjE;IAED,OAAO;QACL,GAAG,aAAa;QAChB,SAAS;KACV,CAAC;AACJ,CAAC,CAAC;AAsGA,gCAAU;AApGZ,MAAM,mBAAmB,GAAG,CAC1B,QAAgB,EACuC,EAAE;IACzD,yCAAyC;IACzC,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC;IAChE,IAAI,CAAC,aAAa,IAAI,CAAC,IAAA,UAAK,EAAC,QAAQ,CAAC,EAAE;QACtC,MAAM,IAAI,eAAe,CAAC,4CAA4C,CAAC,CAAC;KACzE;IAED,OAAO;QACL,QAAQ,EAAE,QAAQ,IAAI,IAAI;QAC1B,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI;KACnD,CAAC;AACJ,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,IAAI,GAAG,CAAC,SAAiB,EAAU,EAAE;IACzC,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAA,kBAAU,EAAC,UAAU,CAAC,CAAC,KAAK,CAAC;IAE3D,IAAI,CAAC,iBAAiB,EAAE,EAAE;QACxB,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAC;KAC3D;IAED,OAAO,gBAAM;SACV,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;SACpE,MAAM,CAAC,SAAS,CAAC;SACjB,MAAM,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC,CAAC;AAwEA,oBAAI;AAtEN,MAAM,kBAAkB,GAAG,GAAG,EAAE;IAC9B,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,GAAG,IAAA,kBAAU,EAAC,UAAU,CAAC,CAAC,KAAK,CAAC;IAE9E,qEAAqE;IACrE,IAAI,iBAAiB,EAAE,EAAE;QACvB,OAAO;KACR;IAED,IAAI,CAAC,iBAAiB,EAAE,EAAE;QACxB,OAAO,CAAC,WAAW,CACjB;;wQAEkQ,CACnQ,CAAC;KACH;AACH,CAAC,CAAC;AAwDA,gDAAkB;AAtDpB;;GAEG;AACH,MAAM,uBAAuB,GAAG,CAAC,KAAoB,EAAiB,EAAE;IACtE,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAEzB,OAAO;QACL,GAAG,KAAK;QACR,WAAW,EAAE,IAAA,YAAO,EAAC,KAAK,CAAC,WAAW,CAAC;YACrC,CAAC,CAAC,IAAA,QAAG,EAAC,QAAQ,EAAE,KAAK,CAAC,WAAwC,CAAC;YAC/D,CAAC,CAAC,KAAK,CAAC,WAAW;KACtB,CAAC;AACJ,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,8BAA8B,GAAG,CAAC,UAAqC,EAAE,EAAE;IAC/E,MAAM,iBAAiB,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;IACpE,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACnE,MAAM,kBAAkB,GAAG,IAAA,eAAU,EAAC,UAAU,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IAEhF,IAAI,CAAC,IAAA,YAAO,EAAC,kBAAkB,CAAC,EAAE;QAChC,MAAM,IAAI,eAAe,CAAC,iCAAiC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAC7F;AACH,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,mBAAmB,GAAG,CAAC,EAAE,QAAQ,EAA2C,EAAE,EAAE;IACpF,IAAI,IAAA,UAAK,EAAC,QAAQ,CAAC,EAAE;QACnB,OAAO;KACR;IAED,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAS,CAAC,wBAAwB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;QACzE,MAAM,IAAI,eAAe,CACvB;QACE,MAAM,CAAC,MAAM,CAAC,mBAAS,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACjE,CAAC;KACH;AACH,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Returns whether the data transfer features have been disabled from the env configuration
3
+ */
4
+ declare const isDisabledFromEnv: () => boolean;
5
+ /**
6
+ * A valid transfer token salt must be a non-empty string defined in the Strapi config
7
+ */
8
+ declare const hasValidTokenSalt: () => boolean;
9
+ /**
10
+ * Checks whether data transfer features are enabled
11
+ */
12
+ declare const isDataTransferEnabled: () => boolean;
13
+ export { isDataTransferEnabled, isDisabledFromEnv, hasValidTokenSalt };
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hasValidTokenSalt = exports.isDisabledFromEnv = exports.isDataTransferEnabled = void 0;
4
+ const utils_1 = require("@strapi/utils");
5
+ const utils_2 = require("../../utils");
6
+ /**
7
+ * Returns whether the data transfer features have been disabled from the env configuration
8
+ */
9
+ const isDisabledFromEnv = () => {
10
+ return utils_1.env.bool('STRAPI_DISABLE_REMOTE_DATA_TRANSFER', false);
11
+ };
12
+ exports.isDisabledFromEnv = isDisabledFromEnv;
13
+ /**
14
+ * A valid transfer token salt must be a non-empty string defined in the Strapi config
15
+ */
16
+ const hasValidTokenSalt = () => {
17
+ const salt = strapi.config.get('admin.transfer.token.salt', null);
18
+ return typeof salt === 'string' && salt.length > 0;
19
+ };
20
+ exports.hasValidTokenSalt = hasValidTokenSalt;
21
+ /**
22
+ * Checks whether data transfer features are enabled
23
+ */
24
+ const isDataTransferEnabled = () => {
25
+ const { utils } = (0, utils_2.getService)('transfer');
26
+ return !utils.isDisabledFromEnv() && utils.hasValidTokenSalt();
27
+ };
28
+ exports.isDataTransferEnabled = isDataTransferEnabled;
29
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../server/src/services/transfer/utils.ts"],"names":[],"mappings":";;;AAAA,yCAAoC;AACpC,uCAAyC;AAEzC;;GAEG;AACH,MAAM,iBAAiB,GAAG,GAAY,EAAE;IACtC,OAAO,WAAG,CAAC,IAAI,CAAC,qCAAqC,EAAE,KAAK,CAAY,CAAC;AAC3E,CAAC,CAAC;AAoB8B,8CAAiB;AAlBjD;;GAEG;AACH,MAAM,iBAAiB,GAAG,GAAY,EAAE;IACtC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,2BAA2B,EAAE,IAAI,CAAkB,CAAC;IAEnF,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACrD,CAAC,CAAC;AAWiD,8CAAiB;AATpE;;GAEG;AACH,MAAM,qBAAqB,GAAG,GAAY,EAAE;IAC1C,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,kBAAU,EAAC,UAAU,CAAC,CAAC;IAEzC,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;AACjE,CAAC,CAAC;AAEO,sDAAqB"}