cdk-comprehend-s3olap 2.0.99 → 2.0.101

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.
Files changed (28) hide show
  1. package/.jsii +4 -4
  2. package/lib/cdk-comprehend-s3olap.js +2 -2
  3. package/lib/comprehend-lambdas.js +2 -2
  4. package/lib/iam-roles.js +4 -4
  5. package/node_modules/aws-sdk/CHANGELOG.md +7 -1
  6. package/node_modules/aws-sdk/README.md +1 -1
  7. package/node_modules/aws-sdk/apis/cloudtrail-2013-11-01.min.json +247 -3
  8. package/node_modules/aws-sdk/apis/cloudtrail-2013-11-01.paginators.json +12 -0
  9. package/node_modules/aws-sdk/apis/ec2-2016-11-15.min.json +1075 -1058
  10. package/node_modules/aws-sdk/apis/mediaconnect-2018-11-14.min.json +21 -0
  11. package/node_modules/aws-sdk/clients/cloudtrail.d.ts +335 -6
  12. package/node_modules/aws-sdk/clients/ec2.d.ts +53 -37
  13. package/node_modules/aws-sdk/clients/mediaconnect.d.ts +25 -1
  14. package/node_modules/aws-sdk/clients/rds.d.ts +18 -18
  15. package/node_modules/aws-sdk/dist/aws-sdk-core-react-native.js +1 -1
  16. package/node_modules/aws-sdk/dist/aws-sdk-react-native.js +5 -5
  17. package/node_modules/aws-sdk/dist/aws-sdk.js +1337 -1064
  18. package/node_modules/aws-sdk/dist/aws-sdk.min.js +82 -82
  19. package/node_modules/aws-sdk/lib/core.js +1 -1
  20. package/node_modules/aws-sdk/package.json +1 -1
  21. package/node_modules/esbuild/bin/esbuild +2 -1
  22. package/node_modules/esbuild/install.js +5 -4
  23. package/node_modules/esbuild/lib/main.d.ts +2 -0
  24. package/node_modules/esbuild/lib/main.js +606 -663
  25. package/node_modules/esbuild/package.json +23 -22
  26. package/node_modules/esbuild-linux-64/bin/esbuild +0 -0
  27. package/node_modules/esbuild-linux-64/package.json +1 -1
  28. package/package.json +7 -7
@@ -206,6 +206,8 @@ function writeUInt32LE(buffer, value, offset) {
206
206
  }
207
207
 
208
208
  // lib/shared/common.ts
