@cofferdam/check-sdk 0.2.2 → 0.2.3

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/README.md CHANGED
@@ -93,6 +93,31 @@ import type {
93
93
 
94
94
  Everything in this list is part of the stability contract; new exports are additive. Removing or renaming an export is a breaking change.
95
95
 
96
+ ## MemberExpression property resolution
97
+
98
+ `MemberExpressionNode` exposes two fields: `computed: boolean` and `property: string | undefined`.
99
+
100
+ - **Dot-form** (`obj.foo`, `computed=false`): `property` is always the identifier name — e.g. `"foo"`.
101
+ - **String-literal-indexed** (`obj["foo"]`, `computed=true`): `property` resolves to the literal value — e.g. `"foo"`. The resolver only applies when the index is a bare string literal; template literals and concatenation are treated as dynamic.
102
+ - **Dynamic-indexed** (`obj[runtimeVar]`, `computed=true`): `property` is `undefined`. The index is not statically determinable. Use `file.text.slice(node.span.start_byte, node.span.end_byte)` if you need the surface form.
103
+
104
+ In short: **`property` is always set for dot-form, and set for string-literal bracket-form. It is `undefined` only when the index is truly dynamic.**
105
+
106
+ ```ts
107
+ for (const m of file.ast.findAll("MemberExpression")) {
108
+ if (m.property === "fetch") {
109
+ // Catches both obj.fetch and obj["fetch"]
110
+ ctx.report({ message: "...", span: m.span });
111
+ }
112
+ }
113
+ ```
114
+
115
+ ## ts-morph routing status (0.2.x)
116
+
117
+ `DefineCheckInput` exposes a `requiresTypes?: boolean` field for checks that need full type-aware analysis (resolved types, inferred generics, call signatures). **This field is reserved for future use in 0.2.x and is not yet wired.** Setting `requiresTypes: true` today is accepted by the type system and recorded on the `Check` object, but the engine does not route the check through ts-morph and no type information is available inside `run()`. The plugin host emits a one-time warning to stderr at load time when it encounters a plugin with `requiresTypes: true` so authors are not left wondering why type data is absent.
118
+
119
+ Type-aware routing via ts-morph is on the roadmap. Track cd-l58 / [gh #16](https://github.com/TAJD/cofferdam/issues/16) for status.
120
+
96
121
  ## Versioning
97
122
 
98
123
  The SDK ships in lockstep with the cofferdam binary. `@cofferdam/check-sdk@X.Y.Z` is built and tested against `cofferdam@X.Y.Z`; the cofferdam plugin host enforces a major-version compatibility check at load time and refuses to run plugins whose vendored SDK is from a different major.
@@ -8,6 +8,11 @@ export interface SourceFile {
8
8
  readonly path: string;
9
9
  /** Full text of the file, UTF-8. Byte offsets in spans index into this. */
10
10
  readonly text: string;
11
+ /**
12
+ * Layer name from `cofferdam.invariants.toml` `[layers]`.
13
+ * `null` when the file is not a member of any declared layer.
14
+ */
15
+ readonly layer: string | null;
11
16
  /**
12
17
  * Iterate every line in the file with classification flags drawn
13
18
  * from the comment table + an AST walk over string/template/JSX.
@@ -1 +1 @@
1
- {"version":3,"file":"check-context.d.ts","sourceRoot":"","sources":["../src/check-context.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,wDAAwD;AACxD,MAAM,WAAW,UAAU;IACzB,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,KAAK,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAEpC;;;;OAIG;IACH,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;CAC9B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,GAAG;IAClB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,+DAA+D;AAC/D,MAAM,WAAW,UAAU;IACzB,oDAAoD;IACpD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;uCACmC;IACnC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;KAAE,EAAE,CAAC;IAC7E;;;OAGG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,4DAA4D;IAC5D,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;CAChC"}
1
+ {"version":3,"file":"check-context.d.ts","sourceRoot":"","sources":["../src/check-context.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,wDAAwD;AACxD,MAAM,WAAW,UAAU;IACzB,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9B;;;;OAIG;IACH,KAAK,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAEpC;;;;OAIG;IACH,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;CAC9B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,GAAG;IAClB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,+DAA+D;AAC/D,MAAM,WAAW,UAAU;IACzB,oDAAoD;IACpD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;uCACmC;IACnC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;KAAE,EAAE,CAAC;IAC7E;;;OAGG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,4DAA4D;IAC5D,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;CAChC"}
@@ -14,11 +14,26 @@ export interface FileScope {
14
14
  /**
15
15
  * Optional include glob (gitignore syntax via globset). When set,
16
16
  * the file path must match.
17
+ *
18
+ * @deprecated Prefer {@link FileScope.pathPatterns} (plural) for new
19
+ * code — it accepts an array, matching the shape of `excludePatterns`
20
+ * and avoiding brace expansion in a single string. `pathPattern`
21
+ * remains functional through the 0.2.x line and is scheduled for
22
+ * removal in 0.3.0. When both forms are present, a file matches the
23
+ * include set if it matches `pathPattern` OR any `pathPatterns`
24
+ * entry.
17
25
  */
18
26
  readonly pathPattern?: string;
27
+ /**
28
+ * Optional include globs (gitignore syntax via globset). When set,
29
+ * the file path must match at least one entry. Plural counterpart to
30
+ * the deprecated singular {@link FileScope.pathPattern}; when both are
31
+ * present, a file is in scope if it matches either form.
32
+ */
33
+ readonly pathPatterns?: readonly string[];
19
34
  /**
20
35
  * Exclude globs. Paths matching any of these are skipped, even if
21
- * `pathPattern` matched.
36
+ * `pathPattern` / `pathPatterns` matched.
22
37
  */
23
38
  readonly excludePatterns?: readonly string[];
24
39
  }
@@ -39,7 +54,18 @@ export interface Check<S extends OptionsSchema = OptionsSchema> {
39
54
  readonly explanation: string;
40
55
  /** Optional long-form catalog body used by `cofferdam explain --full`. */
41
56
  readonly body: string | undefined;
42
- /** Whether the check needs full type-aware analysis (routes through ts-morph). */
57
+ /**
58
+ * Whether the check needs full type-aware analysis (routes through ts-morph).
59
+ *
60
+ * **Status (0.2.x): not yet implemented.** Setting this to `true` is
61
+ * accepted by the type system and recorded on the `Check` object, but the
62
+ * engine does **not** route the check through ts-morph and no type
63
+ * information is made available inside `run()`. The field is reserved for
64
+ * future use; type-aware routing via ts-morph is on the roadmap (tracked
65
+ * as cd-l58 / gh #16). Until that work lands, treat `requiresTypes: true`
66
+ * as a declaration of intent only — the check will still run, but without
67
+ * type data.
68
+ */
43
69
  readonly requiresTypes: boolean;
44
70
  /** Two-pass consistency mode. */
45
71
  readonly consistency: boolean;
@@ -61,6 +87,19 @@ export interface DefineCheckInput<S extends OptionsSchema> {
61
87
  readonly defaultSeverity?: Severity;
62
88
  readonly explanation: string;
63
89
  readonly body?: string;
90
+ /**
91
+ * Whether the check needs full type-aware analysis (routes through ts-morph).
92
+ *
93
+ * **Status (0.2.x): not yet implemented.** Setting this to `true` is
94
+ * accepted by the type system and recorded on the `Check` object, but the
95
+ * engine does **not** route the check through ts-morph and no type
96
+ * information is made available inside `run()`. The field is reserved for
97
+ * future use; type-aware routing via ts-morph is on the roadmap (tracked
98
+ * as cd-l58 / gh #16). Until that work lands, treat `requiresTypes: true`
99
+ * as a declaration of intent only — the check will still run, but without
100
+ * type data. The plugin host will emit a one-time warning to stderr at
101
+ * load time when this is `true`.
102
+ */
64
103
  readonly requiresTypes?: boolean;
65
104
  readonly consistency?: boolean;
66
105
  /** Schema; defaults to `{}`. Inferred at the call site. */
@@ -1 +1 @@
1
- {"version":3,"file":"define-check.d.ts","sourceRoot":"","sources":["../src/define-check.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,kEAAkE;IAClE,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9C;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,KAAK,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa;IAC5D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,0EAA0E;IAC1E,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,kFAAkF;IAClF,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,iCAAiC;IACjC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACpB,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IACtC,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CAC1E;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,aAAa;IACvD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,gDAAgD;IAChD,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACrB,mDAAmD;IACnD,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CAC1E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,WAAW,CAAC,KAAK,CAAC,CAAC,SAAS,aAAa,GAAG,EAAE,EAC5D,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GACzB,KAAK,CAAC,CAAC,CAAC,CAcV"}
1
+ {"version":3,"file":"define-check.d.ts","sourceRoot":"","sources":["../src/define-check.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,kEAAkE;IAClE,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9C;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,KAAK,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa;IAC5D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,0EAA0E;IAC1E,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,iCAAiC;IACjC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACpB,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IACtC,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CAC1E;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,aAAa;IACvD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,gDAAgD;IAChD,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACrB,mDAAmD;IACnD,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CAC1E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,WAAW,CAAC,KAAK,CAAC,CAAC,SAAS,aAAa,GAAG,EAAE,EAC5D,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GACzB,KAAK,CAAC,CAAC,CAAC,CAcV"}
@@ -1 +1 @@
1
- {"version":3,"file":"define-check.js","sourceRoot":"","sources":["../src/define-check.ts"],"names":[],"mappings":";AAAA,oEAAoE;AACpE,EAAE;AACF,uEAAuE;AACvE,sEAAsE;AACtE,iEAAiE;AACjE,wBAAwB;;AA6GxB,kCAgBC;AAhDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,SAAgB,WAAW,CACzB,KAA0B;IAE1B,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,QAAQ;QAClD,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,KAAK;QAC3C,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,KAAK;QACvC,OAAO,EAAE,KAAK,CAAC,OAAO,IAAK,EAAQ;QACnC,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,GAAG,EAAE,KAAK,CAAC,GAAG;KACf,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"define-check.js","sourceRoot":"","sources":["../src/define-check.ts"],"names":[],"mappings":";AAAA,oEAAoE;AACpE,EAAE;AACF,uEAAuE;AACvE,sEAAsE;AACtE,iEAAiE;AACjE,wBAAwB;;AAoJxB,kCAgBC;AAhDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,SAAgB,WAAW,CACzB,KAA0B;IAE1B,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,QAAQ;QAClD,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,KAAK;QAC3C,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,KAAK;QACvC,OAAO,EAAE,KAAK,CAAC,OAAO,IAAK,EAAQ;QACnC,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,GAAG,EAAE,KAAK,CAAC,GAAG;KACf,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -2,7 +2,7 @@ export { Category } from "./category.js";
2
2
  export { Severity } from "./severity.js";
3
3
  export { Walk } from "./ast.js";
4
4
  export { defineCheck } from "./define-check.js";
5
- export { runPlugin, buildSourceFile } from "./plugin-host.js";
5
+ export { runPlugin, buildSourceFile, fileMatchesScope } from "./plugin-host.js";
6
6
  export { loadPlugins, runPlugins } from "./loader.js";
7
7
  export type { PluginReport, PluginRunInput, NativeLineView, } from "./plugin-host.js";
8
8
  export type { LoadedPlugin, RunPluginsOptions } from "./loader.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACtD,YAAY,EACV,YAAY,EACZ,cAAc,EACd,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEnE,YAAY,EAAE,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC5E,YAAY,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACpF,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACnD,YAAY,EACV,OAAO,EACP,UAAU,EACV,OAAO,EACP,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,qBAAqB,EACrB,YAAY,EACZ,2BAA2B,EAC3B,SAAS,EACT,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,QAAQ,EACR,UAAU,GACX,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,eAAe,EACf,SAAS,GACV,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACtD,YAAY,EACV,YAAY,EACZ,cAAc,EACd,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEnE,YAAY,EAAE,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC5E,YAAY,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACpF,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACnD,YAAY,EACV,OAAO,EACP,UAAU,EACV,OAAO,EACP,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,qBAAqB,EACrB,YAAY,EACZ,2BAA2B,EAC3B,SAAS,EACT,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,QAAQ,EACR,UAAU,GACX,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,eAAe,EACf,SAAS,GACV,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -10,7 +10,7 @@
10
10
  // stability contract; everything kept internal is not. New exports are
11
11
  // additive — removing or renaming an export is a breaking change.
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.runPlugins = exports.loadPlugins = exports.buildSourceFile = exports.runPlugin = exports.defineCheck = exports.Walk = exports.Severity = exports.Category = void 0;
13
+ exports.runPlugins = exports.loadPlugins = exports.fileMatchesScope = exports.buildSourceFile = exports.runPlugin = exports.defineCheck = exports.Walk = exports.Severity = exports.Category = void 0;
14
14
  var category_js_1 = require("./category.js");
15
15
  Object.defineProperty(exports, "Category", { enumerable: true, get: function () { return category_js_1.Category; } });
16
16
  var severity_js_1 = require("./severity.js");
@@ -24,6 +24,7 @@ Object.defineProperty(exports, "defineCheck", { enumerable: true, get: function
24
24
  var plugin_host_js_1 = require("./plugin-host.js");
25
25
  Object.defineProperty(exports, "runPlugin", { enumerable: true, get: function () { return plugin_host_js_1.runPlugin; } });
26
26
  Object.defineProperty(exports, "buildSourceFile", { enumerable: true, get: function () { return plugin_host_js_1.buildSourceFile; } });
27
+ Object.defineProperty(exports, "fileMatchesScope", { enumerable: true, get: function () { return plugin_host_js_1.fileMatchesScope; } });
27
28
  var loader_js_1 = require("./loader.js");
28
29
  Object.defineProperty(exports, "loadPlugins", { enumerable: true, get: function () { return loader_js_1.loadPlugins; } });
29
30
  Object.defineProperty(exports, "runPlugins", { enumerable: true, get: function () { return loader_js_1.runPlugins; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,EAAE;AACF,yEAAyE;AACzE,sEAAsE;AACtE,wEAAwE;AACxE,yCAAyC;AACzC,EAAE;AACF,sEAAsE;AACtE,uEAAuE;AACvE,kEAAkE;;;AAElE,6CAAyC;AAAhC,uGAAA,QAAQ,OAAA;AACjB,6CAAyC;AAAhC,uGAAA,QAAQ,OAAA;AACjB,mCAAgC;AAAvB,8FAAA,IAAI,OAAA;AACb,qDAAgD;AAAvC,8GAAA,WAAW,OAAA;AAEpB,qEAAqE;AACrE,8DAA8D;AAC9D,mDAA8D;AAArD,2GAAA,SAAS,OAAA;AAAE,iHAAA,eAAe,OAAA;AACnC,yCAAsD;AAA7C,wGAAA,WAAW,OAAA;AAAE,uGAAA,UAAU,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,EAAE;AACF,yEAAyE;AACzE,sEAAsE;AACtE,wEAAwE;AACxE,yCAAyC;AACzC,EAAE;AACF,sEAAsE;AACtE,uEAAuE;AACvE,kEAAkE;;;AAElE,6CAAyC;AAAhC,uGAAA,QAAQ,OAAA;AACjB,6CAAyC;AAAhC,uGAAA,QAAQ,OAAA;AACjB,mCAAgC;AAAvB,8FAAA,IAAI,OAAA;AACb,qDAAgD;AAAvC,8GAAA,WAAW,OAAA;AAEpB,qEAAqE;AACrE,8DAA8D;AAC9D,mDAAgF;AAAvE,2GAAA,SAAS,OAAA;AAAE,iHAAA,eAAe,OAAA;AAAE,kHAAA,gBAAgB,OAAA;AACrD,yCAAsD;AAA7C,wGAAA,WAAW,OAAA;AAAE,uGAAA,UAAU,OAAA"}
@@ -1,4 +1,4 @@
1
- import type { Check } from "./define-check.js";
1
+ import type { Check, FileScope } from "./define-check.js";
2
2
  import type { Fix } from "./check-context.js";
3
3
  import type { LineView } from "./line-view.js";
4
4
  import type { Span } from "./span.js";
@@ -38,6 +38,8 @@ export interface PluginRunInput {
38
38
  readonly path: string;
39
39
  readonly text: string;
40
40
  readonly lineViews: readonly NativeLineView[];
41
+ /** Layer name from `cofferdam.invariants.toml` `[layers]`. `null` when not in any layer. */
42
+ readonly layer: string | null;
41
43
  }
42
44
  /**
43
45
  * Build the `SourceFile` shape a plugin's `run()` callback expects.
@@ -48,9 +50,18 @@ export interface PluginRunInput {
48
50
  export declare function buildSourceFile(input: PluginRunInput): {
49
51
  path: string;
50
52
  text: string;
53
+ layer: string | null;
51
54
  lines(): IterableIterator<LineView>;
52
55
  ast: null;
53
56
  };
57
+ /**
58
+ * Return true when `path` (normalised to forward slashes) is in scope
59
+ * for the given `FileScope` filter. Mirrors the `fileMatchesScope`
60
+ * logic in `plugin-host.mjs` — both must be kept in sync.
61
+ *
62
+ * `undefined` scope = every file is in scope.
63
+ */
64
+ export declare function fileMatchesScope(path: string, scope: FileScope | undefined): boolean;
54
65
  /**
55
66
  * Execute a single plugin against a single file. Collects `ctx.report`
56
67
  * calls into a `PluginReport[]` the loader can hand to native
@@ -59,6 +70,10 @@ export declare function buildSourceFile(input: PluginRunInput): {
59
70
  * This is the function a worker_thread invokes. The host process never
60
71
  * touches plugin code directly — crash containment is the worker's
61
72
  * boundary.
73
+ *
74
+ * FileScope filtering is applied here: if the check declares a `files`
75
+ * scope and the input path does not match, the function returns an empty
76
+ * array immediately without calling `run()`.
62
77
  */
63
78
  export declare function runPlugin(check: Check, input: PluginRunInput): PluginReport[];
64
79
  //# sourceMappingURL=plugin-host.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-host.d.ts","sourceRoot":"","sources":["../src/plugin-host.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAgB,GAAG,EAAc,MAAM,oBAAoB,CAAC;AACxE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAItC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;IACnB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;KAAE,EAAE,CAAC;CAC9E;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,SAAS,cAAc,EAAE,CAAC;CAC/C;AAwBD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc;;;aAKxC,gBAAgB,CAAC,QAAQ,CAAC;;EAqBtC;AAID;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,GAAG,YAAY,EAAE,CA0C7E"}
1
+ {"version":3,"file":"plugin-host.d.ts","sourceRoot":"","sources":["../src/plugin-host.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAgB,GAAG,EAAc,MAAM,oBAAoB,CAAC;AACxE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAItC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;IACnB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;KAAE,EAAE,CAAC;CAC9E;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,SAAS,cAAc,EAAE,CAAC;IAC9C,4FAA4F;IAC5F,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAwBD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc;;;;aAMxC,gBAAgB,CAAC,QAAQ,CAAC;;EAqBtC;AAID;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAiCpF;AAmDD;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,GAAG,YAAY,EAAE,CA4C7E"}
@@ -14,6 +14,7 @@
14
14
  // parsing).
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
16
  exports.buildSourceFile = buildSourceFile;
17
+ exports.fileMatchesScope = fileMatchesScope;
17
18
  exports.runPlugin = runPlugin;
18
19
  // ---- runtime construction --------------------------------------------
19
20
  function buildLineView(native) {
@@ -46,6 +47,7 @@ function buildSourceFile(input) {
46
47
  return {
47
48
  path: input.path,
48
49
  text: input.text,
50
+ layer: input.layer,
49
51
  lines() {
50
52
  let i = 0;
51
53
  const it = {
@@ -69,6 +71,98 @@ function buildSourceFile(input) {
69
71
  };
70
72
  }
71
73
  // ---- runPlugin -------------------------------------------------------
74
+ /**
75
+ * Return true when `path` (normalised to forward slashes) is in scope
76
+ * for the given `FileScope` filter. Mirrors the `fileMatchesScope`
77
+ * logic in `plugin-host.mjs` — both must be kept in sync.
78
+ *
79
+ * `undefined` scope = every file is in scope.
80
+ */
81
+ function fileMatchesScope(path, scope) {
82
+ if (!scope)
83
+ return true;
84
+ const fwd = path.replace(/\\/g, "/");
85
+ const { extensions } = scope;
86
+ if (Array.isArray(extensions) && extensions.length > 0) {
87
+ const lower = fwd.toLowerCase();
88
+ if (!extensions.some((e) => lower.endsWith("." + String(e).toLowerCase()))) {
89
+ return false;
90
+ }
91
+ }
92
+ const includes = [];
93
+ if (typeof scope.pathPattern === "string" && scope.pathPattern) {
94
+ includes.push(scope.pathPattern);
95
+ }
96
+ if (Array.isArray(scope.pathPatterns)) {
97
+ for (const p of scope.pathPatterns) {
98
+ if (typeof p === "string" && p)
99
+ includes.push(p);
100
+ }
101
+ }
102
+ if (includes.length > 0 && !includes.some((pat) => globMatch(pat, fwd)))
103
+ return false;
104
+ const { excludePatterns } = scope;
105
+ if (Array.isArray(excludePatterns) && excludePatterns.length > 0) {
106
+ if (excludePatterns.some((pat) => typeof pat === "string" && globMatch(pat, fwd))) {
107
+ return false;
108
+ }
109
+ }
110
+ return true;
111
+ }
112
+ function globMatch(pattern, path) {
113
+ const braceMatch = pattern.match(/^(.*?)\{([^{}]+)\}(.*)$/);
114
+ if (braceMatch) {
115
+ const [, pre, inner, post] = braceMatch;
116
+ return inner.split(",").some((alt) => globMatch(pre + alt + post, path));
117
+ }
118
+ // For relative patterns (no leading `/` or `**/`), also try `**/pattern`.
119
+ if (!pattern.startsWith("/") && !pattern.startsWith("**/")) {
120
+ if (globMatchSingle("**/" + pattern, path))
121
+ return true;
122
+ }
123
+ return globMatchSingle(pattern, path);
124
+ }
125
+ function globMatchSingle(pattern, path) {
126
+ let re = "^";
127
+ let i = 0;
128
+ while (i < pattern.length) {
129
+ const c = pattern[i];
130
+ if (c === "*") {
131
+ if (pattern[i + 1] === "*") {
132
+ i += 2;
133
+ if (pattern[i] === "/")
134
+ i++;
135
+ re += "(?:.+/)?";
136
+ continue;
137
+ }
138
+ re += "[^/]*";
139
+ }
140
+ else if (c === "?") {
141
+ re += "[^/]";
142
+ }
143
+ else if (c === "[") {
144
+ const end = pattern.indexOf("]", i + 1);
145
+ if (end === -1) {
146
+ re += "\\[";
147
+ }
148
+ else {
149
+ re += pattern.slice(i, end + 1);
150
+ i = end;
151
+ }
152
+ }
153
+ else {
154
+ re += c.replace(/[.+^${}()|\\]/g, "\\$&");
155
+ }
156
+ i++;
157
+ }
158
+ re += "$";
159
+ try {
160
+ return new RegExp(re).test(path);
161
+ }
162
+ catch {
163
+ return false;
164
+ }
165
+ }
72
166
  /**
73
167
  * Execute a single plugin against a single file. Collects `ctx.report`
74
168
  * calls into a `PluginReport[]` the loader can hand to native
@@ -77,8 +171,14 @@ function buildSourceFile(input) {
77
171
  * This is the function a worker_thread invokes. The host process never
78
172
  * touches plugin code directly — crash containment is the worker's
79
173
  * boundary.
174
+ *
175
+ * FileScope filtering is applied here: if the check declares a `files`
176
+ * scope and the input path does not match, the function returns an empty
177
+ * array immediately without calling `run()`.
80
178
  */
81
179
  function runPlugin(check, input) {
180
+ if (!fileMatchesScope(input.path, check.files))
181
+ return [];
82
182
  const reports = [];
83
183
  const ctx = {
84
184
  report(args) {
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-host.js","sourceRoot":"","sources":["../src/plugin-host.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,EAAE;AACF,oEAAoE;AACpE,qEAAqE;AACrE,qEAAqE;AACrE,yDAAyD;AACzD,iCAAiC;AACjC,EAAE;AACF,uEAAuE;AACvE,iEAAiE;AACjE,yEAAyE;AACzE,uEAAuE;AACvE,YAAY;;AA0EZ,0CA0BC;AAaD,8BA0CC;AA7GD,yEAAyE;AAEzE,SAAS,aAAa,CAAC,MAAsB;IAC3C,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,OAAO,CAAC,SAAiB,EAAE,OAAe;YACxC,OAAO;gBACL,IAAI,EAAE,MAAM,CAAC,MAAM;gBACnB,MAAM,EAAE,SAAS,GAAG,CAAC;gBACrB,UAAU,EAAE,MAAM,CAAC,SAAS,GAAG,SAAS;gBACxC,QAAQ,EAAE,MAAM,CAAC,SAAS,GAAG,OAAO;aACrC,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,KAAqB;IACnD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACrD,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK;YACH,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,MAAM,EAAE,GAA+B;gBACrC,IAAI;oBACF,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;wBACzB,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,CAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;oBACjD,CAAC;oBACD,OAAO,EAAE,KAAK,EAAE,SAAgC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;gBACjE,CAAC;gBACD,CAAC,MAAM,CAAC,QAAQ,CAAC;oBACf,OAAO,EAAE,CAAC;gBACZ,CAAC;gBACD,MAAM,CAAC,KAAgB;oBACrB,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;oBACrB,OAAO,EAAE,KAAK,EAAE,KAAiB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;gBAClD,CAAC;aACF,CAAC;YACF,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,GAAG,EAAE,IAAI;KACV,CAAC;AACJ,CAAC;AAED,yEAAyE;AAEzE;;;;;;;;GAQG;AACH,SAAgB,SAAS,CAAC,KAAY,EAAE,KAAqB;IAC3D,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,MAAM,GAAG,GAAiB;QACxB,MAAM,CAAC,IAAgB;YACrB,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;YAC9C,MAAM,MAAM,GAAiB;gBAC3B,OAAO,EAAE,KAAK,CAAC,EAAE;gBACjB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,SAAS,EAAE,IAAI,CAAC,UAAU;gBAC1B,OAAO,EAAE,IAAI,CAAC,QAAQ;gBACtB,QAAQ,EAAE,QAAQ,IAAI,KAAK,CAAC,eAAe;gBAC3C,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrC,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9C,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;KACF,CAAC;IAEF,sEAAsE;IACtE,sEAAsE;IACtE,kEAAkE;IAClE,qDAAqD;IACrD,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAE5C,IAAI,CAAC;QACH,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,IAAuC,CAAC,CAAC;IAClF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,kEAAkE;QAClE,6DAA6D;QAC7D,wCAAwC;QACxC,OAAO,CAAC,IAAI,CAAC;YACX,OAAO,EAAE,uBAAuB;YAChC,OAAO,EAAE,WAAW,KAAK,CAAC,EAAE,YAAY,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YAC1F,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,SAAS,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,MAAM;SACjB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,eAAe,CACtB,MAAS;IAET,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAgB,EAAE,CAAC;QACrD,GAAG,CAAC,GAAa,CAAC,GAAG,MAAM,CAAC,GAAG,CAAE,CAAC,OAAO,CAAC;IAC5C,CAAC;IACD,OAAO,GAAmD,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"plugin-host.js","sourceRoot":"","sources":["../src/plugin-host.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cofferdam/check-sdk",
3
- "version": "0.2.2",
3
+ "version": "0.2.3",
4
4
  "description": "Author cofferdam plugin checks in TypeScript. defineCheck factory + types.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -33,7 +33,8 @@
33
33
  "scripts": {
34
34
  "build": "tsc -p .",
35
35
  "typecheck": "tsc -p . --noEmit",
36
- "test:types": "tsc -p tests"
36
+ "test:types": "tsc -p tests",
37
+ "prepublishOnly": "tsc -p ."
37
38
  },
38
39
  "engines": {
39
40
  "node": ">=16"