@fyuld/snitch 1.6.1 → 2.1.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 (208) 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/firstRun.d.ts +2 -0
  7. package/dist/commands/firstRun.d.ts.map +1 -0
  8. package/dist/commands/firstRun.js +10 -0
  9. package/dist/commands/firstRun.js.map +1 -0
  10. package/dist/commands/init/defaultConfigInit.d.ts +2 -0
  11. package/dist/commands/init/defaultConfigInit.d.ts.map +1 -0
  12. package/dist/commands/init/defaultConfigInit.js +53 -0
  13. package/dist/commands/init/defaultConfigInit.js.map +1 -0
  14. package/dist/commands/init/downloadedConfigInit.d.ts +3 -0
  15. package/dist/commands/init/downloadedConfigInit.d.ts.map +1 -0
  16. package/dist/commands/init/downloadedConfigInit.js +80 -0
  17. package/dist/commands/init/downloadedConfigInit.js.map +1 -0
  18. package/dist/commands/init.d.ts +1 -1
  19. package/dist/commands/init.d.ts.map +1 -1
  20. package/dist/commands/init.js +11 -12
  21. package/dist/commands/init.js.map +1 -1
  22. package/dist/commands/prepare.d.ts +2 -0
  23. package/dist/commands/prepare.d.ts.map +1 -0
  24. package/dist/commands/prepare.js +61 -0
  25. package/dist/commands/prepare.js.map +1 -0
  26. package/dist/common/fs.d.ts +1 -0
  27. package/dist/common/fs.d.ts.map +1 -0
  28. package/dist/common/fs.js +2 -0
  29. package/dist/common/fs.js.map +1 -0
  30. package/dist/common/index.d.ts +2 -0
  31. package/dist/common/index.d.ts.map +1 -0
  32. package/dist/common/index.js +18 -0
  33. package/dist/common/index.js.map +1 -0
  34. package/dist/common/json.d.ts +21 -0
  35. package/dist/common/json.d.ts.map +1 -0
  36. package/dist/common/json.js +41 -0
  37. package/dist/common/json.js.map +1 -0
  38. package/dist/common/strings.d.ts +8 -0
  39. package/dist/common/strings.d.ts.map +1 -0
  40. package/dist/common/strings.js +15 -0
  41. package/dist/common/strings.js.map +1 -0
  42. package/dist/config/policy-loader.d.ts +4 -0
  43. package/dist/config/policy-loader.d.ts.map +1 -0
  44. package/dist/config/policy-loader.js +21 -0
  45. package/dist/config/policy-loader.js.map +1 -0
  46. package/dist/datamodel/commands.d.ts +25 -0
  47. package/dist/datamodel/commands.d.ts.map +1 -0
  48. package/dist/datamodel/commands.js +31 -0
  49. package/dist/datamodel/commands.js.map +1 -0
  50. package/dist/datamodel/common.d.ts +11 -0
  51. package/dist/datamodel/common.d.ts.map +1 -0
  52. package/dist/datamodel/common.js +3 -0
  53. package/dist/datamodel/common.js.map +1 -0
  54. package/dist/datamodel/errors.d.ts +16 -0
  55. package/dist/datamodel/errors.d.ts.map +1 -0
  56. package/dist/datamodel/errors.js +51 -0
  57. package/dist/datamodel/errors.js.map +1 -0
  58. package/dist/datamodel/index.d.ts +9 -0
  59. package/dist/datamodel/index.d.ts.map +1 -0
  60. package/dist/datamodel/index.js +25 -0
  61. package/dist/datamodel/index.js.map +1 -0
  62. package/dist/datamodel/internal-configs.d.ts +14 -0
  63. package/dist/datamodel/internal-configs.d.ts.map +1 -0
  64. package/dist/datamodel/internal-configs.js +3 -0
  65. package/dist/datamodel/internal-configs.js.map +1 -0
  66. package/dist/datamodel/public-configs.d.ts +27 -0
  67. package/dist/datamodel/public-configs.d.ts.map +1 -0
  68. package/dist/datamodel/public-configs.js +3 -0
  69. package/dist/datamodel/public-configs.js.map +1 -0
  70. package/dist/datamodel/snitch-configuration.d.ts +16 -0
  71. package/dist/datamodel/snitch-configuration.d.ts.map +1 -0
  72. package/dist/datamodel/snitch-configuration.js +32 -0
  73. package/dist/datamodel/snitch-configuration.js.map +1 -0
  74. package/dist/datamodel/typeguards.d.ts +3 -0
  75. package/dist/datamodel/typeguards.d.ts.map +1 -0
  76. package/dist/datamodel/typeguards.js +7 -0
  77. package/dist/datamodel/typeguards.js.map +1 -0
  78. package/dist/datamodel/typescript-specific.d.ts +7 -0
  79. package/dist/datamodel/typescript-specific.d.ts.map +1 -0
  80. package/dist/datamodel/typescript-specific.js +11 -0
  81. package/dist/datamodel/typescript-specific.js.map +1 -0
  82. package/dist/index.d.ts +2 -8
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/index.js +5 -17
  85. package/dist/index.js.map +1 -1
  86. package/dist/reporting/violation-reporter.d.ts +4 -0
  87. package/dist/reporting/violation-reporter.d.ts.map +1 -0
  88. package/dist/reporting/violation-reporter.js +45 -0
  89. package/dist/reporting/violation-reporter.js.map +1 -0
  90. package/dist/rules/policies/code-should-have-declarations.d.ts +3 -0
  91. package/dist/rules/policies/code-should-have-declarations.d.ts.map +1 -0
  92. package/dist/rules/policies/code-should-have-declarations.js +15 -0
  93. package/dist/rules/policies/code-should-have-declarations.js.map +1 -0
  94. package/dist/rules/policies/keep-tests-clean.d.ts +3 -0
  95. package/dist/rules/policies/keep-tests-clean.d.ts.map +1 -0
  96. package/dist/rules/policies/keep-tests-clean.js +21 -0
  97. package/dist/rules/policies/keep-tests-clean.js.map +1 -0
  98. package/dist/rules/policies/no-vars.d.ts +3 -0
  99. package/dist/rules/policies/no-vars.d.ts.map +1 -0
  100. package/dist/rules/policies/no-vars.js +19 -0
  101. package/dist/rules/policies/no-vars.js.map +1 -0
  102. package/dist/rules/policy-executor.d.ts +5 -0
  103. package/dist/rules/policy-executor.d.ts.map +1 -0
  104. package/dist/rules/policy-executor.js +10 -0
  105. package/dist/rules/policy-executor.js.map +1 -0
  106. package/dist/rules/policy.d.ts +7 -0
  107. package/dist/rules/policy.d.ts.map +1 -0
  108. package/dist/rules/policy.js +3 -0
  109. package/dist/rules/policy.js.map +1 -0
  110. package/dist/rules/provider-executor.d.ts +5 -0
  111. package/dist/rules/provider-executor.d.ts.map +1 -0
  112. package/dist/rules/provider-executor.js +105 -0
  113. package/dist/rules/provider-executor.js.map +1 -0
  114. package/dist/rules/provider.d.ts +26 -0
  115. package/dist/rules/provider.d.ts.map +1 -0
  116. package/dist/rules/provider.js +3 -0
  117. package/dist/rules/provider.js.map +1 -0
  118. package/dist/rules/providers/filter-by-declaration-type-provider.d.ts +8 -0
  119. package/dist/rules/providers/filter-by-declaration-type-provider.d.ts.map +1 -0
  120. package/dist/rules/providers/filter-by-declaration-type-provider.js +15 -0
  121. package/dist/rules/providers/filter-by-declaration-type-provider.js.map +1 -0
  122. package/dist/rules/providers/filter-by-file-provider.d.ts +8 -0
  123. package/dist/rules/providers/filter-by-file-provider.d.ts.map +1 -0
  124. package/dist/rules/providers/filter-by-file-provider.js +16 -0
  125. package/dist/rules/providers/filter-by-file-provider.js.map +1 -0
  126. package/dist/rules/providers/filter-exclude-function-names-provider.d.ts +8 -0
  127. package/dist/rules/providers/filter-exclude-function-names-provider.d.ts.map +1 -0
  128. package/dist/rules/providers/filter-exclude-function-names-provider.js +15 -0
  129. package/dist/rules/providers/filter-exclude-function-names-provider.js.map +1 -0
  130. package/dist/rules/providers/filter-has-literal-arguments-provider.d.ts +8 -0
  131. package/dist/rules/providers/filter-has-literal-arguments-provider.d.ts.map +1 -0
  132. package/dist/rules/providers/filter-has-literal-arguments-provider.js +26 -0
  133. package/dist/rules/providers/filter-has-literal-arguments-provider.js.map +1 -0
  134. package/dist/rules/providers/identity-provider.d.ts +8 -0
  135. package/dist/rules/providers/identity-provider.d.ts.map +1 -0
  136. package/dist/rules/providers/identity-provider.js +30 -0
  137. package/dist/rules/providers/identity-provider.js.map +1 -0
  138. package/dist/rules/violation-rule.d.ts +7 -0
  139. package/dist/rules/violation-rule.d.ts.map +1 -0
  140. package/dist/rules/violation-rule.js +3 -0
  141. package/dist/rules/violation-rule.js.map +1 -0
  142. package/dist/rules/violation.d.ts +12 -0
  143. package/dist/rules/violation.d.ts.map +1 -0
  144. package/dist/rules/violation.js +3 -0
  145. package/dist/rules/violation.js.map +1 -0
  146. package/dist/snitch.js +114 -44
  147. package/dist/snitch.js.map +1 -1
  148. package/dist/utils/AstAnalysis.d.ts +28 -0
  149. package/dist/utils/AstAnalysis.d.ts.map +1 -0
  150. package/dist/utils/AstAnalysis.js +117 -0
  151. package/dist/utils/AstAnalysis.js.map +1 -0
  152. package/dist/utils/args.d.ts +6 -0
  153. package/dist/utils/args.d.ts.map +1 -0
  154. package/dist/utils/args.js +23 -0
  155. package/dist/utils/args.js.map +1 -0
  156. package/dist/utils/ast-parser.d.ts +68 -0
  157. package/dist/utils/ast-parser.d.ts.map +1 -0
  158. package/dist/utils/ast-parser.js +364 -0
  159. package/dist/utils/ast-parser.js.map +1 -0
  160. package/dist/utils/fs.d.ts +8 -0
  161. package/dist/utils/fs.d.ts.map +1 -0
  162. package/dist/utils/fs.js +93 -0
  163. package/dist/utils/fs.js.map +1 -0
  164. package/dist/utils/pattern-scanner.d.ts +5 -21
  165. package/dist/utils/pattern-scanner.d.ts.map +1 -1
  166. package/dist/utils/pattern-scanner.js +13 -17
  167. package/dist/utils/pattern-scanner.js.map +1 -1
  168. package/dist/utils/ts-parser.d.ts.map +1 -1
  169. package/dist/utils/ts-parser.js +5 -12
  170. package/dist/utils/ts-parser.js.map +1 -1
  171. package/package.json +15 -6
  172. package/snitchconfig.schema.json +107 -51
  173. package/dist/commands/badimports.d.ts +0 -2
  174. package/dist/commands/badimports.d.ts.map +0 -1
  175. package/dist/commands/badimports.js +0 -8
  176. package/dist/commands/badimports.js.map +0 -1
  177. package/dist/commands/dirtydefaults.d.ts +0 -2
  178. package/dist/commands/dirtydefaults.d.ts.map +0 -1
  179. package/dist/commands/dirtydefaults.js +0 -8
  180. package/dist/commands/dirtydefaults.js.map +0 -1
  181. package/dist/commands/dm.d.ts +0 -2
  182. package/dist/commands/dm.d.ts.map +0 -1
  183. package/dist/commands/dm.js +0 -100
  184. package/dist/commands/dm.js.map +0 -1
  185. package/dist/commands/enumerate.d.ts +0 -2
  186. package/dist/commands/enumerate.d.ts.map +0 -1
  187. package/dist/commands/enumerate.js +0 -8
  188. package/dist/commands/enumerate.js.map +0 -1
  189. package/dist/commands/expectmagic.d.ts +0 -2
  190. package/dist/commands/expectmagic.d.ts.map +0 -1
  191. package/dist/commands/expectmagic.js +0 -8
  192. package/dist/commands/expectmagic.js.map +0 -1
  193. package/dist/commands/fixtures.d.ts +0 -2
  194. package/dist/commands/fixtures.d.ts.map +0 -1
  195. package/dist/commands/fixtures.js +0 -8
  196. package/dist/commands/fixtures.js.map +0 -1
  197. package/dist/commands/scan.d.ts +0 -2
  198. package/dist/commands/scan.d.ts.map +0 -1
  199. package/dist/commands/scan.js +0 -108
  200. package/dist/commands/scan.js.map +0 -1
  201. package/dist/commands/vocab.d.ts +0 -2
  202. package/dist/commands/vocab.d.ts.map +0 -1
  203. package/dist/commands/vocab.js +0 -166
  204. package/dist/commands/vocab.js.map +0 -1
  205. package/dist/datamodel.d.ts +0 -18
  206. package/dist/datamodel.d.ts.map +0 -1
  207. package/dist/datamodel.js +0 -23
  208. package/dist/datamodel.js.map +0 -1
