@shrkcrft/api-surface-diff 0.1.0-alpha.19 → 0.1.0-alpha.21

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.
@@ -1 +1 @@
1
- {"version":3,"file":"extract-surface-with-program.d.ts","sourceRoot":"","sources":["../../src/engine/extract-surface-with-program.ts"],"names":[],"mappings":"AAYA,OAAO,EAGL,KAAK,WAAW,EAEjB,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,WAAW,CAAC;IACrB,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,0DAA0D;IAC1D,YAAY,EAAE,MAAM,CAAC;IACrB,2BAA2B;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,UAAU,EAAE;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,yDAAyD;QACzD,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,0BAA0B,GAClC,yBAAyB,CA8J3B"}
1
+ {"version":3,"file":"extract-surface-with-program.d.ts","sourceRoot":"","sources":["../../src/engine/extract-surface-with-program.ts"],"names":[],"mappings":"AAYA,OAAO,EAGL,KAAK,WAAW,EAEjB,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,WAAW,CAAC;IACrB,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,0DAA0D;IAC1D,YAAY,EAAE,MAAM,CAAC;IACrB,2BAA2B;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,UAAU,EAAE;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,yDAAyD;QACzD,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,0BAA0B,GAClC,yBAAyB,CAoK3B"}
@@ -148,10 +148,15 @@ export function extractApiSurfaceWithProgram(options) {
148
148
  const key = s.package ?? '<no-package>';
149
149
  counts[key] = (counts[key] ?? 0) + 1;
150
150
  }
