@strapi/plugin-users-permissions 5.51.1 → 5.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/admin/src/pages/Roles/pages/ListPage/index.jsx +1 -1
  2. package/admin/src/translations/en.json +0 -1
  3. package/dist/admin/pages/Roles/pages/ListPage/index.js +1 -1
  4. package/dist/admin/pages/Roles/pages/ListPage/index.js.map +1 -1
  5. package/dist/admin/pages/Roles/pages/ListPage/index.mjs +1 -1
  6. package/dist/admin/pages/Roles/pages/ListPage/index.mjs.map +1 -1
  7. package/dist/server/bootstrap/index.js.map +1 -1
  8. package/dist/server/bootstrap/index.mjs.map +1 -1
  9. package/dist/server/bootstrap/users-permissions-actions.js.map +1 -1
  10. package/dist/server/bootstrap/users-permissions-actions.mjs.map +1 -1
  11. package/dist/server/config.js.map +1 -1
  12. package/dist/server/config.mjs.map +1 -1
  13. package/dist/server/content-types/index.js.map +1 -1
  14. package/dist/server/content-types/index.mjs.map +1 -1
  15. package/dist/server/content-types/permission/index.js.map +1 -1
  16. package/dist/server/content-types/permission/index.mjs.map +1 -1
  17. package/dist/server/content-types/role/index.js.map +1 -1
  18. package/dist/server/content-types/role/index.mjs.map +1 -1
  19. package/dist/server/content-types/user/index.js.map +1 -1
  20. package/dist/server/content-types/user/index.mjs.map +1 -1
  21. package/dist/server/content-types/user/schema-config.js.map +1 -1
  22. package/dist/server/content-types/user/schema-config.mjs.map +1 -1
  23. package/dist/server/controllers/auth.js +2 -2
  24. package/dist/server/controllers/auth.js.map +1 -1
  25. package/dist/server/controllers/auth.mjs +2 -2
  26. package/dist/server/controllers/auth.mjs.map +1 -1
  27. package/dist/server/controllers/content-manager-user.js.map +1 -1
  28. package/dist/server/controllers/content-manager-user.mjs.map +1 -1
  29. package/dist/server/controllers/index.js.map +1 -1
  30. package/dist/server/controllers/index.mjs.map +1 -1
  31. package/dist/server/controllers/permissions.js.map +1 -1
  32. package/dist/server/controllers/permissions.mjs.map +1 -1
  33. package/dist/server/controllers/role.js.map +1 -1
  34. package/dist/server/controllers/role.mjs.map +1 -1
  35. package/dist/server/controllers/settings.js.map +1 -1
  36. package/dist/server/controllers/settings.mjs.map +1 -1
  37. package/dist/server/controllers/user.js.map +1 -1
  38. package/dist/server/controllers/user.mjs.map +1 -1
  39. package/dist/server/controllers/validation/auth.js.map +1 -1
  40. package/dist/server/controllers/validation/auth.mjs.map +1 -1
  41. package/dist/server/controllers/validation/email-template.js.map +1 -1
  42. package/dist/server/controllers/validation/email-template.mjs.map +1 -1
  43. package/dist/server/controllers/validation/user.js.map +1 -1
  44. package/dist/server/controllers/validation/user.mjs.map +1 -1
  45. package/dist/server/graphql/index.js.map +1 -1
  46. package/dist/server/graphql/index.mjs.map +1 -1
  47. package/dist/server/graphql/mutations/auth/change-password.js.map +1 -1
  48. package/dist/server/graphql/mutations/auth/change-password.mjs.map +1 -1
  49. package/dist/server/graphql/mutations/auth/email-confirmation.js.map +1 -1
  50. package/dist/server/graphql/mutations/auth/email-confirmation.mjs.map +1 -1
  51. package/dist/server/graphql/mutations/auth/forgot-password.js.map +1 -1
  52. package/dist/server/graphql/mutations/auth/forgot-password.mjs.map +1 -1
  53. package/dist/server/graphql/mutations/auth/login.js.map +1 -1
  54. package/dist/server/graphql/mutations/auth/login.mjs.map +1 -1
  55. package/dist/server/graphql/mutations/auth/register.js.map +1 -1
  56. package/dist/server/graphql/mutations/auth/register.mjs.map +1 -1
  57. package/dist/server/graphql/mutations/auth/reset-password.js.map +1 -1
  58. package/dist/server/graphql/mutations/auth/reset-password.mjs.map +1 -1
  59. package/dist/server/graphql/mutations/crud/role/create-role.js.map +1 -1
  60. package/dist/server/graphql/mutations/crud/role/create-role.mjs.map +1 -1
  61. package/dist/server/graphql/mutations/crud/role/delete-role.js.map +1 -1
  62. package/dist/server/graphql/mutations/crud/role/delete-role.mjs.map +1 -1
  63. package/dist/server/graphql/mutations/crud/role/update-role.js.map +1 -1
  64. package/dist/server/graphql/mutations/crud/role/update-role.mjs.map +1 -1
  65. package/dist/server/graphql/mutations/crud/user/create-user.js.map +1 -1
  66. package/dist/server/graphql/mutations/crud/user/create-user.mjs.map +1 -1
  67. package/dist/server/graphql/mutations/crud/user/delete-user.js.map +1 -1
  68. package/dist/server/graphql/mutations/crud/user/delete-user.mjs.map +1 -1
  69. package/dist/server/graphql/mutations/crud/user/update-user.js.map +1 -1
  70. package/dist/server/graphql/mutations/crud/user/update-user.mjs.map +1 -1
  71. package/dist/server/graphql/mutations/index.js.map +1 -1
  72. package/dist/server/graphql/mutations/index.mjs.map +1 -1
  73. package/dist/server/graphql/queries/index.js.map +1 -1
  74. package/dist/server/graphql/queries/index.mjs.map +1 -1
  75. package/dist/server/graphql/queries/me.js.map +1 -1
  76. package/dist/server/graphql/queries/me.mjs.map +1 -1
  77. package/dist/server/graphql/resolvers-configs.js.map +1 -1
  78. package/dist/server/graphql/resolvers-configs.mjs.map +1 -1
  79. package/dist/server/graphql/types/create-role-payload.js.map +1 -1
  80. package/dist/server/graphql/types/create-role-payload.mjs.map +1 -1
  81. package/dist/server/graphql/types/delete-role-payload.js.map +1 -1
  82. package/dist/server/graphql/types/delete-role-payload.mjs.map +1 -1
  83. package/dist/server/graphql/types/index.js.map +1 -1
  84. package/dist/server/graphql/types/index.mjs.map +1 -1
  85. package/dist/server/graphql/types/login-input.js.map +1 -1
  86. package/dist/server/graphql/types/login-input.mjs.map +1 -1
  87. package/dist/server/graphql/types/login-payload.js.map +1 -1
  88. package/dist/server/graphql/types/login-payload.mjs.map +1 -1
  89. package/dist/server/graphql/types/me-role.js.map +1 -1
  90. package/dist/server/graphql/types/me-role.mjs.map +1 -1
  91. package/dist/server/graphql/types/me.js.map +1 -1
  92. package/dist/server/graphql/types/me.mjs.map +1 -1
  93. package/dist/server/graphql/types/password-payload.js.map +1 -1
  94. package/dist/server/graphql/types/password-payload.mjs.map +1 -1
  95. package/dist/server/graphql/types/register-input.js.map +1 -1
  96. package/dist/server/graphql/types/register-input.mjs.map +1 -1
  97. package/dist/server/graphql/types/update-role-payload.js.map +1 -1
  98. package/dist/server/graphql/types/update-role-payload.mjs.map +1 -1
  99. package/dist/server/graphql/types/user-input.js.map +1 -1
  100. package/dist/server/graphql/types/user-input.mjs.map +1 -1
  101. package/dist/server/graphql/utils.js.map +1 -1
  102. package/dist/server/graphql/utils.mjs.map +1 -1
  103. package/dist/server/index.js +2 -2
  104. package/dist/server/index.js.map +1 -1
  105. package/dist/server/index.mjs +3 -3
  106. package/dist/server/index.mjs.map +1 -1
  107. package/dist/server/index2.js +8 -8
  108. package/dist/server/index2.js.map +1 -1
  109. package/dist/server/index2.mjs +8 -8
  110. package/dist/server/index2.mjs.map +1 -1
  111. package/dist/server/middlewares/index.js.map +1 -1
  112. package/dist/server/middlewares/index.mjs.map +1 -1
  113. package/dist/server/middlewares/rateLimit.js.map +1 -1
  114. package/dist/server/middlewares/rateLimit.mjs.map +1 -1
  115. package/dist/server/register.js.map +1 -1
  116. package/dist/server/register.mjs.map +1 -1
  117. package/dist/server/routes/admin/index.js.map +1 -1
  118. package/dist/server/routes/admin/index.mjs.map +1 -1
  119. package/dist/server/routes/admin/permissions.js.map +1 -1
  120. package/dist/server/routes/admin/permissions.mjs.map +1 -1
  121. package/dist/server/routes/admin/role.js.map +1 -1
  122. package/dist/server/routes/admin/role.mjs.map +1 -1
  123. package/dist/server/routes/admin/settings.js.map +1 -1
  124. package/dist/server/routes/admin/settings.mjs.map +1 -1
  125. package/dist/server/routes/content-api/auth.js.map +1 -1
  126. package/dist/server/routes/content-api/auth.mjs.map +1 -1
  127. package/dist/server/routes/content-api/index.js.map +1 -1
  128. package/dist/server/routes/content-api/index.mjs.map +1 -1
  129. package/dist/server/routes/content-api/permissions.js.map +1 -1
  130. package/dist/server/routes/content-api/permissions.mjs.map +1 -1
  131. package/dist/server/routes/content-api/role.js.map +1 -1
  132. package/dist/server/routes/content-api/role.mjs.map +1 -1
  133. package/dist/server/routes/content-api/user.js.map +1 -1
  134. package/dist/server/routes/content-api/user.mjs.map +1 -1
  135. package/dist/server/routes/content-api/validation.js.map +1 -1
  136. package/dist/server/routes/content-api/validation.mjs.map +1 -1
  137. package/dist/server/routes/index.js.map +1 -1
  138. package/dist/server/routes/index.mjs.map +1 -1
  139. package/dist/server/services/constants.js.map +1 -1
  140. package/dist/server/services/constants.mjs.map +1 -1
  141. package/dist/server/services/index.js.map +1 -1
  142. package/dist/server/services/index.mjs.map +1 -1
  143. package/dist/server/services/jwt.js.map +1 -1
  144. package/dist/server/services/jwt.mjs.map +1 -1
  145. package/dist/server/services/permission.js.map +1 -1
  146. package/dist/server/services/permission.mjs.map +1 -1
  147. package/dist/server/services/providers-registry.js.map +1 -1
  148. package/dist/server/services/providers-registry.mjs.map +1 -1
  149. package/dist/server/services/providers.js.map +1 -1
  150. package/dist/server/services/providers.mjs.map +1 -1
  151. package/dist/server/services/role.js.map +1 -1
  152. package/dist/server/services/role.mjs.map +1 -1
  153. package/dist/server/services/user.js.map +1 -1
  154. package/dist/server/services/user.mjs.map +1 -1
  155. package/dist/server/services/users-permissions.js +1 -1
  156. package/dist/server/services/users-permissions.js.map +1 -1
  157. package/dist/server/services/users-permissions.mjs +1 -1
  158. package/dist/server/services/users-permissions.mjs.map +1 -1
  159. package/dist/server/strategies/users-permissions.js +1 -1
  160. package/dist/server/strategies/users-permissions.js.map +1 -1
  161. package/dist/server/strategies/users-permissions.mjs +1 -1
  162. package/dist/server/strategies/users-permissions.mjs.map +1 -1
  163. package/dist/server/utils/index.js.map +1 -1
  164. package/dist/server/utils/index.mjs.map +1 -1
  165. package/dist/server/utils/oauth-connect/index.js.map +1 -1
  166. package/dist/server/utils/oauth-connect/index.mjs.map +1 -1
  167. package/dist/server/utils/oauth-connect/oauth1.js.map +1 -1
  168. package/dist/server/utils/oauth-connect/oauth1.mjs.map +1 -1
  169. package/dist/server/utils/oauth-connect/oauth2.js.map +1 -1
  170. package/dist/server/utils/oauth-connect/oauth2.mjs.map +1 -1
  171. package/dist/server/utils/oauth-connect/providers.js.map +1 -1
  172. package/dist/server/utils/oauth-connect/providers.mjs.map +1 -1
  173. package/dist/server/utils/provider-http.js.map +1 -1
  174. package/dist/server/utils/provider-http.mjs.map +1 -1
  175. package/dist/server/utils/refresh-cookie-options.js.map +1 -1
  176. package/dist/server/utils/refresh-cookie-options.mjs.map +1 -1
  177. package/dist/server/utils/sanitize/index.js.map +1 -1
  178. package/dist/server/utils/sanitize/index.mjs.map +1 -1
  179. package/dist/server/utils/sanitize/sanitizers.js.map +1 -1
  180. package/dist/server/utils/sanitize/sanitizers.mjs.map +1 -1
  181. package/dist/server/utils/sanitize/visitors/index.js.map +1 -1
  182. package/dist/server/utils/sanitize/visitors/index.mjs.map +1 -1
  183. package/dist/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.js.map +1 -1
  184. package/dist/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.mjs.map +1 -1
  185. package/dist/server/utils/verify-jwt-with-jwks.js.map +1 -1
  186. package/dist/server/utils/verify-jwt-with-jwks.mjs.map +1 -1
  187. package/package.json +7 -7
  188. package/rollup.config.mjs +2 -2
  189. package/server/{controllers → src/controllers}/auth.js +2 -2
  190. package/server/{services → src/services}/users-permissions.js +1 -1
  191. package/server/{strategies → src/strategies}/users-permissions.js +1 -1
  192. package/server/utils/index.d.ts +0 -23
  193. /package/server/{bootstrap → src/bootstrap}/index.js +0 -0
  194. /package/server/{bootstrap → src/bootstrap}/users-permissions-actions.js +0 -0
  195. /package/server/{config.js → src/config.js} +0 -0
  196. /package/server/{content-types → src/content-types}/index.js +0 -0
  197. /package/server/{content-types → src/content-types}/permission/index.js +0 -0
  198. /package/server/{content-types → src/content-types}/role/index.js +0 -0
  199. /package/server/{content-types → src/content-types}/user/index.js +0 -0
  200. /package/server/{content-types → src/content-types}/user/schema-config.js +0 -0
  201. /package/server/{controllers → src/controllers}/content-manager-user.js +0 -0
  202. /package/server/{controllers → src/controllers}/index.js +0 -0
  203. /package/server/{controllers → src/controllers}/permissions.js +0 -0
  204. /package/server/{controllers → src/controllers}/role.js +0 -0
  205. /package/server/{controllers → src/controllers}/settings.js +0 -0
  206. /package/server/{controllers → src/controllers}/user.js +0 -0
  207. /package/server/{controllers → src/controllers}/validation/auth.js +0 -0
  208. /package/server/{controllers → src/controllers}/validation/email-template.js +0 -0
  209. /package/server/{controllers → src/controllers}/validation/user.js +0 -0
  210. /package/server/{graphql → src/graphql}/index.js +0 -0
  211. /package/server/{graphql → src/graphql}/mutations/auth/change-password.js +0 -0
  212. /package/server/{graphql → src/graphql}/mutations/auth/email-confirmation.js +0 -0
  213. /package/server/{graphql → src/graphql}/mutations/auth/forgot-password.js +0 -0
  214. /package/server/{graphql → src/graphql}/mutations/auth/login.js +0 -0
  215. /package/server/{graphql → src/graphql}/mutations/auth/register.js +0 -0
  216. /package/server/{graphql → src/graphql}/mutations/auth/reset-password.js +0 -0
  217. /package/server/{graphql → src/graphql}/mutations/crud/role/create-role.js +0 -0
  218. /package/server/{graphql → src/graphql}/mutations/crud/role/delete-role.js +0 -0
  219. /package/server/{graphql → src/graphql}/mutations/crud/role/update-role.js +0 -0
  220. /package/server/{graphql → src/graphql}/mutations/crud/user/create-user.js +0 -0
  221. /package/server/{graphql → src/graphql}/mutations/crud/user/delete-user.js +0 -0
  222. /package/server/{graphql → src/graphql}/mutations/crud/user/update-user.js +0 -0
  223. /package/server/{graphql → src/graphql}/mutations/index.js +0 -0
  224. /package/server/{graphql → src/graphql}/queries/index.js +0 -0
  225. /package/server/{graphql → src/graphql}/queries/me.js +0 -0
  226. /package/server/{graphql → src/graphql}/resolvers-configs.js +0 -0
  227. /package/server/{graphql → src/graphql}/types/create-role-payload.js +0 -0
  228. /package/server/{graphql → src/graphql}/types/delete-role-payload.js +0 -0
  229. /package/server/{graphql → src/graphql}/types/index.js +0 -0
  230. /package/server/{graphql → src/graphql}/types/login-input.js +0 -0
  231. /package/server/{graphql → src/graphql}/types/login-payload.js +0 -0
  232. /package/server/{graphql → src/graphql}/types/me-role.js +0 -0
  233. /package/server/{graphql → src/graphql}/types/me.js +0 -0
  234. /package/server/{graphql → src/graphql}/types/password-payload.js +0 -0
  235. /package/server/{graphql → src/graphql}/types/register-input.js +0 -0
  236. /package/server/{graphql → src/graphql}/types/update-role-payload.js +0 -0
  237. /package/server/{graphql → src/graphql}/types/user-input.js +0 -0
  238. /package/server/{graphql → src/graphql}/utils.js +0 -0
  239. /package/server/{index.js → src/index.js} +0 -0
  240. /package/server/{middlewares → src/middlewares}/index.js +0 -0
  241. /package/server/{middlewares → src/middlewares}/rateLimit.js +0 -0
  242. /package/server/{register.js → src/register.js} +0 -0
  243. /package/server/{routes → src/routes}/admin/index.js +0 -0
  244. /package/server/{routes → src/routes}/admin/permissions.js +0 -0
  245. /package/server/{routes → src/routes}/admin/role.js +0 -0
  246. /package/server/{routes → src/routes}/admin/settings.js +0 -0
  247. /package/server/{routes → src/routes}/content-api/auth.js +0 -0
  248. /package/server/{routes → src/routes}/content-api/index.js +0 -0
  249. /package/server/{routes → src/routes}/content-api/permissions.js +0 -0
  250. /package/server/{routes → src/routes}/content-api/role.js +0 -0
  251. /package/server/{routes → src/routes}/content-api/user.js +0 -0
  252. /package/server/{routes → src/routes}/content-api/validation.js +0 -0
  253. /package/server/{routes → src/routes}/index.js +0 -0
  254. /package/server/{services → src/services}/constants.js +0 -0
  255. /package/server/{services → src/services}/index.js +0 -0
  256. /package/server/{services → src/services}/jwt.js +0 -0
  257. /package/server/{services → src/services}/permission.js +0 -0
  258. /package/server/{services → src/services}/providers-registry.js +0 -0
  259. /package/server/{services → src/services}/providers.js +0 -0
  260. /package/server/{services → src/services}/role.js +0 -0
  261. /package/server/{services → src/services}/user.js +0 -0
  262. /package/server/{utils → src/utils}/index.js +0 -0
  263. /package/server/{utils → src/utils}/oauth-connect/index.js +0 -0
  264. /package/server/{utils → src/utils}/oauth-connect/oauth1.js +0 -0
  265. /package/server/{utils → src/utils}/oauth-connect/oauth2.js +0 -0
  266. /package/server/{utils → src/utils}/oauth-connect/providers.js +0 -0
  267. /package/server/{utils → src/utils}/provider-http.js +0 -0
  268. /package/server/{utils → src/utils}/refresh-cookie-options.js +0 -0
  269. /package/server/{utils → src/utils}/sanitize/index.js +0 -0
  270. /package/server/{utils → src/utils}/sanitize/sanitizers.js +0 -0
  271. /package/server/{utils → src/utils}/sanitize/visitors/index.js +0 -0
  272. /package/server/{utils → src/utils}/sanitize/visitors/remove-user-relation-from-role-entities.js +0 -0
  273. /package/server/{utils → src/utils}/verify-jwt-with-jwks.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"validation.mjs","sources":["../../../../server/routes/content-api/validation.js"],"sourcesContent":["'use strict';\n\nconst { AbstractRouteValidator } = require('@strapi/utils');\nconst z = require('zod/v4');\n\n// A single role relation entry, referenced by numeric `id` (legacy) or by\n// `documentId` (the v5 default), but must carry at least one of them. The\n// detailed rules (min one role on create, cannot remove the last role on\n// update) stay in the Yup controller validator.\nconst roleRelationEntry = z\n .object({\n id: z.union([z.number(), z.string()]).optional(),\n documentId: z.string().optional(),\n })\n .refine((entry) => entry.id != null || entry.documentId != null, {\n message: 'Relation entry must include an id or documentId',\n });\n\n// The `role` relation input: shorthand scalar (numeric id or documentId) or the\n// longhand connect/disconnect object, matching every other v5 relation. The\n// object form must carry at least one of connect/disconnect (an empty object is\n// a no-op and almost certainly a mistake).\nconst roleRelationInput = z.union([\n z.number(),\n z.string(),\n z\n .object({\n connect: z.array(roleRelationEntry).optional(),\n disconnect: z.array(roleRelationEntry).optional(),\n })\n .refine((input) => input.connect != null || input.disconnect != null, {\n message: 'Relation input must include connect or disconnect',\n }),\n]);\n\nclass UsersPermissionsRouteValidator extends AbstractRouteValidator {\n constructor(strapi) {\n super();\n this._strapi = strapi;\n }\n\n get userSchema() {\n return z.object({\n id: z.number(),\n documentId: z.string(),\n username: z.string(),\n email: z.string(),\n provider: z.string(),\n confirmed: z.boolean(),\n blocked: z.boolean(),\n role: z\n .union([\n z.number(),\n z.object({\n id: z.number(),\n name: z.string(),\n description: z.string().nullable(),\n type: z.string(),\n createdAt: z.string(),\n updatedAt: z.string(),\n }),\n ])\n .optional(),\n createdAt: z.string(),\n updatedAt: z.string(),\n publishedAt: z.string(),\n });\n }\n\n get roleSchema() {\n return z.object({\n id: z.number(),\n documentId: z.string(),\n name: z.string(),\n description: z.string().nullable(),\n type: z.string(),\n createdAt: z.string(),\n updatedAt: z.string(),\n publishedAt: z.string(),\n nb_users: z.number().optional(),\n permissions: z\n .record(\n z.string(), // plugin name\n z.object({\n controllers: z.record(\n z.string(), // controller name\n z.record(\n z.string(), // action name\n z.object({\n enabled: z.boolean(),\n policy: z.string(),\n })\n )\n ),\n })\n )\n .optional(),\n users: z.array(z.unknown()).optional(),\n });\n }\n\n get permissionSchema() {\n return z.object({\n id: z.number(),\n action: z.string(),\n role: z.object({\n id: z.number(),\n name: z.string(),\n description: z.string().nullable(),\n type: z.string(),\n }),\n createdAt: z.string(),\n updatedAt: z.string(),\n });\n }\n\n get authResponseSchema() {\n return z.object({\n jwt: z.string(),\n refreshToken: z.string().optional(),\n user: this.userSchema,\n });\n }\n\n get authResponseWithoutJwtSchema() {\n return z.object({\n user: this.userSchema,\n });\n }\n\n get authRegisterResponseSchema() {\n return z.union([this.authResponseSchema, this.authResponseWithoutJwtSchema]);\n }\n\n get forgotPasswordResponseSchema() {\n return z.object({\n ok: z.boolean(),\n });\n }\n\n get sendEmailConfirmationResponseSchema() {\n return z.object({\n email: z.string(),\n sent: z.boolean(),\n });\n }\n\n get rolesResponseSchema() {\n return z.object({\n roles: z.array(this.roleSchema),\n });\n }\n\n get roleResponseSchema() {\n return z.object({\n role: this.roleSchema,\n });\n }\n\n get roleSuccessResponseSchema() {\n return z.object({\n ok: z.boolean(),\n });\n }\n\n get permissionsResponseSchema() {\n return z.object({\n permissions: z.record(\n z.string(), // plugin name\n z.object({\n controllers: z.record(\n z.string(), // controller name\n z.record(\n z.string(), // action name\n z.object({\n enabled: z.boolean(),\n policy: z.string(),\n })\n )\n ),\n })\n ),\n });\n }\n\n get loginBodySchema() {\n return z.object({\n identifier: z.string(),\n password: z.string(),\n });\n }\n\n get registerBodySchema() {\n return z.object({\n username: z.string(),\n email: z.email(),\n password: z.string(),\n });\n }\n\n get forgotPasswordBodySchema() {\n return z.object({\n email: z.email(),\n });\n }\n\n get resetPasswordBodySchema() {\n return z.object({\n code: z.string(),\n password: z.string(),\n passwordConfirmation: z.string(),\n });\n }\n\n get changePasswordBodySchema() {\n return z.object({\n currentPassword: z.string(),\n password: z.string(),\n passwordConfirmation: z.string(),\n });\n }\n\n get sendEmailConfirmationBodySchema() {\n return z.object({\n email: z.email(),\n });\n }\n\n get createUserBodySchema() {\n return z.object({\n username: z.string(),\n email: z.email(),\n password: z.string(),\n role: roleRelationInput.optional(),\n });\n }\n\n get updateUserBodySchema() {\n return z.object({\n username: z.string().optional(),\n email: z.email().optional(),\n password: z.string().optional(),\n role: roleRelationInput.optional(),\n });\n }\n\n get createRoleBodySchema() {\n return z.object({\n name: z.string(),\n description: z.string().optional(),\n type: z.string(),\n permissions: z.record(z.string(), z.unknown()).optional(),\n });\n }\n\n get updateRoleBodySchema() {\n return z.object({\n name: z.string().optional(),\n description: z.string().optional(),\n type: z.string().optional(),\n permissions: z.record(z.string(), z.unknown()).optional(),\n });\n }\n\n get userIdParam() {\n return z.string();\n }\n\n get roleIdParam() {\n return z.string();\n }\n\n get providerParam() {\n return z.string();\n }\n}\n\nmodule.exports = {\n UsersPermissionsRouteValidator,\n};\n"],"names":["AbstractRouteValidator","require$$0","z","require$$1","roleRelationEntry","object","id","union","number","string","optional","documentId","refine","entry","message","roleRelationInput","connect","array","disconnect","input","UsersPermissionsRouteValidator","userSchema","username","email","provider","confirmed","boolean","blocked","role","name","description","nullable","type","createdAt","updatedAt","publishedAt","roleSchema","nb_users","permissions","record","controllers","enabled","policy","users","unknown","permissionSchema","action","authResponseSchema","jwt","refreshToken","user","authResponseWithoutJwtSchema","authRegisterResponseSchema","forgotPasswordResponseSchema","ok","sendEmailConfirmationResponseSchema","sent","rolesResponseSchema","roles","roleResponseSchema","roleSuccessResponseSchema","permissionsResponseSchema","loginBodySchema","identifier","password","registerBodySchema","forgotPasswordBodySchema","resetPasswordBodySchema","code","passwordConfirmation","changePasswordBodySchema","currentPassword","sendEmailConfirmationBodySchema","createUserBodySchema","updateUserBodySchema","createRoleBodySchema","updateRoleBodySchema","userIdParam","roleIdParam","providerParam","strapi","_strapi","validation"],"mappings":"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"}
