isomorfeus-asset-manager 0.14.12 → 0.14.13

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.
@@ -31,18 +31,10 @@ module Isomorfeus
31
31
  end
32
32
  end
33
33
 
34
- def self.last_updated
35
- @last_updated
36
- end
37
-
38
- def self.last_updated=(l)
39
- @last_updated = l
40
- end
41
-
42
34
  def initialize
43
35
  Isomorfeus.set_node_paths
44
36
 
45
- @tmpdir = Isomorfeus.asset_manager_tmpdir
37
+ @tmpdir = File.expand_path(Isomorfeus.asset_manager_tmpdir)
46
38
  @imports_path = File.join(@tmpdir, 'imports')
47
39
  @output_path = File.join(@tmpdir, 'output')
48
40
  FileUtils.mkdir_p(@imports_path)
@@ -56,22 +48,22 @@ module Isomorfeus
56
48
  end
57
49
 
58
50
  def transition(asset_key, asset, analyze: false)
59
- return if !Isomorfeus.development? && asset.bundled?
51
+ return if asset.bundled?
60
52
  asset.mutex.synchronize do
61
- return if !Isomorfeus.development? && asset.bundled?
62
- return if Isomorfeus.development? && asset.bundled? && (self.class.last_updated.nil? || (asset.mtime > self.class.last_updated))
53
+ return if asset.bundled?
63
54
  start = Time.now
64
55
  puts "Isomorfeus Asset Manager bundling #{asset_key} ..."
56
+ asset.bundled!
65
57
  asset.touch
66
58
  asset_name = asset_key[0..-4]
67
- asset.bundle_ruby_modules = build_ruby_and_save(asset_key, asset_name, asset)
68
- save_imports(asset_key, asset)
69
- run_esbuild(asset_key, asset, analyze)
70
- asset.bundle = bundled_asset(asset_key, asset_name, asset)
71
- asset.css = bundled_css(asset_key)
72
- unless Isomorfeus.production?
73
- asset.bundle_map = bundled_asset_map(asset_key)
74
- asset.css_map = bundled_css_map(asset_key)
59
+ asset.build_ruby_and_save(asset_key, asset_name, @imports_path)
60
+ entry = asset.save_entry(asset_key, asset_name, @imports_path)
61
+ run_esbuild(entry, asset_key, asset, analyze)
62
+ asset.bundle_css(asset_name, @output_path) if asset.browser?
63
+ asset.bundle_js(asset_key, asset_name, @imports_path, @output_path)
64
+ if !Isomorfeus.production? && asset.browser?
65
+ asset.bundle_css_map(asset_name, @output_path)
66
+ asset.bundle_js_map(asset_key, @output_path)
75
67
  end
76
68
  puts "Isomorfeus Asset Manager bundling #{asset_key} took #{Time.now - start}s"
77
69
  end
@@ -79,50 +71,6 @@ module Isomorfeus
79
71
 
80
72
  private
81
73
 
82
- def bundled_asset(asset_key, asset_name, asset)
83
- res = File.read(File.join(@output_path, asset_key))
84
- res << asset.ruby_imports_to_s(asset_name) if !Isomorfeus.production? && asset.target != :node
85
- res
86
- end
87
-
88
- def bundled_asset_map(asset_key)
89
- File.read(File.join(@output_path, asset_key + '.map'))
90
- end
91
-
92
- def bundled_css(asset_key)
93
- filename = File.join(@output_path, asset_key[0..-4] + '.css')
94
- File.read(filename) if File.exist?(filename)
95
- end
96
-
97
- def bundled_css_map(asset_key)
98
- filename = File.join(@output_path, asset_key[0..-4] + '.css.map')
99
- File.read(filename) if File.exist?(filename)
100
- end
101
-
102
- def save_imports(asset_key, asset)
103
- File.write(File.join(@imports_path, asset_key), asset.to_s)
104
- end
105
-
106
- def build_ruby_and_save(asset_key, asset_name, asset)
107
- rb = {}
108
- asset.ruby_imports.each do |ruby_import|
109
- module_name = ruby_import.module_name
110
- out_file = File.join(@imports_path, module_name + '.rb.js')
111
- next if Isomorfeus.production? && File.exist?(out_file)
112
- result = Opal::Builder.build(ruby_import.resolved_path, { esm: true })
113
- rb[module_name] = { js: result.to_s }
114
- if !Isomorfeus.production? && asset.target != :node
115
- rb[module_name][:js] << "\n//# sourceMappingURL=#{Isomorfeus.assets_path}/#{asset_name}/#{module_name}.rb.js.map\n"
116
- rb[module_name][:map] = Oj.dump(result.source_map.as_json, mode: :strict)
117
- else
118
- FileUtils.mkdir_p(File.join(*[@imports_path].concat(module_name.split('/')[0...-1]))) if module_name.include?('/')
119
- File.write(out_file, rb[module_name][:js])
120
- rb[module_name][:js] = nil if Isomorfeus.production?
121
- end
122
- end
123
- rb
124
- end
125
-
126
74
  def compile_ruby(file)
127
75
  source = File.read(file)
128
76
  module_file = file[(Isomorfeus.app_root.size + 1)..-1]
@@ -177,10 +125,10 @@ module Isomorfeus
177
125
  am_class = self.class
178
126
  Isomorfeus.hmr_listener = Listen.to(*listen_dirs) do |modified, added, _|
179
127
  (modified + added).each do |file|
180
- am_class.last_updated = (Time.now.to_f * (10 ** 9)).to_i
181
128
  next if file.start_with?(@server_path)
182
129
  begin
183
130
  if file.end_with?('.rb')
131
+ Isomorfeus.assets.each_value { |asset| asset.unbundle! }
184
132
  update = compile_ruby(file)
185
133
  update_json = Oj.dump(update, mode: :strict)
186
134
  elsif file.end_with?('.yml') || file.end_with?('.mo') || file.end_with?('.po')
@@ -190,7 +138,7 @@ module Isomorfeus
190
138
  end
191
139
  Iodine.publish(Isomorfeus.asset_manager_hmr_channel, update_json)
192
140
  rescue Exception => e
193
- message = "IsomorfeusAssetManager during hot module update:\n#{e.class}\n#{e.message}\n#{e.backtrace.join("\n")}"
141
+ message = "Isomorfeus Asset Manager during hot module update:\n#{e.class}\n#{e.message}\n#{e.backtrace.join("\n")}"
194
142
  STDERR.puts message
195
143
  Iodine.publish(Isomorfeus.asset_manager_hmr_channel, Oj.dump({ error: message }, mode: :strict))
196
144
  end
@@ -199,30 +147,27 @@ module Isomorfeus
199
147
  Isomorfeus.hmr_listener.start
200
148
  end
201
149
 
202
- # possible future improvement
203
- # loader: {
204
- # '.png': 'dataurl',
205
- # },
206
- def run_esbuild(asset_key, asset, analyze = false)
150
+ def run_esbuild(entry, asset_key, asset, analyze = false)
207
151
  resolve_paths = ENV['NODE_PATH'].split(Gem.win_platform? ? ';' : ':')
208
152
  resolve_paths << 'node_modules'
209
153
  resolve_paths.uniq!
210
154
 
211
155
  result = @context.await <<~JAVASCRIPT
