isomorfeus-asset-manager 0.14.1 → 0.14.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5376428a5ba412305a5c095639da74ac35e3abb51429ceff8dbc2cf1b3be2ef1
4
- data.tar.gz: 1c2ba2e0de399ec1b60adcb5272548891e20e4dd5cd08101cf5bee5d1276614a
3
+ metadata.gz: 29a8996427cbdbdefb49aa3d46579b8dcdcc5aaa850476d0a1bdc13cc009f75e
4
+ data.tar.gz: 556fde88121019a4811d05e4267f8077f412a58ec07c6c8bdcb69513e8abb023
5
5
  SHA512:
6
- metadata.gz: 0fa08f38a90d57f6d3c8e9bdcfc6afbb77dc1931c6395ba45684e9c54c66dd7db1d716b2def1ec8881952476d0057439ca9f36798693b6ad4e142042dd001f67
7
- data.tar.gz: a7f564c845a82ee1d0315db30f8a28f308bdd0ad4153fb5df41bbd8c4eed510763f89d2ac05b74ff3011a418284fb846c48b57451ab071e30c7462e4412370ca
6
+ metadata.gz: a848d44e453b48cb36b7f3434ef9352c97acca78d04badd629412c55bf5e208d1f87bcca3c4aacbbfc507e2cd9af9e295b91ecb735f7a4e4cb3e52ab1ab922fa
7
+ data.tar.gz: 62118579a5c022ed59f222c0b5d282e8ea8447fa2ce4cc9ef0641e7b0d7b94ea98296df526ca982288b8ff196452c8f468fe8a293e92ee33b5f6f13d0ff6edd0
@@ -1,5 +1,5 @@
1
1
  module Isomorfeus
2
2
  class AssetManager
3
- VERSION = '0.14.1'
3
+ VERSION = '0.14.2'
4
4
  end
5
5
  end
@@ -4,9 +4,9 @@
4
4
  "requires": true,
