@wrongstack/techstack 0.295.0 → 0.296.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.
@@ -1 +1 @@
1
- {"version":3,"file":"dotnet.d.ts","sourceRoot":"","sources":["../../src/adapters/dotnet.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EACV,qBAAqB,EAErB,WAAW,EACX,SAAS,EACV,MAAM,aAAa,CAAC;AACrB,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AAyExB,qBAAa,aAAc,YAAW,gBAAgB;IACpD,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAY;IAErC,SAAS,CACb,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,SAAS,qBAAqB,EAAE,CAAC,CAwE3C;CACF;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,eAAsB,CAAC"}
1
+ {"version":3,"file":"dotnet.d.ts","sourceRoot":"","sources":["../../src/adapters/dotnet.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EACV,qBAAqB,EAErB,WAAW,EACX,SAAS,EACV,MAAM,aAAa,CAAC;AACrB,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AAwExB,qBAAa,aAAc,YAAW,gBAAgB;IACpD,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAY;IAErC,SAAS,CACb,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,SAAS,qBAAqB,EAAE,CAAC,CAwE3C;CACF;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,eAAsB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"elixir.d.ts","sourceRoot":"","sources":["../../src/adapters/elixir.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EACV,qBAAqB,EAGrB,WAAW,EACX,SAAS,EACV,MAAM,aAAa,CAAC;AACrB,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AA4CxB,qBAAa,aAAc,YAAW,gBAAgB;IACpD,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAY;IAErC,SAAS,CACb,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,SAAS,qBAAqB,EAAE,CAAC,CAkE3C;CACF;AAED,eAAO,MAAM,aAAa,eAAsB,CAAC"}
1
+ {"version":3,"file":"elixir.d.ts","sourceRoot":"","sources":["../../src/adapters/elixir.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EACV,qBAAqB,EAGrB,WAAW,EACX,SAAS,EACV,MAAM,aAAa,CAAC;AACrB,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AA0CxB,qBAAa,aAAc,YAAW,gBAAgB;IACpD,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAY;IAErC,SAAS,CACb,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,SAAS,qBAAqB,EAAE,CAAC,CAkE3C;CACF;AAED,eAAO,MAAM,aAAa,eAAsB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"go.d.ts","sourceRoot":"","sources":["../../src/adapters/go.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EACV,qBAAqB,EAGrB,WAAW,EACX,SAAS,EACV,MAAM,aAAa,CAAC;AACrB,OAAO,EAML,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AA8IxB,qBAAa,SAAU,YAAW,gBAAgB;IAChD,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAQ;IAEjC,SAAS,CACb,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,SAAS,qBAAqB,EAAE,CAAC,CAoF3C;CAEF;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,WAAkB,CAAC"}
1
+ {"version":3,"file":"go.d.ts","sourceRoot":"","sources":["../../src/adapters/go.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EACV,qBAAqB,EAGrB,WAAW,EACX,SAAS,EACV,MAAM,aAAa,CAAC;AACrB,OAAO,EAML,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AA6IxB,qBAAa,SAAU,YAAW,gBAAgB;IAChD,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAQ;IAEjC,SAAS,CACb,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,SAAS,qBAAqB,EAAE,CAAC,CAoF3C;CAEF;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,WAAkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"gradle.d.ts","sourceRoot":"","sources":["../../src/adapters/gradle.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAIhF,OAAO,KAAK,EAAE,qBAAqB,EAAmB,WAAW,EAAY,SAAS,EAAE,MAAM,aAAa,CAAC;AAE5G,OAAO,EAML,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AAuFxB,qBAAa,aAAc,YAAW,gBAAgB;IACpD,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAY;IAErC,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,qBAAqB,EAAE,CAAC,CA4C1G;CACF;AAED,eAAO,MAAM,aAAa,eAAsB,CAAC"}
1
+ {"version":3,"file":"gradle.d.ts","sourceRoot":"","sources":["../../src/adapters/gradle.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAIhF,OAAO,KAAK,EAAE,qBAAqB,EAAmB,WAAW,EAAY,SAAS,EAAE,MAAM,aAAa,CAAC;AAE5G,OAAO,EAML,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AAsFxB,qBAAa,aAAc,YAAW,gBAAgB;IACpD,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAY;IAErC,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,qBAAqB,EAAE,CAAC,CA4C1G;CACF;AAED,eAAO,MAAM,aAAa,eAAsB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"maven.d.ts","sourceRoot":"","sources":["../../src/adapters/maven.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EACV,qBAAqB,EAErB,WAAW,EACX,SAAS,EACV,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AAgFxB,qBAAa,YAAa,YAAW,gBAAgB;IACnD,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAW;IAEpC,SAAS,CACb,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,SAAS,qBAAqB,EAAE,CAAC,CAyC3C;CACF;AAED,eAAO,MAAM,YAAY,cAAqB,CAAC"}
1
+ {"version":3,"file":"maven.d.ts","sourceRoot":"","sources":["../../src/adapters/maven.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EACV,qBAAqB,EAErB,WAAW,EACX,SAAS,EACV,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AA6ExB,qBAAa,YAAa,YAAW,gBAAgB;IACnD,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAW;IAEpC,SAAS,CACb,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,SAAS,qBAAqB,EAAE,CAAC,CAyC3C;CACF;AAED,eAAO,MAAM,YAAY,cAAqB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse-utils.d.ts","sourceRoot":"","sources":["../../src/adapters/parse-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,SAAM,GAAG,MAAM,CAcrE;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAOxE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAU9E;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG3E"}
1
+ {"version":3,"file":"parse-utils.d.ts","sourceRoot":"","sources":["../../src/adapters/parse-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,SAAM,GAAG,MAAM,CAcrE;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAOxE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAS9E;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG3E"}
@@ -1 +1 @@
1
- {"version":3,"file":"ruby.d.ts","sourceRoot":"","sources":["../../src/adapters/ruby.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EACV,qBAAqB,EAGrB,WAAW,EACX,SAAS,EACV,MAAM,aAAa,CAAC;AACrB,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AAoDxB,qBAAa,WAAY,YAAW,gBAAgB;IAClD,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAU;IAEnC,SAAS,CACb,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,SAAS,qBAAqB,EAAE,CAAC,CAkE3C;CACF;AAED,eAAO,MAAM,WAAW,aAAoB,CAAC"}
1
+ {"version":3,"file":"ruby.d.ts","sourceRoot":"","sources":["../../src/adapters/ruby.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EACV,qBAAqB,EAGrB,WAAW,EACX,SAAS,EACV,MAAM,aAAa,CAAC;AACrB,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AAmDxB,qBAAa,WAAY,YAAW,gBAAgB;IAClD,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAU;IAEnC,SAAS,CACb,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,SAAS,qBAAqB,EAAE,CAAC,CAkE3C;CACF;AAED,eAAO,MAAM,WAAW,aAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"swift.d.ts","sourceRoot":"","sources":["../../src/adapters/swift.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAIhE,OAAO,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAY,SAAS,EAAE,MAAM,aAAa,CAAC;AAE3F,OAAO,EAKL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AAqDxB,qBAAa,YAAa,YAAW,gBAAgB;IACnD,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAW;IAEpC,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,qBAAqB,EAAE,CAAC,CAwC1G;CACF;AAED,eAAO,MAAM,YAAY,cAAqB,CAAC"}
1
+ {"version":3,"file":"swift.d.ts","sourceRoot":"","sources":["../../src/adapters/swift.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAIhE,OAAO,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAY,SAAS,EAAE,MAAM,aAAa,CAAC;AAE3F,OAAO,EAKL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AAoDxB,qBAAa,YAAa,YAAW,gBAAgB;IACnD,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAW;IAEpC,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,qBAAqB,EAAE,CAAC,CAwC1G;CACF;AAED,eAAO,MAAM,YAAY,cAAqB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"native-audit.d.ts","sourceRoot":"","sources":["../../src/advisory/native-audit.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAIzD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IACnE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,UAAU,EAAE,SAAS,cAAc,EAAE,CAAC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B;AA6BD;;GAEG;AACH,wBAAsB,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,GAAE,kBAA8C,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA0D3I;AAID;;;GAGG;AACH,wBAAsB,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,GAAE,kBAA8C,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAqB3I;AAuCD;;GAEG;AACH,wBAAsB,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,GAAE,kBAA8C,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAG7I;AAgDD;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,GAAE,kBAA8C,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA2C9I;AAID;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,GAAE,kBAA8C,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAwChJ;AAID;;;GAGG;AACH,wBAAsB,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,GAAE,kBAA8C,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA4D9I;AAID,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,kBAAkB,GAAG,CAC/B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,GAAG,EAAE,MAAM,KACR,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAkCtD;;;GAGG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,WAAW,EACtB,aAAa,EAAE,MAAM,EACrB,MAAM,GAAE,kBAA8C,GACrD,OAAO,CAAC,iBAAiB,CAAC,CA0B5B;AAID;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,WAAW,EACtB,MAAM,GAAE,kBAA8C,GACrD,OAAO,CAAC,OAAO,CAAC,CAalB;AAED,MAAM,WAAW,qBAAqB;IACpC,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC/E,WAAW,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACrE;AAED,oFAAoF;AACpF,wBAAgB,iBAAiB,CAAC,aAAa,GAAE,kBAA8C,GAAG,qBAAqB,CAmBtH"}
1
+ {"version":3,"file":"native-audit.d.ts","sourceRoot":"","sources":["../../src/advisory/native-audit.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAIzD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IACnE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,UAAU,EAAE,SAAS,cAAc,EAAE,CAAC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B;AA6BD;;GAEG;AACH,wBAAsB,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,GAAE,kBAA8C,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA0D3I;AAID;;;GAGG;AACH,wBAAsB,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,GAAE,kBAA8C,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAqB3I;AAuCD;;GAEG;AACH,wBAAsB,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,GAAE,kBAA8C,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAG7I;AAgDD;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,GAAE,kBAA8C,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA2C9I;AAID;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,GAAE,kBAA8C,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAwChJ;AAID;;;GAGG;AACH,wBAAsB,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,GAAE,kBAA8C,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA4D9I;AAID,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,kBAAkB,GAAG,CAC/B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,GAAG,EAAE,MAAM,KACR,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;AA0CtD;;;GAGG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,WAAW,EACtB,aAAa,EAAE,MAAM,EACrB,MAAM,GAAE,kBAA8C,GACrD,OAAO,CAAC,iBAAiB,CAAC,CA0B5B;AAID;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,WAAW,EACtB,MAAM,GAAE,kBAA8C,GACrD,OAAO,CAAC,OAAO,CAAC,CAalB;AAED,MAAM,WAAW,qBAAqB;IACpC,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC/E,WAAW,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACrE;AAED,oFAAoF;AACpF,wBAAgB,iBAAiB,CAAC,aAAa,GAAE,kBAA8C,GAAG,qBAAqB,CAmBtH"}
package/dist/index.js CHANGED
@@ -81,7 +81,7 @@ function parsePurl(purl) {
81
81
  const slashIdx = main.indexOf("/");
82
82
  if (slashIdx < 0) return void 0;
83
83
  const type = main.slice(0, slashIdx);
84
- let remainder = main.slice(slashIdx + 1);
84
+ const remainder = main.slice(slashIdx + 1);
85
85
  let namespace;
86
86
  let name;
87
87
  const nsSlashIdx = remainder.indexOf("/");
@@ -591,8 +591,7 @@ function parseTomlKeyValue(line) {
591
591
  function parseXmlAttributes(source) {
592
592
  const attributes = /* @__PURE__ */ new Map();
593
593
  const regex = /([A-Za-z_:][\w:.-]*)\s*=\s*(["'])(.*?)\2/g;
594
- let match;
595
- while ((match = regex.exec(source)) !== null) {
594
+ for (const match of source.matchAll(regex)) {
596
595
  const key = match[1];
597
596
  const value = match[3];
598
597
  if (key !== void 0 && value !== void 0) attributes.set(key, value);
@@ -789,7 +788,7 @@ var PythonAdapter = class {
789
788
  const hasRequirements = workspace.manifests.some((m) => m.includes("requirements.txt")) || await fileExistsAsync(join2(root, "requirements.txt"));
790
789
  const hasPipfile = workspace.manifests.some((m) => m.includes("Pipfile")) || await fileExistsAsync(join2(root, "Pipfile"));
791
790
  const lockfilePath = await this.detectLockfile(root);
792
- let allDeps = [];
791
+ const allDeps = [];
793
792
  let pyprojectEv;
794
793
  if (hasPyproject) {
795
794
  try {
@@ -1118,7 +1117,6 @@ function parseGoMod(content) {
1118
1117
  continue;
1119
1118
  }
1120
1119
  if (line.startsWith("exclude") || line.startsWith("replace") || line.startsWith("retract")) {
1121
- continue;
1122
1120
  }
1123
1121
  }
1124
1122
  return deps;
@@ -1236,8 +1234,7 @@ import { join as join3 } from "node:path";
1236
1234
  function parseCsproj(content) {
1237
1235
  const refs = [];
1238
1236
  const regex = /<PackageReference\b([^>]*?)(?:\/>|>([\s\S]*?)<\/PackageReference>)/gi;
1239
- let match;
1240
- while ((match = regex.exec(content)) !== null) {
1237
+ for (const match of content.matchAll(regex)) {
1241
1238
  const attributes = match[1] ?? "";
1242
1239
  const body = match[2] ?? "";
1243
1240
  const parsedAttributes = parseXmlAttributes(attributes);
@@ -1569,8 +1566,7 @@ function parsePomDependencies(xml) {
1569
1566
  const properties = /* @__PURE__ */ new Map();
1570
1567
  const propertiesBlock = /<properties>([\s\S]*?)<\/properties>/.exec(xml)?.[1] ?? "";
1571
1568
  const propertyRegex = /<([A-Za-z0-9_.-]+)>\s*([^<]+?)\s*<\/\1>/g;
1572
- let propertyMatch;
1573
- while ((propertyMatch = propertyRegex.exec(propertiesBlock)) !== null) {
1569
+ for (const propertyMatch of propertiesBlock.matchAll(propertyRegex)) {
1574
1570
  const key = propertyMatch[1];
1575
1571
  const value = propertyMatch[2];
1576
1572
  if (key && value) properties.set(key, value.trim());
@@ -1591,8 +1587,7 @@ function parsePomDependencies(xml) {
1591
1587
  const managed = /* @__PURE__ */ new Map();
1592
1588
  const managementBlock = /<dependencyManagement>([\s\S]*?)<\/dependencyManagement>/.exec(xml)?.[1] ?? "";
1593
1589
  const managementRegex = /<dependency>\s*([\s\S]*?)<\/dependency>/g;
1594
- let managementMatch;
1595
- while ((managementMatch = managementRegex.exec(managementBlock)) !== null) {
1590
+ for (const managementMatch of managementBlock.matchAll(managementRegex)) {
1596
1591
  const block = managementMatch[1];
1597
1592
  if (!block) continue;
1598
1593
  const groupId = xmlTagValue(block, "groupId");
@@ -1602,8 +1597,7 @@ function parsePomDependencies(xml) {
1602
1597
  }
1603
1598
  const directXml = xml.replace(/<dependencyManagement>[\s\S]*?<\/dependencyManagement>/g, "");
1604
1599
  const depRegex = /<dependency>\s*([\s\S]*?)<\/dependency>/g;
1605
- let match;
1606
- while ((match = depRegex.exec(directXml)) !== null) {
1600
+ for (const match of directXml.matchAll(depRegex)) {
1607
1601
  const block = match[1];
1608
1602
  const groupId = xmlTagValue(block, "groupId");
1609
1603
  const artifactId = xmlTagValue(block, "artifactId");
@@ -1714,8 +1708,7 @@ function parseVersionCatalog(content) {
1714
1708
  function parseGradleManifest(content, catalog) {
1715
1709
  const deps = [];
1716
1710
  const coordinateRegex = /\b(implementation|api|compileOnly|runtimeOnly|testImplementation|testRuntimeOnly|annotationProcessor)\s*(?:\(|\s)\s*["']([^"']+)["']/g;
1717
- let match;
1718
- while ((match = coordinateRegex.exec(content)) !== null) {
1711
+ for (const match of content.matchAll(coordinateRegex)) {
1719
1712
  const configuration = match[1];
1720
1713
  const value = match[2];
1721
1714
  if (!configuration || !value) continue;
@@ -1724,7 +1717,7 @@ function parseGradleManifest(content, catalog) {
1724
1717
  deps.push({ name: `${group}:${artifact}`, requested: version, scope: scopeForConfiguration(configuration) });
1725
1718
  }
1726
1719
  const aliasRegex = /\b(implementation|api|compileOnly|runtimeOnly|testImplementation|testRuntimeOnly)\s*\(\s*libs\.([\w.]+)\s*\)/g;
1727
- while ((match = aliasRegex.exec(content)) !== null) {
1720
+ for (const match of content.matchAll(aliasRegex)) {
1728
1721
  const configuration = match[1];
1729
1722
  const alias = match[2];
1730
1723
  if (!configuration || !alias) continue;
@@ -1796,8 +1789,7 @@ import { readFileSync as readFileSync6 } from "node:fs";
1796
1789
  function parseGemfile(content) {
1797
1790
  const gems = [];
1798
1791
  const gemRegex = /gem\s+['"]([^'"]+)['"]([^\n]*)/g;
1799
- let match;
1800
- while ((match = gemRegex.exec(content)) !== null) {
1792
+ for (const match of content.matchAll(gemRegex)) {
1801
1793
  const name = match[1];
1802
1794
  if (name === "rails" || name === "ruby") continue;
1803
1795
  const tail = match[2] ?? "";
@@ -1896,8 +1888,7 @@ function identityFromLocation(location) {
1896
1888
  function parsePackageSwift(content) {
1897
1889
  const deps = [];
1898
1890
  const packageRegex = /\.package\s*\(\s*(?:name:\s*["'][^"']+["'],\s*)?(url|path):\s*["']([^"']+)["']\s*(?:,\s*(?:from|exact|branch|revision):\s*["']([^"']+)["'])?\s*\)/g;
1899
- let match;
1900
- while ((match = packageRegex.exec(content)) !== null) {
1891
+ for (const match of content.matchAll(packageRegex)) {
1901
1892
  const location = match[2];
1902
1893
  if (!location) continue;
1903
1894
  deps.push({
@@ -1969,8 +1960,7 @@ import { readFileSync as readFileSync8 } from "node:fs";
1969
1960
  function parseMixExsDeps(content) {
1970
1961
  const deps = [];
1971
1962
  const depRegex = /\{:(\w+),\s*([^}]+)\}/g;
1972
- let match;
1973
- while ((match = depRegex.exec(content)) !== null) {
1963
+ for (const match of content.matchAll(depRegex)) {
1974
1964
  const name = match[1];
1975
1965
  const value = match[2];
1976
1966
  if (!name || !value) continue;
@@ -1983,8 +1973,7 @@ function parseMixExsDeps(content) {
1983
1973
  function parseMixLock(content) {
1984
1974
  const versions = /* @__PURE__ */ new Map();
1985
1975
  const lockRegex = /["']([\w-]+)["']\s*=>\s*\{:hex,\s*:[\w-]+,\s*["']([^"']+)["']/g;
1986
- let match;
1987
- while ((match = lockRegex.exec(content)) !== null) {
1976
+ for (const match of content.matchAll(lockRegex)) {
1988
1977
  versions.set(match[1], match[2]);
1989
1978
  }
1990
1979
  return versions;
@@ -2517,6 +2506,7 @@ async function applyPlan(plan, options = {}) {
2517
2506
  // src/registry/http-fetch.ts
2518
2507
  import { get as httpGet, request as httpRequest } from "node:http";
2519
2508
  import { get as httpsGet, request as httpsRequest } from "node:https";
2509
+ var DEFAULT_MAX_BODY_BYTES = 64 * 1024 * 1024;
2520
2510
  function retryAfterMs(headers, now = Date.now()) {
2521
2511
  const value = Array.isArray(headers["retry-after"]) ? headers["retry-after"][0] : headers["retry-after"];
2522
2512
  if (!value) return void 0;
@@ -2528,11 +2518,15 @@ function retryAfterMs(headers, now = Date.now()) {
2528
2518
  function delay(ms, signal) {
2529
2519
  if (signal?.aborted) return Promise.reject(new DOMException("Request aborted", "AbortError"));
2530
2520
  return new Promise((resolve3, reject) => {
2531
- const timer = setTimeout(resolve3, ms);
2532
- signal?.addEventListener("abort", () => {
2521
+ const onAbort = () => {
2533
2522
  clearTimeout(timer);
2534
2523
  reject(new DOMException("Request aborted", "AbortError"));
2535
- }, { once: true });
2524
+ };
2525
+ const timer = setTimeout(() => {
2526
+ signal?.removeEventListener("abort", onAbort);
2527
+ resolve3();
2528
+ }, ms);
2529
+ signal?.addEventListener("abort", onAbort, { once: true });
2536
2530
  });
2537
2531
  }
2538
2532
  function requestOnce(options) {
@@ -2547,11 +2541,20 @@ function requestOnce(options) {
2547
2541
  timeout: options.timeoutMs ?? 15e3
2548
2542
  };
2549
2543
  const isHttp = options.hostname === "localhost" || options.hostname === "127.0.0.1";
2544
+ const maxBodyBytes = options.maxBodyBytes ?? DEFAULT_MAX_BODY_BYTES;
2550
2545
  const callback = (response) => {
2551
2546
  let body = "";
2552
2547
  response.setEncoding?.("utf8");
2553
2548
  response.on("data", (chunk) => {
2554
2549
  body += chunk.toString();
2550
+ if (body.length > maxBodyBytes) {
2551
+ response.destroy();
2552
+ reject(
2553
+ new Error(
2554
+ `Response body exceeded ${maxBodyBytes} bytes for ${options.hostname}${options.path}`
2555
+ )
2556
+ );
2557
+ }
2555
2558
  });
2556
2559
  response.on("end", () => resolve3({
2557
2560
  statusCode: response.statusCode ?? 0,
@@ -2615,12 +2618,26 @@ function getCached(key) {
2615
2618
  }
2616
2619
  return entry.data;
2617
2620
  }
2621
+ var MAX_CACHE_ENTRIES = 512;
2622
+ function trimCache(now) {
2623
+ if (registryCache.size <= MAX_CACHE_ENTRIES) return;
2624
+ for (const [key, entry] of registryCache) {
2625
+ if (now > entry.expiresAt) registryCache.delete(key);
2626
+ }
2627
+ while (registryCache.size > MAX_CACHE_ENTRIES) {
2628
+ const oldest = registryCache.keys().next().value;
2629
+ if (oldest === void 0) break;
2630
+ registryCache.delete(oldest);
2631
+ }
2632
+ }
2618
2633
  function setCache(key, data, etag, ttlMs = DEFAULT_TTL_MS) {
2634
+ const now = Date.now();
2619
2635
  registryCache.set(key, {
2620
2636
  data,
2621
2637
  etag,
2622
- expiresAt: Date.now() + ttlMs
2638
+ expiresAt: now + ttlMs
2623
2639
  });
2640
+ trimCache(now);
2624
2641
  }
2625
2642
  function acquireHostSlot(host) {
2626
2643
  let concurrency = hostConcurrency.get(host);
@@ -3338,7 +3355,15 @@ var defaultAuditCommandRunner = (command, args, cwd) => new Promise((resolve3) =
3338
3355
  encoding: "utf8",
3339
3356
  timeout: 6e4,
3340
3357
  maxBuffer: 10 * 1024 * 1024,
3341
- windowsHide: true
3358
+ windowsHide: true,
3359
+ // On Windows the audit tools are batch shims — `npm`/`composer` resolve
3360
+ // to npm.cmd/composer.cmd, which execFile cannot launch without a shell
3361
+ // (it ignores PATHEXT), so it fails ENOENT and every Windows audit
3362
+ // silently reports "exited with code null" with zero advisories. Route
3363
+ // through the shell there. Safe because every command and argument here
3364
+ // is a static literal (conventional filenames only) — no user input
3365
+ // reaches the command line; the dynamic workspace path is passed as cwd.
3366
+ shell: process.platform === "win32"
3342
3367
  },
3343
3368
  (error, stdout, stderr) => {
3344
3369
  const exitCode = error?.code;
@@ -4266,7 +4291,11 @@ function createToolSearch(options = {}) {
4266
4291
  import { createRequire } from "node:module";
4267
4292
  import { mkdirSync, existsSync as existsSync2 } from "node:fs";
4268
4293
  import { dirname as dirname2, join as join9 } from "node:path";
4269
- import { wstackGlobalRoot } from "@wrongstack/core/utils";
4294
+ import {
4295
+ SageCachePragmas,
4296
+ withSqliteExperimentalWarningSuppressed,
4297
+ wstackGlobalRoot
4298
+ } from "@wrongstack/core/utils";
4270
4299
 
4271
4300
  // src/store/schema.ts
4272
4301
  var SCHEMA_VERSION = 1;
@@ -4337,23 +4366,10 @@ function applySchema(db) {
4337
4366
 
4338
4367
  // src/store/sqlite.ts
4339
4368
  var DatabaseSyncCtor;
4340
- var SQLITE_EXPERIMENTAL_WARNING = "SQLite is an experimental feature and might change at any time";
4341
4369
  function loadDatabaseSync() {
4342
4370
  if (DatabaseSyncCtor) return DatabaseSyncCtor;
4343
- const originalEmitWarning = process.emitWarning;
4344
- const forwardWarning = originalEmitWarning.bind(process);
4345
- process.emitWarning = ((warning, ...rest) => {
4346
- const message = typeof warning === "string" ? warning : warning instanceof Error ? warning.message : "";
4347
- const typeOrOptions = rest[0];
4348
- const warningType = typeof warning === "string" ? typeof typeOrOptions === "string" ? typeOrOptions : typeof typeOrOptions === "object" && typeOrOptions !== null && "type" in typeOrOptions && typeof typeOrOptions.type === "string" ? typeOrOptions.type : "" : warning instanceof Error ? warning.name : "";
4349
- const warningCode = typeof warning === "string" ? typeof typeOrOptions === "object" && typeOrOptions !== null && "code" in typeOrOptions && typeof typeOrOptions.code === "string" ? typeOrOptions.code : typeof rest[1] === "string" ? rest[1] : "" : warning instanceof Error && "code" in warning && typeof warning.code === "string" ? warning.code : "";
4350
- if (message === SQLITE_EXPERIMENTAL_WARNING && (warningType === "ExperimentalWarning" || warningCode === "ExperimentalWarning")) {
4351
- return;
4352
- }
4353
- forwardWarning(warning, ...rest);
4354
- });
4355
4371
  try {
4356
- try {
4372
+ return withSqliteExperimentalWarningSuppressed(() => {
4357
4373
  const require2 = createRequire(import.meta.url);
4358
4374
  const sqliteModule = require2("node:sqlite");
4359
4375
  if (typeof sqliteModule !== "object" || sqliteModule === null || !("DatabaseSync" in sqliteModule) || typeof sqliteModule.DatabaseSync !== "function") {
@@ -4361,15 +4377,13 @@ function loadDatabaseSync() {
4361
4377
  }
4362
4378
  DatabaseSyncCtor = sqliteModule.DatabaseSync;
4363
4379
  return DatabaseSyncCtor;
4364
- } catch (error) {
4365
- const message = error instanceof Error ? error.message : String(error);
4366
- throw new Error(
4367
- `TechStack SQLite store needs Node's built-in SQLite (node:sqlite), available since Node 22.5. This runtime doesn't provide it: ${message}`,
4368
- { cause: error }
4369
- );
4370
- }
4371
- } finally {
4372
- process.emitWarning = originalEmitWarning;
4380
+ });
4381
+ } catch (error) {
4382
+ const message = error instanceof Error ? error.message : String(error);
4383
+ throw new Error(
4384
+ `TechStack SQLite store needs Node's built-in SQLite (node:sqlite), available since Node 22.5. This runtime doesn't provide it: ${message}`,
4385
+ { cause: error }
4386
+ );
4373
4387
  }
4374
4388
  }
4375
4389
  var TechStackStore = class {
@@ -4389,8 +4403,9 @@ var TechStackStore = class {
4389
4403
  this.db.exec("PRAGMA synchronous = NORMAL;");
4390
4404
  this.db.exec("PRAGMA busy_timeout = 10000;");
4391
4405
  this.db.exec("PRAGMA temp_store = MEMORY;");
4392
- this.db.exec("PRAGMA cache_size = -32768;");
4393
- this.db.exec("PRAGMA mmap_size = 134217728;");
4406
+ const cache = SageCachePragmas();
4407
+ this.db.exec(`PRAGMA cache_size = -${cache.cacheSizeKiB};`);
4408
+ this.db.exec(`PRAGMA mmap_size = ${cache.mmapBytes};`);
4394
4409
  this.db.exec("PRAGMA foreign_keys = ON;");
4395
4410
  applySchema(this.db);
4396
4411
  }