@thymian/plugin-http-analyzer 0.1.10 → 0.1.11-canary.20260625-39589d8
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/analytics-api-context.d.ts +17 -16
- package/dist/analytics-api-context.d.ts.map +1 -1
- package/dist/analytics-api-context.js +52 -81
- package/dist/analytics-api-context.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +30 -19
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,32 +1,33 @@
|
|
|
1
|
-
import { type AnalyzeContext, type CapturedTrace, type CapturedTransaction, type CommonHttpRequest, type CommonHttpResponse, type HttpFilterExpression, type HttpParticipantRole, type HttpRequest, type HttpResponse, type Logger, type
|
|
1
|
+
import { type AnalyzeContext, type CapturedTrace, type CapturedTransaction, type CommonHttpRequest, type CommonHttpResponse, type HttpFilterExpression, type HttpParticipantRole, type HttpRequest, type HttpResponse, type Logger, type RuleFnResult, type RuleViolationLocation, ThymianFormat, type ValidationFn } from '@thymian/core';
|
|
2
2
|
import type { HttpTransactionRepository } from './db/http-transaction-repository.js';
|
|
3
|
+
export interface AnalyticsApiContextOptions {
|
|
4
|
+
repository: HttpTransactionRepository;
|
|
5
|
+
logger: Logger;
|
|
6
|
+
format: ThymianFormat;
|
|
7
|
+
roles?: HttpParticipantRole[];
|
|
8
|
+
skippedOrigins?: string[];
|
|
9
|
+
}
|
|
3
10
|
export declare class AnalyticsApiContext implements AnalyzeContext {
|
|
4
11
|
readonly repository: HttpTransactionRepository;
|
|
5
|
-
private readonly logger;
|
|
6
12
|
readonly format: ThymianFormat;
|
|
7
|
-
readonly
|
|
8
|
-
private readonly violations;
|
|
13
|
+
private readonly logger;
|
|
9
14
|
private readonly roles?;
|
|
10
15
|
private readonly skippedOrigins;
|
|
11
|
-
constructor(
|
|
12
|
-
|
|
16
|
+
constructor(options: AnalyticsApiContextOptions);
|
|
17
|
+
constructor(repository: HttpTransactionRepository, logger: Logger, format: ThymianFormat, reportOrRoles?: (() => void) | HttpParticipantRole[], rolesOrSkippedOrigins?: HttpParticipantRole[] | string[], legacySkippedOrigins?: string[]);
|
|
13
18
|
getRuleExecutionDiagnostics(): undefined;
|
|
14
19
|
private addOriginsToFilter;
|
|
15
20
|
validateCommonHttpTransactions(filter: HttpFilterExpression, validate?: ValidationFn<[
|
|
16
21
|
CommonHttpRequest,
|
|
17
22
|
CommonHttpResponse,
|
|
18
23
|
RuleViolationLocation
|
|
19
|
-
]> | HttpFilterExpression): Promise<RuleFnResult> | RuleFnResult;
|
|
24
|
+
]> | HttpFilterExpression): Promise<RuleFnResult[]> | RuleFnResult[];
|
|
20
25
|
validateGroupedCommonHttpTransactions(filter: HttpFilterExpression, groupBy: HttpFilterExpression, validationFn: ValidationFn<[
|
|
21
26
|
string,
|
|
22
|
-
[
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
], RuleViolation | undefined>): Promise<RuleFnResult> | RuleFnResult;
|
|
28
|
-
validateHttpTransactions(filter: HttpFilterExpression, validation?: ValidationFn<[HttpRequest, HttpResponse, RuleViolationLocation]> | HttpFilterExpression): Promise<RuleFnResult> | RuleFnResult;
|
|
29
|
-
validateCapturedHttpTransactions(filter: HttpFilterExpression, validate: ValidationFn<[CapturedTransaction, string]>): Promise<RuleFnResult> | RuleFnResult;
|
|
30
|
-
validateCapturedHttpTraces(validate: ValidationFn<[CapturedTrace, string]>): RuleFnResult;
|
|
27
|
+
[CommonHttpRequest, CommonHttpResponse, RuleViolationLocation][]
|
|
28
|
+
]>): Promise<RuleFnResult[]> | RuleFnResult[];
|
|
29
|
+
validateHttpTransactions(filter: HttpFilterExpression, validation?: ValidationFn<[HttpRequest, HttpResponse, RuleViolationLocation]> | HttpFilterExpression): Promise<RuleFnResult[]> | RuleFnResult[];
|
|
30
|
+
validateCapturedHttpTransactions(filter: HttpFilterExpression, validate: ValidationFn<[CapturedTransaction, string]>): Promise<RuleFnResult[]> | RuleFnResult[];
|
|
31
|
+
validateCapturedHttpTraces(validate: ValidationFn<[CapturedTrace, string]>): RuleFnResult[];
|
|
31
32
|
}
|
|
32
33
|
//# sourceMappingURL=analytics-api-context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics-api-context.d.ts","sourceRoot":"","sources":["../src/analytics-api-context.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,aAAa,EAElB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EAEvB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,
|
|
1
|
+
{"version":3,"file":"analytics-api-context.d.ts","sourceRoot":"","sources":["../src/analytics-api-context.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,aAAa,EAElB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EAEvB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EAExB,KAAK,WAAW,EAEhB,KAAK,YAAY,EAGjB,KAAK,MAAM,EAIX,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,aAAa,EAEb,KAAK,YAAY,EAClB,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAErF,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,yBAAyB,CAAC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAwCD,qBAAa,mBAAoB,YAAW,cAAc;IACxD,QAAQ,CAAC,UAAU,EAAE,yBAAyB,CAAC;IAC/C,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAwB;IAC/C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAW;gBAE9B,OAAO,EAAE,0BAA0B;gBAE7C,UAAU,EAAE,yBAAyB,EACrC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,aAAa,EACrB,aAAa,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,mBAAmB,EAAE,EACpD,qBAAqB,CAAC,EAAE,mBAAmB,EAAE,GAAG,MAAM,EAAE,EACxD,oBAAoB,CAAC,EAAE,MAAM,EAAE;IAwDjC,2BAA2B,IAAI,SAAS;IAIxC,OAAO,CAAC,kBAAkB;IAa1B,8BAA8B,CAC5B,MAAM,EAAE,oBAAoB,EAC5B,QAAQ,GACJ,YAAY,CACV;QAAC,iBAAiB;QAAE,kBAAkB;QAAE,qBAAqB;KAAC,CAC/D,GACD,oBAA6B,GAChC,OAAO,CAAC,YAAY,EAAE,CAAC,GAAG,YAAY,EAAE;IAwC3C,qCAAqC,CACnC,MAAM,EAAE,oBAAoB,EAC5B,OAAO,EAAE,oBAAoB,EAC7B,YAAY,EAAE,YAAY,CACxB;QAAC,MAAM;QAAE,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,qBAAqB,CAAC,EAAE;KAAC,CAC3E,GACA,OAAO,CAAC,YAAY,EAAE,CAAC,GAAG,YAAY,EAAE;IA0B3C,wBAAwB,CACtB,MAAM,EAAE,oBAAoB,EAC5B,UAAU,GACN,YAAY,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,qBAAqB,CAAC,CAAC,GAChE,oBAA6B,GAChC,OAAO,CAAC,YAAY,EAAE,CAAC,GAAG,YAAY,EAAE;IA+C3C,gCAAgC,CAC9B,MAAM,EAAE,oBAAoB,EAC5B,QAAQ,EAAE,YAAY,CAAC,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,GACpD,OAAO,CAAC,YAAY,EAAE,CAAC,GAAG,YAAY,EAAE;IAoB3C,0BAA0B,CACxB,QAAQ,EAAE,YAAY,CAAC,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,GAC9C,YAAY,EAAE;CAUlB"}
|
|
@@ -1,23 +1,48 @@
|
|
|
1
|
-
import { and, capturedTraceToString, createRegExpFromOriginWildcard, httpRequestToCommonHttpRequest, httpResponseToCommonHttpResponse, httpTransactionToLabel, matchesOrigin, not, or, ThymianFormat, thymianRequestToOrigin, } from '@thymian/core';
|
|
1
|
+
import { and, capturedTraceToString, createRegExpFromOriginWildcard, httpParticipantRoles, httpRequestToCommonHttpRequest, httpResponseToCommonHttpResponse, httpTransactionToLabel, matchesOrigin, not, or, ThymianFormat, thymianRequestToOrigin, } from '@thymian/core';
|
|
2
|
+
function legacyOptionsToObject(repository, logger, format, reportOrRoles, rolesOrSkippedOrigins, legacySkippedOrigins) {
|
|
3
|
+
if (!logger || !format) {
|
|
4
|
+
throw new TypeError('AnalyticsApiContext requires logger and format.');
|
|
5
|
+
}
|
|
6
|
+
const usesLegacyReportSignature = typeof reportOrRoles === 'function';
|
|
7
|
+
const looksLikeRoleArray = Array.isArray(rolesOrSkippedOrigins) &&
|
|
8
|
+
rolesOrSkippedOrigins.every((value) => httpParticipantRoles.includes(value));
|
|
9
|
+
const roles = Array.isArray(reportOrRoles)
|
|
10
|
+
? reportOrRoles
|
|
11
|
+
: usesLegacyReportSignature ||
|
|
12
|
+
(reportOrRoles === undefined && looksLikeRoleArray)
|
|
13
|
+
? rolesOrSkippedOrigins
|
|
14
|
+
: undefined;
|
|
15
|
+
const skippedOrigins = usesLegacyReportSignature || looksLikeRoleArray
|
|
16
|
+
? legacySkippedOrigins
|
|
17
|
+
: rolesOrSkippedOrigins;
|
|
18
|
+
return {
|
|
19
|
+
repository,
|
|
20
|
+
logger,
|
|
21
|
+
format,
|
|
22
|
+
roles,
|
|
23
|
+
skippedOrigins,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
2
26
|
export class AnalyticsApiContext {
|
|
3
27
|
repository;
|
|
4
|
-
logger;
|
|
5
28
|
format;
|
|
6
|
-
|
|
7
|
-
violations = [];
|
|
29
|
+
logger;
|
|
8
30
|
roles;
|
|
9
31
|
skippedOrigins;
|
|
10
|
-
constructor(
|
|
32
|
+
constructor(optionsOrRepository, logger, format, reportOrRoles, rolesOrSkippedOrigins, legacySkippedOrigins) {
|
|
33
|
+
const options = 'repository' in optionsOrRepository
|
|
34
|
+
? optionsOrRepository
|
|
35
|
+
: legacyOptionsToObject(optionsOrRepository, logger, format, reportOrRoles, rolesOrSkippedOrigins, legacySkippedOrigins);
|
|
36
|
+
const { repository, logger: contextLogger, format: contextFormat, roles, skippedOrigins = [], } = options;
|
|
11
37
|
this.repository = repository;
|
|
12
|
-
this.logger =
|
|
13
|
-
this.
|
|
14
|
-
this.skippedOrigins = skippedOrigins ?? [];
|
|
38
|
+
this.logger = contextLogger;
|
|
39
|
+
this.skippedOrigins = skippedOrigins;
|
|
15
40
|
if (this.skippedOrigins.length === 0) {
|
|
16
|
-
this.format =
|
|
41
|
+
this.format = contextFormat;
|
|
17
42
|
}
|
|
18
43
|
else {
|
|
19
44
|
const regExps = this.skippedOrigins.map(createRegExpFromOriginWildcard);
|
|
20
|
-
this.format =
|
|
45
|
+
this.format = contextFormat.filter(({ thymianReq }) => !regExps.some((regExp) => regExp.test(thymianRequestToOrigin(thymianReq))));
|
|
21
46
|
}
|
|
22
47
|
if (roles) {
|
|
23
48
|
this.roles = roles.flatMap((role) => role === 'intermediary'
|
|
@@ -25,9 +50,6 @@ export class AnalyticsApiContext {
|
|
|
25
50
|
: role);
|
|
26
51
|
}
|
|
27
52
|
}
|
|
28
|
-
reportViolation(violation) {
|
|
29
|
-
this.violations.push(violation);
|
|
30
|
-
}
|
|
31
53
|
getRuleExecutionDiagnostics() {
|
|
32
54
|
return undefined;
|
|
33
55
|
}
|
|
@@ -45,42 +67,28 @@ export class AnalyticsApiContext {
|
|
|
45
67
|
}
|
|
46
68
|
else {
|
|
47
69
|
finalFilter = and(filter, validate);
|
|
48
|
-
validateFn = () =>
|
|
70
|
+
validateFn = (req, res, location) => [
|
|
71
|
+
{ location, violation: {}, findings: [] },
|
|
72
|
+
];
|
|
49
73
|
}
|
|
50
74
|
finalFilter = this.addOriginsToFilter(finalFilter);
|
|
51
75
|
const results = [];
|
|
52
76
|
for (const { request, response, } of this.repository.readTransactionsByHttpFilter(finalFilter, this.roles)) {
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
const location = httpTransactionToLabel(request.data, response.data);
|
|
56
|
-
if (violation === true) {
|
|
57
|
-
results.push({
|
|
58
|
-
location,
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
results.push({
|
|
63
|
-
location,
|
|
64
|
-
...violation,
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
}
|
|
77
|
+
const location = httpTransactionToLabel(request.data, response.data);
|
|
78
|
+
results.push(...validateFn(httpRequestToCommonHttpRequest(request.data), httpResponseToCommonHttpResponse(response.data), location));
|
|
68
79
|
}
|
|
69
|
-
return results
|
|
80
|
+
return results;
|
|
70
81
|
}
|
|
71
82
|
validateGroupedCommonHttpTransactions(filter, groupBy, validationFn) {
|
|
72
83
|
const results = [];
|
|
73
84
|
const finalFilter = this.addOriginsToFilter(filter);
|
|
74
85
|
const groups = this.repository.readAndGroupTransactionsByHttpFilter(finalFilter, groupBy, this.roles);
|
|
75
86
|
for (const [key, transactions] of groups) {
|
|
76
|
-
|
|
87
|
+
results.push(...validationFn(key, transactions.map((t) => [
|
|
77
88
|
httpRequestToCommonHttpRequest(t.request.data),
|
|
78
89
|
httpResponseToCommonHttpResponse(t.response.data),
|
|
79
90
|
httpTransactionToLabel(t.request.data, t.response.data),
|
|
80
|
-
]));
|
|
81
|
-
if (violation) {
|
|
82
|
-
results.push(violation);
|
|
83
|
-
}
|
|
91
|
+
])));
|
|
84
92
|
}
|
|
85
93
|
return results;
|
|
86
94
|
}
|
|
@@ -93,7 +101,9 @@ export class AnalyticsApiContext {
|
|
|
93
101
|
}
|
|
94
102
|
else {
|
|
95
103
|
finalFilter = and(filter, validation);
|
|
96
|
-
validateFn = () =>
|
|
104
|
+
validateFn = (req, res, location) => [
|
|
105
|
+
{ location, violation: {}, findings: [] },
|
|
106
|
+
];
|
|
97
107
|
}
|
|
98
108
|
finalFilter = this.addOriginsToFilter(finalFilter);
|
|
99
109
|
const results = [];
|
|
@@ -107,65 +117,26 @@ export class AnalyticsApiContext {
|
|
|
107
117
|
label: httpTransactionToLabel(request.data, response.data),
|
|
108
118
|
}
|
|
109
119
|
: httpTransactionToLabel(request.data, response.data);
|
|
110
|
-
|
|
111
|
-
if (violation) {
|
|
112
|
-
if (violation === true) {
|
|
113
|
-
results.push({
|
|
114
|
-
location,
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
else {
|
|
118
|
-
results.push({
|
|
119
|
-
location,
|
|
120
|
-
...violation,
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
}
|
|
120
|
+
results.push(...validateFn(request.data, response.data, location));
|
|
124
121
|
}
|
|
125
|
-
return results
|
|
122
|
+
return results;
|
|
126
123
|
}
|
|
127
124
|
validateCapturedHttpTransactions(filter, validate) {
|
|
128
125
|
const finalFilter = this.addOriginsToFilter(filter);
|
|
129
126
|
const results = [];
|
|
130
127
|
for (const transaction of this.repository.readTransactionsByHttpFilter(finalFilter, this.roles)) {
|
|
131
128
|
const location = httpTransactionToLabel(transaction.request.data, transaction.response.data);
|
|
132
|
-
|
|
133
|
-
if (violation) {
|
|
134
|
-
if (violation === true) {
|
|
135
|
-
results.push({
|
|
136
|
-
location,
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
else {
|
|
140
|
-
results.push({
|
|
141
|
-
location,
|
|
142
|
-
...violation,
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
|
-
}
|
|
129
|
+
results.push(...validate(transaction, location));
|
|
146
130
|
}
|
|
147
|
-
return results
|
|
131
|
+
return results;
|
|
148
132
|
}
|
|
149
133
|
validateCapturedHttpTraces(validate) {
|
|
150
134
|
const results = [];
|
|
151
135
|
for (const trace of this.repository.readAllHttpTraces()) {
|
|
152
136
|
const location = capturedTraceToString(trace);
|
|
153
|
-
|
|
154
|
-
if (violation) {
|
|
155
|
-
if (violation === true) {
|
|
156
|
-
results.push({
|
|
157
|
-
location,
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
else {
|
|
161
|
-
results.push({
|
|
162
|
-
location,
|
|
163
|
-
...violation,
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
}
|
|
137
|
+
results.push(...validate(trace, location));
|
|
167
138
|
}
|
|
168
|
-
return results
|
|
139
|
+
return results;
|
|
169
140
|
}
|
|
170
141
|
}
|
|
171
142
|
//# sourceMappingURL=analytics-api-context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics-api-context.js","sourceRoot":"","sources":["../src/analytics-api-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,GAAG,EAEH,qBAAqB,EAIrB,8BAA8B,
|
|
1
|
+
{"version":3,"file":"analytics-api-context.js","sourceRoot":"","sources":["../src/analytics-api-context.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type CapturedTrace, type CapturedTransaction, type EvaluatedRuleViolation, type Rule, type RulesConfiguration, type SerializedThymianFormat, type ThymianPlugin, type
|
|
1
|
+
import { type CapturedTrace, type CapturedTransaction, type EvaluatedRuleViolation, type Rule, type RulesConfiguration, type SerializedThymianFormat, type ThymianPlugin, type ToolRun } from '@thymian/core';
|
|
2
2
|
export { AnalyticsApiContext } from './analytics-api-context.js';
|
|
3
3
|
export type { HttpTransactionRepository } from './db/http-transaction-repository.js';
|
|
4
4
|
export { SqliteHttpTransactionRepository } from './db/sqlite-http-transaction-repository.js';
|
|
@@ -13,7 +13,7 @@ declare module '@thymian/core' {
|
|
|
13
13
|
rulesConfig?: RulesConfiguration;
|
|
14
14
|
};
|
|
15
15
|
response: {
|
|
16
|
-
|
|
16
|
+
runs: ToolRun[];
|
|
17
17
|
violations: EvaluatedRuleViolation[];
|
|
18
18
|
valid: boolean;
|
|
19
19
|
};
|
|
@@ -25,7 +25,7 @@ declare module '@thymian/core' {
|
|
|
25
25
|
rulesConfig?: RulesConfiguration;
|
|
26
26
|
};
|
|
27
27
|
response: {
|
|
28
|
-
|
|
28
|
+
runs: ToolRun[];
|
|
29
29
|
violations: EvaluatedRuleViolation[];
|
|
30
30
|
valid: boolean;
|
|
31
31
|
};
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,mBAAmB,EAGxB,KAAK,sBAAsB,EAG3B,KAAK,IAAI,EAET,KAAK,kBAAkB,EAKvB,KAAK,uBAAuB,EAG5B,KAAK,aAAa,EAClB,KAAK,OAAO,EACb,MAAM,eAAe,CAAC;AAKvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,YAAY,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AACrF,OAAO,EAAE,+BAA+B,EAAE,MAAM,4CAA4C,CAAC;AAE7F,OAAO,QAAQ,eAAe,CAAC;IAC7B,UAAU,cAAc;QACtB,8BAA8B,EAAE;YAC9B,KAAK,EAAE;gBACL,MAAM,CAAC,EAAE,uBAAuB,CAAC;gBACjC,YAAY,CAAC,EAAE,mBAAmB,EAAE,CAAC;gBACrC,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;gBACzB,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;gBACf,WAAW,CAAC,EAAE,kBAAkB,CAAC;aAClC,CAAC;YACF,QAAQ,EAAE;gBACR,IAAI,EAAE,OAAO,EAAE,CAAC;gBAChB,UAAU,EAAE,sBAAsB,EAAE,CAAC;gBACrC,KAAK,EAAE,OAAO,CAAC;aAChB,CAAC;SACH,CAAC;QAEF,oCAAoC,EAAE;YACpC,KAAK,EAAE;gBACL,MAAM,CAAC,EAAE,uBAAuB,CAAC;gBACjC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;gBACf,WAAW,CAAC,EAAE,kBAAkB,CAAC;aAClC,CAAC;YACF,QAAQ,EAAE;gBACR,IAAI,EAAE,OAAO,EAAE,CAAC;gBAChB,UAAU,EAAE,sBAAsB,EAAE,CAAC;gBACrC,KAAK,EAAE,OAAO,CAAC;aAChB,CAAC;SACH,CAAC;KACH;IAED,UAAU,aAAa;QACrB,2BAA2B,EAAE,mBAAmB,CAAC;QACjD,qBAAqB,EAAE,aAAa,CAAC;KACtC;CACF;AAED,MAAM,MAAM,mBAAmB,GAC3B;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B,CAAC;AA2CF,wBAAgB,wBAAwB,CACtC,UAAU,SAAkC,GAC3C,aAAa,CAAC,yBAAyB,CAAC,CAyL1C;AAED,eAAO,MAAM,kBAAkB,0CAA6B,CAAC;AAE7D,eAAe,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,17 +1,35 @@
|
|
|
1
1
|
import { isAbsolute, join } from 'node:path';
|
|
2
|
-
import { runRules, ThymianFormat, } from '@thymian/core';
|
|
2
|
+
import { createExecution, createToolRun, executionsFromRunRulesResult, rulesToRuleDescriptors, runRules, runRulesResultToViolations, ThymianFormat, } from '@thymian/core';
|
|
3
3
|
import { AnalyticsApiContext } from './analytics-api-context.js';
|
|
4
4
|
import { SqliteHttpTransactionRepository } from './db/sqlite-http-transaction-repository.js';
|
|
5
5
|
export { AnalyticsApiContext } from './analytics-api-context.js';
|
|
6
6
|
export { SqliteHttpTransactionRepository } from './db/sqlite-http-transaction-repository.js';
|
|
7
|
-
function createAnalyzerAdapter(logger,
|
|
7
|
+
function createAnalyzerAdapter(logger, format, repository) {
|
|
8
8
|
return {
|
|
9
9
|
errorName: 'AnalyzeLinterError',
|
|
10
10
|
mode: 'analytics',
|
|
11
11
|
getRuleFn: (rule) => rule.analyzeRule,
|
|
12
|
-
createContext: (rule, options) => new AnalyticsApiContext(
|
|
12
|
+
createContext: (rule, options) => new AnalyticsApiContext({
|
|
13
|
+
repository,
|
|
14
|
+
logger,
|
|
15
|
+
format,
|
|
16
|
+
roles: rule.meta.appliesTo,
|
|
17
|
+
skippedOrigins: (options ?? {}).skipOrigins,
|
|
18
|
+
}),
|
|
13
19
|
};
|
|
14
20
|
}
|
|
21
|
+
function createRuns(pluginName, format, ruleResults, _transactions = [], rules = []) {
|
|
22
|
+
const executions = executionsFromRunRulesResult(ruleResults, rules, format);
|
|
23
|
+
const ruleDescriptors = rulesToRuleDescriptors(rules, (r) => r.analyzeRule);
|
|
24
|
+
return [
|
|
25
|
+
createToolRun({
|
|
26
|
+
tool: { name: pluginName },
|
|
27
|
+
runType: 'analyze',
|
|
28
|
+
executions,
|
|
29
|
+
rules: ruleDescriptors.length > 0 ? ruleDescriptors : undefined,
|
|
30
|
+
}),
|
|
31
|
+
];
|
|
32
|
+
}
|
|
15
33
|
export function createHttpAnalyzerPlugin(pluginName = '@thymian/plugin-http-analyzer') {
|
|
16
34
|
return {
|
|
17
35
|
name: pluginName,
|
|
@@ -84,25 +102,18 @@ export function createHttpAnalyzerPlugin(pluginName = '@thymian/plugin-http-anal
|
|
|
84
102
|
for (const transaction of traffic.transactions ?? []) {
|
|
85
103
|
repo.insertHttpTransaction(transaction);
|
|
86
104
|
}
|
|
87
|
-
const
|
|
88
|
-
const { violations, statistics } = await runRules(logger, rules, thymianFormat, rulesConfig, createAnalyzerAdapter(logger, reportFn, thymianFormat, repo));
|
|
105
|
+
const ruleResults = await runRules(logger, rules, thymianFormat, rulesConfig, createAnalyzerAdapter(logger, thymianFormat, repo));
|
|
89
106
|
await repo.close();
|
|
90
|
-
ctx.reply(
|
|
91
|
-
source: pluginName,
|
|
92
|
-
status: violations.length === 0 ? 'success' : 'failed',
|
|
93
|
-
violations,
|
|
94
|
-
statistics,
|
|
95
|
-
});
|
|
107
|
+
ctx.reply(createRuns(pluginName, thymianFormat, ruleResults, traffic.transactions ?? [], rules));
|
|
96
108
|
});
|
|
97
109
|
emitter.onAction('http-analyzer.lint-analytics-batch', async ({ format, rules = [], rulesConfig = {} }, ctx) => {
|
|
98
110
|
const thymianFormat = format
|
|
99
111
|
? ThymianFormat.import(format)
|
|
100
112
|
: new ThymianFormat();
|
|
101
|
-
const
|
|
102
|
-
const
|
|
103
|
-
const { violations } = await runRules(logger, rules, thymianFormat, rulesConfig, createAnalyzerAdapter(logger, reportFn, thymianFormat, initializedRepository));
|
|
113
|
+
const ruleResults = await runRules(logger, rules, thymianFormat, rulesConfig, createAnalyzerAdapter(logger, thymianFormat, initializedRepository));
|
|
114
|
+
const violations = runRulesResultToViolations(ruleResults, rules);
|
|
104
115
|
ctx.reply({
|
|
105
|
-
|
|
116
|
+
runs: createRuns(pluginName, thymianFormat, ruleResults, [], rules),
|
|
106
117
|
violations,
|
|
107
118
|
valid: violations.length === 0,
|
|
108
119
|
});
|
|
@@ -119,11 +130,11 @@ export function createHttpAnalyzerPlugin(pluginName = '@thymian/plugin-http-anal
|
|
|
119
130
|
const thymianFormat = format
|
|
120
131
|
? ThymianFormat.import(format)
|
|
121
132
|
: new ThymianFormat();
|
|
122
|
-
const
|
|
123
|
-
const
|
|
124
|
-
|
|
133
|
+
const ruleResults = await runRules(logger, rules, thymianFormat, rulesConfig, createAnalyzerAdapter(logger, thymianFormat, repo));
|
|
134
|
+
const violations = runRulesResultToViolations(ruleResults, rules);
|
|
135
|
+
await repo.close();
|
|
125
136
|
ctx.reply({
|
|
126
|
-
|
|
137
|
+
runs: createRuns(pluginName, thymianFormat, ruleResults, transactions ?? [], rules),
|
|
127
138
|
violations,
|
|
128
139
|
valid: violations.length === 0,
|
|
129
140
|
});
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thymian/plugin-http-analyzer",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.11-canary.20260625-39589d8",
|
|
4
4
|
"description": "Thymian plugin for analyzing captured HTTP traffic against conformance rules",
|
|
5
5
|
"license": "AGPL-3.0-only",
|
|
6
6
|
"bugs": {
|
|
@@ -41,12 +41,12 @@
|
|
|
41
41
|
"!**/*.tsbuildinfo"
|
|
42
42
|
],
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@thymian/core": "0.1.
|
|
44
|
+
"@thymian/core": "0.1.11-canary.20260625-39589d8",
|
|
45
45
|
"better-sqlite3": "^12.9.0",
|
|
46
46
|
"tslib": "^2.3.0"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
|
-
"@thymian/core-testing": "0.1.
|
|
49
|
+
"@thymian/core-testing": "0.1.11-canary.20260625-39589d8",
|
|
50
50
|
"@types/better-sqlite3": "^7.6.12"
|
|
51
51
|
}
|
|
52
52
|
}
|