@stll/oxlint-config 1.4.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/README.md +90 -14
  2. package/dist/cloud-setup-cli.cjs +3 -3
  3. package/dist/cloud-setup-cli.mjs +3 -3
  4. package/dist/consumer-compat-cli.cjs +2 -2
  5. package/dist/consumer-compat-cli.mjs +2 -2
  6. package/dist/dependabot-cli.cjs +34 -10
  7. package/dist/dependabot-cli.cjs.map +1 -1
  8. package/dist/dependabot-cli.mjs +35 -11
  9. package/dist/dependabot-cli.mjs.map +1 -1
  10. package/dist/dependabot.cjs +2 -0
  11. package/dist/dependabot.d.cts +12 -2
  12. package/dist/dependabot.d.mts +12 -2
  13. package/dist/dependabot.mjs +2 -2
  14. package/dist/generated-file.cjs +2 -2
  15. package/dist/generated-file.mjs +2 -2
  16. package/dist/git-tracked-output.cjs +2 -2
  17. package/dist/git-tracked-output.mjs +1 -1
  18. package/dist/jsonc.cjs +66 -0
  19. package/dist/jsonc.cjs.map +1 -0
  20. package/dist/jsonc.mjs +61 -0
  21. package/dist/jsonc.mjs.map +1 -0
  22. package/dist/publish-artifact-syntax.cjs +2 -2
  23. package/dist/publish-artifact-syntax.mjs +2 -2
  24. package/dist/publish-build-target-vite-dts-helper2.cjs +1 -1
  25. package/dist/publish-build-target-vite-dts-helper2.mjs +1 -1
  26. package/dist/publish-contract-cli.cjs +2 -2
  27. package/dist/publish-contract-cli.mjs +1 -1
  28. package/dist/quarantine-cli.cjs +66 -0
  29. package/dist/quarantine-cli.cjs.map +1 -0
  30. package/dist/quarantine-cli.d.cts +1 -0
  31. package/dist/quarantine-cli.d.mts +1 -0
  32. package/dist/quarantine-cli.mjs +66 -0
  33. package/dist/quarantine-cli.mjs.map +1 -0
  34. package/dist/quarantine-policy.cjs +10 -0
  35. package/dist/quarantine-policy.d.cts +27 -0
  36. package/dist/quarantine-policy.d.mts +27 -0
  37. package/dist/quarantine-policy.mjs +1 -0
  38. package/dist/quarantine-policy2.cjs +399 -0
  39. package/dist/quarantine-policy2.cjs.map +1 -0
  40. package/dist/quarantine-policy2.mjs +352 -0
  41. package/dist/quarantine-policy2.mjs.map +1 -0
  42. package/dist/toolchain-changed.cjs +11 -66
  43. package/dist/toolchain-changed.cjs.map +1 -1
  44. package/dist/toolchain-changed.mjs +13 -68
  45. package/dist/toolchain-changed.mjs.map +1 -1
  46. package/dist/toolchain-check-cli.cjs +1 -0
  47. package/dist/toolchain-check-cli.cjs.map +1 -1
  48. package/dist/toolchain-check-cli.mjs +1 -0
  49. package/dist/toolchain-check-cli.mjs.map +1 -1
  50. package/dist/toolchain-dependabot.cjs +77 -3
  51. package/dist/toolchain-dependabot.cjs.map +1 -1
  52. package/dist/toolchain-dependabot.mjs +66 -4
  53. package/dist/toolchain-dependabot.mjs.map +1 -1
  54. package/dist/toolchain-guard.cjs +49 -10
  55. package/dist/toolchain-guard.cjs.map +1 -1
  56. package/dist/toolchain-guard.mjs +51 -12
  57. package/dist/toolchain-guard.mjs.map +1 -1
  58. package/dist/toolchain-inputs.cjs +104 -18
  59. package/dist/toolchain-inputs.cjs.map +1 -1
  60. package/dist/toolchain-inputs.mjs +106 -20
  61. package/dist/toolchain-inputs.mjs.map +1 -1
  62. package/dist/typecheck-parity.cjs +4 -3
  63. package/dist/typecheck-parity.cjs.map +1 -1
  64. package/dist/typecheck-parity.mjs +4 -3
  65. package/dist/typecheck-parity.mjs.map +1 -1
  66. package/dist/typecheck-probe-cli.cjs +2 -2
  67. package/dist/typecheck-probe-cli.mjs +2 -2
  68. package/package.json +13 -1
  69. package/toolchain.json +11 -4
