isomorfeus-asset-manager 0.14.1 → 0.14.2

Sign up to get free protection for your applications and to get access to all the features.
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[];