209
+ var buildLogLevelDefault = "warning";
210
+ var transformLogLevelDefault = "silent";
209
211
  function validateTarget(target) {
210
212
  target += "";
211
213
  if (target.indexOf(",") >= 0)
@@ -306,6 +308,7 @@ function pushCommonFlags(flags, options, keys) {
306
308
  let jsxFragment = getFlag(options, keys, "jsxFragment", mustBeString);
307
309
  let jsxImportSource = getFlag(options, keys, "jsxImportSource", mustBeString);
308
310
  let jsxDev = getFlag(options, keys, "jsxDev", mustBeBoolean);
311
+ let jsxSideEffects = getFlag(options, keys, "jsxSideEffects", mustBeBoolean);
309
312
  let define = getFlag(options, keys, "define", mustBeObject);
310
313
  let logOverride = getFlag(options, keys, "logOverride", mustBeObject);
311
314
  let supported = getFlag(options, keys, "supported", mustBeObject);
@@ -363,6 +366,8 @@ function pushCommonFlags(flags, options, keys) {
363
366
  flags.push(`--jsx-import-source=${jsxImportSource}`);
364
367
  if (jsxDev)
365
368
  flags.push(`--jsx-dev`);
369
+ if (jsxSideEffects)
370
+ flags.push(`--jsx-side-effects`);
366
371
  if (define) {
367
372
  for (let key in define) {
368
373
  if (key.indexOf("=") >= 0)
@@ -616,11 +621,9 @@ function flagsForTransformOptions(callName, options, isTTY2, logLevelDefault) {
616
621
  };
617
622
  }
618
623
  function createChannel(streamIn) {
619
- let responseCallbacks = /* @__PURE__ */ new Map();
620
- let pluginCallbacks = /* @__PURE__ */ new Map();
621
- let watchCallbacks = /* @__PURE__ */ new Map();
622
- let serveCallbacks = /* @__PURE__ */ new Map();
623
- let closeData = null;
624
+ const requestCallbacksByKey = {};
625
+ const closeData = { didClose: false, reason: "" };
626
+ let responseCallbacks = {};
624
627
  let nextRequestID = 0;
625
628
  let nextBuildKey = 0;
626
629
  let stdout = new Uint8Array(16 * 1024);
@@ -650,105 +653,53 @@ function createChannel(streamIn) {
650
653
  }
651
654
  };
652
655
  let afterClose = (error) => {
653
- closeData = { reason: error ? ": " + (error.message || error) : "" };
656
+ closeData.didClose = true;
657
+ if (error)
658
+ closeData.reason = ": " + (error.message || error);
654
659
  const text = "The service was stopped" + closeData.reason;
655
- for (let callback of responseCallbacks.values()) {
656
- callback(text, null);
660
+ for (let id in responseCallbacks) {
661
+ responseCallbacks[id](text, null);
657
662
  }
658
- responseCallbacks.clear();
659
- for (let callbacks of serveCallbacks.values()) {
660
- callbacks.onWait(text);
661
- }
662
- serveCallbacks.clear();
663
- for (let callback of watchCallbacks.values()) {
664
- try {
665
- callback(new Error(text), null);
666
- } catch (e) {
667
- console.error(e);
668
- }
669
- }
670
- watchCallbacks.clear();
663
+ responseCallbacks = {};
671
664
  };
672
665
  let sendRequest = (refs, value, callback) => {
673
- if (closeData)
666
+ if (closeData.didClose)
674
667
  return callback("The service is no longer running" + closeData.reason, null);
675
668
  let id = nextRequestID++;
676
- responseCallbacks.set(id, (error, response) => {
669
+ responseCallbacks[id] = (error, response) => {
677
670
  try {
678
671
  callback(error, response);
679
672
  } finally {
680
673
  if (refs)
681
674
  refs.unref();
682
675
  }
683
- });
676
+ };
684
677
  if (refs)
685
678
  refs.ref();
686
679
  streamIn.writeToStdin(encodePacket({ id, isRequest: true, value }));
687
680
  };
688
681
  let sendResponse = (id, value) => {
689
- if (closeData)
682
+ if (closeData.didClose)
690
683
  throw new Error("The service is no longer running" + closeData.reason);
691
684
  streamIn.writeToStdin(encodePacket({ id, isRequest: false, value }));
692
685
  };
693
686
  let handleRequest = async (id, request) => {
694
687
  try {
695
- switch (request.command) {
696
- case "ping": {
697
- sendResponse(id, {});
698
- break;
699
- }
700
- case "on-start": {
701
- let callback = pluginCallbacks.get(request.key);
702
- if (!callback)
703
- sendResponse(id, {});
704
- else
705
- sendResponse(id, await callback(request));
706
- break;
707
- }
708
- case "on-resolve": {
709
- let callback = pluginCallbacks.get(request.key);
710
- if (!callback)
711
- sendResponse(id, {});
712
- else
713
- sendResponse(id, await callback(request));
714
- break;
715
- }
716
- case "on-load": {
717
- let callback = pluginCallbacks.get(request.key);
718
- if (!callback)
719
- sendResponse(id, {});
720
- else
721
- sendResponse(id, await callback(request));
722
- break;
723
- }
724
- case "serve-request": {
725
- let callbacks = serveCallbacks.get(request.key);
726
- if (callbacks && callbacks.onRequest)
727
- callbacks.onRequest(request.args);
728
- sendResponse(id, {});
729
- break;
730
- }
731
- case "serve-wait": {
732
- let callbacks = serveCallbacks.get(request.key);
733
- if (callbacks)
734
- callbacks.onWait(request.error);
735
- sendResponse(id, {});
736
- break;
737
- }
738
- case "watch-rebuild": {
739
- let callback = watchCallbacks.get(request.key);
740
- try {
741
- if (callback)
742
- callback(null, request.args);
743
- } catch (err) {
744
- console.error(err);
688
+ if (request.command === "ping") {
689
+ sendResponse(id, {});
690
+ return;
691
+ }
692
+ if (typeof request.key === "number") {
693
+ const requestCallbacks = requestCallbacksByKey[request.key];
694
+ if (requestCallbacks) {
695
+ const callback = requestCallbacks[request.command];
696
+ if (callback) {
697
+ await callback(id, request);
698
+ return;
745
699
  }
746
- sendResponse(id, {});
747
- break;
748
700
  }
749
- default:
750
- throw new Error(`Invalid command: ` + request.command);
751
701
  }
702
+ throw new Error(`Invalid command: ` + request.command);
752
703
  } catch (e) {
753
704
  sendResponse(id, { errors: [extractErrorMessageV8(e, streamIn, null, void 0, "")] });
754
705
  }
@@ -758,8 +709,8 @@ function createChannel(streamIn) {
758
709
  if (isFirstPacket) {
759
710
  isFirstPacket = false;
760
711
  let binaryVersion = String.fromCharCode(...bytes);
761
- if (binaryVersion !== "0.15.7") {
762
- throw new Error(`Cannot start service: Host version "${"0.15.7"}" does not match binary version ${JSON.stringify(binaryVersion)}`);
712
+ if (binaryVersion !== "0.15.8") {
713
+ throw new Error(`Cannot start service: Host version "${"0.15.8"}" does not match binary version ${JSON.stringify(binaryVersion)}`);
763
714
  }
764
715
  return;
765
716
  }
@@ -767,452 +718,259 @@ function createChannel(streamIn) {
767
718
  if (packet.isRequest) {
768
719
  handleRequest(packet.id, packet.value);
769
720
  } else {
770
- let callback = responseCallbacks.get(packet.id);
771
- responseCallbacks.delete(packet.id);
721
+ let callback = responseCallbacks[packet.id];
722
+ delete responseCallbacks[packet.id];
772
723
  if (packet.value.error)
773
724
  callback(packet.value.error, {});
774
725
  else
775
726
  callback(null, packet.value);
776
727
  }
777
728
  };
778
- let handlePlugins = async (initialOptions, plugins, buildKey, stash, refs) => {
779
- let onStartCallbacks = [];
780
- let onEndCallbacks = [];
781
- let onResolveCallbacks = {};
782
- let onLoadCallbacks = {};
783
- let nextCallbackID = 0;
784
- let i = 0;
785
- let requestPlugins = [];
786
- let isSetupDone = false;
787
- plugins = [...plugins];
788
- for (let item of plugins) {
789
- let keys = {};
790
- if (typeof item !== "object")
791
- throw new Error(`Plugin at index ${i} must be an object`);
792
- const name = getFlag(item, keys, "name", mustBeString);
793
- if (typeof name !== "string" || name === "")
794
- throw new Error(`Plugin at index ${i} is missing a name`);
729
+ let buildOrServe = ({ callName, refs, serveOptions, options, isTTY: isTTY2, defaultWD: defaultWD2, callback }) => {
730
+ let refCount = 0;
731
+ const buildKey = nextBuildKey++;
732
+ const requestCallbacks = {};
733
+ const buildRefs = {
734
+ ref() {
735
+ if (++refCount === 1) {
736
+ if (refs)
737
+ refs.ref();
738
+ }
739
+ },
740
+ unref() {
741
+ if (--refCount === 0) {
742
+ delete requestCallbacksByKey[buildKey];
743
+ if (refs)
744
+ refs.unref();
745
+ }
746
+ }
747
+ };
748
+ requestCallbacksByKey[buildKey] = requestCallbacks;
749
+ buildRefs.ref();
750
+ buildOrServeImpl(
751
+ callName,
752
+ buildKey,
753
+ sendRequest,
754
+ sendResponse,
755
+ buildRefs,
756
+ streamIn,
757
+ requestCallbacks,
758
+ options,
759
+ serveOptions,
760
+ isTTY2,
761
+ defaultWD2,
762
+ closeData,
763
+ (err, res) => {
764
+ try {
765
+ callback(err, res);
766
+ } finally {
767
+ buildRefs.unref();
768
+ }
769
+ }
770
+ );
771
+ };
772
+ let transform2 = ({ callName, refs, input, options, isTTY: isTTY2, fs: fs3, callback }) => {
773
+ const details = createObjectStash();
774
+ let start = (inputPath) => {
795
775
  try {
796
- let setup = getFlag(item, keys, "setup", mustBeFunction);
797
- if (typeof setup !== "function")
798
- throw new Error(`Plugin is missing a setup function`);
799
- checkForInvalidFlags(item, keys, `on plugin ${JSON.stringify(name)}`);
800
- let plugin = {
801
- name,
802
- onResolve: [],
803
- onLoad: []
804
- };
805
- i++;
806
- let resolve = (path3, options = {}) => {
807
- if (!isSetupDone)
808
- throw new Error('Cannot call "resolve" before plugin setup has completed');
809
- if (typeof path3 !== "string")
810
- throw new Error(`The path to resolve must be a string`);
811
- let keys2 = /* @__PURE__ */ Object.create(null);
812
- let pluginName = getFlag(options, keys2, "pluginName", mustBeString);
813
- let importer = getFlag(options, keys2, "importer", mustBeString);
814
- let namespace = getFlag(options, keys2, "namespace", mustBeString);
815
- let resolveDir = getFlag(options, keys2, "resolveDir", mustBeString);
816
- let kind = getFlag(options, keys2, "kind", mustBeString);
817
- let pluginData = getFlag(options, keys2, "pluginData", canBeAnything);
818
- checkForInvalidFlags(options, keys2, "in resolve() call");
819
- return new Promise((resolve2, reject) => {
820
- const request = {
821
- command: "resolve",
822
- path: path3,
823
- key: buildKey,
824
- pluginName: name
825
- };
826
- if (pluginName != null)
827
- request.pluginName = pluginName;
828
- if (importer != null)
829
- request.importer = importer;
830
- if (namespace != null)
831
- request.namespace = namespace;
832
- if (resolveDir != null)
833
- request.resolveDir = resolveDir;
834
- if (kind != null)
835
- request.kind = kind;
836
- if (pluginData != null)
837
- request.pluginData = stash.store(pluginData);
838
- sendRequest(refs, request, (error, response) => {
839
- if (error !== null)
840
- reject(new Error(error));
841
- else
842
- resolve2({
843
- errors: replaceDetailsInMessages(response.errors, stash),
844
- warnings: replaceDetailsInMessages(response.warnings, stash),
845
- path: response.path,
846
- external: response.external,
847
- sideEffects: response.sideEffects,
848
- namespace: response.namespace,
849
- suffix: response.suffix,
850
- pluginData: stash.load(response.pluginData)
851
- });
852
- });
853
- });
776
+ if (typeof input !== "string" && !(input instanceof Uint8Array))
777
+ throw new Error('The input to "transform" must be a string or a Uint8Array');
778
+ let {
779
+ flags,
780
+ mangleCache
781
+ } = flagsForTransformOptions(callName, options, isTTY2, transformLogLevelDefault);
782
+ let request = {
783
+ command: "transform",
784
+ flags,
785
+ inputFS: inputPath !== null,
786
+ input: inputPath !== null ? encodeUTF8(inputPath) : typeof input === "string" ? encodeUTF8(input) : input
854
787
  };
855
- let promise = setup({
856
- initialOptions,
857
- resolve,
858
- onStart(callback2) {
859
- let registeredText = `This error came from the "onStart" callback registered here:`;
860
- let registeredNote = extractCallerV8(new Error(registeredText), streamIn, "onStart");
861
- onStartCallbacks.push({ name, callback: callback2, note: registeredNote });
862
- },
863
- onEnd(callback2) {
864
- let registeredText = `This error came from the "onEnd" callback registered here:`;
865
- let registeredNote = extractCallerV8(new Error(registeredText), streamIn, "onEnd");
866
- onEndCallbacks.push({ name, callback: callback2, note: registeredNote });
867
- },
868
- onResolve(options, callback2) {
869
- let registeredText = `This error came from the "onResolve" callback registered here:`;
870
- let registeredNote = extractCallerV8(new Error(registeredText), streamIn, "onResolve");
871
- let keys2 = {};
872
- let filter = getFlag(options, keys2, "filter", mustBeRegExp);
873
- let namespace = getFlag(options, keys2, "namespace", mustBeString);
874
- checkForInvalidFlags(options, keys2, `in onResolve() call for plugin ${JSON.stringify(name)}`);
875
- if (filter == null)
876
- throw new Error(`onResolve() call is missing a filter`);
877
- let id = nextCallbackID++;
878
- onResolveCallbacks[id] = { name, callback: callback2, note: registeredNote };
879
- plugin.onResolve.push({ id, filter: filter.source, namespace: namespace || "" });
880
- },
881
- onLoad(options, callback2) {
882
- let registeredText = `This error came from the "onLoad" callback registered here:`;
883
- let registeredNote = extractCallerV8(new Error(registeredText), streamIn, "onLoad");
884
- let keys2 = {};
885
- let filter = getFlag(options, keys2, "filter", mustBeRegExp);
886
- let namespace = getFlag(options, keys2, "namespace", mustBeString);
887
- checkForInvalidFlags(options, keys2, `in onLoad() call for plugin ${JSON.stringify(name)}`);
888
- if (filter == null)
889
- throw new Error(`onLoad() call is missing a filter`);
890
- let id = nextCallbackID++;
891
- onLoadCallbacks[id] = { name, callback: callback2, note: registeredNote };
892
- plugin.onLoad.push({ id, filter: filter.source, namespace: namespace || "" });
893
- },
894
- esbuild: streamIn.esbuild
895
- });
896
- if (promise)
897
- await promise;
898
- requestPlugins.push(plugin);
899
- } catch (e) {
900
- return { ok: false, error: e, pluginName: name };
901
- }
902
- }
903
- const callback = async (request) => {
904
- switch (request.command) {
905
- case "on-start": {
906
- let response = { errors: [], warnings: [] };
907
- await Promise.all(onStartCallbacks.map(async ({ name, callback: callback2, note }) => {
908
- try {
909
- let result = await callback2();
910
- if (result != null) {
911
- if (typeof result !== "object")
912
- throw new Error(`Expected onStart() callback in plugin ${JSON.stringify(name)} to return an object`);
913
- let keys = {};
914
- let errors = getFlag(result, keys, "errors", mustBeArray);
915
- let warnings = getFlag(result, keys, "warnings", mustBeArray);
916
- checkForInvalidFlags(result, keys, `from onStart() callback in plugin ${JSON.stringify(name)}`);
917
- if (errors != null)
918
- response.errors.push(...sanitizeMessages(errors, "errors", stash, name));
919
- if (warnings != null)
920
- response.warnings.push(...sanitizeMessages(warnings, "warnings", stash, name));
921
- }
922
- } catch (e) {
923
- response.errors.push(extractErrorMessageV8(e, streamIn, stash, note && note(), name));
788
+ if (mangleCache)
789
+ request.mangleCache = mangleCache;
790
+ sendRequest(refs, request, (error, response) => {
791
+ if (error)
792
+ return callback(new Error(error), null);
793
+ let errors = replaceDetailsInMessages(response.errors, details);
794
+ let warnings = replaceDetailsInMessages(response.warnings, details);
795
+ let outstanding = 1;
796
+ let next = () => {
797
+ if (--outstanding === 0) {
798
+ let result = { warnings, code: response.code, map: response.map };
799
+ if (response.mangleCache)
800
+ result.mangleCache = response == null ? void 0 : response.mangleCache;
801
+ callback(null, result);
924
802
  }
925
- }));
926
- return response;
927
- }
928
- case "on-resolve": {
929
- let response = {}, name = "", callback2, note;
930
- for (let id of request.ids) {
931
- try {
932
- ({ name, callback: callback2, note } = onResolveCallbacks[id]);
933
- let result = await callback2({
934
- path: request.path,
935
- importer: request.importer,
936
- namespace: request.namespace,
937
- resolveDir: request.resolveDir,
938
- kind: request.kind,
939
- pluginData: stash.load(request.pluginData)
940
- });
941
- if (result != null) {
942
- if (typeof result !== "object")
943
- throw new Error(`Expected onResolve() callback in plugin ${JSON.stringify(name)} to return an object`);
944
- let keys = {};
945
- let pluginName = getFlag(result, keys, "pluginName", mustBeString);
946
- let path3 = getFlag(result, keys, "path", mustBeString);
947
- let namespace = getFlag(result, keys, "namespace", mustBeString);
948
- let suffix = getFlag(result, keys, "suffix", mustBeString);
949
- let external = getFlag(result, keys, "external", mustBeBoolean);
950
- let sideEffects = getFlag(result, keys, "sideEffects", mustBeBoolean);
951
- let pluginData = getFlag(result, keys, "pluginData", canBeAnything);
952
- let errors = getFlag(result, keys, "errors", mustBeArray);
953
- let warnings = getFlag(result, keys, "warnings", mustBeArray);
954
- let watchFiles = getFlag(result, keys, "watchFiles", mustBeArray);
955
- let watchDirs = getFlag(result, keys, "watchDirs", mustBeArray);
956
- checkForInvalidFlags(result, keys, `from onResolve() callback in plugin ${JSON.stringify(name)}`);
957
- response.id = id;
958
- if (pluginName != null)
959
- response.pluginName = pluginName;
960
- if (path3 != null)
961
- response.path = path3;
962
- if (namespace != null)
963
- response.namespace = namespace;
964
- if (suffix != null)
965
- response.suffix = suffix;
966
- if (external != null)
967
- response.external = external;
968
- if (sideEffects != null)
969
- response.sideEffects = sideEffects;
970
- if (pluginData != null)
971
- response.pluginData = stash.store(pluginData);
972
- if (errors != null)
973
- response.errors = sanitizeMessages(errors, "errors", stash, name);
974
- if (warnings != null)
975
- response.warnings = sanitizeMessages(warnings, "warnings", stash, name);
976
- if (watchFiles != null)
977
- response.watchFiles = sanitizeStringArray(watchFiles, "watchFiles");
978
- if (watchDirs != null)
979
- response.watchDirs = sanitizeStringArray(watchDirs, "watchDirs");
980
- break;
803
+ };
804
+ if (errors.length > 0)
805
+ return callback(failureErrorWithLog("Transform failed", errors, warnings), null);
806
+ if (response.codeFS) {
807
+ outstanding++;
808
+ fs3.readFile(response.code, (err, contents) => {
809
+ if (err !== null) {
810
+ callback(err, null);
811
+ } else {
812
+ response.code = contents;
813
+ next();
981
814
  }
982
- } catch (e) {
983
- return { id, errors: [extractErrorMessageV8(e, streamIn, stash, note && note(), name)] };
984
- }
815
+ });
985
816
  }
986
- return response;
987
- }
988
- case "on-load": {
989
- let response = {}, name = "", callback2, note;
990
- for (let id of request.ids) {
991
- try {
992
- ({ name, callback: callback2, note } = onLoadCallbacks[id]);
993
- let result = await callback2({
994
- path: request.path,
995
- namespace: request.namespace,
996
- suffix: request.suffix,
997
- pluginData: stash.load(request.pluginData)
998
- });
999
- if (result != null) {
1000
- if (typeof result !== "object")
1001
- throw new Error(`Expected onLoad() callback in plugin ${JSON.stringify(name)} to return an object`);
1002
- let keys = {};
1003
- let pluginName = getFlag(result, keys, "pluginName", mustBeString);
1004
- let contents = getFlag(result, keys, "contents", mustBeStringOrUint8Array);
1005
- let resolveDir = getFlag(result, keys, "resolveDir", mustBeString);
1006
- let pluginData = getFlag(result, keys, "pluginData", canBeAnything);
1007
- let loader = getFlag(result, keys, "loader", mustBeString);
1008
- let errors = getFlag(result, keys, "errors", mustBeArray);
1009
- let warnings = getFlag(result, keys, "warnings", mustBeArray);
1010
- let watchFiles = getFlag(result, keys, "watchFiles", mustBeArray);
1011
- let watchDirs = getFlag(result, keys, "watchDirs", mustBeArray);
1012
- checkForInvalidFlags(result, keys, `from onLoad() callback in plugin ${JSON.stringify(name)}`);
1013
- response.id = id;
1014
- if (pluginName != null)
1015
- response.pluginName = pluginName;
1016
- if (contents instanceof Uint8Array)
1017
- response.contents = contents;
1018
- else if (contents != null)
1019
- response.contents = encodeUTF8(contents);
1020
- if (resolveDir != null)
1021
- response.resolveDir = resolveDir;
1022
- if (pluginData != null)
1023
- response.pluginData = stash.store(pluginData);
1024
- if (loader != null)
1025
- response.loader = loader;
1026
- if (errors != null)
1027
- response.errors = sanitizeMessages(errors, "errors", stash, name);
1028
- if (warnings != null)
1029
- response.warnings = sanitizeMessages(warnings, "warnings", stash, name);
1030
- if (watchFiles != null)
1031
- response.watchFiles = sanitizeStringArray(watchFiles, "watchFiles");
1032
- if (watchDirs != null)
1033
- response.watchDirs = sanitizeStringArray(watchDirs, "watchDirs");
1034
- break;
817
+ if (response.mapFS) {
818
+ outstanding++;
819
+ fs3.readFile(response.map, (err, contents) => {
820
+ if (err !== null) {
821
+ callback(err, null);
822
+ } else {
823
+ response.map = contents;
824
+ next();
1035
825
  }
1036
- } catch (e) {
1037
- return { id, errors: [extractErrorMessageV8(e, streamIn, stash, note && note(), name)] };
1038
- }
826
+ });
1039
827
  }
1040
- return response;
828
+ next();
829
+ });
830
+ } catch (e) {
831
+ let flags = [];
832
+ try {
833
+ pushLogFlags(flags, options, {}, isTTY2, transformLogLevelDefault);
834
+ } catch {
1041
835
  }
1042
- default:
1043
- throw new Error(`Invalid command: ` + request.command);
836
+ const error = extractErrorMessageV8(e, streamIn, details, void 0, "");
837
+ sendRequest(refs, { command: "error", flags, error }, () => {
838
+ error.detail = details.load(error.detail);
839
+ callback(failureErrorWithLog("Transform failed", [error], []), null);
840
+ });
1044
841
  }
1045
842
  };
1046
- let runOnEndCallbacks = (result, logPluginError, done) => done();
1047
- if (onEndCallbacks.length > 0) {
1048
- runOnEndCallbacks = (result, logPluginError, done) => {
1049
- (async () => {
1050
- for (const { name, callback: callback2, note } of onEndCallbacks) {
1051
- try {
1052
- await callback2(result);
1053
- } catch (e) {
1054
- result.errors.push(await new Promise((resolve) => logPluginError(e, name, note && note(), resolve)));
1055
- }
1056
- }
1057
- })().then(done);
1058
- };
843
+ if ((typeof input === "string" || input instanceof Uint8Array) && input.length > 1024 * 1024) {
844
+ let next = start;
845
+ start = () => fs3.writeFile(input, next);
1059
846
  }
1060
- isSetupDone = true;
1061
- let refCount = 0;
1062
- return {
1063
- ok: true,
1064
- requestPlugins,
1065
- runOnEndCallbacks,
1066
- pluginRefs: {
1067
- ref() {
1068
- if (++refCount === 1)
1069
- pluginCallbacks.set(buildKey, callback);
1070
- },
1071
- unref() {
1072
- if (--refCount === 0)
1073
- pluginCallbacks.delete(buildKey);
1074
- }
1075
- }
1076
- };
847
+ start(null);
1077
848
  };
1078
- let buildServeData = (refs, options, request, key) => {
849
+ let formatMessages2 = ({ callName, refs, messages, options, callback }) => {
850
+ let result = sanitizeMessages(messages, "messages", null, "");
851
+ if (!options)
852
+ throw new Error(`Missing second argument in ${callName}() call`);
1079
853
  let keys = {};
1080
- let port = getFlag(options, keys, "port", mustBeInteger);
1081
- let host = getFlag(options, keys, "host", mustBeString);
1082
- let servedir = getFlag(options, keys, "servedir", mustBeString);
1083
- let onRequest = getFlag(options, keys, "onRequest", mustBeFunction);
1084
- let onWait;
1085
- let wait = new Promise((resolve, reject) => {
1086
- onWait = (error) => {
1087
- serveCallbacks.delete(key);
1088
- if (error !== null)
1089
- reject(new Error(error));
1090
- else
1091
- resolve();
1092
- };
1093
- });
1094
- request.serve = {};
1095
- checkForInvalidFlags(options, keys, `in serve() call`);
1096
- if (port !== void 0)
1097
- request.serve.port = port;
1098
- if (host !== void 0)
1099
- request.serve.host = host;
1100
- if (servedir !== void 0)
1101
- request.serve.servedir = servedir;
1102
- serveCallbacks.set(key, {
1103
- onRequest,
1104
- onWait
854
+ let kind = getFlag(options, keys, "kind", mustBeString);
855
+ let color = getFlag(options, keys, "color", mustBeBoolean);
856
+ let terminalWidth = getFlag(options, keys, "terminalWidth", mustBeInteger);
857
+ checkForInvalidFlags(options, keys, `in ${callName}() call`);
858
+ if (kind === void 0)
859
+ throw new Error(`Missing "kind" in ${callName}() call`);
860
+ if (kind !== "error" && kind !== "warning")
861
+ throw new Error(`Expected "kind" to be "error" or "warning" in ${callName}() call`);
862
+ let request = {
863
+ command: "format-msgs",
864
+ messages: result,
865
+ isWarning: kind === "warning"
866
+ };
867
+ if (color !== void 0)
868
+ request.color = color;
869
+ if (terminalWidth !== void 0)
870
+ request.terminalWidth = terminalWidth;
871
+ sendRequest(refs, request, (error, response) => {
872
+ if (error)
873
+ return callback(new Error(error), null);
874
+ callback(null, response.messages);
1105
875
  });
1106
- return {
1107
- wait,
1108
- stop() {
1109
- sendRequest(refs, { command: "serve-stop", key }, () => {
1110
- });
1111
- }
876
+ };
877
+ let analyzeMetafile2 = ({ callName, refs, metafile, options, callback }) => {
878
+ if (options === void 0)
879
+ options = {};
880
+ let keys = {};
881
+ let color = getFlag(options, keys, "color", mustBeBoolean);
882
+ let verbose = getFlag(options, keys, "verbose", mustBeBoolean);
883
+ checkForInvalidFlags(options, keys, `in ${callName}() call`);
884
+ let request = {
885
+ command: "analyze-metafile",
886
+ metafile
1112
887
  };
888
+ if (color !== void 0)
889
+ request.color = color;
890
+ if (verbose !== void 0)
891
+ request.verbose = verbose;
892
+ sendRequest(refs, request, (error, response) => {
893
+ if (error)
894
+ return callback(new Error(error), null);
895
+ callback(null, response.result);
896
+ });
1113
897
  };
1114
- const buildLogLevelDefault = "warning";
1115
- const transformLogLevelDefault = "silent";
1116
- let buildOrServe = (args) => {
1117
- let key = nextBuildKey++;
1118
- const details = createObjectStash();
1119
- let plugins;
1120
- let { refs, options, isTTY: isTTY2, callback } = args;
1121
- if (typeof options === "object") {
1122
- let value = options.plugins;
1123
- if (value !== void 0) {
1124
- if (!Array.isArray(value))
1125
- throw new Error(`"plugins" must be an array`);
1126
- plugins = value;
1127
- }
898
+ return {
899
+ readFromStdout,
900
+ afterClose,
901
+ service: {
902
+ buildOrServe,
903
+ transform: transform2,
904
+ formatMessages: formatMessages2,
905
+ analyzeMetafile: analyzeMetafile2
1128
906
  }
1129
- let logPluginError = (e, pluginName, note, done) => {
1130
- let flags = [];
1131
- try {
1132
- pushLogFlags(flags, options, {}, isTTY2, buildLogLevelDefault);
1133
- } catch {
1134
- }
1135
- const message = extractErrorMessageV8(e, streamIn, details, note, pluginName);
1136
- sendRequest(refs, { command: "error", flags, error: message }, () => {
1137
- message.detail = details.load(message.detail);
1138
- done(message);
1139
- });
1140
- };
1141
- let handleError = (e, pluginName) => {
1142
- logPluginError(e, pluginName, void 0, (error) => {
1143
- callback(failureErrorWithLog("Build failed", [error], []), null);
1144
- });
1145
- };
1146
- if (plugins && plugins.length > 0) {
1147
- if (streamIn.isSync)
1148
- return handleError(new Error("Cannot use plugins in synchronous API calls"), "");
1149
- handlePlugins(options, plugins, key, details, refs).then(
1150
- (result) => {
1151
- if (!result.ok) {
1152
- handleError(result.error, result.pluginName);
1153
- } else {
1154
- try {
1155
- buildOrServeContinue({
1156
- ...args,
1157
- key,
1158
- details,
1159
- logPluginError,
1160
- requestPlugins: result.requestPlugins,
1161
- runOnEndCallbacks: result.runOnEndCallbacks,
1162
- pluginRefs: result.pluginRefs
1163
- });
1164
- } catch (e) {
1165
- handleError(e, "");
1166
- }
1167
- }
1168
- },
1169
- (e) => handleError(e, "")
1170
- );
1171
- } else {
1172
- try {
1173
- buildOrServeContinue({
1174
- ...args,
1175
- key,
1176
- details,
1177
- logPluginError,
1178
- requestPlugins: null,
1179
- runOnEndCallbacks: (result, logPluginError2, done) => done(),
1180
- pluginRefs: null
1181
- });
1182
- } catch (e) {
1183
- handleError(e, "");
1184
- }
907
+ };
908
+ }
909
+ function buildOrServeImpl(callName, buildKey, sendRequest, sendResponse, refs, streamIn, requestCallbacks, options, serveOptions, isTTY2, defaultWD2, closeData, callback) {
910
+ const details = createObjectStash();
911
+ const logPluginError = (e, pluginName, note, done) => {
912
+ const flags = [];
913
+ try {
914
+ pushLogFlags(flags, options, {}, isTTY2, buildLogLevelDefault);
915
+ } catch {
1185
916
  }
917
+ const message = extractErrorMessageV8(e, streamIn, details, note, pluginName);
918
+ sendRequest(refs, { command: "error", flags, error: message }, () => {
919
+ message.detail = details.load(message.detail);
920
+ done(message);
921
+ });
1186
922
  };
1187
- let buildOrServeContinue = ({
1188
- callName,
1189
- refs: callerRefs,
1190
- serveOptions,
1191
- options,
1192
- isTTY: isTTY2,
1193
- defaultWD: defaultWD2,
1194
- callback,
1195
- key,
1196
- details,
1197
- logPluginError,
1198
- requestPlugins,
1199
- runOnEndCallbacks,
1200
- pluginRefs
1201
- }) => {
1202
- const refs = {
1203
- ref() {
1204
- if (pluginRefs)
1205
- pluginRefs.ref();
1206
- if (callerRefs)
1207
- callerRefs.ref();
923
+ const handleError = (e, pluginName) => {
924
+ logPluginError(e, pluginName, void 0, (error) => {
925
+ callback(failureErrorWithLog("Build failed", [error], []), null);
926
+ });
927
+ };
928
+ let plugins;
929
+ if (typeof options === "object") {
930
+ const value = options.plugins;
931
+ if (value !== void 0) {
932
+ if (!Array.isArray(value))
933
+ throw new Error(`"plugins" must be an array`);
934
+ plugins = value;
935
+ }
936
+ }
937
+ if (plugins && plugins.length > 0) {
938
+ if (streamIn.isSync) {
939
+ handleError(new Error("Cannot use plugins in synchronous API calls"), "");
940
+ return;
941
+ }
942
+ handlePlugins(
943
+ buildKey,
944
+ sendRequest,
945
+ sendResponse,
946
+ refs,
947
+ streamIn,
948
+ requestCallbacks,
949
+ options,
950
+ plugins,
951
+ details
952
+ ).then(
953
+ (result) => {
954
+ if (!result.ok) {
955
+ handleError(result.error, result.pluginName);
956
+ return;
957
+ }
958
+ try {
959
+ buildOrServeContinue(result.requestPlugins, result.runOnEndCallbacks);
960
+ } catch (e) {
961
+ handleError(e, "");
962
+ }
1208
963
  },
1209
- unref() {
1210
- if (pluginRefs)
1211
- pluginRefs.unref();
1212
- if (callerRefs)
1213
- callerRefs.unref();
1214
- }
1215
- };
964
+ (e) => handleError(e, "")
965
+ );
966
+ return;
967
+ }
968
+ try {
969
+ buildOrServeContinue(null, (result, logPluginError2, done) => done());
970
+ } catch (e) {
971
+ handleError(e, "");
972
+ }
973
+ function buildOrServeContinue(requestPlugins, runOnEndCallbacks) {
1216
974
  let writeDefault = !streamIn.isWriteUnavailable;
1217
975
  let {
1218
976
  entries,
@@ -1228,7 +986,7 @@ function createChannel(streamIn) {
1228
986
  } = flagsForBuildOptions(callName, options, isTTY2, buildLogLevelDefault, writeDefault);
1229
987
  let request = {
1230
988
  command: "build",
1231
- key,
989
+ key: buildKey,
1232
990
  entries,
1233
991
  flags,
1234
992
  write,
@@ -1242,7 +1000,7 @@ function createChannel(streamIn) {
1242
1000
  request.plugins = requestPlugins;
1243
1001
  if (mangleCache)
1244
1002
  request.mangleCache = mangleCache;
1245
- let serve2 = serveOptions && buildServeData(refs, serveOptions, request, key);
1003
+ let serve2 = serveOptions && buildServeData(buildKey, sendRequest, sendResponse, refs, requestCallbacks, serveOptions, request);
1246
1004
  let rebuild;
1247
1005
  let stop;
1248
1006
  let copyResponseToResult = (response, result) => {
@@ -1269,11 +1027,11 @@ function createChannel(streamIn) {
1269
1027
  if (!rebuild) {
1270
1028
  let isDisposed = false;
1271
1029
  rebuild = () => new Promise((resolve, reject) => {
1272
- if (isDisposed || closeData)
1030
+ if (isDisposed || closeData.didClose)
1273
1031
  throw new Error("Cannot rebuild");
1274
1032
  sendRequest(
1275
1033
  refs,
1276
- { command: "rebuild", key },
1034
+ { command: "rebuild", key: buildKey },
1277
1035
  (error2, response2) => {
1278
1036
  if (error2) {
1279
1037
  const message = { id: "", pluginName: "", text: error2, location: null, notes: [], detail: void 0 };
@@ -1293,7 +1051,7 @@ function createChannel(streamIn) {
1293
1051
  if (isDisposed)
1294
1052
  return;
1295
1053
  isDisposed = true;
1296
- sendRequest(refs, { command: "rebuild-dispose", key }, () => {
1054
+ sendRequest(refs, { command: "rebuild-dispose", key: buildKey }, () => {
1297
1055
  });
1298
1056
  refs.unref();
1299
1057
  };
@@ -1308,36 +1066,35 @@ function createChannel(streamIn) {
1308
1066
  if (isStopped)
1309
1067
  return;
1310
1068
  isStopped = true;
1311
- watchCallbacks.delete(key);
1312
- sendRequest(refs, { command: "watch-stop", key }, () => {
1069
+ delete requestCallbacks["watch-rebuild"];
1070
+ sendRequest(refs, { command: "watch-stop", key: buildKey }, () => {
1313
1071
  });
1314
1072
  refs.unref();
1315
1073
  };
1316
1074
  if (watch) {
1317
- watchCallbacks.set(key, (serviceStopError, watchResponse) => {
1318
- if (serviceStopError) {
1319
- if (watch.onRebuild)
1320
- watch.onRebuild(serviceStopError, null);
1321
- return;
1322
- }
1323
- let result2 = {
1324
- errors: replaceDetailsInMessages(watchResponse.errors, details),
1325
- warnings: replaceDetailsInMessages(watchResponse.warnings, details)
1326
- };
1327
- copyResponseToResult(watchResponse, result2);
1328
- runOnEndCallbacks(result2, logPluginError, () => {
1329
- if (result2.errors.length > 0) {
1075
+ requestCallbacks["watch-rebuild"] = (id, request2) => {
1076
+ try {
1077
+ let watchResponse = request2.args;
1078
+ let result2 = {
1079
+ errors: replaceDetailsInMessages(watchResponse.errors, details),
1080
+ warnings: replaceDetailsInMessages(watchResponse.warnings, details)
1081
+ };
1082
+ copyResponseToResult(watchResponse, result2);
1083
+ runOnEndCallbacks(result2, logPluginError, () => {
1084
+ if (result2.errors.length > 0) {
1085
+ if (watch.onRebuild)
1086
+ watch.onRebuild(failureErrorWithLog("Build failed", result2.errors, result2.warnings), null);
1087
+ return;
1088
+ }
1089
+ result2.stop = stop;
1330
1090
  if (watch.onRebuild)
1331
- watch.onRebuild(failureErrorWithLog("Build failed", result2.errors, result2.warnings), null);
1332
- return;
1333
- }
1334
- if (watchResponse.rebuildID !== void 0)
1335
- result2.rebuild = rebuild;
1336
- result2.stop = stop;
1337
- if (watch.onRebuild)
1338
- watch.onRebuild(null, result2);
1339
- });
1340
- });
1091
+ watch.onRebuild(null, result2);
1092
+ });
1093
+ } catch (err) {
1094
+ console.error(err);
1095
+ }
1096
+ sendResponse(id, {});
1097
+ };
1341
1098
  }
1342
1099
  }
1343
1100
  result.stop = stop;
@@ -1376,144 +1133,329 @@ function createChannel(streamIn) {
1376
1133
  }
1377
1134
  return buildResponseToResult(response, callback);
1378
1135
  });
1136
+ }
1137
+ }
1138
+ var buildServeData = (buildKey, sendRequest, sendResponse, refs, requestCallbacks, options, request) => {
1139
+ let keys = {};
1140
+ let port = getFlag(options, keys, "port", mustBeInteger);
1141
+ let host = getFlag(options, keys, "host", mustBeString);
1142
+ let servedir = getFlag(options, keys, "servedir", mustBeString);
1143
+ let onRequest = getFlag(options, keys, "onRequest", mustBeFunction);
1144
+ let wait = new Promise((resolve, reject) => {
1145
+ requestCallbacks["serve-wait"] = (id, request2) => {
1146
+ if (request2.error !== null)
1147
+ reject(new Error(request2.error));
1148
+ else
1149
+ resolve();
1150
+ sendResponse(id, {});
1151
+ };
1152
+ });
1153
+ request.serve = {};
1154
+ checkForInvalidFlags(options, keys, `in serve() call`);
1155
+ if (port !== void 0)
1156
+ request.serve.port = port;
1157
+ if (host !== void 0)
1158
+ request.serve.host = host;
1159
+ if (servedir !== void 0)
1160
+ request.serve.servedir = servedir;
1161
+ requestCallbacks["serve-request"] = (id, request2) => {
1162
+ if (onRequest)
1163
+ onRequest(request2.args);
1164
+ sendResponse(id, {});
1379
1165
  };
1380
- let transform2 = ({ callName, refs, input, options, isTTY: isTTY2, fs: fs3, callback }) => {
1381
- const details = createObjectStash();
1382
- let start = (inputPath) => {
1383
- try {
1384
- if (typeof input !== "string" && !(input instanceof Uint8Array))
1385
- throw new Error('The input to "transform" must be a string or a Uint8Array');
1386
- let {
1387
- flags,
1388
- mangleCache
1389
- } = flagsForTransformOptions(callName, options, isTTY2, transformLogLevelDefault);
1390
- let request = {
1391
- command: "transform",
1392
- flags,
1393
- inputFS: inputPath !== null,
1394
- input: inputPath !== null ? encodeUTF8(inputPath) : typeof input === "string" ? encodeUTF8(input) : input
1395
- };
1396
- if (mangleCache)
1397
- request.mangleCache = mangleCache;
1398
- sendRequest(refs, request, (error, response) => {
1399
- if (error)
1400
- return callback(new Error(error), null);
1401
- let errors = replaceDetailsInMessages(response.errors, details);
1402
- let warnings = replaceDetailsInMessages(response.warnings, details);
1403
- let outstanding = 1;
1404
- let next = () => {
1405
- if (--outstanding === 0) {
1406
- let result = { warnings, code: response.code, map: response.map };
1407
- if (response.mangleCache)
1408
- result.mangleCache = response == null ? void 0 : response.mangleCache;
1409
- callback(null, result);
1410
- }
1166
+ return {
1167
+ wait,
1168
+ stop() {
1169
+ sendRequest(refs, { command: "serve-stop", key: buildKey }, () => {
1170
+ });
1171
+ }
1172
+ };
1173
+ };
1174
+ var handlePlugins = async (buildKey, sendRequest, sendResponse, refs, streamIn, requestCallbacks, initialOptions, plugins, details) => {
1175
+ let onStartCallbacks = [];
1176
+ let onEndCallbacks = [];
1177
+ let onResolveCallbacks = {};
1178
+ let onLoadCallbacks = {};
1179
+ let nextCallbackID = 0;
1180
+ let i = 0;
1181
+ let requestPlugins = [];
1182
+ let isSetupDone = false;
1183
+ plugins = [...plugins];
1184
+ for (let item of plugins) {
1185
+ let keys = {};
1186
+ if (typeof item !== "object")
1187
+ throw new Error(`Plugin at index ${i} must be an object`);
1188
+ const name = getFlag(item, keys, "name", mustBeString);
1189
+ if (typeof name !== "string" || name === "")
1190
+ throw new Error(`Plugin at index ${i} is missing a name`);
1191
+ try {
1192
+ let setup = getFlag(item, keys, "setup", mustBeFunction);
1193
+ if (typeof setup !== "function")
1194
+ throw new Error(`Plugin is missing a setup function`);
1195
+ checkForInvalidFlags(item, keys, `on plugin ${JSON.stringify(name)}`);
1196
+ let plugin = {
1197
+ name,
1198
+ onResolve: [],
1199
+ onLoad: []
1200
+ };
1201
+ i++;
1202
+ let resolve = (path3, options = {}) => {
1203
+ if (!isSetupDone)
1204
+ throw new Error('Cannot call "resolve" before plugin setup has completed');
1205
+ if (typeof path3 !== "string")
1206
+ throw new Error(`The path to resolve must be a string`);
1207
+ let keys2 = /* @__PURE__ */ Object.create(null);
1208
+ let pluginName = getFlag(options, keys2, "pluginName", mustBeString);
1209
+ let importer = getFlag(options, keys2, "importer", mustBeString);
1210
+ let namespace = getFlag(options, keys2, "namespace", mustBeString);
1211
+ let resolveDir = getFlag(options, keys2, "resolveDir", mustBeString);
1212
+ let kind = getFlag(options, keys2, "kind", mustBeString);
1213
+ let pluginData = getFlag(options, keys2, "pluginData", canBeAnything);
1214
+ checkForInvalidFlags(options, keys2, "in resolve() call");
1215
+ return new Promise((resolve2, reject) => {
1216
+ const request = {
1217
+ command: "resolve",
1218
+ path: path3,
1219
+ key: buildKey,
1220
+ pluginName: name
1411
1221
  };
1412
- if (errors.length > 0)
1413
- return callback(failureErrorWithLog("Transform failed", errors, warnings), null);
1414
- if (response.codeFS) {
1415
- outstanding++;
1416
- fs3.readFile(response.code, (err, contents) => {
1417
- if (err !== null) {
1418
- callback(err, null);
1419
- } else {
1420
- response.code = contents;
1421
- next();
1422
- }
1423
- });
1424
- }
1425
- if (response.mapFS) {
1426
- outstanding++;
1427
- fs3.readFile(response.map, (err, contents) => {
1428
- if (err !== null) {
1429
- callback(err, null);
1430
- } else {
1431
- response.map = contents;
1432
- next();
1433
- }
1434
- });
1435
- }
1436
- next();
1222
+ if (pluginName != null)
1223
+ request.pluginName = pluginName;
1224
+ if (importer != null)
1225
+ request.importer = importer;
1226
+ if (namespace != null)
1227
+ request.namespace = namespace;
1228
+ if (resolveDir != null)
1229
+ request.resolveDir = resolveDir;
1230
+ if (kind != null)
1231
+ request.kind = kind;
1232
+ if (pluginData != null)
1233
+ request.pluginData = details.store(pluginData);
1234
+ sendRequest(refs, request, (error, response) => {
1235
+ if (error !== null)
1236
+ reject(new Error(error));
1237
+ else
1238
+ resolve2({
1239
+ errors: replaceDetailsInMessages(response.errors, details),
1240
+ warnings: replaceDetailsInMessages(response.warnings, details),
1241
+ path: response.path,
1242
+ external: response.external,
1243
+ sideEffects: response.sideEffects,
1244
+ namespace: response.namespace,
1245
+ suffix: response.suffix,
1246
+ pluginData: details.load(response.pluginData)
1247
+ });
1248
+ });
1437
1249
  });
1438
- } catch (e) {
1439
- let flags = [];
1440
- try {
1441
- pushLogFlags(flags, options, {}, isTTY2, transformLogLevelDefault);
1442
- } catch {
1250
+ };
1251
+ let promise = setup({
1252
+ initialOptions,
1253
+ resolve,
1254
+ onStart(callback) {
1255
+ let registeredText = `This error came from the "onStart" callback registered here:`;
1256
+ let registeredNote = extractCallerV8(new Error(registeredText), streamIn, "onStart");
1257
+ onStartCallbacks.push({ name, callback, note: registeredNote });
1258
+ },
1259
+ onEnd(callback) {
1260
+ let registeredText = `This error came from the "onEnd" callback registered here:`;
1261
+ let registeredNote = extractCallerV8(new Error(registeredText), streamIn, "onEnd");
1262
+ onEndCallbacks.push({ name, callback, note: registeredNote });
1263
+ },
1264
+ onResolve(options, callback) {
1265
+ let registeredText = `This error came from the "onResolve" callback registered here:`;
1266
+ let registeredNote = extractCallerV8(new Error(registeredText), streamIn, "onResolve");
1267
+ let keys2 = {};
1268
+ let filter = getFlag(options, keys2, "filter", mustBeRegExp);
1269
+ let namespace = getFlag(options, keys2, "namespace", mustBeString);
1270
+ checkForInvalidFlags(options, keys2, `in onResolve() call for plugin ${JSON.stringify(name)}`);
1271
+ if (filter == null)
1272
+ throw new Error(`onResolve() call is missing a filter`);
1273
+ let id = nextCallbackID++;
1274
+ onResolveCallbacks[id] = { name, callback, note: registeredNote };
1275
+ plugin.onResolve.push({ id, filter: filter.source, namespace: namespace || "" });
1276
+ },
1277
+ onLoad(options, callback) {
1278
+ let registeredText = `This error came from the "onLoad" callback registered here:`;
1279
+ let registeredNote = extractCallerV8(new Error(registeredText), streamIn, "onLoad");
1280
+ let keys2 = {};
1281
+ let filter = getFlag(options, keys2, "filter", mustBeRegExp);
1282
+ let namespace = getFlag(options, keys2, "namespace", mustBeString);
1283
+ checkForInvalidFlags(options, keys2, `in onLoad() call for plugin ${JSON.stringify(name)}`);
1284
+ if (filter == null)
1285
+ throw new Error(`onLoad() call is missing a filter`);
1286
+ let id = nextCallbackID++;
1287
+ onLoadCallbacks[id] = { name, callback, note: registeredNote };
1288
+ plugin.onLoad.push({ id, filter: filter.source, namespace: namespace || "" });
1289
+ },
1290
+ esbuild: streamIn.esbuild
1291
+ });
1292
+ if (promise)
1293
+ await promise;
1294
+ requestPlugins.push(plugin);
1295
+ } catch (e) {
1296
+ return { ok: false, error: e, pluginName: name };
1297
+ }
1298
+ }
1299
+ requestCallbacks["on-start"] = async (id, request) => {
1300
+ let response = { errors: [], warnings: [] };
1301
+ await Promise.all(onStartCallbacks.map(async ({ name, callback, note }) => {
1302
+ try {
1303
+ let result = await callback();
1304
+ if (result != null) {
1305
+ if (typeof result !== "object")
1306
+ throw new Error(`Expected onStart() callback in plugin ${JSON.stringify(name)} to return an object`);
1307
+ let keys = {};
1308
+ let errors = getFlag(result, keys, "errors", mustBeArray);
1309
+ let warnings = getFlag(result, keys, "warnings", mustBeArray);
1310
+ checkForInvalidFlags(result, keys, `from onStart() callback in plugin ${JSON.stringify(name)}`);
1311
+ if (errors != null)
1312
+ response.errors.push(...sanitizeMessages(errors, "errors", details, name));
1313
+ if (warnings != null)
1314
+ response.warnings.push(...sanitizeMessages(warnings, "warnings", details, name));
1443
1315
  }
1444
- const error = extractErrorMessageV8(e, streamIn, details, void 0, "");
1445
- sendRequest(refs, { command: "error", flags, error }, () => {
1446
- error.detail = details.load(error.detail);
1447
- callback(failureErrorWithLog("Transform failed", [error], []), null);
1316
+ } catch (e) {
1317
+ response.errors.push(extractErrorMessageV8(e, streamIn, details, note && note(), name));
1318
+ }
1319
+ }));
1320
+ sendResponse(id, response);
1321
+ };
1322
+ requestCallbacks["on-resolve"] = async (id, request) => {
1323
+ let response = {}, name = "", callback, note;
1324
+ for (let id2 of request.ids) {
1325
+ try {
1326
+ ({ name, callback, note } = onResolveCallbacks[id2]);
1327
+ let result = await callback({
1328
+ path: request.path,
1329
+ importer: request.importer,
1330
+ namespace: request.namespace,
1331
+ resolveDir: request.resolveDir,
1332
+ kind: request.kind,
1333
+ pluginData: details.load(request.pluginData)
1448
1334
  });
1335
+ if (result != null) {
1336
+ if (typeof result !== "object")
1337
+ throw new Error(`Expected onResolve() callback in plugin ${JSON.stringify(name)} to return an object`);
1338
+ let keys = {};
1339
+ let pluginName = getFlag(result, keys, "pluginName", mustBeString);
1340
+ let path3 = getFlag(result, keys, "path", mustBeString);
1341
+ let namespace = getFlag(result, keys, "namespace", mustBeString);
1342
+ let suffix = getFlag(result, keys, "suffix", mustBeString);
1343
+ let external = getFlag(result, keys, "external", mustBeBoolean);
1344
+ let sideEffects = getFlag(result, keys, "sideEffects", mustBeBoolean);
1345
+ let pluginData = getFlag(result, keys, "pluginData", canBeAnything);
1346
+ let errors = getFlag(result, keys, "errors", mustBeArray);
1347
+ let warnings = getFlag(result, keys, "warnings", mustBeArray);
1348
+ let watchFiles = getFlag(result, keys, "watchFiles", mustBeArray);
1349
+ let watchDirs = getFlag(result, keys, "watchDirs", mustBeArray);
1350
+ checkForInvalidFlags(result, keys, `from onResolve() callback in plugin ${JSON.stringify(name)}`);
1351
+ response.id = id2;
1352
+ if (pluginName != null)
1353
+ response.pluginName = pluginName;
1354
+ if (path3 != null)
1355
+ response.path = path3;
1356
+ if (namespace != null)
1357
+ response.namespace = namespace;
1358
+ if (suffix != null)
1359
+ response.suffix = suffix;
1360
+ if (external != null)
1361
+ response.external = external;
1362
+ if (sideEffects != null)
1363
+ response.sideEffects = sideEffects;
1364
+ if (pluginData != null)
1365
+ response.pluginData = details.store(pluginData);
1366
+ if (errors != null)
1367
+ response.errors = sanitizeMessages(errors, "errors", details, name);
1368
+ if (warnings != null)
1369
+ response.warnings = sanitizeMessages(warnings, "warnings", details, name);
1370
+ if (watchFiles != null)
1371
+ response.watchFiles = sanitizeStringArray(watchFiles, "watchFiles");
1372
+ if (watchDirs != null)
1373
+ response.watchDirs = sanitizeStringArray(watchDirs, "watchDirs");
1374
+ break;
1375
+ }
1376
+ } catch (e) {
1377
+ response = { id: id2, errors: [extractErrorMessageV8(e, streamIn, details, note && note(), name)] };
1378
+ break;
1449
1379
  }
1450
- };
1451
- if ((typeof input === "string" || input instanceof Uint8Array) && input.length > 1024 * 1024) {
1452
- let next = start;
1453
- start = () => fs3.writeFile(input, next);
1454
1380
  }
1455
- start(null);
1381
+ sendResponse(id, response);
1456
1382
  };
1457
- let formatMessages2 = ({ callName, refs, messages, options, callback }) => {
1458
- let result = sanitizeMessages(messages, "messages", null, "");
1459
- if (!options)
1460
- throw new Error(`Missing second argument in ${callName}() call`);
1461
- let keys = {};
1462
- let kind = getFlag(options, keys, "kind", mustBeString);
1463
- let color = getFlag(options, keys, "color", mustBeBoolean);
1464
- let terminalWidth = getFlag(options, keys, "terminalWidth", mustBeInteger);
1465
- checkForInvalidFlags(options, keys, `in ${callName}() call`);
1466
- if (kind === void 0)
1467
- throw new Error(`Missing "kind" in ${callName}() call`);
1468
- if (kind !== "error" && kind !== "warning")
1469
- throw new Error(`Expected "kind" to be "error" or "warning" in ${callName}() call`);
1470
- let request = {
1471
- command: "format-msgs",
1472
- messages: result,
1473
- isWarning: kind === "warning"
1474
- };
1475
- if (color !== void 0)
1476
- request.color = color;
1477
- if (terminalWidth !== void 0)
1478
- request.terminalWidth = terminalWidth;
1479
- sendRequest(refs, request, (error, response) => {
1480
- if (error)
1481
- return callback(new Error(error), null);
1482
- callback(null, response.messages);
1483
- });
1383
+ requestCallbacks["on-load"] = async (id, request) => {
1384
+ let response = {}, name = "", callback, note;
1385
+ for (let id2 of request.ids) {
1386
+ try {
1387
+ ({ name, callback, note } = onLoadCallbacks[id2]);
1388
+ let result = await callback({
1389
+ path: request.path,
1390
+ namespace: request.namespace,
1391
+ suffix: request.suffix,
1392
+ pluginData: details.load(request.pluginData)
1393
+ });
1394
+ if (result != null) {
1395
+ if (typeof result !== "object")
1396
+ throw new Error(`Expected onLoad() callback in plugin ${JSON.stringify(name)} to return an object`);
1397
+ let keys = {};
1398
+ let pluginName = getFlag(result, keys, "pluginName", mustBeString);
1399
+ let contents = getFlag(result, keys, "contents", mustBeStringOrUint8Array);
1400
+ let resolveDir = getFlag(result, keys, "resolveDir", mustBeString);
1401
+ let pluginData = getFlag(result, keys, "pluginData", canBeAnything);
1402
+ let loader = getFlag(result, keys, "loader", mustBeString);
1403
+ let errors = getFlag(result, keys, "errors", mustBeArray);
1404
+ let warnings = getFlag(result, keys, "warnings", mustBeArray);
1405
+ let watchFiles = getFlag(result, keys, "watchFiles", mustBeArray);
1406
+ let watchDirs = getFlag(result, keys, "watchDirs", mustBeArray);
1407
+ checkForInvalidFlags(result, keys, `from onLoad() callback in plugin ${JSON.stringify(name)}`);
1408
+ response.id = id2;
1409
+ if (pluginName != null)
1410
+ response.pluginName = pluginName;
1411
+ if (contents instanceof Uint8Array)
1412
+ response.contents = contents;
1413
+ else if (contents != null)
1414
+ response.contents = encodeUTF8(contents);
1415
+ if (resolveDir != null)
1416
+ response.resolveDir = resolveDir;
1417
+ if (pluginData != null)
1418
+ response.pluginData = details.store(pluginData);
1419
+ if (loader != null)
1420
+ response.loader = loader;
1421
+ if (errors != null)
1422
+ response.errors = sanitizeMessages(errors, "errors", details, name);
1423
+ if (warnings != null)
1424
+ response.warnings = sanitizeMessages(warnings, "warnings", details, name);
1425
+ if (watchFiles != null)
1426
+ response.watchFiles = sanitizeStringArray(watchFiles, "watchFiles");
1427
+ if (watchDirs != null)
1428
+ response.watchDirs = sanitizeStringArray(watchDirs, "watchDirs");
1429
+ break;
1430
+ }
1431
+ } catch (e) {
1432
+ response = { id: id2, errors: [extractErrorMessageV8(e, streamIn, details, note && note(), name)] };
1433
+ break;
1434
+ }
1435
+ }
1436
+ sendResponse(id, response);
1484
1437
  };
1485
- let analyzeMetafile2 = ({ callName, refs, metafile, options, callback }) => {
1486
- if (options === void 0)
1487
- options = {};
1488
- let keys = {};
1489
- let color = getFlag(options, keys, "color", mustBeBoolean);
1490
- let verbose = getFlag(options, keys, "verbose", mustBeBoolean);
1491
- checkForInvalidFlags(options, keys, `in ${callName}() call`);
1492
- let request = {
1493
- command: "analyze-metafile",
1494
- metafile
1438
+ let runOnEndCallbacks = (result, logPluginError, done) => done();
1439
+ if (onEndCallbacks.length > 0) {
1440
+ runOnEndCallbacks = (result, logPluginError, done) => {
1441
+ (async () => {
1442
+ for (const { name, callback, note } of onEndCallbacks) {
1443
+ try {
1444
+ await callback(result);
1445
+ } catch (e) {
1446
+ result.errors.push(await new Promise((resolve) => logPluginError(e, name, note && note(), resolve)));
1447
+ }
1448
+ }
1449
+ })().then(done);
1495
1450
  };
1496
- if (color !== void 0)
1497
- request.color = color;
1498
- if (verbose !== void 0)
1499
- request.verbose = verbose;
1500
- sendRequest(refs, request, (error, response) => {
1501
- if (error)
1502
- return callback(new Error(error), null);
1503
- callback(null, response.result);
1504
- });
1505
- };
1451
+ }
1452
+ isSetupDone = true;
1506
1453
  return {
1507
- readFromStdout,
1508
- afterClose,
1509
- service: {
1510
- buildOrServe,
1511
- transform: transform2,
1512
- formatMessages: formatMessages2,
1513
- analyzeMetafile: analyzeMetafile2
1514
- }
1454
+ ok: true,
1455
+ requestPlugins,
1456
+ runOnEndCallbacks
1515
1457
  };
1516
- }
1458
+ };
1517
1459
  function createObjectStash() {
1518
1460
  const map = /* @__PURE__ */ new Map();
1519
1461
  let nextID = 0;
@@ -1747,6 +1689,7 @@ var knownUnixlikePackages = {
1747
1689
  "sunos x64 LE": "esbuild-sunos-64"
1748
1690
  };
1749
1691
  var knownWebAssemblyFallbackPackages = {
1692
+ "android arm LE": "@esbuild/android-arm",
1750
1693
  "android x64 LE": "esbuild-android-64"
1751
1694
  };
1752
1695
  function pkgAndSubpathForCurrentPlatform() {
@@ -1861,7 +1804,7 @@ by esbuild to install the correct binary executable for your current platform.`)
1861
1804
  "node_modules",
1862
1805
  ".cache",
1863
1806
  "esbuild",
1864
- `pnpapi-${pkg}-${"0.15.7"}-${path.basename(subpath)}`
1807
+ `pnpapi-${pkg}-${"0.15.8"}-${path.basename(subpath)}`
1865
1808
  );
1866
1809
  if (!fs.existsSync(binTargetPath)) {
1867
1810
  fs.mkdirSync(path.dirname(binTargetPath), { recursive: true });
@@ -1892,7 +1835,7 @@ if (process.env.ESBUILD_WORKER_THREADS !== "0") {
1892
1835
  }
1893
1836
  }
1894
1837
  var _a;
1895
- var isInternalWorkerThread = ((_a = worker_threads == null ? void 0 : worker_threads.workerData) == null ? void 0 : _a.esbuildVersion) === "0.15.7";
1838
+ var isInternalWorkerThread = ((_a = worker_threads == null ? void 0 : worker_threads.workerData) == null ? void 0 : _a.esbuildVersion) === "0.15.8";
1896
1839
  var esbuildCommandAndArgs = () => {
1897
1840
  if ((!ESBUILD_BINARY_PATH || false) && (path2.basename(__filename) !== "main.js" || path2.basename(__dirname) !== "lib")) {
1898
1841
  throw new Error(
@@ -1959,7 +1902,7 @@ var fsAsync = {
1959
1902
  }
1960
1903
  }
1961
1904
  };
1962
- var version = "0.15.7";
1905
+ var version = "0.15.8";
1963
1906
  var build = (options) => ensureServiceIsRunning().build(options);
1964
1907
  var serve = (serveOptions, buildOptions) => ensureServiceIsRunning().serve(serveOptions, buildOptions);
1965
1908
  var transform = (input, options) => ensureServiceIsRunning().transform(input, options);
@@ -2070,7 +2013,7 @@ var ensureServiceIsRunning = () => {
2070
2013
  if (longLivedService)
2071
2014
  return longLivedService;
2072
2015
  let [command, args] = esbuildCommandAndArgs();
2073
- let child = child_process.spawn(command, args.concat(`--service=${"0.15.7"}`, "--ping"), {
2016
+ let child = child_process.spawn(command, args.concat(`--service=${"0.15.8"}`, "--ping"), {
2074
2017
  windowsHide: true,
2075
2018
  stdio: ["pipe", "pipe", "inherit"],
2076
2019
  cwd: defaultWD
@@ -2184,7 +2127,7 @@ var runServiceSync = (callback) => {
2184
2127
  esbuild: node_exports
2185
2128
  });
2186
2129
  callback(service);
2187
- let stdout = child_process.execFileSync(command, args.concat(`--service=${"0.15.7"}`), {
2130
+ let stdout = child_process.execFileSync(command, args.concat(`--service=${"0.15.8"}`), {
2188
2131
  cwd: defaultWD,
2189
2132
  windowsHide: true,
2190
2133
  input: stdin,
@@ -2200,7 +2143,7 @@ var workerThreadService = null;
2200
2143
  var startWorkerThreadService = (worker_threads2) => {
2201
2144
  let { port1: mainPort, port2: workerPort } = new worker_threads2.MessageChannel();
2202
2145
  let worker = new worker_threads2.Worker(__filename, {
2203
- workerData: { workerPort, defaultWD, esbuildVersion: "0.15.7" },
2146
+ workerData: { workerPort, defaultWD, esbuildVersion: "0.15.8" },
2204
2147
  transferList: [workerPort],
2205
2148
  execArgv: []
2206
2149
  });