@thymian/plugin-http-linter 0.1.10 → 0.1.11-canary.20260624-288c194

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 CHANGED
@@ -1,4 +1,4 @@
1
- import { type EvaluatedRuleViolation, type Rule, type RulesConfiguration, type SerializedThymianFormat, type ThymianPlugin, type ThymianReport } from '@thymian/core';
1
+ import { type EvaluatedRuleViolation, type Rule, type RulesConfiguration, type SerializedThymianFormat, type ThymianPlugin, type ToolRun } from '@thymian/core';
2
2
  export { StaticApiContext } from './static-api-context.js';
3
3
  declare module '@thymian/core' {
4
4
  interface ThymianActions {
@@ -19,7 +19,7 @@ declare module '@thymian/core' {
19
19
  rulesConfig?: RulesConfiguration;
20
20
  };
21
21
  response: {
22
- reports: ThymianReport[];
22
+ runs: ToolRun[];
23
23
  violations: EvaluatedRuleViolation[];
24
24
  valid: boolean;
25
25
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,IAAI,EAET,KAAK,kBAAkB,EAEvB,KAAK,uBAAuB,EAG5B,KAAK,aAAa,EAClB,KAAK,aAAa,EACnB,MAAM,eAAe,CAAC;AAIvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,QAAQ,eAAe,CAAC;IAC7B,UAAU,cAAc;QACtB,wBAAwB,EAAE;YACxB,KAAK,EAAE;gBAAE,KAAK,EAAE,MAAM,EAAE,CAAA;aAAE,CAAC;YAC3B,QAAQ,EAAE,IAAI,CAAC;SAChB,CAAC;QAEF,mBAAmB,EAAE;YACnB,KAAK,EAAE,KAAK,CAAC;YACb,QAAQ,EAAE,IAAI,EAAE,CAAC;SAClB,CAAC;QAEF,yBAAyB,EAAE;YACzB,KAAK,EAAE;gBACL,MAAM,EAAE,uBAAuB,CAAC;gBAChC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;gBACf,WAAW,CAAC,EAAE,kBAAkB,CAAC;aAClC,CAAC;YACF,QAAQ,EAAE;gBACR,OAAO,EAAE,aAAa,EAAE,CAAC;gBACzB,UAAU,EAAE,sBAAsB,EAAE,CAAC;gBACrC,KAAK,EAAE,OAAO,CAAC;aAChB,CAAC;SACH,CAAC;KACH;CACF;AAyBD,wBAAgB,sBAAsB,CACpC,UAAU,SAAgC,GACzC,aAAa,CA0Ef;AAED,eAAO,MAAM,gBAAgB,eAA2B,CAAC;AAEzD,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,sBAAsB,EAE3B,KAAK,IAAI,EAET,KAAK,kBAAkB,EAKvB,KAAK,uBAAuB,EAG5B,KAAK,aAAa,EAClB,KAAK,OAAO,EACb,MAAM,eAAe,CAAC;AAIvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,QAAQ,eAAe,CAAC;IAC7B,UAAU,cAAc;QACtB,wBAAwB,EAAE;YACxB,KAAK,EAAE;gBAAE,KAAK,EAAE,MAAM,EAAE,CAAA;aAAE,CAAC;YAC3B,QAAQ,EAAE,IAAI,CAAC;SAChB,CAAC;QAEF,mBAAmB,EAAE;YACnB,KAAK,EAAE,KAAK,CAAC;YACb,QAAQ,EAAE,IAAI,EAAE,CAAC;SAClB,CAAC;QAEF,yBAAyB,EAAE;YACzB,KAAK,EAAE;gBACL,MAAM,EAAE,uBAAuB,CAAC;gBAChC,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;CACF;AAsCD,wBAAgB,sBAAsB,CACpC,UAAU,SAAgC,GACzC,aAAa,CAuDf;AAED,eAAO,MAAM,gBAAgB,eAA2B,CAAC;AAEzD,eAAe,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -1,14 +1,26 @@
1
- import { runRules, ThymianFormat, } from '@thymian/core';
1
+ import { createToolRun, executionsFromRunRulesResult, rulesToRuleDescriptors, runRules, runRulesResultToViolations, ThymianFormat, } from '@thymian/core';
2
2
  import { StaticApiContext } from './static-api-context.js';
3
3
  export { StaticApiContext } from './static-api-context.js';
4
- function createStaticLinterAdapter(logger, reportFn, format, rulesConfig) {
4
+ function createStaticLinterAdapter(logger, format, rulesConfig) {
5
5
  return {
6
6
  errorName: 'StaticLinterError',
7
7
  mode: 'static',
8
8
  getRuleFn: (rule) => rule.lintRule,
9
- createContext: (_rule, options) => new StaticApiContext(format, logger, reportFn, (options ?? {}).skipOrigins),
9
+ createContext: (_rule, options) => new StaticApiContext(format, logger, (options ?? {}).skipOrigins),
10
10
  };
11
11
  }
12
+ function createRuns(pluginName, format, ruleResults, rules = []) {
13
+ const executions = executionsFromRunRulesResult(ruleResults, rules, format);
14
+ const ruleDescriptors = rulesToRuleDescriptors(rules, (r) => r.lintRule);
15
+ return [
16
+ createToolRun({
17
+ tool: { name: pluginName },
18
+ runType: 'lint',
19
+ executions,
20
+ rules: ruleDescriptors.length > 0 ? ruleDescriptors : undefined,
21
+ }),
22
+ ];
23
+ }
12
24
  export function createHttpLinterPlugin(pluginName = '@thymian/plugin-http-linter') {
13
25
  return {
14
26
  name: pluginName,
@@ -19,22 +31,15 @@ export function createHttpLinterPlugin(pluginName = '@thymian/plugin-http-linter
19
31
  async plugin(emitter, logger) {
20
32
  emitter.onAction('core.lint', async ({ format, rules = [], rulesConfig = {} }, ctx) => {
21
33
  const thymianFormat = ThymianFormat.import(format);
22
- const reportFn = (report) => emitter.emit('core.report', report);
23
- const { violations, statistics } = await runRules(logger, rules, thymianFormat, rulesConfig, createStaticLinterAdapter(logger, reportFn, thymianFormat, rulesConfig));
24
- ctx.reply({
25
- source: pluginName,
26
- status: violations.length === 0 ? 'success' : 'failed',
27
- violations,
28
- statistics,
29
- });
34
+ const ruleResults = await runRules(logger, rules, thymianFormat, rulesConfig, createStaticLinterAdapter(logger, thymianFormat, rulesConfig));
35
+ ctx.reply(createRuns(pluginName, thymianFormat, ruleResults, rules));
30
36
  });
31
37
  emitter.onAction('http-linter.lint-static', async ({ format, rules = [], rulesConfig = {} }, ctx) => {
32
38
  const thymianFormat = ThymianFormat.import(format);
33
- const reports = [];
34
- const reportFn = (report) => reports.push(report);
35
- const { violations } = await runRules(logger, rules, thymianFormat, rulesConfig, createStaticLinterAdapter(logger, reportFn, thymianFormat, rulesConfig));
39
+ const ruleResults = await runRules(logger, rules, thymianFormat, rulesConfig, createStaticLinterAdapter(logger, thymianFormat, rulesConfig));
40
+ const violations = runRulesResultToViolations(ruleResults, rules);
36
41
  ctx.reply({
37
- reports,
42
+ runs: createRuns(pluginName, thymianFormat, ruleResults, rules),
38
43
  violations,
39
44
  valid: violations.length === 0,
40
45
  });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,QAAQ,EAGR,aAAa,GAGd,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AA6B3D,SAAS,yBAAyB,CAChC,MAAsC,EACtC,QAAyC,EACzC,MAAqB,EACrB,WAA+B;IAE/B,OAAO;QACL,SAAS,EAAE,mBAAmB;QAC9B,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,CAAC,IAAU,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ;QACxC,aAAa,EAAE,CACb,KAAW,EACX,OAA4C,EAC5C,EAAE,CACF,IAAI,gBAAgB,CAClB,MAAM,EACN,MAAM,EACN,QAAQ,EACR,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,WAAW,CAC5B;KACJ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,UAAU,GAAG,6BAA6B;IAE1C,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,KAAK;QACd,OAAO,EAAE;YACP,SAAS,EAAE,CAAC,WAAW,CAAC;SACzB;QACD,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM;YAC1B,OAAO,CAAC,QAAQ,CACd,WAAW,EACX,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,WAAW,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;gBACtD,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACnD,MAAM,QAAQ,GAAG,CAAC,MAAqB,EAAE,EAAE,CACzC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;gBAEtC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,MAAM,QAAQ,CAC/C,MAAM,EACN,KAAK,EACL,aAAa,EACb,WAAW,EACX,yBAAyB,CACvB,MAAM,EACN,QAAQ,EACR,aAAa,EACb,WAAW,CACZ,CACF,CAAC;gBAEF,GAAG,CAAC,KAAK,CAAC;oBACR,MAAM,EAAE,UAAU;oBAClB,MAAM,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;oBACtD,UAAU;oBACV,UAAU;iBACX,CAAC,CAAC;YACL,CAAC,CACF,CAAC;YAEF,OAAO,CAAC,QAAQ,CACd,yBAAyB,EACzB,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,WAAW,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;gBACtD,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACnD,MAAM,OAAO,GAAoB,EAAE,CAAC;gBACpC,MAAM,QAAQ,GAAG,CAAC,MAAqB,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAEjE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,QAAQ,CACnC,MAAM,EACN,KAAK,EACL,aAAa,EACb,WAAW,EACX,yBAAyB,CACvB,MAAM,EACN,QAAQ,EACR,aAAa,EACb,WAAW,CACZ,CACF,CAAC;gBAEF,GAAG,CAAC,KAAK,CAAC;oBACR,OAAO;oBACP,UAAU;oBACV,KAAK,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC;iBAC/B,CAAC,CAAC;YACL,CAAC,CACF,CAAC;YAEF,OAAO,CAAC,QAAQ,CAAC,wBAAwB,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;gBAC1D,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;gBAC/C,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,sBAAsB,EAAE,CAAC;AAEzD,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,26 +1,22 @@
1
- import { type CommonHttpRequest, type CommonHttpResponse, type HttpFilterExpression, type LintContext, type Logger, type PartialBy, type ReportFn, type RuleFnResult, type RuleViolation, type RuleViolationLocation, ThymianFormat, type ThymianHttpRequest, type ThymianHttpResponse, type ValidationFn } from '@thymian/core';
1
+ import { type CommonHttpRequest, type CommonHttpResponse, type HttpFilterExpression, type LintContext, type Logger, type RuleFinding, type RuleFnResult, type RuleViolation, type RuleViolationLocation, ThymianFormat, type ThymianHttpRequest, type ThymianHttpResponse, type ValidationFn } from '@thymian/core';
2
2
  export declare class StaticApiContext implements LintContext {
3
3
  private readonly logger;
4
- private readonly skippedOrigins;
5
4
  readonly format: ThymianFormat;
6
- readonly report: ReportFn;
7
- private readonly violations;
8
- constructor(format: ThymianFormat, logger: Logger, report?: ReportFn, skippedOrigins?: string[]);
9
- reportViolation(violation: RuleViolation): void;
5
+ private readonly skippedOrigins;
6
+ constructor(format: ThymianFormat, logger: Logger, reportOrSkippedOrigins?: (() => void) | string[], legacySkippedOrigins?: string[]);
10
7
  getRuleExecutionDiagnostics(): undefined;
11
8
  validateCommonHttpTransactions(filter: HttpFilterExpression, validate?: ValidationFn<[
12
9
  CommonHttpRequest,
13
10
  CommonHttpResponse,
14
11
  RuleViolationLocation
15
- ]> | HttpFilterExpression): RuleFnResult;
12
+ ]> | HttpFilterExpression): RuleFnResult[];
16
13
  validateGroupedCommonHttpTransactions(filter: HttpFilterExpression, groupBy: HttpFilterExpression, validationFn: ValidationFn<[
17
14
  string,
18
- [
19
- CommonHttpRequest,
20
- CommonHttpResponse,
21
- RuleViolationLocation
22
- ][]
23
- ], RuleViolation | undefined>): RuleFnResult;
24
- validateHttpTransactions(filterFn: (req: ThymianHttpRequest, res: ThymianHttpResponse, responses: ThymianHttpResponse[]) => boolean, validationFn?: (req: ThymianHttpRequest, res: ThymianHttpResponse, responses: ThymianHttpResponse[]) => PartialBy<RuleViolation, 'location'> | boolean): RuleFnResult;
15
+ [CommonHttpRequest, CommonHttpResponse, RuleViolationLocation][]
16
+ ]>): RuleFnResult[];
17
+ validateHttpTransactions(filterFn: (req: ThymianHttpRequest, res: ThymianHttpResponse, responses: ThymianHttpResponse[]) => boolean, validationFn?: (req: ThymianHttpRequest, res: ThymianHttpResponse, responses: ThymianHttpResponse[]) => {
18
+ violation?: RuleViolation;
19
+ findings?: RuleFinding[];
20
+ } | boolean): RuleFnResult[];
25
21
  }
26
22
  //# sourceMappingURL=static-api-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"static-api-context.d.ts","sourceRoot":"","sources":["../src/static-api-context.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EAEvB,KAAK,oBAAoB,EAEzB,KAAK,WAAW,EAChB,KAAK,MAAM,EACX,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EAKxB,KAAK,YAAY,EAClB,MAAM,eAAe,CAAC;AAKvB,qBAAa,gBAAiB,YAAW,WAAW;IAOhD,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,cAAc;IARjC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuB;gBAGhD,MAAM,EAAE,aAAa,EACJ,MAAM,EAAE,MAAM,EAC/B,MAAM,GAAE,QAA0B,EACjB,cAAc,GAAE,MAAM,EAAO;IAkBhD,eAAe,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI;IAI/C,2BAA2B,IAAI,SAAS;IAIxC,8BAA8B,CAC5B,MAAM,EAAE,oBAAoB,EAC5B,QAAQ,GACJ,YAAY,CACV;QAAC,iBAAiB;QAAE,kBAAkB;QAAE,qBAAqB;KAAC,CAC/D,GACD,oBAA6B,GAChC,YAAY;IA2Df,qCAAqC,CACnC,MAAM,EAAE,oBAAoB,EAC5B,OAAO,EAAE,oBAAoB,EAC7B,YAAY,EAAE,YAAY,CACxB;QACE,MAAM;QACN;YAAC,iBAAiB;YAAE,kBAAkB;YAAE,qBAAqB;SAAC,EAAE;KACjE,EACD,aAAa,GAAG,SAAS,CAC1B,GACA,YAAY;IA+Cf,wBAAwB,CACtB,QAAQ,EAAE,CACR,GAAG,EAAE,kBAAkB,EACvB,GAAG,EAAE,mBAAmB,EACxB,SAAS,EAAE,mBAAmB,EAAE,KAC7B,OAAO,EACZ,YAAY,GAAE,CACZ,GAAG,EAAE,kBAAkB,EACvB,GAAG,EAAE,mBAAmB,EACxB,SAAS,EAAE,mBAAmB,EAAE,KAC7B,SAAS,CAAC,aAAa,EAAE,UAAU,CAAC,GAAG,OAAkB,GAC7D,YAAY;CA+ChB"}
1
+ {"version":3,"file":"static-api-context.d.ts","sourceRoot":"","sources":["../src/static-api-context.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EAEvB,KAAK,oBAAoB,EAEzB,KAAK,WAAW,EAChB,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EAKxB,KAAK,YAAY,EAClB,MAAM,eAAe,CAAC;AAKvB,qBAAa,gBAAiB,YAAW,WAAW;IAMhD,OAAO,CAAC,QAAQ,CAAC,MAAM;IALzB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAW;gBAGxC,MAAM,EAAE,aAAa,EACJ,MAAM,EAAE,MAAM,EAC/B,sBAAsB,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,MAAM,EAAE,EAChD,oBAAoB,GAAE,MAAM,EAAO;IAoBrC,2BAA2B,IAAI,SAAS;IAIxC,8BAA8B,CAC5B,MAAM,EAAE,oBAAoB,EAC5B,QAAQ,GACJ,YAAY,CACV;QAAC,iBAAiB;QAAE,kBAAkB;QAAE,qBAAqB;KAAC,CAC/D,GACD,oBAA6B,GAChC,YAAY,EAAE;IAyCjB,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,YAAY,EAAE;IA0CjB,wBAAwB,CACtB,QAAQ,EAAE,CACR,GAAG,EAAE,kBAAkB,EACvB,GAAG,EAAE,mBAAmB,EACxB,SAAS,EAAE,mBAAmB,EAAE,KAC7B,OAAO,EACZ,YAAY,GAAE,CACZ,GAAG,EAAE,kBAAkB,EACvB,GAAG,EAAE,mBAAmB,EACxB,SAAS,EAAE,mBAAmB,EAAE,KAE9B;QAAE,SAAS,CAAC,EAAE,aAAa,CAAC;QAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAA;KAAE,GACvD,OAAkB,GACrB,YAAY,EAAE;CAmDlB"}
@@ -3,72 +3,52 @@ import { httpFilterExpressionToFilter } from './visitors/http-filter-expression-
3
3
  import { httpFilterToGroupByFn } from './visitors/http-filter-to-static-by-fn.js';
4
4
  export class StaticApiContext {
5
5
  logger;
6
- skippedOrigins;
7
6
  format;
8
- report;
9
- violations = [];
10
- constructor(format, logger, report = () => undefined, skippedOrigins = []) {
7
+ skippedOrigins;
8
+ constructor(format, logger, reportOrSkippedOrigins, legacySkippedOrigins = []) {
11
9
  this.logger = logger;
10
+ const skippedOrigins = Array.isArray(reportOrSkippedOrigins)
11
+ ? reportOrSkippedOrigins
12
+ : legacySkippedOrigins;
12
13
  this.skippedOrigins = skippedOrigins;
13
- this.report = report;
14
- if (skippedOrigins.length === 0) {
14
+ if (this.skippedOrigins.length === 0) {
15
15
  this.format = format;
16
16
  }
17
17
  else {
18
- const regExps = skippedOrigins.map(createRegExpFromOriginWildcard);
18
+ const regExps = this.skippedOrigins.map(createRegExpFromOriginWildcard);
19
19
  this.format = format.filter(({ thymianReq }) => !regExps.some((regExp) => regExp.test(thymianRequestToOrigin(thymianReq))));
20
20
  }
21
21
  }
22
- reportViolation(violation) {
23
- this.violations.push(violation);
24
- }
25
22
  getRuleExecutionDiagnostics() {
26
23
  return undefined;
27
24
  }
28
25
  validateCommonHttpTransactions(filter, validate = filter) {
29
26
  const filterFn = httpFilterExpressionToFilter(filter);
30
- return this.format
27
+ const rawEntries = this.format
31
28
  .getThymianHttpTransactions()
32
29
  .filter((transaction) => filterFn(transaction, this.format))
33
- .reduce((violations, transaction) => {
30
+ .flatMap((transaction) => {
31
+ const location = {
32
+ elementType: 'edge',
33
+ elementId: transaction.transactionId,
34
+ };
34
35
  if (typeof validate === 'function') {
35
- const validationResult = validate(thymianToCommonHttpRequest(transaction.thymianReq, transaction.thymianReqId), thymianToCommonHttpResponse(transaction.thymianRes, transaction.thymianResId), {
36
- elementType: 'edge',
37
- elementId: transaction.transactionId,
38
- });
39
- if (typeof validationResult === 'boolean' && validationResult) {
40
- violations.push({
41
- location: {
42
- elementType: 'edge',
43
- elementId: transaction.transactionId,
44
- },
45
- });
46
- }
47
- if (validationResult && typeof validationResult === 'object') {
48
- violations.push({
49
- location: {
50
- elementType: 'edge',
51
- elementId: transaction.transactionId,
52
- },
53
- ...validationResult,
54
- });
55
- }
36
+ return validate(thymianToCommonHttpRequest(transaction.thymianReq, transaction.thymianReqId), thymianToCommonHttpResponse(transaction.thymianRes, transaction.thymianResId), location);
56
37
  }
57
38
  else {
58
39
  const validateFn = httpFilterExpressionToFilter(validate);
59
- if (validateFn(transaction, this.format)) {
60
- violations.push({
61
- location: {
62
- elementType: 'edge',
63
- elementId: transaction.transactionId,
64
- pointer: '',
40
+ return validateFn(transaction, this.format)
41
+ ? [
42
+ {
43
+ location: { ...location, pointer: '' },
44
+ violation: {},
45
+ findings: [],
65
46
  },
66
- });
67
- }
47
+ ]
48
+ : [];
68
49
  }
69
- return violations;
70
- }, [])
71
- .concat(this.violations);
50
+ });
51
+ return rawEntries;
72
52
  }
73
53
  validateGroupedCommonHttpTransactions(filter, groupBy, validationFn) {
74
54
  const filterFn = httpFilterExpressionToFilter(filter);
@@ -81,28 +61,20 @@ export class StaticApiContext {
81
61
  (groups[key] ??= []).push(transaction);
82
62
  return groups;
83
63
  }, {});
84
- return Object.entries(groups)
85
- .reduce((violations, [key, group]) => {
86
- const validationResult = validationFn(key, group.map(({ thymianReq, thymianRes, thymianReqId, thymianResId, transactionId, }) => [
87
- thymianToCommonHttpRequest(thymianReq, thymianReqId),
88
- thymianToCommonHttpResponse(thymianRes, thymianResId),
89
- {
90
- elementType: 'edge',
91
- elementId: transactionId,
92
- },
93
- ]));
94
- if (validationResult) {
95
- violations.push(validationResult);
96
- }
97
- return violations;
98
- }, [])
99
- .concat(this.violations);
64
+ const rawEntries = Object.entries(groups).flatMap(([key, group]) => validationFn(key, group.map(({ thymianReq, thymianRes, thymianReqId, thymianResId, transactionId, }) => [
65
+ thymianToCommonHttpRequest(thymianReq, thymianReqId),
66
+ thymianToCommonHttpResponse(thymianRes, thymianResId),
67
+ {
68
+ elementType: 'edge',
69
+ elementId: transactionId,
70
+ },
71
+ ])));
72
+ return rawEntries;
100
73
  }
101
74
  validateHttpTransactions(filterFn, validationFn = filterFn) {
102
- return this.format.graph
103
- .reduceNodes((violations, id, node) => {
75
+ const rawEntries = this.format.graph.reduceNodes((acc, id, node) => {
104
76
  if (!isNodeType(node, 'http-request')) {
105
- return violations;
77
+ return acc;
106
78
  }
107
79
  const responsesWithIds = this.format.getHttpResponsesOf(id);
108
80
  const responses = responsesWithIds.map(([, res]) => res);
@@ -113,28 +85,29 @@ export class StaticApiContext {
113
85
  if (!transactionId) {
114
86
  throw new Error('Invalid HTTP transaction ID.');
115
87
  }
116
- if (typeof result === 'boolean' && result) {
117
- violations.push({
118
- location: {
119
- elementType: 'edge',
120
- elementId: transactionId,
121
- },
122
- });
88
+ const location = {
89
+ elementType: 'edge',
90
+ elementId: transactionId,
91
+ };
92
+ if (result === true) {
93
+ acc.push({ location, violation: {}, findings: [] });
123
94
  }
124
- else if (result) {
125
- violations.push({
126
- location: {
127
- elementType: 'edge',
128
- elementId: transactionId,
129
- },
130
- ...result,
131
- });
95
+ else if (result !== false &&
96
+ result !== undefined &&
97
+ result !== null) {
98
+ if (result.violation !== undefined) {
99
+ acc.push({
100
+ location,
101
+ violation: result.violation,
102
+ findings: result.findings ?? [],
103
+ });
104
+ }
132
105
  }
133
106
  }
134
107
  }
135
- return violations;
136
- }, [])
137
- .concat(this.violations);
108
+ return acc;
109
+ }, []);
110
+ return rawEntries;
138
111
  }
139
112
  }
140
113
  //# sourceMappingURL=static-api-context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"static-api-context.js","sourceRoot":"","sources":["../src/static-api-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"static-api-context.js","sourceRoot":"","sources":["../src/static-api-context.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thymian/plugin-http-linter",
3
- "version": "0.1.10",
3
+ "version": "0.1.11-canary.20260624-288c194",
4
4
  "description": "Thymian plugin for static linting of API descriptions against HTTP conformance rules",
5
5
  "license": "AGPL-3.0-only",
6
6
  "bugs": {
@@ -41,10 +41,10 @@
41
41
  "!**/*.tsbuildinfo"
42
42
  ],
43
43
  "dependencies": {
44
- "@thymian/core": "0.1.10",
44
+ "@thymian/core": "0.1.11-canary.20260624-288c194",
45
45
  "tslib": "^2.3.0"
46
46
  },
47
47
  "devDependencies": {
48
- "@thymian/core-testing": "0.1.10"
48
+ "@thymian/core-testing": "0.1.11-canary.20260624-288c194"
49
49
  }
50
50
  }