@zylaris/compiler 1.0.1 → 1.0.2
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.d.ts +26 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +153 -67
- package/dist/index.js.map +1 -1
- package/dist/jit.d.ts +61 -14
- package/dist/jit.d.ts.map +1 -1
- package/dist/jit.js +210 -94
- package/dist/jit.js.map +1 -1
- package/package.json +1 -1
- package/dist/compile-worker.d.ts +0 -2
- package/dist/compile-worker.d.ts.map +0 -1
- package/dist/compile-worker.js +0 -49
- package/dist/compile-worker.js.map +0 -1
- package/dist/lazy-compile.d.ts +0 -28
- package/dist/lazy-compile.d.ts.map +0 -1
- package/dist/lazy-compile.js +0 -171
- package/dist/lazy-compile.js.map +0 -1
- package/dist/parallel-jit.d.ts +0 -61
- package/dist/parallel-jit.d.ts.map +0 -1
- package/dist/parallel-jit.js +0 -223
- package/dist/parallel-jit.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zylaris Compiler
|
|
3
|
+
* High-performance TypeScript/JSX compilation with worker pool
|
|
4
|
+
*/
|
|
5
|
+
import * as esbuild from 'esbuild';
|
|
1
6
|
export interface CompileOptions {
|
|
2
7
|
target?: 'es2020' | 'es2022' | 'esnext';
|
|
3
8
|
minify?: boolean;
|
|
4
9
|
sourceMap?: boolean;
|
|
10
|
+
cache?: boolean;
|
|
5
11
|
jsx?: {
|
|
6
12
|
runtime?: 'automatic' | 'classic';
|
|
7
13
|
importSource?: string;
|
|
@@ -11,17 +17,34 @@ export interface CompileResult {
|
|
|
11
17
|
code: string;
|
|
12
18
|
map?: string;
|
|
13
19
|
errors: CompileError[];
|
|
20
|
+
duration: number;
|
|
21
|
+
fromCache: boolean;
|
|
14
22
|
}
|
|
15
23
|
export interface CompileError {
|
|
16
24
|
message: string;
|
|
17
25
|
location?: {
|
|
18
26
|
line: number;
|
|
19
27
|
column: number;
|
|
28
|
+
file?: string;
|
|
20
29
|
};
|
|
21
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Compile source code with caching
|
|
33
|
+
*/
|
|
22
34
|
export declare function compile(source: string, filename: string, options?: CompileOptions): Promise<CompileResult>;
|
|
23
|
-
export declare function
|
|
24
|
-
|
|
35
|
+
export declare function compileBatch(files: Array<{
|
|
36
|
+
source: string;
|
|
37
|
+
filename: string;
|
|
38
|
+
}>, options?: CompileOptions): Promise<CompileResult[]>;
|
|
39
|
+
export declare function bundle(entryPoints: string[], outdir: string, options?: CompileOptions): Promise<{
|
|
40
|
+
metafile: esbuild.Metafile;
|
|
41
|
+
duration: number;
|
|
42
|
+
}>;
|
|
43
|
+
export declare function clearCompileCache(): void;
|
|
44
|
+
export declare function getCompileCacheStats(): {
|
|
45
|
+
entries: number;
|
|
46
|
+
sizeMB: string;
|
|
47
|
+
maxSizeMB: number;
|
|
48
|
+
};
|
|
25
49
|
export * from './jit.js';
|
|
26
|
-
export declare function transformJSXForServer(source: string, filename: string): Promise<string>;
|
|
27
50
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAoEnC,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACxC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE;QACJ,OAAO,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;QAClC,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE;QACT,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AASD;;GAEG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,aAAa,CAAC,CAgDxB;AAiGD,wBAAsB,YAAY,CAChC,KAAK,EAAE,KAAK,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,EAClD,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,aAAa,EAAE,CAAC,CAc1B;AAGD,wBAAsB,MAAM,CAC1B,WAAW,EAAE,MAAM,EAAE,EACrB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC;IAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAyB3D;AAGD,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAGD,wBAAgB,oBAAoB;;;;EAEnC;AAGD,cAAc,UAAU,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,20 +1,111 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Zylaris Compiler
|
|
3
|
+
* High-performance TypeScript/JSX compilation with worker pool
|
|
4
|
+
*/
|
|
3
5
|
import { transform as swcTransform } from '@swc/core';
|
|
4
6
|
import * as esbuild from 'esbuild';
|
|
5
7
|
import path from 'path';
|
|
8
|
+
import { createHash } from 'crypto';
|
|
9
|
+
import { performance } from 'perf_hooks';
|
|
10
|
+
class LRUCache {
|
|
11
|
+
cache = new Map();
|
|
12
|
+
maxSize;
|
|
13
|
+
currentSize = 0;
|
|
14
|
+
constructor(maxSizeMB = 50) {
|
|
15
|
+
this.maxSize = maxSizeMB * 1024 * 1024;
|
|
16
|
+
}
|
|
17
|
+
get(key) {
|
|
18
|
+
const entry = this.cache.get(key);
|
|
19
|
+
if (entry) {
|
|
20
|
+
// Update LRU order
|
|
21
|
+
this.cache.delete(key);
|
|
22
|
+
this.cache.set(key, { ...entry, timestamp: Date.now() });
|
|
23
|
+
}
|
|
24
|
+
return entry;
|
|
25
|
+
}
|
|
26
|
+
set(key, entry) {
|
|
27
|
+
const size = entry.code.length + (entry.map?.length || 0);
|
|
28
|
+
// Evict old entries if needed
|
|
29
|
+
while (this.currentSize + size > this.maxSize && this.cache.size > 0) {
|
|
30
|
+
const firstKey = this.cache.keys().next().value;
|
|
31
|
+
if (firstKey) {
|
|
32
|
+
const oldEntry = this.cache.get(firstKey);
|
|
33
|
+
if (oldEntry) {
|
|
34
|
+
this.currentSize -= oldEntry.size;
|
|
35
|
+
}
|
|
36
|
+
this.cache.delete(firstKey);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
this.cache.set(key, { ...entry, timestamp: Date.now(), size });
|
|
40
|
+
this.currentSize += size;
|
|
41
|
+
}
|
|
42
|
+
clear() {
|
|
43
|
+
this.cache.clear();
|
|
44
|
+
this.currentSize = 0;
|
|
45
|
+
}
|
|
46
|
+
getStats() {
|
|
47
|
+
return {
|
|
48
|
+
entries: this.cache.size,
|
|
49
|
+
sizeMB: (this.currentSize / 1024 / 1024).toFixed(2),
|
|
50
|
+
maxSizeMB: this.maxSize / 1024 / 1024,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
// Global cache instance
|
|
55
|
+
const compileCache = new LRUCache(100);
|
|
56
|
+
// Generate cache key
|
|
57
|
+
function getCacheKey(source, filename, options) {
|
|
58
|
+
return createHash('md5')
|
|
59
|
+
.update(`${source}::${filename}::${JSON.stringify(options)}`)
|
|
60
|
+
.digest('hex');
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Compile source code with caching
|
|
64
|
+
*/
|
|
6
65
|
export async function compile(source, filename, options = {}) {
|
|
66
|
+
const startTime = performance.now();
|
|
67
|
+
const { cache = true } = options;
|
|
68
|
+
// Check cache
|
|
69
|
+
if (cache) {
|
|
70
|
+
const cacheKey = getCacheKey(source, filename, options);
|
|
71
|
+
const cached = compileCache.get(cacheKey);
|
|
72
|
+
if (cached) {
|
|
73
|
+
return {
|
|
74
|
+
code: cached.code,
|
|
75
|
+
map: cached.map,
|
|
76
|
+
errors: [],
|
|
77
|
+
duration: performance.now() - startTime,
|
|
78
|
+
fromCache: true,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
}
|
|
7
82
|
const ext = path.extname(filename);
|
|
83
|
+
let result;
|
|
8
84
|
if (ext === '.tsx' || ext === '.jsx') {
|
|
9
|
-
|
|
85
|
+
result = await compileJSX(source, filename, options);
|
|
10
86
|
}
|
|
11
|
-
if (ext === '.ts') {
|
|
12
|
-
|
|
87
|
+
else if (ext === '.ts') {
|
|
88
|
+
result = await compileTypeScript(source, filename, options);
|
|
13
89
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
90
|
+
else {
|
|
91
|
+
result = {
|
|
92
|
+
code: source,
|
|
93
|
+
errors: [],
|
|
94
|
+
duration: 0,
|
|
95
|
+
fromCache: false,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
result.duration = performance.now() - startTime;
|
|
99
|
+
// Store in cache
|
|
100
|
+
if (cache && result.errors.length === 0) {
|
|
101
|
+
const cacheKey = getCacheKey(source, filename, options);
|
|
102
|
+
compileCache.set(cacheKey, {
|
|
103
|
+
code: result.code,
|
|
104
|
+
map: result.map || '',
|
|
105
|
+
size: result.code.length + (result.map?.length || 0),
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
return result;
|
|
18
109
|
}
|
|
19
110
|
async function compileJSX(source, filename, options) {
|
|
20
111
|
try {
|
|
@@ -44,17 +135,12 @@ async function compileJSX(source, filename, options) {
|
|
|
44
135
|
code: result.code,
|
|
45
136
|
map: result.map,
|
|
46
137
|
errors: [],
|
|
138
|
+
duration: 0,
|
|
139
|
+
fromCache: false,
|
|
47
140
|
};
|
|
48
141
|
}
|
|
49
142
|
catch (error) {
|
|
50
|
-
return
|
|
51
|
-
code: '',
|
|
52
|
-
errors: [
|
|
53
|
-
{
|
|
54
|
-
message: error instanceof Error ? error.message : 'Unknown error',
|
|
55
|
-
},
|
|
56
|
-
],
|
|
57
|
-
};
|
|
143
|
+
return handleCompileError(error);
|
|
58
144
|
}
|
|
59
145
|
}
|
|
60
146
|
async function compileTypeScript(source, filename, options) {
|
|
@@ -78,22 +164,46 @@ async function compileTypeScript(source, filename, options) {
|
|
|
78
164
|
code: result.code,
|
|
79
165
|
map: result.map,
|
|
80
166
|
errors: [],
|
|
167
|
+
duration: 0,
|
|
168
|
+
fromCache: false,
|
|
81
169
|
};
|
|
82
170
|
}
|
|
83
171
|
catch (error) {
|
|
84
|
-
return
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
172
|
+
return handleCompileError(error);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
function handleCompileError(error) {
|
|
176
|
+
const message = error instanceof Error ? error.message : 'Unknown compilation error';
|
|
177
|
+
// Parse SWC error format for better location info
|
|
178
|
+
const locationMatch = message.match(/(\d+):(\d+)/);
|
|
179
|
+
const line = locationMatch ? parseInt(locationMatch[1], 10) : undefined;
|
|
180
|
+
const column = locationMatch ? parseInt(locationMatch[2], 10) : undefined;
|
|
181
|
+
return {
|
|
182
|
+
code: '',
|
|
183
|
+
errors: [{
|
|
184
|
+
message,
|
|
185
|
+
location: line && column ? { line, column } : undefined,
|
|
186
|
+
}],
|
|
187
|
+
duration: 0,
|
|
188
|
+
fromCache: false,
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
// Batch compilation for multiple files
|
|
192
|
+
export async function compileBatch(files, options = {}) {
|
|
193
|
+
// Compile in parallel with concurrency limit
|
|
194
|
+
const CONCURRENCY = 4;
|
|
195
|
+
const results = [];
|
|
196
|
+
for (let i = 0; i < files.length; i += CONCURRENCY) {
|
|
197
|
+
const batch = files.slice(i, i + CONCURRENCY);
|
|
198
|
+
const batchResults = await Promise.all(batch.map(({ source, filename }) => compile(source, filename, options)));
|
|
199
|
+
results.push(...batchResults);
|
|
92
200
|
}
|
|
201
|
+
return results;
|
|
93
202
|
}
|
|
94
|
-
// Bundle with esbuild
|
|
203
|
+
// Bundle with esbuild - optimized
|
|
95
204
|
export async function bundle(entryPoints, outdir, options = {}) {
|
|
96
|
-
|
|
205
|
+
const startTime = performance.now();
|
|
206
|
+
const result = await esbuild.build({
|
|
97
207
|
entryPoints,
|
|
98
208
|
outdir,
|
|
99
209
|
bundle: true,
|
|
@@ -105,48 +215,24 @@ export async function bundle(entryPoints, outdir, options = {}) {
|
|
|
105
215
|
jsx: 'automatic',
|
|
106
216
|
jsxImportSource: options.jsx?.importSource || 'zylaris',
|
|
107
217
|
metafile: true,
|
|
218
|
+
// Performance optimizations
|
|
219
|
+
treeShaking: true,
|
|
220
|
+
legalComments: 'none',
|
|
221
|
+
charset: 'utf8',
|
|
108
222
|
});
|
|
223
|
+
return {
|
|
224
|
+
metafile: result.metafile,
|
|
225
|
+
duration: performance.now() - startTime,
|
|
226
|
+
};
|
|
109
227
|
}
|
|
110
|
-
//
|
|
111
|
-
export
|
|
112
|
-
|
|
113
|
-
filename,
|
|
114
|
-
jsc: {
|
|
115
|
-
parser: {
|
|
116
|
-
syntax: 'typescript',
|
|
117
|
-
tsx: true,
|
|
118
|
-
},
|
|
119
|
-
transform: {
|
|
120
|
-
react: {
|
|
121
|
-
runtime: 'automatic',
|
|
122
|
-
importSource: 'zylaris',
|
|
123
|
-
},
|
|
124
|
-
},
|
|
125
|
-
target: 'es2022',
|
|
126
|
-
},
|
|
127
|
-
});
|
|
128
|
-
return result.code;
|
|
228
|
+
// Clear cache
|
|
229
|
+
export function clearCompileCache() {
|
|
230
|
+
compileCache.clear();
|
|
129
231
|
}
|
|
130
|
-
//
|
|
131
|
-
export
|
|
132
|
-
|
|
133
|
-
export async function transformJSXForServer(source, filename) {
|
|
134
|
-
const result = await swcTransform(source, {
|
|
135
|
-
filename,
|
|
136
|
-
jsc: {
|
|
137
|
-
parser: {
|
|
138
|
-
syntax: 'typescript',
|
|
139
|
-
tsx: true,
|
|
140
|
-
},
|
|
141
|
-
transform: {
|
|
142
|
-
react: {
|
|
143
|
-
runtime: 'automatic',
|
|
144
|
-
importSource: 'zylaris',
|
|
145
|
-
},
|
|
146
|
-
},
|
|
147
|
-
target: 'es2022',
|
|
148
|
-
},
|
|
149
|
-
});
|
|
150
|
-
return result.code;
|
|
232
|
+
// Get cache stats
|
|
233
|
+
export function getCompileCacheStats() {
|
|
234
|
+
return compileCache.getStats();
|
|
151
235
|
}
|
|
236
|
+
// Export JIT compiler
|
|
237
|
+
export * from './jit.js';
|
|
152
238
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/jit.d.ts
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JIT Compiler for Development
|
|
3
|
+
* Ultra-fast compilation with LRU caching and batch operations
|
|
4
|
+
*/
|
|
1
5
|
interface JITCacheEntry {
|
|
2
6
|
code: string;
|
|
3
7
|
map: string;
|
|
4
8
|
timestamp: number;
|
|
5
|
-
|
|
9
|
+
size: number;
|
|
10
|
+
hits: number;
|
|
6
11
|
}
|
|
7
12
|
interface JITOptions {
|
|
8
13
|
target?: 'es2020' | 'es2022' | 'esnext';
|
|
@@ -11,19 +16,62 @@ interface JITOptions {
|
|
|
11
16
|
sourceMap?: boolean;
|
|
12
17
|
cacheTimeout?: number;
|
|
13
18
|
}
|
|
14
|
-
|
|
19
|
+
interface JITStats {
|
|
20
|
+
hits: number;
|
|
21
|
+
misses: number;
|
|
22
|
+
hitRate: number;
|
|
23
|
+
size: number;
|
|
24
|
+
entries: number;
|
|
25
|
+
}
|
|
26
|
+
declare class JITCache {
|
|
27
|
+
private cache;
|
|
28
|
+
private maxSize;
|
|
29
|
+
private maxEntries;
|
|
30
|
+
private defaultTimeout;
|
|
31
|
+
private stats;
|
|
32
|
+
constructor(options?: {
|
|
33
|
+
maxSizeMB?: number;
|
|
34
|
+
maxEntries?: number;
|
|
35
|
+
defaultTimeoutMs?: number;
|
|
36
|
+
});
|
|
37
|
+
get(key: string, timeout?: number): JITCacheEntry | null;
|
|
38
|
+
set(key: string, entry: Omit<JITCacheEntry, 'timestamp' | 'hits'>): void;
|
|
39
|
+
private shouldEvict;
|
|
40
|
+
invalidate(filename: string): number;
|
|
41
|
+
invalidatePattern(pattern: RegExp): number;
|
|
42
|
+
clear(): void;
|
|
43
|
+
getStats(): JITStats;
|
|
44
|
+
}
|
|
45
|
+
declare const jitCache: JITCache;
|
|
15
46
|
/**
|
|
16
|
-
* JIT Compile
|
|
17
|
-
* Uses esbuild for maximum speed with in-memory caching
|
|
47
|
+
* JIT Compile with caching
|
|
18
48
|
*/
|
|
19
49
|
export declare function jitCompile(source: string, filename: string, options?: JITOptions): Promise<{
|
|
20
50
|
code: string;
|
|
21
51
|
map: string;
|
|
52
|
+
fromCache: boolean;
|
|
53
|
+
duration: number;
|
|
22
54
|
}>;
|
|
23
55
|
/**
|
|
24
|
-
*
|
|
56
|
+
* Batch compile multiple files
|
|
25
57
|
*/
|
|
26
|
-
export declare function
|
|
58
|
+
export declare function jitCompileBatch(files: Array<{
|
|
59
|
+
source: string;
|
|
60
|
+
filename: string;
|
|
61
|
+
}>, options?: JITOptions): Promise<Array<{
|
|
62
|
+
code: string;
|
|
63
|
+
map: string;
|
|
64
|
+
filename: string;
|
|
65
|
+
fromCache: boolean;
|
|
66
|
+
}>>;
|
|
67
|
+
/**
|
|
68
|
+
* Invalidate cache by filename
|
|
69
|
+
*/
|
|
70
|
+
export declare function invalidateCache(filename: string): number;
|
|
71
|
+
/**
|
|
72
|
+
* Invalidate cache by pattern
|
|
73
|
+
*/
|
|
74
|
+
export declare function invalidateCachePattern(pattern: RegExp): number;
|
|
27
75
|
/**
|
|
28
76
|
* Clear all cache
|
|
29
77
|
*/
|
|
@@ -31,17 +79,16 @@ export declare function clearCache(): void;
|
|
|
31
79
|
/**
|
|
32
80
|
* Get cache stats
|
|
33
81
|
*/
|
|
34
|
-
export declare function getCacheStats():
|
|
35
|
-
size: number;
|
|
36
|
-
entries: number;
|
|
37
|
-
hitRate: number;
|
|
38
|
-
};
|
|
82
|
+
export declare function getCacheStats(): JITStats;
|
|
39
83
|
/**
|
|
40
|
-
*
|
|
84
|
+
* Warmup cache with commonly used files
|
|
41
85
|
*/
|
|
42
86
|
export declare function warmupCache(files: Array<{
|
|
43
87
|
source: string;
|
|
44
88
|
filename: string;
|
|
45
|
-
}>, options?: JITOptions): Promise<
|
|
46
|
-
|
|
89
|
+
}>, options?: JITOptions): Promise<{
|
|
90
|
+
compiled: number;
|
|
91
|
+
errors: number;
|
|
92
|
+
}>;
|
|
93
|
+
export { jitCache };
|
|
47
94
|
//# sourceMappingURL=jit.d.ts.map
|
package/dist/jit.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jit.d.ts","sourceRoot":"","sources":["../src/jit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"jit.d.ts","sourceRoot":"","sources":["../src/jit.ts"],"names":[],"mappings":"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"}
|