@@ -0,0 +1,18 @@
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("./strings"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAAyB"}
@@ -0,0 +1,21 @@
1
+ import { JSONSchemaType as AjvJSONSchemaType } from 'ajv';
2
+ import { ErrorTag, FyuldError } from '@fyuld/errors';
3
+ /**
4
+ * JSON Schema type definition for validation.
5
+ * This is a wrapper around the underlying validation library's schema type.
6
+ */
7
+ export type JsonSchema<T> = AjvJSONSchemaType<T>;
8
+ /**
9
+ * Validates a raw JSON object against a schema.
10
+ * @param raw - The raw JSON object to validate
11
+ * @param schema - The JSON schema to validate against
12
+ * @returns The validated and typed object
13
+ * @throws JsonValidationError if validation fails
14
+ */
15
+ export declare function validateJson<T>(raw: unknown, schema: JsonSchema<T>): T;
16
+ export declare class JsonValidationError extends FyuldError {
17
+ static validationFailed(validationErrors: string[]): JsonValidationError;
18
+ constructor(message: string, causes?: string[], tags?: ErrorTag[]);
19
+ get causes(): string[];
20
+ }
21
+ //# sourceMappingURL=json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/common/json.ts"],"names":[],"mappings":"AAAA,OAAY,EAAE,cAAc,IAAI,iBAAiB,EAAE,MAAM,KAAK,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAEpD;;;GAGG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAA;AAEhD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CActE;AAED,qBAAa,mBAAoB,SAAQ,UAAU;WACnC,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,EAAE;gBAI7C,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,EAAO,EAAE,IAAI,GAAE,QAAQ,EAAO;IAIzE,IAAI,MAAM,IAAI,MAAM,EAAE,CAErB;CACF"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.JsonValidationError = void 0;
7
+ exports.validateJson = validateJson;
8
+ const ajv_1 = __importDefault(require("ajv"));
9
+ const errors_1 = require("@fyuld/errors");
10
+ /**
11
+ * Validates a raw JSON object against a schema.
12
+ * @param raw - The raw JSON object to validate
13
+ * @param schema - The JSON schema to validate against
14
+ * @returns The validated and typed object
15
+ * @throws JsonValidationError if validation fails
16
+ */
17
+ function validateJson(raw, schema) {
18
+ const ajv = new ajv_1.default({ allErrors: true });
19
+ const validate = ajv.compile(schema);
20
+ if (!validate(raw)) {
21
+ if (!validate.errors) {
22
+ throw new Error('Validation failed but no errors were provided');
23
+ }
24
+ const validationErrors = validate.errors.map((err) => `${err.instancePath} ${err.message}`);
25
+ throw JsonValidationError.validationFailed(validationErrors);
26
+ }
27
+ return raw;
28
+ }
29
+ class JsonValidationError extends errors_1.FyuldError {
30
+ static validationFailed(validationErrors) {
31
+ return new JsonValidationError('JSON validation failed', validationErrors, [errors_1.ErrorTag.Validation, errors_1.ErrorTag.Json]);
32
+ }
33
+ constructor(message, causes = [], tags = []) {
34
+ super(message, causes, tags);
35
+ }
36
+ get causes() {
37
+ return this._causes;
38
+ }
39
+ }
40
+ exports.JsonValidationError = JsonValidationError;
41
+ //# sourceMappingURL=json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/common/json.ts"],"names":[],"mappings":";;;;;;AAgBA,oCAcC;AA9BD,8CAA8D;AAC9D,0CAAoD;AAQpD;;;;;;GAMG;AACH,SAAgB,YAAY,CAAI,GAAY,EAAE,MAAqB;IACjE,MAAM,GAAG,GAAG,IAAI,aAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACxC,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAEpC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;QAClE,CAAC;QAED,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;QAC3F,MAAM,mBAAmB,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAA;IAC9D,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAa,mBAAoB,SAAQ,mBAAU;IAC1C,MAAM,CAAC,gBAAgB,CAAC,gBAA0B;QACvD,OAAO,IAAI,mBAAmB,CAAC,wBAAwB,EAAE,gBAAgB,EAAE,CAAC,iBAAQ,CAAC,UAAU,EAAE,iBAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;IAClH,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,kDAYC"}
@@ -0,0 +1,8 @@
1
+ export declare enum Strings {
2
+ Empty = "",
3
+ Numbers = "0123456789",
4
+ EnglishAlphabetLowercase = "abcdefghijklmnopqrstuvwxyz",
5
+ EnglishAlphabetUppercase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
6
+ }
7
+ export declare function isNotEmptyString(candidate: any): boolean;
8
+ //# sourceMappingURL=strings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strings.d.ts","sourceRoot":"","sources":["../../src/common/strings.ts"],"names":[],"mappings":"AAAA,oBAAY,OAAO;IACjB,KAAK,KAAK;IACV,OAAO,eAAe;IACtB,wBAAwB,+BAA+B;IACvD,wBAAwB,+BAA+B;CACxD;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAExD"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Strings = void 0;
4
+ exports.isNotEmptyString = isNotEmptyString;
5
+ var Strings;
6
+ (function (Strings) {
7
+ Strings["Empty"] = "";
8
+ Strings["Numbers"] = "0123456789";
9
+ Strings["EnglishAlphabetLowercase"] = "abcdefghijklmnopqrstuvwxyz";
10
+ Strings["EnglishAlphabetUppercase"] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
11
+ })(Strings || (exports.Strings = Strings = {}));
12
+ function isNotEmptyString(candidate) {
13
+ return typeof candidate !== 'string' && candidate.length > 0;
14
+ }
15
+ //# sourceMappingURL=strings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strings.js","sourceRoot":"","sources":["../../src/common/strings.ts"],"names":[],"mappings":";;;AAOA,4CAEC;AATD,IAAY,OAKX;AALD,WAAY,OAAO;IACjB,qBAAU,CAAA;IACV,iCAAsB,CAAA;IACtB,kEAAuD,CAAA;IACvD,kEAAuD,CAAA;AACzD,CAAC,EALW,OAAO,uBAAP,OAAO,QAKlB;AAED,SAAgB,gBAAgB,CAAC,SAAc;IAC7C,OAAO,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAA;AAC9D,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Policy } from '../rules/policy';
2
+ import { SnitchConfiguration } from '../datamodel/snitch-configuration';
3
+ export declare function loadPoliciesFromConfig(config: SnitchConfiguration): Policy[];
4
+ //# sourceMappingURL=policy-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy-loader.d.ts","sourceRoot":"","sources":["../../src/config/policy-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAgB,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAErF,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,EAAE,CAY5E"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loadPoliciesFromConfig = loadPoliciesFromConfig;
4
+ function loadPoliciesFromConfig(config) {
5
+ if (!config.policies) {
6
+ return [];
7
+ }
8
+ const policies = [];
9
+ for (const [id, policyConfig] of Object.entries(config.policies)) {
10
+ policies.push(convertToPolicyObject(id, policyConfig));
11
+ }
12
+ return policies;
13
+ }
14
+ function convertToPolicyObject(id, config) {
15
+ return {
16
+ id,
17
+ title: config.title,
18
+ violations: config.violations,
19
+ };
20
+ }
21
+ //# sourceMappingURL=policy-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy-loader.js","sourceRoot":"","sources":["../../src/config/policy-loader.ts"],"names":[],"mappings":";;AAGA,wDAYC;AAZD,SAAgB,sBAAsB,CAAC,MAA2B;IAChE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,QAAQ,GAAa,EAAE,CAAA;IAE7B,KAAK,MAAM,CAAC,EAAE,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjE,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAA;IACxD,CAAC;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,SAAS,qBAAqB,CAAC,EAAU,EAAE,MAAoB;IAC7D,OAAO;QACL,EAAE;QACF,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,UAAU,EAAE,MAAM,CAAC,UAAU;KAC9B,CAAA;AACH,CAAC"}
@@ -0,0 +1,25 @@
1
+ export declare enum SnitchApi {
2
+ Init = "init",
3
+ Scan = "scan",
4
+ Dirtydefaults = "dirtydefaults",
5
+ Dm = "dm",
6
+ Expectmagic = "expectmagic",
7
+ Fixtures = "fixtures",
8
+ Enumerate = "enumerate",
9
+ Badimports = "badimports",
10
+ Vocab = "vocab",
11
+ Nocomments = "nocomments"
12
+ }
13
+ export declare enum SnitchInternalInterface {
14
+ Prehook = "prehook",
15
+ Posthook = "posthook"
16
+ }
17
+ export type SnitchInterface = SnitchApi & SnitchInternalInterface;
18
+ export declare enum SnitchPrehookInterface {
19
+ CleanTree = "cleantree",
20
+ BoundedFiles = "boundedfiles"
21
+ }
22
+ export declare enum SnitchPosthookInterface {
23
+ BoundedFiles = "boundedfiles"
24
+ }
25
+ //# sourceMappingURL=commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/datamodel/commands.ts"],"names":[],"mappings":"AAAA,oBAAY,SAAS;IACnB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,aAAa,kBAAkB;IAC/B,EAAE,OAAO;IACT,WAAW,gBAAgB;IAC3B,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,UAAU,eAAe;IACzB,KAAK,UAAU;IACf,UAAU,eAAe;CAC1B;AAED,oBAAY,uBAAuB;IACjC,OAAO,YAAY;IACnB,QAAQ,aAAa;CACtB;AAED,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,uBAAuB,CAAA;AAEjE,oBAAY,sBAAsB;IAChC,SAAS,cAAc;IACvB,YAAY,iBAAiB;CAC9B;AAED,oBAAY,uBAAuB;IACjC,YAAY,iBAAiB;CAC9B"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SnitchPosthookInterface = exports.SnitchPrehookInterface = exports.SnitchInternalInterface = exports.SnitchApi = void 0;
4
+ var SnitchApi;
5
+ (function (SnitchApi) {
6
+ SnitchApi["Init"] = "init";
7
+ SnitchApi["Scan"] = "scan";
8
+ SnitchApi["Dirtydefaults"] = "dirtydefaults";
9
+ SnitchApi["Dm"] = "dm";
10
+ SnitchApi["Expectmagic"] = "expectmagic";
11
+ SnitchApi["Fixtures"] = "fixtures";
12
+ SnitchApi["Enumerate"] = "enumerate";
13
+ SnitchApi["Badimports"] = "badimports";
14
+ SnitchApi["Vocab"] = "vocab";
15
+ SnitchApi["Nocomments"] = "nocomments";
16
+ })(SnitchApi || (exports.SnitchApi = SnitchApi = {}));
17
+ var SnitchInternalInterface;
18
+ (function (SnitchInternalInterface) {
19
+ SnitchInternalInterface["Prehook"] = "prehook";
20
+ SnitchInternalInterface["Posthook"] = "posthook";
21
+ })(SnitchInternalInterface || (exports.SnitchInternalInterface = SnitchInternalInterface = {}));
22
+ var SnitchPrehookInterface;
23
+ (function (SnitchPrehookInterface) {
24
+ SnitchPrehookInterface["CleanTree"] = "cleantree";
25
+ SnitchPrehookInterface["BoundedFiles"] = "boundedfiles";
26
+ })(SnitchPrehookInterface || (exports.SnitchPrehookInterface = SnitchPrehookInterface = {}));
27
+ var SnitchPosthookInterface;
28
+ (function (SnitchPosthookInterface) {
29
+ SnitchPosthookInterface["BoundedFiles"] = "boundedfiles";
30
+ })(SnitchPosthookInterface || (exports.SnitchPosthookInterface = SnitchPosthookInterface = {}));
31
+ //# sourceMappingURL=commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/datamodel/commands.ts"],"names":[],"mappings":";;;AAAA,IAAY,SAWX;AAXD,WAAY,SAAS;IACnB,0BAAa,CAAA;IACb,0BAAa,CAAA;IACb,4CAA+B,CAAA;IAC/B,sBAAS,CAAA;IACT,wCAA2B,CAAA;IAC3B,kCAAqB,CAAA;IACrB,oCAAuB,CAAA;IACvB,sCAAyB,CAAA;IACzB,4BAAe,CAAA;IACf,sCAAyB,CAAA;AAC3B,CAAC,EAXW,SAAS,yBAAT,SAAS,QAWpB;AAED,IAAY,uBAGX;AAHD,WAAY,uBAAuB;IACjC,8CAAmB,CAAA;IACnB,gDAAqB,CAAA;AACvB,CAAC,EAHW,uBAAuB,uCAAvB,uBAAuB,QAGlC;AAID,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAChC,iDAAuB,CAAA;IACvB,uDAA6B,CAAA;AAC/B,CAAC,EAHW,sBAAsB,sCAAtB,sBAAsB,QAGjC;AAED,IAAY,uBAEX;AAFD,WAAY,uBAAuB;IACjC,wDAA6B,CAAA;AAC/B,CAAC,EAFW,uBAAuB,uCAAvB,uBAAuB,QAElC"}
@@ -0,0 +1,11 @@
1
+ export type Violation = {
2
+ message: string;
3
+ file: string;
4
+ line: number;
5
+ content: string;
6
+ recommendation?: {
7
+ message: string;
8
+ recommendations: string[];
9
+ };
10
+ };
11
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/datamodel/common.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE;QACf,OAAO,EAAE,MAAM,CAAA;QACf,eAAe,EAAE,MAAM,EAAE,CAAA;KAC1B,CAAA;CACF,CAAA"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=common.js.map
@@ -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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=internal-configs.js.map
@@ -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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=public-configs.js.map
@@ -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,3 @@
1
+ import { PublicScanConfig, NoCommentsScanConfig } from './public-configs';
2
+ export declare function isNoCommentsScanConfig(config: PublicScanConfig): config is NoCommentsScanConfig;
3
+ //# sourceMappingURL=typeguards.d.ts.map
@@ -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,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isNoCommentsScanConfig = isNoCommentsScanConfig;
4
+ function isNoCommentsScanConfig(config) {
5
+ return 'acceptedApologies' in config;
6
+ }
7
+ //# sourceMappingURL=typeguards.js.map
@@ -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,7 @@
1
+ export declare enum TypeScriptTypeKind {
2
+ Type = "type",
3
+ Enum = "enum",
4
+ Interface = "interface",
5
+ Class = "class"
6
+ }
7
+ //# sourceMappingURL=typescript-specific.d.ts.map
@@ -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,4 @@
1
- export { dirtydefaultsCommand } from './commands/dirtydefaults';
2
- export { dmCommand } from './commands/dm';
3
- export { fixturesCommand } from './commands/fixtures';
4
- export { expectmagicCommand } from './commands/expectmagic';
5
- export { scanCommand } from './commands/scan';
6
1
  export { initCommand } from './commands/init';
7
- export { enumerateCommand } from './commands/enumerate';
8
- export { badimportsCommand } from './commands/badimports';
9
- export { vocabCommand } from './commands/vocab';
2
+ export { prepareCommand } from './commands/prepare';
3
+ export { firstRunCommand } from './commands/firstRun';
10
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA"}
package/dist/index.js CHANGED
@@ -1,23 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.vocabCommand = exports.badimportsCommand = exports.enumerateCommand = exports.initCommand = exports.scanCommand = exports.expectmagicCommand = exports.fixturesCommand = exports.dmCommand = exports.dirtydefaultsCommand = void 0;
3
+ exports.firstRunCommand = exports.prepareCommand = exports.initCommand = void 0;
4
4
  // Export all commands for programmatic use
5
- var dirtydefaults_1 = require("./commands/dirtydefaults");
6
- Object.defineProperty(exports, "dirtydefaultsCommand", { enumerable: true, get: function () { return dirtydefaults_1.dirtydefaultsCommand; } });
7
- var dm_1 = require("./commands/dm");
8
- 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
- var scan_1 = require("./commands/scan");
14
- Object.defineProperty(exports, "scanCommand", { enumerable: true, get: function () { return scan_1.scanCommand; } });
15
5
  var init_1 = require("./commands/init");
16
6
  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
- var vocab_1 = require("./commands/vocab");
22
- Object.defineProperty(exports, "vocabCommand", { enumerable: true, get: function () { return vocab_1.vocabCommand; } });
7
+ var prepare_1 = require("./commands/prepare");
8
+ Object.defineProperty(exports, "prepareCommand", { enumerable: true, get: function () { return prepare_1.prepareCommand; } });
9
+ var firstRun_1 = require("./commands/firstRun");
10
+ Object.defineProperty(exports, "firstRunCommand", { enumerable: true, get: function () { return firstRun_1.firstRunCommand; } });
23
11
  //# 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,0DAA+D;AAAtD,qHAAA,oBAAoB,OAAA;AAC7B,oCAAyC;AAAhC,+FAAA,SAAS,OAAA;AAClB,gDAAqD;AAA5C,2GAAA,eAAe,OAAA;AACxB,sDAA2D;AAAlD,iHAAA,kBAAkB,OAAA;AAC3B,wCAA6C;AAApC,mGAAA,WAAW,OAAA;AACpB,wCAA6C;AAApC,mGAAA,WAAW,OAAA;AACpB,kDAAuD;AAA9C,6GAAA,gBAAgB,OAAA;AACzB,oDAAyD;AAAhD,+GAAA,iBAAiB,OAAA;AAC1B,0CAA+C;AAAtC,qGAAA,YAAY,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,2CAA2C;AAC3C,wCAA6C;AAApC,mGAAA,WAAW,OAAA;AACpB,8CAAmD;AAA1C,yGAAA,cAAc,OAAA;AACvB,gDAAqD;AAA5C,2GAAA,eAAe,OAAA"}