esbuild 0.14.5 → 0.14.9

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/bin/esbuild CHANGED
@@ -39,6 +39,7 @@ var knownUnixlikePackages = {
39
39
  "linux ia32 LE": "esbuild-linux-32",
40
40
  "linux mips64el LE": "esbuild-linux-mips64le",
41
41
  "linux ppc64 LE": "esbuild-linux-ppc64le",
42
+ "linux s390x BE": "esbuild-linux-s390x",
42
43
  "linux x64 LE": "esbuild-linux-64",
43
44
  "netbsd x64 LE": "esbuild-netbsd-64",
44
45
  "openbsd x64 LE": "esbuild-openbsd-64",
package/install.js CHANGED
@@ -55,6 +55,7 @@ var knownUnixlikePackages = {
55
55
  "linux ia32 LE": "esbuild-linux-32",
56
56
  "linux mips64el LE": "esbuild-linux-mips64le",
57
57
  "linux ppc64 LE": "esbuild-linux-ppc64le",
58
+ "linux s390x BE": "esbuild-linux-s390x",
58
59
  "linux x64 LE": "esbuild-linux-64",
59
60
  "netbsd x64 LE": "esbuild-netbsd-64",
60
61
  "openbsd x64 LE": "esbuild-openbsd-64",
@@ -92,8 +93,8 @@ var isToPathJS = true;
92
93
  function validateBinaryVersion(...command) {
93
94
  command.push("--version");
94
95
  const stdout = child_process.execFileSync(command.shift(), command).toString().trim();
95
- if (stdout !== "0.14.5") {
96
- throw new Error(`Expected ${JSON.stringify("0.14.5")} but got ${JSON.stringify(stdout)}`);
96
+ if (stdout !== "0.14.9") {
97
+ throw new Error(`Expected ${JSON.stringify("0.14.9")} but got ${JSON.stringify(stdout)}`);
97
98
  }
98
99
  }
99
100
  function isYarn() {
@@ -144,7 +145,7 @@ function installUsingNPM(pkg, subpath, binPath) {
144
145
  fs2.mkdirSync(installDir);
145
146
  try {
146
147
  fs2.writeFileSync(path2.join(installDir, "package.json"), "{}");
147
- child_process.execSync(`npm install --loglevel=error --prefer-offline --no-audit --progress=false ${pkg}@${"0.14.5"}`, { cwd: installDir, stdio: "pipe", env });
148
+ child_process.execSync(`npm install --loglevel=error --prefer-offline --no-audit --progress=false ${pkg}@${"0.14.9"}`, { cwd: installDir, stdio: "pipe", env });
148
149
  const installedBinPath = path2.join(installDir, "node_modules", pkg, subpath);
149
150
  fs2.renameSync(installedBinPath, binPath);
150
151
  } finally {
@@ -193,7 +194,7 @@ function maybeOptimizePackage(binPath) {
193
194
  }
194
195
  }
195
196
  async function downloadDirectlyFromNPM(pkg, subpath, binPath) {
196
- const url = `https://registry.npmjs.org/${pkg}/-/${pkg}-${"0.14.5"}.tgz`;
197
+ const url = `https://registry.npmjs.org/${pkg}/-/${pkg}-${"0.14.9"}.tgz`;
197
198
  console.error(`[esbuild] Trying to download ${JSON.stringify(url)}`);
198
199
  try {
199
200
  fs2.writeFileSync(binPath, extractFileFromTarGzip(await fetch(url), subpath));
package/lib/main.d.ts CHANGED
@@ -260,6 +260,8 @@ export interface Plugin {
260
260
 
261
261
  export interface PluginBuild {
262
262
  initialOptions: BuildOptions;
263
+ resolve(path: string, options?: ResolveOptions): Promise<ResolveResult>;
264
+
263
265
  onStart(callback: () =>
264
266
  (OnStartResult | null | void | Promise<OnStartResult | null | void>)): void;
265
267
  onEnd(callback: (result: BuildResult) =>
@@ -285,6 +287,27 @@ export interface PluginBuild {
285
287
  };
286
288
  }
287
289
 
290
+ export interface ResolveOptions {
291
+ pluginName?: string;
292
+ importer?: string;
293
+ namespace?: string;
294
+ resolveDir?: string;
295
+ kind?: ImportKind;
296
+ pluginData?: any;
297
+ }
298
+
299
+ export interface ResolveResult {
300
+ errors: Message[];
301
+ warnings: Message[];
302
+
303
+ path: string;
304
+ external: boolean;
305
+ sideEffects: boolean;
306
+ namespace: string;
307
+ suffix: string;
308
+ pluginData: any;
309
+ }
310
+
288
311
  export interface OnStartResult {
289
312
  errors?: PartialMessage[];
290
313
  warnings?: PartialMessage[];
package/lib/main.js CHANGED
@@ -576,7 +576,6 @@ function createChannel(streamIn) {
576
576
  let pluginCallbacks = /* @__PURE__ */ new Map();
577
577
  let watchCallbacks = /* @__PURE__ */ new Map();
578
578
  let serveCallbacks = /* @__PURE__ */ new Map();
579
- let nextServeID = 0;
580
579
  let isClosed = false;
581
580
  let nextRequestID = 0;
582
581
  let nextBuildKey = 0;
@@ -653,7 +652,7 @@ function createChannel(streamIn) {
653
652
  sendResponse(id, {});
654
653
  break;
655
654
  }
656
- case "start": {
655
+ case "on-start": {
657
656
  let callback = pluginCallbacks.get(request.key);
658
657
  if (!callback)
659
658
  sendResponse(id, {});
@@ -661,7 +660,7 @@ function createChannel(streamIn) {
661
660
  sendResponse(id, await callback(request));
662
661
  break;
663
662
  }
664
- case "resolve": {
663
+ case "on-resolve": {
665
664
  let callback = pluginCallbacks.get(request.key);
666
665
  if (!callback)
667
666
  sendResponse(id, {});
@@ -669,7 +668,7 @@ function createChannel(streamIn) {
669
668
  sendResponse(id, await callback(request));
670
669
  break;
671
670
  }
672
- case "load": {
671
+ case "on-load": {
673
672
  let callback = pluginCallbacks.get(request.key);
674
673
  if (!callback)
675
674
  sendResponse(id, {});
@@ -678,21 +677,21 @@ function createChannel(streamIn) {
678
677
  break;
679
678
  }
680
679
  case "serve-request": {
681
- let callbacks = serveCallbacks.get(request.serveID);
680
+ let callbacks = serveCallbacks.get(request.key);
682
681
  if (callbacks && callbacks.onRequest)
683
682
  callbacks.onRequest(request.args);
684
683
  sendResponse(id, {});
685
684
  break;
686
685
  }
687
686
  case "serve-wait": {
688
- let callbacks = serveCallbacks.get(request.serveID);
687
+ let callbacks = serveCallbacks.get(request.key);
689
688
  if (callbacks)
690
689
  callbacks.onWait(request.error);
691
690
  sendResponse(id, {});
692
691
  break;
693
692
  }
694
693
  case "watch-rebuild": {
695
- let callback = watchCallbacks.get(request.watchID);
694
+ let callback = watchCallbacks.get(request.key);
696
695
  try {
697
696
  if (callback)
698
697
  callback(null, request.args);
@@ -714,8 +713,8 @@ function createChannel(streamIn) {
714
713
  if (isFirstPacket) {
715
714
  isFirstPacket = false;
716
715
  let binaryVersion = String.fromCharCode(...bytes);
717
- if (binaryVersion !== "0.14.5") {
718
- throw new Error(`Cannot start service: Host version "${"0.14.5"}" does not match binary version ${JSON.stringify(binaryVersion)}`);
716
+ if (binaryVersion !== "0.14.9") {
717
+ throw new Error(`Cannot start service: Host version "${"0.14.9"}" does not match binary version ${JSON.stringify(binaryVersion)}`);
719
718
  }
720
719
  return;
721
720
  }
@@ -731,7 +730,7 @@ function createChannel(streamIn) {
731
730
  callback(null, packet.value);
732
731
  }
733
732
  };
734
- let handlePlugins = async (initialOptions, plugins, buildKey, stash) => {
733
+ let handlePlugins = async (initialOptions, plugins, buildKey, stash, refs) => {
735
734
  let onStartCallbacks = [];
736
735
  let onEndCallbacks = [];
737
736
  let onResolveCallbacks = {};
@@ -739,12 +738,13 @@ function createChannel(streamIn) {
739
738
  let nextCallbackID = 0;
740
739
  let i = 0;
741
740
  let requestPlugins = [];
741
+ let isSetupDone = false;
742
742
  plugins = [...plugins];
743
743
  for (let item of plugins) {
744
744
  let keys = {};
745
745
  if (typeof item !== "object")
746
746
  throw new Error(`Plugin at index ${i} must be an object`);
747
- let name = getFlag(item, keys, "name", mustBeString);
747
+ const name = getFlag(item, keys, "name", mustBeString);
748
748
  if (typeof name !== "string" || name === "")
749
749
  throw new Error(`Plugin at index ${i} is missing a name`);
750
750
  try {
@@ -758,8 +758,58 @@ function createChannel(streamIn) {
758
758
  onLoad: []
759
759
  };
760
760
  i++;
761
+ let resolve = (path3, options = {}) => {
762
+ if (!isSetupDone)
763
+ throw new Error('Cannot call "resolve" before plugin setup has completed');
764
+ if (typeof path3 !== "string")
765
+ throw new Error(`The path to resolve must be a string`);
766
+ let keys2 = Object.create(null);
767
+ let pluginName = getFlag(options, keys2, "pluginName", mustBeString);
768
+ let importer = getFlag(options, keys2, "importer", mustBeString);
769
+ let namespace = getFlag(options, keys2, "namespace", mustBeString);
770
+ let resolveDir = getFlag(options, keys2, "resolveDir", mustBeString);
771
+ let kind = getFlag(options, keys2, "kind", mustBeString);
772
+ let pluginData = getFlag(options, keys2, "pluginData", canBeAnything);
773
+ checkForInvalidFlags(options, keys2, "in resolve() call");
774
+ return new Promise((resolve2, reject) => {
775
+ const request = {
776
+ command: "resolve",
777
+ path: path3,
778
+ key: buildKey,
779
+ pluginName: name
780
+ };
781
+ if (pluginName != null)
782
+ request.pluginName = pluginName;
783
+ if (importer != null)
784
+ request.importer = importer;
785
+ if (namespace != null)
786
+ request.namespace = namespace;
787
+ if (resolveDir != null)
788
+ request.resolveDir = resolveDir;
789
+ if (kind != null)
790
+ request.kind = kind;
791
+ if (pluginData != null)
792
+ request.pluginData = stash.store(pluginData);
793
+ sendRequest(refs, request, (error, response) => {
794
+ if (error !== null)
795
+ reject(new Error(error));
796
+ else
797
+ resolve2({
798
+ errors: replaceDetailsInMessages(response.errors, stash),
799
+ warnings: replaceDetailsInMessages(response.warnings, stash),
800
+ path: response.path,
801
+ external: response.external,
802
+ sideEffects: response.sideEffects,
803
+ namespace: response.namespace,
804
+ suffix: response.suffix,
805
+ pluginData: stash.load(response.pluginData)
806
+ });
807
+ });
808
+ });
809
+ };
761
810
  let promise = setup({
762
811
  initialOptions,
812
+ resolve,
763
813
  onStart(callback2) {
764
814
  let registeredText = `This error came from the "onStart" callback registered here:`;
765
815
  let registeredNote = extractCallerV8(new Error(registeredText), streamIn, "onStart");
@@ -807,7 +857,7 @@ function createChannel(streamIn) {
807
857
  }
808
858
  const callback = async (request) => {
809
859
  switch (request.command) {
810
- case "start": {
860
+ case "on-start": {
811
861
  let response = { errors: [], warnings: [] };
812
862
  await Promise.all(onStartCallbacks.map(async ({ name, callback: callback2, note }) => {
813
863
  try {
@@ -830,7 +880,7 @@ function createChannel(streamIn) {
830
880
  }));
831
881
  return response;
832
882
  }
833
- case "resolve": {
883
+ case "on-resolve": {
834
884
  let response = {}, name = "", callback2, note;
835
885
  for (let id of request.ids) {
836
886
  try {
@@ -890,7 +940,7 @@ function createChannel(streamIn) {
890
940
  }
891
941
  return response;
892
942
  }
893
- case "load": {
943
+ case "on-load": {
894
944
  let response = {}, name = "", callback2, note;
895
945
  for (let id of request.ids) {
896
946
  try {
@@ -962,6 +1012,7 @@ function createChannel(streamIn) {
962
1012
  })().then(done);
963
1013
  };
964
1014
  }
1015
+ isSetupDone = true;
965
1016
  let refCount = 0;
966
1017
  return {
967
1018
  ok: true,
@@ -979,24 +1030,23 @@ function createChannel(streamIn) {
979
1030
  }
980
1031
  };
981
1032
  };
982
- let buildServeData = (refs, options, request) => {
1033
+ let buildServeData = (refs, options, request, key) => {
983
1034
  let keys = {};
984
1035
  let port = getFlag(options, keys, "port", mustBeInteger);
985
1036
  let host = getFlag(options, keys, "host", mustBeString);
986
1037
  let servedir = getFlag(options, keys, "servedir", mustBeString);
987
1038
  let onRequest = getFlag(options, keys, "onRequest", mustBeFunction);
988
- let serveID = nextServeID++;
989
1039
  let onWait;
990
1040
  let wait = new Promise((resolve, reject) => {
991
1041
  onWait = (error) => {
992
- serveCallbacks.delete(serveID);
1042
+ serveCallbacks.delete(key);
993
1043
  if (error !== null)
994
1044
  reject(new Error(error));
995
1045
  else
996
1046
  resolve();
997
1047
  };
998
1048
  });
999
- request.serve = { serveID };
1049
+ request.serve = {};
1000
1050
  checkForInvalidFlags(options, keys, `in serve() call`);
1001
1051
  if (port !== void 0)
1002
1052
  request.serve.port = port;
@@ -1004,14 +1054,14 @@ function createChannel(streamIn) {
1004
1054
  request.serve.host = host;
1005
1055
  if (servedir !== void 0)
1006
1056
  request.serve.servedir = servedir;
1007
- serveCallbacks.set(serveID, {
1057
+ serveCallbacks.set(key, {
1008
1058
  onRequest,
1009
1059
  onWait
1010
1060
  });
1011
1061
  return {
1012
1062
  wait,
1013
1063
  stop() {
1014
- sendRequest(refs, { command: "serve-stop", serveID }, () => {
1064
+ sendRequest(refs, { command: "serve-stop", key }, () => {
1015
1065
  });
1016
1066
  }
1017
1067
  };
@@ -1051,7 +1101,7 @@ function createChannel(streamIn) {
1051
1101
  if (plugins && plugins.length > 0) {
1052
1102
  if (streamIn.isSync)
1053
1103
  return handleError(new Error("Cannot use plugins in synchronous API calls"), "");
1054
- handlePlugins(options, plugins, key, details).then((result) => {
1104
+ handlePlugins(options, plugins, key, details, refs).then((result) => {
1055
1105
  if (!result.ok) {
1056
1106
  handleError(result.error, result.pluginName);
1057
1107
  } else {
@@ -1139,7 +1189,7 @@ function createChannel(streamIn) {
1139
1189
  };
1140
1190
  if (requestPlugins)
1141
1191
  request.plugins = requestPlugins;
1142
- let serve2 = serveOptions && buildServeData(refs, serveOptions, request);
1192
+ let serve2 = serveOptions && buildServeData(refs, serveOptions, request, key);
1143
1193
  let rebuild;
1144
1194
  let stop;
1145
1195
  let copyResponseToResult = (response, result) => {
@@ -1160,13 +1210,13 @@ function createChannel(streamIn) {
1160
1210
  if (result.errors.length > 0) {
1161
1211
  return callback2(failureErrorWithLog("Build failed", result.errors, result.warnings), null);
1162
1212
  }
1163
- if (response.rebuildID !== void 0) {
1213
+ if (response.rebuild) {
1164
1214
  if (!rebuild) {
1165
1215
  let isDisposed = false;
1166
1216
  rebuild = () => new Promise((resolve, reject) => {
1167
1217
  if (isDisposed || isClosed)
1168
1218
  throw new Error("Cannot rebuild");
1169
- sendRequest(refs, { command: "rebuild", rebuildID: response.rebuildID }, (error2, response2) => {
1219
+ sendRequest(refs, { command: "rebuild", key }, (error2, response2) => {
1170
1220
  if (error2) {
1171
1221
  const message = { pluginName: "", text: error2, location: null, notes: [], detail: void 0 };
1172
1222
  return callback2(failureErrorWithLog("Build failed", [message], []), null);
@@ -1184,14 +1234,14 @@ function createChannel(streamIn) {
1184
1234
  if (isDisposed)
1185
1235
  return;
1186
1236
  isDisposed = true;
1187
- sendRequest(refs, { command: "rebuild-dispose", rebuildID: response.rebuildID }, () => {
1237
+ sendRequest(refs, { command: "rebuild-dispose", key }, () => {
1188
1238
  });
1189
1239
  refs.unref();
1190
1240
  };
1191
1241
  }
1192
1242
  result.rebuild = rebuild;
1193
1243
  }
1194
- if (response.watchID !== void 0) {
1244
+ if (response.watch) {
1195
1245
  if (!stop) {
1196
1246
  let isStopped = false;
1197
1247
  refs.ref();
@@ -1199,13 +1249,13 @@ function createChannel(streamIn) {
1199
1249
  if (isStopped)
1200
1250
  return;
1201
1251
  isStopped = true;
1202
- watchCallbacks.delete(response.watchID);
1203
- sendRequest(refs, { command: "watch-stop", watchID: response.watchID }, () => {
1252
+ watchCallbacks.delete(key);
1253
+ sendRequest(refs, { command: "watch-stop", key }, () => {
1204
1254
  });
1205
1255
  refs.unref();
1206
1256
  };
1207
1257
  if (watch) {
1208
- watchCallbacks.set(response.watchID, (serviceStopError, watchResponse) => {
1258
+ watchCallbacks.set(key, (serviceStopError, watchResponse) => {
1209
1259
  if (serviceStopError) {
1210
1260
  if (watch.onRebuild)
1211
1261
  watch.onRebuild(serviceStopError, null);
@@ -1612,6 +1662,7 @@ var knownUnixlikePackages = {
1612
1662
  "linux ia32 LE": "esbuild-linux-32",
1613
1663
  "linux mips64el LE": "esbuild-linux-mips64le",
1614
1664
  "linux ppc64 LE": "esbuild-linux-ppc64le",
1665
+ "linux s390x BE": "esbuild-linux-s390x",
1615
1666
  "linux x64 LE": "esbuild-linux-64",
1616
1667
  "netbsd x64 LE": "esbuild-netbsd-64",
1617
1668
  "openbsd x64 LE": "esbuild-openbsd-64",
@@ -1696,7 +1747,7 @@ if (process.env.ESBUILD_WORKER_THREADS !== "0") {
1696
1747
  }
1697
1748
  }
1698
1749
  var _a;
1699
- var isInternalWorkerThread = ((_a = worker_threads == null ? void 0 : worker_threads.workerData) == null ? void 0 : _a.esbuildVersion) === "0.14.5";
1750
+ var isInternalWorkerThread = ((_a = worker_threads == null ? void 0 : worker_threads.workerData) == null ? void 0 : _a.esbuildVersion) === "0.14.9";
1700
1751
  var esbuildCommandAndArgs = () => {
1701
1752
  if ((!ESBUILD_BINARY_PATH || false) && (path2.basename(__filename) !== "main.js" || path2.basename(__dirname) !== "lib")) {
1702
1753
  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.
@@ -1755,7 +1806,7 @@ var fsAsync = {
1755
1806
  }
1756
1807
  }
1757
1808
  };
1758
- var version = "0.14.5";
1809
+ var version = "0.14.9";
1759
1810
  var build = (options) => ensureServiceIsRunning().build(options);
1760
1811
  var serve = (serveOptions, buildOptions) => ensureServiceIsRunning().serve(serveOptions, buildOptions);
1761
1812
  var transform = (input, options) => ensureServiceIsRunning().transform(input, options);
@@ -1864,7 +1915,7 @@ var ensureServiceIsRunning = () => {
1864
1915
  if (longLivedService)
1865
1916
  return longLivedService;
1866
1917
  let [command, args] = esbuildCommandAndArgs();
1867
- let child = child_process.spawn(command, args.concat(`--service=${"0.14.5"}`, "--ping"), {
1918
+ let child = child_process.spawn(command, args.concat(`--service=${"0.14.9"}`, "--ping"), {
1868
1919
  windowsHide: true,
1869
1920
  stdio: ["pipe", "pipe", "inherit"],
1870
1921
  cwd: defaultWD
@@ -1973,7 +2024,7 @@ var runServiceSync = (callback) => {
1973
2024
  esbuild: node_exports
1974
2025
  });
1975
2026
  callback(service);
1976
- let stdout = child_process.execFileSync(command, args.concat(`--service=${"0.14.5"}`), {
2027
+ let stdout = child_process.execFileSync(command, args.concat(`--service=${"0.14.9"}`), {
1977
2028
  cwd: defaultWD,
1978
2029
  windowsHide: true,
1979
2030
  input: stdin,
@@ -1989,7 +2040,7 @@ var workerThreadService = null;
1989
2040
  var startWorkerThreadService = (worker_threads2) => {
1990
2041
  let { port1: mainPort, port2: workerPort } = new worker_threads2.MessageChannel();
1991
2042
  let worker = new worker_threads2.Worker(__filename, {
1992
- workerData: { workerPort, defaultWD, esbuildVersion: "0.14.5" },
2043
+ workerData: { workerPort, defaultWD, esbuildVersion: "0.14.9" },
1993
2044
  transferList: [workerPort],
1994
2045
  execArgv: []
1995
2046
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "esbuild",
3
- "version": "0.14.5",
3
+ "version": "0.14.9",
4
4
  "description": "An extremely fast JavaScript and CSS bundler and minifier.",
5
5
  "repository": "https://github.com/evanw/esbuild",
6
6
  "scripts": {
@@ -12,23 +12,24 @@
12
12
  "esbuild": "bin/esbuild"
13
13
  },
14
14
  "optionalDependencies": {
15
- "esbuild-android-arm64": "0.14.5",
16
- "esbuild-darwin-64": "0.14.5",
17
- "esbuild-darwin-arm64": "0.14.5",
18
- "esbuild-freebsd-64": "0.14.5",
19
- "esbuild-freebsd-arm64": "0.14.5",
20
- "esbuild-linux-32": "0.14.5",
21
- "esbuild-linux-64": "0.14.5",
22
- "esbuild-linux-arm": "0.14.5",
23
- "esbuild-linux-arm64": "0.14.5",
24
- "esbuild-linux-mips64le": "0.14.5",
25
- "esbuild-linux-ppc64le": "0.14.5",
26
- "esbuild-netbsd-64": "0.14.5",
27
- "esbuild-openbsd-64": "0.14.5",
28
- "esbuild-sunos-64": "0.14.5",
29
- "esbuild-windows-32": "0.14.5",
30
- "esbuild-windows-64": "0.14.5",
31
- "esbuild-windows-arm64": "0.14.5"
15
+ "esbuild-android-arm64": "0.14.9",
16
+ "esbuild-darwin-64": "0.14.9",
17
+ "esbuild-darwin-arm64": "0.14.9",
18
+ "esbuild-freebsd-64": "0.14.9",
19
+ "esbuild-freebsd-arm64": "0.14.9",
20
+ "esbuild-linux-32": "0.14.9",
21
+ "esbuild-linux-64": "0.14.9",
22
+ "esbuild-linux-arm": "0.14.9",
23
+ "esbuild-linux-arm64": "0.14.9",
24
+ "esbuild-linux-mips64le": "0.14.9",
25
+ "esbuild-linux-ppc64le": "0.14.9",
26
+ "esbuild-linux-s390x": "0.14.9",
27
+ "esbuild-netbsd-64": "0.14.9",
28
+ "esbuild-openbsd-64": "0.14.9",
29
+ "esbuild-sunos-64": "0.14.9",
30
+ "esbuild-windows-32": "0.14.9",
31
+ "esbuild-windows-64": "0.14.9",
32
+ "esbuild-windows-arm64": "0.14.9"
32
33
  },
33
34
  "license": "MIT"
34
35
  }