@@ -1,9 +1,9 @@
1
1
  const require_rolldown_runtime = require("./rolldown-runtime.cjs");
2
2
  let node_path = require("node:path");
3
3
  node_path = require_rolldown_runtime.__toESM(node_path, 1);
4
+ let smol_toml = require("smol-toml");
4
5
  let node_crypto = require("node:crypto");
5
6
  let semver = require("semver");
6
- let smol_toml = require("smol-toml");
7
7
  let node_util = require("node:util");
8
8
  let yaml = require("yaml");
9
9
  let picomatch = require("picomatch");
@@ -700,7 +700,12 @@ const postgresStart = String.raw`
700
700
  pg_pid="$(head -n 1 "$pg_data/postmaster.pid")"
701
701
  service_process "$pg_pid" "$pg_bin/postgres"
702
702
  [[ "$(env -u PGSERVICE -u PGSERVICEFILE -u PGOPTIONS PGHOSTADDR=127.0.0.1 PGPASSWORD="$pg_password" PGCONNECT_TIMEOUT=2 "$pg_bin/psql" -X -h 127.0.0.1 -p 55432 -U stll_cloud -d postgres -At -v ON_ERROR_STOP=1 -c "SELECT count(*) FROM pg_database WHERE datname = 'cloud_test'")" == 1 ]] || env -u PGSERVICE -u PGSERVICEFILE -u PGOPTIONS PGHOSTADDR=127.0.0.1 PGPASSWORD="$pg_password" PGCONNECT_TIMEOUT=2 "$pg_bin/createdb" -h 127.0.0.1 -p 55432 -U stll_cloud cloud_test || fail "PostgreSQL test database creation failed"
703
- DATABASE_URL="postgresql://stll_cloud:$pg_password@127.0.0.1:55432/cloud_test"
703
+ POSTGRES_HOST='127.0.0.1:55432'
704
+ POSTGRES_USER='stll_cloud'
705
+ POSTGRES_PASSWORD="$pg_password"
706
+ POSTGRES_DB_NAME='cloud_test'
707
+ POSTGRES_ADDITIONAL_CONNECTION_DATA=''
708
+ DATABASE_URL="postgresql://$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST/$POSTGRES_DB_NAME$POSTGRES_ADDITIONAL_CONNECTION_DATA"
704
709
  printf 'postgres: %s\n' "$pg_state"
705
710
  `;
706
711
  const valkeyStart = String.raw`
@@ -1096,9 +1101,9 @@ const script = String.raw`#!/usr/bin/env bash
1096
1101
  # Supported platform: Ubuntu 24.04 (noble), amd64/arm64, root or passwordless sudo.
1097
1102
  set -euo pipefail
1098
1103
 
1099
- usage() { echo 'Usage: cloud-setup.sh install|start' >&2; exit 2; }
1104
+ usage() { echo 'Usage: cloud-setup.sh install|start|session' >&2; exit 2; }
1100
1105
  [[ "$#" == 1 ]] || usage
1101
- case "$1" in install|start) MODE="$1" ;; *) usage ;; esac
1106
+ case "$1" in install|start|session) MODE="$1" ;; *) usage ;; esac
1102
1107
  fail() { echo "cloud-setup: $*" >&2; exit 1; }
1103
1108
  trap 'echo "cloud-setup: command failed at line $LINENO" >&2' ERR
1104
1109
  # Each phase logs its start and duration so a stalled phase is visible in the task log.
@@ -1251,6 +1256,8 @@ process.stdout.write([...hosts].sort().join(","));
1251
1256
  @INPUT_VALIDATION@
1252
1257
 
1253
1258
  @ENV_FUNCTIONS@
1259
+ @ENVIRONMENT_VALUES@
1260
+ @SESSION_ENVIRONMENT@
1254
1261
 
1255
1262
  @PREPARE_FUNCTION@
1256
1263
 
