@coze-arch/cli 0.0.36-alpha.af24fb → 0.0.36-alpha.b20d2b

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.
package/lib/cli.js CHANGED
@@ -23,9 +23,9 @@ var Ajv = require('ajv');
23
23
  var minimist = require('minimist');
24
24
  var changeCase = require('change-case');
25
25
  var ejs = require('ejs');
26
- var node_crypto = require('node:crypto');
27
26
  var node_os = require('node:os');
28
27
  var promises = require('node:fs/promises');
28
+ var node_crypto = require('node:crypto');
29
29
  var node_child_process = require('node:child_process');
30
30
  var node_util = require('node:util');
31
31
  var tar = require('tar');
@@ -1635,7 +1635,7 @@ function createNodeTransport() {
1635
1635
  };
1636
1636
  }
1637
1637
 
1638
- function _nullishCoalesce$c(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain$E(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }/**
1638
+ function _nullishCoalesce$c(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain$F(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }/**
1639
1639
  * Slardar CLI Reporter 主类
1640
1640
  * 封装 @slardar/base 的初始化和上报逻辑
1641
1641
  */
@@ -1707,7 +1707,7 @@ class SlardarCLIReporter {constructor() { SlardarCLIReporter.prototype.__init.ca
1707
1707
  this.client.on('send', (ev) => {
1708
1708
  log$6(
1709
1709
  'send hook called for event: %s',
1710
- (_optionalChain$E([ev, 'optionalAccess', _ => _.ev_type]) ) || 'unknown',
1710
+ (_optionalChain$F([ev, 'optionalAccess', _ => _.ev_type]) ) || 'unknown',
1711
1711
  );
1712
1712
  });
1713
1713
 
@@ -1765,7 +1765,7 @@ class SlardarCLIReporter {constructor() { SlardarCLIReporter.prototype.__init.ca
1765
1765
  )
1766
1766
  : undefined;
1767
1767
 
1768
- _optionalChain$E([this, 'access', _2 => _2.client, 'access', _3 => _3.sendEvent, 'optionalCall', _4 => _4({
1768
+ _optionalChain$F([this, 'access', _2 => _2.client, 'access', _3 => _3.sendEvent, 'optionalCall', _4 => _4({
1769
1769
  name,
1770
1770
  metrics: cleanMetrics ,
1771
1771
  categories: cleanCategories ,
@@ -1836,7 +1836,7 @@ class SlardarCLIReporter {constructor() { SlardarCLIReporter.prototype.__init.ca
1836
1836
  log$6('Reporting JS error:', {
1837
1837
  name: error.name,
1838
1838
  message: error.message.slice(0, 100),
1839
- stack: _optionalChain$E([error, 'access', _5 => _5.stack, 'optionalAccess', _6 => _6.slice, 'call', _7 => _7(0, 200)]),
1839
+ stack: _optionalChain$F([error, 'access', _5 => _5.stack, 'optionalAccess', _6 => _6.slice, 'call', _7 => _7(0, 200)]),
1840
1840
  extra,
1841
1841
  source,
1842
1842
  });
@@ -1856,7 +1856,7 @@ class SlardarCLIReporter {constructor() { SlardarCLIReporter.prototype.__init.ca
1856
1856
  if (!this.ensureInitialized()) {
1857
1857
  return;
1858
1858
  }
1859
- _optionalChain$E([this, 'access', _8 => _8.client, 'access', _9 => _9.context, 'optionalAccess', _10 => _10.set, 'call', _11 => _11(key, value)]);
1859
+ _optionalChain$F([this, 'access', _8 => _8.client, 'access', _9 => _9.context, 'optionalAccess', _10 => _10.set, 'call', _11 => _11(key, value)]);
1860
1860
  }
1861
1861
 
1862
1862
  /**
@@ -1867,7 +1867,7 @@ class SlardarCLIReporter {constructor() { SlardarCLIReporter.prototype.__init.ca
1867
1867
  return;
1868
1868
  }
1869
1869
  log$6('Merging context:', context);
1870
- _optionalChain$E([this, 'access', _12 => _12.client, 'access', _13 => _13.context, 'optionalAccess', _14 => _14.merge, 'call', _15 => _15(context)]);
1870
+ _optionalChain$F([this, 'access', _12 => _12.client, 'access', _13 => _13.context, 'optionalAccess', _14 => _14.merge, 'call', _15 => _15(context)]);
1871
1871
  }
1872
1872
 
1873
1873
  /**
@@ -1877,7 +1877,7 @@ class SlardarCLIReporter {constructor() { SlardarCLIReporter.prototype.__init.ca
1877
1877
  if (!this.ensureInitialized()) {
1878
1878
  return;
1879
1879
  }
1880
- _optionalChain$E([this, 'access', _16 => _16.client, 'access', _17 => _17.context, 'optionalAccess', _18 => _18.delete, 'call', _19 => _19(key)]);
1880
+ _optionalChain$F([this, 'access', _16 => _16.client, 'access', _17 => _17.context, 'optionalAccess', _18 => _18.delete, 'call', _19 => _19(key)]);
1881
1881
  }
1882
1882
 
1883
1883
  /**
@@ -1887,7 +1887,7 @@ class SlardarCLIReporter {constructor() { SlardarCLIReporter.prototype.__init.ca
1887
1887
  if (!this.ensureInitialized()) {
1888
1888
  return;
1889
1889
  }
1890
- _optionalChain$E([this, 'access', _20 => _20.client, 'access', _21 => _21.context, 'optionalAccess', _22 => _22.clear, 'call', _23 => _23()]);
1890
+ _optionalChain$F([this, 'access', _20 => _20.client, 'access', _21 => _21.context, 'optionalAccess', _22 => _22.clear, 'call', _23 => _23()]);
1891
1891
  }
1892
1892
 
1893
1893
  /**
@@ -1924,7 +1924,7 @@ class SlardarCLIReporter {constructor() { SlardarCLIReporter.prototype.__init.ca
1924
1924
  return;
1925
1925
  }
1926
1926
  log$6('Flushing Slardar data...');
1927
- _optionalChain$E([this, 'access', _24 => _24.client, 'access', _25 => _25.getSender, 'optionalCall', _26 => _26(), 'optionalAccess', _27 => _27.flush, 'call', _28 => _28()]);
1927
+ _optionalChain$F([this, 'access', _24 => _24.client, 'access', _25 => _25.getSender, 'optionalCall', _26 => _26(), 'optionalAccess', _27 => _27.flush, 'call', _28 => _28()]);
1928
1928
  log$6('Waiting %dms for events to be sent...', waitMs);
1929
1929
  await new Promise(resolve => setTimeout(resolve, waitMs));
1930
1930
  log$6('Slardar data flushed');
@@ -1943,7 +1943,7 @@ class SlardarCLIReporter {constructor() { SlardarCLIReporter.prototype.__init.ca
1943
1943
  */
1944
1944
  const reporter = new SlardarCLIReporter();
1945
1945
 
1946
- function _optionalChain$D(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
1946
+ function _optionalChain$E(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
1947
1947
 
1948
1948
 
1949
1949
 
@@ -2003,11 +2003,11 @@ const EventBuilder = {
2003
2003
  name: CLI_EVENTS.CLI_COMMAND,
2004
2004
  categories: {
2005
2005
  command,
2006
- args: _optionalChain$D([options, 'optionalAccess', _ => _.args]),
2006
+ args: _optionalChain$E([options, 'optionalAccess', _ => _.args]),
2007
2007
  status: 'running' ,
2008
- ..._optionalChain$D([options, 'optionalAccess', _2 => _2.categories]),
2008
+ ..._optionalChain$E([options, 'optionalAccess', _2 => _2.categories]),
2009
2009
  },
2010
- metrics: _optionalChain$D([options, 'optionalAccess', _3 => _3.metrics]),
2010
+ metrics: _optionalChain$E([options, 'optionalAccess', _3 => _3.metrics]),
2011
2011
  };
2012
2012
  },
2013
2013
 
@@ -2028,13 +2028,13 @@ const EventBuilder = {
2028
2028
  name: CLI_EVENTS.CLI_COMMAND_COMPLETE,
2029
2029
  categories: {
2030
2030
  command,
2031
- args: _optionalChain$D([options, 'optionalAccess', _4 => _4.args]),
2031
+ args: _optionalChain$E([options, 'optionalAccess', _4 => _4.args]),
2032
2032
  status: success ? ('success' ) : ('fail' ),
2033
- ..._optionalChain$D([options, 'optionalAccess', _5 => _5.categories]),
2033
+ ..._optionalChain$E([options, 'optionalAccess', _5 => _5.categories]),
2034
2034
  },
2035
2035
  metrics: {
2036
2036
  duration,
2037
- ...(_optionalChain$D([options, 'optionalAccess', _6 => _6.errorCode]) && { errorCode: options.errorCode }),
2037
+ ...(_optionalChain$E([options, 'optionalAccess', _6 => _6.errorCode]) && { errorCode: options.errorCode }),
2038
2038
  },
2039
2039
  };
2040
2040
  },
@@ -2055,12 +2055,12 @@ const EventBuilder = {
2055
2055
  name: CLI_EVENTS.NETWORK_REQUEST,
2056
2056
  categories: {
2057
2057
  url,
2058
- method: _optionalChain$D([options, 'optionalAccess', _7 => _7.method]) || 'GET',
2059
- statusCode: _optionalChain$D([options, 'optionalAccess', _8 => _8.statusCode, 'optionalAccess', _9 => _9.toString, 'call', _10 => _10()]),
2060
- status: _optionalChain$D([options, 'optionalAccess', _11 => _11.success]) ? ('success' ) : ('fail' ),
2058
+ method: _optionalChain$E([options, 'optionalAccess', _7 => _7.method]) || 'GET',
2059
+ statusCode: _optionalChain$E([options, 'optionalAccess', _8 => _8.statusCode, 'optionalAccess', _9 => _9.toString, 'call', _10 => _10()]),
2060
+ status: _optionalChain$E([options, 'optionalAccess', _11 => _11.success]) ? ('success' ) : ('fail' ),
2061
2061
  },
2062
2062
  metrics: {
2063
- duration: _optionalChain$D([options, 'optionalAccess', _12 => _12.duration]),
2063
+ duration: _optionalChain$E([options, 'optionalAccess', _12 => _12.duration]),
2064
2064
  },
2065
2065
  };
2066
2066
  },
@@ -2082,11 +2082,11 @@ const EventBuilder = {
2082
2082
  categories: {
2083
2083
  operation,
2084
2084
  filePath,
2085
- status: _optionalChain$D([options, 'optionalAccess', _13 => _13.success]) ? ('success' ) : ('fail' ),
2085
+ status: _optionalChain$E([options, 'optionalAccess', _13 => _13.success]) ? ('success' ) : ('fail' ),
2086
2086
  },
2087
2087
  metrics: {
2088
- duration: _optionalChain$D([options, 'optionalAccess', _14 => _14.duration]),
2089
- fileSize: _optionalChain$D([options, 'optionalAccess', _15 => _15.fileSize]),
2088
+ duration: _optionalChain$E([options, 'optionalAccess', _14 => _14.duration]),
2089
+ fileSize: _optionalChain$E([options, 'optionalAccess', _15 => _15.fileSize]),
2090
2090
  },
2091
2091
  };
2092
2092
  },
@@ -2114,7 +2114,7 @@ const EventBuilder = {
2114
2114
  };
2115
2115
 
2116
2116
  var name = "@coze-arch/cli";
2117
- var version = "0.0.36-alpha.af24fb";
2117
+ var version = "0.0.36-alpha.b20d2b";
2118
2118
  var description = "coze coding devtools cli";
2119
2119
  var license = "MIT";
2120
2120
  var author = "fanwenjie.fe@bytedance.com";
@@ -2224,7 +2224,7 @@ var packageJson = {
2224
2224
  cozePublishConfig: cozePublishConfig
2225
2225
  };
2226
2226
 
2227
- function _optionalChain$C(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }/**
2227
+ function _optionalChain$D(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }/**
2228
2228
  * Slardar 监控初始化和上报
2229
2229
  */
2230
2230
 
@@ -2327,11 +2327,11 @@ const reportCommandComplete = safeRun(
2327
2327
  ,
2328
2328
  ) => {
2329
2329
  const event = EventBuilder.cliCommandComplete(command, success, duration, {
2330
- args: _optionalChain$C([options, 'optionalAccess', _ => _.args]),
2331
- errorCode: _optionalChain$C([options, 'optionalAccess', _2 => _2.errorCode]),
2330
+ args: _optionalChain$D([options, 'optionalAccess', _ => _.args]),
2331
+ errorCode: _optionalChain$D([options, 'optionalAccess', _2 => _2.errorCode]),
2332
2332
  categories: {
2333
- ...(_optionalChain$C([options, 'optionalAccess', _3 => _3.errorMessage]) && { errorMessage: options.errorMessage }),
2334
- ..._optionalChain$C([options, 'optionalAccess', _4 => _4.categories]),
2333
+ ...(_optionalChain$D([options, 'optionalAccess', _3 => _3.errorMessage]) && { errorMessage: options.errorMessage }),
2334
+ ..._optionalChain$D([options, 'optionalAccess', _4 => _4.categories]),
2335
2335
  },
2336
2336
  });
2337
2337
  reporter.sendEvent(event.name, event.metrics, event.categories);
@@ -2390,7 +2390,7 @@ const flushSlardar = safeRun('flushSlardar', async () => {
2390
2390
  await reporter.flush();
2391
2391
  });
2392
2392
 
2393
- function _nullishCoalesce$b(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain$B(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var LogLevel; (function (LogLevel) {
2393
+ function _nullishCoalesce$b(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain$C(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var LogLevel; (function (LogLevel) {
2394
2394
  const ERROR = 0; LogLevel[LogLevel["ERROR"] = ERROR] = "ERROR";
2395
2395
  const WARN = 1; LogLevel[LogLevel["WARN"] = WARN] = "WARN";
2396
2396
  const SUCCESS = 2; LogLevel[LogLevel["SUCCESS"] = SUCCESS] = "SUCCESS";
@@ -2437,7 +2437,7 @@ class Logger {
2437
2437
  return level;
2438
2438
  }
2439
2439
 
2440
- const envLevel = _optionalChain$B([process, 'access', _ => _.env, 'access', _2 => _2.LOG_LEVEL, 'optionalAccess', _3 => _3.toLowerCase, 'call', _4 => _4()]);
2440
+ const envLevel = _optionalChain$C([process, 'access', _ => _.env, 'access', _2 => _2.LOG_LEVEL, 'optionalAccess', _3 => _3.toLowerCase, 'call', _4 => _4()]);
2441
2441
  if (envLevel && envLevel in LOG_LEVEL_MAP) {
2442
2442
  // envLevel 已通过 `in` 检查确认为 LOG_LEVEL_MAP 的键;
2443
2443
  // 显式判空以满足 noUncheckedIndexedAccess,运行时行为不变
@@ -2454,7 +2454,7 @@ class Logger {
2454
2454
  // 简单检测:Node.js 环境且支持 TTY
2455
2455
  return (
2456
2456
  typeof process !== 'undefined' &&
2457
- _optionalChain$B([process, 'access', _5 => _5.stdout, 'optionalAccess', _6 => _6.isTTY]) === true &&
2457
+ _optionalChain$C([process, 'access', _5 => _5.stdout, 'optionalAccess', _6 => _6.isTTY]) === true &&
2458
2458
  process.env.NO_COLOR === undefined
2459
2459
  );
2460
2460
  }
@@ -3262,7 +3262,7 @@ const registerCommand$6 = program => {
3262
3262
  });
3263
3263
  };
3264
3264
 
3265
- function _optionalChain$A(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }// Safe JSON parsing utilities with type safety and error handling
3265
+ function _optionalChain$B(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }// Safe JSON parsing utilities with type safety and error handling
3266
3266
  // Provides fallback values, validation, and error monitoring capabilities
3267
3267
 
3268
3268
  /**
@@ -3362,12 +3362,12 @@ function safeJsonParse(
3362
3362
  const parsed = JSON.parse(String(input));
3363
3363
 
3364
3364
  // Optional validation
3365
- if (_optionalChain$A([options, 'optionalAccess', _ => _.validate])) {
3365
+ if (_optionalChain$B([options, 'optionalAccess', _ => _.validate])) {
3366
3366
  if (options.validate(parsed)) {
3367
3367
  return parsed;
3368
3368
  } else {
3369
3369
  const validationError = new Error('JSON validation failed');
3370
- _optionalChain$A([options, 'access', _2 => _2.onError, 'optionalCall', _3 => _3(validationError, input)]);
3370
+ _optionalChain$B([options, 'access', _2 => _2.onError, 'optionalCall', _3 => _3(validationError, input)]);
3371
3371
 
3372
3372
  if (options.throwOnValidationError) {
3373
3373
  throw validationError;
@@ -3379,10 +3379,10 @@ function safeJsonParse(
3379
3379
  return parsed;
3380
3380
  } catch (error) {
3381
3381
  // Re-throw validation errors when throwOnValidationError is true
3382
- if (error instanceof Error && error.message === 'JSON validation failed' && _optionalChain$A([options, 'optionalAccess', _4 => _4.throwOnValidationError])) {
3382
+ if (error instanceof Error && error.message === 'JSON validation failed' && _optionalChain$B([options, 'optionalAccess', _4 => _4.throwOnValidationError])) {
3383
3383
  throw error;
3384
3384
  }
3385
- _optionalChain$A([options, 'optionalAccess', _5 => _5.onError, 'optionalCall', _6 => _6(error , input)]);
3385
+ _optionalChain$B([options, 'optionalAccess', _5 => _5.onError, 'optionalCall', _6 => _6(error , input)]);
3386
3386
  return defaultValue;
3387
3387
  }
3388
3388
  }
@@ -3422,7 +3422,7 @@ function isNode(node) {
3422
3422
  }
3423
3423
  const hasAnchor = (node) => (isScalar(node) || isCollection(node)) && !!node.anchor;
3424
3424
 
3425
- function _optionalChain$z(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
3425
+ function _optionalChain$A(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
3426
3426
  const BREAK = Symbol('break visit');
3427
3427
  const SKIP = Symbol('skip children');
3428
3428
  const REMOVE = Symbol('remove node');
@@ -3535,15 +3535,15 @@ function callVisitor(key, node, visitor, path) {
3535
3535
  if (typeof visitor === 'function')
3536
3536
  return visitor(key, node, path);
3537
3537
  if (isMap(node))
3538
- return _optionalChain$z([visitor, 'access', _ => _.Map, 'optionalCall', _2 => _2(key, node, path)]);
3538
+ return _optionalChain$A([visitor, 'access', _ => _.Map, 'optionalCall', _2 => _2(key, node, path)]);
3539
3539
  if (isSeq(node))
3540
- return _optionalChain$z([visitor, 'access', _3 => _3.Seq, 'optionalCall', _4 => _4(key, node, path)]);
3540
+ return _optionalChain$A([visitor, 'access', _3 => _3.Seq, 'optionalCall', _4 => _4(key, node, path)]);
3541
3541
  if (isPair(node))
3542
- return _optionalChain$z([visitor, 'access', _5 => _5.Pair, 'optionalCall', _6 => _6(key, node, path)]);
3542
+ return _optionalChain$A([visitor, 'access', _5 => _5.Pair, 'optionalCall', _6 => _6(key, node, path)]);
3543
3543
  if (isScalar(node))
3544
- return _optionalChain$z([visitor, 'access', _7 => _7.Scalar, 'optionalCall', _8 => _8(key, node, path)]);
3544
+ return _optionalChain$A([visitor, 'access', _7 => _7.Scalar, 'optionalCall', _8 => _8(key, node, path)]);
3545
3545
  if (isAlias(node))
3546
- return _optionalChain$z([visitor, 'access', _9 => _9.Alias, 'optionalCall', _10 => _10(key, node, path)]);
3546
+ return _optionalChain$A([visitor, 'access', _9 => _9.Alias, 'optionalCall', _10 => _10(key, node, path)]);
3547
3547
  return undefined;
3548
3548
  }
3549
3549
  function replaceNode(key, path, node) {
@@ -3634,7 +3634,7 @@ function applyReviver(reviver, obj, key, val) {
3634
3634
  return reviver.call(obj, key, val);
3635
3635
  }
3636
3636
 
3637
- function _optionalChain$y(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
3637
+ function _optionalChain$z(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
3638
3638
  /**
3639
3639
  * Recursively convert any node or its contents to native JavaScript
3640
3640
  *
@@ -3664,7 +3664,7 @@ function toJS(value, arg, ctx) {
3664
3664
  ctx.onCreate(res);
3665
3665
  return res;
3666
3666
  }
3667
- if (typeof value === 'bigint' && !_optionalChain$y([ctx, 'optionalAccess', _ => _.keep]))
3667
+ if (typeof value === 'bigint' && !_optionalChain$z([ctx, 'optionalAccess', _ => _.keep]))
3668
3668
  return Number(value);
3669
3669
  return value;
3670
3670
  }
@@ -3702,7 +3702,7 @@ class NodeBase {
3702
3702
  }
3703
3703
  }
3704
3704
 
3705
- function _optionalChain$x(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
3705
+ function _optionalChain$y(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
3706
3706
  class Alias extends NodeBase {
3707
3707
  constructor(source) {
3708
3708
  super(ALIAS);
@@ -3718,10 +3718,10 @@ class Alias extends NodeBase {
3718
3718
  * instance of the `source` anchor before this node.
3719
3719
  */
3720
3720
  resolve(doc, ctx) {
3721
- if (_optionalChain$x([ctx, 'optionalAccess', _ => _.maxAliasCount]) === 0)
3721
+ if (_optionalChain$y([ctx, 'optionalAccess', _ => _.maxAliasCount]) === 0)
3722
3722
  throw new ReferenceError('Alias resolution is disabled');
3723
3723
  let nodes;
3724
- if (_optionalChain$x([ctx, 'optionalAccess', _2 => _2.aliasResolveCache])) {
3724
+ if (_optionalChain$y([ctx, 'optionalAccess', _2 => _2.aliasResolveCache])) {
3725
3725
  nodes = ctx.aliasResolveCache;
3726
3726
  }
3727
3727
  else {
@@ -3760,7 +3760,7 @@ class Alias extends NodeBase {
3760
3760
  data = anchors.get(source);
3761
3761
  }
3762
3762
  /* istanbul ignore if */
3763
- if (_optionalChain$x([data, 'optionalAccess', _3 => _3.res]) === undefined) {
3763
+ if (_optionalChain$y([data, 'optionalAccess', _3 => _3.res]) === undefined) {
3764
3764
  const msg = 'This should not happen: Alias anchor was not resolved?';
3765
3765
  throw new ReferenceError(msg);
3766
3766
  }
@@ -3812,7 +3812,7 @@ function getAliasCount(doc, node, anchors) {
3812
3812
  return 1;
3813
3813
  }
3814
3814
 
3815
- function _optionalChain$w(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
3815
+ function _optionalChain$x(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
3816
3816
  const isScalarValue = (value) => !value || (typeof value !== 'function' && typeof value !== 'object');
3817
3817
  class Scalar extends NodeBase {
3818
3818
  constructor(value) {
@@ -3820,7 +3820,7 @@ class Scalar extends NodeBase {
3820
3820
  this.value = value;
3821
3821
  }
3822
3822
  toJSON(arg, ctx) {
3823
- return _optionalChain$w([ctx, 'optionalAccess', _ => _.keep]) ? this.value : toJS(this.value, arg, ctx);
3823
+ return _optionalChain$x([ctx, 'optionalAccess', _ => _.keep]) ? this.value : toJS(this.value, arg, ctx);
3824
3824
  }
3825
3825
  toString() {
3826
3826
  return String(this.value);
@@ -3832,7 +3832,7 @@ Scalar.PLAIN = 'PLAIN';
3832
3832
  Scalar.QUOTE_DOUBLE = 'QUOTE_DOUBLE';
3833
3833
  Scalar.QUOTE_SINGLE = 'QUOTE_SINGLE';
3834
3834
 
3835
- function _nullishCoalesce$a(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain$v(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
3835
+ function _nullishCoalesce$a(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain$w(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
3836
3836
  const defaultTagPrefix = 'tag:yaml.org,2002:';
3837
3837
  function findTagObject(value, tagName, tags) {
3838
3838
  if (tagName) {
@@ -3842,7 +3842,7 @@ function findTagObject(value, tagName, tags) {
3842
3842
  throw new Error(`Tag ${tagName} not found`);
3843
3843
  return tagObj;
3844
3844
  }
3845
- return tags.find(t => _optionalChain$v([t, 'access', _ => _.identify, 'optionalCall', _2 => _2(value)]) && !t.format);
3845
+ return tags.find(t => _optionalChain$w([t, 'access', _ => _.identify, 'optionalCall', _2 => _2(value)]) && !t.format);
3846
3846
  }
3847
3847
  function createNode(value, tagName, ctx) {
3848
3848
  if (isDocument(value))
@@ -3850,7 +3850,7 @@ function createNode(value, tagName, ctx) {
3850
3850
  if (isNode(value))
3851
3851
  return value;
3852
3852
  if (isPair(value)) {
3853
- const map = _optionalChain$v([ctx, 'access', _3 => _3.schema, 'access', _4 => _4[MAP], 'access', _5 => _5.createNode, 'optionalCall', _6 => _6(ctx.schema, null, ctx)]);
3853
+ const map = _optionalChain$w([ctx, 'access', _3 => _3.schema, 'access', _4 => _4[MAP], 'access', _5 => _5.createNode, 'optionalCall', _6 => _6(ctx.schema, null, ctx)]);
3854
3854
  map.items.push(value);
3855
3855
  return map;
3856
3856
  }
@@ -3877,7 +3877,7 @@ function createNode(value, tagName, ctx) {
3877
3877
  sourceObjects.set(value, ref);
3878
3878
  }
3879
3879
  }
3880
- if (_optionalChain$v([tagName, 'optionalAccess', _7 => _7.startsWith, 'call', _8 => _8('!!')]))
3880
+ if (_optionalChain$w([tagName, 'optionalAccess', _7 => _7.startsWith, 'call', _8 => _8('!!')]))
3881
3881
  tagName = defaultTagPrefix + tagName.slice(2);
3882
3882
  let tagObj = findTagObject(value, tagName, schema.tags);
3883
3883
  if (!tagObj) {
@@ -3902,9 +3902,9 @@ function createNode(value, tagName, ctx) {
3902
3902
  onTagObj(tagObj);
3903
3903
  delete ctx.onTagObj;
3904
3904
  }
3905
- const node = _optionalChain$v([tagObj, 'optionalAccess', _9 => _9.createNode])
3905
+ const node = _optionalChain$w([tagObj, 'optionalAccess', _9 => _9.createNode])
3906
3906
  ? tagObj.createNode(ctx.schema, value, ctx)
3907
- : typeof _optionalChain$v([tagObj, 'optionalAccess', _10 => _10.nodeClass, 'optionalAccess', _11 => _11.from]) === 'function'
3907
+ : typeof _optionalChain$w([tagObj, 'optionalAccess', _10 => _10.nodeClass, 'optionalAccess', _11 => _11.from]) === 'function'
3908
3908
  ? tagObj.nodeClass.from(ctx.schema, value, ctx)
3909
3909
  : new Scalar(value);
3910
3910
  if (tagName)
@@ -4222,7 +4222,7 @@ function consumeMoreIndentedLines(text, i, indent) {
4222
4222
  return end;
4223
4223
  }
4224
4224
 
4225
- function _optionalChain$u(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
4225
+ function _optionalChain$v(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
4226
4226
  const getFoldOptions = (ctx, isBlock) => ({
4227
4227
  indentAtStart: isBlock ? ctx.indent.length : ctx.indentAtStart,
4228
4228
  lineWidth: ctx.options.lineWidth,
@@ -4507,9 +4507,9 @@ function plainString(item, ctx, onComment, onChompKeep) {
4507
4507
  // booleans get parsed with those types in v1.2 (e.g. '42', 'true' & '0.9e-3'),
4508
4508
  // and others in v1.1.
4509
4509
  if (actualString) {
4510
- const test = (tag) => tag.default && tag.tag !== 'tag:yaml.org,2002:str' && _optionalChain$u([tag, 'access', _ => _.test, 'optionalAccess', _2 => _2.test, 'call', _3 => _3(str)]);
4510
+ const test = (tag) => tag.default && tag.tag !== 'tag:yaml.org,2002:str' && _optionalChain$v([tag, 'access', _ => _.test, 'optionalAccess', _2 => _2.test, 'call', _3 => _3(str)]);
4511
4511
  const { compat, tags } = ctx.doc.schema;
4512
- if (tags.some(test) || _optionalChain$u([compat, 'optionalAccess', _4 => _4.some, 'call', _5 => _5(test)]))
4512
+ if (tags.some(test) || _optionalChain$v([compat, 'optionalAccess', _4 => _4.some, 'call', _5 => _5(test)]))
4513
4513
  return quotedString(value, ctx);
4514
4514
  }
4515
4515
  return implicitKey
@@ -4555,7 +4555,7 @@ function stringifyString(item, ctx, onComment, onChompKeep) {
4555
4555
  return res;
4556
4556
  }
4557
4557
 
4558
- function _nullishCoalesce$9(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain$t(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
4558
+ function _nullishCoalesce$9(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain$u(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
4559
4559
  function createStringifyContext(doc, options) {
4560
4560
  const opt = Object.assign({
4561
4561
  blockQuote: true,
@@ -4608,7 +4608,7 @@ function getTagObject(tags, item) {
4608
4608
  let obj;
4609
4609
  if (isScalar(item)) {
4610
4610
  obj = item.value;
4611
- let match = tags.filter(t => _optionalChain$t([t, 'access', _ => _.identify, 'optionalCall', _2 => _2(obj)]));
4611
+ let match = tags.filter(t => _optionalChain$u([t, 'access', _ => _.identify, 'optionalCall', _2 => _2(obj)]));
4612
4612
  if (match.length > 1) {
4613
4613
  const testMatch = match.filter(t => t.test);
4614
4614
  if (testMatch.length > 0)
@@ -4622,7 +4622,7 @@ function getTagObject(tags, item) {
4622
4622
  tagObj = tags.find(t => t.nodeClass && obj instanceof t.nodeClass);
4623
4623
  }
4624
4624
  if (!tagObj) {
4625
- const name = _nullishCoalesce$9(_optionalChain$t([obj, 'optionalAccess', _3 => _3.constructor, 'optionalAccess', _4 => _4.name]), () => ( (obj === null ? 'null' : typeof obj)));
4625
+ const name = _nullishCoalesce$9(_optionalChain$u([obj, 'optionalAccess', _3 => _3.constructor, 'optionalAccess', _4 => _4.name]), () => ( (obj === null ? 'null' : typeof obj)));
4626
4626
  throw new Error(`Tag not resolved for ${name} value`);
4627
4627
  }
4628
4628
  return tagObj;
@@ -4648,7 +4648,7 @@ function stringify(item, ctx, onComment, onChompKeep) {
4648
4648
  if (isAlias(item)) {
4649
4649
  if (ctx.doc.directives)
4650
4650
  return item.toString(ctx);
4651
- if (_optionalChain$t([ctx, 'access', _5 => _5.resolvedAliases, 'optionalAccess', _6 => _6.has, 'call', _7 => _7(item)])) {
4651
+ if (_optionalChain$u([ctx, 'access', _5 => _5.resolvedAliases, 'optionalAccess', _6 => _6.has, 'call', _7 => _7(item)])) {
4652
4652
  throw new TypeError(`Cannot stringify circular structure without alias nodes`);
4653
4653
  }
4654
4654
  else {
@@ -4830,7 +4830,7 @@ function warn(logLevel, warning) {
4830
4830
  }
4831
4831
  }
4832
4832
 
4833
- function _optionalChain$s(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
4833
+ function _optionalChain$t(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
4834
4834
  // If the value associated with a merge key is a single mapping node, each of
4835
4835
  // its key/value pairs is inserted into the current mapping, unless the key
4836
4836
  // already exists in it. If the value associated with the merge key is a
@@ -4854,7 +4854,7 @@ const isMergeKey = (ctx, key) => (merge.identify(key) ||
4854
4854
  (isScalar(key) &&
4855
4855
  (!key.type || key.type === Scalar.PLAIN) &&
4856
4856
  merge.identify(key.value))) &&
4857
- _optionalChain$s([ctx, 'optionalAccess', _ => _.doc, 'access', _2 => _2.schema, 'access', _3 => _3.tags, 'access', _4 => _4.some, 'call', _5 => _5(tag => tag.tag === merge.tag && tag.default)]);
4857
+ _optionalChain$t([ctx, 'optionalAccess', _ => _.doc, 'access', _2 => _2.schema, 'access', _3 => _3.tags, 'access', _4 => _4.some, 'call', _5 => _5(tag => tag.tag === merge.tag && tag.default)]);
4858
4858
  function addMergeToJSMap(ctx, map, value) {
4859
4859
  const source = resolveAliasValue(ctx, value);
4860
4860
  if (isSeq(source))
@@ -4894,7 +4894,7 @@ function resolveAliasValue(ctx, value) {
4894
4894
  return ctx && isAlias(value) ? value.resolve(ctx.doc, ctx) : value;
4895
4895
  }
4896
4896
 
4897
- function _optionalChain$r(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
4897
+ function _optionalChain$s(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
4898
4898
  function addPairToJSMap(ctx, map, { key, value }) {
4899
4899
  if (isNode(key) && key.addToJSMap)
4900
4900
  key.addToJSMap(ctx, map, value);
@@ -4931,7 +4931,7 @@ function stringifyKey(key, jsKey, ctx) {
4931
4931
  // eslint-disable-next-line @typescript-eslint/no-base-to-string
4932
4932
  if (typeof jsKey !== 'object')
4933
4933
  return String(jsKey);
4934
- if (isNode(key) && _optionalChain$r([ctx, 'optionalAccess', _ => _.doc])) {
4934
+ if (isNode(key) && _optionalChain$s([ctx, 'optionalAccess', _ => _.doc])) {
4935
4935
  const strCtx = createStringifyContext(ctx.doc, {});
4936
4936
  strCtx.anchors = new Set();
4937
4937
  for (const node of ctx.anchors.keys())
@@ -4951,7 +4951,7 @@ function stringifyKey(key, jsKey, ctx) {
4951
4951
  return JSON.stringify(jsKey);
4952
4952
  }
4953
4953
 
4954
- function _optionalChain$q(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
4954
+ function _optionalChain$r(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
4955
4955
  function createPair(key, value, ctx) {
4956
4956
  const k = createNode(key, undefined, ctx);
4957
4957
  const v = createNode(value, undefined, ctx);
@@ -4972,17 +4972,17 @@ class Pair {
4972
4972
  return new Pair(key, value);
4973
4973
  }
4974
4974
  toJSON(_, ctx) {
4975
- const pair = _optionalChain$q([ctx, 'optionalAccess', _2 => _2.mapAsMap]) ? new Map() : {};
4975
+ const pair = _optionalChain$r([ctx, 'optionalAccess', _2 => _2.mapAsMap]) ? new Map() : {};
4976
4976
  return addPairToJSMap(ctx, pair, this);
4977
4977
  }
4978
4978
  toString(ctx, onComment, onChompKeep) {
4979
- return _optionalChain$q([ctx, 'optionalAccess', _3 => _3.doc])
4979
+ return _optionalChain$r([ctx, 'optionalAccess', _3 => _3.doc])
4980
4980
  ? stringifyPair(this, ctx, onComment, onChompKeep)
4981
4981
  : JSON.stringify(this);
4982
4982
  }
4983
4983
  }
4984
4984
 
4985
- function _nullishCoalesce$7(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain$p(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
4985
+ function _nullishCoalesce$7(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain$q(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
4986
4986
  function stringifyCollection(collection, ctx, options) {
4987
4987
  const flow = _nullishCoalesce$7(ctx.inFlow, () => ( collection.flow));
4988
4988
  const stringify = flow ? stringifyFlowCollection : stringifyBlockCollection;
@@ -5076,7 +5076,7 @@ function stringifyFlowCollection({ items }, ctx, { flowChars, itemIndent }) {
5076
5076
  if (iv.commentBefore)
5077
5077
  reqNewline = true;
5078
5078
  }
5079
- else if (item.value == null && _optionalChain$p([ik, 'optionalAccess', _ => _.comment])) {
5079
+ else if (item.value == null && _optionalChain$q([ik, 'optionalAccess', _ => _.comment])) {
5080
5080
  comment = ik.comment;
5081
5081
  }
5082
5082
  }
@@ -5131,7 +5131,7 @@ function addCommentBefore({ indent, options: { commentString } }, lines, comment
5131
5131
  }
5132
5132
  }
5133
5133
 
5134
- function _nullishCoalesce$6(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain$o(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
5134
+ function _nullishCoalesce$6(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain$p(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
5135
5135
  function findPair(items, key) {
5136
5136
  const k = isScalar(key) ? key.value : key;
5137
5137
  for (const it of items) {
@@ -5192,12 +5192,12 @@ class YAMLMap extends Collection {
5192
5192
  _pair = pair;
5193
5193
  else if (!pair || typeof pair !== 'object' || !('key' in pair)) {
5194
5194
  // In TypeScript, this never happens.
5195
- _pair = new Pair(pair, _optionalChain$o([pair, 'optionalAccess', _2 => _2.value]));
5195
+ _pair = new Pair(pair, _optionalChain$p([pair, 'optionalAccess', _2 => _2.value]));
5196
5196
  }
5197
5197
  else
5198
5198
  _pair = new Pair(pair.key, pair.value);
5199
5199
  const prev = findPair(this.items, _pair.key);
5200
- const sortEntries = _optionalChain$o([this, 'access', _3 => _3.schema, 'optionalAccess', _4 => _4.sortMapEntries]);
5200
+ const sortEntries = _optionalChain$p([this, 'access', _3 => _3.schema, 'optionalAccess', _4 => _4.sortMapEntries]);
5201
5201
  if (prev) {
5202
5202
  if (!overwrite)
5203
5203
  throw new Error(`Key ${_pair.key} already set`);
@@ -5227,7 +5227,7 @@ class YAMLMap extends Collection {
5227
5227
  }
5228
5228
  get(key, keepScalar) {
5229
5229
  const it = findPair(this.items, key);
5230
- const node = _optionalChain$o([it, 'optionalAccess', _5 => _5.value]);
5230
+ const node = _optionalChain$p([it, 'optionalAccess', _5 => _5.value]);
5231
5231
  return _nullishCoalesce$6((!keepScalar && isScalar(node) ? node.value : node), () => ( undefined));
5232
5232
  }
5233
5233
  has(key) {
@@ -5242,8 +5242,8 @@ class YAMLMap extends Collection {
5242
5242
  * @returns Instance of Type, Map, or Object
5243
5243
  */
5244
5244
  toJSON(_, ctx, Type) {
5245
- const map = Type ? new Type() : _optionalChain$o([ctx, 'optionalAccess', _6 => _6.mapAsMap]) ? new Map() : {};
5246
- if (_optionalChain$o([ctx, 'optionalAccess', _7 => _7.onCreate]))
5245
+ const map = Type ? new Type() : _optionalChain$p([ctx, 'optionalAccess', _6 => _6.mapAsMap]) ? new Map() : {};
5246
+ if (_optionalChain$p([ctx, 'optionalAccess', _7 => _7.onCreate]))
5247
5247
  ctx.onCreate(map);
5248
5248
  for (const item of this.items)
5249
5249
  addPairToJSMap(ctx, map, item);
@@ -5268,7 +5268,7 @@ class YAMLMap extends Collection {
5268
5268
  }
5269
5269
  }
5270
5270
 
5271
- function _optionalChain$n(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
5271
+ function _optionalChain$o(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
5272
5272
  class YAMLSeq extends Collection {
5273
5273
  static get tagName() {
5274
5274
  return 'tag:yaml.org,2002:seq';
@@ -5331,7 +5331,7 @@ class YAMLSeq extends Collection {
5331
5331
  }
5332
5332
  toJSON(_, ctx) {
5333
5333
  const seq = [];
5334
- if (_optionalChain$n([ctx, 'optionalAccess', _2 => _2.onCreate]))
5334
+ if (_optionalChain$o([ctx, 'optionalAccess', _2 => _2.onCreate]))
5335
5335
  ctx.onCreate(seq);
5336
5336
  let i = 0;
5337
5337
  for (const item of this.items)
@@ -5410,7 +5410,7 @@ function createPairs(schema, iterable, ctx) {
5410
5410
  return pairs;
5411
5411
  }
5412
5412
 
5413
- function _optionalChain$m(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
5413
+ function _optionalChain$n(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
5414
5414
  class YAMLOMap extends YAMLSeq {
5415
5415
  constructor() {
5416
5416
  super();
@@ -5429,7 +5429,7 @@ class YAMLOMap extends YAMLSeq {
5429
5429
  if (!ctx)
5430
5430
  return super.toJSON(_);
5431
5431
  const map = new Map();
5432
- if (_optionalChain$m([ctx, 'optionalAccess', _2 => _2.onCreate]))
5432
+ if (_optionalChain$n([ctx, 'optionalAccess', _2 => _2.onCreate]))
5433
5433
  ctx.onCreate(map);
5434
5434
  for (const pair of this.items) {
5435
5435
  let key, value;
@@ -5547,7 +5547,7 @@ const isDirExists = async (file) => {
5547
5547
  }
5548
5548
  };
5549
5549
 
5550
- function _optionalChain$l(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }// ABOUTME: Project type detection utility
5550
+ function _optionalChain$m(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }// ABOUTME: Project type detection utility
5551
5551
 
5552
5552
  /**
5553
5553
  * 支持的项目类型枚举
@@ -5649,7 +5649,7 @@ const collectProjectInfo = async (
5649
5649
  }
5650
5650
 
5651
5651
  const scripts = Object.entries(
5652
- (_optionalChain$l([packageJson, 'optionalAccess', _ => _.scripts]) ) || {},
5652
+ (_optionalChain$m([packageJson, 'optionalAccess', _ => _.scripts]) ) || {},
5653
5653
  ).reduce((acc, [name, script]) => {
5654
5654
  if (typeof script === 'string') {
5655
5655
  acc[name] = script;
@@ -5803,7 +5803,7 @@ const detectProjectType = async (
5803
5803
  };
5804
5804
  };
5805
5805
 
5806
- function _optionalChain$k(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
5806
+ function _optionalChain$l(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
5807
5807
 
5808
5808
 
5809
5809
  /**
@@ -5970,13 +5970,13 @@ const getDefaultCommandConfig = (
5970
5970
  ) => {
5971
5971
  switch (commandName) {
5972
5972
  case 'dev':
5973
- return _optionalChain$k([config, 'access', _ => _.dev, 'optionalAccess', _2 => _2.run]);
5973
+ return _optionalChain$l([config, 'access', _ => _.dev, 'optionalAccess', _2 => _2.run]);
5974
5974
  case 'build':
5975
- return _optionalChain$k([config, 'access', _3 => _3.deploy, 'optionalAccess', _4 => _4.build]);
5975
+ return _optionalChain$l([config, 'access', _3 => _3.deploy, 'optionalAccess', _4 => _4.build]);
5976
5976
  case 'start':
5977
- return _optionalChain$k([config, 'access', _5 => _5.deploy, 'optionalAccess', _6 => _6.run]);
5977
+ return _optionalChain$l([config, 'access', _5 => _5.deploy, 'optionalAccess', _6 => _6.run]);
5978
5978
  case 'validate':
5979
- return _optionalChain$k([config, 'access', _7 => _7.dev, 'optionalAccess', _8 => _8.validate]);
5979
+ return _optionalChain$l([config, 'access', _7 => _7.dev, 'optionalAccess', _8 => _8.validate]);
5980
5980
  default:
5981
5981
  throw new Error(`Unknown command: ${commandName}`);
5982
5982
  }
@@ -5988,13 +5988,13 @@ const getWindowsCommandConfig = (
5988
5988
  ) => {
5989
5989
  switch (commandName) {
5990
5990
  case 'dev':
5991
- return _optionalChain$k([config, 'access', _9 => _9.dev, 'optionalAccess', _10 => _10.run_win]);
5991
+ return _optionalChain$l([config, 'access', _9 => _9.dev, 'optionalAccess', _10 => _10.run_win]);
5992
5992
  case 'build':
5993
- return _optionalChain$k([config, 'access', _11 => _11.deploy, 'optionalAccess', _12 => _12.build_win]);
5993
+ return _optionalChain$l([config, 'access', _11 => _11.deploy, 'optionalAccess', _12 => _12.build_win]);
5994
5994
  case 'start':
5995
- return _optionalChain$k([config, 'access', _13 => _13.deploy, 'optionalAccess', _14 => _14.run_win]);
5995
+ return _optionalChain$l([config, 'access', _13 => _13.deploy, 'optionalAccess', _14 => _14.run_win]);
5996
5996
  case 'validate':
5997
- return _optionalChain$k([config, 'access', _15 => _15.dev, 'optionalAccess', _16 => _16.validate_win]);
5997
+ return _optionalChain$l([config, 'access', _15 => _15.dev, 'optionalAccess', _16 => _16.validate_win]);
5998
5998
  default:
5999
5999
  throw new Error(`Unknown command: ${commandName}`);
6000
6000
  }
@@ -6019,7 +6019,7 @@ const getCommandConfig = (
6019
6019
  platform === 'win32'
6020
6020
  ? getWindowsCommandConfig(config, commandName)
6021
6021
  : undefined;
6022
- const commandConfig = _optionalChain$k([windowsCommandConfig, 'optionalAccess', _17 => _17.length])
6022
+ const commandConfig = _optionalChain$l([windowsCommandConfig, 'optionalAccess', _17 => _17.length])
6023
6023
  ? windowsCommandConfig
6024
6024
  : defaultCommandConfig;
6025
6025
 
@@ -6168,7 +6168,7 @@ const byFlag = (flag) => {
6168
6168
  return predicate;
6169
6169
  };
6170
6170
 
6171
- function _optionalChain$j(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
6171
+ function _optionalChain$k(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
6172
6172
 
6173
6173
 
6174
6174
 
@@ -6199,7 +6199,7 @@ echo "Validate passed!"
6199
6199
  * @returns
6200
6200
  */
6201
6201
  const isCozeValid$3 = (cozeConfig) => {
6202
- if (_optionalChain$j([cozeConfig, 'access', _ => _.dev, 'optionalAccess', _2 => _2.validate])) {
6202
+ if (_optionalChain$k([cozeConfig, 'access', _ => _.dev, 'optionalAccess', _2 => _2.validate])) {
6203
6203
  logger.info('[patch-expo-validate] NOT APPLY: dev.validate exists');
6204
6204
  return false;
6205
6205
  }
@@ -6344,7 +6344,7 @@ const patchExpoValidate = {
6344
6344
  },
6345
6345
  };
6346
6346
 
6347
- function _optionalChain$i(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
6347
+ function _optionalChain$j(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
6348
6348
 
6349
6349
 
6350
6350
 
@@ -6377,7 +6377,7 @@ echo "Validate passed!"
6377
6377
  * @returns
6378
6378
  */
6379
6379
  const isCozeValid$2 = (cozeConfig) => {
6380
- if (_optionalChain$i([cozeConfig, 'access', _ => _.dev, 'optionalAccess', _2 => _2.validate])) {
6380
+ if (_optionalChain$j([cozeConfig, 'access', _ => _.dev, 'optionalAccess', _2 => _2.validate])) {
6381
6381
  logger.info('[patch-nextjs-validate] NOT APPLY: dev.validate exists');
6382
6382
  return false;
6383
6383
  }
@@ -6525,7 +6525,7 @@ const patchNextjsValidate = {
6525
6525
  },
6526
6526
  };
6527
6527
 
6528
- function _optionalChain$h(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
6528
+ function _optionalChain$i(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
6529
6529
 
6530
6530
  const PATCH_ID$5 = 'nextjs/validate-concurrently@0.0.30';
6531
6531
  const PACKAGE_JSON_FILE$3 = 'package.json';
@@ -6558,7 +6558,7 @@ const readPackageJson = async (projectFolder) => {
6558
6558
  };
6559
6559
 
6560
6560
  const getTargetValidateScript = (packageJson) => {
6561
- const validateScript = _optionalChain$h([packageJson, 'access', _ => _.scripts, 'optionalAccess', _2 => _2.validate]);
6561
+ const validateScript = _optionalChain$i([packageJson, 'access', _ => _.scripts, 'optionalAccess', _2 => _2.validate]);
6562
6562
  if (typeof validateScript !== 'string') {
6563
6563
  return null;
6564
6564
  }
@@ -6575,7 +6575,7 @@ const getTargetValidateScript = (packageJson) => {
6575
6575
 
6576
6576
  const canStackAfterNextjsValidatePatch = async (context, packageJson) => {
6577
6577
  const scripts = packageJson.scripts || {};
6578
- if (typeof scripts.validate !== 'undefined' || typeof scripts['ts-check'] !== 'string' || _optionalChain$h([context, 'access', _3 => _3.cozeConfig, 'access', _4 => _4.dev, 'optionalAccess', _5 => _5.validate])) {
6578
+ if (typeof scripts.validate !== 'undefined' || typeof scripts['ts-check'] !== 'string' || _optionalChain$i([context, 'access', _3 => _3.cozeConfig, 'access', _4 => _4.dev, 'optionalAccess', _5 => _5.validate])) {
6579
6579
  return false;
6580
6580
  }
6581
6581
 
@@ -6644,7 +6644,7 @@ const patchNextjsValidateConcurrently = {
6644
6644
  apply: patchPackageJson$2,
6645
6645
  };
6646
6646
 
6647
- function _optionalChain$g(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
6647
+ function _optionalChain$h(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
6648
6648
 
6649
6649
 
6650
6650
 
@@ -6677,7 +6677,7 @@ echo "Validate passed!"
6677
6677
  * @returns
6678
6678
  */
6679
6679
  const isCozeValid$1 = (cozeConfig) => {
6680
- if (_optionalChain$g([cozeConfig, 'access', _ => _.dev, 'optionalAccess', _2 => _2.validate])) {
6680
+ if (_optionalChain$h([cozeConfig, 'access', _ => _.dev, 'optionalAccess', _2 => _2.validate])) {
6681
6681
  logger.info('[patch-vite-validate] NOT APPLY: dev.validate exists');
6682
6682
  return false;
6683
6683
  }
@@ -6822,7 +6822,7 @@ const patchViteValidate = {
6822
6822
  },
6823
6823
  };
6824
6824
 
6825
- function _optionalChain$f(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
6825
+ function _optionalChain$g(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
6826
6826
 
6827
6827
 
6828
6828
 
@@ -6859,7 +6859,7 @@ echo "Validate passed!"
6859
6859
  * @returns
6860
6860
  */
6861
6861
  const isCozeValid = (cozeConfig) => {
6862
- if (_optionalChain$f([cozeConfig, 'access', _ => _.dev, 'optionalAccess', _2 => _2.validate])) {
6862
+ if (_optionalChain$g([cozeConfig, 'access', _ => _.dev, 'optionalAccess', _2 => _2.validate])) {
6863
6863
  logger.info('[patch-taro-validate] NOT APPLY: dev.validate exists');
6864
6864
  return false;
6865
6865
  }
@@ -7008,7 +7008,7 @@ const patchTaroValidate = {
7008
7008
  },
7009
7009
  };
7010
7010
 
7011
- function _optionalChain$e(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
7011
+ function _optionalChain$f(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
7012
7012
  const PATCH_ID$2 = 'taro/update-pack-script-for-tt-build@0.0.13';
7013
7013
  const PACKAGE_JSON_FILE = 'package.json';
7014
7014
  const PACK_SCRIPT_FILE = '.cozeproj/scripts/pack.sh';
@@ -7087,12 +7087,12 @@ const readPackageScripts = async (
7087
7087
  const packageJsonContent = await fs$1.readFile(packageJsonPath, 'utf-8');
7088
7088
  const packageJson = safeJsonParse(packageJsonContent, null);
7089
7089
 
7090
- return _optionalChain$e([packageJson, 'optionalAccess', _ => _.scripts]) || null;
7090
+ return _optionalChain$f([packageJson, 'optionalAccess', _ => _.scripts]) || null;
7091
7091
  };
7092
7092
 
7093
7093
  const hasBuildTtScript = async (projectFolder) => {
7094
7094
  const scripts = await readPackageScripts(projectFolder);
7095
- return typeof _optionalChain$e([scripts, 'optionalAccess', _2 => _2['build:tt']]) === 'string';
7095
+ return typeof _optionalChain$f([scripts, 'optionalAccess', _2 => _2['build:tt']]) === 'string';
7096
7096
  };
7097
7097
 
7098
7098
  const hasLegacyPackScript = async (projectFolder) => {
@@ -7446,7 +7446,7 @@ const getTemplatePatches = (
7446
7446
  ) =>
7447
7447
  patches.filter(patch => patch.template === template);
7448
7448
 
7449
- function _nullishCoalesce$5(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain$d(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
7449
+ function _nullishCoalesce$5(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain$e(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
7450
7450
  const DEFAULT_LEGACY_VERSION = 'legacy';
7451
7451
 
7452
7452
  const loadFlagsWithFallback = async () => {
@@ -7552,7 +7552,7 @@ const getNextPatchState = (
7552
7552
 
7553
7553
  ) => ({
7554
7554
  template,
7555
- version: _optionalChain$d([config, 'access', _ => _.project, 'optionalAccess', _2 => _2.version]) || DEFAULT_LEGACY_VERSION,
7555
+ version: _optionalChain$e([config, 'access', _ => _.project, 'optionalAccess', _2 => _2.version]) || DEFAULT_LEGACY_VERSION,
7556
7556
  appliedPatches: [...appliedPatches, patchId],
7557
7557
  });
7558
7558
 
@@ -7576,15 +7576,15 @@ const executePatch = async (
7576
7576
  }
7577
7577
 
7578
7578
  const template =
7579
- _optionalChain$d([config, 'access', _3 => _3.project, 'optionalAccess', _4 => _4.template]) || (await detectTemplateKey(projectFolder));
7579
+ _optionalChain$e([config, 'access', _3 => _3.project, 'optionalAccess', _4 => _4.template]) || (await detectTemplateKey(projectFolder));
7580
7580
 
7581
7581
  if (!template) {
7582
7582
  logger.info('Patch skipped: template not detected');
7583
7583
  return;
7584
7584
  }
7585
7585
 
7586
- const appliedPatches = [...(_optionalChain$d([config, 'access', _5 => _5.project, 'optionalAccess', _6 => _6.appliedPatches]) || [])];
7587
- const projectVersion = _optionalChain$d([config, 'access', _7 => _7.project, 'optionalAccess', _8 => _8.version]);
7586
+ const appliedPatches = [...(_optionalChain$e([config, 'access', _5 => _5.project, 'optionalAccess', _6 => _6.appliedPatches]) || [])];
7587
+ const projectVersion = _optionalChain$e([config, 'access', _7 => _7.project, 'optionalAccess', _8 => _8.version]);
7588
7588
  const flags = await loadFlagsWithFallback();
7589
7589
 
7590
7590
  const context = {
@@ -7687,14 +7687,14 @@ const registerCommand$5 = program => {
7687
7687
  ) => {
7688
7688
  await executePatch({
7689
7689
  directory,
7690
- dryRun: _optionalChain$d([command, 'optionalAccess', _9 => _9.dryRun]),
7691
- showFlags: _optionalChain$d([command, 'optionalAccess', _10 => _10.showFlags]),
7690
+ dryRun: _optionalChain$e([command, 'optionalAccess', _9 => _9.dryRun]),
7691
+ showFlags: _optionalChain$e([command, 'optionalAccess', _10 => _10.showFlags]),
7692
7692
  });
7693
7693
  },
7694
7694
  );
7695
7695
  };
7696
7696
 
7697
- function _nullishCoalesce$4(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain$c(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
7697
+ function _nullishCoalesce$4(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain$d(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
7698
7698
  const d$1 = debug('coze-init-cli:run');
7699
7699
 
7700
7700
  /**
@@ -7825,12 +7825,12 @@ const executeRun = async (commandName, options = {}) => {
7825
7825
  }
7826
7826
 
7827
7827
  // 将输出同时写入控制台和日志文件
7828
- _optionalChain$c([childProcess, 'access', _ => _.stdout, 'optionalAccess', _2 => _2.on, 'call', _3 => _3('data', (data) => {
7828
+ _optionalChain$d([childProcess, 'access', _ => _.stdout, 'optionalAccess', _2 => _2.on, 'call', _3 => _3('data', (data) => {
7829
7829
  process.stdout.write(data);
7830
7830
  logStream.write(data);
7831
7831
  })]);
7832
7832
 
7833
- _optionalChain$c([childProcess, 'access', _4 => _4.stderr, 'optionalAccess', _5 => _5.on, 'call', _6 => _6('data', (data) => {
7833
+ _optionalChain$d([childProcess, 'access', _4 => _4.stderr, 'optionalAccess', _5 => _5.on, 'call', _6 => _6('data', (data) => {
7834
7834
  process.stderr.write(data);
7835
7835
  logStream.write(data);
7836
7836
  })]);
@@ -8774,7 +8774,7 @@ const scanRoutesOnce = async (
8774
8774
  }
8775
8775
  };
8776
8776
 
8777
- function _optionalChain$b(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }// Route manifest generation command
8777
+ function _optionalChain$c(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }// Route manifest generation command
8778
8778
 
8779
8779
 
8780
8780
  const log = debug('coze:routes');
@@ -8875,7 +8875,7 @@ const registerCommand$3 = program => {
8875
8875
  'Output file path (defaults to ~/.coze/routes.json)',
8876
8876
  )
8877
8877
  .action(async (directory, options) => {
8878
- await executeRoutes({ directory, output: _optionalChain$b([options, 'optionalAccess', _ => _.output]) });
8878
+ await executeRoutes({ directory, output: _optionalChain$c([options, 'optionalAccess', _ => _.output]) });
8879
8879
  });
8880
8880
  };
8881
8881
 
@@ -10466,8 +10466,7 @@ const withRequestedApplicationType = (
10466
10466
  };
10467
10467
  };
10468
10468
 
10469
- function _optionalChain$a(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
10470
-
10469
+ function _optionalChain$b(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
10471
10470
  const DEFAULT_CONFIG = {
10472
10471
  apiBaseUrl: 'https://code.coze.cn/',
10473
10472
  openApiBaseUrl: 'https://api.coze.cn',
@@ -10479,6 +10478,11 @@ const getSharedConfigPath = () =>
10479
10478
 
10480
10479
  const getLegacyConfigPath = () => node_path.join(node_os.homedir(), '.coze', 'config.json');
10481
10480
 
10481
+ const getDesktopRuntimePaths = () => [
10482
+ node_path.join(node_os.homedir(), '.coze', 'desktop', 'runtime.beta.json'),
10483
+ node_path.join(node_os.homedir(), '.coze', 'desktop', 'runtime.json'),
10484
+ ];
10485
+
10482
10486
  const isRecord$3 = (value) =>
10483
10487
  typeof value === 'object' && value !== null && !Array.isArray(value);
10484
10488
 
@@ -10494,23 +10498,42 @@ const readJson = async (path) => {
10494
10498
  }
10495
10499
  };
10496
10500
 
10501
+ const readDesktopAccessToken = async () => {
10502
+ for (const path of getDesktopRuntimePaths()) {
10503
+ try {
10504
+ const runtime = safeJsonParse(await promises.readFile(path, 'utf8'), undefined);
10505
+ if (!isRecord$3(runtime) || !isRecord$3(runtime.patToken)) {
10506
+ continue;
10507
+ }
10508
+ const {accessToken} = runtime.patToken;
10509
+ if (typeof accessToken === 'string' && accessToken.trim()) {
10510
+ return accessToken.trim();
10511
+ }
10512
+ } catch (error) {
10513
+ }
10514
+ }
10515
+ return undefined;
10516
+ };
10517
+
10497
10518
  const configuredPath = (options) =>
10498
- _optionalChain$a([options, 'optionalAccess', _ => _.config]) || process.env.COZE_CONFIG_FILE;
10519
+ _optionalChain$b([options, 'optionalAccess', _ => _.config]) || process.env.COZE_CONFIG_FILE;
10499
10520
 
10500
10521
  const loadConfig = async (options = {}) => {
10501
10522
  const customPath = configuredPath(options);
10502
10523
  const globalConfig = customPath
10503
10524
  ? await readJson(node_path.resolve(customPath))
10504
10525
  : (await readJson(getSharedConfigPath())) || (await readJson(getLegacyConfigPath()));
10526
+ const desktopAccessToken = await readDesktopAccessToken();
10505
10527
  const environmentAccessToken = process.env.COZE_API_TOKEN;
10528
+ const fixedAccessToken = desktopAccessToken || environmentAccessToken;
10506
10529
  const config = {
10507
10530
  ...DEFAULT_CONFIG,
10508
10531
  ...globalConfig,
10509
- ...(environmentAccessToken
10532
+ ...(fixedAccessToken
10510
10533
  ? {
10511
- accessToken: environmentAccessToken,
10512
- // COZE_API_TOKEN is a fixed runtime credential. Never combine it with
10513
- // refresh metadata left by an earlier OAuth login in config.json.
10534
+ accessToken: fixedAccessToken,
10535
+ // Desktop PAT and COZE_API_TOKEN are fixed runtime credentials. Never
10536
+ // combine them with refresh metadata from an earlier OAuth login.
10514
10537
  refreshToken: undefined,
10515
10538
  tokenExpiresAt: undefined,
10516
10539
  }
@@ -10524,7 +10547,7 @@ const loadConfig = async (options = {}) => {
10524
10547
  ...(options.apiBaseUrl ? { apiBaseUrl: options.apiBaseUrl } : {}),
10525
10548
  // Runtime-only trust decision: a value persisted in config.json must never enable
10526
10549
  // project-secret injection for an OAuth access token.
10527
- injectApiToken: Boolean(environmentAccessToken),
10550
+ injectApiToken: Boolean(fixedAccessToken),
10528
10551
  };
10529
10552
  return config;
10530
10553
  };
@@ -10850,7 +10873,7 @@ const loginWithOAuth = async (
10850
10873
  await saveOAuthToken(config, options, await pollToken(config, deviceCode));
10851
10874
  };
10852
10875
 
10853
- function _optionalChain$9(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
10876
+ function _optionalChain$a(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
10854
10877
 
10855
10878
 
10856
10879
 
@@ -10916,10 +10939,10 @@ const unwrap = (
10916
10939
  responseMetadata,
10917
10940
  ) => {
10918
10941
  const root = isRecord(payload) ? payload : undefined;
10919
- const first = isRecord(_optionalChain$9([root, 'optionalAccess', _ => _.data])) ? root.data : undefined;
10920
- const second = isRecord(_optionalChain$9([first, 'optionalAccess', _2 => _2.data])) ? first.data : undefined;
10942
+ const first = isRecord(_optionalChain$a([root, 'optionalAccess', _ => _.data])) ? root.data : undefined;
10943
+ const second = isRecord(_optionalChain$a([first, 'optionalAccess', _2 => _2.data])) ? first.data : undefined;
10921
10944
  const envelope = [root, first].find(candidate => candidate && 'code' in candidate);
10922
- if (_optionalChain$9([envelope, 'optionalAccess', _3 => _3.code]) !== undefined && Number(envelope.code) !== 0) {
10945
+ if (_optionalChain$a([envelope, 'optionalAccess', _3 => _3.code]) !== undefined && Number(envelope.code) !== 0) {
10923
10946
  throw new CliError(
10924
10947
  typeof envelope.msg === 'string'
10925
10948
  ? envelope.msg.slice(0, MAX_MESSAGE_LENGTH)
@@ -10983,7 +11006,7 @@ class DeployApiClient {
10983
11006
  if (cozeAccount) {
10984
11007
  headers['x-coze-account'] = cozeAccount;
10985
11008
  }
10986
- const lane = _optionalChain$9([this, 'access', _4 => _4.globalOptions, 'access', _5 => _5.lane, 'optionalAccess', _6 => _6.trim, 'call', _7 => _7()]) || _optionalChain$9([this, 'access', _8 => _8.config, 'access', _9 => _9.xTTEnv, 'optionalAccess', _10 => _10.trim, 'call', _11 => _11()]);
11009
+ const lane = _optionalChain$a([this, 'access', _4 => _4.globalOptions, 'access', _5 => _5.lane, 'optionalAccess', _6 => _6.trim, 'call', _7 => _7()]) || _optionalChain$a([this, 'access', _8 => _8.config, 'access', _9 => _9.xTTEnv, 'optionalAccess', _10 => _10.trim, 'call', _11 => _11()]);
10987
11010
  if (lane) {
10988
11011
  headers['x-use-ppe'] = '1';
10989
11012
  headers['x-tt-env'] = lane;
@@ -11014,7 +11037,7 @@ class DeployApiClient {
11014
11037
  if (!response.ok) {
11015
11038
  const root = isRecord(payload) ? payload : undefined;
11016
11039
  throw new CliError(
11017
- typeof _optionalChain$9([root, 'optionalAccess', _12 => _12.msg]) === 'string'
11040
+ typeof _optionalChain$a([root, 'optionalAccess', _12 => _12.msg]) === 'string'
11018
11041
  ? root.msg.slice(0, MAX_MESSAGE_LENGTH)
11019
11042
  : `Deployment API failed: ${response.status} ${response.statusText}` +
11020
11043
  `${validJson ? '' : '; response was not JSON'}`,
@@ -11492,7 +11515,7 @@ const registerDoctor = (program) => {
11492
11515
  });
11493
11516
  };
11494
11517
 
11495
- function _optionalChain$8(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
11518
+ function _optionalChain$9(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
11496
11519
 
11497
11520
 
11498
11521
 
@@ -11523,14 +11546,14 @@ function _optionalChain$8(ops) { let lastAccessLHS = undefined; let value = ops[
11523
11546
 
11524
11547
 
11525
11548
  const getDeployParentOptions = (command) =>
11526
- _optionalChain$8([command, 'access', _ => _.parent, 'optionalAccess', _2 => _2.opts, 'call', _3 => _3()]) || {};
11549
+ _optionalChain$9([command, 'access', _ => _.parent, 'optionalAccess', _2 => _2.opts, 'call', _3 => _3()]) || {};
11527
11550
 
11528
11551
  const getDeployAppIdOption = (
11529
11552
  options,
11530
11553
  command,
11531
11554
  ) => options.appId || getDeployParentOptions(command).appId;
11532
11555
 
11533
- function _optionalChain$7(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } async function _asyncOptionalChain$1(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = await fn(value); } else if (op === 'call' || op === 'optionalCall') { value = await fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
11556
+ function _optionalChain$8(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } async function _asyncOptionalChain$1(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = await fn(value); } else if (op === 'call' || op === 'optionalCall') { value = await fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
11534
11557
 
11535
11558
  const isAccountId = (value) => /^[1-9]\d*$/u.test(value);
11536
11559
 
@@ -11552,7 +11575,7 @@ const resolveCozeAccountId = async (
11552
11575
  runtime,
11553
11576
  ) => {
11554
11577
  const configured =
11555
- _optionalChain$7([runtime, 'access', _ => _.config, 'access', _2 => _2.cozeAccountId, 'optionalAccess', _3 => _3.trim, 'call', _4 => _4()]) || _optionalChain$7([runtime, 'access', _5 => _5.config, 'access', _6 => _6.organizationId, 'optionalAccess', _7 => _7.trim, 'call', _8 => _8()]);
11578
+ _optionalChain$8([runtime, 'access', _ => _.config, 'access', _2 => _2.cozeAccountId, 'optionalAccess', _3 => _3.trim, 'call', _4 => _4()]) || _optionalChain$8([runtime, 'access', _5 => _5.config, 'access', _6 => _6.organizationId, 'optionalAccess', _7 => _7.trim, 'call', _8 => _8()]);
11556
11579
  if (configured) {
11557
11580
  if (!isAccountId(configured)) {
11558
11581
  // 不把非法值写进 Project —— 它会被服务端当成「明确但损坏的归属」直接报错。
@@ -11616,20 +11639,31 @@ const STATUS_NAMES = {
11616
11639
  [DEPLOY_STATUS.preDeploy]: 'WaitingForUpload',
11617
11640
  };
11618
11641
 
11642
+ /**
11643
+ * 终态 = 不会再变了。
11644
+ *
11645
+ * ⚠️ `interrupted(6)` **不是**终态,别再往这里加。它是过程态:服务端某条流水线自身轮询超时时,
11646
+ * 会把整次部署标成 Interrupted 并安排稍后重新触发(`base_pipe.NewInterruptedResult`),之后仍
11647
+ * 会推进到 Succeeded。安卓构建 10 分钟起步,几乎必然经过至少一次 Interrupted —— 把它当终态会
11648
+ * 让 `deploy --wait` 在构建中途就收工返回,此时 APK 还没产出,`mobile_artifact_list` 是空的。
11649
+ */
11619
11650
  const TERMINAL_STATUSES = new Set([
11620
11651
  DEPLOY_STATUS.succeeded,
11621
11652
  DEPLOY_STATUS.failed,
11622
11653
  DEPLOY_STATUS.canceled,
11623
- DEPLOY_STATUS.interrupted,
11624
11654
  ]);
11625
11655
 
11626
11656
  const getDeployStatusText = (status) =>
11627
11657
  status ? STATUS_NAMES[status] || 'Unknown' : 'Unknown';
11628
11658
 
11629
- function _optionalChain$6(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
11659
+ /** 这次部署的结果是否已经定下来了(到了终态就不会再变)。 */
11660
+ const isDeploymentSettled = (status) =>
11661
+ status !== undefined && TERMINAL_STATUSES.has(status);
11662
+
11663
+ function _optionalChain$7(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
11630
11664
 
11631
11665
  const formatDeployDetails = (history) =>
11632
- (_optionalChain$6([history, 'optionalAccess', _ => _.deploy_detail]) || []).map(detail => ({
11666
+ (_optionalChain$7([history, 'optionalAccess', _ => _.deploy_detail]) || []).map(detail => ({
11633
11667
  target: detail.target,
11634
11668
  status: getDeployStatusText(detail.status),
11635
11669
  deploy_log_key: detail.deploy_log_key,
@@ -11639,7 +11673,7 @@ const formatDeployDetails = (history) =>
11639
11673
  const getDeployLogKeys = (history) =>
11640
11674
  [...new Set(
11641
11675
  (history.deploy_detail || [])
11642
- .map(detail => _optionalChain$6([detail, 'access', _2 => _2.deploy_log_key, 'optionalAccess', _3 => _3.trim, 'call', _4 => _4()]))
11676
+ .map(detail => _optionalChain$7([detail, 'access', _2 => _2.deploy_log_key, 'optionalAccess', _3 => _3.trim, 'call', _4 => _4()]))
11643
11677
  .filter((key) => Boolean(key)),
11644
11678
  )];
11645
11679
 
@@ -11654,7 +11688,7 @@ const resolveDeployHistoryId = (
11654
11688
  ) =>
11655
11689
  normalizePositiveId(deployHistoryId) || normalizePositiveId(previousDeployHistoryId);
11656
11690
 
11657
- function _optionalChain$5(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
11691
+ function _optionalChain$6(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
11658
11692
 
11659
11693
  const SOURCE_SNAPSHOT_BYTES = 20;
11660
11694
  const PROJECT_METADATA_FILE_MODE = 0o644;
@@ -11664,7 +11698,7 @@ const isId = (value) =>
11664
11698
 
11665
11699
 
11666
11700
  const resolveAppId = async (cwd, appId) => {
11667
- const explicit = _optionalChain$5([appId, 'optionalAccess', _ => _.trim, 'call', _2 => _2()]);
11701
+ const explicit = _optionalChain$6([appId, 'optionalAccess', _ => _.trim, 'call', _2 => _2()]);
11668
11702
  if (explicit) {
11669
11703
  return explicit;
11670
11704
  }
@@ -11710,11 +11744,11 @@ const readProjectMetadata = async (
11710
11744
  }
11711
11745
  throw error;
11712
11746
  }
11713
- const projectSection = _optionalChain$5([cozeFileContent, 'access', _3 => _3.match, 'call', _4 => _4(
11747
+ const projectSection = _optionalChain$6([cozeFileContent, 'access', _3 => _3.match, 'call', _4 => _4(
11714
11748
  /^\s*\[project\]\s*(?:#.*)?$([\s\S]*?)(?=^\s*\[[^\]]+\]\s*(?:#.*)?$|(?![\s\S]))/mu,
11715
11749
  ), 'optionalAccess', _5 => _5[1]]);
11716
11750
  const readProjectString = (key) =>
11717
- _optionalChain$5([projectSection
11751
+ _optionalChain$6([projectSection
11718
11752
  , 'optionalAccess', _6 => _6.match, 'call', _7 => _7(new RegExp(`^\\s*${key}\\s*=\\s*["']([^"']+)["']`, 'mu')), 'optionalAccess', _8 => _8[1]
11719
11753
  , 'optionalAccess', _9 => _9.trim, 'call', _10 => _10()]);
11720
11754
  const name = readProjectString('name');
@@ -11722,7 +11756,7 @@ const readProjectMetadata = async (
11722
11756
  const projectId = readProjectString('project_id');
11723
11757
  const appId = readProjectString('app_id');
11724
11758
  const hasUnquotedId = (key) =>
11725
- Boolean(_optionalChain$5([projectSection, 'optionalAccess', _11 => _11.match, 'call', _12 => _12(new RegExp(`^\\s*${key}\\s*=\\s*(?!["'])\\S+`, 'mu'))]));
11759
+ Boolean(_optionalChain$6([projectSection, 'optionalAccess', _11 => _11.match, 'call', _12 => _12(new RegExp(`^\\s*${key}\\s*=\\s*(?!["'])\\S+`, 'mu'))]));
11726
11760
  if (hasUnquotedId('project_id') || hasUnquotedId('app_id')) {
11727
11761
  throw new CliError(
11728
11762
  '.coze [project].project_id and app_id must be quoted decimal strings.',
@@ -11747,7 +11781,7 @@ const updateProjectValue = (content, key, value) => {
11747
11781
  const sectionStart = sectionMatch.index + sectionMatch[0].length;
11748
11782
  const following = content.slice(sectionStart);
11749
11783
  const nextSection = /^\s*\[[^\]]+\]\s*(?:#.*)?$/mu.exec(following);
11750
- const sectionEnd = _optionalChain$5([nextSection, 'optionalAccess', _13 => _13.index]) === undefined
11784
+ const sectionEnd = _optionalChain$6([nextSection, 'optionalAccess', _13 => _13.index]) === undefined
11751
11785
  ? content.length
11752
11786
  : sectionStart + nextSection.index;
11753
11787
  const before = content.slice(0, sectionStart);
@@ -11801,8 +11835,8 @@ const ensureProjectMetadata = async (
11801
11835
  throw error;
11802
11836
  }
11803
11837
  }
11804
- const name = _optionalChain$5([options, 'access', _14 => _14.name, 'optionalAccess', _15 => _15.trim, 'call', _16 => _16()]) || 'Pages application';
11805
- const projectType = _optionalChain$5([options, 'access', _17 => _17.projectType, 'optionalAccess', _18 => _18.trim, 'call', _19 => _19()]) || 'web';
11838
+ const name = _optionalChain$6([options, 'access', _14 => _14.name, 'optionalAccess', _15 => _15.trim, 'call', _16 => _16()]) || 'Pages application';
11839
+ const projectType = _optionalChain$6([options, 'access', _17 => _17.projectType, 'optionalAccess', _18 => _18.trim, 'call', _19 => _19()]) || 'web';
11806
11840
  await promises.writeFile(
11807
11841
  node_path.join(sourceRoot, '.coze'),
11808
11842
  `[project]\nname = ${JSON.stringify(name)}\nproject_type = ${JSON.stringify(projectType)}\n`,
@@ -11812,7 +11846,7 @@ const ensureProjectMetadata = async (
11812
11846
  return readProjectMetadata(sourceRoot);
11813
11847
  };
11814
11848
 
11815
- function _optionalChain$4(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
11849
+ function _optionalChain$5(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
11816
11850
  const isFile = async (path) => {
11817
11851
  try {
11818
11852
  return (await promises.stat(path)).isFile();
@@ -11842,14 +11876,14 @@ const validatePagesSource = async (
11842
11876
  );
11843
11877
  }
11844
11878
  const project = config.project ;
11845
- if (typeof _optionalChain$4([project, 'optionalAccess', _ => _.template]) !== 'string' || project.template.trim().toLowerCase() !== 'nextjs') {
11879
+ if (typeof _optionalChain$5([project, 'optionalAccess', _ => _.template]) !== 'string' || project.template.trim().toLowerCase() !== 'nextjs') {
11846
11880
  throw new CliError(
11847
11881
  'Pages source contains no index.html; .coze project.template must be "nextjs".',
11848
11882
  'PAGES_BUILD_CONFIG_REQUIRED',
11849
11883
  );
11850
11884
  }
11851
11885
  const deploy = config.deploy ;
11852
- const build = _optionalChain$4([deploy, 'optionalAccess', _2 => _2.build]);
11886
+ const build = _optionalChain$5([deploy, 'optionalAccess', _2 => _2.build]);
11853
11887
  if (!Array.isArray(build) || build.length === 0 || !build.every(part => typeof part === 'string' && part.length > 0)) {
11854
11888
  throw new CliError(
11855
11889
  'Pages source contains no index.html; .coze deploy.build must be a non-empty string array.',
@@ -11890,6 +11924,27 @@ const readDeployLocalContext = async (
11890
11924
  return { ...sourceSnapshot, metadata, isPagesDeployment };
11891
11925
  };
11892
11926
 
11927
+ function _optionalChain$4(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
11928
+
11929
+ /**
11930
+ * 把 `mobile_artifact_list` 连同「这个空数组到底什么意思」一起输出。
11931
+ *
11932
+ * 产物是部署过程中逐步落库的:APK 要等安卓构建跑完才写进去,比部署记录本身晚好几分钟。部署没到
11933
+ * 终态时,空的 `mobile_artifact_list` 只代表「还没产出来」,不代表「没有产物」—— 可这两种情况在
11934
+ * 输出里长得一模一样,调用方(尤其是 agent)会把前者读成后者,然后得出「部署成功但系统没返回
11935
+ * APK 下载地址」这种错误结论。线上真发生过。
11936
+ *
11937
+ * 所以未定终态时额外带一个 `artifacts_pending: true`;这个字段不出现,就表示这份列表已经是最终
11938
+ * 结果。`mobile_artifact_list` 本身保持恒存在,避免破坏已有脚本的读法。
11939
+ */
11940
+ const mobileArtifactsOutput = (
11941
+ history,
11942
+ status = _optionalChain$4([history, 'optionalAccess', _ => _.status]),
11943
+ ) => ({
11944
+ mobile_artifact_list: _optionalChain$4([history, 'optionalAccess', _2 => _2.mobile_artifact_list]) || [],
11945
+ ...(isDeploymentSettled(status) ? {} : { artifacts_pending: true }),
11946
+ });
11947
+
11893
11948
  // 服务端 deploy_app/list 的 page_size 上限,超了会被判参数错误。
11894
11949
  // 客户端先拦一道,是为了把错误说在本地(带上上限值),而不是回一句服务端的通用参数错误。
11895
11950
  const APP_LIST_MAX_PAGE_SIZE = 100;
@@ -12006,7 +12061,7 @@ const registerDeployReadCommands = (deploy) => {
12006
12061
  error_analysis: history.error_analysis,
12007
12062
  deploy_detail: formatDeployDetails(history),
12008
12063
  connector_data_list: history.connector_data_list || [],
12009
- mobile_artifact_list: history.mobile_artifact_list || [],
12064
+ ...mobileArtifactsOutput(history),
12010
12065
  });
12011
12066
  });
12012
12067
 
@@ -12036,7 +12091,7 @@ const registerDeployReadCommands = (deploy) => {
12036
12091
  can_rollback: item.can_rollback,
12037
12092
  deploy_detail: formatDeployDetails(item),
12038
12093
  connector_data_list: item.connector_data_list || [],
12039
- mobile_artifact_list: item.mobile_artifact_list || [],
12094
+ ...mobileArtifactsOutput(item),
12040
12095
  })),
12041
12096
  next_page_token: data.next_page_token,
12042
12097
  has_more: data.has_more,
@@ -12061,7 +12116,7 @@ const registerDeployReadCommands = (deploy) => {
12061
12116
  created_at: item.created_at,
12062
12117
  deploy_detail: formatDeployDetails(item),
12063
12118
  domains: item.domain_list || [],
12064
- mobile_artifact_list: item.mobile_artifact_list || [],
12119
+ ...mobileArtifactsOutput(item),
12065
12120
  })),
12066
12121
  });
12067
12122
  });
@@ -12504,6 +12559,16 @@ function _optionalChain$2(ops) { let lastAccessLHS = undefined; let value = ops[
12504
12559
  const POLL_INTERVAL_MS = 3000;
12505
12560
  const MAX_CONSECUTIVE_RETRIES = 5;
12506
12561
  const TRANSIENT_RPC_ERROR_CODE = 230000001;
12562
+ /**
12563
+ * `--wait` 的总时长上限。
12564
+ *
12565
+ * Interrupted 不再算终态(见 status.ts),轮询只能靠这个兜底,否则一次卡住的部署会把 CLI
12566
+ * 永远挂在这里。取 60min 是照安卓构建定的:实测 10 分钟起步,中途还会经历若干次
12567
+ * Interrupted → 重新触发。
12568
+ */
12569
+ const POLL_TIMEOUT_MS = 3600000; // 60min
12570
+ /** 心跳间隔:text 模式下每隔这么久报一次「还在跑」,免得长构建看起来像挂死。 */
12571
+ const HEARTBEAT_MS = 30000;
12507
12572
 
12508
12573
  const wait = async () =>
12509
12574
  new Promise(resolve => setTimeout(resolve, POLL_INTERVAL_MS));
@@ -12517,11 +12582,15 @@ const pollHistory = async (
12517
12582
  command,
12518
12583
  appId,
12519
12584
  deployHistoryId,
12585
+ timeoutMs = POLL_TIMEOUT_MS,
12520
12586
  ) => {
12521
12587
  const runtime = await getRuntime(command);
12522
12588
  const startedAt = Date.now();
12523
12589
  let consecutiveFailures = 0;
12590
+ let lastStatus;
12591
+ let lastBeatAt = startedAt;
12524
12592
  while (true) {
12593
+ const elapsed = () => Math.floor((Date.now() - startedAt) / 1000);
12525
12594
  try {
12526
12595
  const history = await runtime.client.getDeployHistory({
12527
12596
  app_id: appId,
@@ -12530,11 +12599,21 @@ const pollHistory = async (
12530
12599
  consecutiveFailures = 0;
12531
12600
  const status = getDeployStatusText(history.status);
12532
12601
  runtime.output.debug(
12533
- `[deploy] History ${deployHistoryId}: ${status} (${String(Math.floor((Date.now() - startedAt) / 1000))}s elapsed)`,
12602
+ `[deploy] History ${deployHistoryId}: ${status} (${String(elapsed())}s elapsed)`,
12534
12603
  );
12535
12604
  if (history.status && TERMINAL_STATUSES.has(history.status)) {
12536
12605
  return history;
12537
12606
  }
12607
+ // 长构建(安卓十几分钟)期间给点动静:状态一变就报,否则每 30s 报一次还活着。
12608
+ // output.info 只在 text 模式写 stderr,json 模式是 no-op,不会污染机器可读输出。
12609
+ if (history.status !== lastStatus) {
12610
+ lastStatus = history.status;
12611
+ lastBeatAt = Date.now();
12612
+ runtime.output.info(`[deploy] ${status} (${String(elapsed())}s)`);
12613
+ } else if (Date.now() - lastBeatAt >= HEARTBEAT_MS) {
12614
+ lastBeatAt = Date.now();
12615
+ runtime.output.info(`[deploy] still ${status} (${String(elapsed())}s)`);
12616
+ }
12538
12617
  } catch (error) {
12539
12618
  if (!isRetryablePollError(error) || consecutiveFailures >= MAX_CONSECUTIVE_RETRIES) {
12540
12619
  throw error;
@@ -12544,6 +12623,15 @@ const pollHistory = async (
12544
12623
  `[deploy] Status check failed transiently; retrying (${String(consecutiveFailures)}/${String(MAX_CONSECUTIVE_RETRIES)}).`,
12545
12624
  );
12546
12625
  }
12626
+ if (Date.now() - startedAt >= timeoutMs) {
12627
+ throw new CliError(
12628
+ `Timed out after ${String(elapsed())}s waiting for deployment ${deployHistoryId}; ` +
12629
+ `last status: ${getDeployStatusText(lastStatus)}. The deployment may still be running — ` +
12630
+ 'check it with `deploy code status`.',
12631
+ 'DEPLOY_WAIT_TIMEOUT',
12632
+ { app_id: appId, deploy_history_id: deployHistoryId, last_status: lastStatus },
12633
+ );
12634
+ }
12547
12635
  await wait();
12548
12636
  }
12549
12637
  };
@@ -13408,16 +13496,19 @@ const registerDeploy = (code) => {
13408
13496
  const history = options.wait
13409
13497
  ? await pollHistory(command, result.app_id, deployHistoryId)
13410
13498
  : undefined;
13499
+ // 不带 --wait 时 history 是 undefined,产物必然还没落库:这里一定会带上
13500
+ // artifacts_pending,而不是甩一个看起来像「查过了,没有」的空数组出去。
13501
+ const effectiveStatus = _nullishCoalesce(_optionalChain([history, 'optionalAccess', _2 => _2.status]), () => ( result.status));
13411
13502
  runtime.output.print({
13412
13503
  app_id: result.app_id,
13413
13504
  deploy_history_id: deployHistoryId,
13414
13505
  version: result.version,
13415
13506
  commit_hash: commitHash,
13416
- status: getDeployStatusText(_nullishCoalesce(_optionalChain([history, 'optionalAccess', _2 => _2.status]), () => ( result.status))),
13507
+ status: getDeployStatusText(effectiveStatus),
13417
13508
  source_package_size_bytes: sourcePackage.sizeBytes,
13418
13509
  upload_mode: deployment.uploadMode,
13419
13510
  local_link: appId && !projectCreated ? 'unchanged' : 'written',
13420
- mobile_artifact_list: _optionalChain([history, 'optionalAccess', _3 => _3.mobile_artifact_list]) || [],
13511
+ ...mobileArtifactsOutput(history, effectiveStatus),
13421
13512
  });
13422
13513
  });
13423
13514
 
@@ -13520,7 +13611,7 @@ const registerDeploy = (code) => {
13520
13611
  .action(async (options, command) => {
13521
13612
  const runtime = await getRuntime(command);
13522
13613
  const appId = await requireAppId(runtime.cwd, getDeployAppIdOption(options, command));
13523
- let key = _optionalChain([options, 'access', _4 => _4.key, 'optionalAccess', _5 => _5.trim, 'call', _6 => _6()]);
13614
+ let key = _optionalChain([options, 'access', _3 => _3.key, 'optionalAccess', _4 => _4.trim, 'call', _5 => _5()]);
13524
13615
  if (!key) {
13525
13616
  const history = await runtime.client.getDeployHistory({
13526
13617
  app_id: appId,
@@ -13562,7 +13653,7 @@ const registerDeploy = (code) => {
13562
13653
  const runtime = await getRuntime(command);
13563
13654
  const appId = await requireAppId(runtime.cwd, getDeployAppIdOption(options, command));
13564
13655
  const application = await runtime.client.getApplication(appId);
13565
- const commitHash = options.commitId || _optionalChain([application, 'access', _7 => _7.latest_deployment, 'optionalAccess', _8 => _8.commit_hash]);
13656
+ const commitHash = options.commitId || _optionalChain([application, 'access', _6 => _6.latest_deployment, 'optionalAccess', _7 => _7.commit_hash]);
13566
13657
  if (!commitHash) {
13567
13658
  throw new CliError('No deployment commit is available.', 'DEPLOYMENT_NOT_FOUND');
13568
13659
  }