@strapi/plugin-users-permissions 0.0.0-experimental.6340da17068c3bed7fb006e7bcc554c71129e282 → 0.0.0-experimental.63624e21eb5b0713345a0cf2f68f1c40eab427bc

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 (371) hide show
  1. package/.eslintrc.cjs +2 -0
  2. package/admin/src/pages/EmailTemplates/components/EmailForm.jsx +3 -1
  3. package/admin/src/pages/Roles/pages/EditPage.jsx +1 -1
  4. package/admin/src/pages/Roles/pages/ListPage/index.jsx +1 -1
  5. package/admin/src/translations/en.json +1 -0
  6. package/admin/src/translations/es.json +1 -1
  7. package/admin/src/translations/ko.json +2 -1
  8. package/admin/src/translations/sv.json +1 -1
  9. package/admin/src/translations/uk.json +1 -1
  10. package/dist/admin/pages/EmailTemplates/components/EmailForm.js +2 -1
  11. package/dist/admin/pages/EmailTemplates/components/EmailForm.js.map +1 -1
  12. package/dist/admin/pages/EmailTemplates/components/EmailForm.mjs +2 -1
  13. package/dist/admin/pages/EmailTemplates/components/EmailForm.mjs.map +1 -1
  14. package/dist/admin/pages/Roles/pages/EditPage.js +1 -1
  15. package/dist/admin/pages/Roles/pages/EditPage.js.map +1 -1
  16. package/dist/admin/pages/Roles/pages/EditPage.mjs +1 -1
  17. package/dist/admin/pages/Roles/pages/EditPage.mjs.map +1 -1
  18. package/dist/admin/pages/Roles/pages/ListPage/index.js +1 -1
  19. package/dist/admin/pages/Roles/pages/ListPage/index.js.map +1 -1
  20. package/dist/admin/pages/Roles/pages/ListPage/index.mjs +1 -1
  21. package/dist/admin/pages/Roles/pages/ListPage/index.mjs.map +1 -1
  22. package/dist/admin/translations/en.json.js +1 -0
  23. package/dist/admin/translations/en.json.js.map +1 -1
  24. package/dist/admin/translations/en.json.mjs +1 -0
  25. package/dist/admin/translations/en.json.mjs.map +1 -1
  26. package/dist/admin/translations/es.json.js +1 -1
  27. package/dist/admin/translations/es.json.mjs +1 -1
  28. package/dist/admin/translations/ko.json.js +2 -1
  29. package/dist/admin/translations/ko.json.js.map +1 -1
  30. package/dist/admin/translations/ko.json.mjs +2 -1
  31. package/dist/admin/translations/ko.json.mjs.map +1 -1
  32. package/dist/admin/translations/sv.json.js +1 -1
  33. package/dist/admin/translations/sv.json.mjs +1 -1
  34. package/dist/admin/translations/uk.json.js +1 -1
  35. package/dist/admin/translations/uk.json.mjs +1 -1
  36. package/dist/server/_virtual/_node_crypto.js +10 -0
  37. package/dist/server/_virtual/_node_crypto.js.map +1 -0
  38. package/dist/server/_virtual/_node_crypto.mjs +7 -0
  39. package/dist/server/_virtual/_node_crypto.mjs.map +1 -0
  40. package/dist/server/_virtual/_node_url.js +10 -0
  41. package/dist/server/_virtual/_node_url.js.map +1 -0
  42. package/dist/server/_virtual/_node_url.mjs +7 -0
  43. package/dist/server/_virtual/_node_url.mjs.map +1 -0
  44. package/dist/server/bootstrap/index.js.map +1 -1
  45. package/dist/server/bootstrap/index.mjs.map +1 -1
  46. package/dist/server/bootstrap/users-permissions-actions.js.map +1 -1
  47. package/dist/server/bootstrap/users-permissions-actions.mjs.map +1 -1
  48. package/dist/server/config.js.map +1 -1
  49. package/dist/server/config.mjs.map +1 -1
  50. package/dist/server/content-types/index.js.map +1 -1
  51. package/dist/server/content-types/index.mjs.map +1 -1
  52. package/dist/server/content-types/permission/index.js.map +1 -1
  53. package/dist/server/content-types/permission/index.mjs.map +1 -1
  54. package/dist/server/content-types/role/index.js.map +1 -1
  55. package/dist/server/content-types/role/index.mjs.map +1 -1
  56. package/dist/server/content-types/user/index.js.map +1 -1
  57. package/dist/server/content-types/user/index.mjs.map +1 -1
  58. package/dist/server/content-types/user/schema-config.js.map +1 -1
  59. package/dist/server/content-types/user/schema-config.mjs.map +1 -1
  60. package/dist/server/controllers/auth.js +38 -30
  61. package/dist/server/controllers/auth.js.map +1 -1
  62. package/dist/server/controllers/auth.mjs +38 -28
  63. package/dist/server/controllers/auth.mjs.map +1 -1
  64. package/dist/server/controllers/content-manager-user.js.map +1 -1
  65. package/dist/server/controllers/content-manager-user.mjs.map +1 -1
  66. package/dist/server/controllers/index.js.map +1 -1
  67. package/dist/server/controllers/index.mjs.map +1 -1
  68. package/dist/server/controllers/permissions.js.map +1 -1
  69. package/dist/server/controllers/permissions.mjs.map +1 -1
  70. package/dist/server/controllers/role.js.map +1 -1
  71. package/dist/server/controllers/role.mjs.map +1 -1
  72. package/dist/server/controllers/settings.js.map +1 -1
  73. package/dist/server/controllers/settings.mjs.map +1 -1
  74. package/dist/server/controllers/user.js.map +1 -1
  75. package/dist/server/controllers/user.mjs.map +1 -1
  76. package/dist/server/controllers/validation/auth.js +6 -6
  77. package/dist/server/controllers/validation/auth.js.map +1 -1
  78. package/dist/server/controllers/validation/auth.mjs +6 -6
  79. package/dist/server/controllers/validation/auth.mjs.map +1 -1
  80. package/dist/server/controllers/validation/email-template.js +1 -4
  81. package/dist/server/controllers/validation/email-template.js.map +1 -1
  82. package/dist/server/controllers/validation/email-template.mjs +1 -3
  83. package/dist/server/controllers/validation/email-template.mjs.map +1 -1
  84. package/dist/server/controllers/validation/user.js.map +1 -1
  85. package/dist/server/controllers/validation/user.mjs.map +1 -1
  86. package/dist/server/graphql/index.js.map +1 -1
  87. package/dist/server/graphql/index.mjs.map +1 -1
  88. package/dist/server/graphql/mutations/auth/change-password.js +7 -4
  89. package/dist/server/graphql/mutations/auth/change-password.js.map +1 -1
  90. package/dist/server/graphql/mutations/auth/change-password.mjs +7 -4
  91. package/dist/server/graphql/mutations/auth/change-password.mjs.map +1 -1
  92. package/dist/server/graphql/mutations/auth/email-confirmation.js +1 -1
  93. package/dist/server/graphql/mutations/auth/email-confirmation.js.map +1 -1
  94. package/dist/server/graphql/mutations/auth/email-confirmation.mjs +1 -1
  95. package/dist/server/graphql/mutations/auth/email-confirmation.mjs.map +1 -1
  96. package/dist/server/graphql/mutations/auth/forgot-password.js +7 -4
  97. package/dist/server/graphql/mutations/auth/forgot-password.js.map +1 -1
  98. package/dist/server/graphql/mutations/auth/forgot-password.mjs +7 -4
  99. package/dist/server/graphql/mutations/auth/forgot-password.mjs.map +1 -1
  100. package/dist/server/graphql/mutations/auth/login.js +10 -7
  101. package/dist/server/graphql/mutations/auth/login.js.map +1 -1
  102. package/dist/server/graphql/mutations/auth/login.mjs +10 -7
  103. package/dist/server/graphql/mutations/auth/login.mjs.map +1 -1
  104. package/dist/server/graphql/mutations/auth/rate-limit.js +63 -0
  105. package/dist/server/graphql/mutations/auth/rate-limit.js.map +1 -0
  106. package/dist/server/graphql/mutations/auth/rate-limit.mjs +61 -0
  107. package/dist/server/graphql/mutations/auth/rate-limit.mjs.map +1 -0
  108. package/dist/server/graphql/mutations/auth/register.js +7 -4
  109. package/dist/server/graphql/mutations/auth/register.js.map +1 -1
  110. package/dist/server/graphql/mutations/auth/register.mjs +7 -4
  111. package/dist/server/graphql/mutations/auth/register.mjs.map +1 -1
  112. package/dist/server/graphql/mutations/auth/reset-password.js +7 -4
  113. package/dist/server/graphql/mutations/auth/reset-password.js.map +1 -1
  114. package/dist/server/graphql/mutations/auth/reset-password.mjs +7 -4
  115. package/dist/server/graphql/mutations/auth/reset-password.mjs.map +1 -1
  116. package/dist/server/graphql/mutations/crud/role/create-role.js +1 -1
  117. package/dist/server/graphql/mutations/crud/role/create-role.js.map +1 -1
  118. package/dist/server/graphql/mutations/crud/role/create-role.mjs +1 -1
  119. package/dist/server/graphql/mutations/crud/role/create-role.mjs.map +1 -1
  120. package/dist/server/graphql/mutations/crud/role/delete-role.js.map +1 -1
  121. package/dist/server/graphql/mutations/crud/role/delete-role.mjs.map +1 -1
  122. package/dist/server/graphql/mutations/crud/role/update-role.js.map +1 -1
  123. package/dist/server/graphql/mutations/crud/role/update-role.mjs.map +1 -1
  124. package/dist/server/graphql/mutations/crud/user/create-user.js +1 -1
  125. package/dist/server/graphql/mutations/crud/user/create-user.js.map +1 -1
  126. package/dist/server/graphql/mutations/crud/user/create-user.mjs +1 -1
  127. package/dist/server/graphql/mutations/crud/user/create-user.mjs.map +1 -1
  128. package/dist/server/graphql/mutations/crud/user/delete-user.js.map +1 -1
  129. package/dist/server/graphql/mutations/crud/user/delete-user.mjs.map +1 -1
  130. package/dist/server/graphql/mutations/crud/user/update-user.js +1 -1
  131. package/dist/server/graphql/mutations/crud/user/update-user.js.map +1 -1
  132. package/dist/server/graphql/mutations/crud/user/update-user.mjs +1 -1
  133. package/dist/server/graphql/mutations/crud/user/update-user.mjs.map +1 -1
  134. package/dist/server/graphql/mutations/index.js.map +1 -1
  135. package/dist/server/graphql/mutations/index.mjs.map +1 -1
  136. package/dist/server/graphql/queries/index.js.map +1 -1
  137. package/dist/server/graphql/queries/index.mjs.map +1 -1
  138. package/dist/server/graphql/queries/me.js.map +1 -1
  139. package/dist/server/graphql/queries/me.mjs.map +1 -1
  140. package/dist/server/graphql/resolvers-configs.js.map +1 -1
  141. package/dist/server/graphql/resolvers-configs.mjs.map +1 -1
  142. package/dist/server/graphql/types/create-role-payload.js.map +1 -1
  143. package/dist/server/graphql/types/create-role-payload.mjs.map +1 -1
  144. package/dist/server/graphql/types/delete-role-payload.js.map +1 -1
  145. package/dist/server/graphql/types/delete-role-payload.mjs.map +1 -1
  146. package/dist/server/graphql/types/index.js.map +1 -1
  147. package/dist/server/graphql/types/index.mjs.map +1 -1
  148. package/dist/server/graphql/types/login-input.js.map +1 -1
  149. package/dist/server/graphql/types/login-input.mjs.map +1 -1
  150. package/dist/server/graphql/types/login-payload.js.map +1 -1
  151. package/dist/server/graphql/types/login-payload.mjs.map +1 -1
  152. package/dist/server/graphql/types/me-role.js.map +1 -1
  153. package/dist/server/graphql/types/me-role.mjs.map +1 -1
  154. package/dist/server/graphql/types/me.js.map +1 -1
  155. package/dist/server/graphql/types/me.mjs.map +1 -1
  156. package/dist/server/graphql/types/password-payload.js.map +1 -1
  157. package/dist/server/graphql/types/password-payload.mjs.map +1 -1
  158. package/dist/server/graphql/types/register-input.js.map +1 -1
  159. package/dist/server/graphql/types/register-input.mjs.map +1 -1
  160. package/dist/server/graphql/types/update-role-payload.js.map +1 -1
  161. package/dist/server/graphql/types/update-role-payload.mjs.map +1 -1
  162. package/dist/server/graphql/types/user-input.js.map +1 -1
  163. package/dist/server/graphql/types/user-input.mjs.map +1 -1
  164. package/dist/server/graphql/utils.js +4 -4
  165. package/dist/server/graphql/utils.js.map +1 -1
  166. package/dist/server/graphql/utils.mjs +4 -4
  167. package/dist/server/graphql/utils.mjs.map +1 -1
  168. package/dist/server/index.js +2 -2
  169. package/dist/server/index.js.map +1 -1
  170. package/dist/server/index.mjs +3 -3
  171. package/dist/server/index.mjs.map +1 -1
  172. package/dist/server/index2.js +8 -8
  173. package/dist/server/index2.js.map +1 -1
  174. package/dist/server/index2.mjs +8 -8
  175. package/dist/server/index2.mjs.map +1 -1
  176. package/dist/server/middlewares/index.js.map +1 -1
  177. package/dist/server/middlewares/index.mjs.map +1 -1
  178. package/dist/server/middlewares/rateLimit.js +5 -5
  179. package/dist/server/middlewares/rateLimit.js.map +1 -1
  180. package/dist/server/middlewares/rateLimit.mjs +5 -5
  181. package/dist/server/middlewares/rateLimit.mjs.map +1 -1
  182. package/dist/server/register.js.map +1 -1
  183. package/dist/server/register.mjs.map +1 -1
  184. package/dist/server/routes/admin/index.js.map +1 -1
  185. package/dist/server/routes/admin/index.mjs.map +1 -1
  186. package/dist/server/routes/admin/permissions.js.map +1 -1
  187. package/dist/server/routes/admin/permissions.mjs.map +1 -1
  188. package/dist/server/routes/admin/role.js.map +1 -1
  189. package/dist/server/routes/admin/role.mjs.map +1 -1
  190. package/dist/server/routes/admin/settings.js.map +1 -1
  191. package/dist/server/routes/admin/settings.mjs.map +1 -1
  192. package/dist/server/routes/content-api/auth.js.map +1 -1
  193. package/dist/server/routes/content-api/auth.mjs.map +1 -1
  194. package/dist/server/routes/content-api/index.js.map +1 -1
  195. package/dist/server/routes/content-api/index.mjs.map +1 -1
  196. package/dist/server/routes/content-api/permissions.js.map +1 -1
  197. package/dist/server/routes/content-api/permissions.mjs.map +1 -1
  198. package/dist/server/routes/content-api/role.js.map +1 -1
  199. package/dist/server/routes/content-api/role.mjs.map +1 -1
  200. package/dist/server/routes/content-api/user.js.map +1 -1
  201. package/dist/server/routes/content-api/user.mjs.map +1 -1
  202. package/dist/server/routes/content-api/validation.js.map +1 -1
  203. package/dist/server/routes/content-api/validation.mjs.map +1 -1
  204. package/dist/server/routes/index.js.map +1 -1
  205. package/dist/server/routes/index.mjs.map +1 -1
  206. package/dist/server/services/constants.js.map +1 -1
  207. package/dist/server/services/constants.mjs.map +1 -1
  208. package/dist/server/services/index.js.map +1 -1
  209. package/dist/server/services/index.mjs.map +1 -1
  210. package/dist/server/services/jwt.js.map +1 -1
  211. package/dist/server/services/jwt.mjs.map +1 -1
  212. package/dist/server/services/permission.js.map +1 -1
  213. package/dist/server/services/permission.mjs.map +1 -1
  214. package/dist/server/services/providers-registry.js +188 -248
  215. package/dist/server/services/providers-registry.js.map +1 -1
  216. package/dist/server/services/providers-registry.mjs +188 -245
  217. package/dist/server/services/providers-registry.mjs.map +1 -1
  218. package/dist/server/services/providers.js +15 -11
  219. package/dist/server/services/providers.js.map +1 -1
  220. package/dist/server/services/providers.mjs +14 -10
  221. package/dist/server/services/providers.mjs.map +1 -1
  222. package/dist/server/services/role.js +2 -2
  223. package/dist/server/services/role.js.map +1 -1
  224. package/dist/server/services/role.mjs +2 -2
  225. package/dist/server/services/role.mjs.map +1 -1
  226. package/dist/server/services/user.js +14 -14
  227. package/dist/server/services/user.js.map +1 -1
  228. package/dist/server/services/user.mjs +13 -13
  229. package/dist/server/services/user.mjs.map +1 -1
  230. package/dist/server/services/users-permissions.js +17 -20
  231. package/dist/server/services/users-permissions.js.map +1 -1
  232. package/dist/server/services/users-permissions.mjs +16 -18
  233. package/dist/server/services/users-permissions.mjs.map +1 -1
  234. package/dist/server/strategies/users-permissions.js +9 -8
  235. package/dist/server/strategies/users-permissions.js.map +1 -1
  236. package/dist/server/strategies/users-permissions.mjs +9 -8
  237. package/dist/server/strategies/users-permissions.mjs.map +1 -1
  238. package/dist/server/utils/index.js.map +1 -1
  239. package/dist/server/utils/index.mjs.map +1 -1
  240. package/dist/server/utils/oauth-connect/index.js +241 -0
  241. package/dist/server/utils/oauth-connect/index.js.map +1 -0
  242. package/dist/server/utils/oauth-connect/index.mjs +235 -0
  243. package/dist/server/utils/oauth-connect/index.mjs.map +1 -0
  244. package/dist/server/utils/oauth-connect/oauth1.js +138 -0
  245. package/dist/server/utils/oauth-connect/oauth1.js.map +1 -0
  246. package/dist/server/utils/oauth-connect/oauth1.mjs +136 -0
  247. package/dist/server/utils/oauth-connect/oauth1.mjs.map +1 -0
  248. package/dist/server/utils/oauth-connect/oauth2.js +117 -0
  249. package/dist/server/utils/oauth-connect/oauth2.js.map +1 -0
  250. package/dist/server/utils/oauth-connect/oauth2.mjs +115 -0
  251. package/dist/server/utils/oauth-connect/oauth2.mjs.map +1 -0
  252. package/dist/server/utils/oauth-connect/providers.js +109 -0
  253. package/dist/server/utils/oauth-connect/providers.js.map +1 -0
  254. package/dist/server/utils/oauth-connect/providers.mjs +107 -0
  255. package/dist/server/utils/oauth-connect/providers.mjs.map +1 -0
  256. package/dist/server/utils/provider-http.js +52 -0
  257. package/dist/server/utils/provider-http.js.map +1 -0
  258. package/dist/server/utils/provider-http.mjs +50 -0
  259. package/dist/server/utils/provider-http.mjs.map +1 -0
  260. package/dist/server/utils/refresh-cookie-options.js.map +1 -1
  261. package/dist/server/utils/refresh-cookie-options.mjs.map +1 -1
  262. package/dist/server/utils/sanitize/index.js.map +1 -1
  263. package/dist/server/utils/sanitize/index.mjs.map +1 -1
  264. package/dist/server/utils/sanitize/sanitizers.js +1 -1
  265. package/dist/server/utils/sanitize/sanitizers.js.map +1 -1
  266. package/dist/server/utils/sanitize/sanitizers.mjs +1 -1
  267. package/dist/server/utils/sanitize/sanitizers.mjs.map +1 -1
  268. package/dist/server/utils/sanitize/visitors/index.js.map +1 -1
  269. package/dist/server/utils/sanitize/visitors/index.mjs.map +1 -1
  270. package/dist/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.js.map +1 -1
  271. package/dist/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.mjs.map +1 -1
  272. package/dist/server/utils/trim-grant-session-response.js +67 -0
  273. package/dist/server/utils/trim-grant-session-response.js.map +1 -0
  274. package/dist/server/utils/trim-grant-session-response.mjs +65 -0
  275. package/dist/server/utils/trim-grant-session-response.mjs.map +1 -0
  276. package/dist/server/utils/verify-jwt-with-jwks.js +60 -0
  277. package/dist/server/utils/verify-jwt-with-jwks.js.map +1 -0
  278. package/dist/server/utils/verify-jwt-with-jwks.mjs +54 -0
  279. package/dist/server/utils/verify-jwt-with-jwks.mjs.map +1 -0
  280. package/jsconfig.json +7 -0
  281. package/package.json +28 -18
  282. package/rollup.config.mjs +2 -2
  283. package/server/{controllers → src/controllers}/auth.js +36 -29
  284. package/server/{controllers → src/controllers}/validation/auth.js +6 -6
  285. package/server/{controllers → src/controllers}/validation/email-template.js +1 -2
  286. package/server/{graphql → src/graphql}/mutations/auth/change-password.js +6 -6
  287. package/server/{graphql → src/graphql}/mutations/auth/email-confirmation.js +1 -1
  288. package/server/{graphql → src/graphql}/mutations/auth/forgot-password.js +6 -6
  289. package/server/{graphql → src/graphql}/mutations/auth/login.js +11 -7
  290. package/server/src/graphql/mutations/auth/rate-limit.js +62 -0
  291. package/server/{graphql → src/graphql}/mutations/auth/register.js +6 -6
  292. package/server/{graphql → src/graphql}/mutations/auth/reset-password.js +6 -6
  293. package/server/{graphql → src/graphql}/mutations/crud/role/create-role.js +1 -1
  294. package/server/{graphql → src/graphql}/mutations/crud/user/create-user.js +1 -1
  295. package/server/{graphql → src/graphql}/mutations/crud/user/update-user.js +1 -1
  296. package/server/{graphql → src/graphql}/utils.js +3 -3
  297. package/server/{middlewares → src/middlewares}/rateLimit.js +4 -4
  298. package/server/src/services/providers-registry.js +487 -0
  299. package/server/{services → src/services}/providers.js +9 -7
  300. package/server/{services → src/services}/role.js +2 -2
  301. package/server/{services → src/services}/user.js +16 -6
  302. package/server/{services → src/services}/users-permissions.js +14 -16
  303. package/server/{strategies → src/strategies}/users-permissions.js +14 -10
  304. package/server/src/utils/oauth-connect/index.js +262 -0
  305. package/server/src/utils/oauth-connect/oauth1.js +169 -0
  306. package/server/src/utils/oauth-connect/oauth2.js +123 -0
  307. package/server/src/utils/oauth-connect/providers.js +100 -0
  308. package/server/src/utils/provider-http.js +49 -0
  309. package/server/{utils → src/utils}/sanitize/sanitizers.js +1 -1
  310. package/server/src/utils/trim-grant-session-response.js +70 -0
  311. package/server/src/utils/verify-jwt-with-jwks.js +43 -0
  312. package/types/strapi-server.d.ts +65 -0
  313. package/server/services/providers-registry.js +0 -567
  314. package/server/utils/index.d.ts +0 -23
  315. /package/server/{bootstrap → src/bootstrap}/index.js +0 -0
  316. /package/server/{bootstrap → src/bootstrap}/users-permissions-actions.js +0 -0
  317. /package/server/{config.js → src/config.js} +0 -0
  318. /package/server/{content-types → src/content-types}/index.js +0 -0
  319. /package/server/{content-types → src/content-types}/permission/index.js +0 -0
  320. /package/server/{content-types → src/content-types}/role/index.js +0 -0
  321. /package/server/{content-types → src/content-types}/user/index.js +0 -0
  322. /package/server/{content-types → src/content-types}/user/schema-config.js +0 -0
  323. /package/server/{controllers → src/controllers}/content-manager-user.js +0 -0
  324. /package/server/{controllers → src/controllers}/index.js +0 -0
  325. /package/server/{controllers → src/controllers}/permissions.js +0 -0
  326. /package/server/{controllers → src/controllers}/role.js +0 -0
  327. /package/server/{controllers → src/controllers}/settings.js +0 -0
  328. /package/server/{controllers → src/controllers}/user.js +0 -0
  329. /package/server/{controllers → src/controllers}/validation/user.js +0 -0
  330. /package/server/{graphql → src/graphql}/index.js +0 -0
  331. /package/server/{graphql → src/graphql}/mutations/crud/role/delete-role.js +0 -0
  332. /package/server/{graphql → src/graphql}/mutations/crud/role/update-role.js +0 -0
  333. /package/server/{graphql → src/graphql}/mutations/crud/user/delete-user.js +0 -0
  334. /package/server/{graphql → src/graphql}/mutations/index.js +0 -0
  335. /package/server/{graphql → src/graphql}/queries/index.js +0 -0
  336. /package/server/{graphql → src/graphql}/queries/me.js +0 -0
  337. /package/server/{graphql → src/graphql}/resolvers-configs.js +0 -0
  338. /package/server/{graphql → src/graphql}/types/create-role-payload.js +0 -0
  339. /package/server/{graphql → src/graphql}/types/delete-role-payload.js +0 -0
  340. /package/server/{graphql → src/graphql}/types/index.js +0 -0
  341. /package/server/{graphql → src/graphql}/types/login-input.js +0 -0
  342. /package/server/{graphql → src/graphql}/types/login-payload.js +0 -0
  343. /package/server/{graphql → src/graphql}/types/me-role.js +0 -0
  344. /package/server/{graphql → src/graphql}/types/me.js +0 -0
  345. /package/server/{graphql → src/graphql}/types/password-payload.js +0 -0
  346. /package/server/{graphql → src/graphql}/types/register-input.js +0 -0
  347. /package/server/{graphql → src/graphql}/types/update-role-payload.js +0 -0
  348. /package/server/{graphql → src/graphql}/types/user-input.js +0 -0
  349. /package/server/{index.js → src/index.js} +0 -0
  350. /package/server/{middlewares → src/middlewares}/index.js +0 -0
  351. /package/server/{register.js → src/register.js} +0 -0
  352. /package/server/{routes → src/routes}/admin/index.js +0 -0
  353. /package/server/{routes → src/routes}/admin/permissions.js +0 -0
  354. /package/server/{routes → src/routes}/admin/role.js +0 -0
  355. /package/server/{routes → src/routes}/admin/settings.js +0 -0
  356. /package/server/{routes → src/routes}/content-api/auth.js +0 -0
  357. /package/server/{routes → src/routes}/content-api/index.js +0 -0
  358. /package/server/{routes → src/routes}/content-api/permissions.js +0 -0
  359. /package/server/{routes → src/routes}/content-api/role.js +0 -0
  360. /package/server/{routes → src/routes}/content-api/user.js +0 -0
  361. /package/server/{routes → src/routes}/content-api/validation.js +0 -0
  362. /package/server/{routes → src/routes}/index.js +0 -0
  363. /package/server/{services → src/services}/constants.js +0 -0
  364. /package/server/{services → src/services}/index.js +0 -0
  365. /package/server/{services → src/services}/jwt.js +0 -0
  366. /package/server/{services → src/services}/permission.js +0 -0
  367. /package/server/{utils → src/utils}/index.js +0 -0
  368. /package/server/{utils → src/utils}/refresh-cookie-options.js +0 -0
  369. /package/server/{utils → src/utils}/sanitize/index.js +0 -0
  370. /package/server/{utils → src/utils}/sanitize/visitors/index.js +0 -0
  371. /package/server/{utils → src/utils}/sanitize/visitors/remove-user-relation-from-role-entities.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"login-payload.mjs","sources":["../../../../server/graphql/types/login-payload.js"],"sourcesContent":["'use strict';\n\nmodule.exports = ({ nexus }) => {\n return nexus.objectType({\n name: 'UsersPermissionsLoginPayload',\n\n definition(t) {\n t.string('jwt');\n t.nonNull.field('user', { type: 'UsersPermissionsMe' });\n },\n });\n};\n"],"names":["loginPayload","nexus","objectType","name","definition","t","string","nonNull","field","type"],"mappings":";;;;;IAEAA,YAAAA,GAAiB,CAAC,EAAEC,KAAK,EAAE,GAAA;QACzB,OAAOA,KAAAA,CAAMC,UAAU,CAAC;YACtBC,IAAAA,EAAM,8BAAA;AAENC,YAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;AACVA,gBAAAA,CAAAA,CAAEC,MAAM,CAAC,KAAA,CAAA;AACTD,gBAAAA,CAAAA,CAAEE,OAAO,CAACC,KAAK,CAAC,MAAA,EAAQ;oBAAEC,IAAAA,EAAM;AAAoB,iBAAA,CAAA;AAC1D,YAAA;AACA,SAAA,CAAA;AACA,IAAA,CAAA;;;;;;"}