151
+ // Surface filter entries that matched no known package so callers can fail
152
+ // loudly instead of returning a silent 0-symbol surface.
153
+ const knownPackages = new Set(fileToPackage.values());
154
+ const unmatchedFilters = options.packageFilter?.filter((p) => !knownPackages.has(p)) ?? [];
151
155
  const surface = {
152
156
  schema: API_SURFACE_SCHEMA,
153
157
  projectRoot: options.projectRoot,
154
158
  ...(options.packageFilter && options.packageFilter.length > 0 ? { packageFilter: options.packageFilter } : {}),
159
+ ...(unmatchedFilters.length > 0 ? { unmatchedFilters } : {}),
155
160
  symbols: deduped,
156
161
  countsByPackage: counts,
157
162
  total: deduped.length,
@@ -1 +1 @@
1
- {"version":3,"file":"extract-surface.d.ts","sourceRoot":"","sources":["../../src/engine/extract-surface.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAGL,KAAK,WAAW,EAEjB,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,sBAAsB;IACrC,+CAA+C;IAC/C,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,yEAAyE;IACzE,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,cAAc,EACpB,OAAO,GAAE,sBAA2B,GACnC,WAAW,CAkDb"}
1
+ {"version":3,"file":"extract-surface.d.ts","sourceRoot":"","sources":["../../src/engine/extract-surface.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAGL,KAAK,WAAW,EAEjB,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,sBAAsB;IACrC,+CAA+C;IAC/C,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,yEAAyE;IACzE,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,cAAc,EACpB,OAAO,GAAE,sBAA2B,GACnC,WAAW,CAwDb"}
@@ -54,10 +54,15 @@ export function extractApiSurface(snap, options = {}) {
54
54
  const key = s.package ?? '<no-package>';
55
55
  counts[key] = (counts[key] ?? 0) + 1;
56
56
  }
57
+ // Surface filter entries that matched no known package so callers can fail
58
+ // loudly instead of returning a silent 0-symbol surface.
59
+ const knownPackages = new Set(fileToPackage.values());
60
+ const unmatchedFilters = options.packageFilter?.filter((p) => !knownPackages.has(p)) ?? [];
57
61
  return {
58
62
  schema: API_SURFACE_SCHEMA,
59
63
  projectRoot: snap.manifest.projectRoot,
60
64
  ...(options.packageFilter && options.packageFilter.length > 0 ? { packageFilter: options.packageFilter } : {}),
65
+ ...(unmatchedFilters.length > 0 ? { unmatchedFilters } : {}),
61
66
  symbols,
62
67
  countsByPackage: counts,
63
68
  total: symbols.length,
@@ -32,6 +32,13 @@ export interface IApiSurface {
32
32
  projectRoot?: string;
33
33
  /** When set, only entries under one of these packages are included. */
34
34
  packageFilter?: readonly string[];
35
+ /**
36
+ * Requested `packageFilter` entries that matched NO known workspace package.
37
+ * Present (and non-empty) only when a filter was supplied that the extractor
38
+ * could not resolve — lets callers fail loudly instead of silently emitting a
39
+ * 0-symbol surface. Absent when every filter matched (deterministic output).
40
+ */
41
+ unmatchedFilters?: readonly string[];
35
42
  /** Symbols sorted by id ascending. */
36
43
  symbols: readonly IPublicSymbol[];
37
44
  /** Per-package summary counts. */
@@ -1 +1 @@
1
- {"version":3,"file":"api-surface.d.ts","sourceRoot":"","sources":["../../src/schema/api-surface.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAG,2BAAoC,CAAC;AACvE,eAAO,MAAM,uBAAuB,EAAG,gCAAyC,CAAC;AAEjF,MAAM,MAAM,aAAa,GACrB,OAAO,GACP,UAAU,GACV,WAAW,GACX,YAAY,GACZ,MAAM,GACN,OAAO,GACP,KAAK,GACL,KAAK,GACL,QAAQ,GACR,WAAW,GACX,SAAS,CAAC;AAEd,MAAM,WAAW,aAAa;IAC5B,qEAAqE;IACrE,EAAE,EAAE,MAAM,CAAC;IACX,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,IAAI,EAAE,aAAa,CAAC;IACpB,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,kBAAkB,CAAC;IAClC,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,sCAAsC;IACtC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;IAClC,kCAAkC;IAClC,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAClD,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;AAE5D,MAAM,MAAM,cAAc,GACtB,OAAO,GACP,SAAS,GACT,cAAc,GACd,YAAY,GACZ,eAAe,GACf,mBAAmB,CAAC;AAExB,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,YAAY,CAAC;IACvB,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,aAAa,CAAC;IACtB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,OAAO,uBAAuB,CAAC;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,OAAO,EAAE,SAAS,cAAc,EAAE,CAAC;CACpC"}
1
+ {"version":3,"file":"api-surface.d.ts","sourceRoot":"","sources":["../../src/schema/api-surface.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAG,2BAAoC,CAAC;AACvE,eAAO,MAAM,uBAAuB,EAAG,gCAAyC,CAAC;AAEjF,MAAM,MAAM,aAAa,GACrB,OAAO,GACP,UAAU,GACV,WAAW,GACX,YAAY,GACZ,MAAM,GACN,OAAO,GACP,KAAK,GACL,KAAK,GACL,QAAQ,GACR,WAAW,GACX,SAAS,CAAC;AAEd,MAAM,WAAW,aAAa;IAC5B,qEAAqE;IACrE,EAAE,EAAE,MAAM,CAAC;IACX,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,IAAI,EAAE,aAAa,CAAC;IACpB,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,kBAAkB,CAAC;IAClC,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,sCAAsC;IACtC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;IAClC,kCAAkC;IAClC,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAClD,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;AAE5D,MAAM,MAAM,cAAc,GACtB,OAAO,GACP,SAAS,GACT,cAAc,GACd,YAAY,GACZ,eAAe,GACf,mBAAmB,CAAC;AAExB,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,YAAY,CAAC;IACvB,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,aAAa,CAAC;IACtB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,OAAO,uBAAuB,CAAC;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,OAAO,EAAE,SAAS,cAAc,EAAE,CAAC;CACpC"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@shrkcrft/api-surface-diff",
3
- "version": "0.1.0-alpha.19",
3
+ "version": "0.1.0-alpha.21",
4
4
  "description": "SharkCraft API surface diff: compare two code-graph snapshots and report added / removed / changed public symbols. Catches accidental API breaks before publish.",
5
5
  "license": "MIT",
6
6
  "author": "SharkCraft contributors",
7
7
  "type": "module",
8
8
  "main": "./dist/index.js",
9
- "types": "./dist/index.d.d.ts",
9
+ "types": "./dist/index.d.ts",
10
10
  "exports": {
11
11
  ".": {
12
12
  "types": "./dist/index.d.ts",
@@ -44,8 +44,8 @@
44
44
  "typecheck": "tsc --noEmit -p tsconfig.json"
45
45
  },
46
46
  "dependencies": {
47
- "@shrkcrft/core": "^0.1.0-alpha.19",
48
- "@shrkcrft/graph": "^0.1.0-alpha.19",
47
+ "@shrkcrft/core": "^0.1.0-alpha.21",
48
+ "@shrkcrft/graph": "^0.1.0-alpha.21",
49
49
  "typescript": "^5.5.0"
50
50
  },
51
51
  "publishConfig": {