UNPKG

@kilterset/auth0-actions-testing

Version:

Test and develop Auth0 Actions or Okta CIC Actions locally.

91 lines 3.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.riskAssessment = exports.untrustedIPAssessment = exports.newDeviceAssessment = exports.impossibleTravelAssessment = void 0; const assert_1 = require("assert"); const chance_1 = require("./chance"); const define_1 = require("./define"); exports.impossibleTravelAssessment = (0, define_1.define)(() => { return { confidence: randomConfidence(), code: chance_1.chance.pickone([ "minimal_travel_from_last_login", "travel_from_last_login", "substantial_travel_from_last_login", "impossible_travel_from_last_login", "invalid_travel", "mission_geoip", "anonymous_proxy", "unknown_location", "initial_login", "location_history_not_found", "assessment_not_available", ]), }; }); exports.newDeviceAssessment = (0, define_1.define)(() => { return { confidence: randomConfidence(), code: chance_1.chance.pickone([ "match", "partial_match", "no_match", "initial_login", "unknown_device", "no_device_history", "assessment_not_available", ]), details: { device: chance_1.chance.pickone(["known", "unknown"]), useragent: chance_1.chance.pickone(["known", "unknown"]), }, }; }); exports.untrustedIPAssessment = (0, define_1.define)(({ params }) => { var _a; const ip = ((_a = params.details) === null || _a === void 0 ? void 0 : _a.ip) || chance_1.chance.ip(); const matches = `${ip}/32`; return { confidence: randomConfidence(), code: chance_1.chance.pickone([ "not_found_on_deny_list", "found_on_deny_list", "invalid_ip_address", "assessment_not_available", ]), details: { category: "spam", ip: chance_1.chance.ip(), matches, source: "STOPFORUMSPAM-1", }, }; }); const riskAssessmentTypes = { ImpossibleTravel: exports.impossibleTravelAssessment, NewDevice: exports.newDeviceAssessment, UntrustedIP: exports.untrustedIPAssessment, }; const riskAssessmentKeys = Object.keys(riskAssessmentTypes); exports.riskAssessment = (0, define_1.define)(({ transientParams }) => { var _a; const numAssessments = transientParams.numAssessments || ((_a = transientParams.assessmentTypes) === null || _a === void 0 ? void 0 : _a.length) || chance_1.chance.integer({ min: 1, max: riskAssessmentKeys.length }); const shuffledAssessmentTypes = chance_1.chance.shuffle(riskAssessmentKeys); const assessmentTypes = transientParams.assessmentTypes || shuffledAssessmentTypes.slice(0, numAssessments); if (numAssessments > assessmentTypes.length) { (0, assert_1.fail)(`numAssessments is ${numAssessments}, which is greater than the ${riskAssessmentKeys.length} assessment types available`); } const assessments = assessmentTypes.reduce((acc, type) => { const assessment = riskAssessmentTypes[type](); return Object.assign(Object.assign({}, acc), { [type]: assessment }); }, {}); return { confidence: randomConfidence(), version: "1", assessments, }; }); const randomConfidence = () => chance_1.chance.pickone(["low", "medium", "high", "neutral"]); //# sourceMappingURL=risk-assessment.js.map