@mondart/nestjs-common-module-google-recaptcha 3.0.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/decorators/recaptcha-result.d.ts +2 -0
- package/dist/decorators/recaptcha-result.d.ts.map +1 -0
- package/dist/decorators/recaptcha-result.js +17 -0
- package/dist/decorators/recaptcha-result.js.map +1 -0
- package/dist/decorators/recaptcha.d.ts +3 -0
- package/dist/decorators/recaptcha.d.ts.map +1 -0
- package/dist/decorators/recaptcha.js +10 -0
- package/dist/decorators/recaptcha.js.map +1 -0
- package/dist/decorators/set-recaptcha-options.d.ts +3 -0
- package/dist/decorators/set-recaptcha-options.d.ts.map +1 -0
- package/dist/decorators/set-recaptcha-options.js +9 -0
- package/dist/decorators/set-recaptcha-options.js.map +1 -0
- package/dist/enums/classification-reason.d.ts +9 -0
- package/dist/enums/classification-reason.d.ts.map +1 -0
- package/dist/enums/classification-reason.js +13 -0
- package/dist/enums/classification-reason.js.map +1 -0
- package/dist/enums/error-code.d.ts +17 -0
- package/dist/enums/error-code.d.ts.map +1 -0
- package/dist/enums/error-code.js +21 -0
- package/dist/enums/error-code.js.map +1 -0
- package/dist/enums/google-recaptcha-context.d.ts +5 -0
- package/dist/enums/google-recaptcha-context.d.ts.map +1 -0
- package/dist/enums/google-recaptcha-context.js +9 -0
- package/dist/enums/google-recaptcha-context.js.map +1 -0
- package/dist/enums/google-recaptcha-enterprise-reason.d.ts +11 -0
- package/dist/enums/google-recaptcha-enterprise-reason.d.ts.map +1 -0
- package/dist/enums/google-recaptcha-enterprise-reason.js +15 -0
- package/dist/enums/google-recaptcha-enterprise-reason.js.map +1 -0
- package/dist/enums/google-recaptcha-network.d.ts +5 -0
- package/dist/enums/google-recaptcha-network.d.ts.map +1 -0
- package/dist/enums/google-recaptcha-network.js +9 -0
- package/dist/enums/google-recaptcha-network.js.map +1 -0
- package/dist/exceptions/google-recaptcha-network.exception.d.ts +6 -0
- package/dist/exceptions/google-recaptcha-network.exception.d.ts.map +1 -0
- package/dist/exceptions/google-recaptcha-network.exception.js +15 -0
- package/dist/exceptions/google-recaptcha-network.exception.js.map +1 -0
- package/dist/exceptions/google-recaptcha.exception.d.ts +9 -0
- package/dist/exceptions/google-recaptcha.exception.d.ts.map +1 -0
- package/dist/exceptions/google-recaptcha.exception.js +55 -0
- package/dist/exceptions/google-recaptcha.exception.js.map +1 -0
- package/dist/google-recaptcha.module.d.ts +13 -0
- package/dist/google-recaptcha.module.d.ts.map +1 -0
- package/dist/google-recaptcha.module.js +162 -0
- package/dist/google-recaptcha.module.js.map +1 -0
- package/dist/guards/google-recaptcha.guard.d.ts +16 -0
- package/dist/guards/google-recaptcha.guard.d.ts.map +1 -0
- package/dist/guards/google-recaptcha.guard.js +90 -0
- package/dist/guards/google-recaptcha.guard.js.map +1 -0
- package/dist/helpers/get-error-info.d.ts +5 -0
- package/dist/helpers/get-error-info.d.ts.map +1 -0
- package/dist/helpers/get-error-info.js +14 -0
- package/dist/helpers/get-error-info.js.map +1 -0
- package/dist/helpers/load-module.d.ts +3 -0
- package/dist/helpers/load-module.d.ts.map +1 -0
- package/dist/helpers/load-module.js +16 -0
- package/dist/helpers/load-module.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/google-recaptcha-enterprise-options.d.ts +6 -0
- package/dist/interfaces/google-recaptcha-enterprise-options.d.ts.map +1 -0
- package/dist/interfaces/google-recaptcha-enterprise-options.js +3 -0
- package/dist/interfaces/google-recaptcha-enterprise-options.js.map +1 -0
- package/dist/interfaces/google-recaptcha-guard-options.d.ts +8 -0
- package/dist/interfaces/google-recaptcha-guard-options.d.ts.map +1 -0
- package/dist/interfaces/google-recaptcha-guard-options.js +3 -0
- package/dist/interfaces/google-recaptcha-guard-options.js.map +1 -0
- package/dist/interfaces/google-recaptcha-module-options.d.ts +22 -0
- package/dist/interfaces/google-recaptcha-module-options.d.ts.map +1 -0
- package/dist/interfaces/google-recaptcha-module-options.js +3 -0
- package/dist/interfaces/google-recaptcha-module-options.js.map +1 -0
- package/dist/interfaces/google-recaptcha-validator-options.d.ts +13 -0
- package/dist/interfaces/google-recaptcha-validator-options.d.ts.map +1 -0
- package/dist/interfaces/google-recaptcha-validator-options.js +3 -0
- package/dist/interfaces/google-recaptcha-validator-options.js.map +1 -0
- package/dist/interfaces/literal-object.d.ts +4 -0
- package/dist/interfaces/literal-object.d.ts.map +1 -0
- package/dist/interfaces/literal-object.js +3 -0
- package/dist/interfaces/literal-object.js.map +1 -0
- package/dist/interfaces/verify-response-decorator-options.d.ts +14 -0
- package/dist/interfaces/verify-response-decorator-options.d.ts.map +1 -0
- package/dist/interfaces/verify-response-decorator-options.js +3 -0
- package/dist/interfaces/verify-response-decorator-options.js.map +1 -0
- package/dist/interfaces/verify-response-enterprise.d.ts +31 -0
- package/dist/interfaces/verify-response-enterprise.d.ts.map +1 -0
- package/dist/interfaces/verify-response-enterprise.js +3 -0
- package/dist/interfaces/verify-response-enterprise.js.map +1 -0
- package/dist/interfaces/verify-response.d.ts +12 -0
- package/dist/interfaces/verify-response.d.ts.map +1 -0
- package/dist/interfaces/verify-response.js +3 -0
- package/dist/interfaces/verify-response.js.map +1 -0
- package/dist/models/recaptcha-config-ref.d.ts +13 -0
- package/dist/models/recaptcha-config-ref.d.ts.map +1 -0
- package/dist/models/recaptcha-config-ref.js +31 -0
- package/dist/models/recaptcha-config-ref.js.map +1 -0
- package/dist/models/recaptcha-verification-result.d.ts +27 -0
- package/dist/models/recaptcha-verification-result.d.ts.map +1 -0
- package/dist/models/recaptcha-verification-result.js +35 -0
- package/dist/models/recaptcha-verification-result.js.map +1 -0
- package/dist/provider.declarations.d.ts +5 -0
- package/dist/provider.declarations.d.ts.map +1 -0
- package/dist/provider.declarations.js +8 -0
- package/dist/provider.declarations.js.map +1 -0
- package/dist/services/enterprise-reason.transformer.d.ts +6 -0
- package/dist/services/enterprise-reason.transformer.d.ts.map +1 -0
- package/dist/services/enterprise-reason.transformer.js +39 -0
- package/dist/services/enterprise-reason.transformer.js.map +1 -0
- package/dist/services/recaptcha-request.resolver.d.ts +5 -0
- package/dist/services/recaptcha-request.resolver.d.ts.map +1 -0
- package/dist/services/recaptcha-request.resolver.js +33 -0
- package/dist/services/recaptcha-request.resolver.js.map +1 -0
- package/dist/services/recaptcha-validator.resolver.d.ts +12 -0
- package/dist/services/recaptcha-validator.resolver.d.ts.map +1 -0
- package/dist/services/recaptcha-validator.resolver.js +41 -0
- package/dist/services/recaptcha-validator.resolver.js.map +1 -0
- package/dist/services/validators/abstract-google-recaptcha-validator.d.ts +12 -0
- package/dist/services/validators/abstract-google-recaptcha-validator.d.ts.map +1 -0
- package/dist/services/validators/abstract-google-recaptcha-validator.js +28 -0
- package/dist/services/validators/abstract-google-recaptcha-validator.js.map +1 -0
- package/dist/services/validators/google-recaptcha-enterprise.validator.d.ts +18 -0
- package/dist/services/validators/google-recaptcha-enterprise.validator.d.ts.map +1 -0
- package/dist/services/validators/google-recaptcha-enterprise.validator.js +127 -0
- package/dist/services/validators/google-recaptcha-enterprise.validator.js.map +1 -0
- package/dist/services/validators/google-recaptcha.validator.d.ts +18 -0
- package/dist/services/validators/google-recaptcha.validator.d.ts.map +1 -0
- package/dist/services/validators/google-recaptcha.validator.js +162 -0
- package/dist/services/validators/google-recaptcha.validator.js.map +1 -0
- package/dist/types.d.ts +7 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/package.json +33 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recaptcha-result.d.ts","sourceRoot":"","sources":["../../src/decorators/recaptcha-result.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,eAAe,+CAY3B,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RecaptchaResult = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const load_module_1 = require("../helpers/load-module");
|
|
6
|
+
exports.RecaptchaResult = (0, common_1.createParamDecorator)((data, context) => {
|
|
7
|
+
switch (context.getType()) {
|
|
8
|
+
case 'http':
|
|
9
|
+
return context.switchToHttp().getRequest().recaptchaValidationResult;
|
|
10
|
+
case 'graphql':
|
|
11
|
+
return (0, load_module_1.loadModule)('@nestjs/graphql', true)
|
|
12
|
+
.GqlExecutionContext.create(context)
|
|
13
|
+
.getContext().req?.connection?._httpMessage?.req
|
|
14
|
+
?.recaptchaValidationResult;
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=recaptcha-result.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recaptcha-result.js","sourceRoot":"","sources":["../../src/decorators/recaptcha-result.ts"],"names":[],"mappings":";;;AAAA,2CAAwE;AACxE,wDAAoD;AAEvC,QAAA,eAAe,GAAG,IAAA,6BAAoB,EACjD,CAAC,IAAI,EAAE,OAAyB,EAAE,EAAE;IAClC,QAAQ,OAAO,CAAC,OAAO,EAAsB,EAAE,CAAC;QAC9C,KAAK,MAAM;YACT,OAAO,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC,yBAAyB,CAAC;QACvE,KAAK,SAAS;YACZ,OAAO,IAAA,wBAAU,EAAC,iBAAiB,EAAE,IAAI,CAAC;iBACvC,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC;iBACnC,UAAU,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG;gBAChD,EAAE,yBAAyB,CAAC;IAClC,CAAC;AACH,CAAC,CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recaptcha.d.ts","sourceRoot":"","sources":["../../src/decorators/recaptcha.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,8BAA8B,EAAE,MAAM,iDAAiD,CAAC;AAGjG,wBAAgB,SAAS,CACvB,OAAO,CAAC,EAAE,8BAA8B,GACvC,eAAe,GAAG,cAAc,CAKlC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Recaptcha = Recaptcha;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const google_recaptcha_guard_1 = require("../guards/google-recaptcha.guard");
|
|
6
|
+
const set_recaptcha_options_1 = require("./set-recaptcha-options");
|
|
7
|
+
function Recaptcha(options) {
|
|
8
|
+
return (0, common_1.applyDecorators)((0, set_recaptcha_options_1.SetRecaptchaOptions)(options), (0, common_1.UseGuards)(google_recaptcha_guard_1.GoogleRecaptchaGuard));
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=recaptcha.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recaptcha.js","sourceRoot":"","sources":["../../src/decorators/recaptcha.ts"],"names":[],"mappings":";;AAKA,8BAOC;AAZD,2CAA4D;AAC5D,6EAAwE;AAExE,mEAA8D;AAE9D,SAAgB,SAAS,CACvB,OAAwC;IAExC,OAAO,IAAA,wBAAe,EACpB,IAAA,2CAAmB,EAAC,OAAO,CAAC,EAC5B,IAAA,kBAAS,EAAC,6CAAoB,CAAC,CAChC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-recaptcha-options.d.ts","sourceRoot":"","sources":["../../src/decorators/set-recaptcha-options.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,8BAA8B,EAAE,MAAM,iDAAiD,CAAC;AAGjG,wBAAgB,mBAAmB,CACjC,OAAO,CAAC,EAAE,8BAA8B,GACvC,eAAe,GAAG,cAAc,CAElC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SetRecaptchaOptions = SetRecaptchaOptions;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const provider_declarations_1 = require("../provider.declarations");
|
|
6
|
+
function SetRecaptchaOptions(options) {
|
|
7
|
+
return (0, common_1.SetMetadata)(provider_declarations_1.RECAPTCHA_VALIDATION_OPTIONS, options);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=set-recaptcha-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-recaptcha-options.js","sourceRoot":"","sources":["../../src/decorators/set-recaptcha-options.ts"],"names":[],"mappings":";;AAIA,kDAIC;AARD,2CAA6C;AAE7C,oEAAwE;AAExE,SAAgB,mBAAmB,CACjC,OAAwC;IAExC,OAAO,IAAA,oBAAW,EAAC,oDAA4B,EAAE,OAAO,CAAC,CAAC;AAC5D,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare enum ClassificationReason {
|
|
2
|
+
CLASSIFICATION_REASON_UNSPECIFIED = "CLASSIFICATION_REASON_UNSPECIFIED",
|
|
3
|
+
AUTOMATION = "AUTOMATION",
|
|
4
|
+
UNEXPECTED_ENVIRONMENT = "UNEXPECTED_ENVIRONMENT",
|
|
5
|
+
TOO_MUCH_TRAFFIC = "TOO_MUCH_TRAFFIC",
|
|
6
|
+
UNEXPECTED_USAGE_PATTERNS = "UNEXPECTED_USAGE_PATTERNS",
|
|
7
|
+
LOW_CONFIDENCE_SCORE = "LOW_CONFIDENCE_SCORE"
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=classification-reason.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classification-reason.d.ts","sourceRoot":"","sources":["../../src/enums/classification-reason.ts"],"names":[],"mappings":"AAAA,oBAAY,oBAAoB;IAC9B,iCAAiC,sCAAsC;IACvE,UAAU,eAAe;IACzB,sBAAsB,2BAA2B;IACjD,gBAAgB,qBAAqB;IACrC,yBAAyB,8BAA8B;IACvD,oBAAoB,yBAAyB;CAC9C"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ClassificationReason = void 0;
|
|
4
|
+
var ClassificationReason;
|
|
5
|
+
(function (ClassificationReason) {
|
|
6
|
+
ClassificationReason["CLASSIFICATION_REASON_UNSPECIFIED"] = "CLASSIFICATION_REASON_UNSPECIFIED";
|
|
7
|
+
ClassificationReason["AUTOMATION"] = "AUTOMATION";
|
|
8
|
+
ClassificationReason["UNEXPECTED_ENVIRONMENT"] = "UNEXPECTED_ENVIRONMENT";
|
|
9
|
+
ClassificationReason["TOO_MUCH_TRAFFIC"] = "TOO_MUCH_TRAFFIC";
|
|
10
|
+
ClassificationReason["UNEXPECTED_USAGE_PATTERNS"] = "UNEXPECTED_USAGE_PATTERNS";
|
|
11
|
+
ClassificationReason["LOW_CONFIDENCE_SCORE"] = "LOW_CONFIDENCE_SCORE";
|
|
12
|
+
})(ClassificationReason || (exports.ClassificationReason = ClassificationReason = {}));
|
|
13
|
+
//# sourceMappingURL=classification-reason.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classification-reason.js","sourceRoot":"","sources":["../../src/enums/classification-reason.ts"],"names":[],"mappings":";;;AAAA,IAAY,oBAOX;AAPD,WAAY,oBAAoB;IAC9B,+FAAuE,CAAA;IACvE,iDAAyB,CAAA;IACzB,yEAAiD,CAAA;IACjD,6DAAqC,CAAA;IACrC,+EAAuD,CAAA;IACvD,qEAA6C,CAAA;AAC/C,CAAC,EAPW,oBAAoB,oCAApB,oBAAoB,QAO/B"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare enum ErrorCode {
|
|
2
|
+
MissingInputSecret = "missing-input-secret",
|
|
3
|
+
InvalidInputSecret = "invalid-input-secret",
|
|
4
|
+
MissingInputResponse = "missing-input-response",
|
|
5
|
+
InvalidInputResponse = "invalid-input-response",
|
|
6
|
+
BadRequest = "bad-request",
|
|
7
|
+
TimeoutOrDuplicate = "timeout-or-duplicate",
|
|
8
|
+
UnknownError = "unknown-error",
|
|
9
|
+
ForbiddenAction = "forbidden-action",
|
|
10
|
+
LowScore = "low-score",
|
|
11
|
+
InvalidKeys = "invalid-keys",
|
|
12
|
+
IncorrectCaptchaSol = "incorrect-captcha-sol",
|
|
13
|
+
NetworkError = "network-error",
|
|
14
|
+
SiteMismatch = "site-mismatch",
|
|
15
|
+
BrowserError = "browser-error"
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=error-code.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-code.d.ts","sourceRoot":"","sources":["../../src/enums/error-code.ts"],"names":[],"mappings":"AAAA,oBAAY,SAAS;IACnB,kBAAkB,yBAAyB;IAC3C,kBAAkB,yBAAyB;IAC3C,oBAAoB,2BAA2B;IAC/C,oBAAoB,2BAA2B;IAC/C,UAAU,gBAAgB;IAC1B,kBAAkB,yBAAyB;IAC3C,YAAY,kBAAkB;IAC9B,eAAe,qBAAqB;IACpC,QAAQ,cAAc;IACtB,WAAW,iBAAiB;IAC5B,mBAAmB,0BAA0B;IAC7C,YAAY,kBAAkB;IAE9B,YAAY,kBAAkB;IAC9B,YAAY,kBAAkB;CAC/B"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ErrorCode = void 0;
|
|
4
|
+
var ErrorCode;
|
|
5
|
+
(function (ErrorCode) {
|
|
6
|
+
ErrorCode["MissingInputSecret"] = "missing-input-secret";
|
|
7
|
+
ErrorCode["InvalidInputSecret"] = "invalid-input-secret";
|
|
8
|
+
ErrorCode["MissingInputResponse"] = "missing-input-response";
|
|
9
|
+
ErrorCode["InvalidInputResponse"] = "invalid-input-response";
|
|
10
|
+
ErrorCode["BadRequest"] = "bad-request";
|
|
11
|
+
ErrorCode["TimeoutOrDuplicate"] = "timeout-or-duplicate";
|
|
12
|
+
ErrorCode["UnknownError"] = "unknown-error";
|
|
13
|
+
ErrorCode["ForbiddenAction"] = "forbidden-action";
|
|
14
|
+
ErrorCode["LowScore"] = "low-score";
|
|
15
|
+
ErrorCode["InvalidKeys"] = "invalid-keys";
|
|
16
|
+
ErrorCode["IncorrectCaptchaSol"] = "incorrect-captcha-sol";
|
|
17
|
+
ErrorCode["NetworkError"] = "network-error";
|
|
18
|
+
ErrorCode["SiteMismatch"] = "site-mismatch";
|
|
19
|
+
ErrorCode["BrowserError"] = "browser-error";
|
|
20
|
+
})(ErrorCode || (exports.ErrorCode = ErrorCode = {}));
|
|
21
|
+
//# sourceMappingURL=error-code.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-code.js","sourceRoot":"","sources":["../../src/enums/error-code.ts"],"names":[],"mappings":";;;AAAA,IAAY,SAgBX;AAhBD,WAAY,SAAS;IACnB,wDAA2C,CAAA;IAC3C,wDAA2C,CAAA;IAC3C,4DAA+C,CAAA;IAC/C,4DAA+C,CAAA;IAC/C,uCAA0B,CAAA;IAC1B,wDAA2C,CAAA;IAC3C,2CAA8B,CAAA;IAC9B,iDAAoC,CAAA;IACpC,mCAAsB,CAAA;IACtB,yCAA4B,CAAA;IAC5B,0DAA6C,CAAA;IAC7C,2CAA8B,CAAA;IAE9B,2CAA8B,CAAA;IAC9B,2CAA8B,CAAA;AAChC,CAAC,EAhBW,SAAS,yBAAT,SAAS,QAgBpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google-recaptcha-context.d.ts","sourceRoot":"","sources":["../../src/enums/google-recaptcha-context.ts"],"names":[],"mappings":"AAAA,oBAAY,sBAAsB;IAChC,eAAe,oBAAoB;IACnC,yBAAyB,8BAA8B;CACxD"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GoogleRecaptchaContext = void 0;
|
|
4
|
+
var GoogleRecaptchaContext;
|
|
5
|
+
(function (GoogleRecaptchaContext) {
|
|
6
|
+
GoogleRecaptchaContext["GoogleRecaptcha"] = "GoogleRecaptcha";
|
|
7
|
+
GoogleRecaptchaContext["GoogleRecaptchaEnterprise"] = "GoogleRecaptchaEnterprise";
|
|
8
|
+
})(GoogleRecaptchaContext || (exports.GoogleRecaptchaContext = GoogleRecaptchaContext = {}));
|
|
9
|
+
//# sourceMappingURL=google-recaptcha-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google-recaptcha-context.js","sourceRoot":"","sources":["../../src/enums/google-recaptcha-context.ts"],"names":[],"mappings":";;;AAAA,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAChC,6DAAmC,CAAA;IACnC,iFAAuD,CAAA;AACzD,CAAC,EAHW,sBAAsB,sCAAtB,sBAAsB,QAGjC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare enum GoogleRecaptchaEnterpriseReason {
|
|
2
|
+
InvalidReasonUnspecified = "INVALID_REASON_UNSPECIFIED",
|
|
3
|
+
UnknownInvalidReason = "UNKNOWN_INVALID_REASON",
|
|
4
|
+
Malformed = "MALFORMED",
|
|
5
|
+
Expired = "EXPIRED",
|
|
6
|
+
Dupe = "DUPE",
|
|
7
|
+
SiteMismatch = "SITE_MISMATCH",
|
|
8
|
+
Missing = "MISSING",
|
|
9
|
+
BrowserError = "BROWSER_ERROR"
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=google-recaptcha-enterprise-reason.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google-recaptcha-enterprise-reason.d.ts","sourceRoot":"","sources":["../../src/enums/google-recaptcha-enterprise-reason.ts"],"names":[],"mappings":"AAAA,oBAAY,+BAA+B;IACzC,wBAAwB,+BAA+B;IACvD,oBAAoB,2BAA2B;IAC/C,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,YAAY,kBAAkB;IAC9B,OAAO,YAAY;IACnB,YAAY,kBAAkB;CAC/B"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GoogleRecaptchaEnterpriseReason = void 0;
|
|
4
|
+
var GoogleRecaptchaEnterpriseReason;
|
|
5
|
+
(function (GoogleRecaptchaEnterpriseReason) {
|
|
6
|
+
GoogleRecaptchaEnterpriseReason["InvalidReasonUnspecified"] = "INVALID_REASON_UNSPECIFIED";
|
|
7
|
+
GoogleRecaptchaEnterpriseReason["UnknownInvalidReason"] = "UNKNOWN_INVALID_REASON";
|
|
8
|
+
GoogleRecaptchaEnterpriseReason["Malformed"] = "MALFORMED";
|
|
9
|
+
GoogleRecaptchaEnterpriseReason["Expired"] = "EXPIRED";
|
|
10
|
+
GoogleRecaptchaEnterpriseReason["Dupe"] = "DUPE";
|
|
11
|
+
GoogleRecaptchaEnterpriseReason["SiteMismatch"] = "SITE_MISMATCH";
|
|
12
|
+
GoogleRecaptchaEnterpriseReason["Missing"] = "MISSING";
|
|
13
|
+
GoogleRecaptchaEnterpriseReason["BrowserError"] = "BROWSER_ERROR";
|
|
14
|
+
})(GoogleRecaptchaEnterpriseReason || (exports.GoogleRecaptchaEnterpriseReason = GoogleRecaptchaEnterpriseReason = {}));
|
|
15
|
+
//# sourceMappingURL=google-recaptcha-enterprise-reason.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google-recaptcha-enterprise-reason.js","sourceRoot":"","sources":["../../src/enums/google-recaptcha-enterprise-reason.ts"],"names":[],"mappings":";;;AAAA,IAAY,+BASX;AATD,WAAY,+BAA+B;IACzC,0FAAuD,CAAA;IACvD,kFAA+C,CAAA;IAC/C,0DAAuB,CAAA;IACvB,sDAAmB,CAAA;IACnB,gDAAa,CAAA;IACb,iEAA8B,CAAA;IAC9B,sDAAmB,CAAA;IACnB,iEAA8B,CAAA;AAChC,CAAC,EATW,+BAA+B,+CAA/B,+BAA+B,QAS1C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google-recaptcha-network.d.ts","sourceRoot":"","sources":["../../src/enums/google-recaptcha-network.ts"],"names":[],"mappings":"AAAA,oBAAY,sBAAsB;IAChC,MAAM,oDAAoD;IAC1D,SAAS,mDAAmD;CAC7D"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GoogleRecaptchaNetwork = void 0;
|
|
4
|
+
var GoogleRecaptchaNetwork;
|
|
5
|
+
(function (GoogleRecaptchaNetwork) {
|
|
6
|
+
GoogleRecaptchaNetwork["Google"] = "https://www.google.com/recaptcha/api/siteverify";
|
|
7
|
+
GoogleRecaptchaNetwork["Recaptcha"] = "https://recaptcha.net/recaptcha/api/siteverify";
|
|
8
|
+
})(GoogleRecaptchaNetwork || (exports.GoogleRecaptchaNetwork = GoogleRecaptchaNetwork = {}));
|
|
9
|
+
//# sourceMappingURL=google-recaptcha-network.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google-recaptcha-network.js","sourceRoot":"","sources":["../../src/enums/google-recaptcha-network.ts"],"names":[],"mappings":";;;AAAA,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAChC,oFAA0D,CAAA;IAC1D,sFAA4D,CAAA;AAC9D,CAAC,EAHW,sBAAsB,sCAAtB,sBAAsB,QAGjC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { GoogleRecaptchaException } from './google-recaptcha.exception';
|
|
2
|
+
export declare class GoogleRecaptchaNetworkException extends GoogleRecaptchaException {
|
|
3
|
+
readonly networkErrorCode?: string;
|
|
4
|
+
constructor(networkErrorCode?: string);
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=google-recaptcha-network.exception.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google-recaptcha-network.exception.d.ts","sourceRoot":"","sources":["../../src/exceptions/google-recaptcha-network.exception.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAGxE,qBAAa,+BAAgC,SAAQ,wBAAwB;aAC/C,gBAAgB,CAAC,EAAE,MAAM;gBAAzB,gBAAgB,CAAC,EAAE,MAAM;CAQtD"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GoogleRecaptchaNetworkException = void 0;
|
|
4
|
+
const google_recaptcha_exception_1 = require("./google-recaptcha.exception");
|
|
5
|
+
const error_code_1 = require("../enums/error-code");
|
|
6
|
+
class GoogleRecaptchaNetworkException extends google_recaptcha_exception_1.GoogleRecaptchaException {
|
|
7
|
+
constructor(networkErrorCode) {
|
|
8
|
+
super([error_code_1.ErrorCode.NetworkError], networkErrorCode
|
|
9
|
+
? `Network error '${networkErrorCode}'.`
|
|
10
|
+
: 'Unknown network error.');
|
|
11
|
+
this.networkErrorCode = networkErrorCode;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.GoogleRecaptchaNetworkException = GoogleRecaptchaNetworkException;
|
|
15
|
+
//# sourceMappingURL=google-recaptcha-network.exception.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google-recaptcha-network.exception.js","sourceRoot":"","sources":["../../src/exceptions/google-recaptcha-network.exception.ts"],"names":[],"mappings":";;;AAAA,6EAAwE;AACxE,oDAAgD;AAEhD,MAAa,+BAAgC,SAAQ,qDAAwB;IAC3E,YAA4B,gBAAyB;QACnD,KAAK,CACH,CAAC,sBAAS,CAAC,YAAY,CAAC,EACxB,gBAAgB;YACd,CAAC,CAAC,kBAAkB,gBAAgB,IAAI;YACxC,CAAC,CAAC,wBAAwB,CAC7B,CAAC;QANwB,qBAAgB,GAAhB,gBAAgB,CAAS;IAOrD,CAAC;CACF;AATD,0EASC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { HttpException } from '@nestjs/common';
|
|
2
|
+
import { ErrorCode } from '../enums/error-code';
|
|
3
|
+
export declare class GoogleRecaptchaException extends HttpException {
|
|
4
|
+
readonly errorCodes: ErrorCode[];
|
|
5
|
+
constructor(errorCodes: ErrorCode[], errorMessage?: string);
|
|
6
|
+
private static getErrorMessage;
|
|
7
|
+
private static getErrorStatus;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=google-recaptcha.exception.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google-recaptcha.exception.d.ts","sourceRoot":"","sources":["../../src/exceptions/google-recaptcha.exception.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAc,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,qBAAa,wBAAyB,SAAQ,aAAa;aAEvC,UAAU,EAAE,SAAS,EAAE;gBAAvB,UAAU,EAAE,SAAS,EAAE,EACvC,YAAY,CAAC,EAAE,MAAM;IAQvB,OAAO,CAAC,MAAM,CAAC,eAAe;IAuC9B,OAAO,CAAC,MAAM,CAAC,cAAc;CAa9B"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GoogleRecaptchaException = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const error_code_1 = require("../enums/error-code");
|
|
6
|
+
class GoogleRecaptchaException extends common_1.HttpException {
|
|
7
|
+
constructor(errorCodes, errorMessage) {
|
|
8
|
+
super(errorMessage || GoogleRecaptchaException.getErrorMessage(errorCodes[0]), GoogleRecaptchaException.getErrorStatus(errorCodes[0]));
|
|
9
|
+
this.errorCodes = errorCodes;
|
|
10
|
+
}
|
|
11
|
+
static getErrorMessage(errorCode) {
|
|
12
|
+
switch (errorCode) {
|
|
13
|
+
case error_code_1.ErrorCode.InvalidInputResponse:
|
|
14
|
+
return 'The response parameter is invalid or malformed.';
|
|
15
|
+
case error_code_1.ErrorCode.MissingInputResponse:
|
|
16
|
+
return 'The response parameter is missing.';
|
|
17
|
+
case error_code_1.ErrorCode.TimeoutOrDuplicate:
|
|
18
|
+
return 'The response is no longer valid: either is too old or has been used previously.';
|
|
19
|
+
case error_code_1.ErrorCode.InvalidInputSecret:
|
|
20
|
+
case error_code_1.ErrorCode.MissingInputSecret:
|
|
21
|
+
return 'Invalid module configuration. Please check public-secret keys.';
|
|
22
|
+
case error_code_1.ErrorCode.InvalidKeys:
|
|
23
|
+
return 'Recaptcha token was signed by invalid api key.';
|
|
24
|
+
case error_code_1.ErrorCode.LowScore:
|
|
25
|
+
return 'Low recaptcha score.';
|
|
26
|
+
case error_code_1.ErrorCode.ForbiddenAction:
|
|
27
|
+
return 'Forbidden recaptcha action.';
|
|
28
|
+
case error_code_1.ErrorCode.SiteMismatch:
|
|
29
|
+
return 'The user verification token did not match the provided site key.';
|
|
30
|
+
case error_code_1.ErrorCode.BrowserError:
|
|
31
|
+
return 'Retriable error (such as network failure) occurred on the browser.';
|
|
32
|
+
case error_code_1.ErrorCode.IncorrectCaptchaSol:
|
|
33
|
+
return 'incorrect-google-recaptcha-sol';
|
|
34
|
+
case error_code_1.ErrorCode.UnknownError:
|
|
35
|
+
case error_code_1.ErrorCode.BadRequest:
|
|
36
|
+
default:
|
|
37
|
+
return 'Unexpected error.';
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
static getErrorStatus(errorCode) {
|
|
41
|
+
return errorCode === error_code_1.ErrorCode.InvalidInputResponse ||
|
|
42
|
+
errorCode === error_code_1.ErrorCode.MissingInputResponse ||
|
|
43
|
+
errorCode === error_code_1.ErrorCode.TimeoutOrDuplicate ||
|
|
44
|
+
errorCode === error_code_1.ErrorCode.ForbiddenAction ||
|
|
45
|
+
errorCode === error_code_1.ErrorCode.SiteMismatch ||
|
|
46
|
+
errorCode === error_code_1.ErrorCode.BrowserError ||
|
|
47
|
+
errorCode === error_code_1.ErrorCode.IncorrectCaptchaSol ||
|
|
48
|
+
errorCode === error_code_1.ErrorCode.LowScore ||
|
|
49
|
+
errorCode === error_code_1.ErrorCode.InvalidKeys
|
|
50
|
+
? common_1.HttpStatus.BAD_REQUEST
|
|
51
|
+
: common_1.HttpStatus.INTERNAL_SERVER_ERROR;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.GoogleRecaptchaException = GoogleRecaptchaException;
|
|
55
|
+
//# sourceMappingURL=google-recaptcha.exception.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google-recaptcha.exception.js","sourceRoot":"","sources":["../../src/exceptions/google-recaptcha.exception.ts"],"names":[],"mappings":";;;AAAA,2CAA2D;AAC3D,oDAAgD;AAEhD,MAAa,wBAAyB,SAAQ,sBAAa;IACzD,YACkB,UAAuB,EACvC,YAAqB;QAErB,KAAK,CACH,YAAY,IAAI,wBAAwB,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EACvE,wBAAwB,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CACvD,CAAC;QANc,eAAU,GAAV,UAAU,CAAa;IAOzC,CAAC;IAEO,MAAM,CAAC,eAAe,CAAC,SAAoB;QACjD,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,sBAAS,CAAC,oBAAoB;gBACjC,OAAO,iDAAiD,CAAC;YAE3D,KAAK,sBAAS,CAAC,oBAAoB;gBACjC,OAAO,oCAAoC,CAAC;YAC9C,KAAK,sBAAS,CAAC,kBAAkB;gBAC/B,OAAO,iFAAiF,CAAC;YAE3F,KAAK,sBAAS,CAAC,kBAAkB,CAAC;YAClC,KAAK,sBAAS,CAAC,kBAAkB;gBAC/B,OAAO,gEAAgE,CAAC;YAE1E,KAAK,sBAAS,CAAC,WAAW;gBACxB,OAAO,gDAAgD,CAAC;YAE1D,KAAK,sBAAS,CAAC,QAAQ;gBACrB,OAAO,sBAAsB,CAAC;YAEhC,KAAK,sBAAS,CAAC,eAAe;gBAC5B,OAAO,6BAA6B,CAAC;YAEvC,KAAK,sBAAS,CAAC,YAAY;gBACzB,OAAO,kEAAkE,CAAC;YAE5E,KAAK,sBAAS,CAAC,YAAY;gBACzB,OAAO,oEAAoE,CAAC;YAE9E,KAAK,sBAAS,CAAC,mBAAmB;gBAChC,OAAO,gCAAgC,CAAC;YAE1C,KAAK,sBAAS,CAAC,YAAY,CAAC;YAC5B,KAAK,sBAAS,CAAC,UAAU,CAAC;YAC1B;gBACE,OAAO,mBAAmB,CAAC;QAC/B,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,cAAc,CAAC,SAAoB;QAChD,OAAO,SAAS,KAAK,sBAAS,CAAC,oBAAoB;YACjD,SAAS,KAAK,sBAAS,CAAC,oBAAoB;YAC5C,SAAS,KAAK,sBAAS,CAAC,kBAAkB;YAC1C,SAAS,KAAK,sBAAS,CAAC,eAAe;YACvC,SAAS,KAAK,sBAAS,CAAC,YAAY;YACpC,SAAS,KAAK,sBAAS,CAAC,YAAY;YACpC,SAAS,KAAK,sBAAS,CAAC,mBAAmB;YAC3C,SAAS,KAAK,sBAAS,CAAC,QAAQ;YAChC,SAAS,KAAK,sBAAS,CAAC,WAAW;YACnC,CAAC,CAAC,mBAAU,CAAC,WAAW;YACxB,CAAC,CAAC,mBAAU,CAAC,qBAAqB,CAAC;IACvC,CAAC;CACF;AA/DD,4DA+DC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { DynamicModule } from '@nestjs/common';
|
|
2
|
+
import { GoogleRecaptchaModuleAsyncOptions, GoogleRecaptchaModuleOptions } from './interfaces/google-recaptcha-module-options';
|
|
3
|
+
export declare class GoogleRecaptchaModule {
|
|
4
|
+
private static axiosDefaultConfig;
|
|
5
|
+
static forRoot(options: GoogleRecaptchaModuleOptions): DynamicModule;
|
|
6
|
+
static forRootAsync(options: GoogleRecaptchaModuleAsyncOptions): DynamicModule;
|
|
7
|
+
private static transformAxiosConfig;
|
|
8
|
+
private static createAsyncProviders;
|
|
9
|
+
private static createAsyncOptionsProvider;
|
|
10
|
+
private static validateOptions;
|
|
11
|
+
private static isGoogleRecaptchaFactory;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=google-recaptcha.module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google-recaptcha.module.d.ts","sourceRoot":"","sources":["../src/google-recaptcha.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAoB,MAAM,gBAAgB,CAAC;AAIjE,OAAO,EACL,iCAAiC,EACjC,4BAA4B,EAE7B,MAAM,8CAA8C,CAAC;AActD,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAG/B;IAEF,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,4BAA4B,GAAG,aAAa;IA+CpE,MAAM,CAAC,YAAY,CACjB,OAAO,EAAE,iCAAiC,GACzC,aAAa;IAkDhB,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAmBnC,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAenC,OAAO,CAAC,MAAM,CAAC,0BAA0B;IA2BzC,OAAO,CAAC,MAAM,CAAC,eAAe;IAW9B,OAAO,CAAC,MAAM,CAAC,wBAAwB;CAOxC"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.GoogleRecaptchaModule = void 0;
|
|
7
|
+
const common_1 = require("@nestjs/common");
|
|
8
|
+
const google_recaptcha_guard_1 = require("./guards/google-recaptcha.guard");
|
|
9
|
+
const google_recaptcha_validator_1 = require("./services/validators/google-recaptcha.validator");
|
|
10
|
+
const google_recaptcha_enterprise_validator_1 = require("./services/validators/google-recaptcha-enterprise.validator");
|
|
11
|
+
const provider_declarations_1 = require("./provider.declarations");
|
|
12
|
+
const recaptcha_request_resolver_1 = require("./services/recaptcha-request.resolver");
|
|
13
|
+
const core_1 = require("@nestjs/core");
|
|
14
|
+
const axios_1 = __importDefault(require("axios"));
|
|
15
|
+
const https_1 = require("https");
|
|
16
|
+
const recaptcha_validator_resolver_1 = require("./services/recaptcha-validator.resolver");
|
|
17
|
+
const enterprise_reason_transformer_1 = require("./services/enterprise-reason.transformer");
|
|
18
|
+
const recaptcha_config_ref_1 = require("./models/recaptcha-config-ref");
|
|
19
|
+
class GoogleRecaptchaModule {
|
|
20
|
+
static forRoot(options) {
|
|
21
|
+
const providers = [
|
|
22
|
+
core_1.Reflector,
|
|
23
|
+
google_recaptcha_guard_1.GoogleRecaptchaGuard,
|
|
24
|
+
google_recaptcha_validator_1.GoogleRecaptchaValidator,
|
|
25
|
+
google_recaptcha_enterprise_validator_1.GoogleRecaptchaEnterpriseValidator,
|
|
26
|
+
recaptcha_request_resolver_1.RecaptchaRequestResolver,
|
|
27
|
+
recaptcha_validator_resolver_1.RecaptchaValidatorResolver,
|
|
28
|
+
enterprise_reason_transformer_1.EnterpriseReasonTransformer,
|
|
29
|
+
{
|
|
30
|
+
provide: provider_declarations_1.RECAPTCHA_OPTIONS,
|
|
31
|
+
useValue: options,
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
provide: provider_declarations_1.RECAPTCHA_LOGGER,
|
|
35
|
+
useFactory: () => options.logger || new common_1.Logger(),
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
provide: recaptcha_config_ref_1.RecaptchaConfigRef,
|
|
39
|
+
useFactory: () => new recaptcha_config_ref_1.RecaptchaConfigRef(options),
|
|
40
|
+
},
|
|
41
|
+
];
|
|
42
|
+
this.validateOptions(options);
|
|
43
|
+
const internalProviders = [
|
|
44
|
+
{
|
|
45
|
+
provide: provider_declarations_1.RECAPTCHA_AXIOS_INSTANCE,
|
|
46
|
+
useFactory: () => axios_1.default.create(this.transformAxiosConfig({
|
|
47
|
+
...this.axiosDefaultConfig,
|
|
48
|
+
...options.axiosConfig,
|
|
49
|
+
headers: null,
|
|
50
|
+
})),
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
return {
|
|
54
|
+
global: options.global != null ? options.global : true,
|
|
55
|
+
module: GoogleRecaptchaModule,
|
|
56
|
+
providers: providers.concat(internalProviders),
|
|
57
|
+
exports: providers,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
static forRootAsync(options) {
|
|
61
|
+
const providers = [
|
|
62
|
+
core_1.Reflector,
|
|
63
|
+
{
|
|
64
|
+
provide: provider_declarations_1.RECAPTCHA_LOGGER,
|
|
65
|
+
useFactory: (options) => options.logger || new common_1.Logger(),
|
|
66
|
+
inject: [provider_declarations_1.RECAPTCHA_OPTIONS],
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
provide: recaptcha_config_ref_1.RecaptchaConfigRef,
|
|
70
|
+
useFactory: (opts) => new recaptcha_config_ref_1.RecaptchaConfigRef(opts),
|
|
71
|
+
inject: [provider_declarations_1.RECAPTCHA_OPTIONS],
|
|
72
|
+
},
|
|
73
|
+
google_recaptcha_guard_1.GoogleRecaptchaGuard,
|
|
74
|
+
google_recaptcha_validator_1.GoogleRecaptchaValidator,
|
|
75
|
+
google_recaptcha_enterprise_validator_1.GoogleRecaptchaEnterpriseValidator,
|
|
76
|
+
recaptcha_request_resolver_1.RecaptchaRequestResolver,
|
|
77
|
+
recaptcha_validator_resolver_1.RecaptchaValidatorResolver,
|
|
78
|
+
enterprise_reason_transformer_1.EnterpriseReasonTransformer,
|
|
79
|
+
...this.createAsyncProviders(options),
|
|
80
|
+
];
|
|
81
|
+
const internalProviders = [
|
|
82
|
+
{
|
|
83
|
+
provide: provider_declarations_1.RECAPTCHA_AXIOS_INSTANCE,
|
|
84
|
+
useFactory: (options) => {
|
|
85
|
+
this.validateOptions(options);
|
|
86
|
+
const transformedAxiosConfig = this.transformAxiosConfig({
|
|
87
|
+
...this.axiosDefaultConfig,
|
|
88
|
+
...options.axiosConfig,
|
|
89
|
+
headers: null,
|
|
90
|
+
});
|
|
91
|
+
return axios_1.default.create(transformedAxiosConfig);
|
|
92
|
+
},
|
|
93
|
+
inject: [provider_declarations_1.RECAPTCHA_OPTIONS],
|
|
94
|
+
},
|
|
95
|
+
];
|
|
96
|
+
return {
|
|
97
|
+
global: options.global != null ? options.global : true,
|
|
98
|
+
module: GoogleRecaptchaModule,
|
|
99
|
+
imports: options.imports,
|
|
100
|
+
providers: providers.concat(internalProviders),
|
|
101
|
+
exports: providers,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
static transformAxiosConfig(axiosConfig) {
|
|
105
|
+
const config = { ...axiosConfig };
|
|
106
|
+
delete config.baseURL;
|
|
107
|
+
delete config.url;
|
|
108
|
+
delete config.responseType;
|
|
109
|
+
delete config.method;
|
|
110
|
+
delete config.transformRequest;
|
|
111
|
+
delete config.transformResponse;
|
|
112
|
+
delete config.paramsSerializer;
|
|
113
|
+
delete config.validateStatus;
|
|
114
|
+
delete config.data;
|
|
115
|
+
delete config.adapter;
|
|
116
|
+
return config;
|
|
117
|
+
}
|
|
118
|
+
static createAsyncProviders(options) {
|
|
119
|
+
const providers = [this.createAsyncOptionsProvider(options)];
|
|
120
|
+
if (options.useClass) {
|
|
121
|
+
providers.push({
|
|
122
|
+
provide: options.useClass,
|
|
123
|
+
useClass: options.useClass,
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
return providers;
|
|
127
|
+
}
|
|
128
|
+
static createAsyncOptionsProvider(options) {
|
|
129
|
+
if (options.useFactory) {
|
|
130
|
+
return {
|
|
131
|
+
provide: provider_declarations_1.RECAPTCHA_OPTIONS,
|
|
132
|
+
useFactory: options.useFactory,
|
|
133
|
+
inject: options.inject,
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
return {
|
|
137
|
+
provide: provider_declarations_1.RECAPTCHA_OPTIONS,
|
|
138
|
+
useFactory: async (optionsFactory) => {
|
|
139
|
+
if (!this.isGoogleRecaptchaFactory(optionsFactory)) {
|
|
140
|
+
throw new Error("Factory must be implement 'GoogleRecaptchaOptionsFactory' interface.");
|
|
141
|
+
}
|
|
142
|
+
return optionsFactory.createGoogleRecaptchaOptions();
|
|
143
|
+
},
|
|
144
|
+
inject: [options.useExisting || options.useClass],
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
static validateOptions(options) {
|
|
148
|
+
const hasEnterpriseOptions = !!Object.keys(options.enterprise || {}).length;
|
|
149
|
+
if (!options.disable && !(!!options.secretKey || hasEnterpriseOptions)) {
|
|
150
|
+
throw new Error('Google recaptcha options must be contains "secretKey" xor "enterprise".');
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
static isGoogleRecaptchaFactory(object) {
|
|
154
|
+
return (!!object && typeof object.createGoogleRecaptchaOptions === 'function');
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
exports.GoogleRecaptchaModule = GoogleRecaptchaModule;
|
|
158
|
+
GoogleRecaptchaModule.axiosDefaultConfig = {
|
|
159
|
+
timeout: 60_000,
|
|
160
|
+
httpsAgent: new https_1.Agent({ keepAlive: true }),
|
|
161
|
+
};
|
|
162
|
+
//# sourceMappingURL=google-recaptcha.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google-recaptcha.module.js","sourceRoot":"","sources":["../src/google-recaptcha.module.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { CanActivate, ExecutionContext, Logger } from '@nestjs/common';
|
|
2
|
+
import { Reflector } from '@nestjs/core';
|
|
3
|
+
import { RecaptchaRequestResolver } from '../services/recaptcha-request.resolver';
|
|
4
|
+
import { RecaptchaValidatorResolver } from '../services/recaptcha-validator.resolver';
|
|
5
|
+
import { RecaptchaConfigRef } from '../models/recaptcha-config-ref';
|
|
6
|
+
export declare class GoogleRecaptchaGuard implements CanActivate {
|
|
7
|
+
private readonly reflector;
|
|
8
|
+
private readonly requestResolver;
|
|
9
|
+
private readonly validatorResolver;
|
|
10
|
+
private readonly logger;
|
|
11
|
+
private readonly configRef;
|
|
12
|
+
constructor(reflector: Reflector, requestResolver: RecaptchaRequestResolver, validatorResolver: RecaptchaValidatorResolver, logger: Logger, configRef: RecaptchaConfigRef);
|
|
13
|
+
canActivate(context: ExecutionContext): Promise<true | never>;
|
|
14
|
+
private resolveLogContext;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=google-recaptcha.guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google-recaptcha.guard.d.ts","sourceRoot":"","sources":["../../src/guards/google-recaptcha.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,gBAAgB,EAGhB,MAAM,EACP,MAAM,gBAAgB,CAAC;AAMxB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAElF,OAAO,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AAKtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,qBACa,oBAAqB,YAAW,WAAW;IAEpD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IACR,OAAO,CAAC,QAAQ,CAAC,MAAM;IACjD,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAJT,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,wBAAwB,EACzC,iBAAiB,EAAE,0BAA0B,EACnB,MAAM,EAAE,MAAM,EACxC,SAAS,EAAE,kBAAkB;IAG1C,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC;IA8DnE,OAAO,CAAC,iBAAiB;CAO1B"}
|