1
+ {"version":3,"file":"validation.mjs","sources":["../../../../server/src/routes/content-api/validation.js"],"sourcesContent":["'use strict';\n\nconst { AbstractRouteValidator } = require('@strapi/utils');\nconst z = require('zod/v4');\n\n// A single role relation entry, referenced by numeric `id` (legacy) or by\n// `documentId` (the v5 default), but must carry at least one of them. The\n// detailed rules (min one role on create, cannot remove the last role on\n// update) stay in the Yup controller validator.\nconst roleRelationEntry = z\n .object({\n id: z.union([z.number(), z.string()]).optional(),\n documentId: z.string().optional(),\n })\n .refine((entry) => entry.id != null || entry.documentId != null, {\n message: 'Relation entry must include an id or documentId',\n });\n\n// The `role` relation input: shorthand scalar (numeric id or documentId) or the\n// longhand connect/disconnect object, matching every other v5 relation. The\n// object form must carry at least one of connect/disconnect (an empty object is\n// a no-op and almost certainly a mistake).\nconst roleRelationInput = z.union([\n z.number(),\n z.string(),\n z\n .object({\n connect: z.array(roleRelationEntry).optional(),\n disconnect: z.array(roleRelationEntry).optional(),\n })\n .refine((input) => input.connect != null || input.disconnect != null, {\n message: 'Relation input must include connect or disconnect',\n }),\n]);\n\nclass UsersPermissionsRouteValidator extends AbstractRouteValidator {\n constructor(strapi) {\n super();\n this._strapi = strapi;\n }\n\n get userSchema() {\n return z.object({\n id: z.number(),\n documentId: z.string(),\n username: z.string(),\n email: z.string(),\n provider: z.string(),\n confirmed: z.boolean(),\n blocked: z.boolean(),\n role: z\n .union([\n z.number(),\n z.object({\n id: z.number(),\n name: z.string(),\n description: z.string().nullable(),\n type: z.string(),\n createdAt: z.string(),\n updatedAt: z.string(),\n }),\n ])\n .optional(),\n createdAt: z.string(),\n updatedAt: z.string(),\n publishedAt: z.string(),\n });\n }\n\n get roleSchema() {\n return z.object({\n id: z.number(),\n documentId: z.string(),\n name: z.string(),\n description: z.string().nullable(),\n type: z.string(),\n createdAt: z.string(),\n updatedAt: z.string(),\n publishedAt: z.string(),\n nb_users: z.number().optional(),\n permissions: z\n .record(\n z.string(), // plugin name\n z.object({\n controllers: z.record(\n z.string(), // controller name\n z.record(\n z.string(), // action name\n z.object({\n enabled: z.boolean(),\n policy: z.string(),\n })\n )\n ),\n })\n )\n .optional(),\n users: z.array(z.unknown()).optional(),\n });\n }\n\n get permissionSchema() {\n return z.object({\n id: z.number(),\n action: z.string(),\n role: z.object({\n id: z.number(),\n name: z.string(),\n description: z.string().nullable(),\n type: z.string(),\n }),\n createdAt: z.string(),\n updatedAt: z.string(),\n });\n }\n\n get authResponseSchema() {\n return z.object({\n jwt: z.string(),\n refreshToken: z.string().optional(),\n user: this.userSchema,\n });\n }\n\n get authResponseWithoutJwtSchema() {\n return z.object({\n user: this.userSchema,\n });\n }\n\n get authRegisterResponseSchema() {\n return z.union([this.authResponseSchema, this.authResponseWithoutJwtSchema]);\n }\n\n get forgotPasswordResponseSchema() {\n return z.object({\n ok: z.boolean(),\n });\n }\n\n get sendEmailConfirmationResponseSchema() {\n return z.object({\n email: z.string(),\n sent: z.boolean(),\n });\n }\n\n get rolesResponseSchema() {\n return z.object({\n roles: z.array(this.roleSchema),\n });\n }\n\n get roleResponseSchema() {\n return z.object({\n role: this.roleSchema,\n });\n }\n\n get roleSuccessResponseSchema() {\n return z.object({\n ok: z.boolean(),\n });\n }\n\n get permissionsResponseSchema() {\n return z.object({\n permissions: z.record(\n z.string(), // plugin name\n z.object({\n controllers: z.record(\n z.string(), // controller name\n z.record(\n z.string(), // action name\n z.object({\n enabled: z.boolean(),\n policy: z.string(),\n })\n )\n ),\n })\n ),\n });\n }\n\n get loginBodySchema() {\n return z.object({\n identifier: z.string(),\n password: z.string(),\n });\n }\n\n get registerBodySchema() {\n return z.object({\n username: z.string(),\n email: z.email(),\n password: z.string(),\n });\n }\n\n get forgotPasswordBodySchema() {\n return z.object({\n email: z.email(),\n });\n }\n\n get resetPasswordBodySchema() {\n return z.object({\n code: z.string(),\n password: z.string(),\n passwordConfirmation: z.string(),\n });\n }\n\n get changePasswordBodySchema() {\n return z.object({\n currentPassword: z.string(),\n password: z.string(),\n passwordConfirmation: z.string(),\n });\n }\n\n get sendEmailConfirmationBodySchema() {\n return z.object({\n email: z.email(),\n });\n }\n\n get createUserBodySchema() {\n return z.object({\n username: z.string(),\n email: z.email(),\n password: z.string(),\n role: roleRelationInput.optional(),\n });\n }\n\n get updateUserBodySchema() {\n return z.object({\n username: z.string().optional(),\n email: z.email().optional(),\n password: z.string().optional(),\n role: roleRelationInput.optional(),\n });\n }\n\n get createRoleBodySchema() {\n return z.object({\n name: z.string(),\n description: z.string().optional(),\n type: z.string(),\n permissions: z.record(z.string(), z.unknown()).optional(),\n });\n }\n\n get updateRoleBodySchema() {\n return z.object({\n name: z.string().optional(),\n description: z.string().optional(),\n type: z.string().optional(),\n permissions: z.record(z.string(), z.unknown()).optional(),\n });\n }\n\n get userIdParam() {\n return z.string();\n }\n\n get roleIdParam() {\n return z.string();\n }\n\n get providerParam() {\n return z.string();\n }\n}\n\nmodule.exports = {\n UsersPermissionsRouteValidator,\n};\n"],"names":["AbstractRouteValidator","require$$0","z","require$$1","roleRelationEntry","object","id","union","number","string","optional","documentId","refine","entry","message","roleRelationInput","connect","array","disconnect","input","UsersPermissionsRouteValidator","userSchema","username","email","provider","confirmed","boolean","blocked","role","name","description","nullable","type","createdAt","updatedAt","publishedAt","roleSchema","nb_users","permissions","record","controllers","enabled","policy","users","unknown","permissionSchema","action","authResponseSchema","jwt","refreshToken","user","authResponseWithoutJwtSchema","authRegisterResponseSchema","forgotPasswordResponseSchema","ok","sendEmailConfirmationResponseSchema","sent","rolesResponseSchema","roles","roleResponseSchema","roleSuccessResponseSchema","permissionsResponseSchema","loginBodySchema","identifier","password","registerBodySchema","forgotPasswordBodySchema","resetPasswordBodySchema","code","passwordConfirmation","changePasswordBodySchema","currentPassword","sendEmailConfirmationBodySchema","createUserBodySchema","updateUserBodySchema","createRoleBodySchema","updateRoleBodySchema","userIdParam","roleIdParam","providerParam","strapi","_strapi","validation"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../server/routes/index.js"],"sourcesContent":["'use strict';\n\nmodule.exports = {\n admin: require('./admin'),\n 'content-api': require('./content-api'),\n};\n"],"names":["routes","admin","require$$0","require$$1"],"mappings":";;;;;;;;;;IAEAA,MAAAA,GAAiB;QACfC,KAAAA,EAAOC,iBAAAA,EAAAA;QACP,aAAA,EAAeC,eAAAA;AACjB,KAAA;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../server/src/routes/index.js"],"sourcesContent":["'use strict';\n\nmodule.exports = {\n admin: require('./admin'),\n 'content-api': require('./content-api'),\n};\n"],"names":["routes","admin","require$$0","require$$1"],"mappings":";;;;;;;;;;IAEAA,MAAAA,GAAiB;QACfC,KAAAA,EAAOC,iBAAAA,EAAAA;QACP,aAAA,EAAeC,eAAAA;AACjB,KAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../server/routes/index.js"],"sourcesContent":["'use strict';\n\nmodule.exports = {\n admin: require('./admin'),\n 'content-api': require('./content-api'),\n};\n"],"names":["routes","admin","require$$0","require$$1"],"mappings":";;;;;;;;IAEAA,MAAAA,GAAiB;QACfC,KAAAA,EAAOC,YAAAA,EAAAA;QACP,aAAA,EAAeC,iBAAAA;AACjB,KAAA;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../server/src/routes/index.js"],"sourcesContent":["'use strict';\n\nmodule.exports = {\n admin: require('./admin'),\n 'content-api': require('./content-api'),\n};\n"],"names":["routes","admin","require$$0","require$$1"],"mappings":";;;;;;;;IAEAA,MAAAA,GAAiB;QACfC,KAAAA,EAAOC,YAAAA,EAAAA;QACP,aAAA,EAAeC,iBAAAA;AACjB,KAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sources":["../../../server/services/constants.js"],"sourcesContent":["'use strict';\n\nmodule.exports = {\n DEFAULT_ACCESS_TOKEN_LIFESPAN: 10 * 60, // 10 minutes\n DEFAULT_MAX_REFRESH_TOKEN_LIFESPAN: 30 * 24 * 60 * 60, // 30 days\n DEFAULT_IDLE_REFRESH_TOKEN_LIFESPAN: 14 * 24 * 60 * 60, // 14 days\n DEFAULT_MAX_SESSION_LIFESPAN: 1 * 24 * 60 * 60, // 1 day\n DEFAULT_IDLE_SESSION_LIFESPAN: 2 * 60 * 60, // 2 hours\n};\n"],"names":["constants","DEFAULT_ACCESS_TOKEN_LIFESPAN","DEFAULT_MAX_REFRESH_TOKEN_LIFESPAN","DEFAULT_IDLE_REFRESH_TOKEN_LIFESPAN","DEFAULT_MAX_SESSION_LIFESPAN","DEFAULT_IDLE_SESSION_LIFESPAN"],"mappings":";;;;;;;IAEAA,SAAAA,GAAiB;AACfC,QAAAA,6BAAAA,EAA+B,EAAA,GAAK,EAAA;QACpCC,kCAAAA,EAAoC,EAAA,GAAK,KAAK,EAAA,GAAK,EAAA;QACnDC,mCAAAA,EAAqC,EAAA,GAAK,KAAK,EAAA,GAAK,EAAA;QACpDC,4BAAAA,EAA8B,CAAA,GAAI,KAAK,EAAA,GAAK,EAAA;AAC5CC,QAAAA,6BAAAA,EAA+B,IAAI,EAAA,GAAK;AAC1C,KAAA;;;;;;"}
1
+ {"version":3,"file":"constants.js","sources":["../../../server/src/services/constants.js"],"sourcesContent":["'use strict';\n\nmodule.exports = {\n DEFAULT_ACCESS_TOKEN_LIFESPAN: 10 * 60, // 10 minutes\n DEFAULT_MAX_REFRESH_TOKEN_LIFESPAN: 30 * 24 * 60 * 60, // 30 days\n DEFAULT_IDLE_REFRESH_TOKEN_LIFESPAN: 14 * 24 * 60 * 60, // 14 days\n DEFAULT_MAX_SESSION_LIFESPAN: 1 * 24 * 60 * 60, // 1 day\n DEFAULT_IDLE_SESSION_LIFESPAN: 2 * 60 * 60, // 2 hours\n};\n"],"names":["constants","DEFAULT_ACCESS_TOKEN_LIFESPAN","DEFAULT_MAX_REFRESH_TOKEN_LIFESPAN","DEFAULT_IDLE_REFRESH_TOKEN_LIFESPAN","DEFAULT_MAX_SESSION_LIFESPAN","DEFAULT_IDLE_SESSION_LIFESPAN"],"mappings":";;;;;;;IAEAA,SAAAA,GAAiB;AACfC,QAAAA,6BAAAA,EAA+B,EAAA,GAAK,EAAA;QACpCC,kCAAAA,EAAoC,EAAA,GAAK,KAAK,EAAA,GAAK,EAAA;QACnDC,mCAAAA,EAAqC,EAAA,GAAK,KAAK,EAAA,GAAK,EAAA;QACpDC,4BAAAA,EAA8B,CAAA,GAAI,KAAK,EAAA,GAAK,EAAA;AAC5CC,QAAAA,6BAAAA,EAA+B,IAAI,EAAA,GAAK;AAC1C,KAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"constants.mjs","sources":["../../../server/services/constants.js"],"sourcesContent":["'use strict';\n\nmodule.exports = {\n DEFAULT_ACCESS_TOKEN_LIFESPAN: 10 * 60, // 10 minutes\n DEFAULT_MAX_REFRESH_TOKEN_LIFESPAN: 30 * 24 * 60 * 60, // 30 days\n DEFAULT_IDLE_REFRESH_TOKEN_LIFESPAN: 14 * 24 * 60 * 60, // 14 days\n DEFAULT_MAX_SESSION_LIFESPAN: 1 * 24 * 60 * 60, // 1 day\n DEFAULT_IDLE_SESSION_LIFESPAN: 2 * 60 * 60, // 2 hours\n};\n"],"names":["constants","DEFAULT_ACCESS_TOKEN_LIFESPAN","DEFAULT_MAX_REFRESH_TOKEN_LIFESPAN","DEFAULT_IDLE_REFRESH_TOKEN_LIFESPAN","DEFAULT_MAX_SESSION_LIFESPAN","DEFAULT_IDLE_SESSION_LIFESPAN"],"mappings":";;;;;IAEAA,SAAAA,GAAiB;AACfC,QAAAA,6BAAAA,EAA+B,EAAA,GAAK,EAAA;QACpCC,kCAAAA,EAAoC,EAAA,GAAK,KAAK,EAAA,GAAK,EAAA;QACnDC,mCAAAA,EAAqC,EAAA,GAAK,KAAK,EAAA,GAAK,EAAA;QACpDC,4BAAAA,EAA8B,CAAA,GAAI,KAAK,EAAA,GAAK,EAAA;AAC5CC,QAAAA,6BAAAA,EAA+B,IAAI,EAAA,GAAK;AAC1C,KAAA;;;;;;"}
1
+ {"version":3,"file":"constants.mjs","sources":["../../../server/src/services/constants.js"],"sourcesContent":["'use strict';\n\nmodule.exports = {\n DEFAULT_ACCESS_TOKEN_LIFESPAN: 10 * 60, // 10 minutes\n DEFAULT_MAX_REFRESH_TOKEN_LIFESPAN: 30 * 24 * 60 * 60, // 30 days\n DEFAULT_IDLE_REFRESH_TOKEN_LIFESPAN: 14 * 24 * 60 * 60, // 14 days\n DEFAULT_MAX_SESSION_LIFESPAN: 1 * 24 * 60 * 60, // 1 day\n DEFAULT_IDLE_SESSION_LIFESPAN: 2 * 60 * 60, // 2 hours\n};\n"],"names":["constants","DEFAULT_ACCESS_TOKEN_LIFESPAN","DEFAULT_MAX_REFRESH_TOKEN_LIFESPAN","DEFAULT_IDLE_REFRESH_TOKEN_LIFESPAN","DEFAULT_MAX_SESSION_LIFESPAN","DEFAULT_IDLE_SESSION_LIFESPAN"],"mappings":";;;;;IAEAA,SAAAA,GAAiB;AACfC,QAAAA,6BAAAA,EAA+B,EAAA,GAAK,EAAA;QACpCC,kCAAAA,EAAoC,EAAA,GAAK,KAAK,EAAA,GAAK,EAAA;QACnDC,mCAAAA,EAAqC,EAAA,GAAK,KAAK,EAAA,GAAK,EAAA;QACpDC,4BAAAA,EAA8B,CAAA,GAAI,KAAK,EAAA,GAAK,EAAA;AAC5CC,QAAAA,6BAAAA,EAA+B,IAAI,EAAA,GAAK;AAC1C,KAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../server/services/index.js"],"sourcesContent":["'use strict';\n\nconst jwt = require('./jwt');\nconst providers = require('./providers');\nconst user = require('./user');\nconst role = require('./role');\nconst usersPermissions = require('./users-permissions');\nconst providersRegistry = require('./providers-registry');\nconst permission = require('./permission');\n\nmodule.exports = {\n jwt,\n providers,\n 'providers-registry': providersRegistry,\n role,\n user,\n 'users-permissions': usersPermissions,\n permission,\n};\n"],"names":["jwt","require$$0","providers","require$$1","user","require$$2","role","require$$3","usersPermissions","require$$4","providersRegistry","require$$5","permission","require$$6","services"],"mappings":";;;;;;;;;;;;;;;AAEA,IAAA,MAAMA,KAAAA,GAAMC,aAAAA,EAAAA;AACZ,IAAA,MAAMC,WAAAA,GAAYC,mBAAAA,EAAAA;AAClB,IAAA,MAAMC,MAAAA,GAAOC,cAAAA,EAAAA;AACb,IAAA,MAAMC,MAAAA,GAAOC,cAAAA,EAAAA;AACb,IAAA,MAAMC,kBAAAA,GAAmBC,0BAAAA,EAAAA;AACzB,IAAA,MAAMC,mBAAAA,GAAoBC,2BAAAA,EAAAA;AAC1B,IAAA,MAAMC,YAAAA,GAAaC,oBAAAA,EAAAA;IAEnBC,QAAAA,GAAiB;AACfd,aAAAA,KAAAA;AACAE,mBAAAA,WAAAA;QACA,oBAAA,EAAsBQ,mBAAAA;AACtBJ,cAAAA,MAAAA;AACAF,cAAAA,MAAAA;QACA,mBAAA,EAAqBI,kBAAAA;AACrBI,oBAAAA;AACF,KAAA;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../server/src/services/index.js"],"sourcesContent":["'use strict';\n\nconst jwt = require('./jwt');\nconst providers = require('./providers');\nconst user = require('./user');\nconst role = require('./role');\nconst usersPermissions = require('./users-permissions');\nconst providersRegistry = require('./providers-registry');\nconst permission = require('./permission');\n\nmodule.exports = {\n jwt,\n providers,\n 'providers-registry': providersRegistry,\n role,\n user,\n 'users-permissions': usersPermissions,\n permission,\n};\n"],"names":["jwt","require$$0","providers","require$$1","user","require$$2","role","require$$3","usersPermissions","require$$4","providersRegistry","require$$5","permission","require$$6","services"],"mappings":";;;;;;;;;;;;;;;AAEA,IAAA,MAAMA,KAAAA,GAAMC,aAAAA,EAAAA;AACZ,IAAA,MAAMC,WAAAA,GAAYC,mBAAAA,EAAAA;AAClB,IAAA,MAAMC,MAAAA,GAAOC,cAAAA,EAAAA;AACb,IAAA,MAAMC,MAAAA,GAAOC,cAAAA,EAAAA;AACb,IAAA,MAAMC,kBAAAA,GAAmBC,0BAAAA,EAAAA;AACzB,IAAA,MAAMC,mBAAAA,GAAoBC,2BAAAA,EAAAA;AAC1B,IAAA,MAAMC,YAAAA,GAAaC,oBAAAA,EAAAA;IAEnBC,QAAAA,GAAiB;AACfd,aAAAA,KAAAA;AACAE,mBAAAA,WAAAA;QACA,oBAAA,EAAsBQ,mBAAAA;AACtBJ,cAAAA,MAAAA;AACAF,cAAAA,MAAAA;QACA,mBAAA,EAAqBI,kBAAAA;AACrBI,oBAAAA;AACF,KAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../server/services/index.js"],"sourcesContent":["'use strict';\n\nconst jwt = require('./jwt');\nconst providers = require('./providers');\nconst user = require('./user');\nconst role = require('./role');\nconst usersPermissions = require('./users-permissions');\nconst providersRegistry = require('./providers-registry');\nconst permission = require('./permission');\n\nmodule.exports = {\n jwt,\n providers,\n 'providers-registry': providersRegistry,\n role,\n user,\n 'users-permissions': usersPermissions,\n permission,\n};\n"],"names":["jwt","require$$0","providers","require$$1","user","require$$2","role","require$$3","usersPermissions","require$$4","providersRegistry","require$$5","permission","require$$6","services"],"mappings":";;;;;;;;;;;;;AAEA,IAAA,MAAMA,GAAAA,GAAMC,UAAAA,EAAAA;AACZ,IAAA,MAAMC,SAAAA,GAAYC,gBAAAA,EAAAA;AAClB,IAAA,MAAMC,IAAAA,GAAOC,WAAAA,EAAAA;AACb,IAAA,MAAMC,IAAAA,GAAOC,WAAAA,EAAAA;AACb,IAAA,MAAMC,gBAAAA,GAAmBC,uBAAAA,EAAAA;AACzB,IAAA,MAAMC,iBAAAA,GAAoBC,wBAAAA,EAAAA;AAC1B,IAAA,MAAMC,UAAAA,GAAaC,iBAAAA,EAAAA;IAEnBC,QAAAA,GAAiB;AACfd,QAAAA,GAAAA;AACAE,QAAAA,SAAAA;QACA,oBAAA,EAAsBQ,iBAAAA;AACtBJ,QAAAA,IAAAA;AACAF,QAAAA,IAAAA;QACA,mBAAA,EAAqBI,gBAAAA;AACrBI,QAAAA;AACF,KAAA;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../server/src/services/index.js"],"sourcesContent":["'use strict';\n\nconst jwt = require('./jwt');\nconst providers = require('./providers');\nconst user = require('./user');\nconst role = require('./role');\nconst usersPermissions = require('./users-permissions');\nconst providersRegistry = require('./providers-registry');\nconst permission = require('./permission');\n\nmodule.exports = {\n jwt,\n providers,\n 'providers-registry': providersRegistry,\n role,\n user,\n 'users-permissions': usersPermissions,\n permission,\n};\n"],"names":["jwt","require$$0","providers","require$$1","user","require$$2","role","require$$3","usersPermissions","require$$4","providersRegistry","require$$5","permission","require$$6","services"],"mappings":";;;;;;;;;;;;;AAEA,IAAA,MAAMA,GAAAA,GAAMC,UAAAA,EAAAA;AACZ,IAAA,MAAMC,SAAAA,GAAYC,gBAAAA,EAAAA;AAClB,IAAA,MAAMC,IAAAA,GAAOC,WAAAA,EAAAA;AACb,IAAA,MAAMC,IAAAA,GAAOC,WAAAA,EAAAA;AACb,IAAA,MAAMC,gBAAAA,GAAmBC,uBAAAA,EAAAA;AACzB,IAAA,MAAMC,iBAAAA,GAAoBC,wBAAAA,EAAAA;AAC1B,IAAA,MAAMC,UAAAA,GAAaC,iBAAAA,EAAAA;IAEnBC,QAAAA,GAAiB;AACfd,QAAAA,GAAAA;AACAE,QAAAA,SAAAA;QACA,oBAAA,EAAsBQ,iBAAAA;AACtBJ,QAAAA,IAAAA;AACAF,QAAAA,IAAAA;QACA,mBAAA,EAAqBI,gBAAAA;AACrBI,QAAAA;AACF,KAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"jwt.js","sources":["../../../server/services/jwt.js"],"sourcesContent":["'use strict';\n\n/**\n * Jwt.js service\n *\n * @description: A set of functions similar to controller's actions to avoid code duplication.\n */\n\nconst _ = require('lodash');\nconst jwt = require('jsonwebtoken');\n\nmodule.exports = ({ strapi }) => ({\n getToken(ctx) {\n let token;\n\n if (ctx.request && ctx.request.header && ctx.request.header.authorization) {\n const parts = ctx.request.header.authorization.split(/\\s+/);\n\n if (parts[0].toLowerCase() !== 'bearer' || parts.length !== 2) {\n return null;\n }\n\n token = parts[1];\n } else {\n return null;\n }\n\n return this.verify(token);\n },\n\n issue(payload, jwtOptions = {}) {\n const mode = strapi.config.get('plugin::users-permissions.jwtManagement', 'legacy-support');\n\n if (mode === 'refresh') {\n const userId = String(payload.id ?? payload.userId ?? '');\n if (!userId) {\n throw new Error('Cannot issue token: missing user id');\n }\n\n const issueRefreshToken = async () => {\n const refresh = await strapi\n .sessionManager('users-permissions')\n .generateRefreshToken(userId, undefined, { type: 'refresh' });\n\n const access = await strapi\n .sessionManager('users-permissions')\n .generateAccessToken(refresh.token);\n if ('error' in access) {\n throw new Error('Failed to generate access token');\n }\n\n return access.token;\n };\n\n return issueRefreshToken();\n }\n\n _.defaults(jwtOptions, strapi.config.get('plugin::users-permissions.jwt'));\n return jwt.sign(\n _.clone(payload.toJSON ? payload.toJSON() : payload),\n strapi.config.get('plugin::users-permissions.jwtSecret'),\n jwtOptions\n );\n },\n\n async verify(token) {\n const mode = strapi.config.get('plugin::users-permissions.jwtManagement', 'legacy-support');\n\n if (mode === 'refresh') {\n // Accept only access tokens minted by the SessionManager for UP\n const result = strapi.sessionManager('users-permissions').validateAccessToken(token);\n if (!result.isValid || result.payload.type !== 'access') {\n throw new Error('Invalid token.');\n }\n\n const user = await strapi.db\n .query('plugin::users-permissions.user')\n .findOne({ where: { id: Number(result.payload.userId) || result.payload.userId } });\n if (!user) {\n throw new Error('Invalid token.');\n }\n\n // Surface the sessionId so the strategy can flag the \"current\" session.\n return { id: user.id, sessionId: result.payload.sessionId };\n }\n\n return new Promise((resolve, reject) => {\n const jwtConfig = strapi.config.get('plugin::users-permissions.jwt', {});\n const algorithms = [jwtConfig?.algorithm || 'HS256'];\n\n jwt.verify(\n token,\n strapi.config.get('plugin::users-permissions.jwtSecret'),\n { algorithms },\n (err, tokenPayload = {}) => {\n if (err) {\n return reject(new Error('Invalid token.'));\n }\n resolve(tokenPayload);\n }\n );\n });\n },\n});\n"],"names":["_","require$$0","jwt","require$$1","jwt_1","strapi","getToken","ctx","token","request","header","authorization","parts","split","toLowerCase","length","verify","issue","payload","jwtOptions","mode","config","get","userId","String","id","Error","issueRefreshToken","refresh","sessionManager","generateRefreshToken","undefined","type","access","generateAccessToken","defaults","sign","clone","toJSON","result","validateAccessToken","isValid","user","db","query","findOne","where","Number","sessionId","Promise","resolve","reject","jwtConfig","algorithms","algorithm","err","tokenPayload"],"mappings":"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"}
1
+ {"version":3,"file":"jwt.js","sources":["../../../server/src/services/jwt.js"],"sourcesContent":["'use strict';\n\n/**\n * Jwt.js service\n *\n * @description: A set of functions similar to controller's actions to avoid code duplication.\n */\n\nconst _ = require('lodash');\nconst jwt = require('jsonwebtoken');\n\nmodule.exports = ({ strapi }) => ({\n getToken(ctx) {\n let token;\n\n if (ctx.request && ctx.request.header && ctx.request.header.authorization) {\n const parts = ctx.request.header.authorization.split(/\\s+/);\n\n if (parts[0].toLowerCase() !== 'bearer' || parts.length !== 2) {\n return null;\n }\n\n token = parts[1];\n } else {\n return null;\n }\n\n return this.verify(token);\n },\n\n issue(payload, jwtOptions = {}) {\n const mode = strapi.config.get('plugin::users-permissions.jwtManagement', 'legacy-support');\n\n if (mode === 'refresh') {\n const userId = String(payload.id ?? payload.userId ?? '');\n if (!userId) {\n throw new Error('Cannot issue token: missing user id');\n }\n\n const issueRefreshToken = async () => {\n const refresh = await strapi\n .sessionManager('users-permissions')\n .generateRefreshToken(userId, undefined, { type: 'refresh' });\n\n const access = await strapi\n .sessionManager('users-permissions')\n .generateAccessToken(refresh.token);\n if ('error' in access) {\n throw new Error('Failed to generate access token');\n }\n\n return access.token;\n };\n\n return issueRefreshToken();\n }\n\n _.defaults(jwtOptions, strapi.config.get('plugin::users-permissions.jwt'));\n return jwt.sign(\n _.clone(payload.toJSON ? payload.toJSON() : payload),\n strapi.config.get('plugin::users-permissions.jwtSecret'),\n jwtOptions\n );\n },\n\n async verify(token) {\n const mode = strapi.config.get('plugin::users-permissions.jwtManagement', 'legacy-support');\n\n if (mode === 'refresh') {\n // Accept only access tokens minted by the SessionManager for UP\n const result = strapi.sessionManager('users-permissions').validateAccessToken(token);\n if (!result.isValid || result.payload.type !== 'access') {\n throw new Error('Invalid token.');\n }\n\n const user = await strapi.db\n .query('plugin::users-permissions.user')\n .findOne({ where: { id: Number(result.payload.userId) || result.payload.userId } });\n if (!user) {\n throw new Error('Invalid token.');\n }\n\n // Surface the sessionId so the strategy can flag the \"current\" session.\n return { id: user.id, sessionId: result.payload.sessionId };\n }\n\n return new Promise((resolve, reject) => {\n const jwtConfig = strapi.config.get('plugin::users-permissions.jwt', {});\n const algorithms = [jwtConfig?.algorithm || 'HS256'];\n\n jwt.verify(\n token,\n strapi.config.get('plugin::users-permissions.jwtSecret'),\n { algorithms },\n (err, tokenPayload = {}) => {\n if (err) {\n return reject(new Error('Invalid token.'));\n }\n resolve(tokenPayload);\n }\n );\n });\n },\n});\n"],"names":["_","require$$0","jwt","require$$1","jwt_1","strapi","getToken","ctx","token","request","header","authorization","parts","split","toLowerCase","length","verify","issue","payload","jwtOptions","mode","config","get","userId","String","id","Error","issueRefreshToken","refresh","sessionManager","generateRefreshToken","undefined","type","access","generateAccessToken","defaults","sign","clone","toJSON","result","validateAccessToken","isValid","user","db","query","findOne","where","Number","sessionId","Promise","resolve","reject","jwtConfig","algorithms","algorithm","err","tokenPayload"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"jwt.mjs","sources":["../../../server/services/jwt.js"],"sourcesContent":["'use strict';\n\n/**\n * Jwt.js service\n *\n * @description: A set of functions similar to controller's actions to avoid code duplication.\n */\n\nconst _ = require('lodash');\nconst jwt = require('jsonwebtoken');\n\nmodule.exports = ({ strapi }) => ({\n getToken(ctx) {\n let token;\n\n if (ctx.request && ctx.request.header && ctx.request.header.authorization) {\n const parts = ctx.request.header.authorization.split(/\\s+/);\n\n if (parts[0].toLowerCase() !== 'bearer' || parts.length !== 2) {\n return null;\n }\n\n token = parts[1];\n } else {\n return null;\n }\n\n return this.verify(token);\n },\n\n issue(payload, jwtOptions = {}) {\n const mode = strapi.config.get('plugin::users-permissions.jwtManagement', 'legacy-support');\n\n if (mode === 'refresh') {\n const userId = String(payload.id ?? payload.userId ?? '');\n if (!userId) {\n throw new Error('Cannot issue token: missing user id');\n }\n\n const issueRefreshToken = async () => {\n const refresh = await strapi\n .sessionManager('users-permissions')\n .generateRefreshToken(userId, undefined, { type: 'refresh' });\n\n const access = await strapi\n .sessionManager('users-permissions')\n .generateAccessToken(refresh.token);\n if ('error' in access) {\n throw new Error('Failed to generate access token');\n }\n\n return access.token;\n };\n\n return issueRefreshToken();\n }\n\n _.defaults(jwtOptions, strapi.config.get('plugin::users-permissions.jwt'));\n return jwt.sign(\n _.clone(payload.toJSON ? payload.toJSON() : payload),\n strapi.config.get('plugin::users-permissions.jwtSecret'),\n jwtOptions\n );\n },\n\n async verify(token) {\n const mode = strapi.config.get('plugin::users-permissions.jwtManagement', 'legacy-support');\n\n if (mode === 'refresh') {\n // Accept only access tokens minted by the SessionManager for UP\n const result = strapi.sessionManager('users-permissions').validateAccessToken(token);\n if (!result.isValid || result.payload.type !== 'access') {\n throw new Error('Invalid token.');\n }\n\n const user = await strapi.db\n .query('plugin::users-permissions.user')\n .findOne({ where: { id: Number(result.payload.userId) || result.payload.userId } });\n if (!user) {\n throw new Error('Invalid token.');\n }\n\n // Surface the sessionId so the strategy can flag the \"current\" session.\n return { id: user.id, sessionId: result.payload.sessionId };\n }\n\n return new Promise((resolve, reject) => {\n const jwtConfig = strapi.config.get('plugin::users-permissions.jwt', {});\n const algorithms = [jwtConfig?.algorithm || 'HS256'];\n\n jwt.verify(\n token,\n strapi.config.get('plugin::users-permissions.jwtSecret'),\n { algorithms },\n (err, tokenPayload = {}) => {\n if (err) {\n return reject(new Error('Invalid token.'));\n }\n resolve(tokenPayload);\n }\n );\n });\n },\n});\n"],"names":["_","require$$0","jwt","require$$1","jwt_1","strapi","getToken","ctx","token","request","header","authorization","parts","split","toLowerCase","length","verify","issue","payload","jwtOptions","mode","config","get","userId","String","id","Error","issueRefreshToken","refresh","sessionManager","generateRefreshToken","undefined","type","access","generateAccessToken","defaults","sign","clone","toJSON","result","validateAccessToken","isValid","user","db","query","findOne","where","Number","sessionId","Promise","resolve","reject","jwtConfig","algorithms","algorithm","err","tokenPayload"],"mappings":"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"}
1
+ {"version":3,"file":"jwt.mjs","sources":["../../../server/src/services/jwt.js"],"sourcesContent":["'use strict';\n\n/**\n * Jwt.js service\n *\n * @description: A set of functions similar to controller's actions to avoid code duplication.\n */\n\nconst _ = require('lodash');\nconst jwt = require('jsonwebtoken');\n\nmodule.exports = ({ strapi }) => ({\n getToken(ctx) {\n let token;\n\n if (ctx.request && ctx.request.header && ctx.request.header.authorization) {\n const parts = ctx.request.header.authorization.split(/\\s+/);\n\n if (parts[0].toLowerCase() !== 'bearer' || parts.length !== 2) {\n return null;\n }\n\n token = parts[1];\n } else {\n return null;\n }\n\n return this.verify(token);\n },\n\n issue(payload, jwtOptions = {}) {\n const mode = strapi.config.get('plugin::users-permissions.jwtManagement', 'legacy-support');\n\n if (mode === 'refresh') {\n const userId = String(payload.id ?? payload.userId ?? '');\n if (!userId) {\n throw new Error('Cannot issue token: missing user id');\n }\n\n const issueRefreshToken = async () => {\n const refresh = await strapi\n .sessionManager('users-permissions')\n .generateRefreshToken(userId, undefined, { type: 'refresh' });\n\n const access = await strapi\n .sessionManager('users-permissions')\n .generateAccessToken(refresh.token);\n if ('error' in access) {\n throw new Error('Failed to generate access token');\n }\n\n return access.token;\n };\n\n return issueRefreshToken();\n }\n\n _.defaults(jwtOptions, strapi.config.get('plugin::users-permissions.jwt'));\n return jwt.sign(\n _.clone(payload.toJSON ? payload.toJSON() : payload),\n strapi.config.get('plugin::users-permissions.jwtSecret'),\n jwtOptions\n );\n },\n\n async verify(token) {\n const mode = strapi.config.get('plugin::users-permissions.jwtManagement', 'legacy-support');\n\n if (mode === 'refresh') {\n // Accept only access tokens minted by the SessionManager for UP\n const result = strapi.sessionManager('users-permissions').validateAccessToken(token);\n if (!result.isValid || result.payload.type !== 'access') {\n throw new Error('Invalid token.');\n }\n\n const user = await strapi.db\n .query('plugin::users-permissions.user')\n .findOne({ where: { id: Number(result.payload.userId) || result.payload.userId } });\n if (!user) {\n throw new Error('Invalid token.');\n }\n\n // Surface the sessionId so the strategy can flag the \"current\" session.\n return { id: user.id, sessionId: result.payload.sessionId };\n }\n\n return new Promise((resolve, reject) => {\n const jwtConfig = strapi.config.get('plugin::users-permissions.jwt', {});\n const algorithms = [jwtConfig?.algorithm || 'HS256'];\n\n jwt.verify(\n token,\n strapi.config.get('plugin::users-permissions.jwtSecret'),\n { algorithms },\n (err, tokenPayload = {}) => {\n if (err) {\n return reject(new Error('Invalid token.'));\n }\n resolve(tokenPayload);\n }\n );\n });\n },\n});\n"],"names":["_","require$$0","jwt","require$$1","jwt_1","strapi","getToken","ctx","token","request","header","authorization","parts","split","toLowerCase","length","verify","issue","payload","jwtOptions","mode","config","get","userId","String","id","Error","issueRefreshToken","refresh","sessionManager","generateRefreshToken","undefined","type","access","generateAccessToken","defaults","sign","clone","toJSON","result","validateAccessToken","isValid","user","db","query","findOne","where","Number","sessionId","Promise","resolve","reject","jwtConfig","algorithms","algorithm","err","tokenPayload"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"permission.js","sources":["../../../server/services/permission.js"],"sourcesContent":["'use strict';\n\nconst PUBLIC_ROLE_FILTER = { role: { type: 'public' } };\n\nmodule.exports = ({ strapi }) => ({\n /**\n * Find permissions associated to a specific role ID\n *\n * @param {number} roleID\n *\n * @return {object[]}\n */\n async findRolePermissions(roleID) {\n return strapi.db.query('plugin::users-permissions.role').load({ id: roleID }, 'permissions');\n },\n\n /**\n * Find permissions for the public role\n *\n * @return {object[]}\n */\n async findPublicPermissions() {\n return strapi.db.query('plugin::users-permissions.permission').findMany({\n where: PUBLIC_ROLE_FILTER,\n });\n },\n\n /**\n * Transform a Users-Permissions' action into a content API one\n *\n * @param {object} permission\n * @param {string} permission.action\n *\n * @return {{ action: string }}\n */\n toContentAPIPermission(permission) {\n const { action } = permission;\n\n return { action };\n },\n});\n"],"names":["PUBLIC_ROLE_FILTER","role","type","permission","strapi","findRolePermissions","roleID","db","query","load","id","findPublicPermissions","findMany","where","toContentAPIPermission","action"],"mappings":";;;;;;;AAEA,IAAA,MAAMA,kBAAAA,GAAqB;QAAEC,IAAAA,EAAM;YAAEC,IAAAA,EAAM;AAAQ;AAAE,KAAA;AAErDC,IAAAA,UAAAA,GAAiB,CAAC,EAAEC,MAAM,EAAE,IAAM;AAClC;;;;;;OAOE,MAAMC,qBAAoBC,MAAM,EAAA;AAC9B,gBAAA,OAAOF,OAAOG,EAAE,CAACC,KAAK,CAAC,gCAAA,CAAA,CAAkCC,IAAI,CAAC;oBAAEC,EAAAA,EAAIJ;mBAAU,aAAA,CAAA;AAClF,YAAA,CAAA;AAEA;;;;AAIA,OACE,MAAMK,qBAAAA,CAAAA,GAAAA;AACJ,gBAAA,OAAOP,OAAOG,EAAE,CAACC,KAAK,CAAC,sCAAA,CAAA,CAAwCI,QAAQ,CAAC;oBACtEC,KAAAA,EAAOb;AACb,iBAAA,CAAA;AACA,YAAA,CAAA;AAEA;;;;;;;AAOA,OACEc,wBAAuBX,UAAU,EAAA;gBAC/B,MAAM,EAAEY,MAAM,EAAE,GAAGZ,UAAAA;gBAEnB,OAAO;AAAEY,oBAAAA;AAAM,iBAAA;AACnB,YAAA;SACA,CAAA;;;;;;"}
1
+ {"version":3,"file":"permission.js","sources":["../../../server/src/services/permission.js"],"sourcesContent":["'use strict';\n\nconst PUBLIC_ROLE_FILTER = { role: { type: 'public' } };\n\nmodule.exports = ({ strapi }) => ({\n /**\n * Find permissions associated to a specific role ID\n *\n * @param {number} roleID\n *\n * @return {object[]}\n */\n async findRolePermissions(roleID) {\n return strapi.db.query('plugin::users-permissions.role').load({ id: roleID }, 'permissions');\n },\n\n /**\n * Find permissions for the public role\n *\n * @return {object[]}\n */\n async findPublicPermissions() {\n return strapi.db.query('plugin::users-permissions.permission').findMany({\n where: PUBLIC_ROLE_FILTER,\n });\n },\n\n /**\n * Transform a Users-Permissions' action into a content API one\n *\n * @param {object} permission\n * @param {string} permission.action\n *\n * @return {{ action: string }}\n */\n toContentAPIPermission(permission) {\n const { action } = permission;\n\n return { action };\n },\n});\n"],"names":["PUBLIC_ROLE_FILTER","role","type","permission","strapi","findRolePermissions","roleID","db","query","load","id","findPublicPermissions","findMany","where","toContentAPIPermission","action"],"mappings":";;;;;;;AAEA,IAAA,MAAMA,kBAAAA,GAAqB;QAAEC,IAAAA,EAAM;YAAEC,IAAAA,EAAM;AAAQ;AAAE,KAAA;AAErDC,IAAAA,UAAAA,GAAiB,CAAC,EAAEC,MAAM,EAAE,IAAM;AAClC;;;;;;OAOE,MAAMC,qBAAoBC,MAAM,EAAA;AAC9B,gBAAA,OAAOF,OAAOG,EAAE,CAACC,KAAK,CAAC,gCAAA,CAAA,CAAkCC,IAAI,CAAC;oBAAEC,EAAAA,EAAIJ;iBAAM,EAAI,aAAA,CAAA;AAClF,YAAA,CAAA;AAEA;;;;AAIA,OACE,MAAMK,qBAAAA,CAAAA,GAAAA;AACJ,gBAAA,OAAOP,OAAOG,EAAE,CAACC,KAAK,CAAC,sCAAA,CAAA,CAAwCI,QAAQ,CAAC;oBACtEC,KAAAA,EAAOb;AACb,iBAAA,CAAA;AACA,YAAA,CAAA;AAEA;;;;;;;AAOA,OACEc,wBAAuBX,UAAU,EAAA;gBAC/B,MAAM,EAAEY,MAAM,EAAE,GAAGZ,UAAAA;gBAEnB,OAAO;AAAEY,oBAAAA;AAAM,iBAAA;AACnB,YAAA;SACA,CAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"permission.mjs","sources":["../../../server/services/permission.js"],"sourcesContent":["'use strict';\n\nconst PUBLIC_ROLE_FILTER = { role: { type: 'public' } };\n\nmodule.exports = ({ strapi }) => ({\n /**\n * Find permissions associated to a specific role ID\n *\n * @param {number} roleID\n *\n * @return {object[]}\n */\n async findRolePermissions(roleID) {\n return strapi.db.query('plugin::users-permissions.role').load({ id: roleID }, 'permissions');\n },\n\n /**\n * Find permissions for the public role\n *\n * @return {object[]}\n */\n async findPublicPermissions() {\n return strapi.db.query('plugin::users-permissions.permission').findMany({\n where: PUBLIC_ROLE_FILTER,\n });\n },\n\n /**\n * Transform a Users-Permissions' action into a content API one\n *\n * @param {object} permission\n * @param {string} permission.action\n *\n * @return {{ action: string }}\n */\n toContentAPIPermission(permission) {\n const { action } = permission;\n\n return { action };\n },\n});\n"],"names":["PUBLIC_ROLE_FILTER","role","type","permission","strapi","findRolePermissions","roleID","db","query","load","id","findPublicPermissions","findMany","where","toContentAPIPermission","action"],"mappings":";;;;;AAEA,IAAA,MAAMA,kBAAAA,GAAqB;QAAEC,IAAAA,EAAM;YAAEC,IAAAA,EAAM;AAAQ;AAAE,KAAA;AAErDC,IAAAA,UAAAA,GAAiB,CAAC,EAAEC,MAAM,EAAE,IAAM;AAClC;;;;;;OAOE,MAAMC,qBAAoBC,MAAM,EAAA;AAC9B,gBAAA,OAAOF,OAAOG,EAAE,CAACC,KAAK,CAAC,gCAAA,CAAA,CAAkCC,IAAI,CAAC;oBAAEC,EAAAA,EAAIJ;mBAAU,aAAA,CAAA;AAClF,YAAA,CAAA;AAEA;;;;AAIA,OACE,MAAMK,qBAAAA,CAAAA,GAAAA;AACJ,gBAAA,OAAOP,OAAOG,EAAE,CAACC,KAAK,CAAC,sCAAA,CAAA,CAAwCI,QAAQ,CAAC;oBACtEC,KAAAA,EAAOb;AACb,iBAAA,CAAA;AACA,YAAA,CAAA;AAEA;;;;;;;AAOA,OACEc,wBAAuBX,UAAU,EAAA;gBAC/B,MAAM,EAAEY,MAAM,EAAE,GAAGZ,UAAAA;gBAEnB,OAAO;AAAEY,oBAAAA;AAAM,iBAAA;AACnB,YAAA;SACA,CAAA;;;;;;"}
1
+ {"version":3,"file":"permission.mjs","sources":["../../../server/src/services/permission.js"],"sourcesContent":["'use strict';\n\nconst PUBLIC_ROLE_FILTER = { role: { type: 'public' } };\n\nmodule.exports = ({ strapi }) => ({\n /**\n * Find permissions associated to a specific role ID\n *\n * @param {number} roleID\n *\n * @return {object[]}\n */\n async findRolePermissions(roleID) {\n return strapi.db.query('plugin::users-permissions.role').load({ id: roleID }, 'permissions');\n },\n\n /**\n * Find permissions for the public role\n *\n * @return {object[]}\n */\n async findPublicPermissions() {\n return strapi.db.query('plugin::users-permissions.permission').findMany({\n where: PUBLIC_ROLE_FILTER,\n });\n },\n\n /**\n * Transform a Users-Permissions' action into a content API one\n *\n * @param {object} permission\n * @param {string} permission.action\n *\n * @return {{ action: string }}\n */\n toContentAPIPermission(permission) {\n const { action } = permission;\n\n return { action };\n },\n});\n"],"names":["PUBLIC_ROLE_FILTER","role","type","permission","strapi","findRolePermissions","roleID","db","query","load","id","findPublicPermissions","findMany","where","toContentAPIPermission","action"],"mappings":";;;;;AAEA,IAAA,MAAMA,kBAAAA,GAAqB;QAAEC,IAAAA,EAAM;YAAEC,IAAAA,EAAM;AAAQ;AAAE,KAAA;AAErDC,IAAAA,UAAAA,GAAiB,CAAC,EAAEC,MAAM,EAAE,IAAM;AAClC;;;;;;OAOE,MAAMC,qBAAoBC,MAAM,EAAA;AAC9B,gBAAA,OAAOF,OAAOG,EAAE,CAACC,KAAK,CAAC,gCAAA,CAAA,CAAkCC,IAAI,CAAC;oBAAEC,EAAAA,EAAIJ;iBAAM,EAAI,aAAA,CAAA;AAClF,YAAA,CAAA;AAEA;;;;AAIA,OACE,MAAMK,qBAAAA,CAAAA,GAAAA;AACJ,gBAAA,OAAOP,OAAOG,EAAE,CAACC,KAAK,CAAC,sCAAA,CAAA,CAAwCI,QAAQ,CAAC;oBACtEC,KAAAA,EAAOb;AACb,iBAAA,CAAA;AACA,YAAA,CAAA;AAEA;;;;;;;AAOA,OACEc,wBAAuBX,UAAU,EAAA;gBAC/B,MAAM,EAAEY,MAAM,EAAE,GAAGZ,UAAAA;gBAEnB,OAAO;AAAEY,oBAAAA;AAAM,iBAAA;AACnB,YAAA;SACA,CAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"providers-registry.js","sources":["../../../server/services/providers-registry.js"],"sourcesContent":["'use strict';\n\nconst { strict: assert } = require('assert');\nconst urljoin = require('url-join');\n\nconst { verifyJwtWithJwks } = require('../utils/verify-jwt-with-jwks');\nconst { bearerGet, fetchJson } = require('../utils/provider-http');\n\nconst initProviders = ({ baseURL }) => ({\n email: {\n enabled: true,\n icon: 'envelope',\n grantConfig: {},\n },\n discord: {\n enabled: false,\n icon: 'discord',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/discord/callback`,\n scope: ['identify', 'email'],\n },\n async authCallback({ accessToken }) {\n const { body } = await bearerGet('https://discord.com/api/users/@me', accessToken);\n const username =\n body.discriminator && body.discriminator !== '0'\n ? `${body.username}#${body.discriminator}`\n : body.username;\n return {\n username,\n email: body.email,\n };\n },\n },\n facebook: {\n enabled: false,\n icon: 'facebook-square',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/facebook/callback`,\n scope: ['email'],\n },\n async authCallback({ accessToken }) {\n const { body } = await bearerGet('https://graph.facebook.com/me', accessToken, {\n qs: { fields: 'name,email' },\n });\n return {\n username: body.name,\n email: body.email,\n };\n },\n },\n google: {\n enabled: false,\n icon: 'google',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/google/callback`,\n scope: ['email'],\n },\n async authCallback({ accessToken }) {\n const { body } = await fetchJson(\n `https://oauth2.googleapis.com/tokeninfo?access_token=${encodeURIComponent(accessToken)}`\n );\n return {\n username: body.email.split('@')[0],\n email: body.email,\n };\n },\n },\n github: {\n enabled: false,\n icon: 'github',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/github/callback`,\n scope: ['user', 'user:email'],\n },\n async authCallback({ accessToken }) {\n const { body: userBody } = await bearerGet('https://api.github.com/user', accessToken, {\n headers: { 'user-agent': 'strapi' },\n });\n\n if (userBody.email) {\n return {\n username: userBody.login,\n email: userBody.email,\n };\n }\n\n const { body: emailBody } = await bearerGet(\n 'https://api.github.com/user/emails',\n accessToken,\n {\n headers: { 'user-agent': 'strapi' },\n }\n );\n\n return {\n username: userBody.login,\n email: Array.isArray(emailBody)\n ? emailBody.find((email) => email.primary === true).email\n : null,\n };\n },\n },\n microsoft: {\n enabled: false,\n icon: 'windows',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/microsoft/callback`,\n scope: ['user.read'],\n },\n async authCallback({ accessToken }) {\n const { body } = await bearerGet('https://graph.microsoft.com/v1.0/me', accessToken);\n return {\n username: body.userPrincipalName,\n email: body.userPrincipalName,\n };\n },\n },\n\n twitter: {\n enabled: false,\n icon: 'twitter',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/twitter/callback`,\n },\n async authCallback({ accessToken, query, providers }) {\n const { twitterGet } = require('../utils/oauth-connect/oauth1');\n const { body } = await twitterGet({\n url: 'https://api.twitter.com/1.1/account/verify_credentials.json',\n accessToken,\n accessCredential: query.access_secret,\n consumerKey: providers.twitter.key,\n clientCredential: providers.twitter.secret,\n qs: { include_email: 'true', screen_name: query['raw[screen_name]'] },\n });\n\n return {\n username: body.screen_name,\n email: body.email,\n };\n },\n },\n instagram: {\n enabled: false,\n icon: 'instagram',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/instagram/callback`,\n scope: ['user_profile'],\n },\n async authCallback({ accessToken }) {\n const { body } = await bearerGet('https://graph.instagram.com/me', accessToken, {\n qs: { fields: 'id,username' },\n });\n return {\n username: body.username,\n email: `${body.username}@strapi.io`,\n };\n },\n },\n vk: {\n enabled: false,\n icon: 'vk',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/vk/callback`,\n scope: ['email'],\n },\n async authCallback({ accessToken, query }) {\n const { body } = await bearerGet('https://api.vk.com/method/users.get', accessToken, {\n qs: { user_ids: query.raw.user_id, v: '5.122' },\n });\n return {\n username: `${body.response[0].last_name} ${body.response[0].first_name}`,\n email: query.raw.email,\n };\n },\n },\n\n twitch: {\n enabled: false,\n icon: 'twitch',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/twitch/callback`,\n scope: ['user:read:email'],\n },\n async authCallback({ accessToken, providers }) {\n const { body } = await bearerGet('https://api.twitch.tv/helix/users', accessToken, {\n headers: {\n 'Client-Id': providers.twitch.key,\n },\n });\n return {\n username: body.data[0].login,\n email: body.data[0].email,\n };\n },\n },\n\n linkedin: {\n enabled: false,\n icon: 'linkedin',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/linkedin/callback`,\n scope: ['r_liteprofile', 'r_emailaddress'],\n },\n async authCallback({ accessToken }) {\n const { body: profileBody } = await bearerGet('https://api.linkedin.com/v2/me', accessToken);\n const { body: emailBody } = await bearerGet(\n 'https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~))',\n accessToken\n );\n\n const email = emailBody.elements[0]['handle~'];\n\n return {\n username: profileBody.localizedFirstName,\n email: email.emailAddress,\n };\n },\n },\n\n cognito: {\n enabled: false,\n icon: 'aws',\n grantConfig: {\n key: '',\n secret: '',\n subdomain: 'my.subdomain.com',\n callback: `${baseURL}/cognito/callback`,\n scope: ['email', 'openid', 'profile'],\n },\n async authCallback({ query, providers }) {\n const jwksUrl = new URL(providers.cognito.jwksurl);\n const idToken = query.id_token;\n const tokenPayload = await verifyJwtWithJwks({ idToken, jwksUrl });\n return {\n username: tokenPayload['cognito:username'],\n email: tokenPayload.email,\n };\n },\n },\n\n reddit: {\n enabled: false,\n icon: 'reddit',\n grantConfig: {\n key: '',\n secret: '',\n callback: `${baseURL}/reddit/callback`,\n scope: ['identity'],\n },\n async authCallback({ accessToken }) {\n const { body } = await bearerGet('https://oauth.reddit.com/api/v1/me', accessToken, {\n headers: { 'user-agent': 'strapi' },\n });\n return {\n username: body.name,\n email: `${body.name}@strapi.io`,\n };\n },\n },\n\n auth0: {\n enabled: false,\n icon: '',\n grantConfig: {\n key: '',\n secret: '',\n subdomain: 'my-tenant.eu',\n callback: `${baseURL}/auth0/callback`,\n scope: ['openid', 'email', 'profile'],\n },\n async authCallback({ accessToken, providers }) {\n const { body } = await bearerGet(\n `https://${providers.auth0.subdomain}.auth0.com/userinfo`,\n accessToken\n );\n const username = body.username || body.nickname || body.name || body.email.split('@')[0];\n const email = body.email || `${username.replace(/\\s+/g, '.')}@strapi.io`;\n\n return {\n username,\n email,\n };\n },\n },\n\n cas: {\n enabled: false,\n icon: 'book',\n grantConfig: {\n key: '',\n secret: '',\n callback: `${baseURL}/cas/callback`,\n scope: ['openid email'],\n subdomain: 'my.subdomain.com/cas',\n },\n async authCallback({ accessToken, providers }) {\n const { body } = await bearerGet(\n `https://${providers.cas.subdomain}/oidc/profile`,\n accessToken\n );\n const username = body.attributes\n ? body.attributes.strapiusername || body.id || body.sub\n : body.strapiusername || body.id || body.sub;\n const email = body.attributes\n ? body.attributes.strapiemail || body.attributes.email\n : body.strapiemail || body.email;\n if (!username || !email) {\n strapi.log.warn(\n `CAS Response Body did not contain required attributes: ${JSON.stringify(body)}`\n );\n }\n return {\n username,\n email,\n };\n },\n },\n\n patreon: {\n enabled: false,\n icon: '',\n grantConfig: {\n key: '',\n secret: '',\n callback: `${baseURL}/patreon/callback`,\n scope: ['identity', 'identity[email]'],\n },\n async authCallback({ accessToken }) {\n const { body } = await bearerGet(\n 'https://www.patreon.com/api/oauth2/v2/identity?fields[user]=full_name,email',\n accessToken\n );\n const patreonData = body.data.attributes;\n return {\n username: patreonData.full_name,\n email: patreonData.email,\n };\n },\n },\n keycloak: {\n enabled: false,\n icon: '',\n grantConfig: {\n key: '',\n secret: '',\n subdomain: 'myKeycloakProvider.com/realms/myrealm',\n callback: `${baseURL}/keycloak/callback`,\n scope: ['openid', 'email', 'profile'],\n },\n async authCallback({ accessToken, providers }) {\n const { body } = await bearerGet(\n `https://${providers.keycloak.subdomain}/protocol/openid-connect/userinfo`,\n accessToken\n );\n return {\n username: body.preferred_username,\n email: body.email,\n };\n },\n },\n});\n\nmodule.exports = () => {\n const apiPrefix = strapi.config.get('api.rest.prefix');\n const baseURL = urljoin(strapi.config.server.url, apiPrefix, 'auth');\n\n const authProviders = initProviders({ baseURL });\n\n return {\n getAll() {\n return authProviders;\n },\n get(name) {\n return authProviders[name];\n },\n add(name, config) {\n authProviders[name] = config;\n },\n remove(name) {\n delete authProviders[name];\n },\n\n async run({ provider, accessToken, query, providers }) {\n const authProvider = authProviders[provider];\n\n assert(authProvider, 'Unknown auth provider');\n\n return authProvider.authCallback({ accessToken, query, providers });\n },\n };\n};\n"],"names":["strict","assert","require$$0","urljoin","require$$1","verifyJwtWithJwks","require$$2","bearerGet","fetchJson","require$$3","initProviders","baseURL","email","enabled","icon","grantConfig","discord","key","secret","callbackUrl","scope","authCallback","accessToken","body","username","discriminator","facebook","qs","fields","name","google","encodeURIComponent","split","github","userBody","headers","login","emailBody","Array","isArray","find","primary","microsoft","userPrincipalName","twitter","query","providers","twitterGet","require$$4","url","accessCredential","access_secret","consumerKey","clientCredential","include_email","screen_name","instagram","vk","user_ids","raw","user_id","v","response","last_name","first_name","twitch","data","linkedin","profileBody","elements","localizedFirstName","emailAddress","cognito","subdomain","callback","jwksUrl","URL","jwksurl","idToken","id_token","tokenPayload","reddit","auth0","nickname","replace","cas","attributes","strapiusername","id","sub","strapiemail","strapi","log","warn","JSON","stringify","patreon","patreonData","full_name","keycloak","preferred_username","providersRegistry","apiPrefix","config","get","server","authProviders","getAll","add","remove","run","provider","authProvider"],"mappings":"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"}
1
+ {"version":3,"file":"providers-registry.js","sources":["../../../server/src/services/providers-registry.js"],"sourcesContent":["'use strict';\n\nconst { strict: assert } = require('assert');\nconst urljoin = require('url-join');\n\nconst { verifyJwtWithJwks } = require('../utils/verify-jwt-with-jwks');\nconst { bearerGet, fetchJson } = require('../utils/provider-http');\n\nconst initProviders = ({ baseURL }) => ({\n email: {\n enabled: true,\n icon: 'envelope',\n grantConfig: {},\n },\n discord: {\n enabled: false,\n icon: 'discord',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/discord/callback`,\n scope: ['identify', 'email'],\n },\n async authCallback({ accessToken }) {\n const { body } = await bearerGet('https://discord.com/api/users/@me', accessToken);\n const username =\n body.discriminator && body.discriminator !== '0'\n ? `${body.username}#${body.discriminator}`\n : body.username;\n return {\n username,\n email: body.email,\n };\n },\n },\n facebook: {\n enabled: false,\n icon: 'facebook-square',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/facebook/callback`,\n scope: ['email'],\n },\n async authCallback({ accessToken }) {\n const { body } = await bearerGet('https://graph.facebook.com/me', accessToken, {\n qs: { fields: 'name,email' },\n });\n return {\n username: body.name,\n email: body.email,\n };\n },\n },\n google: {\n enabled: false,\n icon: 'google',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/google/callback`,\n scope: ['email'],\n },\n async authCallback({ accessToken }) {\n const { body } = await fetchJson(\n `https://oauth2.googleapis.com/tokeninfo?access_token=${encodeURIComponent(accessToken)}`\n );\n return {\n username: body.email.split('@')[0],\n email: body.email,\n };\n },\n },\n github: {\n enabled: false,\n icon: 'github',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/github/callback`,\n scope: ['user', 'user:email'],\n },\n async authCallback({ accessToken }) {\n const { body: userBody } = await bearerGet('https://api.github.com/user', accessToken, {\n headers: { 'user-agent': 'strapi' },\n });\n\n if (userBody.email) {\n return {\n username: userBody.login,\n email: userBody.email,\n };\n }\n\n const { body: emailBody } = await bearerGet(\n 'https://api.github.com/user/emails',\n accessToken,\n {\n headers: { 'user-agent': 'strapi' },\n }\n );\n\n return {\n username: userBody.login,\n email: Array.isArray(emailBody)\n ? emailBody.find((email) => email.primary === true).email\n : null,\n };\n },\n },\n microsoft: {\n enabled: false,\n icon: 'windows',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/microsoft/callback`,\n scope: ['user.read'],\n },\n async authCallback({ accessToken }) {\n const { body } = await bearerGet('https://graph.microsoft.com/v1.0/me', accessToken);\n return {\n username: body.userPrincipalName,\n email: body.userPrincipalName,\n };\n },\n },\n\n twitter: {\n enabled: false,\n icon: 'twitter',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/twitter/callback`,\n },\n async authCallback({ accessToken, query, providers }) {\n const { twitterGet } = require('../utils/oauth-connect/oauth1');\n const { body } = await twitterGet({\n url: 'https://api.twitter.com/1.1/account/verify_credentials.json',\n accessToken,\n accessCredential: query.access_secret,\n consumerKey: providers.twitter.key,\n clientCredential: providers.twitter.secret,\n qs: { include_email: 'true', screen_name: query['raw[screen_name]'] },\n });\n\n return {\n username: body.screen_name,\n email: body.email,\n };\n },\n },\n instagram: {\n enabled: false,\n icon: 'instagram',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/instagram/callback`,\n scope: ['user_profile'],\n },\n async authCallback({ accessToken }) {\n const { body } = await bearerGet('https://graph.instagram.com/me', accessToken, {\n qs: { fields: 'id,username' },\n });\n return {\n username: body.username,\n email: `${body.username}@strapi.io`,\n };\n },\n },\n vk: {\n enabled: false,\n icon: 'vk',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/vk/callback`,\n scope: ['email'],\n },\n async authCallback({ accessToken, query }) {\n const { body } = await bearerGet('https://api.vk.com/method/users.get', accessToken, {\n qs: { user_ids: query.raw.user_id, v: '5.122' },\n });\n return {\n username: `${body.response[0].last_name} ${body.response[0].first_name}`,\n email: query.raw.email,\n };\n },\n },\n\n twitch: {\n enabled: false,\n icon: 'twitch',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/twitch/callback`,\n scope: ['user:read:email'],\n },\n async authCallback({ accessToken, providers }) {\n const { body } = await bearerGet('https://api.twitch.tv/helix/users', accessToken, {\n headers: {\n 'Client-Id': providers.twitch.key,\n },\n });\n return {\n username: body.data[0].login,\n email: body.data[0].email,\n };\n },\n },\n\n linkedin: {\n enabled: false,\n icon: 'linkedin',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/linkedin/callback`,\n scope: ['r_liteprofile', 'r_emailaddress'],\n },\n async authCallback({ accessToken }) {\n const { body: profileBody } = await bearerGet('https://api.linkedin.com/v2/me', accessToken);\n const { body: emailBody } = await bearerGet(\n 'https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~))',\n accessToken\n );\n\n const email = emailBody.elements[0]['handle~'];\n\n return {\n username: profileBody.localizedFirstName,\n email: email.emailAddress,\n };\n },\n },\n\n cognito: {\n enabled: false,\n icon: 'aws',\n grantConfig: {\n key: '',\n secret: '',\n subdomain: 'my.subdomain.com',\n callback: `${baseURL}/cognito/callback`,\n scope: ['email', 'openid', 'profile'],\n },\n async authCallback({ query, providers }) {\n const jwksUrl = new URL(providers.cognito.jwksurl);\n const idToken = query.id_token;\n const tokenPayload = await verifyJwtWithJwks({ idToken, jwksUrl });\n return {\n username: tokenPayload['cognito:username'],\n email: tokenPayload.email,\n };\n },\n },\n\n reddit: {\n enabled: false,\n icon: 'reddit',\n grantConfig: {\n key: '',\n secret: '',\n callback: `${baseURL}/reddit/callback`,\n scope: ['identity'],\n },\n async authCallback({ accessToken }) {\n const { body } = await bearerGet('https://oauth.reddit.com/api/v1/me', accessToken, {\n headers: { 'user-agent': 'strapi' },\n });\n return {\n username: body.name,\n email: `${body.name}@strapi.io`,\n };\n },\n },\n\n auth0: {\n enabled: false,\n icon: '',\n grantConfig: {\n key: '',\n secret: '',\n subdomain: 'my-tenant.eu',\n callback: `${baseURL}/auth0/callback`,\n scope: ['openid', 'email', 'profile'],\n },\n async authCallback({ accessToken, providers }) {\n const { body } = await bearerGet(\n `https://${providers.auth0.subdomain}.auth0.com/userinfo`,\n accessToken\n );\n const username = body.username || body.nickname || body.name || body.email.split('@')[0];\n const email = body.email || `${username.replace(/\\s+/g, '.')}@strapi.io`;\n\n return {\n username,\n email,\n };\n },\n },\n\n cas: {\n enabled: false,\n icon: 'book',\n grantConfig: {\n key: '',\n secret: '',\n callback: `${baseURL}/cas/callback`,\n scope: ['openid email'],\n subdomain: 'my.subdomain.com/cas',\n },\n async authCallback({ accessToken, providers }) {\n const { body } = await bearerGet(\n `https://${providers.cas.subdomain}/oidc/profile`,\n accessToken\n );\n const username = body.attributes\n ? body.attributes.strapiusername || body.id || body.sub\n : body.strapiusername || body.id || body.sub;\n const email = body.attributes\n ? body.attributes.strapiemail || body.attributes.email\n : body.strapiemail || body.email;\n if (!username || !email) {\n strapi.log.warn(\n `CAS Response Body did not contain required attributes: ${JSON.stringify(body)}`\n );\n }\n return {\n username,\n email,\n };\n },\n },\n\n patreon: {\n enabled: false,\n icon: '',\n grantConfig: {\n key: '',\n secret: '',\n callback: `${baseURL}/patreon/callback`,\n scope: ['identity', 'identity[email]'],\n },\n async authCallback({ accessToken }) {\n const { body } = await bearerGet(\n 'https://www.patreon.com/api/oauth2/v2/identity?fields[user]=full_name,email',\n accessToken\n );\n const patreonData = body.data.attributes;\n return {\n username: patreonData.full_name,\n email: patreonData.email,\n };\n },\n },\n keycloak: {\n enabled: false,\n icon: '',\n grantConfig: {\n key: '',\n secret: '',\n subdomain: 'myKeycloakProvider.com/realms/myrealm',\n callback: `${baseURL}/keycloak/callback`,\n scope: ['openid', 'email', 'profile'],\n },\n async authCallback({ accessToken, providers }) {\n const { body } = await bearerGet(\n `https://${providers.keycloak.subdomain}/protocol/openid-connect/userinfo`,\n accessToken\n );\n return {\n username: body.preferred_username,\n email: body.email,\n };\n },\n },\n});\n\nmodule.exports = () => {\n const apiPrefix = strapi.config.get('api.rest.prefix');\n const baseURL = urljoin(strapi.config.server.url, apiPrefix, 'auth');\n\n const authProviders = initProviders({ baseURL });\n\n return {\n getAll() {\n return authProviders;\n },\n get(name) {\n return authProviders[name];\n },\n add(name, config) {\n authProviders[name] = config;\n },\n remove(name) {\n delete authProviders[name];\n },\n\n async run({ provider, accessToken, query, providers }) {\n const authProvider = authProviders[provider];\n\n assert(authProvider, 'Unknown auth provider');\n\n return authProvider.authCallback({ accessToken, query, providers });\n },\n };\n};\n"],"names":["strict","assert","require$$0","urljoin","require$$1","verifyJwtWithJwks","require$$2","bearerGet","fetchJson","require$$3","initProviders","baseURL","email","enabled","icon","grantConfig","discord","key","secret","callbackUrl","scope","authCallback","accessToken","body","username","discriminator","facebook","qs","fields","name","google","encodeURIComponent","split","github","userBody","headers","login","emailBody","Array","isArray","find","primary","microsoft","userPrincipalName","twitter","query","providers","twitterGet","require$$4","url","accessCredential","access_secret","consumerKey","clientCredential","include_email","screen_name","instagram","vk","user_ids","raw","user_id","v","response","last_name","first_name","twitch","data","linkedin","profileBody","elements","localizedFirstName","emailAddress","cognito","subdomain","callback","jwksUrl","URL","jwksurl","idToken","id_token","tokenPayload","reddit","auth0","nickname","replace","cas","attributes","strapiusername","id","sub","strapiemail","strapi","log","warn","JSON","stringify","patreon","patreonData","full_name","keycloak","preferred_username","providersRegistry","apiPrefix","config","get","server","authProviders","getAll","add","remove","run","provider","authProvider"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"providers-registry.mjs","sources":["../../../server/services/providers-registry.js"],"sourcesContent":["'use strict';\n\nconst { strict: assert } = require('assert');\nconst urljoin = require('url-join');\n\nconst { verifyJwtWithJwks } = require('../utils/verify-jwt-with-jwks');\nconst { bearerGet, fetchJson } = require('../utils/provider-http');\n\nconst initProviders = ({ baseURL }) => ({\n email: {\n enabled: true,\n icon: 'envelope',\n grantConfig: {},\n },\n discord: {\n enabled: false,\n icon: 'discord',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/discord/callback`,\n scope: ['identify', 'email'],\n },\n async authCallback({ accessToken }) {\n const { body } = await bearerGet('https://discord.com/api/users/@me', accessToken);\n const username =\n body.discriminator && body.discriminator !== '0'\n ? `${body.username}#${body.discriminator}`\n : body.username;\n return {\n username,\n email: body.email,\n };\n },\n },\n facebook: {\n enabled: false,\n icon: 'facebook-square',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/facebook/callback`,\n scope: ['email'],\n },\n async authCallback({ accessToken }) {\n const { body } = await bearerGet('https://graph.facebook.com/me', accessToken, {\n qs: { fields: 'name,email' },\n });\n return {\n username: body.name,\n email: body.email,\n };\n },\n },\n google: {\n enabled: false,\n icon: 'google',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/google/callback`,\n scope: ['email'],\n },\n async authCallback({ accessToken }) {\n const { body } = await fetchJson(\n `https://oauth2.googleapis.com/tokeninfo?access_token=${encodeURIComponent(accessToken)}`\n );\n return {\n username: body.email.split('@')[0],\n email: body.email,\n };\n },\n },\n github: {\n enabled: false,\n icon: 'github',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/github/callback`,\n scope: ['user', 'user:email'],\n },\n async authCallback({ accessToken }) {\n const { body: userBody } = await bearerGet('https://api.github.com/user', accessToken, {\n headers: { 'user-agent': 'strapi' },\n });\n\n if (userBody.email) {\n return {\n username: userBody.login,\n email: userBody.email,\n };\n }\n\n const { body: emailBody } = await bearerGet(\n 'https://api.github.com/user/emails',\n accessToken,\n {\n headers: { 'user-agent': 'strapi' },\n }\n );\n\n return {\n username: userBody.login,\n email: Array.isArray(emailBody)\n ? emailBody.find((email) => email.primary === true).email\n : null,\n };\n },\n },\n microsoft: {\n enabled: false,\n icon: 'windows',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/microsoft/callback`,\n scope: ['user.read'],\n },\n async authCallback({ accessToken }) {\n const { body } = await bearerGet('https://graph.microsoft.com/v1.0/me', accessToken);\n return {\n username: body.userPrincipalName,\n email: body.userPrincipalName,\n };\n },\n },\n\n twitter: {\n enabled: false,\n icon: 'twitter',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/twitter/callback`,\n },\n async authCallback({ accessToken, query, providers }) {\n const { twitterGet } = require('../utils/oauth-connect/oauth1');\n const { body } = await twitterGet({\n url: 'https://api.twitter.com/1.1/account/verify_credentials.json',\n accessToken,\n accessCredential: query.access_secret,\n consumerKey: providers.twitter.key,\n clientCredential: providers.twitter.secret,\n qs: { include_email: 'true', screen_name: query['raw[screen_name]'] },\n });\n\n return {\n username: body.screen_name,\n email: body.email,\n };\n },\n },\n instagram: {\n enabled: false,\n icon: 'instagram',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/instagram/callback`,\n scope: ['user_profile'],\n },\n async authCallback({ accessToken }) {\n const { body } = await bearerGet('https://graph.instagram.com/me', accessToken, {\n qs: { fields: 'id,username' },\n });\n return {\n username: body.username,\n email: `${body.username}@strapi.io`,\n };\n },\n },\n vk: {\n enabled: false,\n icon: 'vk',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/vk/callback`,\n scope: ['email'],\n },\n async authCallback({ accessToken, query }) {\n const { body } = await bearerGet('https://api.vk.com/method/users.get', accessToken, {\n qs: { user_ids: query.raw.user_id, v: '5.122' },\n });\n return {\n username: `${body.response[0].last_name} ${body.response[0].first_name}`,\n email: query.raw.email,\n };\n },\n },\n\n twitch: {\n enabled: false,\n icon: 'twitch',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/twitch/callback`,\n scope: ['user:read:email'],\n },\n async authCallback({ accessToken, providers }) {\n const { body } = await bearerGet('https://api.twitch.tv/helix/users', accessToken, {\n headers: {\n 'Client-Id': providers.twitch.key,\n },\n });\n return {\n username: body.data[0].login,\n email: body.data[0].email,\n };\n },\n },\n\n linkedin: {\n enabled: false,\n icon: 'linkedin',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/linkedin/callback`,\n scope: ['r_liteprofile', 'r_emailaddress'],\n },\n async authCallback({ accessToken }) {\n const { body: profileBody } = await bearerGet('https://api.linkedin.com/v2/me', accessToken);\n const { body: emailBody } = await bearerGet(\n 'https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~))',\n accessToken\n );\n\n const email = emailBody.elements[0]['handle~'];\n\n return {\n username: profileBody.localizedFirstName,\n email: email.emailAddress,\n };\n },\n },\n\n cognito: {\n enabled: false,\n icon: 'aws',\n grantConfig: {\n key: '',\n secret: '',\n subdomain: 'my.subdomain.com',\n callback: `${baseURL}/cognito/callback`,\n scope: ['email', 'openid', 'profile'],\n },\n async authCallback({ query, providers }) {\n const jwksUrl = new URL(providers.cognito.jwksurl);\n const idToken = query.id_token;\n const tokenPayload = await verifyJwtWithJwks({ idToken, jwksUrl });\n return {\n username: tokenPayload['cognito:username'],\n email: tokenPayload.email,\n };\n },\n },\n\n reddit: {\n enabled: false,\n icon: 'reddit',\n grantConfig: {\n key: '',\n secret: '',\n callback: `${baseURL}/reddit/callback`,\n scope: ['identity'],\n },\n async authCallback({ accessToken }) {\n const { body } = await bearerGet('https://oauth.reddit.com/api/v1/me', accessToken, {\n headers: { 'user-agent': 'strapi' },\n });\n return {\n username: body.name,\n email: `${body.name}@strapi.io`,\n };\n },\n },\n\n auth0: {\n enabled: false,\n icon: '',\n grantConfig: {\n key: '',\n secret: '',\n subdomain: 'my-tenant.eu',\n callback: `${baseURL}/auth0/callback`,\n scope: ['openid', 'email', 'profile'],\n },\n async authCallback({ accessToken, providers }) {\n const { body } = await bearerGet(\n `https://${providers.auth0.subdomain}.auth0.com/userinfo`,\n accessToken\n );\n const username = body.username || body.nickname || body.name || body.email.split('@')[0];\n const email = body.email || `${username.replace(/\\s+/g, '.')}@strapi.io`;\n\n return {\n username,\n email,\n };\n },\n },\n\n cas: {\n enabled: false,\n icon: 'book',\n grantConfig: {\n key: '',\n secret: '',\n callback: `${baseURL}/cas/callback`,\n scope: ['openid email'],\n subdomain: 'my.subdomain.com/cas',\n },\n async authCallback({ accessToken, providers }) {\n const { body } = await bearerGet(\n `https://${providers.cas.subdomain}/oidc/profile`,\n accessToken\n );\n const username = body.attributes\n ? body.attributes.strapiusername || body.id || body.sub\n : body.strapiusername || body.id || body.sub;\n const email = body.attributes\n ? body.attributes.strapiemail || body.attributes.email\n : body.strapiemail || body.email;\n if (!username || !email) {\n strapi.log.warn(\n `CAS Response Body did not contain required attributes: ${JSON.stringify(body)}`\n );\n }\n return {\n username,\n email,\n };\n },\n },\n\n patreon: {\n enabled: false,\n icon: '',\n grantConfig: {\n key: '',\n secret: '',\n callback: `${baseURL}/patreon/callback`,\n scope: ['identity', 'identity[email]'],\n },\n async authCallback({ accessToken }) {\n const { body } = await bearerGet(\n 'https://www.patreon.com/api/oauth2/v2/identity?fields[user]=full_name,email',\n accessToken\n );\n const patreonData = body.data.attributes;\n return {\n username: patreonData.full_name,\n email: patreonData.email,\n };\n },\n },\n keycloak: {\n enabled: false,\n icon: '',\n grantConfig: {\n key: '',\n secret: '',\n subdomain: 'myKeycloakProvider.com/realms/myrealm',\n callback: `${baseURL}/keycloak/callback`,\n scope: ['openid', 'email', 'profile'],\n },\n async authCallback({ accessToken, providers }) {\n const { body } = await bearerGet(\n `https://${providers.keycloak.subdomain}/protocol/openid-connect/userinfo`,\n accessToken\n );\n return {\n username: body.preferred_username,\n email: body.email,\n };\n },\n },\n});\n\nmodule.exports = () => {\n const apiPrefix = strapi.config.get('api.rest.prefix');\n const baseURL = urljoin(strapi.config.server.url, apiPrefix, 'auth');\n\n const authProviders = initProviders({ baseURL });\n\n return {\n getAll() {\n return authProviders;\n },\n get(name) {\n return authProviders[name];\n },\n add(name, config) {\n authProviders[name] = config;\n },\n remove(name) {\n delete authProviders[name];\n },\n\n async run({ provider, accessToken, query, providers }) {\n const authProvider = authProviders[provider];\n\n assert(authProvider, 'Unknown auth provider');\n\n return authProvider.authCallback({ accessToken, query, providers });\n },\n };\n};\n"],"names":["strict","assert","require$$0","urljoin","require$$1","verifyJwtWithJwks","require$$2","bearerGet","fetchJson","require$$3","initProviders","baseURL","email","enabled","icon","grantConfig","discord","key","secret","callbackUrl","scope","authCallback","accessToken","body","username","discriminator","facebook","qs","fields","name","google","encodeURIComponent","split","github","userBody","headers","login","emailBody","Array","isArray","find","primary","microsoft","userPrincipalName","twitter","query","providers","twitterGet","require$$4","url","accessCredential","access_secret","consumerKey","clientCredential","include_email","screen_name","instagram","vk","user_ids","raw","user_id","v","response","last_name","first_name","twitch","data","linkedin","profileBody","elements","localizedFirstName","emailAddress","cognito","subdomain","callback","jwksUrl","URL","jwksurl","idToken","id_token","tokenPayload","reddit","auth0","nickname","replace","cas","attributes","strapiusername","id","sub","strapiemail","strapi","log","warn","JSON","stringify","patreon","patreonData","full_name","keycloak","preferred_username","providersRegistry","apiPrefix","config","get","server","authProviders","getAll","add","remove","run","provider","authProvider"],"mappings":"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"}
1
+ {"version":3,"file":"providers-registry.mjs","sources":["../../../server/src/services/providers-registry.js"],"sourcesContent":["'use strict';\n\nconst { strict: assert } = require('assert');\nconst urljoin = require('url-join');\n\nconst { verifyJwtWithJwks } = require('../utils/verify-jwt-with-jwks');\nconst { bearerGet, fetchJson } = require('../utils/provider-http');\n\nconst initProviders = ({ baseURL }) => ({\n email: {\n enabled: true,\n icon: 'envelope',\n grantConfig: {},\n },\n discord: {\n enabled: false,\n icon: 'discord',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/discord/callback`,\n scope: ['identify', 'email'],\n },\n async authCallback({ accessToken }) {\n const { body } = await bearerGet('https://discord.com/api/users/@me', accessToken);\n const username =\n body.discriminator && body.discriminator !== '0'\n ? `${body.username}#${body.discriminator}`\n : body.username;\n return {\n username,\n email: body.email,\n };\n },\n },\n facebook: {\n enabled: false,\n icon: 'facebook-square',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/facebook/callback`,\n scope: ['email'],\n },\n async authCallback({ accessToken }) {\n const { body } = await bearerGet('https://graph.facebook.com/me', accessToken, {\n qs: { fields: 'name,email' },\n });\n return {\n username: body.name,\n email: body.email,\n };\n },\n },\n google: {\n enabled: false,\n icon: 'google',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/google/callback`,\n scope: ['email'],\n },\n async authCallback({ accessToken }) {\n const { body } = await fetchJson(\n `https://oauth2.googleapis.com/tokeninfo?access_token=${encodeURIComponent(accessToken)}`\n );\n return {\n username: body.email.split('@')[0],\n email: body.email,\n };\n },\n },\n github: {\n enabled: false,\n icon: 'github',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/github/callback`,\n scope: ['user', 'user:email'],\n },\n async authCallback({ accessToken }) {\n const { body: userBody } = await bearerGet('https://api.github.com/user', accessToken, {\n headers: { 'user-agent': 'strapi' },\n });\n\n if (userBody.email) {\n return {\n username: userBody.login,\n email: userBody.email,\n };\n }\n\n const { body: emailBody } = await bearerGet(\n 'https://api.github.com/user/emails',\n accessToken,\n {\n headers: { 'user-agent': 'strapi' },\n }\n );\n\n return {\n username: userBody.login,\n email: Array.isArray(emailBody)\n ? emailBody.find((email) => email.primary === true).email\n : null,\n };\n },\n },\n microsoft: {\n enabled: false,\n icon: 'windows',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/microsoft/callback`,\n scope: ['user.read'],\n },\n async authCallback({ accessToken }) {\n const { body } = await bearerGet('https://graph.microsoft.com/v1.0/me', accessToken);\n return {\n username: body.userPrincipalName,\n email: body.userPrincipalName,\n };\n },\n },\n\n twitter: {\n enabled: false,\n icon: 'twitter',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/twitter/callback`,\n },\n async authCallback({ accessToken, query, providers }) {\n const { twitterGet } = require('../utils/oauth-connect/oauth1');\n const { body } = await twitterGet({\n url: 'https://api.twitter.com/1.1/account/verify_credentials.json',\n accessToken,\n accessCredential: query.access_secret,\n consumerKey: providers.twitter.key,\n clientCredential: providers.twitter.secret,\n qs: { include_email: 'true', screen_name: query['raw[screen_name]'] },\n });\n\n return {\n username: body.screen_name,\n email: body.email,\n };\n },\n },\n instagram: {\n enabled: false,\n icon: 'instagram',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/instagram/callback`,\n scope: ['user_profile'],\n },\n async authCallback({ accessToken }) {\n const { body } = await bearerGet('https://graph.instagram.com/me', accessToken, {\n qs: { fields: 'id,username' },\n });\n return {\n username: body.username,\n email: `${body.username}@strapi.io`,\n };\n },\n },\n vk: {\n enabled: false,\n icon: 'vk',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/vk/callback`,\n scope: ['email'],\n },\n async authCallback({ accessToken, query }) {\n const { body } = await bearerGet('https://api.vk.com/method/users.get', accessToken, {\n qs: { user_ids: query.raw.user_id, v: '5.122' },\n });\n return {\n username: `${body.response[0].last_name} ${body.response[0].first_name}`,\n email: query.raw.email,\n };\n },\n },\n\n twitch: {\n enabled: false,\n icon: 'twitch',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/twitch/callback`,\n scope: ['user:read:email'],\n },\n async authCallback({ accessToken, providers }) {\n const { body } = await bearerGet('https://api.twitch.tv/helix/users', accessToken, {\n headers: {\n 'Client-Id': providers.twitch.key,\n },\n });\n return {\n username: body.data[0].login,\n email: body.data[0].email,\n };\n },\n },\n\n linkedin: {\n enabled: false,\n icon: 'linkedin',\n grantConfig: {\n key: '',\n secret: '',\n callbackUrl: `${baseURL}/linkedin/callback`,\n scope: ['r_liteprofile', 'r_emailaddress'],\n },\n async authCallback({ accessToken }) {\n const { body: profileBody } = await bearerGet('https://api.linkedin.com/v2/me', accessToken);\n const { body: emailBody } = await bearerGet(\n 'https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~))',\n accessToken\n );\n\n const email = emailBody.elements[0]['handle~'];\n\n return {\n username: profileBody.localizedFirstName,\n email: email.emailAddress,\n };\n },\n },\n\n cognito: {\n enabled: false,\n icon: 'aws',\n grantConfig: {\n key: '',\n secret: '',\n subdomain: 'my.subdomain.com',\n callback: `${baseURL}/cognito/callback`,\n scope: ['email', 'openid', 'profile'],\n },\n async authCallback({ query, providers }) {\n const jwksUrl = new URL(providers.cognito.jwksurl);\n const idToken = query.id_token;\n const tokenPayload = await verifyJwtWithJwks({ idToken, jwksUrl });\n return {\n username: tokenPayload['cognito:username'],\n email: tokenPayload.email,\n };\n },\n },\n\n reddit: {\n enabled: false,\n icon: 'reddit',\n grantConfig: {\n key: '',\n secret: '',\n callback: `${baseURL}/reddit/callback`,\n scope: ['identity'],\n },\n async authCallback({ accessToken }) {\n const { body } = await bearerGet('https://oauth.reddit.com/api/v1/me', accessToken, {\n headers: { 'user-agent': 'strapi' },\n });\n return {\n username: body.name,\n email: `${body.name}@strapi.io`,\n };\n },\n },\n\n auth0: {\n enabled: false,\n icon: '',\n grantConfig: {\n key: '',\n secret: '',\n subdomain: 'my-tenant.eu',\n callback: `${baseURL}/auth0/callback`,\n scope: ['openid', 'email', 'profile'],\n },\n async authCallback({ accessToken, providers }) {\n const { body } = await bearerGet(\n `https://${providers.auth0.subdomain}.auth0.com/userinfo`,\n accessToken\n );\n const username = body.username || body.nickname || body.name || body.email.split('@')[0];\n const email = body.email || `${username.replace(/\\s+/g, '.')}@strapi.io`;\n\n return {\n username,\n email,\n };\n },\n },\n\n cas: {\n enabled: false,\n icon: 'book',\n grantConfig: {\n key: '',\n secret: '',\n callback: `${baseURL}/cas/callback`,\n scope: ['openid email'],\n subdomain: 'my.subdomain.com/cas',\n },\n async authCallback({ accessToken, providers }) {\n const { body } = await bearerGet(\n `https://${providers.cas.subdomain}/oidc/profile`,\n accessToken\n );\n const username = body.attributes\n ? body.attributes.strapiusername || body.id || body.sub\n : body.strapiusername || body.id || body.sub;\n const email = body.attributes\n ? body.attributes.strapiemail || body.attributes.email\n : body.strapiemail || body.email;\n if (!username || !email) {\n strapi.log.warn(\n `CAS Response Body did not contain required attributes: ${JSON.stringify(body)}`\n );\n }\n return {\n username,\n email,\n };\n },\n },\n\n patreon: {\n enabled: false,\n icon: '',\n grantConfig: {\n key: '',\n secret: '',\n callback: `${baseURL}/patreon/callback`,\n scope: ['identity', 'identity[email]'],\n },\n async authCallback({ accessToken }) {\n const { body } = await bearerGet(\n 'https://www.patreon.com/api/oauth2/v2/identity?fields[user]=full_name,email',\n accessToken\n );\n const patreonData = body.data.attributes;\n return {\n username: patreonData.full_name,\n email: patreonData.email,\n };\n },\n },\n keycloak: {\n enabled: false,\n icon: '',\n grantConfig: {\n key: '',\n secret: '',\n subdomain: 'myKeycloakProvider.com/realms/myrealm',\n callback: `${baseURL}/keycloak/callback`,\n scope: ['openid', 'email', 'profile'],\n },\n async authCallback({ accessToken, providers }) {\n const { body } = await bearerGet(\n `https://${providers.keycloak.subdomain}/protocol/openid-connect/userinfo`,\n accessToken\n );\n return {\n username: body.preferred_username,\n email: body.email,\n };\n },\n },\n});\n\nmodule.exports = () => {\n const apiPrefix = strapi.config.get('api.rest.prefix');\n const baseURL = urljoin(strapi.config.server.url, apiPrefix, 'auth');\n\n const authProviders = initProviders({ baseURL });\n\n return {\n getAll() {\n return authProviders;\n },\n get(name) {\n return authProviders[name];\n },\n add(name, config) {\n authProviders[name] = config;\n },\n remove(name) {\n delete authProviders[name];\n },\n\n async run({ provider, accessToken, query, providers }) {\n const authProvider = authProviders[provider];\n\n assert(authProvider, 'Unknown auth provider');\n\n return authProvider.authCallback({ accessToken, query, providers });\n },\n };\n};\n"],"names":["strict","assert","require$$0","urljoin","require$$1","verifyJwtWithJwks","require$$2","bearerGet","fetchJson","require$$3","initProviders","baseURL","email","enabled","icon","grantConfig","discord","key","secret","callbackUrl","scope","authCallback","accessToken","body","username","discriminator","facebook","qs","fields","name","google","encodeURIComponent","split","github","userBody","headers","login","emailBody","Array","isArray","find","primary","microsoft","userPrincipalName","twitter","query","providers","twitterGet","require$$4","url","accessCredential","access_secret","consumerKey","clientCredential","include_email","screen_name","instagram","vk","user_ids","raw","user_id","v","response","last_name","first_name","twitch","data","linkedin","profileBody","elements","localizedFirstName","emailAddress","cognito","subdomain","callback","jwksUrl","URL","jwksurl","idToken","id_token","tokenPayload","reddit","auth0","nickname","replace","cas","attributes","strapiusername","id","sub","strapiemail","strapi","log","warn","JSON","stringify","patreon","patreonData","full_name","keycloak","preferred_username","providersRegistry","apiPrefix","config","get","server","authProviders","getAll","add","remove","run","provider","authProvider"],"mappings":";;;;;;;;;;;AAEA,IAAA,MAAM,EAAEA,MAAAA,EAAQC,MAAM,EAAE,GAAGC,UAAAA;AAC3B,IAAA,MAAMC,OAAAA,GAAUC,UAAAA;IAEhB,MAAM,EAAEC,iBAAiB,EAAE,GAAGC,wBAAAA,EAAAA;AAC9B,IAAA,MAAM,EAAEC,SAAS,EAAEC,SAAS,EAAE,GAAGC,mBAAAA,EAAAA;AAEjC,IAAA,MAAMC,gBAAgB,CAAC,EAAEC,OAAO,EAAE,IAAM;YACtCC,KAAAA,EAAO;gBACLC,OAAAA,EAAS,IAAA;gBACTC,IAAAA,EAAM,UAAA;AACNC,gBAAAA,WAAAA,EAAa;AACjB,aAAA;YACEC,OAAAA,EAAS;gBACPH,OAAAA,EAAS,KAAA;gBACTC,IAAAA,EAAM,SAAA;gBACNC,WAAAA,EAAa;oBACXE,GAAAA,EAAK,EAAA;oBACLC,MAAAA,EAAQ,EAAA;oBACRC,WAAAA,EAAa,CAAA,EAAGR,OAAAA,CAAQ,iBAAiB,CAAC;oBAC1CS,KAAAA,EAAO;AAAC,wBAAA,UAAA;AAAY,wBAAA;AAAQ;AAClC,iBAAA;gBACI,MAAMC,YAAAA,CAAAA,CAAa,EAAEC,WAAW,EAAE,EAAA;AAChC,oBAAA,MAAM,EAAEC,IAAI,EAAE,GAAG,MAAMhB,UAAU,mCAAA,EAAqCe,WAAAA,CAAAA;AACtE,oBAAA,MAAME,WACJD,IAAAA,CAAKE,aAAa,IAAIF,IAAAA,CAAKE,aAAa,KAAK,GAAA,GACzC,CAAA,EAAGF,KAAKC,QAAQ,CAAC,CAAC,EAAED,IAAAA,CAAKE,aAAa,CAAA,CAAC,GACvCF,KAAKC,QAAQ;oBACnB,OAAO;AACLA,wBAAAA,QAAAA;AACAZ,wBAAAA,KAAAA,EAAOW,KAAKX;AACpB,qBAAA;AACA,gBAAA;AACA,aAAA;YACEc,QAAAA,EAAU;gBACRb,OAAAA,EAAS,KAAA;gBACTC,IAAAA,EAAM,iBAAA;gBACNC,WAAAA,EAAa;oBACXE,GAAAA,EAAK,EAAA;oBACLC,MAAAA,EAAQ,EAAA;oBACRC,WAAAA,EAAa,CAAA,EAAGR,OAAAA,CAAQ,kBAAkB,CAAC;oBAC3CS,KAAAA,EAAO;AAAC,wBAAA;AAAQ;AACtB,iBAAA;gBACI,MAAMC,YAAAA,CAAAA,CAAa,EAAEC,WAAW,EAAE,EAAA;AAChC,oBAAA,MAAM,EAAEC,IAAI,EAAE,GAAG,MAAMhB,SAAAA,CAAU,iCAAiCe,WAAAA,EAAa;wBAC7EK,EAAAA,EAAI;4BAAEC,MAAAA,EAAQ;AAAY;AAClC,qBAAA,CAAA;oBACM,OAAO;AACLJ,wBAAAA,QAAAA,EAAUD,KAAKM,IAAI;AACnBjB,wBAAAA,KAAAA,EAAOW,KAAKX;AACpB,qBAAA;AACA,gBAAA;AACA,aAAA;YACEkB,MAAAA,EAAQ;gBACNjB,OAAAA,EAAS,KAAA;gBACTC,IAAAA,EAAM,QAAA;gBACNC,WAAAA,EAAa;oBACXE,GAAAA,EAAK,EAAA;oBACLC,MAAAA,EAAQ,EAAA;oBACRC,WAAAA,EAAa,CAAA,EAAGR,OAAAA,CAAQ,gBAAgB,CAAC;oBACzCS,KAAAA,EAAO;AAAC,wBAAA;AAAQ;AACtB,iBAAA;gBACI,MAAMC,YAAAA,CAAAA,CAAa,EAAEC,WAAW,EAAE,EAAA;oBAChC,MAAM,EAAEC,IAAI,EAAE,GAAG,MAAMf,UACrB,CAAC,qDAAqD,EAAEuB,kBAAAA,CAAmBT,WAAAA,CAAAA,CAAAA,CAAa,CAAA;oBAE1F,OAAO;AACLE,wBAAAA,QAAAA,EAAUD,KAAKX,KAAK,CAACoB,KAAK,CAAC,GAAA,CAAI,CAAC,CAAA,CAAE;AAClCpB,wBAAAA,KAAAA,EAAOW,KAAKX;AACpB,qBAAA;AACA,gBAAA;AACA,aAAA;YACEqB,MAAAA,EAAQ;gBACNpB,OAAAA,EAAS,KAAA;gBACTC,IAAAA,EAAM,QAAA;gBACNC,WAAAA,EAAa;oBACXE,GAAAA,EAAK,EAAA;oBACLC,MAAAA,EAAQ,EAAA;oBACRC,WAAAA,EAAa,CAAA,EAAGR,OAAAA,CAAQ,gBAAgB,CAAC;oBACzCS,KAAAA,EAAO;AAAC,wBAAA,MAAA;AAAQ,wBAAA;AAAa;AACnC,iBAAA;gBACI,MAAMC,YAAAA,CAAAA,CAAa,EAAEC,WAAW,EAAE,EAAA;oBAChC,MAAM,EAAEC,MAAMW,QAAQ,EAAE,GAAG,MAAM3B,SAAAA,CAAU,+BAA+Be,WAAAA,EAAa;wBACrFa,OAAAA,EAAS;4BAAE,YAAA,EAAc;AAAQ;AACzC,qBAAA,CAAA;oBAEM,IAAID,QAAAA,CAAStB,KAAK,EAAE;wBAClB,OAAO;AACLY,4BAAAA,QAAAA,EAAUU,SAASE,KAAK;AACxBxB,4BAAAA,KAAAA,EAAOsB,SAAStB;AAC1B,yBAAA;AACA,oBAAA;oBAEM,MAAM,EAAEW,MAAMc,SAAS,EAAE,GAAG,MAAM9B,SAAAA,CAChC,sCACAe,WAAAA,EACA;wBACEa,OAAAA,EAAS;4BAAE,YAAA,EAAc;AAAQ;AAC3C,qBAAA,CAAA;oBAGM,OAAO;AACLX,wBAAAA,QAAAA,EAAUU,SAASE,KAAK;AACxBxB,wBAAAA,KAAAA,EAAO0B,KAAAA,CAAMC,OAAO,CAACF,SAAAA,CAAAA,GACjBA,UAAUG,IAAI,CAAC,CAAC5B,KAAAA,GAAUA,KAAAA,CAAM6B,OAAO,KAAK,IAAA,CAAA,CAAM7B,KAAA,GAClD;AACZ,qBAAA;AACA,gBAAA;AACA,aAAA;YACE8B,SAAAA,EAAW;gBACT7B,OAAAA,EAAS,KAAA;gBACTC,IAAAA,EAAM,SAAA;gBACNC,WAAAA,EAAa;oBACXE,GAAAA,EAAK,EAAA;oBACLC,MAAAA,EAAQ,EAAA;oBACRC,WAAAA,EAAa,CAAA,EAAGR,OAAAA,CAAQ,mBAAmB,CAAC;oBAC5CS,KAAAA,EAAO;AAAC,wBAAA;AAAY;AAC1B,iBAAA;gBACI,MAAMC,YAAAA,CAAAA,CAAa,EAAEC,WAAW,EAAE,EAAA;AAChC,oBAAA,MAAM,EAAEC,IAAI,EAAE,GAAG,MAAMhB,UAAU,qCAAA,EAAuCe,WAAAA,CAAAA;oBACxE,OAAO;AACLE,wBAAAA,QAAAA,EAAUD,KAAKoB,iBAAiB;AAChC/B,wBAAAA,KAAAA,EAAOW,KAAKoB;AACpB,qBAAA;AACA,gBAAA;AACA,aAAA;YAEEC,OAAAA,EAAS;gBACP/B,OAAAA,EAAS,KAAA;gBACTC,IAAAA,EAAM,SAAA;gBACNC,WAAAA,EAAa;oBACXE,GAAAA,EAAK,EAAA;oBACLC,MAAAA,EAAQ,EAAA;oBACRC,WAAAA,EAAa,CAAA,EAAGR,OAAAA,CAAQ,iBAAiB;AAC/C,iBAAA;AACI,gBAAA,MAAMU,cAAa,EAAEC,WAAW,EAAEuB,KAAK,EAAEC,SAAS,EAAE,EAAA;oBAClD,MAAM,EAAEC,UAAU,EAAE,GAAGC,aAAAA,EAAAA;AACvB,oBAAA,MAAM,EAAEzB,IAAI,EAAE,GAAG,MAAMwB,UAAAA,CAAW;wBAChCE,GAAAA,EAAK,6DAAA;AACL3B,wBAAAA,WAAAA;AACA4B,wBAAAA,gBAAAA,EAAkBL,MAAMM,aAAa;wBACrCC,WAAAA,EAAaN,SAAAA,CAAUF,OAAO,CAAC3B,GAAG;wBAClCoC,gBAAAA,EAAkBP,SAAAA,CAAUF,OAAO,CAAC1B,MAAM;wBAC1CS,EAAAA,EAAI;4BAAE2B,aAAAA,EAAe,MAAA;4BAAQC,WAAAA,EAAaV,KAAK,CAAC,kBAAA;AAAmB;AAC3E,qBAAA,CAAA;oBAEM,OAAO;AACLrB,wBAAAA,QAAAA,EAAUD,KAAKgC,WAAW;AAC1B3C,wBAAAA,KAAAA,EAAOW,KAAKX;AACpB,qBAAA;AACA,gBAAA;AACA,aAAA;YACE4C,SAAAA,EAAW;gBACT3C,OAAAA,EAAS,KAAA;gBACTC,IAAAA,EAAM,WAAA;gBACNC,WAAAA,EAAa;oBACXE,GAAAA,EAAK,EAAA;oBACLC,MAAAA,EAAQ,EAAA;oBACRC,WAAAA,EAAa,CAAA,EAAGR,OAAAA,CAAQ,mBAAmB,CAAC;oBAC5CS,KAAAA,EAAO;AAAC,wBAAA;AAAe;AAC7B,iBAAA;gBACI,MAAMC,YAAAA,CAAAA,CAAa,EAAEC,WAAW,EAAE,EAAA;AAChC,oBAAA,MAAM,EAAEC,IAAI,EAAE,GAAG,MAAMhB,SAAAA,CAAU,kCAAkCe,WAAAA,EAAa;wBAC9EK,EAAAA,EAAI;4BAAEC,MAAAA,EAAQ;AAAa;AACnC,qBAAA,CAAA;oBACM,OAAO;AACLJ,wBAAAA,QAAAA,EAAUD,KAAKC,QAAQ;AACvBZ,wBAAAA,KAAAA,EAAO,CAAA,EAAGW,IAAAA,CAAKC,QAAQ,CAAC,UAAU;AAC1C,qBAAA;AACA,gBAAA;AACA,aAAA;YACEiC,EAAAA,EAAI;gBACF5C,OAAAA,EAAS,KAAA;gBACTC,IAAAA,EAAM,IAAA;gBACNC,WAAAA,EAAa;oBACXE,GAAAA,EAAK,EAAA;oBACLC,MAAAA,EAAQ,EAAA;oBACRC,WAAAA,EAAa,CAAA,EAAGR,OAAAA,CAAQ,YAAY,CAAC;oBACrCS,KAAAA,EAAO;AAAC,wBAAA;AAAQ;AACtB,iBAAA;AACI,gBAAA,MAAMC,YAAAA,CAAAA,CAAa,EAAEC,WAAW,EAAEuB,KAAK,EAAE,EAAA;AACvC,oBAAA,MAAM,EAAEtB,IAAI,EAAE,GAAG,MAAMhB,SAAAA,CAAU,uCAAuCe,WAAAA,EAAa;wBACnFK,EAAAA,EAAI;4BAAE+B,QAAAA,EAAUb,KAAAA,CAAMc,GAAG,CAACC,OAAO;4BAAEC,CAAAA,EAAG;AAAO;AACrD,qBAAA,CAAA;oBACM,OAAO;AACLrC,wBAAAA,QAAAA,EAAU,GAAGD,IAAAA,CAAKuC,QAAQ,CAAC,CAAA,CAAE,CAACC,SAAS,CAAC,CAAC,EAAExC,KAAKuC,QAAQ,CAAC,CAAA,CAAE,CAACE,UAAU,CAAA,CAAE;wBACxEpD,KAAAA,EAAOiC,KAAAA,CAAMc,GAAG,CAAC/C;AACzB,qBAAA;AACA,gBAAA;AACA,aAAA;YAEEqD,MAAAA,EAAQ;gBACNpD,OAAAA,EAAS,KAAA;gBACTC,IAAAA,EAAM,QAAA;gBACNC,WAAAA,EAAa;oBACXE,GAAAA,EAAK,EAAA;oBACLC,MAAAA,EAAQ,EAAA;oBACRC,WAAAA,EAAa,CAAA,EAAGR,OAAAA,CAAQ,gBAAgB,CAAC;oBACzCS,KAAAA,EAAO;AAAC,wBAAA;AAAkB;AAChC,iBAAA;AACI,gBAAA,MAAMC,YAAAA,CAAAA,CAAa,EAAEC,WAAW,EAAEwB,SAAS,EAAE,EAAA;AAC3C,oBAAA,MAAM,EAAEvB,IAAI,EAAE,GAAG,MAAMhB,SAAAA,CAAU,qCAAqCe,WAAAA,EAAa;wBACjFa,OAAAA,EAAS;4BACP,WAAA,EAAaW,SAAAA,CAAUmB,MAAM,CAAChD;AACxC;AACA,qBAAA,CAAA;oBACM,OAAO;AACLO,wBAAAA,QAAAA,EAAUD,IAAAA,CAAK2C,IAAI,CAAC,CAAA,CAAE,CAAC9B,KAAK;AAC5BxB,wBAAAA,KAAAA,EAAOW,IAAAA,CAAK2C,IAAI,CAAC,CAAA,CAAE,CAACtD;AAC5B,qBAAA;AACA,gBAAA;AACA,aAAA;YAEEuD,QAAAA,EAAU;gBACRtD,OAAAA,EAAS,KAAA;gBACTC,IAAAA,EAAM,UAAA;gBACNC,WAAAA,EAAa;oBACXE,GAAAA,EAAK,EAAA;oBACLC,MAAAA,EAAQ,EAAA;oBACRC,WAAAA,EAAa,CAAA,EAAGR,OAAAA,CAAQ,kBAAkB,CAAC;oBAC3CS,KAAAA,EAAO;AAAC,wBAAA,eAAA;AAAiB,wBAAA;AAAiB;AAChD,iBAAA;gBACI,MAAMC,YAAAA,CAAAA,CAAa,EAAEC,WAAW,EAAE,EAAA;AAChC,oBAAA,MAAM,EAAEC,IAAAA,EAAM6C,WAAW,EAAE,GAAG,MAAM7D,UAAU,gCAAA,EAAkCe,WAAAA,CAAAA;AAChF,oBAAA,MAAM,EAAEC,IAAAA,EAAMc,SAAS,EAAE,GAAG,MAAM9B,UAChC,oFAAA,EACAe,WAAAA,CAAAA;AAGF,oBAAA,MAAMV,QAAQyB,SAAAA,CAAUgC,QAAQ,CAAC,CAAA,CAAE,CAAC,SAAA,CAAU;oBAE9C,OAAO;AACL7C,wBAAAA,QAAAA,EAAU4C,YAAYE,kBAAkB;AACxC1D,wBAAAA,KAAAA,EAAOA,MAAM2D;AACrB,qBAAA;AACA,gBAAA;AACA,aAAA;YAEEC,OAAAA,EAAS;gBACP3D,OAAAA,EAAS,KAAA;gBACTC,IAAAA,EAAM,KAAA;gBACNC,WAAAA,EAAa;oBACXE,GAAAA,EAAK,EAAA;oBACLC,MAAAA,EAAQ,EAAA;oBACRuD,SAAAA,EAAW,kBAAA;oBACXC,QAAAA,EAAU,CAAA,EAAG/D,OAAAA,CAAQ,iBAAiB,CAAC;oBACvCS,KAAAA,EAAO;AAAC,wBAAA,OAAA;AAAS,wBAAA,QAAA;AAAU,wBAAA;AAAU;AAC3C,iBAAA;AACI,gBAAA,MAAMC,YAAAA,CAAAA,CAAa,EAAEwB,KAAK,EAAEC,SAAS,EAAE,EAAA;AACrC,oBAAA,MAAM6B,UAAU,IAAIC,GAAAA,CAAI9B,SAAAA,CAAU0B,OAAO,CAACK,OAAO,CAAA;oBACjD,MAAMC,OAAAA,GAAUjC,MAAMkC,QAAQ;oBAC9B,MAAMC,YAAAA,GAAe,MAAM3E,iBAAAA,CAAkB;AAAEyE,wBAAAA,OAAAA;AAASH,wBAAAA;AAAO,qBAAA,CAAA;oBAC/D,OAAO;wBACLnD,QAAAA,EAAUwD,YAAY,CAAC,kBAAA,CAAmB;AAC1CpE,wBAAAA,KAAAA,EAAOoE,aAAapE;AAC5B,qBAAA;AACA,gBAAA;AACA,aAAA;YAEEqE,MAAAA,EAAQ;gBACNpE,OAAAA,EAAS,KAAA;gBACTC,IAAAA,EAAM,QAAA;gBACNC,WAAAA,EAAa;oBACXE,GAAAA,EAAK,EAAA;oBACLC,MAAAA,EAAQ,EAAA;oBACRwD,QAAAA,EAAU,CAAA,EAAG/D,OAAAA,CAAQ,gBAAgB,CAAC;oBACtCS,KAAAA,EAAO;AAAC,wBAAA;AAAW;AACzB,iBAAA;gBACI,MAAMC,YAAAA,CAAAA,CAAa,EAAEC,WAAW,EAAE,EAAA;AAChC,oBAAA,MAAM,EAAEC,IAAI,EAAE,GAAG,MAAMhB,SAAAA,CAAU,sCAAsCe,WAAAA,EAAa;wBAClFa,OAAAA,EAAS;4BAAE,YAAA,EAAc;AAAQ;AACzC,qBAAA,CAAA;oBACM,OAAO;AACLX,wBAAAA,QAAAA,EAAUD,KAAKM,IAAI;AACnBjB,wBAAAA,KAAAA,EAAO,CAAA,EAAGW,IAAAA,CAAKM,IAAI,CAAC,UAAU;AACtC,qBAAA;AACA,gBAAA;AACA,aAAA;YAEEqD,KAAAA,EAAO;gBACLrE,OAAAA,EAAS,KAAA;gBACTC,IAAAA,EAAM,EAAA;gBACNC,WAAAA,EAAa;oBACXE,GAAAA,EAAK,EAAA;oBACLC,MAAAA,EAAQ,EAAA;oBACRuD,SAAAA,EAAW,cAAA;oBACXC,QAAAA,EAAU,CAAA,EAAG/D,OAAAA,CAAQ,eAAe,CAAC;oBACrCS,KAAAA,EAAO;AAAC,wBAAA,QAAA;AAAU,wBAAA,OAAA;AAAS,wBAAA;AAAU;AAC3C,iBAAA;AACI,gBAAA,MAAMC,YAAAA,CAAAA,CAAa,EAAEC,WAAW,EAAEwB,SAAS,EAAE,EAAA;AAC3C,oBAAA,MAAM,EAAEvB,IAAI,EAAE,GAAG,MAAMhB,UACrB,CAAC,QAAQ,EAAEuC,SAAAA,CAAUoC,KAAK,CAACT,SAAS,CAAC,mBAAmB,CAAC,EACzDnD,WAAAA,CAAAA;AAEF,oBAAA,MAAME,WAAWD,IAAAA,CAAKC,QAAQ,IAAID,IAAAA,CAAK4D,QAAQ,IAAI5D,IAAAA,CAAKM,IAAI,IAAIN,KAAKX,KAAK,CAACoB,KAAK,CAAC,GAAA,CAAI,CAAC,CAAA,CAAE;oBACxF,MAAMpB,KAAAA,GAAQW,IAAAA,CAAKX,KAAK,IAAI,CAAA,EAAGY,QAAAA,CAAS4D,OAAO,CAAC,MAAA,EAAQ,GAAA,CAAA,CAAK,UAAU,CAAC;oBAExE,OAAO;AACL5D,wBAAAA,QAAAA;AACAZ,wBAAAA;AACR,qBAAA;AACA,gBAAA;AACA,aAAA;YAEEyE,GAAAA,EAAK;gBACHxE,OAAAA,EAAS,KAAA;gBACTC,IAAAA,EAAM,MAAA;gBACNC,WAAAA,EAAa;oBACXE,GAAAA,EAAK,EAAA;oBACLC,MAAAA,EAAQ,EAAA;oBACRwD,QAAAA,EAAU,CAAA,EAAG/D,OAAAA,CAAQ,aAAa,CAAC;oBACnCS,KAAAA,EAAO;AAAC,wBAAA;AAAe,qBAAA;oBACvBqD,SAAAA,EAAW;AACjB,iBAAA;AACI,gBAAA,MAAMpD,YAAAA,CAAAA,CAAa,EAAEC,WAAW,EAAEwB,SAAS,EAAE,EAAA;AAC3C,oBAAA,MAAM,EAAEvB,IAAI,EAAE,GAAG,MAAMhB,UACrB,CAAC,QAAQ,EAAEuC,SAAAA,CAAUuC,GAAG,CAACZ,SAAS,CAAC,aAAa,CAAC,EACjDnD,WAAAA,CAAAA;oBAEF,MAAME,QAAAA,GAAWD,KAAK+D,UAAA,GAClB/D,KAAK+D,UAAU,CAACC,cAAc,IAAIhE,IAAAA,CAAKiE,EAAE,IAAIjE,IAAAA,CAAKkE,GAAA,GAClDlE,IAAAA,CAAKgE,cAAc,IAAIhE,IAAAA,CAAKiE,EAAE,IAAIjE,IAAAA,CAAKkE,GAAG;AAC9C,oBAAA,MAAM7E,QAAQW,IAAAA,CAAK+D,UAAA,GACf/D,IAAAA,CAAK+D,UAAU,CAACI,WAAW,IAAInE,IAAAA,CAAK+D,UAAU,CAAC1E,KAAA,GAC/CW,KAAKmE,WAAW,IAAInE,KAAKX,KAAK;oBAClC,IAAI,CAACY,QAAAA,IAAY,CAACZ,KAAAA,EAAO;wBACvB+E,MAAAA,CAAOC,GAAG,CAACC,IAAI,CACb,CAAC,uDAAuD,EAAEC,IAAAA,CAAKC,SAAS,CAACxE,IAAAA,CAAAA,CAAAA,CAAM,CAAA;AAEzF,oBAAA;oBACM,OAAO;AACLC,wBAAAA,QAAAA;AACAZ,wBAAAA;AACR,qBAAA;AACA,gBAAA;AACA,aAAA;YAEEoF,OAAAA,EAAS;gBACPnF,OAAAA,EAAS,KAAA;gBACTC,IAAAA,EAAM,EAAA;gBACNC,WAAAA,EAAa;oBACXE,GAAAA,EAAK,EAAA;oBACLC,MAAAA,EAAQ,EAAA;oBACRwD,QAAAA,EAAU,CAAA,EAAG/D,OAAAA,CAAQ,iBAAiB,CAAC;oBACvCS,KAAAA,EAAO;AAAC,wBAAA,UAAA;AAAY,wBAAA;AAAkB;AAC5C,iBAAA;gBACI,MAAMC,YAAAA,CAAAA,CAAa,EAAEC,WAAW,EAAE,EAAA;AAChC,oBAAA,MAAM,EAAEC,IAAI,EAAE,GAAG,MAAMhB,UACrB,6EAAA,EACAe,WAAAA,CAAAA;AAEF,oBAAA,MAAM2E,WAAAA,GAAc1E,IAAAA,CAAK2C,IAAI,CAACoB,UAAU;oBACxC,OAAO;AACL9D,wBAAAA,QAAAA,EAAUyE,YAAYC,SAAS;AAC/BtF,wBAAAA,KAAAA,EAAOqF,YAAYrF;AAC3B,qBAAA;AACA,gBAAA;AACA,aAAA;YACEuF,QAAAA,EAAU;gBACRtF,OAAAA,EAAS,KAAA;gBACTC,IAAAA,EAAM,EAAA;gBACNC,WAAAA,EAAa;oBACXE,GAAAA,EAAK,EAAA;oBACLC,MAAAA,EAAQ,EAAA;oBACRuD,SAAAA,EAAW,uCAAA;oBACXC,QAAAA,EAAU,CAAA,EAAG/D,OAAAA,CAAQ,kBAAkB,CAAC;oBACxCS,KAAAA,EAAO;AAAC,wBAAA,QAAA;AAAU,wBAAA,OAAA;AAAS,wBAAA;AAAU;AAC3C,iBAAA;AACI,gBAAA,MAAMC,YAAAA,CAAAA,CAAa,EAAEC,WAAW,EAAEwB,SAAS,EAAE,EAAA;AAC3C,oBAAA,MAAM,EAAEvB,IAAI,EAAE,GAAG,MAAMhB,UACrB,CAAC,QAAQ,EAAEuC,SAAAA,CAAUqD,QAAQ,CAAC1B,SAAS,CAAC,iCAAiC,CAAC,EAC1EnD,WAAAA,CAAAA;oBAEF,OAAO;AACLE,wBAAAA,QAAAA,EAAUD,KAAK6E,kBAAkB;AACjCxF,wBAAAA,KAAAA,EAAOW,KAAKX;AACpB,qBAAA;AACA,gBAAA;AACA;SACA,CAAA;IAEAyF,iBAAAA,GAAiB,IAAA;AACf,QAAA,MAAMC,SAAAA,GAAYX,MAAAA,CAAOY,MAAM,CAACC,GAAG,CAAC,iBAAA,CAAA;QACpC,MAAM7F,OAAAA,GAAUR,QAAQwF,MAAAA,CAAOY,MAAM,CAACE,MAAM,CAACxD,GAAG,EAAEqD,SAAAA,EAAW,MAAA,CAAA;AAE7D,QAAA,MAAMI,gBAAgBhG,aAAAA,CAAc;AAAEC,YAAAA;;QAEtC,OAAO;AACLgG,YAAAA,MAAAA,CAAAA,GAAAA;gBACE,OAAOD,aAAAA;AACb,YAAA,CAAA;AACIF,YAAAA,GAAAA,CAAAA,CAAI3E,IAAI,EAAA;gBACN,OAAO6E,aAAa,CAAC7E,IAAAA,CAAK;AAChC,YAAA,CAAA;YACI+E,GAAAA,CAAAA,CAAI/E,IAAI,EAAE0E,MAAM,EAAA;gBACdG,aAAa,CAAC7E,KAAK,GAAG0E,MAAAA;AAC5B,YAAA,CAAA;AACIM,YAAAA,MAAAA,CAAAA,CAAOhF,IAAI,EAAA;gBACT,OAAO6E,aAAa,CAAC7E,IAAAA,CAAK;AAChC,YAAA,CAAA;YAEI,MAAMiF,GAAAA,CAAAA,CAAI,EAAEC,QAAQ,EAAEzF,WAAW,EAAEuB,KAAK,EAAEC,SAAS,EAAE,EAAA;gBACnD,MAAMkE,YAAAA,GAAeN,aAAa,CAACK,QAAAA,CAAS;AAE5C9G,gBAAAA,MAAAA,CAAO+G,YAAAA,EAAc,uBAAA,CAAA;gBAErB,OAAOA,YAAAA,CAAa3F,YAAY,CAAC;AAAEC,oBAAAA,WAAAA;AAAauB,oBAAAA,KAAAA;AAAOC,oBAAAA;AAAS,iBAAA,CAAA;AACtE,YAAA;AACA,SAAA;AACA,IAAA,CAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"providers.js","sources":["../../../server/services/providers.js"],"sourcesContent":["'use strict';\n\n/**\n * Module dependencies\n */\n\n// Public node modules.\nconst _ = require('lodash');\nconst urlJoin = require('url-join');\n\nconst { getService, findValidUsername } = require('../utils');\n\nmodule.exports = ({ strapi }) => {\n /**\n * Helper to get profiles\n *\n * @param {String} provider\n */\n\n const getProfile = async (provider, query) => {\n const accessToken = query.access_token || query.code || query.oauth_token;\n\n const providers = await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'grant' })\n .get();\n\n return getService('providers-registry').run({\n provider,\n query,\n accessToken,\n providers,\n });\n };\n\n /**\n * Connect thanks to a third-party provider.\n *\n *\n * @param {String} provider\n * @param {String} accessToken\n *\n * @return {*}\n */\n\n const connect = async (provider, query) => {\n const accessToken = query.access_token || query.code || query.oauth_token;\n\n if (!accessToken) {\n throw new Error('No access_token.');\n }\n\n // Get the profile.\n const profile = await getProfile(provider, query);\n\n const email = _.toLower(profile.email);\n\n // We need at least the mail.\n if (!email) {\n throw new Error('Email was not available.');\n }\n\n const users = await strapi.db.query('plugin::users-permissions.user').findMany({\n where: { email },\n });\n\n const advancedSettings = await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'advanced' })\n .get();\n\n const user = _.find(users, { provider });\n\n if (_.isEmpty(user) && !advancedSettings.allow_register) {\n throw new Error('Register action is actually not available.');\n }\n\n if (!_.isEmpty(user)) {\n return user;\n }\n\n if (users.length && advancedSettings.unique_email) {\n throw new Error('Email is already taken.');\n }\n\n // Retrieve default role.\n const defaultRole = await strapi.db\n .query('plugin::users-permissions.role')\n .findOne({ where: { type: advancedSettings.default_role } });\n\n // Username: prefer profile, else email prefix; findValidUsername ensures valid + unique\n const base = (profile.username && profile.username.trim()) || email.split('@')[0];\n const username = await findValidUsername(base);\n\n // Create the new user.\n const newUser = {\n ...profile,\n username, // use the generated or provided username\n email, // overwrite with lowercased email\n provider,\n role: defaultRole.id,\n confirmed: true,\n };\n\n const createdUser = await strapi.db\n .query('plugin::users-permissions.user')\n .create({ data: newUser });\n\n return createdUser;\n };\n\n const buildRedirectUri = (provider = '') => {\n const apiPrefix = strapi.config.get('api.rest.prefix');\n return urlJoin(\n strapi.config.get('server.absoluteUrl'),\n apiPrefix,\n 'connect',\n provider,\n 'callback'\n );\n };\n\n return {\n connect,\n buildRedirectUri,\n };\n};\n"],"names":["_","require$$0","urlJoin","require$$1","getService","findValidUsername","require$$2","providers","strapi","getProfile","provider","query","accessToken","access_token","code","oauth_token","store","type","name","key","get","run","connect","Error","profile","email","toLower","users","db","findMany","where","advancedSettings","user","find","isEmpty","allow_register","length","unique_email","defaultRole","findOne","default_role","base","username","trim","split","newUser","role","id","confirmed","createdUser","create","data","buildRedirectUri","apiPrefix","config"],"mappings":"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"}
1
+ {"version":3,"file":"providers.js","sources":["../../../server/src/services/providers.js"],"sourcesContent":["'use strict';\n\n/**\n * Module dependencies\n */\n\n// Public node modules.\nconst _ = require('lodash');\nconst urlJoin = require('url-join');\n\nconst { getService, findValidUsername } = require('../utils');\n\nmodule.exports = ({ strapi }) => {\n /**\n * Helper to get profiles\n *\n * @param {String} provider\n */\n\n const getProfile = async (provider, query) => {\n const accessToken = query.access_token || query.code || query.oauth_token;\n\n const providers = await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'grant' })\n .get();\n\n return getService('providers-registry').run({\n provider,\n query,\n accessToken,\n providers,\n });\n };\n\n /**\n * Connect thanks to a third-party provider.\n *\n *\n * @param {String} provider\n * @param {String} accessToken\n *\n * @return {*}\n */\n\n const connect = async (provider, query) => {\n const accessToken = query.access_token || query.code || query.oauth_token;\n\n if (!accessToken) {\n throw new Error('No access_token.');\n }\n\n // Get the profile.\n const profile = await getProfile(provider, query);\n\n const email = _.toLower(profile.email);\n\n // We need at least the mail.\n if (!email) {\n throw new Error('Email was not available.');\n }\n\n const users = await strapi.db.query('plugin::users-permissions.user').findMany({\n where: { email },\n });\n\n const advancedSettings = await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'advanced' })\n .get();\n\n const user = _.find(users, { provider });\n\n if (_.isEmpty(user) && !advancedSettings.allow_register) {\n throw new Error('Register action is actually not available.');\n }\n\n if (!_.isEmpty(user)) {\n return user;\n }\n\n if (users.length && advancedSettings.unique_email) {\n throw new Error('Email is already taken.');\n }\n\n // Retrieve default role.\n const defaultRole = await strapi.db\n .query('plugin::users-permissions.role')\n .findOne({ where: { type: advancedSettings.default_role } });\n\n // Username: prefer profile, else email prefix; findValidUsername ensures valid + unique\n const base = (profile.username && profile.username.trim()) || email.split('@')[0];\n const username = await findValidUsername(base);\n\n // Create the new user.\n const newUser = {\n ...profile,\n username, // use the generated or provided username\n email, // overwrite with lowercased email\n provider,\n role: defaultRole.id,\n confirmed: true,\n };\n\n const createdUser = await strapi.db\n .query('plugin::users-permissions.user')\n .create({ data: newUser });\n\n return createdUser;\n };\n\n const buildRedirectUri = (provider = '') => {\n const apiPrefix = strapi.config.get('api.rest.prefix');\n return urlJoin(\n strapi.config.get('server.absoluteUrl'),\n apiPrefix,\n 'connect',\n provider,\n 'callback'\n );\n };\n\n return {\n connect,\n buildRedirectUri,\n };\n};\n"],"names":["_","require$$0","urlJoin","require$$1","getService","findValidUsername","require$$2","providers","strapi","getProfile","provider","query","accessToken","access_token","code","oauth_token","store","type","name","key","get","run","connect","Error","profile","email","toLower","users","db","findMany","where","advancedSettings","user","find","isEmpty","allow_register","length","unique_email","defaultRole","findOne","default_role","base","username","trim","split","newUser","role","id","confirmed","createdUser","create","data","buildRedirectUri","apiPrefix","config"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"providers.mjs","sources":["../../../server/services/providers.js"],"sourcesContent":["'use strict';\n\n/**\n * Module dependencies\n */\n\n// Public node modules.\nconst _ = require('lodash');\nconst urlJoin = require('url-join');\n\nconst { getService, findValidUsername } = require('../utils');\n\nmodule.exports = ({ strapi }) => {\n /**\n * Helper to get profiles\n *\n * @param {String} provider\n */\n\n const getProfile = async (provider, query) => {\n const accessToken = query.access_token || query.code || query.oauth_token;\n\n const providers = await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'grant' })\n .get();\n\n return getService('providers-registry').run({\n provider,\n query,\n accessToken,\n providers,\n });\n };\n\n /**\n * Connect thanks to a third-party provider.\n *\n *\n * @param {String} provider\n * @param {String} accessToken\n *\n * @return {*}\n */\n\n const connect = async (provider, query) => {\n const accessToken = query.access_token || query.code || query.oauth_token;\n\n if (!accessToken) {\n throw new Error('No access_token.');\n }\n\n // Get the profile.\n const profile = await getProfile(provider, query);\n\n const email = _.toLower(profile.email);\n\n // We need at least the mail.\n if (!email) {\n throw new Error('Email was not available.');\n }\n\n const users = await strapi.db.query('plugin::users-permissions.user').findMany({\n where: { email },\n });\n\n const advancedSettings = await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'advanced' })\n .get();\n\n const user = _.find(users, { provider });\n\n if (_.isEmpty(user) && !advancedSettings.allow_register) {\n throw new Error('Register action is actually not available.');\n }\n\n if (!_.isEmpty(user)) {\n return user;\n }\n\n if (users.length && advancedSettings.unique_email) {\n throw new Error('Email is already taken.');\n }\n\n // Retrieve default role.\n const defaultRole = await strapi.db\n .query('plugin::users-permissions.role')\n .findOne({ where: { type: advancedSettings.default_role } });\n\n // Username: prefer profile, else email prefix; findValidUsername ensures valid + unique\n const base = (profile.username && profile.username.trim()) || email.split('@')[0];\n const username = await findValidUsername(base);\n\n // Create the new user.\n const newUser = {\n ...profile,\n username, // use the generated or provided username\n email, // overwrite with lowercased email\n provider,\n role: defaultRole.id,\n confirmed: true,\n };\n\n const createdUser = await strapi.db\n .query('plugin::users-permissions.user')\n .create({ data: newUser });\n\n return createdUser;\n };\n\n const buildRedirectUri = (provider = '') => {\n const apiPrefix = strapi.config.get('api.rest.prefix');\n return urlJoin(\n strapi.config.get('server.absoluteUrl'),\n apiPrefix,\n 'connect',\n provider,\n 'callback'\n );\n };\n\n return {\n connect,\n buildRedirectUri,\n };\n};\n"],"names":["_","require$$0","urlJoin","require$$1","getService","findValidUsername","require$$2","providers","strapi","getProfile","provider","query","accessToken","access_token","code","oauth_token","store","type","name","key","get","run","connect","Error","profile","email","toLower","users","db","findMany","where","advancedSettings","user","find","isEmpty","allow_register","length","unique_email","defaultRole","findOne","default_role","base","username","trim","split","newUser","role","id","confirmed","createdUser","create","data","buildRedirectUri","apiPrefix","config"],"mappings":"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"}
1
+ {"version":3,"file":"providers.mjs","sources":["../../../server/src/services/providers.js"],"sourcesContent":["'use strict';\n\n/**\n * Module dependencies\n */\n\n// Public node modules.\nconst _ = require('lodash');\nconst urlJoin = require('url-join');\n\nconst { getService, findValidUsername } = require('../utils');\n\nmodule.exports = ({ strapi }) => {\n /**\n * Helper to get profiles\n *\n * @param {String} provider\n */\n\n const getProfile = async (provider, query) => {\n const accessToken = query.access_token || query.code || query.oauth_token;\n\n const providers = await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'grant' })\n .get();\n\n return getService('providers-registry').run({\n provider,\n query,\n accessToken,\n providers,\n });\n };\n\n /**\n * Connect thanks to a third-party provider.\n *\n *\n * @param {String} provider\n * @param {String} accessToken\n *\n * @return {*}\n */\n\n const connect = async (provider, query) => {\n const accessToken = query.access_token || query.code || query.oauth_token;\n\n if (!accessToken) {\n throw new Error('No access_token.');\n }\n\n // Get the profile.\n const profile = await getProfile(provider, query);\n\n const email = _.toLower(profile.email);\n\n // We need at least the mail.\n if (!email) {\n throw new Error('Email was not available.');\n }\n\n const users = await strapi.db.query('plugin::users-permissions.user').findMany({\n where: { email },\n });\n\n const advancedSettings = await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'advanced' })\n .get();\n\n const user = _.find(users, { provider });\n\n if (_.isEmpty(user) && !advancedSettings.allow_register) {\n throw new Error('Register action is actually not available.');\n }\n\n if (!_.isEmpty(user)) {\n return user;\n }\n\n if (users.length && advancedSettings.unique_email) {\n throw new Error('Email is already taken.');\n }\n\n // Retrieve default role.\n const defaultRole = await strapi.db\n .query('plugin::users-permissions.role')\n .findOne({ where: { type: advancedSettings.default_role } });\n\n // Username: prefer profile, else email prefix; findValidUsername ensures valid + unique\n const base = (profile.username && profile.username.trim()) || email.split('@')[0];\n const username = await findValidUsername(base);\n\n // Create the new user.\n const newUser = {\n ...profile,\n username, // use the generated or provided username\n email, // overwrite with lowercased email\n provider,\n role: defaultRole.id,\n confirmed: true,\n };\n\n const createdUser = await strapi.db\n .query('plugin::users-permissions.user')\n .create({ data: newUser });\n\n return createdUser;\n };\n\n const buildRedirectUri = (provider = '') => {\n const apiPrefix = strapi.config.get('api.rest.prefix');\n return urlJoin(\n strapi.config.get('server.absoluteUrl'),\n apiPrefix,\n 'connect',\n provider,\n 'callback'\n );\n };\n\n return {\n connect,\n buildRedirectUri,\n };\n};\n"],"names":["_","require$$0","urlJoin","require$$1","getService","findValidUsername","require$$2","providers","strapi","getProfile","provider","query","accessToken","access_token","code","oauth_token","store","type","name","key","get","run","connect","Error","profile","email","toLower","users","db","findMany","where","advancedSettings","user","find","isEmpty","allow_register","length","unique_email","defaultRole","findOne","default_role","base","username","trim","split","newUser","role","id","confirmed","createdUser","create","data","buildRedirectUri","apiPrefix","config"],"mappings":"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"}