@@ -1263,14 +1270,38 @@ if [[ "$MODE" == install ]]; then
1263
1270
  @PREPARE_STEP@
1264
1271
  exit 0
1265
1272
  fi
1266
- step runtime-check runtime_ready
1267
- step tool-check verify_tools
1268
- step shell install_shell_environment
1269
- step shell-check verify_shell_environment
1270
- @ENV_VALIDATE@
1271
- step state prepare_state
1272
- step service-start start_services
1273
- @ENV_WRITE@
1273
+ @ENV_INITIALIZE@
1274
+ start_environment() {
1275
+ step runtime-check runtime_ready
1276
+ step tool-check verify_tools
1277
+ step shell install_shell_environment
1278
+ step shell-check verify_shell_environment
1279
+ @ENV_VALIDATE@
1280
+ step state prepare_state
1281
+ step service-start start_services
1282
+ @ENV_WRITE@
1283
+ }
1284
+ if [[ "$MODE" == session ]]; then
1285
+ start_environment >&2
1286
+ else
1287
+ start_environment
1288
+ fi
1289
+ @SESSION_ENVIRONMENT_CALL@
1290
+ `;
1291
+ const environmentValuesFunction = String.raw`
1292
+ environment_values() {
1293
+ local emit="$1"
1294
+ "$emit" NODE_ENV test
1295
+ if [[ -n "$DATABASE_URL" ]]; then
1296
+ "$emit" DATABASE_URL "$DATABASE_URL"
1297
+ "$emit" POSTGRES_HOST "$POSTGRES_HOST"
1298
+ "$emit" POSTGRES_USER "$POSTGRES_USER"
1299
+ "$emit" POSTGRES_PASSWORD "$POSTGRES_PASSWORD"
1300
+ "$emit" POSTGRES_DB_NAME "$POSTGRES_DB_NAME"
1301
+ "$emit" POSTGRES_ADDITIONAL_CONNECTION_DATA "$POSTGRES_ADDITIONAL_CONNECTION_DATA"
1302
+ fi
1303
+ if [[ -n "$REDIS_URL" ]]; then "$emit" REDIS_URL "$REDIS_URL"; fi
1304
+ }
1274
1305
  `;
1275
1306
  const environmentFunctions = String.raw`
