@dungarees/transpile 0.11.4

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/package.json ADDED
@@ -0,0 +1,437 @@
1
+ {
2
+ "name": "@dungarees/transpile",
3
+ "engines": {
4
+ "node": ">=25.0.0"
5
+ },
6
+ "type": "module",
7
+ "dependencies": {
8
+ "@dungarees/fs": "*",
9
+ "@dungarees/rxjs": "*",
10
+ "rxjs": "^7.8.1"
11
+ },
12
+ "devDependencies": {
13
+ "typescript": "^5.9.3",
14
+ "vitest": "^3.0.2"
15
+ },
16
+ "author": "info@productkind.com",
17
+ "license": "MIT",
18
+ "version": "0.11.4",
19
+ "exports": {
20
+ "./node_modules/typescript/lib/lib.d.ts": {
21
+ "import": "./node_modules/typescript/lib/lib.d.js",
22
+ "types": "./node_modules/typescript/lib/lib.d.d.ts"
23
+ },
24
+ "./node_modules/typescript/lib/lib.decorators.d.ts": {
25
+ "import": "./node_modules/typescript/lib/lib.decorators.d.js",
26
+ "types": "./node_modules/typescript/lib/lib.decorators.d.d.ts"
27
+ },
28
+ "./node_modules/typescript/lib/lib.decorators.legacy.d.ts": {
29
+ "import": "./node_modules/typescript/lib/lib.decorators.legacy.d.js",
30
+ "types": "./node_modules/typescript/lib/lib.decorators.legacy.d.d.ts"
31
+ },
32
+ "./node_modules/typescript/lib/lib.dom.asynciterable.d.ts": {
33
+ "import": "./node_modules/typescript/lib/lib.dom.asynciterable.d.js",
34
+ "types": "./node_modules/typescript/lib/lib.dom.asynciterable.d.d.ts"
35
+ },
36
+ "./node_modules/typescript/lib/lib.dom.d.ts": {
37
+ "import": "./node_modules/typescript/lib/lib.dom.d.js",
38
+ "types": "./node_modules/typescript/lib/lib.dom.d.d.ts"
39
+ },
40
+ "./node_modules/typescript/lib/lib.dom.iterable.d.ts": {
41
+ "import": "./node_modules/typescript/lib/lib.dom.iterable.d.js",
42
+ "types": "./node_modules/typescript/lib/lib.dom.iterable.d.d.ts"
43
+ },
44
+ "./node_modules/typescript/lib/lib.es2015.collection.d.ts": {
45
+ "import": "./node_modules/typescript/lib/lib.es2015.collection.d.js",
46
+ "types": "./node_modules/typescript/lib/lib.es2015.collection.d.d.ts"
47
+ },
48
+ "./node_modules/typescript/lib/lib.es2015.core.d.ts": {
49
+ "import": "./node_modules/typescript/lib/lib.es2015.core.d.js",
50
+ "types": "./node_modules/typescript/lib/lib.es2015.core.d.d.ts"
51
+ },
52
+ "./node_modules/typescript/lib/lib.es2015.d.ts": {
53
+ "import": "./node_modules/typescript/lib/lib.es2015.d.js",
54
+ "types": "./node_modules/typescript/lib/lib.es2015.d.d.ts"
55
+ },
56
+ "./node_modules/typescript/lib/lib.es2015.generator.d.ts": {
57
+ "import": "./node_modules/typescript/lib/lib.es2015.generator.d.js",
58
+ "types": "./node_modules/typescript/lib/lib.es2015.generator.d.d.ts"
59
+ },
60
+ "./node_modules/typescript/lib/lib.es2015.iterable.d.ts": {
61
+ "import": "./node_modules/typescript/lib/lib.es2015.iterable.d.js",
62
+ "types": "./node_modules/typescript/lib/lib.es2015.iterable.d.d.ts"
63
+ },
64
+ "./node_modules/typescript/lib/lib.es2015.promise.d.ts": {
65
+ "import": "./node_modules/typescript/lib/lib.es2015.promise.d.js",
66
+ "types": "./node_modules/typescript/lib/lib.es2015.promise.d.d.ts"
67
+ },
68
+ "./node_modules/typescript/lib/lib.es2015.proxy.d.ts": {
69
+ "import": "./node_modules/typescript/lib/lib.es2015.proxy.d.js",
70
+ "types": "./node_modules/typescript/lib/lib.es2015.proxy.d.d.ts"
71
+ },
72
+ "./node_modules/typescript/lib/lib.es2015.reflect.d.ts": {
73
+ "import": "./node_modules/typescript/lib/lib.es2015.reflect.d.js",
74
+ "types": "./node_modules/typescript/lib/lib.es2015.reflect.d.d.ts"
75
+ },
76
+ "./node_modules/typescript/lib/lib.es2015.symbol.d.ts": {
77
+ "import": "./node_modules/typescript/lib/lib.es2015.symbol.d.js",
78
+ "types": "./node_modules/typescript/lib/lib.es2015.symbol.d.d.ts"
79
+ },
80
+ "./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts": {
81
+ "import": "./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.js",
82
+ "types": "./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.d.ts"
83
+ },
84
+ "./node_modules/typescript/lib/lib.es2016.array.include.d.ts": {
85
+ "import": "./node_modules/typescript/lib/lib.es2016.array.include.d.js",
86
+ "types": "./node_modules/typescript/lib/lib.es2016.array.include.d.d.ts"
87
+ },
88
+ "./node_modules/typescript/lib/lib.es2016.d.ts": {
89
+ "import": "./node_modules/typescript/lib/lib.es2016.d.js",
90
+ "types": "./node_modules/typescript/lib/lib.es2016.d.d.ts"
91
+ },
92
+ "./node_modules/typescript/lib/lib.es2016.full.d.ts": {
93
+ "import": "./node_modules/typescript/lib/lib.es2016.full.d.js",
94
+ "types": "./node_modules/typescript/lib/lib.es2016.full.d.d.ts"
95
+ },
96
+ "./node_modules/typescript/lib/lib.es2016.intl.d.ts": {
97
+ "import": "./node_modules/typescript/lib/lib.es2016.intl.d.js",
98
+ "types": "./node_modules/typescript/lib/lib.es2016.intl.d.d.ts"
99
+ },
100
+ "./node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts": {
101
+ "import": "./node_modules/typescript/lib/lib.es2017.arraybuffer.d.js",
102
+ "types": "./node_modules/typescript/lib/lib.es2017.arraybuffer.d.d.ts"
103
+ },
104
+ "./node_modules/typescript/lib/lib.es2017.d.ts": {
105
+ "import": "./node_modules/typescript/lib/lib.es2017.d.js",
106
+ "types": "./node_modules/typescript/lib/lib.es2017.d.d.ts"
107
+ },
108
+ "./node_modules/typescript/lib/lib.es2017.date.d.ts": {
109
+ "import": "./node_modules/typescript/lib/lib.es2017.date.d.js",
110
+ "types": "./node_modules/typescript/lib/lib.es2017.date.d.d.ts"
111
+ },
112
+ "./node_modules/typescript/lib/lib.es2017.full.d.ts": {
113
+ "import": "./node_modules/typescript/lib/lib.es2017.full.d.js",
114
+ "types": "./node_modules/typescript/lib/lib.es2017.full.d.d.ts"
115
+ },
116
+ "./node_modules/typescript/lib/lib.es2017.intl.d.ts": {
117
+ "import": "./node_modules/typescript/lib/lib.es2017.intl.d.js",
118
+ "types": "./node_modules/typescript/lib/lib.es2017.intl.d.d.ts"
119
+ },
120
+ "./node_modules/typescript/lib/lib.es2017.object.d.ts": {
121
+ "import": "./node_modules/typescript/lib/lib.es2017.object.d.js",
122
+ "types": "./node_modules/typescript/lib/lib.es2017.object.d.d.ts"
123
+ },
124
+ "./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts": {
125
+ "import": "./node_modules/typescript/lib/lib.es2017.sharedmemory.d.js",
126
+ "types": "./node_modules/typescript/lib/lib.es2017.sharedmemory.d.d.ts"
127
+ },
128
+ "./node_modules/typescript/lib/lib.es2017.string.d.ts": {
129
+ "import": "./node_modules/typescript/lib/lib.es2017.string.d.js",
130
+ "types": "./node_modules/typescript/lib/lib.es2017.string.d.d.ts"
131
+ },
132
+ "./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts": {
133
+ "import": "./node_modules/typescript/lib/lib.es2017.typedarrays.d.js",
134
+ "types": "./node_modules/typescript/lib/lib.es2017.typedarrays.d.d.ts"
135
+ },
136
+ "./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts": {
137
+ "import": "./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.js",
138
+ "types": "./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.d.ts"
139
+ },
140
+ "./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts": {
141
+ "import": "./node_modules/typescript/lib/lib.es2018.asynciterable.d.js",
142
+ "types": "./node_modules/typescript/lib/lib.es2018.asynciterable.d.d.ts"
143
+ },
144
+ "./node_modules/typescript/lib/lib.es2018.d.ts": {
145
+ "import": "./node_modules/typescript/lib/lib.es2018.d.js",
146
+ "types": "./node_modules/typescript/lib/lib.es2018.d.d.ts"
147
+ },
148
+ "./node_modules/typescript/lib/lib.es2018.full.d.ts": {
149
+ "import": "./node_modules/typescript/lib/lib.es2018.full.d.js",
150
+ "types": "./node_modules/typescript/lib/lib.es2018.full.d.d.ts"
151
+ },
152
+ "./node_modules/typescript/lib/lib.es2018.intl.d.ts": {
153
+ "import": "./node_modules/typescript/lib/lib.es2018.intl.d.js",
154
+ "types": "./node_modules/typescript/lib/lib.es2018.intl.d.d.ts"
155
+ },
156
+ "./node_modules/typescript/lib/lib.es2018.promise.d.ts": {
157
+ "import": "./node_modules/typescript/lib/lib.es2018.promise.d.js",
158
+ "types": "./node_modules/typescript/lib/lib.es2018.promise.d.d.ts"
159
+ },
160
+ "./node_modules/typescript/lib/lib.es2018.regexp.d.ts": {
161
+ "import": "./node_modules/typescript/lib/lib.es2018.regexp.d.js",
162
+ "types": "./node_modules/typescript/lib/lib.es2018.regexp.d.d.ts"
163
+ },
164
+ "./node_modules/typescript/lib/lib.es2019.array.d.ts": {
165
+ "import": "./node_modules/typescript/lib/lib.es2019.array.d.js",
166
+ "types": "./node_modules/typescript/lib/lib.es2019.array.d.d.ts"
167
+ },
168
+ "./node_modules/typescript/lib/lib.es2019.d.ts": {
169
+ "import": "./node_modules/typescript/lib/lib.es2019.d.js",
170
+ "types": "./node_modules/typescript/lib/lib.es2019.d.d.ts"
171
+ },
172
+ "./node_modules/typescript/lib/lib.es2019.full.d.ts": {
173
+ "import": "./node_modules/typescript/lib/lib.es2019.full.d.js",
174
+ "types": "./node_modules/typescript/lib/lib.es2019.full.d.d.ts"
175
+ },
176
+ "./node_modules/typescript/lib/lib.es2019.intl.d.ts": {
177
+ "import": "./node_modules/typescript/lib/lib.es2019.intl.d.js",
178
+ "types": "./node_modules/typescript/lib/lib.es2019.intl.d.d.ts"
179
+ },
180
+ "./node_modules/typescript/lib/lib.es2019.object.d.ts": {
181
+ "import": "./node_modules/typescript/lib/lib.es2019.object.d.js",
182
+ "types": "./node_modules/typescript/lib/lib.es2019.object.d.d.ts"
183
+ },
184
+ "./node_modules/typescript/lib/lib.es2019.string.d.ts": {
185
+ "import": "./node_modules/typescript/lib/lib.es2019.string.d.js",
186
+ "types": "./node_modules/typescript/lib/lib.es2019.string.d.d.ts"
187
+ },
188
+ "./node_modules/typescript/lib/lib.es2019.symbol.d.ts": {
189
+ "import": "./node_modules/typescript/lib/lib.es2019.symbol.d.js",
190
+ "types": "./node_modules/typescript/lib/lib.es2019.symbol.d.d.ts"
191
+ },
192
+ "./node_modules/typescript/lib/lib.es2020.bigint.d.ts": {
193
+ "import": "./node_modules/typescript/lib/lib.es2020.bigint.d.js",
194
+ "types": "./node_modules/typescript/lib/lib.es2020.bigint.d.d.ts"
195
+ },
196
+ "./node_modules/typescript/lib/lib.es2020.d.ts": {
197
+ "import": "./node_modules/typescript/lib/lib.es2020.d.js",
198
+ "types": "./node_modules/typescript/lib/lib.es2020.d.d.ts"
199
+ },
200
+ "./node_modules/typescript/lib/lib.es2020.date.d.ts": {
201
+ "import": "./node_modules/typescript/lib/lib.es2020.date.d.js",
202
+ "types": "./node_modules/typescript/lib/lib.es2020.date.d.d.ts"
203
+ },
204
+ "./node_modules/typescript/lib/lib.es2020.full.d.ts": {
205
+ "import": "./node_modules/typescript/lib/lib.es2020.full.d.js",
206
+ "types": "./node_modules/typescript/lib/lib.es2020.full.d.d.ts"
207
+ },
208
+ "./node_modules/typescript/lib/lib.es2020.intl.d.ts": {
209
+ "import": "./node_modules/typescript/lib/lib.es2020.intl.d.js",
210
+ "types": "./node_modules/typescript/lib/lib.es2020.intl.d.d.ts"
211
+ },
212
+ "./node_modules/typescript/lib/lib.es2020.number.d.ts": {
213
+ "import": "./node_modules/typescript/lib/lib.es2020.number.d.js",
214
+ "types": "./node_modules/typescript/lib/lib.es2020.number.d.d.ts"
215
+ },
216
+ "./node_modules/typescript/lib/lib.es2020.promise.d.ts": {
217
+ "import": "./node_modules/typescript/lib/lib.es2020.promise.d.js",
218
+ "types": "./node_modules/typescript/lib/lib.es2020.promise.d.d.ts"
219
+ },
220
+ "./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts": {
221
+ "import": "./node_modules/typescript/lib/lib.es2020.sharedmemory.d.js",
222
+ "types": "./node_modules/typescript/lib/lib.es2020.sharedmemory.d.d.ts"
223
+ },
224
+ "./node_modules/typescript/lib/lib.es2020.string.d.ts": {
225
+ "import": "./node_modules/typescript/lib/lib.es2020.string.d.js",
226
+ "types": "./node_modules/typescript/lib/lib.es2020.string.d.d.ts"
227
+ },
228
+ "./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts": {
229
+ "import": "./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.js",
230
+ "types": "./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.d.ts"
231
+ },
232
+ "./node_modules/typescript/lib/lib.es2021.d.ts": {
233
+ "import": "./node_modules/typescript/lib/lib.es2021.d.js",
234
+ "types": "./node_modules/typescript/lib/lib.es2021.d.d.ts"
235
+ },
236
+ "./node_modules/typescript/lib/lib.es2021.full.d.ts": {
237
+ "import": "./node_modules/typescript/lib/lib.es2021.full.d.js",
238
+ "types": "./node_modules/typescript/lib/lib.es2021.full.d.d.ts"
239
+ },
240
+ "./node_modules/typescript/lib/lib.es2021.intl.d.ts": {
241
+ "import": "./node_modules/typescript/lib/lib.es2021.intl.d.js",
242
+ "types": "./node_modules/typescript/lib/lib.es2021.intl.d.d.ts"
243
+ },
244
+ "./node_modules/typescript/lib/lib.es2021.promise.d.ts": {
245
+ "import": "./node_modules/typescript/lib/lib.es2021.promise.d.js",
246
+ "types": "./node_modules/typescript/lib/lib.es2021.promise.d.d.ts"
247
+ },
248
+ "./node_modules/typescript/lib/lib.es2021.string.d.ts": {
249
+ "import": "./node_modules/typescript/lib/lib.es2021.string.d.js",
250
+ "types": "./node_modules/typescript/lib/lib.es2021.string.d.d.ts"
251
+ },
252
+ "./node_modules/typescript/lib/lib.es2021.weakref.d.ts": {
253
+ "import": "./node_modules/typescript/lib/lib.es2021.weakref.d.js",
254
+ "types": "./node_modules/typescript/lib/lib.es2021.weakref.d.d.ts"
255
+ },
256
+ "./node_modules/typescript/lib/lib.es2022.array.d.ts": {
257
+ "import": "./node_modules/typescript/lib/lib.es2022.array.d.js",
258
+ "types": "./node_modules/typescript/lib/lib.es2022.array.d.d.ts"
259
+ },
260
+ "./node_modules/typescript/lib/lib.es2022.d.ts": {
261
+ "import": "./node_modules/typescript/lib/lib.es2022.d.js",
262
+ "types": "./node_modules/typescript/lib/lib.es2022.d.d.ts"
263
+ },
264
+ "./node_modules/typescript/lib/lib.es2022.error.d.ts": {
265
+ "import": "./node_modules/typescript/lib/lib.es2022.error.d.js",
266
+ "types": "./node_modules/typescript/lib/lib.es2022.error.d.d.ts"
267
+ },
268
+ "./node_modules/typescript/lib/lib.es2022.full.d.ts": {
269
+ "import": "./node_modules/typescript/lib/lib.es2022.full.d.js",
270
+ "types": "./node_modules/typescript/lib/lib.es2022.full.d.d.ts"
271
+ },
272
+ "./node_modules/typescript/lib/lib.es2022.intl.d.ts": {
273
+ "import": "./node_modules/typescript/lib/lib.es2022.intl.d.js",
274
+ "types": "./node_modules/typescript/lib/lib.es2022.intl.d.d.ts"
275
+ },
276
+ "./node_modules/typescript/lib/lib.es2022.object.d.ts": {
277
+ "import": "./node_modules/typescript/lib/lib.es2022.object.d.js",
278
+ "types": "./node_modules/typescript/lib/lib.es2022.object.d.d.ts"
279
+ },
280
+ "./node_modules/typescript/lib/lib.es2022.regexp.d.ts": {
281
+ "import": "./node_modules/typescript/lib/lib.es2022.regexp.d.js",
282
+ "types": "./node_modules/typescript/lib/lib.es2022.regexp.d.d.ts"
283
+ },
284
+ "./node_modules/typescript/lib/lib.es2022.string.d.ts": {
285
+ "import": "./node_modules/typescript/lib/lib.es2022.string.d.js",
286
+ "types": "./node_modules/typescript/lib/lib.es2022.string.d.d.ts"
287
+ },
288
+ "./node_modules/typescript/lib/lib.es2023.array.d.ts": {
289
+ "import": "./node_modules/typescript/lib/lib.es2023.array.d.js",
290
+ "types": "./node_modules/typescript/lib/lib.es2023.array.d.d.ts"
291
+ },
292
+ "./node_modules/typescript/lib/lib.es2023.collection.d.ts": {
293
+ "import": "./node_modules/typescript/lib/lib.es2023.collection.d.js",
294
+ "types": "./node_modules/typescript/lib/lib.es2023.collection.d.d.ts"
295
+ },
296
+ "./node_modules/typescript/lib/lib.es2023.d.ts": {
297
+ "import": "./node_modules/typescript/lib/lib.es2023.d.js",
298
+ "types": "./node_modules/typescript/lib/lib.es2023.d.d.ts"
299
+ },
300
+ "./node_modules/typescript/lib/lib.es2023.full.d.ts": {
301
+ "import": "./node_modules/typescript/lib/lib.es2023.full.d.js",
302
+ "types": "./node_modules/typescript/lib/lib.es2023.full.d.d.ts"
303
+ },
304
+ "./node_modules/typescript/lib/lib.es2023.intl.d.ts": {
305
+ "import": "./node_modules/typescript/lib/lib.es2023.intl.d.js",
306
+ "types": "./node_modules/typescript/lib/lib.es2023.intl.d.d.ts"
307
+ },
308
+ "./node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts": {
309
+ "import": "./node_modules/typescript/lib/lib.es2024.arraybuffer.d.js",
310
+ "types": "./node_modules/typescript/lib/lib.es2024.arraybuffer.d.d.ts"
311
+ },
312
+ "./node_modules/typescript/lib/lib.es2024.collection.d.ts": {
313
+ "import": "./node_modules/typescript/lib/lib.es2024.collection.d.js",
314
+ "types": "./node_modules/typescript/lib/lib.es2024.collection.d.d.ts"
315
+ },
316
+ "./node_modules/typescript/lib/lib.es2024.d.ts": {
317
+ "import": "./node_modules/typescript/lib/lib.es2024.d.js",
318
+ "types": "./node_modules/typescript/lib/lib.es2024.d.d.ts"
319
+ },
320
+ "./node_modules/typescript/lib/lib.es2024.full.d.ts": {
321
+ "import": "./node_modules/typescript/lib/lib.es2024.full.d.js",
322
+ "types": "./node_modules/typescript/lib/lib.es2024.full.d.d.ts"
323
+ },
324
+ "./node_modules/typescript/lib/lib.es2024.object.d.ts": {
325
+ "import": "./node_modules/typescript/lib/lib.es2024.object.d.js",
326
+ "types": "./node_modules/typescript/lib/lib.es2024.object.d.d.ts"
327
+ },
328
+ "./node_modules/typescript/lib/lib.es2024.promise.d.ts": {
329
+ "import": "./node_modules/typescript/lib/lib.es2024.promise.d.js",
330
+ "types": "./node_modules/typescript/lib/lib.es2024.promise.d.d.ts"
331
+ },
332
+ "./node_modules/typescript/lib/lib.es2024.regexp.d.ts": {
333
+ "import": "./node_modules/typescript/lib/lib.es2024.regexp.d.js",
334
+ "types": "./node_modules/typescript/lib/lib.es2024.regexp.d.d.ts"
335
+ },
336
+ "./node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts": {
337
+ "import": "./node_modules/typescript/lib/lib.es2024.sharedmemory.d.js",
338
+ "types": "./node_modules/typescript/lib/lib.es2024.sharedmemory.d.d.ts"
339
+ },
340
+ "./node_modules/typescript/lib/lib.es2024.string.d.ts": {
341
+ "import": "./node_modules/typescript/lib/lib.es2024.string.d.js",
342
+ "types": "./node_modules/typescript/lib/lib.es2024.string.d.d.ts"
343
+ },
344
+ "./node_modules/typescript/lib/lib.es5.d.ts": {
345
+ "import": "./node_modules/typescript/lib/lib.es5.d.js",
346
+ "types": "./node_modules/typescript/lib/lib.es5.d.d.ts"
347
+ },
348
+ "./node_modules/typescript/lib/lib.es6.d.ts": {
349
+ "import": "./node_modules/typescript/lib/lib.es6.d.js",
350
+ "types": "./node_modules/typescript/lib/lib.es6.d.d.ts"
351
+ },
352
+ "./node_modules/typescript/lib/lib.esnext.array.d.ts": {
353
+ "import": "./node_modules/typescript/lib/lib.esnext.array.d.js",
354
+ "types": "./node_modules/typescript/lib/lib.esnext.array.d.d.ts"
355
+ },
356
+ "./node_modules/typescript/lib/lib.esnext.collection.d.ts": {
357
+ "import": "./node_modules/typescript/lib/lib.esnext.collection.d.js",
358
+ "types": "./node_modules/typescript/lib/lib.esnext.collection.d.d.ts"
359
+ },
360
+ "./node_modules/typescript/lib/lib.esnext.d.ts": {
361
+ "import": "./node_modules/typescript/lib/lib.esnext.d.js",
362
+ "types": "./node_modules/typescript/lib/lib.esnext.d.d.ts"
363
+ },
364
+ "./node_modules/typescript/lib/lib.esnext.decorators.d.ts": {
365
+ "import": "./node_modules/typescript/lib/lib.esnext.decorators.d.js",
366
+ "types": "./node_modules/typescript/lib/lib.esnext.decorators.d.d.ts"
367
+ },
368
+ "./node_modules/typescript/lib/lib.esnext.disposable.d.ts": {
369
+ "import": "./node_modules/typescript/lib/lib.esnext.disposable.d.js",
370
+ "types": "./node_modules/typescript/lib/lib.esnext.disposable.d.d.ts"
371
+ },
372
+ "./node_modules/typescript/lib/lib.esnext.error.d.ts": {
373
+ "import": "./node_modules/typescript/lib/lib.esnext.error.d.js",
374
+ "types": "./node_modules/typescript/lib/lib.esnext.error.d.d.ts"
375
+ },
376
+ "./node_modules/typescript/lib/lib.esnext.float16.d.ts": {
377
+ "import": "./node_modules/typescript/lib/lib.esnext.float16.d.js",
378
+ "types": "./node_modules/typescript/lib/lib.esnext.float16.d.d.ts"
379
+ },
380
+ "./node_modules/typescript/lib/lib.esnext.full.d.ts": {
381
+ "import": "./node_modules/typescript/lib/lib.esnext.full.d.js",
382
+ "types": "./node_modules/typescript/lib/lib.esnext.full.d.d.ts"
383
+ },
384
+ "./node_modules/typescript/lib/lib.esnext.intl.d.ts": {
385
+ "import": "./node_modules/typescript/lib/lib.esnext.intl.d.js",
386
+ "types": "./node_modules/typescript/lib/lib.esnext.intl.d.d.ts"
387
+ },
388
+ "./node_modules/typescript/lib/lib.esnext.iterator.d.ts": {
389
+ "import": "./node_modules/typescript/lib/lib.esnext.iterator.d.js",
390
+ "types": "./node_modules/typescript/lib/lib.esnext.iterator.d.d.ts"
391
+ },
392
+ "./node_modules/typescript/lib/lib.esnext.promise.d.ts": {
393
+ "import": "./node_modules/typescript/lib/lib.esnext.promise.d.js",
394
+ "types": "./node_modules/typescript/lib/lib.esnext.promise.d.d.ts"
395
+ },
396
+ "./node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts": {
397
+ "import": "./node_modules/typescript/lib/lib.esnext.sharedmemory.d.js",
398
+ "types": "./node_modules/typescript/lib/lib.esnext.sharedmemory.d.d.ts"
399
+ },
400
+ "./node_modules/typescript/lib/lib.scripthost.d.ts": {
401
+ "import": "./node_modules/typescript/lib/lib.scripthost.d.js",
402
+ "types": "./node_modules/typescript/lib/lib.scripthost.d.d.ts"
403
+ },
404
+ "./node_modules/typescript/lib/lib.webworker.asynciterable.d.ts": {
405
+ "import": "./node_modules/typescript/lib/lib.webworker.asynciterable.d.js",
406
+ "types": "./node_modules/typescript/lib/lib.webworker.asynciterable.d.d.ts"
407
+ },
408
+ "./node_modules/typescript/lib/lib.webworker.d.ts": {
409
+ "import": "./node_modules/typescript/lib/lib.webworker.d.js",
410
+ "types": "./node_modules/typescript/lib/lib.webworker.d.d.ts"
411
+ },
412
+ "./node_modules/typescript/lib/lib.webworker.importscripts.d.ts": {
413
+ "import": "./node_modules/typescript/lib/lib.webworker.importscripts.d.js",
414
+ "types": "./node_modules/typescript/lib/lib.webworker.importscripts.d.d.ts"
415
+ },
416
+ "./node_modules/typescript/lib/lib.webworker.iterable.d.ts": {
417
+ "import": "./node_modules/typescript/lib/lib.webworker.iterable.d.js",
418
+ "types": "./node_modules/typescript/lib/lib.webworker.iterable.d.d.ts"
419
+ },
420
+ "./node_modules/typescript/lib/tsserverlibrary.d.ts": {
421
+ "import": "./node_modules/typescript/lib/tsserverlibrary.d.js",
422
+ "types": "./node_modules/typescript/lib/tsserverlibrary.d.d.ts"
423
+ },
424
+ "./node_modules/typescript/lib/typescript.d.ts": {
425
+ "import": "./node_modules/typescript/lib/typescript.d.js",
426
+ "types": "./node_modules/typescript/lib/typescript.d.d.ts"
427
+ },
428
+ "./service.test.ts": {
429
+ "import": "./service.test.js",
430
+ "types": "./service.test.d.ts"
431
+ },
432
+ "./service.ts": {
433
+ "import": "./service.js",
434
+ "types": "./service.d.ts"
435
+ }
436
+ }
437
+ }
package/service.d.ts ADDED
@@ -0,0 +1,15 @@
1
+ import type { FileSystemService } from '@dungarees/fs/service.ts';
2
+ import type { Observable } from 'rxjs';
3
+ type Transpiler = {
4
+ transpileDir: (options: {
5
+ input: string;
6
+ output: string;
7
+ }) => Observable<TranspileDirOutput[]>;
8
+ };
9
+ export type TranspileDirOutput = {
10
+ input: string;
11
+ output: string;
12
+ type: string;
13
+ };
14
+ export declare const createTranspilerService: (fileSystem: FileSystemService) => Transpiler;
15
+ export {};
package/service.js ADDED
@@ -0,0 +1,115 @@
1
+ import { asyncFunctionToObservable } from '@dungarees/rxjs/util.ts';
2
+ import path from 'node:path';
3
+ import ts from 'typescript';
4
+ export const createTranspilerService = (fileSystem) => {
5
+ const transpileDirAsync = async ({ input, output, }) => {
6
+ const tsFiles = await fileSystem.globAsync(path.join(input, '**', '*.ts'));
7
+ const pathAndContentPairs = Object.entries(await fileSystem.readBulkAsync(tsFiles));
8
+ const sources = new Map(pathAndContentPairs);
9
+ const compilerOptions = {
10
+ target: ts.ScriptTarget.ES2020,
11
+ module: ts.ModuleKind.ESNext,
12
+ jsx: ts.JsxEmit.ReactJSX,
13
+ declaration: true, // Always generate declarations for directory transpilation
14
+ sourceMap: false,
15
+ removeComments: false,
16
+ esModuleInterop: true,
17
+ moduleResolution: ts.ModuleResolutionKind.Node10,
18
+ noResolve: false, // Allow resolving imports between files
19
+ skipLibCheck: true,
20
+ skipDefaultLibCheck: true,
21
+ };
22
+ const host = {
23
+ getSourceFile: (fileName, languageVersion) => {
24
+ if (sources.has(fileName)) {
25
+ return ts.createSourceFile(fileName, sources.get(fileName), languageVersion, true);
26
+ }
27
+ return undefined;
28
+ },
29
+ getDefaultLibFileName: () => 'lib.d.ts',
30
+ writeFile: () => { },
31
+ getCurrentDirectory: () => input,
32
+ getDirectories: () => [],
33
+ fileExists: (fileName) => sources.has(fileName),
34
+ readFile: (fileName) => sources.get(fileName),
35
+ getCanonicalFileName: (fileName) => fileName,
36
+ useCaseSensitiveFileNames: () => true,
37
+ getNewLine: () => '\n',
38
+ resolveModuleNames: (moduleNames, containingFile) => {
39
+ return moduleNames.map((moduleName) => {
40
+ if (moduleName.startsWith('./') || moduleName.startsWith('../')) {
41
+ const resolved = path.join(path.dirname(containingFile), moduleName);
42
+ if (sources.has(resolved)) {
43
+ return { resolvedFileName: resolved };
44
+ }
45
+ }
46
+ return undefined;
47
+ });
48
+ },
49
+ };
50
+ const rewriteImportsTransformer = (context) => {
51
+ return (sourceFile) => {
52
+ const visitor = (node) => {
53
+ if (ts.isImportDeclaration(node) &&
54
+ node.moduleSpecifier &&
55
+ ts.isStringLiteral(node.moduleSpecifier)) {
56
+ const importPath = node.moduleSpecifier.text;
57
+ if ((importPath.startsWith('./') || importPath.startsWith('../')) &&
58
+ importPath.endsWith('.ts')) {
59
+ const newPath = importPath.replace(/\.ts$/, '.js');
60
+ return ts.factory.updateImportDeclaration(node, node.modifiers, node.importClause, ts.factory.createStringLiteral(newPath, true), node.attributes);
61
+ }
62
+ }
63
+ if (ts.isExportDeclaration(node) &&
64
+ node.moduleSpecifier &&
65
+ ts.isStringLiteral(node.moduleSpecifier)) {
66
+ const importPath = node.moduleSpecifier.text;
67
+ if ((importPath.startsWith('./') || importPath.startsWith('../')) &&
68
+ importPath.endsWith('.ts')) {
69
+ const newPath = importPath.replace(/\.ts$/, '.js');
70
+ return ts.factory.updateExportDeclaration(node, node.modifiers, node.isTypeOnly, node.exportClause, ts.factory.createStringLiteral(newPath, true), node.attributes);
71
+ }
72
+ }
73
+ return ts.visitEachChild(node, visitor, context);
74
+ };
75
+ return ts.visitNode(sourceFile, visitor);
76
+ };
77
+ };
78
+ const outputs = new Map();
79
+ const writeFile = (fileName, data) => {
80
+ outputs.set(fileName, data);
81
+ };
82
+ const program = ts.createProgram(tsFiles, compilerOptions, host);
83
+ program.emit(undefined, writeFile, undefined, undefined, { after: [rewriteImportsTransformer] });
84
+ for (const inputFile of tsFiles) {
85
+ const sourceFile = program.getSourceFile(inputFile);
86
+ if (sourceFile) {
87
+ const syntacticDiagnostics = program.getSyntacticDiagnostics(sourceFile);
88
+ if (syntacticDiagnostics.length > 0) {
89
+ const formatted = ts.formatDiagnosticsWithColorAndContext(syntacticDiagnostics, {
90
+ getCanonicalFileName: (f) => f,
91
+ getCurrentDirectory: () => input,
92
+ getNewLine: () => '\n',
93
+ });
94
+ throw new Error(`TypeScript transpile error:\n${formatted}`);
95
+ }
96
+ }
97
+ }
98
+ await fileSystem.mkdirAsync(output);
99
+ for (const [fileName, content] of outputs.entries()) {
100
+ const relativePath = path.relative(input, fileName);
101
+ const outputPath = path.join(output, relativePath);
102
+ await fileSystem.mkdirAsync(path.dirname(outputPath));
103
+ await fileSystem.writeFileAsync(outputPath, content);
104
+ }
105
+ const fileNames = tsFiles.map((f) => path.relative(input, f)).sort();
106
+ return fileNames.map((file) => ({
107
+ input: path.join(input, file),
108
+ output: path.join(output, file.replace(/\.ts$/, '.js')),
109
+ type: path.join(output, file.replace(/\.ts$/, '.d.ts')),
110
+ }));
111
+ };
112
+ return {
113
+ transpileDir: asyncFunctionToObservable(transpileDirAsync),
114
+ };
115
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,48 @@
1
+ import { createTranspilerService } from './service.js';
2
+ import { createFakeFileSystem } from '@dungarees/fs/fake.ts';
3
+ import { lastValueFrom } from 'rxjs';
4
+ import { expect, test } from 'vitest';
5
+ const srcDirFile1 = `
6
+ import { assertDefined } from '@dungarees/core/utils.ts';
7
+
8
+ export const fun1 = (input: string): string => {
9
+ return assertDefined(input + ' from file1');
10
+ };
11
+ `;
12
+ const srcDirFile2 = `
13
+ import { fun1 } from './file1.ts';
14
+
15
+ export const fun2 = (input: string): string => {
16
+ return fun1(input + ' and file2');
17
+ };
18
+ `;
19
+ const srcDirFile3 = `
20
+ console.log('File 3');
21
+ `;
22
+ test('transpile should transpile a directory', async () => {
23
+ const fs = createFakeFileSystem({
24
+ '/src-dir/file1.ts': srcDirFile1.trim(),
25
+ '/src-dir/file2.ts': srcDirFile2.trim(),
26
+ '/src-dir/sub-dir/file3.ts': srcDirFile3.trim(),
27
+ });
28
+ const transpileService = createTranspilerService(fs);
29
+ const files = await lastValueFrom(transpileService.transpileDir({
30
+ input: '/src-dir',
31
+ output: '/dist-dir',
32
+ }));
33
+ expect(fs.readFileSync('/dist-dir/file1.js', 'utf-8')).toBe("import { assertDefined } from '@dungarees/core/utils.ts';\nexport const fun1 = (input) => {\n return assertDefined(input + ' from file1');\n};\n");
34
+ expect(fs.readFileSync('/dist-dir/file1.d.ts', 'utf-8')).toBe('export declare const fun1: (input: string) => string;\n');
35
+ expect(fs.readFileSync('/dist-dir/file2.js', 'utf-8')).toBe("import { fun1 } from './file1.js';\nexport const fun2 = (input) => {\n return fun1(input + ' and file2');\n};\n");
36
+ expect(fs.readFileSync('/dist-dir/file2.d.ts', 'utf-8')).toBe('export declare const fun2: (input: string) => string;\n');
37
+ expect(fs.readFileSync('/dist-dir/sub-dir/file3.js', 'utf-8')).toBe("console.log('File 3');\n");
38
+ expect(fs.readFileSync('/dist-dir/sub-dir/file3.d.ts', 'utf-8')).toBe('');
39
+ expect(files).toEqual([
40
+ { input: '/src-dir/file1.ts', output: '/dist-dir/file1.js', type: '/dist-dir/file1.d.ts' },
41
+ { input: '/src-dir/file2.ts', output: '/dist-dir/file2.js', type: '/dist-dir/file2.d.ts' },
42
+ {
43
+ input: '/src-dir/sub-dir/file3.ts',
44
+ output: '/dist-dir/sub-dir/file3.js',
45
+ type: '/dist-dir/sub-dir/file3.d.ts',
46
+ },
47
+ ]);
48
+ });