@frontiers-labs/argon 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/dist/index.js ADDED
@@ -0,0 +1,106 @@
1
+ #!/usr/bin/env node
2
+ import { readFileSync, writeFileSync, mkdirSync } from 'node:fs';
3
+ import { join, basename } from 'node:path';
4
+ import { parseModule } from './parser.js';
5
+ import { generateJS } from './codegen/js.js';
6
+ import { generateRust } from './codegen/rust.js';
7
+ import { transform } from 'lightningcss';
8
+ function usage() {
9
+ console.error('Usage: argon compile <input.ts> [--js] [--rust] [--out-dir <dir>] [--minify-css]\n' +
10
+ '\n' +
11
+ 'Options:\n' +
12
+ ' --js Emit only JavaScript output\n' +
13
+ ' --rust Emit only Rust output\n' +
14
+ ' --out-dir Directory to write output files (default: .)\n' +
15
+ ' --minify-css Minify CSS styles in emitted output\n' +
16
+ '\n' +
17
+ 'With neither --js nor --rust, both outputs are emitted.\n' +
18
+ '\n' +
19
+ 'Example:\n' +
20
+ ' argon compile components/dashboard-widget.ts --out-dir demo/src/components\n');
21
+ process.exit(1);
22
+ }
23
+ let argv = process.argv.slice(2);
24
+ if (argv.length === 0 || argv[0] === '--help')
25
+ usage();
26
+ // Skip optional 'compile' subcommand for forward-compatibility.
27
+ if (argv[0] === 'compile')
28
+ argv = argv.slice(1);
29
+ const inputFile = argv.find(a => !a.startsWith('--'));
30
+ if (!inputFile)
31
+ usage();
32
+ const outDirIdx = argv.indexOf('--out-dir');
33
+ const outDir = outDirIdx !== -1 ? argv[outDirIdx + 1] : '.';
34
+ const emitJS = argv.includes('--js') || (!argv.includes('--js') && !argv.includes('--rust'));
35
+ const emitRust = argv.includes('--rust') || (!argv.includes('--js') && !argv.includes('--rust'));
36
+ const minifyCSS = argv.includes('--minify-css');
37
+ if (!outDir) {
38
+ console.error('--out-dir requires a directory argument');
39
+ process.exit(1);
40
+ }
41
+ // ── Compile ────────────────────────────────────────────────────────────────────
42
+ const source = readFileSync(inputFile, 'utf-8');
43
+ let irModule;
44
+ try {
45
+ irModule = parseModule(source, inputFile);
46
+ }
47
+ catch (e) {
48
+ console.error(`Parse error in ${inputFile}:`);
49
+ console.error(e instanceof Error ? e.message : String(e));
50
+ process.exit(1);
51
+ }
52
+ mkdirSync(outDir, { recursive: true });
53
+ if (minifyCSS) {
54
+ try {
55
+ const { code } = transform({
56
+ filename: 'styles.css',
57
+ code: Buffer.from(irModule.component.styles),
58
+ minify: true,
59
+ });
60
+ irModule.component.styles = code.toString();
61
+ }
62
+ catch (e) {
63
+ console.error('CSS minification error:', e instanceof Error ? e.message : e);
64
+ process.exit(1);
65
+ }
66
+ }
67
+ const baseName = basename(inputFile, '.ts');
68
+ const rustIdent = baseName.replace(/-/g, '_');
69
+ // ── JS output ──────────────────────────────────────────────────────────────────
70
+ if (emitJS) {
71
+ try {
72
+ const js = generateJS(irModule);
73
+ const jsPath = join(outDir, `${baseName}.js`);
74
+ writeFileSync(jsPath, js, 'utf-8');
75
+ console.log(`✓ JS → ${jsPath}`);
76
+ }
77
+ catch (e) {
78
+ console.error('JS codegen error:', e instanceof Error ? e.message : e);
79
+ process.exit(1);
80
+ }
81
+ }
82
+ // ── Rust output ────────────────────────────────────────────────────────────────
83
+ if (emitRust) {
84
+ try {
85
+ const rust = generateRust(irModule);
86
+ const rsPath = join(outDir, `${rustIdent}.rs`);
87
+ writeFileSync(rsPath, rust, 'utf-8');
88
+ console.log(`✓ Rust → ${rsPath}`);
89
+ // Keep mod.rs in sync
90
+ const modPath = join(outDir, 'mod.rs');
91
+ const pubMod = `pub mod ${rustIdent};\n`;
92
+ let modContent = '';
93
+ try {
94
+ modContent = readFileSync(modPath, 'utf-8');
95
+ }
96
+ catch { /* file doesn't exist yet */ }
97
+ if (!modContent.includes(`pub mod ${rustIdent};`)) {
98
+ writeFileSync(modPath, modContent + pubMod, 'utf-8');
99
+ }
100
+ }
101
+ catch (e) {
102
+ console.error('Rust codegen error:', e instanceof Error ? e.message : e);
103
+ process.exit(1);
104
+ }
105
+ }
106
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/ir.d.ts ADDED
@@ -0,0 +1,194 @@
1
+ export type IrLiteral = {
2
+ kind: 'string';
3
+ value: string;
4
+ } | {
5
+ kind: 'number';
6
+ value: number;
7
+ } | {
8
+ kind: 'boolean';
9
+ value: boolean;
10
+ } | {
11
+ kind: 'array';
12
+ elements: IrLiteral[];
13
+ } | {
14
+ kind: 'object';
15
+ properties: {
16
+ key: string;
17
+ value: IrLiteral;
18
+ }[];
19
+ };
20
+ export interface IrArrowParam {
21
+ name: string;
22
+ destructured?: string[];
23
+ hasIndex?: boolean;
24
+ }
25
+ export type IrExpr = {
26
+ kind: 'self_field';
27
+ field: string;
28
+ } | {
29
+ kind: 'local_ref';
30
+ name: string;
31
+ } | {
32
+ kind: 'prop_access';
33
+ object: IrExpr;
34
+ property: string;
35
+ } | {
36
+ kind: 'index';
37
+ object: IrExpr;
38
+ index: IrExpr;
39
+ } | {
40
+ kind: 'call';
41
+ callee: string;
42
+ args: IrExpr[];
43
+ } | {
44
+ kind: 'method_call';
45
+ receiver: IrExpr;
46
+ method: string;
47
+ args: IrExpr[];
48
+ } | {
49
+ kind: 'arrow_fn';
50
+ params: IrArrowParam[];
51
+ body: IrExpr | IrStatement[];
52
+ } | {
53
+ kind: 'binary';
54
+ op: string;
55
+ left: IrExpr;
56
+ right: IrExpr;
57
+ } | {
58
+ kind: 'eq';
59
+ left: IrExpr;
60
+ right: IrExpr;
61
+ } | {
62
+ kind: 'ternary';
63
+ condition: IrExpr;
64
+ then: IrExpr;
65
+ else: IrExpr;
66
+ } | {
67
+ kind: 'array_literal';
68
+ elements: IrExpr[];
69
+ } | {
70
+ kind: 'object_literal';
71
+ properties: {
72
+ key: string;
73
+ value: IrExpr;
74
+ }[];
75
+ } | {
76
+ kind: 'spread';
77
+ expr: IrExpr;
78
+ } | {
79
+ kind: 'template_str';
80
+ parts: IrTemplatePart[];
81
+ } | {
82
+ kind: 'literal';
83
+ value: IrLiteral;
84
+ } | {
85
+ kind: 'as_expr';
86
+ expr: IrExpr;
87
+ };
88
+ export type IrTemplatePart = {
89
+ kind: 'static';
90
+ text: string;
91
+ } | {
92
+ kind: 'expr';
93
+ expr: IrExpr;
94
+ };
95
+ export type IrStatement = {
96
+ kind: 'const';
97
+ names: string[];
98
+ init: IrExpr;
99
+ } | {
100
+ kind: 'return';
101
+ value: IrExpr;
102
+ } | {
103
+ kind: 'expr_stmt';
104
+ expr: IrExpr;
105
+ };
106
+ export type IrType = {
107
+ kind: 'string';
108
+ } | {
109
+ kind: 'number';
110
+ } | {
111
+ kind: 'boolean';
112
+ } | {
113
+ kind: 'void';
114
+ } | {
115
+ kind: 'array';
116
+ element: IrType;
117
+ } | {
118
+ kind: 'record';
119
+ key: IrType;
120
+ value: IrType;
121
+ } | {
122
+ kind: 'tuple';
123
+ elements: IrType[];
124
+ } | {
125
+ kind: 'named';
126
+ name: string;
127
+ } | {
128
+ kind: 'object';
129
+ fields: IrInterfaceField[];
130
+ } | {
131
+ kind: 'unknown';
132
+ };
133
+ export interface IrInterfaceField {
134
+ name: string;
135
+ type: IrType;
136
+ optional: boolean;
137
+ }
138
+ export interface IrInterface {
139
+ name: string;
140
+ fields: IrInterfaceField[];
141
+ }
142
+ export interface IrDataConst {
143
+ name: string;
144
+ value: IrLiteral;
145
+ }
146
+ export interface IrFunctionParam {
147
+ name: string;
148
+ type: IrType;
149
+ }
150
+ export interface IrFunction {
151
+ name: string;
152
+ params: IrFunctionParam[];
153
+ returnType: IrType;
154
+ bodySource: string;
155
+ body: IrStatement[];
156
+ }
157
+ export interface IrProp {
158
+ name: string;
159
+ type: IrType;
160
+ defaultValue: IrLiteral;
161
+ }
162
+ export interface IrComponent {
163
+ tagName: string;
164
+ className: string;
165
+ props: IrProp[];
166
+ styles: string;
167
+ renderBindings: IrLocalBinding[];
168
+ renderTemplate: IrTemplateNode[];
169
+ renderBodySource: string;
170
+ hydrateBodySource: string;
171
+ privateMethods: {
172
+ name: string;
173
+ source: string;
174
+ }[];
175
+ }
176
+ export interface IrLocalBinding {
177
+ name: string;
178
+ init: IrExpr;
179
+ }
180
+ export type IrTemplateNode = {
181
+ kind: 'static';
182
+ text: string;
183
+ } | {
184
+ kind: 'expr';
185
+ expr: IrExpr;
186
+ };
187
+ export interface IrModule {
188
+ sourceFile: string;
189
+ interfaces: IrInterface[];
190
+ dataConsts: IrDataConst[];
191
+ functions: IrFunction[];
192
+ component: IrComponent;
193
+ }
194
+ //# sourceMappingURL=ir.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ir.d.ts","sourceRoot":"","sources":["../src/ir.ts"],"names":[],"mappings":"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"}
package/dist/ir.js ADDED
@@ -0,0 +1,3 @@
1
+ // Intermediate representation: the contract between the parser and both codegens.
2
+ export {};
3
+ //# sourceMappingURL=ir.js.map
package/dist/ir.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ir.js","sourceRoot":"","sources":["../src/ir.ts"],"names":[],"mappings":"AAAA,kFAAkF"}
@@ -0,0 +1,3 @@
1
+ import type { IrModule } from './ir.js';
2
+ export declare function parseModule(source: string, fileName: string): IrModule;
3
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,QAAQ,EAIT,MAAM,SAAS,CAAC;AAUjB,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,CA6CtE"}