212
156
  esbuild.build({
213
- entryPoints: [path.resolve(global.imports_path, '#{asset_key}')],
157
+ entryPoints: [path.resolve(global.imports_path, '#{entry}')],
214
158
  bundle: true,
215
159
  color: false,
216
- format: '#{asset.target == :node ? 'cjs' : 'iife'}',
160
+ format: '#{asset.node? ? 'cjs' : 'iife'}',
217
161
  legalComments: 'linked',
218
- loader: { '.svg': 'text' },
162
+ loader: { '.svg': 'text', '.png': 'dataurl' },
163
+ logLimit: 0,
219
164
  metafile: #{analyze ? 'true' : 'false'},
220
165
  minify: #{Isomorfeus.production? ? 'true' : 'false'},
221
166
  nodePaths: #{resolve_paths},
222
167
  outdir: global.output_path,
223
168
  platform: '#{asset.target}',
224
- publicPath: '/assets',
225
- sourcemap: #{!Isomorfeus.production? ? 'true' : 'false'},
169
+ publicPath: '#{asset.browser? ? Isomorfeus.assets_path : @output_path}',
170
+ sourcemap: #{(!Isomorfeus.production? && asset.browser?) ? 'true' : 'false'},
226
171
  splitting: false,
227
172
  target: 'es6',
228
173
  write: true
@@ -1,12 +1,14 @@
1
1
  require 'fileutils'
2
2
  require 'thread'
3
3
  require 'tmpdir'
4
+ require 'brotli'
4
5
  require 'zlib'
5
6
  require 'opal'
6
7
  require 'opal/compiler'
7
8
  require 'opal/builder'
8
9
  require 'oj'
9
10
  require 'rack'
11
+ require 'rack/utils'
10
12
  require 'listen'
11
13
  require 'iodine'
12
14
  require 'isomorfeus-speednode'
@@ -14,6 +16,8 @@ require 'isomorfeus/asset_manager/version'
14
16
  require 'isomorfeus/asset_manager/js_import'
15
17
  require 'isomorfeus/asset_manager/ruby_import'
16
18
  require 'isomorfeus/asset_manager/asset'
19
+ require 'isomorfeus/asset_manager/node_asset'
20
+ require 'isomorfeus/asset_manager/browser_asset'
17
21
  require 'isomorfeus/asset_manager/portfolio'
18
22
  require 'isomorfeus/asset_manager/rack_middleware'
19
23
  require 'isomorfeus/asset_manager/server_socket_processor'
@@ -4,9 +4,9 @@
4
4
  "requires": true,
5
5
  "packages": {
6
6
  "node_modules/esbuild-wasm": {
7
- "version": "0.14.21",
8
- "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.14.21.tgz",
9
- "integrity": "sha512-sPMyljBiKxXjW1wLd5dQnrUJR1PAt8ybSidXoZWJnMuB1mpdLju57LtstDWWkCgcaE+TGJJ6NqP/OtGyeDdEAA==",
7
+ "version": "0.14.23",
8
+ "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.14.23.tgz",
9
+ "integrity": "sha512-w1qhGLvUaPXiigGWIEGcnMmN/FxQ6VDLnHQIOpf29Qh9z6x4qe4gmsQyUbFBW6UsWsw/E8OJDE0XRtiV/0siYQ==",
10
10
  "bin": {
11
11
  "esbuild": "bin/esbuild"
12
12
  },
Binary file
@@ -29,6 +29,7 @@ __export(browser_exports, {
29
29
  analyzeMetafileSync: () => analyzeMetafileSync,
30
30
  build: () => build,
31
31
  buildSync: () => buildSync,
32
+ default: () => browser_default,
32
33
  formatMessages: () => formatMessages,
33
34
  formatMessagesSync: () => formatMessagesSync,
34
35
  initialize: () => initialize,
@@ -723,8 +724,8 @@ function createChannel(streamIn) {
723
724
  if (isFirstPacket) {
724
725
  isFirstPacket = false;
725
726
  let binaryVersion = String.fromCharCode(...bytes);
726
- if (binaryVersion !== "0.14.21") {
727
- throw new Error(`Cannot start service: Host version "${"0.14.21"}" does not match binary version ${JSON.stringify(binaryVersion)}`);
727
+ if (binaryVersion !== "0.14.23") {
728
+ throw new Error(`Cannot start service: Host version "${"0.14.23"}" does not match binary version ${JSON.stringify(binaryVersion)}`);
728
729
  }
729
730
  return;
730
731
  }
@@ -1669,7 +1670,7 @@ function convertOutputFiles({ path, contents }) {
1669
1670
  }
1670
1671
 
1671
1672
  // lib/npm/browser.ts
1672
- var version = "0.14.21";
1673
+ var version = "0.14.23";
1673
1674
  var build = (options) => ensureServiceIsRunning().build(options);
1674
1675
  var serve = () => {
1675
1676
  throw new Error(`The "serve" API only works in node`);
@@ -1882,7 +1883,10 @@ var startRunningService = async (wasmURL, useWorker) => {
1882
1883
  throw new Error("global.TextDecoder is not available, polyfill required");
1883
1884
  }
1884
1885
 
1885
- // End of polyfills for common API.
1886
+
1887
+ // Make sure Go sees the shadowed "fs" global
1888
+ const { fs } = global;
1889
+
1886
1890
 
1887
1891
  const encoder = new TextEncoder("utf-8");
1888
1892
  const decoder = new TextDecoder("utf-8");
@@ -2426,7 +2430,7 @@ onmessage = ({ data: wasm }) => {
2426
2430
  callback(null, count);
2427
2431
  };
2428
2432
  let go = new global.Go();
2429
- go.argv = ["", \`--service=\${"0.14.21"}\`];
2433
+ go.argv = ["", \`--service=\${"0.14.23"}\`];
2430
2434
  WebAssembly.instantiate(wasm, go.importObject).then(({ instance }) => go.run(instance));
2431
2435
  };}`;
2432
2436
  let worker;
@@ -2495,11 +2499,13 @@ onmessage = ({ data: wasm }) => {
2495
2499
  }))
2496
2500
  };
2497
2501
  };
2502
+ var browser_default = browser_exports;
2498
2503
  export {
2499
2504
  analyzeMetafile,
2500
2505
  analyzeMetafileSync,
2501
2506
  build,
2502
2507
  buildSync,
2508
+ browser_default as default,
2503
2509
  formatMessages,
2504
2510
  formatMessagesSync,
2505
2511
  initialize,
@@ -1,8 +1,8 @@
1
- var Ie=Object.defineProperty,rt=Object.defineProperties;var nt=Object.getOwnPropertyDescriptors;var qe=Object.getOwnPropertySymbols;var lt=Object.prototype.hasOwnProperty,it=Object.prototype.propertyIsEnumerable;var We=(e,t,r)=>t in e?Ie(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Te=(e,t)=>{for(var r in t||(t={}))lt.call(t,r)&&We(e,r,t[r]);if(qe)for(var r of qe(t))it.call(t,r)&&We(e,r,t[r]);return e},Be=(e,t)=>rt(e,nt(t));var st=(e,t)=>{for(var r in t)Ie(e,r,{get:t[r],enumerable:!0})};var Ue={};st(Ue,{analyzeMetafile:()=>Ot,analyzeMetafileSync:()=>Et,build:()=>bt,buildSync:()=>St,formatMessages:()=>Rt,formatMessagesSync:()=>kt,initialize:()=>$t,serve:()=>wt,transform:()=>vt,transformSync:()=>xt,version:()=>ht});function Ae(e){let t=i=>{if(i===null)r.write8(0);else if(typeof i=="boolean")r.write8(1),r.write8(+i);else if(typeof i=="number")r.write8(2),r.write32(i|0);else if(typeof i=="string")r.write8(3),r.write(de(i));else if(i instanceof Uint8Array)r.write8(4),r.write(i);else if(i instanceof Array){r.write8(5),r.write32(i.length);for(let p of i)t(p)}else{let p=Object.keys(i);r.write8(6),r.write32(p.length);for(let l of p)r.write(de(l)),t(i[l])}},r=new Ne;return r.write32(0),r.write32(e.id<<1|+!e.isRequest),t(e.value),De(r.buf,r.len-4,0),r.buf.subarray(0,r.len)}function ze(e){let t=()=>{switch(r.read8()){case 0:return null;case 1:return!!r.read8();case 2:return r.read32();case 3:return ye(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[ye(r.read())]=t();return s}default:throw new Error("Invalid packet")}},r=new Ne(e),i=r.read32(),p=(i&1)===0;i>>>=1;let l=t();if(r.ptr!==e.length)throw new Error("Invalid packet");return{id:i,isRequest:p,value:l}}var Ne=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);De(this.buf,t,r)}write(t){let r=this._write(4+t.length);De(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),i=this._read(r.length);return r.set(this.buf.subarray(i,i+t)),r}},de,ye;if(typeof TextEncoder!="undefined"&&typeof TextDecoder!="undefined"){let e=new TextEncoder,t=new TextDecoder;de=r=>e.encode(r),ye=r=>t.decode(r)}else if(typeof Buffer!="undefined")de=e=>{let t=Buffer.from(e);return t instanceof Uint8Array||(t=new Uint8Array(t)),t},ye=e=>{let{buffer:t,byteOffset:r,byteLength:i}=e;return Buffer.from(t,r,i).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 De(e,t,r){e[r++]=t,e[r++]=t>>8,e[r++]=t>>16,e[r++]=t>>24}function Ke(e){if(e+="",e.indexOf(",")>=0)throw new Error(`Invalid target: ${e}`);return e}var Ee=()=>null,z=e=>typeof e=="boolean"?null:"a boolean",at=e=>typeof e=="boolean"||typeof e=="object"&&!Array.isArray(e)?null:"a boolean or an object",m=e=>typeof e=="string"?null:"a string",$e=e=>e instanceof RegExp?null:"a RegExp object",Re=e=>typeof e=="number"&&e===(e|0)?null:"an integer",je=e=>typeof e=="function"?null:"a function",V=e=>Array.isArray(e)?null:"an array",ge=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",Ye=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,i){let p=e[r];if(t[r+""]=!0,p===void 0)return;let l=i(p);if(l!==null)throw new Error(`"${r}" must be ${l}`);return p}function Y(e,t,r){for(let i in e)if(!(i in t))throw new Error(`Invalid option ${r}: "${i}"`)}function He(e){let t=Object.create(null),r=n(e,t,"wasmURL",m),i=n(e,t,"worker",z);return Y(e,t,"in startService() call"),{wasmURL:r,worker:i}}function Ge(e){let t;if(e!==void 0){t=Object.create(null);for(let r of Object.keys(e)){let i=e[r];if(typeof i=="string"||i===!1)t[r]=i;else throw new Error(`Expected ${JSON.stringify(r)} in mangle cache to map to either a string or false`)}}return t}function Me(e,t,r,i,p){let l=n(t,r,"color",z),c=n(t,r,"logLevel",m),s=n(t,r,"logLimit",Re);l!==void 0?e.push(`--color=${l}`):i&&e.push("--color=true"),e.push(`--log-level=${c||p}`),e.push(`--log-limit=${s||0}`)}function Qe(e,t,r){let i=n(t,r,"legalComments",m),p=n(t,r,"sourceRoot",m),l=n(t,r,"sourcesContent",z),c=n(t,r,"target",ct),s=n(t,r,"format",m),y=n(t,r,"globalName",m),O=n(t,r,"mangleProps",$e),P=n(t,r,"reserveProps",$e),L=n(t,r,"minify",z),x=n(t,r,"minifySyntax",z),S=n(t,r,"minifyWhitespace",z),ae=n(t,r,"minifyIdentifiers",z),re=n(t,r,"drop",V),le=n(t,r,"charset",m),ie=n(t,r,"treeShaking",z),ue=n(t,r,"ignoreAnnotations",z),fe=n(t,r,"jsx",m),ce=n(t,r,"jsxFactory",m),me=n(t,r,"jsxFragment",m),se=n(t,r,"define",ge),be=n(t,r,"pure",V),Se=n(t,r,"keepNames",z);if(i&&e.push(`--legal-comments=${i}`),p!==void 0&&e.push(`--source-root=${p}`),l!==void 0&&e.push(`--sources-content=${l}`),c&&(Array.isArray(c)?e.push(`--target=${Array.from(c).map(Ke).join(",")}`):e.push(`--target=${Ke(c)}`)),s&&e.push(`--format=${s}`),y&&e.push(`--global-name=${y}`),L&&e.push("--minify"),x&&e.push("--minify-syntax"),S&&e.push("--minify-whitespace"),ae&&e.push("--minify-identifiers"),le&&e.push(`--charset=${le}`),ie!==void 0&&e.push(`--tree-shaking=${ie}`),ue&&e.push("--ignore-annotations"),re)for(let te of re)e.push(`--drop:${te}`);if(O&&e.push(`--mangle-props=${O.source}`),P&&e.push(`--reserve-props=${P.source}`),fe&&e.push(`--jsx=${fe}`),ce&&e.push(`--jsx-factory=${ce}`),me&&e.push(`--jsx-fragment=${me}`),se)for(let te in se){if(te.indexOf("=")>=0)throw new Error(`Invalid define: ${te}`);e.push(`--define:${te}=${se[te]}`)}if(be)for(let te of be)e.push(`--pure:${te}`);Se&&e.push("--keep-names")}function pt(e,t,r,i,p){var b;let l=[],c=[],s=Object.create(null),y=null,O=null,P=null;Me(l,t,s,r,i),Qe(l,t,s);let L=n(t,s,"sourcemap",Ye),x=n(t,s,"bundle",z),S=n(t,s,"watch",at),ae=n(t,s,"splitting",z),re=n(t,s,"preserveSymlinks",z),le=n(t,s,"metafile",z),ie=n(t,s,"outfile",m),ue=n(t,s,"outdir",m),fe=n(t,s,"outbase",m),ce=n(t,s,"platform",m),me=n(t,s,"tsconfig",m),se=n(t,s,"resolveExtensions",V),be=n(t,s,"nodePaths",V),Se=n(t,s,"mainFields",V),te=n(t,s,"conditions",V),g=n(t,s,"external",V),u=n(t,s,"loader",ge),a=n(t,s,"outExtension",ge),f=n(t,s,"publicPath",m),F=n(t,s,"entryNames",m),D=n(t,s,"chunkNames",m),M=n(t,s,"assetNames",m),E=n(t,s,"inject",V),T=n(t,s,"banner",ge),C=n(t,s,"footer",ge),R=n(t,s,"entryPoints",ut),U=n(t,s,"absWorkingDir",m),k=n(t,s,"stdin",ge),A=(b=n(t,s,"write",z))!=null?b:p,W=n(t,s,"allowOverwrite",z),ee=n(t,s,"incremental",z)===!0,$=n(t,s,"mangleCache",ge);if(s.plugins=!0,Y(t,s,`in ${e}() call`),L&&l.push(`--sourcemap${L===!0?"":`=${L}`}`),x&&l.push("--bundle"),W&&l.push("--allow-overwrite"),S)if(l.push("--watch"),typeof S=="boolean")P={};else{let o=Object.create(null),v=n(S,o,"onRebuild",je);Y(S,o,`on "watch" in ${e}() call`),P={onRebuild:v}}if(ae&&l.push("--splitting"),re&&l.push("--preserve-symlinks"),le&&l.push("--metafile"),ie&&l.push(`--outfile=${ie}`),ue&&l.push(`--outdir=${ue}`),fe&&l.push(`--outbase=${fe}`),ce&&l.push(`--platform=${ce}`),me&&l.push(`--tsconfig=${me}`),se){let o=[];for(let v of se){if(v+="",v.indexOf(",")>=0)throw new Error(`Invalid resolve extension: ${v}`);o.push(v)}l.push(`--resolve-extensions=${o.join(",")}`)}if(f&&l.push(`--public-path=${f}`),F&&l.push(`--entry-names=${F}`),D&&l.push(`--chunk-names=${D}`),M&&l.push(`--asset-names=${M}`),Se){let o=[];for(let v of Se){if(v+="",v.indexOf(",")>=0)throw new Error(`Invalid main field: ${v}`);o.push(v)}l.push(`--main-fields=${o.join(",")}`)}if(te){let o=[];for(let v of te){if(v+="",v.indexOf(",")>=0)throw new Error(`Invalid condition: ${v}`);o.push(v)}l.push(`--conditions=${o.join(",")}`)}if(g)for(let o of g)l.push(`--external:${o}`);if(T)for(let o in T){if(o.indexOf("=")>=0)throw new Error(`Invalid banner file type: ${o}`);l.push(`--banner:${o}=${T[o]}`)}if(C)for(let o in C){if(o.indexOf("=")>=0)throw new Error(`Invalid footer file type: ${o}`);l.push(`--footer:${o}=${C[o]}`)}if(E)for(let o of E)l.push(`--inject:${o}`);if(u)for(let o in u){if(o.indexOf("=")>=0)throw new Error(`Invalid loader extension: ${o}`);l.push(`--loader:${o}=${u[o]}`)}if(a)for(let o in a){if(o.indexOf("=")>=0)throw new Error(`Invalid out extension: ${o}`);l.push(`--out-extension:${o}=${a[o]}`)}if(R)if(Array.isArray(R))for(let o of R)c.push(["",o+""]);else for(let[o,v]of Object.entries(R))c.push([o+"",v+""]);if(k){let o=Object.create(null),v=n(k,o,"contents",m),q=n(k,o,"resolveDir",m),w=n(k,o,"sourcefile",m),d=n(k,o,"loader",m);Y(k,o,'in "stdin" object'),w&&l.push(`--sourcefile=${w}`),d&&l.push(`--loader=${d}`),q&&(O=q+""),y=v?v+"":""}let h=[];if(be)for(let o of be)o+="",h.push(o);return{entries:c,flags:l,write:A,stdinContents:y,stdinResolveDir:O,absWorkingDir:U,incremental:ee,nodePaths:h,watch:P,mangleCache:Ge($)}}function gt(e,t,r,i){let p=[],l=Object.create(null);Me(p,t,l,r,i),Qe(p,t,l);let c=n(t,l,"sourcemap",Ye),s=n(t,l,"tsconfigRaw",ft),y=n(t,l,"sourcefile",m),O=n(t,l,"loader",m),P=n(t,l,"banner",m),L=n(t,l,"footer",m),x=n(t,l,"mangleCache",ge);return Y(t,l,`in ${e}() call`),c&&p.push(`--sourcemap=${c===!0?"external":c}`),s&&p.push(`--tsconfig-raw=${typeof s=="string"?s:JSON.stringify(s)}`),y&&p.push(`--sourcefile=${y}`),O&&p.push(`--loader=${O}`),P&&p.push(`--banner=${P}`),L&&p.push(`--footer=${L}`),{flags:p,mangleCache:Ge(x)}}function Xe(e){let t=new Map,r=new Map,i=new Map,p=new Map,l=!1,c=0,s=0,y=new Uint8Array(16*1024),O=0,P=g=>{let u=O+g.length;if(u>y.length){let f=new Uint8Array(u*2);f.set(y),y=f}y.set(g,O),O+=g.length;let a=0;for(;a+4<=O;){let f=Fe(y,a);if(a+4+f>O)break;a+=4,le(y.subarray(a,a+f)),a+=f}a>0&&(y.copyWithin(0,a,O),O-=a)},L=()=>{l=!0;for(let g of t.values())g("The service was stopped",null);t.clear();for(let g of p.values())g.onWait("The service was stopped");p.clear();for(let g of i.values())try{g(new Error("The service was stopped"),null)}catch(u){console.error(u)}i.clear()},x=(g,u,a)=>{if(l)return a("The service is no longer running",null);let f=c++;t.set(f,(F,D)=>{try{a(F,D)}finally{g&&g.unref()}}),g&&g.ref(),e.writeToStdin(Ae({id:f,isRequest:!0,value:u}))},S=(g,u)=>{if(l)throw new Error("The service is no longer running");e.writeToStdin(Ae({id:g,isRequest:!1,value:u}))},ae=async(g,u)=>{try{switch(u.command){case"ping":{S(g,{});break}case"on-start":{let a=r.get(u.key);a?S(g,await a(u)):S(g,{});break}case"on-resolve":{let a=r.get(u.key);a?S(g,await a(u)):S(g,{});break}case"on-load":{let a=r.get(u.key);a?S(g,await a(u)):S(g,{});break}case"serve-request":{let a=p.get(u.key);a&&a.onRequest&&a.onRequest(u.args),S(g,{});break}case"serve-wait":{let a=p.get(u.key);a&&a.onWait(u.error),S(g,{});break}case"watch-rebuild":{let a=i.get(u.key);try{a&&a(null,u.args)}catch(f){console.error(f)}S(g,{});break}default:throw new Error("Invalid command: "+u.command)}}catch(a){S(g,{errors:[we(a,e,null,void 0,"")]})}},re=!0,le=g=>{if(re){re=!1;let a=String.fromCharCode(...g);if(a!=="0.14.21")throw new Error(`Cannot start service: Host version "0.14.21" does not match binary version ${JSON.stringify(a)}`);return}let u=ze(g);if(u.isRequest)ae(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)}},ie=async(g,u,a,f,F)=>{let D=[],M=[],E={},T={},C=0,R=0,U=[],k=!1;u=[...u];for(let $ of u){let h={};if(typeof $!="object")throw new Error(`Plugin at index ${R} must be an object`);let b=n($,h,"name",m);if(typeof b!="string"||b==="")throw new Error(`Plugin at index ${R} is missing a name`);try{let o=n($,h,"setup",je);if(typeof o!="function")throw new Error("Plugin is missing a setup function");Y($,h,`on plugin ${JSON.stringify(b)}`);let v={name:b,onResolve:[],onLoad:[]};R++;let w=o({initialOptions:g,resolve:(d,N={})=>{if(!k)throw new Error('Cannot call "resolve" before plugin setup has completed');if(typeof d!="string")throw new Error("The path to resolve must be a string");let B=Object.create(null),H=n(N,B,"pluginName",m),I=n(N,B,"importer",m),_=n(N,B,"namespace",m),X=n(N,B,"resolveDir",m),G=n(N,B,"kind",m),j=n(N,B,"pluginData",Ee);return Y(N,B,"in resolve() call"),new Promise((J,Q)=>{let K={command:"resolve",path:d,key:a,pluginName:b};H!=null&&(K.pluginName=H),I!=null&&(K.importer=I),_!=null&&(K.namespace=_),X!=null&&(K.resolveDir=X),G!=null&&(K.kind=G),j!=null&&(K.pluginData=f.store(j)),x(F,K,(oe,Z)=>{oe!==null?Q(new Error(oe)):J({errors:pe(Z.errors,f),warnings:pe(Z.warnings,f),path:Z.path,external:Z.external,sideEffects:Z.sideEffects,namespace:Z.namespace,suffix:Z.suffix,pluginData:f.load(Z.pluginData)})})})},onStart(d){let N='This error came from the "onStart" callback registered here:',B=xe(new Error(N),e,"onStart");D.push({name:b,callback:d,note:B})},onEnd(d){let N='This error came from the "onEnd" callback registered here:',B=xe(new Error(N),e,"onEnd");M.push({name:b,callback:d,note:B})},onResolve(d,N){let B='This error came from the "onResolve" callback registered here:',H=xe(new Error(B),e,"onResolve"),I={},_=n(d,I,"filter",$e),X=n(d,I,"namespace",m);if(Y(d,I,`in onResolve() call for plugin ${JSON.stringify(b)}`),_==null)throw new Error("onResolve() call is missing a filter");let G=C++;E[G]={name:b,callback:N,note:H},v.onResolve.push({id:G,filter:_.source,namespace:X||""})},onLoad(d,N){let B='This error came from the "onLoad" callback registered here:',H=xe(new Error(B),e,"onLoad"),I={},_=n(d,I,"filter",$e),X=n(d,I,"namespace",m);if(Y(d,I,`in onLoad() call for plugin ${JSON.stringify(b)}`),_==null)throw new Error("onLoad() call is missing a filter");let G=C++;T[G]={name:b,callback:N,note:H},v.onLoad.push({id:G,filter:_.source,namespace:X||""})},esbuild:e.esbuild});w&&await w,U.push(v)}catch(o){return{ok:!1,error:o,pluginName:b}}}let A=async $=>{switch($.command){case"on-start":{let h={errors:[],warnings:[]};return await Promise.all(D.map(async({name:b,callback:o,note:v})=>{try{let q=await o();if(q!=null){if(typeof q!="object")throw new Error(`Expected onStart() callback in plugin ${JSON.stringify(b)} to return an object`);let w={},d=n(q,w,"errors",V),N=n(q,w,"warnings",V);Y(q,w,`from onStart() callback in plugin ${JSON.stringify(b)}`),d!=null&&h.errors.push(...he(d,"errors",f,b)),N!=null&&h.warnings.push(...he(N,"warnings",f,b))}}catch(q){h.errors.push(we(q,e,f,v&&v(),b))}})),h}case"on-resolve":{let h={},b="",o,v;for(let q of $.ids)try{({name:b,callback:o,note:v}=E[q]);let w=await o({path:$.path,importer:$.importer,namespace:$.namespace,resolveDir:$.resolveDir,kind:$.kind,pluginData:f.load($.pluginData)});if(w!=null){if(typeof w!="object")throw new Error(`Expected onResolve() callback in plugin ${JSON.stringify(b)} to return an object`);let d={},N=n(w,d,"pluginName",m),B=n(w,d,"path",m),H=n(w,d,"namespace",m),I=n(w,d,"suffix",m),_=n(w,d,"external",z),X=n(w,d,"sideEffects",z),G=n(w,d,"pluginData",Ee),j=n(w,d,"errors",V),J=n(w,d,"warnings",V),Q=n(w,d,"watchFiles",V),K=n(w,d,"watchDirs",V);Y(w,d,`from onResolve() callback in plugin ${JSON.stringify(b)}`),h.id=q,N!=null&&(h.pluginName=N),B!=null&&(h.path=B),H!=null&&(h.namespace=H),I!=null&&(h.suffix=I),_!=null&&(h.external=_),X!=null&&(h.sideEffects=X),G!=null&&(h.pluginData=f.store(G)),j!=null&&(h.errors=he(j,"errors",f,b)),J!=null&&(h.warnings=he(J,"warnings",f,b)),Q!=null&&(h.watchFiles=ke(Q,"watchFiles")),K!=null&&(h.watchDirs=ke(K,"watchDirs"));break}}catch(w){return{id:q,errors:[we(w,e,f,v&&v(),b)]}}return h}case"on-load":{let h={},b="",o,v;for(let q of $.ids)try{({name:b,callback:o,note:v}=T[q]);let w=await o({path:$.path,namespace:$.namespace,suffix:$.suffix,pluginData:f.load($.pluginData)});if(w!=null){if(typeof w!="object")throw new Error(`Expected onLoad() callback in plugin ${JSON.stringify(b)} to return an object`);let d={},N=n(w,d,"pluginName",m),B=n(w,d,"contents",dt),H=n(w,d,"resolveDir",m),I=n(w,d,"pluginData",Ee),_=n(w,d,"loader",m),X=n(w,d,"errors",V),G=n(w,d,"warnings",V),j=n(w,d,"watchFiles",V),J=n(w,d,"watchDirs",V);Y(w,d,`from onLoad() callback in plugin ${JSON.stringify(b)}`),h.id=q,N!=null&&(h.pluginName=N),B instanceof Uint8Array?h.contents=B:B!=null&&(h.contents=de(B)),H!=null&&(h.resolveDir=H),I!=null&&(h.pluginData=f.store(I)),_!=null&&(h.loader=_),X!=null&&(h.errors=he(X,"errors",f,b)),G!=null&&(h.warnings=he(G,"warnings",f,b)),j!=null&&(h.watchFiles=ke(j,"watchFiles")),J!=null&&(h.watchDirs=ke(J,"watchDirs"));break}}catch(w){return{id:q,errors:[we(w,e,f,v&&v(),b)]}}return h}default:throw new Error("Invalid command: "+$.command)}},W=($,h,b)=>b();M.length>0&&(W=($,h,b)=>{(async()=>{for(let{name:o,callback:v,note:q}of M)try{await v($)}catch(w){$.errors.push(await new Promise(d=>h(w,o,q&&q(),d)))}})().then(b)}),k=!0;let ee=0;return{ok:!0,requestPlugins:U,runOnEndCallbacks:W,pluginRefs:{ref(){++ee===1&&r.set(a,A)},unref(){--ee===0&&r.delete(a)}}}},ue=(g,u,a,f)=>{let F={},D=n(u,F,"port",Re),M=n(u,F,"host",m),E=n(u,F,"servedir",m),T=n(u,F,"onRequest",je),C,R=new Promise((U,k)=>{C=A=>{p.delete(f),A!==null?k(new Error(A)):U()}});return a.serve={},Y(u,F,"in serve() call"),D!==void 0&&(a.serve.port=D),M!==void 0&&(a.serve.host=M),E!==void 0&&(a.serve.servedir=E),p.set(f,{onRequest:T,onWait:C}),{wait:R,stop(){x(g,{command:"serve-stop",key:f},()=>{})}}},fe="warning",ce="silent",me=g=>{let u=s++,a=Ve(),f,{refs:F,options:D,isTTY:M,callback:E}=g;if(typeof D=="object"){let R=D.plugins;if(R!==void 0){if(!Array.isArray(R))throw new Error('"plugins" must be an array');f=R}}let T=(R,U,k,A)=>{let W=[];try{Me(W,D,{},M,fe)}catch($){}let ee=we(R,e,a,k,U);x(F,{command:"error",flags:W,error:ee},()=>{ee.detail=a.load(ee.detail),A(ee)})},C=(R,U)=>{T(R,U,void 0,k=>{E(ve("Build failed",[k],[]),null)})};if(f&&f.length>0){if(e.isSync)return C(new Error("Cannot use plugins in synchronous API calls"),"");ie(D,f,u,a,F).then(R=>{if(!R.ok)C(R.error,R.pluginName);else try{se(Be(Te({},g),{key:u,details:a,logPluginError:T,requestPlugins:R.requestPlugins,runOnEndCallbacks:R.runOnEndCallbacks,pluginRefs:R.pluginRefs}))}catch(U){C(U,"")}},R=>C(R,""))}else try{se(Be(Te({},g),{key:u,details:a,logPluginError:T,requestPlugins:null,runOnEndCallbacks:(R,U,k)=>k(),pluginRefs:null}))}catch(R){C(R,"")}},se=({callName:g,refs:u,serveOptions:a,options:f,isTTY:F,defaultWD:D,callback:M,key:E,details:T,logPluginError:C,requestPlugins:R,runOnEndCallbacks:U,pluginRefs:k})=>{let A={ref(){k&&k.ref(),u&&u.ref()},unref(){k&&k.unref(),u&&u.unref()}},W=!e.isBrowser,{entries:ee,flags:$,write:h,stdinContents:b,stdinResolveDir:o,absWorkingDir:v,incremental:q,nodePaths:w,watch:d,mangleCache:N}=pt(g,f,F,fe,W),B={command:"build",key:E,entries:ee,flags:$,write:h,stdinContents:b,stdinResolveDir:o,absWorkingDir:v||D,incremental:q,nodePaths:w};R&&(B.plugins=R),N&&(B.mangleCache=N);let H=a&&ue(A,a,B,E),I,_,X=(j,J)=>{j.outputFiles&&(J.outputFiles=j.outputFiles.map(mt)),j.metafile&&(J.metafile=JSON.parse(j.metafile)),j.mangleCache&&(J.mangleCache=j.mangleCache),j.writeToStdout!==void 0&&console.log(ye(j.writeToStdout).replace(/\n$/,""))},G=(j,J)=>{let Q={errors:pe(j.errors,T),warnings:pe(j.warnings,T)};X(j,Q),U(Q,C,()=>{if(Q.errors.length>0)return J(ve("Build failed",Q.errors,Q.warnings),null);if(j.rebuild){if(!I){let K=!1;I=()=>new Promise((oe,Z)=>{if(K||l)throw new Error("Cannot rebuild");x(A,{command:"rebuild",key:E},(ne,et)=>{if(ne)return J(ve("Build failed",[{pluginName:"",text:ne,location:null,notes:[],detail:void 0}],[]),null);G(et,(Pe,tt)=>{Pe?Z(Pe):oe(tt)})})}),A.ref(),I.dispose=()=>{K||(K=!0,x(A,{command:"rebuild-dispose",key:E},()=>{}),A.unref())}}Q.rebuild=I}if(j.watch){if(!_){let K=!1;A.ref(),_=()=>{K||(K=!0,i.delete(E),x(A,{command:"watch-stop",key:E},()=>{}),A.unref())},d&&i.set(E,(oe,Z)=>{if(oe){d.onRebuild&&d.onRebuild(oe,null);return}let ne={errors:pe(Z.errors,T),warnings:pe(Z.warnings,T)};X(Z,ne),U(ne,C,()=>{if(ne.errors.length>0){d.onRebuild&&d.onRebuild(ve("Build failed",ne.errors,ne.warnings),null);return}Z.rebuildID!==void 0&&(ne.rebuild=I),ne.stop=_,d.onRebuild&&d.onRebuild(null,ne)})})}Q.stop=_}J(null,Q)})};if(h&&e.isBrowser)throw new Error('Cannot enable "write" in the browser');if(q&&e.isSync)throw new Error('Cannot use "incremental" with a synchronous build');if(d&&e.isSync)throw new Error('Cannot use "watch" with a synchronous build');x(A,B,(j,J)=>{if(j)return M(new Error(j),null);if(H){let Q=J,K=!1;A.ref();let oe={port:Q.port,host:Q.host,wait:H.wait,stop(){K||(K=!0,H.stop(),A.unref())}};return A.ref(),H.wait.then(A.unref,A.unref),M(null,oe)}return G(J,M)})};return{readFromStdout:P,afterClose:L,service:{buildOrServe:me,transform:({callName:g,refs:u,input:a,options:f,isTTY:F,fs:D,callback:M})=>{let E=Ve(),T=C=>{try{if(typeof a!="string")throw new Error('The input to "transform" must be a string');let{flags:R,mangleCache:U}=gt(g,f,F,ce),k={command:"transform",flags:R,inputFS:C!==null,input:C!==null?C:a};U&&(k.mangleCache=U),x(u,k,(A,W)=>{if(A)return M(new Error(A),null);let ee=pe(W.errors,E),$=pe(W.warnings,E),h=1,b=()=>{if(--h===0){let o={warnings:$,code:W.code,map:W.map};W.mangleCache&&(o.mangleCache=W==null?void 0:W.mangleCache),M(null,o)}};if(ee.length>0)return M(ve("Transform failed",ee,$),null);W.codeFS&&(h++,D.readFile(W.code,(o,v)=>{o!==null?M(o,null):(W.code=v,b())})),W.mapFS&&(h++,D.readFile(W.map,(o,v)=>{o!==null?M(o,null):(W.map=v,b())})),b()})}catch(R){let U=[];try{Me(U,f,{},F,ce)}catch(A){}let k=we(R,e,E,void 0,"");x(u,{command:"error",flags:U,error:k},()=>{k.detail=E.load(k.detail),M(ve("Transform failed",[k],[]),null)})}};if(typeof a=="string"&&a.length>1024*1024){let C=T;T=()=>D.writeFile(a,C)}T(null)},formatMessages:({callName:g,refs:u,messages:a,options:f,callback:F})=>{let D=he(a,"messages",null,"");if(!f)throw new Error(`Missing second argument in ${g}() call`);let M={},E=n(f,M,"kind",m),T=n(f,M,"color",z),C=n(f,M,"terminalWidth",Re);if(Y(f,M,`in ${g}() call`),E===void 0)throw new Error(`Missing "kind" in ${g}() call`);if(E!=="error"&&E!=="warning")throw new Error(`Expected "kind" to be "error" or "warning" in ${g}() call`);let R={command:"format-msgs",messages:D,isWarning:E==="warning"};T!==void 0&&(R.color=T),C!==void 0&&(R.terminalWidth=C),x(u,R,(U,k)=>{if(U)return F(new Error(U),null);F(null,k.messages)})},analyzeMetafile:({callName:g,refs:u,metafile:a,options:f,callback:F})=>{f===void 0&&(f={});let D={},M=n(f,D,"color",z),E=n(f,D,"verbose",z);Y(f,D,`in ${g}() call`);let T={command:"analyze-metafile",metafile:a};M!==void 0&&(T.color=M),E!==void 0&&(T.verbose=E),x(u,T,(C,R)=>{if(C)return F(new Error(C),null);F(null,R.result)})}}}}function Ve(){let e=new Map,t=0;return{load(r){return e.get(r)},store(r){if(r===void 0)return-1;let i=t++;return e.set(i,r),i}}}function xe(e,t,r){let i,p=!1;return()=>{if(p)return i;p=!0;try{let l=(e.stack+"").split(`
1
+ var Ie=Object.defineProperty,rt=Object.defineProperties;var nt=Object.getOwnPropertyDescriptors;var qe=Object.getOwnPropertySymbols;var lt=Object.prototype.hasOwnProperty,it=Object.prototype.propertyIsEnumerable;var We=(e,t,r)=>t in e?Ie(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Be=(e,t)=>{for(var r in t||(t={}))lt.call(t,r)&&We(e,r,t[r]);if(qe)for(var r of qe(t))it.call(t,r)&&We(e,r,t[r]);return e},De=(e,t)=>rt(e,nt(t));var st=(e,t)=>{for(var r in t)Ie(e,r,{get:t[r],enumerable:!0})};var Pe={};st(Pe,{analyzeMetafile:()=>Ot,analyzeMetafileSync:()=>Et,build:()=>bt,buildSync:()=>St,default:()=>Ct,formatMessages:()=>Rt,formatMessagesSync:()=>kt,initialize:()=>$t,serve:()=>wt,transform:()=>vt,transformSync:()=>xt,version:()=>ht});function Ne(e){let t=i=>{if(i===null)r.write8(0);else if(typeof i=="boolean")r.write8(1),r.write8(+i);else if(typeof i=="number")r.write8(2),r.write32(i|0);else if(typeof i=="string")r.write8(3),r.write(de(i));else if(i instanceof Uint8Array)r.write8(4),r.write(i);else if(i instanceof Array){r.write8(5),r.write32(i.length);for(let p of i)t(p)}else{let p=Object.keys(i);r.write8(6),r.write32(p.length);for(let l of p)r.write(de(l)),t(i[l])}},r=new Fe;return r.write32(0),r.write32(e.id<<1|+!e.isRequest),t(e.value),Ae(r.buf,r.len-4,0),r.buf.subarray(0,r.len)}function ze(e){let t=()=>{switch(r.read8()){case 0:return null;case 1:return!!r.read8();case 2:return r.read32();case 3:return ye(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[ye(r.read())]=t();return s}default:throw new Error("Invalid packet")}},r=new Fe(e),i=r.read32(),p=(i&1)===0;i>>>=1;let l=t();if(r.ptr!==e.length)throw new Error("Invalid packet");return{id:i,isRequest:p,value:l}}var Fe=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);Ae(this.buf,t,r)}write(t){let r=this._write(4+t.length);Ae(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 je(this.buf,this._read(4))}read(){let t=this.read32(),r=new Uint8Array(t),i=this._read(r.length);return r.set(this.buf.subarray(i,i+t)),r}},de,ye;if(typeof TextEncoder!="undefined"&&typeof TextDecoder!="undefined"){let e=new TextEncoder,t=new TextDecoder;de=r=>e.encode(r),ye=r=>t.decode(r)}else if(typeof Buffer!="undefined")de=e=>{let t=Buffer.from(e);return t instanceof Uint8Array||(t=new Uint8Array(t)),t},ye=e=>{let{buffer:t,byteOffset:r,byteLength:i}=e;return Buffer.from(t,r,i).toString()};else throw new Error("No UTF-8 codec found");function je(e,t){return e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24}function Ae(e,t,r){e[r++]=t,e[r++]=t>>8,e[r++]=t>>16,e[r++]=t>>24}function Ke(e){if(e+="",e.indexOf(",")>=0)throw new Error(`Invalid target: ${e}`);return e}var Ee=()=>null,z=e=>typeof e=="boolean"?null:"a boolean",at=e=>typeof e=="boolean"||typeof e=="object"&&!Array.isArray(e)?null:"a boolean or an object",m=e=>typeof e=="string"?null:"a string",$e=e=>e instanceof RegExp?null:"a RegExp object",Re=e=>typeof e=="number"&&e===(e|0)?null:"an integer",Le=e=>typeof e=="function"?null:"a function",V=e=>Array.isArray(e)?null:"an array",ge=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",Ye=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,i){let p=e[r];if(t[r+""]=!0,p===void 0)return;let l=i(p);if(l!==null)throw new Error(`"${r}" must be ${l}`);return p}function Y(e,t,r){for(let i in e)if(!(i in t))throw new Error(`Invalid option ${r}: "${i}"`)}function He(e){let t=Object.create(null),r=n(e,t,"wasmURL",m),i=n(e,t,"worker",z);return Y(e,t,"in startService() call"),{wasmURL:r,worker:i}}function Ge(e){let t;if(e!==void 0){t=Object.create(null);for(let r of Object.keys(e)){let i=e[r];if(typeof i=="string"||i===!1)t[r]=i;else throw new Error(`Expected ${JSON.stringify(r)} in mangle cache to map to either a string or false`)}}return t}function Me(e,t,r,i,p){let l=n(t,r,"color",z),c=n(t,r,"logLevel",m),s=n(t,r,"logLimit",Re);l!==void 0?e.push(`--color=${l}`):i&&e.push("--color=true"),e.push(`--log-level=${c||p}`),e.push(`--log-limit=${s||0}`)}function Qe(e,t,r){let i=n(t,r,"legalComments",m),p=n(t,r,"sourceRoot",m),l=n(t,r,"sourcesContent",z),c=n(t,r,"target",ct),s=n(t,r,"format",m),y=n(t,r,"globalName",m),O=n(t,r,"mangleProps",$e),P=n(t,r,"reserveProps",$e),L=n(t,r,"minify",z),x=n(t,r,"minifySyntax",z),S=n(t,r,"minifyWhitespace",z),ae=n(t,r,"minifyIdentifiers",z),re=n(t,r,"drop",V),le=n(t,r,"charset",m),ie=n(t,r,"treeShaking",z),ue=n(t,r,"ignoreAnnotations",z),fe=n(t,r,"jsx",m),ce=n(t,r,"jsxFactory",m),me=n(t,r,"jsxFragment",m),se=n(t,r,"define",ge),be=n(t,r,"pure",V),Se=n(t,r,"keepNames",z);if(i&&e.push(`--legal-comments=${i}`),p!==void 0&&e.push(`--source-root=${p}`),l!==void 0&&e.push(`--sources-content=${l}`),c&&(Array.isArray(c)?e.push(`--target=${Array.from(c).map(Ke).join(",")}`):e.push(`--target=${Ke(c)}`)),s&&e.push(`--format=${s}`),y&&e.push(`--global-name=${y}`),L&&e.push("--minify"),x&&e.push("--minify-syntax"),S&&e.push("--minify-whitespace"),ae&&e.push("--minify-identifiers"),le&&e.push(`--charset=${le}`),ie!==void 0&&e.push(`--tree-shaking=${ie}`),ue&&e.push("--ignore-annotations"),re)for(let te of re)e.push(`--drop:${te}`);if(O&&e.push(`--mangle-props=${O.source}`),P&&e.push(`--reserve-props=${P.source}`),fe&&e.push(`--jsx=${fe}`),ce&&e.push(`--jsx-factory=${ce}`),me&&e.push(`--jsx-fragment=${me}`),se)for(let te in se){if(te.indexOf("=")>=0)throw new Error(`Invalid define: ${te}`);e.push(`--define:${te}=${se[te]}`)}if(be)for(let te of be)e.push(`--pure:${te}`);Se&&e.push("--keep-names")}function pt(e,t,r,i,p){var b;let l=[],c=[],s=Object.create(null),y=null,O=null,P=null;Me(l,t,s,r,i),Qe(l,t,s);let L=n(t,s,"sourcemap",Ye),x=n(t,s,"bundle",z),S=n(t,s,"watch",at),ae=n(t,s,"splitting",z),re=n(t,s,"preserveSymlinks",z),le=n(t,s,"metafile",z),ie=n(t,s,"outfile",m),ue=n(t,s,"outdir",m),fe=n(t,s,"outbase",m),ce=n(t,s,"platform",m),me=n(t,s,"tsconfig",m),se=n(t,s,"resolveExtensions",V),be=n(t,s,"nodePaths",V),Se=n(t,s,"mainFields",V),te=n(t,s,"conditions",V),g=n(t,s,"external",V),u=n(t,s,"loader",ge),a=n(t,s,"outExtension",ge),f=n(t,s,"publicPath",m),F=n(t,s,"entryNames",m),D=n(t,s,"chunkNames",m),M=n(t,s,"assetNames",m),E=n(t,s,"inject",V),T=n(t,s,"banner",ge),C=n(t,s,"footer",ge),R=n(t,s,"entryPoints",ut),U=n(t,s,"absWorkingDir",m),k=n(t,s,"stdin",ge),A=(b=n(t,s,"write",z))!=null?b:p,W=n(t,s,"allowOverwrite",z),ee=n(t,s,"incremental",z)===!0,$=n(t,s,"mangleCache",ge);if(s.plugins=!0,Y(t,s,`in ${e}() call`),L&&l.push(`--sourcemap${L===!0?"":`=${L}`}`),x&&l.push("--bundle"),W&&l.push("--allow-overwrite"),S)if(l.push("--watch"),typeof S=="boolean")P={};else{let o=Object.create(null),v=n(S,o,"onRebuild",Le);Y(S,o,`on "watch" in ${e}() call`),P={onRebuild:v}}if(ae&&l.push("--splitting"),re&&l.push("--preserve-symlinks"),le&&l.push("--metafile"),ie&&l.push(`--outfile=${ie}`),ue&&l.push(`--outdir=${ue}`),fe&&l.push(`--outbase=${fe}`),ce&&l.push(`--platform=${ce}`),me&&l.push(`--tsconfig=${me}`),se){let o=[];for(let v of se){if(v+="",v.indexOf(",")>=0)throw new Error(`Invalid resolve extension: ${v}`);o.push(v)}l.push(`--resolve-extensions=${o.join(",")}`)}if(f&&l.push(`--public-path=${f}`),F&&l.push(`--entry-names=${F}`),D&&l.push(`--chunk-names=${D}`),M&&l.push(`--asset-names=${M}`),Se){let o=[];for(let v of Se){if(v+="",v.indexOf(",")>=0)throw new Error(`Invalid main field: ${v}`);o.push(v)}l.push(`--main-fields=${o.join(",")}`)}if(te){let o=[];for(let v of te){if(v+="",v.indexOf(",")>=0)throw new Error(`Invalid condition: ${v}`);o.push(v)}l.push(`--conditions=${o.join(",")}`)}if(g)for(let o of g)l.push(`--external:${o}`);if(T)for(let o in T){if(o.indexOf("=")>=0)throw new Error(`Invalid banner file type: ${o}`);l.push(`--banner:${o}=${T[o]}`)}if(C)for(let o in C){if(o.indexOf("=")>=0)throw new Error(`Invalid footer file type: ${o}`);l.push(`--footer:${o}=${C[o]}`)}if(E)for(let o of E)l.push(`--inject:${o}`);if(u)for(let o in u){if(o.indexOf("=")>=0)throw new Error(`Invalid loader extension: ${o}`);l.push(`--loader:${o}=${u[o]}`)}if(a)for(let o in a){if(o.indexOf("=")>=0)throw new Error(`Invalid out extension: ${o}`);l.push(`--out-extension:${o}=${a[o]}`)}if(R)if(Array.isArray(R))for(let o of R)c.push(["",o+""]);else for(let[o,v]of Object.entries(R))c.push([o+"",v+""]);if(k){let o=Object.create(null),v=n(k,o,"contents",m),q=n(k,o,"resolveDir",m),w=n(k,o,"sourcefile",m),d=n(k,o,"loader",m);Y(k,o,'in "stdin" object'),w&&l.push(`--sourcefile=${w}`),d&&l.push(`--loader=${d}`),q&&(O=q+""),y=v?v+"":""}let h=[];if(be)for(let o of be)o+="",h.push(o);return{entries:c,flags:l,write:A,stdinContents:y,stdinResolveDir:O,absWorkingDir:U,incremental:ee,nodePaths:h,watch:P,mangleCache:Ge($)}}function gt(e,t,r,i){let p=[],l=Object.create(null);Me(p,t,l,r,i),Qe(p,t,l);let c=n(t,l,"sourcemap",Ye),s=n(t,l,"tsconfigRaw",ft),y=n(t,l,"sourcefile",m),O=n(t,l,"loader",m),P=n(t,l,"banner",m),L=n(t,l,"footer",m),x=n(t,l,"mangleCache",ge);return Y(t,l,`in ${e}() call`),c&&p.push(`--sourcemap=${c===!0?"external":c}`),s&&p.push(`--tsconfig-raw=${typeof s=="string"?s:JSON.stringify(s)}`),y&&p.push(`--sourcefile=${y}`),O&&p.push(`--loader=${O}`),P&&p.push(`--banner=${P}`),L&&p.push(`--footer=${L}`),{flags:p,mangleCache:Ge(x)}}function Xe(e){let t=new Map,r=new Map,i=new Map,p=new Map,l=!1,c=0,s=0,y=new Uint8Array(16*1024),O=0,P=g=>{let u=O+g.length;if(u>y.length){let f=new Uint8Array(u*2);f.set(y),y=f}y.set(g,O),O+=g.length;let a=0;for(;a+4<=O;){let f=je(y,a);if(a+4+f>O)break;a+=4,le(y.subarray(a,a+f)),a+=f}a>0&&(y.copyWithin(0,a,O),O-=a)},L=()=>{l=!0;for(let g of t.values())g("The service was stopped",null);t.clear();for(let g of p.values())g.onWait("The service was stopped");p.clear();for(let g of i.values())try{g(new Error("The service was stopped"),null)}catch(u){console.error(u)}i.clear()},x=(g,u,a)=>{if(l)return a("The service is no longer running",null);let f=c++;t.set(f,(F,D)=>{try{a(F,D)}finally{g&&g.unref()}}),g&&g.ref(),e.writeToStdin(Ne({id:f,isRequest:!0,value:u}))},S=(g,u)=>{if(l)throw new Error("The service is no longer running");e.writeToStdin(Ne({id:g,isRequest:!1,value:u}))},ae=async(g,u)=>{try{switch(u.command){case"ping":{S(g,{});break}case"on-start":{let a=r.get(u.key);a?S(g,await a(u)):S(g,{});break}case"on-resolve":{let a=r.get(u.key);a?S(g,await a(u)):S(g,{});break}case"on-load":{let a=r.get(u.key);a?S(g,await a(u)):S(g,{});break}case"serve-request":{let a=p.get(u.key);a&&a.onRequest&&a.onRequest(u.args),S(g,{});break}case"serve-wait":{let a=p.get(u.key);a&&a.onWait(u.error),S(g,{});break}case"watch-rebuild":{let a=i.get(u.key);try{a&&a(null,u.args)}catch(f){console.error(f)}S(g,{});break}default:throw new Error("Invalid command: "+u.command)}}catch(a){S(g,{errors:[we(a,e,null,void 0,"")]})}},re=!0,le=g=>{if(re){re=!1;let a=String.fromCharCode(...g);if(a!=="0.14.23")throw new Error(`Cannot start service: Host version "0.14.23" does not match binary version ${JSON.stringify(a)}`);return}let u=ze(g);if(u.isRequest)ae(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)}},ie=async(g,u,a,f,F)=>{let D=[],M=[],E={},T={},C=0,R=0,U=[],k=!1;u=[...u];for(let $ of u){let h={};if(typeof $!="object")throw new Error(`Plugin at index ${R} must be an object`);let b=n($,h,"name",m);if(typeof b!="string"||b==="")throw new Error(`Plugin at index ${R} is missing a name`);try{let o=n($,h,"setup",Le);if(typeof o!="function")throw new Error("Plugin is missing a setup function");Y($,h,`on plugin ${JSON.stringify(b)}`);let v={name:b,onResolve:[],onLoad:[]};R++;let w=o({initialOptions:g,resolve:(d,N={})=>{if(!k)throw new Error('Cannot call "resolve" before plugin setup has completed');if(typeof d!="string")throw new Error("The path to resolve must be a string");let B=Object.create(null),H=n(N,B,"pluginName",m),I=n(N,B,"importer",m),_=n(N,B,"namespace",m),X=n(N,B,"resolveDir",m),G=n(N,B,"kind",m),j=n(N,B,"pluginData",Ee);return Y(N,B,"in resolve() call"),new Promise((J,Q)=>{let K={command:"resolve",path:d,key:a,pluginName:b};H!=null&&(K.pluginName=H),I!=null&&(K.importer=I),_!=null&&(K.namespace=_),X!=null&&(K.resolveDir=X),G!=null&&(K.kind=G),j!=null&&(K.pluginData=f.store(j)),x(F,K,(oe,Z)=>{oe!==null?Q(new Error(oe)):J({errors:pe(Z.errors,f),warnings:pe(Z.warnings,f),path:Z.path,external:Z.external,sideEffects:Z.sideEffects,namespace:Z.namespace,suffix:Z.suffix,pluginData:f.load(Z.pluginData)})})})},onStart(d){let N='This error came from the "onStart" callback registered here:',B=xe(new Error(N),e,"onStart");D.push({name:b,callback:d,note:B})},onEnd(d){let N='This error came from the "onEnd" callback registered here:',B=xe(new Error(N),e,"onEnd");M.push({name:b,callback:d,note:B})},onResolve(d,N){let B='This error came from the "onResolve" callback registered here:',H=xe(new Error(B),e,"onResolve"),I={},_=n(d,I,"filter",$e),X=n(d,I,"namespace",m);if(Y(d,I,`in onResolve() call for plugin ${JSON.stringify(b)}`),_==null)throw new Error("onResolve() call is missing a filter");let G=C++;E[G]={name:b,callback:N,note:H},v.onResolve.push({id:G,filter:_.source,namespace:X||""})},onLoad(d,N){let B='This error came from the "onLoad" callback registered here:',H=xe(new Error(B),e,"onLoad"),I={},_=n(d,I,"filter",$e),X=n(d,I,"namespace",m);if(Y(d,I,`in onLoad() call for plugin ${JSON.stringify(b)}`),_==null)throw new Error("onLoad() call is missing a filter");let G=C++;T[G]={name:b,callback:N,note:H},v.onLoad.push({id:G,filter:_.source,namespace:X||""})},esbuild:e.esbuild});w&&await w,U.push(v)}catch(o){return{ok:!1,error:o,pluginName:b}}}let A=async $=>{switch($.command){case"on-start":{let h={errors:[],warnings:[]};return await Promise.all(D.map(async({name:b,callback:o,note:v})=>{try{let q=await o();if(q!=null){if(typeof q!="object")throw new Error(`Expected onStart() callback in plugin ${JSON.stringify(b)} to return an object`);let w={},d=n(q,w,"errors",V),N=n(q,w,"warnings",V);Y(q,w,`from onStart() callback in plugin ${JSON.stringify(b)}`),d!=null&&h.errors.push(...he(d,"errors",f,b)),N!=null&&h.warnings.push(...he(N,"warnings",f,b))}}catch(q){h.errors.push(we(q,e,f,v&&v(),b))}})),h}case"on-resolve":{let h={},b="",o,v;for(let q of $.ids)try{({name:b,callback:o,note:v}=E[q]);let w=await o({path:$.path,importer:$.importer,namespace:$.namespace,resolveDir:$.resolveDir,kind:$.kind,pluginData:f.load($.pluginData)});if(w!=null){if(typeof w!="object")throw new Error(`Expected onResolve() callback in plugin ${JSON.stringify(b)} to return an object`);let d={},N=n(w,d,"pluginName",m),B=n(w,d,"path",m),H=n(w,d,"namespace",m),I=n(w,d,"suffix",m),_=n(w,d,"external",z),X=n(w,d,"sideEffects",z),G=n(w,d,"pluginData",Ee),j=n(w,d,"errors",V),J=n(w,d,"warnings",V),Q=n(w,d,"watchFiles",V),K=n(w,d,"watchDirs",V);Y(w,d,`from onResolve() callback in plugin ${JSON.stringify(b)}`),h.id=q,N!=null&&(h.pluginName=N),B!=null&&(h.path=B),H!=null&&(h.namespace=H),I!=null&&(h.suffix=I),_!=null&&(h.external=_),X!=null&&(h.sideEffects=X),G!=null&&(h.pluginData=f.store(G)),j!=null&&(h.errors=he(j,"errors",f,b)),J!=null&&(h.warnings=he(J,"warnings",f,b)),Q!=null&&(h.watchFiles=ke(Q,"watchFiles")),K!=null&&(h.watchDirs=ke(K,"watchDirs"));break}}catch(w){return{id:q,errors:[we(w,e,f,v&&v(),b)]}}return h}case"on-load":{let h={},b="",o,v;for(let q of $.ids)try{({name:b,callback:o,note:v}=T[q]);let w=await o({path:$.path,namespace:$.namespace,suffix:$.suffix,pluginData:f.load($.pluginData)});if(w!=null){if(typeof w!="object")throw new Error(`Expected onLoad() callback in plugin ${JSON.stringify(b)} to return an object`);let d={},N=n(w,d,"pluginName",m),B=n(w,d,"contents",dt),H=n(w,d,"resolveDir",m),I=n(w,d,"pluginData",Ee),_=n(w,d,"loader",m),X=n(w,d,"errors",V),G=n(w,d,"warnings",V),j=n(w,d,"watchFiles",V),J=n(w,d,"watchDirs",V);Y(w,d,`from onLoad() callback in plugin ${JSON.stringify(b)}`),h.id=q,N!=null&&(h.pluginName=N),B instanceof Uint8Array?h.contents=B:B!=null&&(h.contents=de(B)),H!=null&&(h.resolveDir=H),I!=null&&(h.pluginData=f.store(I)),_!=null&&(h.loader=_),X!=null&&(h.errors=he(X,"errors",f,b)),G!=null&&(h.warnings=he(G,"warnings",f,b)),j!=null&&(h.watchFiles=ke(j,"watchFiles")),J!=null&&(h.watchDirs=ke(J,"watchDirs"));break}}catch(w){return{id:q,errors:[we(w,e,f,v&&v(),b)]}}return h}default:throw new Error("Invalid command: "+$.command)}},W=($,h,b)=>b();M.length>0&&(W=($,h,b)=>{(async()=>{for(let{name:o,callback:v,note:q}of M)try{await v($)}catch(w){$.errors.push(await new Promise(d=>h(w,o,q&&q(),d)))}})().then(b)}),k=!0;let ee=0;return{ok:!0,requestPlugins:U,runOnEndCallbacks:W,pluginRefs:{ref(){++ee===1&&r.set(a,A)},unref(){--ee===0&&r.delete(a)}}}},ue=(g,u,a,f)=>{let F={},D=n(u,F,"port",Re),M=n(u,F,"host",m),E=n(u,F,"servedir",m),T=n(u,F,"onRequest",Le),C,R=new Promise((U,k)=>{C=A=>{p.delete(f),A!==null?k(new Error(A)):U()}});return a.serve={},Y(u,F,"in serve() call"),D!==void 0&&(a.serve.port=D),M!==void 0&&(a.serve.host=M),E!==void 0&&(a.serve.servedir=E),p.set(f,{onRequest:T,onWait:C}),{wait:R,stop(){x(g,{command:"serve-stop",key:f},()=>{})}}},fe="warning",ce="silent",me=g=>{let u=s++,a=Ve(),f,{refs:F,options:D,isTTY:M,callback:E}=g;if(typeof D=="object"){let R=D.plugins;if(R!==void 0){if(!Array.isArray(R))throw new Error('"plugins" must be an array');f=R}}let T=(R,U,k,A)=>{let W=[];try{Me(W,D,{},M,fe)}catch($){}let ee=we(R,e,a,k,U);x(F,{command:"error",flags:W,error:ee},()=>{ee.detail=a.load(ee.detail),A(ee)})},C=(R,U)=>{T(R,U,void 0,k=>{E(ve("Build failed",[k],[]),null)})};if(f&&f.length>0){if(e.isSync)return C(new Error("Cannot use plugins in synchronous API calls"),"");ie(D,f,u,a,F).then(R=>{if(!R.ok)C(R.error,R.pluginName);else try{se(De(Be({},g),{key:u,details:a,logPluginError:T,requestPlugins:R.requestPlugins,runOnEndCallbacks:R.runOnEndCallbacks,pluginRefs:R.pluginRefs}))}catch(U){C(U,"")}},R=>C(R,""))}else try{se(De(Be({},g),{key:u,details:a,logPluginError:T,requestPlugins:null,runOnEndCallbacks:(R,U,k)=>k(),pluginRefs:null}))}catch(R){C(R,"")}},se=({callName:g,refs:u,serveOptions:a,options:f,isTTY:F,defaultWD:D,callback:M,key:E,details:T,logPluginError:C,requestPlugins:R,runOnEndCallbacks:U,pluginRefs:k})=>{let A={ref(){k&&k.ref(),u&&u.ref()},unref(){k&&k.unref(),u&&u.unref()}},W=!e.isBrowser,{entries:ee,flags:$,write:h,stdinContents:b,stdinResolveDir:o,absWorkingDir:v,incremental:q,nodePaths:w,watch:d,mangleCache:N}=pt(g,f,F,fe,W),B={command:"build",key:E,entries:ee,flags:$,write:h,stdinContents:b,stdinResolveDir:o,absWorkingDir:v||D,incremental:q,nodePaths:w};R&&(B.plugins=R),N&&(B.mangleCache=N);let H=a&&ue(A,a,B,E),I,_,X=(j,J)=>{j.outputFiles&&(J.outputFiles=j.outputFiles.map(mt)),j.metafile&&(J.metafile=JSON.parse(j.metafile)),j.mangleCache&&(J.mangleCache=j.mangleCache),j.writeToStdout!==void 0&&console.log(ye(j.writeToStdout).replace(/\n$/,""))},G=(j,J)=>{let Q={errors:pe(j.errors,T),warnings:pe(j.warnings,T)};X(j,Q),U(Q,C,()=>{if(Q.errors.length>0)return J(ve("Build failed",Q.errors,Q.warnings),null);if(j.rebuild){if(!I){let K=!1;I=()=>new Promise((oe,Z)=>{if(K||l)throw new Error("Cannot rebuild");x(A,{command:"rebuild",key:E},(ne,et)=>{if(ne)return J(ve("Build failed",[{pluginName:"",text:ne,location:null,notes:[],detail:void 0}],[]),null);G(et,(Te,tt)=>{Te?Z(Te):oe(tt)})})}),A.ref(),I.dispose=()=>{K||(K=!0,x(A,{command:"rebuild-dispose",key:E},()=>{}),A.unref())}}Q.rebuild=I}if(j.watch){if(!_){let K=!1;A.ref(),_=()=>{K||(K=!0,i.delete(E),x(A,{command:"watch-stop",key:E},()=>{}),A.unref())},d&&i.set(E,(oe,Z)=>{if(oe){d.onRebuild&&d.onRebuild(oe,null);return}let ne={errors:pe(Z.errors,T),warnings:pe(Z.warnings,T)};X(Z,ne),U(ne,C,()=>{if(ne.errors.length>0){d.onRebuild&&d.onRebuild(ve("Build failed",ne.errors,ne.warnings),null);return}Z.rebuildID!==void 0&&(ne.rebuild=I),ne.stop=_,d.onRebuild&&d.onRebuild(null,ne)})})}Q.stop=_}J(null,Q)})};if(h&&e.isBrowser)throw new Error('Cannot enable "write" in the browser');if(q&&e.isSync)throw new Error('Cannot use "incremental" with a synchronous build');if(d&&e.isSync)throw new Error('Cannot use "watch" with a synchronous build');x(A,B,(j,J)=>{if(j)return M(new Error(j),null);if(H){let Q=J,K=!1;A.ref();let oe={port:Q.port,host:Q.host,wait:H.wait,stop(){K||(K=!0,H.stop(),A.unref())}};return A.ref(),H.wait.then(A.unref,A.unref),M(null,oe)}return G(J,M)})};return{readFromStdout:P,afterClose:L,service:{buildOrServe:me,transform:({callName:g,refs:u,input:a,options:f,isTTY:F,fs:D,callback:M})=>{let E=Ve(),T=C=>{try{if(typeof a!="string")throw new Error('The input to "transform" must be a string');let{flags:R,mangleCache:U}=gt(g,f,F,ce),k={command:"transform",flags:R,inputFS:C!==null,input:C!==null?C:a};U&&(k.mangleCache=U),x(u,k,(A,W)=>{if(A)return M(new Error(A),null);let ee=pe(W.errors,E),$=pe(W.warnings,E),h=1,b=()=>{if(--h===0){let o={warnings:$,code:W.code,map:W.map};W.mangleCache&&(o.mangleCache=W==null?void 0:W.mangleCache),M(null,o)}};if(ee.length>0)return M(ve("Transform failed",ee,$),null);W.codeFS&&(h++,D.readFile(W.code,(o,v)=>{o!==null?M(o,null):(W.code=v,b())})),W.mapFS&&(h++,D.readFile(W.map,(o,v)=>{o!==null?M(o,null):(W.map=v,b())})),b()})}catch(R){let U=[];try{Me(U,f,{},F,ce)}catch(A){}let k=we(R,e,E,void 0,"");x(u,{command:"error",flags:U,error:k},()=>{k.detail=E.load(k.detail),M(ve("Transform failed",[k],[]),null)})}};if(typeof a=="string"&&a.length>1024*1024){let C=T;T=()=>D.writeFile(a,C)}T(null)},formatMessages:({callName:g,refs:u,messages:a,options:f,callback:F})=>{let D=he(a,"messages",null,"");if(!f)throw new Error(`Missing second argument in ${g}() call`);let M={},E=n(f,M,"kind",m),T=n(f,M,"color",z),C=n(f,M,"terminalWidth",Re);if(Y(f,M,`in ${g}() call`),E===void 0)throw new Error(`Missing "kind" in ${g}() call`);if(E!=="error"&&E!=="warning")throw new Error(`Expected "kind" to be "error" or "warning" in ${g}() call`);let R={command:"format-msgs",messages:D,isWarning:E==="warning"};T!==void 0&&(R.color=T),C!==void 0&&(R.terminalWidth=C),x(u,R,(U,k)=>{if(U)return F(new Error(U),null);F(null,k.messages)})},analyzeMetafile:({callName:g,refs:u,metafile:a,options:f,callback:F})=>{f===void 0&&(f={});let D={},M=n(f,D,"color",z),E=n(f,D,"verbose",z);Y(f,D,`in ${g}() call`);let T={command:"analyze-metafile",metafile:a};M!==void 0&&(T.color=M),E!==void 0&&(T.verbose=E),x(u,T,(C,R)=>{if(C)return F(new Error(C),null);F(null,R.result)})}}}}function Ve(){let e=new Map,t=0;return{load(r){return e.get(r)},store(r){if(r===void 0)return-1;let i=t++;return e.set(i,r),i}}}function xe(e,t,r){let i,p=!1;return()=>{if(p)return i;p=!0;try{let l=(e.stack+"").split(`
2
2
  `);l.splice(1,1);let c=Ze(t,l,r);if(c)return i={text:e.message,location:c},i}catch(l){}}}function we(e,t,r,i,p){let l="Internal error",c=null;try{l=(e&&e.message||e)+""}catch(s){}try{c=Ze(t,(e.stack+"").split(`
3
3
  `),"")}catch(s){}return{pluginName:p,text:l,location:c,notes:i?[i]:[],detail:r?r.store(e):-1}}function Ze(e,t,r){let i=" at ";if(e.readFileSync&&!t[0].startsWith(i)&&t[1].startsWith(i))for(let p=1;p<t.length;p++){let l=t[p];if(!!l.startsWith(i))for(l=l.slice(i.length);;){let c=/^(?:new |async )?\S+ \((.*)\)$/.exec(l);if(c){l=c[1];continue}if(c=/^eval at \S+ \((.*)\)(?:, \S+:\d+:\d+)?$/.exec(l),c){l=c[1];continue}if(c=/^(\S+):(\d+):(\d+)$/.exec(l),c){let s;try{s=e.readFileSync(c[1],"utf8")}catch(L){break}let y=s.split(/\r\n|\r|\n|\u2028|\u2029/)[+c[2]-1]||"",O=+c[3]-1,P=y.slice(O,O+r.length)===r?r.length:0;return{file:c[1],namespace:"file",line:+c[2],column:de(y.slice(0,O)).length,length:de(y.slice(O,O+P)).length,lineText:y+`
4
4
  `+t.slice(1).join(`
5
5
  `),suggestion:""}}break}}return null}function ve(e,t,r){let i=5,p=t.length<1?"":` with ${t.length} error${t.length<2?"":"s"}:`+t.slice(0,i+1).map((c,s)=>{if(s===i)return`
6
6
  ...`;if(!c.location)return`
7
7
  error: ${c.text}`;let{file:y,line:O,column:P}=c.location,L=c.pluginName?`[plugin: ${c.pluginName}] `:"";return`
8
- ${y}:${O}:${P}: ERROR: ${L}${c.text}`}).join(""),l=new Error(`${e}${p}`);return l.errors=t,l.warnings=r,l}function pe(e,t){for(let r of e)r.detail=t.load(r.detail);return e}function Je(e,t){if(e==null)return null;let r={},i=n(e,r,"file",m),p=n(e,r,"namespace",m),l=n(e,r,"line",Re),c=n(e,r,"column",Re),s=n(e,r,"length",Re),y=n(e,r,"lineText",m),O=n(e,r,"suggestion",m);return Y(e,r,t),{file:i||"",namespace:p||"",line:l||0,column:c||0,length:s||0,lineText:y||"",suggestion:O||""}}function he(e,t,r,i){let p=[],l=0;for(let c of e){let s={},y=n(c,s,"pluginName",m),O=n(c,s,"text",m),P=n(c,s,"location",_e),L=n(c,s,"notes",V),x=n(c,s,"detail",Ee),S=`in element ${l} of "${t}"`;Y(c,s,S);let ae=[];if(L)for(let re of L){let le={},ie=n(re,le,"text",m),ue=n(re,le,"location",_e);Y(re,le,S),ae.push({text:ie||"",location:Je(ue,S)})}p.push({pluginName:y||i,text:O||"",location:Je(P,S),notes:ae,detail:r?r.store(x):-1}),l++}return p}function ke(e,t){let r=[];for(let i of e){if(typeof i!="string")throw new Error(`${JSON.stringify(t)} must be an array of strings`);r.push(i)}return r}function mt({path:e,contents:t}){let r=null;return{path:e,contents:t,get text(){return r===null&&(r=ye(t)),r}}}var ht="0.14.21",bt=e=>Ce().build(e),wt=()=>{throw new Error('The "serve" API only works in node')},vt=(e,t)=>Ce().transform(e,t),Rt=(e,t)=>Ce().formatMessages(e,t),Ot=(e,t)=>Ce().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')},Oe,Le,Ce=()=>{if(Le)return Le;throw Oe?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=He(e||{});let t=e.wasmURL,r=e.worker!==!1;if(!t)throw new Error('Must provide the "wasmURL" option');if(t+="",Oe)throw new Error('Cannot call "initialize" more than once');return Oe=Mt(t,r),Oe.catch(()=>{Oe=void 0}),Oe},Mt=async(e,t)=>{let r=await fetch(e);if(!r.ok)throw new Error(`Failed to download ${JSON.stringify(e)}`);let i=await r.arrayBuffer(),p='{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)=>{if(typeof t=="number"&&t!==0){if(isNaN(t)){this.mem.setUint32(e+4,2146959360,!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,2146959360|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.21"],WebAssembly.instantiate(c,o.importObject).then(({instance:e})=>o.run(e))};}',l;if(t){let y=new Blob([p],{type:"text/javascript"});l=new Worker(URL.createObjectURL(y))}else{let O=new Function("postMessage",p+"var onmessage; return m => onmessage(m)")(P=>l.onmessage({data:P}));l={onmessage:null,postMessage:P=>O({data:P}),terminate(){}}}l.postMessage(i),l.onmessage=({data:y})=>c(y);let{readFromStdout:c,service:s}=Xe({writeToStdin(y){l.postMessage(y)},isSync:!1,isBrowser:!0,esbuild:Ue});Le={build:y=>new Promise((O,P)=>s.buildOrServe({callName:"build",refs:null,serveOptions:null,options:y,isTTY:!1,defaultWD:"/",callback:(L,x)=>L?P(L):O(x)})),transform:(y,O)=>new Promise((P,L)=>s.transform({callName:"transform",refs:null,input:y,options:O||{},isTTY:!1,fs:{readFile(x,S){S(new Error("Internal error"),null)},writeFile(x,S){S(null)}},callback:(x,S)=>x?L(x):P(S)})),formatMessages:(y,O)=>new Promise((P,L)=>s.formatMessages({callName:"formatMessages",refs:null,messages:y,options:O,callback:(x,S)=>x?L(x):P(S)})),analyzeMetafile:(y,O)=>new Promise((P,L)=>s.analyzeMetafile({callName:"analyzeMetafile",refs:null,metafile:typeof y=="string"?y:JSON.stringify(y),options:O,callback:(x,S)=>x?L(x):P(S)}))}};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};
8
+ ${y}:${O}:${P}: ERROR: ${L}${c.text}`}).join(""),l=new Error(`${e}${p}`);return l.errors=t,l.warnings=r,l}function pe(e,t){for(let r of e)r.detail=t.load(r.detail);return e}function Je(e,t){if(e==null)return null;let r={},i=n(e,r,"file",m),p=n(e,r,"namespace",m),l=n(e,r,"line",Re),c=n(e,r,"column",Re),s=n(e,r,"length",Re),y=n(e,r,"lineText",m),O=n(e,r,"suggestion",m);return Y(e,r,t),{file:i||"",namespace:p||"",line:l||0,column:c||0,length:s||0,lineText:y||"",suggestion:O||""}}function he(e,t,r,i){let p=[],l=0;for(let c of e){let s={},y=n(c,s,"pluginName",m),O=n(c,s,"text",m),P=n(c,s,"location",_e),L=n(c,s,"notes",V),x=n(c,s,"detail",Ee),S=`in element ${l} of "${t}"`;Y(c,s,S);let ae=[];if(L)for(let re of L){let le={},ie=n(re,le,"text",m),ue=n(re,le,"location",_e);Y(re,le,S),ae.push({text:ie||"",location:Je(ue,S)})}p.push({pluginName:y||i,text:O||"",location:Je(P,S),notes:ae,detail:r?r.store(x):-1}),l++}return p}function ke(e,t){let r=[];for(let i of e){if(typeof i!="string")throw new Error(`${JSON.stringify(t)} must be an array of strings`);r.push(i)}return r}function mt({path:e,contents:t}){let r=null;return{path:e,contents:t,get text(){return r===null&&(r=ye(t)),r}}}var ht="0.14.23",bt=e=>Ce().build(e),wt=()=>{throw new Error('The "serve" API only works in node')},vt=(e,t)=>Ce().transform(e,t),Rt=(e,t)=>Ce().formatMessages(e,t),Ot=(e,t)=>Ce().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')},Oe,Ue,Ce=()=>{if(Ue)return Ue;throw Oe?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=He(e||{});let t=e.wasmURL,r=e.worker!==!1;if(!t)throw new Error('Must provide the "wasmURL" option');if(t+="",Oe)throw new Error('Cannot call "initialize" more than once');return Oe=Mt(t,r),Oe.catch(()=>{Oe=void 0}),Oe},Mt=async(e,t)=>{let r=await fetch(e);if(!r.ok)throw new Error(`Failed to download ${JSON.stringify(e)}`);let i=await r.arrayBuffer(),p='{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+=y.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{fs:f}=global,g=new TextEncoder("utf-8"),y=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)=>{if(typeof t=="number"&&t!==0){if(isNaN(t)){this.mem.setUint32(e+4,2146959360,!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,2146959360|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 y.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);f.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=g.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=g.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(f.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.23"],WebAssembly.instantiate(c,o.importObject).then(({instance:e})=>o.run(e))};}',l;if(t){let y=new Blob([p],{type:"text/javascript"});l=new Worker(URL.createObjectURL(y))}else{let O=new Function("postMessage",p+"var onmessage; return m => onmessage(m)")(P=>l.onmessage({data:P}));l={onmessage:null,postMessage:P=>O({data:P}),terminate(){}}}l.postMessage(i),l.onmessage=({data:y})=>c(y);let{readFromStdout:c,service:s}=Xe({writeToStdin(y){l.postMessage(y)},isSync:!1,isBrowser:!0,esbuild:Pe});Ue={build:y=>new Promise((O,P)=>s.buildOrServe({callName:"build",refs:null,serveOptions:null,options:y,isTTY:!1,defaultWD:"/",callback:(L,x)=>L?P(L):O(x)})),transform:(y,O)=>new Promise((P,L)=>s.transform({callName:"transform",refs:null,input:y,options:O||{},isTTY:!1,fs:{readFile(x,S){S(new Error("Internal error"),null)},writeFile(x,S){S(null)}},callback:(x,S)=>x?L(x):P(S)})),formatMessages:(y,O)=>new Promise((P,L)=>s.formatMessages({callName:"formatMessages",refs:null,messages:y,options:O,callback:(x,S)=>x?L(x):P(S)})),analyzeMetafile:(y,O)=>new Promise((P,L)=>s.analyzeMetafile({callName:"analyzeMetafile",refs:null,metafile:typeof y=="string"?y:JSON.stringify(y),options:O,callback:(x,S)=>x?L(x):P(S)}))}},Ct=Pe;export{Ot as analyzeMetafile,Et as analyzeMetafileSync,bt as build,St as buildSync,Ct as default,Rt as formatMessages,kt as formatMessagesSync,$t as initialize,wt as serve,vt as transform,xt as transformSync,ht as version};
@@ -66,6 +66,7 @@ __export(browser_exports, {
66
66
  analyzeMetafileSync: () => analyzeMetafileSync,
67
67
  build: () => build,
68
68
  buildSync: () => buildSync,
69
+ default: () => browser_default,
69
70
  formatMessages: () => formatMessages,
70
71
  formatMessagesSync: () => formatMessagesSync,
71
72
  initialize: () => initialize,
@@ -760,8 +761,8 @@ function createChannel(streamIn) {
760
761
  if (isFirstPacket) {
761
762
  isFirstPacket = false;
762
763
  let binaryVersion = String.fromCharCode(...bytes);
763
- if (binaryVersion !== "0.14.21") {
764
- throw new Error(`Cannot start service: Host version "${"0.14.21"}" does not match binary version ${JSON.stringify(binaryVersion)}`);
764
+ if (binaryVersion !== "0.14.23") {
765
+ throw new Error(`Cannot start service: Host version "${"0.14.23"}" does not match binary version ${JSON.stringify(binaryVersion)}`);
765
766
  }
766
767
  return;
767
768
  }
@@ -1706,7 +1707,7 @@ function convertOutputFiles({ path, contents }) {
1706
1707
  }
1707
1708
 
1708
1709
  // lib/npm/browser.ts
1709
- var version = "0.14.21";
1710
+ var version = "0.14.23";
1710
1711
  var build = (options) => ensureServiceIsRunning().build(options);
1711
1712
  var serve = () => {
1712
1713
  throw new Error(`The "serve" API only works in node`);
@@ -1919,7 +1920,10 @@ var startRunningService = (wasmURL, useWorker) => __async(void 0, null, function
1919
1920
  throw new Error("global.TextDecoder is not available, polyfill required");
1920
1921
  }
1921
1922
 
1922
- // End of polyfills for common API.
1923
+
1924
+ // Make sure Go sees the shadowed "fs" global
1925
+ const { fs } = global;
1926
+
1923
1927
 
1924
1928
  const encoder = new TextEncoder("utf-8");
1925
1929
  const decoder = new TextDecoder("utf-8");
@@ -2463,7 +2467,7 @@ onmessage = ({ data: wasm }) => {
2463
2467
  callback(null, count);
2464
2468
  };
2465
2469
  let go = new global.Go();
2466
- go.argv = ["", \`--service=\${"0.14.21"}\`];
2470
+ go.argv = ["", \`--service=\${"0.14.23"}\`];
2467
2471
  WebAssembly.instantiate(wasm, go.importObject).then(({ instance }) => go.run(instance));
2468
2472
  };}`;
2469
2473
  let worker;
@@ -2532,5 +2536,6 @@ onmessage = ({ data: wasm }) => {
2532
2536
  }))
2533
2537
  };
2534
2538
  });
2539
+ var browser_default = browser_exports;
2535
2540
  module.exports = __toCommonJS(browser_exports);
2536
2541
  })(typeof module==="object"?module:{set exports(x){(typeof self!=="undefined"?self:this).esbuild=x}});