@dommaker/harness 0.6.1 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/README.md +122 -6
  2. package/bin/harness.js +30 -2
  3. package/dist/cli/commands/index.d.ts +1 -0
  4. package/dist/cli/commands/index.d.ts.map +1 -1
  5. package/dist/cli/commands/index.js +4 -1
  6. package/dist/cli/commands/index.js.map +1 -1
  7. package/dist/cli/commands/spec.d.ts +31 -0
  8. package/dist/cli/commands/spec.d.ts.map +1 -0
  9. package/dist/cli/commands/spec.js +169 -0
  10. package/dist/cli/commands/spec.js.map +1 -0
  11. package/dist/core/constraints/definitions.d.ts.map +1 -1
  12. package/dist/core/constraints/definitions.js +5 -2
  13. package/dist/core/constraints/definitions.js.map +1 -1
  14. package/dist/core/constraints/index.d.ts +2 -0
  15. package/dist/core/constraints/index.d.ts.map +1 -1
  16. package/dist/core/constraints/index.js +7 -1
  17. package/dist/core/constraints/index.js.map +1 -1
  18. package/dist/core/constraints/interceptor.d.ts +37 -0
  19. package/dist/core/constraints/interceptor.d.ts.map +1 -0
  20. package/dist/core/constraints/interceptor.js +176 -0
  21. package/dist/core/constraints/interceptor.js.map +1 -0
  22. package/dist/core/spec/index.d.ts +7 -0
  23. package/dist/core/spec/index.d.ts.map +1 -0
  24. package/dist/core/spec/index.js +23 -0
  25. package/dist/core/spec/index.js.map +1 -0
  26. package/dist/core/spec/validator.d.ts +78 -0
  27. package/dist/core/spec/validator.d.ts.map +1 -0
  28. package/dist/core/spec/validator.js +372 -0
  29. package/dist/core/spec/validator.js.map +1 -0
  30. package/dist/core/validators/passes-gate.d.ts +51 -1
  31. package/dist/core/validators/passes-gate.d.ts.map +1 -1
  32. package/dist/core/validators/passes-gate.js +90 -0
  33. package/dist/core/validators/passes-gate.js.map +1 -1
  34. package/dist/extensions/long-running/constraints.d.ts +38 -0
  35. package/dist/extensions/long-running/constraints.d.ts.map +1 -0
  36. package/dist/extensions/long-running/constraints.js +153 -0
  37. package/dist/extensions/long-running/constraints.js.map +1 -0
  38. package/dist/extensions/long-running/index.d.ts +30 -0
  39. package/dist/extensions/long-running/index.d.ts.map +1 -0
  40. package/dist/extensions/long-running/index.js +50 -0
  41. package/dist/extensions/long-running/index.js.map +1 -0
  42. package/dist/extensions/long-running/types.d.ts +154 -0
  43. package/dist/extensions/long-running/types.d.ts.map +1 -0
  44. package/dist/extensions/long-running/types.js +9 -0
  45. package/dist/extensions/long-running/types.js.map +1 -0
  46. package/dist/index.d.ts +7 -1
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +20 -0
  49. package/dist/index.js.map +1 -1
  50. package/dist/presets/index.d.ts +1 -0
  51. package/dist/presets/index.d.ts.map +1 -1
  52. package/dist/presets/index.js +6 -1
  53. package/dist/presets/index.js.map +1 -1
  54. package/dist/presets/long-running.d.ts +33 -0
  55. package/dist/presets/long-running.d.ts.map +1 -0
  56. package/dist/presets/long-running.js +52 -0
  57. package/dist/presets/long-running.js.map +1 -0
  58. package/dist/types/constraint.d.ts +1 -1
  59. package/dist/types/constraint.d.ts.map +1 -1
  60. package/dist/types/constraint.js.map +1 -1
  61. package/dist/types/enforcement.d.ts +42 -0
  62. package/dist/types/enforcement.d.ts.map +1 -0
  63. package/dist/types/enforcement.js +6 -0
  64. package/dist/types/enforcement.js.map +1 -0
  65. package/dist/types/index.d.ts +2 -0
  66. package/dist/types/index.d.ts.map +1 -1
  67. package/dist/types/index.js +4 -0
  68. package/dist/types/index.js.map +1 -1
  69. package/dist/types/passes-gate.d.ts +20 -0
  70. package/dist/types/passes-gate.d.ts.map +1 -1
  71. package/dist/types/project-config.d.ts +11 -0
  72. package/dist/types/project-config.d.ts.map +1 -1
  73. package/dist/types/spec.d.ts +85 -0
  74. package/dist/types/spec.d.ts.map +1 -0
  75. package/dist/types/spec.js +8 -0
  76. package/dist/types/spec.js.map +1 -0
  77. package/package.json +2 -2
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Spec 验证类型
3
+ *
4
+ * 框架提供验证机制,项目定义自己的 Spec Schema
5
+ */
6
+ /**
7
+ * Spec 类型
8
+ */
9
+ export type SpecType = 'architecture' | 'module' | 'api' | 'custom';
10
+ /**
11
+ * Spec 验证错误
12
+ */
13
+ export interface SpecValidationError {
14
+ /** 错误路径 */
15
+ path: string;
16
+ /** 错误消息 */
17
+ message: string;
18
+ /** 严重程度 */
19
+ severity: 'error' | 'warning';
20
+ }
21
+ /**
22
+ * Spec 验证结果
23
+ */
24
+ export interface SpecValidationResult {
25
+ /** 是否通过 */
26
+ valid: boolean;
27
+ /** 文件路径 */
28
+ file: string;
29
+ /** Spec 类型 */
30
+ type: SpecType;
31
+ /** 错误列表 */
32
+ errors: SpecValidationError[];
33
+ /** 警告列表 */
34
+ warnings: SpecValidationError[];
35
+ /** 指标(可选) */
36
+ metrics?: Record<string, number>;
37
+ }
38
+ /**
39
+ * Spec 验证配置
40
+ */
41
+ export interface SpecValidatorConfig {
42
+ /** 是否启用 */
43
+ enabled: boolean;
44
+ /** Schema 路径(项目定义) */
45
+ schemaPath: string;
46
+ /** 要验证的文件模式 */
47
+ files: string[];
48
+ /** 验证失败的级别 */
49
+ failureLevel: 'error' | 'warning';
50
+ }
51
+ /**
52
+ * Schema 加载器函数类型
53
+ *
54
+ * 项目可以自定义 Schema 加载逻辑
55
+ */
56
+ export type SchemaLoader = (schemaPath: string) => Promise<SpecSchemaDefinition>;
57
+ /**
58
+ * Schema 定义(通用接口)
59
+ *
60
+ * 项目需要实现这个接口
61
+ */
62
+ export interface SpecSchemaDefinition {
63
+ /** Schema 名称 */
64
+ name: string;
65
+ /** Schema 版本 */
66
+ version?: string;
67
+ /** 验证函数 */
68
+ validate: (content: string, filePath: string) => Promise<SpecValidationResult>;
69
+ }
70
+ /**
71
+ * 批量验证结果
72
+ */
73
+ export interface BatchSpecValidationResult {
74
+ /** 总文件数 */
75
+ total: number;
76
+ /** 通过数 */
77
+ passed: number;
78
+ /** 失败数 */
79
+ failed: number;
80
+ /** 警告数 */
81
+ warnings: number;
82
+ /** 详细结果 */
83
+ results: SpecValidationResult[];
84
+ }
85
+ //# sourceMappingURL=spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../../src/types/spec.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,cAAc,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,WAAW;IACX,KAAK,EAAE,OAAO,CAAC;IACf,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,cAAc;IACd,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW;IACX,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,WAAW;IACX,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,aAAa;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,WAAW;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,sBAAsB;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,cAAc;IACd,YAAY,EAAE,OAAO,GAAG,SAAS,CAAC;CACnC;AAED;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAEjF;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW;IACX,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAChF;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;IACd,UAAU;IACV,MAAM,EAAE,MAAM,CAAC;IACf,UAAU;IACV,MAAM,EAAE,MAAM,CAAC;IACf,UAAU;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW;IACX,OAAO,EAAE,oBAAoB,EAAE,CAAC;CACjC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ /**
3
+ * Spec 验证类型
4
+ *
5
+ * 框架提供验证机制,项目定义自己的 Spec Schema
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ //# sourceMappingURL=spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec.js","sourceRoot":"","sources":["../../src/types/spec.ts"],"names":[],"mappings":";AAAA;;;;GAIG"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@dommaker/harness",
3
- "version": "0.6.1",
4
- "description": "通用工程约束框架 - 铁律系统、检查点验证、测试门控",
3
+ "version": "0.7.1",
4
+ "description": "通用工程约束框架 - 铁律系统、检查点验证、测试门控、拦截器",
5
5
  "keywords": [
6
6
  "harness",
7
7
  "constraint",