imgx-cli 0.5.2 → 0.6.1

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.
@@ -2990,7 +2990,7 @@ var require_compile = __commonJS({
2990
2990
  const schOrFunc = root.refs[ref];
2991
2991
  if (schOrFunc)
2992
2992
  return schOrFunc;
2993
- let _sch = resolve3.call(this, root, ref);
2993
+ let _sch = resolve4.call(this, root, ref);
2994
2994
  if (_sch === void 0) {
2995
2995
  const schema = (_a3 = root.localRefs) === null || _a3 === void 0 ? void 0 : _a3[ref];
2996
2996
  const { schemaId } = this.opts;
@@ -3017,7 +3017,7 @@ var require_compile = __commonJS({
3017
3017
  function sameSchemaEnv(s1, s2) {
3018
3018
  return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId;
3019
3019
  }
3020
- function resolve3(root, ref) {
3020
+ function resolve4(root, ref) {
3021
3021
  let sch;
3022
3022
  while (typeof (sch = this.refs[ref]) == "string")
3023
3023
  ref = sch;
@@ -3592,7 +3592,7 @@ var require_fast_uri = __commonJS({
3592
3592
  }
3593
3593
  return uri;
3594
3594
  }
3595
- function resolve3(baseURI, relativeURI, options) {
3595
+ function resolve4(baseURI, relativeURI, options) {
3596
3596
  const schemelessOptions = options ? Object.assign({ scheme: "null" }, options) : { scheme: "null" };
3597
3597
  const resolved = resolveComponent(parse3(baseURI, schemelessOptions), parse3(relativeURI, schemelessOptions), schemelessOptions, true);
3598
3598
  schemelessOptions.skipEscape = true;
@@ -3819,7 +3819,7 @@ var require_fast_uri = __commonJS({
3819
3819
  var fastUri = {
3820
3820
  SCHEMES,
3821
3821
  normalize,
3822
- resolve: resolve3,
3822
+ resolve: resolve4,
3823
3823
  resolveComponent,
3824
3824
  equal,
3825
3825
  serialize,
@@ -7072,7 +7072,7 @@ var require_p_retry = __commonJS({
7072
7072
  return error48;
7073
7073
  };
7074
7074
  var isNetworkError = (errorMessage) => networkErrorMsgs.includes(errorMessage);
7075
- var pRetry2 = (input, options) => new Promise((resolve3, reject) => {
7075
+ var pRetry2 = (input, options) => new Promise((resolve4, reject) => {
7076
7076
  options = {
7077
7077
  onFailedAttempt: () => {
7078
7078
  },
@@ -7082,7 +7082,7 @@ var require_p_retry = __commonJS({
7082
7082
  const operation = retry.operation(options);
7083
7083
  operation.attempt(async (attemptNumber) => {
7084
7084
  try {
7085
- resolve3(await input(attemptNumber));
7085
+ resolve4(await input(attemptNumber));
7086
7086
  } catch (error48) {
7087
7087
  if (!(error48 instanceof Error)) {
7088
7088
  reject(new TypeError(`Non-error was thrown: "${error48}". You should only throw errors.`));
@@ -7619,8 +7619,8 @@ var require_retry3 = __commonJS({
7619
7619
  }
7620
7620
  const delay = getNextRetryDelay(config2);
7621
7621
  err.config.retryConfig.currentRetryAttempt += 1;
7622
- const backoff = config2.retryBackoff ? config2.retryBackoff(err, delay) : new Promise((resolve3) => {
7623
- setTimeout(resolve3, delay);
7622
+ const backoff = config2.retryBackoff ? config2.retryBackoff(err, delay) : new Promise((resolve4) => {
7623
+ setTimeout(resolve4, delay);
7624
7624
  });
7625
7625
  if (config2.onRetryAttempt) {
7626
7626
  await config2.onRetryAttempt(err);
@@ -8396,8 +8396,8 @@ var require_helpers = __commonJS({
8396
8396
  function req(url2, opts = {}) {
8397
8397
  const href = typeof url2 === "string" ? url2 : url2.href;
8398
8398
  const req2 = (href.startsWith("https:") ? https2 : http3).request(url2, opts);
8399
- const promise2 = new Promise((resolve3, reject) => {
8400
- req2.once("response", resolve3).once("error", reject).end();
8399
+ const promise2 = new Promise((resolve4, reject) => {
8400
+ req2.once("response", resolve4).once("error", reject).end();
8401
8401
  });
8402
8402
  req2.then = promise2.then.bind(promise2);
8403
8403
  return req2;
@@ -8574,7 +8574,7 @@ var require_parse_proxy_response = __commonJS({
8574
8574
  var debug_1 = __importDefault(require_src());
8575
8575
  var debug = (0, debug_1.default)("https-proxy-agent:parse-proxy-response");
8576
8576
  function parseProxyResponse(socket) {
8577
- return new Promise((resolve3, reject) => {
8577
+ return new Promise((resolve4, reject) => {
8578
8578
  let buffersLength = 0;
8579
8579
  const buffers = [];
8580
8580
  function read() {
@@ -8640,7 +8640,7 @@ var require_parse_proxy_response = __commonJS({
8640
8640
  }
8641
8641
  debug("got proxy server response: %o %o", firstLine, headers);
8642
8642
  cleanup();
8643
- resolve3({
8643
+ resolve4({
8644
8644
  connect: {
8645
8645
  statusCode,
8646
8646
  statusText,
@@ -8882,7 +8882,7 @@ var require_ponyfill_es2018 = __commonJS({
8882
8882
  return new originalPromise(executor);
8883
8883
  }
8884
8884
  function promiseResolvedWith(value) {
8885
- return newPromise((resolve3) => resolve3(value));
8885
+ return newPromise((resolve4) => resolve4(value));
8886
8886
  }
8887
8887
  function promiseRejectedWith(reason) {
8888
8888
  return originalPromiseReject(reason);
@@ -9052,8 +9052,8 @@ var require_ponyfill_es2018 = __commonJS({
9052
9052
  return new TypeError("Cannot " + name + " a stream using a released reader");
9053
9053
  }
9054
9054
  function defaultReaderClosedPromiseInitialize(reader) {
9055
- reader._closedPromise = newPromise((resolve3, reject) => {
9056
- reader._closedPromise_resolve = resolve3;
9055
+ reader._closedPromise = newPromise((resolve4, reject) => {
9056
+ reader._closedPromise_resolve = resolve4;
9057
9057
  reader._closedPromise_reject = reject;
9058
9058
  });
9059
9059
  }
@@ -9227,8 +9227,8 @@ var require_ponyfill_es2018 = __commonJS({
9227
9227
  }
9228
9228
  let resolvePromise;
9229
9229
  let rejectPromise;
9230
- const promise2 = newPromise((resolve3, reject) => {
9231
- resolvePromise = resolve3;
9230
+ const promise2 = newPromise((resolve4, reject) => {
9231
+ resolvePromise = resolve4;
9232
9232
  rejectPromise = reject;
9233
9233
  });
9234
9234
  const readRequest = {
@@ -9333,8 +9333,8 @@ var require_ponyfill_es2018 = __commonJS({
9333
9333
  const reader = this._reader;
9334
9334
  let resolvePromise;
9335
9335
  let rejectPromise;
9336
- const promise2 = newPromise((resolve3, reject) => {
9337
- resolvePromise = resolve3;
9336
+ const promise2 = newPromise((resolve4, reject) => {
9337
+ resolvePromise = resolve4;
9338
9338
  rejectPromise = reject;
9339
9339
  });
9340
9340
  const readRequest = {
@@ -10353,8 +10353,8 @@ var require_ponyfill_es2018 = __commonJS({
10353
10353
  }
10354
10354
  let resolvePromise;
10355
10355
  let rejectPromise;
10356
- const promise2 = newPromise((resolve3, reject) => {
10357
- resolvePromise = resolve3;
10356
+ const promise2 = newPromise((resolve4, reject) => {
10357
+ resolvePromise = resolve4;
10358
10358
  rejectPromise = reject;
10359
10359
  });
10360
10360
  const readIntoRequest = {
@@ -10666,10 +10666,10 @@ var require_ponyfill_es2018 = __commonJS({
10666
10666
  wasAlreadyErroring = true;
10667
10667
  reason = void 0;
10668
10668
  }
10669
- const promise2 = newPromise((resolve3, reject) => {
10669
+ const promise2 = newPromise((resolve4, reject) => {
10670
10670
  stream._pendingAbortRequest = {
10671
10671
  _promise: void 0,
10672
- _resolve: resolve3,
10672
+ _resolve: resolve4,
10673
10673
  _reject: reject,
10674
10674
  _reason: reason,
10675
10675
  _wasAlreadyErroring: wasAlreadyErroring
@@ -10686,9 +10686,9 @@ var require_ponyfill_es2018 = __commonJS({
10686
10686
  if (state === "closed" || state === "errored") {
10687
10687
  return promiseRejectedWith(new TypeError(`The stream (in ${state} state) is not in the writable state and cannot be closed`));
10688
10688
  }
10689
- const promise2 = newPromise((resolve3, reject) => {
10689
+ const promise2 = newPromise((resolve4, reject) => {
10690
10690
  const closeRequest = {
10691
- _resolve: resolve3,
10691
+ _resolve: resolve4,
10692
10692
  _reject: reject
10693
10693
  };
10694
10694
  stream._closeRequest = closeRequest;
@@ -10701,9 +10701,9 @@ var require_ponyfill_es2018 = __commonJS({
10701
10701
  return promise2;
10702
10702
  }
10703
10703
  function WritableStreamAddWriteRequest(stream) {
10704
- const promise2 = newPromise((resolve3, reject) => {
10704
+ const promise2 = newPromise((resolve4, reject) => {
10705
10705
  const writeRequest = {
10706
- _resolve: resolve3,
10706
+ _resolve: resolve4,
10707
10707
  _reject: reject
10708
10708
  };
10709
10709
  stream._writeRequests.push(writeRequest);
@@ -11319,8 +11319,8 @@ var require_ponyfill_es2018 = __commonJS({
11319
11319
  return new TypeError("Cannot " + name + " a stream using a released writer");
11320
11320
  }
11321
11321
  function defaultWriterClosedPromiseInitialize(writer) {
11322
- writer._closedPromise = newPromise((resolve3, reject) => {
11323
- writer._closedPromise_resolve = resolve3;
11322
+ writer._closedPromise = newPromise((resolve4, reject) => {
11323
+ writer._closedPromise_resolve = resolve4;
11324
11324
  writer._closedPromise_reject = reject;
11325
11325
  writer._closedPromiseState = "pending";
11326
11326
  });
@@ -11356,8 +11356,8 @@ var require_ponyfill_es2018 = __commonJS({
11356
11356
  writer._closedPromiseState = "resolved";
11357
11357
  }
11358
11358
  function defaultWriterReadyPromiseInitialize(writer) {
11359
- writer._readyPromise = newPromise((resolve3, reject) => {
11360
- writer._readyPromise_resolve = resolve3;
11359
+ writer._readyPromise = newPromise((resolve4, reject) => {
11360
+ writer._readyPromise_resolve = resolve4;
11361
11361
  writer._readyPromise_reject = reject;
11362
11362
  });
11363
11363
  writer._readyPromiseState = "pending";
@@ -11444,7 +11444,7 @@ var require_ponyfill_es2018 = __commonJS({
11444
11444
  source._disturbed = true;
11445
11445
  let shuttingDown = false;
11446
11446
  let currentWrite = promiseResolvedWith(void 0);
11447
- return newPromise((resolve3, reject) => {
11447
+ return newPromise((resolve4, reject) => {
11448
11448
  let abortAlgorithm;
11449
11449
  if (signal !== void 0) {
11450
11450
  abortAlgorithm = () => {
@@ -11589,7 +11589,7 @@ var require_ponyfill_es2018 = __commonJS({
11589
11589
  if (isError) {
11590
11590
  reject(error48);
11591
11591
  } else {
11592
- resolve3(void 0);
11592
+ resolve4(void 0);
11593
11593
  }
11594
11594
  return null;
11595
11595
  }
@@ -11870,8 +11870,8 @@ var require_ponyfill_es2018 = __commonJS({
11870
11870
  let branch1;
11871
11871
  let branch2;
11872
11872
  let resolveCancelPromise;
11873
- const cancelPromise = newPromise((resolve3) => {
11874
- resolveCancelPromise = resolve3;
11873
+ const cancelPromise = newPromise((resolve4) => {
11874
+ resolveCancelPromise = resolve4;
11875
11875
  });
11876
11876
  function pullAlgorithm() {
11877
11877
  if (reading) {
@@ -11962,8 +11962,8 @@ var require_ponyfill_es2018 = __commonJS({
11962
11962
  let branch1;
11963
11963
  let branch2;
11964
11964
  let resolveCancelPromise;
11965
- const cancelPromise = newPromise((resolve3) => {
11966
- resolveCancelPromise = resolve3;
11965
+ const cancelPromise = newPromise((resolve4) => {
11966
+ resolveCancelPromise = resolve4;
11967
11967
  });
11968
11968
  function forwardReaderError(thisReader) {
11969
11969
  uponRejection(thisReader._closedPromise, (r2) => {
@@ -12743,8 +12743,8 @@ var require_ponyfill_es2018 = __commonJS({
12743
12743
  const writableHighWaterMark = ExtractHighWaterMark(writableStrategy, 1);
12744
12744
  const writableSizeAlgorithm = ExtractSizeAlgorithm(writableStrategy);
12745
12745
  let startPromise_resolve;
12746
- const startPromise = newPromise((resolve3) => {
12747
- startPromise_resolve = resolve3;
12746
+ const startPromise = newPromise((resolve4) => {
12747
+ startPromise_resolve = resolve4;
12748
12748
  });
12749
12749
  InitializeTransformStream(this, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm);
12750
12750
  SetUpTransformStreamDefaultControllerFromTransformer(this, transformer);
@@ -12837,8 +12837,8 @@ var require_ponyfill_es2018 = __commonJS({
12837
12837
  if (stream._backpressureChangePromise !== void 0) {
12838
12838
  stream._backpressureChangePromise_resolve();
12839
12839
  }
12840
- stream._backpressureChangePromise = newPromise((resolve3) => {
12841
- stream._backpressureChangePromise_resolve = resolve3;
12840
+ stream._backpressureChangePromise = newPromise((resolve4) => {
12841
+ stream._backpressureChangePromise_resolve = resolve4;
12842
12842
  });
12843
12843
  stream._backpressure = backpressure;
12844
12844
  }
@@ -13006,8 +13006,8 @@ var require_ponyfill_es2018 = __commonJS({
13006
13006
  return controller._finishPromise;
13007
13007
  }
13008
13008
  const readable = stream._readable;
13009
- controller._finishPromise = newPromise((resolve3, reject) => {
13010
- controller._finishPromise_resolve = resolve3;
13009
+ controller._finishPromise = newPromise((resolve4, reject) => {
13010
+ controller._finishPromise_resolve = resolve4;
13011
13011
  controller._finishPromise_reject = reject;
13012
13012
  });
13013
13013
  const cancelPromise = controller._cancelAlgorithm(reason);
@@ -13033,8 +13033,8 @@ var require_ponyfill_es2018 = __commonJS({
13033
13033
  return controller._finishPromise;
13034
13034
  }
13035
13035
  const readable = stream._readable;
13036
- controller._finishPromise = newPromise((resolve3, reject) => {
13037
- controller._finishPromise_resolve = resolve3;
13036
+ controller._finishPromise = newPromise((resolve4, reject) => {
13037
+ controller._finishPromise_resolve = resolve4;
13038
13038
  controller._finishPromise_reject = reject;
13039
13039
  });
13040
13040
  const flushPromise = controller._flushAlgorithm();
@@ -13064,8 +13064,8 @@ var require_ponyfill_es2018 = __commonJS({
13064
13064
  return controller._finishPromise;
13065
13065
  }
13066
13066
  const writable = stream._writable;
13067
- controller._finishPromise = newPromise((resolve3, reject) => {
13068
- controller._finishPromise_resolve = resolve3;
13067
+ controller._finishPromise = newPromise((resolve4, reject) => {
13068
+ controller._finishPromise_resolve = resolve4;
13069
13069
  controller._finishPromise_reject = reject;
13070
13070
  });
13071
13071
  const cancelPromise = controller._cancelAlgorithm(reason);
@@ -15016,7 +15016,7 @@ import zlib from "node:zlib";
15016
15016
  import Stream2, { PassThrough as PassThrough2, pipeline as pump } from "node:stream";
15017
15017
  import { Buffer as Buffer3 } from "node:buffer";
15018
15018
  async function fetch2(url2, options_) {
15019
- return new Promise((resolve3, reject) => {
15019
+ return new Promise((resolve4, reject) => {
15020
15020
  const request = new Request(url2, options_);
15021
15021
  const { parsedURL, options } = getNodeRequestOptions(request);
15022
15022
  if (!supportedSchemas.has(parsedURL.protocol)) {
@@ -15025,7 +15025,7 @@ async function fetch2(url2, options_) {
15025
15025
  if (parsedURL.protocol === "data:") {
15026
15026
  const data = dist_default(request.url);
15027
15027
  const response2 = new Response2(data, { headers: { "Content-Type": data.typeFull } });
15028
- resolve3(response2);
15028
+ resolve4(response2);
15029
15029
  return;
15030
15030
  }
15031
15031
  const send = (parsedURL.protocol === "https:" ? https : http2).request;
@@ -15147,7 +15147,7 @@ async function fetch2(url2, options_) {
15147
15147
  if (responseReferrerPolicy) {
15148
15148
  requestOptions.referrerPolicy = responseReferrerPolicy;
15149
15149
  }
15150
- resolve3(fetch2(new Request(locationURL, requestOptions)));
15150
+ resolve4(fetch2(new Request(locationURL, requestOptions)));
15151
15151
  finalize2();
15152
15152
  return;
15153
15153
  }
@@ -15180,7 +15180,7 @@ async function fetch2(url2, options_) {
15180
15180
  const codings = headers.get("Content-Encoding");
15181
15181
  if (!request.compress || request.method === "HEAD" || codings === null || response_.statusCode === 204 || response_.statusCode === 304) {
15182
15182
  response = new Response2(body, responseOptions);
15183
- resolve3(response);
15183
+ resolve4(response);
15184
15184
  return;
15185
15185
  }
15186
15186
  const zlibOptions = {
@@ -15194,7 +15194,7 @@ async function fetch2(url2, options_) {
15194
15194
  }
15195
15195
  });
15196
15196
  response = new Response2(body, responseOptions);
15197
- resolve3(response);
15197
+ resolve4(response);
15198
15198
  return;
15199
15199
  }
15200
15200
  if (codings === "deflate" || codings === "x-deflate") {
@@ -15218,12 +15218,12 @@ async function fetch2(url2, options_) {
15218
15218
  });
15219
15219
  }
15220
15220
  response = new Response2(body, responseOptions);
15221
- resolve3(response);
15221
+ resolve4(response);
15222
15222
  });
15223
15223
  raw.once("end", () => {
15224
15224
  if (!response) {
15225
15225
  response = new Response2(body, responseOptions);
15226
- resolve3(response);
15226
+ resolve4(response);
15227
15227
  }
15228
15228
  });
15229
15229
  return;
@@ -15235,11 +15235,11 @@ async function fetch2(url2, options_) {
15235
15235
  }
15236
15236
  });
15237
15237
  response = new Response2(body, responseOptions);
15238
- resolve3(response);
15238
+ resolve4(response);
15239
15239
  return;
15240
15240
  }
15241
15241
  response = new Response2(body, responseOptions);
15242
- resolve3(response);
15242
+ resolve4(response);
15243
15243
  });
15244
15244
  writeToStream(request_, request).catch(reject);
15245
15245
  });
@@ -21309,7 +21309,7 @@ var require_jwtaccess = __commonJS({
21309
21309
  }
21310
21310
  }
21311
21311
  fromStreamAsync(inputStream) {
21312
- return new Promise((resolve3, reject) => {
21312
+ return new Promise((resolve4, reject) => {
21313
21313
  if (!inputStream) {
21314
21314
  reject(new Error("Must pass in a stream containing the service account auth settings."));
21315
21315
  }
@@ -21318,7 +21318,7 @@ var require_jwtaccess = __commonJS({
21318
21318
  try {
21319
21319
  const data = JSON.parse(s2);
21320
21320
  this.fromJSON(data);
21321
- resolve3();
21321
+ resolve4();
21322
21322
  } catch (err) {
21323
21323
  reject(err);
21324
21324
  }
@@ -21557,7 +21557,7 @@ var require_jwtclient = __commonJS({
21557
21557
  }
21558
21558
  }
21559
21559
  fromStreamAsync(inputStream) {
21560
- return new Promise((resolve3, reject) => {
21560
+ return new Promise((resolve4, reject) => {
21561
21561
  if (!inputStream) {
21562
21562
  throw new Error("Must pass in a stream containing the service account auth settings.");
21563
21563
  }
@@ -21566,7 +21566,7 @@ var require_jwtclient = __commonJS({
21566
21566
  try {
21567
21567
  const data = JSON.parse(s2);
21568
21568
  this.fromJSON(data);
21569
- resolve3();
21569
+ resolve4();
21570
21570
  } catch (e2) {
21571
21571
  reject(e2);
21572
21572
  }
@@ -21699,7 +21699,7 @@ var require_refreshclient = __commonJS({
21699
21699
  }
21700
21700
  }
21701
21701
  async fromStreamAsync(inputStream) {
21702
- return new Promise((resolve3, reject) => {
21702
+ return new Promise((resolve4, reject) => {
21703
21703
  if (!inputStream) {
21704
21704
  return reject(new Error("Must pass in a stream containing the user refresh token."));
21705
21705
  }
@@ -21708,7 +21708,7 @@ var require_refreshclient = __commonJS({
21708
21708
  try {
21709
21709
  const data = JSON.parse(s2);
21710
21710
  this.fromJSON(data);
21711
- return resolve3();
21711
+ return resolve4();
21712
21712
  } catch (err) {
21713
21713
  return reject(err);
21714
21714
  }
@@ -23541,7 +23541,7 @@ var require_pluggable_auth_handler = __commonJS({
23541
23541
  * @return A promise that resolves with the executable response.
23542
23542
  */
23543
23543
  retrieveResponseFromExecutable(envMap) {
23544
- return new Promise((resolve3, reject) => {
23544
+ return new Promise((resolve4, reject) => {
23545
23545
  const child = childProcess.spawn(this.commandComponents[0], this.commandComponents.slice(1), {
23546
23546
  env: { ...process.env, ...Object.fromEntries(envMap) }
23547
23547
  });
@@ -23563,7 +23563,7 @@ var require_pluggable_auth_handler = __commonJS({
23563
23563
  try {
23564
23564
  const responseJson = JSON.parse(output);
23565
23565
  const response = new executable_response_1.ExecutableResponse(responseJson);
23566
- return resolve3(response);
23566
+ return resolve4(response);
23567
23567
  } catch (error48) {
23568
23568
  if (error48 instanceof executable_response_1.ExecutableResponseError) {
23569
23569
  return reject(error48);
@@ -24466,7 +24466,7 @@ var require_googleauth = __commonJS({
24466
24466
  }
24467
24467
  }
24468
24468
  fromStreamAsync(inputStream, options) {
24469
- return new Promise((resolve3, reject) => {
24469
+ return new Promise((resolve4, reject) => {
24470
24470
  if (!inputStream) {
24471
24471
  throw new Error("Must pass in a stream containing the Google auth settings.");
24472
24472
  }
@@ -24476,7 +24476,7 @@ var require_googleauth = __commonJS({
24476
24476
  try {
24477
24477
  const data = JSON.parse(chunks.join(""));
24478
24478
  const r2 = this._cacheClientFromJSON(data, options);
24479
- return resolve3(r2);
24479
+ return resolve4(r2);
24480
24480
  } catch (err) {
24481
24481
  if (!this.keyFilename)
24482
24482
  throw err;
@@ -24486,7 +24486,7 @@ var require_googleauth = __commonJS({
24486
24486
  });
24487
24487
  this.cachedCredential = client;
24488
24488
  this.setGapicJWTValues(client);
24489
- return resolve3(client);
24489
+ return resolve4(client);
24490
24490
  }
24491
24491
  } catch (err) {
24492
24492
  return reject(err);
@@ -24522,17 +24522,17 @@ var require_googleauth = __commonJS({
24522
24522
  * Run the Google Cloud SDK command that prints the default project ID
24523
24523
  */
24524
24524
  async getDefaultServiceProjectId() {
24525
- return new Promise((resolve3) => {
24525
+ return new Promise((resolve4) => {
24526
24526
  (0, child_process_1.exec)("gcloud config config-helper --format json", (err, stdout) => {
24527
24527
  if (!err && stdout) {
24528
24528
  try {
24529
24529
  const projectId = JSON.parse(stdout).configuration.properties.core.project;
24530
- resolve3(projectId);
24530
+ resolve4(projectId);
24531
24531
  return;
24532
24532
  } catch (e2) {
24533
24533
  }
24534
24534
  }
24535
- resolve3(null);
24535
+ resolve4(null);
24536
24536
  });
24537
24537
  });
24538
24538
  }
@@ -49973,7 +49973,7 @@ var Protocol = class {
49973
49973
  return;
49974
49974
  }
49975
49975
  const pollInterval = task2.pollInterval ?? this._options?.defaultTaskPollInterval ?? 1e3;
49976
- await new Promise((resolve3) => setTimeout(resolve3, pollInterval));
49976
+ await new Promise((resolve4) => setTimeout(resolve4, pollInterval));
49977
49977
  options?.signal?.throwIfAborted();
49978
49978
  }
49979
49979
  } catch (error48) {
@@ -49990,7 +49990,7 @@ var Protocol = class {
49990
49990
  */
49991
49991
  request(request, resultSchema, options) {
49992
49992
  const { relatedRequestId, resumptionToken, onresumptiontoken, task, relatedTask } = options ?? {};
49993
- return new Promise((resolve3, reject) => {
49993
+ return new Promise((resolve4, reject) => {
49994
49994
  const earlyReject = (error48) => {
49995
49995
  reject(error48);
49996
49996
  };
@@ -50068,7 +50068,7 @@ var Protocol = class {
50068
50068
  if (!parseResult.success) {
50069
50069
  reject(parseResult.error);
50070
50070
  } else {
50071
- resolve3(parseResult.data);
50071
+ resolve4(parseResult.data);
50072
50072
  }
50073
50073
  } catch (error48) {
50074
50074
  reject(error48);
@@ -50329,12 +50329,12 @@ var Protocol = class {
50329
50329
  }
50330
50330
  } catch {
50331
50331
  }
50332
- return new Promise((resolve3, reject) => {
50332
+ return new Promise((resolve4, reject) => {
50333
50333
  if (signal.aborted) {
50334
50334
  reject(new McpError(ErrorCode.InvalidRequest, "Request cancelled"));
50335
50335
  return;
50336
50336
  }
50337
- const timeoutId = setTimeout(resolve3, interval);
50337
+ const timeoutId = setTimeout(resolve4, interval);
50338
50338
  signal.addEventListener("abort", () => {
50339
50339
  clearTimeout(timeoutId);
50340
50340
  reject(new McpError(ErrorCode.InvalidRequest, "Request cancelled"));
@@ -51434,7 +51434,7 @@ var McpServer = class {
51434
51434
  let task = createTaskResult.task;
51435
51435
  const pollInterval = task.pollInterval ?? 5e3;
51436
51436
  while (task.status !== "completed" && task.status !== "failed" && task.status !== "cancelled") {
51437
- await new Promise((resolve3) => setTimeout(resolve3, pollInterval));
51437
+ await new Promise((resolve4) => setTimeout(resolve4, pollInterval));
51438
51438
  const updatedTask = await extra.taskStore.getTask(taskId);
51439
51439
  if (!updatedTask) {
51440
51440
  throw new McpError(ErrorCode.InternalError, `Task ${taskId} not found during polling`);
@@ -52077,12 +52077,12 @@ var StdioServerTransport = class {
52077
52077
  this.onclose?.();
52078
52078
  }
52079
52079
  send(message) {
52080
- return new Promise((resolve3) => {
52080
+ return new Promise((resolve4) => {
52081
52081
  const json2 = serializeMessage(message);
52082
52082
  if (this._stdout.write(json2)) {
52083
- resolve3();
52083
+ resolve4();
52084
52084
  } else {
52085
- this._stdout.once("drain", resolve3);
52085
+ this._stdout.once("drain", resolve4);
52086
52086
  }
52087
52087
  });
52088
52088
  }
@@ -52122,12 +52122,37 @@ function loadConfig() {
52122
52122
  }
52123
52123
  }
52124
52124
  function resolveApiKey(providerName) {
52125
- if (providerName === "gemini" && process.env.GEMINI_API_KEY) {
52126
- return process.env.GEMINI_API_KEY;
52127
- }
52125
+ const envMap = {
52126
+ gemini: process.env.GEMINI_API_KEY,
52127
+ openai: process.env.OPENAI_API_KEY
52128
+ };
52129
+ if (envMap[providerName])
52130
+ return envMap[providerName];
52128
52131
  const config2 = loadConfig();
52129
52132
  return config2.providers?.[providerName]?.apiKey;
52130
52133
  }
52134
+ function loadProjectConfig() {
52135
+ try {
52136
+ const raw = readFileSync(resolve(".imgxrc"), "utf-8");
52137
+ return JSON.parse(raw);
52138
+ } catch {
52139
+ return {};
52140
+ }
52141
+ }
52142
+ function resolveDefault(key) {
52143
+ const envMap = {
52144
+ provider: process.env.IMGX_PROVIDER,
52145
+ model: process.env.IMGX_MODEL,
52146
+ outputDir: process.env.IMGX_OUTPUT_DIR
52147
+ };
52148
+ if (envMap[key])
52149
+ return envMap[key];
52150
+ const project = loadProjectConfig();
52151
+ if (project.defaults?.[key])
52152
+ return project.defaults[key];
52153
+ const config2 = loadConfig();
52154
+ return config2.defaults?.[key];
52155
+ }
52131
52156
  function saveLastOutput(filePaths) {
52132
52157
  const dir = configDir();
52133
52158
  mkdirSync(dir, { recursive: true });
@@ -56909,14 +56934,14 @@ function __asyncValues(o) {
56909
56934
  }, i2);
56910
56935
  function verb(n) {
56911
56936
  i2[n] = o[n] && function(v) {
56912
- return new Promise(function(resolve3, reject) {
56913
- v = o[n](v), settle(resolve3, reject, v.done, v.value);
56937
+ return new Promise(function(resolve4, reject) {
56938
+ v = o[n](v), settle(resolve4, reject, v.done, v.value);
56914
56939
  });
56915
56940
  };
56916
56941
  }
56917
- function settle(resolve3, reject, d, v) {
56942
+ function settle(resolve4, reject, d, v) {
56918
56943
  Promise.resolve(v).then(function(v2) {
56919
- resolve3({ value: v2, done: d });
56944
+ resolve4({ value: v2, done: d });
56920
56945
  }, reject);
56921
56946
  }
56922
56947
  }
@@ -62887,8 +62912,8 @@ var LiveMusic = class {
62887
62912
  const url2 = `${websocketBaseUrl}/ws/google.ai.generativelanguage.${apiVersion}.GenerativeService.BidiGenerateMusic?key=${apiKey}`;
62888
62913
  let onopenResolve = () => {
62889
62914
  };
62890
- const onopenPromise = new Promise((resolve3) => {
62891
- onopenResolve = resolve3;
62915
+ const onopenPromise = new Promise((resolve4) => {
62916
+ onopenResolve = resolve4;
62892
62917
  });
62893
62918
  const callbacks = params.callbacks;
62894
62919
  const onopenAwaitedCallback = function() {
@@ -63128,8 +63153,8 @@ var Live = class {
63128
63153
  }
63129
63154
  let onopenResolve = () => {
63130
63155
  };
63131
- const onopenPromise = new Promise((resolve3) => {
63132
- onopenResolve = resolve3;
63156
+ const onopenPromise = new Promise((resolve4) => {
63157
+ onopenResolve = resolve4;
63133
63158
  });
63134
63159
  const callbacks = params.callbacks;
63135
63160
  const onopenAwaitedCallback = function() {
@@ -66071,7 +66096,7 @@ var safeJSON = (text) => {
66071
66096
  return void 0;
66072
66097
  }
66073
66098
  };
66074
- var sleep$1 = (ms) => new Promise((resolve3) => setTimeout(resolve3, ms));
66099
+ var sleep$1 = (ms) => new Promise((resolve4) => setTimeout(resolve4, ms));
66075
66100
  var VERSION = "0.0.1";
66076
66101
  function getDetectedPlatform() {
66077
66102
  if (typeof Deno !== "undefined" && Deno.build != null) {
@@ -66991,8 +67016,8 @@ async function defaultParseResponse(client, props) {
66991
67016
  }
66992
67017
  var APIPromise = class _APIPromise extends Promise {
66993
67018
  constructor(client, responsePromise, parseResponse = defaultParseResponse) {
66994
- super((resolve3) => {
66995
- resolve3(null);
67019
+ super((resolve4) => {
67020
+ resolve4(null);
66996
67021
  });
66997
67022
  this.responsePromise = responsePromise;
66998
67023
  this.parseResponse = parseResponse;
@@ -69223,8 +69248,9 @@ function getApiKeyFromEnv() {
69223
69248
 
69224
69249
  // build/core/storage.js
69225
69250
  import { readFileSync as readFileSync2, writeFileSync as writeFileSync2, mkdirSync as mkdirSync2 } from "node:fs";
69226
- import { dirname, resolve as resolve2 } from "node:path";
69251
+ import { dirname, join as join2, resolve as resolve2 } from "node:path";
69227
69252
  import { randomUUID } from "node:crypto";
69253
+ import { homedir as homedir2 } from "node:os";
69228
69254
  var MIME_TO_EXT = {
69229
69255
  "image/png": ".png",
69230
69256
  "image/jpeg": ".jpg",
@@ -69237,9 +69263,17 @@ function readImageAsBase64(filePath) {
69237
69263
  const mimeType = ext === "jpg" || ext === "jpeg" ? "image/jpeg" : ext === "webp" ? "image/webp" : "image/png";
69238
69264
  return { data: buffer.toString("base64"), mimeType };
69239
69265
  }
69266
+ function fallbackOutputDir(outputDir) {
69267
+ if (outputDir)
69268
+ return outputDir;
69269
+ const configured = resolveDefault("outputDir");
69270
+ if (configured)
69271
+ return configured;
69272
+ return join2(homedir2(), "Pictures", "imgx");
69273
+ }
69240
69274
  function saveImage(image, outputPath, outputDir) {
69241
69275
  const ext = MIME_TO_EXT[image.mimeType] || ".png";
69242
- const filePath = outputPath ? resolve2(outputPath) : resolve2(outputDir || ".", `imgx-${randomUUID().slice(0, 8)}${ext}`);
69276
+ const filePath = outputPath ? resolve2(outputPath) : resolve2(fallbackOutputDir(outputDir), `imgx-${randomUUID().slice(0, 8)}${ext}`);
69243
69277
  mkdirSync2(dirname(filePath), { recursive: true });
69244
69278
  writeFileSync2(filePath, image.data);
69245
69279
  return filePath;
@@ -69375,18 +69409,201 @@ function initGemini() {
69375
69409
  registerProvider(new GeminiProvider(apiKey));
69376
69410
  }
69377
69411
 
69412
+ // build/providers/openai/client.js
69413
+ import { readFileSync as readFileSync3 } from "node:fs";
69414
+ import { resolve as resolve3 } from "node:path";
69415
+
69416
+ // build/providers/openai/capabilities.js
69417
+ var OPENAI_PROVIDER_INFO = {
69418
+ name: "openai",
69419
+ models: ["gpt-image-1"],
69420
+ defaultModel: "gpt-image-1",
69421
+ capabilities: /* @__PURE__ */ new Set([
69422
+ Capability.TEXT_TO_IMAGE,
69423
+ Capability.ASPECT_RATIO,
69424
+ Capability.IMAGE_EDITING,
69425
+ Capability.MULTIPLE_OUTPUTS
69426
+ ]),
69427
+ aspectRatios: ["1:1", "3:2", "2:3", "16:9", "9:16", "4:3", "3:4"],
69428
+ resolutions: ["1K", "2K", "4K"]
69429
+ };
69430
+
69431
+ // build/providers/openai/client.js
69432
+ var API_BASE = "https://api.openai.com/v1";
69433
+ function mapSize(aspectRatio) {
69434
+ switch (aspectRatio) {
69435
+ case "1:1":
69436
+ return "1024x1024";
69437
+ case "3:2":
69438
+ case "16:9":
69439
+ case "4:3":
69440
+ return "1536x1024";
69441
+ case "2:3":
69442
+ case "9:16":
69443
+ case "3:4":
69444
+ return "1024x1536";
69445
+ default:
69446
+ return "auto";
69447
+ }
69448
+ }
69449
+ function mapQuality(resolution) {
69450
+ switch (resolution) {
69451
+ case "1K":
69452
+ return "low";
69453
+ case "4K":
69454
+ return "high";
69455
+ default:
69456
+ return "auto";
69457
+ }
69458
+ }
69459
+ function buildMultipart(fields, files) {
69460
+ const boundary = `----imgx${Date.now()}${Math.random().toString(36).slice(2)}`;
69461
+ const parts = [];
69462
+ for (const [key, value] of Object.entries(fields)) {
69463
+ parts.push(Buffer.from(`--${boundary}\r
69464
+ Content-Disposition: form-data; name="${key}"\r
69465
+ \r
69466
+ ${value}\r
69467
+ `));
69468
+ }
69469
+ for (const file2 of files) {
69470
+ parts.push(Buffer.from(`--${boundary}\r
69471
+ Content-Disposition: form-data; name="${file2.name}"; filename="${file2.filename}"\r
69472
+ Content-Type: ${file2.contentType}\r
69473
+ \r
69474
+ `));
69475
+ parts.push(file2.data);
69476
+ parts.push(Buffer.from("\r\n"));
69477
+ }
69478
+ parts.push(Buffer.from(`--${boundary}--\r
69479
+ `));
69480
+ const concatenated = Buffer.concat(parts);
69481
+ return {
69482
+ body: new Uint8Array(concatenated.buffer, concatenated.byteOffset, concatenated.byteLength),
69483
+ contentType: `multipart/form-data; boundary=${boundary}`
69484
+ };
69485
+ }
69486
+ var OpenAIProvider = class {
69487
+ info = OPENAI_PROVIDER_INFO;
69488
+ apiKey;
69489
+ constructor(apiKey) {
69490
+ this.apiKey = apiKey;
69491
+ }
69492
+ async generate(input, model) {
69493
+ const modelName = model || this.info.defaultModel;
69494
+ try {
69495
+ const response = await fetch(`${API_BASE}/images/generations`, {
69496
+ method: "POST",
69497
+ headers: {
69498
+ "Content-Type": "application/json",
69499
+ Authorization: `Bearer ${this.apiKey}`
69500
+ },
69501
+ body: JSON.stringify({
69502
+ model: modelName,
69503
+ prompt: input.prompt,
69504
+ n: input.count || 1,
69505
+ size: mapSize(input.aspectRatio),
69506
+ quality: mapQuality(input.resolution)
69507
+ })
69508
+ });
69509
+ const json2 = await response.json();
69510
+ if (!response.ok || json2.error) {
69511
+ return {
69512
+ success: false,
69513
+ images: [],
69514
+ error: json2.error?.message || `HTTP ${response.status}`
69515
+ };
69516
+ }
69517
+ return this.parseResponse(json2);
69518
+ } catch (err) {
69519
+ const msg = err instanceof Error ? err.message : String(err);
69520
+ return { success: false, images: [], error: msg };
69521
+ }
69522
+ }
69523
+ async edit(input, model) {
69524
+ const modelName = model || this.info.defaultModel;
69525
+ const absPath = resolve3(input.inputImage);
69526
+ const imageBuffer = readFileSync3(absPath);
69527
+ const ext = absPath.split(".").pop()?.toLowerCase();
69528
+ const contentType = ext === "jpg" || ext === "jpeg" ? "image/jpeg" : ext === "webp" ? "image/webp" : "image/png";
69529
+ const fields = {
69530
+ model: modelName,
69531
+ prompt: input.prompt,
69532
+ n: String(input.count || 1),
69533
+ size: mapSize(input.aspectRatio),
69534
+ quality: mapQuality(input.resolution)
69535
+ };
69536
+ const { body, contentType: ct } = buildMultipart(fields, [
69537
+ {
69538
+ name: "image",
69539
+ data: imageBuffer,
69540
+ filename: `image.${ext || "png"}`,
69541
+ contentType
69542
+ }
69543
+ ]);
69544
+ try {
69545
+ const response = await fetch(`${API_BASE}/images/edits`, {
69546
+ method: "POST",
69547
+ headers: {
69548
+ Authorization: `Bearer ${this.apiKey}`,
69549
+ "Content-Type": ct
69550
+ },
69551
+ body
69552
+ });
69553
+ const json2 = await response.json();
69554
+ if (!response.ok || json2.error) {
69555
+ return {
69556
+ success: false,
69557
+ images: [],
69558
+ error: json2.error?.message || `HTTP ${response.status}`
69559
+ };
69560
+ }
69561
+ return this.parseResponse(json2);
69562
+ } catch (err) {
69563
+ const msg = err instanceof Error ? err.message : String(err);
69564
+ return { success: false, images: [], error: msg };
69565
+ }
69566
+ }
69567
+ parseResponse(json2) {
69568
+ const images = [];
69569
+ if (json2.data) {
69570
+ for (const item of json2.data) {
69571
+ if (item.b64_json) {
69572
+ images.push({
69573
+ data: Buffer.from(item.b64_json, "base64"),
69574
+ mimeType: "image/png"
69575
+ });
69576
+ }
69577
+ }
69578
+ }
69579
+ if (images.length === 0) {
69580
+ return { success: false, images: [], error: "No image data in response" };
69581
+ }
69582
+ return { success: true, images };
69583
+ }
69584
+ };
69585
+
69586
+ // build/providers/openai/index.js
69587
+ function initOpenAI() {
69588
+ const apiKey = resolveApiKey("openai");
69589
+ if (!apiKey)
69590
+ return;
69591
+ registerProvider(new OpenAIProvider(apiKey));
69592
+ }
69593
+
69378
69594
  // build/mcp/server.js
69379
69595
  var server = new McpServer({
69380
69596
  name: "imgx",
69381
- version: "0.5.2"
69597
+ version: "0.6.1"
69382
69598
  });
69383
69599
  initGemini();
69600
+ initOpenAI();
69384
69601
  function resolveProvider(providerName) {
69385
69602
  const name = providerName || process.env.IMGX_PROVIDER || "gemini";
69386
69603
  const provider = getProvider(name);
69387
69604
  if (!provider) {
69388
69605
  const available = listProviders().map((p) => p.info.name).join(", ");
69389
- throw new Error(`Provider "${name}" not available.` + (available ? ` Available: ${available}` : " Set GEMINI_API_KEY to enable Gemini."));
69606
+ throw new Error(`Provider "${name}" not available.` + (available ? ` Available: ${available}` : " Set GEMINI_API_KEY or OPENAI_API_KEY to enable a provider."));
69390
69607
  }
69391
69608
  return provider;
69392
69609
  }