@crustkit/minify 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/LICENSE +21 -0
- package/README.md +92 -0
- package/crustkit-minify.linux-x64-gnu.node +0 -0
- package/dist/index.d.mts +157 -0
- package/dist/index.d.ts +157 -0
- package/dist/index.js +423 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +401 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +82 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,423 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __commonJS = (cb, mod) => function __require() {
|
|
7
|
+
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
8
|
+
};
|
|
9
|
+
var __export = (target, all) => {
|
|
10
|
+
for (var name in all)
|
|
11
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from))
|
|
16
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
17
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
18
|
+
}
|
|
19
|
+
return to;
|
|
20
|
+
};
|
|
21
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
22
|
+
|
|
23
|
+
// index.js
|
|
24
|
+
var require_index = __commonJS({
|
|
25
|
+
"index.js"(exports2, module2) {
|
|
26
|
+
"use strict";
|
|
27
|
+
var { existsSync, readFileSync } = require("fs");
|
|
28
|
+
var { join } = require("path");
|
|
29
|
+
var { platform, arch } = process;
|
|
30
|
+
var nativeBinding = null;
|
|
31
|
+
var localFileExisted = false;
|
|
32
|
+
var loadError = null;
|
|
33
|
+
function isMusl() {
|
|
34
|
+
if (!process.report || typeof process.report.getReport !== "function") {
|
|
35
|
+
try {
|
|
36
|
+
const lddPath = require("child_process").execSync("which ldd").toString().trim();
|
|
37
|
+
return readFileSync(lddPath, "utf8").includes("musl");
|
|
38
|
+
} catch (e) {
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
} else {
|
|
42
|
+
const { glibcVersionRuntime } = process.report.getReport().header;
|
|
43
|
+
return !glibcVersionRuntime;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
switch (platform) {
|
|
47
|
+
case "android":
|
|
48
|
+
switch (arch) {
|
|
49
|
+
case "arm64":
|
|
50
|
+
localFileExisted = existsSync(join(__dirname, "crustkit-minify.android-arm64.node"));
|
|
51
|
+
try {
|
|
52
|
+
if (localFileExisted) {
|
|
53
|
+
nativeBinding = require("./crustkit-minify.android-arm64.node");
|
|
54
|
+
} else {
|
|
55
|
+
nativeBinding = require("@crustkit/minify-android-arm64");
|
|
56
|
+
}
|
|
57
|
+
} catch (e) {
|
|
58
|
+
loadError = e;
|
|
59
|
+
}
|
|
60
|
+
break;
|
|
61
|
+
case "arm":
|
|
62
|
+
localFileExisted = existsSync(join(__dirname, "crustkit-minify.android-arm-eabi.node"));
|
|
63
|
+
try {
|
|
64
|
+
if (localFileExisted) {
|
|
65
|
+
nativeBinding = require("./crustkit-minify.android-arm-eabi.node");
|
|
66
|
+
} else {
|
|
67
|
+
nativeBinding = require("@crustkit/minify-android-arm-eabi");
|
|
68
|
+
}
|
|
69
|
+
} catch (e) {
|
|
70
|
+
loadError = e;
|
|
71
|
+
}
|
|
72
|
+
break;
|
|
73
|
+
default:
|
|
74
|
+
throw new Error(`Unsupported architecture on Android ${arch}`);
|
|
75
|
+
}
|
|
76
|
+
break;
|
|
77
|
+
case "win32":
|
|
78
|
+
switch (arch) {
|
|
79
|
+
case "x64":
|
|
80
|
+
localFileExisted = existsSync(
|
|
81
|
+
join(__dirname, "crustkit-minify.win32-x64-msvc.node")
|
|
82
|
+
);
|
|
83
|
+
try {
|
|
84
|
+
if (localFileExisted) {
|
|
85
|
+
nativeBinding = require("./crustkit-minify.win32-x64-msvc.node");
|
|
86
|
+
} else {
|
|
87
|
+
nativeBinding = require("@crustkit/minify-win32-x64-msvc");
|
|
88
|
+
}
|
|
89
|
+
} catch (e) {
|
|
90
|
+
loadError = e;
|
|
91
|
+
}
|
|
92
|
+
break;
|
|
93
|
+
case "ia32":
|
|
94
|
+
localFileExisted = existsSync(
|
|
95
|
+
join(__dirname, "crustkit-minify.win32-ia32-msvc.node")
|
|
96
|
+
);
|
|
97
|
+
try {
|
|
98
|
+
if (localFileExisted) {
|
|
99
|
+
nativeBinding = require("./crustkit-minify.win32-ia32-msvc.node");
|
|
100
|
+
} else {
|
|
101
|
+
nativeBinding = require("@crustkit/minify-win32-ia32-msvc");
|
|
102
|
+
}
|
|
103
|
+
} catch (e) {
|
|
104
|
+
loadError = e;
|
|
105
|
+
}
|
|
106
|
+
break;
|
|
107
|
+
case "arm64":
|
|
108
|
+
localFileExisted = existsSync(
|
|
109
|
+
join(__dirname, "crustkit-minify.win32-arm64-msvc.node")
|
|
110
|
+
);
|
|
111
|
+
try {
|
|
112
|
+
if (localFileExisted) {
|
|
113
|
+
nativeBinding = require("./crustkit-minify.win32-arm64-msvc.node");
|
|
114
|
+
} else {
|
|
115
|
+
nativeBinding = require("@crustkit/minify-win32-arm64-msvc");
|
|
116
|
+
}
|
|
117
|
+
} catch (e) {
|
|
118
|
+
loadError = e;
|
|
119
|
+
}
|
|
120
|
+
break;
|
|
121
|
+
default:
|
|
122
|
+
throw new Error(`Unsupported architecture on Windows: ${arch}`);
|
|
123
|
+
}
|
|
124
|
+
break;
|
|
125
|
+
case "darwin":
|
|
126
|
+
localFileExisted = existsSync(join(__dirname, "crustkit-minify.darwin-universal.node"));
|
|
127
|
+
try {
|
|
128
|
+
if (localFileExisted) {
|
|
129
|
+
nativeBinding = require("./crustkit-minify.darwin-universal.node");
|
|
130
|
+
} else {
|
|
131
|
+
nativeBinding = require("@crustkit/minify-darwin-universal");
|
|
132
|
+
}
|
|
133
|
+
break;
|
|
134
|
+
} catch {
|
|
135
|
+
}
|
|
136
|
+
switch (arch) {
|
|
137
|
+
case "x64":
|
|
138
|
+
localFileExisted = existsSync(join(__dirname, "crustkit-minify.darwin-x64.node"));
|
|
139
|
+
try {
|
|
140
|
+
if (localFileExisted) {
|
|
141
|
+
nativeBinding = require("./crustkit-minify.darwin-x64.node");
|
|
142
|
+
} else {
|
|
143
|
+
nativeBinding = require("@crustkit/minify-darwin-x64");
|
|
144
|
+
}
|
|
145
|
+
} catch (e) {
|
|
146
|
+
loadError = e;
|
|
147
|
+
}
|
|
148
|
+
break;
|
|
149
|
+
case "arm64":
|
|
150
|
+
localFileExisted = existsSync(
|
|
151
|
+
join(__dirname, "crustkit-minify.darwin-arm64.node")
|
|
152
|
+
);
|
|
153
|
+
try {
|
|
154
|
+
if (localFileExisted) {
|
|
155
|
+
nativeBinding = require("./crustkit-minify.darwin-arm64.node");
|
|
156
|
+
} else {
|
|
157
|
+
nativeBinding = require("@crustkit/minify-darwin-arm64");
|
|
158
|
+
}
|
|
159
|
+
} catch (e) {
|
|
160
|
+
loadError = e;
|
|
161
|
+
}
|
|
162
|
+
break;
|
|
163
|
+
default:
|
|
164
|
+
throw new Error(`Unsupported architecture on macOS: ${arch}`);
|
|
165
|
+
}
|
|
166
|
+
break;
|
|
167
|
+
case "freebsd":
|
|
168
|
+
if (arch !== "x64") {
|
|
169
|
+
throw new Error(`Unsupported architecture on FreeBSD: ${arch}`);
|
|
170
|
+
}
|
|
171
|
+
localFileExisted = existsSync(join(__dirname, "crustkit-minify.freebsd-x64.node"));
|
|
172
|
+
try {
|
|
173
|
+
if (localFileExisted) {
|
|
174
|
+
nativeBinding = require("./crustkit-minify.freebsd-x64.node");
|
|
175
|
+
} else {
|
|
176
|
+
nativeBinding = require("@crustkit/minify-freebsd-x64");
|
|
177
|
+
}
|
|
178
|
+
} catch (e) {
|
|
179
|
+
loadError = e;
|
|
180
|
+
}
|
|
181
|
+
break;
|
|
182
|
+
case "linux":
|
|
183
|
+
switch (arch) {
|
|
184
|
+
case "x64":
|
|
185
|
+
if (isMusl()) {
|
|
186
|
+
localFileExisted = existsSync(
|
|
187
|
+
join(__dirname, "crustkit-minify.linux-x64-musl.node")
|
|
188
|
+
);
|
|
189
|
+
try {
|
|
190
|
+
if (localFileExisted) {
|
|
191
|
+
nativeBinding = require("./crustkit-minify.linux-x64-musl.node");
|
|
192
|
+
} else {
|
|
193
|
+
nativeBinding = require("@crustkit/minify-linux-x64-musl");
|
|
194
|
+
}
|
|
195
|
+
} catch (e) {
|
|
196
|
+
loadError = e;
|
|
197
|
+
}
|
|
198
|
+
} else {
|
|
199
|
+
localFileExisted = existsSync(
|
|
200
|
+
join(__dirname, "crustkit-minify.linux-x64-gnu.node")
|
|
201
|
+
);
|
|
202
|
+
try {
|
|
203
|
+
if (localFileExisted) {
|
|
204
|
+
nativeBinding = require("./crustkit-minify.linux-x64-gnu.node");
|
|
205
|
+
} else {
|
|
206
|
+
nativeBinding = require("@crustkit/minify-linux-x64-gnu");
|
|
207
|
+
}
|
|
208
|
+
} catch (e) {
|
|
209
|
+
loadError = e;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
break;
|
|
213
|
+
case "arm64":
|
|
214
|
+
if (isMusl()) {
|
|
215
|
+
localFileExisted = existsSync(
|
|
216
|
+
join(__dirname, "crustkit-minify.linux-arm64-musl.node")
|
|
217
|
+
);
|
|
218
|
+
try {
|
|
219
|
+
if (localFileExisted) {
|
|
220
|
+
nativeBinding = require("./crustkit-minify.linux-arm64-musl.node");
|
|
221
|
+
} else {
|
|
222
|
+
nativeBinding = require("@crustkit/minify-linux-arm64-musl");
|
|
223
|
+
}
|
|
224
|
+
} catch (e) {
|
|
225
|
+
loadError = e;
|
|
226
|
+
}
|
|
227
|
+
} else {
|
|
228
|
+
localFileExisted = existsSync(
|
|
229
|
+
join(__dirname, "crustkit-minify.linux-arm64-gnu.node")
|
|
230
|
+
);
|
|
231
|
+
try {
|
|
232
|
+
if (localFileExisted) {
|
|
233
|
+
nativeBinding = require("./crustkit-minify.linux-arm64-gnu.node");
|
|
234
|
+
} else {
|
|
235
|
+
nativeBinding = require("@crustkit/minify-linux-arm64-gnu");
|
|
236
|
+
}
|
|
237
|
+
} catch (e) {
|
|
238
|
+
loadError = e;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
break;
|
|
242
|
+
case "arm":
|
|
243
|
+
if (isMusl()) {
|
|
244
|
+
localFileExisted = existsSync(
|
|
245
|
+
join(__dirname, "crustkit-minify.linux-arm-musleabihf.node")
|
|
246
|
+
);
|
|
247
|
+
try {
|
|
248
|
+
if (localFileExisted) {
|
|
249
|
+
nativeBinding = require("./crustkit-minify.linux-arm-musleabihf.node");
|
|
250
|
+
} else {
|
|
251
|
+
nativeBinding = require("@crustkit/minify-linux-arm-musleabihf");
|
|
252
|
+
}
|
|
253
|
+
} catch (e) {
|
|
254
|
+
loadError = e;
|
|
255
|
+
}
|
|
256
|
+
} else {
|
|
257
|
+
localFileExisted = existsSync(
|
|
258
|
+
join(__dirname, "crustkit-minify.linux-arm-gnueabihf.node")
|
|
259
|
+
);
|
|
260
|
+
try {
|
|
261
|
+
if (localFileExisted) {
|
|
262
|
+
nativeBinding = require("./crustkit-minify.linux-arm-gnueabihf.node");
|
|
263
|
+
} else {
|
|
264
|
+
nativeBinding = require("@crustkit/minify-linux-arm-gnueabihf");
|
|
265
|
+
}
|
|
266
|
+
} catch (e) {
|
|
267
|
+
loadError = e;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
break;
|
|
271
|
+
case "riscv64":
|
|
272
|
+
if (isMusl()) {
|
|
273
|
+
localFileExisted = existsSync(
|
|
274
|
+
join(__dirname, "crustkit-minify.linux-riscv64-musl.node")
|
|
275
|
+
);
|
|
276
|
+
try {
|
|
277
|
+
if (localFileExisted) {
|
|
278
|
+
nativeBinding = require("./crustkit-minify.linux-riscv64-musl.node");
|
|
279
|
+
} else {
|
|
280
|
+
nativeBinding = require("@crustkit/minify-linux-riscv64-musl");
|
|
281
|
+
}
|
|
282
|
+
} catch (e) {
|
|
283
|
+
loadError = e;
|
|
284
|
+
}
|
|
285
|
+
} else {
|
|
286
|
+
localFileExisted = existsSync(
|
|
287
|
+
join(__dirname, "crustkit-minify.linux-riscv64-gnu.node")
|
|
288
|
+
);
|
|
289
|
+
try {
|
|
290
|
+
if (localFileExisted) {
|
|
291
|
+
nativeBinding = require("./crustkit-minify.linux-riscv64-gnu.node");
|
|
292
|
+
} else {
|
|
293
|
+
nativeBinding = require("@crustkit/minify-linux-riscv64-gnu");
|
|
294
|
+
}
|
|
295
|
+
} catch (e) {
|
|
296
|
+
loadError = e;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
break;
|
|
300
|
+
case "s390x":
|
|
301
|
+
localFileExisted = existsSync(
|
|
302
|
+
join(__dirname, "crustkit-minify.linux-s390x-gnu.node")
|
|
303
|
+
);
|
|
304
|
+
try {
|
|
305
|
+
if (localFileExisted) {
|
|
306
|
+
nativeBinding = require("./crustkit-minify.linux-s390x-gnu.node");
|
|
307
|
+
} else {
|
|
308
|
+
nativeBinding = require("@crustkit/minify-linux-s390x-gnu");
|
|
309
|
+
}
|
|
310
|
+
} catch (e) {
|
|
311
|
+
loadError = e;
|
|
312
|
+
}
|
|
313
|
+
break;
|
|
314
|
+
default:
|
|
315
|
+
throw new Error(`Unsupported architecture on Linux: ${arch}`);
|
|
316
|
+
}
|
|
317
|
+
break;
|
|
318
|
+
default:
|
|
319
|
+
throw new Error(`Unsupported OS: ${platform}, architecture: ${arch}`);
|
|
320
|
+
}
|
|
321
|
+
if (!nativeBinding) {
|
|
322
|
+
if (loadError) {
|
|
323
|
+
throw loadError;
|
|
324
|
+
}
|
|
325
|
+
throw new Error(`Failed to load native binding`);
|
|
326
|
+
}
|
|
327
|
+
var { minifyJs: minifyJs3, minifyCss: minifyCss3 } = nativeBinding;
|
|
328
|
+
module2.exports.minifyJs = minifyJs3;
|
|
329
|
+
module2.exports.minifyCss = minifyCss3;
|
|
330
|
+
}
|
|
331
|
+
});
|
|
332
|
+
|
|
333
|
+
// ts/index.ts
|
|
334
|
+
var index_exports = {};
|
|
335
|
+
__export(index_exports, {
|
|
336
|
+
minify: () => minify,
|
|
337
|
+
minifyCss: () => minifyCss2,
|
|
338
|
+
minifyJs: () => minifyJs2,
|
|
339
|
+
terser: () => terser
|
|
340
|
+
});
|
|
341
|
+
module.exports = __toCommonJS(index_exports);
|
|
342
|
+
|
|
343
|
+
// ts/binding.ts
|
|
344
|
+
var native = require_index();
|
|
345
|
+
var minifyJs = native.minifyJs;
|
|
346
|
+
var minifyCss = native.minifyCss;
|
|
347
|
+
|
|
348
|
+
// ts/index.ts
|
|
349
|
+
function minifyJs2(code, options) {
|
|
350
|
+
const result = minifyJs(code, {
|
|
351
|
+
mangle: options?.mangle,
|
|
352
|
+
compress: options?.compress,
|
|
353
|
+
sourceMap: options?.sourceMap,
|
|
354
|
+
filename: options?.filename,
|
|
355
|
+
module: options?.module
|
|
356
|
+
});
|
|
357
|
+
return {
|
|
358
|
+
code: result.code,
|
|
359
|
+
map: result.map ?? null
|
|
360
|
+
};
|
|
361
|
+
}
|
|
362
|
+
function minifyCss2(code, options) {
|
|
363
|
+
const result = minifyCss(code, {
|
|
364
|
+
sourceMap: options?.sourceMap,
|
|
365
|
+
filename: options?.filename
|
|
366
|
+
});
|
|
367
|
+
return {
|
|
368
|
+
code: result.code,
|
|
369
|
+
map: result.map ?? null
|
|
370
|
+
};
|
|
371
|
+
}
|
|
372
|
+
function minify(code, options) {
|
|
373
|
+
const lang = detectLanguage(options);
|
|
374
|
+
if (lang === "css") {
|
|
375
|
+
return minifyCss2(code, options);
|
|
376
|
+
}
|
|
377
|
+
return minifyJs2(code, options);
|
|
378
|
+
}
|
|
379
|
+
async function terser(code, options) {
|
|
380
|
+
let input;
|
|
381
|
+
let filename;
|
|
382
|
+
if (typeof code === "string") {
|
|
383
|
+
input = code;
|
|
384
|
+
} else {
|
|
385
|
+
const entries = Object.entries(code);
|
|
386
|
+
if (entries.length === 0) {
|
|
387
|
+
return { code: "" };
|
|
388
|
+
}
|
|
389
|
+
filename = entries[0][0];
|
|
390
|
+
input = entries.map(([, src]) => src).join(";\n");
|
|
391
|
+
}
|
|
392
|
+
const doSourceMap = options?.sourceMap != null && options.sourceMap !== false;
|
|
393
|
+
const mapFilename = typeof options?.sourceMap === "object" ? options.sourceMap.filename : void 0;
|
|
394
|
+
const result = minifyJs(input, {
|
|
395
|
+
mangle: options?.mangle !== false,
|
|
396
|
+
compress: options?.compress !== false,
|
|
397
|
+
sourceMap: doSourceMap,
|
|
398
|
+
filename: mapFilename ?? filename,
|
|
399
|
+
module: options?.module
|
|
400
|
+
});
|
|
401
|
+
return {
|
|
402
|
+
code: result.code,
|
|
403
|
+
map: result.map ?? void 0
|
|
404
|
+
};
|
|
405
|
+
}
|
|
406
|
+
var CSS_EXTS = /* @__PURE__ */ new Set([".css", ".scss", ".sass", ".less"]);
|
|
407
|
+
function detectLanguage(options) {
|
|
408
|
+
if (options && "language" in options && options.language) return options.language;
|
|
409
|
+
const filename = "filename" in (options ?? {}) ? options?.filename : void 0;
|
|
410
|
+
if (filename) {
|
|
411
|
+
const ext = filename.slice(filename.lastIndexOf("."));
|
|
412
|
+
if (CSS_EXTS.has(ext)) return "css";
|
|
413
|
+
}
|
|
414
|
+
return "js";
|
|
415
|
+
}
|
|
416
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
417
|
+
0 && (module.exports = {
|
|
418
|
+
minify,
|
|
419
|
+
minifyCss,
|
|
420
|
+
minifyJs,
|
|
421
|
+
terser
|
|
422
|
+
});
|
|
423
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../index.js","../ts/index.ts","../ts/binding.ts"],"sourcesContent":["/* tslint:disable */\n/* eslint-disable */\n/* prettier-ignore */\n\n/* auto-generated by NAPI-RS */\n\nconst { existsSync, readFileSync } = require('fs')\nconst { join } = require('path')\n\nconst { platform, arch } = process\n\nlet nativeBinding = null\nlet localFileExisted = false\nlet loadError = null\n\nfunction isMusl() {\n // For Node 10\n if (!process.report || typeof process.report.getReport !== 'function') {\n try {\n const lddPath = require('child_process').execSync('which ldd').toString().trim()\n return readFileSync(lddPath, 'utf8').includes('musl')\n } catch (e) {\n return true\n }\n } else {\n const { glibcVersionRuntime } = process.report.getReport().header\n return !glibcVersionRuntime\n }\n}\n\nswitch (platform) {\n case 'android':\n switch (arch) {\n case 'arm64':\n localFileExisted = existsSync(join(__dirname, 'crustkit-minify.android-arm64.node'))\n try {\n if (localFileExisted) {\n nativeBinding = require('./crustkit-minify.android-arm64.node')\n } else {\n nativeBinding = require('@crustkit/minify-android-arm64')\n }\n } catch (e) {\n loadError = e\n }\n break\n case 'arm':\n localFileExisted = existsSync(join(__dirname, 'crustkit-minify.android-arm-eabi.node'))\n try {\n if (localFileExisted) {\n nativeBinding = require('./crustkit-minify.android-arm-eabi.node')\n } else {\n nativeBinding = require('@crustkit/minify-android-arm-eabi')\n }\n } catch (e) {\n loadError = e\n }\n break\n default:\n throw new Error(`Unsupported architecture on Android ${arch}`)\n }\n break\n case 'win32':\n switch (arch) {\n case 'x64':\n localFileExisted = existsSync(\n join(__dirname, 'crustkit-minify.win32-x64-msvc.node')\n )\n try {\n if (localFileExisted) {\n nativeBinding = require('./crustkit-minify.win32-x64-msvc.node')\n } else {\n nativeBinding = require('@crustkit/minify-win32-x64-msvc')\n }\n } catch (e) {\n loadError = e\n }\n break\n case 'ia32':\n localFileExisted = existsSync(\n join(__dirname, 'crustkit-minify.win32-ia32-msvc.node')\n )\n try {\n if (localFileExisted) {\n nativeBinding = require('./crustkit-minify.win32-ia32-msvc.node')\n } else {\n nativeBinding = require('@crustkit/minify-win32-ia32-msvc')\n }\n } catch (e) {\n loadError = e\n }\n break\n case 'arm64':\n localFileExisted = existsSync(\n join(__dirname, 'crustkit-minify.win32-arm64-msvc.node')\n )\n try {\n if (localFileExisted) {\n nativeBinding = require('./crustkit-minify.win32-arm64-msvc.node')\n } else {\n nativeBinding = require('@crustkit/minify-win32-arm64-msvc')\n }\n } catch (e) {\n loadError = e\n }\n break\n default:\n throw new Error(`Unsupported architecture on Windows: ${arch}`)\n }\n break\n case 'darwin':\n localFileExisted = existsSync(join(__dirname, 'crustkit-minify.darwin-universal.node'))\n try {\n if (localFileExisted) {\n nativeBinding = require('./crustkit-minify.darwin-universal.node')\n } else {\n nativeBinding = require('@crustkit/minify-darwin-universal')\n }\n break\n } catch {}\n switch (arch) {\n case 'x64':\n localFileExisted = existsSync(join(__dirname, 'crustkit-minify.darwin-x64.node'))\n try {\n if (localFileExisted) {\n nativeBinding = require('./crustkit-minify.darwin-x64.node')\n } else {\n nativeBinding = require('@crustkit/minify-darwin-x64')\n }\n } catch (e) {\n loadError = e\n }\n break\n case 'arm64':\n localFileExisted = existsSync(\n join(__dirname, 'crustkit-minify.darwin-arm64.node')\n )\n try {\n if (localFileExisted) {\n nativeBinding = require('./crustkit-minify.darwin-arm64.node')\n } else {\n nativeBinding = require('@crustkit/minify-darwin-arm64')\n }\n } catch (e) {\n loadError = e\n }\n break\n default:\n throw new Error(`Unsupported architecture on macOS: ${arch}`)\n }\n break\n case 'freebsd':\n if (arch !== 'x64') {\n throw new Error(`Unsupported architecture on FreeBSD: ${arch}`)\n }\n localFileExisted = existsSync(join(__dirname, 'crustkit-minify.freebsd-x64.node'))\n try {\n if (localFileExisted) {\n nativeBinding = require('./crustkit-minify.freebsd-x64.node')\n } else {\n nativeBinding = require('@crustkit/minify-freebsd-x64')\n }\n } catch (e) {\n loadError = e\n }\n break\n case 'linux':\n switch (arch) {\n case 'x64':\n if (isMusl()) {\n localFileExisted = existsSync(\n join(__dirname, 'crustkit-minify.linux-x64-musl.node')\n )\n try {\n if (localFileExisted) {\n nativeBinding = require('./crustkit-minify.linux-x64-musl.node')\n } else {\n nativeBinding = require('@crustkit/minify-linux-x64-musl')\n }\n } catch (e) {\n loadError = e\n }\n } else {\n localFileExisted = existsSync(\n join(__dirname, 'crustkit-minify.linux-x64-gnu.node')\n )\n try {\n if (localFileExisted) {\n nativeBinding = require('./crustkit-minify.linux-x64-gnu.node')\n } else {\n nativeBinding = require('@crustkit/minify-linux-x64-gnu')\n }\n } catch (e) {\n loadError = e\n }\n }\n break\n case 'arm64':\n if (isMusl()) {\n localFileExisted = existsSync(\n join(__dirname, 'crustkit-minify.linux-arm64-musl.node')\n )\n try {\n if (localFileExisted) {\n nativeBinding = require('./crustkit-minify.linux-arm64-musl.node')\n } else {\n nativeBinding = require('@crustkit/minify-linux-arm64-musl')\n }\n } catch (e) {\n loadError = e\n }\n } else {\n localFileExisted = existsSync(\n join(__dirname, 'crustkit-minify.linux-arm64-gnu.node')\n )\n try {\n if (localFileExisted) {\n nativeBinding = require('./crustkit-minify.linux-arm64-gnu.node')\n } else {\n nativeBinding = require('@crustkit/minify-linux-arm64-gnu')\n }\n } catch (e) {\n loadError = e\n }\n }\n break\n case 'arm':\n if (isMusl()) {\n localFileExisted = existsSync(\n join(__dirname, 'crustkit-minify.linux-arm-musleabihf.node')\n )\n try {\n if (localFileExisted) {\n nativeBinding = require('./crustkit-minify.linux-arm-musleabihf.node')\n } else {\n nativeBinding = require('@crustkit/minify-linux-arm-musleabihf')\n }\n } catch (e) {\n loadError = e\n }\n } else {\n localFileExisted = existsSync(\n join(__dirname, 'crustkit-minify.linux-arm-gnueabihf.node')\n )\n try {\n if (localFileExisted) {\n nativeBinding = require('./crustkit-minify.linux-arm-gnueabihf.node')\n } else {\n nativeBinding = require('@crustkit/minify-linux-arm-gnueabihf')\n }\n } catch (e) {\n loadError = e\n }\n }\n break\n case 'riscv64':\n if (isMusl()) {\n localFileExisted = existsSync(\n join(__dirname, 'crustkit-minify.linux-riscv64-musl.node')\n )\n try {\n if (localFileExisted) {\n nativeBinding = require('./crustkit-minify.linux-riscv64-musl.node')\n } else {\n nativeBinding = require('@crustkit/minify-linux-riscv64-musl')\n }\n } catch (e) {\n loadError = e\n }\n } else {\n localFileExisted = existsSync(\n join(__dirname, 'crustkit-minify.linux-riscv64-gnu.node')\n )\n try {\n if (localFileExisted) {\n nativeBinding = require('./crustkit-minify.linux-riscv64-gnu.node')\n } else {\n nativeBinding = require('@crustkit/minify-linux-riscv64-gnu')\n }\n } catch (e) {\n loadError = e\n }\n }\n break\n case 's390x':\n localFileExisted = existsSync(\n join(__dirname, 'crustkit-minify.linux-s390x-gnu.node')\n )\n try {\n if (localFileExisted) {\n nativeBinding = require('./crustkit-minify.linux-s390x-gnu.node')\n } else {\n nativeBinding = require('@crustkit/minify-linux-s390x-gnu')\n }\n } catch (e) {\n loadError = e\n }\n break\n default:\n throw new Error(`Unsupported architecture on Linux: ${arch}`)\n }\n break\n default:\n throw new Error(`Unsupported OS: ${platform}, architecture: ${arch}`)\n}\n\nif (!nativeBinding) {\n if (loadError) {\n throw loadError\n }\n throw new Error(`Failed to load native binding`)\n}\n\nconst { minifyJs, minifyCss } = nativeBinding\n\nmodule.exports.minifyJs = minifyJs\nmodule.exports.minifyCss = minifyCss\n","import { minifyJs as _minifyJs, minifyCss as _minifyCss } from './binding'\n\n// ---------------------------------------------------------------------------\n// JS Options & Result\n// ---------------------------------------------------------------------------\n\nexport interface JsOptions {\n /** Shorten variable names. @default true */\n mangle?: boolean\n\n /** Dead code elimination & constant folding. @default true */\n compress?: boolean\n\n /** Generate a source map. @default false */\n sourceMap?: boolean\n\n /** Filename — used for source maps and error messages. */\n filename?: string\n\n /**\n * Treat as ES module.\n * @default auto-detected from filename extension (.mjs = module)\n */\n module?: boolean\n}\n\n// ---------------------------------------------------------------------------\n// CSS Options & Result\n// ---------------------------------------------------------------------------\n\nexport interface CssOptions {\n /** Generate a source map. @default false */\n sourceMap?: boolean\n\n /** Filename — used for source maps and error messages. */\n filename?: string\n}\n\n// ---------------------------------------------------------------------------\n// Shared result types with source map narrowing\n// ---------------------------------------------------------------------------\n\nexport interface MinifyResult {\n /** The minified code. */\n code: string\n /** Source map JSON string. Only present when `sourceMap: true`. */\n map: string | null\n}\n\nexport interface MinifyResultWithMap {\n code: string\n /** Source map JSON string. Guaranteed present. */\n map: string\n}\n\nexport interface MinifyResultWithoutMap {\n code: string\n map: null\n}\n\n// ---------------------------------------------------------------------------\n// minifyJs — overloads for source map narrowing\n// ---------------------------------------------------------------------------\n\n/**\n * Minify JavaScript or TypeScript.\n *\n * @example\n * ```ts\n * import { minifyJs } from '@crustkit/minify'\n *\n * // Zero config\n * const { code } = minifyJs('var x = 1 + 2; console.log(x)')\n *\n * // With source map — `map` is guaranteed string\n * const { code, map } = minifyJs(src, { sourceMap: true, filename: 'app.js' })\n *\n * // Disable mangling\n * const { code } = minifyJs(src, { mangle: false })\n * ```\n */\nexport function minifyJs(code: string, options: JsOptions & { sourceMap: true }): MinifyResultWithMap\nexport function minifyJs(code: string, options?: JsOptions): MinifyResult\nexport function minifyJs(code: string, options?: JsOptions): MinifyResult {\n const result = _minifyJs(code, {\n mangle: options?.mangle,\n compress: options?.compress,\n sourceMap: options?.sourceMap,\n filename: options?.filename,\n module: options?.module,\n })\n\n return {\n code: result.code,\n map: result.map ?? null,\n }\n}\n\n// ---------------------------------------------------------------------------\n// minifyCss — overloads for source map narrowing\n// ---------------------------------------------------------------------------\n\n/**\n * Minify CSS. Handles vendor prefixing, nesting, and modern syntax automatically.\n *\n * @example\n * ```ts\n * import { minifyCss } from '@crustkit/minify'\n *\n * const { code } = minifyCss('.foo { color: red; margin: 0px; }')\n * // '.foo{color:red;margin:0}'\n *\n * const { code, map } = minifyCss(src, { sourceMap: true })\n * ```\n */\nexport function minifyCss(code: string, options: CssOptions & { sourceMap: true }): MinifyResultWithMap\nexport function minifyCss(code: string, options?: CssOptions): MinifyResult\nexport function minifyCss(code: string, options?: CssOptions): MinifyResult {\n const result = _minifyCss(code, {\n sourceMap: options?.sourceMap,\n filename: options?.filename,\n })\n\n return {\n code: result.code,\n map: result.map ?? null,\n }\n}\n\n// ---------------------------------------------------------------------------\n// minify — unified API with language auto-detection\n// ---------------------------------------------------------------------------\n\nexport type MinifyOptions =\n | (JsOptions & { language?: 'js' })\n | (CssOptions & { language: 'css' })\n\n/**\n * Minify code. Auto-detects language from `filename`, or set `language` explicitly.\n *\n * @example\n * ```ts\n * import { minify } from '@crustkit/minify'\n *\n * // Auto-detect from filename\n * minify('var x = 1', { filename: 'app.js' })\n * minify('.foo { color: red }', { filename: 'style.css' })\n *\n * // Explicit language\n * minify(code, { language: 'js' })\n * minify(code, { language: 'css' })\n *\n * // Default: JS\n * minify('var x = 1 + 2; console.log(x)')\n * ```\n */\nexport function minify(code: string, options?: MinifyOptions): MinifyResult {\n const lang = detectLanguage(options)\n\n if (lang === 'css') {\n return minifyCss(code, options as CssOptions)\n }\n return minifyJs(code, options as JsOptions)\n}\n\n// ---------------------------------------------------------------------------\n// Terser drop-in — accepts terser's API shape, runs Rust underneath\n// ---------------------------------------------------------------------------\n\nexport interface TerserCompressOptions {\n /** Number of compression passes. @default 1 */\n passes?: number\n /** Remove `debugger` statements. @default true */\n drop_debugger?: boolean\n /** Remove `console.*` calls. @default false */\n drop_console?: boolean\n /** Remove unreachable code. @default true */\n dead_code?: boolean\n /** Join consecutive var/let/const statements. @default true */\n join_vars?: boolean\n /** Allow other compress options terser accepts. */\n [key: string]: unknown\n}\n\nexport interface TerserMangleOptions {\n /** Mangle top-level names. @default false */\n toplevel?: boolean\n /** Names to keep unmangled. */\n reserved?: string[]\n /** Allow other mangle options terser accepts. */\n [key: string]: unknown\n}\n\nexport interface TerserSourceMapOptions {\n /** Source map URL to embed in the output. */\n url?: string\n /** Original filename for source map. */\n filename?: string\n}\n\nexport interface TerserOptions {\n compress?: boolean | TerserCompressOptions\n mangle?: boolean | TerserMangleOptions\n sourceMap?: boolean | TerserSourceMapOptions\n module?: boolean\n toplevel?: boolean\n}\n\nexport interface TerserResult {\n code: string\n map?: string\n}\n\n/**\n * Terser-compatible drop-in replacement.\n *\n * @example\n * ```ts\n * // Before:\n * import { minify } from 'terser'\n *\n * // After — just change the import:\n * import { terser as minify } from '@crustkit/minify'\n *\n * const result = await minify(code, { compress: true, mangle: true })\n * ```\n *\n * Returns a Promise for API compatibility. The work is synchronous in Rust.\n */\nexport async function terser(\n code: string | Record<string, string>,\n options?: TerserOptions,\n): Promise<TerserResult> {\n let input: string\n let filename: string | undefined\n\n if (typeof code === 'string') {\n input = code\n } else {\n const entries = Object.entries(code)\n if (entries.length === 0) {\n return { code: '' }\n }\n filename = entries[0][0]\n input = entries.map(([, src]) => src).join(';\\n')\n }\n\n const doSourceMap = options?.sourceMap != null && options.sourceMap !== false\n const mapFilename =\n typeof options?.sourceMap === 'object' ? options.sourceMap.filename : undefined\n\n const result = _minifyJs(input, {\n mangle: options?.mangle !== false,\n compress: options?.compress !== false,\n sourceMap: doSourceMap,\n filename: mapFilename ?? filename,\n module: options?.module,\n })\n\n return {\n code: result.code,\n map: result.map ?? undefined,\n }\n}\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nconst CSS_EXTS = new Set(['.css', '.scss', '.sass', '.less'])\n\nfunction detectLanguage(options?: MinifyOptions): 'js' | 'css' {\n if (options && 'language' in options && options.language) return options.language\n\n const filename = 'filename' in (options ?? {}) ? (options as { filename?: string })?.filename : undefined\n if (filename) {\n const ext = filename.slice(filename.lastIndexOf('.'))\n if (CSS_EXTS.has(ext)) return 'css'\n }\n\n return 'js'\n}\n","// Re-export from the napi-rs generated loader.\n// The generated index.js handles cross-platform .node binary resolution.\n\nexport interface JsMinifyOptions {\n mangle?: boolean | null\n compress?: boolean | null\n sourceMap?: boolean | null\n filename?: string | null\n module?: boolean | null\n}\n\nexport interface JsMinifyResult {\n code: string\n map?: string | null\n}\n\nexport interface CssMinifyOptions {\n filename?: string | null\n sourceMap?: boolean | null\n}\n\nexport interface CssMinifyResult {\n code: string\n map?: string | null\n}\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst native = require('../index.js') as {\n minifyJs(code: string, options?: JsMinifyOptions | null): JsMinifyResult\n minifyCss(code: string, options?: CssMinifyOptions | null): CssMinifyResult\n}\n\nexport const minifyJs = native.minifyJs\nexport const minifyCss = native.minifyCss\n"],"mappings":"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","names":["exports","module","minifyJs","minifyCss","minifyCss","minifyJs","minifyJs","minifyCss"]}
|