1276
1307
  validate_environment() {
@@ -1286,20 +1317,26 @@ validate_environment() {
1286
1317
  [[ "$first_line" == "$ENV_MARKER" ]] || fail 'Refusing to overwrite an unowned environment file'
1287
1318
  fi
1288
1319
  }
1320
+ environment_file_value() { printf '%s=%s\n' "$1" "$2"; }
1289
1321
  write_environment() {
1290
1322
  validate_environment
1291
1323
  local env_path="$REPO_ROOT/$ENV_FILE" temporary
1292
1324
  temporary="$(mktemp "$(dirname -- "$env_path")/.stll-cloud-env.XXXXXX")"
1293
1325
  chmod 600 "$temporary"
1294
1326
  {
1295
- printf '%s\n' "$ENV_MARKER" 'NODE_ENV=test'
1296
- if [[ -n "$DATABASE_URL" ]]; then printf 'DATABASE_URL=%s\n' "$DATABASE_URL"; fi
1297
- if [[ -n "$REDIS_URL" ]]; then printf 'REDIS_URL=%s\n' "$REDIS_URL"; fi
1327
+ printf '%s\n' "$ENV_MARKER"
1328
+ environment_values environment_file_value
1298
1329
  } > "$temporary"
1299
1330
  chown "$OUTPUT_UID:$OUTPUT_GID" "$temporary"
1300
1331
  mv -f -- "$temporary" "$env_path"
1301
1332
  }
1302
1333
  `;
1334
+ const sessionEnvironmentFunction = String.raw`
1335
+ environment_shell_value() { printf 'export %s=%q\n' "$1" "$2"; }
1336
+ emit_session_environment() {
1337
+ environment_values environment_shell_value
1338
+ }
1339
+ `;
1303
1340
  const shellQuote = (value) => `'${value.replaceAll("'", "'\\''")}'`;
1304
1341
  const renderPrepare = (prepare, files) => {
1305
1342
  if (prepare === void 0) return "";
@@ -1353,7 +1390,11 @@ const generateCloudSetup = ({ policy, cloud, nodeVersion, files = {}, rustExcept
1353
1390
  ["@NODE@", exactNode],
1354
1391
  ["@ENV_ASSIGNMENTS@", selected.envFile === void 0 ? "" : `ENV_FILE=${shellQuote(selected.envFile)}\nENV_MARKER=${shellQuote(cloudEnvironmentMarker)}`],
1355
1392
  ["@ENV_FUNCTIONS@", selected.envFile === void 0 ? "" : environmentFunctions],
1356
- ["@ENV_VALIDATE@", selected.envFile === void 0 ? "" : "DATABASE_URL=''\nREDIS_URL=''\nvalidate_environment"],
1393
+ ["@ENVIRONMENT_VALUES@", selected.services.length === 0 ? "" : environmentValuesFunction],
1394
+ ["@ENV_INITIALIZE@", selected.services.length === 0 ? "" : "DATABASE_URL=''\nPOSTGRES_HOST=''\nPOSTGRES_USER=''\nPOSTGRES_PASSWORD=''\nPOSTGRES_DB_NAME=''\nPOSTGRES_ADDITIONAL_CONNECTION_DATA=''\nREDIS_URL=''"],
1395
+ ["@ENV_VALIDATE@", selected.envFile === void 0 ? "" : "validate_environment"],
1396
+ ["@SESSION_ENVIRONMENT@", selected.services.length === 0 ? "" : sessionEnvironmentFunction],
1397
+ ["@SESSION_ENVIRONMENT_CALL@", selected.services.length === 0 ? "" : "if [[ \"$MODE\" == session ]]; then emit_session_environment; fi"],
1357
1398
  ["@ENV_WRITE@", selected.envFile === void 0 ? "" : "write_environment"],
1358
1399
  ["@PREPARE_FUNCTION@", renderPrepare(selected.prepare, files)],
1359
1400
  ["@PREPARE_STEP@", selected.prepare === void 0 ? "" : " step prepare prepare_sources"],
@@ -1405,6 +1446,47 @@ const sessionStartHook = (script) => ({
1405
1446
  printf '%s\\n' "cloud-setup: $1" >&2
1406
1447
  exit 0
1407
1448
  }
1449
+ if [ -n "\${CLAUDE_ENV_FILE:-}" ]; then
1450
+ cloud_session_exports="$(${script} session)" || cloud_setup_incomplete 'startup failed; run install'
1451
+ else
1452
+ ${script} start >&2 || cloud_setup_incomplete 'startup failed; run install'
1453
+ exit 0
1454
+ fi
1455
+ if [ -n "\${CLAUDE_ENV_FILE:-}" ]; then
1456
+ if [ ! -s ${cloudShellProfilePath} ]; then
1457
+ cloud_setup_incomplete 'cloud shell profile is unavailable; run install'
1458
+ fi
1459
+ cloud_shell_exports="$(cat ${cloudShellProfilePath})" || cloud_setup_incomplete 'cloud shell profile could not be read; run install'
1460
+ [ -n "$cloud_shell_exports" ] || cloud_setup_incomplete 'cloud shell profile is unavailable; run install'
1461
+ if [ -e "$CLAUDE_ENV_FILE" ] || [ -L "$CLAUDE_ENV_FILE" ]; then
1462
+ [ -f "$CLAUDE_ENV_FILE" ] && [ ! -L "$CLAUDE_ENV_FILE" ] || cloud_setup_incomplete 'session environment must be a regular file; check its path and rerun start'
1463
+ fi
1464
+ cloud_env_temporary="$(umask 077; mktemp "\${CLAUDE_ENV_FILE}.XXXXXX")" || cloud_setup_incomplete 'session environment could not be prepared; check its write access and rerun start'
1465
+ if [ -e "$CLAUDE_ENV_FILE" ] || [ -L "$CLAUDE_ENV_FILE" ]; then
1466
+ cat "$CLAUDE_ENV_FILE" > "$cloud_env_temporary" || { rm -f -- "$cloud_env_temporary"; cloud_setup_incomplete 'session environment could not be read; check its access and rerun start'; }
1467
+ fi
1468
+ if [ -n "$cloud_session_exports" ]; then
1469
+ cloud_session_exports="$cloud_session_exports
1470
+ $cloud_shell_exports"
1471
+ else
1472
+ cloud_session_exports="$cloud_shell_exports"
1473
+ fi
1474
+ printf '\\n%s\\n' "$cloud_session_exports" >> "$cloud_env_temporary" || { rm -f -- "$cloud_env_temporary"; cloud_setup_incomplete 'session environment could not be prepared; check its write access and rerun start'; }
1475
+ mv -f -- "$cloud_env_temporary" "$CLAUDE_ENV_FILE" || { rm -f -- "$cloud_env_temporary"; cloud_setup_incomplete 'session environment could not be persisted; check its write access and rerun start'; }
1476
+ fi
1477
+ fi`
1478
+ }]
1479
+ });
1480
+ const currentMainSessionStartHook = (script) => ({
1481
+ matcher: "",
1482
+ hooks: [{
1483
+ type: "command",
1484
+ command: `if [ "\${CLAUDE_CODE_REMOTE:-}" = "true" ]; then
1485
+ cloud_setup_incomplete() {
1486
+ printf '%s\\n' 'Cloud setup could not establish a verified session environment. From the repository root, run bash .agents/cloud-setup.sh install and then bash .agents/cloud-setup.sh start. Do not assume pinned tools or services are ready until start succeeds.'
1487
+ printf '%s\\n' "cloud-setup: $1" >&2
1488
+ exit 0
1489
+ }
1408
1490
  ${script} start >&2 || cloud_setup_incomplete 'startup failed; run install'
1409
1491
  if [ -n "\${CLAUDE_ENV_FILE:-}" ]; then
1410
1492
  if [ ! -s ${cloudShellProfilePath} ]; then
@@ -1418,7 +1500,11 @@ fi`
1418
1500
  }]
1419
1501
  });
