esbuild 0.14.14 → 0.14.18

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/install.js CHANGED
@@ -1,4 +1,3 @@
1
- #!/usr/bin/env node
2
1
  var __create = Object.create;
3
2
  var __defProp = Object.defineProperty;
4
3
  var __defProps = Object.defineProperties;
@@ -93,9 +92,11 @@ var toPath = path2.join(__dirname, "bin", "esbuild");
93
92
  var isToPathJS = true;
94
93
  function validateBinaryVersion(...command) {
95
94
  command.push("--version");
96
- const stdout = child_process.execFileSync(command.shift(), command).toString().trim();
97
- if (stdout !== "0.14.14") {
98
- throw new Error(`Expected ${JSON.stringify("0.14.14")} but got ${JSON.stringify(stdout)}`);
95
+ const stdout = child_process.execFileSync(command.shift(), command, {
96
+ stdio: "pipe"
97
+ }).toString().trim();
98
+ if (stdout !== "0.14.18") {
99
+ throw new Error(`Expected ${JSON.stringify("0.14.18")} but got ${JSON.stringify(stdout)}`);
99
100
  }
100
101
  }
101
102
  function isYarn() {
@@ -146,7 +147,7 @@ function installUsingNPM(pkg, subpath, binPath) {
146
147
  fs2.mkdirSync(installDir);
147
148
  try {
148
149
  fs2.writeFileSync(path2.join(installDir, "package.json"), "{}");
149
- child_process.execSync(`npm install --loglevel=error --prefer-offline --no-audit --progress=false ${pkg}@${"0.14.14"}`, { cwd: installDir, stdio: "pipe", env });
150
+ child_process.execSync(`npm install --loglevel=error --prefer-offline --no-audit --progress=false ${pkg}@${"0.14.18"}`, { cwd: installDir, stdio: "pipe", env });
150
151
  const installedBinPath = path2.join(installDir, "node_modules", pkg, subpath);
151
152
  fs2.renameSync(installedBinPath, binPath);
152
153
  } finally {
@@ -195,7 +196,7 @@ function maybeOptimizePackage(binPath) {
195
196
  }
196
197
  }
197
198
  async function downloadDirectlyFromNPM(pkg, subpath, binPath) {
198
- const url = `https://registry.npmjs.org/${pkg}/-/${pkg}-${"0.14.14"}.tgz`;
199
+ const url = `https://registry.npmjs.org/${pkg}/-/${pkg}-${"0.14.18"}.tgz`;
199
200
  console.error(`[esbuild] Trying to download ${JSON.stringify(url)}`);
200
201
  try {
201
202
  fs2.writeFileSync(binPath, extractFileFromTarGzip(await fetch(url), subpath));
package/lib/main.d.ts CHANGED
@@ -22,6 +22,13 @@ interface CommonOptions {
22
22
  /** Documentation: https://esbuild.github.io/api/#target */
23
23
  target?: string | string[];
24
24
 
25
+ /** Documentation: https://esbuild.github.io/api/#mangle-props */
26
+ mangleProps?: RegExp;
27
+ /** Documentation: https://esbuild.github.io/api/#mangle-props */
28
+ reserveProps?: RegExp;
29
+ /** Documentation: https://esbuild.github.io/api/#mangle-props */
30
+ mangleCache?: Record<string, string | false>;
31
+ /** Documentation: https://esbuild.github.io/api/#drop */
25
32
  drop?: Drop[];
26
33
  /** Documentation: https://esbuild.github.io/api/#minify */
27
34
  minify?: boolean;
@@ -195,6 +202,8 @@ export interface BuildResult {
195
202
  stop?: () => void;
196
203
  /** Only when "metafile: true" */
197
204
  metafile?: Metafile;
205
+ /** Only when "mangleCache" is present */
206
+ mangleCache?: Record<string, string | false>;
198
207
  }
199
208
 
200
209
  export interface BuildFailure extends Error {
@@ -248,6 +257,8 @@ export interface TransformResult {
248
257
  code: string;
249
258
  map: string;
250
259
  warnings: Message[];
260
+ /** Only when "mangleCache" is present */
261
+ mangleCache?: Record<string, string | false>;
251
262
  }
252
263
 
253
264
  export interface TransformFailure extends Error {
package/lib/main.js CHANGED
@@ -272,6 +272,21 @@ function validateInitializeOptions(options) {
272
272
  worker
273
273
  };
274
274
  }
275
+ function validateMangleCache(mangleCache) {
276
+ let validated;
277
+ if (mangleCache !== void 0) {
278
+ validated = /* @__PURE__ */ Object.create(null);
279
+ for (let key of Object.keys(mangleCache)) {
280
+ let value = mangleCache[key];
281
+ if (typeof value === "string" || value === false) {
282
+ validated[key] = value;
283
+ } else {
284
+ throw new Error(`Expected ${JSON.stringify(key)} in mangle cache to map to either a string or false`);
285
+ }
286
+ }
287
+ }
288
+ return validated;
289
+ }
275
290
  function pushLogFlags(flags, options, keys, isTTY2, logLevelDefault) {
276
291
  let color = getFlag(options, keys, "color", mustBeBoolean);
277
292
  let logLevel = getFlag(options, keys, "logLevel", mustBeString);
@@ -290,6 +305,8 @@ function pushCommonFlags(flags, options, keys) {
290
305
  let target = getFlag(options, keys, "target", mustBeStringOrArray);
291
306
  let format = getFlag(options, keys, "format", mustBeString);
292
307
  let globalName = getFlag(options, keys, "globalName", mustBeString);
308
+ let mangleProps = getFlag(options, keys, "mangleProps", mustBeRegExp);
309
+ let reserveProps = getFlag(options, keys, "reserveProps", mustBeRegExp);
293
310
  let minify = getFlag(options, keys, "minify", mustBeBoolean);
294
311
  let minifySyntax = getFlag(options, keys, "minifySyntax", mustBeBoolean);
295
312
  let minifyWhitespace = getFlag(options, keys, "minifyWhitespace", mustBeBoolean);
@@ -337,6 +354,10 @@ function pushCommonFlags(flags, options, keys) {
337
354
  if (drop)
338
355
  for (let what of drop)
339
356
  flags.push(`--drop:${what}`);
357
+ if (mangleProps)
358
+ flags.push(`--mangle-props=${mangleProps.source}`);
359
+ if (reserveProps)
360
+ flags.push(`--reserve-props=${reserveProps.source}`);
340
361
  if (jsx)
341
362
  flags.push(`--jsx=${jsx}`);
342
363
  if (jsxFactory)
@@ -397,6 +418,7 @@ function flagsForBuildOptions(callName, options, isTTY2, logLevelDefault, writeD
397
418
  let write = (_a2 = getFlag(options, keys, "write", mustBeBoolean)) != null ? _a2 : writeDefault;
398
419
  let allowOverwrite = getFlag(options, keys, "allowOverwrite", mustBeBoolean);
399
420
  let incremental = getFlag(options, keys, "incremental", mustBeBoolean) === true;
421
+ let mangleCache = getFlag(options, keys, "mangleCache", mustBeObject);
400
422
  keys.plugins = true;
401
423
  checkForInvalidFlags(options, keys, `in ${callName}() call`);
402
424
  if (sourcemap)
@@ -546,7 +568,8 @@ function flagsForBuildOptions(callName, options, isTTY2, logLevelDefault, writeD
546
568
  absWorkingDir,
547
569
  incremental,
548
570
  nodePaths,
549
- watch: watchMode
571
+ watch: watchMode,
572
+ mangleCache: validateMangleCache(mangleCache)
550
573
  };
551
574
  }
552
575
  function flagsForTransformOptions(callName, options, isTTY2, logLevelDefault) {
@@ -560,6 +583,7 @@ function flagsForTransformOptions(callName, options, isTTY2, logLevelDefault) {
560
583
  let loader = getFlag(options, keys, "loader", mustBeString);
561
584
  let banner = getFlag(options, keys, "banner", mustBeString);
562
585
  let footer = getFlag(options, keys, "footer", mustBeString);
586
+ let mangleCache = getFlag(options, keys, "mangleCache", mustBeObject);
563
587
  checkForInvalidFlags(options, keys, `in ${callName}() call`);
564
588
  if (sourcemap)
565
589
  flags.push(`--sourcemap=${sourcemap === true ? "external" : sourcemap}`);
@@ -573,7 +597,10 @@ function flagsForTransformOptions(callName, options, isTTY2, logLevelDefault) {
573
597
  flags.push(`--banner=${banner}`);
574
598
  if (footer)
575
599
  flags.push(`--footer=${footer}`);
576
- return flags;
600
+ return {
601
+ flags,
602
+ mangleCache: validateMangleCache(mangleCache)
603
+ };
577
604
  }
578
605
  function createChannel(streamIn) {
579
606
  let responseCallbacks = /* @__PURE__ */ new Map();
@@ -717,8 +744,8 @@ function createChannel(streamIn) {
717
744
  if (isFirstPacket) {
718
745
  isFirstPacket = false;
719
746
  let binaryVersion = String.fromCharCode(...bytes);
720
- if (binaryVersion !== "0.14.14") {
721
- throw new Error(`Cannot start service: Host version "${"0.14.14"}" does not match binary version ${JSON.stringify(binaryVersion)}`);
747
+ if (binaryVersion !== "0.14.18") {
748
+ throw new Error(`Cannot start service: Host version "${"0.14.18"}" does not match binary version ${JSON.stringify(binaryVersion)}`);
722
749
  }
723
750
  return;
724
751
  }
@@ -1177,7 +1204,8 @@ function createChannel(streamIn) {
1177
1204
  absWorkingDir,
1178
1205
  incremental,
1179
1206
  nodePaths,
1180
- watch
1207
+ watch,
1208
+ mangleCache
1181
1209
  } = flagsForBuildOptions(callName, options, isTTY2, buildLogLevelDefault, writeDefault);
1182
1210
  let request = {
1183
1211
  command: "build",
@@ -1193,6 +1221,8 @@ function createChannel(streamIn) {
1193
1221
  };
1194
1222
  if (requestPlugins)
1195
1223
  request.plugins = requestPlugins;
1224
+ if (mangleCache)
1225
+ request.mangleCache = mangleCache;
1196
1226
  let serve2 = serveOptions && buildServeData(refs, serveOptions, request, key);
1197
1227
  let rebuild;
1198
1228
  let stop;
@@ -1201,6 +1231,8 @@ function createChannel(streamIn) {
1201
1231
  result.outputFiles = response.outputFiles.map(convertOutputFiles);
1202
1232
  if (response.metafile)
1203
1233
  result.metafile = JSON.parse(response.metafile);
1234
+ if (response.mangleCache)
1235
+ result.mangleCache = response.mangleCache;
1204
1236
  if (response.writeToStdout !== void 0)
1205
1237
  console.log(decodeUTF8(response.writeToStdout).replace(/\n$/, ""));
1206
1238
  };
@@ -1328,20 +1360,32 @@ function createChannel(streamIn) {
1328
1360
  try {
1329
1361
  if (typeof input !== "string")
1330
1362
  throw new Error('The input to "transform" must be a string');
1331
- let flags = flagsForTransformOptions(callName, options, isTTY2, transformLogLevelDefault);
1363
+ let {
1364
+ flags,
1365
+ mangleCache
1366
+ } = flagsForTransformOptions(callName, options, isTTY2, transformLogLevelDefault);
1332
1367
  let request = {
1333
1368
  command: "transform",
1334
1369
  flags,
1335
1370
  inputFS: inputPath !== null,
1336
1371
  input: inputPath !== null ? inputPath : input
1337
1372
  };
1373
+ if (mangleCache)
1374
+ request.mangleCache = mangleCache;
1338
1375
  sendRequest(refs, request, (error, response) => {
1339
1376
  if (error)
1340
1377
  return callback(new Error(error), null);
1341
1378
  let errors = replaceDetailsInMessages(response.errors, details);
1342
1379
  let warnings = replaceDetailsInMessages(response.warnings, details);
1343
1380
  let outstanding = 1;
1344
- let next = () => --outstanding === 0 && callback(null, { warnings, code: response.code, map: response.map });
1381
+ let next = () => {
1382
+ if (--outstanding === 0) {
1383
+ let result = { warnings, code: response.code, map: response.map };
1384
+ if (response.mangleCache)
1385
+ result.mangleCache = response == null ? void 0 : response.mangleCache;
1386
+ callback(null, result);
1387
+ }
1388
+ };
1345
1389
  if (errors.length > 0)
1346
1390
  return callback(failureErrorWithLog("Transform failed", errors, warnings), null);
1347
1391
  if (response.codeFS) {
@@ -1804,7 +1848,7 @@ if (process.env.ESBUILD_WORKER_THREADS !== "0") {
1804
1848
  }
1805
1849
  }
1806
1850
  var _a;
1807
- var isInternalWorkerThread = ((_a = worker_threads == null ? void 0 : worker_threads.workerData) == null ? void 0 : _a.esbuildVersion) === "0.14.14";
1851
+ var isInternalWorkerThread = ((_a = worker_threads == null ? void 0 : worker_threads.workerData) == null ? void 0 : _a.esbuildVersion) === "0.14.18";
1808
1852
  var esbuildCommandAndArgs = () => {
1809
1853
  if ((!ESBUILD_BINARY_PATH || false) && (path2.basename(__filename) !== "main.js" || path2.basename(__dirname) !== "lib")) {
1810
1854
  throw new Error(`The esbuild JavaScript API cannot be bundled. Please mark the "esbuild" package as external so it's not included in the bundle.
@@ -1863,7 +1907,7 @@ var fsAsync = {
1863
1907
  }
1864
1908
  }
1865
1909
  };
1866
- var version = "0.14.14";
1910
+ var version = "0.14.18";
1867
1911
  var build = (options) => ensureServiceIsRunning().build(options);
1868
1912
  var serve = (serveOptions, buildOptions) => ensureServiceIsRunning().serve(serveOptions, buildOptions);
1869
1913
  var transform = (input, options) => ensureServiceIsRunning().transform(input, options);
@@ -1972,7 +2016,7 @@ var ensureServiceIsRunning = () => {
1972
2016
  if (longLivedService)
1973
2017
  return longLivedService;
1974
2018
  let [command, args] = esbuildCommandAndArgs();
1975
- let child = child_process.spawn(command, args.concat(`--service=${"0.14.14"}`, "--ping"), {
2019
+ let child = child_process.spawn(command, args.concat(`--service=${"0.14.18"}`, "--ping"), {
1976
2020
  windowsHide: true,
1977
2021
  stdio: ["pipe", "pipe", "inherit"],
1978
2022
  cwd: defaultWD
@@ -2081,7 +2125,7 @@ var runServiceSync = (callback) => {
2081
2125
  esbuild: node_exports
2082
2126
  });
2083
2127
  callback(service);
2084
- let stdout = child_process.execFileSync(command, args.concat(`--service=${"0.14.14"}`), {
2128
+ let stdout = child_process.execFileSync(command, args.concat(`--service=${"0.14.18"}`), {
2085
2129
  cwd: defaultWD,
2086
2130
  windowsHide: true,
2087
2131
  input: stdin,
@@ -2097,7 +2141,7 @@ var workerThreadService = null;
2097
2141
  var startWorkerThreadService = (worker_threads2) => {
2098
2142
  let { port1: mainPort, port2: workerPort } = new worker_threads2.MessageChannel();
2099
2143
  let worker = new worker_threads2.Worker(__filename, {
2100
- workerData: { workerPort, defaultWD, esbuildVersion: "0.14.14" },
2144
+ workerData: { workerPort, defaultWD, esbuildVersion: "0.14.18" },
2101
2145
  transferList: [workerPort],
2102
2146
  execArgv: []
2103
2147
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "esbuild",
3
- "version": "0.14.14",
3
+ "version": "0.14.18",
4
4
  "description": "An extremely fast JavaScript and CSS bundler and minifier.",
5
5
  "repository": "https://github.com/evanw/esbuild",
6
6
  "scripts": {
@@ -8,28 +8,31 @@
8
8
  },
9
9
  "main": "lib/main.js",
10
10
  "types": "lib/main.d.ts",
11
+ "engines": {
12
+ "node": ">=12"
13
+ },
11
14
  "bin": {
12
15
  "esbuild": "bin/esbuild"
13
16
  },
14
17
  "optionalDependencies": {
15
- "esbuild-android-arm64": "0.14.14",
16
- "esbuild-darwin-64": "0.14.14",
17
- "esbuild-darwin-arm64": "0.14.14",
18
- "esbuild-freebsd-64": "0.14.14",
19
- "esbuild-freebsd-arm64": "0.14.14",
20
- "esbuild-linux-32": "0.14.14",
21
- "esbuild-linux-64": "0.14.14",
22
- "esbuild-linux-arm": "0.14.14",
23
- "esbuild-linux-arm64": "0.14.14",
24
- "esbuild-linux-mips64le": "0.14.14",
25
- "esbuild-linux-ppc64le": "0.14.14",
26
- "esbuild-linux-s390x": "0.14.14",
27
- "esbuild-netbsd-64": "0.14.14",
28
- "esbuild-openbsd-64": "0.14.14",
29
- "esbuild-sunos-64": "0.14.14",
30
- "esbuild-windows-32": "0.14.14",
31
- "esbuild-windows-64": "0.14.14",
32
- "esbuild-windows-arm64": "0.14.14"
18
+ "esbuild-android-arm64": "0.14.18",
19
+ "esbuild-darwin-64": "0.14.18",
20
+ "esbuild-darwin-arm64": "0.14.18",
21
+ "esbuild-freebsd-64": "0.14.18",
22
+ "esbuild-freebsd-arm64": "0.14.18",
23
+ "esbuild-linux-32": "0.14.18",
24
+ "esbuild-linux-64": "0.14.18",
25
+ "esbuild-linux-arm": "0.14.18",
26
+ "esbuild-linux-arm64": "0.14.18",
27
+ "esbuild-linux-mips64le": "0.14.18",
28
+ "esbuild-linux-ppc64le": "0.14.18",
29
+ "esbuild-linux-s390x": "0.14.18",
30
+ "esbuild-netbsd-64": "0.14.18",
31
+ "esbuild-openbsd-64": "0.14.18",
32
+ "esbuild-sunos-64": "0.14.18",
33
+ "esbuild-windows-32": "0.14.18",
34
+ "esbuild-windows-64": "0.14.18",
35
+ "esbuild-windows-arm64": "0.14.18"
33
36
  },
34
37
  "license": "MIT"
35
38
  }