@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.
Files changed (194) hide show
  1. package/.snitchconfig.json +25 -135
  2. package/dist/SnitchConfigManager.d.ts +9 -0
  3. package/dist/SnitchConfigManager.d.ts.map +1 -0
  4. package/dist/SnitchConfigManager.js +112 -0
  5. package/dist/SnitchConfigManager.js.map +1 -0
  6. package/dist/commands/dm.d.ts.map +1 -1
  7. package/dist/commands/dm.js.map +1 -1
  8. package/dist/commands/init.d.ts.map +1 -1
  9. package/dist/commands/init.js.map +1 -1
  10. package/dist/commands/nocomments.d.ts +2 -0
  11. package/dist/commands/nocomments.d.ts.map +1 -0
  12. package/dist/commands/nocomments.js +59 -0
  13. package/dist/commands/nocomments.js.map +1 -0
  14. package/dist/commands/scan-commands.d.ts +7 -0
  15. package/dist/commands/scan-commands.d.ts.map +1 -0
  16. package/dist/commands/scan-commands.js +28 -0
  17. package/dist/commands/scan-commands.js.map +1 -0
  18. package/dist/commands/scan.d.ts +1 -1
  19. package/dist/commands/scan.d.ts.map +1 -1
  20. package/dist/commands/scan.js +170 -103
  21. package/dist/commands/scan.js.map +1 -1
  22. package/dist/commands/vocab.d.ts.map +1 -1
  23. package/dist/commands/vocab.js.map +1 -1
  24. package/dist/common/fs.d.ts +1 -0
  25. package/dist/common/fs.d.ts.map +1 -0
  26. package/dist/common/fs.js +2 -0
  27. package/dist/common/fs.js.map +1 -0
  28. package/dist/common/index.d.ts +2 -0
  29. package/dist/common/index.d.ts.map +1 -0
  30. package/dist/common/index.js +18 -0
  31. package/dist/common/index.js.map +1 -0
  32. package/dist/common/json.d.ts +21 -0
  33. package/dist/common/json.d.ts.map +1 -0
  34. package/dist/common/json.js +41 -0
  35. package/dist/common/json.js.map +1 -0
  36. package/dist/common/strings.d.ts +8 -0
  37. package/dist/common/strings.d.ts.map +1 -0
  38. package/dist/common/strings.js +15 -0
  39. package/dist/common/strings.js.map +1 -0
  40. package/dist/config/policy-loader.d.ts +4 -0
  41. package/dist/config/policy-loader.d.ts.map +1 -0
  42. package/dist/config/policy-loader.js +21 -0
  43. package/dist/config/policy-loader.js.map +1 -0
  44. package/dist/datamodel/commands.d.ts +25 -0
  45. package/dist/datamodel/commands.d.ts.map +1 -0
  46. package/dist/datamodel/commands.js +31 -0
  47. package/dist/datamodel/commands.js.map +1 -0
  48. package/dist/datamodel/common.d.ts +11 -0
  49. package/dist/datamodel/common.d.ts.map +1 -0
  50. package/dist/datamodel/common.js +3 -0
  51. package/dist/datamodel/common.js.map +1 -0
  52. package/dist/datamodel/errors.d.ts +16 -0
  53. package/dist/datamodel/errors.d.ts.map +1 -0
  54. package/dist/datamodel/errors.js +51 -0
  55. package/dist/datamodel/errors.js.map +1 -0
  56. package/dist/datamodel/index.d.ts +9 -0
  57. package/dist/datamodel/index.d.ts.map +1 -0
  58. package/dist/datamodel/index.js +25 -0
  59. package/dist/datamodel/index.js.map +1 -0
  60. package/dist/datamodel/internal-configs.d.ts +14 -0
  61. package/dist/datamodel/internal-configs.d.ts.map +1 -0
  62. package/dist/datamodel/internal-configs.js +3 -0
  63. package/dist/datamodel/internal-configs.js.map +1 -0
  64. package/dist/datamodel/public-configs.d.ts +27 -0
  65. package/dist/datamodel/public-configs.d.ts.map +1 -0
  66. package/dist/datamodel/public-configs.js +3 -0
  67. package/dist/datamodel/public-configs.js.map +1 -0
  68. package/dist/datamodel/snitch-configuration.d.ts +16 -0
  69. package/dist/datamodel/snitch-configuration.d.ts.map +1 -0
  70. package/dist/datamodel/snitch-configuration.js +32 -0
  71. package/dist/datamodel/snitch-configuration.js.map +1 -0
  72. package/dist/datamodel/typeguards.d.ts +3 -0
  73. package/dist/datamodel/typeguards.d.ts.map +1 -0
  74. package/dist/datamodel/typeguards.js +7 -0
  75. package/dist/datamodel/typeguards.js.map +1 -0
  76. package/dist/datamodel/typescript-specific.d.ts +7 -0
  77. package/dist/datamodel/typescript-specific.d.ts.map +1 -0
  78. package/dist/datamodel/typescript-specific.js +11 -0
  79. package/dist/datamodel/typescript-specific.js.map +1 -0
  80. package/dist/index.d.ts +2 -5
  81. package/dist/index.d.ts.map +1 -1
  82. package/dist/index.js +10 -11
  83. package/dist/index.js.map +1 -1
  84. package/dist/reporting/violation-reporter.d.ts +4 -0
  85. package/dist/reporting/violation-reporter.d.ts.map +1 -0
  86. package/dist/reporting/violation-reporter.js +45 -0
  87. package/dist/reporting/violation-reporter.js.map +1 -0
  88. package/dist/rules/policies/code-should-have-declarations.d.ts +3 -0
  89. package/dist/rules/policies/code-should-have-declarations.d.ts.map +1 -0
  90. package/dist/rules/policies/code-should-have-declarations.js +15 -0
  91. package/dist/rules/policies/code-should-have-declarations.js.map +1 -0
  92. package/dist/rules/policies/keep-tests-clean.d.ts +3 -0
  93. package/dist/rules/policies/keep-tests-clean.d.ts.map +1 -0
  94. package/dist/rules/policies/keep-tests-clean.js +21 -0
  95. package/dist/rules/policies/keep-tests-clean.js.map +1 -0
  96. package/dist/rules/policies/no-vars.d.ts +3 -0
  97. package/dist/rules/policies/no-vars.d.ts.map +1 -0
  98. package/dist/rules/policies/no-vars.js +19 -0
  99. package/dist/rules/policies/no-vars.js.map +1 -0
  100. package/dist/rules/policy-executor.d.ts +5 -0
  101. package/dist/rules/policy-executor.d.ts.map +1 -0
  102. package/dist/rules/policy-executor.js +10 -0
  103. package/dist/rules/policy-executor.js.map +1 -0
  104. package/dist/rules/policy.d.ts +7 -0
  105. package/dist/rules/policy.d.ts.map +1 -0
  106. package/dist/rules/policy.js +3 -0
  107. package/dist/rules/policy.js.map +1 -0
  108. package/dist/rules/provider-executor.d.ts +5 -0
  109. package/dist/rules/provider-executor.d.ts.map +1 -0
  110. package/dist/rules/provider-executor.js +105 -0
  111. package/dist/rules/provider-executor.js.map +1 -0
  112. package/dist/rules/provider.d.ts +26 -0
  113. package/dist/rules/provider.d.ts.map +1 -0
  114. package/dist/rules/provider.js +3 -0
  115. package/dist/rules/provider.js.map +1 -0
  116. package/dist/rules/providers/filter-by-declaration-type-provider.d.ts +8 -0
  117. package/dist/rules/providers/filter-by-declaration-type-provider.d.ts.map +1 -0
  118. package/dist/rules/providers/filter-by-declaration-type-provider.js +15 -0
  119. package/dist/rules/providers/filter-by-declaration-type-provider.js.map +1 -0
  120. package/dist/rules/providers/filter-by-file-provider.d.ts +8 -0
  121. package/dist/rules/providers/filter-by-file-provider.d.ts.map +1 -0
  122. package/dist/rules/providers/filter-by-file-provider.js +16 -0
  123. package/dist/rules/providers/filter-by-file-provider.js.map +1 -0
  124. package/dist/rules/providers/filter-exclude-function-names-provider.d.ts +8 -0
  125. package/dist/rules/providers/filter-exclude-function-names-provider.d.ts.map +1 -0
  126. package/dist/rules/providers/filter-exclude-function-names-provider.js +15 -0
  127. package/dist/rules/providers/filter-exclude-function-names-provider.js.map +1 -0
  128. package/dist/rules/providers/filter-has-literal-arguments-provider.d.ts +8 -0
  129. package/dist/rules/providers/filter-has-literal-arguments-provider.d.ts.map +1 -0
  130. package/dist/rules/providers/filter-has-literal-arguments-provider.js +26 -0
  131. package/dist/rules/providers/filter-has-literal-arguments-provider.js.map +1 -0
  132. package/dist/rules/providers/identity-provider.d.ts +8 -0
  133. package/dist/rules/providers/identity-provider.d.ts.map +1 -0
  134. package/dist/rules/providers/identity-provider.js +30 -0
  135. package/dist/rules/providers/identity-provider.js.map +1 -0
  136. package/dist/rules/violation-rule.d.ts +7 -0
  137. package/dist/rules/violation-rule.d.ts.map +1 -0
  138. package/dist/rules/violation-rule.js +3 -0
  139. package/dist/rules/violation-rule.js.map +1 -0
  140. package/dist/rules/violation.d.ts +12 -0
  141. package/dist/rules/violation.d.ts.map +1 -0
  142. package/dist/rules/violation.js +3 -0
  143. package/dist/rules/violation.js.map +1 -0
  144. package/dist/snitch.js +97 -44
  145. package/dist/snitch.js.map +1 -1
  146. package/dist/snitch.old.d.ts +3 -0
  147. package/dist/snitch.old.d.ts.map +1 -0
  148. package/dist/snitch.old.js +71 -0
  149. package/dist/snitch.old.js.map +1 -0
  150. package/dist/utils/AstAnalysis.d.ts +28 -0
  151. package/dist/utils/AstAnalysis.d.ts.map +1 -0
  152. package/dist/utils/AstAnalysis.js +117 -0
  153. package/dist/utils/AstAnalysis.js.map +1 -0
  154. package/dist/utils/ast-parser.d.ts +68 -0
  155. package/dist/utils/ast-parser.d.ts.map +1 -0
  156. package/dist/utils/ast-parser.js +364 -0
  157. package/dist/utils/ast-parser.js.map +1 -0
  158. package/dist/utils/fs.d.ts +8 -0
  159. package/dist/utils/fs.d.ts.map +1 -0
  160. package/dist/utils/fs.js +93 -0
  161. package/dist/utils/fs.js.map +1 -0
  162. package/dist/utils/pattern-scanner.d.ts +5 -21
  163. package/dist/utils/pattern-scanner.d.ts.map +1 -1
  164. package/dist/utils/pattern-scanner.js +13 -17
  165. package/dist/utils/pattern-scanner.js.map +1 -1
  166. package/dist/utils/ts-parser.d.ts.map +1 -1
  167. package/dist/utils/ts-parser.js +5 -12
  168. package/dist/utils/ts-parser.js.map +1 -1
  169. package/package.json +13 -6
  170. package/snitchconfig.schema.json +107 -51
  171. package/dist/commands/badimports.d.ts +0 -2
  172. package/dist/commands/badimports.d.ts.map +0 -1
  173. package/dist/commands/badimports.js +0 -8
  174. package/dist/commands/badimports.js.map +0 -1
  175. package/dist/commands/dirtydefaults.d.ts +0 -2
  176. package/dist/commands/dirtydefaults.d.ts.map +0 -1
  177. package/dist/commands/dirtydefaults.js +0 -8
  178. package/dist/commands/dirtydefaults.js.map +0 -1
  179. package/dist/commands/enumerate.d.ts +0 -2
  180. package/dist/commands/enumerate.d.ts.map +0 -1
  181. package/dist/commands/enumerate.js +0 -8
  182. package/dist/commands/enumerate.js.map +0 -1
  183. package/dist/commands/expectmagic.d.ts +0 -2
  184. package/dist/commands/expectmagic.d.ts.map +0 -1
  185. package/dist/commands/expectmagic.js +0 -8
  186. package/dist/commands/expectmagic.js.map +0 -1
  187. package/dist/commands/fixtures.d.ts +0 -2
  188. package/dist/commands/fixtures.d.ts.map +0 -1
  189. package/dist/commands/fixtures.js +0 -8
  190. package/dist/commands/fixtures.js.map +0 -1
  191. package/dist/datamodel.d.ts +0 -18
  192. package/dist/datamodel.d.ts.map +0 -1
  193. package/dist/datamodel.js +0 -23
  194. package/dist/datamodel.js.map +0 -1
