@wrongstack/plugins 0.287.0 → 0.291.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 (40) hide show
  1. package/dist/accessibility-auditor/index.d.ts.map +1 -1
  2. package/dist/accessibility-auditor.js +45 -42
  3. package/dist/auto-i18n-extractor.js +1 -1
  4. package/dist/code-metrics/index.d.ts.map +1 -1
  5. package/dist/code-metrics.js +46 -42
  6. package/dist/cost-tracker/index.d.ts.map +1 -1
  7. package/dist/cost-tracker.js +4 -2
  8. package/dist/dead-code-detector.js +3 -3
  9. package/dist/diff-summary.js +1 -1
  10. package/dist/doc-sync-guard.js +3 -3
  11. package/dist/duplicate-code-detector/index.d.ts.map +1 -1
  12. package/dist/duplicate-code-detector.js +47 -43
  13. package/dist/feature-flag-tracker/index.d.ts.map +1 -1
  14. package/dist/feature-flag-tracker.js +46 -42
  15. package/dist/file-watcher/index.d.ts.map +1 -1
  16. package/dist/file-watcher.js +6 -2
  17. package/dist/format-on-save.js +1 -1
  18. package/dist/import-organizer.js +1 -1
  19. package/dist/index.js +396 -539
  20. package/dist/interface-contract-guard/index.d.ts.map +1 -1
  21. package/dist/interface-contract-guard.js +46 -42
  22. package/dist/lint-gate/index.d.ts.map +1 -1
  23. package/dist/lint-gate.js +61 -30
  24. package/dist/migration-planner.js +1 -1
  25. package/dist/prompt-firewall/index.d.ts +14 -6
  26. package/dist/prompt-firewall/index.d.ts.map +1 -1
  27. package/dist/prompt-firewall.js +7 -6
  28. package/dist/refactor-suggester/index.d.ts.map +1 -1
  29. package/dist/refactor-suggester.js +46 -42
  30. package/dist/runtime/index.d.ts +24 -0
  31. package/dist/runtime/index.d.ts.map +1 -1
  32. package/dist/runtime.js +63 -24
  33. package/dist/schema-evolution-guard.js +1 -1
  34. package/dist/secret-scanner/index.d.ts.map +1 -1
  35. package/dist/secret-scanner.js +17 -6
  36. package/dist/security-hotspot-scanner.js +1 -1
  37. package/dist/spec-linker.js +396 -539
  38. package/dist/test-runner-gate.js +1 -1
  39. package/dist/type-gate.js +19 -23
  40. package/package.json +5 -5
@@ -4,7 +4,7 @@ import { access } from "node:fs/promises";
4
4
  import { basename as basename2, dirname, isAbsolute as isAbsolute2, join } from "node:path";
5
5
 
6
6
  // src/runtime/index.ts
7
- import { basename, isAbsolute, relative, resolve } from "node:path";
7
+ import { basename, extname, isAbsolute, relative, resolve } from "node:path";
8
8
  var MAX_BUFFER_BYTES = 16 * 1024 * 1024;
