@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.
Files changed (67) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +7 -0
  3. package/dist/ambient-stub.d.ts +8 -0
  4. package/dist/ambient-stub.d.ts.map +1 -0
  5. package/dist/ambient-stub.js +71 -0
  6. package/dist/ambient-stub.js.map +1 -0
  7. package/dist/companion-name.d.ts +22 -0
  8. package/dist/companion-name.d.ts.map +1 -0
  9. package/dist/companion-name.js +48 -0
  10. package/dist/companion-name.js.map +1 -0
  11. package/dist/companion.d.ts +22 -0
  12. package/dist/companion.d.ts.map +1 -0
  13. package/dist/companion.js +90 -0
  14. package/dist/companion.js.map +1 -0
  15. package/dist/compile.d.ts +3 -0
  16. package/dist/compile.d.ts.map +1 -0
  17. package/dist/compile.js +33 -0
  18. package/dist/compile.js.map +1 -0
  19. package/dist/index.d.ts +12 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +10 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/lower/Lowerer.d.ts +56 -0
  24. package/dist/lower/Lowerer.d.ts.map +1 -0
  25. package/dist/lower/Lowerer.js +353 -0
  26. package/dist/lower/Lowerer.js.map +1 -0
  27. package/dist/lower/index.d.ts +8 -0
  28. package/dist/lower/index.d.ts.map +1 -0
  29. package/dist/lower/index.js +5 -0
  30. package/dist/lower/index.js.map +1 -0
  31. package/dist/lower/lower.d.ts +2 -0
  32. package/dist/lower/lower.d.ts.map +1 -0
  33. package/dist/lower/lower.js +319 -0
  34. package/dist/lower/lower.js.map +1 -0
  35. package/dist/lower/templates.d.ts +61 -0
  36. package/dist/lower/templates.d.ts.map +1 -0
  37. package/dist/lower/templates.js +70 -0
  38. package/dist/lower/templates.js.map +1 -0
  39. package/dist/lower.d.ts +4 -0
  40. package/dist/lower.d.ts.map +1 -0
  41. package/dist/lower.js +322 -0
  42. package/dist/lower.js.map +1 -0
  43. package/dist/path.d.ts +16 -0
  44. package/dist/path.d.ts.map +1 -0
  45. package/dist/path.js +28 -0
  46. package/dist/path.js.map +1 -0
  47. package/dist/schema-expr.d.ts +61 -0
  48. package/dist/schema-expr.d.ts.map +1 -0
  49. package/dist/schema-expr.js +211 -0
  50. package/dist/schema-expr.js.map +1 -0
  51. package/dist/schema.d.ts +16 -0
  52. package/dist/schema.d.ts.map +1 -0
  53. package/dist/schema.js +152 -0
  54. package/dist/schema.js.map +1 -0
  55. package/dist/spans.d.ts +73 -0
  56. package/dist/spans.d.ts.map +1 -0
  57. package/dist/spans.js +169 -0
  58. package/dist/spans.js.map +1 -0
  59. package/dist/static-config.d.ts +15 -0
  60. package/dist/static-config.d.ts.map +1 -0
  61. package/dist/static-config.js +93 -0
  62. package/dist/static-config.js.map +1 -0
  63. package/dist/types.d.ts +37 -0
  64. package/dist/types.d.ts.map +1 -0
  65. package/dist/types.js +2 -0
  66. package/dist/types.js.map +1 -0
  67. 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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"}
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -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
+ }