cyber-sdd 0.4.1 → 0.4.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cyber-sdd",
3
- "version": "0.4.1",
3
+ "version": "0.4.2",
4
4
  "description": "Spec-Driven Development. Scaffold, validate, and maintain behavioral specs (spec.md + .feature files) for software features.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -33,6 +33,7 @@
33
33
  },
34
34
  "scripts": {
35
35
  "build": "tsdown",
36
+ "build:vendor": "tsdown -c tsdown.vendor.config.ts",
36
37
  "check:spec": "node ./skills/check-project-specs/scripts/check-project-specs.mts",
37
38
  "test": "node --test \"skills/*/scripts/*.test.mts\"",
38
39
  "typecheck": "tsc -p tsconfig.json"
@@ -24,3 +24,12 @@ References `sdd:lifecycle-governance`, `sdd:ownership-governance`, `sdd:gate-val
24
24
  reconcile); run via `pnpm verify:specs-new`. Tested by `check-spec-state.test.mts`.
25
25
  - `check-suite.mts` — deterministic `.feature`-form validator (Gherkin validity, boolean-`Then`
26
26
  form, scenario ordering); run via `pnpm verify:specs-new`. Tested by `check-suite.test.mts`.
27
+ It imports gherkin-cli from `../vendor/gherkin-cli.mjs`, a committed self-contained bundle, so it
28
+ runs from an installed plugin, which has no `node_modules`. `pnpm build:vendor` rebuilds the
29
+ bundle; `check-suite-installed.test.mts` runs the engine from a copy of the plugin's files and
30
+ fails while the bundle is stale.
31
+ - `classify-edit-class.mts` — the structural edit-class classifier for touched frozen `.feature`
32
+ files. It imports the same `../vendor/gherkin-cli.mjs` bundle; `classify-edit-class-installed.test.mts`
33
+ runs it from a copy of the plugin's files.
34
+ - `vendor/gherkin-cli.mjs` is shared: `touch-set-correction` and `verify-scenarios` import it from
35
+ here too, so the plugin ships one copy.
@@ -6,7 +6,8 @@
6
6
  import { type Dirent, readdirSync, readFileSync, realpathSync } from 'node:fs'
7
7
  import { basename, dirname, join } from 'node:path'
8
8
  import { pathToFileURL } from 'node:url'
9
- import { validate } from 'gherkin-cli'
9
+ // The bundled copy, not the package: an installed plugin has no node_modules to resolve it from.
10
+ import { validate } from '../vendor/gherkin-cli.mjs'
10
11
 
11
12
  // ─── types ────────────────────────────────────────────────────────────────────
12
13
 
@@ -36,7 +36,7 @@ import { execFileSync } from 'node:child_process'
36
36
  import { readFileSync, realpathSync } from 'node:fs'
37
37
  import { dirname, join, relative, resolve, sep } from 'node:path'
38
38
  import { pathToFileURL } from 'node:url'
39
- import { GitError, diff as gherkinDiff, type ReadsGitDiff } from 'gherkin-cli'
39
+ import { GitError, diff as gherkinDiff, type ReadsGitDiff } from '../vendor/gherkin-cli.mjs'
40
40
 
41
41
  // ─── types ────────────────────────────────────────────────────────────────────
42
42
 
@@ -0,0 +1,2 @@
1
+ // Types for the bundled gherkin-cli beside this file: the same module, so the same types.
2
+ export * from 'gherkin-cli'