@strapi/plugin-users-permissions 0.0.0-experimental.6340da17068c3bed7fb006e7bcc554c71129e282 → 0.0.0-experimental.63624e21eb5b0713345a0cf2f68f1c40eab427bc
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.cjs +2 -0
- package/admin/src/pages/EmailTemplates/components/EmailForm.jsx +3 -1
- package/admin/src/pages/Roles/pages/EditPage.jsx +1 -1
- package/admin/src/pages/Roles/pages/ListPage/index.jsx +1 -1
- package/admin/src/translations/en.json +1 -0
- package/admin/src/translations/es.json +1 -1
- package/admin/src/translations/ko.json +2 -1
- package/admin/src/translations/sv.json +1 -1
- package/admin/src/translations/uk.json +1 -1
- package/dist/admin/pages/EmailTemplates/components/EmailForm.js +2 -1
- package/dist/admin/pages/EmailTemplates/components/EmailForm.js.map +1 -1
- package/dist/admin/pages/EmailTemplates/components/EmailForm.mjs +2 -1
- package/dist/admin/pages/EmailTemplates/components/EmailForm.mjs.map +1 -1
- package/dist/admin/pages/Roles/pages/EditPage.js +1 -1
- package/dist/admin/pages/Roles/pages/EditPage.js.map +1 -1
- package/dist/admin/pages/Roles/pages/EditPage.mjs +1 -1
- package/dist/admin/pages/Roles/pages/EditPage.mjs.map +1 -1
- package/dist/admin/pages/Roles/pages/ListPage/index.js +1 -1
- package/dist/admin/pages/Roles/pages/ListPage/index.js.map +1 -1
- package/dist/admin/pages/Roles/pages/ListPage/index.mjs +1 -1
- package/dist/admin/pages/Roles/pages/ListPage/index.mjs.map +1 -1
- package/dist/admin/translations/en.json.js +1 -0
- package/dist/admin/translations/en.json.js.map +1 -1
- package/dist/admin/translations/en.json.mjs +1 -0
- package/dist/admin/translations/en.json.mjs.map +1 -1
- package/dist/admin/translations/es.json.js +1 -1
- package/dist/admin/translations/es.json.mjs +1 -1
- package/dist/admin/translations/ko.json.js +2 -1
- package/dist/admin/translations/ko.json.js.map +1 -1
- package/dist/admin/translations/ko.json.mjs +2 -1
- package/dist/admin/translations/ko.json.mjs.map +1 -1
- package/dist/admin/translations/sv.json.js +1 -1
- package/dist/admin/translations/sv.json.mjs +1 -1
- package/dist/admin/translations/uk.json.js +1 -1
- package/dist/admin/translations/uk.json.mjs +1 -1
- package/dist/server/_virtual/_node_crypto.js +10 -0
- package/dist/server/_virtual/_node_crypto.js.map +1 -0
- package/dist/server/_virtual/_node_crypto.mjs +7 -0
- package/dist/server/_virtual/_node_crypto.mjs.map +1 -0
- package/dist/server/_virtual/_node_url.js +10 -0
- package/dist/server/_virtual/_node_url.js.map +1 -0
- package/dist/server/_virtual/_node_url.mjs +7 -0
- package/dist/server/_virtual/_node_url.mjs.map +1 -0
- package/dist/server/bootstrap/index.js.map +1 -1
- package/dist/server/bootstrap/index.mjs.map +1 -1
- package/dist/server/bootstrap/users-permissions-actions.js.map +1 -1
- package/dist/server/bootstrap/users-permissions-actions.mjs.map +1 -1
- package/dist/server/config.js.map +1 -1
- package/dist/server/config.mjs.map +1 -1
- package/dist/server/content-types/index.js.map +1 -1
- package/dist/server/content-types/index.mjs.map +1 -1
- package/dist/server/content-types/permission/index.js.map +1 -1
- package/dist/server/content-types/permission/index.mjs.map +1 -1
- package/dist/server/content-types/role/index.js.map +1 -1
- package/dist/server/content-types/role/index.mjs.map +1 -1
- package/dist/server/content-types/user/index.js.map +1 -1
- package/dist/server/content-types/user/index.mjs.map +1 -1
- package/dist/server/content-types/user/schema-config.js.map +1 -1
- package/dist/server/content-types/user/schema-config.mjs.map +1 -1
- package/dist/server/controllers/auth.js +38 -30
- package/dist/server/controllers/auth.js.map +1 -1
- package/dist/server/controllers/auth.mjs +38 -28
- package/dist/server/controllers/auth.mjs.map +1 -1
- package/dist/server/controllers/content-manager-user.js.map +1 -1
- package/dist/server/controllers/content-manager-user.mjs.map +1 -1
- package/dist/server/controllers/index.js.map +1 -1
- package/dist/server/controllers/index.mjs.map +1 -1
- package/dist/server/controllers/permissions.js.map +1 -1
- package/dist/server/controllers/permissions.mjs.map +1 -1
- package/dist/server/controllers/role.js.map +1 -1
- package/dist/server/controllers/role.mjs.map +1 -1
- package/dist/server/controllers/settings.js.map +1 -1
- package/dist/server/controllers/settings.mjs.map +1 -1
- package/dist/server/controllers/user.js.map +1 -1
- package/dist/server/controllers/user.mjs.map +1 -1
- package/dist/server/controllers/validation/auth.js +6 -6
- package/dist/server/controllers/validation/auth.js.map +1 -1
- package/dist/server/controllers/validation/auth.mjs +6 -6
- package/dist/server/controllers/validation/auth.mjs.map +1 -1
- package/dist/server/controllers/validation/email-template.js +1 -4
- package/dist/server/controllers/validation/email-template.js.map +1 -1
- package/dist/server/controllers/validation/email-template.mjs +1 -3
- package/dist/server/controllers/validation/email-template.mjs.map +1 -1
- package/dist/server/controllers/validation/user.js.map +1 -1
- package/dist/server/controllers/validation/user.mjs.map +1 -1
- package/dist/server/graphql/index.js.map +1 -1
- package/dist/server/graphql/index.mjs.map +1 -1
- package/dist/server/graphql/mutations/auth/change-password.js +7 -4
- package/dist/server/graphql/mutations/auth/change-password.js.map +1 -1
- package/dist/server/graphql/mutations/auth/change-password.mjs +7 -4
- package/dist/server/graphql/mutations/auth/change-password.mjs.map +1 -1
- package/dist/server/graphql/mutations/auth/email-confirmation.js +1 -1
- package/dist/server/graphql/mutations/auth/email-confirmation.js.map +1 -1
- package/dist/server/graphql/mutations/auth/email-confirmation.mjs +1 -1
- package/dist/server/graphql/mutations/auth/email-confirmation.mjs.map +1 -1
- package/dist/server/graphql/mutations/auth/forgot-password.js +7 -4
- package/dist/server/graphql/mutations/auth/forgot-password.js.map +1 -1
- package/dist/server/graphql/mutations/auth/forgot-password.mjs +7 -4
- package/dist/server/graphql/mutations/auth/forgot-password.mjs.map +1 -1
- package/dist/server/graphql/mutations/auth/login.js +10 -7
- package/dist/server/graphql/mutations/auth/login.js.map +1 -1
- package/dist/server/graphql/mutations/auth/login.mjs +10 -7
- package/dist/server/graphql/mutations/auth/login.mjs.map +1 -1
- package/dist/server/graphql/mutations/auth/rate-limit.js +63 -0
- package/dist/server/graphql/mutations/auth/rate-limit.js.map +1 -0
- package/dist/server/graphql/mutations/auth/rate-limit.mjs +61 -0
- package/dist/server/graphql/mutations/auth/rate-limit.mjs.map +1 -0
- package/dist/server/graphql/mutations/auth/register.js +7 -4
- package/dist/server/graphql/mutations/auth/register.js.map +1 -1
- package/dist/server/graphql/mutations/auth/register.mjs +7 -4
- package/dist/server/graphql/mutations/auth/register.mjs.map +1 -1
- package/dist/server/graphql/mutations/auth/reset-password.js +7 -4
- package/dist/server/graphql/mutations/auth/reset-password.js.map +1 -1
- package/dist/server/graphql/mutations/auth/reset-password.mjs +7 -4
- package/dist/server/graphql/mutations/auth/reset-password.mjs.map +1 -1
- package/dist/server/graphql/mutations/crud/role/create-role.js +1 -1
- package/dist/server/graphql/mutations/crud/role/create-role.js.map +1 -1
- package/dist/server/graphql/mutations/crud/role/create-role.mjs +1 -1
- package/dist/server/graphql/mutations/crud/role/create-role.mjs.map +1 -1
- package/dist/server/graphql/mutations/crud/role/delete-role.js.map +1 -1
- package/dist/server/graphql/mutations/crud/role/delete-role.mjs.map +1 -1
- package/dist/server/graphql/mutations/crud/role/update-role.js.map +1 -1
- package/dist/server/graphql/mutations/crud/role/update-role.mjs.map +1 -1
- package/dist/server/graphql/mutations/crud/user/create-user.js +1 -1
- package/dist/server/graphql/mutations/crud/user/create-user.js.map +1 -1
- package/dist/server/graphql/mutations/crud/user/create-user.mjs +1 -1
- package/dist/server/graphql/mutations/crud/user/create-user.mjs.map +1 -1
- package/dist/server/graphql/mutations/crud/user/delete-user.js.map +1 -1
- package/dist/server/graphql/mutations/crud/user/delete-user.mjs.map +1 -1
- package/dist/server/graphql/mutations/crud/user/update-user.js +1 -1
- package/dist/server/graphql/mutations/crud/user/update-user.js.map +1 -1
- package/dist/server/graphql/mutations/crud/user/update-user.mjs +1 -1
- package/dist/server/graphql/mutations/crud/user/update-user.mjs.map +1 -1
- package/dist/server/graphql/mutations/index.js.map +1 -1
- package/dist/server/graphql/mutations/index.mjs.map +1 -1
- package/dist/server/graphql/queries/index.js.map +1 -1
- package/dist/server/graphql/queries/index.mjs.map +1 -1
- package/dist/server/graphql/queries/me.js.map +1 -1
- package/dist/server/graphql/queries/me.mjs.map +1 -1
- package/dist/server/graphql/resolvers-configs.js.map +1 -1
- package/dist/server/graphql/resolvers-configs.mjs.map +1 -1
- package/dist/server/graphql/types/create-role-payload.js.map +1 -1
- package/dist/server/graphql/types/create-role-payload.mjs.map +1 -1
- package/dist/server/graphql/types/delete-role-payload.js.map +1 -1
- package/dist/server/graphql/types/delete-role-payload.mjs.map +1 -1
- package/dist/server/graphql/types/index.js.map +1 -1
- package/dist/server/graphql/types/index.mjs.map +1 -1
- package/dist/server/graphql/types/login-input.js.map +1 -1
- package/dist/server/graphql/types/login-input.mjs.map +1 -1
- package/dist/server/graphql/types/login-payload.js.map +1 -1
- package/dist/server/graphql/types/login-payload.mjs.map +1 -1
- package/dist/server/graphql/types/me-role.js.map +1 -1
- package/dist/server/graphql/types/me-role.mjs.map +1 -1
- package/dist/server/graphql/types/me.js.map +1 -1
- package/dist/server/graphql/types/me.mjs.map +1 -1
- package/dist/server/graphql/types/password-payload.js.map +1 -1
- package/dist/server/graphql/types/password-payload.mjs.map +1 -1
- package/dist/server/graphql/types/register-input.js.map +1 -1
- package/dist/server/graphql/types/register-input.mjs.map +1 -1
- package/dist/server/graphql/types/update-role-payload.js.map +1 -1
- package/dist/server/graphql/types/update-role-payload.mjs.map +1 -1
- package/dist/server/graphql/types/user-input.js.map +1 -1
- package/dist/server/graphql/types/user-input.mjs.map +1 -1
- package/dist/server/graphql/utils.js +4 -4
- package/dist/server/graphql/utils.js.map +1 -1
- package/dist/server/graphql/utils.mjs +4 -4
- package/dist/server/graphql/utils.mjs.map +1 -1
- package/dist/server/index.js +2 -2
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +3 -3
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/index2.js +8 -8
- package/dist/server/index2.js.map +1 -1
- package/dist/server/index2.mjs +8 -8
- package/dist/server/index2.mjs.map +1 -1
- package/dist/server/middlewares/index.js.map +1 -1
- package/dist/server/middlewares/index.mjs.map +1 -1
- package/dist/server/middlewares/rateLimit.js +5 -5
- package/dist/server/middlewares/rateLimit.js.map +1 -1
- package/dist/server/middlewares/rateLimit.mjs +5 -5
- package/dist/server/middlewares/rateLimit.mjs.map +1 -1
- package/dist/server/register.js.map +1 -1
- package/dist/server/register.mjs.map +1 -1
- package/dist/server/routes/admin/index.js.map +1 -1
- package/dist/server/routes/admin/index.mjs.map +1 -1
- package/dist/server/routes/admin/permissions.js.map +1 -1
- package/dist/server/routes/admin/permissions.mjs.map +1 -1
- package/dist/server/routes/admin/role.js.map +1 -1
- package/dist/server/routes/admin/role.mjs.map +1 -1
- package/dist/server/routes/admin/settings.js.map +1 -1
- package/dist/server/routes/admin/settings.mjs.map +1 -1
- package/dist/server/routes/content-api/auth.js.map +1 -1
- package/dist/server/routes/content-api/auth.mjs.map +1 -1
- package/dist/server/routes/content-api/index.js.map +1 -1
- package/dist/server/routes/content-api/index.mjs.map +1 -1
- package/dist/server/routes/content-api/permissions.js.map +1 -1
- package/dist/server/routes/content-api/permissions.mjs.map +1 -1
- package/dist/server/routes/content-api/role.js.map +1 -1
- package/dist/server/routes/content-api/role.mjs.map +1 -1
- package/dist/server/routes/content-api/user.js.map +1 -1
- package/dist/server/routes/content-api/user.mjs.map +1 -1
- package/dist/server/routes/content-api/validation.js.map +1 -1
- package/dist/server/routes/content-api/validation.mjs.map +1 -1
- package/dist/server/routes/index.js.map +1 -1
- package/dist/server/routes/index.mjs.map +1 -1
- package/dist/server/services/constants.js.map +1 -1
- package/dist/server/services/constants.mjs.map +1 -1
- package/dist/server/services/index.js.map +1 -1
- package/dist/server/services/index.mjs.map +1 -1
- package/dist/server/services/jwt.js.map +1 -1
- package/dist/server/services/jwt.mjs.map +1 -1
- package/dist/server/services/permission.js.map +1 -1
- package/dist/server/services/permission.mjs.map +1 -1
- package/dist/server/services/providers-registry.js +188 -248
- package/dist/server/services/providers-registry.js.map +1 -1
- package/dist/server/services/providers-registry.mjs +188 -245
- package/dist/server/services/providers-registry.mjs.map +1 -1
- package/dist/server/services/providers.js +15 -11
- package/dist/server/services/providers.js.map +1 -1
- package/dist/server/services/providers.mjs +14 -10
- package/dist/server/services/providers.mjs.map +1 -1
- package/dist/server/services/role.js +2 -2
- package/dist/server/services/role.js.map +1 -1
- package/dist/server/services/role.mjs +2 -2
- package/dist/server/services/role.mjs.map +1 -1
- package/dist/server/services/user.js +14 -14
- package/dist/server/services/user.js.map +1 -1
- package/dist/server/services/user.mjs +13 -13
- package/dist/server/services/user.mjs.map +1 -1
- package/dist/server/services/users-permissions.js +17 -20
- package/dist/server/services/users-permissions.js.map +1 -1
- package/dist/server/services/users-permissions.mjs +16 -18
- package/dist/server/services/users-permissions.mjs.map +1 -1
- package/dist/server/strategies/users-permissions.js +9 -8
- package/dist/server/strategies/users-permissions.js.map +1 -1
- package/dist/server/strategies/users-permissions.mjs +9 -8
- package/dist/server/strategies/users-permissions.mjs.map +1 -1
- package/dist/server/utils/index.js.map +1 -1
- package/dist/server/utils/index.mjs.map +1 -1
- package/dist/server/utils/oauth-connect/index.js +241 -0
- package/dist/server/utils/oauth-connect/index.js.map +1 -0
- package/dist/server/utils/oauth-connect/index.mjs +235 -0
- package/dist/server/utils/oauth-connect/index.mjs.map +1 -0
- package/dist/server/utils/oauth-connect/oauth1.js +138 -0
- package/dist/server/utils/oauth-connect/oauth1.js.map +1 -0
- package/dist/server/utils/oauth-connect/oauth1.mjs +136 -0
- package/dist/server/utils/oauth-connect/oauth1.mjs.map +1 -0
- package/dist/server/utils/oauth-connect/oauth2.js +117 -0
- package/dist/server/utils/oauth-connect/oauth2.js.map +1 -0
- package/dist/server/utils/oauth-connect/oauth2.mjs +115 -0
- package/dist/server/utils/oauth-connect/oauth2.mjs.map +1 -0
- package/dist/server/utils/oauth-connect/providers.js +109 -0
- package/dist/server/utils/oauth-connect/providers.js.map +1 -0
- package/dist/server/utils/oauth-connect/providers.mjs +107 -0
- package/dist/server/utils/oauth-connect/providers.mjs.map +1 -0
- package/dist/server/utils/provider-http.js +52 -0
- package/dist/server/utils/provider-http.js.map +1 -0
- package/dist/server/utils/provider-http.mjs +50 -0
- package/dist/server/utils/provider-http.mjs.map +1 -0
- package/dist/server/utils/refresh-cookie-options.js.map +1 -1
- package/dist/server/utils/refresh-cookie-options.mjs.map +1 -1
- package/dist/server/utils/sanitize/index.js.map +1 -1
- package/dist/server/utils/sanitize/index.mjs.map +1 -1
- package/dist/server/utils/sanitize/sanitizers.js +1 -1
- package/dist/server/utils/sanitize/sanitizers.js.map +1 -1
- package/dist/server/utils/sanitize/sanitizers.mjs +1 -1
- package/dist/server/utils/sanitize/sanitizers.mjs.map +1 -1
- package/dist/server/utils/sanitize/visitors/index.js.map +1 -1
- package/dist/server/utils/sanitize/visitors/index.mjs.map +1 -1
- package/dist/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.js.map +1 -1
- package/dist/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.mjs.map +1 -1
- package/dist/server/utils/trim-grant-session-response.js +67 -0
- package/dist/server/utils/trim-grant-session-response.js.map +1 -0
- package/dist/server/utils/trim-grant-session-response.mjs +65 -0
- package/dist/server/utils/trim-grant-session-response.mjs.map +1 -0
- package/dist/server/utils/verify-jwt-with-jwks.js +60 -0
- package/dist/server/utils/verify-jwt-with-jwks.js.map +1 -0
- package/dist/server/utils/verify-jwt-with-jwks.mjs +54 -0
- package/dist/server/utils/verify-jwt-with-jwks.mjs.map +1 -0
- package/jsconfig.json +7 -0
- package/package.json +28 -18
- package/rollup.config.mjs +2 -2
- package/server/{controllers → src/controllers}/auth.js +36 -29
- package/server/{controllers → src/controllers}/validation/auth.js +6 -6
- package/server/{controllers → src/controllers}/validation/email-template.js +1 -2
- package/server/{graphql → src/graphql}/mutations/auth/change-password.js +6 -6
- package/server/{graphql → src/graphql}/mutations/auth/email-confirmation.js +1 -1
- package/server/{graphql → src/graphql}/mutations/auth/forgot-password.js +6 -6
- package/server/{graphql → src/graphql}/mutations/auth/login.js +11 -7
- package/server/src/graphql/mutations/auth/rate-limit.js +62 -0
- package/server/{graphql → src/graphql}/mutations/auth/register.js +6 -6
- package/server/{graphql → src/graphql}/mutations/auth/reset-password.js +6 -6
- package/server/{graphql → src/graphql}/mutations/crud/role/create-role.js +1 -1
- package/server/{graphql → src/graphql}/mutations/crud/user/create-user.js +1 -1
- package/server/{graphql → src/graphql}/mutations/crud/user/update-user.js +1 -1
- package/server/{graphql → src/graphql}/utils.js +3 -3
- package/server/{middlewares → src/middlewares}/rateLimit.js +4 -4
- package/server/src/services/providers-registry.js +487 -0
- package/server/{services → src/services}/providers.js +9 -7
- package/server/{services → src/services}/role.js +2 -2
- package/server/{services → src/services}/user.js +16 -6
- package/server/{services → src/services}/users-permissions.js +14 -16
- package/server/{strategies → src/strategies}/users-permissions.js +14 -10
- package/server/src/utils/oauth-connect/index.js +262 -0
- package/server/src/utils/oauth-connect/oauth1.js +169 -0
- package/server/src/utils/oauth-connect/oauth2.js +123 -0
- package/server/src/utils/oauth-connect/providers.js +100 -0
- package/server/src/utils/provider-http.js +49 -0
- package/server/{utils → src/utils}/sanitize/sanitizers.js +1 -1
- package/server/src/utils/trim-grant-session-response.js +70 -0
- package/server/src/utils/verify-jwt-with-jwks.js +43 -0
- package/types/strapi-server.d.ts +65 -0
- package/server/services/providers-registry.js +0 -567
- package/server/utils/index.d.ts +0 -23
- /package/server/{bootstrap → src/bootstrap}/index.js +0 -0
- /package/server/{bootstrap → src/bootstrap}/users-permissions-actions.js +0 -0
- /package/server/{config.js → src/config.js} +0 -0
- /package/server/{content-types → src/content-types}/index.js +0 -0
- /package/server/{content-types → src/content-types}/permission/index.js +0 -0
- /package/server/{content-types → src/content-types}/role/index.js +0 -0
- /package/server/{content-types → src/content-types}/user/index.js +0 -0
- /package/server/{content-types → src/content-types}/user/schema-config.js +0 -0
- /package/server/{controllers → src/controllers}/content-manager-user.js +0 -0
- /package/server/{controllers → src/controllers}/index.js +0 -0
- /package/server/{controllers → src/controllers}/permissions.js +0 -0
- /package/server/{controllers → src/controllers}/role.js +0 -0
- /package/server/{controllers → src/controllers}/settings.js +0 -0
- /package/server/{controllers → src/controllers}/user.js +0 -0
- /package/server/{controllers → src/controllers}/validation/user.js +0 -0
- /package/server/{graphql → src/graphql}/index.js +0 -0
- /package/server/{graphql → src/graphql}/mutations/crud/role/delete-role.js +0 -0
- /package/server/{graphql → src/graphql}/mutations/crud/role/update-role.js +0 -0
- /package/server/{graphql → src/graphql}/mutations/crud/user/delete-user.js +0 -0
- /package/server/{graphql → src/graphql}/mutations/index.js +0 -0
- /package/server/{graphql → src/graphql}/queries/index.js +0 -0
- /package/server/{graphql → src/graphql}/queries/me.js +0 -0
- /package/server/{graphql → src/graphql}/resolvers-configs.js +0 -0
- /package/server/{graphql → src/graphql}/types/create-role-payload.js +0 -0
- /package/server/{graphql → src/graphql}/types/delete-role-payload.js +0 -0
- /package/server/{graphql → src/graphql}/types/index.js +0 -0
- /package/server/{graphql → src/graphql}/types/login-input.js +0 -0
- /package/server/{graphql → src/graphql}/types/login-payload.js +0 -0
- /package/server/{graphql → src/graphql}/types/me-role.js +0 -0
- /package/server/{graphql → src/graphql}/types/me.js +0 -0
- /package/server/{graphql → src/graphql}/types/password-payload.js +0 -0
- /package/server/{graphql → src/graphql}/types/register-input.js +0 -0
- /package/server/{graphql → src/graphql}/types/update-role-payload.js +0 -0
- /package/server/{graphql → src/graphql}/types/user-input.js +0 -0
- /package/server/{index.js → src/index.js} +0 -0
- /package/server/{middlewares → src/middlewares}/index.js +0 -0
- /package/server/{register.js → src/register.js} +0 -0
- /package/server/{routes → src/routes}/admin/index.js +0 -0
- /package/server/{routes → src/routes}/admin/permissions.js +0 -0
- /package/server/{routes → src/routes}/admin/role.js +0 -0
- /package/server/{routes → src/routes}/admin/settings.js +0 -0
- /package/server/{routes → src/routes}/content-api/auth.js +0 -0
- /package/server/{routes → src/routes}/content-api/index.js +0 -0
- /package/server/{routes → src/routes}/content-api/permissions.js +0 -0
- /package/server/{routes → src/routes}/content-api/role.js +0 -0
- /package/server/{routes → src/routes}/content-api/user.js +0 -0
- /package/server/{routes → src/routes}/content-api/validation.js +0 -0
- /package/server/{routes → src/routes}/index.js +0 -0
- /package/server/{services → src/services}/constants.js +0 -0
- /package/server/{services → src/services}/index.js +0 -0
- /package/server/{services → src/services}/jwt.js +0 -0
- /package/server/{services → src/services}/permission.js +0 -0
- /package/server/{utils → src/utils}/index.js +0 -0
- /package/server/{utils → src/utils}/refresh-cookie-options.js +0 -0
- /package/server/{utils → src/utils}/sanitize/index.js +0 -0
- /package/server/{utils → src/utils}/sanitize/visitors/index.js +0 -0
- /package/server/{utils → src/utils}/sanitize/visitors/remove-user-relation-from-role-entities.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refresh-cookie-options.js","sources":["../../../server/utils/refresh-cookie-options.js"],"sourcesContent":["'use strict';\n\nconst buildRefreshCookieOptions = (upSessions, isProduction) => {\n const isSecure =\n typeof upSessions.cookie?.secure === 'boolean' ? upSessions.cookie?.secure : isProduction;\n\n return {\n httpOnly: true,\n secure: isSecure,\n sameSite: upSessions.cookie?.sameSite ?? 'lax',\n path: upSessions.cookie?.path ?? '/',\n domain: upSessions.cookie?.domain,\n maxAge: upSessions.cookie?.maxAge,\n overwrite: true,\n };\n};\n\nmodule.exports = {\n buildRefreshCookieOptions,\n};\n"],"names":["buildRefreshCookieOptions","upSessions","isProduction","isSecure","cookie","secure","httpOnly","sameSite","path","domain","maxAge","overwrite","refreshCookieOptions"],"mappings":";;;;;;;IAEA,MAAMA,yBAAAA,GAA4B,CAACC,UAAAA,EAAYC,YAAAA,GAAAA;QAC7C,MAAMC,QAAAA,GACJ,OAAOF,UAAAA,CAAWG,MAAM,EAAEC,WAAW,SAAA,GAAYJ,UAAAA,CAAWG,MAAM,EAAEC,MAAAA,GAASH,YAAAA;QAE/E,OAAO;YACLI,QAAAA,EAAU,IAAA;YACVD,MAAAA,EAAQF,QAAAA;YACRI,QAAAA,EAAUN,UAAAA,CAAWG,MAAM,EAAEG,QAAAA,IAAY,KAAA;YACzCC,IAAAA,EAAMP,UAAAA,CAAWG,MAAM,EAAEI,IAAAA,IAAQ,GAAA;YACjCC,MAAAA,EAAQR,UAAAA,CAAWG,MAAM,EAAEK,MAAAA;YAC3BC,MAAAA,EAAQT,UAAAA,CAAWG,MAAM,EAAEM,MAAAA;YAC3BC,SAAAA,EAAW;AACf,SAAA;AACA,IAAA,CAAA;IAEAC,oBAAAA,GAAiB;AACfZ,QAAAA;AACF,KAAA;;;;;;"}
|
|
1
|
+
{"version":3,"file":"refresh-cookie-options.js","sources":["../../../server/src/utils/refresh-cookie-options.js"],"sourcesContent":["'use strict';\n\nconst buildRefreshCookieOptions = (upSessions, isProduction) => {\n const isSecure =\n typeof upSessions.cookie?.secure === 'boolean' ? upSessions.cookie?.secure : isProduction;\n\n return {\n httpOnly: true,\n secure: isSecure,\n sameSite: upSessions.cookie?.sameSite ?? 'lax',\n path: upSessions.cookie?.path ?? '/',\n domain: upSessions.cookie?.domain,\n maxAge: upSessions.cookie?.maxAge,\n overwrite: true,\n };\n};\n\nmodule.exports = {\n buildRefreshCookieOptions,\n};\n"],"names":["buildRefreshCookieOptions","upSessions","isProduction","isSecure","cookie","secure","httpOnly","sameSite","path","domain","maxAge","overwrite","refreshCookieOptions"],"mappings":";;;;;;;IAEA,MAAMA,yBAAAA,GAA4B,CAACC,UAAAA,EAAYC,YAAAA,GAAAA;QAC7C,MAAMC,QAAAA,GACJ,OAAOF,UAAAA,CAAWG,MAAM,EAAEC,WAAW,SAAA,GAAYJ,UAAAA,CAAWG,MAAM,EAAEC,MAAAA,GAASH,YAAAA;QAE/E,OAAO;YACLI,QAAAA,EAAU,IAAA;YACVD,MAAAA,EAAQF,QAAAA;YACRI,QAAAA,EAAUN,UAAAA,CAAWG,MAAM,EAAEG,QAAAA,IAAY,KAAA;YACzCC,IAAAA,EAAMP,UAAAA,CAAWG,MAAM,EAAEI,IAAAA,IAAQ,GAAA;YACjCC,MAAAA,EAAQR,UAAAA,CAAWG,MAAM,EAAEK,MAAAA;YAC3BC,MAAAA,EAAQT,UAAAA,CAAWG,MAAM,EAAEM,MAAAA;YAC3BC,SAAAA,EAAW;AACf,SAAA;AACA,IAAA,CAAA;IAEAC,oBAAAA,GAAiB;AACfZ,QAAAA;AACF,KAAA;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refresh-cookie-options.mjs","sources":["../../../server/utils/refresh-cookie-options.js"],"sourcesContent":["'use strict';\n\nconst buildRefreshCookieOptions = (upSessions, isProduction) => {\n const isSecure =\n typeof upSessions.cookie?.secure === 'boolean' ? upSessions.cookie?.secure : isProduction;\n\n return {\n httpOnly: true,\n secure: isSecure,\n sameSite: upSessions.cookie?.sameSite ?? 'lax',\n path: upSessions.cookie?.path ?? '/',\n domain: upSessions.cookie?.domain,\n maxAge: upSessions.cookie?.maxAge,\n overwrite: true,\n };\n};\n\nmodule.exports = {\n buildRefreshCookieOptions,\n};\n"],"names":["buildRefreshCookieOptions","upSessions","isProduction","isSecure","cookie","secure","httpOnly","sameSite","path","domain","maxAge","overwrite","refreshCookieOptions"],"mappings":";;;;;IAEA,MAAMA,yBAAAA,GAA4B,CAACC,UAAAA,EAAYC,YAAAA,GAAAA;QAC7C,MAAMC,QAAAA,GACJ,OAAOF,UAAAA,CAAWG,MAAM,EAAEC,WAAW,SAAA,GAAYJ,UAAAA,CAAWG,MAAM,EAAEC,MAAAA,GAASH,YAAAA;QAE/E,OAAO;YACLI,QAAAA,EAAU,IAAA;YACVD,MAAAA,EAAQF,QAAAA;YACRI,QAAAA,EAAUN,UAAAA,CAAWG,MAAM,EAAEG,QAAAA,IAAY,KAAA;YACzCC,IAAAA,EAAMP,UAAAA,CAAWG,MAAM,EAAEI,IAAAA,IAAQ,GAAA;YACjCC,MAAAA,EAAQR,UAAAA,CAAWG,MAAM,EAAEK,MAAAA;YAC3BC,MAAAA,EAAQT,UAAAA,CAAWG,MAAM,EAAEM,MAAAA;YAC3BC,SAAAA,EAAW;AACf,SAAA;AACA,IAAA,CAAA;IAEAC,oBAAAA,GAAiB;AACfZ,QAAAA;AACF,KAAA;;;;;;"}
|
|
1
|
+
{"version":3,"file":"refresh-cookie-options.mjs","sources":["../../../server/src/utils/refresh-cookie-options.js"],"sourcesContent":["'use strict';\n\nconst buildRefreshCookieOptions = (upSessions, isProduction) => {\n const isSecure =\n typeof upSessions.cookie?.secure === 'boolean' ? upSessions.cookie?.secure : isProduction;\n\n return {\n httpOnly: true,\n secure: isSecure,\n sameSite: upSessions.cookie?.sameSite ?? 'lax',\n path: upSessions.cookie?.path ?? '/',\n domain: upSessions.cookie?.domain,\n maxAge: upSessions.cookie?.maxAge,\n overwrite: true,\n };\n};\n\nmodule.exports = {\n buildRefreshCookieOptions,\n};\n"],"names":["buildRefreshCookieOptions","upSessions","isProduction","isSecure","cookie","secure","httpOnly","sameSite","path","domain","maxAge","overwrite","refreshCookieOptions"],"mappings":";;;;;IAEA,MAAMA,yBAAAA,GAA4B,CAACC,UAAAA,EAAYC,YAAAA,GAAAA;QAC7C,MAAMC,QAAAA,GACJ,OAAOF,UAAAA,CAAWG,MAAM,EAAEC,WAAW,SAAA,GAAYJ,UAAAA,CAAWG,MAAM,EAAEC,MAAAA,GAASH,YAAAA;QAE/E,OAAO;YACLI,QAAAA,EAAU,IAAA;YACVD,MAAAA,EAAQF,QAAAA;YACRI,QAAAA,EAAUN,UAAAA,CAAWG,MAAM,EAAEG,QAAAA,IAAY,KAAA;YACzCC,IAAAA,EAAMP,UAAAA,CAAWG,MAAM,EAAEI,IAAAA,IAAQ,GAAA;YACjCC,MAAAA,EAAQR,UAAAA,CAAWG,MAAM,EAAEK,MAAAA;YAC3BC,MAAAA,EAAQT,UAAAA,CAAWG,MAAM,EAAEM,MAAAA;YAC3BC,SAAAA,EAAW;AACf,SAAA;AACA,IAAA,CAAA;IAEAC,oBAAAA,GAAiB;AACfZ,QAAAA;AACF,KAAA;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../server/utils/sanitize/index.js"],"sourcesContent":["'use strict';\n\nconst visitors = require('./visitors');\nconst sanitizers = require('./sanitizers');\n\nmodule.exports = {\n sanitizers,\n visitors,\n};\n"],"names":["visitors","require$$0","sanitizers","require$$1","sanitize"],"mappings":";;;;;;;;;;AAEA,IAAA,MAAMA,QAAAA,GAAWC,eAAAA,EAAAA;AACjB,IAAA,MAAMC,YAAAA,GAAaC,oBAAAA,EAAAA;IAEnBC,QAAAA,GAAiB;AACfF,oBAAAA,YAAAA;AACAF,QAAAA;AACF,KAAA;;;;;;"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../server/src/utils/sanitize/index.js"],"sourcesContent":["'use strict';\n\nconst visitors = require('./visitors');\nconst sanitizers = require('./sanitizers');\n\nmodule.exports = {\n sanitizers,\n visitors,\n};\n"],"names":["visitors","require$$0","sanitizers","require$$1","sanitize"],"mappings":";;;;;;;;;;AAEA,IAAA,MAAMA,QAAAA,GAAWC,eAAAA,EAAAA;AACjB,IAAA,MAAMC,YAAAA,GAAaC,oBAAAA,EAAAA;IAEnBC,QAAAA,GAAiB;AACfF,oBAAAA,YAAAA;AACAF,QAAAA;AACF,KAAA;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../server/utils/sanitize/index.js"],"sourcesContent":["'use strict';\n\nconst visitors = require('./visitors');\nconst sanitizers = require('./sanitizers');\n\nmodule.exports = {\n sanitizers,\n visitors,\n};\n"],"names":["visitors","require$$0","sanitizers","require$$1","sanitize"],"mappings":";;;;;;;;AAEA,IAAA,MAAMA,QAAAA,GAAWC,eAAAA,EAAAA;AACjB,IAAA,MAAMC,UAAAA,GAAaC,iBAAAA,EAAAA;IAEnBC,QAAAA,GAAiB;AACfF,QAAAA,UAAAA;AACAF,QAAAA;AACF,KAAA;;;;;;"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../server/src/utils/sanitize/index.js"],"sourcesContent":["'use strict';\n\nconst visitors = require('./visitors');\nconst sanitizers = require('./sanitizers');\n\nmodule.exports = {\n sanitizers,\n visitors,\n};\n"],"names":["visitors","require$$0","sanitizers","require$$1","sanitize"],"mappings":";;;;;;;;AAEA,IAAA,MAAMA,QAAAA,GAAWC,eAAAA,EAAAA;AACjB,IAAA,MAAMC,UAAAA,GAAaC,iBAAAA,EAAAA;IAEnBC,QAAAA,GAAiB;AACfF,QAAAA,UAAAA;AACAF,QAAAA;AACF,KAAA;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitizers.js","sources":["../../../../server/utils/sanitize/sanitizers.js"],"sourcesContent":["'use strict';\n\nconst { curry } = require('lodash
|
|
1
|
+
{"version":3,"file":"sanitizers.js","sources":["../../../../server/src/utils/sanitize/sanitizers.js"],"sourcesContent":["'use strict';\n\nconst { curry } = require('lodash');\nconst { traverseEntity, async } = require('@strapi/utils');\n\nconst { removeUserRelationFromRoleEntities } = require('./visitors');\n\nconst sanitizeUserRelationFromRoleEntities = curry((schema, entity) => {\n return traverseEntity(\n removeUserRelationFromRoleEntities,\n { schema, getModel: strapi.getModel.bind(strapi) },\n entity\n );\n});\n\nconst defaultSanitizeOutput = curry((schema, entity) => {\n return async.pipe(sanitizeUserRelationFromRoleEntities(schema))(entity);\n});\n\nmodule.exports = {\n sanitizeUserRelationFromRoleEntities,\n defaultSanitizeOutput,\n};\n"],"names":["curry","require$$0","traverseEntity","async","require$$1","removeUserRelationFromRoleEntities","require$$2","sanitizeUserRelationFromRoleEntities","schema","entity","getModel","strapi","bind","defaultSanitizeOutput","pipe","sanitizers"],"mappings":";;;;;;;;;;;;;;;;IAEA,MAAM,EAAEA,KAAK,EAAE,GAAGC,2BAAAA;AAClB,IAAA,MAAM,EAAEC,cAAc,EAAEC,KAAK,EAAE,GAAGC,2BAAAA;IAElC,MAAM,EAAEC,kCAAkC,EAAE,GAAGC,eAAAA,EAAAA;IAE/C,MAAMC,oCAAAA,GAAuCP,KAAAA,CAAM,CAACQ,MAAAA,EAAQC,MAAAA,GAAAA;AAC1D,QAAA,OAAOP,eACLG,kCAAAA,EACA;AAAEG,YAAAA,MAAAA;AAAQE,YAAAA,QAAAA,EAAUC,MAAAA,CAAOD,QAAQ,CAACE,IAAI,CAACD,MAAAA;SAAO,EAChDF,MAAAA,CAAAA;AAEJ,IAAA,CAAA,CAAA;IAEA,MAAMI,qBAAAA,GAAwBb,KAAAA,CAAM,CAACQ,MAAAA,EAAQC,MAAAA,GAAAA;AAC3C,QAAA,OAAON,KAAAA,CAAMW,IAAI,CAACP,oCAAAA,CAAqCC,MAAAA,CAAAA,CAAAA,CAASC,MAAAA,CAAAA;AAClE,IAAA,CAAA,CAAA;IAEAM,UAAAA,GAAiB;AACfR,QAAAA,oCAAAA;AACAM,QAAAA;AACF,KAAA;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitizers.mjs","sources":["../../../../server/utils/sanitize/sanitizers.js"],"sourcesContent":["'use strict';\n\nconst { curry } = require('lodash
|
|
1
|
+
{"version":3,"file":"sanitizers.mjs","sources":["../../../../server/src/utils/sanitize/sanitizers.js"],"sourcesContent":["'use strict';\n\nconst { curry } = require('lodash');\nconst { traverseEntity, async } = require('@strapi/utils');\n\nconst { removeUserRelationFromRoleEntities } = require('./visitors');\n\nconst sanitizeUserRelationFromRoleEntities = curry((schema, entity) => {\n return traverseEntity(\n removeUserRelationFromRoleEntities,\n { schema, getModel: strapi.getModel.bind(strapi) },\n entity\n );\n});\n\nconst defaultSanitizeOutput = curry((schema, entity) => {\n return async.pipe(sanitizeUserRelationFromRoleEntities(schema))(entity);\n});\n\nmodule.exports = {\n sanitizeUserRelationFromRoleEntities,\n defaultSanitizeOutput,\n};\n"],"names":["curry","require$$0","traverseEntity","async","require$$1","removeUserRelationFromRoleEntities","require$$2","sanitizeUserRelationFromRoleEntities","schema","entity","getModel","strapi","bind","defaultSanitizeOutput","pipe","sanitizers"],"mappings":";;;;;;;;;IAEA,MAAM,EAAEA,KAAK,EAAE,GAAGC,UAAAA;AAClB,IAAA,MAAM,EAAEC,cAAc,EAAEC,KAAK,EAAE,GAAGC,UAAAA;IAElC,MAAM,EAAEC,kCAAkC,EAAE,GAAGC,eAAAA,EAAAA;IAE/C,MAAMC,oCAAAA,GAAuCP,KAAAA,CAAM,CAACQ,MAAAA,EAAQC,MAAAA,GAAAA;AAC1D,QAAA,OAAOP,eACLG,kCAAAA,EACA;AAAEG,YAAAA,MAAAA;AAAQE,YAAAA,QAAAA,EAAUC,MAAAA,CAAOD,QAAQ,CAACE,IAAI,CAACD,MAAAA;SAAO,EAChDF,MAAAA,CAAAA;AAEJ,IAAA,CAAA,CAAA;IAEA,MAAMI,qBAAAA,GAAwBb,KAAAA,CAAM,CAACQ,MAAAA,EAAQC,MAAAA,GAAAA;AAC3C,QAAA,OAAON,KAAAA,CAAMW,IAAI,CAACP,oCAAAA,CAAqCC,MAAAA,CAAAA,CAAAA,CAASC,MAAAA,CAAAA;AAClE,IAAA,CAAA,CAAA;IAEAM,UAAAA,GAAiB;AACfR,QAAAA,oCAAAA;AACAM,QAAAA;AACF,KAAA;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../server/utils/sanitize/visitors/index.js"],"sourcesContent":["'use strict';\n\nmodule.exports = {\n removeUserRelationFromRoleEntities: require('./remove-user-relation-from-role-entities'),\n};\n"],"names":["visitors","removeUserRelationFromRoleEntities","require$$0"],"mappings":";;;;;;;;;IAEAA,QAAAA,GAAiB;QACfC,kCAAAA,EAAoCC,4CAAAA;AACtC,KAAA;;;;;;"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../server/src/utils/sanitize/visitors/index.js"],"sourcesContent":["'use strict';\n\nmodule.exports = {\n removeUserRelationFromRoleEntities: require('./remove-user-relation-from-role-entities'),\n};\n"],"names":["visitors","removeUserRelationFromRoleEntities","require$$0"],"mappings":";;;;;;;;;IAEAA,QAAAA,GAAiB;QACfC,kCAAAA,EAAoCC,4CAAAA;AACtC,KAAA;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../server/utils/sanitize/visitors/index.js"],"sourcesContent":["'use strict';\n\nmodule.exports = {\n removeUserRelationFromRoleEntities: require('./remove-user-relation-from-role-entities'),\n};\n"],"names":["visitors","removeUserRelationFromRoleEntities","require$$0"],"mappings":";;;;;;;IAEAA,QAAAA,GAAiB;QACfC,kCAAAA,EAAoCC,yCAAAA;AACtC,KAAA;;;;;;"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../server/src/utils/sanitize/visitors/index.js"],"sourcesContent":["'use strict';\n\nmodule.exports = {\n removeUserRelationFromRoleEntities: require('./remove-user-relation-from-role-entities'),\n};\n"],"names":["visitors","removeUserRelationFromRoleEntities","require$$0"],"mappings":";;;;;;;IAEAA,QAAAA,GAAiB;QACfC,kCAAAA,EAAoCC,yCAAAA;AACtC,KAAA;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remove-user-relation-from-role-entities.js","sources":["../../../../../server/utils/sanitize/visitors/remove-user-relation-from-role-entities.js"],"sourcesContent":["'use strict';\n\nmodule.exports = ({ schema, key, attribute }, { remove }) => {\n if (\n attribute?.type === 'relation' &&\n attribute?.target === 'plugin::users-permissions.user' &&\n schema.uid === 'plugin::users-permissions.role'\n ) {\n remove(key);\n }\n};\n"],"names":["removeUserRelationFromRoleEntities","schema","key","attribute","remove","type","target","uid"],"mappings":";;;;;;;IAEAA,kCAAAA,GAAiB,CAAC,EAAEC,MAAM,EAAEC,GAAG,EAAEC,SAAS,EAAE,EAAE,EAAEC,MAAM,EAAE,GAAA;QACtD,IACED,SAAAA,EAAWE,SAAS,UAAA,IACpBF,SAAAA,EAAWG,WAAW,gCAAA,IACtBL,MAAAA,CAAOM,GAAG,KAAK,gCAAA,EACf;YACAH,MAAAA,CAAOF,GAAAA,CAAAA;AACX,QAAA;AACA,IAAA,CAAA;;;;;;"}
|
|
1
|
+
{"version":3,"file":"remove-user-relation-from-role-entities.js","sources":["../../../../../server/src/utils/sanitize/visitors/remove-user-relation-from-role-entities.js"],"sourcesContent":["'use strict';\n\nmodule.exports = ({ schema, key, attribute }, { remove }) => {\n if (\n attribute?.type === 'relation' &&\n attribute?.target === 'plugin::users-permissions.user' &&\n schema.uid === 'plugin::users-permissions.role'\n ) {\n remove(key);\n }\n};\n"],"names":["removeUserRelationFromRoleEntities","schema","key","attribute","remove","type","target","uid"],"mappings":";;;;;;;IAEAA,kCAAAA,GAAiB,CAAC,EAAEC,MAAM,EAAEC,GAAG,EAAEC,SAAS,EAAE,EAAE,EAAEC,MAAM,EAAE,GAAA;QACtD,IACED,SAAAA,EAAWE,SAAS,UAAA,IACpBF,SAAAA,EAAWG,WAAW,gCAAA,IACtBL,MAAAA,CAAOM,GAAG,KAAK,gCAAA,EACf;YACAH,MAAAA,CAAOF,GAAAA,CAAAA;AACX,QAAA;AACA,IAAA,CAAA;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remove-user-relation-from-role-entities.mjs","sources":["../../../../../server/utils/sanitize/visitors/remove-user-relation-from-role-entities.js"],"sourcesContent":["'use strict';\n\nmodule.exports = ({ schema, key, attribute }, { remove }) => {\n if (\n attribute?.type === 'relation' &&\n attribute?.target === 'plugin::users-permissions.user' &&\n schema.uid === 'plugin::users-permissions.role'\n ) {\n remove(key);\n }\n};\n"],"names":["removeUserRelationFromRoleEntities","schema","key","attribute","remove","type","target","uid"],"mappings":";;;;;IAEAA,kCAAAA,GAAiB,CAAC,EAAEC,MAAM,EAAEC,GAAG,EAAEC,SAAS,EAAE,EAAE,EAAEC,MAAM,EAAE,GAAA;QACtD,IACED,SAAAA,EAAWE,SAAS,UAAA,IACpBF,SAAAA,EAAWG,WAAW,gCAAA,IACtBL,MAAAA,CAAOM,GAAG,KAAK,gCAAA,EACf;YACAH,MAAAA,CAAOF,GAAAA,CAAAA;AACX,QAAA;AACA,IAAA,CAAA;;;;;;"}
|
|
1
|
+
{"version":3,"file":"remove-user-relation-from-role-entities.mjs","sources":["../../../../../server/src/utils/sanitize/visitors/remove-user-relation-from-role-entities.js"],"sourcesContent":["'use strict';\n\nmodule.exports = ({ schema, key, attribute }, { remove }) => {\n if (\n attribute?.type === 'relation' &&\n attribute?.target === 'plugin::users-permissions.user' &&\n schema.uid === 'plugin::users-permissions.role'\n ) {\n remove(key);\n }\n};\n"],"names":["removeUserRelationFromRoleEntities","schema","key","attribute","remove","type","target","uid"],"mappings":";;;;;IAEAA,kCAAAA,GAAiB,CAAC,EAAEC,MAAM,EAAEC,GAAG,EAAEC,SAAS,EAAE,EAAE,EAAEC,MAAM,EAAE,GAAA;QACtD,IACED,SAAAA,EAAWE,SAAS,UAAA,IACpBF,SAAAA,EAAWG,WAAW,gCAAA,IACtBL,MAAAA,CAAOM,GAAG,KAAK,gCAAA,EACf;YACAH,MAAAA,CAAOF,GAAAA,CAAAA;AACX,QAAA;AACA,IAAA,CAAA;;;;;;"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var trimGrantSessionResponse_1;
|
|
4
|
+
var hasRequiredTrimGrantSessionResponse;
|
|
5
|
+
function requireTrimGrantSessionResponse() {
|
|
6
|
+
if (hasRequiredTrimGrantSessionResponse) return trimGrantSessionResponse_1;
|
|
7
|
+
hasRequiredTrimGrantSessionResponse = 1;
|
|
8
|
+
const compact = (value)=>{
|
|
9
|
+
if (value === null || value === undefined) {
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
if (typeof value !== 'object' || Array.isArray(value)) {
|
|
13
|
+
return value;
|
|
14
|
+
}
|
|
15
|
+
return Object.fromEntries(Object.entries(value).map(([key, entry])=>[
|
|
16
|
+
key,
|
|
17
|
+
compact(entry)
|
|
18
|
+
]).filter(([, entry])=>entry !== undefined));
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Compact grant's OAuth token response before it is written to the signed
|
|
22
|
+
* koa-session cookie. The full token exchange payload (especially Cognito's
|
|
23
|
+
* dual JWTs plus a duplicated raw blob) can exceed the browser's ~4 KB
|
|
24
|
+
* per-cookie limit and silently break the auth callback.
|
|
25
|
+
*
|
|
26
|
+
* Keep only fields that auth.callback / providers-registry actually read.
|
|
27
|
+
*/ const trimGrantSessionResponse = (grantResponse, provider)=>{
|
|
28
|
+
if (!grantResponse || typeof grantResponse !== 'object') {
|
|
29
|
+
return grantResponse;
|
|
30
|
+
}
|
|
31
|
+
switch(provider){
|
|
32
|
+
case 'cognito':
|
|
33
|
+
return compact({
|
|
34
|
+
id_token: grantResponse.id_token
|
|
35
|
+
});
|
|
36
|
+
case 'twitter':
|
|
37
|
+
return compact({
|
|
38
|
+
access_token: grantResponse.access_token,
|
|
39
|
+
access_secret: grantResponse.access_secret,
|
|
40
|
+
raw: grantResponse.raw?.screen_name ? {
|
|
41
|
+
screen_name: grantResponse.raw.screen_name
|
|
42
|
+
} : undefined
|
|
43
|
+
});
|
|
44
|
+
case 'vk':
|
|
45
|
+
return compact({
|
|
46
|
+
access_token: grantResponse.access_token,
|
|
47
|
+
raw: grantResponse.raw?.email != null && grantResponse.raw?.user_id != null ? {
|
|
48
|
+
email: grantResponse.raw.email,
|
|
49
|
+
user_id: grantResponse.raw.user_id
|
|
50
|
+
} : undefined
|
|
51
|
+
});
|
|
52
|
+
default:
|
|
53
|
+
return compact({
|
|
54
|
+
access_token: grantResponse.access_token,
|
|
55
|
+
oauth_token: grantResponse.oauth_token,
|
|
56
|
+
id_token: grantResponse.id_token
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
trimGrantSessionResponse_1 = {
|
|
61
|
+
trimGrantSessionResponse
|
|
62
|
+
};
|
|
63
|
+
return trimGrantSessionResponse_1;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
exports.__require = requireTrimGrantSessionResponse;
|
|
67
|
+
//# sourceMappingURL=trim-grant-session-response.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trim-grant-session-response.js","sources":["../../../server/src/utils/trim-grant-session-response.js"],"sourcesContent":["'use strict';\n\nconst compact = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n\n if (typeof value !== 'object' || Array.isArray(value)) {\n return value;\n }\n\n return Object.fromEntries(\n Object.entries(value)\n .map(([key, entry]) => [key, compact(entry)])\n .filter(([, entry]) => entry !== undefined)\n );\n};\n\n/**\n * Compact grant's OAuth token response before it is written to the signed\n * koa-session cookie. The full token exchange payload (especially Cognito's\n * dual JWTs plus a duplicated raw blob) can exceed the browser's ~4 KB\n * per-cookie limit and silently break the auth callback.\n *\n * Keep only fields that auth.callback / providers-registry actually read.\n */\nconst trimGrantSessionResponse = (grantResponse, provider) => {\n if (!grantResponse || typeof grantResponse !== 'object') {\n return grantResponse;\n }\n\n switch (provider) {\n case 'cognito':\n return compact({\n id_token: grantResponse.id_token,\n });\n\n case 'twitter':\n return compact({\n access_token: grantResponse.access_token,\n access_secret: grantResponse.access_secret,\n raw: grantResponse.raw?.screen_name\n ? { screen_name: grantResponse.raw.screen_name }\n : undefined,\n });\n\n case 'vk':\n return compact({\n access_token: grantResponse.access_token,\n raw:\n grantResponse.raw?.email != null && grantResponse.raw?.user_id != null\n ? {\n email: grantResponse.raw.email,\n user_id: grantResponse.raw.user_id,\n }\n : undefined,\n });\n\n default:\n return compact({\n access_token: grantResponse.access_token,\n oauth_token: grantResponse.oauth_token,\n id_token: grantResponse.id_token,\n });\n }\n};\n\nmodule.exports = {\n trimGrantSessionResponse,\n};\n"],"names":["compact","value","undefined","Array","isArray","Object","fromEntries","entries","map","key","entry","filter","trimGrantSessionResponse","grantResponse","provider","id_token","access_token","access_secret","raw","screen_name","email","user_id","oauth_token","trimGrantSessionResponse_1"],"mappings":";;;;;;;AAEA,IAAA,MAAMA,UAAU,CAACC,KAAAA,GAAAA;QACf,IAAIA,KAAAA,KAAU,IAAA,IAAQA,KAAAA,KAAUC,SAAAA,EAAW;YACzC,OAAOA,SAAAA;AACX,QAAA;AAEE,QAAA,IAAI,OAAOD,KAAAA,KAAU,QAAA,IAAYE,KAAAA,CAAMC,OAAO,CAACH,KAAAA,CAAAA,EAAQ;YACrD,OAAOA,KAAAA;AACX,QAAA;AAEE,QAAA,OAAOI,MAAAA,CAAOC,WAAW,CACvBD,MAAAA,CAAOE,OAAO,CAACN,KAAAA,CAAAA,CACZO,GAAG,CAAC,CAAC,CAACC,GAAAA,EAAKC,MAAM,GAAK;AAACD,gBAAAA,GAAAA;gBAAKT,OAAAA,CAAQU,KAAAA;AAAO,aAAA,CAAA,CAC3CC,MAAM,CAAC,CAAC,GAAGD,KAAAA,CAAM,GAAKA,KAAAA,KAAUR,SAAAA,CAAAA,CAAAA;AAEvC,IAAA,CAAA;AAEA;;;;;;;KAQA,MAAMU,wBAAAA,GAA2B,CAACC,aAAAA,EAAeC,QAAAA,GAAAA;AAC/C,QAAA,IAAI,CAACD,aAAAA,IAAiB,OAAOA,aAAAA,KAAkB,QAAA,EAAU;YACvD,OAAOA,aAAAA;AACX,QAAA;QAEE,OAAQC,QAAAA;YACN,KAAK,SAAA;AACH,gBAAA,OAAOd,OAAAA,CAAQ;AACbe,oBAAAA,QAAAA,EAAUF,cAAcE;AAChC,iBAAA,CAAA;YAEI,KAAK,SAAA;AACH,gBAAA,OAAOf,OAAAA,CAAQ;AACbgB,oBAAAA,YAAAA,EAAcH,cAAcG,YAAY;AACxCC,oBAAAA,aAAAA,EAAeJ,cAAcI,aAAa;oBAC1CC,GAAAA,EAAKL,aAAAA,CAAcK,GAAG,EAAEC,WAAAA,GACpB;wBAAEA,WAAAA,EAAaN,aAAAA,CAAcK,GAAG,CAACC;qBAAW,GAC5CjB;AACZ,iBAAA,CAAA;YAEI,KAAK,IAAA;AACH,gBAAA,OAAOF,OAAAA,CAAQ;AACbgB,oBAAAA,YAAAA,EAAcH,cAAcG,YAAY;oBACxCE,GAAAA,EACEL,aAAAA,CAAcK,GAAG,EAAEE,KAAAA,IAAS,QAAQP,aAAAA,CAAcK,GAAG,EAAEG,OAAAA,IAAW,IAAA,GAC9D;wBACED,KAAAA,EAAOP,aAAAA,CAAcK,GAAG,CAACE,KAAK;wBAC9BC,OAAAA,EAASR,aAAAA,CAAcK,GAAG,CAACG;qBAC3C,GACcnB;AACd,iBAAA,CAAA;AAEI,YAAA;AACE,gBAAA,OAAOF,OAAAA,CAAQ;AACbgB,oBAAAA,YAAAA,EAAcH,cAAcG,YAAY;AACxCM,oBAAAA,WAAAA,EAAaT,cAAcS,WAAW;AACtCP,oBAAAA,QAAAA,EAAUF,cAAcE;AAChC,iBAAA,CAAA;AACA;AACA,IAAA,CAAA;IAEAQ,0BAAAA,GAAiB;AACfX,QAAAA;AACF,KAAA;;;;;;"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
var trimGrantSessionResponse_1;
|
|
2
|
+
var hasRequiredTrimGrantSessionResponse;
|
|
3
|
+
function requireTrimGrantSessionResponse() {
|
|
4
|
+
if (hasRequiredTrimGrantSessionResponse) return trimGrantSessionResponse_1;
|
|
5
|
+
hasRequiredTrimGrantSessionResponse = 1;
|
|
6
|
+
const compact = (value)=>{
|
|
7
|
+
if (value === null || value === undefined) {
|
|
8
|
+
return undefined;
|
|
9
|
+
}
|
|
10
|
+
if (typeof value !== 'object' || Array.isArray(value)) {
|
|
11
|
+
return value;
|
|
12
|
+
}
|
|
13
|
+
return Object.fromEntries(Object.entries(value).map(([key, entry])=>[
|
|
14
|
+
key,
|
|
15
|
+
compact(entry)
|
|
16
|
+
]).filter(([, entry])=>entry !== undefined));
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Compact grant's OAuth token response before it is written to the signed
|
|
20
|
+
* koa-session cookie. The full token exchange payload (especially Cognito's
|
|
21
|
+
* dual JWTs plus a duplicated raw blob) can exceed the browser's ~4 KB
|
|
22
|
+
* per-cookie limit and silently break the auth callback.
|
|
23
|
+
*
|
|
24
|
+
* Keep only fields that auth.callback / providers-registry actually read.
|
|
25
|
+
*/ const trimGrantSessionResponse = (grantResponse, provider)=>{
|
|
26
|
+
if (!grantResponse || typeof grantResponse !== 'object') {
|
|
27
|
+
return grantResponse;
|
|
28
|
+
}
|
|
29
|
+
switch(provider){
|
|
30
|
+
case 'cognito':
|
|
31
|
+
return compact({
|
|
32
|
+
id_token: grantResponse.id_token
|
|
33
|
+
});
|
|
34
|
+
case 'twitter':
|
|
35
|
+
return compact({
|
|
36
|
+
access_token: grantResponse.access_token,
|
|
37
|
+
access_secret: grantResponse.access_secret,
|
|
38
|
+
raw: grantResponse.raw?.screen_name ? {
|
|
39
|
+
screen_name: grantResponse.raw.screen_name
|
|
40
|
+
} : undefined
|
|
41
|
+
});
|
|
42
|
+
case 'vk':
|
|
43
|
+
return compact({
|
|
44
|
+
access_token: grantResponse.access_token,
|
|
45
|
+
raw: grantResponse.raw?.email != null && grantResponse.raw?.user_id != null ? {
|
|
46
|
+
email: grantResponse.raw.email,
|
|
47
|
+
user_id: grantResponse.raw.user_id
|
|
48
|
+
} : undefined
|
|
49
|
+
});
|
|
50
|
+
default:
|
|
51
|
+
return compact({
|
|
52
|
+
access_token: grantResponse.access_token,
|
|
53
|
+
oauth_token: grantResponse.oauth_token,
|
|
54
|
+
id_token: grantResponse.id_token
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
trimGrantSessionResponse_1 = {
|
|
59
|
+
trimGrantSessionResponse
|
|
60
|
+
};
|
|
61
|
+
return trimGrantSessionResponse_1;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export { requireTrimGrantSessionResponse as __require };
|
|
65
|
+
//# sourceMappingURL=trim-grant-session-response.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trim-grant-session-response.mjs","sources":["../../../server/src/utils/trim-grant-session-response.js"],"sourcesContent":["'use strict';\n\nconst compact = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n\n if (typeof value !== 'object' || Array.isArray(value)) {\n return value;\n }\n\n return Object.fromEntries(\n Object.entries(value)\n .map(([key, entry]) => [key, compact(entry)])\n .filter(([, entry]) => entry !== undefined)\n );\n};\n\n/**\n * Compact grant's OAuth token response before it is written to the signed\n * koa-session cookie. The full token exchange payload (especially Cognito's\n * dual JWTs plus a duplicated raw blob) can exceed the browser's ~4 KB\n * per-cookie limit and silently break the auth callback.\n *\n * Keep only fields that auth.callback / providers-registry actually read.\n */\nconst trimGrantSessionResponse = (grantResponse, provider) => {\n if (!grantResponse || typeof grantResponse !== 'object') {\n return grantResponse;\n }\n\n switch (provider) {\n case 'cognito':\n return compact({\n id_token: grantResponse.id_token,\n });\n\n case 'twitter':\n return compact({\n access_token: grantResponse.access_token,\n access_secret: grantResponse.access_secret,\n raw: grantResponse.raw?.screen_name\n ? { screen_name: grantResponse.raw.screen_name }\n : undefined,\n });\n\n case 'vk':\n return compact({\n access_token: grantResponse.access_token,\n raw:\n grantResponse.raw?.email != null && grantResponse.raw?.user_id != null\n ? {\n email: grantResponse.raw.email,\n user_id: grantResponse.raw.user_id,\n }\n : undefined,\n });\n\n default:\n return compact({\n access_token: grantResponse.access_token,\n oauth_token: grantResponse.oauth_token,\n id_token: grantResponse.id_token,\n });\n }\n};\n\nmodule.exports = {\n trimGrantSessionResponse,\n};\n"],"names":["compact","value","undefined","Array","isArray","Object","fromEntries","entries","map","key","entry","filter","trimGrantSessionResponse","grantResponse","provider","id_token","access_token","access_secret","raw","screen_name","email","user_id","oauth_token","trimGrantSessionResponse_1"],"mappings":";;;;;AAEA,IAAA,MAAMA,UAAU,CAACC,KAAAA,GAAAA;QACf,IAAIA,KAAAA,KAAU,IAAA,IAAQA,KAAAA,KAAUC,SAAAA,EAAW;YACzC,OAAOA,SAAAA;AACX,QAAA;AAEE,QAAA,IAAI,OAAOD,KAAAA,KAAU,QAAA,IAAYE,KAAAA,CAAMC,OAAO,CAACH,KAAAA,CAAAA,EAAQ;YACrD,OAAOA,KAAAA;AACX,QAAA;AAEE,QAAA,OAAOI,MAAAA,CAAOC,WAAW,CACvBD,MAAAA,CAAOE,OAAO,CAACN,KAAAA,CAAAA,CACZO,GAAG,CAAC,CAAC,CAACC,GAAAA,EAAKC,MAAM,GAAK;AAACD,gBAAAA,GAAAA;gBAAKT,OAAAA,CAAQU,KAAAA;AAAO,aAAA,CAAA,CAC3CC,MAAM,CAAC,CAAC,GAAGD,KAAAA,CAAM,GAAKA,KAAAA,KAAUR,SAAAA,CAAAA,CAAAA;AAEvC,IAAA,CAAA;AAEA;;;;;;;KAQA,MAAMU,wBAAAA,GAA2B,CAACC,aAAAA,EAAeC,QAAAA,GAAAA;AAC/C,QAAA,IAAI,CAACD,aAAAA,IAAiB,OAAOA,aAAAA,KAAkB,QAAA,EAAU;YACvD,OAAOA,aAAAA;AACX,QAAA;QAEE,OAAQC,QAAAA;YACN,KAAK,SAAA;AACH,gBAAA,OAAOd,OAAAA,CAAQ;AACbe,oBAAAA,QAAAA,EAAUF,cAAcE;AAChC,iBAAA,CAAA;YAEI,KAAK,SAAA;AACH,gBAAA,OAAOf,OAAAA,CAAQ;AACbgB,oBAAAA,YAAAA,EAAcH,cAAcG,YAAY;AACxCC,oBAAAA,aAAAA,EAAeJ,cAAcI,aAAa;oBAC1CC,GAAAA,EAAKL,aAAAA,CAAcK,GAAG,EAAEC,WAAAA,GACpB;wBAAEA,WAAAA,EAAaN,aAAAA,CAAcK,GAAG,CAACC;qBAAW,GAC5CjB;AACZ,iBAAA,CAAA;YAEI,KAAK,IAAA;AACH,gBAAA,OAAOF,OAAAA,CAAQ;AACbgB,oBAAAA,YAAAA,EAAcH,cAAcG,YAAY;oBACxCE,GAAAA,EACEL,aAAAA,CAAcK,GAAG,EAAEE,KAAAA,IAAS,QAAQP,aAAAA,CAAcK,GAAG,EAAEG,OAAAA,IAAW,IAAA,GAC9D;wBACED,KAAAA,EAAOP,aAAAA,CAAcK,GAAG,CAACE,KAAK;wBAC9BC,OAAAA,EAASR,aAAAA,CAAcK,GAAG,CAACG;qBAC3C,GACcnB;AACd,iBAAA,CAAA;AAEI,YAAA;AACE,gBAAA,OAAOF,OAAAA,CAAQ;AACbgB,oBAAAA,YAAAA,EAAcH,cAAcG,YAAY;AACxCM,oBAAAA,WAAAA,EAAaT,cAAcS,WAAW;AACtCP,oBAAAA,QAAAA,EAAUF,cAAcE;AAChC,iBAAA,CAAA;AACA;AACA,IAAA,CAAA;IAEAQ,0BAAAA,GAAiB;AACfX,QAAAA;AACF,KAAA;;;;;;"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _node_crypto_commonjsExternal = require('../_virtual/_node_crypto.js');
|
|
4
|
+
var require$$1 = require('jsonwebtoken');
|
|
5
|
+
|
|
6
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
|
+
|
|
8
|
+
var require$$1__default = /*#__PURE__*/_interopDefault(require$$1);
|
|
9
|
+
|
|
10
|
+
var verifyJwtWithJwks_1;
|
|
11
|
+
var hasRequiredVerifyJwtWithJwks;
|
|
12
|
+
function requireVerifyJwtWithJwks() {
|
|
13
|
+
if (hasRequiredVerifyJwtWithJwks) return verifyJwtWithJwks_1;
|
|
14
|
+
hasRequiredVerifyJwtWithJwks = 1;
|
|
15
|
+
const crypto = _node_crypto_commonjsExternal.__require();
|
|
16
|
+
const jwt = require$$1__default.default;
|
|
17
|
+
const jwkToKeyObject = (jwk)=>crypto.createPublicKey({
|
|
18
|
+
key: jwk,
|
|
19
|
+
format: 'jwk'
|
|
20
|
+
});
|
|
21
|
+
const verifyJwtWithJwks = async ({ idToken, jwksUrl })=>{
|
|
22
|
+
const decoded = jwt.decode(idToken, {
|
|
23
|
+
complete: true
|
|
24
|
+
});
|
|
25
|
+
if (!decoded?.header?.kid || !decoded.payload) {
|
|
26
|
+
throw new Error('The provided token is not valid');
|
|
27
|
+
}
|
|
28
|
+
const response = await fetch(jwksUrl.toString());
|
|
29
|
+
if (!response.ok) {
|
|
30
|
+
throw new Error('There was an error verifying the token');
|
|
31
|
+
}
|
|
32
|
+
const jwk = await response.json();
|
|
33
|
+
const key = jwk.keys?.find(({ kid })=>kid === decoded.header.kid);
|
|
34
|
+
if (!key) {
|
|
35
|
+
throw new Error('There was an error verifying the token');
|
|
36
|
+
}
|
|
37
|
+
const publicKey = jwkToKeyObject(key);
|
|
38
|
+
return new Promise((resolve, reject)=>{
|
|
39
|
+
jwt.verify(idToken, publicKey, {
|
|
40
|
+
algorithms: [
|
|
41
|
+
'RS256'
|
|
42
|
+
]
|
|
43
|
+
}, (err, tokenPayload)=>{
|
|
44
|
+
if (err) {
|
|
45
|
+
reject(new Error('There was an error verifying the token'));
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
resolve(tokenPayload);
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
verifyJwtWithJwks_1 = {
|
|
53
|
+
jwkToKeyObject,
|
|
54
|
+
verifyJwtWithJwks
|
|
55
|
+
};
|
|
56
|
+
return verifyJwtWithJwks_1;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
exports.__require = requireVerifyJwtWithJwks;
|
|
60
|
+
//# sourceMappingURL=verify-jwt-with-jwks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify-jwt-with-jwks.js","sources":["../../../server/src/utils/verify-jwt-with-jwks.js"],"sourcesContent":["'use strict';\n\nconst crypto = require('node:crypto');\nconst jwt = require('jsonwebtoken');\n\nconst jwkToKeyObject = (jwk) => crypto.createPublicKey({ key: jwk, format: 'jwk' });\n\nconst verifyJwtWithJwks = async ({ idToken, jwksUrl }) => {\n const decoded = jwt.decode(idToken, { complete: true });\n\n if (!decoded?.header?.kid || !decoded.payload) {\n throw new Error('The provided token is not valid');\n }\n\n const response = await fetch(jwksUrl.toString());\n if (!response.ok) {\n throw new Error('There was an error verifying the token');\n }\n\n const jwk = await response.json();\n const key = jwk.keys?.find(({ kid }) => kid === decoded.header.kid);\n\n if (!key) {\n throw new Error('There was an error verifying the token');\n }\n\n const publicKey = jwkToKeyObject(key);\n\n return new Promise((resolve, reject) => {\n jwt.verify(idToken, publicKey, { algorithms: ['RS256'] }, (err, tokenPayload) => {\n if (err) {\n reject(new Error('There was an error verifying the token'));\n return;\n }\n resolve(tokenPayload);\n });\n });\n};\n\nmodule.exports = {\n jwkToKeyObject,\n verifyJwtWithJwks,\n};\n"],"names":["crypto","require$$0","jwt","require$$1","jwkToKeyObject","jwk","createPublicKey","key","format","verifyJwtWithJwks","idToken","jwksUrl","decoded","decode","complete","header","kid","payload","Error","response","fetch","toString","ok","json","keys","find","publicKey","Promise","resolve","reject","verify","algorithms","err","tokenPayload","verifyJwtWithJwks_1"],"mappings":";;;;;;;;;;;;;;AAEA,IAAA,MAAMA,MAAAA,GAASC,uCAAAA,EAAAA;AACf,IAAA,MAAMC,GAAAA,GAAMC,2BAAAA;AAEZ,IAAA,MAAMC,cAAAA,GAAiB,CAACC,GAAAA,GAAQL,MAAAA,CAAOM,eAAe,CAAC;YAAEC,GAAAA,EAAKF,GAAAA;YAAKG,MAAAA,EAAQ;;AAE3E,IAAA,MAAMC,oBAAoB,OAAO,EAAEC,OAAO,EAAEC,OAAO,EAAE,GAAA;AACnD,QAAA,MAAMC,OAAAA,GAAUV,GAAAA,CAAIW,MAAM,CAACH,OAAAA,EAAS;YAAEI,QAAAA,EAAU;;AAEhD,QAAA,IAAI,CAACF,OAAAA,EAASG,MAAAA,EAAQC,OAAO,CAACJ,OAAAA,CAAQK,OAAO,EAAE;AAC7C,YAAA,MAAM,IAAIC,KAAAA,CAAM,iCAAA,CAAA;AACpB,QAAA;AAEE,QAAA,MAAMC,QAAAA,GAAW,MAAMC,KAAAA,CAAMT,OAAAA,CAAQU,QAAQ,EAAA,CAAA;QAC7C,IAAI,CAACF,QAAAA,CAASG,EAAE,EAAE;AAChB,YAAA,MAAM,IAAIJ,KAAAA,CAAM,wCAAA,CAAA;AACpB,QAAA;QAEE,MAAMb,GAAAA,GAAM,MAAMc,QAAAA,CAASI,IAAI,EAAA;AAC/B,QAAA,MAAMhB,GAAAA,GAAMF,GAAAA,CAAImB,IAAI,EAAEC,KAAK,CAAC,EAAET,GAAG,EAAE,GAAKA,GAAAA,KAAQJ,OAAAA,CAAQG,MAAM,CAACC,GAAG,CAAA;AAElE,QAAA,IAAI,CAACT,GAAAA,EAAK;AACR,YAAA,MAAM,IAAIW,KAAAA,CAAM,wCAAA,CAAA;AACpB,QAAA;AAEE,QAAA,MAAMQ,YAAYtB,cAAAA,CAAeG,GAAAA,CAAAA;QAEjC,OAAO,IAAIoB,OAAAA,CAAQ,CAACC,OAAAA,EAASC,MAAAA,GAAAA;YAC3B3B,GAAAA,CAAI4B,MAAM,CAACpB,OAAAA,EAASgB,SAAAA,EAAW;gBAAEK,UAAAA,EAAY;AAAC,oBAAA;AAAQ;AAAA,aAAA,EAAI,CAACC,GAAAA,EAAKC,YAAAA,GAAAA;AAC9D,gBAAA,IAAID,GAAAA,EAAK;AACPH,oBAAAA,MAAAA,CAAO,IAAIX,KAAAA,CAAM,wCAAA,CAAA,CAAA;AACjB,oBAAA;AACR,gBAAA;gBACMU,OAAAA,CAAQK,YAAAA,CAAAA;AACd,YAAA,CAAA,CAAA;AACA,QAAA,CAAA,CAAA;AACA,IAAA,CAAA;IAEAC,mBAAAA,GAAiB;AACf9B,QAAAA,cAAAA;AACAK,QAAAA;AACF,KAAA;;;;;;"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { __require } from '../_virtual/_node_crypto.mjs';
|
|
2
|
+
import require$$1 from 'jsonwebtoken';
|
|
3
|
+
|
|
4
|
+
var verifyJwtWithJwks_1;
|
|
5
|
+
var hasRequiredVerifyJwtWithJwks;
|
|
6
|
+
function requireVerifyJwtWithJwks() {
|
|
7
|
+
if (hasRequiredVerifyJwtWithJwks) return verifyJwtWithJwks_1;
|
|
8
|
+
hasRequiredVerifyJwtWithJwks = 1;
|
|
9
|
+
const crypto = __require();
|
|
10
|
+
const jwt = require$$1;
|
|
11
|
+
const jwkToKeyObject = (jwk)=>crypto.createPublicKey({
|
|
12
|
+
key: jwk,
|
|
13
|
+
format: 'jwk'
|
|
14
|
+
});
|
|
15
|
+
const verifyJwtWithJwks = async ({ idToken, jwksUrl })=>{
|
|
16
|
+
const decoded = jwt.decode(idToken, {
|
|
17
|
+
complete: true
|
|
18
|
+
});
|
|
19
|
+
if (!decoded?.header?.kid || !decoded.payload) {
|
|
20
|
+
throw new Error('The provided token is not valid');
|
|
21
|
+
}
|
|
22
|
+
const response = await fetch(jwksUrl.toString());
|
|
23
|
+
if (!response.ok) {
|
|
24
|
+
throw new Error('There was an error verifying the token');
|
|
25
|
+
}
|
|
26
|
+
const jwk = await response.json();
|
|
27
|
+
const key = jwk.keys?.find(({ kid })=>kid === decoded.header.kid);
|
|
28
|
+
if (!key) {
|
|
29
|
+
throw new Error('There was an error verifying the token');
|
|
30
|
+
}
|
|
31
|
+
const publicKey = jwkToKeyObject(key);
|
|
32
|
+
return new Promise((resolve, reject)=>{
|
|
33
|
+
jwt.verify(idToken, publicKey, {
|
|
34
|
+
algorithms: [
|
|
35
|
+
'RS256'
|
|
36
|
+
]
|
|
37
|
+
}, (err, tokenPayload)=>{
|
|
38
|
+
if (err) {
|
|
39
|
+
reject(new Error('There was an error verifying the token'));
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
resolve(tokenPayload);
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
};
|
|
46
|
+
verifyJwtWithJwks_1 = {
|
|
47
|
+
jwkToKeyObject,
|
|
48
|
+
verifyJwtWithJwks
|
|
49
|
+
};
|
|
50
|
+
return verifyJwtWithJwks_1;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export { requireVerifyJwtWithJwks as __require };
|
|
54
|
+
//# sourceMappingURL=verify-jwt-with-jwks.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify-jwt-with-jwks.mjs","sources":["../../../server/src/utils/verify-jwt-with-jwks.js"],"sourcesContent":["'use strict';\n\nconst crypto = require('node:crypto');\nconst jwt = require('jsonwebtoken');\n\nconst jwkToKeyObject = (jwk) => crypto.createPublicKey({ key: jwk, format: 'jwk' });\n\nconst verifyJwtWithJwks = async ({ idToken, jwksUrl }) => {\n const decoded = jwt.decode(idToken, { complete: true });\n\n if (!decoded?.header?.kid || !decoded.payload) {\n throw new Error('The provided token is not valid');\n }\n\n const response = await fetch(jwksUrl.toString());\n if (!response.ok) {\n throw new Error('There was an error verifying the token');\n }\n\n const jwk = await response.json();\n const key = jwk.keys?.find(({ kid }) => kid === decoded.header.kid);\n\n if (!key) {\n throw new Error('There was an error verifying the token');\n }\n\n const publicKey = jwkToKeyObject(key);\n\n return new Promise((resolve, reject) => {\n jwt.verify(idToken, publicKey, { algorithms: ['RS256'] }, (err, tokenPayload) => {\n if (err) {\n reject(new Error('There was an error verifying the token'));\n return;\n }\n resolve(tokenPayload);\n });\n });\n};\n\nmodule.exports = {\n jwkToKeyObject,\n verifyJwtWithJwks,\n};\n"],"names":["crypto","require$$0","jwt","require$$1","jwkToKeyObject","jwk","createPublicKey","key","format","verifyJwtWithJwks","idToken","jwksUrl","decoded","decode","complete","header","kid","payload","Error","response","fetch","toString","ok","json","keys","find","publicKey","Promise","resolve","reject","verify","algorithms","err","tokenPayload","verifyJwtWithJwks_1"],"mappings":";;;;;;;;AAEA,IAAA,MAAMA,MAAAA,GAASC,SAAAA,EAAAA;AACf,IAAA,MAAMC,GAAAA,GAAMC,UAAAA;AAEZ,IAAA,MAAMC,cAAAA,GAAiB,CAACC,GAAAA,GAAQL,MAAAA,CAAOM,eAAe,CAAC;YAAEC,GAAAA,EAAKF,GAAAA;YAAKG,MAAAA,EAAQ;;AAE3E,IAAA,MAAMC,oBAAoB,OAAO,EAAEC,OAAO,EAAEC,OAAO,EAAE,GAAA;AACnD,QAAA,MAAMC,OAAAA,GAAUV,GAAAA,CAAIW,MAAM,CAACH,OAAAA,EAAS;YAAEI,QAAAA,EAAU;;AAEhD,QAAA,IAAI,CAACF,OAAAA,EAASG,MAAAA,EAAQC,OAAO,CAACJ,OAAAA,CAAQK,OAAO,EAAE;AAC7C,YAAA,MAAM,IAAIC,KAAAA,CAAM,iCAAA,CAAA;AACpB,QAAA;AAEE,QAAA,MAAMC,QAAAA,GAAW,MAAMC,KAAAA,CAAMT,OAAAA,CAAQU,QAAQ,EAAA,CAAA;QAC7C,IAAI,CAACF,QAAAA,CAASG,EAAE,EAAE;AAChB,YAAA,MAAM,IAAIJ,KAAAA,CAAM,wCAAA,CAAA;AACpB,QAAA;QAEE,MAAMb,GAAAA,GAAM,MAAMc,QAAAA,CAASI,IAAI,EAAA;AAC/B,QAAA,MAAMhB,GAAAA,GAAMF,GAAAA,CAAImB,IAAI,EAAEC,KAAK,CAAC,EAAET,GAAG,EAAE,GAAKA,GAAAA,KAAQJ,OAAAA,CAAQG,MAAM,CAACC,GAAG,CAAA;AAElE,QAAA,IAAI,CAACT,GAAAA,EAAK;AACR,YAAA,MAAM,IAAIW,KAAAA,CAAM,wCAAA,CAAA;AACpB,QAAA;AAEE,QAAA,MAAMQ,YAAYtB,cAAAA,CAAeG,GAAAA,CAAAA;QAEjC,OAAO,IAAIoB,OAAAA,CAAQ,CAACC,OAAAA,EAASC,MAAAA,GAAAA;YAC3B3B,GAAAA,CAAI4B,MAAM,CAACpB,OAAAA,EAASgB,SAAAA,EAAW;gBAAEK,UAAAA,EAAY;AAAC,oBAAA;AAAQ;AAAA,aAAA,EAAI,CAACC,GAAAA,EAAKC,YAAAA,GAAAA;AAC9D,gBAAA,IAAID,GAAAA,EAAK;AACPH,oBAAAA,MAAAA,CAAO,IAAIX,KAAAA,CAAM,wCAAA,CAAA,CAAA;AACjB,oBAAA;AACR,gBAAA;gBACMU,OAAAA,CAAQK,YAAAA,CAAAA;AACd,YAAA,CAAA,CAAA;AACA,QAAA,CAAA,CAAA;AACA,IAAA,CAAA;IAEAC,mBAAAA,GAAiB;AACf9B,QAAAA,cAAAA;AACAK,QAAAA;AACF,KAAA;;;;;;"}
|
package/jsconfig.json
ADDED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@strapi/plugin-users-permissions",
|
|
3
|
-
"version": "0.0.0-experimental.
|
|
3
|
+
"version": "0.0.0-experimental.63624e21eb5b0713345a0cf2f68f1c40eab427bc",
|
|
4
4
|
"description": "Protect your API with a full-authentication process based on JWT",
|
|
5
5
|
"homepage": "https://strapi.io",
|
|
6
6
|
"bugs": {
|
|
@@ -32,18 +32,26 @@
|
|
|
32
32
|
"default": "./dist/admin/index.js"
|
|
33
33
|
},
|
|
34
34
|
"./strapi-server": {
|
|
35
|
-
"
|
|
35
|
+
"types": "./types/strapi-server.d.ts",
|
|
36
|
+
"source": "./server/src/index.js",
|
|
36
37
|
"import": "./dist/server/index.mjs",
|
|
37
38
|
"require": "./dist/server/index.js",
|
|
38
39
|
"default": "./dist/server/index.js"
|
|
39
40
|
},
|
|
40
41
|
"./package.json": "./package.json"
|
|
41
42
|
},
|
|
43
|
+
"typesVersions": {
|
|
44
|
+
"*": {
|
|
45
|
+
"strapi-server": [
|
|
46
|
+
"types/strapi-server.d.ts"
|
|
47
|
+
]
|
|
48
|
+
}
|
|
49
|
+
},
|
|
42
50
|
"scripts": {
|
|
43
51
|
"build": "run -T npm-run-all clean build:code",
|
|
44
52
|
"build:code": "run -T rollup -c",
|
|
45
53
|
"clean": "run -T rimraf dist",
|
|
46
|
-
"lint": "run -T eslint .",
|
|
54
|
+
"lint": "run -T eslint . --max-warnings=0",
|
|
47
55
|
"test:front": "run -T cross-env IS_EE=true jest --config ./jest.config.front.js",
|
|
48
56
|
"test:front:ce": "run -T cross-env IS_EE=false jest --config ./jest.config.front.js",
|
|
49
57
|
"test:front:watch": "run -T cross-env IS_EE=true jest --config ./jest.config.front.js --watchAll",
|
|
@@ -53,47 +61,49 @@
|
|
|
53
61
|
"watch": "run -T rollup -c -w"
|
|
54
62
|
},
|
|
55
63
|
"dependencies": {
|
|
56
|
-
"@strapi/design-system": "2.2.
|
|
57
|
-
"@strapi/icons": "2.2.
|
|
58
|
-
"@strapi/utils": "0.0.0-experimental.
|
|
64
|
+
"@strapi/design-system": "2.2.4",
|
|
65
|
+
"@strapi/icons": "2.2.4",
|
|
66
|
+
"@strapi/utils": "0.0.0-experimental.63624e21eb5b0713345a0cf2f68f1c40eab427bc",
|
|
59
67
|
"bcryptjs": "2.4.3",
|
|
60
|
-
"formik": "2.4.
|
|
61
|
-
"grant": "5.4.24",
|
|
68
|
+
"formik": "2.4.9",
|
|
62
69
|
"immer": "9.0.21",
|
|
63
|
-
"jsonwebtoken": "9.0.
|
|
64
|
-
"jwk-to-pem": "2.0.7",
|
|
70
|
+
"jsonwebtoken": "9.0.3",
|
|
65
71
|
"koa": "2.16.4",
|
|
66
72
|
"koa2-ratelimit": "^1.1.3",
|
|
67
73
|
"lodash": "4.18.1",
|
|
68
74
|
"prop-types": "^15.8.1",
|
|
69
|
-
"purest": "4.0.2",
|
|
70
75
|
"react-intl": "6.6.2",
|
|
71
76
|
"react-query": "3.39.3",
|
|
72
77
|
"react-redux": "8.1.3",
|
|
73
78
|
"url-join": "4.0.1",
|
|
74
79
|
"yup": "0.32.9",
|
|
75
|
-
"zod": "
|
|
80
|
+
"zod": "4.4.3"
|
|
76
81
|
},
|
|
77
82
|
"devDependencies": {
|
|
78
|
-
"@strapi/
|
|
83
|
+
"@strapi/admin": "0.0.0-experimental.63624e21eb5b0713345a0cf2f68f1c40eab427bc",
|
|
84
|
+
"@strapi/strapi": "0.0.0-experimental.63624e21eb5b0713345a0cf2f68f1c40eab427bc",
|
|
79
85
|
"@testing-library/dom": "10.4.1",
|
|
86
|
+
"@testing-library/jest-dom": "6.9.1",
|
|
80
87
|
"@testing-library/react": "16.3.2",
|
|
81
88
|
"@testing-library/user-event": "14.6.1",
|
|
89
|
+
"@types/jest": "29.5.2",
|
|
90
|
+
"jest": "29.6.0",
|
|
82
91
|
"msw": "2.13.4",
|
|
83
92
|
"react": "18.3.1",
|
|
84
93
|
"react-dom": "18.3.1",
|
|
85
|
-
"react-router-dom": "6.30.
|
|
94
|
+
"react-router-dom": "6.30.6",
|
|
86
95
|
"styled-components": "6.4.1"
|
|
87
96
|
},
|
|
88
97
|
"peerDependencies": {
|
|
89
|
-
"@strapi/
|
|
90
|
-
"
|
|
91
|
-
"react
|
|
98
|
+
"@strapi/admin": "0.0.0-experimental.63624e21eb5b0713345a0cf2f68f1c40eab427bc",
|
|
99
|
+
"@strapi/strapi": "0.0.0-experimental.63624e21eb5b0713345a0cf2f68f1c40eab427bc",
|
|
100
|
+
"react": "^18.0.0",
|
|
101
|
+
"react-dom": "^18.0.0",
|
|
92
102
|
"react-router-dom": "^6.30.3",
|
|
93
103
|
"styled-components": "^6.0.0"
|
|
94
104
|
},
|
|
95
105
|
"engines": {
|
|
96
|
-
"node": ">=20.
|
|
106
|
+
"node": ">=20.0.0 <=26.x.x",
|
|
97
107
|
"npm": ">=6.0.0"
|
|
98
108
|
},
|
|
99
109
|
"strapi": {
|
package/rollup.config.mjs
CHANGED