semantifold 0.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/LICENSE +15 -0
- package/README.md +71 -0
- package/build/index.d.ts +54 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +45 -0
- package/build/src/backends/identifiers.d.ts +19 -0
- package/build/src/backends/identifiers.d.ts.map +1 -0
- package/build/src/backends/identifiers.js +93 -0
- package/build/src/backends/index.d.ts +35 -0
- package/build/src/backends/index.d.ts.map +1 -0
- package/build/src/backends/index.js +149 -0
- package/build/src/backends/java.d.ts +8 -0
- package/build/src/backends/java.d.ts.map +1 -0
- package/build/src/backends/java.js +172 -0
- package/build/src/backends/javascript.d.ts +8 -0
- package/build/src/backends/javascript.d.ts.map +1 -0
- package/build/src/backends/javascript.js +173 -0
- package/build/src/backends/php.d.ts +8 -0
- package/build/src/backends/php.d.ts.map +1 -0
- package/build/src/backends/php.js +175 -0
- package/build/src/backends/ruby.d.ts +8 -0
- package/build/src/backends/ruby.d.ts.map +1 -0
- package/build/src/backends/ruby.js +155 -0
- package/build/src/backends/scalars.d.ts +15 -0
- package/build/src/backends/scalars.d.ts.map +1 -0
- package/build/src/backends/scalars.js +138 -0
- package/build/src/backends/shared.d.ts +26 -0
- package/build/src/backends/shared.d.ts.map +1 -0
- package/build/src/backends/shared.js +424 -0
- package/build/src/backends/typescript.d.ts +8 -0
- package/build/src/backends/typescript.d.ts.map +1 -0
- package/build/src/backends/typescript.js +160 -0
- package/build/src/backends/writer.d.ts +87 -0
- package/build/src/backends/writer.d.ts.map +1 -0
- package/build/src/backends/writer.js +207 -0
- package/build/src/diagnostic.d.ts +67 -0
- package/build/src/diagnostic.d.ts.map +1 -0
- package/build/src/diagnostic.js +96 -0
- package/build/src/frontends/index.d.ts +14 -0
- package/build/src/frontends/index.d.ts.map +1 -0
- package/build/src/frontends/index.js +36 -0
- package/build/src/frontends/java.d.ts +12 -0
- package/build/src/frontends/java.d.ts.map +1 -0
- package/build/src/frontends/java.js +630 -0
- package/build/src/frontends/javascript-typescript.d.ts +19 -0
- package/build/src/frontends/javascript-typescript.d.ts.map +1 -0
- package/build/src/frontends/javascript-typescript.js +633 -0
- package/build/src/frontends/php.d.ts +12 -0
- package/build/src/frontends/php.d.ts.map +1 -0
- package/build/src/frontends/php.js +523 -0
- package/build/src/frontends/ruby.d.ts +12 -0
- package/build/src/frontends/ruby.d.ts.map +1 -0
- package/build/src/frontends/ruby.js +515 -0
- package/build/src/frontends/scalars.d.ts +19 -0
- package/build/src/frontends/scalars.d.ts.map +1 -0
- package/build/src/frontends/scalars.js +71 -0
- package/build/src/mapping.d.ts +160 -0
- package/build/src/mapping.d.ts.map +1 -0
- package/build/src/mapping.js +1120 -0
- package/build/src/semantic/location.d.ts +61 -0
- package/build/src/semantic/location.d.ts.map +1 -0
- package/build/src/semantic/location.js +142 -0
- package/build/src/semantic/operators.d.ts +16 -0
- package/build/src/semantic/operators.d.ts.map +1 -0
- package/build/src/semantic/operators.js +24 -0
- package/build/src/semantic/provenance.d.ts +74 -0
- package/build/src/semantic/provenance.d.ts.map +1 -0
- package/build/src/semantic/provenance.js +577 -0
- package/build/src/semantic/scalars.d.ts +19 -0
- package/build/src/semantic/scalars.d.ts.map +1 -0
- package/build/src/semantic/scalars.js +40 -0
- package/build/src/semantic/types.d.ts +1003 -0
- package/build/src/semantic/types.d.ts.map +1 -0
- package/build/src/semantic/types.js +279 -0
- package/build/src/semantic/validate.d.ts +60 -0
- package/build/src/semantic/validate.d.ts.map +1 -0
- package/build/src/semantic/validate.js +472 -0
- package/docs/architecture.md +39 -0
- package/docs/coding-standards.md +7 -0
- package/docs/goals.md +7 -0
- package/docs/language-support.md +69 -0
- package/docs/plans/2026-09-02-initial-toolchain.md +54 -0
- package/docs/source-maps.md +134 -0
- package/docs/testing.md +25 -0
- package/index.js +63 -0
- package/package.json +69 -0
- package/src/backends/identifiers.js +101 -0
- package/src/backends/index.js +159 -0
- package/src/backends/java.js +182 -0
- package/src/backends/javascript.js +184 -0
- package/src/backends/php.js +184 -0
- package/src/backends/ruby.js +163 -0
- package/src/backends/scalars.js +120 -0
- package/src/backends/shared.js +456 -0
- package/src/backends/typescript.js +168 -0
- package/src/backends/writer.js +224 -0
- package/src/diagnostic.js +103 -0
- package/src/frontends/index.js +36 -0
- package/src/frontends/java.js +735 -0
- package/src/frontends/javascript-typescript.js +718 -0
- package/src/frontends/php.js +593 -0
- package/src/frontends/ruby.js +622 -0
- package/src/frontends/scalars.js +77 -0
- package/src/mapping.js +1260 -0
- package/src/semantic/location.js +154 -0
- package/src/semantic/operators.js +28 -0
- package/src/semantic/provenance.js +629 -0
- package/src/semantic/scalars.js +44 -0
- package/src/semantic/types.js +319 -0
- package/src/semantic/validate.js +529 -0
- package/tsconfig.json +16 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Looks up an exact source scalar spelling without inspecting parser nodes.
|
|
3
|
+
* @param {import("../semantic/types.js").SemanticLanguage} language - Source language.
|
|
4
|
+
* @param {string} sourceType - Exact source type spelling.
|
|
5
|
+
* @param {import("../semantic/types.js").SourceLocation} [location] - Exact parser-owned type spelling.
|
|
6
|
+
* @returns {import("../semantic/types.js").TypeReference | undefined} Semantic type when supported.
|
|
7
|
+
*/
|
|
8
|
+
export declare function sourceScalarType(language: import("../semantic/types.js").SemanticLanguage, sourceType: string, location?: import("../semantic/types.js").SourceLocation): import("../semantic/types.js").TypeReference | undefined;
|
|
9
|
+
/**
|
|
10
|
+
* Requires an exact supported source scalar spelling.
|
|
11
|
+
* @param {import("../semantic/types.js").SemanticLanguage} language - Source language.
|
|
12
|
+
* @param {string | undefined} sourceType - Exact source type spelling.
|
|
13
|
+
* @param {string} subject - Typed source subject.
|
|
14
|
+
* @param {import("../semantic/types.js").SourceLocation} location - Owning source location.
|
|
15
|
+
* @param {import("../semantic/types.js").SourceLocation} [typeLocation] - Exact parser-owned type spelling.
|
|
16
|
+
* @returns {import("../semantic/types.js").TypeReference} Semantic scalar type.
|
|
17
|
+
*/
|
|
18
|
+
export declare function requireSourceScalarType(language: import("../semantic/types.js").SemanticLanguage, sourceType: string | undefined, subject: string, location: import("../semantic/types.js").SourceLocation, typeLocation?: import("../semantic/types.js").SourceLocation): import("../semantic/types.js").TypeReference;
|
|
19
|
+
//# sourceMappingURL=scalars.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scalars.d.ts","sourceRoot":"","sources":["../../../src/frontends/scalars.js"],"names":[],"mappings":"AA6CA;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAL9B,OAAO,sBAAsB,EAAE,gBAKD,EAAE,UAAU,EAJ1C,MAI0C,EAAE,QAAQ,AAH5D,CACA,EADQ,OAAO,sBAAsB,EAAE,cAGqB,GAFlD,OAAO,sBAAsB,EAAE,aAAa,GAAG,SAAS,CASpE;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAPrC,OAAO,sBAAsB,EAAE,gBAOM,EAAE,UAAU,EANjD,MAAM,GAAG,SAMwC,EAAE,OAAO,EAL1D,MAK0D,EAAE,QAAQ,EAJpE,OAAO,sBAAsB,EAAE,cAIqC,EAAE,YAAY,AAH1F,CACA,EADQ,OAAO,sBAAsB,EAAE,cAG8D,GAF3F,OAAO,sBAAsB,EAAE,aAAa,CAQxD"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import { missingType } from "../diagnostic.js";
|
|
3
|
+
import { setParserRanges } from "../semantic/provenance.js";
|
|
4
|
+
import { scalarType } from "../semantic/scalars.js";
|
|
5
|
+
/**
|
|
6
|
+
* Builds a source-spelling map with exact semantic scalar values.
|
|
7
|
+
* @param {readonly (readonly [string, import("../semantic/types.js").SemanticTypeName])[]} entries - Source mappings.
|
|
8
|
+
* @returns {Map<string, import("../semantic/types.js").SemanticTypeName>} Source type map.
|
|
9
|
+
*/
|
|
10
|
+
function sourceTypeMap(entries) {
|
|
11
|
+
return new Map(entries);
|
|
12
|
+
}
|
|
13
|
+
/** @type {Readonly<Record<import("../semantic/types.js").SemanticLanguage, Map<string, import("../semantic/types.js").SemanticTypeName>>>} */
|
|
14
|
+
const sourceScalarTypes = Object.freeze({
|
|
15
|
+
java: sourceTypeMap([
|
|
16
|
+
["int", "integer"],
|
|
17
|
+
["boolean", "boolean"],
|
|
18
|
+
["String", "string"],
|
|
19
|
+
["java.lang.String", "string"]
|
|
20
|
+
]),
|
|
21
|
+
javascript: sourceTypeMap([
|
|
22
|
+
["number", "integer"],
|
|
23
|
+
["boolean", "boolean"],
|
|
24
|
+
["string", "string"]
|
|
25
|
+
]),
|
|
26
|
+
php: sourceTypeMap([
|
|
27
|
+
["int", "integer"],
|
|
28
|
+
["bool", "boolean"],
|
|
29
|
+
["string", "string"]
|
|
30
|
+
]),
|
|
31
|
+
ruby: sourceTypeMap([
|
|
32
|
+
["[Integer]", "integer"],
|
|
33
|
+
["[bool]", "boolean"],
|
|
34
|
+
["[String]", "string"]
|
|
35
|
+
]),
|
|
36
|
+
typescript: sourceTypeMap([
|
|
37
|
+
["number", "integer"],
|
|
38
|
+
["boolean", "boolean"],
|
|
39
|
+
["string", "string"]
|
|
40
|
+
])
|
|
41
|
+
});
|
|
42
|
+
/**
|
|
43
|
+
* Looks up an exact source scalar spelling without inspecting parser nodes.
|
|
44
|
+
* @param {import("../semantic/types.js").SemanticLanguage} language - Source language.
|
|
45
|
+
* @param {string} sourceType - Exact source type spelling.
|
|
46
|
+
* @param {import("../semantic/types.js").SourceLocation} [location] - Exact parser-owned type spelling.
|
|
47
|
+
* @returns {import("../semantic/types.js").TypeReference | undefined} Semantic type when supported.
|
|
48
|
+
*/
|
|
49
|
+
export function sourceScalarType(language, sourceType, location) {
|
|
50
|
+
const name = sourceScalarTypes[language].get(sourceType);
|
|
51
|
+
const type = name ? scalarType(name) : undefined;
|
|
52
|
+
if (type && location)
|
|
53
|
+
setParserRanges(type, { type: location });
|
|
54
|
+
return type;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Requires an exact supported source scalar spelling.
|
|
58
|
+
* @param {import("../semantic/types.js").SemanticLanguage} language - Source language.
|
|
59
|
+
* @param {string | undefined} sourceType - Exact source type spelling.
|
|
60
|
+
* @param {string} subject - Typed source subject.
|
|
61
|
+
* @param {import("../semantic/types.js").SourceLocation} location - Owning source location.
|
|
62
|
+
* @param {import("../semantic/types.js").SourceLocation} [typeLocation] - Exact parser-owned type spelling.
|
|
63
|
+
* @returns {import("../semantic/types.js").TypeReference} Semantic scalar type.
|
|
64
|
+
*/
|
|
65
|
+
export function requireSourceScalarType(language, sourceType, subject, location, typeLocation = location) {
|
|
66
|
+
const type = sourceType ? sourceScalarType(language, sourceType, typeLocation) : undefined;
|
|
67
|
+
if (!type)
|
|
68
|
+
return missingType(language, subject, location);
|
|
69
|
+
return type;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbGFycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9mcm9udGVuZHMvc2NhbGFycy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGtCQUFrQixDQUFBO0FBQzVDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQTtBQUN6RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sd0JBQXdCLENBQUE7QUFFakQ7Ozs7R0FJRztBQUNILFNBQVMsYUFBYSxDQUFDLE9BQU87SUFDNUIsT0FBTyxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQTtBQUN6QixDQUFDO0FBRUQsOElBQThJO0FBQzlJLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUN0QyxJQUFJLEVBQUUsYUFBYSxDQUFDO1FBQ2xCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQztRQUNsQixDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7UUFDdEIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDO1FBQ3BCLENBQUMsa0JBQWtCLEVBQUUsUUFBUSxDQUFDO0tBQy9CLENBQUM7SUFDRixVQUFVLEVBQUUsYUFBYSxDQUFDO1FBQ3hCLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQztRQUNyQixDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7UUFDdEIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDO0tBQ3JCLENBQUM7SUFDRixHQUFHLEVBQUUsYUFBYSxDQUFDO1FBQ2pCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQztRQUNsQixDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUM7UUFDbkIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDO0tBQ3JCLENBQUM7SUFDRixJQUFJLEVBQUUsYUFBYSxDQUFDO1FBQ2xCLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQztRQUN4QixDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUM7UUFDckIsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDO0tBQ3ZCLENBQUM7SUFDRixVQUFVLEVBQUUsYUFBYSxDQUFDO1FBQ3hCLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQztRQUNyQixDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7UUFDdEIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDO0tBQ3JCLENBQUM7Q0FDSCxDQUFDLENBQUE7QUFFRjs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxRQUFRO0lBQzdELE1BQU0sSUFBSSxHQUFHLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUN4RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFBO0lBRWhELElBQUksSUFBSSxJQUFJLFFBQVE7UUFBRSxlQUFlLENBQUMsSUFBSSxFQUFFLEVBQUMsSUFBSSxFQUFFLFFBQVEsRUFBQyxDQUFDLENBQUE7SUFFN0QsT0FBTyxJQUFJLENBQUE7QUFDYixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksR0FBRyxRQUFRO0lBQ3RHLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFBO0lBRTFGLElBQUksQ0FBQyxJQUFJO1FBQUUsT0FBTyxXQUFXLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQTtJQUUxRCxPQUFPLElBQUksQ0FBQTtBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IHttaXNzaW5nVHlwZX0gZnJvbSBcIi4uL2RpYWdub3N0aWMuanNcIlxuaW1wb3J0IHtzZXRQYXJzZXJSYW5nZXN9IGZyb20gXCIuLi9zZW1hbnRpYy9wcm92ZW5hbmNlLmpzXCJcbmltcG9ydCB7c2NhbGFyVHlwZX0gZnJvbSBcIi4uL3NlbWFudGljL3NjYWxhcnMuanNcIlxuXG4vKipcbiAqIEJ1aWxkcyBhIHNvdXJjZS1zcGVsbGluZyBtYXAgd2l0aCBleGFjdCBzZW1hbnRpYyBzY2FsYXIgdmFsdWVzLlxuICogQHBhcmFtIHtyZWFkb25seSAocmVhZG9ubHkgW3N0cmluZywgaW1wb3J0KFwiLi4vc2VtYW50aWMvdHlwZXMuanNcIikuU2VtYW50aWNUeXBlTmFtZV0pW119IGVudHJpZXMgLSBTb3VyY2UgbWFwcGluZ3MuXG4gKiBAcmV0dXJucyB7TWFwPHN0cmluZywgaW1wb3J0KFwiLi4vc2VtYW50aWMvdHlwZXMuanNcIikuU2VtYW50aWNUeXBlTmFtZT59IFNvdXJjZSB0eXBlIG1hcC5cbiAqL1xuZnVuY3Rpb24gc291cmNlVHlwZU1hcChlbnRyaWVzKSB7XG4gIHJldHVybiBuZXcgTWFwKGVudHJpZXMpXG59XG5cbi8qKiBAdHlwZSB7UmVhZG9ubHk8UmVjb3JkPGltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLlNlbWFudGljTGFuZ3VhZ2UsIE1hcDxzdHJpbmcsIGltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLlNlbWFudGljVHlwZU5hbWU+Pj59ICovXG5jb25zdCBzb3VyY2VTY2FsYXJUeXBlcyA9IE9iamVjdC5mcmVlemUoe1xuICBqYXZhOiBzb3VyY2VUeXBlTWFwKFtcbiAgICBbXCJpbnRcIiwgXCJpbnRlZ2VyXCJdLFxuICAgIFtcImJvb2xlYW5cIiwgXCJib29sZWFuXCJdLFxuICAgIFtcIlN0cmluZ1wiLCBcInN0cmluZ1wiXSxcbiAgICBbXCJqYXZhLmxhbmcuU3RyaW5nXCIsIFwic3RyaW5nXCJdXG4gIF0pLFxuICBqYXZhc2NyaXB0OiBzb3VyY2VUeXBlTWFwKFtcbiAgICBbXCJudW1iZXJcIiwgXCJpbnRlZ2VyXCJdLFxuICAgIFtcImJvb2xlYW5cIiwgXCJib29sZWFuXCJdLFxuICAgIFtcInN0cmluZ1wiLCBcInN0cmluZ1wiXVxuICBdKSxcbiAgcGhwOiBzb3VyY2VUeXBlTWFwKFtcbiAgICBbXCJpbnRcIiwgXCJpbnRlZ2VyXCJdLFxuICAgIFtcImJvb2xcIiwgXCJib29sZWFuXCJdLFxuICAgIFtcInN0cmluZ1wiLCBcInN0cmluZ1wiXVxuICBdKSxcbiAgcnVieTogc291cmNlVHlwZU1hcChbXG4gICAgW1wiW0ludGVnZXJdXCIsIFwiaW50ZWdlclwiXSxcbiAgICBbXCJbYm9vbF1cIiwgXCJib29sZWFuXCJdLFxuICAgIFtcIltTdHJpbmddXCIsIFwic3RyaW5nXCJdXG4gIF0pLFxuICB0eXBlc2NyaXB0OiBzb3VyY2VUeXBlTWFwKFtcbiAgICBbXCJudW1iZXJcIiwgXCJpbnRlZ2VyXCJdLFxuICAgIFtcImJvb2xlYW5cIiwgXCJib29sZWFuXCJdLFxuICAgIFtcInN0cmluZ1wiLCBcInN0cmluZ1wiXVxuICBdKVxufSlcblxuLyoqXG4gKiBMb29rcyB1cCBhbiBleGFjdCBzb3VyY2Ugc2NhbGFyIHNwZWxsaW5nIHdpdGhvdXQgaW5zcGVjdGluZyBwYXJzZXIgbm9kZXMuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLlNlbWFudGljTGFuZ3VhZ2V9IGxhbmd1YWdlIC0gU291cmNlIGxhbmd1YWdlLlxuICogQHBhcmFtIHtzdHJpbmd9IHNvdXJjZVR5cGUgLSBFeGFjdCBzb3VyY2UgdHlwZSBzcGVsbGluZy5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vc2VtYW50aWMvdHlwZXMuanNcIikuU291cmNlTG9jYXRpb259IFtsb2NhdGlvbl0gLSBFeGFjdCBwYXJzZXItb3duZWQgdHlwZSBzcGVsbGluZy5cbiAqIEByZXR1cm5zIHtpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5UeXBlUmVmZXJlbmNlIHwgdW5kZWZpbmVkfSBTZW1hbnRpYyB0eXBlIHdoZW4gc3VwcG9ydGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc291cmNlU2NhbGFyVHlwZShsYW5ndWFnZSwgc291cmNlVHlwZSwgbG9jYXRpb24pIHtcbiAgY29uc3QgbmFtZSA9IHNvdXJjZVNjYWxhclR5cGVzW2xhbmd1YWdlXS5nZXQoc291cmNlVHlwZSlcbiAgY29uc3QgdHlwZSA9IG5hbWUgPyBzY2FsYXJUeXBlKG5hbWUpIDogdW5kZWZpbmVkXG5cbiAgaWYgKHR5cGUgJiYgbG9jYXRpb24pIHNldFBhcnNlclJhbmdlcyh0eXBlLCB7dHlwZTogbG9jYXRpb259KVxuXG4gIHJldHVybiB0eXBlXG59XG5cbi8qKlxuICogUmVxdWlyZXMgYW4gZXhhY3Qgc3VwcG9ydGVkIHNvdXJjZSBzY2FsYXIgc3BlbGxpbmcuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLlNlbWFudGljTGFuZ3VhZ2V9IGxhbmd1YWdlIC0gU291cmNlIGxhbmd1YWdlLlxuICogQHBhcmFtIHtzdHJpbmcgfCB1bmRlZmluZWR9IHNvdXJjZVR5cGUgLSBFeGFjdCBzb3VyY2UgdHlwZSBzcGVsbGluZy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBzdWJqZWN0IC0gVHlwZWQgc291cmNlIHN1YmplY3QuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLlNvdXJjZUxvY2F0aW9ufSBsb2NhdGlvbiAtIE93bmluZyBzb3VyY2UgbG9jYXRpb24uXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLlNvdXJjZUxvY2F0aW9ufSBbdHlwZUxvY2F0aW9uXSAtIEV4YWN0IHBhcnNlci1vd25lZCB0eXBlIHNwZWxsaW5nLlxuICogQHJldHVybnMge2ltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLlR5cGVSZWZlcmVuY2V9IFNlbWFudGljIHNjYWxhciB0eXBlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVxdWlyZVNvdXJjZVNjYWxhclR5cGUobGFuZ3VhZ2UsIHNvdXJjZVR5cGUsIHN1YmplY3QsIGxvY2F0aW9uLCB0eXBlTG9jYXRpb24gPSBsb2NhdGlvbikge1xuICBjb25zdCB0eXBlID0gc291cmNlVHlwZSA/IHNvdXJjZVNjYWxhclR5cGUobGFuZ3VhZ2UsIHNvdXJjZVR5cGUsIHR5cGVMb2NhdGlvbikgOiB1bmRlZmluZWRcblxuICBpZiAoIXR5cGUpIHJldHVybiBtaXNzaW5nVHlwZShsYW5ndWFnZSwgc3ViamVjdCwgbG9jYXRpb24pXG5cbiAgcmV0dXJuIHR5cGVcbn1cbiJdfQ==
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { SemantifoldDiagnostic } from "./diagnostic.js";
|
|
2
|
+
import { createCoordinateIndex } from "./semantic/location.js";
|
|
3
|
+
export type MappingIndex = ReturnType<typeof buildMappingIndex>;
|
|
4
|
+
/**
|
|
5
|
+
* Projects an authoritative Semantifold mapping to Source Map v3.
|
|
6
|
+
* @param {import("./semantic/types.js").SemantifoldMapping} mapping - Rich mapping.
|
|
7
|
+
* @returns {import("@jridgewell/gen-mapping").EncodedSourceMap} Source Map v3.
|
|
8
|
+
*/
|
|
9
|
+
export declare function toSourceMapV3(mapping: import("./semantic/types.js").SemantifoldMapping): import("@jridgewell/gen-mapping").EncodedSourceMap;
|
|
10
|
+
/**
|
|
11
|
+
* Looks up original provenance for one generated UTF-16 position.
|
|
12
|
+
* @param {import("./semantic/types.js").SemantifoldMapping} mapping - Rich mapping.
|
|
13
|
+
* @param {{offset: number} | {line: number, column: number}} position - Generated position.
|
|
14
|
+
* @returns {{generatedLocation: import("./semantic/types.js").SourceLocation, location: import("./semantic/types.js").SourceLocation | undefined, mappingKind: import("./semantic/types.js").MappingKind, name: string | undefined, nodeId: string | undefined, role: string | undefined, symbolId: string | undefined}} Lookup result.
|
|
15
|
+
*/
|
|
16
|
+
export declare function originalPositionFor(mapping: import("./semantic/types.js").SemantifoldMapping, position: {
|
|
17
|
+
offset: number;
|
|
18
|
+
} | {
|
|
19
|
+
line: number;
|
|
20
|
+
column: number;
|
|
21
|
+
}): {
|
|
22
|
+
generatedLocation: import("./semantic/types.js").SourceLocation;
|
|
23
|
+
location: import("./semantic/types.js").SourceLocation | undefined;
|
|
24
|
+
mappingKind: import("./semantic/types.js").MappingKind;
|
|
25
|
+
name: string | undefined;
|
|
26
|
+
nodeId: string | undefined;
|
|
27
|
+
role: string | undefined;
|
|
28
|
+
symbolId: string | undefined;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Looks up every generated span containing one original UTF-16 position.
|
|
32
|
+
* @param {import("./semantic/types.js").SemantifoldMapping} mapping - Rich mapping.
|
|
33
|
+
* @param {({filename: string} | {sourceId: string}) & ({offset: number} | {line: number, column: number})} position - Original position.
|
|
34
|
+
* @returns {{generatedLocation: import("./semantic/types.js").SourceLocation, location: import("./semantic/types.js").SourceLocation | undefined, mappingKind: import("./semantic/types.js").MappingKind, name: string | undefined, nodeId: string | undefined, role: string | undefined, symbolId: string | undefined}[]} Generated results.
|
|
35
|
+
*/
|
|
36
|
+
export declare function generatedPositionFor(mapping: import("./semantic/types.js").SemantifoldMapping, position: ({
|
|
37
|
+
filename: string;
|
|
38
|
+
} | {
|
|
39
|
+
sourceId: string;
|
|
40
|
+
}) & ({
|
|
41
|
+
offset: number;
|
|
42
|
+
} | {
|
|
43
|
+
line: number;
|
|
44
|
+
column: number;
|
|
45
|
+
})): {
|
|
46
|
+
generatedLocation: import("./semantic/types.js").SourceLocation;
|
|
47
|
+
location: import("./semantic/types.js").SourceLocation | undefined;
|
|
48
|
+
mappingKind: import("./semantic/types.js").MappingKind;
|
|
49
|
+
name: string | undefined;
|
|
50
|
+
nodeId: string | undefined;
|
|
51
|
+
role: string | undefined;
|
|
52
|
+
symbolId: string | undefined;
|
|
53
|
+
}[];
|
|
54
|
+
/**
|
|
55
|
+
* Returns every generated span associated with one canonical semantic node.
|
|
56
|
+
* @param {import("./semantic/types.js").SemantifoldMapping} mapping - Rich mapping.
|
|
57
|
+
* @param {string} nodeId - Canonical node identity.
|
|
58
|
+
* @returns {import("./semantic/types.js").SemantifoldMappingSpan[]} Matching spans.
|
|
59
|
+
*/
|
|
60
|
+
export declare function spansForNode(mapping: import("./semantic/types.js").SemantifoldMapping, nodeId: string): import("./semantic/types.js").SemantifoldMappingSpan[];
|
|
61
|
+
/**
|
|
62
|
+
* Returns every generated span associated with one canonical semantic symbol.
|
|
63
|
+
* @param {import("./semantic/types.js").SemantifoldMapping} mapping - Rich mapping.
|
|
64
|
+
* @param {string} symbolId - Canonical symbol identity.
|
|
65
|
+
* @returns {import("./semantic/types.js").SemantifoldMappingSpan[]} Matching spans.
|
|
66
|
+
*/
|
|
67
|
+
export declare function spansForSymbol(mapping: import("./semantic/types.js").SemantifoldMapping, symbolId: string): import("./semantic/types.js").SemantifoldMappingSpan[];
|
|
68
|
+
/**
|
|
69
|
+
* Serializes a validated rich mapping deterministically.
|
|
70
|
+
* @param {import("./semantic/types.js").SemantifoldMapping} mapping - Rich mapping.
|
|
71
|
+
* @returns {string} Canonical pretty JSON with one trailing LF.
|
|
72
|
+
*/
|
|
73
|
+
export declare function stringifyMapping(mapping: import("./semantic/types.js").SemantifoldMapping): string;
|
|
74
|
+
/**
|
|
75
|
+
* Parses and validates a rich mapping.
|
|
76
|
+
* @param {string} serialized - Mapping JSON.
|
|
77
|
+
* @returns {import("./semantic/types.js").SemantifoldMapping} Parsed mapping.
|
|
78
|
+
*/
|
|
79
|
+
export declare function parseMapping(serialized: string): import("./semantic/types.js").SemantifoldMapping;
|
|
80
|
+
/**
|
|
81
|
+
* Composes an outer rich map through an inner rich map.
|
|
82
|
+
* @param {import("./semantic/types.js").SemantifoldMapping} outer - Final output to intermediate map.
|
|
83
|
+
* @param {import("./semantic/types.js").SemantifoldMapping} inner - Intermediate to original map.
|
|
84
|
+
* @returns {import("./semantic/types.js").SemantifoldMapping} Composed rich map.
|
|
85
|
+
*/
|
|
86
|
+
export declare function composeMappings(outer: import("./semantic/types.js").SemantifoldMapping, inner: import("./semantic/types.js").SemantifoldMapping): import("./semantic/types.js").SemantifoldMapping;
|
|
87
|
+
/**
|
|
88
|
+
* Composes Source Map v3 maps with maintained tracing machinery.
|
|
89
|
+
* @param {import("@jridgewell/trace-mapping").SourceMapInput} outer - Final output to intermediate map.
|
|
90
|
+
* @param {import("@jridgewell/trace-mapping").SourceMapInput} inner - Intermediate to original map.
|
|
91
|
+
* @returns {import("@jridgewell/gen-mapping").EncodedSourceMap} Composed v3 map.
|
|
92
|
+
*/
|
|
93
|
+
export declare function composeSourceMaps(outer: import("@jridgewell/trace-mapping").SourceMapInput, inner: import("@jridgewell/trace-mapping").SourceMapInput): import("@jridgewell/gen-mapping").EncodedSourceMap;
|
|
94
|
+
/**
|
|
95
|
+
* Imports a point-based Source Map v3 as a range-based Semantifold map.
|
|
96
|
+
* @param {import("@jridgewell/trace-mapping").SourceMapInput} sourceMap - Source Map v3.
|
|
97
|
+
* @param {object} generated - Generated program.
|
|
98
|
+
* @param {string} generated.content - Exact generated content.
|
|
99
|
+
* @param {string} generated.filename - Generated filename.
|
|
100
|
+
* @param {import("./semantic/types.js").SemanticLanguage} generated.language - Generated language.
|
|
101
|
+
* @param {{filename: string, content: string, language?: import("./semantic/types.js").SemanticLanguage}[]} [generated.sources] - Exact source content overrides.
|
|
102
|
+
* @returns {import("./semantic/types.js").SemantifoldMapping} Imported rich map.
|
|
103
|
+
*/
|
|
104
|
+
export declare function mappingFromSourceMap(sourceMap: import("@jridgewell/trace-mapping").SourceMapInput, { content, filename, language, sources: provided }: {
|
|
105
|
+
content: string;
|
|
106
|
+
filename: string;
|
|
107
|
+
language: import("./semantic/types.js").SemanticLanguage;
|
|
108
|
+
sources?: {
|
|
109
|
+
filename: string;
|
|
110
|
+
content: string;
|
|
111
|
+
language?: import("./semantic/types.js").SemanticLanguage;
|
|
112
|
+
}[];
|
|
113
|
+
}): import("./semantic/types.js").SemantifoldMapping;
|
|
114
|
+
/**
|
|
115
|
+
* Remaps a generated location while retaining the generated range in the result.
|
|
116
|
+
* @param {import("./semantic/types.js").SourceLocation} location - Generated location.
|
|
117
|
+
* @param {import("./semantic/types.js").SemantifoldMapping} mapping - Rich mapping.
|
|
118
|
+
* @returns {ReturnType<typeof originalPositionFor>} Remapped lookup.
|
|
119
|
+
*/
|
|
120
|
+
export declare function remapLocation(location: import("./semantic/types.js").SourceLocation, mapping: import("./semantic/types.js").SemantifoldMapping): ReturnType<typeof originalPositionFor>;
|
|
121
|
+
/**
|
|
122
|
+
* Remaps a Semantifold diagnostic and preserves its generated location and cause.
|
|
123
|
+
* @param {SemantifoldDiagnostic} diagnostic - Generated-program diagnostic.
|
|
124
|
+
* @param {import("./semantic/types.js").SemantifoldMapping} mapping - Rich mapping.
|
|
125
|
+
* @returns {SemantifoldDiagnostic} Remapped diagnostic.
|
|
126
|
+
*/
|
|
127
|
+
export declare function remapDiagnostic(diagnostic: SemantifoldDiagnostic, mapping: import("./semantic/types.js").SemantifoldMapping): SemantifoldDiagnostic;
|
|
128
|
+
/**
|
|
129
|
+
* Validates the public mapping envelope and ordered half-open generated ranges.
|
|
130
|
+
* @param {unknown} value - Candidate mapping.
|
|
131
|
+
* @returns {asserts value is import("./semantic/types.js").SemantifoldMapping} Nothing when valid.
|
|
132
|
+
*/
|
|
133
|
+
export declare function validateMapping(value: unknown): asserts value is import("./semantic/types.js").SemantifoldMapping;
|
|
134
|
+
/**
|
|
135
|
+
* Validates, freezes, and indexes one mapping produced at a trust boundary.
|
|
136
|
+
* @param {unknown} value - Candidate mapping.
|
|
137
|
+
* @returns {import("./semantic/types.js").SemantifoldMapping} Immutable indexed mapping.
|
|
138
|
+
*/
|
|
139
|
+
export declare function finalizeMapping(value: unknown): import("./semantic/types.js").SemantifoldMapping;
|
|
140
|
+
/**
|
|
141
|
+
* Builds generated, original, node, and symbol indexes in one pass.
|
|
142
|
+
* @param {import("./semantic/types.js").SemantifoldMapping} mapping - Validated mapping.
|
|
143
|
+
* @returns {{generatedCoordinates: ReturnType<typeof createCoordinateIndex>, nodeSpans: Map<string, import("./semantic/types.js").SemantifoldMappingSpan[]>, originalBySource: Map<string, {end: number, prefixEnd: number, span: import("./semantic/types.js").SemantifoldMappingSpan, start: number}[]>, originalPointsBySource: Map<string, Map<number, import("./semantic/types.js").SemantifoldMappingSpan[]>>, sourceCoordinates: Map<string, ReturnType<typeof createCoordinateIndex>>, sourcesById: Map<string, import("./semantic/types.js").RegisteredSource>, symbolSpans: Map<string, import("./semantic/types.js").SemantifoldMappingSpan[]>}} Mapping index.
|
|
144
|
+
*/
|
|
145
|
+
declare function buildMappingIndex(mapping: import("./semantic/types.js").SemantifoldMapping): {
|
|
146
|
+
generatedCoordinates: ReturnType<typeof createCoordinateIndex>;
|
|
147
|
+
nodeSpans: Map<string, import("./semantic/types.js").SemantifoldMappingSpan[]>;
|
|
148
|
+
originalBySource: Map<string, {
|
|
149
|
+
end: number;
|
|
150
|
+
prefixEnd: number;
|
|
151
|
+
span: import("./semantic/types.js").SemantifoldMappingSpan;
|
|
152
|
+
start: number;
|
|
153
|
+
}[]>;
|
|
154
|
+
originalPointsBySource: Map<string, Map<number, import("./semantic/types.js").SemantifoldMappingSpan[]>>;
|
|
155
|
+
sourceCoordinates: Map<string, ReturnType<typeof createCoordinateIndex>>;
|
|
156
|
+
sourcesById: Map<string, import("./semantic/types.js").RegisteredSource>;
|
|
157
|
+
symbolSpans: Map<string, import("./semantic/types.js").SemantifoldMappingSpan[]>;
|
|
158
|
+
};
|
|
159
|
+
export {};
|
|
160
|
+
//# sourceMappingURL=mapping.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapping.d.ts","sourceRoot":"","sources":["../../src/mapping.js"],"names":[],"mappings":"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"}
|