1420
1502
  const cloudSessionStartHook = sessionStartHook(`bash "$CLAUDE_PROJECT_DIR/${cloudSetupPath}"`);
1421
- const previousCloudSessionStartHooks = [releasedSessionStartHook(`bash ${cloudSetupPath}`), releasedSessionStartHook(`bash "$CLAUDE_PROJECT_DIR/${cloudSetupPath}"`)];
1503
+ const previousCloudSessionStartHooks = [
1504
+ releasedSessionStartHook(`bash ${cloudSetupPath}`),
1505
+ releasedSessionStartHook(`bash "$CLAUDE_PROJECT_DIR/${cloudSetupPath}"`),
1506
+ currentMainSessionStartHook(`bash "$CLAUDE_PROJECT_DIR/${cloudSetupPath}"`)
1507
+ ];
1422
1508
  const cloudAttribution = {
1423
1509
  commit: "",
1424
1510
  pr: ""
@@ -1699,7 +1785,7 @@ const isDockerDefinitionPath = (file) => {
1699
1785
  const isShellScript = (file, text = "") => !excludedInputPath(file) && (/\.(?:sh|bash|zsh)$/.test(file) || /^#![ \t]*(?:\/(?:[^ \t\r\n]+\/)*(?:bash|dash|ksh|zsh|sh)|\/usr\/bin\/env[ \t]+(?:-S[ \t]+)?(?:bash|dash|ksh|zsh|sh))(?=[ \t\r\n]|$)/.test(text));
1700
1786
  /** Lockfiles establish ecosystem presence without reading their dependency graphs. */
1701
1787
  const toolchainInputKind = (file, text = "") => {
1702
- if (file === ".agents/cloud-setup.sh" || file === ".claude/settings.json" || file === "Cargo.lock") return "config";
1788
+ if (file === "bunfig.toml" || file === ".agents/cloud-setup.sh" || file === ".claude/settings.json" || file === "Cargo.lock") return "config";
1703
1789
  if (githubAutomationFileKind(file) !== void 0) return "config";
1704
1790
  if (excludedInputPath(file)) return void 0;
1705
1791
  if (dependabotManifestEcosystem(file) !== void 0 || pythonDependencyManifestKind(file) === "pipfile-lock" || javascriptDependencyLockfiles.some((name) => file.split("/").at(-1) === name) || /(?:^|\/)uv\.lock$/.test(file)) return "presence";