1
+ {"version":3,"file":"login-payload.mjs","sources":["../../../../server/src/graphql/types/login-payload.js"],"sourcesContent":["'use strict';\n\nmodule.exports = ({ nexus }) => {\n return nexus.objectType({\n name: 'UsersPermissionsLoginPayload',\n\n definition(t) {\n t.string('jwt');\n t.nonNull.field('user', { type: 'UsersPermissionsMe' });\n },\n });\n};\n"],"names":["loginPayload","nexus","objectType","name","definition","t","string","nonNull","field","type"],"mappings":";;;;;IAEAA,YAAAA,GAAiB,CAAC,EAAEC,KAAK,EAAE,GAAA;QACzB,OAAOA,KAAAA,CAAMC,UAAU,CAAC;YACtBC,IAAAA,EAAM,8BAAA;AAENC,YAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;AACVA,gBAAAA,CAAAA,CAAEC,MAAM,CAAC,KAAA,CAAA;AACTD,gBAAAA,CAAAA,CAAEE,OAAO,CAACC,KAAK,CAAC,MAAA,EAAQ;oBAAEC,IAAAA,EAAM;;AACtC,YAAA;AACA,SAAA,CAAA;AACA,IAAA,CAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"me-role.js","sources":["../../../../server/graphql/types/me-role.js"],"sourcesContent":["'use strict';\n\nmodule.exports = ({ nexus }) => {\n return nexus.objectType({\n name: 'UsersPermissionsMeRole',\n\n definition(t) {\n t.nonNull.id('id');\n t.nonNull.string('name');\n t.string('description');\n t.string('type');\n },\n });\n};\n"],"names":["meRole","nexus","objectType","name","definition","t","nonNull","id","string"],"mappings":";;;;;;;IAEAA,MAAAA,GAAiB,CAAC,EAAEC,KAAK,EAAE,GAAA;QACzB,OAAOA,KAAAA,CAAMC,UAAU,CAAC;YACtBC,IAAAA,EAAM,wBAAA;AAENC,YAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;gBACVA,CAAAA,CAAEC,OAAO,CAACC,EAAE,CAAC,IAAA,CAAA;gBACbF,CAAAA,CAAEC,OAAO,CAACE,MAAM,CAAC,MAAA,CAAA;AACjBH,gBAAAA,CAAAA,CAAEG,MAAM,CAAC,aAAA,CAAA;AACTH,gBAAAA,CAAAA,CAAEG,MAAM,CAAC,MAAA,CAAA;AACf,YAAA;AACA,SAAA,CAAA;AACA,IAAA,CAAA;;;;;;"}
1
+ {"version":3,"file":"me-role.js","sources":["../../../../server/src/graphql/types/me-role.js"],"sourcesContent":["'use strict';\n\nmodule.exports = ({ nexus }) => {\n return nexus.objectType({\n name: 'UsersPermissionsMeRole',\n\n definition(t) {\n t.nonNull.id('id');\n t.nonNull.string('name');\n t.string('description');\n t.string('type');\n },\n });\n};\n"],"names":["meRole","nexus","objectType","name","definition","t","nonNull","id","string"],"mappings":";;;;;;;IAEAA,MAAAA,GAAiB,CAAC,EAAEC,KAAK,EAAE,GAAA;QACzB,OAAOA,KAAAA,CAAMC,UAAU,CAAC;YACtBC,IAAAA,EAAM,wBAAA;AAENC,YAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;gBACVA,CAAAA,CAAEC,OAAO,CAACC,EAAE,CAAC,IAAA,CAAA;gBACbF,CAAAA,CAAEC,OAAO,CAACE,MAAM,CAAC,MAAA,CAAA;AACjBH,gBAAAA,CAAAA,CAAEG,MAAM,CAAC,aAAA,CAAA;AACTH,gBAAAA,CAAAA,CAAEG,MAAM,CAAC,MAAA,CAAA;AACf,YAAA;AACA,SAAA,CAAA;AACA,IAAA,CAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"me-role.mjs","sources":["../../../../server/graphql/types/me-role.js"],"sourcesContent":["'use strict';\n\nmodule.exports = ({ nexus }) => {\n return nexus.objectType({\n name: 'UsersPermissionsMeRole',\n\n definition(t) {\n t.nonNull.id('id');\n t.nonNull.string('name');\n t.string('description');\n t.string('type');\n },\n });\n};\n"],"names":["meRole","nexus","objectType","name","definition","t","nonNull","id","string"],"mappings":";;;;;IAEAA,MAAAA,GAAiB,CAAC,EAAEC,KAAK,EAAE,GAAA;QACzB,OAAOA,KAAAA,CAAMC,UAAU,CAAC;YACtBC,IAAAA,EAAM,wBAAA;AAENC,YAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;gBACVA,CAAAA,CAAEC,OAAO,CAACC,EAAE,CAAC,IAAA,CAAA;gBACbF,CAAAA,CAAEC,OAAO,CAACE,MAAM,CAAC,MAAA,CAAA;AACjBH,gBAAAA,CAAAA,CAAEG,MAAM,CAAC,aAAA,CAAA;AACTH,gBAAAA,CAAAA,CAAEG,MAAM,CAAC,MAAA,CAAA;AACf,YAAA;AACA,SAAA,CAAA;AACA,IAAA,CAAA;;;;;;"}
1
+ {"version":3,"file":"me-role.mjs","sources":["../../../../server/src/graphql/types/me-role.js"],"sourcesContent":["'use strict';\n\nmodule.exports = ({ nexus }) => {\n return nexus.objectType({\n name: 'UsersPermissionsMeRole',\n\n definition(t) {\n t.nonNull.id('id');\n t.nonNull.string('name');\n t.string('description');\n t.string('type');\n },\n });\n};\n"],"names":["meRole","nexus","objectType","name","definition","t","nonNull","id","string"],"mappings":";;;;;IAEAA,MAAAA,GAAiB,CAAC,EAAEC,KAAK,EAAE,GAAA;QACzB,OAAOA,KAAAA,CAAMC,UAAU,CAAC;YACtBC,IAAAA,EAAM,wBAAA;AAENC,YAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;gBACVA,CAAAA,CAAEC,OAAO,CAACC,EAAE,CAAC,IAAA,CAAA;gBACbF,CAAAA,CAAEC,OAAO,CAACE,MAAM,CAAC,MAAA,CAAA;AACjBH,gBAAAA,CAAAA,CAAEG,MAAM,CAAC,aAAA,CAAA;AACTH,gBAAAA,CAAAA,CAAEG,MAAM,CAAC,MAAA,CAAA;AACf,YAAA;AACA,SAAA,CAAA;AACA,IAAA,CAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"me.js","sources":["../../../../server/graphql/types/me.js"],"sourcesContent":["'use strict';\n\nmodule.exports = ({ nexus }) => {\n return nexus.objectType({\n name: 'UsersPermissionsMe',\n\n definition(t) {\n t.nonNull.id('id');\n t.nonNull.id('documentId');\n t.nonNull.string('username');\n t.string('email');\n t.boolean('confirmed');\n t.boolean('blocked');\n t.field('role', { type: 'UsersPermissionsMeRole' });\n },\n });\n};\n"],"names":["me","nexus","objectType","name","definition","t","nonNull","id","string","boolean","field","type"],"mappings":";;;;;;;IAEAA,EAAAA,GAAiB,CAAC,EAAEC,KAAK,EAAE,GAAA;QACzB,OAAOA,KAAAA,CAAMC,UAAU,CAAC;YACtBC,IAAAA,EAAM,oBAAA;AAENC,YAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;gBACVA,CAAAA,CAAEC,OAAO,CAACC,EAAE,CAAC,IAAA,CAAA;gBACbF,CAAAA,CAAEC,OAAO,CAACC,EAAE,CAAC,YAAA,CAAA;gBACbF,CAAAA,CAAEC,OAAO,CAACE,MAAM,CAAC,UAAA,CAAA;AACjBH,gBAAAA,CAAAA,CAAEG,MAAM,CAAC,OAAA,CAAA;AACTH,gBAAAA,CAAAA,CAAEI,OAAO,CAAC,WAAA,CAAA;AACVJ,gBAAAA,CAAAA,CAAEI,OAAO,CAAC,SAAA,CAAA;gBACVJ,CAAAA,CAAEK,KAAK,CAAC,MAAA,EAAQ;oBAAEC,IAAAA,EAAM;AAAwB,iBAAA,CAAA;AACtD,YAAA;AACA,SAAA,CAAA;AACA,IAAA,CAAA;;;;;;"}
1
+ {"version":3,"file":"me.js","sources":["../../../../server/src/graphql/types/me.js"],"sourcesContent":["'use strict';\n\nmodule.exports = ({ nexus }) => {\n return nexus.objectType({\n name: 'UsersPermissionsMe',\n\n definition(t) {\n t.nonNull.id('id');\n t.nonNull.id('documentId');\n t.nonNull.string('username');\n t.string('email');\n t.boolean('confirmed');\n t.boolean('blocked');\n t.field('role', { type: 'UsersPermissionsMeRole' });\n },\n });\n};\n"],"names":["me","nexus","objectType","name","definition","t","nonNull","id","string","boolean","field","type"],"mappings":";;;;;;;IAEAA,EAAAA,GAAiB,CAAC,EAAEC,KAAK,EAAE,GAAA;QACzB,OAAOA,KAAAA,CAAMC,UAAU,CAAC;YACtBC,IAAAA,EAAM,oBAAA;AAENC,YAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;gBACVA,CAAAA,CAAEC,OAAO,CAACC,EAAE,CAAC,IAAA,CAAA;gBACbF,CAAAA,CAAEC,OAAO,CAACC,EAAE,CAAC,YAAA,CAAA;gBACbF,CAAAA,CAAEC,OAAO,CAACE,MAAM,CAAC,UAAA,CAAA;AACjBH,gBAAAA,CAAAA,CAAEG,MAAM,CAAC,OAAA,CAAA;AACTH,gBAAAA,CAAAA,CAAEI,OAAO,CAAC,WAAA,CAAA;AACVJ,gBAAAA,CAAAA,CAAEI,OAAO,CAAC,SAAA,CAAA;gBACVJ,CAAAA,CAAEK,KAAK,CAAC,MAAA,EAAQ;oBAAEC,IAAAA,EAAM;AAAwB,iBAAA,CAAA;AACtD,YAAA;AACA,SAAA,CAAA;AACA,IAAA,CAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"me.mjs","sources":["../../../../server/graphql/types/me.js"],"sourcesContent":["'use strict';\n\nmodule.exports = ({ nexus }) => {\n return nexus.objectType({\n name: 'UsersPermissionsMe',\n\n definition(t) {\n t.nonNull.id('id');\n t.nonNull.id('documentId');\n t.nonNull.string('username');\n t.string('email');\n t.boolean('confirmed');\n t.boolean('blocked');\n t.field('role', { type: 'UsersPermissionsMeRole' });\n },\n });\n};\n"],"names":["me","nexus","objectType","name","definition","t","nonNull","id","string","boolean","field","type"],"mappings":";;;;;IAEAA,EAAAA,GAAiB,CAAC,EAAEC,KAAK,EAAE,GAAA;QACzB,OAAOA,KAAAA,CAAMC,UAAU,CAAC;YACtBC,IAAAA,EAAM,oBAAA;AAENC,YAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;gBACVA,CAAAA,CAAEC,OAAO,CAACC,EAAE,CAAC,IAAA,CAAA;gBACbF,CAAAA,CAAEC,OAAO,CAACC,EAAE,CAAC,YAAA,CAAA;gBACbF,CAAAA,CAAEC,OAAO,CAACE,MAAM,CAAC,UAAA,CAAA;AACjBH,gBAAAA,CAAAA,CAAEG,MAAM,CAAC,OAAA,CAAA;AACTH,gBAAAA,CAAAA,CAAEI,OAAO,CAAC,WAAA,CAAA;AACVJ,gBAAAA,CAAAA,CAAEI,OAAO,CAAC,SAAA,CAAA;gBACVJ,CAAAA,CAAEK,KAAK,CAAC,MAAA,EAAQ;oBAAEC,IAAAA,EAAM;AAAwB,iBAAA,CAAA;AACtD,YAAA;AACA,SAAA,CAAA;AACA,IAAA,CAAA;;;;;;"}
1
+ {"version":3,"file":"me.mjs","sources":["../../../../server/src/graphql/types/me.js"],"sourcesContent":["'use strict';\n\nmodule.exports = ({ nexus }) => {\n return nexus.objectType({\n name: 'UsersPermissionsMe',\n\n definition(t) {\n t.nonNull.id('id');\n t.nonNull.id('documentId');\n t.nonNull.string('username');\n t.string('email');\n t.boolean('confirmed');\n t.boolean('blocked');\n t.field('role', { type: 'UsersPermissionsMeRole' });\n },\n });\n};\n"],"names":["me","nexus","objectType","name","definition","t","nonNull","id","string","boolean","field","type"],"mappings":";;;;;IAEAA,EAAAA,GAAiB,CAAC,EAAEC,KAAK,EAAE,GAAA;QACzB,OAAOA,KAAAA,CAAMC,UAAU,CAAC;YACtBC,IAAAA,EAAM,oBAAA;AAENC,YAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;gBACVA,CAAAA,CAAEC,OAAO,CAACC,EAAE,CAAC,IAAA,CAAA;gBACbF,CAAAA,CAAEC,OAAO,CAACC,EAAE,CAAC,YAAA,CAAA;gBACbF,CAAAA,CAAEC,OAAO,CAACE,MAAM,CAAC,UAAA,CAAA;AACjBH,gBAAAA,CAAAA,CAAEG,MAAM,CAAC,OAAA,CAAA;AACTH,gBAAAA,CAAAA,CAAEI,OAAO,CAAC,WAAA,CAAA;AACVJ,gBAAAA,CAAAA,CAAEI,OAAO,CAAC,SAAA,CAAA;gBACVJ,CAAAA,CAAEK,KAAK,CAAC,MAAA,EAAQ;oBAAEC,IAAAA,EAAM;AAAwB,iBAAA,CAAA;AACtD,YAAA;AACA,SAAA,CAAA;AACA,IAAA,CAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"password-payload.js","sources":["../../../../server/graphql/types/password-payload.js"],"sourcesContent":["'use strict';\n\nmodule.exports = ({ nexus }) => {\n return nexus.objectType({\n name: 'UsersPermissionsPasswordPayload',\n\n definition(t) {\n t.nonNull.boolean('ok');\n },\n });\n};\n"],"names":["passwordPayload","nexus","objectType","name","definition","t","nonNull","boolean"],"mappings":";;;;;;;IAEAA,eAAAA,GAAiB,CAAC,EAAEC,KAAK,EAAE,GAAA;QACzB,OAAOA,KAAAA,CAAMC,UAAU,CAAC;YACtBC,IAAAA,EAAM,iCAAA;AAENC,YAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;gBACVA,CAAAA,CAAEC,OAAO,CAACC,OAAO,CAAC,IAAA,CAAA;AACxB,YAAA;AACA,SAAA,CAAA;AACA,IAAA,CAAA;;;;;;"}
1
+ {"version":3,"file":"password-payload.js","sources":["../../../../server/src/graphql/types/password-payload.js"],"sourcesContent":["'use strict';\n\nmodule.exports = ({ nexus }) => {\n return nexus.objectType({\n name: 'UsersPermissionsPasswordPayload',\n\n definition(t) {\n t.nonNull.boolean('ok');\n },\n });\n};\n"],"names":["passwordPayload","nexus","objectType","name","definition","t","nonNull","boolean"],"mappings":";;;;;;;IAEAA,eAAAA,GAAiB,CAAC,EAAEC,KAAK,EAAE,GAAA;QACzB,OAAOA,KAAAA,CAAMC,UAAU,CAAC;YACtBC,IAAAA,EAAM,iCAAA;AAENC,YAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;gBACVA,CAAAA,CAAEC,OAAO,CAACC,OAAO,CAAC,IAAA,CAAA;AACxB,YAAA;AACA,SAAA,CAAA;AACA,IAAA,CAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"password-payload.mjs","sources":["../../../../server/graphql/types/password-payload.js"],"sourcesContent":["'use strict';\n\nmodule.exports = ({ nexus }) => {\n return nexus.objectType({\n name: 'UsersPermissionsPasswordPayload',\n\n definition(t) {\n t.nonNull.boolean('ok');\n },\n });\n};\n"],"names":["passwordPayload","nexus","objectType","name","definition","t","nonNull","boolean"],"mappings":";;;;;IAEAA,eAAAA,GAAiB,CAAC,EAAEC,KAAK,EAAE,GAAA;QACzB,OAAOA,KAAAA,CAAMC,UAAU,CAAC;YACtBC,IAAAA,EAAM,iCAAA;AAENC,YAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;gBACVA,CAAAA,CAAEC,OAAO,CAACC,OAAO,CAAC,IAAA,CAAA;AACxB,YAAA;AACA,SAAA,CAAA;AACA,IAAA,CAAA;;;;;;"}
1
+ {"version":3,"file":"password-payload.mjs","sources":["../../../../server/src/graphql/types/password-payload.js"],"sourcesContent":["'use strict';\n\nmodule.exports = ({ nexus }) => {\n return nexus.objectType({\n name: 'UsersPermissionsPasswordPayload',\n\n definition(t) {\n t.nonNull.boolean('ok');\n },\n });\n};\n"],"names":["passwordPayload","nexus","objectType","name","definition","t","nonNull","boolean"],"mappings":";;;;;IAEAA,eAAAA,GAAiB,CAAC,EAAEC,KAAK,EAAE,GAAA;QACzB,OAAOA,KAAAA,CAAMC,UAAU,CAAC;YACtBC,IAAAA,EAAM,iCAAA;AAENC,YAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;gBACVA,CAAAA,CAAEC,OAAO,CAACC,OAAO,CAAC,IAAA,CAAA;AACxB,YAAA;AACA,SAAA,CAAA;AACA,IAAA,CAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"register-input.js","sources":["../../../../server/graphql/types/register-input.js"],"sourcesContent":["'use strict';\n\nmodule.exports = ({ nexus }) => {\n return nexus.inputObjectType({\n name: 'UsersPermissionsRegisterInput',\n\n definition(t) {\n t.nonNull.string('username');\n t.nonNull.string('email');\n t.nonNull.string('password');\n },\n });\n};\n"],"names":["registerInput","nexus","inputObjectType","name","definition","t","nonNull","string"],"mappings":";;;;;;;IAEAA,aAAAA,GAAiB,CAAC,EAAEC,KAAK,EAAE,GAAA;QACzB,OAAOA,KAAAA,CAAMC,eAAe,CAAC;YAC3BC,IAAAA,EAAM,+BAAA;AAENC,YAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;gBACVA,CAAAA,CAAEC,OAAO,CAACC,MAAM,CAAC,UAAA,CAAA;gBACjBF,CAAAA,CAAEC,OAAO,CAACC,MAAM,CAAC,OAAA,CAAA;gBACjBF,CAAAA,CAAEC,OAAO,CAACC,MAAM,CAAC,UAAA,CAAA;AACvB,YAAA;AACA,SAAA,CAAA;AACA,IAAA,CAAA;;;;;;"}
1
+ {"version":3,"file":"register-input.js","sources":["../../../../server/src/graphql/types/register-input.js"],"sourcesContent":["'use strict';\n\nmodule.exports = ({ nexus }) => {\n return nexus.inputObjectType({\n name: 'UsersPermissionsRegisterInput',\n\n definition(t) {\n t.nonNull.string('username');\n t.nonNull.string('email');\n t.nonNull.string('password');\n },\n });\n};\n"],"names":["registerInput","nexus","inputObjectType","name","definition","t","nonNull","string"],"mappings":";;;;;;;IAEAA,aAAAA,GAAiB,CAAC,EAAEC,KAAK,EAAE,GAAA;QACzB,OAAOA,KAAAA,CAAMC,eAAe,CAAC;YAC3BC,IAAAA,EAAM,+BAAA;AAENC,YAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;gBACVA,CAAAA,CAAEC,OAAO,CAACC,MAAM,CAAC,UAAA,CAAA;gBACjBF,CAAAA,CAAEC,OAAO,CAACC,MAAM,CAAC,OAAA,CAAA;gBACjBF,CAAAA,CAAEC,OAAO,CAACC,MAAM,CAAC,UAAA,CAAA;AACvB,YAAA;AACA,SAAA,CAAA;AACA,IAAA,CAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"register-input.mjs","sources":["../../../../server/graphql/types/register-input.js"],"sourcesContent":["'use strict';\n\nmodule.exports = ({ nexus }) => {\n return nexus.inputObjectType({\n name: 'UsersPermissionsRegisterInput',\n\n definition(t) {\n t.nonNull.string('username');\n t.nonNull.string('email');\n t.nonNull.string('password');\n },\n });\n};\n"],"names":["registerInput","nexus","inputObjectType","name","definition","t","nonNull","string"],"mappings":";;;;;IAEAA,aAAAA,GAAiB,CAAC,EAAEC,KAAK,EAAE,GAAA;QACzB,OAAOA,KAAAA,CAAMC,eAAe,CAAC;YAC3BC,IAAAA,EAAM,+BAAA;AAENC,YAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;gBACVA,CAAAA,CAAEC,OAAO,CAACC,MAAM,CAAC,UAAA,CAAA;gBACjBF,CAAAA,CAAEC,OAAO,CAACC,MAAM,CAAC,OAAA,CAAA;gBACjBF,CAAAA,CAAEC,OAAO,CAACC,MAAM,CAAC,UAAA,CAAA;AACvB,YAAA;AACA,SAAA,CAAA;AACA,IAAA,CAAA;;;;;;"}
1
+ {"version":3,"file":"register-input.mjs","sources":["../../../../server/src/graphql/types/register-input.js"],"sourcesContent":["'use strict';\n\nmodule.exports = ({ nexus }) => {\n return nexus.inputObjectType({\n name: 'UsersPermissionsRegisterInput',\n\n definition(t) {\n t.nonNull.string('username');\n t.nonNull.string('email');\n t.nonNull.string('password');\n },\n });\n};\n"],"names":["registerInput","nexus","inputObjectType","name","definition","t","nonNull","string"],"mappings":";;;;;IAEAA,aAAAA,GAAiB,CAAC,EAAEC,KAAK,EAAE,GAAA;QACzB,OAAOA,KAAAA,CAAMC,eAAe,CAAC;YAC3BC,IAAAA,EAAM,+BAAA;AAENC,YAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;gBACVA,CAAAA,CAAEC,OAAO,CAACC,MAAM,CAAC,UAAA,CAAA;gBACjBF,CAAAA,CAAEC,OAAO,CAACC,MAAM,CAAC,OAAA,CAAA;gBACjBF,CAAAA,CAAEC,OAAO,CAACC,MAAM,CAAC,UAAA,CAAA;AACvB,YAAA;AACA,SAAA,CAAA;AACA,IAAA,CAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"update-role-payload.js","sources":["../../../../server/graphql/types/update-role-payload.js"],"sourcesContent":["'use strict';\n\nmodule.exports = ({ nexus }) => {\n return nexus.objectType({\n name: 'UsersPermissionsUpdateRolePayload',\n\n definition(t) {\n t.nonNull.boolean('ok');\n },\n });\n};\n"],"names":["updateRolePayload","nexus","objectType","name","definition","t","nonNull","boolean"],"mappings":";;;;;;;IAEAA,iBAAAA,GAAiB,CAAC,EAAEC,KAAK,EAAE,GAAA;QACzB,OAAOA,KAAAA,CAAMC,UAAU,CAAC;YACtBC,IAAAA,EAAM,mCAAA;AAENC,YAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;gBACVA,CAAAA,CAAEC,OAAO,CAACC,OAAO,CAAC,IAAA,CAAA;AACxB,YAAA;AACA,SAAA,CAAA;AACA,IAAA,CAAA;;;;;;"}
1
+ {"version":3,"file":"update-role-payload.js","sources":["../../../../server/src/graphql/types/update-role-payload.js"],"sourcesContent":["'use strict';\n\nmodule.exports = ({ nexus }) => {\n return nexus.objectType({\n name: 'UsersPermissionsUpdateRolePayload',\n\n definition(t) {\n t.nonNull.boolean('ok');\n },\n });\n};\n"],"names":["updateRolePayload","nexus","objectType","name","definition","t","nonNull","boolean"],"mappings":";;;;;;;IAEAA,iBAAAA,GAAiB,CAAC,EAAEC,KAAK,EAAE,GAAA;QACzB,OAAOA,KAAAA,CAAMC,UAAU,CAAC;YACtBC,IAAAA,EAAM,mCAAA;AAENC,YAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;gBACVA,CAAAA,CAAEC,OAAO,CAACC,OAAO,CAAC,IAAA,CAAA;AACxB,YAAA;AACA,SAAA,CAAA;AACA,IAAA,CAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"update-role-payload.mjs","sources":["../../../../server/graphql/types/update-role-payload.js"],"sourcesContent":["'use strict';\n\nmodule.exports = ({ nexus }) => {\n return nexus.objectType({\n name: 'UsersPermissionsUpdateRolePayload',\n\n definition(t) {\n t.nonNull.boolean('ok');\n },\n });\n};\n"],"names":["updateRolePayload","nexus","objectType","name","definition","t","nonNull","boolean"],"mappings":";;;;;IAEAA,iBAAAA,GAAiB,CAAC,EAAEC,KAAK,EAAE,GAAA;QACzB,OAAOA,KAAAA,CAAMC,UAAU,CAAC;YACtBC,IAAAA,EAAM,mCAAA;AAENC,YAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;gBACVA,CAAAA,CAAEC,OAAO,CAACC,OAAO,CAAC,IAAA,CAAA;AACxB,YAAA;AACA,SAAA,CAAA;AACA,IAAA,CAAA;;;;;;"}
1
+ {"version":3,"file":"update-role-payload.mjs","sources":["../../../../server/src/graphql/types/update-role-payload.js"],"sourcesContent":["'use strict';\n\nmodule.exports = ({ nexus }) => {\n return nexus.objectType({\n name: 'UsersPermissionsUpdateRolePayload',\n\n definition(t) {\n t.nonNull.boolean('ok');\n },\n });\n};\n"],"names":["updateRolePayload","nexus","objectType","name","definition","t","nonNull","boolean"],"mappings":";;;;;IAEAA,iBAAAA,GAAiB,CAAC,EAAEC,KAAK,EAAE,GAAA;QACzB,OAAOA,KAAAA,CAAMC,UAAU,CAAC;YACtBC,IAAAA,EAAM,mCAAA;AAENC,YAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;gBACVA,CAAAA,CAAEC,OAAO,CAACC,OAAO,CAAC,IAAA,CAAA;AACxB,YAAA;AACA,SAAA,CAAA;AACA,IAAA,CAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"user-input.js","sources":["../../../../server/graphql/types/user-input.js"],"sourcesContent":["'use strict';\n\nconst usersPermissionsUserUID = 'plugin::users-permissions.user';\n\nmodule.exports = ({ nexus, strapi }) => {\n const { getContentTypeInputName } = strapi.plugin('graphql').service('utils').naming;\n\n const userContentType = strapi.getModel(usersPermissionsUserUID);\n const userInputName = getContentTypeInputName(userContentType);\n\n return nexus.extendInputType({\n type: userInputName,\n\n definition(t) {\n // Manually add the private password field back to the data\n // input type as it is used for CRUD operations on users\n t.string('password');\n },\n });\n};\n"],"names":["usersPermissionsUserUID","userInput","nexus","strapi","getContentTypeInputName","plugin","service","naming","userContentType","getModel","userInputName","extendInputType","type","definition","t","string"],"mappings":";;;;;;;AAEA,IAAA,MAAMA,uBAAAA,GAA0B,gCAAA;AAEhCC,IAAAA,SAAAA,GAAiB,CAAC,EAAEC,KAAK,EAAEC,MAAM,EAAE,GAAA;QACjC,MAAM,EAAEC,uBAAuB,EAAE,GAAGD,MAAAA,CAAOE,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,OAAA,CAAA,CAASC,MAAM;QAEpF,MAAMC,eAAAA,GAAkBL,MAAAA,CAAOM,QAAQ,CAACT,uBAAAA,CAAAA;AACxC,QAAA,MAAMU,gBAAgBN,uBAAAA,CAAwBI,eAAAA,CAAAA;QAE9C,OAAON,KAAAA,CAAMS,eAAe,CAAC;YAC3BC,IAAAA,EAAMF,aAAAA;AAENG,YAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;;;AAGVA,gBAAAA,CAAAA,CAAEC,MAAM,CAAC,UAAA,CAAA;AACf,YAAA;AACA,SAAA,CAAA;AACA,IAAA,CAAA;;;;;;"}
1
+ {"version":3,"file":"user-input.js","sources":["../../../../server/src/graphql/types/user-input.js"],"sourcesContent":["'use strict';\n\nconst usersPermissionsUserUID = 'plugin::users-permissions.user';\n\nmodule.exports = ({ nexus, strapi }) => {\n const { getContentTypeInputName } = strapi.plugin('graphql').service('utils').naming;\n\n const userContentType = strapi.getModel(usersPermissionsUserUID);\n const userInputName = getContentTypeInputName(userContentType);\n\n return nexus.extendInputType({\n type: userInputName,\n\n definition(t) {\n // Manually add the private password field back to the data\n // input type as it is used for CRUD operations on users\n t.string('password');\n },\n });\n};\n"],"names":["usersPermissionsUserUID","userInput","nexus","strapi","getContentTypeInputName","plugin","service","naming","userContentType","getModel","userInputName","extendInputType","type","definition","t","string"],"mappings":";;;;;;;AAEA,IAAA,MAAMA,uBAAAA,GAA0B,gCAAA;AAEhCC,IAAAA,SAAAA,GAAiB,CAAC,EAAEC,KAAK,EAAEC,MAAM,EAAE,GAAA;QACjC,MAAM,EAAEC,uBAAuB,EAAE,GAAGD,MAAAA,CAAOE,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,OAAA,CAAA,CAASC,MAAM;QAEpF,MAAMC,eAAAA,GAAkBL,MAAAA,CAAOM,QAAQ,CAACT,uBAAAA,CAAAA;AACxC,QAAA,MAAMU,gBAAgBN,uBAAAA,CAAwBI,eAAAA,CAAAA;QAE9C,OAAON,KAAAA,CAAMS,eAAe,CAAC;YAC3BC,IAAAA,EAAMF,aAAAA;AAENG,YAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;;;AAGVA,gBAAAA,CAAAA,CAAEC,MAAM,CAAC,UAAA,CAAA;AACf,YAAA;AACA,SAAA,CAAA;AACA,IAAA,CAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"user-input.mjs","sources":["../../../../server/graphql/types/user-input.js"],"sourcesContent":["'use strict';\n\nconst usersPermissionsUserUID = 'plugin::users-permissions.user';\n\nmodule.exports = ({ nexus, strapi }) => {\n const { getContentTypeInputName } = strapi.plugin('graphql').service('utils').naming;\n\n const userContentType = strapi.getModel(usersPermissionsUserUID);\n const userInputName = getContentTypeInputName(userContentType);\n\n return nexus.extendInputType({\n type: userInputName,\n\n definition(t) {\n // Manually add the private password field back to the data\n // input type as it is used for CRUD operations on users\n t.string('password');\n },\n });\n};\n"],"names":["usersPermissionsUserUID","userInput","nexus","strapi","getContentTypeInputName","plugin","service","naming","userContentType","getModel","userInputName","extendInputType","type","definition","t","string"],"mappings":";;;;;AAEA,IAAA,MAAMA,uBAAAA,GAA0B,gCAAA;AAEhCC,IAAAA,SAAAA,GAAiB,CAAC,EAAEC,KAAK,EAAEC,MAAM,EAAE,GAAA;QACjC,MAAM,EAAEC,uBAAuB,EAAE,GAAGD,MAAAA,CAAOE,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,OAAA,CAAA,CAASC,MAAM;QAEpF,MAAMC,eAAAA,GAAkBL,MAAAA,CAAOM,QAAQ,CAACT,uBAAAA,CAAAA;AACxC,QAAA,MAAMU,gBAAgBN,uBAAAA,CAAwBI,eAAAA,CAAAA;QAE9C,OAAON,KAAAA,CAAMS,eAAe,CAAC;YAC3BC,IAAAA,EAAMF,aAAAA;AAENG,YAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;;;AAGVA,gBAAAA,CAAAA,CAAEC,MAAM,CAAC,UAAA,CAAA;AACf,YAAA;AACA,SAAA,CAAA;AACA,IAAA,CAAA;;;;;;"}
1
+ {"version":3,"file":"user-input.mjs","sources":["../../../../server/src/graphql/types/user-input.js"],"sourcesContent":["'use strict';\n\nconst usersPermissionsUserUID = 'plugin::users-permissions.user';\n\nmodule.exports = ({ nexus, strapi }) => {\n const { getContentTypeInputName } = strapi.plugin('graphql').service('utils').naming;\n\n const userContentType = strapi.getModel(usersPermissionsUserUID);\n const userInputName = getContentTypeInputName(userContentType);\n\n return nexus.extendInputType({\n type: userInputName,\n\n definition(t) {\n // Manually add the private password field back to the data\n // input type as it is used for CRUD operations on users\n t.string('password');\n },\n });\n};\n"],"names":["usersPermissionsUserUID","userInput","nexus","strapi","getContentTypeInputName","plugin","service","naming","userContentType","getModel","userInputName","extendInputType","type","definition","t","string"],"mappings":";;;;;AAEA,IAAA,MAAMA,uBAAAA,GAA0B,gCAAA;AAEhCC,IAAAA,SAAAA,GAAiB,CAAC,EAAEC,KAAK,EAAEC,MAAM,EAAE,GAAA;QACjC,MAAM,EAAEC,uBAAuB,EAAE,GAAGD,MAAAA,CAAOE,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,OAAA,CAAA,CAASC,MAAM;QAEpF,MAAMC,eAAAA,GAAkBL,MAAAA,CAAOM,QAAQ,CAACT,uBAAAA,CAAAA;AACxC,QAAA,MAAMU,gBAAgBN,uBAAAA,CAAwBI,eAAAA,CAAAA;QAE9C,OAAON,KAAAA,CAAMS,eAAe,CAAC;YAC3BC,IAAAA,EAAMF,aAAAA;AAENG,YAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;;;AAGVA,gBAAAA,CAAAA,CAAEC,MAAM,CAAC,UAAA,CAAA;AACf,YAAA;AACA,SAAA,CAAA;AACA,IAAA,CAAA;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var require$$0 = require('lodash/fp');
3
+ var require$$0 = require('lodash');
4
4
 
5
5
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
6
6
 
@@ -11,15 +11,15 @@ var hasRequiredUtils;
11
11
  function requireUtils() {
12
12
  if (hasRequiredUtils) return utils;
13
13
  hasRequiredUtils = 1;
14
- const { getOr } = require$$0__default.default;
14
+ const { get } = require$$0__default.default;
15
15
  /**
16
16
  * Throws an ApolloError if context body contains a bad request
17
17
  * @param contextBody - body of the context object given to the resolver
18
18
  * @throws ApolloError if the body is a bad request
19
19
  */ function checkBadRequest(contextBody) {
20
- const statusCode = getOr(200, 'statusCode', contextBody);
20
+ const statusCode = get(contextBody, 'statusCode', 200);
21
21
  if (statusCode !== 200) {
22
- const errorMessage = getOr('Bad Request', 'error', contextBody);
22
+ const errorMessage = get(contextBody, 'error', 'Bad Request');
23
23
  const exception = new Error(errorMessage);
24
24
  exception.code = statusCode || 400;
25
25
  exception.data = contextBody;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../server/graphql/utils.js"],"sourcesContent":["'use strict';\n\nconst { getOr } = require('lodash/fp');\n\n/**\n * Throws an ApolloError if context body contains a bad request\n * @param contextBody - body of the context object given to the resolver\n * @throws ApolloError if the body is a bad request\n */\nfunction checkBadRequest(contextBody) {\n const statusCode = getOr(200, 'statusCode', contextBody);\n\n if (statusCode !== 200) {\n const errorMessage = getOr('Bad Request', 'error', contextBody);\n\n const exception = new Error(errorMessage);\n\n exception.code = statusCode || 400;\n exception.data = contextBody;\n\n throw exception;\n }\n}\n\nmodule.exports = {\n checkBadRequest,\n};\n"],"names":["getOr","require$$0","checkBadRequest","contextBody","statusCode","errorMessage","exception","Error","code","data","utils"],"mappings":";;;;;;;;;;;;;IAEA,MAAM,EAAEA,KAAK,EAAE,GAAGC,2BAAAA;AAElB;;;;KAKA,SAASC,gBAAgBC,WAAW,EAAA;QAClC,MAAMC,UAAAA,GAAaJ,KAAAA,CAAM,GAAA,EAAK,YAAA,EAAcG,WAAAA,CAAAA;AAE5C,QAAA,IAAIC,eAAe,GAAA,EAAK;YACtB,MAAMC,YAAAA,GAAeL,KAAAA,CAAM,aAAA,EAAe,OAAA,EAASG,WAAAA,CAAAA;YAEnD,MAAMG,SAAAA,GAAY,IAAIC,KAAAA,CAAMF,YAAAA,CAAAA;YAE5BC,SAAAA,CAAUE,IAAI,GAAGJ,UAAAA,IAAc,GAAA;AAC/BE,YAAAA,SAAAA,CAAUG,IAAI,GAAGN,WAAAA;YAEjB,MAAMG,SAAAA;AACV,QAAA;AACA,IAAA;IAEAI,KAAAA,GAAiB;AACfR,QAAAA;AACF,KAAA;;;;;;"}
1
+ {"version":3,"file":"utils.js","sources":["../../../server/src/graphql/utils.js"],"sourcesContent":["'use strict';\n\nconst { get } = require('lodash');\n\n/**\n * Throws an ApolloError if context body contains a bad request\n * @param contextBody - body of the context object given to the resolver\n * @throws ApolloError if the body is a bad request\n */\nfunction checkBadRequest(contextBody) {\n const statusCode = get(contextBody, 'statusCode', 200);\n\n if (statusCode !== 200) {\n const errorMessage = get(contextBody, 'error', 'Bad Request');\n\n const exception = new Error(errorMessage);\n\n exception.code = statusCode || 400;\n exception.data = contextBody;\n\n throw exception;\n }\n}\n\nmodule.exports = {\n checkBadRequest,\n};\n"],"names":["get","require$$0","checkBadRequest","contextBody","statusCode","errorMessage","exception","Error","code","data","utils"],"mappings":";;;;;;;;;;;;;IAEA,MAAM,EAAEA,GAAG,EAAE,GAAGC,2BAAAA;AAEhB;;;;KAKA,SAASC,gBAAgBC,WAAW,EAAA;QAClC,MAAMC,UAAAA,GAAaJ,GAAAA,CAAIG,WAAAA,EAAa,YAAA,EAAc,GAAA,CAAA;AAElD,QAAA,IAAIC,eAAe,GAAA,EAAK;YACtB,MAAMC,YAAAA,GAAeL,GAAAA,CAAIG,WAAAA,EAAa,OAAA,EAAS,aAAA,CAAA;YAE/C,MAAMG,SAAAA,GAAY,IAAIC,KAAAA,CAAMF,YAAAA,CAAAA;YAE5BC,SAAAA,CAAUE,IAAI,GAAGJ,UAAAA,IAAc,GAAA;AAC/BE,YAAAA,SAAAA,CAAUG,IAAI,GAAGN,WAAAA;YAEjB,MAAMG,SAAAA;AACV,QAAA;AACA,IAAA;IAEAI,KAAAA,GAAiB;AACfR,QAAAA;AACF,KAAA;;;;;;"}
@@ -1,19 +1,19 @@
1
- import require$$0 from 'lodash/fp';
1
+ import require$$0 from 'lodash';
2
2
 
3
3
  var utils;
4
4
  var hasRequiredUtils;
5
5
  function requireUtils() {
6
6
  if (hasRequiredUtils) return utils;
7
7
  hasRequiredUtils = 1;
8
- const { getOr } = require$$0;
8
+ const { get } = require$$0;
9
9
  /**
10
10
  * Throws an ApolloError if context body contains a bad request
11
11
  * @param contextBody - body of the context object given to the resolver
12
12
  * @throws ApolloError if the body is a bad request
13
13
  */ function checkBadRequest(contextBody) {
14
- const statusCode = getOr(200, 'statusCode', contextBody);
14
+ const statusCode = get(contextBody, 'statusCode', 200);
15
15
  if (statusCode !== 200) {
16
- const errorMessage = getOr('Bad Request', 'error', contextBody);
16
+ const errorMessage = get(contextBody, 'error', 'Bad Request');
17
17
  const exception = new Error(errorMessage);
18
18
  exception.code = statusCode || 400;
19
19
  exception.data = contextBody;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.mjs","sources":["../../../server/graphql/utils.js"],"sourcesContent":["'use strict';\n\nconst { getOr } = require('lodash/fp');\n\n/**\n * Throws an ApolloError if context body contains a bad request\n * @param contextBody - body of the context object given to the resolver\n * @throws ApolloError if the body is a bad request\n */\nfunction checkBadRequest(contextBody) {\n const statusCode = getOr(200, 'statusCode', contextBody);\n\n if (statusCode !== 200) {\n const errorMessage = getOr('Bad Request', 'error', contextBody);\n\n const exception = new Error(errorMessage);\n\n exception.code = statusCode || 400;\n exception.data = contextBody;\n\n throw exception;\n }\n}\n\nmodule.exports = {\n checkBadRequest,\n};\n"],"names":["getOr","require$$0","checkBadRequest","contextBody","statusCode","errorMessage","exception","Error","code","data","utils"],"mappings":";;;;;;;IAEA,MAAM,EAAEA,KAAK,EAAE,GAAGC,UAAAA;AAElB;;;;KAKA,SAASC,gBAAgBC,WAAW,EAAA;QAClC,MAAMC,UAAAA,GAAaJ,KAAAA,CAAM,GAAA,EAAK,YAAA,EAAcG,WAAAA,CAAAA;AAE5C,QAAA,IAAIC,eAAe,GAAA,EAAK;YACtB,MAAMC,YAAAA,GAAeL,KAAAA,CAAM,aAAA,EAAe,OAAA,EAASG,WAAAA,CAAAA;YAEnD,MAAMG,SAAAA,GAAY,IAAIC,KAAAA,CAAMF,YAAAA,CAAAA;YAE5BC,SAAAA,CAAUE,IAAI,GAAGJ,UAAAA,IAAc,GAAA;AAC/BE,YAAAA,SAAAA,CAAUG,IAAI,GAAGN,WAAAA;YAEjB,MAAMG,SAAAA;AACV,QAAA;AACA,IAAA;IAEAI,KAAAA,GAAiB;AACfR,QAAAA;AACF,KAAA;;;;;;"}
1
+ {"version":3,"file":"utils.mjs","sources":["../../../server/src/graphql/utils.js"],"sourcesContent":["'use strict';\n\nconst { get } = require('lodash');\n\n/**\n * Throws an ApolloError if context body contains a bad request\n * @param contextBody - body of the context object given to the resolver\n * @throws ApolloError if the body is a bad request\n */\nfunction checkBadRequest(contextBody) {\n const statusCode = get(contextBody, 'statusCode', 200);\n\n if (statusCode !== 200) {\n const errorMessage = get(contextBody, 'error', 'Bad Request');\n\n const exception = new Error(errorMessage);\n\n exception.code = statusCode || 400;\n exception.data = contextBody;\n\n throw exception;\n }\n}\n\nmodule.exports = {\n checkBadRequest,\n};\n"],"names":["get","require$$0","checkBadRequest","contextBody","statusCode","errorMessage","exception","Error","code","data","utils"],"mappings":";;;;;;;IAEA,MAAM,EAAEA,GAAG,EAAE,GAAGC,UAAAA;AAEhB;;;;KAKA,SAASC,gBAAgBC,WAAW,EAAA;QAClC,MAAMC,UAAAA,GAAaJ,GAAAA,CAAIG,WAAAA,EAAa,YAAA,EAAc,GAAA,CAAA;AAElD,QAAA,IAAIC,eAAe,GAAA,EAAK;YACtB,MAAMC,YAAAA,GAAeL,GAAAA,CAAIG,WAAAA,EAAa,OAAA,EAAS,aAAA,CAAA;YAE/C,MAAMG,SAAAA,GAAY,IAAIC,KAAAA,CAAMF,YAAAA,CAAAA;YAE5BC,SAAAA,CAAUE,IAAI,GAAGJ,UAAAA,IAAc,GAAA;AAC/BE,YAAAA,SAAAA,CAAUG,IAAI,GAAGN,WAAAA;YAEjB,MAAMG,SAAAA;AACV,QAAA;AACA,IAAA;IAEAI,KAAAA,GAAiB;AACfR,QAAAA;AACF,KAAA;;;;;;"}
@@ -3,8 +3,8 @@
3
3
  var _commonjsHelpers = require('./_virtual/_commonjsHelpers.js');
4
4
  var index$1 = require('./index2.js');
5
5
 
6
- var serverExports = index$1.__require();
7
- var index = /*@__PURE__*/ _commonjsHelpers.getDefaultExportFromCjs(serverExports);
6
+ var srcExports = index$1.__require();
7
+ var index = /*@__PURE__*/ _commonjsHelpers.getDefaultExportFromCjs(srcExports);
8
8
 
9
9
  module.exports = index;
10
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../server/index.js?commonjs-entry"],"sourcesContent":["import { getDefaultExportFromCjs } from \"\u0000commonjsHelpers.js\";\nimport { __require as requireServer } from \"/home/runner/work/strapi/strapi/packages/plugins/users-permissions/server/index.js\";\nvar serverExports = requireServer();\nexport { serverExports as __moduleExports };\nexport default /*@__PURE__*/getDefaultExportFromCjs(serverExports);"],"names":["serverExports","requireServer","getDefaultExportFromCjs"],"mappings":";;;;;AAEA,IAAIA,aAAAA,GAAgBC,iBAAAA,EAAAA;AAEpB,YAAe,cAAaC,wCAAAA,CAAwBF,aAAAA,CAAAA;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../server/src/index.js?commonjs-entry"],"sourcesContent":["import { getDefaultExportFromCjs } from \"\u0000commonjsHelpers.js\";\nimport { __require as requireSrc } from \"/home/runner/work/strapi/strapi/packages/plugins/users-permissions/server/src/index.js\";\nvar srcExports = requireSrc();\nexport { srcExports as __moduleExports };\nexport default /*@__PURE__*/getDefaultExportFromCjs(srcExports);"],"names":["srcExports","requireSrc","getDefaultExportFromCjs"],"mappings":";;;;;AAEA,IAAIA,UAAAA,GAAaC,iBAAAA,EAAAA;AAEjB,YAAe,cAAaC,wCAAAA,CAAwBF,UAAAA,CAAAA;;;;"}
@@ -1,8 +1,8 @@
1
1
  import { getDefaultExportFromCjs } from './_virtual/_commonjsHelpers.mjs';
2
- import { __require as requireServer } from './index2.mjs';
2
+ import { __require as requireSrc } from './index2.mjs';
3
3
 
4
- var serverExports = requireServer();
5
- var index = /*@__PURE__*/ getDefaultExportFromCjs(serverExports);
4
+ var srcExports = requireSrc();
5
+ var index = /*@__PURE__*/ getDefaultExportFromCjs(srcExports);
6
6
 
7
7
  export { index as default };
8
8
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../server/index.js?commonjs-entry"],"sourcesContent":["import { getDefaultExportFromCjs } from \"\u0000commonjsHelpers.js\";\nimport { __require as requireServer } from \"/home/runner/work/strapi/strapi/packages/plugins/users-permissions/server/index.js\";\nvar serverExports = requireServer();\nexport { serverExports as __moduleExports };\nexport default /*@__PURE__*/getDefaultExportFromCjs(serverExports);"],"names":["serverExports","requireServer","getDefaultExportFromCjs"],"mappings":";;;AAEA,IAAIA,aAAAA,GAAgBC,aAAAA,EAAAA;AAEpB,YAAe,cAAaC,uBAAAA,CAAwBF,aAAAA,CAAAA;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../server/src/index.js?commonjs-entry"],"sourcesContent":["import { getDefaultExportFromCjs } from \"\u0000commonjsHelpers.js\";\nimport { __require as requireSrc } from \"/home/runner/work/strapi/strapi/packages/plugins/users-permissions/server/src/index.js\";\nvar srcExports = requireSrc();\nexport { srcExports as __moduleExports };\nexport default /*@__PURE__*/getDefaultExportFromCjs(srcExports);"],"names":["srcExports","requireSrc","getDefaultExportFromCjs"],"mappings":";;;AAEA,IAAIA,UAAAA,GAAaC,UAAAA,EAAAA;AAEjB,YAAe,cAAaC,uBAAAA,CAAwBF,UAAAA,CAAAA;;;;"}
@@ -9,11 +9,11 @@ var index$3 = require('./routes/index.js');
9
9
  var index$4 = require('./controllers/index.js');
10
10
  var config = require('./config.js');
11
11
 
12
- var server;
13
- var hasRequiredServer;
14
- function requireServer() {
15
- if (hasRequiredServer) return server;
16
- hasRequiredServer = 1;
12
+ var src;
13
+ var hasRequiredSrc;
14
+ function requireSrc() {
15
+ if (hasRequiredSrc) return src;
16
+ hasRequiredSrc = 1;
17
17
  const register$1 = register.__require();
18
18
  const bootstrap = index.__require();
19
19
  const contentTypes = index$5.__require();
@@ -22,7 +22,7 @@ function requireServer() {
22
22
  const routes = index$3.__require();
23
23
  const controllers = index$4.__require();
24
24
  const config$1 = config.__require();
25
- server = ()=>({
25
+ src = ()=>({
26
26
  register: register$1,
27
27
  bootstrap,
28
28
  config: config$1,
@@ -32,8 +32,8 @@ function requireServer() {
32
32
  middlewares,
33
33
  services
34
34
  });
35
- return server;
35
+ return src;
36
36
  }
37
37
 
38
- exports.__require = requireServer;
38
+ exports.__require = requireSrc;
39
39
  //# sourceMappingURL=index2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index2.js","sources":["../../server/index.js"],"sourcesContent":["'use strict';\n\nconst register = require('./register');\nconst bootstrap = require('./bootstrap');\nconst contentTypes = require('./content-types');\nconst middlewares = require('./middlewares');\nconst services = require('./services');\nconst routes = require('./routes');\nconst controllers = require('./controllers');\nconst config = require('./config');\n\nmodule.exports = () => ({\n register,\n bootstrap,\n config,\n routes,\n controllers,\n contentTypes,\n middlewares,\n services,\n});\n"],"names":["register","require$$0","bootstrap","require$$1","contentTypes","require$$2","middlewares","require$$3","services","require$$4","routes","require$$5","controllers","require$$6","config","require$$7","server"],"mappings":";;;;;;;;;;;;;;;;AAEA,IAAA,MAAMA,UAAAA,GAAWC,kBAAAA,EAAAA;AACjB,IAAA,MAAMC,SAAAA,GAAYC,eAAAA,EAAAA;AAClB,IAAA,MAAMC,YAAAA,GAAeC,iBAAAA,EAAAA;AACrB,IAAA,MAAMC,WAAAA,GAAcC,iBAAAA,EAAAA;AACpB,IAAA,MAAMC,QAAAA,GAAWC,iBAAAA,EAAAA;AACjB,IAAA,MAAMC,MAAAA,GAASC,iBAAAA,EAAAA;AACf,IAAA,MAAMC,WAAAA,GAAcC,iBAAAA,EAAAA;AACpB,IAAA,MAAMC,QAAAA,GAASC,gBAAAA,EAAAA;AAEfC,IAAAA,MAAAA,GAAiB,KAAO;AACtBhB,sBAAAA,UAAAA;AACAE,YAAAA,SAAAA;AACAY,oBAAAA,QAAAA;AACAJ,YAAAA,MAAAA;AACAE,YAAAA,WAAAA;AACAR,YAAAA,YAAAA;AACAE,YAAAA,WAAAA;AACAE,YAAAA;SACF,CAAA;;;;;;"}
1
+ {"version":3,"file":"index2.js","sources":["../../server/src/index.js"],"sourcesContent":["'use strict';\n\nconst register = require('./register');\nconst bootstrap = require('./bootstrap');\nconst contentTypes = require('./content-types');\nconst middlewares = require('./middlewares');\nconst services = require('./services');\nconst routes = require('./routes');\nconst controllers = require('./controllers');\nconst config = require('./config');\n\nmodule.exports = () => ({\n register,\n bootstrap,\n config,\n routes,\n controllers,\n contentTypes,\n middlewares,\n services,\n});\n"],"names":["register","require$$0","bootstrap","require$$1","contentTypes","require$$2","middlewares","require$$3","services","require$$4","routes","require$$5","controllers","require$$6","config","require$$7","src"],"mappings":";;;;;;;;;;;;;;;;AAEA,IAAA,MAAMA,UAAAA,GAAWC,kBAAAA,EAAAA;AACjB,IAAA,MAAMC,SAAAA,GAAYC,eAAAA,EAAAA;AAClB,IAAA,MAAMC,YAAAA,GAAeC,iBAAAA,EAAAA;AACrB,IAAA,MAAMC,WAAAA,GAAcC,iBAAAA,EAAAA;AACpB,IAAA,MAAMC,QAAAA,GAAWC,iBAAAA,EAAAA;AACjB,IAAA,MAAMC,MAAAA,GAASC,iBAAAA,EAAAA;AACf,IAAA,MAAMC,WAAAA,GAAcC,iBAAAA,EAAAA;AACpB,IAAA,MAAMC,QAAAA,GAASC,gBAAAA,EAAAA;AAEfC,IAAAA,GAAAA,GAAiB,KAAO;AACtBhB,sBAAAA,UAAAA;AACAE,YAAAA,SAAAA;AACAY,oBAAAA,QAAAA;AACAJ,YAAAA,MAAAA;AACAE,YAAAA,WAAAA;AACAR,YAAAA,YAAAA;AACAE,YAAAA,WAAAA;AACAE,YAAAA;SACF,CAAA;;;;;;"}
@@ -7,11 +7,11 @@ import { __require as requireRoutes } from './routes/index.mjs';
7
7
  import { __require as requireControllers } from './controllers/index.mjs';
8
8
  import { __require as requireConfig } from './config.mjs';
9
9
 
10
- var server;
11
- var hasRequiredServer;
12
- function requireServer() {
13
- if (hasRequiredServer) return server;
14
- hasRequiredServer = 1;
10
+ var src;
11
+ var hasRequiredSrc;
12
+ function requireSrc() {
13
+ if (hasRequiredSrc) return src;
14
+ hasRequiredSrc = 1;
15
15
  const register = requireRegister();
16
16
  const bootstrap = requireBootstrap();
17
17
  const contentTypes = requireContentTypes();
@@ -20,7 +20,7 @@ function requireServer() {
20
20
  const routes = requireRoutes();
21
21
  const controllers = requireControllers();
22
22
  const config = requireConfig();
23
- server = ()=>({
23
+ src = ()=>({
24
24
  register,
25
25
  bootstrap,
26
26
  config,
@@ -30,8 +30,8 @@ function requireServer() {
30
30
  middlewares,
31
31
  services
32
32
  });
33
- return server;
33
+ return src;
34
34
  }
35
35
 
36
- export { requireServer as __require };
36
+ export { requireSrc as __require };
37
37
  //# sourceMappingURL=index2.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index2.mjs","sources":["../../server/index.js"],"sourcesContent":["'use strict';\n\nconst register = require('./register');\nconst bootstrap = require('./bootstrap');\nconst contentTypes = require('./content-types');\nconst middlewares = require('./middlewares');\nconst services = require('./services');\nconst routes = require('./routes');\nconst controllers = require('./controllers');\nconst config = require('./config');\n\nmodule.exports = () => ({\n register,\n bootstrap,\n config,\n routes,\n controllers,\n contentTypes,\n middlewares,\n services,\n});\n"],"names":["register","require$$0","bootstrap","require$$1","contentTypes","require$$2","middlewares","require$$3","services","require$$4","routes","require$$5","controllers","require$$6","config","require$$7","server"],"mappings":";;;;;;;;;;;;;;AAEA,IAAA,MAAMA,QAAAA,GAAWC,eAAAA,EAAAA;AACjB,IAAA,MAAMC,SAAAA,GAAYC,gBAAAA,EAAAA;AAClB,IAAA,MAAMC,YAAAA,GAAeC,mBAAAA,EAAAA;AACrB,IAAA,MAAMC,WAAAA,GAAcC,kBAAAA,EAAAA;AACpB,IAAA,MAAMC,QAAAA,GAAWC,eAAAA,EAAAA;AACjB,IAAA,MAAMC,MAAAA,GAASC,aAAAA,EAAAA;AACf,IAAA,MAAMC,WAAAA,GAAcC,kBAAAA,EAAAA;AACpB,IAAA,MAAMC,MAAAA,GAASC,aAAAA,EAAAA;AAEfC,IAAAA,MAAAA,GAAiB,KAAO;AACtBhB,YAAAA,QAAAA;AACAE,YAAAA,SAAAA;AACAY,YAAAA,MAAAA;AACAJ,YAAAA,MAAAA;AACAE,YAAAA,WAAAA;AACAR,YAAAA,YAAAA;AACAE,YAAAA,WAAAA;AACAE,YAAAA;SACF,CAAA;;;;;;"}
1
+ {"version":3,"file":"index2.mjs","sources":["../../server/src/index.js"],"sourcesContent":["'use strict';\n\nconst register = require('./register');\nconst bootstrap = require('./bootstrap');\nconst contentTypes = require('./content-types');\nconst middlewares = require('./middlewares');\nconst services = require('./services');\nconst routes = require('./routes');\nconst controllers = require('./controllers');\nconst config = require('./config');\n\nmodule.exports = () => ({\n register,\n bootstrap,\n config,\n routes,\n controllers,\n contentTypes,\n middlewares,\n services,\n});\n"],"names":["register","require$$0","bootstrap","require$$1","contentTypes","require$$2","middlewares","require$$3","services","require$$4","routes","require$$5","controllers","require$$6","config","require$$7","src"],"mappings":";;;;;;;;;;;;;;AAEA,IAAA,MAAMA,QAAAA,GAAWC,eAAAA,EAAAA;AACjB,IAAA,MAAMC,SAAAA,GAAYC,gBAAAA,EAAAA;AAClB,IAAA,MAAMC,YAAAA,GAAeC,mBAAAA,EAAAA;AACrB,IAAA,MAAMC,WAAAA,GAAcC,kBAAAA,EAAAA;AACpB,IAAA,MAAMC,QAAAA,GAAWC,eAAAA,EAAAA;AACjB,IAAA,MAAMC,MAAAA,GAASC,aAAAA,EAAAA;AACf,IAAA,MAAMC,WAAAA,GAAcC,kBAAAA,EAAAA;AACpB,IAAA,MAAMC,MAAAA,GAASC,aAAAA,EAAAA;AAEfC,IAAAA,GAAAA,GAAiB,KAAO;AACtBhB,YAAAA,QAAAA;AACAE,YAAAA,SAAAA;AACAY,YAAAA,MAAAA;AACAJ,YAAAA,MAAAA;AACAE,YAAAA,WAAAA;AACAR,YAAAA,YAAAA;AACAE,YAAAA,WAAAA;AACAE,YAAAA;SACF,CAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../server/middlewares/index.js"],"sourcesContent":["'use strict';\n\nconst rateLimit = require('./rateLimit');\n\nmodule.exports = {\n rateLimit,\n};\n"],"names":["rateLimit","require$$0","middlewares"],"mappings":";;;;;;;;;AAEA,IAAA,MAAMA,WAAAA,GAAYC,mBAAAA,EAAAA;IAElBC,WAAAA,GAAiB;AACfF,mBAAAA;AACF,KAAA;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../server/src/middlewares/index.js"],"sourcesContent":["'use strict';\n\nconst rateLimit = require('./rateLimit');\n\nmodule.exports = {\n rateLimit,\n};\n"],"names":["rateLimit","require$$0","middlewares"],"mappings":";;;;;;;;;AAEA,IAAA,MAAMA,WAAAA,GAAYC,mBAAAA,EAAAA;IAElBC,WAAAA,GAAiB;AACfF,mBAAAA;AACF,KAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../server/middlewares/index.js"],"sourcesContent":["'use strict';\n\nconst rateLimit = require('./rateLimit');\n\nmodule.exports = {\n rateLimit,\n};\n"],"names":["rateLimit","require$$0","middlewares"],"mappings":";;;;;;;AAEA,IAAA,MAAMA,SAAAA,GAAYC,gBAAAA,EAAAA;IAElBC,WAAAA,GAAiB;AACfF,QAAAA;AACF,KAAA;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../server/src/middlewares/index.js"],"sourcesContent":["'use strict';\n\nconst rateLimit = require('./rateLimit');\n\nmodule.exports = {\n rateLimit,\n};\n"],"names":["rateLimit","require$$0","middlewares"],"mappings":";;;;;;;AAEA,IAAA,MAAMA,SAAAA,GAAYC,gBAAAA,EAAAA;IAElBC,WAAAA,GAAiB;AACfF,QAAAA;AACF,KAAA;;;;;;"}
@@ -3,7 +3,7 @@
3
3
  var rateLimit = require('../_virtual/rateLimit.js');
4
4
  var require$$1$1 = require('path');
5
5
  var require$$1 = require('@strapi/utils');
6
- var require$$0 = require('lodash/fp');
6
+ var require$$0 = require('lodash');
7
7
  var require$$3 = require('koa2-ratelimit');
8
8
 
9
9
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
@@ -19,7 +19,7 @@ function requireRateLimit() {
19
19
  hasRequiredRateLimit = 1;
20
20
  const path = require$$1__default$1.default;
21
21
  const utils = require$$1__default.default;
22
- const { isString, has, toLower } = require$$0__default.default;
22
+ const { toLower, isString, has } = require$$0__default.default;
23
23
  const { RateLimitError } = utils.errors;
24
24
  /**
25
25
  * Routes where the rate-limit key MUST NOT include a user identifier
@@ -59,8 +59,8 @@ function requireRateLimit() {
59
59
  * lower-cased, trailing slashes removed so `/api/auth/local` and
60
60
  * `/api/auth/local/` share one bucket.
61
61
  */ const normalizeRequestPathForRateLimit = (requestPath)=>{
62
- const normalized = path.normalize(requestPath);
63
- const lower = toLower(normalized);
62
+ const normalized = path.posix.normalize(requestPath);
63
+ const lower = normalized.toLowerCase();
64
64
  return lower.replace(/\/+$/, '') || '/';
65
65
  };
66
66
  const getEmailIdentifierForKey = (body)=>{
@@ -106,7 +106,7 @@ function requireRateLimit() {
106
106
  enabled: true
107
107
  };
108
108
  }
109
- if (!has('enabled', rateLimitConfig)) {
109
+ if (!has(rateLimitConfig, 'enabled')) {
110
110
  rateLimitConfig.enabled = true;
111
111
  }
112
112
  if (rateLimitConfig.enabled === true) {
@@ -1 +1 @@
1
- {"version":3,"file":"rateLimit.js","sources":["../../../server/middlewares/rateLimit.js"],"sourcesContent":["'use strict';\n\nconst path = require('path');\nconst utils = require('@strapi/utils');\nconst { isString, has, toLower } = require('lodash/fp');\n\nconst { RateLimitError } = utils.errors;\n\n/**\n * Routes where the rate-limit key MUST NOT include a user identifier\n * derived from `ctx.request.body.email`.\n *\n * On these routes the request body either has no `email` field\n * (e.g. /auth/local uses `identifier`, /auth/reset-password uses\n * `code`, /auth/change-password uses `currentPassword`) or the\n * field is not part of the route contract. Including the\n * attacker-controlled `body.email` in the rate-limit key on these\n * routes lets a caller obtain a fresh key on every request by\n * varying that field, effectively bypassing per-IP throttling.\n *\n * Comparison uses endsWith so the check is stable under any router\n * mount prefix (e.g. `/api/auth/local`).\n *\n * @see https://github.com/strapi/strapi/security/advisories/GHSA-7mqx-wwh4-f9fw\n *\n * When adding a new `rateLimit`-protected auth route whose body does not\n * use `email` as the real identifier, add its path suffix here (or an\n * equivalent `routeUsesEmailIdentifier` rule) so the key cannot be split\n * with arbitrary `body.email` values.\n */\nconst ROUTES_WITHOUT_IDENTIFIER = ['/auth/local', '/auth/reset-password', '/auth/change-password'];\n\nconst isOAuthCallbackPath = (requestPath) => requestPath.includes('/connect/');\n\nconst routeUsesEmailIdentifier = (requestPath) => {\n if (isOAuthCallbackPath(requestPath)) {\n return false;\n }\n\n return !ROUTES_WITHOUT_IDENTIFIER.some((route) => requestPath.endsWith(route));\n};\n\n/**\n * Paths suitable for route matching and prefix keys: POSIX-normalized,\n * lower-cased, trailing slashes removed so `/api/auth/local` and\n * `/api/auth/local/` share one bucket.\n */\nconst normalizeRequestPathForRateLimit = (requestPath) => {\n const normalized = path.normalize(requestPath);\n const lower = toLower(normalized);\n return lower.replace(/\\/+$/, '') || '/';\n};\n\nconst getEmailIdentifierForKey = (body) => {\n if (!body || !isString(body.email) || body.email === '') {\n return 'unknownIdentifier';\n }\n\n return toLower(body.email);\n};\n\nconst buildPrefixKey = (ctx) => {\n let requestPath;\n if (!isString(ctx.request.path)) {\n requestPath = 'invalidPath';\n } else {\n requestPath = normalizeRequestPathForRateLimit(ctx.request.path);\n if (requestPath === '.' || requestPath === '..') {\n requestPath = 'invalidPath';\n }\n }\n\n if (!routeUsesEmailIdentifier(requestPath)) {\n return `noIdentifier:${requestPath}:${ctx.request.ip}`;\n }\n\n const userIdentifier = getEmailIdentifierForKey(ctx.request.body);\n return `${userIdentifier}:${requestPath}:${ctx.request.ip}`;\n};\n\nconst buildRateLimitLoadConfig = (ctx, rateLimitConfig, routeMiddlewareConfig) => {\n return {\n interval: { min: 5 },\n max: 5,\n ...rateLimitConfig,\n ...routeMiddlewareConfig,\n handler() {\n throw new RateLimitError();\n },\n prefixKey: buildPrefixKey(ctx),\n };\n};\n\nmodule.exports =\n (config, { strapi }) =>\n async (ctx, next) => {\n let rateLimitConfig = strapi.config.get('plugin::users-permissions.ratelimit');\n\n if (!rateLimitConfig) {\n rateLimitConfig = {\n enabled: true,\n };\n }\n\n if (!has('enabled', rateLimitConfig)) {\n rateLimitConfig.enabled = true;\n }\n\n if (rateLimitConfig.enabled === true) {\n const rateLimit = require('koa2-ratelimit').RateLimit;\n\n const loadConfig = buildRateLimitLoadConfig(ctx, rateLimitConfig, config);\n\n return rateLimit.middleware(loadConfig)(ctx, next);\n }\n\n return next();\n };\n\nmodule.exports.buildPrefixKey = buildPrefixKey;\nmodule.exports.ROUTES_WITHOUT_IDENTIFIER = ROUTES_WITHOUT_IDENTIFIER;\nmodule.exports.normalizeRequestPathForRateLimit = normalizeRequestPathForRateLimit;\nmodule.exports.buildRateLimitLoadConfig = buildRateLimitLoadConfig;\n"],"names":["path","require$$0","utils","require$$1","isString","has","toLower","require$$2","RateLimitError","errors","ROUTES_WITHOUT_IDENTIFIER","isOAuthCallbackPath","requestPath","includes","routeUsesEmailIdentifier","some","route","endsWith","normalizeRequestPathForRateLimit","normalized","normalize","lower","replace","getEmailIdentifierForKey","body","email","buildPrefixKey","ctx","request","ip","userIdentifier","buildRateLimitLoadConfig","rateLimitConfig","routeMiddlewareConfig","interval","min","max","handler","prefixKey","rateLimitModule","exports","config","strapi","next","get","enabled","rateLimit","require$$3","RateLimit","loadConfig","middleware"],"mappings":"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"}
1
+ {"version":3,"file":"rateLimit.js","sources":["../../../server/src/middlewares/rateLimit.js"],"sourcesContent":["'use strict';\n\nconst path = require('path');\nconst utils = require('@strapi/utils');\nconst { toLower, isString, has } = require('lodash');\n\nconst { RateLimitError } = utils.errors;\n\n/**\n * Routes where the rate-limit key MUST NOT include a user identifier\n * derived from `ctx.request.body.email`.\n *\n * On these routes the request body either has no `email` field\n * (e.g. /auth/local uses `identifier`, /auth/reset-password uses\n * `code`, /auth/change-password uses `currentPassword`) or the\n * field is not part of the route contract. Including the\n * attacker-controlled `body.email` in the rate-limit key on these\n * routes lets a caller obtain a fresh key on every request by\n * varying that field, effectively bypassing per-IP throttling.\n *\n * Comparison uses endsWith so the check is stable under any router\n * mount prefix (e.g. `/api/auth/local`).\n *\n * @see https://github.com/strapi/strapi/security/advisories/GHSA-7mqx-wwh4-f9fw\n *\n * When adding a new `rateLimit`-protected auth route whose body does not\n * use `email` as the real identifier, add its path suffix here (or an\n * equivalent `routeUsesEmailIdentifier` rule) so the key cannot be split\n * with arbitrary `body.email` values.\n */\nconst ROUTES_WITHOUT_IDENTIFIER = ['/auth/local', '/auth/reset-password', '/auth/change-password'];\n\nconst isOAuthCallbackPath = (requestPath) => requestPath.includes('/connect/');\n\nconst routeUsesEmailIdentifier = (requestPath) => {\n if (isOAuthCallbackPath(requestPath)) {\n return false;\n }\n\n return !ROUTES_WITHOUT_IDENTIFIER.some((route) => requestPath.endsWith(route));\n};\n\n/**\n * Paths suitable for route matching and prefix keys: POSIX-normalized,\n * lower-cased, trailing slashes removed so `/api/auth/local` and\n * `/api/auth/local/` share one bucket.\n */\nconst normalizeRequestPathForRateLimit = (requestPath) => {\n const normalized = path.posix.normalize(requestPath);\n const lower = normalized.toLowerCase();\n return lower.replace(/\\/+$/, '') || '/';\n};\n\nconst getEmailIdentifierForKey = (body) => {\n if (!body || !isString(body.email) || body.email === '') {\n return 'unknownIdentifier';\n }\n\n return toLower(body.email);\n};\n\nconst buildPrefixKey = (ctx) => {\n let requestPath;\n if (!isString(ctx.request.path)) {\n requestPath = 'invalidPath';\n } else {\n requestPath = normalizeRequestPathForRateLimit(ctx.request.path);\n if (requestPath === '.' || requestPath === '..') {\n requestPath = 'invalidPath';\n }\n }\n\n if (!routeUsesEmailIdentifier(requestPath)) {\n return `noIdentifier:${requestPath}:${ctx.request.ip}`;\n }\n\n const userIdentifier = getEmailIdentifierForKey(ctx.request.body);\n return `${userIdentifier}:${requestPath}:${ctx.request.ip}`;\n};\n\nconst buildRateLimitLoadConfig = (ctx, rateLimitConfig, routeMiddlewareConfig) => {\n return {\n interval: { min: 5 },\n max: 5,\n ...rateLimitConfig,\n ...routeMiddlewareConfig,\n handler() {\n throw new RateLimitError();\n },\n prefixKey: buildPrefixKey(ctx),\n };\n};\n\nmodule.exports =\n (config, { strapi }) =>\n async (ctx, next) => {\n let rateLimitConfig = strapi.config.get('plugin::users-permissions.ratelimit');\n\n if (!rateLimitConfig) {\n rateLimitConfig = {\n enabled: true,\n };\n }\n\n if (!has(rateLimitConfig, 'enabled')) {\n rateLimitConfig.enabled = true;\n }\n\n if (rateLimitConfig.enabled === true) {\n const rateLimit = require('koa2-ratelimit').RateLimit;\n\n const loadConfig = buildRateLimitLoadConfig(ctx, rateLimitConfig, config);\n\n return rateLimit.middleware(loadConfig)(ctx, next);\n }\n\n return next();\n };\n\nmodule.exports.buildPrefixKey = buildPrefixKey;\nmodule.exports.ROUTES_WITHOUT_IDENTIFIER = ROUTES_WITHOUT_IDENTIFIER;\nmodule.exports.normalizeRequestPathForRateLimit = normalizeRequestPathForRateLimit;\nmodule.exports.buildRateLimitLoadConfig = buildRateLimitLoadConfig;\n"],"names":["path","require$$0","utils","require$$1","toLower","isString","has","require$$2","RateLimitError","errors","ROUTES_WITHOUT_IDENTIFIER","isOAuthCallbackPath","requestPath","includes","routeUsesEmailIdentifier","some","route","endsWith","normalizeRequestPathForRateLimit","normalized","posix","normalize","lower","toLowerCase","replace","getEmailIdentifierForKey","body","email","buildPrefixKey","ctx","request","ip","userIdentifier","buildRateLimitLoadConfig","rateLimitConfig","routeMiddlewareConfig","interval","min","max","handler","prefixKey","rateLimitModule","exports","config","strapi","next","get","enabled","rateLimit","require$$3","RateLimit","loadConfig","middleware"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { __module as rateLimit } from '../_virtual/rateLimit.mjs';
2
2
  import require$$1$1 from 'path';
3
3
  import require$$1 from '@strapi/utils';
4
- import require$$0 from 'lodash/fp';
4
+ import require$$0 from 'lodash';
5
5
  import require$$3 from 'koa2-ratelimit';
6
6
 
7
7
  var hasRequiredRateLimit;
@@ -10,7 +10,7 @@ function requireRateLimit() {
10
10
  hasRequiredRateLimit = 1;
11
11
  const path = require$$1$1;
12
12
  const utils = require$$1;
13
- const { isString, has, toLower } = require$$0;
13
+ const { toLower, isString, has } = require$$0;
14
14
  const { RateLimitError } = utils.errors;
15
15
  /**
16
16
  * Routes where the rate-limit key MUST NOT include a user identifier
@@ -50,8 +50,8 @@ function requireRateLimit() {
50
50
  * lower-cased, trailing slashes removed so `/api/auth/local` and
51
51
  * `/api/auth/local/` share one bucket.
52
52
  */ const normalizeRequestPathForRateLimit = (requestPath)=>{
53
- const normalized = path.normalize(requestPath);
54
- const lower = toLower(normalized);
53
+ const normalized = path.posix.normalize(requestPath);
54
+ const lower = normalized.toLowerCase();
55
55
  return lower.replace(/\/+$/, '') || '/';
56
56
  };
57
57
  const getEmailIdentifierForKey = (body)=>{
@@ -97,7 +97,7 @@ function requireRateLimit() {
97
97
  enabled: true
98
98
  };
99
99
  }
100
- if (!has('enabled', rateLimitConfig)) {
100
+ if (!has(rateLimitConfig, 'enabled')) {
101
101
  rateLimitConfig.enabled = true;
102
102
  }
103
103
  if (rateLimitConfig.enabled === true) {
@@ -1 +1 @@
1
- {"version":3,"file":"rateLimit.mjs","sources":["../../../server/middlewares/rateLimit.js"],"sourcesContent":["'use strict';\n\nconst path = require('path');\nconst utils = require('@strapi/utils');\nconst { isString, has, toLower } = require('lodash/fp');\n\nconst { RateLimitError } = utils.errors;\n\n/**\n * Routes where the rate-limit key MUST NOT include a user identifier\n * derived from `ctx.request.body.email`.\n *\n * On these routes the request body either has no `email` field\n * (e.g. /auth/local uses `identifier`, /auth/reset-password uses\n * `code`, /auth/change-password uses `currentPassword`) or the\n * field is not part of the route contract. Including the\n * attacker-controlled `body.email` in the rate-limit key on these\n * routes lets a caller obtain a fresh key on every request by\n * varying that field, effectively bypassing per-IP throttling.\n *\n * Comparison uses endsWith so the check is stable under any router\n * mount prefix (e.g. `/api/auth/local`).\n *\n * @see https://github.com/strapi/strapi/security/advisories/GHSA-7mqx-wwh4-f9fw\n *\n * When adding a new `rateLimit`-protected auth route whose body does not\n * use `email` as the real identifier, add its path suffix here (or an\n * equivalent `routeUsesEmailIdentifier` rule) so the key cannot be split\n * with arbitrary `body.email` values.\n */\nconst ROUTES_WITHOUT_IDENTIFIER = ['/auth/local', '/auth/reset-password', '/auth/change-password'];\n\nconst isOAuthCallbackPath = (requestPath) => requestPath.includes('/connect/');\n\nconst routeUsesEmailIdentifier = (requestPath) => {\n if (isOAuthCallbackPath(requestPath)) {\n return false;\n }\n\n return !ROUTES_WITHOUT_IDENTIFIER.some((route) => requestPath.endsWith(route));\n};\n\n/**\n * Paths suitable for route matching and prefix keys: POSIX-normalized,\n * lower-cased, trailing slashes removed so `/api/auth/local` and\n * `/api/auth/local/` share one bucket.\n */\nconst normalizeRequestPathForRateLimit = (requestPath) => {\n const normalized = path.normalize(requestPath);\n const lower = toLower(normalized);\n return lower.replace(/\\/+$/, '') || '/';\n};\n\nconst getEmailIdentifierForKey = (body) => {\n if (!body || !isString(body.email) || body.email === '') {\n return 'unknownIdentifier';\n }\n\n return toLower(body.email);\n};\n\nconst buildPrefixKey = (ctx) => {\n let requestPath;\n if (!isString(ctx.request.path)) {\n requestPath = 'invalidPath';\n } else {\n requestPath = normalizeRequestPathForRateLimit(ctx.request.path);\n if (requestPath === '.' || requestPath === '..') {\n requestPath = 'invalidPath';\n }\n }\n\n if (!routeUsesEmailIdentifier(requestPath)) {\n return `noIdentifier:${requestPath}:${ctx.request.ip}`;\n }\n\n const userIdentifier = getEmailIdentifierForKey(ctx.request.body);\n return `${userIdentifier}:${requestPath}:${ctx.request.ip}`;\n};\n\nconst buildRateLimitLoadConfig = (ctx, rateLimitConfig, routeMiddlewareConfig) => {\n return {\n interval: { min: 5 },\n max: 5,\n ...rateLimitConfig,\n ...routeMiddlewareConfig,\n handler() {\n throw new RateLimitError();\n },\n prefixKey: buildPrefixKey(ctx),\n };\n};\n\nmodule.exports =\n (config, { strapi }) =>\n async (ctx, next) => {\n let rateLimitConfig = strapi.config.get('plugin::users-permissions.ratelimit');\n\n if (!rateLimitConfig) {\n rateLimitConfig = {\n enabled: true,\n };\n }\n\n if (!has('enabled', rateLimitConfig)) {\n rateLimitConfig.enabled = true;\n }\n\n if (rateLimitConfig.enabled === true) {\n const rateLimit = require('koa2-ratelimit').RateLimit;\n\n const loadConfig = buildRateLimitLoadConfig(ctx, rateLimitConfig, config);\n\n return rateLimit.middleware(loadConfig)(ctx, next);\n }\n\n return next();\n };\n\nmodule.exports.buildPrefixKey = buildPrefixKey;\nmodule.exports.ROUTES_WITHOUT_IDENTIFIER = ROUTES_WITHOUT_IDENTIFIER;\nmodule.exports.normalizeRequestPathForRateLimit = normalizeRequestPathForRateLimit;\nmodule.exports.buildRateLimitLoadConfig = buildRateLimitLoadConfig;\n"],"names":["path","require$$0","utils","require$$1","isString","has","toLower","require$$2","RateLimitError","errors","ROUTES_WITHOUT_IDENTIFIER","isOAuthCallbackPath","requestPath","includes","routeUsesEmailIdentifier","some","route","endsWith","normalizeRequestPathForRateLimit","normalized","normalize","lower","replace","getEmailIdentifierForKey","body","email","buildPrefixKey","ctx","request","ip","userIdentifier","buildRateLimitLoadConfig","rateLimitConfig","routeMiddlewareConfig","interval","min","max","handler","prefixKey","rateLimitModule","exports","config","strapi","next","get","enabled","rateLimit","require$$3","RateLimit","loadConfig","middleware"],"mappings":"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"}
1
+ {"version":3,"file":"rateLimit.mjs","sources":["../../../server/src/middlewares/rateLimit.js"],"sourcesContent":["'use strict';\n\nconst path = require('path');\nconst utils = require('@strapi/utils');\nconst { toLower, isString, has } = require('lodash');\n\nconst { RateLimitError } = utils.errors;\n\n/**\n * Routes where the rate-limit key MUST NOT include a user identifier\n * derived from `ctx.request.body.email`.\n *\n * On these routes the request body either has no `email` field\n * (e.g. /auth/local uses `identifier`, /auth/reset-password uses\n * `code`, /auth/change-password uses `currentPassword`) or the\n * field is not part of the route contract. Including the\n * attacker-controlled `body.email` in the rate-limit key on these\n * routes lets a caller obtain a fresh key on every request by\n * varying that field, effectively bypassing per-IP throttling.\n *\n * Comparison uses endsWith so the check is stable under any router\n * mount prefix (e.g. `/api/auth/local`).\n *\n * @see https://github.com/strapi/strapi/security/advisories/GHSA-7mqx-wwh4-f9fw\n *\n * When adding a new `rateLimit`-protected auth route whose body does not\n * use `email` as the real identifier, add its path suffix here (or an\n * equivalent `routeUsesEmailIdentifier` rule) so the key cannot be split\n * with arbitrary `body.email` values.\n */\nconst ROUTES_WITHOUT_IDENTIFIER = ['/auth/local', '/auth/reset-password', '/auth/change-password'];\n\nconst isOAuthCallbackPath = (requestPath) => requestPath.includes('/connect/');\n\nconst routeUsesEmailIdentifier = (requestPath) => {\n if (isOAuthCallbackPath(requestPath)) {\n return false;\n }\n\n return !ROUTES_WITHOUT_IDENTIFIER.some((route) => requestPath.endsWith(route));\n};\n\n/**\n * Paths suitable for route matching and prefix keys: POSIX-normalized,\n * lower-cased, trailing slashes removed so `/api/auth/local` and\n * `/api/auth/local/` share one bucket.\n */\nconst normalizeRequestPathForRateLimit = (requestPath) => {\n const normalized = path.posix.normalize(requestPath);\n const lower = normalized.toLowerCase();\n return lower.replace(/\\/+$/, '') || '/';\n};\n\nconst getEmailIdentifierForKey = (body) => {\n if (!body || !isString(body.email) || body.email === '') {\n return 'unknownIdentifier';\n }\n\n return toLower(body.email);\n};\n\nconst buildPrefixKey = (ctx) => {\n let requestPath;\n if (!isString(ctx.request.path)) {\n requestPath = 'invalidPath';\n } else {\n requestPath = normalizeRequestPathForRateLimit(ctx.request.path);\n if (requestPath === '.' || requestPath === '..') {\n requestPath = 'invalidPath';\n }\n }\n\n if (!routeUsesEmailIdentifier(requestPath)) {\n return `noIdentifier:${requestPath}:${ctx.request.ip}`;\n }\n\n const userIdentifier = getEmailIdentifierForKey(ctx.request.body);\n return `${userIdentifier}:${requestPath}:${ctx.request.ip}`;\n};\n\nconst buildRateLimitLoadConfig = (ctx, rateLimitConfig, routeMiddlewareConfig) => {\n return {\n interval: { min: 5 },\n max: 5,\n ...rateLimitConfig,\n ...routeMiddlewareConfig,\n handler() {\n throw new RateLimitError();\n },\n prefixKey: buildPrefixKey(ctx),\n };\n};\n\nmodule.exports =\n (config, { strapi }) =>\n async (ctx, next) => {\n let rateLimitConfig = strapi.config.get('plugin::users-permissions.ratelimit');\n\n if (!rateLimitConfig) {\n rateLimitConfig = {\n enabled: true,\n };\n }\n\n if (!has(rateLimitConfig, 'enabled')) {\n rateLimitConfig.enabled = true;\n }\n\n if (rateLimitConfig.enabled === true) {\n const rateLimit = require('koa2-ratelimit').RateLimit;\n\n const loadConfig = buildRateLimitLoadConfig(ctx, rateLimitConfig, config);\n\n return rateLimit.middleware(loadConfig)(ctx, next);\n }\n\n return next();\n };\n\nmodule.exports.buildPrefixKey = buildPrefixKey;\nmodule.exports.ROUTES_WITHOUT_IDENTIFIER = ROUTES_WITHOUT_IDENTIFIER;\nmodule.exports.normalizeRequestPathForRateLimit = normalizeRequestPathForRateLimit;\nmodule.exports.buildRateLimitLoadConfig = buildRateLimitLoadConfig;\n"],"names":["path","require$$0","utils","require$$1","toLower","isString","has","require$$2","RateLimitError","errors","ROUTES_WITHOUT_IDENTIFIER","isOAuthCallbackPath","requestPath","includes","routeUsesEmailIdentifier","some","route","endsWith","normalizeRequestPathForRateLimit","normalized","posix","normalize","lower","toLowerCase","replace","getEmailIdentifierForKey","body","email","buildPrefixKey","ctx","request","ip","userIdentifier","buildRateLimitLoadConfig","rateLimitConfig","routeMiddlewareConfig","interval","min","max","handler","prefixKey","rateLimitModule","exports","config","strapi","next","get","enabled","rateLimit","require$$3","RateLimit","loadConfig","middleware"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"register.js","sources":["../../server/register.js"],"sourcesContent":["'use strict';\n\nconst fs = require('fs');\nconst path = require('path');\n\nconst authStrategy = require('./strategies/users-permissions');\nconst sanitizers = require('./utils/sanitize/sanitizers');\n\nmodule.exports = ({ strapi }) => {\n strapi.get('auth').register('content-api', authStrategy);\n strapi.sanitizers.add('content-api.output', sanitizers.defaultSanitizeOutput);\n\n if (strapi.plugin('graphql')) {\n require('./graphql')({ strapi });\n }\n\n if (strapi.plugin('documentation')) {\n const specPath = path.join(__dirname, '../../documentation/content-api.yaml');\n const spec = fs.readFileSync(specPath, 'utf8');\n\n strapi\n .plugin('documentation')\n .service('override')\n .registerOverride(spec, {\n pluginOrigin: 'users-permissions',\n excludeFromGeneration: ['users-permissions'],\n });\n }\n};\n"],"names":["fs","require$$0","path","require$$1","authStrategy","require$$2","sanitizers","require$$3","register","strapi","get","add","defaultSanitizeOutput","plugin","require$$4","specPath","join","__dirname","spec","readFileSync","service","registerOverride","pluginOrigin","excludeFromGeneration"],"mappings":";;;;;;;;;;;;;;;;;;AAEA,IAAA,MAAMA,EAAAA,GAAKC,2BAAAA;AACX,IAAA,MAAMC,IAAAA,GAAOC,2BAAAA;AAEb,IAAA,MAAMC,YAAAA,GAAeC,0BAAAA,EAAAA;AACrB,IAAA,MAAMC,YAAAA,GAAaC,oBAAAA,EAAAA;IAEnBC,QAAAA,GAAiB,CAAC,EAAEC,MAAM,EAAE,GAAA;AAC1BA,QAAAA,MAAAA,CAAOC,GAAG,CAAC,MAAA,CAAA,CAAQF,QAAQ,CAAC,aAAA,EAAeJ,YAAAA,CAAAA;AAC3CK,QAAAA,MAAAA,CAAOH,UAAU,CAACK,GAAG,CAAC,oBAAA,EAAsBL,aAAWM,qBAAqB,CAAA;QAE5E,IAAIH,MAAAA,CAAOI,MAAM,CAAC,SAAA,CAAA,EAAY;YAC5BC,eAAAA,EAAAA,CAAqB;AAAEL,gBAAAA;AAAM,aAAA,CAAA;AACjC,QAAA;QAEE,IAAIA,MAAAA,CAAOI,MAAM,CAAC,eAAA,CAAA,EAAkB;AAClC,YAAA,MAAME,QAAAA,GAAWb,IAAAA,CAAKc,IAAI,CAACC,SAAAA,EAAW,sCAAA,CAAA;AACtC,YAAA,MAAMC,IAAAA,GAAOlB,EAAAA,CAAGmB,YAAY,CAACJ,QAAAA,EAAU,MAAA,CAAA;YAEvCN,MAAAA,CACGI,MAAM,CAAC,eAAA,CAAA,CACPO,OAAO,CAAC,UAAA,CAAA,CACRC,gBAAgB,CAACH,IAAAA,EAAM;gBACtBI,YAAAA,EAAc,mBAAA;gBACdC,qBAAAA,EAAuB;AAAC,oBAAA;AAAoB;AACpD,aAAA,CAAA;AACA,QAAA;AACA,IAAA,CAAA;;;;;;"}
1
+ {"version":3,"file":"register.js","sources":["../../server/src/register.js"],"sourcesContent":["'use strict';\n\nconst fs = require('fs');\nconst path = require('path');\n\nconst authStrategy = require('./strategies/users-permissions');\nconst sanitizers = require('./utils/sanitize/sanitizers');\n\nmodule.exports = ({ strapi }) => {\n strapi.get('auth').register('content-api', authStrategy);\n strapi.sanitizers.add('content-api.output', sanitizers.defaultSanitizeOutput);\n\n if (strapi.plugin('graphql')) {\n require('./graphql')({ strapi });\n }\n\n if (strapi.plugin('documentation')) {\n const specPath = path.join(__dirname, '../../documentation/content-api.yaml');\n const spec = fs.readFileSync(specPath, 'utf8');\n\n strapi\n .plugin('documentation')\n .service('override')\n .registerOverride(spec, {\n pluginOrigin: 'users-permissions',\n excludeFromGeneration: ['users-permissions'],\n });\n }\n};\n"],"names":["fs","require$$0","path","require$$1","authStrategy","require$$2","sanitizers","require$$3","register","strapi","get","add","defaultSanitizeOutput","plugin","require$$4","specPath","join","__dirname","spec","readFileSync","service","registerOverride","pluginOrigin","excludeFromGeneration"],"mappings":";;;;;;;;;;;;;;;;;;AAEA,IAAA,MAAMA,EAAAA,GAAKC,2BAAAA;AACX,IAAA,MAAMC,IAAAA,GAAOC,2BAAAA;AAEb,IAAA,MAAMC,YAAAA,GAAeC,0BAAAA,EAAAA;AACrB,IAAA,MAAMC,YAAAA,GAAaC,oBAAAA,EAAAA;IAEnBC,QAAAA,GAAiB,CAAC,EAAEC,MAAM,EAAE,GAAA;AAC1BA,QAAAA,MAAAA,CAAOC,GAAG,CAAC,MAAA,CAAA,CAAQF,QAAQ,CAAC,aAAA,EAAeJ,YAAAA,CAAAA;AAC3CK,QAAAA,MAAAA,CAAOH,UAAU,CAACK,GAAG,CAAC,oBAAA,EAAsBL,aAAWM,qBAAqB,CAAA;QAE5E,IAAIH,MAAAA,CAAOI,MAAM,CAAC,SAAA,CAAA,EAAY;YAC5BC,eAAAA,EAAAA,CAAqB;AAAEL,gBAAAA;;AAC3B,QAAA;QAEE,IAAIA,MAAAA,CAAOI,MAAM,CAAC,eAAA,CAAA,EAAkB;AAClC,YAAA,MAAME,QAAAA,GAAWb,IAAAA,CAAKc,IAAI,CAACC,SAAAA,EAAW,sCAAA,CAAA;AACtC,YAAA,MAAMC,IAAAA,GAAOlB,EAAAA,CAAGmB,YAAY,CAACJ,QAAAA,EAAU,MAAA,CAAA;YAEvCN,MAAAA,CACGI,MAAM,CAAC,eAAA,CAAA,CACPO,OAAO,CAAC,UAAA,CAAA,CACRC,gBAAgB,CAACH,IAAAA,EAAM;gBACtBI,YAAAA,EAAc,mBAAA;gBACdC,qBAAAA,EAAuB;AAAC,oBAAA;AAAoB;AACpD,aAAA,CAAA;AACA,QAAA;AACA,IAAA,CAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"register.mjs","sources":["../../server/register.js"],"sourcesContent":["'use strict';\n\nconst fs = require('fs');\nconst path = require('path');\n\nconst authStrategy = require('./strategies/users-permissions');\nconst sanitizers = require('./utils/sanitize/sanitizers');\n\nmodule.exports = ({ strapi }) => {\n strapi.get('auth').register('content-api', authStrategy);\n strapi.sanitizers.add('content-api.output', sanitizers.defaultSanitizeOutput);\n\n if (strapi.plugin('graphql')) {\n require('./graphql')({ strapi });\n }\n\n if (strapi.plugin('documentation')) {\n const specPath = path.join(__dirname, '../../documentation/content-api.yaml');\n const spec = fs.readFileSync(specPath, 'utf8');\n\n strapi\n .plugin('documentation')\n .service('override')\n .registerOverride(spec, {\n pluginOrigin: 'users-permissions',\n excludeFromGeneration: ['users-permissions'],\n });\n }\n};\n"],"names":["fs","require$$0","path","require$$1","authStrategy","require$$2","sanitizers","require$$3","register","strapi","get","add","defaultSanitizeOutput","plugin","require$$4","specPath","join","__dirname","spec","readFileSync","service","registerOverride","pluginOrigin","excludeFromGeneration"],"mappings":";;;;;;;;;;;AAEA,IAAA,MAAMA,EAAAA,GAAKC,UAAAA;AACX,IAAA,MAAMC,IAAAA,GAAOC,UAAAA;AAEb,IAAA,MAAMC,YAAAA,GAAeC,uBAAAA,EAAAA;AACrB,IAAA,MAAMC,UAAAA,GAAaC,iBAAAA,EAAAA;IAEnBC,QAAAA,GAAiB,CAAC,EAAEC,MAAM,EAAE,GAAA;AAC1BA,QAAAA,MAAAA,CAAOC,GAAG,CAAC,MAAA,CAAA,CAAQF,QAAQ,CAAC,aAAA,EAAeJ,YAAAA,CAAAA;AAC3CK,QAAAA,MAAAA,CAAOH,UAAU,CAACK,GAAG,CAAC,oBAAA,EAAsBL,WAAWM,qBAAqB,CAAA;QAE5E,IAAIH,MAAAA,CAAOI,MAAM,CAAC,SAAA,CAAA,EAAY;YAC5BC,cAAAA,EAAAA,CAAqB;AAAEL,gBAAAA;AAAM,aAAA,CAAA;AACjC,QAAA;QAEE,IAAIA,MAAAA,CAAOI,MAAM,CAAC,eAAA,CAAA,EAAkB;AAClC,YAAA,MAAME,QAAAA,GAAWb,IAAAA,CAAKc,IAAI,CAACC,SAAAA,EAAW,sCAAA,CAAA;AACtC,YAAA,MAAMC,IAAAA,GAAOlB,EAAAA,CAAGmB,YAAY,CAACJ,QAAAA,EAAU,MAAA,CAAA;YAEvCN,MAAAA,CACGI,MAAM,CAAC,eAAA,CAAA,CACPO,OAAO,CAAC,UAAA,CAAA,CACRC,gBAAgB,CAACH,IAAAA,EAAM;gBACtBI,YAAAA,EAAc,mBAAA;gBACdC,qBAAAA,EAAuB;AAAC,oBAAA;AAAoB;AACpD,aAAA,CAAA;AACA,QAAA;AACA,IAAA,CAAA;;;;;;"}
1
+ {"version":3,"file":"register.mjs","sources":["../../server/src/register.js"],"sourcesContent":["'use strict';\n\nconst fs = require('fs');\nconst path = require('path');\n\nconst authStrategy = require('./strategies/users-permissions');\nconst sanitizers = require('./utils/sanitize/sanitizers');\n\nmodule.exports = ({ strapi }) => {\n strapi.get('auth').register('content-api', authStrategy);\n strapi.sanitizers.add('content-api.output', sanitizers.defaultSanitizeOutput);\n\n if (strapi.plugin('graphql')) {\n require('./graphql')({ strapi });\n }\n\n if (strapi.plugin('documentation')) {\n const specPath = path.join(__dirname, '../../documentation/content-api.yaml');\n const spec = fs.readFileSync(specPath, 'utf8');\n\n strapi\n .plugin('documentation')\n .service('override')\n .registerOverride(spec, {\n pluginOrigin: 'users-permissions',\n excludeFromGeneration: ['users-permissions'],\n });\n }\n};\n"],"names":["fs","require$$0","path","require$$1","authStrategy","require$$2","sanitizers","require$$3","register","strapi","get","add","defaultSanitizeOutput","plugin","require$$4","specPath","join","__dirname","spec","readFileSync","service","registerOverride","pluginOrigin","excludeFromGeneration"],"mappings":";;;;;;;;;;;AAEA,IAAA,MAAMA,EAAAA,GAAKC,UAAAA;AACX,IAAA,MAAMC,IAAAA,GAAOC,UAAAA;AAEb,IAAA,MAAMC,YAAAA,GAAeC,uBAAAA,EAAAA;AACrB,IAAA,MAAMC,UAAAA,GAAaC,iBAAAA,EAAAA;IAEnBC,QAAAA,GAAiB,CAAC,EAAEC,MAAM,EAAE,GAAA;AAC1BA,QAAAA,MAAAA,CAAOC,GAAG,CAAC,MAAA,CAAA,CAAQF,QAAQ,CAAC,aAAA,EAAeJ,YAAAA,CAAAA;AAC3CK,QAAAA,MAAAA,CAAOH,UAAU,CAACK,GAAG,CAAC,oBAAA,EAAsBL,WAAWM,qBAAqB,CAAA;QAE5E,IAAIH,MAAAA,CAAOI,MAAM,CAAC,SAAA,CAAA,EAAY;YAC5BC,cAAAA,EAAAA,CAAqB;AAAEL,gBAAAA;;AAC3B,QAAA;QAEE,IAAIA,MAAAA,CAAOI,MAAM,CAAC,eAAA,CAAA,EAAkB;AAClC,YAAA,MAAME,QAAAA,GAAWb,IAAAA,CAAKc,IAAI,CAACC,SAAAA,EAAW,sCAAA,CAAA;AACtC,YAAA,MAAMC,IAAAA,GAAOlB,EAAAA,CAAGmB,YAAY,CAACJ,QAAAA,EAAU,MAAA,CAAA;YAEvCN,MAAAA,CACGI,MAAM,CAAC,eAAA,CAAA,CACPO,OAAO,CAAC,UAAA,CAAA,CACRC,gBAAgB,CAACH,IAAAA,EAAM;gBACtBI,YAAAA,EAAc,mBAAA;gBACdC,qBAAAA,EAAuB;AAAC,oBAAA;AAAoB;AACpD,aAAA,CAAA;AACA,QAAA;AACA,IAAA,CAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../server/routes/admin/index.js"],"sourcesContent":["'use strict';\n\nconst permissionsRoutes = require('./permissions');\nconst settingsRoutes = require('./settings');\nconst roleRoutes = require('./role');\n\nmodule.exports = {\n type: 'admin',\n routes: [...roleRoutes, ...settingsRoutes, ...permissionsRoutes],\n};\n"],"names":["permissionsRoutes","require$$0","settingsRoutes","require$$1","roleRoutes","require$$2","admin","type","routes"],"mappings":";;;;;;;;;;;AAEA,IAAA,MAAMA,iBAAAA,GAAoBC,qBAAAA,EAAAA;AAC1B,IAAA,MAAMC,cAAAA,GAAiBC,kBAAAA,EAAAA;AACvB,IAAA,MAAMC,UAAAA,GAAaC,cAAAA,EAAAA;IAEnBC,KAAAA,GAAiB;QACfC,IAAAA,EAAM,OAAA;QACNC,MAAAA,EAAQ;AAAIJ,YAAAA,GAAAA,UAAAA;AAAeF,YAAAA,GAAAA,cAAAA;AAAmBF,YAAAA,GAAAA;AAAkB;AAClE,KAAA;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../server/src/routes/admin/index.js"],"sourcesContent":["'use strict';\n\nconst permissionsRoutes = require('./permissions');\nconst settingsRoutes = require('./settings');\nconst roleRoutes = require('./role');\n\nmodule.exports = {\n type: 'admin',\n routes: [...roleRoutes, ...settingsRoutes, ...permissionsRoutes],\n};\n"],"names":["permissionsRoutes","require$$0","settingsRoutes","require$$1","roleRoutes","require$$2","admin","type","routes"],"mappings":";;;;;;;;;;;AAEA,IAAA,MAAMA,iBAAAA,GAAoBC,qBAAAA,EAAAA;AAC1B,IAAA,MAAMC,cAAAA,GAAiBC,kBAAAA,EAAAA;AACvB,IAAA,MAAMC,UAAAA,GAAaC,cAAAA,EAAAA;IAEnBC,KAAAA,GAAiB;QACfC,IAAAA,EAAM,OAAA;QACNC,MAAAA,EAAQ;AAAIJ,YAAAA,GAAAA,UAAAA;AAAeF,YAAAA,GAAAA,cAAAA;AAAmBF,YAAAA,GAAAA;AAAkB;AAClE,KAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../server/routes/admin/index.js"],"sourcesContent":["'use strict';\n\nconst permissionsRoutes = require('./permissions');\nconst settingsRoutes = require('./settings');\nconst roleRoutes = require('./role');\n\nmodule.exports = {\n type: 'admin',\n routes: [...roleRoutes, ...settingsRoutes, ...permissionsRoutes],\n};\n"],"names":["permissionsRoutes","require$$0","settingsRoutes","require$$1","roleRoutes","require$$2","admin","type","routes"],"mappings":";;;;;;;;;AAEA,IAAA,MAAMA,iBAAAA,GAAoBC,kBAAAA,EAAAA;AAC1B,IAAA,MAAMC,cAAAA,GAAiBC,eAAAA,EAAAA;AACvB,IAAA,MAAMC,UAAAA,GAAaC,WAAAA,EAAAA;IAEnBC,KAAAA,GAAiB;QACfC,IAAAA,EAAM,OAAA;QACNC,MAAAA,EAAQ;AAAIJ,YAAAA,GAAAA,UAAAA;AAAeF,YAAAA,GAAAA,cAAAA;AAAmBF,YAAAA,GAAAA;AAAkB;AAClE,KAAA;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../server/src/routes/admin/index.js"],"sourcesContent":["'use strict';\n\nconst permissionsRoutes = require('./permissions');\nconst settingsRoutes = require('./settings');\nconst roleRoutes = require('./role');\n\nmodule.exports = {\n type: 'admin',\n routes: [...roleRoutes, ...settingsRoutes, ...permissionsRoutes],\n};\n"],"names":["permissionsRoutes","require$$0","settingsRoutes","require$$1","roleRoutes","require$$2","admin","type","routes"],"mappings":";;;;;;;;;AAEA,IAAA,MAAMA,iBAAAA,GAAoBC,kBAAAA,EAAAA;AAC1B,IAAA,MAAMC,cAAAA,GAAiBC,eAAAA,EAAAA;AACvB,IAAA,MAAMC,UAAAA,GAAaC,WAAAA,EAAAA;IAEnBC,KAAAA,GAAiB;QACfC,IAAAA,EAAM,OAAA;QACNC,MAAAA,EAAQ;AAAIJ,YAAAA,GAAAA,UAAAA;AAAeF,YAAAA,GAAAA,cAAAA;AAAmBF,YAAAA,GAAAA;AAAkB;AAClE,KAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.js","sources":["../../../../server/routes/admin/permissions.js"],"sourcesContent":["'use strict';\n\nmodule.exports = [\n {\n method: 'GET',\n path: '/permissions',\n handler: 'permissions.getPermissions',\n },\n {\n method: 'GET',\n path: '/policies',\n handler: 'permissions.getPolicies',\n },\n\n {\n method: 'GET',\n path: '/routes',\n handler: 'permissions.getRoutes',\n },\n];\n"],"names":["permissions","method","path","handler"],"mappings":";;;;;;;IAEAA,WAAAA,GAAiB;AACf,QAAA;YACEC,MAAAA,EAAQ,KAAA;YACRC,IAAAA,EAAM,cAAA;YACNC,OAAAA,EAAS;AACb,SAAA;AACE,QAAA;YACEF,MAAAA,EAAQ,KAAA;YACRC,IAAAA,EAAM,WAAA;YACNC,OAAAA,EAAS;AACb,SAAA;AAEE,QAAA;YACEF,MAAAA,EAAQ,KAAA;YACRC,IAAAA,EAAM,SAAA;YACNC,OAAAA,EAAS;AACb;AACC,KAAA;;;;;;"}
1
+ {"version":3,"file":"permissions.js","sources":["../../../../server/src/routes/admin/permissions.js"],"sourcesContent":["'use strict';\n\nmodule.exports = [\n {\n method: 'GET',\n path: '/permissions',\n handler: 'permissions.getPermissions',\n },\n {\n method: 'GET',\n path: '/policies',\n handler: 'permissions.getPolicies',\n },\n\n {\n method: 'GET',\n path: '/routes',\n handler: 'permissions.getRoutes',\n },\n];\n"],"names":["permissions","method","path","handler"],"mappings":";;;;;;;IAEAA,WAAAA,GAAiB;AACf,QAAA;YACEC,MAAAA,EAAQ,KAAA;YACRC,IAAAA,EAAM,cAAA;YACNC,OAAAA,EAAS;AACb,SAAA;AACE,QAAA;YACEF,MAAAA,EAAQ,KAAA;YACRC,IAAAA,EAAM,WAAA;YACNC,OAAAA,EAAS;AACb,SAAA;AAEE,QAAA;YACEF,MAAAA,EAAQ,KAAA;YACRC,IAAAA,EAAM,SAAA;YACNC,OAAAA,EAAS;AACb;AACC,KAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.mjs","sources":["../../../../server/routes/admin/permissions.js"],"sourcesContent":["'use strict';\n\nmodule.exports = [\n {\n method: 'GET',\n path: '/permissions',\n handler: 'permissions.getPermissions',\n },\n {\n method: 'GET',\n path: '/policies',\n handler: 'permissions.getPolicies',\n },\n\n {\n method: 'GET',\n path: '/routes',\n handler: 'permissions.getRoutes',\n },\n];\n"],"names":["permissions","method","path","handler"],"mappings":";;;;;IAEAA,WAAAA,GAAiB;AACf,QAAA;YACEC,MAAAA,EAAQ,KAAA;YACRC,IAAAA,EAAM,cAAA;YACNC,OAAAA,EAAS;AACb,SAAA;AACE,QAAA;YACEF,MAAAA,EAAQ,KAAA;YACRC,IAAAA,EAAM,WAAA;YACNC,OAAAA,EAAS;AACb,SAAA;AAEE,QAAA;YACEF,MAAAA,EAAQ,KAAA;YACRC,IAAAA,EAAM,SAAA;YACNC,OAAAA,EAAS;AACb;AACC,KAAA;;;;;;"}
1
+ {"version":3,"file":"permissions.mjs","sources":["../../../../server/src/routes/admin/permissions.js"],"sourcesContent":["'use strict';\n\nmodule.exports = [\n {\n method: 'GET',\n path: '/permissions',\n handler: 'permissions.getPermissions',\n },\n {\n method: 'GET',\n path: '/policies',\n handler: 'permissions.getPolicies',\n },\n\n {\n method: 'GET',\n path: '/routes',\n handler: 'permissions.getRoutes',\n },\n];\n"],"names":["permissions","method","path","handler"],"mappings":";;;;;IAEAA,WAAAA,GAAiB;AACf,QAAA;YACEC,MAAAA,EAAQ,KAAA;YACRC,IAAAA,EAAM,cAAA;YACNC,OAAAA,EAAS;AACb,SAAA;AACE,QAAA;YACEF,MAAAA,EAAQ,KAAA;YACRC,IAAAA,EAAM,WAAA;YACNC,OAAAA,EAAS;AACb,SAAA;AAEE,QAAA;YACEF,MAAAA,EAAQ,KAAA;YACRC,IAAAA,EAAM,SAAA;YACNC,OAAAA,EAAS;AACb;AACC,KAAA;;;;;;"}