@wrongstack/techstack 0.295.0 → 0.295.1
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/dist/adapters/dotnet.d.ts.map +1 -1
- package/dist/adapters/elixir.d.ts.map +1 -1
- package/dist/adapters/go.d.ts.map +1 -1
- package/dist/adapters/gradle.d.ts.map +1 -1
- package/dist/adapters/maven.d.ts.map +1 -1
- package/dist/adapters/parse-utils.d.ts.map +1 -1
- package/dist/adapters/ruby.d.ts.map +1 -1
- package/dist/adapters/swift.d.ts.map +1 -1
- package/dist/advisory/native-audit.d.ts.map +1 -1
- package/dist/index.js +39 -28
- package/dist/index.js.map +2 -2
- package/dist/registry/http-fetch.d.ts +3 -0
- package/dist/registry/http-fetch.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -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;
|
|
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;
|
|
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;
|
|
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;
|
|
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;
|
|
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,
|
|
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;
|
|
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;
|
|
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;
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
2532
|
-
signal?.addEventListener("abort", () => {
|
|
2521
|
+
const onAbort = () => {
|
|
2533
2522
|
clearTimeout(timer);
|
|
2534
2523
|
reject(new DOMException("Request aborted", "AbortError"));
|
|
2535
|
-
}
|
|
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,
|
|
@@ -3338,7 +3341,15 @@ var defaultAuditCommandRunner = (command, args, cwd) => new Promise((resolve3) =
|
|
|
3338
3341
|
encoding: "utf8",
|
|
3339
3342
|
timeout: 6e4,
|
|
3340
3343
|
maxBuffer: 10 * 1024 * 1024,
|
|
3341
|
-
windowsHide: true
|
|
3344
|
+
windowsHide: true,
|
|
3345
|
+
// On Windows the audit tools are batch shims — `npm`/`composer` resolve
|
|
3346
|
+
// to npm.cmd/composer.cmd, which execFile cannot launch without a shell
|
|
3347
|
+
// (it ignores PATHEXT), so it fails ENOENT and every Windows audit
|
|
3348
|
+
// silently reports "exited with code null" with zero advisories. Route
|
|
3349
|
+
// through the shell there. Safe because every command and argument here
|
|
3350
|
+
// is a static literal (conventional filenames only) — no user input
|
|
3351
|
+
// reaches the command line; the dynamic workspace path is passed as cwd.
|
|
3352
|
+
shell: process.platform === "win32"
|
|
3342
3353
|
},
|
|
3343
3354
|
(error, stdout, stderr) => {
|
|
3344
3355
|
const exitCode = error?.code;
|