5
5
  "packages": {
6
6
  "node_modules/esbuild-wasm": {
7
- "version": "0.14.3",
8
- "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.14.3.tgz",
9
- "integrity": "sha512-TVfjQWqFhvEDcP/lB4r6PL/LU1zUXVV5b9s3SWTmXdmJi2NeeCazltvA36/cRbrfx+2xKgafqTpAlqB002FuLA==",
7
+ "version": "0.14.8",
8
+ "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.14.8.tgz",
9
+ "integrity": "sha512-EbubkOStz5BSazbqLLiPAnyJD23NyGVVy1am/nB5H/aG3ra4SKfidfrtkPsHiHIpYjLo9fFZGLTzt9r3WcR3qg==",
10
10
  "bin": {
11
11
  "esbuild": "bin/esbuild"
12
12
  },
Binary file
@@ -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,26 @@ export interface PluginBuild {
285
287
  };
286
288
  }
287
289
 
290
+ export interface ResolveOptions {
291
+ importer?: string;
292
+ namespace?: string;
293
+ resolveDir?: string;
294
+ kind?: ImportKind;
295
+ pluginData?: any;
296
+ }
297
+
298
+ export interface ResolveResult {
299
+ errors: Message[];
300
+ warnings: Message[];
301
+
302
+ path: string;
303
+ external: boolean;
304
+ sideEffects: boolean;
305
+ namespace: string;
306
+ suffix: string;
307
+ pluginData: any;
308
+ }
309
+
288
310
  export interface OnStartResult {
289
311
  errors?: PartialMessage[];
290
312
  warnings?: PartialMessage[];
@@ -17,9 +17,7 @@ var __spreadValues = (a, b) => {
17
17
  return a;
18
18
  };
19
19
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
- var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
21
20
  var __export = (target, all) => {
22
- __markAsModule(target);
23
21
  for (var name in all)
24
22
  __defProp(target, name, { get: all[name], enumerable: true });
25
23
  };
@@ -557,7 +555,6 @@ function createChannel(streamIn) {
557
555
  let pluginCallbacks = /* @__PURE__ */ new Map();
558
556
  let watchCallbacks = /* @__PURE__ */ new Map();
559
557
  let serveCallbacks = /* @__PURE__ */ new Map();
560
- let nextServeID = 0;
561
558
  let isClosed = false;
562
559
  let nextRequestID = 0;
563
560
  let nextBuildKey = 0;
@@ -634,7 +631,7 @@ function createChannel(streamIn) {
634
631
  sendResponse(id, {});
635
632
  break;
636
633
  }
637
- case "start": {
634
+ case "on-start": {
638
635
  let callback = pluginCallbacks.get(request.key);
639
636
  if (!callback)
640
637
  sendResponse(id, {});
@@ -642,7 +639,7 @@ function createChannel(streamIn) {
642
639
  sendResponse(id, await callback(request));
643
640
  break;
644
641
  }
645
- case "resolve": {
642
+ case "on-resolve": {
646
643
  let callback = pluginCallbacks.get(request.key);
647
644
  if (!callback)
648
645
  sendResponse(id, {});
@@ -650,7 +647,7 @@ function createChannel(streamIn) {
650
647
  sendResponse(id, await callback(request));
651
648
  break;
652
649
  }
653
- case "load": {
650
+ case "on-load": {
654
651
  let callback = pluginCallbacks.get(request.key);
655
652
  if (!callback)
656
653
  sendResponse(id, {});
@@ -659,21 +656,21 @@ function createChannel(streamIn) {
659
656
  break;
660
657
  }
661
658
  case "serve-request": {
662
- let callbacks = serveCallbacks.get(request.serveID);
659
+ let callbacks = serveCallbacks.get(request.key);
663
660
  if (callbacks && callbacks.onRequest)
664
661
  callbacks.onRequest(request.args);
665
662
  sendResponse(id, {});
666
663
  break;
667
664
  }
668
665
  case "serve-wait": {
669
- let callbacks = serveCallbacks.get(request.serveID);
666
+ let callbacks = serveCallbacks.get(request.key);
670
667
  if (callbacks)
671
668
  callbacks.onWait(request.error);
672
669
  sendResponse(id, {});
673
670
  break;
674
671
  }
675
672
  case "watch-rebuild": {
676
- let callback = watchCallbacks.get(request.watchID);
673
+ let callback = watchCallbacks.get(request.key);
677
674
  try {
678
675
  if (callback)
679
676
  callback(null, request.args);
@@ -695,8 +692,8 @@ function createChannel(streamIn) {
695
692
  if (isFirstPacket) {
696
693
  isFirstPacket = false;
697
694
  let binaryVersion = String.fromCharCode(...bytes);
698
- if (binaryVersion !== "0.14.3") {
699
- throw new Error(`Cannot start service: Host version "${"0.14.3"}" does not match binary version ${JSON.stringify(binaryVersion)}`);
695
+ if (binaryVersion !== "0.14.8") {
696
+ throw new Error(`Cannot start service: Host version "${"0.14.8"}" does not match binary version ${JSON.stringify(binaryVersion)}`);
700
697
  }
701
698
  return;
702
699
  }
@@ -712,7 +709,7 @@ function createChannel(streamIn) {
712
709
  callback(null, packet.value);
713
710
  }
714
711
  };
715
- let handlePlugins = async (initialOptions, plugins, buildKey, stash) => {
712
+ let handlePlugins = async (initialOptions, plugins, buildKey, stash, refs) => {
716
713
  let onStartCallbacks = [];
717
714
  let onEndCallbacks = [];
718
715
  let onResolveCallbacks = {};
@@ -720,12 +717,13 @@ function createChannel(streamIn) {
720
717
  let nextCallbackID = 0;
721
718
  let i = 0;
722
719
  let requestPlugins = [];
720
+ let isSetupDone = false;
723
721
  plugins = [...plugins];
724
722
  for (let item of plugins) {
725
723
  let keys = {};
726
724
  if (typeof item !== "object")
727
725
  throw new Error(`Plugin at index ${i} must be an object`);
728
- let name = getFlag(item, keys, "name", mustBeString);
726
+ const name = getFlag(item, keys, "name", mustBeString);
729
727
  if (typeof name !== "string" || name === "")
730
728
  throw new Error(`Plugin at index ${i} is missing a name`);
731
729
  try {
@@ -739,8 +737,55 @@ function createChannel(streamIn) {
739
737
  onLoad: []
740
738
  };
741
739
  i++;
740
+ let resolve = (path, options = {}) => {
741
+ if (!isSetupDone)
742
+ throw new Error('Cannot call "resolve" before plugin setup has completed');
743
+ if (typeof path !== "string")
744
+ throw new Error(`The path to resolve must be a string`);
745
+ let keys2 = Object.create(null);
746
+ let importer = getFlag(options, keys2, "importer", mustBeString);
747
+ let namespace = getFlag(options, keys2, "namespace", mustBeString);
748
+ let resolveDir = getFlag(options, keys2, "resolveDir", mustBeString);
749
+ let kind = getFlag(options, keys2, "kind", mustBeString);
750
+ let pluginData = getFlag(options, keys2, "pluginData", canBeAnything);
751
+ checkForInvalidFlags(options, keys2, "in resolve() call");
752
+ return new Promise((resolve2, reject) => {
753
+ const request = {
754
+ command: "resolve",
755
+ path,
756
+ key: buildKey,
757
+ pluginName: name
758
+ };
759
+ if (importer != null)
760
+ request.importer = importer;
761
+ if (namespace != null)
762
+ request.namespace = namespace;
763
+ if (resolveDir != null)
764
+ request.resolveDir = resolveDir;
765
+ if (kind != null)
766
+ request.kind = kind;
767
+ if (pluginData != null)
768
+ request.pluginData = stash.store(pluginData);
769
+ sendRequest(refs, request, (error, response) => {
770
+ if (error !== null)
771
+ reject(new Error(error));
772
+ else
773
+ resolve2({
774
+ errors: replaceDetailsInMessages(response.errors, stash),
775
+ warnings: replaceDetailsInMessages(response.warnings, stash),
776
+ path: response.path,
777
+ external: response.external,
778
+ sideEffects: response.sideEffects,
779
+ namespace: response.namespace,
780
+ suffix: response.suffix,
781
+ pluginData: stash.load(response.pluginData)
782
+ });
783
+ });
784
+ });
785
+ };
742
786
  let promise = setup({
743
787
  initialOptions,
788
+ resolve,
744
789
  onStart(callback2) {
745
790
  let registeredText = `This error came from the "onStart" callback registered here:`;
746
791
  let registeredNote = extractCallerV8(new Error(registeredText), streamIn, "onStart");
@@ -788,7 +833,7 @@ function createChannel(streamIn) {
788
833
  }
789
834
  const callback = async (request) => {
790
835
  switch (request.command) {
791
- case "start": {
836
+ case "on-start": {
792
837
  let response = { errors: [], warnings: [] };
793
838
  await Promise.all(onStartCallbacks.map(async ({ name, callback: callback2, note }) => {
794
839
  try {
@@ -811,7 +856,7 @@ function createChannel(streamIn) {
811
856
  }));
812
857
  return response;
813
858
  }
814
- case "resolve": {
859
+ case "on-resolve": {
815
860
  let response = {}, name = "", callback2, note;
816
861
  for (let id of request.ids) {
817
862
  try {
@@ -871,7 +916,7 @@ function createChannel(streamIn) {
871
916
  }
872
917
  return response;
873
918
  }
874
- case "load": {
919
+ case "on-load": {
875
920
  let response = {}, name = "", callback2, note;
876
921
  for (let id of request.ids) {
877
922
  try {
@@ -943,6 +988,7 @@ function createChannel(streamIn) {
943
988
  })().then(done);
944
989
  };
945
990
  }
991
+ isSetupDone = true;
946
992
  let refCount = 0;
947
993
  return {
948
994
  ok: true,
@@ -960,24 +1006,23 @@ function createChannel(streamIn) {
960
1006
  }
961
1007
  };
962
1008
  };
963
- let buildServeData = (refs, options, request) => {
1009
+ let buildServeData = (refs, options, request, key) => {
964
1010
  let keys = {};
965
1011
  let port = getFlag(options, keys, "port", mustBeInteger);
966
1012
  let host = getFlag(options, keys, "host", mustBeString);
967
1013
  let servedir = getFlag(options, keys, "servedir", mustBeString);
968
1014
  let onRequest = getFlag(options, keys, "onRequest", mustBeFunction);
969
- let serveID = nextServeID++;
970
1015
  let onWait;
971
1016
  let wait = new Promise((resolve, reject) => {
972
1017
  onWait = (error) => {
973
- serveCallbacks.delete(serveID);
1018
+ serveCallbacks.delete(key);
974
1019
  if (error !== null)
975
1020
  reject(new Error(error));
976
1021
  else
977
1022
  resolve();
978
1023
  };
979
1024
  });
980
- request.serve = { serveID };
1025
+ request.serve = {};
981
1026
  checkForInvalidFlags(options, keys, `in serve() call`);
982
1027
  if (port !== void 0)
983
1028
  request.serve.port = port;
@@ -985,14 +1030,14 @@ function createChannel(streamIn) {
985
1030
  request.serve.host = host;
986
1031
  if (servedir !== void 0)
987
1032
  request.serve.servedir = servedir;
988
- serveCallbacks.set(serveID, {
1033
+ serveCallbacks.set(key, {
989
1034
  onRequest,
990
1035
  onWait
991
1036
  });
992
1037
  return {
993
1038
  wait,
994
1039
  stop() {
995
- sendRequest(refs, { command: "serve-stop", serveID }, () => {
1040
+ sendRequest(refs, { command: "serve-stop", key }, () => {
996
1041
  });
997
1042
  }
998
1043
  };
@@ -1032,7 +1077,7 @@ function createChannel(streamIn) {
1032
1077
  if (plugins && plugins.length > 0) {
1033
1078
  if (streamIn.isSync)
1034
1079
  return handleError(new Error("Cannot use plugins in synchronous API calls"), "");
1035
- handlePlugins(options, plugins, key, details).then((result) => {
1080
+ handlePlugins(options, plugins, key, details, refs).then((result) => {
1036
1081
  if (!result.ok) {
1037
1082
  handleError(result.error, result.pluginName);
1038
1083
  } else {
@@ -1120,7 +1165,7 @@ function createChannel(streamIn) {
1120
1165
  };
1121
1166
  if (requestPlugins)
1122
1167
  request.plugins = requestPlugins;
1123
- let serve2 = serveOptions && buildServeData(refs, serveOptions, request);
1168
+ let serve2 = serveOptions && buildServeData(refs, serveOptions, request, key);
1124
1169
  let rebuild;
1125
1170
  let stop;
1126
1171
  let copyResponseToResult = (response, result) => {
@@ -1141,13 +1186,13 @@ function createChannel(streamIn) {
1141
1186
  if (result.errors.length > 0) {
1142
1187
  return callback2(failureErrorWithLog("Build failed", result.errors, result.warnings), null);
1143
1188
  }
1144
- if (response.rebuildID !== void 0) {
1189
+ if (response.rebuild) {
1145
1190
  if (!rebuild) {
1146
1191
  let isDisposed = false;
1147
1192
  rebuild = () => new Promise((resolve, reject) => {
1148
1193
  if (isDisposed || isClosed)
1149
1194
  throw new Error("Cannot rebuild");
1150
- sendRequest(refs, { command: "rebuild", rebuildID: response.rebuildID }, (error2, response2) => {
1195
+ sendRequest(refs, { command: "rebuild", key }, (error2, response2) => {
1151
1196
  if (error2) {
1152
1197
  const message = { pluginName: "", text: error2, location: null, notes: [], detail: void 0 };
1153
1198
  return callback2(failureErrorWithLog("Build failed", [message], []), null);
@@ -1165,14 +1210,14 @@ function createChannel(streamIn) {
1165
1210
  if (isDisposed)
1166
1211
  return;
1167
1212
  isDisposed = true;
1168
- sendRequest(refs, { command: "rebuild-dispose", rebuildID: response.rebuildID }, () => {
1213
+ sendRequest(refs, { command: "rebuild-dispose", key }, () => {
1169
1214
  });
1170
1215
  refs.unref();
1171
1216
  };
1172
1217
  }
1173
1218
  result.rebuild = rebuild;
1174
1219
  }
1175
- if (response.watchID !== void 0) {
1220
+ if (response.watch) {
1176
1221
  if (!stop) {
1177
1222
  let isStopped = false;
1178
1223
  refs.ref();
@@ -1180,13 +1225,13 @@ function createChannel(streamIn) {
1180
1225
  if (isStopped)
1181
1226
  return;
1182
1227
  isStopped = true;
1183
- watchCallbacks.delete(response.watchID);
1184
- sendRequest(refs, { command: "watch-stop", watchID: response.watchID }, () => {
1228
+ watchCallbacks.delete(key);
1229
+ sendRequest(refs, { command: "watch-stop", key }, () => {
1185
1230
  });
1186
1231
  refs.unref();
1187
1232
  };
1188
1233
  if (watch) {
1189
- watchCallbacks.set(response.watchID, (serviceStopError, watchResponse) => {
1234
+ watchCallbacks.set(key, (serviceStopError, watchResponse) => {
1190
1235
  if (serviceStopError) {
1191
1236
  if (watch.onRebuild)
1192
1237
  watch.onRebuild(serviceStopError, null);
@@ -1573,7 +1618,7 @@ function convertOutputFiles({ path, contents }) {
1573
1618
  }
1574
1619
 
1575
1620
  // lib/npm/browser.ts
1576
- var version = "0.14.3";
1621
+ var version = "0.14.8";
1577
1622
  var build = (options) => ensureServiceIsRunning().build(options);
1578
1623
  var serve = () => {
1579
1624
  throw new Error(`The "serve" API only works in node`);
@@ -2330,7 +2375,7 @@ onmessage = ({ data: wasm }) => {
2330
2375
  callback(null, count);
2331
2376
  };
2332
2377
  let go = new global.Go();
2333
- go.argv = ["", \`--service=\${"0.14.3"}\`];
2378
+ go.argv = ["", \`--service=\${"0.14.8"}\`];
2334
2379
  WebAssembly.instantiate(wasm, go.importObject).then(({ instance }) => go.run(instance));
2335
2380
  };}`;
2336
2381
  let worker;
@@ -1,8 +1,8 @@
1
- var Pe=Object.defineProperty,tt=Object.defineProperties;var rt=Object.getOwnPropertyDescriptors;var Ue=Object.getOwnPropertySymbols;var nt=Object.prototype.hasOwnProperty,lt=Object.prototype.propertyIsEnumerable;var qe=(e,t,r)=>t in e?Pe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Me=(e,t)=>{for(var r in t||(t={}))nt.call(t,r)&&qe(e,r,t[r]);if(Ue)for(var r of Ue(t))lt.call(t,r)&&qe(e,r,t[r]);return e},Be=(e,t)=>tt(e,rt(t)),it=e=>Pe(e,"__esModule",{value:!0});var st=(e,t)=>{it(e);for(var r in t)Pe(e,r,{get:t[r],enumerable:!0})};var Le={};st(Le,{analyzeMetafile:()=>Ot,analyzeMetafileSync:()=>Et,build:()=>bt,buildSync:()=>St,formatMessages:()=>Rt,formatMessagesSync:()=>kt,initialize:()=>$t,serve:()=>wt,transform:()=>vt,transformSync:()=>xt,version:()=>ht});function Te(e){let t=s=>{if(s===null)r.write8(0);else if(typeof s=="boolean")r.write8(1),r.write8(+s);else if(typeof s=="number")r.write8(2),r.write32(s|0);else if(typeof s=="string")r.write8(3),r.write(ae(s));else if(s instanceof Uint8Array)r.write8(4),r.write(s);else if(s instanceof Array){r.write8(5),r.write32(s.length);for(let g of s)t(g)}else{let g=Object.keys(s);r.write8(6),r.write32(g.length);for(let l of g)r.write(ae(l)),t(s[l])}},r=new Ae;return r.write32(0),r.write32(e.id<<1|+!e.isRequest),t(e.value),Ne(r.buf,r.len-4,0),r.buf.subarray(0,r.len)}function We(e){let t=()=>{switch(r.read8()){case 0:return null;case 1:return!!r.read8();case 2:return r.read32();case 3:return fe(r.read());case 4:return r.read();case 5:{let f=r.read32(),i=[];for(let w=0;w<f;w++)i.push(t());return i}case 6:{let f=r.read32(),i={};for(let w=0;w<f;w++)i[fe(r.read())]=t();return i}default:throw new Error("Invalid packet")}},r=new Ae(e),s=r.read32(),g=(s&1)==0;s>>>=1;let l=t();if(r.ptr!==e.length)throw new Error("Invalid packet");return{id:s,isRequest:g,value:l}}var Ae=class{constructor(t=new Uint8Array(1024)){this.buf=t;this.len=0;this.ptr=0}_write(t){if(this.len+t>this.buf.length){let r=new Uint8Array((this.len+t)*2);r.set(this.buf),this.buf=r}return this.len+=t,this.len-t}write8(t){let r=this._write(1);this.buf[r]=t}write32(t){let r=this._write(4);Ne(this.buf,t,r)}write(t){let r=this._write(4+t.length);Ne(this.buf,t.length,r),this.buf.set(t,r+4)}_read(t){if(this.ptr+t>this.buf.length)throw new Error("Invalid packet");return this.ptr+=t,this.ptr-t}read8(){return this.buf[this._read(1)]}read32(){return Fe(this.buf,this._read(4))}read(){let t=this.read32(),r=new Uint8Array(t),s=this._read(r.length);return r.set(this.buf.subarray(s,s+t)),r}},ae,fe;if(typeof TextEncoder!="undefined"&&typeof TextDecoder!="undefined"){let e=new TextEncoder,t=new TextDecoder;ae=r=>e.encode(r),fe=r=>t.decode(r)}else if(typeof Buffer!="undefined")ae=e=>{let t=Buffer.from(e);return t instanceof Uint8Array||(t=new Uint8Array(t)),t},fe=e=>{let{buffer:t,byteOffset:r,byteLength:s}=e;return Buffer.from(t,r,s).toString()};else throw new Error("No UTF-8 codec found");function Fe(e,t){return e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24}function Ne(e,t,r){e[r++]=t,e[r++]=t>>8,e[r++]=t>>16,e[r++]=t>>24}function ze(e){if(e+="",e.indexOf(",")>=0)throw new Error(`Invalid target: ${e}`);return e}var je=()=>null,I=e=>typeof e=="boolean"?null:"a boolean",at=e=>typeof e=="boolean"||typeof e=="object"&&!Array.isArray(e)?null:"a boolean or an object",y=e=>typeof e=="string"?null:"a string",Ke=e=>e instanceof RegExp?null:"a RegExp object",ge=e=>typeof e=="number"&&e===(e|0)?null:"an integer",Ce=e=>typeof e=="function"?null:"a function",z=e=>Array.isArray(e)?null:"an array",me=e=>typeof e=="object"&&e!==null&&!Array.isArray(e)?null:"an object",ut=e=>typeof e=="object"&&e!==null?null:"an array or an object",_e=e=>typeof e=="object"&&!Array.isArray(e)?null:"an object or null",Ve=e=>typeof e=="string"||typeof e=="boolean"?null:"a string or a boolean",ft=e=>typeof e=="string"||typeof e=="object"&&e!==null&&!Array.isArray(e)?null:"a string or an object",ct=e=>typeof e=="string"||Array.isArray(e)?null:"a string or an array",dt=e=>typeof e=="string"||e instanceof Uint8Array?null:"a string or a Uint8Array";function n(e,t,r,s){let g=e[r];if(t[r+""]=!0,g===void 0)return;let l=s(g);if(l!==null)throw new Error(`"${r}" must be ${l}`);return g}function _(e,t,r){for(let s in e)if(!(s in t))throw new Error(`Invalid option ${r}: "${s}"`)}function Je(e){let t=Object.create(null),r=n(e,t,"wasmURL",y),s=n(e,t,"worker",I);return _(e,t,"in startService() call"),{wasmURL:r,worker:s}}function Re(e,t,r,s,g){let l=n(t,r,"color",I),f=n(t,r,"logLevel",y),i=n(t,r,"logLimit",ge);l!==void 0?e.push(`--color=${l}`):s&&e.push("--color=true"),e.push(`--log-level=${f||g}`),e.push(`--log-limit=${i||0}`)}function Ye(e,t,r){let s=n(t,r,"legalComments",y),g=n(t,r,"sourceRoot",y),l=n(t,r,"sourcesContent",I),f=n(t,r,"target",ct),i=n(t,r,"format",y),w=n(t,r,"globalName",y),O=n(t,r,"minify",I),x=n(t,r,"minifySyntax",I),N=n(t,r,"minifyWhitespace",I),L=n(t,r,"minifyIdentifiers",I),k=n(t,r,"charset",y),q=n(t,r,"treeShaking",I),ee=n(t,r,"ignoreAnnotations",I),Q=n(t,r,"jsx",y),te=n(t,r,"jsxFactory",y),re=n(t,r,"jsxFragment",y),le=n(t,r,"define",me),ie=n(t,r,"pure",z),ue=n(t,r,"keepNames",I);if(s&&e.push(`--legal-comments=${s}`),g!==void 0&&e.push(`--source-root=${g}`),l!==void 0&&e.push(`--sources-content=${l}`),f&&(Array.isArray(f)?e.push(`--target=${Array.from(f).map(ze).join(",")}`):e.push(`--target=${ze(f)}`)),i&&e.push(`--format=${i}`),w&&e.push(`--global-name=${w}`),O&&e.push("--minify"),x&&e.push("--minify-syntax"),N&&e.push("--minify-whitespace"),L&&e.push("--minify-identifiers"),k&&e.push(`--charset=${k}`),q!==void 0&&e.push(`--tree-shaking=${q}`),ee&&e.push("--ignore-annotations"),Q&&e.push(`--jsx=${Q}`),te&&e.push(`--jsx-factory=${te}`),re&&e.push(`--jsx-fragment=${re}`),le)for(let X in le){if(X.indexOf("=")>=0)throw new Error(`Invalid define: ${X}`);e.push(`--define:${X}=${le[X]}`)}if(ie)for(let X of ie)e.push(`--pure:${X}`);ue&&e.push("--keep-names")}function pt(e,t,r,s,g){var b;let l=[],f=[],i=Object.create(null),w=null,O=null,x=null;Re(l,t,i,r,s),Ye(l,t,i);let N=n(t,i,"sourcemap",Ve),L=n(t,i,"bundle",I),k=n(t,i,"watch",at),q=n(t,i,"splitting",I),ee=n(t,i,"preserveSymlinks",I),Q=n(t,i,"metafile",I),te=n(t,i,"outfile",y),re=n(t,i,"outdir",y),le=n(t,i,"outbase",y),ie=n(t,i,"platform",y),ue=n(t,i,"tsconfig",y),X=n(t,i,"resolveExtensions",z),ve=n(t,i,"nodePaths",z),ke=n(t,i,"mainFields",z),Ee=n(t,i,"conditions",z),$e=n(t,i,"external",z),d=n(t,i,"loader",me),u=n(t,i,"outExtension",me),o=n(t,i,"publicPath",y),c=n(t,i,"entryNames",y),C=n(t,i,"chunkNames",y),B=n(t,i,"assetNames",y),M=n(t,i,"inject",z),j=n(t,i,"banner",me),D=n(t,i,"footer",me),$=n(t,i,"entryPoints",ut),R=n(t,i,"absWorkingDir",y),T=n(t,i,"stdin",me),A=(b=n(t,i,"write",I))!=null?b:g,S=n(t,i,"allowOverwrite",I),E=n(t,i,"incremental",I)===!0;if(i.plugins=!0,_(t,i,`in ${e}() call`),N&&l.push(`--sourcemap${N===!0?"":`=${N}`}`),L&&l.push("--bundle"),S&&l.push("--allow-overwrite"),k)if(l.push("--watch"),typeof k=="boolean")x={};else{let a=Object.create(null),h=n(k,a,"onRebuild",Ce);_(k,a,`on "watch" in ${e}() call`),x={onRebuild:h}}if(q&&l.push("--splitting"),ee&&l.push("--preserve-symlinks"),Q&&l.push("--metafile"),te&&l.push(`--outfile=${te}`),re&&l.push(`--outdir=${re}`),le&&l.push(`--outbase=${le}`),ie&&l.push(`--platform=${ie}`),ue&&l.push(`--tsconfig=${ue}`),X){let a=[];for(let h of X){if(h+="",h.indexOf(",")>=0)throw new Error(`Invalid resolve extension: ${h}`);a.push(h)}l.push(`--resolve-extensions=${a.join(",")}`)}if(o&&l.push(`--public-path=${o}`),c&&l.push(`--entry-names=${c}`),C&&l.push(`--chunk-names=${C}`),B&&l.push(`--asset-names=${B}`),ke){let a=[];for(let h of ke){if(h+="",h.indexOf(",")>=0)throw new Error(`Invalid main field: ${h}`);a.push(h)}l.push(`--main-fields=${a.join(",")}`)}if(Ee){let a=[];for(let h of Ee){if(h+="",h.indexOf(",")>=0)throw new Error(`Invalid condition: ${h}`);a.push(h)}l.push(`--conditions=${a.join(",")}`)}if($e)for(let a of $e)l.push(`--external:${a}`);if(j)for(let a in j){if(a.indexOf("=")>=0)throw new Error(`Invalid banner file type: ${a}`);l.push(`--banner:${a}=${j[a]}`)}if(D)for(let a in D){if(a.indexOf("=")>=0)throw new Error(`Invalid footer file type: ${a}`);l.push(`--footer:${a}=${D[a]}`)}if(M)for(let a of M)l.push(`--inject:${a}`);if(d)for(let a in d){if(a.indexOf("=")>=0)throw new Error(`Invalid loader extension: ${a}`);l.push(`--loader:${a}=${d[a]}`)}if(u)for(let a in u){if(a.indexOf("=")>=0)throw new Error(`Invalid out extension: ${a}`);l.push(`--out-extension:${a}=${u[a]}`)}if($)if(Array.isArray($))for(let a of $)f.push(["",a+""]);else for(let[a,h]of Object.entries($))f.push([a+"",h+""]);if(T){let a=Object.create(null),h=n(T,a,"contents",y),P=n(T,a,"resolveDir",y),p=n(T,a,"sourcefile",y),v=n(T,a,"loader",y);_(T,a,'in "stdin" object'),p&&l.push(`--sourcefile=${p}`),v&&l.push(`--loader=${v}`),P&&(O=P+""),w=h?h+"":""}let m=[];if(ve)for(let a of ve)a+="",m.push(a);return{entries:f,flags:l,write:A,stdinContents:w,stdinResolveDir:O,absWorkingDir:R,incremental:E,nodePaths:m,watch:x}}function gt(e,t,r,s){let g=[],l=Object.create(null);Re(g,t,l,r,s),Ye(g,t,l);let f=n(t,l,"sourcemap",Ve),i=n(t,l,"tsconfigRaw",ft),w=n(t,l,"sourcefile",y),O=n(t,l,"loader",y),x=n(t,l,"banner",y),N=n(t,l,"footer",y);return _(t,l,`in ${e}() call`),f&&g.push(`--sourcemap=${f===!0?"external":f}`),i&&g.push(`--tsconfig-raw=${typeof i=="string"?i:JSON.stringify(i)}`),w&&g.push(`--sourcefile=${w}`),O&&g.push(`--loader=${O}`),x&&g.push(`--banner=${x}`),N&&g.push(`--footer=${N}`),g}function He(e){let t=new Map,r=new Map,s=new Map,g=new Map,l=0,f=!1,i=0,w=0,O=new Uint8Array(16*1024),x=0,N=d=>{let u=x+d.length;if(u>O.length){let c=new Uint8Array(u*2);c.set(O),O=c}O.set(d,x),x+=d.length;let o=0;for(;o+4<=x;){let c=Fe(O,o);if(o+4+c>x)break;o+=4,te(O.subarray(o,o+c)),o+=c}o>0&&(O.copyWithin(0,o,x),x-=o)},L=()=>{f=!0;for(let d of t.values())d("The service was stopped",null);t.clear();for(let d of g.values())d.onWait("The service was stopped");g.clear();for(let d of s.values())try{d(new Error("The service was stopped"),null)}catch(u){console.error(u)}s.clear()},k=(d,u,o)=>{if(f)return o("The service is no longer running",null);let c=i++;t.set(c,(C,B)=>{try{o(C,B)}finally{d&&d.unref()}}),d&&d.ref(),e.writeToStdin(Te({id:c,isRequest:!0,value:u}))},q=(d,u)=>{if(f)throw new Error("The service is no longer running");e.writeToStdin(Te({id:d,isRequest:!1,value:u}))},ee=async(d,u)=>{try{switch(u.command){case"ping":{q(d,{});break}case"start":{let o=r.get(u.key);o?q(d,await o(u)):q(d,{});break}case"resolve":{let o=r.get(u.key);o?q(d,await o(u)):q(d,{});break}case"load":{let o=r.get(u.key);o?q(d,await o(u)):q(d,{});break}case"serve-request":{let o=g.get(u.serveID);o&&o.onRequest&&o.onRequest(u.args),q(d,{});break}case"serve-wait":{let o=g.get(u.serveID);o&&o.onWait(u.error),q(d,{});break}case"watch-rebuild":{let o=s.get(u.watchID);try{o&&o(null,u.args)}catch(c){console.error(c)}q(d,{});break}default:throw new Error("Invalid command: "+u.command)}}catch(o){q(d,{errors:[ye(o,e,null,void 0,"")]})}},Q=!0,te=d=>{if(Q){Q=!1;let o=String.fromCharCode(...d);if(o!=="0.14.3")throw new Error(`Cannot start service: Host version "0.14.3" does not match binary version ${JSON.stringify(o)}`);return}let u=We(d);if(u.isRequest)ee(u.id,u.value);else{let o=t.get(u.id);t.delete(u.id),u.value.error?o(u.value.error,{}):o(null,u.value)}},re=async(d,u,o,c)=>{let C=[],B=[],M={},j={},D=0,$=0,R=[];u=[...u];for(let E of u){let m={};if(typeof E!="object")throw new Error(`Plugin at index ${$} must be an object`);let b=n(E,m,"name",y);if(typeof b!="string"||b==="")throw new Error(`Plugin at index ${$} is missing a name`);try{let a=n(E,m,"setup",Ce);if(typeof a!="function")throw new Error("Plugin is missing a setup function");_(E,m,`on plugin ${JSON.stringify(b)}`);let h={name:b,onResolve:[],onLoad:[]};$++;let P=a({initialOptions:d,onStart(p){let v='This error came from the "onStart" callback registered here:',W=Oe(new Error(v),e,"onStart");C.push({name:b,callback:p,note:W})},onEnd(p){let v='This error came from the "onEnd" callback registered here:',W=Oe(new Error(v),e,"onEnd");B.push({name:b,callback:p,note:W})},onResolve(p,v){let W='This error came from the "onResolve" callback registered here:',U=Oe(new Error(W),e,"onResolve"),K={},V=n(p,K,"filter",Ke),Y=n(p,K,"namespace",y);if(_(p,K,`in onResolve() call for plugin ${JSON.stringify(b)}`),V==null)throw new Error("onResolve() call is missing a filter");let J=D++;M[J]={name:b,callback:v,note:U},h.onResolve.push({id:J,filter:V.source,namespace:Y||""})},onLoad(p,v){let W='This error came from the "onLoad" callback registered here:',U=Oe(new Error(W),e,"onLoad"),K={},V=n(p,K,"filter",Ke),Y=n(p,K,"namespace",y);if(_(p,K,`in onLoad() call for plugin ${JSON.stringify(b)}`),V==null)throw new Error("onLoad() call is missing a filter");let J=D++;j[J]={name:b,callback:v,note:U},h.onLoad.push({id:J,filter:V.source,namespace:Y||""})},esbuild:e.esbuild});P&&await P,R.push(h)}catch(a){return{ok:!1,error:a,pluginName:b}}}let T=async E=>{switch(E.command){case"start":{let m={errors:[],warnings:[]};return await Promise.all(C.map(async({name:b,callback:a,note:h})=>{try{let P=await a();if(P!=null){if(typeof P!="object")throw new Error(`Expected onStart() callback in plugin ${JSON.stringify(b)} to return an object`);let p={},v=n(P,p,"errors",z),W=n(P,p,"warnings",z);_(P,p,`from onStart() callback in plugin ${JSON.stringify(b)}`),v!=null&&m.errors.push(...ce(v,"errors",c,b)),W!=null&&m.warnings.push(...ce(W,"warnings",c,b))}}catch(P){m.errors.push(ye(P,e,c,h&&h(),b))}})),m}case"resolve":{let m={},b="",a,h;for(let P of E.ids)try{({name:b,callback:a,note:h}=M[P]);let p=await a({path:E.path,importer:E.importer,namespace:E.namespace,resolveDir:E.resolveDir,kind:E.kind,pluginData:c.load(E.pluginData)});if(p!=null){if(typeof p!="object")throw new Error(`Expected onResolve() callback in plugin ${JSON.stringify(b)} to return an object`);let v={},W=n(p,v,"pluginName",y),U=n(p,v,"path",y),K=n(p,v,"namespace",y),V=n(p,v,"suffix",y),Y=n(p,v,"external",I),J=n(p,v,"sideEffects",I),se=n(p,v,"pluginData",je),oe=n(p,v,"errors",z),F=n(p,v,"warnings",z),G=n(p,v,"watchFiles",z),H=n(p,v,"watchDirs",z);_(p,v,`from onResolve() callback in plugin ${JSON.stringify(b)}`),m.id=P,W!=null&&(m.pluginName=W),U!=null&&(m.path=U),K!=null&&(m.namespace=K),V!=null&&(m.suffix=V),Y!=null&&(m.external=Y),J!=null&&(m.sideEffects=J),se!=null&&(m.pluginData=c.store(se)),oe!=null&&(m.errors=ce(oe,"errors",c,b)),F!=null&&(m.warnings=ce(F,"warnings",c,b)),G!=null&&(m.watchFiles=Se(G,"watchFiles")),H!=null&&(m.watchDirs=Se(H,"watchDirs"));break}}catch(p){return{id:P,errors:[ye(p,e,c,h&&h(),b)]}}return m}case"load":{let m={},b="",a,h;for(let P of E.ids)try{({name:b,callback:a,note:h}=j[P]);let p=await a({path:E.path,namespace:E.namespace,suffix:E.suffix,pluginData:c.load(E.pluginData)});if(p!=null){if(typeof p!="object")throw new Error(`Expected onLoad() callback in plugin ${JSON.stringify(b)} to return an object`);let v={},W=n(p,v,"pluginName",y),U=n(p,v,"contents",dt),K=n(p,v,"resolveDir",y),V=n(p,v,"pluginData",je),Y=n(p,v,"loader",y),J=n(p,v,"errors",z),se=n(p,v,"warnings",z),oe=n(p,v,"watchFiles",z),F=n(p,v,"watchDirs",z);_(p,v,`from onLoad() callback in plugin ${JSON.stringify(b)}`),m.id=P,W!=null&&(m.pluginName=W),U instanceof Uint8Array?m.contents=U:U!=null&&(m.contents=ae(U)),K!=null&&(m.resolveDir=K),V!=null&&(m.pluginData=c.store(V)),Y!=null&&(m.loader=Y),J!=null&&(m.errors=ce(J,"errors",c,b)),se!=null&&(m.warnings=ce(se,"warnings",c,b)),oe!=null&&(m.watchFiles=Se(oe,"watchFiles")),F!=null&&(m.watchDirs=Se(F,"watchDirs"));break}}catch(p){return{id:P,errors:[ye(p,e,c,h&&h(),b)]}}return m}default:throw new Error("Invalid command: "+E.command)}},A=(E,m,b)=>b();B.length>0&&(A=(E,m,b)=>{(async()=>{for(let{name:a,callback:h,note:P}of B)try{await h(E)}catch(p){E.errors.push(await new Promise(v=>m(p,a,P&&P(),v)))}})().then(b)});let S=0;return{ok:!0,requestPlugins:R,runOnEndCallbacks:A,pluginRefs:{ref(){++S==1&&r.set(o,T)},unref(){--S==0&&r.delete(o)}}}},le=(d,u,o)=>{let c={},C=n(u,c,"port",ge),B=n(u,c,"host",y),M=n(u,c,"servedir",y),j=n(u,c,"onRequest",Ce),D=l++,$,R=new Promise((T,A)=>{$=S=>{g.delete(D),S!==null?A(new Error(S)):T()}});return o.serve={serveID:D},_(u,c,"in serve() call"),C!==void 0&&(o.serve.port=C),B!==void 0&&(o.serve.host=B),M!==void 0&&(o.serve.servedir=M),g.set(D,{onRequest:j,onWait:$}),{wait:R,stop(){k(d,{command:"serve-stop",serveID:D},()=>{})}}},ie="warning",ue="silent",X=d=>{let u=w++,o=Ge(),c,{refs:C,options:B,isTTY:M,callback:j}=d;if(typeof B=="object"){let R=B.plugins;if(R!==void 0){if(!Array.isArray(R))throw new Error('"plugins" must be an array');c=R}}let D=(R,T,A,S)=>{let E=[];try{Re(E,B,{},M,ie)}catch(b){}let m=ye(R,e,o,A,T);k(C,{command:"error",flags:E,error:m},()=>{m.detail=o.load(m.detail),S(m)})},$=(R,T)=>{D(R,T,void 0,A=>{j(he("Build failed",[A],[]),null)})};if(c&&c.length>0){if(e.isSync)return $(new Error("Cannot use plugins in synchronous API calls"),"");re(B,c,u,o).then(R=>{if(!R.ok)$(R.error,R.pluginName);else try{ve(Be(Me({},d),{key:u,details:o,logPluginError:D,requestPlugins:R.requestPlugins,runOnEndCallbacks:R.runOnEndCallbacks,pluginRefs:R.pluginRefs}))}catch(T){$(T,"")}},R=>$(R,""))}else try{ve(Be(Me({},d),{key:u,details:o,logPluginError:D,requestPlugins:null,runOnEndCallbacks:(R,T,A)=>A(),pluginRefs:null}))}catch(R){$(R,"")}},ve=({callName:d,refs:u,serveOptions:o,options:c,isTTY:C,defaultWD:B,callback:M,key:j,details:D,logPluginError:$,requestPlugins:R,runOnEndCallbacks:T,pluginRefs:A})=>{let S={ref(){A&&A.ref(),u&&u.ref()},unref(){A&&A.unref(),u&&u.unref()}},E=!e.isBrowser,{entries:m,flags:b,write:a,stdinContents:h,stdinResolveDir:P,absWorkingDir:p,incremental:v,nodePaths:W,watch:U}=pt(d,c,C,ie,E),K={command:"build",key:j,entries:m,flags:b,write:a,stdinContents:h,stdinResolveDir:P,absWorkingDir:p||B,incremental:v,nodePaths:W};R&&(K.plugins=R);let V=o&&le(S,o,K),Y,J,se=(F,G)=>{F.outputFiles&&(G.outputFiles=F.outputFiles.map(mt)),F.metafile&&(G.metafile=JSON.parse(F.metafile)),F.writeToStdout!==void 0&&console.log(fe(F.writeToStdout).replace(/\n$/,""))},oe=(F,G)=>{let H={errors:be(F.errors,D),warnings:be(F.warnings,D)};se(F,H),T(H,$,()=>{if(H.errors.length>0)return G(he("Build failed",H.errors,H.warnings),null);if(F.rebuildID!==void 0){if(!Y){let ne=!1;Y=()=>new Promise((de,pe)=>{if(ne||f)throw new Error("Cannot rebuild");k(S,{command:"rebuild",rebuildID:F.rebuildID},(Z,Ze)=>{if(Z)return G(he("Build failed",[{pluginName:"",text:Z,location:null,notes:[],detail:void 0}],[]),null);oe(Ze,(De,et)=>{De?pe(De):de(et)})})}),S.ref(),Y.dispose=()=>{ne||(ne=!0,k(S,{command:"rebuild-dispose",rebuildID:F.rebuildID},()=>{}),S.unref())}}H.rebuild=Y}if(F.watchID!==void 0){if(!J){let ne=!1;S.ref(),J=()=>{ne||(ne=!0,s.delete(F.watchID),k(S,{command:"watch-stop",watchID:F.watchID},()=>{}),S.unref())},U&&s.set(F.watchID,(de,pe)=>{if(de){U.onRebuild&&U.onRebuild(de,null);return}let Z={errors:be(pe.errors,D),warnings:be(pe.warnings,D)};se(pe,Z),T(Z,$,()=>{if(Z.errors.length>0){U.onRebuild&&U.onRebuild(he("Build failed",Z.errors,Z.warnings),null);return}pe.rebuildID!==void 0&&(Z.rebuild=Y),Z.stop=J,U.onRebuild&&U.onRebuild(null,Z)})})}H.stop=J}G(null,H)})};if(a&&e.isBrowser)throw new Error('Cannot enable "write" in the browser');if(v&&e.isSync)throw new Error('Cannot use "incremental" with a synchronous build');if(U&&e.isSync)throw new Error('Cannot use "watch" with a synchronous build');k(S,K,(F,G)=>{if(F)return M(new Error(F),null);if(V){let H=G,ne=!1;S.ref();let de={port:H.port,host:H.host,wait:V.wait,stop(){ne||(ne=!0,V.stop(),S.unref())}};return S.ref(),V.wait.then(S.unref,S.unref),M(null,de)}return oe(G,M)})};return{readFromStdout:N,afterClose:L,service:{buildOrServe:X,transform:({callName:d,refs:u,input:o,options:c,isTTY:C,fs:B,callback:M})=>{let j=Ge(),D=$=>{try{if(typeof o!="string")throw new Error('The input to "transform" must be a string');let R=gt(d,c,C,ue);k(u,{command:"transform",flags:R,inputFS:$!==null,input:$!==null?$:o},(A,S)=>{if(A)return M(new Error(A),null);let E=be(S.errors,j),m=be(S.warnings,j),b=1,a=()=>--b==0&&M(null,{warnings:m,code:S.code,map:S.map});if(E.length>0)return M(he("Transform failed",E,m),null);S.codeFS&&(b++,B.readFile(S.code,(h,P)=>{h!==null?M(h,null):(S.code=P,a())})),S.mapFS&&(b++,B.readFile(S.map,(h,P)=>{h!==null?M(h,null):(S.map=P,a())})),a()})}catch(R){let T=[];try{Re(T,c,{},C,ue)}catch(S){}let A=ye(R,e,j,void 0,"");k(u,{command:"error",flags:T,error:A},()=>{A.detail=j.load(A.detail),M(he("Transform failed",[A],[]),null)})}};if(typeof o=="string"&&o.length>1024*1024){let $=D;D=()=>B.writeFile(o,$)}D(null)},formatMessages:({callName:d,refs:u,messages:o,options:c,callback:C})=>{let B=ce(o,"messages",null,"");if(!c)throw new Error(`Missing second argument in ${d}() call`);let M={},j=n(c,M,"kind",y),D=n(c,M,"color",I),$=n(c,M,"terminalWidth",ge);if(_(c,M,`in ${d}() call`),j===void 0)throw new Error(`Missing "kind" in ${d}() call`);if(j!=="error"&&j!=="warning")throw new Error(`Expected "kind" to be "error" or "warning" in ${d}() call`);let R={command:"format-msgs",messages:B,isWarning:j==="warning"};D!==void 0&&(R.color=D),$!==void 0&&(R.terminalWidth=$),k(u,R,(T,A)=>{if(T)return C(new Error(T),null);C(null,A.messages)})},analyzeMetafile:({callName:d,refs:u,metafile:o,options:c,callback:C})=>{c===void 0&&(c={});let B={},M=n(c,B,"color",I),j=n(c,B,"verbose",I);_(c,B,`in ${d}() call`);let D={command:"analyze-metafile",metafile:o};M!==void 0&&(D.color=M),j!==void 0&&(D.verbose=j),k(u,D,($,R)=>{if($)return C(new Error($),null);C(null,R.result)})}}}}function Ge(){let e=new Map,t=0;return{load(r){return e.get(r)},store(r){if(r===void 0)return-1;let s=t++;return e.set(s,r),s}}}function Oe(e,t,r){let s,g=!1;return()=>{if(g)return s;g=!0;try{let l=(e.stack+"").split(`
2
- `);l.splice(1,1);let f=Qe(t,l,r);if(f)return s={text:e.message,location:f},s}catch(l){}}}function ye(e,t,r,s,g){let l="Internal error",f=null;try{l=(e&&e.message||e)+""}catch(i){}try{f=Qe(t,(e.stack+"").split(`
3
- `),"")}catch(i){}return{pluginName:g,text:l,location:f,notes:s?[s]:[],detail:r?r.store(e):-1}}function Qe(e,t,r){let s=" at ";if(e.readFileSync&&!t[0].startsWith(s)&&t[1].startsWith(s))for(let g=1;g<t.length;g++){let l=t[g];if(!!l.startsWith(s))for(l=l.slice(s.length);;){let f=/^(?:new |async )?\S+ \((.*)\)$/.exec(l);if(f){l=f[1];continue}if(f=/^eval at \S+ \((.*)\)(?:, \S+:\d+:\d+)?$/.exec(l),f){l=f[1];continue}if(f=/^(\S+):(\d+):(\d+)$/.exec(l),f){let i;try{i=e.readFileSync(f[1],"utf8")}catch(N){break}let w=i.split(/\r\n|\r|\n|\u2028|\u2029/)[+f[2]-1]||"",O=+f[3]-1,x=w.slice(O,O+r.length)===r?r.length:0;return{file:f[1],namespace:"file",line:+f[2],column:ae(w.slice(0,O)).length,length:ae(w.slice(O,O+x)).length,lineText:w+`
1
+ var Le=Object.defineProperty,et=Object.defineProperties;var tt=Object.getOwnPropertyDescriptors;var Ue=Object.getOwnPropertySymbols;var rt=Object.prototype.hasOwnProperty,nt=Object.prototype.propertyIsEnumerable;var qe=(e,t,r)=>t in e?Le(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Me=(e,t)=>{for(var r in t||(t={}))rt.call(t,r)&&qe(e,r,t[r]);if(Ue)for(var r of Ue(t))nt.call(t,r)&&qe(e,r,t[r]);return e},Be=(e,t)=>et(e,tt(t));var lt=(e,t)=>{for(var r in t)Le(e,r,{get:t[r],enumerable:!0})};var Ce={};lt(Ce,{analyzeMetafile:()=>vt,analyzeMetafileSync:()=>xt,build:()=>yt,buildSync:()=>Rt,formatMessages:()=>wt,formatMessagesSync:()=>St,initialize:()=>kt,serve:()=>ht,transform:()=>bt,transformSync:()=>Ot,version:()=>mt});function Te(e){let t=o=>{if(o===null)r.write8(0);else if(typeof o=="boolean")r.write8(1),r.write8(+o);else if(typeof o=="number")r.write8(2),r.write32(o|0);else if(typeof o=="string")r.write8(3),r.write(fe(o));else if(o instanceof Uint8Array)r.write8(4),r.write(o);else if(o instanceof Array){r.write8(5),r.write32(o.length);for(let d of o)t(d)}else{let d=Object.keys(o);r.write8(6),r.write32(d.length);for(let i of d)r.write(fe(i)),t(o[i])}},r=new De;return r.write32(0),r.write32(e.id<<1|+!e.isRequest),t(e.value),Fe(r.buf,r.len-4,0),r.buf.subarray(0,r.len)}function We(e){let t=()=>{switch(r.read8()){case 0:return null;case 1:return!!r.read8();case 2:return r.read32();case 3:return de(r.read());case 4:return r.read();case 5:{let c=r.read32(),s=[];for(let y=0;y<c;y++)s.push(t());return s}case 6:{let c=r.read32(),s={};for(let y=0;y<c;y++)s[de(r.read())]=t();return s}default:throw new Error("Invalid packet")}},r=new De(e),o=r.read32(),d=(o&1)===0;o>>>=1;let i=t();if(r.ptr!==e.length)throw new Error("Invalid packet");return{id:o,isRequest:d,value:i}}var De=class{constructor(t=new Uint8Array(1024)){this.buf=t;this.len=0;this.ptr=0}_write(t){if(this.len+t>this.buf.length){let r=new Uint8Array((this.len+t)*2);r.set(this.buf),this.buf=r}return this.len+=t,this.len-t}write8(t){let r=this._write(1);this.buf[r]=t}write32(t){let r=this._write(4);Fe(this.buf,t,r)}write(t){let r=this._write(4+t.length);Fe(this.buf,t.length,r),this.buf.set(t,r+4)}_read(t){if(this.ptr+t>this.buf.length)throw new Error("Invalid packet");return this.ptr+=t,this.ptr-t}read8(){return this.buf[this._read(1)]}read32(){return Ae(this.buf,this._read(4))}read(){let t=this.read32(),r=new Uint8Array(t),o=this._read(r.length);return r.set(this.buf.subarray(o,o+t)),r}},fe,de;if(typeof TextEncoder!="undefined"&&typeof TextDecoder!="undefined"){let e=new TextEncoder,t=new TextDecoder;fe=r=>e.encode(r),de=r=>t.decode(r)}else if(typeof Buffer!="undefined")fe=e=>{let t=Buffer.from(e);return t instanceof Uint8Array||(t=new Uint8Array(t)),t},de=e=>{let{buffer:t,byteOffset:r,byteLength:o}=e;return Buffer.from(t,r,o).toString()};else throw new Error("No UTF-8 codec found");function Ae(e,t){return e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24}function Fe(e,t,r){e[r++]=t,e[r++]=t>>8,e[r++]=t>>16,e[r++]=t>>24}function Ie(e){if(e+="",e.indexOf(",")>=0)throw new Error(`Invalid target: ${e}`);return e}var ve=()=>null,q=e=>typeof e=="boolean"?null:"a boolean",st=e=>typeof e=="boolean"||typeof e=="object"&&!Array.isArray(e)?null:"a boolean or an object",m=e=>typeof e=="string"?null:"a string",ze=e=>e instanceof RegExp?null:"a RegExp object",me=e=>typeof e=="number"&&e===(e|0)?null:"an integer",Ne=e=>typeof e=="function"?null:"a function",V=e=>Array.isArray(e)?null:"an array",ye=e=>typeof e=="object"&&e!==null&&!Array.isArray(e)?null:"an object",ot=e=>typeof e=="object"&&e!==null?null:"an array or an object",Ke=e=>typeof e=="object"&&!Array.isArray(e)?null:"an object or null",_e=e=>typeof e=="string"||typeof e=="boolean"?null:"a string or a boolean",at=e=>typeof e=="string"||typeof e=="object"&&e!==null&&!Array.isArray(e)?null:"a string or an object",ut=e=>typeof e=="string"||Array.isArray(e)?null:"a string or an array",ft=e=>typeof e=="string"||e instanceof Uint8Array?null:"a string or a Uint8Array";function n(e,t,r,o){let d=e[r];if(t[r+""]=!0,d===void 0)return;let i=o(d);if(i!==null)throw new Error(`"${r}" must be ${i}`);return d}function J(e,t,r){for(let o in e)if(!(o in t))throw new Error(`Invalid option ${r}: "${o}"`)}function Ve(e){let t=Object.create(null),r=n(e,t,"wasmURL",m),o=n(e,t,"worker",q);return J(e,t,"in startService() call"),{wasmURL:r,worker:o}}function Re(e,t,r,o,d){let i=n(t,r,"color",q),c=n(t,r,"logLevel",m),s=n(t,r,"logLimit",me);i!==void 0?e.push(`--color=${i}`):o&&e.push("--color=true"),e.push(`--log-level=${c||d}`),e.push(`--log-limit=${s||0}`)}function Je(e,t,r){let o=n(t,r,"legalComments",m),d=n(t,r,"sourceRoot",m),i=n(t,r,"sourcesContent",q),c=n(t,r,"target",ut),s=n(t,r,"format",m),y=n(t,r,"globalName",m),R=n(t,r,"minify",q),T=n(t,r,"minifySyntax",q),C=n(t,r,"minifyWhitespace",q),$=n(t,r,"minifyIdentifiers",q),S=n(t,r,"charset",m),ie=n(t,r,"treeShaking",q),ne=n(t,r,"ignoreAnnotations",q),le=n(t,r,"jsx",m),se=n(t,r,"jsxFactory",m),oe=n(t,r,"jsxFragment",m),ae=n(t,r,"define",ye),ue=n(t,r,"pure",V),ge=n(t,r,"keepNames",q);if(o&&e.push(`--legal-comments=${o}`),d!==void 0&&e.push(`--source-root=${d}`),i!==void 0&&e.push(`--sources-content=${i}`),c&&(Array.isArray(c)?e.push(`--target=${Array.from(c).map(Ie).join(",")}`):e.push(`--target=${Ie(c)}`)),s&&e.push(`--format=${s}`),y&&e.push(`--global-name=${y}`),R&&e.push("--minify"),T&&e.push("--minify-syntax"),C&&e.push("--minify-whitespace"),$&&e.push("--minify-identifiers"),S&&e.push(`--charset=${S}`),ie!==void 0&&e.push(`--tree-shaking=${ie}`),ne&&e.push("--ignore-annotations"),le&&e.push(`--jsx=${le}`),se&&e.push(`--jsx-factory=${se}`),oe&&e.push(`--jsx-fragment=${oe}`),ae)for(let Z in ae){if(Z.indexOf("=")>=0)throw new Error(`Invalid define: ${Z}`);e.push(`--define:${Z}=${ae[Z]}`)}if(ue)for(let Z of ue)e.push(`--pure:${Z}`);ge&&e.push("--keep-names")}function ct(e,t,r,o,d){var h;let i=[],c=[],s=Object.create(null),y=null,R=null,T=null;Re(i,t,s,r,o),Je(i,t,s);let C=n(t,s,"sourcemap",_e),$=n(t,s,"bundle",q),S=n(t,s,"watch",st),ie=n(t,s,"splitting",q),ne=n(t,s,"preserveSymlinks",q),le=n(t,s,"metafile",q),se=n(t,s,"outfile",m),oe=n(t,s,"outdir",m),ae=n(t,s,"outbase",m),ue=n(t,s,"platform",m),ge=n(t,s,"tsconfig",m),Z=n(t,s,"resolveExtensions",V),ke=n(t,s,"nodePaths",V),Ee=n(t,s,"mainFields",V),$e=n(t,s,"conditions",V),p=n(t,s,"external",V),u=n(t,s,"loader",ye),a=n(t,s,"outExtension",ye),f=n(t,s,"publicPath",m),j=n(t,s,"entryNames",m),A=n(t,s,"chunkNames",m),P=n(t,s,"assetNames",m),E=n(t,s,"inject",V),D=n(t,s,"banner",ye),M=n(t,s,"footer",ye),w=n(t,s,"entryPoints",ot),U=n(t,s,"absWorkingDir",m),k=n(t,s,"stdin",ye),O=(h=n(t,s,"write",q))!=null?h:d,ee=n(t,s,"allowOverwrite",q),X=n(t,s,"incremental",q)===!0;if(s.plugins=!0,J(t,s,`in ${e}() call`),C&&i.push(`--sourcemap${C===!0?"":`=${C}`}`),$&&i.push("--bundle"),ee&&i.push("--allow-overwrite"),S)if(i.push("--watch"),typeof S=="boolean")T={};else{let l=Object.create(null),v=n(S,l,"onRebuild",Ne);J(S,l,`on "watch" in ${e}() call`),T={onRebuild:v}}if(ie&&i.push("--splitting"),ne&&i.push("--preserve-symlinks"),le&&i.push("--metafile"),se&&i.push(`--outfile=${se}`),oe&&i.push(`--outdir=${oe}`),ae&&i.push(`--outbase=${ae}`),ue&&i.push(`--platform=${ue}`),ge&&i.push(`--tsconfig=${ge}`),Z){let l=[];for(let v of Z){if(v+="",v.indexOf(",")>=0)throw new Error(`Invalid resolve extension: ${v}`);l.push(v)}i.push(`--resolve-extensions=${l.join(",")}`)}if(f&&i.push(`--public-path=${f}`),j&&i.push(`--entry-names=${j}`),A&&i.push(`--chunk-names=${A}`),P&&i.push(`--asset-names=${P}`),Ee){let l=[];for(let v of Ee){if(v+="",v.indexOf(",")>=0)throw new Error(`Invalid main field: ${v}`);l.push(v)}i.push(`--main-fields=${l.join(",")}`)}if($e){let l=[];for(let v of $e){if(v+="",v.indexOf(",")>=0)throw new Error(`Invalid condition: ${v}`);l.push(v)}i.push(`--conditions=${l.join(",")}`)}if(p)for(let l of p)i.push(`--external:${l}`);if(D)for(let l in D){if(l.indexOf("=")>=0)throw new Error(`Invalid banner file type: ${l}`);i.push(`--banner:${l}=${D[l]}`)}if(M)for(let l in M){if(l.indexOf("=")>=0)throw new Error(`Invalid footer file type: ${l}`);i.push(`--footer:${l}=${M[l]}`)}if(E)for(let l of E)i.push(`--inject:${l}`);if(u)for(let l in u){if(l.indexOf("=")>=0)throw new Error(`Invalid loader extension: ${l}`);i.push(`--loader:${l}=${u[l]}`)}if(a)for(let l in a){if(l.indexOf("=")>=0)throw new Error(`Invalid out extension: ${l}`);i.push(`--out-extension:${l}=${a[l]}`)}if(w)if(Array.isArray(w))for(let l of w)c.push(["",l+""]);else for(let[l,v]of Object.entries(w))c.push([l+"",v+""]);if(k){let l=Object.create(null),v=n(k,l,"contents",m),W=n(k,l,"resolveDir",m),L=n(k,l,"sourcefile",m),b=n(k,l,"loader",m);J(k,l,'in "stdin" object'),L&&i.push(`--sourcefile=${L}`),b&&i.push(`--loader=${b}`),W&&(R=W+""),y=v?v+"":""}let x=[];if(ke)for(let l of ke)l+="",x.push(l);return{entries:c,flags:i,write:O,stdinContents:y,stdinResolveDir:R,absWorkingDir:U,incremental:X,nodePaths:x,watch:T}}function dt(e,t,r,o){let d=[],i=Object.create(null);Re(d,t,i,r,o),Je(d,t,i);let c=n(t,i,"sourcemap",_e),s=n(t,i,"tsconfigRaw",at),y=n(t,i,"sourcefile",m),R=n(t,i,"loader",m),T=n(t,i,"banner",m),C=n(t,i,"footer",m);return J(t,i,`in ${e}() call`),c&&d.push(`--sourcemap=${c===!0?"external":c}`),s&&d.push(`--tsconfig-raw=${typeof s=="string"?s:JSON.stringify(s)}`),y&&d.push(`--sourcefile=${y}`),R&&d.push(`--loader=${R}`),T&&d.push(`--banner=${T}`),C&&d.push(`--footer=${C}`),d}function Ye(e){let t=new Map,r=new Map,o=new Map,d=new Map,i=!1,c=0,s=0,y=new Uint8Array(16*1024),R=0,T=p=>{let u=R+p.length;if(u>y.length){let f=new Uint8Array(u*2);f.set(y),y=f}y.set(p,R),R+=p.length;let a=0;for(;a+4<=R;){let f=Ae(y,a);if(a+4+f>R)break;a+=4,le(y.subarray(a,a+f)),a+=f}a>0&&(y.copyWithin(0,a,R),R-=a)},C=()=>{i=!0;for(let p of t.values())p("The service was stopped",null);t.clear();for(let p of d.values())p.onWait("The service was stopped");d.clear();for(let p of o.values())try{p(new Error("The service was stopped"),null)}catch(u){console.error(u)}o.clear()},$=(p,u,a)=>{if(i)return a("The service is no longer running",null);let f=c++;t.set(f,(j,A)=>{try{a(j,A)}finally{p&&p.unref()}}),p&&p.ref(),e.writeToStdin(Te({id:f,isRequest:!0,value:u}))},S=(p,u)=>{if(i)throw new Error("The service is no longer running");e.writeToStdin(Te({id:p,isRequest:!1,value:u}))},ie=async(p,u)=>{try{switch(u.command){case"ping":{S(p,{});break}case"on-start":{let a=r.get(u.key);a?S(p,await a(u)):S(p,{});break}case"on-resolve":{let a=r.get(u.key);a?S(p,await a(u)):S(p,{});break}case"on-load":{let a=r.get(u.key);a?S(p,await a(u)):S(p,{});break}case"serve-request":{let a=d.get(u.key);a&&a.onRequest&&a.onRequest(u.args),S(p,{});break}case"serve-wait":{let a=d.get(u.key);a&&a.onWait(u.error),S(p,{});break}case"watch-rebuild":{let a=o.get(u.key);try{a&&a(null,u.args)}catch(f){console.error(f)}S(p,{});break}default:throw new Error("Invalid command: "+u.command)}}catch(a){S(p,{errors:[he(a,e,null,void 0,"")]})}},ne=!0,le=p=>{if(ne){ne=!1;let a=String.fromCharCode(...p);if(a!=="0.14.8")throw new Error(`Cannot start service: Host version "0.14.8" does not match binary version ${JSON.stringify(a)}`);return}let u=We(p);if(u.isRequest)ie(u.id,u.value);else{let a=t.get(u.id);t.delete(u.id),u.value.error?a(u.value.error,{}):a(null,u.value)}},se=async(p,u,a,f,j)=>{let A=[],P=[],E={},D={},M=0,w=0,U=[],k=!1;u=[...u];for(let x of u){let h={};if(typeof x!="object")throw new Error(`Plugin at index ${w} must be an object`);let l=n(x,h,"name",m);if(typeof l!="string"||l==="")throw new Error(`Plugin at index ${w} is missing a name`);try{let v=n(x,h,"setup",Ne);if(typeof v!="function")throw new Error("Plugin is missing a setup function");J(x,h,`on plugin ${JSON.stringify(l)}`);let W={name:l,onResolve:[],onLoad:[]};w++;let b=v({initialOptions:p,resolve:(g,F={})=>{if(!k)throw new Error('Cannot call "resolve" before plugin setup has completed');if(typeof g!="string")throw new Error("The path to resolve must be a string");let N=Object.create(null),_=n(F,N,"importer",m),I=n(F,N,"namespace",m),Y=n(F,N,"resolveDir",m),G=n(F,N,"kind",m),B=n(F,N,"pluginData",ve);return J(F,N,"in resolve() call"),new Promise((H,z)=>{let K={command:"resolve",path:g,key:a,pluginName:l};_!=null&&(K.importer=_),I!=null&&(K.namespace=I),Y!=null&&(K.resolveDir=Y),G!=null&&(K.kind=G),B!=null&&(K.pluginData=f.store(B)),$(j,K,(te,Q)=>{te!==null?z(new Error(te)):H({errors:ce(Q.errors,f),warnings:ce(Q.warnings,f),path:Q.path,external:Q.external,sideEffects:Q.sideEffects,namespace:Q.namespace,suffix:Q.suffix,pluginData:f.load(Q.pluginData)})})})},onStart(g){let F='This error came from the "onStart" callback registered here:',N=Oe(new Error(F),e,"onStart");A.push({name:l,callback:g,note:N})},onEnd(g){let F='This error came from the "onEnd" callback registered here:',N=Oe(new Error(F),e,"onEnd");P.push({name:l,callback:g,note:N})},onResolve(g,F){let N='This error came from the "onResolve" callback registered here:',_=Oe(new Error(N),e,"onResolve"),I={},Y=n(g,I,"filter",ze),G=n(g,I,"namespace",m);if(J(g,I,`in onResolve() call for plugin ${JSON.stringify(l)}`),Y==null)throw new Error("onResolve() call is missing a filter");let B=M++;E[B]={name:l,callback:F,note:_},W.onResolve.push({id:B,filter:Y.source,namespace:G||""})},onLoad(g,F){let N='This error came from the "onLoad" callback registered here:',_=Oe(new Error(N),e,"onLoad"),I={},Y=n(g,I,"filter",ze),G=n(g,I,"namespace",m);if(J(g,I,`in onLoad() call for plugin ${JSON.stringify(l)}`),Y==null)throw new Error("onLoad() call is missing a filter");let B=M++;D[B]={name:l,callback:F,note:_},W.onLoad.push({id:B,filter:Y.source,namespace:G||""})},esbuild:e.esbuild});b&&await b,U.push(W)}catch(v){return{ok:!1,error:v,pluginName:l}}}let O=async x=>{switch(x.command){case"on-start":{let h={errors:[],warnings:[]};return await Promise.all(A.map(async({name:l,callback:v,note:W})=>{try{let L=await v();if(L!=null){if(typeof L!="object")throw new Error(`Expected onStart() callback in plugin ${JSON.stringify(l)} to return an object`);let b={},g=n(L,b,"errors",V),F=n(L,b,"warnings",V);J(L,b,`from onStart() callback in plugin ${JSON.stringify(l)}`),g!=null&&h.errors.push(...pe(g,"errors",f,l)),F!=null&&h.warnings.push(...pe(F,"warnings",f,l))}}catch(L){h.errors.push(he(L,e,f,W&&W(),l))}})),h}case"on-resolve":{let h={},l="",v,W;for(let L of x.ids)try{({name:l,callback:v,note:W}=E[L]);let b=await v({path:x.path,importer:x.importer,namespace:x.namespace,resolveDir:x.resolveDir,kind:x.kind,pluginData:f.load(x.pluginData)});if(b!=null){if(typeof b!="object")throw new Error(`Expected onResolve() callback in plugin ${JSON.stringify(l)} to return an object`);let g={},F=n(b,g,"pluginName",m),N=n(b,g,"path",m),_=n(b,g,"namespace",m),I=n(b,g,"suffix",m),Y=n(b,g,"external",q),G=n(b,g,"sideEffects",q),B=n(b,g,"pluginData",ve),H=n(b,g,"errors",V),z=n(b,g,"warnings",V),K=n(b,g,"watchFiles",V),te=n(b,g,"watchDirs",V);J(b,g,`from onResolve() callback in plugin ${JSON.stringify(l)}`),h.id=L,F!=null&&(h.pluginName=F),N!=null&&(h.path=N),_!=null&&(h.namespace=_),I!=null&&(h.suffix=I),Y!=null&&(h.external=Y),G!=null&&(h.sideEffects=G),B!=null&&(h.pluginData=f.store(B)),H!=null&&(h.errors=pe(H,"errors",f,l)),z!=null&&(h.warnings=pe(z,"warnings",f,l)),K!=null&&(h.watchFiles=Se(K,"watchFiles")),te!=null&&(h.watchDirs=Se(te,"watchDirs"));break}}catch(b){return{id:L,errors:[he(b,e,f,W&&W(),l)]}}return h}case"on-load":{let h={},l="",v,W;for(let L of x.ids)try{({name:l,callback:v,note:W}=D[L]);let b=await v({path:x.path,namespace:x.namespace,suffix:x.suffix,pluginData:f.load(x.pluginData)});if(b!=null){if(typeof b!="object")throw new Error(`Expected onLoad() callback in plugin ${JSON.stringify(l)} to return an object`);let g={},F=n(b,g,"pluginName",m),N=n(b,g,"contents",ft),_=n(b,g,"resolveDir",m),I=n(b,g,"pluginData",ve),Y=n(b,g,"loader",m),G=n(b,g,"errors",V),B=n(b,g,"warnings",V),H=n(b,g,"watchFiles",V),z=n(b,g,"watchDirs",V);J(b,g,`from onLoad() callback in plugin ${JSON.stringify(l)}`),h.id=L,F!=null&&(h.pluginName=F),N instanceof Uint8Array?h.contents=N:N!=null&&(h.contents=fe(N)),_!=null&&(h.resolveDir=_),I!=null&&(h.pluginData=f.store(I)),Y!=null&&(h.loader=Y),G!=null&&(h.errors=pe(G,"errors",f,l)),B!=null&&(h.warnings=pe(B,"warnings",f,l)),H!=null&&(h.watchFiles=Se(H,"watchFiles")),z!=null&&(h.watchDirs=Se(z,"watchDirs"));break}}catch(b){return{id:L,errors:[he(b,e,f,W&&W(),l)]}}return h}default:throw new Error("Invalid command: "+x.command)}},ee=(x,h,l)=>l();P.length>0&&(ee=(x,h,l)=>{(async()=>{for(let{name:v,callback:W,note:L}of P)try{await W(x)}catch(b){x.errors.push(await new Promise(g=>h(b,v,L&&L(),g)))}})().then(l)}),k=!0;let X=0;return{ok:!0,requestPlugins:U,runOnEndCallbacks:ee,pluginRefs:{ref(){++X===1&&r.set(a,O)},unref(){--X===0&&r.delete(a)}}}},oe=(p,u,a,f)=>{let j={},A=n(u,j,"port",me),P=n(u,j,"host",m),E=n(u,j,"servedir",m),D=n(u,j,"onRequest",Ne),M,w=new Promise((U,k)=>{M=O=>{d.delete(f),O!==null?k(new Error(O)):U()}});return a.serve={},J(u,j,"in serve() call"),A!==void 0&&(a.serve.port=A),P!==void 0&&(a.serve.host=P),E!==void 0&&(a.serve.servedir=E),d.set(f,{onRequest:D,onWait:M}),{wait:w,stop(){$(p,{command:"serve-stop",key:f},()=>{})}}},ae="warning",ue="silent",ge=p=>{let u=s++,a=He(),f,{refs:j,options:A,isTTY:P,callback:E}=p;if(typeof A=="object"){let w=A.plugins;if(w!==void 0){if(!Array.isArray(w))throw new Error('"plugins" must be an array');f=w}}let D=(w,U,k,O)=>{let ee=[];try{Re(ee,A,{},P,ae)}catch(x){}let X=he(w,e,a,k,U);$(j,{command:"error",flags:ee,error:X},()=>{X.detail=a.load(X.detail),O(X)})},M=(w,U)=>{D(w,U,void 0,k=>{E(be("Build failed",[k],[]),null)})};if(f&&f.length>0){if(e.isSync)return M(new Error("Cannot use plugins in synchronous API calls"),"");se(A,f,u,a,j).then(w=>{if(!w.ok)M(w.error,w.pluginName);else try{Z(Be(Me({},p),{key:u,details:a,logPluginError:D,requestPlugins:w.requestPlugins,runOnEndCallbacks:w.runOnEndCallbacks,pluginRefs:w.pluginRefs}))}catch(U){M(U,"")}},w=>M(w,""))}else try{Z(Be(Me({},p),{key:u,details:a,logPluginError:D,requestPlugins:null,runOnEndCallbacks:(w,U,k)=>k(),pluginRefs:null}))}catch(w){M(w,"")}},Z=({callName:p,refs:u,serveOptions:a,options:f,isTTY:j,defaultWD:A,callback:P,key:E,details:D,logPluginError:M,requestPlugins:w,runOnEndCallbacks:U,pluginRefs:k})=>{let O={ref(){k&&k.ref(),u&&u.ref()},unref(){k&&k.unref(),u&&u.unref()}},ee=!e.isBrowser,{entries:X,flags:x,write:h,stdinContents:l,stdinResolveDir:v,absWorkingDir:W,incremental:L,nodePaths:b,watch:g}=ct(p,f,j,ae,ee),F={command:"build",key:E,entries:X,flags:x,write:h,stdinContents:l,stdinResolveDir:v,absWorkingDir:W||A,incremental:L,nodePaths:b};w&&(F.plugins=w);let N=a&&oe(O,a,F,E),_,I,Y=(B,H)=>{B.outputFiles&&(H.outputFiles=B.outputFiles.map(pt)),B.metafile&&(H.metafile=JSON.parse(B.metafile)),B.writeToStdout!==void 0&&console.log(de(B.writeToStdout).replace(/\n$/,""))},G=(B,H)=>{let z={errors:ce(B.errors,D),warnings:ce(B.warnings,D)};Y(B,z),U(z,M,()=>{if(z.errors.length>0)return H(be("Build failed",z.errors,z.warnings),null);if(B.rebuild){if(!_){let K=!1;_=()=>new Promise((te,Q)=>{if(K||i)throw new Error("Cannot rebuild");$(O,{command:"rebuild",key:E},(re,Xe)=>{if(re)return H(be("Build failed",[{pluginName:"",text:re,location:null,notes:[],detail:void 0}],[]),null);G(Xe,(Pe,Ze)=>{Pe?Q(Pe):te(Ze)})})}),O.ref(),_.dispose=()=>{K||(K=!0,$(O,{command:"rebuild-dispose",key:E},()=>{}),O.unref())}}z.rebuild=_}if(B.watch){if(!I){let K=!1;O.ref(),I=()=>{K||(K=!0,o.delete(E),$(O,{command:"watch-stop",key:E},()=>{}),O.unref())},g&&o.set(E,(te,Q)=>{if(te){g.onRebuild&&g.onRebuild(te,null);return}let re={errors:ce(Q.errors,D),warnings:ce(Q.warnings,D)};Y(Q,re),U(re,M,()=>{if(re.errors.length>0){g.onRebuild&&g.onRebuild(be("Build failed",re.errors,re.warnings),null);return}Q.rebuildID!==void 0&&(re.rebuild=_),re.stop=I,g.onRebuild&&g.onRebuild(null,re)})})}z.stop=I}H(null,z)})};if(h&&e.isBrowser)throw new Error('Cannot enable "write" in the browser');if(L&&e.isSync)throw new Error('Cannot use "incremental" with a synchronous build');if(g&&e.isSync)throw new Error('Cannot use "watch" with a synchronous build');$(O,F,(B,H)=>{if(B)return P(new Error(B),null);if(N){let z=H,K=!1;O.ref();let te={port:z.port,host:z.host,wait:N.wait,stop(){K||(K=!0,N.stop(),O.unref())}};return O.ref(),N.wait.then(O.unref,O.unref),P(null,te)}return G(H,P)})};return{readFromStdout:T,afterClose:C,service:{buildOrServe:ge,transform:({callName:p,refs:u,input:a,options:f,isTTY:j,fs:A,callback:P})=>{let E=He(),D=M=>{try{if(typeof a!="string")throw new Error('The input to "transform" must be a string');let w=dt(p,f,j,ue);$(u,{command:"transform",flags:w,inputFS:M!==null,input:M!==null?M:a},(k,O)=>{if(k)return P(new Error(k),null);let ee=ce(O.errors,E),X=ce(O.warnings,E),x=1,h=()=>--x===0&&P(null,{warnings:X,code:O.code,map:O.map});if(ee.length>0)return P(be("Transform failed",ee,X),null);O.codeFS&&(x++,A.readFile(O.code,(l,v)=>{l!==null?P(l,null):(O.code=v,h())})),O.mapFS&&(x++,A.readFile(O.map,(l,v)=>{l!==null?P(l,null):(O.map=v,h())})),h()})}catch(w){let U=[];try{Re(U,f,{},j,ue)}catch(O){}let k=he(w,e,E,void 0,"");$(u,{command:"error",flags:U,error:k},()=>{k.detail=E.load(k.detail),P(be("Transform failed",[k],[]),null)})}};if(typeof a=="string"&&a.length>1024*1024){let M=D;D=()=>A.writeFile(a,M)}D(null)},formatMessages:({callName:p,refs:u,messages:a,options:f,callback:j})=>{let A=pe(a,"messages",null,"");if(!f)throw new Error(`Missing second argument in ${p}() call`);let P={},E=n(f,P,"kind",m),D=n(f,P,"color",q),M=n(f,P,"terminalWidth",me);if(J(f,P,`in ${p}() call`),E===void 0)throw new Error(`Missing "kind" in ${p}() call`);if(E!=="error"&&E!=="warning")throw new Error(`Expected "kind" to be "error" or "warning" in ${p}() call`);let w={command:"format-msgs",messages:A,isWarning:E==="warning"};D!==void 0&&(w.color=D),M!==void 0&&(w.terminalWidth=M),$(u,w,(U,k)=>{if(U)return j(new Error(U),null);j(null,k.messages)})},analyzeMetafile:({callName:p,refs:u,metafile:a,options:f,callback:j})=>{f===void 0&&(f={});let A={},P=n(f,A,"color",q),E=n(f,A,"verbose",q);J(f,A,`in ${p}() call`);let D={command:"analyze-metafile",metafile:a};P!==void 0&&(D.color=P),E!==void 0&&(D.verbose=E),$(u,D,(M,w)=>{if(M)return j(new Error(M),null);j(null,w.result)})}}}}function He(){let e=new Map,t=0;return{load(r){return e.get(r)},store(r){if(r===void 0)return-1;let o=t++;return e.set(o,r),o}}}function Oe(e,t,r){let o,d=!1;return()=>{if(d)return o;d=!0;try{let i=(e.stack+"").split(`
2
+ `);i.splice(1,1);let c=Ge(t,i,r);if(c)return o={text:e.message,location:c},o}catch(i){}}}function he(e,t,r,o,d){let i="Internal error",c=null;try{i=(e&&e.message||e)+""}catch(s){}try{c=Ge(t,(e.stack+"").split(`
3
+ `),"")}catch(s){}return{pluginName:d,text:i,location:c,notes:o?[o]:[],detail:r?r.store(e):-1}}function Ge(e,t,r){let o=" at ";if(e.readFileSync&&!t[0].startsWith(o)&&t[1].startsWith(o))for(let d=1;d<t.length;d++){let i=t[d];if(!!i.startsWith(o))for(i=i.slice(o.length);;){let c=/^(?:new |async )?\S+ \((.*)\)$/.exec(i);if(c){i=c[1];continue}if(c=/^eval at \S+ \((.*)\)(?:, \S+:\d+:\d+)?$/.exec(i),c){i=c[1];continue}if(c=/^(\S+):(\d+):(\d+)$/.exec(i),c){let s;try{s=e.readFileSync(c[1],"utf8")}catch(C){break}let y=s.split(/\r\n|\r|\n|\u2028|\u2029/)[+c[2]-1]||"",R=+c[3]-1,T=y.slice(R,R+r.length)===r?r.length:0;return{file:c[1],namespace:"file",line:+c[2],column:fe(y.slice(0,R)).length,length:fe(y.slice(R,R+T)).length,lineText:y+`
4
4
  `+t.slice(1).join(`
5
- `),suggestion:""}}break}}return null}function he(e,t,r){let s=5,g=t.length<1?"":` with ${t.length} error${t.length<2?"":"s"}:`+t.slice(0,s+1).map((f,i)=>{if(i===s)return`
6
- ...`;if(!f.location)return`
7
- error: ${f.text}`;let{file:w,line:O,column:x}=f.location,N=f.pluginName?`[plugin: ${f.pluginName}] `:"";return`
8
- ${w}:${O}:${x}: ERROR: ${N}${f.text}`}).join(""),l=new Error(`${e}${g}`);return l.errors=t,l.warnings=r,l}function be(e,t){for(let r of e)r.detail=t.load(r.detail);return e}function Xe(e,t){if(e==null)return null;let r={},s=n(e,r,"file",y),g=n(e,r,"namespace",y),l=n(e,r,"line",ge),f=n(e,r,"column",ge),i=n(e,r,"length",ge),w=n(e,r,"lineText",y),O=n(e,r,"suggestion",y);return _(e,r,t),{file:s||"",namespace:g||"",line:l||0,column:f||0,length:i||0,lineText:w||"",suggestion:O||""}}function ce(e,t,r,s){let g=[],l=0;for(let f of e){let i={},w=n(f,i,"pluginName",y),O=n(f,i,"text",y),x=n(f,i,"location",_e),N=n(f,i,"notes",z),L=n(f,i,"detail",je),k=`in element ${l} of "${t}"`;_(f,i,k);let q=[];if(N)for(let ee of N){let Q={},te=n(ee,Q,"text",y),re=n(ee,Q,"location",_e);_(ee,Q,k),q.push({text:te||"",location:Xe(re,k)})}g.push({pluginName:w||s,text:O||"",location:Xe(x,k),notes:q,detail:r?r.store(L):-1}),l++}return g}function Se(e,t){let r=[];for(let s of e){if(typeof s!="string")throw new Error(`${JSON.stringify(t)} must be an array of strings`);r.push(s)}return r}function mt({path:e,contents:t}){let r=null;return{path:e,contents:t,get text(){return r===null&&(r=fe(t)),r}}}var ht="0.14.3",bt=e=>xe().build(e),wt=()=>{throw new Error('The "serve" API only works in node')},vt=(e,t)=>xe().transform(e,t),Rt=(e,t)=>xe().formatMessages(e,t),Ot=(e,t)=>xe().analyzeMetafile(e,t),St=()=>{throw new Error('The "buildSync" API only works in node')},xt=()=>{throw new Error('The "transformSync" API only works in node')},kt=()=>{throw new Error('The "formatMessagesSync" API only works in node')},Et=()=>{throw new Error('The "analyzeMetafileSync" API only works in node')},we,Ie,xe=()=>{if(Ie)return Ie;throw we?new Error('You need to wait for the promise returned from "initialize" to be resolved before calling this'):new Error('You need to call "initialize" before calling this')},$t=e=>{e=Je(e||{});let t=e.wasmURL,r=e.worker!==!1;if(!t)throw new Error('Must provide the "wasmURL" option');if(t+="",we)throw new Error('Cannot call "initialize" more than once');return we=Dt(t,r),we.catch(()=>{we=void 0}),we},Dt=async(e,t)=>{let r=await fetch(e);if(!r.ok)throw new Error(`Failed to download ${JSON.stringify(e)}`);let s=await r.arrayBuffer(),g='{let global={};for(let o=self;o;o=Object.getPrototypeOf(o))for(let k of Object.getOwnPropertyNames(o))if(!(k in global))Object.defineProperty(global,k,{get:()=>self[k]});\n// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n(()=>{if(typeof global=="undefined")if(typeof window!="undefined")window.global=window;else if(typeof self!="undefined")self.global=self;else throw new Error("cannot export Go (neither global, window nor self is defined)");if(!global.require&&typeof require!="undefined"&&(global.require=require),!global.fs&&global.require){const r=require("fs");typeof r=="object"&&r!==null&&Object.keys(r).length!==0&&(global.fs=Object.assign({},r,{write(n,s,i,l,d,u){if(i===0&&l===s.length&&d===null){if(n===process.stdout.fd){try{process.stdout.write(s,h=>h?u(h,0,null):u(null,l,s))}catch(h){u(h,0,null)}return}if(n===process.stderr.fd){try{process.stderr.write(s,h=>h?u(h,0,null):u(null,l,s))}catch(h){u(h,0,null)}return}}r.write(n,s,i,l,d,u)}}))}const a=()=>{const r=new Error("not implemented");return r.code="ENOSYS",r};if(!global.fs){let r="";global.fs={constants:{O_WRONLY:-1,O_RDWR:-1,O_CREAT:-1,O_TRUNC:-1,O_APPEND:-1,O_EXCL:-1},writeSync(n,s){r+=g.decode(s);const i=r.lastIndexOf(`\n`);return i!=-1&&(console.log(r.substr(0,i)),r=r.substr(i+1)),s.length},write(n,s,i,l,d,u){if(i!==0||l!==s.length||d!==null){u(a());return}const h=this.writeSync(n,s);u(null,h)},chmod(n,s,i){i(a())},chown(n,s,i,l){l(a())},close(n,s){s(a())},fchmod(n,s,i){i(a())},fchown(n,s,i,l){l(a())},fstat(n,s){s(a())},fsync(n,s){s(null)},ftruncate(n,s,i){i(a())},lchown(n,s,i,l){l(a())},link(n,s,i){i(a())},lstat(n,s){s(a())},mkdir(n,s,i){i(a())},open(n,s,i,l){l(a())},read(n,s,i,l,d,u){u(a())},readdir(n,s){s(a())},readlink(n,s){s(a())},rename(n,s,i){i(a())},rmdir(n,s){s(a())},stat(n,s){s(a())},symlink(n,s,i){i(a())},truncate(n,s,i){i(a())},unlink(n,s){s(a())},utimes(n,s,i,l){l(a())}}}if(global.process||(global.process={getuid(){return-1},getgid(){return-1},geteuid(){return-1},getegid(){return-1},getgroups(){throw a()},pid:-1,ppid:-1,umask(){throw a()},cwd(){throw a()},chdir(){throw a()}}),!global.crypto&&global.require){const r=require("crypto");global.crypto={getRandomValues(n){r.randomFillSync(n)}}}if(!global.crypto)throw new Error("global.crypto is not available, polyfill required (getRandomValues only)");if(global.performance||(global.performance={now(){const[r,n]=process.hrtime();return r*1e3+n/1e6}}),!global.TextEncoder&&global.require&&(global.TextEncoder=require("util").TextEncoder),!global.TextEncoder)throw new Error("global.TextEncoder is not available, polyfill required");if(!global.TextDecoder&&global.require&&(global.TextDecoder=require("util").TextDecoder),!global.TextDecoder)throw new Error("global.TextDecoder is not available, polyfill required");const f=new TextEncoder("utf-8"),g=new TextDecoder("utf-8");if(global.Go=class{constructor(){this.argv=["js"],this.env={},this.exit=e=>{e!==0&&console.warn("exit code:",e)},this._exitPromise=new Promise(e=>{this._resolveExitPromise=e}),this._pendingEvent=null,this._scheduledTimeouts=new Map,this._nextCallbackTimeoutID=1;const r=(e,t)=>{this.mem.setUint32(e+0,t,!0),this.mem.setUint32(e+4,Math.floor(t/4294967296),!0)},n=e=>{const t=this.mem.getUint32(e+0,!0),o=this.mem.getInt32(e+4,!0);return t+o*4294967296},s=e=>{const t=this.mem.getFloat64(e,!0);if(t===0)return;if(!isNaN(t))return t;const o=this.mem.getUint32(e,!0);return this._values[o]},i=(e,t)=>{const o=2146959360;if(typeof t=="number"&&t!==0){if(isNaN(t)){this.mem.setUint32(e+4,o,!0),this.mem.setUint32(e,0,!0);return}this.mem.setFloat64(e,t,!0);return}if(t===void 0){this.mem.setFloat64(e,0,!0);return}let c=this._ids.get(t);c===void 0&&(c=this._idPool.pop(),c===void 0&&(c=this._values.length),this._values[c]=t,this._goRefCounts[c]=0,this._ids.set(t,c)),this._goRefCounts[c]++;let m=0;switch(typeof t){case"object":t!==null&&(m=1);break;case"string":m=2;break;case"symbol":m=3;break;case"function":m=4;break}this.mem.setUint32(e+4,o|m,!0),this.mem.setUint32(e,c,!0)},l=e=>{const t=n(e+0),o=n(e+8);return new Uint8Array(this._inst.exports.mem.buffer,t,o)},d=e=>{const t=n(e+0),o=n(e+8),c=new Array(o);for(let m=0;m<o;m++)c[m]=s(t+m*8);return c},u=e=>{const t=n(e+0),o=n(e+8);return g.decode(new DataView(this._inst.exports.mem.buffer,t,o))},h=Date.now()-performance.now();this.importObject={go:{"runtime.wasmExit":e=>{e>>>=0;const t=this.mem.getInt32(e+8,!0);this.exited=!0,delete this._inst,delete this._values,delete this._goRefCounts,delete this._ids,delete this._idPool,this.exit(t)},"runtime.wasmWrite":e=>{e>>>=0;const t=n(e+8),o=n(e+16),c=this.mem.getInt32(e+24,!0);fs.writeSync(t,new Uint8Array(this._inst.exports.mem.buffer,o,c))},"runtime.resetMemoryDataView":e=>{e>>>=0,this.mem=new DataView(this._inst.exports.mem.buffer)},"runtime.nanotime1":e=>{e>>>=0,r(e+8,(h+performance.now())*1e6)},"runtime.walltime":e=>{e>>>=0;const t=new Date().getTime();r(e+8,t/1e3),this.mem.setInt32(e+16,t%1e3*1e6,!0)},"runtime.scheduleTimeoutEvent":e=>{e>>>=0;const t=this._nextCallbackTimeoutID;this._nextCallbackTimeoutID++,this._scheduledTimeouts.set(t,setTimeout(()=>{for(this._resume();this._scheduledTimeouts.has(t);)console.warn("scheduleTimeoutEvent: missed timeout event"),this._resume()},n(e+8)+1)),this.mem.setInt32(e+16,t,!0)},"runtime.clearTimeoutEvent":e=>{e>>>=0;const t=this.mem.getInt32(e+8,!0);clearTimeout(this._scheduledTimeouts.get(t)),this._scheduledTimeouts.delete(t)},"runtime.getRandomData":e=>{e>>>=0,crypto.getRandomValues(l(e+8))},"syscall/js.finalizeRef":e=>{e>>>=0;const t=this.mem.getUint32(e+8,!0);if(this._goRefCounts[t]--,this._goRefCounts[t]===0){const o=this._values[t];this._values[t]=null,this._ids.delete(o),this._idPool.push(t)}},"syscall/js.stringVal":e=>{e>>>=0,i(e+24,u(e+8))},"syscall/js.valueGet":e=>{e>>>=0;const t=Reflect.get(s(e+8),u(e+16));e=this._inst.exports.getsp()>>>0,i(e+32,t)},"syscall/js.valueSet":e=>{e>>>=0,Reflect.set(s(e+8),u(e+16),s(e+32))},"syscall/js.valueDelete":e=>{e>>>=0,Reflect.deleteProperty(s(e+8),u(e+16))},"syscall/js.valueIndex":e=>{e>>>=0,i(e+24,Reflect.get(s(e+8),n(e+16)))},"syscall/js.valueSetIndex":e=>{e>>>=0,Reflect.set(s(e+8),n(e+16),s(e+24))},"syscall/js.valueCall":e=>{e>>>=0;try{const t=s(e+8),o=Reflect.get(t,u(e+16)),c=d(e+32),m=Reflect.apply(o,t,c);e=this._inst.exports.getsp()>>>0,i(e+56,m),this.mem.setUint8(e+64,1)}catch(t){e=this._inst.exports.getsp()>>>0,i(e+56,t),this.mem.setUint8(e+64,0)}},"syscall/js.valueInvoke":e=>{e>>>=0;try{const t=s(e+8),o=d(e+16),c=Reflect.apply(t,void 0,o);e=this._inst.exports.getsp()>>>0,i(e+40,c),this.mem.setUint8(e+48,1)}catch(t){e=this._inst.exports.getsp()>>>0,i(e+40,t),this.mem.setUint8(e+48,0)}},"syscall/js.valueNew":e=>{e>>>=0;try{const t=s(e+8),o=d(e+16),c=Reflect.construct(t,o);e=this._inst.exports.getsp()>>>0,i(e+40,c),this.mem.setUint8(e+48,1)}catch(t){e=this._inst.exports.getsp()>>>0,i(e+40,t),this.mem.setUint8(e+48,0)}},"syscall/js.valueLength":e=>{e>>>=0,r(e+16,parseInt(s(e+8).length))},"syscall/js.valuePrepareString":e=>{e>>>=0;const t=f.encode(String(s(e+8)));i(e+16,t),r(e+24,t.length)},"syscall/js.valueLoadString":e=>{e>>>=0;const t=s(e+8);l(e+16).set(t)},"syscall/js.valueInstanceOf":e=>{e>>>=0,this.mem.setUint8(e+24,s(e+8)instanceof s(e+16)?1:0)},"syscall/js.copyBytesToGo":e=>{e>>>=0;const t=l(e+8),o=s(e+32);if(!(o instanceof Uint8Array||o instanceof Uint8ClampedArray)){this.mem.setUint8(e+48,0);return}const c=o.subarray(0,t.length);t.set(c),r(e+40,c.length),this.mem.setUint8(e+48,1)},"syscall/js.copyBytesToJS":e=>{e>>>=0;const t=s(e+8),o=l(e+16);if(!(t instanceof Uint8Array||t instanceof Uint8ClampedArray)){this.mem.setUint8(e+48,0);return}const c=o.subarray(0,t.length);t.set(c),r(e+40,c.length),this.mem.setUint8(e+48,1)},debug:e=>{console.log(e)}}}}async run(r){if(!(r instanceof WebAssembly.Instance))throw new Error("Go.run: WebAssembly.Instance expected");this._inst=r,this.mem=new DataView(this._inst.exports.mem.buffer),this._values=[NaN,0,null,!0,!1,global,this],this._goRefCounts=new Array(this._values.length).fill(1/0),this._ids=new Map([[0,1],[null,2],[!0,3],[!1,4],[global,5],[this,6]]),this._idPool=[],this.exited=!1;let n=4096;const s=e=>{const t=n,o=f.encode(e+"\\0");return new Uint8Array(this.mem.buffer,n,o.length).set(o),n+=o.length,n%8!=0&&(n+=8-n%8),t},i=this.argv.length,l=[];this.argv.forEach(e=>{l.push(s(e))}),l.push(0),Object.keys(this.env).sort().forEach(e=>{l.push(s(`${e}=${this.env[e]}`))}),l.push(0);const u=n;l.forEach(e=>{this.mem.setUint32(n,e,!0),this.mem.setUint32(n+4,0,!0),n+=8});const h=4096+8192;if(n>=h)throw new Error("total length of command line and environment variables exceeds limit");this._inst.exports.run(i,u),this.exited&&this._resolveExitPromise(),await this._exitPromise}_resume(){if(this.exited)throw new Error("Go program has already exited");this._inst.exports.resume(),this.exited&&this._resolveExitPromise()}_makeFuncWrapper(r){const n=this;return function(){const s={id:r,this:this,args:arguments};return n._pendingEvent=s,n._resume(),s.result}}},typeof module!="undefined"&&global.require&&global.require.main===module&&global.process&&global.process.versions&&!global.process.versions.electron){process.argv.length<3&&(console.error("usage: go_js_wasm_exec [wasm binary] [arguments]"),process.exit(1));const r=new Go;r.argv=process.argv.slice(2),r.env=Object.assign({TMPDIR:require("os").tmpdir()},process.env),r.exit=process.exit,WebAssembly.instantiate(fs.readFileSync(process.argv[2]),r.importObject).then(n=>(process.on("exit",s=>{s===0&&!r.exited&&(r._pendingEvent={id:0},r._resume())}),r.run(n.instance))).catch(n=>{console.error(n),process.exit(1)})}})();\nonmessage=({data:c})=>{let y=new TextDecoder,s=global.fs,a="";s.writeSync=(e,t)=>{if(e===1)postMessage(t);else if(e===2){a+=y.decode(t);let n=a.split(`\n`);n.length>1&&console.log(n.slice(0,-1).join(`\n`)),a=n[n.length-1]}else throw new Error("Bad write");return t.length};let l=[],i,r=0;onmessage=({data:e})=>{e.length>0&&(l.push(e),i&&i())},s.read=(e,t,n,d,h,m)=>{if(e!==0||n!==0||d!==t.length||h!==null)throw new Error("Bad read");if(l.length===0){i=()=>s.read(e,t,n,d,h,m);return}let g=l[0],u=Math.max(0,Math.min(d,g.length-r));t.set(g.subarray(r,r+u),n),r+=u,r===g.length&&(l.shift(),r=0),m(null,u)};let o=new global.Go;o.argv=["","--service=0.14.3"],WebAssembly.instantiate(c,o.importObject).then(({instance:e})=>o.run(e))};}',l;if(t){let w=new Blob([g],{type:"text/javascript"});l=new Worker(URL.createObjectURL(w))}else{let O=new Function("postMessage",g+"var onmessage; return m => onmessage(m)")(x=>l.onmessage({data:x}));l={onmessage:null,postMessage:x=>O({data:x}),terminate(){}}}l.postMessage(s),l.onmessage=({data:w})=>f(w);let{readFromStdout:f,service:i}=He({writeToStdin(w){l.postMessage(w)},isSync:!1,isBrowser:!0,esbuild:Le});Ie={build:w=>new Promise((O,x)=>i.buildOrServe({callName:"build",refs:null,serveOptions:null,options:w,isTTY:!1,defaultWD:"/",callback:(N,L)=>N?x(N):O(L)})),transform:(w,O)=>new Promise((x,N)=>i.transform({callName:"transform",refs:null,input:w,options:O||{},isTTY:!1,fs:{readFile(L,k){k(new Error("Internal error"),null)},writeFile(L,k){k(null)}},callback:(L,k)=>L?N(L):x(k)})),formatMessages:(w,O)=>new Promise((x,N)=>i.formatMessages({callName:"formatMessages",refs:null,messages:w,options:O,callback:(L,k)=>L?N(L):x(k)})),analyzeMetafile:(w,O)=>new Promise((x,N)=>i.analyzeMetafile({callName:"analyzeMetafile",refs:null,metafile:typeof w=="string"?w:JSON.stringify(w),options:O,callback:(L,k)=>L?N(L):x(k)}))}};export{Ot as analyzeMetafile,Et as analyzeMetafileSync,bt as build,St as buildSync,Rt as formatMessages,kt as formatMessagesSync,$t as initialize,wt as serve,vt as transform,xt as transformSync,ht as version};
5
+ `),suggestion:""}}break}}return null}function be(e,t,r){let o=5,d=t.length<1?"":` with ${t.length} error${t.length<2?"":"s"}:`+t.slice(0,o+1).map((c,s)=>{if(s===o)return`
6
+ ...`;if(!c.location)return`
7
+ error: ${c.text}`;let{file:y,line:R,column:T}=c.location,C=c.pluginName?`[plugin: ${c.pluginName}] `:"";return`
8
+ ${y}:${R}:${T}: ERROR: ${C}${c.text}`}).join(""),i=new Error(`${e}${d}`);return i.errors=t,i.warnings=r,i}function ce(e,t){for(let r of e)r.detail=t.load(r.detail);return e}function Qe(e,t){if(e==null)return null;let r={},o=n(e,r,"file",m),d=n(e,r,"namespace",m),i=n(e,r,"line",me),c=n(e,r,"column",me),s=n(e,r,"length",me),y=n(e,r,"lineText",m),R=n(e,r,"suggestion",m);return J(e,r,t),{file:o||"",namespace:d||"",line:i||0,column:c||0,length:s||0,lineText:y||"",suggestion:R||""}}function pe(e,t,r,o){let d=[],i=0;for(let c of e){let s={},y=n(c,s,"pluginName",m),R=n(c,s,"text",m),T=n(c,s,"location",Ke),C=n(c,s,"notes",V),$=n(c,s,"detail",ve),S=`in element ${i} of "${t}"`;J(c,s,S);let ie=[];if(C)for(let ne of C){let le={},se=n(ne,le,"text",m),oe=n(ne,le,"location",Ke);J(ne,le,S),ie.push({text:se||"",location:Qe(oe,S)})}d.push({pluginName:y||o,text:R||"",location:Qe(T,S),notes:ie,detail:r?r.store($):-1}),i++}return d}function Se(e,t){let r=[];for(let o of e){if(typeof o!="string")throw new Error(`${JSON.stringify(t)} must be an array of strings`);r.push(o)}return r}function pt({path:e,contents:t}){let r=null;return{path:e,contents:t,get text(){return r===null&&(r=de(t)),r}}}var mt="0.14.8",yt=e=>xe().build(e),ht=()=>{throw new Error('The "serve" API only works in node')},bt=(e,t)=>xe().transform(e,t),wt=(e,t)=>xe().formatMessages(e,t),vt=(e,t)=>xe().analyzeMetafile(e,t),Rt=()=>{throw new Error('The "buildSync" API only works in node')},Ot=()=>{throw new Error('The "transformSync" API only works in node')},St=()=>{throw new Error('The "formatMessagesSync" API only works in node')},xt=()=>{throw new Error('The "analyzeMetafileSync" API only works in node')},we,je,xe=()=>{if(je)return je;throw we?new Error('You need to wait for the promise returned from "initialize" to be resolved before calling this'):new Error('You need to call "initialize" before calling this')},kt=e=>{e=Ve(e||{});let t=e.wasmURL,r=e.worker!==!1;if(!t)throw new Error('Must provide the "wasmURL" option');if(t+="",we)throw new Error('Cannot call "initialize" more than once');return we=Et(t,r),we.catch(()=>{we=void 0}),we},Et=async(e,t)=>{let r=await fetch(e);if(!r.ok)throw new Error(`Failed to download ${JSON.stringify(e)}`);let o=await r.arrayBuffer(),d='{let global={};for(let o=self;o;o=Object.getPrototypeOf(o))for(let k of Object.getOwnPropertyNames(o))if(!(k in global))Object.defineProperty(global,k,{get:()=>self[k]});\n// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n(()=>{if(typeof global=="undefined")if(typeof window!="undefined")window.global=window;else if(typeof self!="undefined")self.global=self;else throw new Error("cannot export Go (neither global, window nor self is defined)");if(!global.require&&typeof require!="undefined"&&(global.require=require),!global.fs&&global.require){const r=require("fs");typeof r=="object"&&r!==null&&Object.keys(r).length!==0&&(global.fs=Object.assign({},r,{write(n,s,i,l,d,u){if(i===0&&l===s.length&&d===null){if(n===process.stdout.fd){try{process.stdout.write(s,h=>h?u(h,0,null):u(null,l,s))}catch(h){u(h,0,null)}return}if(n===process.stderr.fd){try{process.stderr.write(s,h=>h?u(h,0,null):u(null,l,s))}catch(h){u(h,0,null)}return}}r.write(n,s,i,l,d,u)}}))}const a=()=>{const r=new Error("not implemented");return r.code="ENOSYS",r};if(!global.fs){let r="";global.fs={constants:{O_WRONLY:-1,O_RDWR:-1,O_CREAT:-1,O_TRUNC:-1,O_APPEND:-1,O_EXCL:-1},writeSync(n,s){r+=g.decode(s);const i=r.lastIndexOf(`\n`);return i!=-1&&(console.log(r.substr(0,i)),r=r.substr(i+1)),s.length},write(n,s,i,l,d,u){if(i!==0||l!==s.length||d!==null){u(a());return}const h=this.writeSync(n,s);u(null,h)},chmod(n,s,i){i(a())},chown(n,s,i,l){l(a())},close(n,s){s(a())},fchmod(n,s,i){i(a())},fchown(n,s,i,l){l(a())},fstat(n,s){s(a())},fsync(n,s){s(null)},ftruncate(n,s,i){i(a())},lchown(n,s,i,l){l(a())},link(n,s,i){i(a())},lstat(n,s){s(a())},mkdir(n,s,i){i(a())},open(n,s,i,l){l(a())},read(n,s,i,l,d,u){u(a())},readdir(n,s){s(a())},readlink(n,s){s(a())},rename(n,s,i){i(a())},rmdir(n,s){s(a())},stat(n,s){s(a())},symlink(n,s,i){i(a())},truncate(n,s,i){i(a())},unlink(n,s){s(a())},utimes(n,s,i,l){l(a())}}}if(global.process||(global.process={getuid(){return-1},getgid(){return-1},geteuid(){return-1},getegid(){return-1},getgroups(){throw a()},pid:-1,ppid:-1,umask(){throw a()},cwd(){throw a()},chdir(){throw a()}}),!global.crypto&&global.require){const r=require("crypto");global.crypto={getRandomValues(n){r.randomFillSync(n)}}}if(!global.crypto)throw new Error("global.crypto is not available, polyfill required (getRandomValues only)");if(global.performance||(global.performance={now(){const[r,n]=process.hrtime();return r*1e3+n/1e6}}),!global.TextEncoder&&global.require&&(global.TextEncoder=require("util").TextEncoder),!global.TextEncoder)throw new Error("global.TextEncoder is not available, polyfill required");if(!global.TextDecoder&&global.require&&(global.TextDecoder=require("util").TextDecoder),!global.TextDecoder)throw new Error("global.TextDecoder is not available, polyfill required");const f=new TextEncoder("utf-8"),g=new TextDecoder("utf-8");if(global.Go=class{constructor(){this.argv=["js"],this.env={},this.exit=e=>{e!==0&&console.warn("exit code:",e)},this._exitPromise=new Promise(e=>{this._resolveExitPromise=e}),this._pendingEvent=null,this._scheduledTimeouts=new Map,this._nextCallbackTimeoutID=1;const r=(e,t)=>{this.mem.setUint32(e+0,t,!0),this.mem.setUint32(e+4,Math.floor(t/4294967296),!0)},n=e=>{const t=this.mem.getUint32(e+0,!0),o=this.mem.getInt32(e+4,!0);return t+o*4294967296},s=e=>{const t=this.mem.getFloat64(e,!0);if(t===0)return;if(!isNaN(t))return t;const o=this.mem.getUint32(e,!0);return this._values[o]},i=(e,t)=>{const o=2146959360;if(typeof t=="number"&&t!==0){if(isNaN(t)){this.mem.setUint32(e+4,o,!0),this.mem.setUint32(e,0,!0);return}this.mem.setFloat64(e,t,!0);return}if(t===void 0){this.mem.setFloat64(e,0,!0);return}let c=this._ids.get(t);c===void 0&&(c=this._idPool.pop(),c===void 0&&(c=this._values.length),this._values[c]=t,this._goRefCounts[c]=0,this._ids.set(t,c)),this._goRefCounts[c]++;let m=0;switch(typeof t){case"object":t!==null&&(m=1);break;case"string":m=2;break;case"symbol":m=3;break;case"function":m=4;break}this.mem.setUint32(e+4,o|m,!0),this.mem.setUint32(e,c,!0)},l=e=>{const t=n(e+0),o=n(e+8);return new Uint8Array(this._inst.exports.mem.buffer,t,o)},d=e=>{const t=n(e+0),o=n(e+8),c=new Array(o);for(let m=0;m<o;m++)c[m]=s(t+m*8);return c},u=e=>{const t=n(e+0),o=n(e+8);return g.decode(new DataView(this._inst.exports.mem.buffer,t,o))},h=Date.now()-performance.now();this.importObject={go:{"runtime.wasmExit":e=>{e>>>=0;const t=this.mem.getInt32(e+8,!0);this.exited=!0,delete this._inst,delete this._values,delete this._goRefCounts,delete this._ids,delete this._idPool,this.exit(t)},"runtime.wasmWrite":e=>{e>>>=0;const t=n(e+8),o=n(e+16),c=this.mem.getInt32(e+24,!0);fs.writeSync(t,new Uint8Array(this._inst.exports.mem.buffer,o,c))},"runtime.resetMemoryDataView":e=>{e>>>=0,this.mem=new DataView(this._inst.exports.mem.buffer)},"runtime.nanotime1":e=>{e>>>=0,r(e+8,(h+performance.now())*1e6)},"runtime.walltime":e=>{e>>>=0;const t=new Date().getTime();r(e+8,t/1e3),this.mem.setInt32(e+16,t%1e3*1e6,!0)},"runtime.scheduleTimeoutEvent":e=>{e>>>=0;const t=this._nextCallbackTimeoutID;this._nextCallbackTimeoutID++,this._scheduledTimeouts.set(t,setTimeout(()=>{for(this._resume();this._scheduledTimeouts.has(t);)console.warn("scheduleTimeoutEvent: missed timeout event"),this._resume()},n(e+8)+1)),this.mem.setInt32(e+16,t,!0)},"runtime.clearTimeoutEvent":e=>{e>>>=0;const t=this.mem.getInt32(e+8,!0);clearTimeout(this._scheduledTimeouts.get(t)),this._scheduledTimeouts.delete(t)},"runtime.getRandomData":e=>{e>>>=0,crypto.getRandomValues(l(e+8))},"syscall/js.finalizeRef":e=>{e>>>=0;const t=this.mem.getUint32(e+8,!0);if(this._goRefCounts[t]--,this._goRefCounts[t]===0){const o=this._values[t];this._values[t]=null,this._ids.delete(o),this._idPool.push(t)}},"syscall/js.stringVal":e=>{e>>>=0,i(e+24,u(e+8))},"syscall/js.valueGet":e=>{e>>>=0;const t=Reflect.get(s(e+8),u(e+16));e=this._inst.exports.getsp()>>>0,i(e+32,t)},"syscall/js.valueSet":e=>{e>>>=0,Reflect.set(s(e+8),u(e+16),s(e+32))},"syscall/js.valueDelete":e=>{e>>>=0,Reflect.deleteProperty(s(e+8),u(e+16))},"syscall/js.valueIndex":e=>{e>>>=0,i(e+24,Reflect.get(s(e+8),n(e+16)))},"syscall/js.valueSetIndex":e=>{e>>>=0,Reflect.set(s(e+8),n(e+16),s(e+24))},"syscall/js.valueCall":e=>{e>>>=0;try{const t=s(e+8),o=Reflect.get(t,u(e+16)),c=d(e+32),m=Reflect.apply(o,t,c);e=this._inst.exports.getsp()>>>0,i(e+56,m),this.mem.setUint8(e+64,1)}catch(t){e=this._inst.exports.getsp()>>>0,i(e+56,t),this.mem.setUint8(e+64,0)}},"syscall/js.valueInvoke":e=>{e>>>=0;try{const t=s(e+8),o=d(e+16),c=Reflect.apply(t,void 0,o);e=this._inst.exports.getsp()>>>0,i(e+40,c),this.mem.setUint8(e+48,1)}catch(t){e=this._inst.exports.getsp()>>>0,i(e+40,t),this.mem.setUint8(e+48,0)}},"syscall/js.valueNew":e=>{e>>>=0;try{const t=s(e+8),o=d(e+16),c=Reflect.construct(t,o);e=this._inst.exports.getsp()>>>0,i(e+40,c),this.mem.setUint8(e+48,1)}catch(t){e=this._inst.exports.getsp()>>>0,i(e+40,t),this.mem.setUint8(e+48,0)}},"syscall/js.valueLength":e=>{e>>>=0,r(e+16,parseInt(s(e+8).length))},"syscall/js.valuePrepareString":e=>{e>>>=0;const t=f.encode(String(s(e+8)));i(e+16,t),r(e+24,t.length)},"syscall/js.valueLoadString":e=>{e>>>=0;const t=s(e+8);l(e+16).set(t)},"syscall/js.valueInstanceOf":e=>{e>>>=0,this.mem.setUint8(e+24,s(e+8)instanceof s(e+16)?1:0)},"syscall/js.copyBytesToGo":e=>{e>>>=0;const t=l(e+8),o=s(e+32);if(!(o instanceof Uint8Array||o instanceof Uint8ClampedArray)){this.mem.setUint8(e+48,0);return}const c=o.subarray(0,t.length);t.set(c),r(e+40,c.length),this.mem.setUint8(e+48,1)},"syscall/js.copyBytesToJS":e=>{e>>>=0;const t=s(e+8),o=l(e+16);if(!(t instanceof Uint8Array||t instanceof Uint8ClampedArray)){this.mem.setUint8(e+48,0);return}const c=o.subarray(0,t.length);t.set(c),r(e+40,c.length),this.mem.setUint8(e+48,1)},debug:e=>{console.log(e)}}}}async run(r){if(!(r instanceof WebAssembly.Instance))throw new Error("Go.run: WebAssembly.Instance expected");this._inst=r,this.mem=new DataView(this._inst.exports.mem.buffer),this._values=[NaN,0,null,!0,!1,global,this],this._goRefCounts=new Array(this._values.length).fill(1/0),this._ids=new Map([[0,1],[null,2],[!0,3],[!1,4],[global,5],[this,6]]),this._idPool=[],this.exited=!1;let n=4096;const s=e=>{const t=n,o=f.encode(e+"\\0");return new Uint8Array(this.mem.buffer,n,o.length).set(o),n+=o.length,n%8!==0&&(n+=8-n%8),t},i=this.argv.length,l=[];this.argv.forEach(e=>{l.push(s(e))}),l.push(0),Object.keys(this.env).sort().forEach(e=>{l.push(s(`${e}=${this.env[e]}`))}),l.push(0);const u=n;l.forEach(e=>{this.mem.setUint32(n,e,!0),this.mem.setUint32(n+4,0,!0),n+=8});const h=4096+8192;if(n>=h)throw new Error("total length of command line and environment variables exceeds limit");this._inst.exports.run(i,u),this.exited&&this._resolveExitPromise(),await this._exitPromise}_resume(){if(this.exited)throw new Error("Go program has already exited");this._inst.exports.resume(),this.exited&&this._resolveExitPromise()}_makeFuncWrapper(r){const n=this;return function(){const s={id:r,this:this,args:arguments};return n._pendingEvent=s,n._resume(),s.result}}},typeof module!="undefined"&&global.require&&global.require.main===module&&global.process&&global.process.versions&&!global.process.versions.electron){process.argv.length<3&&(console.error("usage: go_js_wasm_exec [wasm binary] [arguments]"),process.exit(1));const r=new Go;r.argv=process.argv.slice(2),r.env=Object.assign({TMPDIR:require("os").tmpdir()},process.env),r.exit=process.exit,WebAssembly.instantiate(fs.readFileSync(process.argv[2]),r.importObject).then(n=>(process.on("exit",s=>{s===0&&!r.exited&&(r._pendingEvent={id:0},r._resume())}),r.run(n.instance))).catch(n=>{console.error(n),process.exit(1)})}})();\nonmessage=({data:c})=>{let y=new TextDecoder,s=global.fs,a="";s.writeSync=(e,t)=>{if(e===1)postMessage(t);else if(e===2){a+=y.decode(t);let n=a.split(`\n`);n.length>1&&console.log(n.slice(0,-1).join(`\n`)),a=n[n.length-1]}else throw new Error("Bad write");return t.length};let l=[],i,r=0;onmessage=({data:e})=>{e.length>0&&(l.push(e),i&&i())},s.read=(e,t,n,d,h,m)=>{if(e!==0||n!==0||d!==t.length||h!==null)throw new Error("Bad read");if(l.length===0){i=()=>s.read(e,t,n,d,h,m);return}let g=l[0],u=Math.max(0,Math.min(d,g.length-r));t.set(g.subarray(r,r+u),n),r+=u,r===g.length&&(l.shift(),r=0),m(null,u)};let o=new global.Go;o.argv=["","--service=0.14.8"],WebAssembly.instantiate(c,o.importObject).then(({instance:e})=>o.run(e))};}',i;if(t){let y=new Blob([d],{type:"text/javascript"});i=new Worker(URL.createObjectURL(y))}else{let R=new Function("postMessage",d+"var onmessage; return m => onmessage(m)")(T=>i.onmessage({data:T}));i={onmessage:null,postMessage:T=>R({data:T}),terminate(){}}}i.postMessage(o),i.onmessage=({data:y})=>c(y);let{readFromStdout:c,service:s}=Ye({writeToStdin(y){i.postMessage(y)},isSync:!1,isBrowser:!0,esbuild:Ce});je={build:y=>new Promise((R,T)=>s.buildOrServe({callName:"build",refs:null,serveOptions:null,options:y,isTTY:!1,defaultWD:"/",callback:(C,$)=>C?T(C):R($)})),transform:(y,R)=>new Promise((T,C)=>s.transform({callName:"transform",refs:null,input:y,options:R||{},isTTY:!1,fs:{readFile($,S){S(new Error("Internal error"),null)},writeFile($,S){S(null)}},callback:($,S)=>$?C($):T(S)})),formatMessages:(y,R)=>new Promise((T,C)=>s.formatMessages({callName:"formatMessages",refs:null,messages:y,options:R,callback:($,S)=>$?C($):T(S)})),analyzeMetafile:(y,R)=>new Promise((T,C)=>s.analyzeMetafile({callName:"analyzeMetafile",refs:null,metafile:typeof y=="string"?y:JSON.stringify(y),options:R,callback:($,S)=>$?C($):T(S)}))}};export{vt as analyzeMetafile,xt as analyzeMetafileSync,yt as build,Rt as buildSync,wt as formatMessages,St as formatMessagesSync,kt as initialize,ht as serve,bt as transform,Ot as transformSync,mt as version};
@@ -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,26 @@ export interface PluginBuild {
285
287
  };
286
288
  }
287
289
 
290
+ export interface ResolveOptions {
291
+ importer?: string;
292
+ namespace?: string;
293
+ resolveDir?: string;
294
+ kind?: ImportKind;
295
+ pluginData?: any;
296
+ }
297
+
298
+ export interface ResolveResult {
299
+ errors: Message[];
300
+ warnings: Message[];
301
+
302
+ path: string;
303
+ external: boolean;
304
+ sideEffects: boolean;
305
+ namespace: string;
306
+ suffix: string;
307
+ pluginData: any;
308
+ }
309
+
288
310
  export interface OnStartResult {
289
311
  errors?: PartialMessage[];
290
312
  warnings?: PartialMessage[];