@strapi/plugin-users-permissions 5.52.2 → 5.53.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.
- package/dist/server/controllers/auth.js +8 -2
- package/dist/server/controllers/auth.js.map +1 -1
- package/dist/server/controllers/auth.mjs +8 -2
- package/dist/server/controllers/auth.mjs.map +1 -1
- package/dist/server/graphql/mutations/auth/change-password.js +6 -3
- package/dist/server/graphql/mutations/auth/change-password.js.map +1 -1
- package/dist/server/graphql/mutations/auth/change-password.mjs +6 -3
- package/dist/server/graphql/mutations/auth/change-password.mjs.map +1 -1
- package/dist/server/graphql/mutations/auth/forgot-password.js +6 -3
- package/dist/server/graphql/mutations/auth/forgot-password.js.map +1 -1
- package/dist/server/graphql/mutations/auth/forgot-password.mjs +6 -3
- package/dist/server/graphql/mutations/auth/forgot-password.mjs.map +1 -1
- package/dist/server/graphql/mutations/auth/login.js +9 -6
- package/dist/server/graphql/mutations/auth/login.js.map +1 -1
- package/dist/server/graphql/mutations/auth/login.mjs +9 -6
- 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 +6 -3
- package/dist/server/graphql/mutations/auth/register.js.map +1 -1
- package/dist/server/graphql/mutations/auth/register.mjs +6 -3
- package/dist/server/graphql/mutations/auth/register.mjs.map +1 -1
- package/dist/server/graphql/mutations/auth/reset-password.js +6 -3
- package/dist/server/graphql/mutations/auth/reset-password.js.map +1 -1
- package/dist/server/graphql/mutations/auth/reset-password.mjs +6 -3
- package/dist/server/graphql/mutations/auth/reset-password.mjs.map +1 -1
- package/dist/server/middlewares/rateLimit.js +1 -1
- package/dist/server/middlewares/rateLimit.js.map +1 -1
- package/dist/server/middlewares/rateLimit.mjs +1 -1
- package/dist/server/middlewares/rateLimit.mjs.map +1 -1
- package/dist/server/services/providers-registry.js +80 -19
- package/dist/server/services/providers-registry.js.map +1 -1
- package/dist/server/services/providers-registry.mjs +80 -19
- package/dist/server/services/providers-registry.mjs.map +1 -1
- package/dist/server/services/providers.js +12 -8
- package/dist/server/services/providers.js.map +1 -1
- package/dist/server/services/providers.mjs +12 -8
- package/dist/server/services/providers.mjs.map +1 -1
- package/dist/server/services/user.js +7 -7
- package/dist/server/services/user.js.map +1 -1
- package/dist/server/services/user.mjs +7 -7
- package/dist/server/services/user.mjs.map +1 -1
- package/dist/server/utils/oauth-connect/index.js +11 -6
- package/dist/server/utils/oauth-connect/index.js.map +1 -1
- package/dist/server/utils/oauth-connect/index.mjs +11 -6
- package/dist/server/utils/oauth-connect/index.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/package.json +4 -4
- package/server/src/controllers/auth.js +13 -2
- package/server/src/graphql/mutations/auth/change-password.js +5 -5
- package/server/src/graphql/mutations/auth/forgot-password.js +5 -5
- package/server/src/graphql/mutations/auth/login.js +10 -6
- package/server/src/graphql/mutations/auth/rate-limit.js +62 -0
- package/server/src/graphql/mutations/auth/register.js +5 -5
- package/server/src/graphql/mutations/auth/reset-password.js +5 -5
- package/server/src/middlewares/rateLimit.js +1 -1
- package/server/src/services/providers-registry.js +99 -23
- package/server/src/services/providers.js +9 -7
- package/server/src/services/user.js +15 -5
- package/server/src/utils/oauth-connect/index.js +12 -6
- package/server/src/utils/trim-grant-session-response.js +70 -0
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var require$$0 = require('lodash/fp');
|
|
4
4
|
var utils = require('../../utils.js');
|
|
5
|
+
var rateLimit = require('./rate-limit.js');
|
|
5
6
|
|
|
6
7
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
8
|
|
|
@@ -14,8 +15,10 @@ function requireChangePassword() {
|
|
|
14
15
|
hasRequiredChangePassword = 1;
|
|
15
16
|
const { toPlainObject } = require$$0__default.default;
|
|
16
17
|
const { checkBadRequest } = utils.__require();
|
|
18
|
+
const { createRateLimitRunner } = rateLimit.__require();
|
|
17
19
|
changePassword = ({ nexus, strapi })=>{
|
|
18
20
|
const { nonNull } = nexus;
|
|
21
|
+
const runRateLimit = createRateLimitRunner(strapi, '/auth/change-password');
|
|
19
22
|
return {
|
|
20
23
|
type: 'UsersPermissionsLoginPayload',
|
|
21
24
|
args: {
|
|
@@ -26,9 +29,9 @@ function requireChangePassword() {
|
|
|
26
29
|
description: 'Change user password. Confirm with the current password.',
|
|
27
30
|
async resolve (parent, args, context) {
|
|
28
31
|
const { koaContext } = context;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
+
const output = await runRateLimit(koaContext, {
|
|
33
|
+
body: toPlainObject(args)
|
|
34
|
+
}, (ctx)=>strapi.plugin('users-permissions').controller('auth').changePassword(ctx));
|
|
32
35
|
checkBadRequest(output);
|
|
33
36
|
return {
|
|
34
37
|
user: output.user || output,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"change-password.js","sources":["../../../../../server/src/graphql/mutations/auth/change-password.js"],"sourcesContent":["'use strict';\n\nconst { toPlainObject } = require('lodash/fp');\n\nconst { checkBadRequest } = require('../../utils');\n\nmodule.exports = ({ nexus, strapi }) => {\n const { nonNull } = nexus;\n\n return {\n type: 'UsersPermissionsLoginPayload',\n\n args: {\n currentPassword: nonNull('String'),\n password: nonNull('String'),\n passwordConfirmation: nonNull('String'),\n },\n\n description: 'Change user password. Confirm with the current password.',\n\n async resolve(parent, args, context) {\n const { koaContext } = context;\n\n koaContext
|
|
1
|
+
{"version":3,"file":"change-password.js","sources":["../../../../../server/src/graphql/mutations/auth/change-password.js"],"sourcesContent":["'use strict';\n\nconst { toPlainObject } = require('lodash/fp');\n\nconst { checkBadRequest } = require('../../utils');\nconst { createRateLimitRunner } = require('./rate-limit');\n\nmodule.exports = ({ nexus, strapi }) => {\n const { nonNull } = nexus;\n const runRateLimit = createRateLimitRunner(strapi, '/auth/change-password');\n\n return {\n type: 'UsersPermissionsLoginPayload',\n\n args: {\n currentPassword: nonNull('String'),\n password: nonNull('String'),\n passwordConfirmation: nonNull('String'),\n },\n\n description: 'Change user password. Confirm with the current password.',\n\n async resolve(parent, args, context) {\n const { koaContext } = context;\n\n const output = await runRateLimit(koaContext, { body: toPlainObject(args) }, (ctx) =>\n strapi.plugin('users-permissions').controller('auth').changePassword(ctx)\n );\n\n checkBadRequest(output);\n\n return {\n user: output.user || output,\n jwt: output.jwt,\n };\n },\n };\n};\n"],"names":["toPlainObject","require$$0","checkBadRequest","require$$1","createRateLimitRunner","require$$2","changePassword","nexus","strapi","nonNull","runRateLimit","type","args","currentPassword","password","passwordConfirmation","description","resolve","parent","context","koaContext","output","body","ctx","plugin","controller","user","jwt"],"mappings":";;;;;;;;;;;;;;;IAEA,MAAM,EAAEA,aAAa,EAAE,GAAGC,2BAAAA;IAE1B,MAAM,EAAEC,eAAe,EAAE,GAAGC,eAAAA,EAAAA;IAC5B,MAAM,EAAEC,qBAAqB,EAAE,GAAGC,mBAAAA,EAAAA;AAElCC,IAAAA,cAAAA,GAAiB,CAAC,EAAEC,KAAK,EAAEC,MAAM,EAAE,GAAA;QACjC,MAAM,EAAEC,OAAO,EAAE,GAAGF,KAAAA;QACpB,MAAMG,YAAAA,GAAeN,sBAAsBI,MAAAA,EAAQ,uBAAA,CAAA;QAEnD,OAAO;YACLG,IAAAA,EAAM,8BAAA;YAENC,IAAAA,EAAM;AACJC,gBAAAA,eAAAA,EAAiBJ,OAAAA,CAAQ,QAAA,CAAA;AACzBK,gBAAAA,QAAAA,EAAUL,OAAAA,CAAQ,QAAA,CAAA;AAClBM,gBAAAA,oBAAAA,EAAsBN,OAAAA,CAAQ,QAAA;AACpC,aAAA;YAEIO,WAAAA,EAAa,0DAAA;AAEb,YAAA,MAAMC,OAAAA,CAAAA,CAAQC,MAAM,EAAEN,IAAI,EAAEO,OAAO,EAAA;gBACjC,MAAM,EAAEC,UAAU,EAAE,GAAGD,OAAAA;gBAEvB,MAAME,MAAAA,GAAS,MAAMX,YAAAA,CAAaU,UAAAA,EAAY;AAAEE,oBAAAA,IAAAA,EAAMtB,aAAAA,CAAcY,IAAAA;iBAAK,EAAI,CAACW,GAAAA,GAC5Ef,MAAAA,CAAOgB,MAAM,CAAC,qBAAqBC,UAAU,CAAC,MAAA,CAAA,CAAQnB,cAAc,CAACiB,GAAAA,CAAAA,CAAAA;gBAGvErB,eAAAA,CAAgBmB,MAAAA,CAAAA;gBAEhB,OAAO;oBACLK,IAAAA,EAAML,MAAAA,CAAOK,IAAI,IAAIL,MAAAA;AACrBM,oBAAAA,GAAAA,EAAKN,OAAOM;AACpB,iBAAA;AACA,YAAA;AACA,SAAA;AACA,IAAA,CAAA;;;;;;"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import require$$0 from 'lodash/fp';
|
|
2
2
|
import { __require as requireUtils } from '../../utils.mjs';
|
|
3
|
+
import { __require as requireRateLimit } from './rate-limit.mjs';
|
|
3
4
|
|
|
4
5
|
var changePassword;
|
|
5
6
|
var hasRequiredChangePassword;
|
|
@@ -8,8 +9,10 @@ function requireChangePassword() {
|
|
|
8
9
|
hasRequiredChangePassword = 1;
|
|
9
10
|
const { toPlainObject } = require$$0;
|
|
10
11
|
const { checkBadRequest } = requireUtils();
|
|
12
|
+
const { createRateLimitRunner } = requireRateLimit();
|
|
11
13
|
changePassword = ({ nexus, strapi })=>{
|
|
12
14
|
const { nonNull } = nexus;
|
|
15
|
+
const runRateLimit = createRateLimitRunner(strapi, '/auth/change-password');
|
|
13
16
|
return {
|
|
14
17
|
type: 'UsersPermissionsLoginPayload',
|
|
15
18
|
args: {
|
|
@@ -20,9 +23,9 @@ function requireChangePassword() {
|
|
|
20
23
|
description: 'Change user password. Confirm with the current password.',
|
|
21
24
|
async resolve (parent, args, context) {
|
|
22
25
|
const { koaContext } = context;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
+
const output = await runRateLimit(koaContext, {
|
|
27
|
+
body: toPlainObject(args)
|
|
28
|
+
}, (ctx)=>strapi.plugin('users-permissions').controller('auth').changePassword(ctx));
|
|
26
29
|
checkBadRequest(output);
|
|
27
30
|
return {
|
|
28
31
|
user: output.user || output,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"change-password.mjs","sources":["../../../../../server/src/graphql/mutations/auth/change-password.js"],"sourcesContent":["'use strict';\n\nconst { toPlainObject } = require('lodash/fp');\n\nconst { checkBadRequest } = require('../../utils');\n\nmodule.exports = ({ nexus, strapi }) => {\n const { nonNull } = nexus;\n\n return {\n type: 'UsersPermissionsLoginPayload',\n\n args: {\n currentPassword: nonNull('String'),\n password: nonNull('String'),\n passwordConfirmation: nonNull('String'),\n },\n\n description: 'Change user password. Confirm with the current password.',\n\n async resolve(parent, args, context) {\n const { koaContext } = context;\n\n koaContext
|
|
1
|
+
{"version":3,"file":"change-password.mjs","sources":["../../../../../server/src/graphql/mutations/auth/change-password.js"],"sourcesContent":["'use strict';\n\nconst { toPlainObject } = require('lodash/fp');\n\nconst { checkBadRequest } = require('../../utils');\nconst { createRateLimitRunner } = require('./rate-limit');\n\nmodule.exports = ({ nexus, strapi }) => {\n const { nonNull } = nexus;\n const runRateLimit = createRateLimitRunner(strapi, '/auth/change-password');\n\n return {\n type: 'UsersPermissionsLoginPayload',\n\n args: {\n currentPassword: nonNull('String'),\n password: nonNull('String'),\n passwordConfirmation: nonNull('String'),\n },\n\n description: 'Change user password. Confirm with the current password.',\n\n async resolve(parent, args, context) {\n const { koaContext } = context;\n\n const output = await runRateLimit(koaContext, { body: toPlainObject(args) }, (ctx) =>\n strapi.plugin('users-permissions').controller('auth').changePassword(ctx)\n );\n\n checkBadRequest(output);\n\n return {\n user: output.user || output,\n jwt: output.jwt,\n };\n },\n };\n};\n"],"names":["toPlainObject","require$$0","checkBadRequest","require$$1","createRateLimitRunner","require$$2","changePassword","nexus","strapi","nonNull","runRateLimit","type","args","currentPassword","password","passwordConfirmation","description","resolve","parent","context","koaContext","output","body","ctx","plugin","controller","user","jwt"],"mappings":";;;;;;;;;IAEA,MAAM,EAAEA,aAAa,EAAE,GAAGC,UAAAA;IAE1B,MAAM,EAAEC,eAAe,EAAE,GAAGC,YAAAA,EAAAA;IAC5B,MAAM,EAAEC,qBAAqB,EAAE,GAAGC,gBAAAA,EAAAA;AAElCC,IAAAA,cAAAA,GAAiB,CAAC,EAAEC,KAAK,EAAEC,MAAM,EAAE,GAAA;QACjC,MAAM,EAAEC,OAAO,EAAE,GAAGF,KAAAA;QACpB,MAAMG,YAAAA,GAAeN,sBAAsBI,MAAAA,EAAQ,uBAAA,CAAA;QAEnD,OAAO;YACLG,IAAAA,EAAM,8BAAA;YAENC,IAAAA,EAAM;AACJC,gBAAAA,eAAAA,EAAiBJ,OAAAA,CAAQ,QAAA,CAAA;AACzBK,gBAAAA,QAAAA,EAAUL,OAAAA,CAAQ,QAAA,CAAA;AAClBM,gBAAAA,oBAAAA,EAAsBN,OAAAA,CAAQ,QAAA;AACpC,aAAA;YAEIO,WAAAA,EAAa,0DAAA;AAEb,YAAA,MAAMC,OAAAA,CAAAA,CAAQC,MAAM,EAAEN,IAAI,EAAEO,OAAO,EAAA;gBACjC,MAAM,EAAEC,UAAU,EAAE,GAAGD,OAAAA;gBAEvB,MAAME,MAAAA,GAAS,MAAMX,YAAAA,CAAaU,UAAAA,EAAY;AAAEE,oBAAAA,IAAAA,EAAMtB,aAAAA,CAAcY,IAAAA;iBAAK,EAAI,CAACW,GAAAA,GAC5Ef,MAAAA,CAAOgB,MAAM,CAAC,qBAAqBC,UAAU,CAAC,MAAA,CAAA,CAAQnB,cAAc,CAACiB,GAAAA,CAAAA,CAAAA;gBAGvErB,eAAAA,CAAgBmB,MAAAA,CAAAA;gBAEhB,OAAO;oBACLK,IAAAA,EAAML,MAAAA,CAAOK,IAAI,IAAIL,MAAAA;AACrBM,oBAAAA,GAAAA,EAAKN,OAAOM;AACpB,iBAAA;AACA,YAAA;AACA,SAAA;AACA,IAAA,CAAA;;;;;;"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var require$$0 = require('lodash/fp');
|
|
4
4
|
var utils = require('../../utils.js');
|
|
5
|
+
var rateLimit = require('./rate-limit.js');
|
|
5
6
|
|
|
6
7
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
8
|
|
|
@@ -14,8 +15,10 @@ function requireForgotPassword() {
|
|
|
14
15
|
hasRequiredForgotPassword = 1;
|
|
15
16
|
const { toPlainObject } = require$$0__default.default;
|
|
16
17
|
const { checkBadRequest } = utils.__require();
|
|
18
|
+
const { createRateLimitRunner } = rateLimit.__require();
|
|
17
19
|
forgotPassword = ({ nexus, strapi })=>{
|
|
18
20
|
const { nonNull } = nexus;
|
|
21
|
+
const runRateLimit = createRateLimitRunner(strapi, '/auth/forgot-password');
|
|
19
22
|
return {
|
|
20
23
|
type: 'UsersPermissionsPasswordPayload',
|
|
21
24
|
args: {
|
|
@@ -24,9 +27,9 @@ function requireForgotPassword() {
|
|
|
24
27
|
description: 'Request a reset password token',
|
|
25
28
|
async resolve (parent, args, context) {
|
|
26
29
|
const { koaContext } = context;
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
+
const output = await runRateLimit(koaContext, {
|
|
31
|
+
body: toPlainObject(args)
|
|
32
|
+
}, (ctx)=>strapi.plugin('users-permissions').controller('auth').forgotPassword(ctx));
|
|
30
33
|
checkBadRequest(output);
|
|
31
34
|
return {
|
|
32
35
|
ok: output.ok || output
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forgot-password.js","sources":["../../../../../server/src/graphql/mutations/auth/forgot-password.js"],"sourcesContent":["'use strict';\n\nconst { toPlainObject } = require('lodash/fp');\n\nconst { checkBadRequest } = require('../../utils');\n\nmodule.exports = ({ nexus, strapi }) => {\n const { nonNull } = nexus;\n\n return {\n type: 'UsersPermissionsPasswordPayload',\n\n args: {\n email: nonNull('String'),\n },\n\n description: 'Request a reset password token',\n\n async resolve(parent, args, context) {\n const { koaContext } = context;\n\n koaContext
|
|
1
|
+
{"version":3,"file":"forgot-password.js","sources":["../../../../../server/src/graphql/mutations/auth/forgot-password.js"],"sourcesContent":["'use strict';\n\nconst { toPlainObject } = require('lodash/fp');\n\nconst { checkBadRequest } = require('../../utils');\nconst { createRateLimitRunner } = require('./rate-limit');\n\nmodule.exports = ({ nexus, strapi }) => {\n const { nonNull } = nexus;\n const runRateLimit = createRateLimitRunner(strapi, '/auth/forgot-password');\n\n return {\n type: 'UsersPermissionsPasswordPayload',\n\n args: {\n email: nonNull('String'),\n },\n\n description: 'Request a reset password token',\n\n async resolve(parent, args, context) {\n const { koaContext } = context;\n\n const output = await runRateLimit(koaContext, { body: toPlainObject(args) }, (ctx) =>\n strapi.plugin('users-permissions').controller('auth').forgotPassword(ctx)\n );\n\n checkBadRequest(output);\n\n return {\n ok: output.ok || output,\n };\n },\n };\n};\n"],"names":["toPlainObject","require$$0","checkBadRequest","require$$1","createRateLimitRunner","require$$2","forgotPassword","nexus","strapi","nonNull","runRateLimit","type","args","email","description","resolve","parent","context","koaContext","output","body","ctx","plugin","controller","ok"],"mappings":";;;;;;;;;;;;;;;IAEA,MAAM,EAAEA,aAAa,EAAE,GAAGC,2BAAAA;IAE1B,MAAM,EAAEC,eAAe,EAAE,GAAGC,eAAAA,EAAAA;IAC5B,MAAM,EAAEC,qBAAqB,EAAE,GAAGC,mBAAAA,EAAAA;AAElCC,IAAAA,cAAAA,GAAiB,CAAC,EAAEC,KAAK,EAAEC,MAAM,EAAE,GAAA;QACjC,MAAM,EAAEC,OAAO,EAAE,GAAGF,KAAAA;QACpB,MAAMG,YAAAA,GAAeN,sBAAsBI,MAAAA,EAAQ,uBAAA,CAAA;QAEnD,OAAO;YACLG,IAAAA,EAAM,iCAAA;YAENC,IAAAA,EAAM;AACJC,gBAAAA,KAAAA,EAAOJ,OAAAA,CAAQ,QAAA;AACrB,aAAA;YAEIK,WAAAA,EAAa,gCAAA;AAEb,YAAA,MAAMC,OAAAA,CAAAA,CAAQC,MAAM,EAAEJ,IAAI,EAAEK,OAAO,EAAA;gBACjC,MAAM,EAAEC,UAAU,EAAE,GAAGD,OAAAA;gBAEvB,MAAME,MAAAA,GAAS,MAAMT,YAAAA,CAAaQ,UAAAA,EAAY;AAAEE,oBAAAA,IAAAA,EAAMpB,aAAAA,CAAcY,IAAAA;iBAAK,EAAI,CAACS,GAAAA,GAC5Eb,MAAAA,CAAOc,MAAM,CAAC,qBAAqBC,UAAU,CAAC,MAAA,CAAA,CAAQjB,cAAc,CAACe,GAAAA,CAAAA,CAAAA;gBAGvEnB,eAAAA,CAAgBiB,MAAAA,CAAAA;gBAEhB,OAAO;oBACLK,EAAAA,EAAIL,MAAAA,CAAOK,EAAE,IAAIL;AACzB,iBAAA;AACA,YAAA;AACA,SAAA;AACA,IAAA,CAAA;;;;;;"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import require$$0 from 'lodash/fp';
|
|
2
2
|
import { __require as requireUtils } from '../../utils.mjs';
|
|
3
|
+
import { __require as requireRateLimit } from './rate-limit.mjs';
|
|
3
4
|
|
|
4
5
|
var forgotPassword;
|
|
5
6
|
var hasRequiredForgotPassword;
|
|
@@ -8,8 +9,10 @@ function requireForgotPassword() {
|
|
|
8
9
|
hasRequiredForgotPassword = 1;
|
|
9
10
|
const { toPlainObject } = require$$0;
|
|
10
11
|
const { checkBadRequest } = requireUtils();
|
|
12
|
+
const { createRateLimitRunner } = requireRateLimit();
|
|
11
13
|
forgotPassword = ({ nexus, strapi })=>{
|
|
12
14
|
const { nonNull } = nexus;
|
|
15
|
+
const runRateLimit = createRateLimitRunner(strapi, '/auth/forgot-password');
|
|
13
16
|
return {
|
|
14
17
|
type: 'UsersPermissionsPasswordPayload',
|
|
15
18
|
args: {
|
|
@@ -18,9 +21,9 @@ function requireForgotPassword() {
|
|
|
18
21
|
description: 'Request a reset password token',
|
|
19
22
|
async resolve (parent, args, context) {
|
|
20
23
|
const { koaContext } = context;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
+
const output = await runRateLimit(koaContext, {
|
|
25
|
+
body: toPlainObject(args)
|
|
26
|
+
}, (ctx)=>strapi.plugin('users-permissions').controller('auth').forgotPassword(ctx));
|
|
24
27
|
checkBadRequest(output);
|
|
25
28
|
return {
|
|
26
29
|
ok: output.ok || output
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forgot-password.mjs","sources":["../../../../../server/src/graphql/mutations/auth/forgot-password.js"],"sourcesContent":["'use strict';\n\nconst { toPlainObject } = require('lodash/fp');\n\nconst { checkBadRequest } = require('../../utils');\n\nmodule.exports = ({ nexus, strapi }) => {\n const { nonNull } = nexus;\n\n return {\n type: 'UsersPermissionsPasswordPayload',\n\n args: {\n email: nonNull('String'),\n },\n\n description: 'Request a reset password token',\n\n async resolve(parent, args, context) {\n const { koaContext } = context;\n\n koaContext
|
|
1
|
+
{"version":3,"file":"forgot-password.mjs","sources":["../../../../../server/src/graphql/mutations/auth/forgot-password.js"],"sourcesContent":["'use strict';\n\nconst { toPlainObject } = require('lodash/fp');\n\nconst { checkBadRequest } = require('../../utils');\nconst { createRateLimitRunner } = require('./rate-limit');\n\nmodule.exports = ({ nexus, strapi }) => {\n const { nonNull } = nexus;\n const runRateLimit = createRateLimitRunner(strapi, '/auth/forgot-password');\n\n return {\n type: 'UsersPermissionsPasswordPayload',\n\n args: {\n email: nonNull('String'),\n },\n\n description: 'Request a reset password token',\n\n async resolve(parent, args, context) {\n const { koaContext } = context;\n\n const output = await runRateLimit(koaContext, { body: toPlainObject(args) }, (ctx) =>\n strapi.plugin('users-permissions').controller('auth').forgotPassword(ctx)\n );\n\n checkBadRequest(output);\n\n return {\n ok: output.ok || output,\n };\n },\n };\n};\n"],"names":["toPlainObject","require$$0","checkBadRequest","require$$1","createRateLimitRunner","require$$2","forgotPassword","nexus","strapi","nonNull","runRateLimit","type","args","email","description","resolve","parent","context","koaContext","output","body","ctx","plugin","controller","ok"],"mappings":";;;;;;;;;IAEA,MAAM,EAAEA,aAAa,EAAE,GAAGC,UAAAA;IAE1B,MAAM,EAAEC,eAAe,EAAE,GAAGC,YAAAA,EAAAA;IAC5B,MAAM,EAAEC,qBAAqB,EAAE,GAAGC,gBAAAA,EAAAA;AAElCC,IAAAA,cAAAA,GAAiB,CAAC,EAAEC,KAAK,EAAEC,MAAM,EAAE,GAAA;QACjC,MAAM,EAAEC,OAAO,EAAE,GAAGF,KAAAA;QACpB,MAAMG,YAAAA,GAAeN,sBAAsBI,MAAAA,EAAQ,uBAAA,CAAA;QAEnD,OAAO;YACLG,IAAAA,EAAM,iCAAA;YAENC,IAAAA,EAAM;AACJC,gBAAAA,KAAAA,EAAOJ,OAAAA,CAAQ,QAAA;AACrB,aAAA;YAEIK,WAAAA,EAAa,gCAAA;AAEb,YAAA,MAAMC,OAAAA,CAAAA,CAAQC,MAAM,EAAEJ,IAAI,EAAEK,OAAO,EAAA;gBACjC,MAAM,EAAEC,UAAU,EAAE,GAAGD,OAAAA;gBAEvB,MAAME,MAAAA,GAAS,MAAMT,YAAAA,CAAaQ,UAAAA,EAAY;AAAEE,oBAAAA,IAAAA,EAAMpB,aAAAA,CAAcY,IAAAA;iBAAK,EAAI,CAACS,GAAAA,GAC5Eb,MAAAA,CAAOc,MAAM,CAAC,qBAAqBC,UAAU,CAAC,MAAA,CAAA,CAAQjB,cAAc,CAACe,GAAAA,CAAAA,CAAAA;gBAGvEnB,eAAAA,CAAgBiB,MAAAA,CAAAA;gBAEhB,OAAO;oBACLK,EAAAA,EAAIL,MAAAA,CAAOK,EAAE,IAAIL;AACzB,iBAAA;AACA,YAAA;AACA,SAAA;AACA,IAAA,CAAA;;;;;;"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var require$$0 = require('lodash/fp');
|
|
4
4
|
var utils = require('../../utils.js');
|
|
5
|
+
var rateLimit = require('./rate-limit.js');
|
|
5
6
|
|
|
6
7
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
8
|
|
|
@@ -14,8 +15,10 @@ function requireLogin() {
|
|
|
14
15
|
hasRequiredLogin = 1;
|
|
15
16
|
const { toPlainObject } = require$$0__default.default;
|
|
16
17
|
const { checkBadRequest } = utils.__require();
|
|
18
|
+
const { createRateLimitRunner } = rateLimit.__require();
|
|
17
19
|
login = ({ nexus, strapi })=>{
|
|
18
20
|
const { nonNull } = nexus;
|
|
21
|
+
const runRateLimit = createRateLimitRunner(strapi, '/auth/local');
|
|
19
22
|
return {
|
|
20
23
|
type: nonNull('UsersPermissionsLoginPayload'),
|
|
21
24
|
args: {
|
|
@@ -23,12 +26,12 @@ function requireLogin() {
|
|
|
23
26
|
},
|
|
24
27
|
async resolve (parent, args, context) {
|
|
25
28
|
const { koaContext } = context;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
const output = await runRateLimit(koaContext, {
|
|
30
|
+
body: toPlainObject(args.input),
|
|
31
|
+
params: {
|
|
32
|
+
provider: args.input.provider
|
|
33
|
+
}
|
|
34
|
+
}, (ctx)=>strapi.plugin('users-permissions').controller('auth').callback(ctx));
|
|
32
35
|
checkBadRequest(output);
|
|
33
36
|
return {
|
|
34
37
|
user: output.user || output,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sources":["../../../../../server/src/graphql/mutations/auth/login.js"],"sourcesContent":["'use strict';\n\nconst { toPlainObject } = require('lodash/fp');\n\nconst { checkBadRequest } = require('../../utils');\n\nmodule.exports = ({ nexus, strapi }) => {\n const { nonNull } = nexus;\n\n return {\n type: nonNull('UsersPermissionsLoginPayload'),\n\n args: {\n input: nonNull('UsersPermissionsLoginInput'),\n },\n\n async resolve(parent, args, context) {\n const { koaContext } = context;\n\n koaContext.params
|
|
1
|
+
{"version":3,"file":"login.js","sources":["../../../../../server/src/graphql/mutations/auth/login.js"],"sourcesContent":["'use strict';\n\nconst { toPlainObject } = require('lodash/fp');\n\nconst { checkBadRequest } = require('../../utils');\nconst { createRateLimitRunner } = require('./rate-limit');\n\nmodule.exports = ({ nexus, strapi }) => {\n const { nonNull } = nexus;\n const runRateLimit = createRateLimitRunner(strapi, '/auth/local');\n\n return {\n type: nonNull('UsersPermissionsLoginPayload'),\n\n args: {\n input: nonNull('UsersPermissionsLoginInput'),\n },\n\n async resolve(parent, args, context) {\n const { koaContext } = context;\n\n const output = await runRateLimit(\n koaContext,\n {\n body: toPlainObject(args.input),\n params: { provider: args.input.provider },\n },\n (ctx) => strapi.plugin('users-permissions').controller('auth').callback(ctx)\n );\n\n checkBadRequest(output);\n\n return {\n user: output.user || output,\n jwt: output.jwt,\n };\n },\n };\n};\n"],"names":["toPlainObject","require$$0","checkBadRequest","require$$1","createRateLimitRunner","require$$2","login","nexus","strapi","nonNull","runRateLimit","type","args","input","resolve","parent","context","koaContext","output","body","params","provider","ctx","plugin","controller","callback","user","jwt"],"mappings":";;;;;;;;;;;;;;;IAEA,MAAM,EAAEA,aAAa,EAAE,GAAGC,2BAAAA;IAE1B,MAAM,EAAEC,eAAe,EAAE,GAAGC,eAAAA,EAAAA;IAC5B,MAAM,EAAEC,qBAAqB,EAAE,GAAGC,mBAAAA,EAAAA;AAElCC,IAAAA,KAAAA,GAAiB,CAAC,EAAEC,KAAK,EAAEC,MAAM,EAAE,GAAA;QACjC,MAAM,EAAEC,OAAO,EAAE,GAAGF,KAAAA;QACpB,MAAMG,YAAAA,GAAeN,sBAAsBI,MAAAA,EAAQ,aAAA,CAAA;QAEnD,OAAO;AACLG,YAAAA,IAAAA,EAAMF,OAAAA,CAAQ,8BAAA,CAAA;YAEdG,IAAAA,EAAM;AACJC,gBAAAA,KAAAA,EAAOJ,OAAAA,CAAQ,4BAAA;AACrB,aAAA;AAEI,YAAA,MAAMK,OAAAA,CAAAA,CAAQC,MAAM,EAAEH,IAAI,EAAEI,OAAO,EAAA;gBACjC,MAAM,EAAEC,UAAU,EAAE,GAAGD,OAAAA;gBAEvB,MAAME,MAAAA,GAAS,MAAMR,YAAAA,CACnBO,UAAAA,EACA;oBACEE,IAAAA,EAAMnB,aAAAA,CAAcY,KAAKC,KAAK,CAAA;oBAC9BO,MAAAA,EAAQ;wBAAEC,QAAAA,EAAUT,IAAAA,CAAKC,KAAK,CAACQ;AAAQ;iBACjD,EACQ,CAACC,GAAAA,GAAQd,MAAAA,CAAOe,MAAM,CAAC,qBAAqBC,UAAU,CAAC,MAAA,CAAA,CAAQC,QAAQ,CAACH,GAAAA,CAAAA,CAAAA;gBAG1EpB,eAAAA,CAAgBgB,MAAAA,CAAAA;gBAEhB,OAAO;oBACLQ,IAAAA,EAAMR,MAAAA,CAAOQ,IAAI,IAAIR,MAAAA;AACrBS,oBAAAA,GAAAA,EAAKT,OAAOS;AACpB,iBAAA;AACA,YAAA;AACA,SAAA;AACA,IAAA,CAAA;;;;;;"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import require$$0 from 'lodash/fp';
|
|
2
2
|
import { __require as requireUtils } from '../../utils.mjs';
|
|
3
|
+
import { __require as requireRateLimit } from './rate-limit.mjs';
|
|
3
4
|
|
|
4
5
|
var login;
|
|
5
6
|
var hasRequiredLogin;
|
|
@@ -8,8 +9,10 @@ function requireLogin() {
|
|
|
8
9
|
hasRequiredLogin = 1;
|
|
9
10
|
const { toPlainObject } = require$$0;
|
|
10
11
|
const { checkBadRequest } = requireUtils();
|
|
12
|
+
const { createRateLimitRunner } = requireRateLimit();
|
|
11
13
|
login = ({ nexus, strapi })=>{
|
|
12
14
|
const { nonNull } = nexus;
|
|
15
|
+
const runRateLimit = createRateLimitRunner(strapi, '/auth/local');
|
|
13
16
|
return {
|
|
14
17
|
type: nonNull('UsersPermissionsLoginPayload'),
|
|
15
18
|
args: {
|
|
@@ -17,12 +20,12 @@ function requireLogin() {
|
|
|
17
20
|
},
|
|
18
21
|
async resolve (parent, args, context) {
|
|
19
22
|
const { koaContext } = context;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
const output = await runRateLimit(koaContext, {
|
|
24
|
+
body: toPlainObject(args.input),
|
|
25
|
+
params: {
|
|
26
|
+
provider: args.input.provider
|
|
27
|
+
}
|
|
28
|
+
}, (ctx)=>strapi.plugin('users-permissions').controller('auth').callback(ctx));
|
|
26
29
|
checkBadRequest(output);
|
|
27
30
|
return {
|
|
28
31
|
user: output.user || output,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.mjs","sources":["../../../../../server/src/graphql/mutations/auth/login.js"],"sourcesContent":["'use strict';\n\nconst { toPlainObject } = require('lodash/fp');\n\nconst { checkBadRequest } = require('../../utils');\n\nmodule.exports = ({ nexus, strapi }) => {\n const { nonNull } = nexus;\n\n return {\n type: nonNull('UsersPermissionsLoginPayload'),\n\n args: {\n input: nonNull('UsersPermissionsLoginInput'),\n },\n\n async resolve(parent, args, context) {\n const { koaContext } = context;\n\n koaContext.params
|
|
1
|
+
{"version":3,"file":"login.mjs","sources":["../../../../../server/src/graphql/mutations/auth/login.js"],"sourcesContent":["'use strict';\n\nconst { toPlainObject } = require('lodash/fp');\n\nconst { checkBadRequest } = require('../../utils');\nconst { createRateLimitRunner } = require('./rate-limit');\n\nmodule.exports = ({ nexus, strapi }) => {\n const { nonNull } = nexus;\n const runRateLimit = createRateLimitRunner(strapi, '/auth/local');\n\n return {\n type: nonNull('UsersPermissionsLoginPayload'),\n\n args: {\n input: nonNull('UsersPermissionsLoginInput'),\n },\n\n async resolve(parent, args, context) {\n const { koaContext } = context;\n\n const output = await runRateLimit(\n koaContext,\n {\n body: toPlainObject(args.input),\n params: { provider: args.input.provider },\n },\n (ctx) => strapi.plugin('users-permissions').controller('auth').callback(ctx)\n );\n\n checkBadRequest(output);\n\n return {\n user: output.user || output,\n jwt: output.jwt,\n };\n },\n };\n};\n"],"names":["toPlainObject","require$$0","checkBadRequest","require$$1","createRateLimitRunner","require$$2","login","nexus","strapi","nonNull","runRateLimit","type","args","input","resolve","parent","context","koaContext","output","body","params","provider","ctx","plugin","controller","callback","user","jwt"],"mappings":";;;;;;;;;IAEA,MAAM,EAAEA,aAAa,EAAE,GAAGC,UAAAA;IAE1B,MAAM,EAAEC,eAAe,EAAE,GAAGC,YAAAA,EAAAA;IAC5B,MAAM,EAAEC,qBAAqB,EAAE,GAAGC,gBAAAA,EAAAA;AAElCC,IAAAA,KAAAA,GAAiB,CAAC,EAAEC,KAAK,EAAEC,MAAM,EAAE,GAAA;QACjC,MAAM,EAAEC,OAAO,EAAE,GAAGF,KAAAA;QACpB,MAAMG,YAAAA,GAAeN,sBAAsBI,MAAAA,EAAQ,aAAA,CAAA;QAEnD,OAAO;AACLG,YAAAA,IAAAA,EAAMF,OAAAA,CAAQ,8BAAA,CAAA;YAEdG,IAAAA,EAAM;AACJC,gBAAAA,KAAAA,EAAOJ,OAAAA,CAAQ,4BAAA;AACrB,aAAA;AAEI,YAAA,MAAMK,OAAAA,CAAAA,CAAQC,MAAM,EAAEH,IAAI,EAAEI,OAAO,EAAA;gBACjC,MAAM,EAAEC,UAAU,EAAE,GAAGD,OAAAA;gBAEvB,MAAME,MAAAA,GAAS,MAAMR,YAAAA,CACnBO,UAAAA,EACA;oBACEE,IAAAA,EAAMnB,aAAAA,CAAcY,KAAKC,KAAK,CAAA;oBAC9BO,MAAAA,EAAQ;wBAAEC,QAAAA,EAAUT,IAAAA,CAAKC,KAAK,CAACQ;AAAQ;iBACjD,EACQ,CAACC,GAAAA,GAAQd,MAAAA,CAAOe,MAAM,CAAC,qBAAqBC,UAAU,CAAC,MAAA,CAAA,CAAQC,QAAQ,CAACH,GAAAA,CAAAA,CAAAA;gBAG1EpB,eAAAA,CAAgBgB,MAAAA,CAAAA;gBAEhB,OAAO;oBACLQ,IAAAA,EAAMR,MAAAA,CAAOQ,IAAI,IAAIR,MAAAA;AACrBS,oBAAAA,GAAAA,EAAKT,OAAOS;AACpB,iBAAA;AACA,YAAA;AACA,SAAA;AACA,IAAA,CAAA;;;;;;"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var rateLimit;
|
|
4
|
+
var hasRequiredRateLimit;
|
|
5
|
+
function requireRateLimit() {
|
|
6
|
+
if (hasRequiredRateLimit) return rateLimit;
|
|
7
|
+
hasRequiredRateLimit = 1;
|
|
8
|
+
const RATE_LIMIT_MIDDLEWARE = 'plugin::users-permissions.rateLimit';
|
|
9
|
+
const contextQueues = new WeakMap();
|
|
10
|
+
const getRateLimitPath = (strapi, routeSuffix)=>{
|
|
11
|
+
const configuredPrefix = strapi.config.get('api.rest.prefix', '/api');
|
|
12
|
+
const prefix = typeof configuredPrefix === 'string' ? configuredPrefix : '/api';
|
|
13
|
+
const normalizedPrefix = prefix.replace(/^\/+|\/+$/g, '');
|
|
14
|
+
const normalizedSuffix = routeSuffix.replace(/^\/+/, '');
|
|
15
|
+
return `/${[
|
|
16
|
+
normalizedPrefix,
|
|
17
|
+
normalizedSuffix
|
|
18
|
+
].filter(Boolean).join('/')}`;
|
|
19
|
+
};
|
|
20
|
+
const enqueueContextOperation = (koaContext, operation)=>{
|
|
21
|
+
const previous = contextQueues.get(koaContext) || Promise.resolve();
|
|
22
|
+
const result = previous.catch(()=>undefined).then(operation);
|
|
23
|
+
contextQueues.set(koaContext, result.catch(()=>undefined));
|
|
24
|
+
return result;
|
|
25
|
+
};
|
|
26
|
+
const createRateLimitRunner = (strapi, routeSuffix)=>{
|
|
27
|
+
const rateLimit = strapi.middleware(RATE_LIMIT_MIDDLEWARE)({}, {
|
|
28
|
+
strapi
|
|
29
|
+
});
|
|
30
|
+
const routePath = getRateLimitPath(strapi, routeSuffix);
|
|
31
|
+
return (koaContext, { body, params }, controller)=>enqueueContextOperation(koaContext, async ()=>{
|
|
32
|
+
const originalBody = koaContext.request.body;
|
|
33
|
+
const originalPath = koaContext.request.path;
|
|
34
|
+
const originalParams = koaContext.params;
|
|
35
|
+
const originalResponseBody = koaContext.body;
|
|
36
|
+
let responseStatus = 200;
|
|
37
|
+
koaContext.request.path = routePath;
|
|
38
|
+
koaContext.request.body = body;
|
|
39
|
+
if (params) {
|
|
40
|
+
koaContext.params = params;
|
|
41
|
+
}
|
|
42
|
+
try {
|
|
43
|
+
await rateLimit(koaContext, ()=>controller(koaContext));
|
|
44
|
+
responseStatus = koaContext.status;
|
|
45
|
+
return koaContext.body;
|
|
46
|
+
} finally{
|
|
47
|
+
koaContext.request.path = originalPath;
|
|
48
|
+
koaContext.request.body = originalBody;
|
|
49
|
+
koaContext.params = originalParams;
|
|
50
|
+
koaContext.body = originalResponseBody;
|
|
51
|
+
koaContext.status = responseStatus;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
rateLimit = {
|
|
56
|
+
createRateLimitRunner,
|
|
57
|
+
getRateLimitPath
|
|
58
|
+
};
|
|
59
|
+
return rateLimit;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
exports.__require = requireRateLimit;
|
|
63
|
+
//# sourceMappingURL=rate-limit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate-limit.js","sources":["../../../../../server/src/graphql/mutations/auth/rate-limit.js"],"sourcesContent":["'use strict';\n\nconst RATE_LIMIT_MIDDLEWARE = 'plugin::users-permissions.rateLimit';\nconst contextQueues = new WeakMap();\n\nconst getRateLimitPath = (strapi, routeSuffix) => {\n const configuredPrefix = strapi.config.get('api.rest.prefix', '/api');\n const prefix = typeof configuredPrefix === 'string' ? configuredPrefix : '/api';\n const normalizedPrefix = prefix.replace(/^\\/+|\\/+$/g, '');\n const normalizedSuffix = routeSuffix.replace(/^\\/+/, '');\n\n return `/${[normalizedPrefix, normalizedSuffix].filter(Boolean).join('/')}`;\n};\n\nconst enqueueContextOperation = (koaContext, operation) => {\n const previous = contextQueues.get(koaContext) || Promise.resolve();\n const result = previous.catch(() => undefined).then(operation);\n\n contextQueues.set(\n koaContext,\n result.catch(() => undefined)\n );\n\n return result;\n};\n\nconst createRateLimitRunner = (strapi, routeSuffix) => {\n const rateLimit = strapi.middleware(RATE_LIMIT_MIDDLEWARE)({}, { strapi });\n const routePath = getRateLimitPath(strapi, routeSuffix);\n\n return (koaContext, { body, params }, controller) =>\n enqueueContextOperation(koaContext, async () => {\n const originalBody = koaContext.request.body;\n const originalPath = koaContext.request.path;\n const originalParams = koaContext.params;\n const originalResponseBody = koaContext.body;\n let responseStatus = 200;\n\n koaContext.request.path = routePath;\n koaContext.request.body = body;\n if (params) {\n koaContext.params = params;\n }\n\n try {\n await rateLimit(koaContext, () => controller(koaContext));\n responseStatus = koaContext.status;\n return koaContext.body;\n } finally {\n koaContext.request.path = originalPath;\n koaContext.request.body = originalBody;\n koaContext.params = originalParams;\n koaContext.body = originalResponseBody;\n koaContext.status = responseStatus;\n }\n });\n};\n\nmodule.exports = {\n createRateLimitRunner,\n getRateLimitPath,\n};\n"],"names":["RATE_LIMIT_MIDDLEWARE","contextQueues","WeakMap","getRateLimitPath","strapi","routeSuffix","configuredPrefix","config","get","prefix","normalizedPrefix","replace","normalizedSuffix","filter","Boolean","join","enqueueContextOperation","koaContext","operation","previous","Promise","resolve","result","catch","undefined","then","set","createRateLimitRunner","rateLimit","middleware","routePath","body","params","controller","originalBody","request","originalPath","path","originalParams","originalResponseBody","responseStatus","status"],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
var rateLimit;
|
|
2
|
+
var hasRequiredRateLimit;
|
|
3
|
+
function requireRateLimit() {
|
|
4
|
+
if (hasRequiredRateLimit) return rateLimit;
|
|
5
|
+
hasRequiredRateLimit = 1;
|
|
6
|
+
const RATE_LIMIT_MIDDLEWARE = 'plugin::users-permissions.rateLimit';
|
|
7
|
+
const contextQueues = new WeakMap();
|
|
8
|
+
const getRateLimitPath = (strapi, routeSuffix)=>{
|
|
9
|
+
const configuredPrefix = strapi.config.get('api.rest.prefix', '/api');
|
|
10
|
+
const prefix = typeof configuredPrefix === 'string' ? configuredPrefix : '/api';
|
|
11
|
+
const normalizedPrefix = prefix.replace(/^\/+|\/+$/g, '');
|
|
12
|
+
const normalizedSuffix = routeSuffix.replace(/^\/+/, '');
|
|
13
|
+
return `/${[
|
|
14
|
+
normalizedPrefix,
|
|
15
|
+
normalizedSuffix
|
|
16
|
+
].filter(Boolean).join('/')}`;
|
|
17
|
+
};
|
|
18
|
+
const enqueueContextOperation = (koaContext, operation)=>{
|
|
19
|
+
const previous = contextQueues.get(koaContext) || Promise.resolve();
|
|
20
|
+
const result = previous.catch(()=>undefined).then(operation);
|
|
21
|
+
contextQueues.set(koaContext, result.catch(()=>undefined));
|
|
22
|
+
return result;
|
|
23
|
+
};
|
|
24
|
+
const createRateLimitRunner = (strapi, routeSuffix)=>{
|
|
25
|
+
const rateLimit = strapi.middleware(RATE_LIMIT_MIDDLEWARE)({}, {
|
|
26
|
+
strapi
|
|
27
|
+
});
|
|
28
|
+
const routePath = getRateLimitPath(strapi, routeSuffix);
|
|
29
|
+
return (koaContext, { body, params }, controller)=>enqueueContextOperation(koaContext, async ()=>{
|
|
30
|
+
const originalBody = koaContext.request.body;
|
|
31
|
+
const originalPath = koaContext.request.path;
|
|
32
|
+
const originalParams = koaContext.params;
|
|
33
|
+
const originalResponseBody = koaContext.body;
|
|
34
|
+
let responseStatus = 200;
|
|
35
|
+
koaContext.request.path = routePath;
|
|
36
|
+
koaContext.request.body = body;
|
|
37
|
+
if (params) {
|
|
38
|
+
koaContext.params = params;
|
|
39
|
+
}
|
|
40
|
+
try {
|
|
41
|
+
await rateLimit(koaContext, ()=>controller(koaContext));
|
|
42
|
+
responseStatus = koaContext.status;
|
|
43
|
+
return koaContext.body;
|
|
44
|
+
} finally{
|
|
45
|
+
koaContext.request.path = originalPath;
|
|
46
|
+
koaContext.request.body = originalBody;
|
|
47
|
+
koaContext.params = originalParams;
|
|
48
|
+
koaContext.body = originalResponseBody;
|
|
49
|
+
koaContext.status = responseStatus;
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
rateLimit = {
|
|
54
|
+
createRateLimitRunner,
|
|
55
|
+
getRateLimitPath
|
|
56
|
+
};
|
|
57
|
+
return rateLimit;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export { requireRateLimit as __require };
|
|
61
|
+
//# sourceMappingURL=rate-limit.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate-limit.mjs","sources":["../../../../../server/src/graphql/mutations/auth/rate-limit.js"],"sourcesContent":["'use strict';\n\nconst RATE_LIMIT_MIDDLEWARE = 'plugin::users-permissions.rateLimit';\nconst contextQueues = new WeakMap();\n\nconst getRateLimitPath = (strapi, routeSuffix) => {\n const configuredPrefix = strapi.config.get('api.rest.prefix', '/api');\n const prefix = typeof configuredPrefix === 'string' ? configuredPrefix : '/api';\n const normalizedPrefix = prefix.replace(/^\\/+|\\/+$/g, '');\n const normalizedSuffix = routeSuffix.replace(/^\\/+/, '');\n\n return `/${[normalizedPrefix, normalizedSuffix].filter(Boolean).join('/')}`;\n};\n\nconst enqueueContextOperation = (koaContext, operation) => {\n const previous = contextQueues.get(koaContext) || Promise.resolve();\n const result = previous.catch(() => undefined).then(operation);\n\n contextQueues.set(\n koaContext,\n result.catch(() => undefined)\n );\n\n return result;\n};\n\nconst createRateLimitRunner = (strapi, routeSuffix) => {\n const rateLimit = strapi.middleware(RATE_LIMIT_MIDDLEWARE)({}, { strapi });\n const routePath = getRateLimitPath(strapi, routeSuffix);\n\n return (koaContext, { body, params }, controller) =>\n enqueueContextOperation(koaContext, async () => {\n const originalBody = koaContext.request.body;\n const originalPath = koaContext.request.path;\n const originalParams = koaContext.params;\n const originalResponseBody = koaContext.body;\n let responseStatus = 200;\n\n koaContext.request.path = routePath;\n koaContext.request.body = body;\n if (params) {\n koaContext.params = params;\n }\n\n try {\n await rateLimit(koaContext, () => controller(koaContext));\n responseStatus = koaContext.status;\n return koaContext.body;\n } finally {\n koaContext.request.path = originalPath;\n koaContext.request.body = originalBody;\n koaContext.params = originalParams;\n koaContext.body = originalResponseBody;\n koaContext.status = responseStatus;\n }\n });\n};\n\nmodule.exports = {\n createRateLimitRunner,\n getRateLimitPath,\n};\n"],"names":["RATE_LIMIT_MIDDLEWARE","contextQueues","WeakMap","getRateLimitPath","strapi","routeSuffix","configuredPrefix","config","get","prefix","normalizedPrefix","replace","normalizedSuffix","filter","Boolean","join","enqueueContextOperation","koaContext","operation","previous","Promise","resolve","result","catch","undefined","then","set","createRateLimitRunner","rateLimit","middleware","routePath","body","params","controller","originalBody","request","originalPath","path","originalParams","originalResponseBody","responseStatus","status"],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var require$$0 = require('lodash/fp');
|
|
4
4
|
var utils = require('../../utils.js');
|
|
5
|
+
var rateLimit = require('./rate-limit.js');
|
|
5
6
|
|
|
6
7
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
8
|
|
|
@@ -14,8 +15,10 @@ function requireRegister() {
|
|
|
14
15
|
hasRequiredRegister = 1;
|
|
15
16
|
const { toPlainObject } = require$$0__default.default;
|
|
16
17
|
const { checkBadRequest } = utils.__require();
|
|
18
|
+
const { createRateLimitRunner } = rateLimit.__require();
|
|
17
19
|
register = ({ nexus, strapi })=>{
|
|
18
20
|
const { nonNull } = nexus;
|
|
21
|
+
const runRateLimit = createRateLimitRunner(strapi, '/auth/local/register');
|
|
19
22
|
return {
|
|
20
23
|
type: nonNull('UsersPermissionsLoginPayload'),
|
|
21
24
|
args: {
|
|
@@ -24,9 +27,9 @@ function requireRegister() {
|
|
|
24
27
|
description: 'Register a user',
|
|
25
28
|
async resolve (parent, args, context) {
|
|
26
29
|
const { koaContext } = context;
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
+
const output = await runRateLimit(koaContext, {
|
|
31
|
+
body: toPlainObject(args.input)
|
|
32
|
+
}, (ctx)=>strapi.plugin('users-permissions').controller('auth').register(ctx));
|
|
30
33
|
checkBadRequest(output);
|
|
31
34
|
return {
|
|
32
35
|
user: output.user || output,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","sources":["../../../../../server/src/graphql/mutations/auth/register.js"],"sourcesContent":["'use strict';\n\nconst { toPlainObject } = require('lodash/fp');\n\nconst { checkBadRequest } = require('../../utils');\n\nmodule.exports = ({ nexus, strapi }) => {\n const { nonNull } = nexus;\n\n return {\n type: nonNull('UsersPermissionsLoginPayload'),\n\n args: {\n input: nonNull('UsersPermissionsRegisterInput'),\n },\n\n description: 'Register a user',\n\n async resolve(parent, args, context) {\n const { koaContext } = context;\n\n koaContext
|
|
1
|
+
{"version":3,"file":"register.js","sources":["../../../../../server/src/graphql/mutations/auth/register.js"],"sourcesContent":["'use strict';\n\nconst { toPlainObject } = require('lodash/fp');\n\nconst { checkBadRequest } = require('../../utils');\nconst { createRateLimitRunner } = require('./rate-limit');\n\nmodule.exports = ({ nexus, strapi }) => {\n const { nonNull } = nexus;\n const runRateLimit = createRateLimitRunner(strapi, '/auth/local/register');\n\n return {\n type: nonNull('UsersPermissionsLoginPayload'),\n\n args: {\n input: nonNull('UsersPermissionsRegisterInput'),\n },\n\n description: 'Register a user',\n\n async resolve(parent, args, context) {\n const { koaContext } = context;\n\n const output = await runRateLimit(koaContext, { body: toPlainObject(args.input) }, (ctx) =>\n strapi.plugin('users-permissions').controller('auth').register(ctx)\n );\n\n checkBadRequest(output);\n\n return {\n user: output.user || output,\n jwt: output.jwt,\n };\n },\n };\n};\n"],"names":["toPlainObject","require$$0","checkBadRequest","require$$1","createRateLimitRunner","require$$2","register","nexus","strapi","nonNull","runRateLimit","type","args","input","description","resolve","parent","context","koaContext","output","body","ctx","plugin","controller","user","jwt"],"mappings":";;;;;;;;;;;;;;;IAEA,MAAM,EAAEA,aAAa,EAAE,GAAGC,2BAAAA;IAE1B,MAAM,EAAEC,eAAe,EAAE,GAAGC,eAAAA,EAAAA;IAC5B,MAAM,EAAEC,qBAAqB,EAAE,GAAGC,mBAAAA,EAAAA;AAElCC,IAAAA,QAAAA,GAAiB,CAAC,EAAEC,KAAK,EAAEC,MAAM,EAAE,GAAA;QACjC,MAAM,EAAEC,OAAO,EAAE,GAAGF,KAAAA;QACpB,MAAMG,YAAAA,GAAeN,sBAAsBI,MAAAA,EAAQ,sBAAA,CAAA;QAEnD,OAAO;AACLG,YAAAA,IAAAA,EAAMF,OAAAA,CAAQ,8BAAA,CAAA;YAEdG,IAAAA,EAAM;AACJC,gBAAAA,KAAAA,EAAOJ,OAAAA,CAAQ,+BAAA;AACrB,aAAA;YAEIK,WAAAA,EAAa,iBAAA;AAEb,YAAA,MAAMC,OAAAA,CAAAA,CAAQC,MAAM,EAAEJ,IAAI,EAAEK,OAAO,EAAA;gBACjC,MAAM,EAAEC,UAAU,EAAE,GAAGD,OAAAA;gBAEvB,MAAME,MAAAA,GAAS,MAAMT,YAAAA,CAAaQ,UAAAA,EAAY;oBAAEE,IAAAA,EAAMpB,aAAAA,CAAcY,KAAKC,KAAK;iBAAC,EAAI,CAACQ,GAAAA,GAClFb,MAAAA,CAAOc,MAAM,CAAC,qBAAqBC,UAAU,CAAC,MAAA,CAAA,CAAQjB,QAAQ,CAACe,GAAAA,CAAAA,CAAAA;gBAGjEnB,eAAAA,CAAgBiB,MAAAA,CAAAA;gBAEhB,OAAO;oBACLK,IAAAA,EAAML,MAAAA,CAAOK,IAAI,IAAIL,MAAAA;AACrBM,oBAAAA,GAAAA,EAAKN,OAAOM;AACpB,iBAAA;AACA,YAAA;AACA,SAAA;AACA,IAAA,CAAA;;;;;;"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import require$$0 from 'lodash/fp';
|
|
2
2
|
import { __require as requireUtils } from '../../utils.mjs';
|
|
3
|
+
import { __require as requireRateLimit } from './rate-limit.mjs';
|
|
3
4
|
|
|
4
5
|
var register;
|
|
5
6
|
var hasRequiredRegister;
|
|
@@ -8,8 +9,10 @@ function requireRegister() {
|
|
|
8
9
|
hasRequiredRegister = 1;
|
|
9
10
|
const { toPlainObject } = require$$0;
|
|
10
11
|
const { checkBadRequest } = requireUtils();
|
|
12
|
+
const { createRateLimitRunner } = requireRateLimit();
|
|
11
13
|
register = ({ nexus, strapi })=>{
|
|
12
14
|
const { nonNull } = nexus;
|
|
15
|
+
const runRateLimit = createRateLimitRunner(strapi, '/auth/local/register');
|
|
13
16
|
return {
|
|
14
17
|
type: nonNull('UsersPermissionsLoginPayload'),
|
|
15
18
|
args: {
|
|
@@ -18,9 +21,9 @@ function requireRegister() {
|
|
|
18
21
|
description: 'Register a user',
|
|
19
22
|
async resolve (parent, args, context) {
|
|
20
23
|
const { koaContext } = context;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
+
const output = await runRateLimit(koaContext, {
|
|
25
|
+
body: toPlainObject(args.input)
|
|
26
|
+
}, (ctx)=>strapi.plugin('users-permissions').controller('auth').register(ctx));
|
|
24
27
|
checkBadRequest(output);
|
|
25
28
|
return {
|
|
26
29
|
user: output.user || output,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.mjs","sources":["../../../../../server/src/graphql/mutations/auth/register.js"],"sourcesContent":["'use strict';\n\nconst { toPlainObject } = require('lodash/fp');\n\nconst { checkBadRequest } = require('../../utils');\n\nmodule.exports = ({ nexus, strapi }) => {\n const { nonNull } = nexus;\n\n return {\n type: nonNull('UsersPermissionsLoginPayload'),\n\n args: {\n input: nonNull('UsersPermissionsRegisterInput'),\n },\n\n description: 'Register a user',\n\n async resolve(parent, args, context) {\n const { koaContext } = context;\n\n koaContext
|
|
1
|
+
{"version":3,"file":"register.mjs","sources":["../../../../../server/src/graphql/mutations/auth/register.js"],"sourcesContent":["'use strict';\n\nconst { toPlainObject } = require('lodash/fp');\n\nconst { checkBadRequest } = require('../../utils');\nconst { createRateLimitRunner } = require('./rate-limit');\n\nmodule.exports = ({ nexus, strapi }) => {\n const { nonNull } = nexus;\n const runRateLimit = createRateLimitRunner(strapi, '/auth/local/register');\n\n return {\n type: nonNull('UsersPermissionsLoginPayload'),\n\n args: {\n input: nonNull('UsersPermissionsRegisterInput'),\n },\n\n description: 'Register a user',\n\n async resolve(parent, args, context) {\n const { koaContext } = context;\n\n const output = await runRateLimit(koaContext, { body: toPlainObject(args.input) }, (ctx) =>\n strapi.plugin('users-permissions').controller('auth').register(ctx)\n );\n\n checkBadRequest(output);\n\n return {\n user: output.user || output,\n jwt: output.jwt,\n };\n },\n };\n};\n"],"names":["toPlainObject","require$$0","checkBadRequest","require$$1","createRateLimitRunner","require$$2","register","nexus","strapi","nonNull","runRateLimit","type","args","input","description","resolve","parent","context","koaContext","output","body","ctx","plugin","controller","user","jwt"],"mappings":";;;;;;;;;IAEA,MAAM,EAAEA,aAAa,EAAE,GAAGC,UAAAA;IAE1B,MAAM,EAAEC,eAAe,EAAE,GAAGC,YAAAA,EAAAA;IAC5B,MAAM,EAAEC,qBAAqB,EAAE,GAAGC,gBAAAA,EAAAA;AAElCC,IAAAA,QAAAA,GAAiB,CAAC,EAAEC,KAAK,EAAEC,MAAM,EAAE,GAAA;QACjC,MAAM,EAAEC,OAAO,EAAE,GAAGF,KAAAA;QACpB,MAAMG,YAAAA,GAAeN,sBAAsBI,MAAAA,EAAQ,sBAAA,CAAA;QAEnD,OAAO;AACLG,YAAAA,IAAAA,EAAMF,OAAAA,CAAQ,8BAAA,CAAA;YAEdG,IAAAA,EAAM;AACJC,gBAAAA,KAAAA,EAAOJ,OAAAA,CAAQ,+BAAA;AACrB,aAAA;YAEIK,WAAAA,EAAa,iBAAA;AAEb,YAAA,MAAMC,OAAAA,CAAAA,CAAQC,MAAM,EAAEJ,IAAI,EAAEK,OAAO,EAAA;gBACjC,MAAM,EAAEC,UAAU,EAAE,GAAGD,OAAAA;gBAEvB,MAAME,MAAAA,GAAS,MAAMT,YAAAA,CAAaQ,UAAAA,EAAY;oBAAEE,IAAAA,EAAMpB,aAAAA,CAAcY,KAAKC,KAAK;iBAAC,EAAI,CAACQ,GAAAA,GAClFb,MAAAA,CAAOc,MAAM,CAAC,qBAAqBC,UAAU,CAAC,MAAA,CAAA,CAAQjB,QAAQ,CAACe,GAAAA,CAAAA,CAAAA;gBAGjEnB,eAAAA,CAAgBiB,MAAAA,CAAAA;gBAEhB,OAAO;oBACLK,IAAAA,EAAML,MAAAA,CAAOK,IAAI,IAAIL,MAAAA;AACrBM,oBAAAA,GAAAA,EAAKN,OAAOM;AACpB,iBAAA;AACA,YAAA;AACA,SAAA;AACA,IAAA,CAAA;;;;;;"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var require$$0 = require('lodash/fp');
|
|
4
4
|
var utils = require('../../utils.js');
|
|
5
|
+
var rateLimit = require('./rate-limit.js');
|
|
5
6
|
|
|
6
7
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
8
|
|
|
@@ -14,8 +15,10 @@ function requireResetPassword() {
|
|
|
14
15
|
hasRequiredResetPassword = 1;
|
|
15
16
|
const { toPlainObject } = require$$0__default.default;
|
|
16
17
|
const { checkBadRequest } = utils.__require();
|
|
18
|
+
const { createRateLimitRunner } = rateLimit.__require();
|
|
17
19
|
resetPassword = ({ nexus, strapi })=>{
|
|
18
20
|
const { nonNull } = nexus;
|
|
21
|
+
const runRateLimit = createRateLimitRunner(strapi, '/auth/reset-password');
|
|
19
22
|
return {
|
|
20
23
|
type: 'UsersPermissionsLoginPayload',
|
|
21
24
|
args: {
|
|
@@ -26,9 +29,9 @@ function requireResetPassword() {
|
|
|
26
29
|
description: 'Reset user password. Confirm with a code (resetToken from forgotPassword)',
|
|
27
30
|
async resolve (parent, args, context) {
|
|
28
31
|
const { koaContext } = context;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
+
const output = await runRateLimit(koaContext, {
|
|
33
|
+
body: toPlainObject(args)
|
|
34
|
+
}, (ctx)=>strapi.plugin('users-permissions').controller('auth').resetPassword(ctx));
|
|
32
35
|
checkBadRequest(output);
|
|
33
36
|
return {
|
|
34
37
|
user: output.user || output,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reset-password.js","sources":["../../../../../server/src/graphql/mutations/auth/reset-password.js"],"sourcesContent":["'use strict';\n\nconst { toPlainObject } = require('lodash/fp');\n\nconst { checkBadRequest } = require('../../utils');\n\nmodule.exports = ({ nexus, strapi }) => {\n const { nonNull } = nexus;\n\n return {\n type: 'UsersPermissionsLoginPayload',\n\n args: {\n password: nonNull('String'),\n passwordConfirmation: nonNull('String'),\n code: nonNull('String'),\n },\n\n description: 'Reset user password. Confirm with a code (resetToken from forgotPassword)',\n\n async resolve(parent, args, context) {\n const { koaContext } = context;\n\n koaContext
|
|
1
|
+
{"version":3,"file":"reset-password.js","sources":["../../../../../server/src/graphql/mutations/auth/reset-password.js"],"sourcesContent":["'use strict';\n\nconst { toPlainObject } = require('lodash/fp');\n\nconst { checkBadRequest } = require('../../utils');\nconst { createRateLimitRunner } = require('./rate-limit');\n\nmodule.exports = ({ nexus, strapi }) => {\n const { nonNull } = nexus;\n const runRateLimit = createRateLimitRunner(strapi, '/auth/reset-password');\n\n return {\n type: 'UsersPermissionsLoginPayload',\n\n args: {\n password: nonNull('String'),\n passwordConfirmation: nonNull('String'),\n code: nonNull('String'),\n },\n\n description: 'Reset user password. Confirm with a code (resetToken from forgotPassword)',\n\n async resolve(parent, args, context) {\n const { koaContext } = context;\n\n const output = await runRateLimit(koaContext, { body: toPlainObject(args) }, (ctx) =>\n strapi.plugin('users-permissions').controller('auth').resetPassword(ctx)\n );\n\n checkBadRequest(output);\n\n return {\n user: output.user || output,\n jwt: output.jwt,\n };\n },\n };\n};\n"],"names":["toPlainObject","require$$0","checkBadRequest","require$$1","createRateLimitRunner","require$$2","resetPassword","nexus","strapi","nonNull","runRateLimit","type","args","password","passwordConfirmation","code","description","resolve","parent","context","koaContext","output","body","ctx","plugin","controller","user","jwt"],"mappings":";;;;;;;;;;;;;;;IAEA,MAAM,EAAEA,aAAa,EAAE,GAAGC,2BAAAA;IAE1B,MAAM,EAAEC,eAAe,EAAE,GAAGC,eAAAA,EAAAA;IAC5B,MAAM,EAAEC,qBAAqB,EAAE,GAAGC,mBAAAA,EAAAA;AAElCC,IAAAA,aAAAA,GAAiB,CAAC,EAAEC,KAAK,EAAEC,MAAM,EAAE,GAAA;QACjC,MAAM,EAAEC,OAAO,EAAE,GAAGF,KAAAA;QACpB,MAAMG,YAAAA,GAAeN,sBAAsBI,MAAAA,EAAQ,sBAAA,CAAA;QAEnD,OAAO;YACLG,IAAAA,EAAM,8BAAA;YAENC,IAAAA,EAAM;AACJC,gBAAAA,QAAAA,EAAUJ,OAAAA,CAAQ,QAAA,CAAA;AAClBK,gBAAAA,oBAAAA,EAAsBL,OAAAA,CAAQ,QAAA,CAAA;AAC9BM,gBAAAA,IAAAA,EAAMN,OAAAA,CAAQ,QAAA;AACpB,aAAA;YAEIO,WAAAA,EAAa,2EAAA;AAEb,YAAA,MAAMC,OAAAA,CAAAA,CAAQC,MAAM,EAAEN,IAAI,EAAEO,OAAO,EAAA;gBACjC,MAAM,EAAEC,UAAU,EAAE,GAAGD,OAAAA;gBAEvB,MAAME,MAAAA,GAAS,MAAMX,YAAAA,CAAaU,UAAAA,EAAY;AAAEE,oBAAAA,IAAAA,EAAMtB,aAAAA,CAAcY,IAAAA;iBAAK,EAAI,CAACW,GAAAA,GAC5Ef,MAAAA,CAAOgB,MAAM,CAAC,qBAAqBC,UAAU,CAAC,MAAA,CAAA,CAAQnB,aAAa,CAACiB,GAAAA,CAAAA,CAAAA;gBAGtErB,eAAAA,CAAgBmB,MAAAA,CAAAA;gBAEhB,OAAO;oBACLK,IAAAA,EAAML,MAAAA,CAAOK,IAAI,IAAIL,MAAAA;AACrBM,oBAAAA,GAAAA,EAAKN,OAAOM;AACpB,iBAAA;AACA,YAAA;AACA,SAAA;AACA,IAAA,CAAA;;;;;;"}
|