@skastr0/pulsar-ts-pack 0.1.0 → 0.1.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/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/pack.d.ts.map +1 -1
- package/dist/pack.js +8 -0
- package/dist/pack.js.map +1 -1
- package/dist/signals/ts-ad-04-boundary-parser-coverage.d.ts +47 -0
- package/dist/signals/ts-ad-04-boundary-parser-coverage.d.ts.map +1 -0
- package/dist/signals/ts-ad-04-boundary-parser-coverage.js +269 -0
- package/dist/signals/ts-ad-04-boundary-parser-coverage.js.map +1 -0
- package/dist/signals/ts-ad-05-boundary-trust-breach.d.ts +97 -0
- package/dist/signals/ts-ad-05-boundary-trust-breach.d.ts.map +1 -0
- package/dist/signals/ts-ad-05-boundary-trust-breach.js +413 -0
- package/dist/signals/ts-ad-05-boundary-trust-breach.js.map +1 -0
- package/dist/signals/ts-ld-02-diagnostics.js +8 -8
- package/dist/signals/ts-ld-02-diagnostics.js.map +1 -1
- package/dist/signals/ts-ld-02-model.d.ts +19 -1
- package/dist/signals/ts-ld-02-model.d.ts.map +1 -1
- package/dist/signals/ts-ld-02-model.js.map +1 -1
- package/dist/signals/ts-ld-02-size-distribution.d.ts.map +1 -1
- package/dist/signals/ts-ld-02-size-distribution.js +1 -1
- package/dist/signals/ts-ld-02-size-distribution.js.map +1 -1
- package/dist/signals/ts-ld-02-thresholds.d.ts +3 -3
- package/dist/signals/ts-ld-02-thresholds.d.ts.map +1 -1
- package/dist/signals/ts-ld-02-thresholds.js +144 -21
- package/dist/signals/ts-ld-02-thresholds.js.map +1 -1
- package/dist/signals/ts-ld-03-nesting-depth.d.ts +4 -0
- package/dist/signals/ts-ld-03-nesting-depth.d.ts.map +1 -1
- package/dist/signals/ts-ld-03-nesting-depth.js +58 -5
- package/dist/signals/ts-ld-03-nesting-depth.js.map +1 -1
- package/dist/signals/ts-ld-08-exhaustiveness-erosion.d.ts +29 -0
- package/dist/signals/ts-ld-08-exhaustiveness-erosion.d.ts.map +1 -0
- package/dist/signals/ts-ld-08-exhaustiveness-erosion.js +100 -0
- package/dist/signals/ts-ld-08-exhaustiveness-erosion.js.map +1 -0
- package/dist/signals/ts-ld-09-error-channel-opacity.d.ts +67 -0
- package/dist/signals/ts-ld-09-error-channel-opacity.d.ts.map +1 -0
- package/dist/signals/ts-ld-09-error-channel-opacity.js +786 -0
- package/dist/signals/ts-ld-09-error-channel-opacity.js.map +1 -0
- package/dist/signals/ts-rp-01-hotspot-model.d.ts +46 -0
- package/dist/signals/ts-rp-01-hotspot-model.d.ts.map +1 -1
- package/dist/signals/ts-rp-01-hotspot-model.js +326 -12
- package/dist/signals/ts-rp-01-hotspot-model.js.map +1 -1
- package/dist/signals/ts-rp-01-hotspots.d.ts +1 -1
- package/dist/signals/ts-rp-01-hotspots.d.ts.map +1 -1
- package/dist/signals/ts-rp-01-hotspots.js +10 -14
- package/dist/signals/ts-rp-01-hotspots.js.map +1 -1
- package/dist/signals/ts-sl-01-duplication.d.ts.map +1 -1
- package/dist/signals/ts-sl-01-duplication.js +53 -5
- package/dist/signals/ts-sl-01-duplication.js.map +1 -1
- package/dist/signals/ts-sl-01-groups.js +2 -2
- package/dist/signals/ts-sl-01-groups.js.map +1 -1
- package/dist/signals/ts-sl-01-model.d.ts +3 -0
- package/dist/signals/ts-sl-01-model.d.ts.map +1 -1
- package/dist/signals/ts-sl-01-model.js.map +1 -1
- package/dist/signals/ts-sl-01-policy.d.ts +2 -0
- package/dist/signals/ts-sl-01-policy.d.ts.map +1 -1
- package/dist/signals/ts-sl-01-policy.js +21 -4
- package/dist/signals/ts-sl-01-policy.js.map +1 -1
- package/dist/signals/ts-sl-02-inconsistent-clones.d.ts.map +1 -1
- package/dist/signals/ts-sl-02-inconsistent-clones.js +13 -2
- package/dist/signals/ts-sl-02-inconsistent-clones.js.map +1 -1
- package/dist/signals/ts-sl-04-empty-implementations.d.ts +1 -1
- package/dist/signals/ts-sl-04-empty-implementations.d.ts.map +1 -1
- package/dist/signals/ts-sl-04-empty-implementations.js +476 -6
- package/dist/signals/ts-sl-04-empty-implementations.js.map +1 -1
- package/dist/signals/ts-sl-04-model.d.ts +1 -14
- package/dist/signals/ts-sl-04-model.d.ts.map +1 -1
- package/dist/signals/ts-sl-04-model.js +1 -7
- package/dist/signals/ts-sl-04-model.js.map +1 -1
- package/package.json +3 -3
- package/dist/signals/ts-sl-04-candidates.d.ts +0 -37
- package/dist/signals/ts-sl-04-candidates.d.ts.map +0 -1
- package/dist/signals/ts-sl-04-candidates.js +0 -90
- package/dist/signals/ts-sl-04-candidates.js.map +0 -1
- package/dist/signals/ts-sl-04-classify.d.ts +0 -7
- package/dist/signals/ts-sl-04-classify.d.ts.map +0 -1
- package/dist/signals/ts-sl-04-classify.js +0 -119
- package/dist/signals/ts-sl-04-classify.js.map +0 -1
- package/dist/signals/ts-sl-04-evaluation.d.ts +0 -7
- package/dist/signals/ts-sl-04-evaluation.d.ts.map +0 -1
- package/dist/signals/ts-sl-04-evaluation.js +0 -90
- package/dist/signals/ts-sl-04-evaluation.js.map +0 -1
- package/dist/signals/ts-sl-04-output.d.ts +0 -20
- package/dist/signals/ts-sl-04-output.d.ts.map +0 -1
- package/dist/signals/ts-sl-04-output.js +0 -73
- package/dist/signals/ts-sl-04-output.js.map +0 -1
- package/dist/signals/ts-sl-04-policy.d.ts +0 -15
- package/dist/signals/ts-sl-04-policy.d.ts.map +0 -1
- package/dist/signals/ts-sl-04-policy.js +0 -114
- package/dist/signals/ts-sl-04-policy.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @skastr0/pulsar-ts-pack — TypeScript signal pack.
|
|
3
3
|
*/
|
|
4
|
-
export declare const TS_PACK_VERSION: "0.1.
|
|
4
|
+
export declare const TS_PACK_VERSION: "0.1.1";
|
|
5
5
|
export { CASING_PATTERNS, inferCasingPattern, isRecognizedCasingPattern, matchesCasingPattern, parseCasingPatternAlternatives, splitIdentifierTokens, } from "./casing.js";
|
|
6
6
|
export type { IdentifierPattern, RecognizedCasingPattern, } from "./casing.js";
|
|
7
7
|
export { TsPackageInfoLayer, TsPackageInfoTag, TsProjectLayer, TsProjectTag, makeTsProject, makeTsProjectWithOptions, } from "./ts-project.js";
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @skastr0/pulsar-ts-pack — TypeScript signal pack.
|
|
3
3
|
*/
|
|
4
|
-
export const TS_PACK_VERSION = "0.1.
|
|
4
|
+
export const TS_PACK_VERSION = "0.1.1";
|
|
5
5
|
export { CASING_PATTERNS, inferCasingPattern, isRecognizedCasingPattern, matchesCasingPattern, parseCasingPatternAlternatives, splitIdentifierTokens, } from "./casing.js";
|
|
6
6
|
export { TsPackageInfoLayer, TsPackageInfoTag, TsProjectLayer, TsProjectTag, makeTsProject, makeTsProjectWithOptions, } from "./ts-project.js";
|
|
7
7
|
export { discoverPackages } from "./discovery.js";
|
package/dist/pack.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pack.d.ts","sourceRoot":"","sources":["../src/pack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"pack.d.ts","sourceRoot":"","sources":["../src/pack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AA4C5D;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,SAAS,CAgCvB,CAAA"}
|
package/dist/pack.js
CHANGED
|
@@ -7,6 +7,8 @@ import { TsAb05 } from "./signals/ts-ab-05-generic-proliferation.js";
|
|
|
7
7
|
import { TsAd01 } from "./signals/ts-ad-01-boundary-violations.js";
|
|
8
8
|
import { TsAd02 } from "./signals/ts-ad-02-circular-deps.js";
|
|
9
9
|
import { TsAd03 } from "./signals/ts-ad-03-reexport-depth.js";
|
|
10
|
+
import { TsAd04 } from "./signals/ts-ad-04-boundary-parser-coverage.js";
|
|
11
|
+
import { TsAd05 } from "./signals/ts-ad-05-boundary-trust-breach.js";
|
|
10
12
|
import { TsDe01 } from "./signals/ts-de-01-type-level-coupling.js";
|
|
11
13
|
import { TsDe02 } from "./signals/ts-de-02-fan-in-out.js";
|
|
12
14
|
import { TsDe03 } from "./signals/ts-de-03-propagation-cost.js";
|
|
@@ -19,6 +21,8 @@ import { TsLd04 } from "./signals/ts-ld-04-naming-conventions.js";
|
|
|
19
21
|
import { TsLd05 } from "./signals/ts-ld-05-domain-term-consistency.js";
|
|
20
22
|
import { TsLd06 } from "./signals/ts-ld-06-annotation-coverage.js";
|
|
21
23
|
import { TsLd07 } from "./signals/ts-ld-07-unsafe-type-erosion.js";
|
|
24
|
+
import { TsLd08 } from "./signals/ts-ld-08-exhaustiveness-erosion.js";
|
|
25
|
+
import { TsLd09 } from "./signals/ts-ld-09-error-channel-opacity.js";
|
|
22
26
|
import { TsRp01 } from "./signals/ts-rp-01-hotspots.js";
|
|
23
27
|
import { TsSl01 } from "./signals/ts-sl-01-duplication.js";
|
|
24
28
|
import { TsSl02 } from "./signals/ts-sl-02-inconsistent-clones.js";
|
|
@@ -46,6 +50,8 @@ export const TS_PACK_SIGNALS = [
|
|
|
46
50
|
TsAd01,
|
|
47
51
|
TsAd02,
|
|
48
52
|
TsAd03,
|
|
53
|
+
TsAd04,
|
|
54
|
+
TsAd05,
|
|
49
55
|
TsDe01,
|
|
50
56
|
TsDe02,
|
|
51
57
|
TsDe03,
|
|
@@ -58,6 +64,8 @@ export const TS_PACK_SIGNALS = [
|
|
|
58
64
|
TsAb05,
|
|
59
65
|
TsLd06,
|
|
60
66
|
TsLd07,
|
|
67
|
+
TsLd08,
|
|
68
|
+
TsLd09,
|
|
61
69
|
TsRp01,
|
|
62
70
|
TsSl01,
|
|
63
71
|
TsSl03,
|
package/dist/pack.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pack.js","sourceRoot":"","sources":["../src/pack.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,6CAA6C,CAAA;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,mDAAmD,CAAA;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,8CAA8C,CAAA;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,4CAA4C,CAAA;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,6CAA6C,CAAA;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,sCAAsC,CAAA;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,wCAAwC,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,iDAAiD,CAAA;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,0CAA0C,CAAA;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,yCAAyC,CAAA;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,0CAA0C,CAAA;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,+CAA+C,CAAA;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAA;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAA;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,6CAA6C,CAAA;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAEtD,MAAM,qBAAqB,GACzB,qCAAqC,CAAA;AAEvC,MAAM,sBAAsB,GAAG,CAAsB,MAAS,EAAK,EAAE,CAAC,CAAC;IACrE,GAAG,MAAM;IACT,YAAY,EACV,MAAM,CAAC,YAAY,KAAK,SAAS;QAC/B,CAAC,CAAC,qBAAqB;QACvB,CAAC,CAAC,GAAG,qBAAqB,IAAI,MAAM,CAAC,YAAY,EAAE;CACxD,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAA6B;IACvD,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;CACP,CAAC,GAAG,CAAC,sBAAsB,CAAC;KAC1B,GAAG,CAAC,sBAAsB,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"pack.js","sourceRoot":"","sources":["../src/pack.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,6CAA6C,CAAA;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,mDAAmD,CAAA;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,8CAA8C,CAAA;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,4CAA4C,CAAA;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,6CAA6C,CAAA;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,sCAAsC,CAAA;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,gDAAgD,CAAA;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,6CAA6C,CAAA;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,wCAAwC,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,iDAAiD,CAAA;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,0CAA0C,CAAA;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,yCAAyC,CAAA;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,0CAA0C,CAAA;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,+CAA+C,CAAA;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,8CAA8C,CAAA;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,6CAA6C,CAAA;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAA;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAA;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,6CAA6C,CAAA;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAEtD,MAAM,qBAAqB,GACzB,qCAAqC,CAAA;AAEvC,MAAM,sBAAsB,GAAG,CAAsB,MAAS,EAAK,EAAE,CAAC,CAAC;IACrE,GAAG,MAAM;IACT,YAAY,EACV,MAAM,CAAC,YAAY,KAAK,SAAS;QAC/B,CAAC,CAAC,qBAAqB;QACvB,CAAC,CAAC,GAAG,qBAAqB,IAAI,MAAM,CAAC,YAAY,EAAE;CACxD,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAA6B;IACvD,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;CACP,CAAC,GAAG,CAAC,sBAAsB,CAAC;KAC1B,GAAG,CAAC,sBAAsB,CAAC,CAAA"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { type Signal } from "@skastr0/pulsar-core/signal";
|
|
2
|
+
import { Schema } from "effect";
|
|
3
|
+
import { TsProjectTag } from "../ts-project.js";
|
|
4
|
+
declare const TsAd04Config: Schema.Struct<{
|
|
5
|
+
boundary_globs: Schema.Array$<typeof Schema.String>;
|
|
6
|
+
parser_call_patterns: Schema.Array$<typeof Schema.String>;
|
|
7
|
+
exclude_globs: Schema.Array$<typeof Schema.String>;
|
|
8
|
+
top_n_diagnostics: typeof Schema.Number;
|
|
9
|
+
}>;
|
|
10
|
+
export type TsAd04Config = typeof TsAd04Config.Type;
|
|
11
|
+
export type BoundaryParserCoverageState = "present" | "zero" | "absent" | "not_configured" | "not_applicable";
|
|
12
|
+
export interface WeakBoundaryParameter {
|
|
13
|
+
readonly name: string;
|
|
14
|
+
readonly typeText: string;
|
|
15
|
+
readonly reason: "any" | "unknown" | "untyped" | "request-like";
|
|
16
|
+
}
|
|
17
|
+
export interface BoundaryParserFinding {
|
|
18
|
+
readonly file: string;
|
|
19
|
+
readonly line: number;
|
|
20
|
+
readonly symbol: string;
|
|
21
|
+
readonly weakParameters: ReadonlyArray<WeakBoundaryParameter>;
|
|
22
|
+
readonly missingEvidence: string;
|
|
23
|
+
}
|
|
24
|
+
export interface BoundaryParserCoveredFunction {
|
|
25
|
+
readonly file: string;
|
|
26
|
+
readonly line: number;
|
|
27
|
+
readonly symbol: string;
|
|
28
|
+
readonly parserEvidence: ReadonlyArray<string>;
|
|
29
|
+
readonly weakParameters: ReadonlyArray<WeakBoundaryParameter>;
|
|
30
|
+
}
|
|
31
|
+
export interface TsAd04Output {
|
|
32
|
+
readonly state: BoundaryParserCoverageState;
|
|
33
|
+
readonly boundaryFilesMatched: number;
|
|
34
|
+
readonly boundaryFunctionsAnalyzed: number;
|
|
35
|
+
readonly weakBoundaryFunctions: number;
|
|
36
|
+
readonly coveredWeakBoundaryFunctions: number;
|
|
37
|
+
readonly findings: ReadonlyArray<BoundaryParserFinding>;
|
|
38
|
+
readonly covered: ReadonlyArray<BoundaryParserCoveredFunction>;
|
|
39
|
+
readonly diagnosticLimit: number;
|
|
40
|
+
readonly compositeConsumers: ReadonlyArray<string>;
|
|
41
|
+
readonly cacheContributors: ReadonlyArray<string>;
|
|
42
|
+
readonly calibrationSurface: string;
|
|
43
|
+
readonly enforcementCeiling: ReadonlyArray<string>;
|
|
44
|
+
}
|
|
45
|
+
export declare const TsAd04: Signal<TsAd04Config, TsAd04Output, TsProjectTag>;
|
|
46
|
+
export {};
|
|
47
|
+
//# sourceMappingURL=ts-ad-04-boundary-parser-coverage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ts-ad-04-boundary-parser-coverage.d.ts","sourceRoot":"","sources":["../../src/signals/ts-ad-04-boundary-parser-coverage.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,MAAM,EACZ,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAA;AAWvC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAG/C,QAAA,MAAM,YAAY;;;;;EAKhB,CAAA;AACF,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAA;AAEnD,MAAM,MAAM,2BAA2B,GACnC,SAAS,GACT,MAAM,GACN,QAAQ,GACR,gBAAgB,GAChB,gBAAgB,CAAA;AAEpB,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,SAAS,GAAG,SAAS,GAAG,cAAc,CAAA;CAChE;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAA;IAC7D,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;CACjC;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC9C,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAA;CAC9D;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,2BAA2B,CAAA;IAC3C,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAA;IACrC,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAA;IAC1C,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAA;IACtC,QAAQ,CAAC,4BAA4B,EAAE,MAAM,CAAA;IAC7C,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAA;IACvD,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,6BAA6B,CAAC,CAAA;IAC9D,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,kBAAkB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAClD,QAAQ,CAAC,iBAAiB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACjD,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAA;IACnC,QAAQ,CAAC,kBAAkB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CACnD;AA2BD,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,CA2GnE,CAAA"}
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
import { SignalComputeError, } from "@skastr0/pulsar-core/signal";
|
|
2
|
+
import { Effect, Schema } from "effect";
|
|
3
|
+
import { Node, SyntaxKind, } from "ts-morph";
|
|
4
|
+
import { TsProjectTag } from "../ts-project.js";
|
|
5
|
+
import { isExcluded } from "./shared-globs.js";
|
|
6
|
+
const TsAd04Config = Schema.Struct({
|
|
7
|
+
boundary_globs: Schema.Array(Schema.String),
|
|
8
|
+
parser_call_patterns: Schema.Array(Schema.String),
|
|
9
|
+
exclude_globs: Schema.Array(Schema.String),
|
|
10
|
+
top_n_diagnostics: Schema.Number,
|
|
11
|
+
});
|
|
12
|
+
const REQUEST_LIKE_TYPE_NAMES = [
|
|
13
|
+
"Request",
|
|
14
|
+
"NextRequest",
|
|
15
|
+
"IncomingMessage",
|
|
16
|
+
"APIGatewayProxyEvent",
|
|
17
|
+
"APIGatewayEvent",
|
|
18
|
+
"MessageEvent",
|
|
19
|
+
"Event",
|
|
20
|
+
"FormData",
|
|
21
|
+
"URLSearchParams",
|
|
22
|
+
];
|
|
23
|
+
export const TsAd04 = {
|
|
24
|
+
id: "TS-AD-04-boundary-parser-coverage",
|
|
25
|
+
title: "Boundary parser coverage",
|
|
26
|
+
aliases: ["TS-AD-04"],
|
|
27
|
+
tier: 1,
|
|
28
|
+
category: "architectural-drift",
|
|
29
|
+
kind: "structural",
|
|
30
|
+
cacheVersion: "ts-boundary-parser-evidence-v1",
|
|
31
|
+
configSchema: TsAd04Config,
|
|
32
|
+
defaultConfig: {
|
|
33
|
+
boundary_globs: [
|
|
34
|
+
"**/api/*.ts",
|
|
35
|
+
"**/api/**/*.ts",
|
|
36
|
+
"**/routes/*.ts",
|
|
37
|
+
"**/routes/**/*.ts",
|
|
38
|
+
"**/handlers/*.ts",
|
|
39
|
+
"**/handlers/**/*.ts",
|
|
40
|
+
"**/controllers/*.ts",
|
|
41
|
+
"**/controllers/**/*.ts",
|
|
42
|
+
"**/adapters/*.ts",
|
|
43
|
+
"**/adapters/**/*.ts",
|
|
44
|
+
"**/cli/*.ts",
|
|
45
|
+
"**/cli/**/*.ts",
|
|
46
|
+
"**/*route.ts",
|
|
47
|
+
"**/*handler.ts",
|
|
48
|
+
"**/*controller.ts",
|
|
49
|
+
"**/*adapter.ts",
|
|
50
|
+
],
|
|
51
|
+
parser_call_patterns: [
|
|
52
|
+
"parse",
|
|
53
|
+
"safeparse",
|
|
54
|
+
"decode",
|
|
55
|
+
"decodeunknown",
|
|
56
|
+
"validate",
|
|
57
|
+
"assert",
|
|
58
|
+
"schema",
|
|
59
|
+
"json.parse",
|
|
60
|
+
],
|
|
61
|
+
exclude_globs: [
|
|
62
|
+
"**/*.test.ts",
|
|
63
|
+
"**/*.test.tsx",
|
|
64
|
+
"**/*.spec.ts",
|
|
65
|
+
"**/*.spec.tsx",
|
|
66
|
+
"**/*.d.ts",
|
|
67
|
+
"**/node_modules/**",
|
|
68
|
+
"**/dist/**",
|
|
69
|
+
"**/coverage/**",
|
|
70
|
+
"**/.turbo/**",
|
|
71
|
+
"**/generated/**",
|
|
72
|
+
"**/*.generated.ts",
|
|
73
|
+
"**/*.gen.ts",
|
|
74
|
+
],
|
|
75
|
+
top_n_diagnostics: 10,
|
|
76
|
+
},
|
|
77
|
+
inputs: [],
|
|
78
|
+
compute: (config) => Effect.gen(function* () {
|
|
79
|
+
const project = yield* TsProjectTag;
|
|
80
|
+
return yield* Effect.try({
|
|
81
|
+
try: () => computeBoundaryParserCoverage(project.getSourceFiles(), config),
|
|
82
|
+
catch: (cause) => new SignalComputeError({
|
|
83
|
+
signalId: "TS-AD-04-boundary-parser-coverage",
|
|
84
|
+
message: String(cause),
|
|
85
|
+
cause,
|
|
86
|
+
}),
|
|
87
|
+
});
|
|
88
|
+
}),
|
|
89
|
+
score: (out) => {
|
|
90
|
+
if (out.state !== "present" && out.state !== "zero")
|
|
91
|
+
return 1;
|
|
92
|
+
if (out.weakBoundaryFunctions === 0)
|
|
93
|
+
return 1;
|
|
94
|
+
return Math.max(0, 1 - out.findings.length / out.weakBoundaryFunctions);
|
|
95
|
+
},
|
|
96
|
+
diagnose: (out) => {
|
|
97
|
+
if (out.state === "not_configured") {
|
|
98
|
+
return [{
|
|
99
|
+
severity: "warn",
|
|
100
|
+
message: "Boundary parser coverage is not configured: boundary_globs is empty",
|
|
101
|
+
data: { state: out.state },
|
|
102
|
+
}];
|
|
103
|
+
}
|
|
104
|
+
if (out.state === "absent") {
|
|
105
|
+
return [{
|
|
106
|
+
severity: "info",
|
|
107
|
+
message: "Boundary parser coverage found no files matching configured boundary_globs",
|
|
108
|
+
data: { state: out.state },
|
|
109
|
+
}];
|
|
110
|
+
}
|
|
111
|
+
return out.findings.slice(0, out.diagnosticLimit).map((finding) => ({
|
|
112
|
+
severity: "warn",
|
|
113
|
+
message: `Boundary function \`${finding.symbol}\` accepts weak external input ` +
|
|
114
|
+
"without parse/decode evidence",
|
|
115
|
+
location: { file: finding.file, line: finding.line },
|
|
116
|
+
data: { ...finding },
|
|
117
|
+
}));
|
|
118
|
+
},
|
|
119
|
+
outputMetadata: (out) => {
|
|
120
|
+
if (out.state === "not_configured" || out.state === "absent") {
|
|
121
|
+
return { applicability: "insufficient_evidence" };
|
|
122
|
+
}
|
|
123
|
+
if (out.state === "not_applicable") {
|
|
124
|
+
return { applicability: "not_applicable" };
|
|
125
|
+
}
|
|
126
|
+
return undefined;
|
|
127
|
+
},
|
|
128
|
+
};
|
|
129
|
+
const computeBoundaryParserCoverage = (sourceFiles, config) => {
|
|
130
|
+
const diagnosticLimit = Math.max(0, Math.floor(config.top_n_diagnostics));
|
|
131
|
+
if (config.boundary_globs.length === 0) {
|
|
132
|
+
return baseOutput("not_configured", 0, 0, [], [], diagnosticLimit);
|
|
133
|
+
}
|
|
134
|
+
const boundaryFiles = sourceFiles.filter((sourceFile) => isBoundarySourceFile(sourceFile, config));
|
|
135
|
+
if (boundaryFiles.length === 0) {
|
|
136
|
+
return baseOutput("absent", 0, 0, [], [], diagnosticLimit);
|
|
137
|
+
}
|
|
138
|
+
const candidates = boundaryFiles.flatMap((sourceFile) => collectBoundaryFunctionCandidates(sourceFile, config.parser_call_patterns));
|
|
139
|
+
const weakCandidates = candidates.filter((candidate) => candidate.weakParameters.length > 0);
|
|
140
|
+
if (weakCandidates.length === 0) {
|
|
141
|
+
return baseOutput("not_applicable", boundaryFiles.length, candidates.length, [], [], diagnosticLimit);
|
|
142
|
+
}
|
|
143
|
+
const covered = weakCandidates
|
|
144
|
+
.filter((candidate) => candidate.parserEvidence.length > 0)
|
|
145
|
+
.map((candidate) => ({
|
|
146
|
+
file: candidate.file,
|
|
147
|
+
line: candidate.line,
|
|
148
|
+
symbol: candidate.symbol,
|
|
149
|
+
parserEvidence: candidate.parserEvidence,
|
|
150
|
+
weakParameters: candidate.weakParameters,
|
|
151
|
+
}));
|
|
152
|
+
const findings = weakCandidates
|
|
153
|
+
.filter((candidate) => candidate.parserEvidence.length === 0)
|
|
154
|
+
.map((candidate) => ({
|
|
155
|
+
file: candidate.file,
|
|
156
|
+
line: candidate.line,
|
|
157
|
+
symbol: candidate.symbol,
|
|
158
|
+
weakParameters: candidate.weakParameters,
|
|
159
|
+
missingEvidence: "No parse/decode/schema/assertion call matched parser_call_patterns.",
|
|
160
|
+
}))
|
|
161
|
+
.sort(compareBoundaryParserFindings);
|
|
162
|
+
const state = findings.length === 0 ? "zero" : "present";
|
|
163
|
+
return baseOutput(state, boundaryFiles.length, candidates.length, findings, covered.sort(compareCoveredBoundaryFunctions), diagnosticLimit);
|
|
164
|
+
};
|
|
165
|
+
const baseOutput = (state, boundaryFilesMatched, boundaryFunctionsAnalyzed, findings, covered, diagnosticLimit) => ({
|
|
166
|
+
state,
|
|
167
|
+
boundaryFilesMatched,
|
|
168
|
+
boundaryFunctionsAnalyzed,
|
|
169
|
+
weakBoundaryFunctions: findings.length + covered.length,
|
|
170
|
+
coveredWeakBoundaryFunctions: covered.length,
|
|
171
|
+
findings,
|
|
172
|
+
covered,
|
|
173
|
+
diagnosticLimit,
|
|
174
|
+
compositeConsumers: [
|
|
175
|
+
"boundary trust breach",
|
|
176
|
+
"contract safety gap",
|
|
177
|
+
"AI quicksand risk",
|
|
178
|
+
],
|
|
179
|
+
cacheContributors: [
|
|
180
|
+
"source tree",
|
|
181
|
+
"config.boundary_globs",
|
|
182
|
+
"config.parser_call_patterns",
|
|
183
|
+
"config.exclude_globs",
|
|
184
|
+
"config.top_n_diagnostics",
|
|
185
|
+
],
|
|
186
|
+
calibrationSurface: "config.boundary_globs and config.parser_call_patterns; future reference-data boundary role conventions can replace path heuristics",
|
|
187
|
+
enforcementCeiling: ["soft-warning", "trend", "review-routing"],
|
|
188
|
+
});
|
|
189
|
+
const isBoundarySourceFile = (sourceFile, config) => {
|
|
190
|
+
const file = sourceFile.getFilePath();
|
|
191
|
+
return (!sourceFile.isDeclarationFile() &&
|
|
192
|
+
!isExcluded(file, config.exclude_globs) &&
|
|
193
|
+
isExcluded(file, config.boundary_globs));
|
|
194
|
+
};
|
|
195
|
+
const collectBoundaryFunctionCandidates = (sourceFile, parserPatterns) => [
|
|
196
|
+
...sourceFile.getFunctions().flatMap((fn) => isBoundaryFunctionDeclaration(fn) ? [candidateFromFunction(sourceFile, fn, fn.getName() ?? "default", parserPatterns)] : []),
|
|
197
|
+
...sourceFile.getVariableDeclarations().flatMap((declaration) => boundaryVariableFunction(declaration).map((fn) => candidateFromFunction(sourceFile, fn, declaration.getName(), parserPatterns))),
|
|
198
|
+
];
|
|
199
|
+
const isBoundaryFunctionDeclaration = (fn) => fn.isExported() || fn.isDefaultExport() || isHandlerName(fn.getName() ?? "");
|
|
200
|
+
const boundaryVariableFunction = (declaration) => {
|
|
201
|
+
const initializer = declaration.getInitializer();
|
|
202
|
+
if (initializer === undefined)
|
|
203
|
+
return [];
|
|
204
|
+
const variableStatement = declaration.getVariableStatement();
|
|
205
|
+
const boundaryLike = variableStatement?.isExported() === true ||
|
|
206
|
+
isHandlerName(declaration.getName());
|
|
207
|
+
if (!boundaryLike)
|
|
208
|
+
return [];
|
|
209
|
+
if (Node.isArrowFunction(initializer) || Node.isFunctionExpression(initializer)) {
|
|
210
|
+
return [initializer];
|
|
211
|
+
}
|
|
212
|
+
return [];
|
|
213
|
+
};
|
|
214
|
+
const isHandlerName = (name) => /^(GET|POST|PUT|PATCH|DELETE|HEAD|OPTIONS|handler|handle|loader|action|fetch|main|run)$/u.test(name);
|
|
215
|
+
const candidateFromFunction = (sourceFile, fn, symbol, parserPatterns) => ({
|
|
216
|
+
file: sourceFile.getFilePath(),
|
|
217
|
+
line: fn.getStartLineNumber(),
|
|
218
|
+
symbol,
|
|
219
|
+
weakParameters: fn.getParameters().flatMap(classifyWeakParameter),
|
|
220
|
+
parserEvidence: collectParserEvidence(fn, parserPatterns),
|
|
221
|
+
});
|
|
222
|
+
const classifyWeakParameter = (parameter) => {
|
|
223
|
+
const name = parameter.getName();
|
|
224
|
+
const typeNode = parameter.getTypeNode();
|
|
225
|
+
const typeText = typeNode?.getText() ?? "<untyped>";
|
|
226
|
+
const normalized = typeText.toLowerCase();
|
|
227
|
+
if (typeNode === undefined) {
|
|
228
|
+
return [{ name, typeText, reason: "untyped" }];
|
|
229
|
+
}
|
|
230
|
+
if (/\bany\b/u.test(normalized)) {
|
|
231
|
+
return [{ name, typeText, reason: "any" }];
|
|
232
|
+
}
|
|
233
|
+
if (/\bunknown\b/u.test(normalized)) {
|
|
234
|
+
return [{ name, typeText, reason: "unknown" }];
|
|
235
|
+
}
|
|
236
|
+
if (REQUEST_LIKE_TYPE_NAMES.some((requestType) => typeText.includes(requestType))) {
|
|
237
|
+
return [{ name, typeText, reason: "request-like" }];
|
|
238
|
+
}
|
|
239
|
+
return [];
|
|
240
|
+
};
|
|
241
|
+
const collectParserEvidence = (fn, parserPatterns) => {
|
|
242
|
+
const patterns = parserPatterns.map((pattern) => normalizeCallText(pattern));
|
|
243
|
+
if (patterns.length === 0)
|
|
244
|
+
return [];
|
|
245
|
+
const calls = fn.getDescendantsOfKind(SyntaxKind.CallExpression);
|
|
246
|
+
const evidence = new Set();
|
|
247
|
+
for (const call of calls) {
|
|
248
|
+
const expression = call.getExpression();
|
|
249
|
+
const expressionText = expression.getText();
|
|
250
|
+
const normalizedCallee = normalizeCallText(calleeText(expression));
|
|
251
|
+
if (patterns.some((pattern) => normalizedCallee.includes(pattern))) {
|
|
252
|
+
evidence.add(expressionText);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
return [...evidence].sort();
|
|
256
|
+
};
|
|
257
|
+
const calleeText = (node) => {
|
|
258
|
+
if (Node.isCallExpression(node))
|
|
259
|
+
return calleeText(node.getExpression());
|
|
260
|
+
return node.getText();
|
|
261
|
+
};
|
|
262
|
+
const normalizeCallText = (text) => text.toLowerCase().replace(/\s+/gu, "");
|
|
263
|
+
const compareBoundaryParserFindings = (left, right) => left.file.localeCompare(right.file) ||
|
|
264
|
+
left.line - right.line ||
|
|
265
|
+
left.symbol.localeCompare(right.symbol);
|
|
266
|
+
const compareCoveredBoundaryFunctions = (left, right) => left.file.localeCompare(right.file) ||
|
|
267
|
+
left.line - right.line ||
|
|
268
|
+
left.symbol.localeCompare(right.symbol);
|
|
269
|
+
//# sourceMappingURL=ts-ad-04-boundary-parser-coverage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ts-ad-04-boundary-parser-coverage.js","sourceRoot":"","sources":["../../src/signals/ts-ad-04-boundary-parser-coverage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { type CompositeExplanation, type Signal } from "@skastr0/pulsar-core/signal";
|
|
2
|
+
import { Schema } from "effect";
|
|
3
|
+
declare const TsAd05Config: Schema.Struct<{
|
|
4
|
+
top_n_diagnostics: typeof Schema.Number;
|
|
5
|
+
warn_threshold: typeof Schema.Number;
|
|
6
|
+
}>;
|
|
7
|
+
type TsAd05Config = typeof TsAd05Config.Type;
|
|
8
|
+
export type BoundaryTrustBreachState = "present" | "zero" | "insufficient_evidence";
|
|
9
|
+
export type BoundaryTrustInputFactState = "present" | "zero" | "absent" | "unknown" | "not_configured" | "not_applicable" | "missing_required" | "missing_optional";
|
|
10
|
+
export interface BoundaryTrustBreachFactors {
|
|
11
|
+
readonly parserCoverage?: number;
|
|
12
|
+
readonly unsafeBoundaryTypes?: number;
|
|
13
|
+
readonly boundaryViolations?: number;
|
|
14
|
+
readonly domainLanguageDrift?: number;
|
|
15
|
+
}
|
|
16
|
+
export interface BoundaryTrustBreachCandidate {
|
|
17
|
+
readonly file: string;
|
|
18
|
+
readonly score: number;
|
|
19
|
+
readonly rank: number;
|
|
20
|
+
readonly factors: BoundaryTrustBreachFactors;
|
|
21
|
+
readonly evidence: {
|
|
22
|
+
readonly parserFindings?: number;
|
|
23
|
+
readonly weakBoundaryParameters?: number;
|
|
24
|
+
readonly unsafeBoundaryOccurrences?: number;
|
|
25
|
+
readonly unsafeBoundaryWeight?: number;
|
|
26
|
+
readonly boundaryViolations?: number;
|
|
27
|
+
readonly domainTermDrift?: number;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export interface BoundaryTrustBreachOutput {
|
|
31
|
+
readonly state: BoundaryTrustBreachState;
|
|
32
|
+
readonly breaches: ReadonlyArray<BoundaryTrustBreachCandidate>;
|
|
33
|
+
readonly explanation: CompositeExplanation;
|
|
34
|
+
readonly diagnosticLimit: number;
|
|
35
|
+
readonly inputFactStates: {
|
|
36
|
+
readonly boundaryParserCoverage: BoundaryTrustInputFactState;
|
|
37
|
+
readonly unsafeTypeErosion: BoundaryTrustInputFactState;
|
|
38
|
+
readonly boundaryViolations: BoundaryTrustInputFactState;
|
|
39
|
+
readonly domainTermConsistency: BoundaryTrustInputFactState;
|
|
40
|
+
};
|
|
41
|
+
readonly availableFactorWeight: number;
|
|
42
|
+
readonly riskPressure: number;
|
|
43
|
+
readonly breachPressure: number;
|
|
44
|
+
readonly totalFilesConsidered: number;
|
|
45
|
+
readonly evidenceCompleteness: number;
|
|
46
|
+
readonly riskModel: "boundary-trust-breach-v1";
|
|
47
|
+
readonly warnThreshold: number;
|
|
48
|
+
readonly compositeConsumers: ReadonlyArray<string>;
|
|
49
|
+
readonly cacheContributors: ReadonlyArray<string>;
|
|
50
|
+
readonly calibrationSurface: string;
|
|
51
|
+
readonly evidenceClass: ReadonlyArray<string>;
|
|
52
|
+
readonly claimLimit: string;
|
|
53
|
+
readonly nonClaimLimit: string;
|
|
54
|
+
readonly knownFailureMode: string;
|
|
55
|
+
readonly enforcementCeiling: ReadonlyArray<string>;
|
|
56
|
+
}
|
|
57
|
+
export declare const TS_AD_05_COMPOSITE_INPUTS: ({
|
|
58
|
+
id: string;
|
|
59
|
+
aliases: string[];
|
|
60
|
+
factorPath: string;
|
|
61
|
+
weight: 0.35;
|
|
62
|
+
cacheFingerprint: string;
|
|
63
|
+
rawValue: (value: unknown) => unknown;
|
|
64
|
+
normalize: (value: unknown) => number | undefined;
|
|
65
|
+
optional?: never;
|
|
66
|
+
} | {
|
|
67
|
+
id: string;
|
|
68
|
+
aliases: string[];
|
|
69
|
+
optional: true;
|
|
70
|
+
factorPath: string;
|
|
71
|
+
weight: 0.3;
|
|
72
|
+
cacheFingerprint: string;
|
|
73
|
+
rawValue: (value: unknown) => unknown;
|
|
74
|
+
normalize: (value: unknown) => number;
|
|
75
|
+
} | {
|
|
76
|
+
id: string;
|
|
77
|
+
aliases: string[];
|
|
78
|
+
optional: true;
|
|
79
|
+
factorPath: string;
|
|
80
|
+
weight: 0.25;
|
|
81
|
+
cacheFingerprint: string;
|
|
82
|
+
rawValue: (value: unknown) => unknown;
|
|
83
|
+
normalize: (value: unknown) => number | undefined;
|
|
84
|
+
} | {
|
|
85
|
+
id: string;
|
|
86
|
+
aliases: string[];
|
|
87
|
+
optional: true;
|
|
88
|
+
factorPath: string;
|
|
89
|
+
weight: 0.1;
|
|
90
|
+
cacheFingerprint: string;
|
|
91
|
+
rawValue: (value: unknown) => unknown;
|
|
92
|
+
normalize: (value: unknown) => number | undefined;
|
|
93
|
+
})[];
|
|
94
|
+
export declare const TsAd05: Signal<TsAd05Config, BoundaryTrustBreachOutput, never>;
|
|
95
|
+
export declare const computeBoundaryTrustBreachOutput: (config: TsAd05Config, inputs: ReadonlyMap<string, unknown>) => BoundaryTrustBreachOutput;
|
|
96
|
+
export {};
|
|
97
|
+
//# sourceMappingURL=ts-ad-05-boundary-trust-breach.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ts-ad-05-boundary-trust-breach.d.ts","sourceRoot":"","sources":["../../src/signals/ts-ad-05-boundary-trust-breach.ts"],"names":[],"mappings":"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"}
|