@adhisang/minecraft-modding-mcp 4.0.0 → 4.1.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/CHANGELOG.md +47 -0
- package/README.md +36 -23
- package/dist/build-suggested-call.d.ts +29 -0
- package/dist/build-suggested-call.js +58 -0
- package/dist/cache-registry.d.ts +3 -1
- package/dist/cache-registry.js +50 -6
- package/dist/entry-tools/analyze-symbol-service.d.ts +16 -16
- package/dist/entry-tools/batch-class-members-service.d.ts +34 -0
- package/dist/entry-tools/batch-class-members-service.js +97 -0
- package/dist/entry-tools/batch-class-source-service.d.ts +37 -0
- package/dist/entry-tools/batch-class-source-service.js +100 -0
- package/dist/entry-tools/batch-mappings-service.d.ts +36 -0
- package/dist/entry-tools/batch-mappings-service.js +66 -0
- package/dist/entry-tools/batch-runner.d.ts +72 -0
- package/dist/entry-tools/batch-runner.js +90 -0
- package/dist/entry-tools/batch-symbol-exists-service.d.ts +46 -0
- package/dist/entry-tools/batch-symbol-exists-service.js +113 -0
- package/dist/entry-tools/compare-minecraft-service.d.ts +6 -6
- package/dist/entry-tools/inspect-minecraft/handlers/artifact.d.ts +5 -0
- package/dist/entry-tools/inspect-minecraft/handlers/artifact.js +83 -0
- package/dist/entry-tools/inspect-minecraft/handlers/class-members.d.ts +6 -0
- package/dist/entry-tools/inspect-minecraft/handlers/class-members.js +80 -0
- package/dist/entry-tools/inspect-minecraft/handlers/class-overview.d.ts +5 -0
- package/dist/entry-tools/inspect-minecraft/handlers/class-overview.js +248 -0
- package/dist/entry-tools/inspect-minecraft/handlers/class-source.d.ts +5 -0
- package/dist/entry-tools/inspect-minecraft/handlers/class-source.js +60 -0
- package/dist/entry-tools/inspect-minecraft/handlers/file.d.ts +5 -0
- package/dist/entry-tools/inspect-minecraft/handlers/file.js +54 -0
- package/dist/entry-tools/inspect-minecraft/handlers/list-files.d.ts +5 -0
- package/dist/entry-tools/inspect-minecraft/handlers/list-files.js +100 -0
- package/dist/entry-tools/inspect-minecraft/handlers/search.d.ts +5 -0
- package/dist/entry-tools/inspect-minecraft/handlers/search.js +155 -0
- package/dist/entry-tools/inspect-minecraft/handlers/versions.d.ts +6 -0
- package/dist/entry-tools/inspect-minecraft/handlers/versions.js +49 -0
- package/dist/entry-tools/inspect-minecraft/internal.d.ts +1042 -0
- package/dist/entry-tools/inspect-minecraft/internal.js +448 -0
- package/dist/entry-tools/inspect-minecraft-service.d.ts +193 -308
- package/dist/entry-tools/inspect-minecraft-service.js +20 -1244
- package/dist/entry-tools/manage-cache-service.d.ts +16 -16
- package/dist/entry-tools/validate-project/cases/access-transformer.d.ts +6 -0
- package/dist/entry-tools/validate-project/cases/access-transformer.js +106 -0
- package/dist/entry-tools/validate-project/cases/access-widener.d.ts +6 -0
- package/dist/entry-tools/validate-project/cases/access-widener.js +86 -0
- package/dist/entry-tools/validate-project/cases/mixin.d.ts +6 -0
- package/dist/entry-tools/validate-project/cases/mixin.js +90 -0
- package/dist/entry-tools/validate-project/cases/project-summary.d.ts +97 -0
- package/dist/entry-tools/validate-project/cases/project-summary.js +346 -0
- package/dist/entry-tools/validate-project/internal.d.ts +135 -0
- package/dist/entry-tools/validate-project/internal.js +287 -0
- package/dist/entry-tools/validate-project-service.d.ts +63 -47
- package/dist/entry-tools/validate-project-service.js +12 -562
- package/dist/entry-tools/verify-mixin-target-service.d.ts +133 -0
- package/dist/entry-tools/verify-mixin-target-service.js +323 -0
- package/dist/error-mapping.d.ts +40 -0
- package/dist/error-mapping.js +139 -0
- package/dist/errors.d.ts +6 -0
- package/dist/errors.js +6 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +142 -1352
- package/dist/mapping/internal-types.d.ts +54 -0
- package/dist/mapping/internal-types.js +14 -0
- package/dist/mapping/loaders/mojang.d.ts +2 -0
- package/dist/mapping/loaders/mojang.js +64 -0
- package/dist/mapping/loaders/tiny-loom.d.ts +2 -0
- package/dist/mapping/loaders/tiny-loom.js +73 -0
- package/dist/mapping/loaders/tiny-maven.d.ts +2 -0
- package/dist/mapping/loaders/tiny-maven.js +104 -0
- package/dist/mapping/loaders/types.d.ts +14 -0
- package/dist/mapping/loaders/types.js +2 -0
- package/dist/mapping/lookup.d.ts +52 -0
- package/dist/mapping/lookup.js +496 -0
- package/dist/mapping/parsers/normalize.d.ts +10 -0
- package/dist/mapping/parsers/normalize.js +52 -0
- package/dist/mapping/parsers/proguard.d.ts +20 -0
- package/dist/mapping/parsers/proguard.js +138 -0
- package/dist/mapping/parsers/symbol-records.d.ts +27 -0
- package/dist/mapping/parsers/symbol-records.js +216 -0
- package/dist/mapping/parsers/tiny.d.ts +9 -0
- package/dist/mapping/parsers/tiny.js +96 -0
- package/dist/mapping/types.d.ts +147 -0
- package/dist/mapping/types.js +2 -0
- package/dist/mapping-pipeline-service.js +3 -2
- package/dist/mapping-service.d.ts +3 -144
- package/dist/mapping-service.js +19 -1201
- package/dist/mixin/access-validators.d.ts +9 -0
- package/dist/mixin/access-validators.js +257 -0
- package/dist/mixin/annotation-validators.d.ts +5 -0
- package/dist/mixin/annotation-validators.js +162 -0
- package/dist/mixin/helpers.d.ts +28 -0
- package/dist/mixin/helpers.js +315 -0
- package/dist/mixin/parsed-validator.d.ts +8 -0
- package/dist/mixin/parsed-validator.js +337 -0
- package/dist/mixin/types.d.ts +208 -0
- package/dist/mixin/types.js +28 -0
- package/dist/mixin-validator.d.ts +9 -201
- package/dist/mixin-validator.js +8 -1020
- package/dist/source/access-validate.d.ts +4 -0
- package/dist/source/access-validate.js +254 -0
- package/dist/source/artifact-resolver.d.ts +110 -0
- package/dist/source/artifact-resolver.js +1174 -0
- package/dist/source/cache-metrics.d.ts +26 -0
- package/dist/source/cache-metrics.js +172 -0
- package/dist/source/class-source/members-builder.d.ts +34 -0
- package/dist/source/class-source/members-builder.js +46 -0
- package/dist/source/class-source/snippet-builder.d.ts +19 -0
- package/dist/source/class-source/snippet-builder.js +46 -0
- package/dist/source/class-source-helpers.d.ts +34 -0
- package/dist/source/class-source-helpers.js +140 -0
- package/dist/source/class-source.d.ts +42 -0
- package/dist/source/class-source.js +883 -0
- package/dist/source/descriptor-utils.d.ts +6 -0
- package/dist/source/descriptor-utils.js +37 -0
- package/dist/source/file-access.d.ts +4 -0
- package/dist/source/file-access.js +102 -0
- package/dist/source/indexer.d.ts +82 -0
- package/dist/source/indexer.js +505 -0
- package/dist/source/lifecycle/diff-utils.d.ts +9 -0
- package/dist/source/lifecycle/diff-utils.js +107 -0
- package/dist/source/lifecycle/diff.d.ts +2 -0
- package/dist/source/lifecycle/diff.js +265 -0
- package/dist/source/lifecycle/mapping-helpers.d.ts +22 -0
- package/dist/source/lifecycle/mapping-helpers.js +327 -0
- package/dist/source/lifecycle/runtime-check.d.ts +2 -0
- package/dist/source/lifecycle/runtime-check.js +142 -0
- package/dist/source/lifecycle/trace.d.ts +2 -0
- package/dist/source/lifecycle/trace.js +231 -0
- package/dist/source/lifecycle.d.ts +4 -0
- package/dist/source/lifecycle.js +5 -0
- package/dist/source/search.d.ts +51 -0
- package/dist/source/search.js +676 -0
- package/dist/source/shared-utils.d.ts +6 -0
- package/dist/source/shared-utils.js +55 -0
- package/dist/source/state.d.ts +21 -0
- package/dist/source/state.js +19 -0
- package/dist/source/symbol-resolver.d.ts +3 -0
- package/dist/source/symbol-resolver.js +212 -0
- package/dist/source/validate-mixin/pipeline/mapping-health.d.ts +3 -0
- package/dist/source/validate-mixin/pipeline/mapping-health.js +41 -0
- package/dist/source/validate-mixin/pipeline/parse.d.ts +2 -0
- package/dist/source/validate-mixin/pipeline/parse.js +10 -0
- package/dist/source/validate-mixin/pipeline/resolve.d.ts +3 -0
- package/dist/source/validate-mixin/pipeline/resolve.js +78 -0
- package/dist/source/validate-mixin/pipeline/target-lookup.d.ts +6 -0
- package/dist/source/validate-mixin/pipeline/target-lookup.js +260 -0
- package/dist/source/validate-mixin/pipeline-context.d.ts +72 -0
- package/dist/source/validate-mixin/pipeline-context.js +93 -0
- package/dist/source/validate-mixin.d.ts +22 -0
- package/dist/source/validate-mixin.js +799 -0
- package/dist/source/workspace-target.d.ts +18 -0
- package/dist/source/workspace-target.js +305 -0
- package/dist/source-service.d.ts +147 -170
- package/dist/source-service.js +67 -6116
- package/dist/stage-emitter.d.ts +13 -0
- package/dist/stage-emitter.js +30 -0
- package/dist/stdio-supervisor.d.ts +61 -0
- package/dist/stdio-supervisor.js +326 -9
- package/dist/tool-contract-manifest.d.ts +1 -1
- package/dist/tool-contract-manifest.js +23 -6
- package/dist/tool-guidance.d.ts +82 -0
- package/dist/tool-guidance.js +734 -0
- package/dist/tool-schema-registry.d.ts +16 -0
- package/dist/tool-schema-registry.js +37 -0
- package/dist/tool-schemas.d.ts +3518 -0
- package/dist/tool-schemas.js +813 -0
- package/dist/types.d.ts +36 -0
- package/dist/version-service.js +7 -6
- package/dist/workspace-context-cache.d.ts +32 -0
- package/dist/workspace-context-cache.js +66 -0
- package/dist/workspace-mapping-service.d.ts +16 -0
- package/dist/workspace-mapping-service.js +173 -1
- package/docs/README-ja.md +414 -0
- package/docs/examples.md +483 -0
- package/docs/tool-reference.md +459 -0
- package/package.json +3 -2
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { SourceService } from "../source-service.js";
|
|
2
|
+
import type { ValidateAccessTransformerInput, ValidateAccessTransformerOutput, ValidateAccessWidenerInput, ValidateAccessWidenerOutput } from "../source-service.js";
|
|
3
|
+
export declare function validateAccessWidener(svc: SourceService, input: ValidateAccessWidenerInput): Promise<ValidateAccessWidenerOutput>;
|
|
4
|
+
export declare function validateAccessTransformer(svc: SourceService, input: ValidateAccessTransformerInput): Promise<ValidateAccessTransformerOutput>;
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
import { parseAccessTransformer } from "../access-transformer-parser.js";
|
|
2
|
+
import { parseAccessWidener } from "../access-widener-parser.js";
|
|
3
|
+
import { ERROR_CODES, createError } from "../errors.js";
|
|
4
|
+
import { validateParsedAccessTransformer, validateParsedAccessWidener } from "../mixin-validator.js";
|
|
5
|
+
import { normalizeMapping, normalizeOptionalString } from "./shared-utils.js";
|
|
6
|
+
function normalizeAccessWidenerNamespace(namespace) {
|
|
7
|
+
const normalized = namespace?.trim().toLowerCase();
|
|
8
|
+
if (!normalized) {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
if (normalized === "named") {
|
|
12
|
+
return "yarn";
|
|
13
|
+
}
|
|
14
|
+
if (normalized === "obfuscated" ||
|
|
15
|
+
normalized === "mojang" ||
|
|
16
|
+
normalized === "intermediary" ||
|
|
17
|
+
normalized === "yarn") {
|
|
18
|
+
return normalized;
|
|
19
|
+
}
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
function isSourceMappingNamespace(namespace) {
|
|
23
|
+
return (namespace === "obfuscated" ||
|
|
24
|
+
namespace === "mojang" ||
|
|
25
|
+
namespace === "intermediary" ||
|
|
26
|
+
namespace === "yarn");
|
|
27
|
+
}
|
|
28
|
+
export async function validateAccessWidener(svc, input) {
|
|
29
|
+
const version = input.version.trim();
|
|
30
|
+
if (!version) {
|
|
31
|
+
throw createError({ code: ERROR_CODES.INVALID_INPUT, message: "version must be non-empty." });
|
|
32
|
+
}
|
|
33
|
+
const content = input.content;
|
|
34
|
+
if (!content.trim()) {
|
|
35
|
+
throw createError({ code: ERROR_CODES.INVALID_INPUT, message: "content must be non-empty." });
|
|
36
|
+
}
|
|
37
|
+
const warnings = [];
|
|
38
|
+
const parsed = parseAccessWidener(content);
|
|
39
|
+
const headerNamespaceRaw = normalizeOptionalString(parsed.namespace);
|
|
40
|
+
const overrideMapping = input.mapping ? normalizeMapping(input.mapping) : undefined;
|
|
41
|
+
const headerNamespace = normalizeAccessWidenerNamespace(headerNamespaceRaw);
|
|
42
|
+
if (!headerNamespace && headerNamespaceRaw && !overrideMapping) {
|
|
43
|
+
warnings.push(`Unsupported access widener namespace "${headerNamespaceRaw}". Assuming intermediary.`);
|
|
44
|
+
}
|
|
45
|
+
const awNamespace = overrideMapping ?? headerNamespace ?? "intermediary";
|
|
46
|
+
if (overrideMapping && headerNamespace && overrideMapping !== headerNamespace) {
|
|
47
|
+
warnings.push(`Using mapping override "${overrideMapping}" instead of header namespace "${headerNamespaceRaw}".`);
|
|
48
|
+
}
|
|
49
|
+
const runtimeAware = input.projectPath != null || input.scope != null || input.preferProjectVersion === true;
|
|
50
|
+
let resolvedVersion = version;
|
|
51
|
+
let jarPath;
|
|
52
|
+
let lookupMapping = "obfuscated";
|
|
53
|
+
let provenance;
|
|
54
|
+
if (runtimeAware) {
|
|
55
|
+
provenance = await svc.resolveAccessWidenerRuntimeArtifact({
|
|
56
|
+
version,
|
|
57
|
+
awNamespace,
|
|
58
|
+
projectPath: input.projectPath,
|
|
59
|
+
scope: input.scope,
|
|
60
|
+
preferProjectVersion: input.preferProjectVersion
|
|
61
|
+
});
|
|
62
|
+
resolvedVersion = provenance.version;
|
|
63
|
+
jarPath = provenance.jarPath;
|
|
64
|
+
lookupMapping = provenance.mappingApplied;
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
({ jarPath } = await svc.versionService.resolveVersionJar(version));
|
|
68
|
+
}
|
|
69
|
+
const needsLookupMapping = awNamespace !== lookupMapping;
|
|
70
|
+
// Collect unique class FQNs from entries
|
|
71
|
+
const classFqns = new Set();
|
|
72
|
+
for (const entry of parsed.entries) {
|
|
73
|
+
const fqn = entry.target.replace(/\//g, ".");
|
|
74
|
+
classFqns.add(fqn);
|
|
75
|
+
}
|
|
76
|
+
const membersByClass = new Map();
|
|
77
|
+
for (const fqn of classFqns) {
|
|
78
|
+
let lookupFqn = fqn;
|
|
79
|
+
if (needsLookupMapping) {
|
|
80
|
+
try {
|
|
81
|
+
const mapped = await svc.mappingService.findMapping({
|
|
82
|
+
version: resolvedVersion,
|
|
83
|
+
kind: "class",
|
|
84
|
+
name: fqn,
|
|
85
|
+
sourceMapping: awNamespace,
|
|
86
|
+
targetMapping: lookupMapping,
|
|
87
|
+
sourcePriority: input.sourcePriority,
|
|
88
|
+
projectPath: input.projectPath
|
|
89
|
+
});
|
|
90
|
+
if (mapped.resolved && mapped.resolvedSymbol) {
|
|
91
|
+
lookupFqn = mapped.resolvedSymbol.name;
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
warnings.push(`Could not map class "${fqn}" from ${awNamespace} to ${lookupMapping}.`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
warnings.push(`Mapping lookup failed for class "${fqn}".`);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
try {
|
|
102
|
+
const sig = await svc.explorerService.getSignature({
|
|
103
|
+
fqn: lookupFqn,
|
|
104
|
+
jarPath,
|
|
105
|
+
access: "all"
|
|
106
|
+
});
|
|
107
|
+
warnings.push(...sig.warnings);
|
|
108
|
+
let constructors = sig.constructors;
|
|
109
|
+
let methods = sig.methods;
|
|
110
|
+
let fields = sig.fields;
|
|
111
|
+
if (needsLookupMapping) {
|
|
112
|
+
const [ctorResult, methodResult, fieldResult] = await Promise.all([
|
|
113
|
+
svc.remapSignatureMembers(sig.constructors, "method", resolvedVersion, lookupMapping, awNamespace, input.sourcePriority, warnings, input.projectPath),
|
|
114
|
+
svc.remapSignatureMembers(sig.methods, "method", resolvedVersion, lookupMapping, awNamespace, input.sourcePriority, warnings, input.projectPath),
|
|
115
|
+
svc.remapSignatureMembers(sig.fields, "field", resolvedVersion, lookupMapping, awNamespace, input.sourcePriority, warnings, input.projectPath)
|
|
116
|
+
]);
|
|
117
|
+
constructors = ctorResult.members;
|
|
118
|
+
methods = methodResult.members;
|
|
119
|
+
fields = fieldResult.members;
|
|
120
|
+
}
|
|
121
|
+
membersByClass.set(fqn, {
|
|
122
|
+
className: fqn,
|
|
123
|
+
classAccessFlags: sig.classAccessFlags,
|
|
124
|
+
constructors,
|
|
125
|
+
methods,
|
|
126
|
+
fields
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
warnings.push(`Could not load signature for class "${lookupFqn}".`);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
const result = validateParsedAccessWidener(parsed, membersByClass, warnings, {
|
|
134
|
+
includeRuntimeEvidence: runtimeAware
|
|
135
|
+
});
|
|
136
|
+
if (provenance) {
|
|
137
|
+
result.provenance = provenance;
|
|
138
|
+
}
|
|
139
|
+
return result;
|
|
140
|
+
}
|
|
141
|
+
export async function validateAccessTransformer(svc, input) {
|
|
142
|
+
const version = input.version.trim();
|
|
143
|
+
if (!version) {
|
|
144
|
+
throw createError({ code: ERROR_CODES.INVALID_INPUT, message: "version must be non-empty." });
|
|
145
|
+
}
|
|
146
|
+
const content = input.content;
|
|
147
|
+
if (!content.trim()) {
|
|
148
|
+
throw createError({ code: ERROR_CODES.INVALID_INPUT, message: "content must be non-empty." });
|
|
149
|
+
}
|
|
150
|
+
const warnings = [];
|
|
151
|
+
const parsed = parseAccessTransformer(content);
|
|
152
|
+
const atNamespace = await svc.resolveAccessTransformerNamespace({
|
|
153
|
+
atNamespace: input.atNamespace,
|
|
154
|
+
projectPath: input.projectPath
|
|
155
|
+
});
|
|
156
|
+
const runtimeAware = input.projectPath != null || input.scope != null || input.preferProjectVersion === true;
|
|
157
|
+
let resolvedVersion = version;
|
|
158
|
+
let jarPath;
|
|
159
|
+
let lookupMapping = "obfuscated";
|
|
160
|
+
let provenance;
|
|
161
|
+
if (runtimeAware) {
|
|
162
|
+
provenance = await svc.resolveAccessTransformerRuntimeArtifact({
|
|
163
|
+
version,
|
|
164
|
+
atNamespace,
|
|
165
|
+
projectPath: input.projectPath,
|
|
166
|
+
scope: input.scope,
|
|
167
|
+
preferProjectVersion: input.preferProjectVersion
|
|
168
|
+
});
|
|
169
|
+
resolvedVersion = provenance.version;
|
|
170
|
+
jarPath = provenance.jarPath;
|
|
171
|
+
lookupMapping = provenance.mappingApplied;
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
if (atNamespace === "srg") {
|
|
175
|
+
throw createError({
|
|
176
|
+
code: ERROR_CODES.INVALID_INPUT,
|
|
177
|
+
message: "atNamespace=srg requires projectPath and scope=loader so a Forge runtime jar can be resolved."
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
({ jarPath } = await svc.versionService.resolveVersionJar(version));
|
|
181
|
+
}
|
|
182
|
+
const needsLookupMapping = atNamespace !== lookupMapping;
|
|
183
|
+
const classFqns = new Set(parsed.entries.map((entry) => entry.owner));
|
|
184
|
+
const membersByClass = new Map();
|
|
185
|
+
for (const fqn of classFqns) {
|
|
186
|
+
let lookupFqn = fqn;
|
|
187
|
+
if (needsLookupMapping) {
|
|
188
|
+
if (!isSourceMappingNamespace(atNamespace) || !isSourceMappingNamespace(lookupMapping)) {
|
|
189
|
+
warnings.push(`Could not map class "${fqn}" from ${atNamespace} to ${lookupMapping}.`);
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
try {
|
|
193
|
+
const mapped = await svc.mappingService.findMapping({
|
|
194
|
+
version: resolvedVersion,
|
|
195
|
+
kind: "class",
|
|
196
|
+
name: fqn,
|
|
197
|
+
sourceMapping: atNamespace,
|
|
198
|
+
targetMapping: lookupMapping,
|
|
199
|
+
sourcePriority: input.sourcePriority,
|
|
200
|
+
projectPath: input.projectPath
|
|
201
|
+
});
|
|
202
|
+
if (mapped.resolved && mapped.resolvedSymbol) {
|
|
203
|
+
lookupFqn = mapped.resolvedSymbol.name;
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
warnings.push(`Could not map class "${fqn}" from ${atNamespace} to ${lookupMapping}.`);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
catch {
|
|
210
|
+
warnings.push(`Mapping lookup failed for class "${fqn}".`);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
try {
|
|
215
|
+
const sig = await svc.explorerService.getSignature({
|
|
216
|
+
fqn: lookupFqn,
|
|
217
|
+
jarPath,
|
|
218
|
+
access: "all"
|
|
219
|
+
});
|
|
220
|
+
warnings.push(...sig.warnings);
|
|
221
|
+
let constructors = sig.constructors;
|
|
222
|
+
let methods = sig.methods;
|
|
223
|
+
let fields = sig.fields;
|
|
224
|
+
if (needsLookupMapping && isSourceMappingNamespace(atNamespace) && isSourceMappingNamespace(lookupMapping)) {
|
|
225
|
+
const [ctorResult, methodResult, fieldResult] = await Promise.all([
|
|
226
|
+
svc.remapSignatureMembers(sig.constructors, "method", resolvedVersion, lookupMapping, atNamespace, input.sourcePriority, warnings, input.projectPath),
|
|
227
|
+
svc.remapSignatureMembers(sig.methods, "method", resolvedVersion, lookupMapping, atNamespace, input.sourcePriority, warnings, input.projectPath),
|
|
228
|
+
svc.remapSignatureMembers(sig.fields, "field", resolvedVersion, lookupMapping, atNamespace, input.sourcePriority, warnings, input.projectPath)
|
|
229
|
+
]);
|
|
230
|
+
constructors = ctorResult.members;
|
|
231
|
+
methods = methodResult.members;
|
|
232
|
+
fields = fieldResult.members;
|
|
233
|
+
}
|
|
234
|
+
membersByClass.set(fqn, {
|
|
235
|
+
className: fqn,
|
|
236
|
+
classAccessFlags: sig.classAccessFlags,
|
|
237
|
+
constructors,
|
|
238
|
+
methods,
|
|
239
|
+
fields
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
catch {
|
|
243
|
+
warnings.push(`Could not load signature for class "${lookupFqn}".`);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
const result = validateParsedAccessTransformer(parsed, membersByClass, warnings, {
|
|
247
|
+
includeRuntimeEvidence: runtimeAware
|
|
248
|
+
});
|
|
249
|
+
if (provenance) {
|
|
250
|
+
result.provenance = provenance;
|
|
251
|
+
}
|
|
252
|
+
return result;
|
|
253
|
+
}
|
|
254
|
+
//# sourceMappingURL=access-validate.js.map
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import type { SourceService } from "../source-service.js";
|
|
2
|
+
import type { ArtifactContentsSummary, ResolveArtifactInput, ResolveArtifactOutput } from "../source-service.js";
|
|
3
|
+
import type { AccessTransformerNamespace, ArtifactProvenance, ArtifactScope, ArtifactTargetKind, ResolvedSourceArtifact, RuntimeValidationProvenance, SourceMapping } from "../types.js";
|
|
4
|
+
import type { WorkspaceProjectLoader } from "../workspace-mapping-service.js";
|
|
5
|
+
export type VersionSourceDiscovery = {
|
|
6
|
+
searchedPaths: string[];
|
|
7
|
+
candidateArtifacts: string[];
|
|
8
|
+
selectedSourceJarPath?: string;
|
|
9
|
+
selectedHasMinecraftNamespace?: boolean;
|
|
10
|
+
};
|
|
11
|
+
type RuntimeJarCandidate = {
|
|
12
|
+
jarPath: string;
|
|
13
|
+
score: number;
|
|
14
|
+
appliedScope: ArtifactScope;
|
|
15
|
+
origin: RuntimeValidationProvenance["origin"];
|
|
16
|
+
namespaceHint?: "intermediary" | "mojang" | "named";
|
|
17
|
+
};
|
|
18
|
+
export type MappingFallbackSuggestion = {
|
|
19
|
+
suggestedCall?: {
|
|
20
|
+
tool: string;
|
|
21
|
+
params: Record<string, unknown>;
|
|
22
|
+
};
|
|
23
|
+
exampleCalls?: Array<{
|
|
24
|
+
tool: string;
|
|
25
|
+
params: Record<string, unknown>;
|
|
26
|
+
reason: string;
|
|
27
|
+
}>;
|
|
28
|
+
nextAction: string;
|
|
29
|
+
_suggestedCallPrimaryDropped?: boolean;
|
|
30
|
+
};
|
|
31
|
+
export declare function hasExactVersionToken(path: string, version: string): boolean;
|
|
32
|
+
export declare function discoverVersionSourceJar(_svc: SourceService, input: {
|
|
33
|
+
version: string;
|
|
34
|
+
projectPath?: string;
|
|
35
|
+
}): Promise<VersionSourceDiscovery>;
|
|
36
|
+
export declare function discoverAccessWidenerRuntimeCandidates(_svc: SourceService, input: {
|
|
37
|
+
version: string;
|
|
38
|
+
projectPath?: string;
|
|
39
|
+
requestedScope: ArtifactScope;
|
|
40
|
+
}): Promise<{
|
|
41
|
+
searchedPaths: string[];
|
|
42
|
+
candidateArtifacts: string[];
|
|
43
|
+
selected?: RuntimeJarCandidate;
|
|
44
|
+
}>;
|
|
45
|
+
export declare function discoverAccessTransformerRuntimeCandidates(_svc: SourceService, input: {
|
|
46
|
+
version: string;
|
|
47
|
+
projectPath?: string;
|
|
48
|
+
requestedScope: ArtifactScope;
|
|
49
|
+
atNamespace: AccessTransformerNamespace;
|
|
50
|
+
loader: WorkspaceProjectLoader | "unknown";
|
|
51
|
+
}): Promise<{
|
|
52
|
+
searchedPaths: string[];
|
|
53
|
+
candidateArtifacts: string[];
|
|
54
|
+
selected?: RuntimeJarCandidate;
|
|
55
|
+
}>;
|
|
56
|
+
export declare function resolveAccessWidenerRuntimeArtifact(svc: SourceService, input: {
|
|
57
|
+
version: string;
|
|
58
|
+
awNamespace: SourceMapping;
|
|
59
|
+
projectPath?: string;
|
|
60
|
+
scope?: ArtifactScope;
|
|
61
|
+
preferProjectVersion?: boolean;
|
|
62
|
+
}): Promise<RuntimeValidationProvenance<SourceMapping>>;
|
|
63
|
+
export declare function resolveAccessTransformerNamespace(svc: SourceService, input: {
|
|
64
|
+
atNamespace?: AccessTransformerNamespace;
|
|
65
|
+
projectPath?: string;
|
|
66
|
+
}): Promise<AccessTransformerNamespace>;
|
|
67
|
+
export declare function resolveAccessTransformerRuntimeArtifact(svc: SourceService, input: {
|
|
68
|
+
version: string;
|
|
69
|
+
atNamespace: AccessTransformerNamespace;
|
|
70
|
+
projectPath?: string;
|
|
71
|
+
scope?: ArtifactScope;
|
|
72
|
+
preferProjectVersion?: boolean;
|
|
73
|
+
}): Promise<RuntimeValidationProvenance<AccessTransformerNamespace>>;
|
|
74
|
+
export declare function inferVersionFromContext(input: {
|
|
75
|
+
version?: string;
|
|
76
|
+
provenance?: ArtifactProvenance;
|
|
77
|
+
coordinate?: string;
|
|
78
|
+
}): string | undefined;
|
|
79
|
+
export declare function resolveVersionContext(svc: SourceService, input: {
|
|
80
|
+
version?: string;
|
|
81
|
+
provenance?: ArtifactProvenance;
|
|
82
|
+
coordinate?: string;
|
|
83
|
+
projectPath?: string;
|
|
84
|
+
preferProjectVersion?: boolean;
|
|
85
|
+
warnings: string[];
|
|
86
|
+
}): Promise<string | undefined>;
|
|
87
|
+
export declare function resolveBinaryFallbackArtifact(svc: SourceService, input: {
|
|
88
|
+
binaryJarPath?: string;
|
|
89
|
+
version?: string;
|
|
90
|
+
coordinate?: string;
|
|
91
|
+
requestedMapping: SourceMapping;
|
|
92
|
+
mappingApplied: SourceMapping;
|
|
93
|
+
provenance?: ArtifactProvenance;
|
|
94
|
+
qualityFlags: string[];
|
|
95
|
+
}): Promise<ResolvedSourceArtifact | undefined>;
|
|
96
|
+
export declare function buildArtifactContentsSummary(_svc: SourceService, input: {
|
|
97
|
+
origin: ResolvedSourceArtifact["origin"];
|
|
98
|
+
sourceJarPath?: string;
|
|
99
|
+
isDecompiled?: boolean;
|
|
100
|
+
qualityFlags: string[];
|
|
101
|
+
}): ArtifactContentsSummary;
|
|
102
|
+
export declare function buildMappingFallbackSuggestedCall(svc: SourceService, args: {
|
|
103
|
+
input: ResolveArtifactInput;
|
|
104
|
+
kind: ArtifactTargetKind;
|
|
105
|
+
value: string;
|
|
106
|
+
scope: ArtifactScope | undefined;
|
|
107
|
+
effectiveMapping: SourceMapping;
|
|
108
|
+
}): Promise<MappingFallbackSuggestion>;
|
|
109
|
+
export declare function resolveArtifact(svc: SourceService, input: ResolveArtifactInput): Promise<ResolveArtifactOutput>;
|
|
110
|
+
export {};
|