@@ -1,142 +1,32 @@
1
1
  {
2
- "$schema": "./snitchconfig.schema.json",
3
- "commands": {
4
- "testhealth": ["fixtures", "badimports"],
5
- "expectmagic": {
6
- "description": "Find magic values in expect() assertions",
7
- "fileFilter": "testFiles",
8
- "warnings": [
9
- {
10
- "message": "magic number in expect",
11
- "regexes": [
12
- "expect\\(.*\\)\\.([a-zA-Z]+)\\(-?\\d+(\\.\\d+)?\\)"
13
- ],
14
- "recommendation": {
15
- "message": "Do not test against magic values.",
16
- "recommendations": [
17
- "When possible test against value from fixture, for example if parameter is loaded from the fixture, then test that it's from the fixture.",
18
- "Otherwise consider test to be useless, it only adds to refactoring burden.",
19
- "In case where you disagree, consult with user to add an exception."
20
- ]
21
- }
22
- },
23
- {
24
- "message": "magic string in expect",
25
- "regexes": [
26
- "expect\\(.*\\)\\.([a-zA-Z]+)\\(['\"][^'\"]*['\"]\\)"
27
- ],
28
- "recommendation": {
29
- "message": "Do not test against magic values.",
30
- "recommendations": [
31
- "When possible test against value from fixture, for example if parameter is loaded from the fixture, then test that it's from the fixture.",
32
- "Otherwise consider test to be useless, it only adds to refactoring burden.",
33
- "In case where you disagree, consult with user to add an exception."
34
- ]
35
- }
36
- }
37
- ]
38
- },
39
- "fixtures": {
40
- "description": "Find inline config declarations that should use fixtures",
41
- "fileFilter": "allTypeScript",
42
- "warnings": [
43
- {
44
- "message": "config declared inline",
45
- "regexes": [
46
- "const\\s+\\w+:\\s+\\w+Config\\s*=\\s*\\{"
47
- ],
48
- "recommendation": {
49
- "message": "Always use external fixtures.",
50
- "recommendations": [
51
- "External fixtures are easier to monitor and modify.",
52
- "They promote better test maintainability and reusability."
53
- ]
54
- }
55
- }
56
- ]
57
- },
58
- "dirtydefaults": {
59
- "description": "Default values are evil. Do not use them.",
60
- "fileFilter": "allTypeScript",
61
- "warnings": [
62
- {
63
- "message": "function parameter with default value",
64
- "regexes": [
65
- "\\([a-zA-Z0-9]+\\s*=\\s*[a-zA-Z0-9.]+[\\),]",
66
- ", [a-zA-Z]+\\s*=\\s*[0-9a-zA-Z]\\s*[,)]",
67
- "^\\s*[a-zA-Z0-9]+\\s*=\\s*[a-zA-Z0-9.]+,"
68
- ],
69
- "recommendation": {
70
- "message": "Do not use defaults unless absolutely needed.",
71
- "recommendations": [
72
- "If this is required, for example in the user facing API, declare defaults as separate constants const DEFAULT_FUNCTION_NAME_PARAM_NAME. Yes super ugly, it should hurt.",
73
- "Or load defaults from external file."
74
- ]
75
- }
2
+ "sourceDirectory": "src",
3
+ "testsDirectory": "test",
4
+ "policies": {
5
+ "keep-tests-clean": {
6
+ "title": "Keep Tests Clean",
7
+ "violations": [
8
+ {
9
+ "message": "Found literal in function call: {functionName}",
10
+ "cause": "{literalValue}",
11
+ "providers": [
12
+ { "type": "identity", "source": "functionInvocations" },
13
+ { "type": "filter-by-file", "patterns": ["test/**/*.ts", "**/*.test.ts", "**/*.spec.ts"] },
14
+ { "type": "filter-exclude-function-names", "names": ["test", "given", "when", "then", "describe", "it"] },
15
+ { "type": "filter-has-literal-arguments", "literalKinds": ["string", "number"] }
16
+ ]
76
17
  }
77
18
  ]
78
19
  },
79
- "badimports": {
80
- "description": "Imports should follow strict rules.",
81
- "fileFilter": "allTypeScript",
82
- "warnings": [
83
- {
84
- "message": "No require() imports",
85
- "regexes": ["= require\\(.*\\)"],
86
- "recommendation": {
87
- "message": "Replace with import…from statements."
88
- }
89
- },
90
- {
91
- "message": "Default exports not allowed. Names exports are safer",
92
- "regexes": ["export default"],
93
- "recommendation": {
94
- "message": "Only named exports are allowed"
95
- }
96
- }
97
- ]
98
- },
99
- "enumerate": {
100
- "description": "Don't use inline literals bullshit. Use enums",
101
- "fileFilter": "allTypeScript",
102
- "warnings": [
103
- {
104
- "message": "case used with literal instead of enum",
105
- "regexes": ["case\\s*['\"][a-zA-Z0-9]+['\"]:"],
106
- "recommendation": {
107
- "message": "",
108
- "recommendations": [
109
- "Use values from variables",
110
- "Request user to use enum.",
111
- "Or create enum, if you are allowed to."
112
- ]
113
- }
114
- },
115
- {
116
- "message": "inline union type used instead of enum",
117
- "regexes": [
118
- "['\"][a-zA-Z0-9]+['\"]\\s*\\|\\s*['\"][a-zA-Z0-9]+['\"]"
119
- ],
120
- "recommendation": {
121
- "message": "Don't inline values. Use enum.",
122
- "recommendations": [
123
- "Request user to use enum.",
124
- "Or create enum, if you are allowed to."
125
- ]
126
- }
127
- },
128
- {
129
- "message": "inline union type used instead of enum",
130
- "regexes": [
131
- "[a-zA-Z0-9?.]+\\s*\\|\\|\\s*['\"]{0,1}[a-zA-Z0-9]+['\"]{0,1}"
132
- ],
133
- "recommendation": {
134
- "message": "Don't inline values. Use enum.",
135
- "recommendations": [
136
- "Request user to use enum.",
137
- "Or create enum, if you are allowed to."
138
- ]
139
- }
20
+ "no-vars": {
21
+ "title": "No Var Declarations",
22
+ "violations": [
23
+ {
24
+ "message": "Found var declaration: {declarationName}",
25
+ "cause": "{definition}",
26
+ "providers": [
27
+ { "type": "identity", "source": "declarations" },
28
+ { "type": "filter-by-declaration-type", "declarationTypes": ["var"] }
29
+ ]
140
30
  }
141
31
  ]
142
32
  }
@@ -0,0 +1,9 @@
1
+ import { SnitchConfiguration } from './datamodel';
2
+ export declare class SnitchConfigManager {
3
+ private static configurations;
4
+ private static configurationNamesCache;
5
+ static getConfig(configName?: string): SnitchConfiguration;
6
+ static loadConfig(configName?: string): SnitchConfiguration;
7
+ private static extendConfig;
8
+ }
9
+ //# sourceMappingURL=SnitchConfigManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SnitchConfigManager.d.ts","sourceRoot":"","sources":["../src/SnitchConfigManager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAiC,mBAAmB,EAA6B,MAAM,aAAa,CAAA;AAK3G,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAC,cAAc,CAAuB;IACpD,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAe;WAEvC,SAAS,CAAC,UAAU,GAAE,MAAsB,GAAG,mBAAmB;WAUlE,UAAU,CAAC,UAAU,GAAE,MAAsB,GAAG,mBAAmB;IA2CjF,OAAO,CAAC,MAAM,CAAC,YAAY;CAoB5B"}
@@ -0,0 +1,112 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.SnitchConfigManager = void 0;
37
+ const path = __importStar(require("path"));
38
+ const errors_1 = require("@fyuld/errors");
39
+ const common_1 = require("./common");
40
+ const json_1 = require("./common/json");
41
+ const datamodel_1 = require("./datamodel");
42
+ const fs_1 = require("./utils/fs");
43
+ class SnitchConfigManager {
44
+ static getConfig(configName = common_1.Strings.Empty) {
45
+ const config = this.configurations[configName];
46
+ if (!config) {
47
+ throw datamodel_1.SnitchConfigError.configNotLoaded(configName);
48
+ }
49
+ return config;
50
+ }
51
+ static loadConfig(configName = common_1.Strings.Empty) {
52
+ if (this.configurations[configName]) {
53
+ return this.configurations[configName];
54
+ }
55
+ // Check for circular dependency
56
+ if (this.configurationNamesCache.includes(configName)) {
57
+ throw datamodel_1.SnitchConfigError.circularExtends([...this.configurationNamesCache, configName]);
58
+ }
59
+ this.configurationNamesCache.push(configName);
60
+ const configPath = configName === common_1.Strings.Empty
61
+ ? path.resolve('.snitchconfig.json')
62
+ : path.resolve(`.snitchconfig.${configName}.json`);
63
+ try {
64
+ const raw = (0, fs_1.loadJsonFile)(configPath);
65
+ const configuration = (0, json_1.validateJson)(raw, datamodel_1.snitchConfigurationSchema);
66
+ if (configuration.extends) {
67
+ const baseConfig = SnitchConfigManager.loadConfig(configuration.extends);
68
+ const extendedConfiguration = SnitchConfigManager.extendConfig(baseConfig, configuration);
69
+ SnitchConfigManager.configurations[configName] = extendedConfiguration;
70
+ }
71
+ else {
72
+ SnitchConfigManager.configurations[configName] = configuration;
73
+ }
74
+ }
75
+ catch (error) {
76
+ if (error instanceof errors_1.FileSystemError) {
77
+ throw datamodel_1.SnitchConfigError.configFileNotFound(configPath);
78
+ }
79
+ if (error instanceof datamodel_1.ParseError) {
80
+ throw datamodel_1.SnitchConfigError.unableToParseConfig(configPath, error.causes);
81
+ }
82
+ if (error instanceof json_1.JsonValidationError) {
83
+ throw datamodel_1.SnitchConfigError.invalidConfig(error.causes);
84
+ }
85
+ throw error;
86
+ }
87
+ return this.configurations[configName];
88
+ }
89
+ static extendConfig(base, override) {
90
+ const merged = {
91
+ ...base,
92
+ ...override,
93
+ commands: {
94
+ ...base.commands,
95
+ ...override.commands,
96
+ },
97
+ };
98
+ try {
99
+ return (0, json_1.validateJson)(merged, datamodel_1.snitchConfigurationSchema);
100
+ }
101
+ catch (error) {
102
+ if (error instanceof json_1.JsonValidationError) {
103
+ throw datamodel_1.SnitchConfigError.unableToExtend(override.extends, error.causes);
104
+ }
105
+ throw error;
106
+ }
107
+ }
108
+ }
109
+ exports.SnitchConfigManager = SnitchConfigManager;
110
+ SnitchConfigManager.configurations = {};
111
+ SnitchConfigManager.configurationNamesCache = [];
112
+ //# sourceMappingURL=SnitchConfigManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SnitchConfigManager.js","sourceRoot":"","sources":["../src/SnitchConfigManager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dm.d.ts","sourceRoot":"","sources":["../../src/commands/dm.ts"],"names":[],"mappings":"AAQA,wBAAsB,SAAS,CAC7B,eAAe,GAAE,MAAiB,GACjC,OAAO,CAAC,IAAI,CAAC,CA4Ff"}
1
+ {"version":3,"file":"dm.d.ts","sourceRoot":"","sources":["../../src/commands/dm.ts"],"names":[],"mappings":"AAIA,wBAAsB,SAAS,CAAC,eAAe,GAAE,MAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuEjF"}
@@ -1 +1 @@
1
- {"version":3,"file":"dm.js","sourceRoot":"","sources":["../../src/commands/dm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dm.js","sourceRoot":"","sources":["../../src/commands/dm.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAGA,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CA6CjD"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAGA,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAgCjD"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,kCA6CC;AAhDD,2CAA4B;AAC5B,uCAAwB;AAEjB,KAAK,UAAU,WAAW;IAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAA;IAErD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CACT,4DAA4D,CAC7D,CAAA;QACD,OAAO,CAAC,GAAG,CAAC,gBAAgB,UAAU,EAAE,CAAC,CAAA;QACzC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;QACjC,OAAM;IACR,CAAC;IAED,mDAAmD;IACnD,kEAAkE;IAClE,uEAAuE;IACvE,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAC3B,SAAS,EACT,6BAA6B,CAC9B,CAAA;IAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,iFAAiF;QACjF,UAAU,GAAG,IAAI,CAAC,OAAO,CACvB,SAAS,EACT,UAAU,EACV,oBAAoB,CACrB,CAAA;QAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACb,0DAA0D,UAAU,qCAAqC,CAC1G,CAAA;QACH,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IAC1D,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,aAAa,EAAE,OAAO,CAAC,CAAA;IAEpD,OAAO,CAAC,GAAG,CACT,mDAAmD,CACpD,CAAA;IACD,OAAO,CAAC,GAAG,CAAC,eAAe,UAAU,EAAE,CAAC,CAAA;IACxC,OAAO,CAAC,GAAG,CACT,6DAA6D,CAC9D,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,kCAgCC;AAnCD,2CAA4B;AAC5B,uCAAwB;AAEjB,KAAK,UAAU,WAAW;IAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAA;IAErD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAA;QACzE,OAAO,CAAC,GAAG,CAAC,gBAAgB,UAAU,EAAE,CAAC,CAAA;QACzC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;QACjC,OAAM;IACR,CAAC;IAED,mDAAmD;IACnD,kEAAkE;IAClE,uEAAuE;IACvE,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,6BAA6B,CAAC,CAAA;IAEvE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,iFAAiF;QACjF,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,EAAE,oBAAoB,CAAC,CAAA;QAEtE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACb,0DAA0D,UAAU,qCAAqC,CAC1G,CAAA;QACH,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IAC1D,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,aAAa,EAAE,OAAO,CAAC,CAAA;IAEpD,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAA;IAChE,OAAO,CAAC,GAAG,CAAC,eAAe,UAAU,EAAE,CAAC,CAAA;IACxC,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAA;AAC5E,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function noCommentCommand(isScanningSourceDirectory: boolean, isScanningTestsDirectory: boolean): Promise<void>;
2
+ //# sourceMappingURL=nocomments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nocomments.d.ts","sourceRoot":"","sources":["../../src/commands/nocomments.ts"],"names":[],"mappings":"AAUA,wBAAsB,gBAAgB,CACpC,yBAAyB,EAAE,OAAO,EAClC,wBAAwB,EAAE,OAAO,GAChC,OAAO,CAAC,IAAI,CAAC,CAqBf"}
@@ -0,0 +1,59 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.noCommentCommand = noCommentCommand;
37
+ const scan_1 = require("./scan");
38
+ const path = __importStar(require("path"));
39
+ const fs = __importStar(require("fs"));
40
+ async function noCommentCommand(isScanningSourceDirectory, isScanningTestsDirectory) {
41
+ const configPath = path.resolve('.snitchconfig.json');
42
+ if (!fs.existsSync(configPath)) {
43
+ throw new Error(`Config file not found: ${configPath}`);
44
+ }
45
+ const config = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
46
+ if (!config.sourceDirectory) {
47
+ throw new Error('sourceDirectory must be defined in .snitchconfig.json');
48
+ }
49
+ if (!config.testsDirectory) {
50
+ throw new Error('testsDirectory must be defined in .snitchconfig.json');
51
+ }
52
+ if (isScanningSourceDirectory) {
53
+ await (0, scan_1.scanCommand)('nocomments');
54
+ }
55
+ if (isScanningTestsDirectory) {
56
+ await (0, scan_1.scanCommand)('nocomments');
57
+ }
58
+ }
59
+ //# sourceMappingURL=nocomments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nocomments.js","sourceRoot":"","sources":["../../src/commands/nocomments.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,4CAwBC;AAlCD,iCAAoC;AACpC,2CAA4B;AAC5B,uCAAwB;AAQjB,KAAK,UAAU,gBAAgB,CACpC,yBAAkC,EAClC,wBAAiC;IAEjC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAA;IACrD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,0BAA0B,UAAU,EAAE,CAAC,CAAA;IACzD,CAAC;IAED,MAAM,MAAM,GAAiB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAA;IAE7E,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAA;IAC1E,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;IACzE,CAAC;IAED,IAAI,yBAAyB,EAAE,CAAC;QAC9B,MAAM,IAAA,kBAAW,EAAC,YAAY,CAAC,CAAA;IACjC,CAAC;IACD,IAAI,wBAAwB,EAAE,CAAC;QAC7B,MAAM,IAAA,kBAAW,EAAC,YAAY,CAAC,CAAA;IACjC,CAAC;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare function badimportsCommand(): Promise<void>;
2
+ export declare function dirtydefaultsCommand(): Promise<void>;
3
+ export declare function expectmagicCommand(): Promise<void>;
4
+ export declare function enumerateCommand(): Promise<void>;
5
+ export declare function fixturesCommand(): Promise<void>;
6
+ export declare function onlyNamedFunsCommand(): Promise<void>;
7
+ //# sourceMappingURL=scan-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan-commands.d.ts","sourceRoot":"","sources":["../../src/commands/scan-commands.ts"],"names":[],"mappings":"AAEA,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAEvD;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAE1D;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAExD;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAEtD;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAErD;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAE1D"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.badimportsCommand = badimportsCommand;
4
+ exports.dirtydefaultsCommand = dirtydefaultsCommand;
5
+ exports.expectmagicCommand = expectmagicCommand;
6
+ exports.enumerateCommand = enumerateCommand;
7
+ exports.fixturesCommand = fixturesCommand;
8
+ exports.onlyNamedFunsCommand = onlyNamedFunsCommand;
9
+ const scan_1 = require("./scan");
10
+ async function badimportsCommand() {
11
+ await (0, scan_1.scanCommand)('badimports');
12
+ }
13
+ async function dirtydefaultsCommand() {
14
+ await (0, scan_1.scanCommand)('dirtydefaults');
15
+ }
16
+ async function expectmagicCommand() {
17
+ await (0, scan_1.scanCommand)('expectmagic');
18
+ }
19
+ async function enumerateCommand() {
20
+ await (0, scan_1.scanCommand)('enumerate');
21
+ }
22
+ async function fixturesCommand() {
23
+ await (0, scan_1.scanCommand)('fixtures');
24
+ }
25
+ async function onlyNamedFunsCommand() {
26
+ await (0, scan_1.scanCommand)('onlynamedfuns');
27
+ }
28
+ //# sourceMappingURL=scan-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan-commands.js","sourceRoot":"","sources":["../../src/commands/scan-commands.ts"],"names":[],"mappings":";;AAEA,8CAEC;AAED,oDAEC;AAED,gDAEC;AAED,4CAEC;AAED,0CAEC;AAED,oDAEC;AAxBD,iCAAoC;AAE7B,KAAK,UAAU,iBAAiB;IACrC,MAAM,IAAA,kBAAW,EAAC,YAAY,CAAC,CAAA;AACjC,CAAC;AAEM,KAAK,UAAU,oBAAoB;IACxC,MAAM,IAAA,kBAAW,EAAC,eAAe,CAAC,CAAA;AACpC,CAAC;AAEM,KAAK,UAAU,kBAAkB;IACtC,MAAM,IAAA,kBAAW,EAAC,aAAa,CAAC,CAAA;AAClC,CAAC;AAEM,KAAK,UAAU,gBAAgB;IACpC,MAAM,IAAA,kBAAW,EAAC,WAAW,CAAC,CAAA;AAChC,CAAC;AAEM,KAAK,UAAU,eAAe;IACnC,MAAM,IAAA,kBAAW,EAAC,UAAU,CAAC,CAAA;AAC/B,CAAC;AAEM,KAAK,UAAU,oBAAoB;IACxC,MAAM,IAAA,kBAAW,EAAC,eAAe,CAAC,CAAA;AACpC,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare function scanCommand(params: string[]): Promise<void>;
1
+ export declare function scanCommand(_commandName: string): Promise<void>;
2
2
  //# sourceMappingURL=scan.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../src/commands/scan.ts"],"names":[],"mappings":"AAqFA,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,IAAI,CAAC,CAsDf"}
1
+ {"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../src/commands/scan.ts"],"names":[],"mappings":"AA8LA,wBAAsB,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAErE"}