evergreen-deprecation 0.3.0 → 0.4.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.
- package/README.md +1 -1
- package/dist/src/capabilities.js +8 -6
- package/dist/src/capabilities.js.map +1 -1
- package/dist/src/data-bundle.d.ts +1 -1
- package/dist/src/data-bundle.js +1 -1
- package/dist/src/data-bundle.js.map +1 -1
- package/dist/src/detectors/android/gradle-scan.d.ts +26 -0
- package/dist/src/detectors/android/gradle-scan.js +122 -0
- package/dist/src/detectors/android/gradle-scan.js.map +1 -0
- package/dist/src/detectors/android/parse-build-gradle.d.ts +33 -0
- package/dist/src/detectors/android/parse-build-gradle.js +183 -0
- package/dist/src/detectors/android/parse-build-gradle.js.map +1 -0
- package/dist/src/detectors/android/parse-libs-versions-toml.d.ts +31 -0
- package/dist/src/detectors/android/parse-libs-versions-toml.js +137 -0
- package/dist/src/detectors/android/parse-libs-versions-toml.js.map +1 -0
- package/dist/src/detectors/android/parse-settings-gradle.d.ts +31 -0
- package/dist/src/detectors/android/parse-settings-gradle.js +143 -0
- package/dist/src/detectors/android/parse-settings-gradle.js.map +1 -0
- package/dist/src/detectors/ci-images/index.d.ts +11 -0
- package/dist/src/detectors/ci-images/index.js +142 -0
- package/dist/src/detectors/ci-images/index.js.map +1 -0
- package/dist/src/detectors/ci-images/parse-azure-pipelines.d.ts +24 -0
- package/dist/src/detectors/ci-images/parse-azure-pipelines.js +76 -0
- package/dist/src/detectors/ci-images/parse-azure-pipelines.js.map +1 -0
- package/dist/src/detectors/ci-images/parse-circleci.d.ts +23 -0
- package/dist/src/detectors/ci-images/parse-circleci.js +90 -0
- package/dist/src/detectors/ci-images/parse-circleci.js.map +1 -0
- package/dist/src/detectors/cpp/parse-cmakelists.d.ts +54 -0
- package/dist/src/detectors/cpp/parse-cmakelists.js +265 -0
- package/dist/src/detectors/cpp/parse-cmakelists.js.map +1 -0
- package/dist/src/detectors/cpp/parse-conan.d.ts +50 -0
- package/dist/src/detectors/cpp/parse-conan.js +265 -0
- package/dist/src/detectors/cpp/parse-conan.js.map +1 -0
- package/dist/src/detectors/cpp/parse-vcpkg.d.ts +42 -0
- package/dist/src/detectors/cpp/parse-vcpkg.js +70 -0
- package/dist/src/detectors/cpp/parse-vcpkg.js.map +1 -0
- package/dist/src/detectors/dotnet/parse-global-json.js +2 -2
- package/dist/src/detectors/dotnet/parse-global-json.js.map +1 -1
- package/dist/src/detectors/dotnet/parse-packages-lock.js +2 -2
- package/dist/src/detectors/dotnet/parse-packages-lock.js.map +1 -1
- package/dist/src/detectors/index.js +4 -0
- package/dist/src/detectors/index.js.map +1 -1
- package/dist/src/detectors/{dotnet/json-lines.d.ts → json-lines.d.ts} +13 -3
- package/dist/src/detectors/{dotnet/json-lines.js → json-lines.js} +12 -5
- package/dist/src/detectors/{dotnet/json-lines.js.map → json-lines.js.map} +1 -1
- package/dist/src/detectors/npm.js +45 -3
- package/dist/src/detectors/npm.js.map +1 -1
- package/dist/src/detectors/php/parse-composer-json.d.ts +46 -0
- package/dist/src/detectors/php/parse-composer-json.js +84 -0
- package/dist/src/detectors/php/parse-composer-json.js.map +1 -0
- package/dist/src/detectors/php/parse-composer-lock.d.ts +45 -0
- package/dist/src/detectors/php/parse-composer-lock.js +96 -0
- package/dist/src/detectors/php/parse-composer-lock.js.map +1 -0
- package/dist/src/detectors/php/parse-php-runtime.d.ts +28 -0
- package/dist/src/detectors/php/parse-php-runtime.js +55 -0
- package/dist/src/detectors/php/parse-php-runtime.js.map +1 -0
- package/dist/src/detectors/ruby/index.d.ts +12 -0
- package/dist/src/detectors/ruby/index.js +197 -0
- package/dist/src/detectors/ruby/index.js.map +1 -0
- package/dist/src/detectors/ruby/parse-gemfile-lock.d.ts +30 -0
- package/dist/src/detectors/ruby/parse-gemfile-lock.js +55 -0
- package/dist/src/detectors/ruby/parse-gemfile-lock.js.map +1 -0
- package/dist/src/detectors/ruby/parse-gemfile.d.ts +29 -0
- package/dist/src/detectors/ruby/parse-gemfile.js +92 -0
- package/dist/src/detectors/ruby/parse-gemfile.js.map +1 -0
- package/dist/src/detectors/ruby/parse-gemspec.d.ts +19 -0
- package/dist/src/detectors/ruby/parse-gemspec.js +83 -0
- package/dist/src/detectors/ruby/parse-gemspec.js.map +1 -0
- package/dist/src/detectors/ruby/parse-ruby-runtime.d.ts +28 -0
- package/dist/src/detectors/ruby/parse-ruby-runtime.js +55 -0
- package/dist/src/detectors/ruby/parse-ruby-runtime.js.map +1 -0
- package/dist/src/detectors/swift/parse-package-resolved.d.ts +21 -0
- package/dist/src/detectors/swift/parse-package-resolved.js +33 -0
- package/dist/src/detectors/swift/parse-package-resolved.js.map +1 -0
- package/dist/src/detectors/swift/parse-package-swift.d.ts +38 -0
- package/dist/src/detectors/swift/parse-package-swift.js +383 -0
- package/dist/src/detectors/swift/parse-package-swift.js.map +1 -0
- package/dist/src/detectors/swift/parse-swift-toolchain.d.ts +21 -0
- package/dist/src/detectors/swift/parse-swift-toolchain.js +36 -0
- package/dist/src/detectors/swift/parse-swift-toolchain.js.map +1 -0
- package/dist/src/domain.d.ts +26 -4
- package/dist/src/domain.js +2 -0
- package/dist/src/domain.js.map +1 -1
- package/dist/src/sdk.js +18 -3
- package/dist/src/sdk.js.map +1 -1
- package/dist/src/source-usage.d.ts +13 -0
- package/dist/src/source-usage.js +549 -11
- package/dist/src/source-usage.js.map +1 -1
- package/dist/src/usage/javascript.d.ts +15 -0
- package/dist/src/usage/javascript.js +233 -0
- package/dist/src/usage/javascript.js.map +1 -0
- package/dist/src/usage/queries/javascript.scm +110 -0
- package/dist/src/usage/queries/typescript.scm +8 -0
- package/dist/src/usage/tree-sitter.d.ts +19 -0
- package/dist/src/usage/tree-sitter.js +84 -0
- package/dist/src/usage/tree-sitter.js.map +1 -0
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/examples/agents/copilot/.vscode/mcp.json +1 -1
- package/examples/agents/copilot/README.md +5 -4
- package/examples/agents/copilot/coding-agent-mcp.json +1 -1
- package/examples/agents/cursor/.cursor/mcp.json +1 -1
- package/examples/agents/cursor/README.md +4 -4
- package/examples/agents/gemini/README.md +1 -1
- package/examples/agents/gemini/gemini-extension.json +2 -2
- package/examples/agents/gemini/settings.json +1 -1
- package/examples/agents/kilo/README.md +4 -4
- package/examples/agents/kilo/kilo.jsonc +1 -1
- package/examples/capabilities.json +13 -11
- package/examples/registry.v2.symbol.example.json +76 -0
- package/package.json +3 -2
- package/registry/android.json +129 -0
- package/registry/ci-images.json +52 -0
- package/registry/cpp.json +249 -0
- package/registry/npm.json +1608 -18
- package/registry/php.json +144 -0
- package/registry/ruby.json +308 -0
- package/registry/swift.json +114 -0
- package/schemas/finding.v1.schema.json +1 -0
- package/schemas/public-validation.v1.schema.json +1 -1
- package/schemas/registry.v2.schema.json +33 -2
- package/schemas/scan.v1.schema.json +1 -0
package/README.md
CHANGED
package/dist/src/capabilities.js
CHANGED
|
@@ -57,7 +57,7 @@ const workflowCapabilityIds = [
|
|
|
57
57
|
];
|
|
58
58
|
const manifest = {
|
|
59
59
|
schemaVersion: "evergreen.capabilities.v1",
|
|
60
|
-
manifestVersion: "1.
|
|
60
|
+
manifestVersion: "1.2.0",
|
|
61
61
|
product: {
|
|
62
62
|
name: "Evergreen",
|
|
63
63
|
package: "evergreen-deprecation",
|
|
@@ -74,6 +74,7 @@ const manifest = {
|
|
|
74
74
|
unknownSchemaMajor: "reject",
|
|
75
75
|
},
|
|
76
76
|
ecosystems: [
|
|
77
|
+
{ id: "ci-images", status: "experimental", maturity: "experimental", detectorIds: ["ci-images"] },
|
|
77
78
|
{ id: "container", status: "experimental", maturity: "experimental", detectorIds: ["container"] },
|
|
78
79
|
{ id: "dotnet", status: "experimental", maturity: "experimental", detectorIds: ["dotnet"] },
|
|
79
80
|
{ id: "github-actions", status: "supported", maturity: "stable", detectorIds: ["github-actions"] },
|
|
@@ -84,6 +85,7 @@ const manifest = {
|
|
|
84
85
|
{ id: "nodejs", status: "supported", maturity: "stable", detectorIds: ["npm"] },
|
|
85
86
|
{ id: "npm", status: "supported", maturity: "stable", detectorIds: ["npm"] },
|
|
86
87
|
{ id: "python", status: "supported", maturity: "stable", detectorIds: ["python"] },
|
|
88
|
+
{ id: "ruby", status: "experimental", maturity: "experimental", detectorIds: ["ruby"] },
|
|
87
89
|
{ id: "rust", status: "experimental", maturity: "experimental", detectorIds: ["rust"] },
|
|
88
90
|
],
|
|
89
91
|
capabilities: [
|
|
@@ -92,35 +94,35 @@ const manifest = {
|
|
|
92
94
|
status: "supported",
|
|
93
95
|
version: "1",
|
|
94
96
|
description: "Scan a local repository with all built-in lifecycle detectors.",
|
|
95
|
-
ecosystems: ["container", "dotnet", "github-actions", "go", "java", "kubernetes", "nodejs", "npm", "python", "rust"],
|
|
97
|
+
ecosystems: ["ci-images", "container", "dotnet", "github-actions", "go", "java", "kubernetes", "nodejs", "npm", "python", "ruby", "rust"],
|
|
96
98
|
},
|
|
97
99
|
{
|
|
98
100
|
id: "deprecation.list",
|
|
99
101
|
status: "supported",
|
|
100
102
|
version: "1",
|
|
101
103
|
description: "List compact lifecycle findings from a fresh local scan.",
|
|
102
|
-
ecosystems: ["container", "dotnet", "github-actions", "go", "java", "kubernetes", "nodejs", "npm", "python", "rust"],
|
|
104
|
+
ecosystems: ["ci-images", "container", "dotnet", "github-actions", "go", "java", "kubernetes", "nodejs", "npm", "python", "ruby", "rust"],
|
|
103
105
|
},
|
|
104
106
|
{
|
|
105
107
|
id: "deprecation.explain",
|
|
106
108
|
status: "supported",
|
|
107
109
|
version: "1",
|
|
108
110
|
description: "Explain one evidence-backed finding by its exact identifier.",
|
|
109
|
-
ecosystems: ["container", "dotnet", "github-actions", "go", "java", "kubernetes", "nodejs", "npm", "python", "rust"],
|
|
111
|
+
ecosystems: ["ci-images", "container", "dotnet", "github-actions", "go", "java", "kubernetes", "nodejs", "npm", "python", "ruby", "rust"],
|
|
110
112
|
},
|
|
111
113
|
{
|
|
112
114
|
id: "migration.context.create",
|
|
113
115
|
status: "supported",
|
|
114
116
|
version: "1",
|
|
115
117
|
description: "Create a validated migration packet for one finding.",
|
|
116
|
-
ecosystems: ["container", "dotnet", "github-actions", "go", "java", "kubernetes", "nodejs", "npm", "python", "rust"],
|
|
118
|
+
ecosystems: ["ci-images", "container", "dotnet", "github-actions", "go", "java", "kubernetes", "nodejs", "npm", "python", "ruby", "rust"],
|
|
117
119
|
},
|
|
118
120
|
{
|
|
119
121
|
id: "migration.verify",
|
|
120
122
|
status: "supported",
|
|
121
123
|
version: "1",
|
|
122
124
|
description: "Re-scan and verify that an observed finding is absent.",
|
|
123
|
-
ecosystems: ["container", "dotnet", "github-actions", "go", "java", "kubernetes", "nodejs", "npm", "python", "rust"],
|
|
125
|
+
ecosystems: ["ci-images", "container", "dotnet", "github-actions", "go", "java", "kubernetes", "nodejs", "npm", "python", "ruby", "rust"],
|
|
124
126
|
},
|
|
125
127
|
{
|
|
126
128
|
id: "environment.doctor",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/capabilities.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/capabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare const DATA_BUNDLE_SCHEMA_VERSION: "evergreen.data-bundle.v1";
|
|
2
2
|
/** The registries a bundle carries, in the order they are listed. The SHA map is carried as kind "sha-map". */
|
|
3
|
-
export declare const BUNDLED_ECOSYSTEMS: readonly ["container", "dotnet", "github-actions", "go", "java", "kubernetes", "nodejs", "npm", "python", "rust"];
|
|
3
|
+
export declare const BUNDLED_ECOSYSTEMS: readonly ["ci-images", "container", "dotnet", "github-actions", "go", "java", "kubernetes", "nodejs", "npm", "python", "ruby", "rust"];
|
|
4
4
|
/**
|
|
5
5
|
* Who may sign a data bundle: the keyless Sigstore certificate must carry this OIDC issuer and an identity
|
|
6
6
|
* (the signing workflow's ref) that matches the pattern. The pattern names the repository, the workflow file, and
|
package/dist/src/data-bundle.js
CHANGED
|
@@ -4,7 +4,7 @@ import { resolve } from "node:path";
|
|
|
4
4
|
import { DEFAULT_MAX_REVIEW_AGE_DAYS, validateRegistryV2 } from "./registry.js";
|
|
5
5
|
export const DATA_BUNDLE_SCHEMA_VERSION = "evergreen.data-bundle.v1";
|
|
6
6
|
/** The registries a bundle carries, in the order they are listed. The SHA map is carried as kind "sha-map". */
|
|
7
|
-
export const BUNDLED_ECOSYSTEMS = ["container", "dotnet", "github-actions", "go", "java", "kubernetes", "nodejs", "npm", "python", "rust"];
|
|
7
|
+
export const BUNDLED_ECOSYSTEMS = ["ci-images", "container", "dotnet", "github-actions", "go", "java", "kubernetes", "nodejs", "npm", "python", "ruby", "rust"];
|
|
8
8
|
const SHA_MAP_PATH = "registry/github-actions-shas.json";
|
|
9
9
|
/**
|
|
10
10
|
* Who may sign a data bundle: the keyless Sigstore certificate must carry this OIDC issuer and an identity
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-bundle.js","sourceRoot":"","sources":["../../src/data-bundle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEhF,MAAM,CAAC,MAAM,0BAA0B,GAAG,0BAAmC,CAAC;AAE9E,+GAA+G;AAC/G,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"data-bundle.js","sourceRoot":"","sources":["../../src/data-bundle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared, linear Gradle source scanning for Android detectors.
|
|
3
|
+
*
|
|
4
|
+
* Masks comments and string literals to spaces (newlines and offsets unchanged) so
|
|
5
|
+
* keyword searches cannot see lookalikes inside strings or comments.
|
|
6
|
+
*/
|
|
7
|
+
export declare const MAXIMUM_INPUT_BYTES: number;
|
|
8
|
+
export declare const MAXIMUM_LINE_LENGTH = 4096;
|
|
9
|
+
export declare const MAXIMUM_DECLARATIONS = 5000;
|
|
10
|
+
/** Gradle/catalog version literal: digits first, optional dotted segments, optional pre-release/build suffix. No `+`, ranges, or named dynamics. */
|
|
11
|
+
export declare const LITERAL_VERSION: RegExp;
|
|
12
|
+
export declare function isLiteralVersion(value: string): boolean;
|
|
13
|
+
export declare function blankNonNewlines(text: string): string;
|
|
14
|
+
/**
|
|
15
|
+
* One linear scan: comments and string literal text (including quotes) become spaces;
|
|
16
|
+
* newlines and offsets stay unchanged. Returns undefined when a comment or string is unterminated.
|
|
17
|
+
*/
|
|
18
|
+
export declare function maskGradleSource(source: string): string | undefined;
|
|
19
|
+
/** Blank overlong lines in a masked view so they are not keyword-searched. */
|
|
20
|
+
export declare function blankOverlongLines(text: string): string;
|
|
21
|
+
export interface LineIndex {
|
|
22
|
+
lineAt(offset: number): number;
|
|
23
|
+
lineLengthAt(offset: number): number;
|
|
24
|
+
}
|
|
25
|
+
/** 1-based line lookup over a text whose newlines match the original source. */
|
|
26
|
+
export declare function lineIndex(text: string): LineIndex;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared, linear Gradle source scanning for Android detectors.
|
|
3
|
+
*
|
|
4
|
+
* Masks comments and string literals to spaces (newlines and offsets unchanged) so
|
|
5
|
+
* keyword searches cannot see lookalikes inside strings or comments.
|
|
6
|
+
*/
|
|
7
|
+
export const MAXIMUM_INPUT_BYTES = 1024 * 1024;
|
|
8
|
+
export const MAXIMUM_LINE_LENGTH = 4096;
|
|
9
|
+
export const MAXIMUM_DECLARATIONS = 5000;
|
|
10
|
+
/** Gradle/catalog version literal: digits first, optional dotted segments, optional pre-release/build suffix. No `+`, ranges, or named dynamics. */
|
|
11
|
+
export const LITERAL_VERSION = /^\d+(?:\.\d+)*(?:[-.][0-9A-Za-z.]+)?$/;
|
|
12
|
+
export function isLiteralVersion(value) {
|
|
13
|
+
return LITERAL_VERSION.test(value);
|
|
14
|
+
}
|
|
15
|
+
export function blankNonNewlines(text) {
|
|
16
|
+
return text.replace(/[^\n]/g, " ");
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* One linear scan: comments and string literal text (including quotes) become spaces;
|
|
20
|
+
* newlines and offsets stay unchanged. Returns undefined when a comment or string is unterminated.
|
|
21
|
+
*/
|
|
22
|
+
export function maskGradleSource(source) {
|
|
23
|
+
const chunks = [];
|
|
24
|
+
let index = 0;
|
|
25
|
+
while (index < source.length) {
|
|
26
|
+
if (source.startsWith("//", index)) {
|
|
27
|
+
const end = source.indexOf("\n", index);
|
|
28
|
+
const stop = end < 0 ? source.length : end;
|
|
29
|
+
chunks.push(blankNonNewlines(source.slice(index, stop)));
|
|
30
|
+
index = stop;
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
if (source.startsWith("/*", index)) {
|
|
34
|
+
const end = source.indexOf("*/", index + 2);
|
|
35
|
+
if (end < 0)
|
|
36
|
+
return undefined;
|
|
37
|
+
chunks.push(blankNonNewlines(source.slice(index, end + 2)));
|
|
38
|
+
index = end + 2;
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
if (source.startsWith('"""', index) || source.startsWith("'''", index)) {
|
|
42
|
+
const quote = source.slice(index, index + 3);
|
|
43
|
+
const end = source.indexOf(quote, index + 3);
|
|
44
|
+
if (end < 0)
|
|
45
|
+
return undefined;
|
|
46
|
+
chunks.push(blankNonNewlines(source.slice(index, end + 3)));
|
|
47
|
+
index = end + 3;
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
const quoteCode = source.charCodeAt(index);
|
|
51
|
+
if (quoteCode === 0x22 || quoteCode === 0x27) {
|
|
52
|
+
let position = index + 1;
|
|
53
|
+
while (position < source.length) {
|
|
54
|
+
const code = source.charCodeAt(position);
|
|
55
|
+
if (code === 0x0a)
|
|
56
|
+
break;
|
|
57
|
+
if (code === 0x5c) {
|
|
58
|
+
position += 2;
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
if (code === quoteCode) {
|
|
62
|
+
chunks.push(blankNonNewlines(source.slice(index, position + 1)));
|
|
63
|
+
index = position + 1;
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
position++;
|
|
67
|
+
}
|
|
68
|
+
if (position >= source.length || source.charCodeAt(position) === 0x0a)
|
|
69
|
+
return undefined;
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
const plainStart = index;
|
|
73
|
+
while (index < source.length) {
|
|
74
|
+
const code = source.charCodeAt(index);
|
|
75
|
+
if (code === 0x2f) {
|
|
76
|
+
const next = source.charCodeAt(index + 1);
|
|
77
|
+
if (next === 0x2f || next === 0x2a)
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
else if (code === 0x22 || code === 0x27) {
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
index++;
|
|
84
|
+
}
|
|
85
|
+
if (index > plainStart)
|
|
86
|
+
chunks.push(source.slice(plainStart, index));
|
|
87
|
+
}
|
|
88
|
+
return chunks.join("");
|
|
89
|
+
}
|
|
90
|
+
/** Blank overlong lines in a masked view so they are not keyword-searched. */
|
|
91
|
+
export function blankOverlongLines(text) {
|
|
92
|
+
return text
|
|
93
|
+
.split("\n")
|
|
94
|
+
.map((line) => (line.length > MAXIMUM_LINE_LENGTH ? " ".repeat(line.length) : line))
|
|
95
|
+
.join("\n");
|
|
96
|
+
}
|
|
97
|
+
/** 1-based line lookup over a text whose newlines match the original source. */
|
|
98
|
+
export function lineIndex(text) {
|
|
99
|
+
const lineStarts = [0];
|
|
100
|
+
for (let index = text.indexOf("\n"); index >= 0; index = text.indexOf("\n", index + 1))
|
|
101
|
+
lineStarts.push(index + 1);
|
|
102
|
+
const lineAt = (offset) => {
|
|
103
|
+
let low = 0;
|
|
104
|
+
let high = lineStarts.length - 1;
|
|
105
|
+
while (low < high) {
|
|
106
|
+
const mid = (low + high + 1) >> 1;
|
|
107
|
+
if (lineStarts[mid] <= offset)
|
|
108
|
+
low = mid;
|
|
109
|
+
else
|
|
110
|
+
high = mid - 1;
|
|
111
|
+
}
|
|
112
|
+
return low + 1;
|
|
113
|
+
};
|
|
114
|
+
const lineLengthAt = (offset) => {
|
|
115
|
+
const line = lineAt(offset) - 1;
|
|
116
|
+
const start = lineStarts[line];
|
|
117
|
+
const end = line + 1 < lineStarts.length ? lineStarts[line + 1] - 1 : text.length;
|
|
118
|
+
return end - start;
|
|
119
|
+
};
|
|
120
|
+
return { lineAt, lineLengthAt };
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=gradle-scan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gradle-scan.js","sourceRoot":"","sources":["../../../../src/detectors/android/gradle-scan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure, bounded parser for Android SDK settings in `build.gradle` and `build.gradle.kts`.
|
|
3
|
+
*
|
|
4
|
+
* Reads only literal assignments inside an `android { ... }` block (including nested
|
|
5
|
+
* `defaultConfig`):
|
|
6
|
+
*
|
|
7
|
+
* - `compileSdk`, `minSdk`, `targetSdk` as a bare or quoted integer (`34`, `"34"`, `= 34`);
|
|
8
|
+
* - `buildToolsVersion` as a quoted version string (`"34.0.0"`, `= "34.0.0"`).
|
|
9
|
+
*
|
|
10
|
+
* Unsupported / skipped (returns nothing for that site, not an error):
|
|
11
|
+
* - values outside an `android` block;
|
|
12
|
+
* - property references, version-catalog calls, string interpolation (`$`);
|
|
13
|
+
* - method-call forms such as `compileSdk(34)` or `minSdk(21)`;
|
|
14
|
+
* - legacy Groovy names `compileSdkVersion` / `minSdkVersion` / `targetSdkVersion`
|
|
15
|
+
* (only the four names above are in scope for this parser);
|
|
16
|
+
* - receiver / ext properties such as `ext.minSdk` or `foo.compileSdk`;
|
|
17
|
+
* - lookalike text inside string literals or comments;
|
|
18
|
+
* - Groovy/Kotlin forms that are not a single literal on one line;
|
|
19
|
+
* - Kotlin string templates that confuse the quote scanner (unterminated or nested
|
|
20
|
+
* `$"..."` forms the scanner cannot pair): the whole file yields `[]`.
|
|
21
|
+
*
|
|
22
|
+
* An unterminated comment or string makes the file unreadable: the parser returns `[]`.
|
|
23
|
+
*/
|
|
24
|
+
import { MAXIMUM_DECLARATIONS, MAXIMUM_INPUT_BYTES, MAXIMUM_LINE_LENGTH } from "./gradle-scan.js";
|
|
25
|
+
export { MAXIMUM_DECLARATIONS, MAXIMUM_INPUT_BYTES, MAXIMUM_LINE_LENGTH };
|
|
26
|
+
export type AndroidSdkKind = "compileSdk" | "minSdk" | "targetSdk" | "buildToolsVersion";
|
|
27
|
+
export interface AndroidSdkDeclaration {
|
|
28
|
+
kind: AndroidSdkKind;
|
|
29
|
+
value: string;
|
|
30
|
+
line: number;
|
|
31
|
+
}
|
|
32
|
+
/** Parse an Android Gradle build script without file, network, or process I/O. */
|
|
33
|
+
export declare function parseAndroidBuildGradle(contents: string): AndroidSdkDeclaration[];
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure, bounded parser for Android SDK settings in `build.gradle` and `build.gradle.kts`.
|
|
3
|
+
*
|
|
4
|
+
* Reads only literal assignments inside an `android { ... }` block (including nested
|
|
5
|
+
* `defaultConfig`):
|
|
6
|
+
*
|
|
7
|
+
* - `compileSdk`, `minSdk`, `targetSdk` as a bare or quoted integer (`34`, `"34"`, `= 34`);
|
|
8
|
+
* - `buildToolsVersion` as a quoted version string (`"34.0.0"`, `= "34.0.0"`).
|
|
9
|
+
*
|
|
10
|
+
* Unsupported / skipped (returns nothing for that site, not an error):
|
|
11
|
+
* - values outside an `android` block;
|
|
12
|
+
* - property references, version-catalog calls, string interpolation (`$`);
|
|
13
|
+
* - method-call forms such as `compileSdk(34)` or `minSdk(21)`;
|
|
14
|
+
* - legacy Groovy names `compileSdkVersion` / `minSdkVersion` / `targetSdkVersion`
|
|
15
|
+
* (only the four names above are in scope for this parser);
|
|
16
|
+
* - receiver / ext properties such as `ext.minSdk` or `foo.compileSdk`;
|
|
17
|
+
* - lookalike text inside string literals or comments;
|
|
18
|
+
* - Groovy/Kotlin forms that are not a single literal on one line;
|
|
19
|
+
* - Kotlin string templates that confuse the quote scanner (unterminated or nested
|
|
20
|
+
* `$"..."` forms the scanner cannot pair): the whole file yields `[]`.
|
|
21
|
+
*
|
|
22
|
+
* An unterminated comment or string makes the file unreadable: the parser returns `[]`.
|
|
23
|
+
*/
|
|
24
|
+
import { MAXIMUM_DECLARATIONS, MAXIMUM_INPUT_BYTES, MAXIMUM_LINE_LENGTH, blankOverlongLines, lineIndex, maskGradleSource, } from "./gradle-scan.js";
|
|
25
|
+
export { MAXIMUM_DECLARATIONS, MAXIMUM_INPUT_BYTES, MAXIMUM_LINE_LENGTH };
|
|
26
|
+
/** Half-open `[start, end)` spans of each `android { ... }` block (outer braces included). */
|
|
27
|
+
function androidBlocks(masked) {
|
|
28
|
+
const blocks = [];
|
|
29
|
+
const opener = /\bandroid\b\s*\{/g;
|
|
30
|
+
for (const match of masked.matchAll(opener)) {
|
|
31
|
+
const openBrace = match.index + match[0].length - 1;
|
|
32
|
+
let depth = 1;
|
|
33
|
+
let index = openBrace + 1;
|
|
34
|
+
for (; index < masked.length && depth > 0; index++) {
|
|
35
|
+
const character = masked[index];
|
|
36
|
+
if (character === "{")
|
|
37
|
+
depth++;
|
|
38
|
+
else if (character === "}" && --depth === 0) {
|
|
39
|
+
blocks.push([openBrace, index + 1]);
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return blocks;
|
|
45
|
+
}
|
|
46
|
+
// Keyword only — do not consume trailing whitespace here. On the masked view, blanked
|
|
47
|
+
// string literals are spaces; swallowing them would skip past the real RHS in the original.
|
|
48
|
+
const KEYWORD = /(?<!\.)\b(compileSdk|minSdk|targetSdk|buildToolsVersion)\b/g;
|
|
49
|
+
function isSpace(code) {
|
|
50
|
+
return code === 0x20 || code === 0x09 || code === 0x0d;
|
|
51
|
+
}
|
|
52
|
+
/** True when `offset` starts `//` or `/*`. */
|
|
53
|
+
function atComment(source, offset) {
|
|
54
|
+
return source.startsWith("//", offset) || source.startsWith("/*", offset);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Read a literal RHS from the original source after a keyword match.
|
|
58
|
+
* Accepts an optional `=`. Stops at newline, `;`, `}`, or a comment start.
|
|
59
|
+
* Method-call `(` forms yield undefined.
|
|
60
|
+
*/
|
|
61
|
+
function readLiteral(source, offset, kind) {
|
|
62
|
+
let index = offset;
|
|
63
|
+
while (index < source.length && isSpace(source.charCodeAt(index)))
|
|
64
|
+
index++;
|
|
65
|
+
if (index < source.length && source.charCodeAt(index) === 0x3d) {
|
|
66
|
+
index++;
|
|
67
|
+
while (index < source.length && isSpace(source.charCodeAt(index)))
|
|
68
|
+
index++;
|
|
69
|
+
}
|
|
70
|
+
if (index >= source.length || atComment(source, index))
|
|
71
|
+
return undefined;
|
|
72
|
+
const startCode = source.charCodeAt(index);
|
|
73
|
+
if (startCode === 0x28)
|
|
74
|
+
return undefined; // method-call form, e.g. compileSdk(34)
|
|
75
|
+
if (startCode === 0x0a || startCode === 0x3b || startCode === 0x7d)
|
|
76
|
+
return undefined;
|
|
77
|
+
if (kind === "buildToolsVersion") {
|
|
78
|
+
if (startCode !== 0x22 && startCode !== 0x27)
|
|
79
|
+
return undefined;
|
|
80
|
+
const quote = source[index];
|
|
81
|
+
let position = index + 1;
|
|
82
|
+
let value = "";
|
|
83
|
+
while (position < source.length) {
|
|
84
|
+
const code = source.charCodeAt(position);
|
|
85
|
+
if (code === 0x0a)
|
|
86
|
+
return undefined;
|
|
87
|
+
if (code === 0x5c) {
|
|
88
|
+
if (position + 1 >= source.length)
|
|
89
|
+
return undefined;
|
|
90
|
+
value += source[position + 1];
|
|
91
|
+
position += 2;
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
if (source[position] === quote) {
|
|
95
|
+
position++;
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
value += source[position];
|
|
99
|
+
position++;
|
|
100
|
+
}
|
|
101
|
+
if (position > source.length || source[position - 1] !== quote)
|
|
102
|
+
return undefined;
|
|
103
|
+
if (value.includes("$") || !/^\d+(?:\.\d+)*$/.test(value))
|
|
104
|
+
return undefined;
|
|
105
|
+
return value;
|
|
106
|
+
}
|
|
107
|
+
if (startCode === 0x22 || startCode === 0x27) {
|
|
108
|
+
const quote = source[index];
|
|
109
|
+
let position = index + 1;
|
|
110
|
+
let value = "";
|
|
111
|
+
while (position < source.length) {
|
|
112
|
+
const code = source.charCodeAt(position);
|
|
113
|
+
if (code === 0x0a)
|
|
114
|
+
return undefined;
|
|
115
|
+
if (code === 0x5c) {
|
|
116
|
+
if (position + 1 >= source.length)
|
|
117
|
+
return undefined;
|
|
118
|
+
value += source[position + 1];
|
|
119
|
+
position += 2;
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
if (source[position] === quote) {
|
|
123
|
+
position++;
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
value += source[position];
|
|
127
|
+
position++;
|
|
128
|
+
}
|
|
129
|
+
if (value.includes("$") || !/^\d+$/.test(value))
|
|
130
|
+
return undefined;
|
|
131
|
+
return value;
|
|
132
|
+
}
|
|
133
|
+
if (startCode < 0x30 || startCode > 0x39)
|
|
134
|
+
return undefined;
|
|
135
|
+
let position = index;
|
|
136
|
+
while (position < source.length) {
|
|
137
|
+
const code = source.charCodeAt(position);
|
|
138
|
+
if (code < 0x30 || code > 0x39)
|
|
139
|
+
break;
|
|
140
|
+
position++;
|
|
141
|
+
}
|
|
142
|
+
const value = source.slice(index, position);
|
|
143
|
+
let trail = position;
|
|
144
|
+
while (trail < source.length && isSpace(source.charCodeAt(trail)))
|
|
145
|
+
trail++;
|
|
146
|
+
if (trail < source.length) {
|
|
147
|
+
const next = source.charCodeAt(trail);
|
|
148
|
+
if (next !== 0x0a && next !== 0x3b && next !== 0x7d && !atComment(source, trail))
|
|
149
|
+
return undefined;
|
|
150
|
+
}
|
|
151
|
+
return value;
|
|
152
|
+
}
|
|
153
|
+
/** Parse an Android Gradle build script without file, network, or process I/O. */
|
|
154
|
+
export function parseAndroidBuildGradle(contents) {
|
|
155
|
+
if (Buffer.byteLength(contents, "utf8") > MAXIMUM_INPUT_BYTES || contents.includes("\0"))
|
|
156
|
+
return [];
|
|
157
|
+
const maskedRaw = maskGradleSource(contents);
|
|
158
|
+
if (maskedRaw === undefined)
|
|
159
|
+
return [];
|
|
160
|
+
const masked = blankOverlongLines(maskedRaw);
|
|
161
|
+
const { lineAt, lineLengthAt } = lineIndex(masked);
|
|
162
|
+
const found = [];
|
|
163
|
+
const add = (declaration) => {
|
|
164
|
+
if (found.length < MAXIMUM_DECLARATIONS)
|
|
165
|
+
found.push(declaration);
|
|
166
|
+
};
|
|
167
|
+
for (const [blockStart, blockEnd] of androidBlocks(masked)) {
|
|
168
|
+
const block = masked.slice(blockStart, blockEnd);
|
|
169
|
+
KEYWORD.lastIndex = 0;
|
|
170
|
+
for (const match of block.matchAll(KEYWORD)) {
|
|
171
|
+
const absolute = blockStart + match.index;
|
|
172
|
+
if (lineLengthAt(absolute) > MAXIMUM_LINE_LENGTH)
|
|
173
|
+
continue;
|
|
174
|
+
const kind = match[1];
|
|
175
|
+
const value = readLiteral(contents, absolute + match[0].length, kind);
|
|
176
|
+
if (value === undefined)
|
|
177
|
+
continue;
|
|
178
|
+
add({ kind, value, line: lineAt(absolute) });
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
return found.sort((left, right) => left.line - right.line || left.kind.localeCompare(right.kind));
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=parse-build-gradle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-build-gradle.js","sourceRoot":"","sources":["../../../../src/detectors/android/parse-build-gradle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure, bounded parser for Android-related pins in Gradle `libs.versions.toml`.
|
|
3
|
+
*
|
|
4
|
+
* Reads only literal `[versions]` entries:
|
|
5
|
+
*
|
|
6
|
+
* - `agp = "…"` / `agp = '…'` → kind `agp`;
|
|
7
|
+
* - `kotlin = "…"` / `kotlin = '…'` → kind `kotlin`.
|
|
8
|
+
*
|
|
9
|
+
* Unsupported / skipped (returns nothing for that site, not an error):
|
|
10
|
+
* - keys other than `agp` / `kotlin`;
|
|
11
|
+
* - values outside `[versions]` (including `[plugins]` `version.ref` / inline `version`);
|
|
12
|
+
* - dynamic / ranged / named versions (`8.+`, `latest.release`, `[8.0,9.0)`);
|
|
13
|
+
* - lookalike text inside comments or other string values.
|
|
14
|
+
*
|
|
15
|
+
* String rules for this scanner:
|
|
16
|
+
* - one-line basic (`"…"`) and literal (`'…'`) strings are supported;
|
|
17
|
+
* - unterminated strings make the file unreadable (`[]`);
|
|
18
|
+
* - multi-line strings (`"""` / `'''`) are unsupported and yield `[]` for the file.
|
|
19
|
+
*
|
|
20
|
+
* Array-of-tables headers (`[[…]]`) end the `[versions]` section like any other table.
|
|
21
|
+
*/
|
|
22
|
+
import { MAXIMUM_DECLARATIONS, MAXIMUM_INPUT_BYTES, MAXIMUM_LINE_LENGTH } from "./gradle-scan.js";
|
|
23
|
+
export { MAXIMUM_DECLARATIONS, MAXIMUM_INPUT_BYTES, MAXIMUM_LINE_LENGTH };
|
|
24
|
+
export type AndroidVersionCatalogKind = "agp" | "kotlin";
|
|
25
|
+
export interface AndroidVersionCatalogDeclaration {
|
|
26
|
+
kind: AndroidVersionCatalogKind;
|
|
27
|
+
value: string;
|
|
28
|
+
line: number;
|
|
29
|
+
}
|
|
30
|
+
/** Parse `libs.versions.toml` without file, network, or process I/O. */
|
|
31
|
+
export declare function parseAndroidLibsVersionsToml(contents: string): AndroidVersionCatalogDeclaration[];
|