@nola-lang/compiler 0.1.0-alpha.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 +21 -0
- package/README.md +7 -0
- package/dist/ambient-stub.d.ts +8 -0
- package/dist/ambient-stub.d.ts.map +1 -0
- package/dist/ambient-stub.js +71 -0
- package/dist/ambient-stub.js.map +1 -0
- package/dist/companion-name.d.ts +22 -0
- package/dist/companion-name.d.ts.map +1 -0
- package/dist/companion-name.js +48 -0
- package/dist/companion-name.js.map +1 -0
- package/dist/companion.d.ts +22 -0
- package/dist/companion.d.ts.map +1 -0
- package/dist/companion.js +90 -0
- package/dist/companion.js.map +1 -0
- package/dist/compile.d.ts +3 -0
- package/dist/compile.d.ts.map +1 -0
- package/dist/compile.js +33 -0
- package/dist/compile.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/lower/Lowerer.d.ts +56 -0
- package/dist/lower/Lowerer.d.ts.map +1 -0
- package/dist/lower/Lowerer.js +353 -0
- package/dist/lower/Lowerer.js.map +1 -0
- package/dist/lower/index.d.ts +8 -0
- package/dist/lower/index.d.ts.map +1 -0
- package/dist/lower/index.js +5 -0
- package/dist/lower/index.js.map +1 -0
- package/dist/lower/lower.d.ts +2 -0
- package/dist/lower/lower.d.ts.map +1 -0
- package/dist/lower/lower.js +319 -0
- package/dist/lower/lower.js.map +1 -0
- package/dist/lower/templates.d.ts +61 -0
- package/dist/lower/templates.d.ts.map +1 -0
- package/dist/lower/templates.js +70 -0
- package/dist/lower/templates.js.map +1 -0
- package/dist/lower.d.ts +4 -0
- package/dist/lower.d.ts.map +1 -0
- package/dist/lower.js +322 -0
- package/dist/lower.js.map +1 -0
- package/dist/path.d.ts +16 -0
- package/dist/path.d.ts.map +1 -0
- package/dist/path.js +28 -0
- package/dist/path.js.map +1 -0
- package/dist/schema-expr.d.ts +61 -0
- package/dist/schema-expr.d.ts.map +1 -0
- package/dist/schema-expr.js +211 -0
- package/dist/schema-expr.js.map +1 -0
- package/dist/schema.d.ts +16 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +152 -0
- package/dist/schema.js.map +1 -0
- package/dist/spans.d.ts +73 -0
- package/dist/spans.d.ts.map +1 -0
- package/dist/spans.js +169 -0
- package/dist/spans.js.map +1 -0
- package/dist/static-config.d.ts +15 -0
- package/dist/static-config.d.ts.map +1 -0
- package/dist/static-config.js +93 -0
- package/dist/static-config.js.map +1 -0
- package/dist/types.d.ts +37 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +45 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spans.js","sourceRoot":"","sources":["../src/spans.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
declare const MODES: readonly ["error", "prune", "omit"];
|
|
2
|
+
export type StaticContextTypeMode = (typeof MODES)[number];
|
|
3
|
+
/**
|
|
4
|
+
* Statically extract `compiler.underivableContextType` from nola.config.ts
|
|
5
|
+
* source, for hosts that must not (editor processes) or cannot (sync compile
|
|
6
|
+
* paths) evaluate the config. Understands the literal spellings only —
|
|
7
|
+
* default-exported object, an optional wrapping call (defineConfig), as/
|
|
8
|
+
* satisfies casts, and one level of top-level identifier indirection. A
|
|
9
|
+
* computed value, an unknown mode, or a broken config yields undefined: the
|
|
10
|
+
* caller falls back to the compile default, while build/check/run still see
|
|
11
|
+
* the evaluated truth.
|
|
12
|
+
*/
|
|
13
|
+
export declare function staticUnderivableContextType(source: string): StaticContextTypeMode | undefined;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=static-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static-config.d.ts","sourceRoot":"","sources":["../src/static-config.ts"],"names":[],"mappings":"AAUA,QAAA,MAAM,KAAK,qCAAsC,CAAC;AAClD,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS,CAiB9F"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { programBody, } from "@nola-lang/ast";
|
|
2
|
+
import { parseNola } from "@nola-lang/parser";
|
|
3
|
+
const MODES = ["error", "prune", "omit"];
|
|
4
|
+
/**
|
|
5
|
+
* Statically extract `compiler.underivableContextType` from nola.config.ts
|
|
6
|
+
* source, for hosts that must not (editor processes) or cannot (sync compile
|
|
7
|
+
* paths) evaluate the config. Understands the literal spellings only —
|
|
8
|
+
* default-exported object, an optional wrapping call (defineConfig), as/
|
|
9
|
+
* satisfies casts, and one level of top-level identifier indirection. A
|
|
10
|
+
* computed value, an unknown mode, or a broken config yields undefined: the
|
|
11
|
+
* caller falls back to the compile default, while build/check/run still see
|
|
12
|
+
* the evaluated truth.
|
|
13
|
+
*/
|
|
14
|
+
export function staticUnderivableContextType(source) {
|
|
15
|
+
let body;
|
|
16
|
+
try {
|
|
17
|
+
const { ast } = parseNola(source, "nola.config.ts", { tolerant: true });
|
|
18
|
+
if (!ast)
|
|
19
|
+
return undefined;
|
|
20
|
+
body = programBody(ast);
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
const exported = body.find((n) => n.type === "ExportDefaultDeclaration");
|
|
26
|
+
const config = resolveObject(exported?.declaration, body);
|
|
27
|
+
const compiler = resolveObject(propValue(config, "compiler"), body);
|
|
28
|
+
const mode = unwrap(propValue(compiler, "underivableContextType"));
|
|
29
|
+
if (mode?.type !== "StringLiteral")
|
|
30
|
+
return undefined;
|
|
31
|
+
const value = mode.value;
|
|
32
|
+
return MODES.includes(value) ? value : undefined;
|
|
33
|
+
}
|
|
34
|
+
/** Peel wrappers that don't change the value: casts, parens, a single-argument call. */
|
|
35
|
+
function unwrap(node) {
|
|
36
|
+
let current = node;
|
|
37
|
+
while (current) {
|
|
38
|
+
if (current.type === "TSAsExpression" ||
|
|
39
|
+
current.type === "TSSatisfiesExpression" ||
|
|
40
|
+
current.type === "TSNonNullExpression" ||
|
|
41
|
+
current.type === "ParenthesizedExpression") {
|
|
42
|
+
current = current.expression;
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
if (current.type === "CallExpression") {
|
|
46
|
+
const args = current.arguments ?? [];
|
|
47
|
+
if (args.length !== 1)
|
|
48
|
+
return undefined;
|
|
49
|
+
current = args[0];
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
return current;
|
|
53
|
+
}
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
/** unwrap() to an ObjectExpression, following one top-level `const x = ...` indirection. */
|
|
57
|
+
function resolveObject(node, body) {
|
|
58
|
+
const direct = unwrap(node);
|
|
59
|
+
if (direct?.type === "ObjectExpression")
|
|
60
|
+
return direct;
|
|
61
|
+
if (direct?.type === "Identifier") {
|
|
62
|
+
const name = direct.name;
|
|
63
|
+
for (const stmt of body) {
|
|
64
|
+
if (stmt.type !== "VariableDeclaration")
|
|
65
|
+
continue;
|
|
66
|
+
for (const decl of stmt.declarations ?? []) {
|
|
67
|
+
const d = decl;
|
|
68
|
+
if (d.id?.type === "Identifier" && d.id.name === name) {
|
|
69
|
+
const init = unwrap(d.init);
|
|
70
|
+
if (init?.type === "ObjectExpression")
|
|
71
|
+
return init;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return undefined;
|
|
77
|
+
}
|
|
78
|
+
function propValue(obj, name) {
|
|
79
|
+
for (const prop of obj?.properties ?? []) {
|
|
80
|
+
if (prop.type !== "ObjectProperty" || prop.computed === true)
|
|
81
|
+
continue;
|
|
82
|
+
const key = prop.key;
|
|
83
|
+
const keyName = key.type === "Identifier"
|
|
84
|
+
? key.name
|
|
85
|
+
: key.type === "StringLiteral"
|
|
86
|
+
? key.value
|
|
87
|
+
: undefined;
|
|
88
|
+
if (keyName === name)
|
|
89
|
+
return prop.value;
|
|
90
|
+
}
|
|
91
|
+
return undefined;
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=static-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static-config.js","sourceRoot":"","sources":["../src/static-config.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { Diagnostic } from "@nola-lang/ast";
|
|
2
|
+
import type { UnderivableContextTypeMode } from "@nola-lang/core";
|
|
3
|
+
import type { SourceMap } from "magic-string";
|
|
4
|
+
import type { Anchor, Span } from "./spans.js";
|
|
5
|
+
export interface CompileResult {
|
|
6
|
+
code: string;
|
|
7
|
+
map: SourceMap;
|
|
8
|
+
meta: {
|
|
9
|
+
nolaFunctions: string[];
|
|
10
|
+
spans: Span[];
|
|
11
|
+
/** verbatim-copied fragments inside replaced spans (full-feature editor mappings) */
|
|
12
|
+
anchors: Anchor[];
|
|
13
|
+
companions: string[];
|
|
14
|
+
mode: "lowered" | "bailed";
|
|
15
|
+
};
|
|
16
|
+
diagnostics: Diagnostic[];
|
|
17
|
+
}
|
|
18
|
+
export interface CompileOptions {
|
|
19
|
+
/** Project root; when set, emitted paths are made relative to it. */
|
|
20
|
+
sourceRoot?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Editor mode: parse with error recovery and lower every intact construct.
|
|
23
|
+
* Broken constructs keep their original bytes; parse diagnostics precede
|
|
24
|
+
* lowering diagnostics in the result. Default (strict) bails to source on
|
|
25
|
+
* any parse error, exactly as before.
|
|
26
|
+
*/
|
|
27
|
+
tolerant?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Policy when a `..`-contextual parameter's type cannot be derived into an
|
|
30
|
+
* intent schema (`compiler.underivableContextType` in nola.config.ts):
|
|
31
|
+
* "error" diagnoses NOLA2008, "prune" drops just the underivable members,
|
|
32
|
+
* "omit" drops the whole type silently. Default: "error". Plain (non-`..`)
|
|
33
|
+
* params are exempt in every mode — their type never describes a live value.
|
|
34
|
+
*/
|
|
35
|
+
underivableContextType?: UnderivableContextTypeMode;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,SAAS,CAAC;IACf,IAAI,EAAE;QACJ,aAAa,EAAE,MAAM,EAAE,CAAC;QACxB,KAAK,EAAE,IAAI,EAAE,CAAC;QACd,qFAAqF;QACrF,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC;KAC5B,CAAC;IACF,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;OAMG;IACH,sBAAsB,CAAC,EAAE,0BAA0B,CAAC;CACrD"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@nola-lang/compiler",
|
|
3
|
+
"version": "0.1.0-alpha.0",
|
|
4
|
+
"description": "Nola compiler: lowers .tsi to plain TypeScript with source maps (internal)",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"nola"
|
|
7
|
+
],
|
|
8
|
+
"license": "MIT",
|
|
9
|
+
"author": "Evgen Mykhailenko",
|
|
10
|
+
"homepage": "https://github.com/nola-lang/nola#readme",
|
|
11
|
+
"repository": {
|
|
12
|
+
"type": "git",
|
|
13
|
+
"url": "git+https://github.com/nola-lang/nola.git",
|
|
14
|
+
"directory": "packages/compiler"
|
|
15
|
+
},
|
|
16
|
+
"bugs": {
|
|
17
|
+
"url": "https://github.com/nola-lang/nola/issues"
|
|
18
|
+
},
|
|
19
|
+
"publishConfig": {
|
|
20
|
+
"access": "public"
|
|
21
|
+
},
|
|
22
|
+
"type": "module",
|
|
23
|
+
"exports": {
|
|
24
|
+
".": {
|
|
25
|
+
"types": "./dist/index.d.ts",
|
|
26
|
+
"default": "./dist/index.js"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"files": [
|
|
30
|
+
"dist"
|
|
31
|
+
],
|
|
32
|
+
"dependencies": {
|
|
33
|
+
"@jridgewell/sourcemap-codec": "^1.5.0",
|
|
34
|
+
"@nola-lang/ast": "0.1.0-alpha.0",
|
|
35
|
+
"@nola-lang/core": "0.1.0-alpha.0",
|
|
36
|
+
"@nola-lang/parser": "0.1.0-alpha.0",
|
|
37
|
+
"magic-string": "^0.30.0"
|
|
38
|
+
},
|
|
39
|
+
"devDependencies": {
|
|
40
|
+
"@jridgewell/trace-mapping": "^0.3.25"
|
|
41
|
+
},
|
|
42
|
+
"engines": {
|
|
43
|
+
"node": ">=22"
|
|
44
|
+
}
|
|
45
|
+
}
|