flowlint 0.5.3 → 0.6.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.
Files changed (108) hide show
  1. package/README.md +45 -355
  2. package/dist/cli.js +8053 -21
  3. package/dist/cli.js.map +1 -1
  4. package/package.json +52 -57
  5. package/dist/cli.d.ts +0 -8
  6. package/dist/commands/init.d.ts +0 -8
  7. package/dist/commands/init.js +0 -34
  8. package/dist/commands/init.js.map +0 -1
  9. package/dist/commands/scan.d.ts +0 -11
  10. package/dist/commands/scan.js +0 -104
  11. package/dist/commands/scan.js.map +0 -1
  12. package/dist/packages/config/flowlint-config.d.ts +0 -73
  13. package/dist/packages/config/flowlint-config.js +0 -120
  14. package/dist/packages/config/flowlint-config.js.map +0 -1
  15. package/dist/packages/config/index.d.ts +0 -4
  16. package/dist/packages/config/index.js +0 -21
  17. package/dist/packages/config/index.js.map +0 -1
  18. package/dist/packages/github/client.d.ts +0 -2
  19. package/dist/packages/github/client.js +0 -94
  20. package/dist/packages/github/client.js.map +0 -1
  21. package/dist/packages/logger/index.d.ts +0 -11
  22. package/dist/packages/logger/index.js +0 -40
  23. package/dist/packages/logger/index.js.map +0 -1
  24. package/dist/packages/observability/collectors.d.ts +0 -40
  25. package/dist/packages/observability/collectors.js +0 -75
  26. package/dist/packages/observability/collectors.js.map +0 -1
  27. package/dist/packages/observability/index.d.ts +0 -10
  28. package/dist/packages/observability/index.js +0 -35
  29. package/dist/packages/observability/index.js.map +0 -1
  30. package/dist/packages/observability/metrics.d.ts +0 -119
  31. package/dist/packages/observability/metrics.js +0 -194
  32. package/dist/packages/observability/metrics.js.map +0 -1
  33. package/dist/packages/observability/middleware.d.ts +0 -32
  34. package/dist/packages/observability/middleware.js +0 -58
  35. package/dist/packages/observability/middleware.js.map +0 -1
  36. package/dist/packages/review/analysis-engine.d.ts +0 -19
  37. package/dist/packages/review/analysis-engine.js +0 -111
  38. package/dist/packages/review/analysis-engine.js.map +0 -1
  39. package/dist/packages/review/index.d.ts +0 -12
  40. package/dist/packages/review/index.js +0 -29
  41. package/dist/packages/review/index.js.map +0 -1
  42. package/dist/packages/review/parser-n8n.d.ts +0 -2
  43. package/dist/packages/review/parser-n8n.js +0 -122
  44. package/dist/packages/review/parser-n8n.js.map +0 -1
  45. package/dist/packages/review/providers/github.d.ts +0 -62
  46. package/dist/packages/review/providers/github.js +0 -275
  47. package/dist/packages/review/providers/github.js.map +0 -1
  48. package/dist/packages/review/providers.d.ts +0 -106
  49. package/dist/packages/review/providers.js +0 -12
  50. package/dist/packages/review/providers.js.map +0 -1
  51. package/dist/packages/review/reporter.d.ts +0 -17
  52. package/dist/packages/review/reporter.js +0 -59
  53. package/dist/packages/review/reporter.js.map +0 -1
  54. package/dist/packages/review/rules/index.d.ts +0 -9
  55. package/dist/packages/review/rules/index.js +0 -415
  56. package/dist/packages/review/rules/index.js.map +0 -1
  57. package/dist/packages/review/rules/rule-utils.d.ts +0 -36
  58. package/dist/packages/review/rules/rule-utils.js +0 -75
  59. package/dist/packages/review/rules/rule-utils.js.map +0 -1
  60. package/dist/packages/review/schemas/index.d.ts +0 -17
  61. package/dist/packages/review/schemas/index.js +0 -167
  62. package/dist/packages/review/schemas/index.js.map +0 -1
  63. package/dist/packages/review/schemas/n8n-workflow.schema.json +0 -177
  64. package/dist/packages/review/sniffer.d.ts +0 -15
  65. package/dist/packages/review/sniffer.js +0 -47
  66. package/dist/packages/review/sniffer.js.map +0 -1
  67. package/dist/packages/review/types.d.ts +0 -40
  68. package/dist/packages/review/types.js +0 -3
  69. package/dist/packages/review/types.js.map +0 -1
  70. package/dist/packages/review/utils/findings.d.ts +0 -23
  71. package/dist/packages/review/utils/findings.js +0 -34
  72. package/dist/packages/review/utils/findings.js.map +0 -1
  73. package/dist/packages/review/utils/merge.d.ts +0 -12
  74. package/dist/packages/review/utils/merge.js +0 -40
  75. package/dist/packages/review/utils/merge.js.map +0 -1
  76. package/dist/packages/review/utils.d.ts +0 -60
  77. package/dist/packages/review/utils.js +0 -214
  78. package/dist/packages/review/utils.js.map +0 -1
  79. package/dist/packages/tracing/github-tracer.d.ts +0 -38
  80. package/dist/packages/tracing/github-tracer.js +0 -79
  81. package/dist/packages/tracing/github-tracer.js.map +0 -1
  82. package/dist/packages/tracing/index.d.ts +0 -81
  83. package/dist/packages/tracing/index.js +0 -240
  84. package/dist/packages/tracing/index.js.map +0 -1
  85. package/dist/packages/tracing/tracer.d.ts +0 -30
  86. package/dist/packages/tracing/tracer.js +0 -141
  87. package/dist/packages/tracing/tracer.js.map +0 -1
  88. package/dist/providers/local-config-provider.d.ts +0 -11
  89. package/dist/providers/local-config-provider.js +0 -39
  90. package/dist/providers/local-config-provider.js.map +0 -1
  91. package/dist/providers/local-file-source.d.ts +0 -13
  92. package/dist/providers/local-file-source.js +0 -47
  93. package/dist/providers/local-file-source.js.map +0 -1
  94. package/dist/reporters/console-reporter.d.ts +0 -8
  95. package/dist/reporters/console-reporter.js +0 -75
  96. package/dist/reporters/console-reporter.js.map +0 -1
  97. package/dist/reporters/github-actions-reporter.d.ts +0 -30
  98. package/dist/reporters/github-actions-reporter.js +0 -104
  99. package/dist/reporters/github-actions-reporter.js.map +0 -1
  100. package/dist/reporters/json-reporter.d.ts +0 -14
  101. package/dist/reporters/json-reporter.js +0 -57
  102. package/dist/reporters/json-reporter.js.map +0 -1
  103. package/dist/reporters/junit-reporter.d.ts +0 -25
  104. package/dist/reporters/junit-reporter.js +0 -142
  105. package/dist/reporters/junit-reporter.js.map +0 -1
  106. package/dist/reporters/sarif-reporter.d.ts +0 -21
  107. package/dist/reporters/sarif-reporter.js +0 -125
  108. package/dist/reporters/sarif-reporter.js.map +0 -1
