@prosopo/provider 5.16.0 → 5.17.1
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/.turbo/turbo-build$colon$cjs.log +9 -9
- package/.turbo/turbo-build$colon$tsc.log +28 -28
- package/.turbo/turbo-build.log +9 -9
- package/CHANGELOG.md +74 -0
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/constants.d.ts +1 -0
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/constants.d.ts.map +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/constants.js +7 -2
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/constants.js.map +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.d.ts.map +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js +6 -5
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js.map +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/refreshLineage.d.ts +7 -2
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/refreshLineage.d.ts.map +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/refreshLineage.js +14 -4
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/refreshLineage.js.map +1 -1
- package/dist/api/captcha/getPuzzleCaptchaChallenge.d.ts.map +1 -1
- package/dist/api/captcha/getPuzzleCaptchaChallenge.js +3 -1
- package/dist/api/captcha/getPuzzleCaptchaChallenge.js.map +1 -1
- package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/constants.cjs +6 -0
- package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/handler.cjs +4 -3
- package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/refreshLineage.cjs +14 -3
- package/dist/cjs/api/captcha/getPuzzleCaptchaChallenge.cjs +3 -1
- package/dist/cjs/tasks/captchaTypeSelection.cjs +10 -0
- package/dist/cjs/tasks/dnsEvent/enrichDnsEvent.cjs +4 -3
- package/dist/cjs/tasks/frictionless/frictionlessTasks.cjs +14 -3
- package/dist/cjs/tasks/spam/checkTrafficFilter.cjs +8 -4
- package/dist/tasks/captchaTypeSelection.d.ts +1 -0
- package/dist/tasks/captchaTypeSelection.d.ts.map +1 -1
- package/dist/tasks/captchaTypeSelection.js +10 -1
- package/dist/tasks/captchaTypeSelection.js.map +1 -1
- package/dist/tasks/dnsEvent/enrichDnsEvent.d.ts.map +1 -1
- package/dist/tasks/dnsEvent/enrichDnsEvent.js +5 -4
- package/dist/tasks/dnsEvent/enrichDnsEvent.js.map +1 -1
- package/dist/tasks/frictionless/frictionlessTasks.d.ts +2 -0
- package/dist/tasks/frictionless/frictionlessTasks.d.ts.map +1 -1
- package/dist/tasks/frictionless/frictionlessTasks.js +15 -4
- package/dist/tasks/frictionless/frictionlessTasks.js.map +1 -1
- package/dist/tasks/spam/checkTrafficFilter.d.ts +1 -0
- package/dist/tasks/spam/checkTrafficFilter.d.ts.map +1 -1
- package/dist/tasks/spam/checkTrafficFilter.js +8 -5
- package/dist/tasks/spam/checkTrafficFilter.js.map +1 -1
- package/dist/tests/integration/clientSettingsPersistence.integration.test.js +2 -0
- package/dist/tests/integration/clientSettingsPersistence.integration.test.js.map +1 -1
- package/dist/tests/unit/api/captcha/getFrictionlessCaptchaChallenge/refreshLineage.unit.test.js +29 -3
- package/dist/tests/unit/api/captcha/getFrictionlessCaptchaChallenge/refreshLineage.unit.test.js.map +1 -1
- package/dist/tests/unit/api/getFrictionlessCaptchaChallenge.unit.test.js +53 -0
- package/dist/tests/unit/api/getFrictionlessCaptchaChallenge.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/captchaTypeSelection.unit.test.js +17 -1
- package/dist/tests/unit/tasks/captchaTypeSelection.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/dnsEvent/enrichDnsEvent.unit.test.js +30 -0
- package/dist/tests/unit/tasks/dnsEvent/enrichDnsEvent.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/frictionless/refreshSwitch.unit.test.js +26 -1
- package/dist/tests/unit/tasks/frictionless/refreshSwitch.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/spam/checkTrafficFilter.unit.test.js +67 -2
- package/dist/tests/unit/tasks/spam/checkTrafficFilter.unit.test.js.map +1 -1
- package/package.json +29 -29
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { CaptchaType } from "@prosopo/types";
|
|
1
2
|
//#region src/api/captcha/getFrictionlessCaptchaChallenge/refreshLineage.ts
|
|
2
3
|
/**
|
|
3
4
|
* Work out where a refresh sits in its chain from the session it replaced.
|
|
@@ -11,10 +12,19 @@ var resolveRefreshLineage = async (db, refreshOf, siteKey, now) => {
|
|
|
11
12
|
const replaced = await db.getSessionRecordBySessionId(refreshOf);
|
|
12
13
|
if (!replaced || replaced.siteKey !== siteKey) return void 0;
|
|
13
14
|
return {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
lineage: {
|
|
16
|
+
refreshOf,
|
|
17
|
+
refreshCount: (replaced.refreshCount ?? 0) + 1,
|
|
18
|
+
refreshedAfterMs: Math.max(0, now.getTime() - new Date(replaced.createdAt).getTime())
|
|
19
|
+
},
|
|
20
|
+
replacedCaptchaType: replaced.captchaType
|
|
17
21
|
};
|
|
18
22
|
};
|
|
23
|
+
/**
|
|
24
|
+
* Whether to honour the user's request to swap their puzzle for an image
|
|
25
|
+
* challenge: the request must be a genuine refresh of a puzzle session on
|
|
26
|
+
* this site, and the site must have the switch enabled.
|
|
27
|
+
*/
|
|
28
|
+
var isImageSwitchRequestValid = (switchToImage, refresh, switchEnabled) => true === switchToImage && switchEnabled && CaptchaType.puzzle === refresh?.replacedCaptchaType;
|
|
19
29
|
//#endregion
|
|
20
|
-
export { resolveRefreshLineage };
|
|
30
|
+
export { isImageSwitchRequestValid, resolveRefreshLineage };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refreshLineage.js","sourceRoot":"","sources":["../../../../src/api/captcha/getFrictionlessCaptchaChallenge/refreshLineage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"refreshLineage.js","sourceRoot":"","sources":["../../../../src/api/captcha/getFrictionlessCaptchaChallenge/refreshLineage.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,WAAW,EAAgB,MAAM,gBAAgB,CAAC;AAmB3D,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EACzC,EAA0D,EAC1D,SAA6B,EAC7B,OAAe,EACf,GAAS,EAC8B,EAAE;IACzC,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IACjC,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,2BAA2B,CAAC,SAAS,CAAC,CAAC;IACjE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,OAAO,KAAK,OAAO;QAAE,OAAO,SAAS,CAAC;IAChE,OAAO;QACN,OAAO,EAAE;YACR,SAAS;YACT,YAAY,EAAE,CAAC,QAAQ,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC;YAC9C,gBAAgB,EAAE,IAAI,CAAC,GAAG,CACzB,CAAC,EACD,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CACtD;SACD;QACD,mBAAmB,EAAE,QAAQ,CAAC,WAAW;KACzC,CAAC;AACH,CAAC,CAAC;AAOF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACxC,aAAkC,EAClC,OAAoC,EACpC,aAAsB,EACZ,EAAE,CACZ,IAAI,KAAK,aAAa;IACtB,aAAa;IACb,WAAW,CAAC,MAAM,KAAK,OAAO,EAAE,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPuzzleCaptchaChallenge.d.ts","sourceRoot":"","sources":["../../../src/api/captcha/getPuzzleCaptchaChallenge.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"getPuzzleCaptchaChallenge.d.ts","sourceRoot":"","sources":["../../../src/api/captcha/getPuzzleCaptchaChallenge.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;8BA2JhE,mBAAmB,0BACA,kBAAkB;AAF3C,wBAUI"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { renderPuzzleImages, resolvePuzzlePieceSize, resolvePuzzleRenderSettings } from "../../tasks/puzzle/puzzleRenderer.js";
|
|
2
2
|
import { interactiveChallengeHandler } from "./interactiveCaptchaChallenge.js";
|
|
3
3
|
import { buildPuzzleMaintenanceResponse } from "./maintenanceModeResponses.js";
|
|
4
|
+
import { isPuzzleImageSwitchAvailable } from "./getFrictionlessCaptchaChallenge/constants.js";
|
|
4
5
|
import { ApiParams, CaptchaType } from "@prosopo/types";
|
|
5
6
|
import { DEFAULT_GEOMETRY } from "@prosopo/puzzle-assets";
|
|
6
7
|
//#region src/api/captcha/getPuzzleCaptchaChallenge.ts
|
|
@@ -54,7 +55,8 @@ var issuePuzzleChallenge = async ({ tasks, user, dapp, origin, clientSettings, s
|
|
|
54
55
|
[ApiParams.originX]: challenge.originX,
|
|
55
56
|
[ApiParams.originY]: challenge.originY,
|
|
56
57
|
[ApiParams.timestamp]: challenge.requestedAtTimestamp.toString(),
|
|
57
|
-
[ApiParams.signature]: { [ApiParams.provider]: { [ApiParams.challenge]: challenge.providerSignature } }
|
|
58
|
+
[ApiParams.signature]: { [ApiParams.provider]: { [ApiParams.challenge]: challenge.providerSignature } },
|
|
59
|
+
...isPuzzleImageSwitchAvailable(clientSettings?.settings ?? {}) && { [ApiParams.imageSwitchAvailable]: true }
|
|
58
60
|
}
|
|
59
61
|
};
|
|
60
62
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPuzzleCaptchaChallenge.js","sourceRoot":"","sources":["../../../src/api/captcha/getPuzzleCaptchaChallenge.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"getPuzzleCaptchaChallenge.js","sourceRoot":"","sources":["../../../src/api/captcha/getPuzzleCaptchaChallenge.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,11 @@ var resolveSiteAllowedCaptchaTypes = (settings) => (0, _prosopo_types.resolveAll
|
|
|
22
22
|
...(!settings.captchaType || settings.captchaType === _prosopo_types.CaptchaType.frictionless) && { frictionlessTypes: settings.frictionlessTypes }
|
|
23
23
|
});
|
|
24
24
|
/**
|
|
25
|
+
* Whether a user on this site may swap a puzzle for an image challenge: the
|
|
26
|
+
* switch is on and the site may be served image challenges at all.
|
|
27
|
+
*/
|
|
28
|
+
var isPuzzleImageSwitchAvailable = (settings) => (0, _prosopo_types.isWidgetFeatureEnabled)("puzzleImageSwitch", settings.widgetFeatureFlags) && resolveSiteAllowedCaptchaTypes(settings).image;
|
|
29
|
+
/**
|
|
25
30
|
* Size an image challenge by how much was actually found. `base` is the
|
|
26
31
|
* sitekey's ordinary image round count; each triggered signal adds a round,
|
|
27
32
|
* capped by `MAX_DETECTOR_EXTRA_IMAGE_ROUNDS`. A session with nothing
|
|
@@ -32,5 +37,6 @@ var resolveSiteAllowedCaptchaTypes = (settings) => (0, _prosopo_types.resolveAll
|
|
|
32
37
|
var getRoundsFromTriggeredDetectors = (base, triggeredDetectors) => base + Math.min(triggeredDetectors?.length ?? 0, 6);
|
|
33
38
|
//#endregion
|
|
34
39
|
exports.getRoundsFromTriggeredDetectors = getRoundsFromTriggeredDetectors;
|
|
40
|
+
exports.isPuzzleImageSwitchAvailable = isPuzzleImageSwitchAvailable;
|
|
35
41
|
exports.resolveScoreLadder = resolveScoreLadder;
|
|
36
42
|
exports.resolveSiteAllowedCaptchaTypes = resolveSiteAllowedCaptchaTypes;
|
|
@@ -41,7 +41,7 @@ var handler_default = (env, userAccessRulesStorage) => async (req, res, next) =>
|
|
|
41
41
|
}
|
|
42
42
|
}));
|
|
43
43
|
});
|
|
44
|
-
const { token, headHash, dapp, user, mode, simdReadings, detectorSessionId, currentUrl: reportedCurrentUrl, iframeUrl: reportedIframeUrl, clientSessionId, refreshOf } = _prosopo_types.GetFrictionlessCaptchaChallengeRequestBody.parse(req.body);
|
|
44
|
+
const { token, headHash, dapp, user, mode, simdReadings, detectorSessionId, currentUrl: reportedCurrentUrl, iframeUrl: reportedIframeUrl, clientSessionId, refreshOf, switchToImage } = _prosopo_types.GetFrictionlessCaptchaChallengeRequestBody.parse(req.body);
|
|
45
45
|
const currentUrl = (0, _prosopo_util.sanitisePageUrl)(reportedCurrentUrl);
|
|
46
46
|
const iframeUrl = (0, _prosopo_util.sanitisePageUrl)(reportedIframeUrl);
|
|
47
47
|
const isProtect = (0, _prosopo_util.isProtectDeployment)(currentUrl, iframeUrl);
|
|
@@ -238,6 +238,8 @@ var handler_default = (env, userAccessRulesStorage) => async (req, res, next) =>
|
|
|
238
238
|
...req.chelloToHandshakeUs !== void 0 && { chelloToHandshakeUs: req.chelloToHandshakeUs },
|
|
239
239
|
...require_rawTlsSignalsMiddleware.rawTlsSignalsForSession(req)
|
|
240
240
|
};
|
|
241
|
+
const refresh = await require_refreshLineage.resolveRefreshLineage(tasks.db, refreshOf, dapp, /* @__PURE__ */ new Date());
|
|
242
|
+
tasks.frictionlessManager.setImageSwitchRequested(require_refreshLineage.isImageSwitchRequestValid(switchToImage, refresh, require_constants.isPuzzleImageSwitchAvailable(clientRecord.settings)));
|
|
241
243
|
const shortCircuitResponse = await require_shortCircuit.runConfiguredCaptchaTypeShortCircuit(shortCircuitInput, res);
|
|
242
244
|
if (shortCircuitResponse) return shortCircuitResponse;
|
|
243
245
|
const emptyPoolResponse = await require_shortCircuit.runEmptyDetectorPoolPowFallback(shortCircuitInput, res);
|
|
@@ -316,7 +318,6 @@ var handler_default = (env, userAccessRulesStorage) => async (req, res, next) =>
|
|
|
316
318
|
...triggeredDetectors && triggeredDetectors.length > 0 && { triggeredDetectors },
|
|
317
319
|
...shadowDomPenalty !== void 0 && { shadowDomPenalty }
|
|
318
320
|
};
|
|
319
|
-
const refreshLineage = await require_refreshLineage.resolveRefreshLineage(tasks.db, refreshOf, dapp, /* @__PURE__ */ new Date());
|
|
320
321
|
tasks.frictionlessManager.setSessionParams({
|
|
321
322
|
token: sessionToken,
|
|
322
323
|
score: botScore,
|
|
@@ -337,7 +338,7 @@ var handler_default = (env, userAccessRulesStorage) => async (req, res, next) =>
|
|
|
337
338
|
...decodedSimdReadings && { simdReadings: decodedSimdReadings },
|
|
338
339
|
...d !== void 0 && { d },
|
|
339
340
|
...clientSessionId && { clientMetaData: { clientSessionId } },
|
|
340
|
-
...
|
|
341
|
+
...refresh?.lineage,
|
|
341
342
|
...req.tcpToChelloUs !== void 0 && { tcpToChelloUs: req.tcpToChelloUs },
|
|
342
343
|
...req.chelloToHandshakeUs !== void 0 && { chelloToHandshakeUs: req.chelloToHandshakeUs },
|
|
343
344
|
...require_rawTlsSignalsMiddleware.rawTlsSignalsForSession(req)
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
let _prosopo_types = require("@prosopo/types");
|
|
1
2
|
//#region src/api/captcha/getFrictionlessCaptchaChallenge/refreshLineage.ts
|
|
2
3
|
/**
|
|
3
4
|
* Work out where a refresh sits in its chain from the session it replaced.
|
|
@@ -11,10 +12,20 @@ var resolveRefreshLineage = async (db, refreshOf, siteKey, now) => {
|
|
|
11
12
|
const replaced = await db.getSessionRecordBySessionId(refreshOf);
|
|
12
13
|
if (!replaced || replaced.siteKey !== siteKey) return void 0;
|
|
13
14
|
return {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
lineage: {
|
|
16
|
+
refreshOf,
|
|
17
|
+
refreshCount: (replaced.refreshCount ?? 0) + 1,
|
|
18
|
+
refreshedAfterMs: Math.max(0, now.getTime() - new Date(replaced.createdAt).getTime())
|
|
19
|
+
},
|
|
20
|
+
replacedCaptchaType: replaced.captchaType
|
|
17
21
|
};
|
|
18
22
|
};
|
|
23
|
+
/**
|
|
24
|
+
* Whether to honour the user's request to swap their puzzle for an image
|
|
25
|
+
* challenge: the request must be a genuine refresh of a puzzle session on
|
|
26
|
+
* this site, and the site must have the switch enabled.
|
|
27
|
+
*/
|
|
28
|
+
var isImageSwitchRequestValid = (switchToImage, refresh, switchEnabled) => true === switchToImage && switchEnabled && _prosopo_types.CaptchaType.puzzle === refresh?.replacedCaptchaType;
|
|
19
29
|
//#endregion
|
|
30
|
+
exports.isImageSwitchRequestValid = isImageSwitchRequestValid;
|
|
20
31
|
exports.resolveRefreshLineage = resolveRefreshLineage;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
const require_puzzleRenderer = require("../../tasks/puzzle/puzzleRenderer.cjs");
|
|
2
2
|
const require_interactiveCaptchaChallenge = require("./interactiveCaptchaChallenge.cjs");
|
|
3
3
|
const require_maintenanceModeResponses = require("./maintenanceModeResponses.cjs");
|
|
4
|
+
const require_constants = require("./getFrictionlessCaptchaChallenge/constants.cjs");
|
|
4
5
|
let _prosopo_types = require("@prosopo/types");
|
|
5
6
|
let _prosopo_puzzle_assets = require("@prosopo/puzzle-assets");
|
|
6
7
|
//#region src/api/captcha/getPuzzleCaptchaChallenge.ts
|
|
@@ -54,7 +55,8 @@ var issuePuzzleChallenge = async ({ tasks, user, dapp, origin, clientSettings, s
|
|
|
54
55
|
[_prosopo_types.ApiParams.originX]: challenge.originX,
|
|
55
56
|
[_prosopo_types.ApiParams.originY]: challenge.originY,
|
|
56
57
|
[_prosopo_types.ApiParams.timestamp]: challenge.requestedAtTimestamp.toString(),
|
|
57
|
-
[_prosopo_types.ApiParams.signature]: { [_prosopo_types.ApiParams.provider]: { [_prosopo_types.ApiParams.challenge]: challenge.providerSignature } }
|
|
58
|
+
[_prosopo_types.ApiParams.signature]: { [_prosopo_types.ApiParams.provider]: { [_prosopo_types.ApiParams.challenge]: challenge.providerSignature } },
|
|
59
|
+
...require_constants.isPuzzleImageSwitchAvailable(clientSettings?.settings ?? {}) && { [_prosopo_types.ApiParams.imageSwitchAvailable]: true }
|
|
58
60
|
}
|
|
59
61
|
};
|
|
60
62
|
};
|
|
@@ -76,6 +76,16 @@ var coerceToEnabledCaptchaType = (requested, allowedTypes, logger) => {
|
|
|
76
76
|
* turned off is exactly what `coerceToEnabledCaptchaType` exists to stop.
|
|
77
77
|
*/
|
|
78
78
|
var switchTypeAfterRefreshes = (resolved, refreshCount, allowedTypes) => _prosopo_types.CaptchaType.puzzle === resolved && (refreshCount ?? 0) >= 3 && (0, _prosopo_types.resolveFrictionlessTypes)(allowedTypes).image ? _prosopo_types.CaptchaType.image : resolved;
|
|
79
|
+
/**
|
|
80
|
+
* Swap a puzzle for an image challenge because the user asked for one.
|
|
81
|
+
*
|
|
82
|
+
* Same one-way rule as `switchTypeAfterRefreshes`: the request is
|
|
83
|
+
* client-reported, so it may only ever earn a harder challenge. Whatever the
|
|
84
|
+
* routing settled on other than a puzzle stands, and so does a site that may
|
|
85
|
+
* not be served image challenges.
|
|
86
|
+
*/
|
|
87
|
+
var switchTypeOnUserRequest = (resolved, switchToImage, allowedTypes) => _prosopo_types.CaptchaType.puzzle === resolved && true === switchToImage && (0, _prosopo_types.resolveFrictionlessTypes)(allowedTypes).image ? _prosopo_types.CaptchaType.image : resolved;
|
|
79
88
|
//#endregion
|
|
80
89
|
exports.coerceToEnabledCaptchaType = coerceToEnabledCaptchaType;
|
|
81
90
|
exports.switchTypeAfterRefreshes = switchTypeAfterRefreshes;
|
|
91
|
+
exports.switchTypeOnUserRequest = switchTypeOnUserRequest;
|
|
@@ -66,8 +66,9 @@ var extraIpInfosFromEnrichedDnsEvent = (enriched) => {
|
|
|
66
66
|
*
|
|
67
67
|
* `pathValid` is a protocol signal, not a category — it always contributes
|
|
68
68
|
* regardless of trafficFilter. When `trafficFilter` is omitted, all
|
|
69
|
-
* datacenter / abuser flags count
|
|
70
|
-
* admin / diagnostic recompute
|
|
69
|
+
* datacenter / abuser flags count except iCloud Private Relay's datacenter
|
|
70
|
+
* flag (preserves the pre-gating behaviour for admin / diagnostic recompute
|
|
71
|
+
* callers).
|
|
71
72
|
*/
|
|
72
73
|
var computeDnsAsymmetry = (enriched, clientIpInfo, trafficFilter) => {
|
|
73
74
|
if (!enriched) return 0;
|
|
@@ -75,7 +76,7 @@ var computeDnsAsymmetry = (enriched, clientIpInfo, trafficFilter) => {
|
|
|
75
76
|
if (enriched.pathValid === false) score += .3;
|
|
76
77
|
const countDc = (ip) => {
|
|
77
78
|
if (!ip?.isValid || !ip.isDatacenter) return false;
|
|
78
|
-
if (!trafficFilter) return
|
|
79
|
+
if (!trafficFilter) return !require_checkTrafficFilter.isPrivateRelay(ip);
|
|
79
80
|
if (trafficFilter.datacenter === void 0) return false;
|
|
80
81
|
if (require_checkTrafficFilter.isDatacenterDenylisted(ip, trafficFilter.datacenterNameDenylist)) return true;
|
|
81
82
|
if (ip.isVPN && trafficFilter.vpn === void 0 || ip.isProxy && trafficFilter.proxy === void 0 || ip.isTor && trafficFilter.tor === void 0 || ip.isCrawler && trafficFilter.crawler === void 0) return false;
|
|
@@ -23,6 +23,7 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
|
|
|
23
23
|
constructor(db, pair, config, logger, writeQueue, decisionMachineRunner, usageCounters) {
|
|
24
24
|
super(db, pair, config, logger, writeQueue);
|
|
25
25
|
this.audioAlternativeEnabled = false;
|
|
26
|
+
this.imageSwitchRequested = false;
|
|
26
27
|
this.config = config;
|
|
27
28
|
this.decisionMachineRunner = decisionMachineRunner ?? new require_decisionMachineRunner.DecisionMachineRunner(db);
|
|
28
29
|
this.usageCounters = usageCounters ?? null;
|
|
@@ -49,6 +50,14 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
|
|
|
49
50
|
this.allowedCaptchaTypes = allowed;
|
|
50
51
|
}
|
|
51
52
|
/**
|
|
53
|
+
* Record that the user asked to swap their puzzle for an image challenge.
|
|
54
|
+
* Only call this once the request has been checked as a refresh of a
|
|
55
|
+
* puzzle on a site with the switch enabled.
|
|
56
|
+
*/
|
|
57
|
+
setImageSwitchRequested(requested) {
|
|
58
|
+
this.imageSwitchRequested = requested;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
52
61
|
* Evaluate the configured routing machine without going through
|
|
53
62
|
* `sendCaptcha`. Returns the supplied baseline on any failure (no machine,
|
|
54
63
|
* machine throws, counter fetch failure), matching applyRouter's contract.
|
|
@@ -259,13 +268,15 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
|
|
|
259
268
|
};
|
|
260
269
|
const routed = this.routingContext ? await require_routingMachine.applyRouter(this.decisionMachineRunner, this.usageCounters, baseline, this.routingContext, this.logger) : baseline;
|
|
261
270
|
const enabledCaptchaType = require_captchaTypeSelection.coerceToEnabledCaptchaType(routed.captchaType, this.allowedCaptchaTypes, this.logger);
|
|
262
|
-
const
|
|
263
|
-
const
|
|
271
|
+
const userSwitchedCaptchaType = require_captchaTypeSelection.switchTypeOnUserRequest(enabledCaptchaType, this.imageSwitchRequested, this.allowedCaptchaTypes);
|
|
272
|
+
const switchedByUser = userSwitchedCaptchaType !== enabledCaptchaType;
|
|
273
|
+
const finalCaptchaType = require_captchaTypeSelection.switchTypeAfterRefreshes(userSwitchedCaptchaType, effectiveParams.refreshCount, this.allowedCaptchaTypes);
|
|
274
|
+
const switchedByRefreshes = finalCaptchaType !== userSwitchedCaptchaType;
|
|
264
275
|
const requestedSolvedImagesCount = routed.solvedImagesCount ?? effectiveParams.solvedImagesCount;
|
|
265
276
|
const imageRoundsBounds = this.routingContext ?? {};
|
|
266
277
|
const finalSolvedImagesCount = finalCaptchaType === _prosopo_types.CaptchaType.image ? requestedSolvedImagesCount !== void 0 ? (0, _prosopo_types.clampImageRounds)(requestedSolvedImagesCount, imageRoundsBounds) : requestedSolvedImagesCount : void 0;
|
|
267
278
|
const finalPowDifficulty = finalCaptchaType === _prosopo_types.CaptchaType.pow ? routed.powDifficulty ?? effectiveParams.powDifficulty : void 0;
|
|
268
|
-
const finalReason = switchedByRefreshes ? _prosopo_types.FrictionlessReason.PUZZLE_REFRESH_LIMIT : routed.reason ?? effectiveParams.reason;
|
|
279
|
+
const finalReason = switchedByUser ? _prosopo_types.FrictionlessReason.PUZZLE_USER_SWITCH : switchedByRefreshes ? _prosopo_types.FrictionlessReason.PUZZLE_REFRESH_LIMIT : routed.reason ?? effectiveParams.reason;
|
|
269
280
|
const finalPuzzleOverrides = finalCaptchaType === _prosopo_types.CaptchaType.puzzle ? (() => {
|
|
270
281
|
const maxLevel = (0, _prosopo_captcha_severity.resolveMaxEscalationLevel)(this.routingContext?.puzzleMaxDifficulty ?? _prosopo_types.puzzleMaxDifficultyDefault, this.routingContext?.platform.isMobile ?? false);
|
|
271
282
|
const level = finalReason !== void 0 && _prosopo_types.NO_MEASUREMENT_REASONS.has(finalReason) ? 0 : (0, _prosopo_captcha_severity.severityToPuzzleDifficulty)(requestedSolvedImagesCount, this.routingContext?.baseImageRounds ?? this.config.captchas.solved.count, maxLevel);
|
|
@@ -27,7 +27,9 @@ var matchesDatacenterNameList = (ipInfo, list) => {
|
|
|
27
27
|
const normalisedList = list.map((entry) => entry.trim().toLowerCase());
|
|
28
28
|
return candidates.some((c) => normalisedList.includes(c));
|
|
29
29
|
};
|
|
30
|
-
var
|
|
30
|
+
var DEFAULT_DATACENTER_ALLOWLIST = ["iCloud Private Relay"];
|
|
31
|
+
var isPrivateRelay = (ipInfo) => matchesDatacenterNameList(ipInfo, DEFAULT_DATACENTER_ALLOWLIST);
|
|
32
|
+
var isDatacenterAllowlisted = (ipInfo, allowlist) => isPrivateRelay(ipInfo) || matchesDatacenterNameList(ipInfo, allowlist);
|
|
31
33
|
var isDatacenterDenylisted = (ipInfo, denylist) => matchesDatacenterNameList(ipInfo, denylist);
|
|
32
34
|
var isEffectivelyDatacenter = (ipInfo, trafficFilter) => {
|
|
33
35
|
if (!ipInfo.isDatacenter) return false;
|
|
@@ -59,6 +61,7 @@ var evaluateIpInfo = (ipInfo, trafficFilter, isDnsExtra = false) => {
|
|
|
59
61
|
push(matches, "datacenter", trafficFilter.datacenter);
|
|
60
62
|
return matches;
|
|
61
63
|
}
|
|
64
|
+
if (ipInfo.isDatacenter && isPrivateRelay(ipInfo)) return matches;
|
|
62
65
|
if (ipInfo.isAbuser) {
|
|
63
66
|
const threshold = trafficFilter.abuserScoreThreshold ?? _prosopo_types.trafficFilterAbuserScoreThresholdDefault;
|
|
64
67
|
if (Math.max(ipInfo.abuserScore ?? 0, ipInfo.companyAbuserScore ?? 0) >= threshold) {
|
|
@@ -103,9 +106,9 @@ var evaluateIpInfo = (ipInfo, trafficFilter, isDnsExtra = false) => {
|
|
|
103
106
|
* crawlers.
|
|
104
107
|
*
|
|
105
108
|
* Datacenter name lists: `datacenterNameAllowlist` lets operators opt named
|
|
106
|
-
* consumer relays (
|
|
107
|
-
* `datacenterNameDenylist` opts named providers back in
|
|
108
|
-
* heuristic would exempt them.
|
|
109
|
+
* consumer relays out of the datacenter rule (iCloud Private Relay is out by
|
|
110
|
+
* default); `datacenterNameDenylist` opts named providers back in, including
|
|
111
|
+
* iCloud Private Relay, and even when the ISP heuristic would exempt them.
|
|
109
112
|
*
|
|
110
113
|
* When `trafficFilter.skipExtrasOnValidDnsPath` is on and the catcher
|
|
111
114
|
* confirmed the DNS path matched the connection path (`pathValid: true`),
|
|
@@ -198,5 +201,6 @@ exports.checkTrafficFilter = checkTrafficFilter;
|
|
|
198
201
|
exports.isDatacenterAllowlisted = isDatacenterAllowlisted;
|
|
199
202
|
exports.isDatacenterDenylisted = isDatacenterDenylisted;
|
|
200
203
|
exports.isEffectivelyDatacenter = isEffectivelyDatacenter;
|
|
204
|
+
exports.isPrivateRelay = isPrivateRelay;
|
|
201
205
|
exports.resolveChallengePolicy = resolveChallengePolicy;
|
|
202
206
|
exports.resolvePadBytes = resolvePadBytes;
|
|
@@ -4,4 +4,5 @@ export type ConcreteCaptchaType = CaptchaType.pow | CaptchaType.image | CaptchaT
|
|
|
4
4
|
export declare const coerceToEnabledCaptchaType: (requested: ConcreteCaptchaType, allowedTypes: Partial<IFrictionlessTypes> | undefined, logger?: Logger) => ConcreteCaptchaType;
|
|
5
5
|
export declare const PUZZLE_REFRESHES_BEFORE_IMAGE = 3;
|
|
6
6
|
export declare const switchTypeAfterRefreshes: (resolved: ConcreteCaptchaType, refreshCount: number | undefined, allowedTypes: Partial<IFrictionlessTypes> | undefined) => ConcreteCaptchaType;
|
|
7
|
+
export declare const switchTypeOnUserRequest: (resolved: ConcreteCaptchaType, switchToImage: boolean | undefined, allowedTypes: Partial<IFrictionlessTypes> | undefined) => ConcreteCaptchaType;
|
|
7
8
|
//# sourceMappingURL=captchaTypeSelection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"captchaTypeSelection.d.ts","sourceRoot":"","sources":["../../src/tasks/captchaTypeSelection.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EACN,WAAW,EACX,KAAK,kBAAkB,EAGvB,MAAM,gBAAgB,CAAC;AAIxB,MAAM,MAAM,mBAAmB,GAC5B,WAAW,CAAC,GAAG,GACf,WAAW,CAAC,KAAK,GACjB,WAAW,CAAC,MAAM,GAClB,WAAW,CAAC,SAAS,CAAC;AA4BzB,eAAO,MAAM,0BAA0B,cAC3B,mBAAmB,gBAChB,OAAO,CAAC,kBAAkB,CAAC,GAAG,SAAS,WAC5C,MAAM,KACb,mBAiDF,CAAC;AAMF,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAiB/C,eAAO,MAAM,wBAAwB,aAC1B,mBAAmB,gBACf,MAAM,GAAG,SAAS,gBAClB,OAAO,CAAC,kBAAkB,CAAC,GAAG,SAAS,KACnD,mBAKS,CAAC"}
|
|
1
|
+
{"version":3,"file":"captchaTypeSelection.d.ts","sourceRoot":"","sources":["../../src/tasks/captchaTypeSelection.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EACN,WAAW,EACX,KAAK,kBAAkB,EAGvB,MAAM,gBAAgB,CAAC;AAIxB,MAAM,MAAM,mBAAmB,GAC5B,WAAW,CAAC,GAAG,GACf,WAAW,CAAC,KAAK,GACjB,WAAW,CAAC,MAAM,GAClB,WAAW,CAAC,SAAS,CAAC;AA4BzB,eAAO,MAAM,0BAA0B,cAC3B,mBAAmB,gBAChB,OAAO,CAAC,kBAAkB,CAAC,GAAG,SAAS,WAC5C,MAAM,KACb,mBAiDF,CAAC;AAMF,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAiB/C,eAAO,MAAM,wBAAwB,aAC1B,mBAAmB,gBACf,MAAM,GAAG,SAAS,gBAClB,OAAO,CAAC,kBAAkB,CAAC,GAAG,SAAS,KACnD,mBAKS,CAAC;AAUb,eAAO,MAAM,uBAAuB,aACzB,mBAAmB,iBACd,OAAO,GAAG,SAAS,gBACpB,OAAO,CAAC,kBAAkB,CAAC,GAAG,SAAS,KACnD,mBAKS,CAAC"}
|
|
@@ -76,5 +76,14 @@ var coerceToEnabledCaptchaType = (requested, allowedTypes, logger) => {
|
|
|
76
76
|
* turned off is exactly what `coerceToEnabledCaptchaType` exists to stop.
|
|
77
77
|
*/
|
|
78
78
|
var switchTypeAfterRefreshes = (resolved, refreshCount, allowedTypes) => CaptchaType.puzzle === resolved && (refreshCount ?? 0) >= 3 && resolveFrictionlessTypes(allowedTypes).image ? CaptchaType.image : resolved;
|
|
79
|
+
/**
|
|
80
|
+
* Swap a puzzle for an image challenge because the user asked for one.
|
|
81
|
+
*
|
|
82
|
+
* Same one-way rule as `switchTypeAfterRefreshes`: the request is
|
|
83
|
+
* client-reported, so it may only ever earn a harder challenge. Whatever the
|
|
84
|
+
* routing settled on other than a puzzle stands, and so does a site that may
|
|
85
|
+
* not be served image challenges.
|
|
86
|
+
*/
|
|
87
|
+
var switchTypeOnUserRequest = (resolved, switchToImage, allowedTypes) => CaptchaType.puzzle === resolved && true === switchToImage && resolveFrictionlessTypes(allowedTypes).image ? CaptchaType.image : resolved;
|
|
79
88
|
//#endregion
|
|
80
|
-
export { coerceToEnabledCaptchaType, switchTypeAfterRefreshes };
|
|
89
|
+
export { coerceToEnabledCaptchaType, switchTypeAfterRefreshes, switchTypeOnUserRequest };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"captchaTypeSelection.js","sourceRoot":"","sources":["../../src/tasks/captchaTypeSelection.ts"],"names":[],"mappings":"AAeA,OAAO,EACN,WAAW,EAEX,0BAA0B,EAC1B,wBAAwB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAmCrE,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACzC,SAA8B,EAC9B,YAAqD,EACrD,MAAe,EACO,EAAE;IACxB,MAAM,KAAK,GAAG,YAAY;QACzB,CAAC,CAAC,wBAAwB,CAAC,YAAY,CAAC;QACxC,CAAC,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;IAKzC,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,IAAI,uBAAuB,EAAE,CAAC;IAChE,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;IACjC,MAAM,gBAAgB,GAAG,KAAK,CAAC,SAAS,CAAC;IAEzC,MAAM,QAAQ,GAAG,CAAC,GAAwB,EAAE;QAC3C,QAAQ,SAAS,EAAE,CAAC;YACnB,KAAK,WAAW,CAAC,GAAG;gBAGnB,OAAO,WAAW,CAAC,GAAG,CAAC;YACxB,KAAK,WAAW,CAAC,MAAM;gBACtB,IAAI,aAAa;oBAAE,OAAO,WAAW,CAAC,MAAM,CAAC;gBAC7C,OAAO,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC;YAC3D,KAAK,WAAW,CAAC,KAAK;gBACrB,IAAI,YAAY;oBAAE,OAAO,WAAW,CAAC,KAAK,CAAC;gBAC3C,OAAO,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC;YAI7D,KAAK,WAAW,CAAC,SAAS;gBACzB,IAAI,gBAAgB;oBAAE,OAAO,WAAW,CAAC,SAAS,CAAC;gBACnD,IAAI,aAAa;oBAAE,OAAO,WAAW,CAAC,MAAM,CAAC;gBAC7C,OAAO,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC;QAC5D,CAAC;IACF,CAAC,CAAC,EAAE,CAAC;IAEL,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACnB,GAAG,EAAE,yCAAyC;YAC9C,IAAI,EAAE;gBACL,SAAS;gBACT,MAAM,EAAE,QAAQ;gBAChB,YAAY,EAAE,KAAK,CAAC,KAAK;gBACzB,aAAa,EAAE,KAAK,CAAC,MAAM;gBAC3B,gBAAgB,EAAE,uBAAuB,EAAE;gBAC3C,gBAAgB,EAAE,KAAK,CAAC,SAAS;aACjC;SACD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC,CAAC;AAMF,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC;AAiB/C,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACvC,QAA6B,EAC7B,YAAgC,EAChC,YAAqD,EAC/B,EAAE,CACxB,WAAW,CAAC,MAAM,KAAK,QAAQ;IAC/B,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,6BAA6B;IACpD,wBAAwB,CAAC,YAAY,CAAC,CAAC,KAAK;IAC3C,CAAC,CAAC,WAAW,CAAC,KAAK;IACnB,CAAC,CAAC,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"captchaTypeSelection.js","sourceRoot":"","sources":["../../src/tasks/captchaTypeSelection.ts"],"names":[],"mappings":"AAeA,OAAO,EACN,WAAW,EAEX,0BAA0B,EAC1B,wBAAwB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAmCrE,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACzC,SAA8B,EAC9B,YAAqD,EACrD,MAAe,EACO,EAAE;IACxB,MAAM,KAAK,GAAG,YAAY;QACzB,CAAC,CAAC,wBAAwB,CAAC,YAAY,CAAC;QACxC,CAAC,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;IAKzC,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,IAAI,uBAAuB,EAAE,CAAC;IAChE,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;IACjC,MAAM,gBAAgB,GAAG,KAAK,CAAC,SAAS,CAAC;IAEzC,MAAM,QAAQ,GAAG,CAAC,GAAwB,EAAE;QAC3C,QAAQ,SAAS,EAAE,CAAC;YACnB,KAAK,WAAW,CAAC,GAAG;gBAGnB,OAAO,WAAW,CAAC,GAAG,CAAC;YACxB,KAAK,WAAW,CAAC,MAAM;gBACtB,IAAI,aAAa;oBAAE,OAAO,WAAW,CAAC,MAAM,CAAC;gBAC7C,OAAO,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC;YAC3D,KAAK,WAAW,CAAC,KAAK;gBACrB,IAAI,YAAY;oBAAE,OAAO,WAAW,CAAC,KAAK,CAAC;gBAC3C,OAAO,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC;YAI7D,KAAK,WAAW,CAAC,SAAS;gBACzB,IAAI,gBAAgB;oBAAE,OAAO,WAAW,CAAC,SAAS,CAAC;gBACnD,IAAI,aAAa;oBAAE,OAAO,WAAW,CAAC,MAAM,CAAC;gBAC7C,OAAO,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC;QAC5D,CAAC;IACF,CAAC,CAAC,EAAE,CAAC;IAEL,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACnB,GAAG,EAAE,yCAAyC;YAC9C,IAAI,EAAE;gBACL,SAAS;gBACT,MAAM,EAAE,QAAQ;gBAChB,YAAY,EAAE,KAAK,CAAC,KAAK;gBACzB,aAAa,EAAE,KAAK,CAAC,MAAM;gBAC3B,gBAAgB,EAAE,uBAAuB,EAAE;gBAC3C,gBAAgB,EAAE,KAAK,CAAC,SAAS;aACjC;SACD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC,CAAC;AAMF,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC;AAiB/C,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACvC,QAA6B,EAC7B,YAAgC,EAChC,YAAqD,EAC/B,EAAE,CACxB,WAAW,CAAC,MAAM,KAAK,QAAQ;IAC/B,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,6BAA6B;IACpD,wBAAwB,CAAC,YAAY,CAAC,CAAC,KAAK;IAC3C,CAAC,CAAC,WAAW,CAAC,KAAK;IACnB,CAAC,CAAC,QAAQ,CAAC;AAUb,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACtC,QAA6B,EAC7B,aAAkC,EAClC,YAAqD,EAC/B,EAAE,CACxB,WAAW,CAAC,MAAM,KAAK,QAAQ;IAC/B,IAAI,KAAK,aAAa;IACtB,wBAAwB,CAAC,YAAY,CAAC,CAAC,KAAK;IAC3C,CAAC,CAAC,WAAW,CAAC,KAAK;IACnB,CAAC,CAAC,QAAQ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enrichDnsEvent.d.ts","sourceRoot":"","sources":["../../../src/tasks/dnsEvent/enrichDnsEvent.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EACX,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,OAAO,EACP,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"enrichDnsEvent.d.ts","sourceRoot":"","sources":["../../../src/tasks/dnsEvent/enrichDnsEvent.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EACX,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,OAAO,EACP,MAAM,gBAAgB,CAAC;AAQxB,YAAY,EAAE,gBAAgB,EAAE,CAAC;AAEjC,eAAO,MAAM,cAAc,aAChB,OAAO,CAAC,UAAU,CAAC,GAAG,SAAS,iBAC1B,cAAc,cACjB,MAAM,KAChB,OAAO,CAAC,gBAAgB,GAAG,SAAS,CA8BtC,CAAC;AAEF,eAAO,MAAM,YAAY,SAClB,cAAc,GAAG,SAAS,KAC9B,MAAM,GAAG,SAAyD,CAAC;AAEtE,eAAO,MAAM,gCAAgC,aAClC,gBAAgB,GAAG,SAAS,KACpC,cAAc,EAMhB,CAAC;AAoCF,eAAO,MAAM,mBAAmB,aACrB,gBAAgB,GAAG,SAAS,gBACxB,cAAc,GAAG,SAAS,kBACxB,OAAO,CAAC,cAAc,CAAC,KACrC,MA0DF,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isDatacenterAllowlisted, isDatacenterDenylisted } from "../spam/checkTrafficFilter.js";
|
|
1
|
+
import { isDatacenterAllowlisted, isDatacenterDenylisted, isPrivateRelay } from "../spam/checkTrafficFilter.js";
|
|
2
2
|
import { trafficFilterAbuserScoreThresholdDefault } from "@prosopo/types";
|
|
3
3
|
//#region src/tasks/dnsEvent/enrichDnsEvent.ts
|
|
4
4
|
var enrichDnsEvent = async (dnsEvent, ipInfoService, primaryIp) => {
|
|
@@ -66,8 +66,9 @@ var extraIpInfosFromEnrichedDnsEvent = (enriched) => {
|
|
|
66
66
|
*
|
|
67
67
|
* `pathValid` is a protocol signal, not a category — it always contributes
|
|
68
68
|
* regardless of trafficFilter. When `trafficFilter` is omitted, all
|
|
69
|
-
* datacenter / abuser flags count
|
|
70
|
-
* admin / diagnostic recompute
|
|
69
|
+
* datacenter / abuser flags count except iCloud Private Relay's datacenter
|
|
70
|
+
* flag (preserves the pre-gating behaviour for admin / diagnostic recompute
|
|
71
|
+
* callers).
|
|
71
72
|
*/
|
|
72
73
|
var computeDnsAsymmetry = (enriched, clientIpInfo, trafficFilter) => {
|
|
73
74
|
if (!enriched) return 0;
|
|
@@ -75,7 +76,7 @@ var computeDnsAsymmetry = (enriched, clientIpInfo, trafficFilter) => {
|
|
|
75
76
|
if (enriched.pathValid === false) score += .3;
|
|
76
77
|
const countDc = (ip) => {
|
|
77
78
|
if (!ip?.isValid || !ip.isDatacenter) return false;
|
|
78
|
-
if (!trafficFilter) return
|
|
79
|
+
if (!trafficFilter) return !isPrivateRelay(ip);
|
|
79
80
|
if (trafficFilter.datacenter === void 0) return false;
|
|
80
81
|
if (isDatacenterDenylisted(ip, trafficFilter.datacenterNameDenylist)) return true;
|
|
81
82
|
if (ip.isVPN && trafficFilter.vpn === void 0 || ip.isProxy && trafficFilter.proxy === void 0 || ip.isTor && trafficFilter.tor === void 0 || ip.isCrawler && trafficFilter.crawler === void 0) return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enrichDnsEvent.js","sourceRoot":"","sources":["../../../src/tasks/dnsEvent/enrichDnsEvent.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,wCAAwC,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EACN,uBAAuB,EACvB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"enrichDnsEvent.js","sourceRoot":"","sources":["../../../src/tasks/dnsEvent/enrichDnsEvent.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,12 +19,14 @@ export declare class FrictionlessManager extends CaptchaManager {
|
|
|
19
19
|
private routingContext?;
|
|
20
20
|
private audioAlternativeEnabled;
|
|
21
21
|
private allowedCaptchaTypes?;
|
|
22
|
+
private imageSwitchRequested;
|
|
22
23
|
private readonly decisionMachineRunner;
|
|
23
24
|
private readonly usageCounters;
|
|
24
25
|
constructor(db: IProviderDatabase, pair: KeyringPair, config: ProsopoConfigOutput, logger?: Logger, writeQueue?: import("@prosopo/database").RedisWriteQueue | null, decisionMachineRunner?: DecisionMachineRunner, usageCounters?: UsageCounters | null);
|
|
25
26
|
setRoutingContext(ctx: RoutingContext): void;
|
|
26
27
|
setAudioAlternativeEnabled(enabled: boolean): void;
|
|
27
28
|
setAllowedCaptchaTypes(allowed: IFrictionlessTypes): void;
|
|
29
|
+
setImageSwitchRequested(requested: boolean): void;
|
|
28
30
|
applyRoutingMachine(baseline: RoutingMachineBaseline, ctx: RoutingContext): Promise<RoutingMachineOutput>;
|
|
29
31
|
setSessionParams(params: Omit<Session, "sessionId" | "createdAt" | "captchaType">): void;
|
|
30
32
|
setMatchedRule(matchedRule: Session["matchedRule"]): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frictionlessTasks.d.ts","sourceRoot":"","sources":["../../../src/tasks/frictionless/frictionlessTasks.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAGN,KAAK,kBAAkB,EAEvB,kBAAkB,EAClB,KAAK,8BAA8B,EACnC,KAAK,kBAAkB,EACvB,KAAK,cAAc,EAEnB,KAAK,WAAW,EAEhB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,OAAO,EAIZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAKhE,OAAO,EACN,KAAK,aAAa,EAElB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"frictionlessTasks.d.ts","sourceRoot":"","sources":["../../../src/tasks/frictionless/frictionlessTasks.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import { CaptchaManager } from "../captchaManager.js";
|
|
|
6
6
|
import { DecisionMachineRunner } from "../decisionMachine/decisionMachineRunner.js";
|
|
7
7
|
import { buildDnsEventUrl } from "../../api/dnsEventUrl.js";
|
|
8
8
|
import { checkLangRules } from "../../rules/lang.js";
|
|
9
|
-
import { coerceToEnabledCaptchaType, switchTypeAfterRefreshes } from "../captchaTypeSelection.js";
|
|
9
|
+
import { coerceToEnabledCaptchaType, switchTypeAfterRefreshes, switchTypeOnUserRequest } from "../captchaTypeSelection.js";
|
|
10
10
|
import { getBotScore } from "../detection/getBotScore.js";
|
|
11
11
|
import { samplePuzzleDifficulty } from "../puzzle/puzzleDifficulty.js";
|
|
12
12
|
import { ipMatchesSession } from "./ipMatch.js";
|
|
@@ -23,6 +23,7 @@ var FrictionlessManager = class extends CaptchaManager {
|
|
|
23
23
|
constructor(db, pair, config, logger, writeQueue, decisionMachineRunner, usageCounters) {
|
|
24
24
|
super(db, pair, config, logger, writeQueue);
|
|
25
25
|
this.audioAlternativeEnabled = false;
|
|
26
|
+
this.imageSwitchRequested = false;
|
|
26
27
|
this.config = config;
|
|
27
28
|
this.decisionMachineRunner = decisionMachineRunner ?? new DecisionMachineRunner(db);
|
|
28
29
|
this.usageCounters = usageCounters ?? null;
|
|
@@ -49,6 +50,14 @@ var FrictionlessManager = class extends CaptchaManager {
|
|
|
49
50
|
this.allowedCaptchaTypes = allowed;
|
|
50
51
|
}
|
|
51
52
|
/**
|
|
53
|
+
* Record that the user asked to swap their puzzle for an image challenge.
|
|
54
|
+
* Only call this once the request has been checked as a refresh of a
|
|
55
|
+
* puzzle on a site with the switch enabled.
|
|
56
|
+
*/
|
|
57
|
+
setImageSwitchRequested(requested) {
|
|
58
|
+
this.imageSwitchRequested = requested;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
52
61
|
* Evaluate the configured routing machine without going through
|
|
53
62
|
* `sendCaptcha`. Returns the supplied baseline on any failure (no machine,
|
|
54
63
|
* machine throws, counter fetch failure), matching applyRouter's contract.
|
|
@@ -259,13 +268,15 @@ var FrictionlessManager = class extends CaptchaManager {
|
|
|
259
268
|
};
|
|
260
269
|
const routed = this.routingContext ? await applyRouter(this.decisionMachineRunner, this.usageCounters, baseline, this.routingContext, this.logger) : baseline;
|
|
261
270
|
const enabledCaptchaType = coerceToEnabledCaptchaType(routed.captchaType, this.allowedCaptchaTypes, this.logger);
|
|
262
|
-
const
|
|
263
|
-
const
|
|
271
|
+
const userSwitchedCaptchaType = switchTypeOnUserRequest(enabledCaptchaType, this.imageSwitchRequested, this.allowedCaptchaTypes);
|
|
272
|
+
const switchedByUser = userSwitchedCaptchaType !== enabledCaptchaType;
|
|
273
|
+
const finalCaptchaType = switchTypeAfterRefreshes(userSwitchedCaptchaType, effectiveParams.refreshCount, this.allowedCaptchaTypes);
|
|
274
|
+
const switchedByRefreshes = finalCaptchaType !== userSwitchedCaptchaType;
|
|
264
275
|
const requestedSolvedImagesCount = routed.solvedImagesCount ?? effectiveParams.solvedImagesCount;
|
|
265
276
|
const imageRoundsBounds = this.routingContext ?? {};
|
|
266
277
|
const finalSolvedImagesCount = finalCaptchaType === CaptchaType.image ? requestedSolvedImagesCount !== void 0 ? clampImageRounds(requestedSolvedImagesCount, imageRoundsBounds) : requestedSolvedImagesCount : void 0;
|
|
267
278
|
const finalPowDifficulty = finalCaptchaType === CaptchaType.pow ? routed.powDifficulty ?? effectiveParams.powDifficulty : void 0;
|
|
268
|
-
const finalReason = switchedByRefreshes ? FrictionlessReason$1.PUZZLE_REFRESH_LIMIT : routed.reason ?? effectiveParams.reason;
|
|
279
|
+
const finalReason = switchedByUser ? FrictionlessReason$1.PUZZLE_USER_SWITCH : switchedByRefreshes ? FrictionlessReason$1.PUZZLE_REFRESH_LIMIT : routed.reason ?? effectiveParams.reason;
|
|
269
280
|
const finalPuzzleOverrides = finalCaptchaType === CaptchaType.puzzle ? (() => {
|
|
270
281
|
const maxLevel = resolveMaxEscalationLevel(this.routingContext?.puzzleMaxDifficulty ?? puzzleMaxDifficultyDefault, this.routingContext?.platform.isMobile ?? false);
|
|
271
282
|
const level = finalReason !== void 0 && NO_MEASUREMENT_REASONS.has(finalReason) ? 0 : severityToPuzzleDifficulty(requestedSolvedImagesCount, this.routingContext?.baseImageRounds ?? this.config.captchas.solved.count, maxLevel);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frictionlessTasks.js","sourceRoot":"","sources":["../../../src/tasks/frictionless/frictionlessTasks.ts"],"names":[],"mappings":"AAcA,OAAO,EACN,yBAAyB,EACzB,0BAA0B,GAC1B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EACN,SAAS,EACT,WAAW,EAEX,yBAAyB,EACzB,kBAAkB,EAMlB,sBAAsB,EAOtB,iBAAiB,EACjB,gBAAgB,EAChB,0BAA0B,GAC1B,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAEN,wBAAwB,GACxB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EACN,0BAA0B,EAC1B,wBAAwB,GACxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AACpF,OAAO,EAEN,WAAW,GACX,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAuB,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvE,MAAM,kBAAkB,GAAG,CAAC,IAAa,EAAU,EAAE;IACpD,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AACzD,CAAC,CAAC;AAEF,OAAO,EAAE,kBAAkB,EAAE,CAAC;AA4B9B,MAAM,OAAO,mBAAoB,SAAQ,cAAc;IAWtD,YACC,EAAqB,EACrB,IAAiB,EACjB,MAA2B,EAC3B,MAAe,EACf,UAA+D,EAC/D,qBAA6C,EAC7C,aAAoC;QAEpC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAdrC,4BAAuB,GAAG,KAAK,CAAC;QAevC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,qBAAqB;YACzB,qBAAqB,IAAI,IAAI,qBAAqB,CAAC,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,IAAI,CAAC;IAC5C,CAAC;IAOD,iBAAiB,CAAC,GAAmB;QACpC,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;IAC3B,CAAC;IAGD,0BAA0B,CAAC,OAAgB;QAC1C,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAC;IACxC,CAAC;IAQD,sBAAsB,CAAC,OAA2B;QACjD,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC;IACpC,CAAC;IAOD,KAAK,CAAC,mBAAmB,CACxB,QAAgC,EAChC,GAAmB;QAEnB,OAAO,WAAW,CACjB,IAAI,CAAC,qBAAqB,EAC1B,IAAI,CAAC,aAAa,EAClB,QAAQ,EACR,GAAG,EACH,IAAI,CAAC,MAAM,CACX,CAAC;IACH,CAAC;IAED,gBAAgB,CACf,MAAgE;QAEhE,IAAI,CAAC,aAAa,GAAG;YACpB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK;YAChC,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,KAAK;YAC9B,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;YAC3C,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,CAAC,EAAE,MAAM,CAAC,CAAC;YACX,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;YAC/C,GAAG,uBAAuB,CAAC,MAAM,CAAC;YAClC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;SACzC,CAAC;IACH,CAAC;IAMD,cAAc,CAAC,WAAmC;QACjD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,WAAW,CAAC;QAC9C,CAAC;IACF,CAAC;IAED,WAAW,CAAC,KAAa,EAAE,eAAgC;QAC1D,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,KAAK,CAAC;YACjC,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,eAAe,CAAC;QACtD,CAAC;IACF,CAAC;IAED,cAAc,CAAC,cAAsB;QACpC,OAAO,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAyB;QAI5C,MAAM,EACL,KAAK,EACL,KAAK,EACL,SAAS,EACT,eAAe,EACf,SAAS,EACT,WAAW,EACX,OAAO,EACP,IAAI,EACJ,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,MAAM,EACN,OAAO,EACP,OAAO,EACP,MAAM,EACN,OAAO,EACP,QAAQ,EACR,UAAU,EACV,SAAS,EACT,CAAC,EACD,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,eAAe,EACf,MAAM,EACN,kBAAkB,EAClB,SAAS,EACT,YAAY,EACZ,eAAe,EACf,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,cAAc,EACd,OAAO,GAAG,KAAK,EACf,MAAM,GAAG,KAAK,EACd,iBAAiB,GAAG,EAAE,GACtB,GAAG,KAAK,CAAC;QAEV,MAAM,aAAa,GAAY;YAC9B,SAAS,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE,EAAE;YAChE,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,KAAK;YACL,KAAK;YACL,SAAS;YACT,eAAe;YACf,SAAS;YACT,WAAW;YACX,IAAI;YACJ,iBAAiB;YACjB,aAAa;YACb,GAAG,CAAC,eAAe,KAAK,SAAS,IAAI,EAAE,eAAe,EAAE,CAAC;YACzD,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC;YACzB,GAAG,CAAC,kBAAkB,KAAK,SAAS,IAAI,EAAE,kBAAkB,EAAE,CAAC;YAC/D,GAAG,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;YAC/B,iBAAiB;YACjB,OAAO;YACP,MAAM;YACN,GAAG,CAAC,YAAY,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;YAC3C,GAAG,CAAC,eAAe,IAAI,EAAE,eAAe,EAAE,CAAC;YAC3C,GAAG,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;YAC/B,GAAG,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,CAAC;YACnD,GAAG,CAAC,gBAAgB,KAAK,SAAS,IAAI,EAAE,gBAAgB,EAAE,CAAC;YAC3D,iBAAiB;YACjB,QAAQ;YACR,MAAM;YACN,OAAO;YACP,UAAU;YACV,SAAS;YAGT,GAAG,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;YACrC,OAAO;YACP,OAAO;YACP,MAAM;YACN,OAAO;YACP,YAAY;YACZ,GAAG,CAAC,YAAY,IAAI;gBACnB,iBAAiB,EAAE,iBAAiB,CAAC,YAAY;aACjD,CAAC;YACF,CAAC;YACD,aAAa;YACb,mBAAmB;YACnB,GAAG,uBAAuB,CAAC,KAAK,CAAC;YACjC,GAAG,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,CAAC;YAGnC,GAAG,CAAC,cAAc,IAAI,EAAE,cAAc,EAAE,CAAC;SACzC,CAAC;QAEF,MAAM,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;QAMhD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,SAAS,GAAG,aAAmD,CAAC;YACtE,MAAM,aAAa,GAAuB;gBACzC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,CAAC;aAChE,CAAC;YACF,IAAI,iBAAiB,EAAE,CAAC;gBACvB,aAAa,CAAC,IAAI,CACjB,IAAI,CAAC,UAAU,CAAC,kBAAkB,CACjC,iBAAiB,EACjB,aAAa,CAAC,SAAS,CACvB,CACD,CAAC;YACH,CAAC;YACD,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,aAAa,CAAC;IACtB,CAAC;IAQD,KAAK,CAAC,0BAA0B,CAC/B,KAAa,EACb,SAA6B,EAC7B,eAAuB,EACvB,OAAe,EACf,iBAA0B,EAC1B,OAAwB,EACxB,MAAuB,EACvB,eAAwB;QAExB,MAAM,aAAa,GAAY;YAC9B,SAAS,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE,EAAE;YAChE,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,KAAK;YAGL,KAAK,EAAE,CAAC;YACR,SAAS,EAAE,CAAC;YACZ,eAAe,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE;YACjC,SAAS;YACT,WAAW,EAAE,WAAW,CAAC,aAAa;YACtC,iBAAiB;YACjB,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,KAAK;YACb,iBAAiB,EAAE,EAAE;YACrB,OAAO;YAGP,aAAa,EAAE,KAAK;YACpB,KAAK,EAAE,IAAI;YACX,eAAe;YACf,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC;YACzB,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,CAAC;YAC3B,GAAG,CAAC,eAAe,IAAI,EAAE,cAAc,EAAE,EAAE,eAAe,EAAE,EAAE,CAAC;SAC/D,CAAC;QAEF,MAAM,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;QAEhD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,SAAS,GAAG,aAAmD,CAAC;YACtE,MAAM,aAAa,GAAuB;gBACzC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,CAAC;aAChE,CAAC;YACF,IAAI,iBAAiB,EAAE,CAAC;gBACvB,aAAa,CAAC,IAAI,CACjB,IAAI,CAAC,UAAU,CAAC,kBAAkB,CACjC,iBAAiB,EACjB,aAAa,CAAC,SAAS,CACvB,CACD,CAAC;YACH,CAAC;YACD,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,aAAa,CAAC;IACtB,CAAC;IAQD,KAAK,CAAC,0BAA0B,CAC/B,SAAiB,EACjB,EAAsB,EACtB,eAAmC;QAEnC,IAAI,CAAC,EAAE,EAAE,CAAC;YACT,OAAO;gBACN,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,+BAA+B;aACvC,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,2BAA2B,CAAC,SAAS,CAAC,CAAC;QACrE,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,OAAO;gBACN,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,mCAAmC;aAC3C,CAAC;QACH,CAAC;QACD,IAAI,OAAO,CAAC,WAAW,KAAK,WAAW,CAAC,aAAa,EAAE,CAAC;YACvD,OAAO;gBACN,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,4BAA4B;aACpC,CAAC;QACH,CAAC;QACD,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAC3B,OAAO;gBACN,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,2BAA2B;aACnC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9C,OAAO;gBACN,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,+BAA+B;aACvC,CAAC;QACH,CAAC;QAKD,IACC,uBAAuB,CACtB,eAAe,EACf,OAAO,CAAC,cAAc,EAAE,eAAe,CACvC,EACA,CAAC;YACF,OAAO;gBACN,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,6BAA6B;aACrC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YACzD,OAAO;gBACN,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,2BAA2B;aACnC,CAAC;QACH,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,gBAAgB,CACrB,MAA2C;QAE3C,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,cAAc,CACnB,MAAyC;QAEzC,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,iBAAiB,CACtB,MAA4C;QAE5C,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,oBAAoB,CACzB,MAAyB;QAEzB,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAEO,KAAK,CAAC,WAAW,CACxB,WAIwB,EACxB,MAAyB;QAEzB,MAAM,eAAe,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,MAAM,EAAE,CAAC;QAC7D,IACC,CAAC,eAAe,CAAC,KAAK;YACtB,eAAe,CAAC,KAAK,KAAK,SAAS;YACnC,eAAe,CAAC,SAAS,KAAK,SAAS;YACvC,CAAC,eAAe,CAAC,eAAe;YAChC,CAAC,eAAe,CAAC,SAAS;YAC1B,eAAe,CAAC,OAAO,KAAK,SAAS,EACpC,CAAC;YACF,MAAM,IAAI,KAAK,CACd,mDAAmD,WAAW,UAAU,CACxE,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAA2B;YACxC,WAAW;YACX,iBAAiB,EAChB,WAAW,KAAK,WAAW,CAAC,KAAK;gBAChC,CAAC,CAAC,eAAe,CAAC,iBAAiB;gBACnC,CAAC,CAAC,SAAS;YACb,aAAa,EACZ,WAAW,KAAK,WAAW,CAAC,GAAG;gBAC9B,CAAC,CAAC,eAAe,CAAC,aAAa;gBAC/B,CAAC,CAAC,SAAS;SACb,CAAC;QACF,MAAM,MAAM,GAAyB,IAAI,CAAC,cAAc;YACvD,CAAC,CAAC,MAAM,WAAW,CACjB,IAAI,CAAC,qBAAqB,EAC1B,IAAI,CAAC,aAAa,EAClB,QAAQ,EACR,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,MAAM,CACX;YACF,CAAC,CAAC,QAAQ,CAAC;QAMZ,MAAM,kBAAkB,GAAG,0BAA0B,CACpD,MAAM,CAAC,WAAW,EAClB,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,MAAM,CACX,CAAC;QACF,MAAM,gBAAgB,GAAG,wBAAwB,CAChD,kBAAkB,EAClB,eAAe,CAAC,YAAY,EAC5B,IAAI,CAAC,mBAAmB,CACxB,CAAC;QACF,MAAM,mBAAmB,GAAG,gBAAgB,KAAK,kBAAkB,CAAC;QAIpE,MAAM,0BAA0B,GAC/B,MAAM,CAAC,iBAAiB,IAAI,eAAe,CAAC,iBAAiB,CAAC;QAI/D,MAAM,iBAAiB,GAAsB,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;QACvE,MAAM,sBAAsB,GAC3B,gBAAgB,KAAK,WAAW,CAAC,KAAK;YACrC,CAAC,CAAC,0BAA0B,KAAK,SAAS;gBACzC,CAAC,CAAC,gBAAgB,CAAC,0BAA0B,EAAE,iBAAiB,CAAC;gBACjE,CAAC,CAAC,0BAA0B;YAC7B,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,kBAAkB,GACvB,gBAAgB,KAAK,WAAW,CAAC,GAAG;YACnC,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,IAAI,eAAe,CAAC,aAAa,CAAC;YACzD,CAAC,CAAC,SAAS,CAAC;QAMd,MAAM,WAAW,GAAG,mBAAmB;YACtC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB;YACzC,CAAC,CAAC,CAAE,MAAM,CAAC,MAAyC;gBAClD,eAAe,CAAC,MAAyC,CAAC,CAAC;QAO9D,MAAM,oBAAoB,GACzB,gBAAgB,KAAK,WAAW,CAAC,MAAM;YACtC,CAAC,CAAC,CAAC,GAAG,EAAE;gBAGN,MAAM,QAAQ,GAAG,yBAAyB,CACzC,IAAI,CAAC,cAAc,EAAE,mBAAmB;oBACvC,0BAA0B,EAC3B,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,QAAQ,IAAI,KAAK,CAC/C,CAAC;gBAGF,MAAM,KAAK,GACV,WAAW,KAAK,SAAS;oBACzB,sBAAsB,CAAC,GAAG,CAAC,WAAW,CAAC;oBACtC,CAAC,CAAC,CAAC;oBACH,CAAC,CAAC,0BAA0B,CAC1B,0BAA0B,EAC1B,IAAI,CAAC,cAAc,EAAE,eAAe;wBACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAClC,QAAQ,CACR,CAAC;gBAIL,MAAM,UAAU,GACf,KAAK,GAAG,CAAC;oBACR,CAAC,CAAC,sBAAsB,CACtB,KAAK,EACL,uBAAuB,CAAC,UAAU,CAClC;oBACF,CAAC,CAAC,SAAS,CAAC;gBACd,MAAM,SAAS,GAAG,MAAM,CAAC,eAAe,IAAI,UAAU,EAAE,SAAS,CAAC;gBAClE,MAAM,MAAM,GACX,MAAM,CAAC,MAAM,IAAI,UAAU;oBAC1B,CAAC,CAAC,EAAE,GAAG,CAAC,UAAU,EAAE,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE;oBAC7D,CAAC,CAAC,SAAS,CAAC;gBACd,OAAO;oBACN,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC;oBAC9D,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,CAAC;oBACvC,GAAG,CAAC,UAAU,KAAK,SAAS,IAAI;wBAC/B,WAAW,EAAE,UAAU,CAAC,KAAK;qBAC7B,CAAC;iBACF,CAAC;YACH,CAAC,CAAC,EAAE;YACL,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,uBAAuB,GAI5B,gBAAgB,KAAK,WAAW,CAAC,SAAS;YACzC,CAAC,CAAC;gBACA,GAAG,CAAC,MAAM,CAAC,kBAAkB,KAAK,SAAS,IAAI;oBAC9C,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;iBAC7C,CAAC;gBACF,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;aACxD;YACF,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,OAAO,GACZ,gBAAgB,KAAK,WAAW,CAAC,KAAK;YACrC,CAAC,CAAC,eAAe,CAAC,OAAO;YACzB,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC;YAC9C,GAAG,eAAe;YAGlB,KAAK,EAAE,eAAe,CAAC,KAAK;YAC5B,KAAK,EAAE,eAAe,CAAC,KAAK;YAC5B,SAAS,EAAE,eAAe,CAAC,SAAS;YACpC,eAAe,EAAE,eAAe,CAAC,eAAe;YAChD,SAAS,EAAE,eAAe,CAAC,SAAS;YACpC,OAAO,EAAE,eAAe,CAAC,OAAO;YAChC,WAAW,EAAE,gBAAgB;YAC7B,iBAAiB,EAAE,sBAAsB;YACzC,aAAa,EAAE,kBAAkB;YACjC,MAAM,EAAE,WAAW;YACnB,OAAO;YACP,eAAe,EAAE,oBAAoB,CAAC,eAAe;YACrD,MAAM,EAAE,oBAAoB,CAAC,MAAM;YACnC,kBAAkB,EAAE,uBAAuB,CAAC,kBAAkB;YAC9D,SAAS,EAAE,uBAAuB,CAAC,SAAS;YAG5C,OAAO,EAAE,SAAS;YAClB,YAAY,EAAE,SAAS;YACvB,eAAe,EAAE,SAAS;SAC1B,CAAC,CAAC;QAIH,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC/C,IAAI,CAAC,aAAa,CAAC,aAAa,CAC/B,IAAI,CAAC,cAAc,CAAC,WAAW,EAC/B,wBAAwB,CACvB,QAAQ,EACR,gBAAgB,EAChB,IAAI,CAAC,cAAc,CAAC,EAAE,EACtB,IAAI,CAAC,cAAc,CAAC,WAAW,CAC/B,CACD,CAAC;QACH,CAAC;QAED,OAAO;YACN,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,gBAAgB;YACzC,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC,SAAS;YAC9C,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI;YACxB,OAAO,EAAE,gBAAgB,CAAC,aAAa,CAAC,SAAS,CAAC;YAClD,GAAG,CAAC,sBAAsB,CACzB,gBAAgB,EAChB,IAAI,CAAC,uBAAuB,CAC5B,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,CAAC;SACzC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,sBAAsB,CAC3B,MAA2C;QAE3C,MAAM,eAAe,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,MAAM,EAAE,CAAC;QAC7D,IACC,CAAC,eAAe,CAAC,KAAK;YACtB,eAAe,CAAC,KAAK,KAAK,SAAS;YACnC,eAAe,CAAC,SAAS,KAAK,SAAS;YACvC,CAAC,eAAe,CAAC,eAAe;YAChC,CAAC,eAAe,CAAC,SAAS;YAC1B,eAAe,CAAC,OAAO,KAAK,SAAS,EACpC,CAAC;YACF,MAAM,IAAI,KAAK,CACd,sEAAsE,CACtE,CAAC;QACH,CAAC;QAED,MAAM,IAAI,CAAC,aAAa,CAAC;YACxB,GAAG,eAAe;YAClB,KAAK,EAAE,eAAe,CAAC,KAAK;YAC5B,KAAK,EAAE,eAAe,CAAC,KAAK;YAC5B,SAAS,EAAE,eAAe,CAAC,SAAS;YACpC,eAAe,EAAE,eAAe,CAAC,eAAe;YAChD,SAAS,EAAE,eAAe,CAAC,SAAS;YACpC,OAAO,EAAE,eAAe,CAAC,OAAO;YAChC,WAAW,EAAE,WAAW,CAAC,KAAK;YAC9B,aAAa,EAAE,SAAS;YACxB,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;YACb,eAAe,EAAE,SAAS;YAC1B,MAAM,EAAE,SAAS;YACjB,kBAAkB,EAAE,SAAS;YAC7B,SAAS,EAAE,SAAS;YACpB,YAAY,EAAE,SAAS;YACvB,eAAe,EAAE,SAAS;SAC1B,CAAC,CAAC;IACJ,CAAC;IAED,yBAAyB,CACxB,YAAsC,EACtC,YAAoB,EACpB,QAAgB,EAChB,eAAgC;QAEhC,MAAM,mBAAmB,GACxB,YAAY,EAAE,iBAAiB;YAC/B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC;QAC3C,QAAQ,IAAI,mBAAmB,CAAC;QAChC,OAAO;YACN,KAAK,EAAE,QAAQ;YACf,eAAe,EAAE;gBAChB,GAAG,eAAe;gBAClB,YAAY,EAAE,mBAAmB;aACjC;SACD,CAAC;IACH,CAAC;IAED,oBAAoB,CACnB,YAAoB,EACpB,QAAgB,EAChB,eAAgC;QAEhC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YACxB,GAAG,EAAE,kBAAkB;SACvB,CAAC,CAAC,CAAC;QACJ,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC;QAClD,OAAO;YACN,KAAK,EAAE,QAAQ;YACf,eAAe,EAAE;gBAChB,GAAG,eAAe;gBAClB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe;aAC9C;SACD,CAAC;IACH,CAAC;IAED,sBAAsB,CACrB,SAAiB,EACjB,YAAoB,EACpB,QAAgB,EAChB,eAAgC;QAEhC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACvB,GAAG,EAAE,oCAAoC;YACzC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE;SACxC,CAAC,CAAC,CAAC;QACJ,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,qBAAqB,CAAC;QACxD,OAAO;YACN,KAAK,EAAE,QAAQ;YACf,eAAe,EAAE;gBAChB,GAAG,eAAe;gBAClB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,qBAAqB;aACpD;SACD,CAAC;IACH,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,SAAiB;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,GAAG,GAAG,SAAS,CAAC;QAC7B,OAAO,IAAI,GAAG,yBAAyB,CAAC;IACzC,CAAC;IAEO,mBAAmB,CAAC,GAA8B;QACzD,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,CAAC;QAEpB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CACvB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,EAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAC9B,CAAC;QACF,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1B,OAAO,GAAG,KAAK,MAAM,MAAM,MAAM,GAAG,EAAE,CAAC;IACxC,CAAC;IAQD,KAAK,CAAC,sBAAsB,CAAC,iBAA0B;QAStD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,8BAA8B,CAAC,iBAAiB,CAAC,CAAC;QAC5E,IAAI,MAAM,EAAE,CAAC;YACZ,OAAO;gBACN,QAAQ,EAAE;oBACT;wBACC,GAAG,EAAE,MAAM,CAAC,GAAG;wBACf,WAAW,EAAE,MAAM,CAAC,WAAW;wBAC/B,aAAa,EAAE,MAAM,CAAC,aAAa;wBACnC,MAAM,EAAE,MAAM,CAAC,MAAM;qBACrB;iBACD;gBACD,QAAQ,EAAE,MAAM,CAAC,QAAQ;aACzB,CAAC;QACH,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,cAAc,CACnB,KAAa,EACb,QAAgB,EAChB,iBAA0B;QAE1B,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,GACxC,MAAM,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;QAEtD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;YACtB,OAAO;gBACN,GAAG,EAAE,kBAAkB;gBACvB,IAAI,EAAE;oBACL,UAAU,EAAE,WAAW,CAAC,MAAM;oBAC9B,QAAQ;oBACR,WAAW,EAAE,QAAQ,KAAK,SAAS;iBACnC;aACD,CAAC;QACH,CAAC,CAAC,CAAC;QAMH,IAAI,SAA6C,CAAC;QAClD,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAC7B,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;YACzD,IAAI,CAAC;gBACJ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;oBACvB,GAAG,EAAE,6BAA6B;oBAClC,IAAI,EAAE;wBACL,GAAG,EAAE,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,CAAC;qBAC1C;iBACD,CAAC,CAAC,CAAC;gBACJ,MAAM,MAAM,GAAG,MAAM,WAAW,CAC/B,KAAK,EACL,QAAQ,EACR,OAAO,CAAC,GAAG,EACX,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,aAAa,EACrB,OAAO,CAAC,MAAM,CACd,CAAC;gBACF,SAAS,GAAG,MAAM,CAAC;gBACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;oBACxB,GAAG,EAAE,8BAA8B;oBACnC,IAAI,EAAE;wBACL,GAAG,EAAE,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,CAAC;wBAC1C,YAAY,EAAE,MAAM,CAAC,YAAY;wBACjC,SAAS,EAAE,MAAM,CAAC,SAAS;wBAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,SAAS,EAAE,MAAM,CAAC,SAAS;wBAC3B,OAAO,EAAE,MAAM,CAAC,SAAS;wBACzB,MAAM,EAAE,MAAM,CAAC,QAAQ;wBACvB,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;wBAC7C,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;wBAGzC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;qBACzC;iBACD,CAAC,CAAC,CAAC;gBACJ,MAAM;YACP,CAAC;YAAC,MAAM,CAAC;gBACR,IAAI,QAAQ,KAAK,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;wBACvB,GAAG,EAAE,6CAA6C;qBAClD,CAAC,CAAC,CAAC;gBACL,CAAC;YACF,CAAC;QACF,CAAC;QAED,IAAI,YAAY,GAAG,SAAS,EAAE,YAAY,CAAC;QAC3C,IAAI,SAAS,GAAG,SAAS,EAAE,SAAS,CAAC;QACrC,IAAI,iBAAiB,GAAG,SAAS,EAAE,iBAAiB,IAAI,EAAE,CAAC;QAC3D,IACC,YAAY,KAAK,SAAS;YAC1B,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;YAC1B,SAAS,KAAK,SAAS;YACvB,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EACtB,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;gBACxB,GAAG,EAAE,gEAAgE;aACrE,CAAC,CAAC,CAAC;YACJ,YAAY,GAAG,CAAC,CAAC;YACjB,SAAS,GAAG,CAAC,CAAC;YACd,iBAAiB,GAAG,EAAE,CAAC;YACvB,gBAAgB,GAAG,IAAI,CAAC;QACzB,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACvB,GAAG,EAAE,uBAAuB;YAC5B,IAAI,EAAE;gBACL,YAAY;gBACZ,SAAS;gBACT,MAAM,EAAE,SAAS,EAAE,MAAM;gBACzB,SAAS,EAAE,SAAS,EAAE,SAAS;gBAC/B,OAAO,EAAE,SAAS,EAAE,SAAS;gBAC7B,MAAM,EAAE,SAAS,EAAE,QAAQ;gBAC3B,iBAAiB;gBACjB,gBAAgB;gBAChB,gBAAgB,EAAE,SAAS,EAAE,gBAAgB;gBAC7C,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC;aAC7C;SACD,CAAC,CAAC,CAAC;QAEJ,OAAO;YACN,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC;YAClC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC;YAC5B,MAAM,EAAE,SAAS,EAAE,MAAM;YACzB,SAAS,EAAE,SAAS,EAAE,SAAS;YAC/B,OAAO,EAAE,SAAS,EAAE,SAAS,IAAI,KAAK;YACtC,MAAM,EAAE,SAAS,EAAE,QAAQ,IAAI,KAAK;YACpC,iBAAiB;YACjB,gBAAgB;YAChB,kBAAkB,EAAE,SAAS,EAAE,kBAAkB;YACjD,gBAAgB,EAAE,SAAS,EAAE,gBAAgB;YAC7C,CAAC,EAAE,SAAS,EAAE,CAAC;YAGf,QAAQ;SACR,CAAC;IACH,CAAC;CACD"}
|
|
1
|
+
{"version":3,"file":"frictionlessTasks.js","sourceRoot":"","sources":["../../../src/tasks/frictionless/frictionlessTasks.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@ export type TrafficCheckResult = {
|
|
|
15
15
|
matches: TrafficFilterMatch[];
|
|
16
16
|
};
|
|
17
17
|
export declare const categoryToReason: (category: TrafficCategory) => TrafficBlockReason;
|
|
18
|
+
export declare const isPrivateRelay: (ipInfo: IPInfoResult) => boolean;
|
|
18
19
|
export declare const isDatacenterAllowlisted: (ipInfo: IPInfoResult, allowlist: ReadonlyArray<string> | undefined) => boolean;
|
|
19
20
|
export declare const isDatacenterDenylisted: (ipInfo: IPInfoResult, denylist: ReadonlyArray<string> | undefined) => boolean;
|
|
20
21
|
export declare const isEffectivelyDatacenter: (ipInfo: IPInfoResult, trafficFilter: Partial<ITrafficFilter>) => boolean;
|