9
9
  function hasLeadingDash(arg) {
10
10
  return arg.length > 0 && arg.startsWith("-");
package/dist/type-gate.js CHANGED
@@ -4,7 +4,7 @@ import { existsSync } from "node:fs";
4
4
 
5
5
  // src/runtime/index.ts
6
6
  import { execFile } from "node:child_process";
7
- import { basename, isAbsolute, relative, resolve } from "node:path";
7
+ import { basename, extname, isAbsolute, relative, resolve } from "node:path";
8
8
  var META_CHARS = /["'`;&|<>\r\n]/;
9
9
  var MAX_BUFFER_BYTES = 16 * 1024 * 1024;
10
10
  function hasLeadingDash(arg) {
@@ -103,12 +103,15 @@ function runRunnerCommand(argv, options) {
103
103
  });
104
104
  return;
105
105
  }
106
- const timedOut = false;
106
+ let timedOut = false;
107
107
  let spawnErrored = false;
108
108
  const stdoutChunks = [];
109
109
  const stderrChunks = [];
110
110
  let stdoutBytes = 0;
111
111
  let stderrBytes = 0;
112
+ options.signal?.addEventListener("abort", () => {
113
+ timedOut = true;
114
+ }, { once: true });
112
115
  const child = execFile(
113
116
  argv[0],
114
117
  argv.slice(1),
@@ -120,12 +123,12 @@ function runRunnerCommand(argv, options) {
120
123
  windowsHide: true,
121
124
  shell: false
122
125
  },
123
- (err, stdout, stderr) => {
126
+ (err) => {
124
127
  if (timedOut) {
125
128
  resolvePromise({
126
129
  code: null,
127
- stdout: Buffer.concat([...stdoutChunks, ...Buffer.isBuffer(stdout) ? [stdout] : [Buffer.from(stdout)]]).toString("utf8"),
128
- stderr: Buffer.concat([...stderrChunks, ...Buffer.isBuffer(stderr) ? [stderr] : [Buffer.from(stderr)]]).toString("utf8"),
130
+ stdout: Buffer.concat(stdoutChunks).toString("utf8"),
131
+ stderr: Buffer.concat(stderrChunks).toString("utf8"),
129
132
  timedOut: true,
130
133
  spawnError: false
131
134
  });
@@ -134,8 +137,8 @@ function runRunnerCommand(argv, options) {
134
137
  if (spawnErrored) {
135
138
  resolvePromise({
136
139
  code: 127,
137
- stdout: Buffer.concat([...stdoutChunks, ...Buffer.isBuffer(stdout) ? [stdout] : [Buffer.from(stdout)]]).toString("utf8"),
138
- stderr: Buffer.concat([...stderrChunks, ...Buffer.isBuffer(stderr) ? [stderr] : [Buffer.from(stderr)]]).toString("utf8"),
140
+ stdout: Buffer.concat(stdoutChunks).toString("utf8"),
141
+ stderr: Buffer.concat(stderrChunks).toString("utf8"),
139
142
  timedOut: false,
140
143
  spawnError: true
141
144
  });
@@ -146,14 +149,8 @@ function runRunnerCommand(argv, options) {
146
149
  const code = typeof anyErr.code === "number" ? anyErr.code : 1;
147
150
  resolvePromise({
148
151
  code,
149
- stdout: Buffer.concat([
150
- ...stdoutChunks,
151
- ...anyErr.stdout ? [Buffer.isBuffer(anyErr.stdout) ? anyErr.stdout : Buffer.from(anyErr.stdout)] : []
152
- ]).toString("utf8"),
153
- stderr: Buffer.concat([
154
- ...stderrChunks,
155
- ...anyErr.stderr ? [Buffer.isBuffer(anyErr.stderr) ? anyErr.stderr : Buffer.from(anyErr.stderr)] : []
156
- ]).toString("utf8"),
152
+ stdout: Buffer.concat(stdoutChunks).toString("utf8"),
153
+ stderr: Buffer.concat(stderrChunks).toString("utf8"),
157
154
  timedOut: false,
158
155
  spawnError: false
159
156
  });
@@ -161,19 +158,18 @@ function runRunnerCommand(argv, options) {
161
158
  }
162
159
  resolvePromise({
163
160
  code: 0,
164
- stdout: Buffer.concat([
165
- ...stdoutChunks,
166
- ...Buffer.isBuffer(stdout) ? [stdout] : [Buffer.from(stdout)]
167
- ]).toString("utf8"),
168
- stderr: Buffer.concat([
169
- ...stderrChunks,
170
- ...Buffer.isBuffer(stderr) ? [stderr] : [Buffer.from(stderr)]
171
- ]).toString("utf8"),
161
+ stdout: Buffer.concat(stdoutChunks).toString("utf8"),
162
+ stderr: Buffer.concat(stderrChunks).toString("utf8"),
172
163
  timedOut: false,
173
164
  spawnError: false
174
165
  });
175
166
  }
176
167
  );
168
+ child.on("exit", (_code, signal) => {
169
+ if (signal !== null) {
170
+ timedOut = true;
171
+ }
172
+ });
177
173
  child.stdout?.on("data", (chunk) => {
178
174
  stdoutBytes += chunk.length;
179
175
  if (stdoutBytes <= MAX_BUFFER_BYTES) stdoutChunks.push(chunk);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wrongstack/plugins",
3
- "version": "0.287.0",
3
+ "version": "0.291.0",
4
4
  "description": "Official WrongStack plugin collection — 63 focused, single-purpose plugins for code quality, security, observability, planning, and agent coordination",
5
5
  "license": "MIT",
6
6
  "author": "ECOSTACK TECHNOLOGY OÜ",
@@ -273,13 +273,13 @@
273
273
  "dist"
274
274
  ],
275
275
  "devDependencies": {
276
- "@types/node": "^26.0.1",
276
+ "@types/node": "^26.1.1",
277
277
  "typescript": "^7.0.2",
278
- "vitest": "^4.1.9"
278
+ "vitest": "^4.1.10"
279
279
  },
280
280
  "dependencies": {
281
- "@wrongstack/core": "0.287.0",
282
- "@wrongstack/tools": "0.287.0"
281
+ "@wrongstack/tools": "0.291.0",
282
+ "@wrongstack/core": "0.291.0"
283
283
  },
284
284
  "scripts": {
285
285
  "build": "node ../../scripts/build-package.mjs",