@manifesto-ai/compiler 1.6.2 → 1.8.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 +67 -18
- package/dist/chunk-BH25NHMN.js +74 -0
- package/dist/chunk-BH25NHMN.js.map +1 -0
- package/dist/chunk-D62NIFP4.js +33 -0
- package/dist/chunk-D62NIFP4.js.map +1 -0
- package/dist/chunk-MKLDAZ2Z.js +6920 -0
- package/dist/chunk-MKLDAZ2Z.js.map +1 -0
- package/dist/esbuild.d.ts +8 -0
- package/dist/esbuild.js +14 -0
- package/dist/esbuild.js.map +1 -0
- package/dist/index.d.ts +2810 -11
- package/dist/index.js +2425 -43
- package/dist/index.js.map +1 -1
- package/dist/node-loader.d.ts +18 -0
- package/dist/node-loader.js +47 -0
- package/dist/node-loader.js.map +1 -0
- package/dist/rollup.d.ts +8 -0
- package/dist/rollup.js +14 -0
- package/dist/rollup.js.map +1 -0
- package/dist/rspack.d.ts +7 -0
- package/dist/rspack.js +14 -0
- package/dist/rspack.js.map +1 -0
- package/dist/unplugin-6wnvFiEo.d.ts +17 -0
- package/dist/vite.d.ts +8 -17
- package/dist/vite.js +13 -33
- package/dist/vite.js.map +1 -1
- package/dist/webpack.d.ts +8 -0
- package/dist/webpack.js +14 -0
- package/dist/webpack.js.map +1 -0
- package/package.json +40 -22
- package/dist/analyzer/index.d.ts +0 -6
- package/dist/analyzer/index.d.ts.map +0 -1
- package/dist/analyzer/index.js +0 -6
- package/dist/analyzer/index.js.map +0 -1
- package/dist/analyzer/scope.d.ts +0 -77
- package/dist/analyzer/scope.d.ts.map +0 -1
- package/dist/analyzer/scope.js +0 -296
- package/dist/analyzer/scope.js.map +0 -1
- package/dist/analyzer/validator.d.ts +0 -60
- package/dist/analyzer/validator.d.ts.map +0 -1
- package/dist/analyzer/validator.js +0 -439
- package/dist/analyzer/validator.js.map +0 -1
- package/dist/api/compile-mel-patch-collector.d.ts +0 -32
- package/dist/api/compile-mel-patch-collector.d.ts.map +0 -1
- package/dist/api/compile-mel-patch-collector.js +0 -425
- package/dist/api/compile-mel-patch-collector.js.map +0 -1
- package/dist/api/compile-mel-patch-expr.d.ts +0 -9
- package/dist/api/compile-mel-patch-expr.d.ts.map +0 -1
- package/dist/api/compile-mel-patch-expr.js +0 -179
- package/dist/api/compile-mel-patch-expr.js.map +0 -1
- package/dist/api/compile-mel-patch-location.d.ts +0 -10
- package/dist/api/compile-mel-patch-location.d.ts.map +0 -1
- package/dist/api/compile-mel-patch-location.js +0 -48
- package/dist/api/compile-mel-patch-location.js.map +0 -1
- package/dist/api/compile-mel-patch.d.ts +0 -6
- package/dist/api/compile-mel-patch.d.ts.map +0 -1
- package/dist/api/compile-mel-patch.js +0 -244
- package/dist/api/compile-mel-patch.js.map +0 -1
- package/dist/api/compile-mel.d.ts +0 -126
- package/dist/api/compile-mel.d.ts.map +0 -1
- package/dist/api/compile-mel.js +0 -114
- package/dist/api/compile-mel.js.map +0 -1
- package/dist/api/index.d.ts +0 -10
- package/dist/api/index.d.ts.map +0 -1
- package/dist/api/index.js +0 -9
- package/dist/api/index.js.map +0 -1
- package/dist/diagnostics/codes.d.ts +0 -25
- package/dist/diagnostics/codes.d.ts.map +0 -1
- package/dist/diagnostics/codes.js +0 -154
- package/dist/diagnostics/codes.js.map +0 -1
- package/dist/diagnostics/index.d.ts +0 -6
- package/dist/diagnostics/index.d.ts.map +0 -1
- package/dist/diagnostics/index.js +0 -6
- package/dist/diagnostics/index.js.map +0 -1
- package/dist/diagnostics/types.d.ts +0 -67
- package/dist/diagnostics/types.d.ts.map +0 -1
- package/dist/diagnostics/types.js +0 -58
- package/dist/diagnostics/types.js.map +0 -1
- package/dist/evaluation/context.d.ts +0 -91
- package/dist/evaluation/context.d.ts.map +0 -1
- package/dist/evaluation/context.js +0 -53
- package/dist/evaluation/context.js.map +0 -1
- package/dist/evaluation/evaluate-expr.d.ts +0 -24
- package/dist/evaluation/evaluate-expr.d.ts.map +0 -1
- package/dist/evaluation/evaluate-expr.js +0 -577
- package/dist/evaluation/evaluate-expr.js.map +0 -1
- package/dist/evaluation/evaluate-patch.d.ts +0 -123
- package/dist/evaluation/evaluate-patch.d.ts.map +0 -1
- package/dist/evaluation/evaluate-patch.js +0 -202
- package/dist/evaluation/evaluate-patch.js.map +0 -1
- package/dist/evaluation/evaluate-runtime-patch.d.ts +0 -86
- package/dist/evaluation/evaluate-runtime-patch.d.ts.map +0 -1
- package/dist/evaluation/evaluate-runtime-patch.js +0 -185
- package/dist/evaluation/evaluate-runtime-patch.js.map +0 -1
- package/dist/evaluation/index.d.ts +0 -15
- package/dist/evaluation/index.d.ts.map +0 -1
- package/dist/evaluation/index.js +0 -13
- package/dist/evaluation/index.js.map +0 -1
- package/dist/generator/index.d.ts +0 -7
- package/dist/generator/index.d.ts.map +0 -1
- package/dist/generator/index.js +0 -7
- package/dist/generator/index.js.map +0 -1
- package/dist/generator/ir.d.ts +0 -348
- package/dist/generator/ir.d.ts.map +0 -1
- package/dist/generator/ir.js +0 -715
- package/dist/generator/ir.js.map +0 -1
- package/dist/generator/lowering.d.ts +0 -11
- package/dist/generator/lowering.d.ts.map +0 -1
- package/dist/generator/lowering.js +0 -369
- package/dist/generator/lowering.js.map +0 -1
- package/dist/generator/normalizer.d.ts +0 -16
- package/dist/generator/normalizer.d.ts.map +0 -1
- package/dist/generator/normalizer.js +0 -181
- package/dist/generator/normalizer.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/lexer/index.d.ts +0 -7
- package/dist/lexer/index.d.ts.map +0 -1
- package/dist/lexer/index.js +0 -7
- package/dist/lexer/index.js.map +0 -1
- package/dist/lexer/lexer.d.ts +0 -59
- package/dist/lexer/lexer.d.ts.map +0 -1
- package/dist/lexer/lexer.js +0 -433
- package/dist/lexer/lexer.js.map +0 -1
- package/dist/lexer/source-location.d.ts +0 -41
- package/dist/lexer/source-location.d.ts.map +0 -1
- package/dist/lexer/source-location.js +0 -33
- package/dist/lexer/source-location.js.map +0 -1
- package/dist/lexer/tokens.d.ts +0 -47
- package/dist/lexer/tokens.d.ts.map +0 -1
- package/dist/lexer/tokens.js +0 -73
- package/dist/lexer/tokens.js.map +0 -1
- package/dist/loader.d.ts +0 -23
- package/dist/loader.d.ts.map +0 -1
- package/dist/loader.js +0 -62
- package/dist/loader.js.map +0 -1
- package/dist/lowering/context.d.ts +0 -96
- package/dist/lowering/context.d.ts.map +0 -1
- package/dist/lowering/context.js +0 -42
- package/dist/lowering/context.js.map +0 -1
- package/dist/lowering/errors.d.ts +0 -84
- package/dist/lowering/errors.d.ts.map +0 -1
- package/dist/lowering/errors.js +0 -81
- package/dist/lowering/errors.js.map +0 -1
- package/dist/lowering/index.d.ts +0 -20
- package/dist/lowering/index.d.ts.map +0 -1
- package/dist/lowering/index.js +0 -13
- package/dist/lowering/index.js.map +0 -1
- package/dist/lowering/lower-expr.d.ts +0 -76
- package/dist/lowering/lower-expr.d.ts.map +0 -1
- package/dist/lowering/lower-expr.js +0 -366
- package/dist/lowering/lower-expr.js.map +0 -1
- package/dist/lowering/lower-patch.d.ts +0 -231
- package/dist/lowering/lower-patch.d.ts.map +0 -1
- package/dist/lowering/lower-patch.js +0 -146
- package/dist/lowering/lower-patch.js.map +0 -1
- package/dist/lowering/lower-runtime-patch.d.ts +0 -100
- package/dist/lowering/lower-runtime-patch.d.ts.map +0 -1
- package/dist/lowering/lower-runtime-patch.js +0 -49
- package/dist/lowering/lower-runtime-patch.js.map +0 -1
- package/dist/mel-module.d.ts +0 -13
- package/dist/mel-module.d.ts.map +0 -1
- package/dist/mel-module.js +0 -33
- package/dist/mel-module.js.map +0 -1
- package/dist/parser/ast.d.ts +0 -344
- package/dist/parser/ast.d.ts.map +0 -1
- package/dist/parser/ast.js +0 -24
- package/dist/parser/ast.js.map +0 -1
- package/dist/parser/index.d.ts +0 -7
- package/dist/parser/index.d.ts.map +0 -1
- package/dist/parser/index.js +0 -7
- package/dist/parser/index.js.map +0 -1
- package/dist/parser/parser.d.ts +0 -92
- package/dist/parser/parser.d.ts.map +0 -1
- package/dist/parser/parser.js +0 -892
- package/dist/parser/parser.js.map +0 -1
- package/dist/parser/precedence.d.ts +0 -44
- package/dist/parser/precedence.d.ts.map +0 -1
- package/dist/parser/precedence.js +0 -69
- package/dist/parser/precedence.js.map +0 -1
- package/dist/renderer/expr-node.d.ts +0 -172
- package/dist/renderer/expr-node.d.ts.map +0 -1
- package/dist/renderer/expr-node.js +0 -218
- package/dist/renderer/expr-node.js.map +0 -1
- package/dist/renderer/fragment.d.ts +0 -84
- package/dist/renderer/fragment.d.ts.map +0 -1
- package/dist/renderer/fragment.js +0 -172
- package/dist/renderer/fragment.js.map +0 -1
- package/dist/renderer/index.d.ts +0 -23
- package/dist/renderer/index.d.ts.map +0 -1
- package/dist/renderer/index.js +0 -27
- package/dist/renderer/index.js.map +0 -1
- package/dist/renderer/patch-op.d.ts +0 -82
- package/dist/renderer/patch-op.d.ts.map +0 -1
- package/dist/renderer/patch-op.js +0 -204
- package/dist/renderer/patch-op.js.map +0 -1
- package/dist/renderer/type-expr.d.ts +0 -61
- package/dist/renderer/type-expr.d.ts.map +0 -1
- package/dist/renderer/type-expr.js +0 -131
- package/dist/renderer/type-expr.js.map +0 -1
- package/dist/vite.d.ts.map +0 -1
- package/loader.cjs +0 -22
package/README.md
CHANGED
|
@@ -46,13 +46,14 @@ pnpm add -D @manifesto-ai/compiler
|
|
|
46
46
|
|
|
47
47
|
---
|
|
48
48
|
|
|
49
|
-
## Bundler
|
|
49
|
+
## Bundler Integration (unplugin)
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
The compiler uses [unplugin](https://github.com/unjs/unplugin) to provide a unified MEL plugin for all major bundlers. One implementation, every bundler.
|
|
52
52
|
|
|
53
53
|
### Vite
|
|
54
54
|
|
|
55
55
|
```typescript
|
|
56
|
+
// vite.config.ts
|
|
56
57
|
import { defineConfig } from "vite";
|
|
57
58
|
import { melPlugin } from "@manifesto-ai/compiler/vite";
|
|
58
59
|
|
|
@@ -61,28 +62,75 @@ export default defineConfig({
|
|
|
61
62
|
});
|
|
62
63
|
```
|
|
63
64
|
|
|
64
|
-
###
|
|
65
|
+
### Next.js / Webpack
|
|
65
66
|
|
|
66
|
-
```
|
|
67
|
-
|
|
67
|
+
```javascript
|
|
68
|
+
// next.config.js
|
|
69
|
+
const mel = require("@manifesto-ai/compiler/webpack");
|
|
70
|
+
|
|
71
|
+
module.exports = {
|
|
72
|
+
webpack: (config) => {
|
|
73
|
+
config.plugins.push(mel());
|
|
74
|
+
return config;
|
|
75
|
+
},
|
|
76
|
+
};
|
|
68
77
|
```
|
|
69
78
|
|
|
70
|
-
###
|
|
79
|
+
### Rollup
|
|
71
80
|
|
|
72
81
|
```javascript
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
82
|
+
// rollup.config.js
|
|
83
|
+
import { melPlugin } from "@manifesto-ai/compiler/rollup";
|
|
84
|
+
|
|
85
|
+
export default { plugins: [melPlugin()] };
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### esbuild
|
|
89
|
+
|
|
90
|
+
```javascript
|
|
91
|
+
import { melPlugin } from "@manifesto-ai/compiler/esbuild";
|
|
92
|
+
|
|
93
|
+
await esbuild.build({ plugins: [melPlugin()] });
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Rspack
|
|
97
|
+
|
|
98
|
+
```javascript
|
|
99
|
+
const mel = require("@manifesto-ai/compiler/rspack");
|
|
100
|
+
|
|
101
|
+
module.exports = { plugins: [mel()] };
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Node / tsx (ESM Loader)
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
npx tsx --loader @manifesto-ai/compiler/node-loader main.ts
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Plugin Options
|
|
111
|
+
|
|
112
|
+
```typescript
|
|
113
|
+
melPlugin({
|
|
114
|
+
include: /\.mel$/, // File filter (default: /\.mel$/)
|
|
115
|
+
codegen: { // Optional: auto-generate types
|
|
116
|
+
outDir: "src/generated", // Output directory
|
|
117
|
+
plugins: [/* custom */], // Defaults to TS + Zod plugins
|
|
81
118
|
},
|
|
82
|
-
};
|
|
119
|
+
});
|
|
83
120
|
```
|
|
84
121
|
|
|
85
|
-
`
|
|
122
|
+
The `codegen` option requires `@manifesto-ai/codegen` as a peer dependency. When enabled, TypeScript types and Zod schemas are generated automatically at build time.
|
|
123
|
+
|
|
124
|
+
### Subpath Exports
|
|
125
|
+
|
|
126
|
+
| Export | Bundler |
|
|
127
|
+
| --- | --- |
|
|
128
|
+
| `@manifesto-ai/compiler/vite` | Vite |
|
|
129
|
+
| `@manifesto-ai/compiler/webpack` | Webpack / Next.js |
|
|
130
|
+
| `@manifesto-ai/compiler/rollup` | Rollup |
|
|
131
|
+
| `@manifesto-ai/compiler/esbuild` | esbuild |
|
|
132
|
+
| `@manifesto-ai/compiler/rspack` | Rspack |
|
|
133
|
+
| `@manifesto-ai/compiler/node-loader` | Node ESM loader hooks |
|
|
86
134
|
|
|
87
135
|
---
|
|
88
136
|
|
|
@@ -142,8 +190,9 @@ type CompileOptions = {
|
|
|
142
190
|
| [MEL Syntax](../../docs/mel/SYNTAX.md) | Grammar and syntax |
|
|
143
191
|
| [MEL Examples](../../docs/mel/EXAMPLES.md) | Example library |
|
|
144
192
|
| [MEL Error Guide](../../docs/mel/ERROR-GUIDE.md) | Error codes and fixes |
|
|
145
|
-
| [Compiler Spec](docs/SPEC.md) | Full compiler and MEL spec |
|
|
146
|
-
| [Compiler FDR](docs/FDR-
|
|
193
|
+
| [Compiler Spec](docs/SPEC-v0.7.0.md) | Full compiler and MEL spec |
|
|
194
|
+
| [Compiler FDR](docs/FDR-v0.5.0.md) | Design rationale |
|
|
195
|
+
| [Compiler Compliance Suite](docs/compiler-SPEC-compilance-test-suite.md) | CCTS structure, rule modes, and execution guide |
|
|
147
196
|
|
|
148
197
|
---
|
|
149
198
|
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import {
|
|
2
|
+
formatDiagnostic
|
|
3
|
+
} from "./chunk-D62NIFP4.js";
|
|
4
|
+
import {
|
|
5
|
+
compileMelDomain
|
|
6
|
+
} from "./chunk-MKLDAZ2Z.js";
|
|
7
|
+
|
|
8
|
+
// src/unplugin.ts
|
|
9
|
+
import { createUnplugin } from "unplugin";
|
|
10
|
+
function normalizeId(id) {
|
|
11
|
+
return id.split("?", 1)[0];
|
|
12
|
+
}
|
|
13
|
+
function testRegex(regex, value) {
|
|
14
|
+
regex.lastIndex = 0;
|
|
15
|
+
return regex.test(value);
|
|
16
|
+
}
|
|
17
|
+
var unpluginMel = createUnplugin((options = {}) => {
|
|
18
|
+
const include = options.include ?? /\.mel$/;
|
|
19
|
+
const compiledSchemas = /* @__PURE__ */ new Map();
|
|
20
|
+
return {
|
|
21
|
+
name: "manifesto:mel",
|
|
22
|
+
enforce: "pre",
|
|
23
|
+
transformInclude(id) {
|
|
24
|
+
return testRegex(include, normalizeId(id));
|
|
25
|
+
},
|
|
26
|
+
transform(source, id) {
|
|
27
|
+
const sourceId = normalizeId(id);
|
|
28
|
+
const result = compileMelDomain(source, { mode: "domain" });
|
|
29
|
+
if (result.errors.length > 0) {
|
|
30
|
+
const details = result.errors.map(formatDiagnostic).join("\n");
|
|
31
|
+
throw new Error(`MEL compilation failed for ${sourceId}
|
|
32
|
+
${details}`);
|
|
33
|
+
}
|
|
34
|
+
if (!result.schema) {
|
|
35
|
+
throw new Error(`MEL compilation produced no schema for ${sourceId}`);
|
|
36
|
+
}
|
|
37
|
+
if (options.codegen) {
|
|
38
|
+
compiledSchemas.set(sourceId, result.schema);
|
|
39
|
+
}
|
|
40
|
+
const serializedSchema = JSON.stringify(result.schema, null, 2);
|
|
41
|
+
return `export default ${serializedSchema};
|
|
42
|
+
`;
|
|
43
|
+
},
|
|
44
|
+
async buildEnd() {
|
|
45
|
+
if (!options.codegen || compiledSchemas.size === 0) return;
|
|
46
|
+
let codegen;
|
|
47
|
+
try {
|
|
48
|
+
codegen = await import("@manifesto-ai/codegen");
|
|
49
|
+
} catch {
|
|
50
|
+
console.warn(
|
|
51
|
+
"[manifesto:mel] codegen option is enabled but @manifesto-ai/codegen is not installed. Skipping."
|
|
52
|
+
);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
const plugins = options.codegen.plugins ?? [
|
|
56
|
+
codegen.createTsPlugin(),
|
|
57
|
+
codegen.createZodPlugin()
|
|
58
|
+
];
|
|
59
|
+
for (const [sourceId, schema] of compiledSchemas) {
|
|
60
|
+
await codegen.generate({
|
|
61
|
+
schema,
|
|
62
|
+
outDir: options.codegen.outDir,
|
|
63
|
+
plugins,
|
|
64
|
+
sourceId
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
export {
|
|
72
|
+
unpluginMel
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=chunk-BH25NHMN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/unplugin.ts"],"sourcesContent":["/**\n * Unified MEL plugin via unplugin.\n *\n * Single implementation that targets Vite, Webpack, Rollup, esbuild, and Rspack.\n */\n\nimport { createUnplugin } from \"unplugin\";\nimport type { DomainSchema } from \"@manifesto-ai/core\";\nimport { compileMelDomain } from \"./api/index.js\";\nimport { formatDiagnostic } from \"./mel-module.js\";\n\nexport type MelCodegenOptions = {\n readonly outDir: string;\n readonly plugins?: readonly import(\"@manifesto-ai/codegen\").CodegenPlugin[];\n};\n\nexport type MelPluginOptions = {\n readonly include?: RegExp;\n readonly codegen?: MelCodegenOptions | false;\n};\n\nfunction normalizeId(id: string): string {\n return id.split(\"?\", 1)[0];\n}\n\nfunction testRegex(regex: RegExp, value: string): boolean {\n regex.lastIndex = 0;\n return regex.test(value);\n}\n\nexport const unpluginMel = createUnplugin((options: MelPluginOptions = {}) => {\n const include = options.include ?? /\\.mel$/;\n const compiledSchemas = new Map<string, DomainSchema>();\n\n return {\n name: \"manifesto:mel\",\n enforce: \"pre\" as const,\n\n transformInclude(id: string) {\n return testRegex(include, normalizeId(id));\n },\n\n transform(source: string, id: string) {\n const sourceId = normalizeId(id);\n const result = compileMelDomain(source, { mode: \"domain\" });\n\n if (result.errors.length > 0) {\n const details = result.errors.map(formatDiagnostic).join(\"\\n\");\n throw new Error(`MEL compilation failed for ${sourceId}\\n${details}`);\n }\n\n if (!result.schema) {\n throw new Error(`MEL compilation produced no schema for ${sourceId}`);\n }\n\n if (options.codegen) {\n compiledSchemas.set(sourceId, result.schema);\n }\n\n const serializedSchema = JSON.stringify(result.schema, null, 2);\n return `export default ${serializedSchema};\\n`;\n },\n\n async buildEnd() {\n if (!options.codegen || compiledSchemas.size === 0) return;\n\n let codegen: typeof import(\"@manifesto-ai/codegen\");\n try {\n codegen = await import(\"@manifesto-ai/codegen\");\n } catch {\n console.warn(\n \"[manifesto:mel] codegen option is enabled but @manifesto-ai/codegen is not installed. Skipping.\"\n );\n return;\n }\n\n const plugins = options.codegen.plugins ?? [\n codegen.createTsPlugin(),\n codegen.createZodPlugin(),\n ];\n\n for (const [sourceId, schema] of compiledSchemas) {\n await codegen.generate({\n schema,\n outDir: options.codegen.outDir,\n plugins,\n sourceId,\n });\n }\n },\n };\n});\n"],"mappings":";;;;;;;;AAMA,SAAS,sBAAsB;AAe/B,SAAS,YAAY,IAAoB;AACvC,SAAO,GAAG,MAAM,KAAK,CAAC,EAAE,CAAC;AAC3B;AAEA,SAAS,UAAU,OAAe,OAAwB;AACxD,QAAM,YAAY;AAClB,SAAO,MAAM,KAAK,KAAK;AACzB;AAEO,IAAM,cAAc,eAAe,CAAC,UAA4B,CAAC,MAAM;AAC5E,QAAM,UAAU,QAAQ,WAAW;AACnC,QAAM,kBAAkB,oBAAI,IAA0B;AAEtD,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IAET,iBAAiB,IAAY;AAC3B,aAAO,UAAU,SAAS,YAAY,EAAE,CAAC;AAAA,IAC3C;AAAA,IAEA,UAAU,QAAgB,IAAY;AACpC,YAAM,WAAW,YAAY,EAAE;AAC/B,YAAM,SAAS,iBAAiB,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE1D,UAAI,OAAO,OAAO,SAAS,GAAG;AAC5B,cAAM,UAAU,OAAO,OAAO,IAAI,gBAAgB,EAAE,KAAK,IAAI;AAC7D,cAAM,IAAI,MAAM,8BAA8B,QAAQ;AAAA,EAAK,OAAO,EAAE;AAAA,MACtE;AAEA,UAAI,CAAC,OAAO,QAAQ;AAClB,cAAM,IAAI,MAAM,0CAA0C,QAAQ,EAAE;AAAA,MACtE;AAEA,UAAI,QAAQ,SAAS;AACnB,wBAAgB,IAAI,UAAU,OAAO,MAAM;AAAA,MAC7C;AAEA,YAAM,mBAAmB,KAAK,UAAU,OAAO,QAAQ,MAAM,CAAC;AAC9D,aAAO,kBAAkB,gBAAgB;AAAA;AAAA,IAC3C;AAAA,IAEA,MAAM,WAAW;AACf,UAAI,CAAC,QAAQ,WAAW,gBAAgB,SAAS,EAAG;AAEpD,UAAI;AACJ,UAAI;AACF,kBAAU,MAAM,OAAO,uBAAuB;AAAA,MAChD,QAAQ;AACN,gBAAQ;AAAA,UACN;AAAA,QACF;AACA;AAAA,MACF;AAEA,YAAM,UAAU,QAAQ,QAAQ,WAAW;AAAA,QACzC,QAAQ,eAAe;AAAA,QACvB,QAAQ,gBAAgB;AAAA,MAC1B;AAEA,iBAAW,CAAC,UAAU,MAAM,KAAK,iBAAiB;AAChD,cAAM,QAAQ,SAAS;AAAA,UACrB;AAAA,UACA,QAAQ,QAAQ,QAAQ;AAAA,UACxB;AAAA,UACA;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AACF,CAAC;","names":[]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import {
|
|
2
|
+
compileMelDomain
|
|
3
|
+
} from "./chunk-MKLDAZ2Z.js";
|
|
4
|
+
|
|
5
|
+
// src/mel-module.ts
|
|
6
|
+
function formatDiagnostic(diagnostic) {
|
|
7
|
+
const location = diagnostic.location;
|
|
8
|
+
if (!location) {
|
|
9
|
+
return `[${diagnostic.code}] ${diagnostic.message}`;
|
|
10
|
+
}
|
|
11
|
+
const { line, column } = location.start;
|
|
12
|
+
return `[${diagnostic.code}] ${diagnostic.message} (${line}:${column})`;
|
|
13
|
+
}
|
|
14
|
+
function compileMelToModuleCode(melSource, sourceId) {
|
|
15
|
+
const result = compileMelDomain(melSource, { mode: "domain" });
|
|
16
|
+
if (result.errors.length > 0) {
|
|
17
|
+
const details = result.errors.map(formatDiagnostic).join("\n");
|
|
18
|
+
throw new Error(`MEL compilation failed for ${sourceId}
|
|
19
|
+
${details}`);
|
|
20
|
+
}
|
|
21
|
+
if (!result.schema) {
|
|
22
|
+
throw new Error(`MEL compilation produced no schema for ${sourceId}`);
|
|
23
|
+
}
|
|
24
|
+
const serializedSchema = JSON.stringify(result.schema, null, 2);
|
|
25
|
+
return `export default ${serializedSchema};
|
|
26
|
+
`;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export {
|
|
30
|
+
formatDiagnostic,
|
|
31
|
+
compileMelToModuleCode
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=chunk-D62NIFP4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/mel-module.ts"],"sourcesContent":["/**\n * MEL Module Helpers\n *\n * Utilities for turning MEL source into JavaScript module code.\n */\n\nimport type { Diagnostic } from \"./diagnostics/types.js\";\nimport { compileMelDomain } from \"./api/index.js\";\n\nexport function formatDiagnostic(diagnostic: Diagnostic): string {\n const location = diagnostic.location;\n\n if (!location) {\n return `[${diagnostic.code}] ${diagnostic.message}`;\n }\n\n const { line, column } = location.start;\n return `[${diagnostic.code}] ${diagnostic.message} (${line}:${column})`;\n}\n\n/**\n * Compile MEL source and emit ESM source that exports the compiled schema.\n *\n * @param melSource - MEL domain source text\n * @param sourceId - Human-readable source identifier for diagnostics\n */\nexport function compileMelToModuleCode(melSource: string, sourceId: string): string {\n const result = compileMelDomain(melSource, { mode: \"domain\" });\n\n if (result.errors.length > 0) {\n const details = result.errors.map(formatDiagnostic).join(\"\\n\");\n throw new Error(`MEL compilation failed for ${sourceId}\\n${details}`);\n }\n\n if (!result.schema) {\n throw new Error(`MEL compilation produced no schema for ${sourceId}`);\n }\n\n const serializedSchema = JSON.stringify(result.schema, null, 2);\n return `export default ${serializedSchema};\\n`;\n}\n\n"],"mappings":";;;;;AASO,SAAS,iBAAiB,YAAgC;AAC/D,QAAM,WAAW,WAAW;AAE5B,MAAI,CAAC,UAAU;AACb,WAAO,IAAI,WAAW,IAAI,KAAK,WAAW,OAAO;AAAA,EACnD;AAEA,QAAM,EAAE,MAAM,OAAO,IAAI,SAAS;AAClC,SAAO,IAAI,WAAW,IAAI,KAAK,WAAW,OAAO,KAAK,IAAI,IAAI,MAAM;AACtE;AAQO,SAAS,uBAAuB,WAAmB,UAA0B;AAClF,QAAM,SAAS,iBAAiB,WAAW,EAAE,MAAM,SAAS,CAAC;AAE7D,MAAI,OAAO,OAAO,SAAS,GAAG;AAC5B,UAAM,UAAU,OAAO,OAAO,IAAI,gBAAgB,EAAE,KAAK,IAAI;AAC7D,UAAM,IAAI,MAAM,8BAA8B,QAAQ;AAAA,EAAK,OAAO,EAAE;AAAA,EACtE;AAEA,MAAI,CAAC,OAAO,QAAQ;AAClB,UAAM,IAAI,MAAM,0CAA0C,QAAQ,EAAE;AAAA,EACtE;AAEA,QAAM,mBAAmB,KAAK,UAAU,OAAO,QAAQ,MAAM,CAAC;AAC9D,SAAO,kBAAkB,gBAAgB;AAAA;AAC3C;","names":[]}
|