@@ -1,240 +0,0 @@
1
- "use strict";
2
- /**
3
- * FlowLint Distributed Tracing Package
4
- *
5
- * Provides OpenTelemetry-based distributed tracing for FlowLint.
6
- * Tracks request flow from webhook reception through job processing to Check Run creation.
7
- *
8
- * @module packages/tracing
9
- */
10
- Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.GitHubApiAttributes = exports.traceGitHubApiCall = exports.shutdownTracing = exports.initTracing = exports.propagation = exports.context = exports.trace = exports.SpanStatusCode = exports.SpanNames = void 0;
12
- exports.getTracerInstance = getTracerInstance;
13
- exports.startSpan = startSpan;
14
- exports.startServerSpan = startServerSpan;
15
- exports.startClientSpan = startClientSpan;
16
- exports.withSpan = withSpan;
17
- exports.withSpanSync = withSpanSync;
18
- exports.withServerSpan = withServerSpan;
19
- exports.withClientSpan = withClientSpan;
20
- exports.addSpanEvent = addSpanEvent;
21
- exports.setSpanAttributes = setSpanAttributes;
22
- exports.recordSpanException = recordSpanException;
23
- exports.getActiveSpan = getActiveSpan;
24
- exports.getActiveContext = getActiveContext;
25
- const api_1 = require("@opentelemetry/api");
26
- Object.defineProperty(exports, "SpanStatusCode", { enumerable: true, get: function () { return api_1.SpanStatusCode; } });
27
- Object.defineProperty(exports, "context", { enumerable: true, get: function () { return api_1.context; } });
28
- Object.defineProperty(exports, "trace", { enumerable: true, get: function () { return api_1.trace; } });
29
- Object.defineProperty(exports, "propagation", { enumerable: true, get: function () { return api_1.propagation; } });
30
- const tracer_1 = require("./tracer");
31
- /**
32
- * Trace span names following OpenTelemetry semantic conventions
33
- */
34
- exports.SpanNames = {
35
- WEBHOOK_RECEIVED: 'webhook.received',
36
- WEBHOOK_VERIFY_SIGNATURE: 'webhook.verify_signature',
37
- JOB_ENQUEUED: 'job.enqueued',
38
- JOB_PROCESSED: 'job.processed',
39
- JOB_FETCH_FILES: 'job.fetch_files',
40
- JOB_LOAD_CONFIG: 'job.load_config',
41
- JOB_PARSE_WORKFLOW: 'job.parse_workflow',
42
- JOB_RUN_RULES: 'job.run_rules',
43
- JOB_CREATE_CHECK_RUN: 'job.create_check_run',
44
- GITHUB_API_CALL: 'github.api_call',
45
- LINT_RULE_EXECUTE: 'lint.rule.execute',
46
- REDIS_OPERATION: 'redis.operation',
47
- };
48
- /**
49
- * Get the configured tracer instance
50
- */
51
- function getTracerInstance() {
52
- return (0, tracer_1.getTracer)();
53
- }
54
- /**
55
- * Start a new span with the given name and attributes
56
- */
57
- function startSpan(name, attributes, parentContext) {
58
- const tracer = (0, tracer_1.getTracer)();
59
- const ctx = parentContext || api_1.context.active();
60
- return tracer.startSpan(name, {
61
- kind: api_1.SpanKind.INTERNAL,
62
- attributes,
63
- }, ctx);
64
- }
65
- /**
66
- * Start a server span (for incoming requests)
67
- */
68
- function startServerSpan(name, attributes, parentContext) {
69
- const tracer = (0, tracer_1.getTracer)();
70
- const ctx = parentContext || api_1.context.active();
71
- return tracer.startSpan(name, {
72
- kind: api_1.SpanKind.SERVER,
73
- attributes,
74
- }, ctx);
75
- }
76
- /**
77
- * Start a client span (for outgoing requests)
78
- */
79
- function startClientSpan(name, attributes, parentContext) {
80
- const tracer = (0, tracer_1.getTracer)();
81
- const ctx = parentContext || api_1.context.active();
82
- return tracer.startSpan(name, {
83
- kind: api_1.SpanKind.CLIENT,
84
- attributes,
85
- }, ctx);
86
- }
87
- /**
88
- * Execute a function within a span context
89
- */
90
- async function withSpan(name, fn, attributes, parentContext) {
91
- const baseContext = parentContext || api_1.context.active();
92
- const span = startSpan(name, attributes, parentContext);
93
- const ctxWithSpan = api_1.trace.setSpan(baseContext, span);
94
- try {
95
- const result = await api_1.context.with(ctxWithSpan, () => fn(span));
96
- span.setStatus({ code: api_1.SpanStatusCode.OK });
97
- return result;
98
- }
99
- catch (error) {
100
- span.setStatus({
101
- code: api_1.SpanStatusCode.ERROR,
102
- message: error instanceof Error ? error.message : 'Unknown error',
103
- });
104
- if (error instanceof Error) {
105
- span.recordException(error);
106
- }
107
- throw error;
108
- }
109
- finally {
110
- span.end();
111
- }
112
- }
113
- /**
114
- * Execute a synchronous function within a span context
115
- */
116
- function withSpanSync(name, fn, attributes, parentContext) {
117
- const baseContext = parentContext || api_1.context.active();
118
- const span = startSpan(name, attributes, parentContext);
119
- const ctxWithSpan = api_1.trace.setSpan(baseContext, span);
120
- try {
121
- const result = api_1.context.with(ctxWithSpan, () => fn(span));
122
- span.setStatus({ code: api_1.SpanStatusCode.OK });
123
- return result;
124
- }
125
- catch (error) {
126
- span.setStatus({
127
- code: api_1.SpanStatusCode.ERROR,
128
- message: error instanceof Error ? error.message : 'Unknown error',
129
- });
130
- if (error instanceof Error) {
131
- span.recordException(error);
132
- }
133
- throw error;
134
- }
135
- finally {
136
- span.end();
137
- }
138
- }
139
- /**
140
- * Execute a function within a server span context (for incoming requests)
141
- */
142
- async function withServerSpan(name, fn, attributes, parentContext) {
143
- const baseContext = parentContext || api_1.context.active();
144
- const span = startServerSpan(name, attributes, parentContext);
145
- const ctxWithSpan = api_1.trace.setSpan(baseContext, span);
146
- try {
147
- const result = await api_1.context.with(ctxWithSpan, () => fn(span));
148
- span.setStatus({ code: api_1.SpanStatusCode.OK });
149
- return result;
150
- }
151
- catch (error) {
152
- span.setStatus({
153
- code: api_1.SpanStatusCode.ERROR,
154
- message: error instanceof Error ? error.message : 'Unknown error',
155
- });
156
- if (error instanceof Error) {
157
- span.recordException(error);
158
- }
159
- throw error;
160
- }
161
- finally {
162
- span.end();
163
- }
164
- }
165
- /**
166
- * Execute a function within a client span context (for outgoing requests)
167
- */
168
- async function withClientSpan(name, fn, attributes, parentContext) {
169
- const baseContext = parentContext || api_1.context.active();
170
- const span = startClientSpan(name, attributes, parentContext);
171
- const ctxWithSpan = api_1.trace.setSpan(baseContext, span);
172
- try {
173
- const result = await api_1.context.with(ctxWithSpan, () => fn(span));
174
- span.setStatus({ code: api_1.SpanStatusCode.OK });
175
- return result;
176
- }
177
- catch (error) {
178
- span.setStatus({
179
- code: api_1.SpanStatusCode.ERROR,
180
- message: error instanceof Error ? error.message : 'Unknown error',
181
- });
182
- if (error instanceof Error) {
183
- span.recordException(error);
184
- }
185
- throw error;
186
- }
187
- finally {
188
- span.end();
189
- }
190
- }
191
- /**
192
- * Add an event to the current active span
193
- */
194
- function addSpanEvent(name, attributes) {
195
- const span = api_1.trace.getActiveSpan();
196
- if (span) {
197
- span.addEvent(name, attributes);
198
- }
199
- }
200
- /**
201
- * Set attributes on the current active span
202
- */
203
- function setSpanAttributes(attributes) {
204
- const span = api_1.trace.getActiveSpan();
205
- if (span) {
206
- span.setAttributes(attributes);
207
- }
208
- }
209
- /**
210
- * Record an exception on the current active span
211
- */
212
- function recordSpanException(error) {
213
- const span = api_1.trace.getActiveSpan();
214
- if (span) {
215
- span.recordException(error);
216
- span.setStatus({
217
- code: api_1.SpanStatusCode.ERROR,
218
- message: error.message,
219
- });
220
- }
221
- }
222
- /**
223
- * Get the current active span
224
- */
225
- function getActiveSpan() {
226
- return api_1.trace.getActiveSpan();
227
- }
228
- /**
229
- * Get the current trace context
230
- */
231
- function getActiveContext() {
232
- return api_1.context.active();
233
- }
234
- var tracer_2 = require("./tracer");
235
- Object.defineProperty(exports, "initTracing", { enumerable: true, get: function () { return tracer_2.initTracing; } });
236
- Object.defineProperty(exports, "shutdownTracing", { enumerable: true, get: function () { return tracer_2.shutdownTracing; } });
237
- var github_tracer_1 = require("./github-tracer");
238
- Object.defineProperty(exports, "traceGitHubApiCall", { enumerable: true, get: function () { return github_tracer_1.traceGitHubApiCall; } });
239
- Object.defineProperty(exports, "GitHubApiAttributes", { enumerable: true, get: function () { return github_tracer_1.GitHubApiAttributes; } });
240
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../packages/tracing/index.ts"],"names":[],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- import { Span } from '@opentelemetry/api';
2
- import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';
3
- type AutoInstrumentationOptions = Parameters<typeof getNodeAutoInstrumentations>[0];
4
- /**
5
- * Initialize OpenTelemetry tracing for FlowLint
6
- */
7
- export declare function initTracing(options: {
8
- serviceName: string;
9
- serviceNamespace?: string;
10
- serviceVersion?: string;
11
- environment?: string;
12
- exporter?: 'otlp-http' | 'otlp-grpc' | 'console' | 'none';
13
- otlpEndpoint?: string;
14
- otlpHeaders?: Record<string, string>;
15
- otlpTimeoutMs?: number;
16
- instrumentationOptions?: AutoInstrumentationOptions;
17
- }): Promise<void>;
18
- /**
19
- * Shutdown OpenTelemetry
20
- */
21
- export declare function shutdownTracing(): Promise<void>;
22
- /**
23
- * Get tracer instance
24
- */
25
- export declare function getTracer(): import("@opentelemetry/api").Tracer;
26
- /**
27
- * Set custom span attributes (helper)
28
- */
29
- export declare function setSpanAttributes(span: Span | undefined, attributes: Record<string, string | number | boolean>): void;
30
- export {};
@@ -1,141 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.initTracing = initTracing;
4
- exports.shutdownTracing = shutdownTracing;
5
- exports.getTracer = getTracer;
6
- exports.setSpanAttributes = setSpanAttributes;
7
- const api_1 = require("@opentelemetry/api");
8
- const sdk_node_1 = require("@opentelemetry/sdk-node");
9
- const resources_1 = require("@opentelemetry/resources");
10
- const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
11
- const exporter_trace_otlp_http_1 = require("@opentelemetry/exporter-trace-otlp-http");
12
- const exporter_trace_otlp_grpc_1 = require("@opentelemetry/exporter-trace-otlp-grpc");
13
- const instrumentation_http_1 = require("@opentelemetry/instrumentation-http");
14
- const instrumentation_express_1 = require("@opentelemetry/instrumentation-express");
15
- const auto_instrumentations_node_1 = require("@opentelemetry/auto-instrumentations-node");
16
- const logger_1 = require("../logger");
17
- let sdk;
18
- let initPromise;
19
- const DEFAULT_SERVICE_VERSION = process.env.npm_package_version || '0.0.0';
20
- const DEFAULT_ENVIRONMENT = process.env.NODE_ENV || 'development';
21
- /**
22
- * Initialize OpenTelemetry tracing for FlowLint
23
- */
24
- function initTracing(options) {
25
- if (initPromise) {
26
- return initPromise;
27
- }
28
- api_1.diag.setLogger(new api_1.DiagConsoleLogger(), api_1.DiagLogLevel.ERROR);
29
- const { serviceName, serviceNamespace, serviceVersion = DEFAULT_SERVICE_VERSION, environment = DEFAULT_ENVIRONMENT, exporter = process.env.OTEL_EXPORTER || 'otlp-http', otlpEndpoint = process.env.OTEL_EXPORTER_OTLP_ENDPOINT, otlpHeaders = parseHeaders(process.env.OTEL_EXPORTER_OTLP_HEADERS), otlpTimeoutMs = process.env.OTEL_EXPORTER_OTLP_TIMEOUT ? Number(process.env.OTEL_EXPORTER_OTLP_TIMEOUT) : undefined, instrumentationOptions = {}, } = options;
30
- const resource = (0, resources_1.resourceFromAttributes)({
31
- [semantic_conventions_1.ATTR_SERVICE_NAME]: serviceName,
32
- [semantic_conventions_1.ATTR_SERVICE_VERSION]: serviceVersion,
33
- 'service.namespace': serviceNamespace || 'flowlint',
34
- 'deployment.environment': environment,
35
- });
36
- const instrumentations = [
37
- new instrumentation_http_1.HttpInstrumentation({
38
- ignoreIncomingRequestHook: (req) => {
39
- const path = req.url || '';
40
- return ['/metrics', '/livez', '/readyz', '/healthz', '/openapi.json', '/api-docs'].some((ignorePath) => path.startsWith(ignorePath));
41
- },
42
- }),
43
- new instrumentation_express_1.ExpressInstrumentation(),
44
- ];
45
- const autoInstrumentations = (0, auto_instrumentations_node_1.getNodeAutoInstrumentations)({
46
- '@opentelemetry/instrumentation-fs': { enabled: false },
47
- ...instrumentationOptions,
48
- });
49
- const exporters = createExporter({ exporter, otlpEndpoint, otlpHeaders, otlpTimeoutMs });
50
- sdk = new sdk_node_1.NodeSDK({
51
- resource,
52
- traceExporter: exporters.traceExporter,
53
- instrumentations: [...instrumentations, ...Object.values(autoInstrumentations)],
54
- });
55
- initPromise = (async () => {
56
- await sdk.start();
57
- logger_1.logger.info({ serviceName }, 'OpenTelemetry tracing initialized');
58
- })().catch((error) => {
59
- logger_1.logger.error({ error }, 'failed to initialize OpenTelemetry tracing');
60
- });
61
- return initPromise;
62
- }
63
- /**
64
- * Shutdown OpenTelemetry
65
- */
66
- async function shutdownTracing() {
67
- if (!sdk) {
68
- return;
69
- }
70
- try {
71
- await sdk.shutdown();
72
- logger_1.logger.info('OpenTelemetry tracing shut down');
73
- }
74
- catch (error) {
75
- logger_1.logger.error({ error }, 'failed to shut down OpenTelemetry');
76
- }
77
- finally {
78
- sdk = undefined;
79
- initPromise = undefined;
80
- }
81
- }
82
- /**
83
- * Get tracer instance
84
- */
85
- function getTracer() {
86
- return api_1.trace.getTracer('flowlint');
87
- }
88
- /**
89
- * Set custom span attributes (helper)
90
- */
91
- function setSpanAttributes(span, attributes) {
92
- if (!span) {
93
- return;
94
- }
95
- span.setAttributes(attributes);
96
- }
97
- function parseHeaders(headersInput) {
98
- if (!headersInput) {
99
- return {};
100
- }
101
- try {
102
- const entries = headersInput.split(',').map((entry) => {
103
- const [key, value] = entry.split('=').map((item) => item.trim());
104
- return [key, value];
105
- });
106
- return Object.fromEntries(entries);
107
- }
108
- catch (error) {
109
- logger_1.logger.warn({ error }, 'failed to parse OTLP headers');
110
- return {};
111
- }
112
- }
113
- function createExporter(options) {
114
- const { exporter, otlpEndpoint, otlpHeaders, otlpTimeoutMs } = options;
115
- switch (exporter) {
116
- case 'otlp-http':
117
- return {
118
- traceExporter: new exporter_trace_otlp_http_1.OTLPTraceExporter({
119
- url: otlpEndpoint,
120
- headers: otlpHeaders,
121
- timeoutMillis: otlpTimeoutMs,
122
- }),
123
- };
124
- case 'otlp-grpc':
125
- return {
126
- traceExporter: new exporter_trace_otlp_grpc_1.OTLPTraceExporter({
127
- url: otlpEndpoint,
128
- }),
129
- };
130
- case 'console':
131
- return {
132
- traceExporter: undefined,
133
- };
134
- case 'none':
135
- default:
136
- return {
137
- traceExporter: undefined,
138
- };
139
- }
140
- }
141
- //# sourceMappingURL=tracer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tracer.js","sourceRoot":"","sources":["../../../packages/tracing/tracer.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- /**
2
- * Local Config Provider
3
- * Loads .flowlint.yml from the local filesystem
4
- */
5
- import { type FlowLintConfig } from 'packages/config/flowlint-config';
6
- import type { ConfigProvider } from 'packages/review/providers';
7
- export declare class LocalConfigProvider implements ConfigProvider {
8
- private configPath?;
9
- constructor(configPath?: string | undefined);
10
- load(): Promise<FlowLintConfig>;
11
- }
@@ -1,39 +0,0 @@
1
- "use strict";
2
- /**
3
- * Local Config Provider
4
- * Loads .flowlint.yml from the local filesystem
5
- */
6
- var __importDefault = (this && this.__importDefault) || function (mod) {
7
- return (mod && mod.__esModule) ? mod : { "default": mod };
8
- };
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.LocalConfigProvider = void 0;
11
- const fs_1 = __importDefault(require("fs"));
12
- const path_1 = __importDefault(require("path"));
13
- const yaml_1 = __importDefault(require("yaml"));
14
- const flowlint_config_1 = require("../packages/config/flowlint-config");
15
- const merge_1 = require("../packages/review/utils/merge");
16
- class LocalConfigProvider {
17
- constructor(configPath) {
18
- this.configPath = configPath;
19
- }
20
- async load() {
21
- // Determine config file path
22
- const configFile = this.configPath || path_1.default.join(process.cwd(), '.flowlint.yml');
23
- // If config doesn't exist, return defaults
24
- if (!fs_1.default.existsSync(configFile)) {
25
- return flowlint_config_1.defaultConfig;
26
- }
27
- try {
28
- const content = fs_1.default.readFileSync(configFile, 'utf8');
29
- const parsed = yaml_1.default.parse(content) || {};
30
- return (0, merge_1.deepMerge)(flowlint_config_1.defaultConfig, parsed);
31
- }
32
- catch (error) {
33
- console.warn(`Failed to load config from ${configFile}: ${error}`);
34
- return flowlint_config_1.defaultConfig;
35
- }
36
- }
37
- }
38
- exports.LocalConfigProvider = LocalConfigProvider;
39
- //# sourceMappingURL=local-config-provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"local-config-provider.js","sourceRoot":"","sources":["../../../../../apps/cli/src/providers/local-config-provider.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;AAEH,4CAAoB;AACpB,gDAAwB;AACxB,gDAAwB;AACxB,qEAAqF;AAErF,uDAAwD;AAExD,MAAa,mBAAmB;IAC9B,YAAoB,UAAmB;QAAnB,eAAU,GAAV,UAAU,CAAS;IAAG,CAAC;IAE3C,KAAK,CAAC,IAAI;QACR,6BAA6B;QAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,CAAC,CAAC;QAEhF,2CAA2C;QAC3C,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,OAAO,+BAAa,CAAC;QACvB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACpD,MAAM,MAAM,GAAI,cAAI,CAAC,KAAK,CAAC,OAAO,CAA6B,IAAI,EAAE,CAAC;YACtE,OAAO,IAAA,iBAAS,EAAC,+BAAa,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,8BAA8B,UAAU,KAAK,KAAK,EAAE,CAAC,CAAC;YACnE,OAAO,+BAAa,CAAC;QACvB,CAAC;IACH,CAAC;CACF;AArBD,kDAqBC"}
@@ -1,13 +0,0 @@
1
- /**
2
- * Local File Source Provider
3
- * Reads workflow files from the local filesystem
4
- */
5
- import type { FileSource, LintableFile } from 'packages/review/providers';
6
- export declare class LocalFileSource implements FileSource {
7
- private basePath;
8
- constructor(basePath: string);
9
- getFiles(patterns: {
10
- include: string[];
11
- ignore: string[];
12
- }): Promise<LintableFile[]>;
13
- }
@@ -1,47 +0,0 @@
1
- "use strict";
2
- /**
3
- * Local File Source Provider
4
- * Reads workflow files from the local filesystem
5
- */
6
- var __importDefault = (this && this.__importDefault) || function (mod) {
7
- return (mod && mod.__esModule) ? mod : { "default": mod };
8
- };
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.LocalFileSource = void 0;
11
- const fs_1 = __importDefault(require("fs"));
12
- const path_1 = __importDefault(require("path"));
13
- const glob_1 = require("glob");
14
- class LocalFileSource {
15
- constructor(basePath) {
16
- this.basePath = basePath;
17
- }
18
- async getFiles(patterns) {
19
- const files = [];
20
- for (const pattern of patterns.include) {
21
- // Construct glob pattern relative to basePath
22
- const globPattern = path_1.default.join(this.basePath, pattern);
23
- const matches = (0, glob_1.globSync)(globPattern, {
24
- ignore: patterns.ignore.map((ignorePattern) => path_1.default.join(this.basePath, ignorePattern)),
25
- nodir: true,
26
- });
27
- for (const filePath of matches) {
28
- try {
29
- const content = fs_1.default.readFileSync(filePath, 'utf8');
30
- const relativePath = path_1.default.relative(this.basePath, filePath);
31
- files.push({
32
- path: relativePath,
33
- content,
34
- });
35
- }
36
- catch (error) {
37
- console.warn(`Failed to read file ${filePath}: ${error}`);
38
- }
39
- }
40
- }
41
- // Remove duplicates (same file matched multiple patterns)
42
- const uniqueFiles = Array.from(new Map(files.map((f) => [f.path, f])).values());
43
- return uniqueFiles;
44
- }
45
- }
46
- exports.LocalFileSource = LocalFileSource;
47
- //# sourceMappingURL=local-file-source.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"local-file-source.js","sourceRoot":"","sources":["../../../../../apps/cli/src/providers/local-file-source.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;AAEH,4CAAoB;AACpB,gDAAwB;AACxB,+BAAgC;AAGhC,MAAa,eAAe;IAC1B,YAAoB,QAAgB;QAAhB,aAAQ,GAAR,QAAQ,CAAQ;IAAG,CAAC;IAExC,KAAK,CAAC,QAAQ,CAAC,QAAiD;QAC9D,MAAM,KAAK,GAAmB,EAAE,CAAC;QAEjC,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACvC,8CAA8C;YAC9C,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAEtD,MAAM,OAAO,GAAG,IAAA,eAAQ,EAAC,WAAW,EAAE;gBACpC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;gBACvF,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;YAEH,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE,CAAC;gBAC/B,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;oBAClD,MAAM,YAAY,GAAG,cAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBAE5D,KAAK,CAAC,IAAI,CAAC;wBACT,IAAI,EAAE,YAAY;wBAClB,OAAO;qBACR,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,uBAAuB,QAAQ,KAAK,KAAK,EAAE,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC;QACH,CAAC;QAED,0DAA0D;QAC1D,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAC5B,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAChD,CAAC;QAEF,OAAO,WAAW,CAAC;IACrB,CAAC;CACF;AArCD,0CAqCC"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Console Reporter
3
- * Outputs findings to the terminal with colors and formatting
4
- */
5
- import type { AnalysisResult, Reporter } from 'packages/review/providers';
6
- export declare class ConsoleReporter implements Reporter {
7
- report(results: AnalysisResult[]): Promise<void>;
8
- }
@@ -1,75 +0,0 @@
1
- "use strict";
2
- /**
3
- * Console Reporter
4
- * Outputs findings to the terminal with colors and formatting
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.ConsoleReporter = void 0;
8
- const findings_1 = require("../packages/review/utils/findings");
9
- const colors = {
10
- reset: '\x1b[0m',
11
- bold: '\x1b[1m',
12
- red: '\x1b[31m',
13
- yellow: '\x1b[33m',
14
- blue: '\x1b[36m',
15
- gray: '\x1b[90m',
16
- };
17
- class ConsoleReporter {
18
- async report(results) {
19
- const allFindings = results.flatMap((r) => r.findings);
20
- // Print header
21
- console.log();
22
- console.log(`${colors.blue}${colors.bold}FlowLint Analysis Report${colors.reset} ${colors.gray}${new Date().toLocaleTimeString()}${colors.reset}`);
23
- console.log(colors.gray + '─'.repeat(80) + colors.reset);
24
- console.log();
25
- // Print findings grouped by file
26
- for (const result of results) {
27
- if (result.findings.length === 0 && !result.errors)
28
- continue;
29
- const { path } = result.file;
30
- console.log(`${colors.bold}${path}${colors.reset}`);
31
- const sortedFindings = (0, findings_1.sortFindingsBySeverity)(result.findings);
32
- for (const finding of sortedFindings) {
33
- const severityColor = finding.severity === 'must'
34
- ? colors.red
35
- : finding.severity === 'should'
36
- ? colors.yellow
37
- : colors.gray;
38
- const line = finding.line ? `:${finding.line}` : '';
39
- const severity = finding.severity.toUpperCase();
40
- console.log(` ${severityColor}${severity}${colors.reset} ${colors.bold}${finding.rule}${colors.reset} ${finding.message}`);
41
- console.log(` at ${colors.gray}${path}${line}${colors.reset}`);
42
- if (finding.documentationUrl) {
43
- console.log(` ${colors.blue}→ See examples: ${finding.documentationUrl}${colors.reset}`);
44
- }
45
- if (finding.raw_details) {
46
- const details = finding.raw_details.split('\n').slice(0, 3);
47
- for (const detail of details) {
48
- console.log(` ${colors.gray}${detail}${colors.reset}`);
49
- }
50
- }
51
- }
52
- console.log();
53
- }
54
- // Print summary
55
- const summary = (0, findings_1.countFindingsBySeverity)(allFindings);
56
- console.log(colors.gray + '─'.repeat(80) + colors.reset);
57
- console.log();
58
- if (summary.total === 0) {
59
- console.log(`${colors.bold}✓ No issues found${colors.reset}`);
60
- }
61
- else {
62
- const summaryParts = [];
63
- if (summary.must > 0)
64
- summaryParts.push(`${colors.red}${summary.must} must-fix${colors.reset}`);
65
- if (summary.should > 0)
66
- summaryParts.push(`${colors.yellow}${summary.should} should-fix${colors.reset}`);
67
- if (summary.nit > 0)
68
- summaryParts.push(`${colors.gray}${summary.nit} nit${colors.reset}`);
69
- console.log(`${colors.bold}Found: ${summaryParts.join(', ')}${colors.reset}`);
70
- }
71
- console.log();
72
- }
73
- }
74
- exports.ConsoleReporter = ConsoleReporter;
75
- //# sourceMappingURL=console-reporter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"console-reporter.js","sourceRoot":"","sources":["../../../../../apps/cli/src/reporters/console-reporter.ts"],"names":[],"mappings":"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"}