@fyuld/snitch 1.6.1 → 2.0.0
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/.snitchconfig.json +25 -135
- package/dist/SnitchConfigManager.d.ts +9 -0
- package/dist/SnitchConfigManager.d.ts.map +1 -0
- package/dist/SnitchConfigManager.js +112 -0
- package/dist/SnitchConfigManager.js.map +1 -0
- package/dist/commands/dm.d.ts.map +1 -1
- package/dist/commands/dm.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/nocomments.d.ts +2 -0
- package/dist/commands/nocomments.d.ts.map +1 -0
- package/dist/commands/nocomments.js +59 -0
- package/dist/commands/nocomments.js.map +1 -0
- package/dist/commands/scan-commands.d.ts +7 -0
- package/dist/commands/scan-commands.d.ts.map +1 -0
- package/dist/commands/scan-commands.js +28 -0
- package/dist/commands/scan-commands.js.map +1 -0
- package/dist/commands/scan.d.ts +1 -1
- package/dist/commands/scan.d.ts.map +1 -1
- package/dist/commands/scan.js +170 -103
- package/dist/commands/scan.js.map +1 -1
- package/dist/commands/vocab.d.ts.map +1 -1
- package/dist/commands/vocab.js.map +1 -1
- package/dist/common/fs.d.ts +1 -0
- package/dist/common/fs.d.ts.map +1 -0
- package/dist/common/fs.js +2 -0
- package/dist/common/fs.js.map +1 -0
- package/dist/common/index.d.ts +2 -0
- package/dist/common/index.d.ts.map +1 -0
- package/dist/common/index.js +18 -0
- package/dist/common/index.js.map +1 -0
- package/dist/common/json.d.ts +21 -0
- package/dist/common/json.d.ts.map +1 -0
- package/dist/common/json.js +41 -0
- package/dist/common/json.js.map +1 -0
- package/dist/common/strings.d.ts +8 -0
- package/dist/common/strings.d.ts.map +1 -0
- package/dist/common/strings.js +15 -0
- package/dist/common/strings.js.map +1 -0
- package/dist/config/policy-loader.d.ts +4 -0
- package/dist/config/policy-loader.d.ts.map +1 -0
- package/dist/config/policy-loader.js +21 -0
- package/dist/config/policy-loader.js.map +1 -0
- package/dist/datamodel/commands.d.ts +25 -0
- package/dist/datamodel/commands.d.ts.map +1 -0
- package/dist/datamodel/commands.js +31 -0
- package/dist/datamodel/commands.js.map +1 -0
- package/dist/datamodel/common.d.ts +11 -0
- package/dist/datamodel/common.d.ts.map +1 -0
- package/dist/datamodel/common.js +3 -0
- package/dist/datamodel/common.js.map +1 -0
- package/dist/datamodel/errors.d.ts +16 -0
- package/dist/datamodel/errors.d.ts.map +1 -0
- package/dist/datamodel/errors.js +51 -0
- package/dist/datamodel/errors.js.map +1 -0
- package/dist/datamodel/index.d.ts +9 -0
- package/dist/datamodel/index.d.ts.map +1 -0
- package/dist/datamodel/index.js +25 -0
- package/dist/datamodel/index.js.map +1 -0
- package/dist/datamodel/internal-configs.d.ts +14 -0
- package/dist/datamodel/internal-configs.d.ts.map +1 -0
- package/dist/datamodel/internal-configs.js +3 -0
- package/dist/datamodel/internal-configs.js.map +1 -0
- package/dist/datamodel/public-configs.d.ts +27 -0
- package/dist/datamodel/public-configs.d.ts.map +1 -0
- package/dist/datamodel/public-configs.js +3 -0
- package/dist/datamodel/public-configs.js.map +1 -0
- package/dist/datamodel/snitch-configuration.d.ts +16 -0
- package/dist/datamodel/snitch-configuration.d.ts.map +1 -0
- package/dist/datamodel/snitch-configuration.js +32 -0
- package/dist/datamodel/snitch-configuration.js.map +1 -0
- package/dist/datamodel/typeguards.d.ts +3 -0
- package/dist/datamodel/typeguards.d.ts.map +1 -0
- package/dist/datamodel/typeguards.js +7 -0
- package/dist/datamodel/typeguards.js.map +1 -0
- package/dist/datamodel/typescript-specific.d.ts +7 -0
- package/dist/datamodel/typescript-specific.d.ts.map +1 -0
- package/dist/datamodel/typescript-specific.js +11 -0
- package/dist/datamodel/typescript-specific.js.map +1 -0
- package/dist/index.d.ts +2 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -11
- package/dist/index.js.map +1 -1
- package/dist/reporting/violation-reporter.d.ts +4 -0
- package/dist/reporting/violation-reporter.d.ts.map +1 -0
- package/dist/reporting/violation-reporter.js +45 -0
- package/dist/reporting/violation-reporter.js.map +1 -0
- package/dist/rules/policies/code-should-have-declarations.d.ts +3 -0
- package/dist/rules/policies/code-should-have-declarations.d.ts.map +1 -0
- package/dist/rules/policies/code-should-have-declarations.js +15 -0
- package/dist/rules/policies/code-should-have-declarations.js.map +1 -0
- package/dist/rules/policies/keep-tests-clean.d.ts +3 -0
- package/dist/rules/policies/keep-tests-clean.d.ts.map +1 -0
- package/dist/rules/policies/keep-tests-clean.js +21 -0
- package/dist/rules/policies/keep-tests-clean.js.map +1 -0
- package/dist/rules/policies/no-vars.d.ts +3 -0
- package/dist/rules/policies/no-vars.d.ts.map +1 -0
- package/dist/rules/policies/no-vars.js +19 -0
- package/dist/rules/policies/no-vars.js.map +1 -0
- package/dist/rules/policy-executor.d.ts +5 -0
- package/dist/rules/policy-executor.d.ts.map +1 -0
- package/dist/rules/policy-executor.js +10 -0
- package/dist/rules/policy-executor.js.map +1 -0
- package/dist/rules/policy.d.ts +7 -0
- package/dist/rules/policy.d.ts.map +1 -0
- package/dist/rules/policy.js +3 -0
- package/dist/rules/policy.js.map +1 -0
- package/dist/rules/provider-executor.d.ts +5 -0
- package/dist/rules/provider-executor.d.ts.map +1 -0
- package/dist/rules/provider-executor.js +105 -0
- package/dist/rules/provider-executor.js.map +1 -0
- package/dist/rules/provider.d.ts +26 -0
- package/dist/rules/provider.d.ts.map +1 -0
- package/dist/rules/provider.js +3 -0
- package/dist/rules/provider.js.map +1 -0
- package/dist/rules/providers/filter-by-declaration-type-provider.d.ts +8 -0
- package/dist/rules/providers/filter-by-declaration-type-provider.d.ts.map +1 -0
- package/dist/rules/providers/filter-by-declaration-type-provider.js +15 -0
- package/dist/rules/providers/filter-by-declaration-type-provider.js.map +1 -0
- package/dist/rules/providers/filter-by-file-provider.d.ts +8 -0
- package/dist/rules/providers/filter-by-file-provider.d.ts.map +1 -0
- package/dist/rules/providers/filter-by-file-provider.js +16 -0
- package/dist/rules/providers/filter-by-file-provider.js.map +1 -0
- package/dist/rules/providers/filter-exclude-function-names-provider.d.ts +8 -0
- package/dist/rules/providers/filter-exclude-function-names-provider.d.ts.map +1 -0
- package/dist/rules/providers/filter-exclude-function-names-provider.js +15 -0
- package/dist/rules/providers/filter-exclude-function-names-provider.js.map +1 -0
- package/dist/rules/providers/filter-has-literal-arguments-provider.d.ts +8 -0
- package/dist/rules/providers/filter-has-literal-arguments-provider.d.ts.map +1 -0
- package/dist/rules/providers/filter-has-literal-arguments-provider.js +26 -0
- package/dist/rules/providers/filter-has-literal-arguments-provider.js.map +1 -0
- package/dist/rules/providers/identity-provider.d.ts +8 -0
- package/dist/rules/providers/identity-provider.d.ts.map +1 -0
- package/dist/rules/providers/identity-provider.js +30 -0
- package/dist/rules/providers/identity-provider.js.map +1 -0
- package/dist/rules/violation-rule.d.ts +7 -0
- package/dist/rules/violation-rule.d.ts.map +1 -0
- package/dist/rules/violation-rule.js +3 -0
- package/dist/rules/violation-rule.js.map +1 -0
- package/dist/rules/violation.d.ts +12 -0
- package/dist/rules/violation.d.ts.map +1 -0
- package/dist/rules/violation.js +3 -0
- package/dist/rules/violation.js.map +1 -0
- package/dist/snitch.js +97 -44
- package/dist/snitch.js.map +1 -1
- package/dist/snitch.old.d.ts +3 -0
- package/dist/snitch.old.d.ts.map +1 -0
- package/dist/snitch.old.js +71 -0
- package/dist/snitch.old.js.map +1 -0
- package/dist/utils/AstAnalysis.d.ts +28 -0
- package/dist/utils/AstAnalysis.d.ts.map +1 -0
- package/dist/utils/AstAnalysis.js +117 -0
- package/dist/utils/AstAnalysis.js.map +1 -0
- package/dist/utils/ast-parser.d.ts +68 -0
- package/dist/utils/ast-parser.d.ts.map +1 -0
- package/dist/utils/ast-parser.js +364 -0
- package/dist/utils/ast-parser.js.map +1 -0
- package/dist/utils/fs.d.ts +8 -0
- package/dist/utils/fs.d.ts.map +1 -0
- package/dist/utils/fs.js +93 -0
- package/dist/utils/fs.js.map +1 -0
- package/dist/utils/pattern-scanner.d.ts +5 -21
- package/dist/utils/pattern-scanner.d.ts.map +1 -1
- package/dist/utils/pattern-scanner.js +13 -17
- package/dist/utils/pattern-scanner.js.map +1 -1
- package/dist/utils/ts-parser.d.ts.map +1 -1
- package/dist/utils/ts-parser.js +5 -12
- package/dist/utils/ts-parser.js.map +1 -1
- package/package.json +13 -6
- package/snitchconfig.schema.json +107 -51
- package/dist/commands/badimports.d.ts +0 -2
- package/dist/commands/badimports.d.ts.map +0 -1
- package/dist/commands/badimports.js +0 -8
- package/dist/commands/badimports.js.map +0 -1
- package/dist/commands/dirtydefaults.d.ts +0 -2
- package/dist/commands/dirtydefaults.d.ts.map +0 -1
- package/dist/commands/dirtydefaults.js +0 -8
- package/dist/commands/dirtydefaults.js.map +0 -1
- package/dist/commands/enumerate.d.ts +0 -2
- package/dist/commands/enumerate.d.ts.map +0 -1
- package/dist/commands/enumerate.js +0 -8
- package/dist/commands/enumerate.js.map +0 -1
- package/dist/commands/expectmagic.d.ts +0 -2
- package/dist/commands/expectmagic.d.ts.map +0 -1
- package/dist/commands/expectmagic.js +0 -8
- package/dist/commands/expectmagic.js.map +0 -1
- package/dist/commands/fixtures.d.ts +0 -2
- package/dist/commands/fixtures.d.ts.map +0 -1
- package/dist/commands/fixtures.js +0 -8
- package/dist/commands/fixtures.js.map +0 -1
- package/dist/datamodel.d.ts +0 -18
- package/dist/datamodel.d.ts.map +0 -1
- package/dist/datamodel.js +0 -23
- package/dist/datamodel.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/datamodel/common.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ErrorTag, FyuldError } from '@fyuld/errors';
|
|
2
|
+
export declare class SnitchConfigError extends FyuldError {
|
|
3
|
+
static configNotLoaded(configName: string): SnitchConfigError;
|
|
4
|
+
static configFileNotFound(configPath: string): SnitchConfigError;
|
|
5
|
+
static unableToParseConfig(configPath: string, causes: string[]): SnitchConfigError;
|
|
6
|
+
static unableToExtend(configName: string, causes: string[]): SnitchConfigError;
|
|
7
|
+
static invalidConfig(causes: string[]): SnitchConfigError;
|
|
8
|
+
static circularExtends(configChain: string[]): SnitchConfigError;
|
|
9
|
+
constructor(message: string, causes?: string[], tags?: ErrorTag[]);
|
|
10
|
+
}
|
|
11
|
+
export declare class ParseError extends FyuldError {
|
|
12
|
+
static jsonParseError(filePath: string, reason: string): ParseError;
|
|
13
|
+
constructor(message: string, causes?: string[], tags?: ErrorTag[]);
|
|
14
|
+
get causes(): string[];
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/datamodel/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAEpD,qBAAa,iBAAkB,SAAQ,UAAU;WACjC,eAAe,CAAC,UAAU,EAAE,MAAM;WAQlC,kBAAkB,CAAC,UAAU,EAAE,MAAM;WAQrC,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;WAQxD,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;WAOnD,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE;WAI9B,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE;gBAOvC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,EAAO,EAAE,IAAI,GAAE,QAAQ,EAAO;CAG1E;AAED,qBAAa,UAAW,SAAQ,UAAU;WAC1B,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;gBAIjD,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,EAAO,EAAE,IAAI,GAAE,QAAQ,EAAO;IAIzE,IAAI,MAAM,IAAI,MAAM,EAAE,CAErB;CACF"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ParseError = exports.SnitchConfigError = void 0;
|
|
4
|
+
const errors_1 = require("@fyuld/errors");
|
|
5
|
+
class SnitchConfigError extends errors_1.FyuldError {
|
|
6
|
+
static configNotLoaded(configName) {
|
|
7
|
+
return new SnitchConfigError(`Configuration with name "${configName}" is not loaded.`, [], [errors_1.ErrorTag.NotFound, errors_1.ErrorTag.Configuration]);
|
|
8
|
+
}
|
|
9
|
+
static configFileNotFound(configPath) {
|
|
10
|
+
return new SnitchConfigError(`Configuration file not found: ${configPath}`, [], [errors_1.ErrorTag.NotFound, errors_1.ErrorTag.Configuration, errors_1.ErrorTag.FileSystem]);
|
|
11
|
+
}
|
|
12
|
+
static unableToParseConfig(configPath, causes) {
|
|
13
|
+
return new SnitchConfigError(`Unable to parse configuration file: ${configPath}`, causes, [
|
|
14
|
+
errors_1.ErrorTag.Configuration,
|
|
15
|
+
errors_1.ErrorTag.Parsing,
|
|
16
|
+
errors_1.ErrorTag.Json,
|
|
17
|
+
]);
|
|
18
|
+
}
|
|
19
|
+
static unableToExtend(configName, causes) {
|
|
20
|
+
return new SnitchConfigError(`Unable to extend config "${configName}, encountered validation errors".`, causes, [
|
|
21
|
+
errors_1.ErrorTag.Configuration,
|
|
22
|
+
errors_1.ErrorTag.Validation,
|
|
23
|
+
]);
|
|
24
|
+
}
|
|
25
|
+
static invalidConfig(causes) {
|
|
26
|
+
return new SnitchConfigError('Invalid configuration', causes, [errors_1.ErrorTag.Configuration, errors_1.ErrorTag.Validation]);
|
|
27
|
+
}
|
|
28
|
+
static circularExtends(configChain) {
|
|
29
|
+
return new SnitchConfigError(`Circular extends detected: ${configChain.join(' → ')}`, configChain, [
|
|
30
|
+
errors_1.ErrorTag.Configuration,
|
|
31
|
+
errors_1.ErrorTag.Validation,
|
|
32
|
+
]);
|
|
33
|
+
}
|
|
34
|
+
constructor(message, causes = [], tags = []) {
|
|
35
|
+
super(message, causes, tags);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.SnitchConfigError = SnitchConfigError;
|
|
39
|
+
class ParseError extends errors_1.FyuldError {
|
|
40
|
+
static jsonParseError(filePath, reason) {
|
|
41
|
+
return new ParseError(`Failed to parse JSON from ${filePath}`, [reason], [errors_1.ErrorTag.Parsing, errors_1.ErrorTag.Json]);
|
|
42
|
+
}
|
|
43
|
+
constructor(message, causes = [], tags = []) {
|
|
44
|
+
super(message, causes, tags);
|
|
45
|
+
}
|
|
46
|
+
get causes() {
|
|
47
|
+
return this._causes;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.ParseError = ParseError;
|
|
51
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/datamodel/errors.ts"],"names":[],"mappings":";;;AAAA,0CAAoD;AAEpD,MAAa,iBAAkB,SAAQ,mBAAU;IACxC,MAAM,CAAC,eAAe,CAAC,UAAkB;QAC9C,OAAO,IAAI,iBAAiB,CAC1B,4BAA4B,UAAU,kBAAkB,EACxD,EAAE,EACF,CAAC,iBAAQ,CAAC,QAAQ,EAAE,iBAAQ,CAAC,aAAa,CAAC,CAC5C,CAAA;IACH,CAAC;IAEM,MAAM,CAAC,kBAAkB,CAAC,UAAkB;QACjD,OAAO,IAAI,iBAAiB,CAC1B,iCAAiC,UAAU,EAAE,EAC7C,EAAE,EACF,CAAC,iBAAQ,CAAC,QAAQ,EAAE,iBAAQ,CAAC,aAAa,EAAE,iBAAQ,CAAC,UAAU,CAAC,CACjE,CAAA;IACH,CAAC;IAEM,MAAM,CAAC,mBAAmB,CAAC,UAAkB,EAAE,MAAgB;QACpE,OAAO,IAAI,iBAAiB,CAAC,uCAAuC,UAAU,EAAE,EAAE,MAAM,EAAE;YACxF,iBAAQ,CAAC,aAAa;YACtB,iBAAQ,CAAC,OAAO;YAChB,iBAAQ,CAAC,IAAI;SACd,CAAC,CAAA;IACJ,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,UAAkB,EAAE,MAAgB;QAC/D,OAAO,IAAI,iBAAiB,CAAC,4BAA4B,UAAU,mCAAmC,EAAE,MAAM,EAAE;YAC9G,iBAAQ,CAAC,aAAa;YACtB,iBAAQ,CAAC,UAAU;SACpB,CAAC,CAAA;IACJ,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,MAAgB;QAC1C,OAAO,IAAI,iBAAiB,CAAC,uBAAuB,EAAE,MAAM,EAAE,CAAC,iBAAQ,CAAC,aAAa,EAAE,iBAAQ,CAAC,UAAU,CAAC,CAAC,CAAA;IAC9G,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,WAAqB;QACjD,OAAO,IAAI,iBAAiB,CAAC,8BAA8B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,WAAW,EAAE;YACjG,iBAAQ,CAAC,aAAa;YACtB,iBAAQ,CAAC,UAAU;SACpB,CAAC,CAAA;IACJ,CAAC;IAED,YAAY,OAAe,EAAE,SAAmB,EAAE,EAAE,OAAmB,EAAE;QACvE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IAC9B,CAAC;CACF;AA9CD,8CA8CC;AAED,MAAa,UAAW,SAAQ,mBAAU;IACjC,MAAM,CAAC,cAAc,CAAC,QAAgB,EAAE,MAAc;QAC3D,OAAO,IAAI,UAAU,CAAC,6BAA6B,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,iBAAQ,CAAC,OAAO,EAAE,iBAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;IAC7G,CAAC;IAED,YAAY,OAAe,EAAE,SAAmB,EAAE,EAAE,OAAmB,EAAE;QACvE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IAC9B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;CACF;AAZD,gCAYC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './common';
|
|
2
|
+
export * from './errors';
|
|
3
|
+
export * from './public-configs';
|
|
4
|
+
export * from './internal-configs';
|
|
5
|
+
export * from './typeguards';
|
|
6
|
+
export * from './commands';
|
|
7
|
+
export * from './typescript-specific';
|
|
8
|
+
export * from './snitch-configuration';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/datamodel/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./common"), exports);
|
|
18
|
+
__exportStar(require("./errors"), exports);
|
|
19
|
+
__exportStar(require("./public-configs"), exports);
|
|
20
|
+
__exportStar(require("./internal-configs"), exports);
|
|
21
|
+
__exportStar(require("./typeguards"), exports);
|
|
22
|
+
__exportStar(require("./commands"), exports);
|
|
23
|
+
__exportStar(require("./typescript-specific"), exports);
|
|
24
|
+
__exportStar(require("./snitch-configuration"), exports);
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/datamodel/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB;AACxB,2CAAwB;AACxB,mDAAgC;AAChC,qDAAkC;AAClC,+CAA4B;AAC5B,6CAA0B;AAC1B,wDAAqC;AACrC,yDAAsC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type InternalViolationRule = {
|
|
2
|
+
message: string;
|
|
3
|
+
regexes: string[];
|
|
4
|
+
recommendation?: {
|
|
5
|
+
message: string;
|
|
6
|
+
recommendations: string[];
|
|
7
|
+
};
|
|
8
|
+
};
|
|
9
|
+
export type InternalScanConfig = {
|
|
10
|
+
description: string;
|
|
11
|
+
fileFilter: string;
|
|
12
|
+
violations: InternalViolationRule[];
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=internal-configs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal-configs.d.ts","sourceRoot":"","sources":["../../src/datamodel/internal-configs.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,cAAc,CAAC,EAAE;QACf,OAAO,EAAE,MAAM,CAAA;QACf,eAAe,EAAE,MAAM,EAAE,CAAA;KAC1B,CAAA;CACF,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,qBAAqB,EAAE,CAAA;CACpC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal-configs.js","sourceRoot":"","sources":["../../src/datamodel/internal-configs.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export type DefaultPublicViolationRule = {
|
|
2
|
+
message: string;
|
|
3
|
+
regexes: string[];
|
|
4
|
+
recommendation?: {
|
|
5
|
+
message: string;
|
|
6
|
+
recommendations: string[];
|
|
7
|
+
};
|
|
8
|
+
};
|
|
9
|
+
export type PublicViolationRule = {
|
|
10
|
+
message: string;
|
|
11
|
+
regexes?: string[];
|
|
12
|
+
recommendation?: {
|
|
13
|
+
message: string;
|
|
14
|
+
recommendations: string[];
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
export type DefaultPublicScanConfig = {
|
|
18
|
+
description: string;
|
|
19
|
+
fileFilter: string;
|
|
20
|
+
violations: DefaultPublicViolationRule[];
|
|
21
|
+
};
|
|
22
|
+
export type NoCommentsScanConfig = DefaultPublicScanConfig & {
|
|
23
|
+
acceptedApologies: string[];
|
|
24
|
+
};
|
|
25
|
+
export type PublicScanConfig = DefaultPublicScanConfig | NoCommentsScanConfig;
|
|
26
|
+
export type PublicCommandConfig = PublicScanConfig | string[];
|
|
27
|
+
//# sourceMappingURL=public-configs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-configs.d.ts","sourceRoot":"","sources":["../../src/datamodel/public-configs.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,0BAA0B,GAAG;IACvC,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,cAAc,CAAC,EAAE;QACf,OAAO,EAAE,MAAM,CAAA;QACf,eAAe,EAAE,MAAM,EAAE,CAAA;KAC1B,CAAA;CACF,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,cAAc,CAAC,EAAE;QACf,OAAO,EAAE,MAAM,CAAA;QACf,eAAe,EAAE,MAAM,EAAE,CAAA;KAC1B,CAAA;CACF,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,0BAA0B,EAAE,CAAA;CACzC,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,uBAAuB,GAAG;IAC3D,iBAAiB,EAAE,MAAM,EAAE,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,uBAAuB,GAAG,oBAAoB,CAAA;AAE7E,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,GAAG,MAAM,EAAE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-configs.js","sourceRoot":"","sources":["../../src/datamodel/public-configs.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { JsonSchema } from '../common/json';
|
|
2
|
+
import { PublicCommandConfig } from './public-configs';
|
|
3
|
+
import { ViolationRule } from '../rules/violation-rule';
|
|
4
|
+
export type PolicyConfig = {
|
|
5
|
+
title: string;
|
|
6
|
+
violations: ViolationRule[];
|
|
7
|
+
};
|
|
8
|
+
export type SnitchConfiguration = {
|
|
9
|
+
extends?: string;
|
|
10
|
+
sourceDirectory: string;
|
|
11
|
+
testsDirectory: string;
|
|
12
|
+
commands?: Record<string, PublicCommandConfig>;
|
|
13
|
+
policies: Record<string, PolicyConfig>;
|
|
14
|
+
};
|
|
15
|
+
export declare const snitchConfigurationSchema: JsonSchema<SnitchConfiguration>;
|
|
16
|
+
//# sourceMappingURL=snitch-configuration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snitch-configuration.d.ts","sourceRoot":"","sources":["../../src/datamodel/snitch-configuration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAEvD,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,aAAa,EAAE,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,eAAe,EAAE,MAAM,CAAA;IACvB,cAAc,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;IAC9C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;CACvC,CAAA;AAED,eAAO,MAAM,yBAAyB,EAAE,UAAU,CAAC,mBAAmB,CA2BrE,CAAA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.snitchConfigurationSchema = void 0;
|
|
4
|
+
exports.snitchConfigurationSchema = {
|
|
5
|
+
type: 'object',
|
|
6
|
+
properties: {
|
|
7
|
+
extends: {
|
|
8
|
+
type: 'string',
|
|
9
|
+
nullable: true,
|
|
10
|
+
},
|
|
11
|
+
sourceDirectory: {
|
|
12
|
+
type: 'string',
|
|
13
|
+
},
|
|
14
|
+
testsDirectory: {
|
|
15
|
+
type: 'string',
|
|
16
|
+
},
|
|
17
|
+
commands: {
|
|
18
|
+
type: 'object',
|
|
19
|
+
required: [],
|
|
20
|
+
additionalProperties: true,
|
|
21
|
+
nullable: true,
|
|
22
|
+
},
|
|
23
|
+
policies: {
|
|
24
|
+
type: 'object',
|
|
25
|
+
required: [],
|
|
26
|
+
additionalProperties: true,
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
required: ['sourceDirectory', 'testsDirectory', 'policies'],
|
|
30
|
+
additionalProperties: false,
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=snitch-configuration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snitch-configuration.js","sourceRoot":"","sources":["../../src/datamodel/snitch-configuration.ts"],"names":[],"mappings":";;;AAiBa,QAAA,yBAAyB,GAAoC;IACxE,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;SACf;QACD,eAAe,EAAE;YACf,IAAI,EAAE,QAAQ;SACf;QACD,cAAc,EAAE;YACd,IAAI,EAAE,QAAQ;SACf;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,EAAE;YACZ,oBAAoB,EAAE,IAAI;YAC1B,QAAQ,EAAE,IAAI;SACf;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,EAAE;YACZ,oBAAoB,EAAE,IAAI;SAC3B;KACF;IACD,QAAQ,EAAE,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,UAAU,CAAC;IAC3D,oBAAoB,EAAE,KAAK;CAC5B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typeguards.d.ts","sourceRoot":"","sources":["../../src/datamodel/typeguards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAEzE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,IAAI,oBAAoB,CAE/F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typeguards.js","sourceRoot":"","sources":["../../src/datamodel/typeguards.ts"],"names":[],"mappings":";;AAEA,wDAEC;AAFD,SAAgB,sBAAsB,CAAC,MAAwB;IAC7D,OAAO,mBAAmB,IAAI,MAAM,CAAA;AACtC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typescript-specific.d.ts","sourceRoot":"","sources":["../../src/datamodel/typescript-specific.ts"],"names":[],"mappings":"AAAA,oBAAY,kBAAkB;IAC5B,IAAI,SAAS;IACb,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,KAAK,UAAU;CAChB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TypeScriptTypeKind = void 0;
|
|
4
|
+
var TypeScriptTypeKind;
|
|
5
|
+
(function (TypeScriptTypeKind) {
|
|
6
|
+
TypeScriptTypeKind["Type"] = "type";
|
|
7
|
+
TypeScriptTypeKind["Enum"] = "enum";
|
|
8
|
+
TypeScriptTypeKind["Interface"] = "interface";
|
|
9
|
+
TypeScriptTypeKind["Class"] = "class";
|
|
10
|
+
})(TypeScriptTypeKind || (exports.TypeScriptTypeKind = TypeScriptTypeKind = {}));
|
|
11
|
+
//# sourceMappingURL=typescript-specific.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typescript-specific.js","sourceRoot":"","sources":["../../src/datamodel/typescript-specific.ts"],"names":[],"mappings":";;;AAAA,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,mCAAa,CAAA;IACb,mCAAa,CAAA;IACb,6CAAuB,CAAA;IACvB,qCAAe,CAAA;AACjB,CAAC,EALW,kBAAkB,kCAAlB,kBAAkB,QAK7B"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
export { dirtydefaultsCommand } from './commands/
|
|
1
|
+
export { dirtydefaultsCommand, fixturesCommand, expectmagicCommand, enumerateCommand, badimportsCommand, onlyNamedFunsCommand, } from './commands/scan-commands';
|
|
2
2
|
export { dmCommand } from './commands/dm';
|
|
3
|
-
export { fixturesCommand } from './commands/fixtures';
|
|
4
|
-
export { expectmagicCommand } from './commands/expectmagic';
|
|
5
3
|
export { scanCommand } from './commands/scan';
|
|
6
4
|
export { initCommand } from './commands/init';
|
|
7
|
-
export { enumerateCommand } from './commands/enumerate';
|
|
8
|
-
export { badimportsCommand } from './commands/badimports';
|
|
9
5
|
export { vocabCommand } from './commands/vocab';
|
|
6
|
+
export { noCommentCommand } from './commands/nocomments';
|
|
10
7
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,23 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.vocabCommand = exports.
|
|
3
|
+
exports.noCommentCommand = exports.vocabCommand = exports.initCommand = exports.scanCommand = exports.dmCommand = exports.onlyNamedFunsCommand = exports.badimportsCommand = exports.enumerateCommand = exports.expectmagicCommand = exports.fixturesCommand = exports.dirtydefaultsCommand = void 0;
|
|
4
4
|
// Export all commands for programmatic use
|
|
5
|
-
var
|
|
6
|
-
Object.defineProperty(exports, "dirtydefaultsCommand", { enumerable: true, get: function () { return
|
|
5
|
+
var scan_commands_1 = require("./commands/scan-commands");
|
|
6
|
+
Object.defineProperty(exports, "dirtydefaultsCommand", { enumerable: true, get: function () { return scan_commands_1.dirtydefaultsCommand; } });
|
|
7
|
+
Object.defineProperty(exports, "fixturesCommand", { enumerable: true, get: function () { return scan_commands_1.fixturesCommand; } });
|
|
8
|
+
Object.defineProperty(exports, "expectmagicCommand", { enumerable: true, get: function () { return scan_commands_1.expectmagicCommand; } });
|
|
9
|
+
Object.defineProperty(exports, "enumerateCommand", { enumerable: true, get: function () { return scan_commands_1.enumerateCommand; } });
|
|
10
|
+
Object.defineProperty(exports, "badimportsCommand", { enumerable: true, get: function () { return scan_commands_1.badimportsCommand; } });
|
|
11
|
+
Object.defineProperty(exports, "onlyNamedFunsCommand", { enumerable: true, get: function () { return scan_commands_1.onlyNamedFunsCommand; } });
|
|
7
12
|
var dm_1 = require("./commands/dm");
|
|
8
13
|
Object.defineProperty(exports, "dmCommand", { enumerable: true, get: function () { return dm_1.dmCommand; } });
|
|
9
|
-
var fixtures_1 = require("./commands/fixtures");
|
|
10
|
-
Object.defineProperty(exports, "fixturesCommand", { enumerable: true, get: function () { return fixtures_1.fixturesCommand; } });
|
|
11
|
-
var expectmagic_1 = require("./commands/expectmagic");
|
|
12
|
-
Object.defineProperty(exports, "expectmagicCommand", { enumerable: true, get: function () { return expectmagic_1.expectmagicCommand; } });
|
|
13
14
|
var scan_1 = require("./commands/scan");
|
|
14
15
|
Object.defineProperty(exports, "scanCommand", { enumerable: true, get: function () { return scan_1.scanCommand; } });
|
|
15
16
|
var init_1 = require("./commands/init");
|
|
16
17
|
Object.defineProperty(exports, "initCommand", { enumerable: true, get: function () { return init_1.initCommand; } });
|
|
17
|
-
var enumerate_1 = require("./commands/enumerate");
|
|
18
|
-
Object.defineProperty(exports, "enumerateCommand", { enumerable: true, get: function () { return enumerate_1.enumerateCommand; } });
|
|
19
|
-
var badimports_1 = require("./commands/badimports");
|
|
20
|
-
Object.defineProperty(exports, "badimportsCommand", { enumerable: true, get: function () { return badimports_1.badimportsCommand; } });
|
|
21
18
|
var vocab_1 = require("./commands/vocab");
|
|
22
19
|
Object.defineProperty(exports, "vocabCommand", { enumerable: true, get: function () { return vocab_1.vocabCommand; } });
|
|
20
|
+
var nocomments_1 = require("./commands/nocomments");
|
|
21
|
+
Object.defineProperty(exports, "noCommentCommand", { enumerable: true, get: function () { return nocomments_1.noCommentCommand; } });
|
|
23
22
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,2CAA2C;AAC3C,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,2CAA2C;AAC3C,0DAOiC;AAN/B,qHAAA,oBAAoB,OAAA;AACpB,gHAAA,eAAe,OAAA;AACf,mHAAA,kBAAkB,OAAA;AAClB,iHAAA,gBAAgB,OAAA;AAChB,kHAAA,iBAAiB,OAAA;AACjB,qHAAA,oBAAoB,OAAA;AAEtB,oCAAyC;AAAhC,+FAAA,SAAS,OAAA;AAClB,wCAA6C;AAApC,mGAAA,WAAW,OAAA;AACpB,wCAA6C;AAApC,mGAAA,WAAW,OAAA;AACpB,0CAA+C;AAAtC,qGAAA,YAAY,OAAA;AACrB,oDAAwD;AAA/C,8GAAA,gBAAgB,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"violation-reporter.d.ts","sourceRoot":"","sources":["../../src/reporting/violation-reporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpD,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,IAAI,CA0CpE;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,MAAM,CAIzE"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.reportViolations = reportViolations;
|
|
4
|
+
exports.getViolationSummary = getViolationSummary;
|
|
5
|
+
function reportViolations(violations) {
|
|
6
|
+
if (violations.length === 0) {
|
|
7
|
+
console.log('\n✓ No violations found\n');
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
// Group violations by file
|
|
11
|
+
const byFile = new Map();
|
|
12
|
+
for (const violation of violations) {
|
|
13
|
+
if (!byFile.has(violation.file)) {
|
|
14
|
+
byFile.set(violation.file, []);
|
|
15
|
+
}
|
|
16
|
+
byFile.get(violation.file).push(violation);
|
|
17
|
+
}
|
|
18
|
+
// Print violations grouped by file
|
|
19
|
+
console.log('\n✗ Violations found:\n');
|
|
20
|
+
for (const [file, fileViolations] of byFile) {
|
|
21
|
+
console.log(`${file}`);
|
|
22
|
+
for (const violation of fileViolations) {
|
|
23
|
+
const lineInfo = violation.line ? `:${violation.line}` : '';
|
|
24
|
+
console.log(` ${lineInfo} [${violation.policyName}] ${violation.message}`);
|
|
25
|
+
console.log(` Culprit: ${violation.cause.culprit}`);
|
|
26
|
+
if (violation.cause.snippet) {
|
|
27
|
+
console.log(` Snippet:\n${violation.cause.snippet
|
|
28
|
+
.split('\n')
|
|
29
|
+
.map((l) => ` ${l}`)
|
|
30
|
+
.join('\n')}`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
console.log('');
|
|
34
|
+
}
|
|
35
|
+
// Summary
|
|
36
|
+
const fileCount = byFile.size;
|
|
37
|
+
const violationCount = violations.length;
|
|
38
|
+
console.log(`Found ${violationCount} violation${violationCount === 1 ? '' : 's'} across ${fileCount} file${fileCount === 1 ? '' : 's'}\n`);
|
|
39
|
+
}
|
|
40
|
+
function getViolationSummary(violations) {
|
|
41
|
+
const fileCount = new Set(violations.map((v) => v.file)).size;
|
|
42
|
+
const violationCount = violations.length;
|
|
43
|
+
return `Found ${violationCount} violation${violationCount === 1 ? '' : 's'} across ${fileCount} file${fileCount === 1 ? '' : 's'}`;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=violation-reporter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"violation-reporter.js","sourceRoot":"","sources":["../../src/reporting/violation-reporter.ts"],"names":[],"mappings":";;AAEA,4CA0CC;AAED,kDAIC;AAhDD,SAAgB,gBAAgB,CAAC,UAA6B;IAC5D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;QACxC,OAAM;IACR,CAAC;IAED,2BAA2B;IAC3B,MAAM,MAAM,GAAG,IAAI,GAAG,EAA6B,CAAA;IACnD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QAChC,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC7C,CAAC;IAED,mCAAmC;IACnC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;IAEtC,KAAK,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,MAAM,EAAE,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAA;QACtB,KAAK,MAAM,SAAS,IAAI,cAAc,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;YAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,KAAK,SAAS,CAAC,UAAU,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC,CAAA;YAC3E,OAAO,CAAC,GAAG,CAAC,gBAAgB,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;YACtD,IAAI,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBAC5B,OAAO,CAAC,GAAG,CACT,iBAAiB,SAAS,CAAC,KAAK,CAAC,OAAO;qBACrC,KAAK,CAAC,IAAI,CAAC;qBACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;qBACxB,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAA;YACH,CAAC;QACH,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACjB,CAAC;IAED,UAAU;IACV,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAA;IAC7B,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAA;IACxC,OAAO,CAAC,GAAG,CACT,SAAS,cAAc,aAAa,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,WAAW,SAAS,QAAQ,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAC9H,CAAA;AACH,CAAC;AAED,SAAgB,mBAAmB,CAAC,UAA6B;IAC/D,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;IAC7D,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAA;IACxC,OAAO,SAAS,cAAc,aAAa,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,WAAW,SAAS,QAAQ,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;AACpI,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-should-have-declarations.d.ts","sourceRoot":"","sources":["../../../src/rules/policies/code-should-have-declarations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAElC,eAAO,MAAM,gCAAgC,EAAE,MAU9C,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.codeShouldHaveDeclarationsPolicy = void 0;
|
|
4
|
+
exports.codeShouldHaveDeclarationsPolicy = {
|
|
5
|
+
id: 'code-should-have-declarations',
|
|
6
|
+
title: 'Code Should Have Declarations',
|
|
7
|
+
violations: [
|
|
8
|
+
{
|
|
9
|
+
message: 'No declarations found in code',
|
|
10
|
+
cause: 'empty file or no type/function/variable declarations',
|
|
11
|
+
providers: [{ type: 'identity', source: 'declarations' }],
|
|
12
|
+
},
|
|
13
|
+
],
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=code-should-have-declarations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-should-have-declarations.js","sourceRoot":"","sources":["../../../src/rules/policies/code-should-have-declarations.ts"],"names":[],"mappings":";;;AAEa,QAAA,gCAAgC,GAAW;IACtD,EAAE,EAAE,+BAA+B;IACnC,KAAK,EAAE,+BAA+B;IACtC,UAAU,EAAE;QACV;YACE,OAAO,EAAE,+BAA+B;YACxC,KAAK,EAAE,sDAAsD;YAC7D,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;SAC1D;KACF;CACF,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keep-tests-clean.d.ts","sourceRoot":"","sources":["../../../src/rules/policies/keep-tests-clean.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAGlC,eAAO,MAAM,oBAAoB,EAAE,MAelC,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.keepTestsCleanPolicy = void 0;
|
|
4
|
+
const ast_parser_1 = require("../../utils/ast-parser");
|
|
5
|
+
exports.keepTestsCleanPolicy = {
|
|
6
|
+
id: 'keep-tests-clean',
|
|
7
|
+
title: 'Keep Tests Clean',
|
|
8
|
+
violations: [
|
|
9
|
+
{
|
|
10
|
+
message: 'Found literal in function call: {functionName}',
|
|
11
|
+
cause: '{literalValue}',
|
|
12
|
+
providers: [
|
|
13
|
+
{ type: 'identity', source: 'functionInvocations' },
|
|
14
|
+
{ type: 'filter-by-file', patterns: ['test/**/*.ts', '**/*.test.ts', '**/*.spec.ts'] },
|
|
15
|
+
{ type: 'filter-exclude-function-names', names: ['test', 'given', 'when', 'then', 'describe', 'it'] },
|
|
16
|
+
{ type: 'filter-has-literal-arguments', literalKinds: [ast_parser_1.LiteralKind.String, ast_parser_1.LiteralKind.Number] },
|
|
17
|
+
],
|
|
18
|
+
},
|
|
19
|
+
],
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=keep-tests-clean.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keep-tests-clean.js","sourceRoot":"","sources":["../../../src/rules/policies/keep-tests-clean.ts"],"names":[],"mappings":";;;AACA,uDAAoD;AAEvC,QAAA,oBAAoB,GAAW;IAC1C,EAAE,EAAE,kBAAkB;IACtB,KAAK,EAAE,kBAAkB;IACzB,UAAU,EAAE;QACV;YACE,OAAO,EAAE,gDAAgD;YACzD,KAAK,EAAE,gBAAgB;YACvB,SAAS,EAAE;gBACT,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,qBAAqB,EAAE;gBACnD,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC,EAAE;gBACtF,EAAE,IAAI,EAAE,+BAA+B,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE;gBACrG,EAAE,IAAI,EAAE,8BAA8B,EAAE,YAAY,EAAE,CAAC,wBAAW,CAAC,MAAM,EAAE,wBAAW,CAAC,MAAM,CAAC,EAAE;aACjG;SACF;KACF;CACF,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-vars.d.ts","sourceRoot":"","sources":["../../../src/rules/policies/no-vars.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAElC,eAAO,MAAM,YAAY,EAAE,MAa1B,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.noVarsPolicy = void 0;
|
|
4
|
+
const ast_parser_1 = require("../../utils/ast-parser");
|
|
5
|
+
exports.noVarsPolicy = {
|
|
6
|
+
id: 'no-vars',
|
|
7
|
+
title: 'No Var Declarations',
|
|
8
|
+
violations: [
|
|
9
|
+
{
|
|
10
|
+
message: 'Found var declaration: {declarationName}',
|
|
11
|
+
cause: '{definition}',
|
|
12
|
+
providers: [
|
|
13
|
+
{ type: 'identity', source: 'declarations' },
|
|
14
|
+
{ type: 'filter-by-declaration-type', declarationTypes: [ast_parser_1.DeclarationType.Var] },
|
|
15
|
+
],
|
|
16
|
+
},
|
|
17
|
+
],
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=no-vars.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-vars.js","sourceRoot":"","sources":["../../../src/rules/policies/no-vars.ts"],"names":[],"mappings":";;;AAAA,uDAAwD;AAG3C,QAAA,YAAY,GAAW;IAClC,EAAE,EAAE,SAAS;IACb,KAAK,EAAE,qBAAqB;IAC5B,UAAU,EAAE;QACV;YACE,OAAO,EAAE,0CAA0C;YACnD,KAAK,EAAE,cAAc;YACrB,SAAS,EAAE;gBACT,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE;gBAC5C,EAAE,IAAI,EAAE,4BAA4B,EAAE,gBAAgB,EAAE,CAAC,4BAAe,CAAC,GAAG,CAAC,EAAE;aAChF;SACF;KACF;CACF,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { AstAnalysis } from '../utils/AstAnalysis';
|
|
2
|
+
import { Policy } from './policy';
|
|
3
|
+
import { ViolationReport } from './violation';
|
|
4
|
+
export declare function executePolicy(analysis: AstAnalysis, policy: Policy): Promise<ViolationReport[]>;
|
|
5
|
+
//# sourceMappingURL=policy-executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy-executor.d.ts","sourceRoot":"","sources":["../../src/rules/policy-executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAG7C,wBAAsB,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAMrG"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.executePolicy = executePolicy;
|
|
4
|
+
const provider_executor_1 = require("./provider-executor");
|
|
5
|
+
async function executePolicy(analysis, policy) {
|
|
6
|
+
const violationsPerRule = await Promise.all(policy.violations.map((violationRule) => (0, provider_executor_1.executeViolationRule)(analysis, violationRule, policy.id)));
|
|
7
|
+
const allViolations = violationsPerRule.flat();
|
|
8
|
+
return allViolations;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=policy-executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy-executor.js","sourceRoot":"","sources":["../../src/rules/policy-executor.ts"],"names":[],"mappings":";;AAKA,sCAMC;AARD,2DAA0D;AAEnD,KAAK,UAAU,aAAa,CAAC,QAAqB,EAAE,MAAc;IACvE,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,GAAG,CACzC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,IAAA,wCAAoB,EAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CACnG,CAAA;IACD,MAAM,aAAa,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAA;IAC9C,OAAO,aAAa,CAAA;AACtB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/rules/policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD,MAAM,MAAM,MAAM,GAAG;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,aAAa,EAAE,CAAA;CAC5B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/rules/policy.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { AstAnalysis } from '../utils/AstAnalysis';
|
|
2
|
+
import { ViolationReport } from './violation';
|
|
3
|
+
import { ViolationRule } from './violation-rule';
|
|
4
|
+
export declare function executeViolationRule(analysis: AstAnalysis, violationRule: ViolationRule, policyId: string): Promise<ViolationReport[]>;
|
|
5
|
+
//# sourceMappingURL=provider-executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-executor.d.ts","sourceRoot":"","sources":["../../src/rules/provider-executor.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAOhD,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,WAAW,EACrB,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,eAAe,EAAE,CAAC,CAQ5B"}
|