@stll/oxlint-config 1.2.3 → 1.2.5

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.
@@ -13,7 +13,7 @@ let picomatch = require("picomatch");
13
13
  picomatch = require_rolldown_runtime.__toESM(picomatch, 1);
14
14
  //#endregion
15
15
  //#region src/toolchain-consumer-checks.ts
16
- const consumerRunnerVersion = "1.2.3";
16
+ const consumerRunnerVersion = "1.2.5";
17
17
  const consumerCheckWorkflow = "stella/.github/.github/workflows/package-consumer-compat.yml";
18
18
  const record$7 = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
19
19
  const repositoryDirectory = (value) => typeof value === "string" && value !== "" && !value.includes("\\") && !value.includes("${{") && !value.split("").some((character) => {
@@ -10,7 +10,7 @@ import { LineCounter, isAlias, isMap, isNode, isScalar, isSeq, parseAllDocuments
10
10
  import picomatch from "picomatch";
11
11
  //#endregion
12
12
  //#region src/toolchain-consumer-checks.ts
13
- const consumerRunnerVersion = "1.2.3";
13
+ const consumerRunnerVersion = "1.2.5";
14
14
  const consumerCheckWorkflow = "stella/.github/.github/workflows/package-consumer-compat.yml";
15
15
  const record$7 = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
16
16
  const repositoryDirectory = (value) => typeof value === "string" && value !== "" && !value.includes("\\") && !value.includes("${{") && !value.split("").some((character) => {
@@ -45,9 +45,11 @@ apt_install() (
45
45
  local package
46
46
  for package in "$@"; do
47
47
  if [[ "$package" == */* ]]; then
48
- # apt cannot fetch local archives with --download-only; their installs stay
49
- # bounded as a whole (dependencies are normally present already).
50
- DEBIAN_FRONTEND=noninteractive apt_network install -y --no-install-recommends "$@"
48
+ # apt cannot fetch local archives with --download-only, so their installs
49
+ # stay one call. Package triggers can be slow on cloud filesystems; the
50
+ # longer whole-call deadline covers them while Acquire timeouts still
51
+ # bound each network request.
52
+ APT_DEADLINE=600 DEBIAN_FRONTEND=noninteractive apt_network install -y --no-install-recommends "$@"
51
53
  return
52
54
  fi
53
55
  done
@@ -276,22 +278,33 @@ const renderCloudServiceInstall = ({ services, postgres, valkey, valkeyArtifacts
276
278
  //#region src/cloud-setup-network.ts
277
279
  /** Shared deadlines cover retries and package-manager subprocesses. */
278
280
  const renderCloudNetwork = () => String.raw`
281
+ release_log_holders() {
282
+ # Processes left by package scripts may still hold a step log after the command exits.
283
+ # Setup starts its own services later, so end them rather than let them write into a
284
+ # deleted log for their whole lifetime.
285
+ # One find over all descriptor links; no process per descriptor.
286
+ local log="$1" root="${"$"}{CLOUD_PROC_ROOT:-/proc}" fd pid
287
+ while IFS= read -r fd; do
288
+ pid="${"$"}{fd%/fd/*}"
289
+ pid="${"$"}{pid##*/}"
290
+ [[ "$pid" =~ ^[0-9]+$ && "$pid" != "$$" ]] || continue
291
+ kill -TERM "$pid" 2>/dev/null || true
292
+ done < <(find "$root" -mindepth 3 -maxdepth 3 -path "$root/[0-9]*/fd/*" -lname "$log" 2>/dev/null)
293
+ }
279
294
  network_run() (
280
295
  local host="$1" seconds="$2" status=0
281
296
  shift 2
282
- set -o pipefail
283
297
  network_log="$(mktemp)" || return "$?"
284
298
  trap 'rm -f -- "$network_log"' EXIT
285
299
  trap 'exit 129' HUP
286
300
  trap 'exit 130' INT
287
301
  trap 'exit 143' TERM
288
- if timeout --signal=TERM --kill-after=5s "$seconds"s "$@" 2>&1 | tee "$network_log"; then
289
- return 0
290
- else
291
- # Scalar Bash array expansion reads PIPESTATUS[0] before assignment resets it.
292
- status="$PIPESTATUS"
293
- fi
294
- [[ "$status" != 0 ]] || fail 'Cannot capture network command output'
302
+ # Output goes to a file, never a pipe: package scripts may leave processes that keep
303
+ # inherited descriptors open, and a pipe reader would wait for them past the command.
304
+ timeout --signal=TERM --kill-after=5s "$seconds"s "$@" > "$network_log" 2>&1 || status=$?
305
+ release_log_holders "$network_log"
306
+ cat -- "$network_log" || fail 'Cannot capture network command output'
307
+ [[ "$status" != 0 ]] || return 0
295
308
  if [[ "$status" == 124 || "$status" == 137 || "$status" == 28 ]] || grep -Eiq 'timed[[:space:]-]+out|time[[:space:]-]+out|timeout[[:space:]]+(was[[:space:]]+)?(reached|expired)|(connection|operation|socket)[[:space:]-]+timeout' "$network_log"; then
296
309
  fail "download timed out: $host"
297
310
  fi
@@ -308,7 +321,8 @@ apt_network() {
308
321
  # --print-uris reads configured indexes without contacting their servers.
309
322
  hosts="$(set -o pipefail; apt-get --print-uris update | awk -F/ '/^\047https?:\/\// { host=$3; sub(/.*@/, "", host); if (!seen[host]++) { printf "%s%s", separator, host; separator="," } }')" || return "$?"
310
323
  [[ -n "$hosts" ]] || hosts='configured APT hosts'
311
- network_run "$hosts" 180 apt-get -o Acquire::http::Timeout=20 -o Acquire::https::Timeout=20 -o Acquire::Retries=3 -o APT::Update::Error-Mode=any "$@"
324
+ # APT_DEADLINE: whole-call seconds; callers that also unpack packages may extend it.
325
+ network_run "$hosts" "${"$"}{APT_DEADLINE:-180}" apt-get -o Acquire::http::Timeout=20 -o Acquire::https::Timeout=20 -o Acquire::Retries=3 -o APT::Update::Error-Mode=any "$@"
312
326
  }
313
327
  apt_refresh_for() {
314
328
  # Skip the refresh only when the install downloads nothing: then no package