coffeehaml 0.4.1 → 0.5.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 +28 -9
- package/dist/ast.d.ts +3 -1
- package/dist/ast.d.ts.map +1 -1
- package/dist/ast.js +2 -1
- package/dist/ast.js.map +1 -1
- package/dist/cli.js +131 -35
- package/dist/cli.js.map +1 -1
- package/dist/emitter.d.ts.map +1 -1
- package/dist/emitter.js +101 -50
- package/dist/emitter.js.map +1 -1
- package/dist/expressions.d.ts +7 -4
- package/dist/expressions.d.ts.map +1 -1
- package/dist/expressions.js +20 -7
- package/dist/expressions.js.map +1 -1
- package/dist/lexer.d.ts.map +1 -1
- package/dist/lexer.js +26 -21
- package/dist/lexer.js.map +1 -1
- package/dist/parser.js +8 -1
- package/dist/parser.js.map +1 -1
- package/package.json +2 -2
- package/dist/parser.js.bak +0 -431
package/README.md
CHANGED
|
@@ -79,9 +79,19 @@ expressions like `{onClick: handler}` or `{disabled: !connected}`).
|
|
|
79
79
|
### CLI
|
|
80
80
|
|
|
81
81
|
```bash
|
|
82
|
-
|
|
82
|
+
# One-shot compile
|
|
83
|
+
npx coffeehaml compile app.chaml -o app.js --wrap component
|
|
84
|
+
|
|
85
|
+
# Watch mode — recompiles on every change
|
|
86
|
+
npx coffeehaml watch src/ --wrap observer
|
|
83
87
|
```
|
|
84
88
|
|
|
89
|
+
| Flag | Description |
|
|
90
|
+
|------|-------------|
|
|
91
|
+
| `-o`, `--output` | Write output to file |
|
|
92
|
+
| `--source-map` | Emit inline source map |
|
|
93
|
+
| `--wrap <mode>` | Wrap mode: `component`, `observer`, or comma-separated HOC list |
|
|
94
|
+
|
|
85
95
|
Accepts `.coffeehaml`, `.cohaml`, and `.chaml` extensions.
|
|
86
96
|
|
|
87
97
|
### Vite plugin
|
|
@@ -120,8 +130,9 @@ console.log(result.code);
|
|
|
120
130
|
| `#id` | Element ID |
|
|
121
131
|
| `{attr: val}` / `(attr: val)` | Attributes (CoffeeScript expressions) |
|
|
122
132
|
| `{onClick}` | Shorthand — `onClick={onClick}` |
|
|
123
|
-
| `= expression` | Inline output (escaped) |
|
|
133
|
+
| `= expression` | Inline output (escaped); continuation via indented lines |
|
|
124
134
|
| `- if`, `- unless` | Conditional |
|
|
135
|
+
| `- code` | Arbitrary CoffeeScript statements; continuation via indented lines |
|
|
125
136
|
| `- for x in xs` | Loop → `.map()` |
|
|
126
137
|
| `- else`, `- else if` | Chain conditionals |
|
|
127
138
|
| `-# comment` | Haml comment (stripped) |
|
|
@@ -136,7 +147,8 @@ Full grammar: [`docs/grammar.md`](docs/grammar.md)
|
|
|
136
147
|
|
|
137
148
|
- **Zero runtime** — the compiler is the only artifact
|
|
138
149
|
- **Emitter-agnostic AST** — future backends possible (Solid, Vue, Mithril)
|
|
139
|
-
- **
|
|
150
|
+
- **Source-located errors** — line/column hints for every compile failure
|
|
151
|
+
- **Source maps** — debug in CoffeeHaml, not generated JS
|
|
140
152
|
- **Incremental compilation** — Vite HMR out of the box
|
|
141
153
|
- **No invention** — reuse Haml and CoffeeScript conventions
|
|
142
154
|
|
|
@@ -144,24 +156,31 @@ Full grammar: [`docs/grammar.md`](docs/grammar.md)
|
|
|
144
156
|
|
|
145
157
|
## Status
|
|
146
158
|
|
|
147
|
-
**v0.
|
|
148
|
-
|
|
149
|
-
|
|
159
|
+
**v0.5.0 — production beta.** The compiler pipeline (Lexer → Parser → Emitter)
|
|
160
|
+
is complete. Source maps, component wrapping, spread attributes, statement/expression
|
|
161
|
+
continuation, and source-located errors are all functional.
|
|
150
162
|
|
|
151
163
|
| Feature | Status |
|
|
152
164
|
|---------|--------|
|
|
153
165
|
| Elements, components, implicit divs | ✅ |
|
|
154
166
|
| `.class` / `#id` modifiers | ✅ |
|
|
155
|
-
| `{attr: val}` / `(attr: val)`
|
|
167
|
+
| `{attr: val}` / `(attr: val)` + spread `{props...}` | ✅ |
|
|
156
168
|
| Inline `= expression` output | ✅ |
|
|
169
|
+
| `=` expression continuation (indented) | ✅ |
|
|
170
|
+
| `-` statement continuation (indented) | ✅ |
|
|
157
171
|
| `- if` / `- unless` / `- else` / `- else if` | ✅ |
|
|
158
172
|
| `- for item in items` → `.map()` | ✅ |
|
|
159
173
|
| `- while` | ✅ |
|
|
160
174
|
| Haml/HTML comments | ✅ |
|
|
161
175
|
| `:filter` blocks | ✅ |
|
|
176
|
+
| Prologue passthrough (`import`, `@decorator`) | ✅ |
|
|
177
|
+
| Component / HOC wrapping (`wrap: 'observer'`) | ✅ |
|
|
162
178
|
| Vite plugin with HMR | ✅ |
|
|
163
|
-
|
|
|
164
|
-
|
|
|
179
|
+
| CLI `--wrap` flag | ✅ |
|
|
180
|
+
| CLI `watch` mode | ✅ |
|
|
181
|
+
| Source-located error messages | ✅ |
|
|
182
|
+
| Source maps | ✅ |
|
|
183
|
+
| CoffeeScript expression compilation | ✅ (requires peer dep) |
|
|
165
184
|
| React Fast Refresh | 📅 Planned |
|
|
166
185
|
|
|
167
186
|
---
|
package/dist/ast.d.ts
CHANGED
|
@@ -79,7 +79,9 @@ export declare class Output extends Node {
|
|
|
79
79
|
readonly kind: "Output";
|
|
80
80
|
readonly expression: Expression;
|
|
81
81
|
readonly outputKind: OutputKind;
|
|
82
|
-
|
|
82
|
+
/** Indented continuation children (TEXT = code continuation, others = nested elements). */
|
|
83
|
+
readonly children: Node[];
|
|
84
|
+
constructor(expression: Expression, outputKind: OutputKind, location?: SourceLocation, children?: Node[]);
|
|
83
85
|
}
|
|
84
86
|
export declare class ControlFlow extends Node {
|
|
85
87
|
readonly kind: "ControlFlow";
|
package/dist/ast.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../src/ast.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../src/ast.ts"],"names":[],"mappings":"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"}
|
package/dist/ast.js
CHANGED
|
@@ -61,11 +61,12 @@ export class Text extends Node {
|
|
|
61
61
|
}
|
|
62
62
|
// ─── Output ────────────────────────────────────────────────
|
|
63
63
|
export class Output extends Node {
|
|
64
|
-
constructor(expression, outputKind, location) {
|
|
64
|
+
constructor(expression, outputKind, location, children = []) {
|
|
65
65
|
super(location);
|
|
66
66
|
this.kind = 'Output';
|
|
67
67
|
this.expression = expression;
|
|
68
68
|
this.outputKind = outputKind;
|
|
69
|
+
this.children = children;
|
|
69
70
|
}
|
|
70
71
|
}
|
|
71
72
|
// ─── ControlFlow ───────────────────────────────────────────
|
package/dist/ast.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ast.js","sourceRoot":"","sources":["../src/ast.ts"],"names":[],"mappings":"AAmBA,8DAA8D;AAE9D,MAAM,OAAgB,IAAI;IAIxB,YAAY,QAAyB;QACnC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAED,8DAA8D;AAE9D;iDACiD;AACjD,MAAM,OAAO,UAAU;IAKrB,YAAY,MAAc,EAAE,MAAY;QACtC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AAED,8DAA8D;AAE9D,MAAM,OAAO,QAAS,SAAQ,IAAI;IAKhC,YAAY,QAAgB,EAAE,WAAqB,EAAE,EAAE,QAAyB;QAC9E,KAAK,CAAC,QAAQ,CAAC,CAAC;QALT,SAAI,GAAG,UAAmB,CAAC;QAMlC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAED,8DAA8D;AAE9D,MAAM,OAAO,OAAQ,SAAQ,IAAI;IAU/B,YACE,GAAwB,EACxB,OAQI,EAAE;QAEN,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QArBd,SAAI,GAAG,SAAkB,CAAC;QAsBjC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC;QAC7C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC;IACnD,CAAC;CACF;AAkBD,8DAA8D;AAE9D,qEAAqE;AACrE,MAAM,OAAO,WAAY,SAAQ,IAAI;IAOnC,YACE,OAMI,EAAE;QAEN,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAfd,SAAI,GAAG,aAAsB,CAAC;QAgBrC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;IACtC,CAAC;CACF;AAED,8DAA8D;AAE9D,MAAM,OAAO,IAAK,SAAQ,IAAI;IAI5B,YAAY,KAAa,EAAE,QAAyB;QAClD,KAAK,CAAC,QAAQ,CAAC,CAAC;QAJT,SAAI,GAAG,MAAe,CAAC;QAK9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAED,8DAA8D;AAE9D,MAAM,OAAO,MAAO,SAAQ,IAAI;
|
|
1
|
+
{"version":3,"file":"ast.js","sourceRoot":"","sources":["../src/ast.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { compileFile } from './index.js';
|
|
3
|
-
import { writeFileSync } from 'fs';
|
|
4
|
-
import { readFileSync } from 'fs';
|
|
3
|
+
import { writeFileSync, readFileSync, existsSync, watch, statSync, readdirSync } from 'fs';
|
|
5
4
|
import { fileURLToPath } from 'url';
|
|
6
|
-
import { dirname, join } from 'path';
|
|
5
|
+
import { dirname, join, resolve, relative } from 'path';
|
|
7
6
|
function getVersion() {
|
|
8
7
|
try {
|
|
9
8
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
@@ -20,67 +19,164 @@ if (args.length === 0 || args.includes('--help') || args.includes('-h')) {
|
|
|
20
19
|
Haml structure. CoffeeScript semantics. React runtime.
|
|
21
20
|
|
|
22
21
|
Usage:
|
|
23
|
-
coffeehaml compile <input> [-o <output>] [--source-map]
|
|
22
|
+
coffeehaml compile <input> [-o <output>] [--source-map] [--wrap <mode>]
|
|
23
|
+
coffeehaml watch <input> [-o <output>] [--source-map] [--wrap <mode>]
|
|
24
24
|
|
|
25
25
|
Options:
|
|
26
26
|
-o, --output <file> Write output to file instead of stdout
|
|
27
27
|
--source-map Emit inline source map
|
|
28
|
+
--wrap <mode> Wrap output: 'component', 'observer', or comma-separated HOC list
|
|
28
29
|
-h, --help Show this help
|
|
29
30
|
|
|
30
31
|
Examples:
|
|
31
|
-
coffeehaml compile app.
|
|
32
|
-
coffeehaml compile app.
|
|
32
|
+
coffeehaml compile app.chaml -o app.js --wrap component
|
|
33
|
+
coffeehaml compile app.chaml # prints to stdout
|
|
34
|
+
coffeehaml watch src/ --wrap observer # watch and recompile on change
|
|
33
35
|
`);
|
|
34
36
|
process.exit(0);
|
|
35
37
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
38
|
+
function parseWrapFlag(args) {
|
|
39
|
+
const idx = args.indexOf('--wrap');
|
|
40
|
+
if (idx === -1)
|
|
41
|
+
return undefined;
|
|
42
|
+
const val = args[idx + 1];
|
|
43
|
+
if (!val || val.startsWith('-'))
|
|
44
|
+
return undefined;
|
|
45
|
+
// 'component' and 'observer' are shorthands; comma-separated → string[]
|
|
46
|
+
if (val === 'component' || val === 'observer')
|
|
47
|
+
return val;
|
|
48
|
+
if (val === 'none')
|
|
49
|
+
return 'none';
|
|
50
|
+
return val.split(',').map(s => s.trim()).filter(Boolean);
|
|
51
|
+
}
|
|
52
|
+
function parseArgs(args) {
|
|
43
53
|
const outIdx = args.indexOf('-o') !== -1 ? args.indexOf('-o') : args.indexOf('--output');
|
|
44
|
-
const output = outIdx !== -1 ? args[outIdx + 1] :
|
|
54
|
+
const output = outIdx !== -1 ? args[outIdx + 1] : undefined;
|
|
45
55
|
const sourceMap = args.includes('--source-map');
|
|
46
|
-
const
|
|
56
|
+
const wrap = parseWrapFlag(args);
|
|
57
|
+
return { input: args[0], output, sourceMap, wrap };
|
|
58
|
+
}
|
|
59
|
+
function formatError(err, filename) {
|
|
60
|
+
const loc = err.location;
|
|
61
|
+
let msg = loc
|
|
62
|
+
? `${filename}:${loc.start.line + 1}:${loc.start.column + 1}: [${err.code}] ${err.message}`
|
|
63
|
+
: `[${err.code}] ${err.message}`;
|
|
64
|
+
if (err.hint)
|
|
65
|
+
msg += `\n Hint: ${err.hint}`;
|
|
66
|
+
return msg;
|
|
67
|
+
}
|
|
68
|
+
function formatWarning(warn, filename) {
|
|
69
|
+
const loc = warn.location;
|
|
70
|
+
if (loc) {
|
|
71
|
+
return `Warning: ${filename}:${loc.start.line + 1}:${loc.start.column + 1}: ${warn.message}`;
|
|
72
|
+
}
|
|
73
|
+
return `Warning: ${warn.message}`;
|
|
74
|
+
}
|
|
75
|
+
function doCompile(input, opts) {
|
|
76
|
+
const result = compileFile(input, { filename: input, sourceMap: opts.sourceMap, wrap: opts.wrap });
|
|
47
77
|
if (result.errors.length > 0) {
|
|
48
78
|
for (const err of result.errors) {
|
|
49
79
|
console.error(formatError(err, input));
|
|
50
80
|
}
|
|
51
|
-
|
|
81
|
+
return false;
|
|
52
82
|
}
|
|
53
|
-
// Print warnings to stderr
|
|
54
83
|
for (const warn of result.warnings) {
|
|
55
84
|
console.error(formatWarning(warn, input));
|
|
56
85
|
}
|
|
57
|
-
if (output) {
|
|
58
|
-
writeFileSync(output, result.code);
|
|
86
|
+
if (opts.output) {
|
|
87
|
+
writeFileSync(opts.output, result.code);
|
|
59
88
|
if (result.sourceMap) {
|
|
60
|
-
writeFileSync(output + '.map', result.sourceMap);
|
|
89
|
+
writeFileSync(opts.output + '.map', result.sourceMap);
|
|
61
90
|
}
|
|
62
|
-
console.error(`Compiled: ${input} → ${output}`);
|
|
91
|
+
console.error(`Compiled: ${input} → ${opts.output}`);
|
|
63
92
|
}
|
|
64
93
|
else {
|
|
65
94
|
process.stdout.write(result.code);
|
|
66
95
|
}
|
|
96
|
+
return true;
|
|
67
97
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
return `${filename}:${loc.start.line + 1}:${loc.start.column + 1}: [${err.code}] ${err.message}`;
|
|
98
|
+
const cmd = args[0];
|
|
99
|
+
const rest = args.slice(1);
|
|
100
|
+
if (cmd === 'compile') {
|
|
101
|
+
const opts = parseArgs(rest);
|
|
102
|
+
if (!opts.input) {
|
|
103
|
+
console.error('Error: no input file specified');
|
|
104
|
+
process.exit(1);
|
|
76
105
|
}
|
|
77
|
-
|
|
106
|
+
const ok = doCompile(opts.input, opts);
|
|
107
|
+
process.exit(ok ? 0 : 1);
|
|
78
108
|
}
|
|
79
|
-
|
|
80
|
-
const
|
|
81
|
-
if (
|
|
82
|
-
|
|
109
|
+
else if (cmd === 'watch') {
|
|
110
|
+
const opts = parseArgs(rest);
|
|
111
|
+
if (!opts.input) {
|
|
112
|
+
console.error('Error: no input path specified');
|
|
113
|
+
process.exit(1);
|
|
83
114
|
}
|
|
84
|
-
|
|
115
|
+
const target = resolve(opts.input);
|
|
116
|
+
const stats = existsSync(target) ? statSync(target) : null;
|
|
117
|
+
// Collect .chaml/.coffeehaml files
|
|
118
|
+
const files = [];
|
|
119
|
+
function findFiles(dir) {
|
|
120
|
+
if (!existsSync(dir))
|
|
121
|
+
return;
|
|
122
|
+
const stat = statSync(dir);
|
|
123
|
+
if (stat.isDirectory()) {
|
|
124
|
+
for (const entry of readdirSync(dir, { withFileTypes: true })) {
|
|
125
|
+
const full = join(dir, entry.name);
|
|
126
|
+
if (entry.isDirectory() && !entry.name.startsWith('.') && entry.name !== 'node_modules') {
|
|
127
|
+
findFiles(full);
|
|
128
|
+
}
|
|
129
|
+
else if (entry.isFile() && /\.(chaml|coffeehaml)$/.test(entry.name)) {
|
|
130
|
+
files.push(full);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
else if (/\.(chaml|coffeehaml)$/.test(dir)) {
|
|
135
|
+
files.push(dir);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
findFiles(target);
|
|
139
|
+
if (files.length === 0) {
|
|
140
|
+
console.error(`Error: no .chaml/.coffeehaml files found in ${opts.input}`);
|
|
141
|
+
process.exit(1);
|
|
142
|
+
}
|
|
143
|
+
console.error(`Watching ${files.length} file(s)...`);
|
|
144
|
+
let initial = true;
|
|
145
|
+
const compile = (file) => {
|
|
146
|
+
const rel = relative(process.cwd(), file);
|
|
147
|
+
if (!initial)
|
|
148
|
+
console.error(`\n[recompile] ${rel}`);
|
|
149
|
+
initial = false;
|
|
150
|
+
// Derive output: same dir, .js extension
|
|
151
|
+
const outFile = opts.output || file.replace(/\.(chaml|coffeehaml)$/, '.js');
|
|
152
|
+
const ok = doCompile(file, { ...opts, output: outFile, input: file });
|
|
153
|
+
if (!ok)
|
|
154
|
+
console.error(` ✗ ${rel}`);
|
|
155
|
+
};
|
|
156
|
+
for (const file of files)
|
|
157
|
+
compile(file);
|
|
158
|
+
// Watch each file for changes (debounced)
|
|
159
|
+
const timers = new Map();
|
|
160
|
+
const watchDir = stats?.isDirectory() ? target : dirname(target);
|
|
161
|
+
const watcher = watch(watchDir, { recursive: true }, (_event, filename) => {
|
|
162
|
+
if (!filename || !/\.(chaml|coffeehaml)$/.test(filename))
|
|
163
|
+
return;
|
|
164
|
+
const full = resolve(watchDir, filename);
|
|
165
|
+
if (timers.has(full))
|
|
166
|
+
clearTimeout(timers.get(full));
|
|
167
|
+
timers.set(full, setTimeout(() => {
|
|
168
|
+
timers.delete(full);
|
|
169
|
+
compile(full);
|
|
170
|
+
}, 100));
|
|
171
|
+
});
|
|
172
|
+
process.on('SIGINT', () => {
|
|
173
|
+
watcher.close();
|
|
174
|
+
console.error('\nStopped watching.');
|
|
175
|
+
process.exit(0);
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
console.error(`Unknown command: ${cmd}`);
|
|
180
|
+
process.exit(1);
|
|
85
181
|
}
|
|
86
182
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/emitter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../src/emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAET,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,cAAc,EAAE,UAAU,EAAkB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../src/emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAET,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,cAAc,EAAE,UAAU,EAAkB,MAAM,YAAY,CAAC;AAgExE,wBAAgB,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,GAAE,cAAmB,GAAG,UAAU,CAiC5E"}
|