Skip to content

build(deps-dev): bump eslint from 9.39.4 to 10.5.0 in /functions#6

Closed
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/npm_and_yarn/functions/eslint-10.5.0
Closed

build(deps-dev): bump eslint from 9.39.4 to 10.5.0 in /functions#6
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/npm_and_yarn/functions/eslint-10.5.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jun 14, 2026

Copy link
Copy Markdown

Bumps eslint from 9.39.4 to 10.5.0.

Release notes

Sourced from eslint's releases.

v10.5.0

Features

  • 5ca8c52 feat: correct stack tracking in max-nested-callbacks (#20973) (Pixel998)
  • b565783 feat: report no-with violations at the with keyword (#20971) (Pixel998)
  • 2ce032f feat: report max-lines-per-function violations at function head (#20966) (Pixel998)
  • 732cb3e feat: report max-nested-callbacks violations at function head (#20967) (Pixel998)
  • f9c138a feat: report max-depth violations on keywords (#20943) (Pixel998)
  • bdb496c feat: correct max-depth handling for else-if chains (#20944) (Pixel998)
  • c296873 feat: update error loc in max-statements to function header (#20907) (Taejin Kim)

Documentation

  • 8ae1b5b docs: Update README (GitHub Actions Bot)
  • ca7eb90 docs: update Node.js prerequisites to include ICU support (#20962) (Francesco Trotta)
  • f99b47a docs: Update README (GitHub Actions Bot)
  • acf03d4 docs: clarify precedence of parserOptions over languageOptions (#20926) (sethamus)

Chores

  • b18bf58 chore: update ecosystem plugins (#20959) (ESLint Bot)
  • c2d1444 refactor: replace areAllSegmentsUnreachable with !isAnySegmentReachable (#20951) (Taejin Kim)
  • 243b8c5 chore: enhance config-rule to support oneOf, anyOf, and nested schemas (#20788) (kuldeep kumar)
  • 217b2a9 test: add unit tests for ParserService (#20949) (Taejin Kim)
  • 72003e7 test: add location information to error messages in max-statements (#20945) (lumir)
  • 7797c26 refactor: deduplicate isAnySegmentReachable across rules (#20890) (Taejin Kim)
  • 67c46fa chore: update ecosystem plugins (#20938) (ESLint Bot)
  • 95d8c7a chore: update dependency @​eslint/json to v2 (#20934) (renovate[bot])
  • cf9e496 chore: update @​arethetypeswrong/cli to 0.18.3 (#20933) (Pixel998)
  • fb6d396 test: run type tests with TypeScript 7 (#20868) (sethamus)

v10.4.1

Bug Fixes

  • e557467 fix: update @eslint/plugin-kit version to 0.7.2 (#20930) (Francesco Trotta)
  • d4ce898 fix: propagate failures from delegated commands (#20917) (Minh Vu)
  • f4f3507 fix: prefer-arrow-callback invalid autofix with newline after async (#20916) (kuldeep kumar)
  • c5bc78b fix: false positive for reference in finally block (#20655) (Tanuj Kanti)
  • 27538c0 fix: add missing CodePath and CodePathSegment types (#20853) (Pixel998)

Documentation

  • 61b0add docs: remove deprecated rule from related rules of max-params (#20921) (Tanuj Kanti)
  • 305d5b9 docs: remove deprecated rules from related rules section (#20911) (Tanuj Kanti)
  • 49b0202 docs: fix display: none of ad (#20901) (Tanuj Kanti)
  • 9067f94 docs: switch build to Node.js 24 (#20893) (Milos Djermanovic)
  • c91b041 docs: Update README (GitHub Actions Bot)
  • e349265 docs: clarify semver strings in rule deprecation objects (#20885) (Milos Djermanovic)

Chores

  • b0e466b test: add data property to invalid tests cases for rules (#20924) (Tanuj Kanti)
  • f78838b test: add CodePath type coverage (#20904) (Pixel998)
  • 1daa4bd chore: update eslint-plugin-eslint-comments test data to latest commit (#20922) (Francesco Trotta)
  • 002942c ci: declare contents:read on update-readme workflow (#20919) (Arpit Jain)
  • 64bca24 chore: update ecosystem plugins (#20912) (ESLint Bot)

... (truncated)

Commits

@dependabot @github

dependabot Bot commented on behalf of github Jun 14, 2026

Copy link
Copy Markdown
Author

Labels

The following labels could not be found: dependencies, functions. Please create them before Dependabot can add them to a pull request.

Please fix the above issues or remove invalid values from dependabot.yml.

@dependabot dependabot Bot changed the title Bump eslint from 8.57.1 to 10.5.0 in /functions build(deps-dev): Bump eslint from 8.57.1 to 10.5.0 in /functions Jun 14, 2026
@dependabot
dependabot Bot force-pushed the dependabot/npm_and_yarn/functions/eslint-10.5.0 branch 2 times, most recently from 0609ed7 to 737eb7f Compare June 14, 2026 05:47
@dependabot dependabot Bot changed the title build(deps-dev): Bump eslint from 8.57.1 to 10.5.0 in /functions build(deps-dev): Bump eslint from 9.39.4 to 10.5.0 in /functions Jun 14, 2026
@dependabot
dependabot Bot force-pushed the dependabot/npm_and_yarn/functions/eslint-10.5.0 branch 2 times, most recently from e3b6680 to 66ac4a6 Compare June 14, 2026 17:55
miningtheblocks added a commit that referenced this pull request Jun 17, 2026
… bombing, perf

Round 2 de auditoría — 6 fixes baratos de alto ROI:

- .easignore agrega *.jks, *.pkcs12, service-account*.json, *-adminsdk-*.json
  para evitar que eas build suba el keystore JKS o SA dedicados a EAS Cloud.
  (Agente #9 HIGH-09-19, Agente #11 HIGH-11-19)

- UpdateModal allowlist agrega github.com con path-check estricto al repo
  oficial /miningtheblocks/Mining-The-Blocks/releases/download/. El sitio web
  sirve el APK desde GitHub Releases y la validación previa rechazaba ese
  host → users que tapeaban "Descargar" caían al fallback miningtheblocks.com
  y nunca llegaban al APK directo.
  (Agente #9 CRIT-09-01)

- sendVerificationEmail con rate-limit 5/hora/uid via _rateLimitFirestore.
  Sin esto, un user recién creado podía bombear hasta que Gmail suspendiera
  el app-password compartido → outage TOTAL de emails (verify + claim +
  reportProblem + mint alerts).
  (Agente #6 CRIT, Agente #10 cross-ref)

- mintProcessorScheduled + cryptoPaymentProcessorScheduled con self-throttle
  (early-return si la queue está vacía). El cron corre cada 5min aunque no
  haya trabajo; saltearlo evita cargar el eth provider, secrets, y RPC calls
  a publicnode.com (sin SLA). Ahorra ~$5/mes y reduce risk de rate-limit RPC.
  (Agente #12 P0)

- WCAG-AA contrast bump en Login/Config/Profile:
  #555 (ratio ~3.5:1) → #888 (ratio ~5.4:1) en texto secundario
  #333 (ratio ~1.5:1) → #666 en primaryTxtDisabled de Login
  Cierra MED-10-45 y avanza compliance European Accessibility Act.

- i18n agrega 2 keys faltantes (profile.walletCooldown + profile.emailNotVerified)
  en EN+ES. Profile.js las usaba con fallback inline; sin las keys reales el
  user veía el key literal "profile.walletCooldown" en pantalla.
  (Agente #10 parte de CRIT-10-04)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
miningtheblocks added a commit that referenced this pull request Jun 17, 2026
…heckRevoked, password reset)

Cierra los 3 CRIT del bloque "identity" del Audit Round 2 — todos comparten
la ventana de 60min de account takeover que existía post-revocación.

1. Wallet hot-swap fix en claimGemNFT + submitGemClaim.

   Antes ambas funciones leían walletAddress del body del request → bypaseaban
   el cooldown de 24h de setUserWallet. Durante un takeover (atacante con
   token válido), podía claimear NFTs / submit gem claims a SU wallet aunque
   setUserWallet siguiera bloqueado por cooldown.

   Ahora ambas leen walletAddress server-side desde users/{uid}.walletAddress.
   La única vía para setear/cambiar wallet pasa por setUserWallet (cooldown
   + validación de formato). request.data.walletAddress se ignora silenciosamente
   por backwards-compat con clientes pre-Commit-B; el web claim form sigue
   mostrando el campo pero queda como TODO sacarlo (debe leer userSnap).
   (Agente #1 HIGH-4 + Agente #6 + Agente #8)

2. assertFreshToken helper + aplicación en 3 operaciones financieras.

   El runtime de Firebase Functions decodea el JWT pero NO chequea
   tokensValidAfterTime. Sin esto, un token robado o post-revoke sigue
   válido hasta el TTL JWT (~60min). El helper compara auth_time del token
   contra user.tokensValidAfterTime via Admin SDK (mismo patrón que
   requireAdminFresh). Bonus: chequea user.disabled (ban via Console).

   Aplicado en: claimGemNFT, createCryptoPayment, submitGemClaim.
   submitGemClaim usa la forma onRequest equivalente: verifyIdToken(token, true).
   NO aplicado a mineCube (hot path, ~100 calls/sesión); daño con token
   revocado acotado a picks remanentes.
   (Agente #6 CRIT)

3. requestPasswordReset Cloud Function reemplaza sendPasswordResetEmail directo.

   Antes el cliente llamaba Firebase Auth SDK Web → email genérico de Firebase,
   sin revoke de tokens (account takeover playbook clásico) y sin notify al
   user real durante un reset iniciado por atacante con email comprometido.

   Nueva función:
   - Anti-enumeration: rate-limit 3/hora por email + retorno OK siempre.
   - revokeRefreshTokens(uid) ANTES de mandar el link → todas las sesiones
     existentes invalidadas. User real re-loguea con la new password OK
     (token nuevo con auth_time > tokensValidAfterTime). Atacante con
     sesiones activas las pierde.
   - Email branded con texto explícito "tus sesiones fueron cerradas; si no
     fuiste vos ignorá este email — tu password actual sigue OK".

   Login.js actualizado para usar callRequestPasswordReset en lugar del Web
   SDK directo. sendPasswordResetEmail removido de imports.
   (Agente #6 CRIT)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
miningtheblocks added a commit that referenced this pull request Jun 17, 2026
…list + deep-link

Cierra Fase 2 del Audit Round 2. 6 items que comparten "infraestructura cross-cutting"
del frontend ↔ backend.

1. requireRegistered con whitelist explícito de providers.

   Pre-fix: blacklist ("rechazar 'anonymous'"). Si Firebase habilita un
   provider nuevo (Anonymous via Console, OIDC custom, beforeSignIn blocking
   function que devuelve un provider desconocido), el flow lo aceptaba por
   default. Whitelist = default-deny: solo password / google.com / apple.com
   pasan. Provider desconocido → permission-denied:provider_not_allowed:{X}.
   (Agente #6 CRIT)

2. notifyAllUsers FCM/Expo ramificación + token cleanup automático.

   Pre-fix: TODOS los tokens iban al endpoint Expo Push API (incluyendo los
   FCM nativos que el cliente registra desde V1.1.0+). Expo respondía error
   sin tirar excepción → audit log decía "sent=N" cuando realmente fueron 0.
   La única broadcast feature del producto NO entregaba mensajes y el admin
   nunca se enteraba.

   Fix: ramificar por pushTokenType. FCM via
   getMessaging().sendEachForMulticast (hasta 500 tokens/call, devuelve
   success/error por token). Expo legacy sigue por exp.host. Tokens con
   responses "registration-token-not-registered" / "invalid-registration-token"
   se borran en batch del user doc.
   (Agente #10 CRIT-10-01 + CRIT-10-03)

3. sendPushToUser respeta settings.notify* del user + data payload + cleanup.

   Pre-fix (Agente #4 + #10 CRIT-10-02): los toggles de Config.js
   (notifyAdReady, notifyDaily, notifyRewards, notifyNewLayer) se persistían
   en users/{uid}.settings.* pero el backend nunca los leía — dark pattern
   explícito reportable a Play Store / GDPR.

   Fix: signature ampliada a sendPushToUser(uid, titles, bodies, opts). Si
   opts.notifyKey está y user.settings[notifyKey]===false, skip silencioso.
   Default opt-in (undefined → enviar, conserva flow viejo).

   3 call sites actualizados: mint complete + payment received + referral
   bonus pasan { notifyKey: 'notifyRewards', data: { url: ... } }.

   data payload + Object.fromEntries(String(v)) para que FCM acepte (FCM
   exige todos los values como strings).
   (Agente #10 CRIT-10-02 + CRIT-10-03 + HIGH-10-09)

4. t(key, vars) motor con interpolación + __DEV__ warnings.

   Pre-fix: 17 call sites reimplementaban .replace('{x}', y) — riesgo de
   reentrancia (si value contenía '{other}' el segundo .replace lo
   interpretaba), keys faltantes mostraban el key literal al usuario.

   Nuevo motor:
   - t('msg', { name, h }) interpola {name} y {h} con String(v).
   - En __DEV__ warna si la key no existe o un var declarado no fue provisto.
   - Object.prototype.hasOwnProperty.call para evitar prototype pollution.

   Profile.js migrado a la nueva API (las 2 sites con walletCooldown +
   emailNotVerified). Los otros 15 call sites siguen funcionando con la
   nueva t() porque vars es opcional (backwards-compat).
   (Agente #10 CRIT-10-04 parcial — full migration de los 15 sites queda P2)

5. addNotificationResponseReceivedListener + DeepLinkHandler ampliado.

   Pre-fix: push payload sin data → tap del push solo abre la app en la
   última screen. User que recibe "Tu NFT llegó!" no llega a MyGems.

   Fix: response listener en App.js dispara Linking.openURL(data.url) si
   el push trae data.url con scheme conocido. DeepLinkHandler ampliado de
   solo 'peaks' a peaks/gems/profile/buycredits/config/servers — alineado
   con los modal keys del OverlayModalsProvider.

   Subscription tracked en let-binding + cleanup en outer useEffect return
   para evitar leak (paralelo al notifSetupTimer cleanup).
   (Agente #10 HIGH-10-09 + HIGH-09-04 cross-ref)

Tests: 24/24 helpers tests pasan sin cambio. functions/index.js parsea OK.

Fase 2 cerrada (4 commits + Tier 1):
  Tier 1:   1e1e160 (6 quick wins)
  Commit A: d33f627 (schema + reorg + nonce lock)
  Commit B: c9b2544 (wallet hot-swap + checkRevoked + password reset)
  Commit C: 545c92c (effectiveSeed + payment checkpoint + markGemRedeemed)
  Commit D: <hash>  (push + i18n + providers + deep-link)

14 CRIT del Audit Round 2 cerrados. Próximo: Fase 3 (compliance + ops).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
miningtheblocks added a commit that referenced this pull request Jun 17, 2026
…rywhere)

Cierra dos gaps de compliance / takeover response del Audit Round 2.

1. deleteMyAccount — GDPR Art. 17 + Play Store policy compliance.

   Pre-fix: el user solo podía pedir borrado por email a soporte
   (privacy.html promete <30 días). Bloqueante para Play Store policy
   (mayo 2024: self-serve account deletion in-app obligatorio para apps
   con login) y para GDPR right to erasure escalable.

   Estrategia: soft-delete con anonimización + 5y retention para AML/KYC.
   - users/{uid} preservado pero pierde TODO el PII (email, profile, avatar,
     pushToken, walletAddress, referralCode/referredBy, settings, language).
     Mantiene `deletedAt` timestamp + displayName='[deleted]'.
   - notifications/ → batch delete (no retention requirement).
   - gems/ → SE PRESERVA (NFT records + 5y AML/KYC retention).
   - usernames/{handle} → released para que otros lo puedan reclamar.
   - pendingCryptoPayments waiting → cancelled (libera amount slots).
   - Auth user → deleteUser (revoca refresh tokens automáticamente).
   - Audit log en adminActions.

   Protecciones:
   - requireRegistered + assertFreshToken (~5min token freshness mínimo).
   - Rate-limit 1/hora por uid (anti-accidente).
   - Errores parciales no rompen el flujo total (cada paso try/catch).
   (Agente #6 MED-15 + #10 HIGH-10-38 + #11 MED-11-43)

2. revokeMySessions — self-serve "logout everywhere" para sospecha takeover.

   Pre-fix: si el user sospechaba acceso no autorizado en otro device, la
   única vía era contactar admin → admin via Firebase Console llamaba
   revokeRefreshTokens manualmente. Latencia operacional alta + dependencia
   de canal humano.

   Nueva CF: requireRegistered + assertFreshToken + rate-limit 5/h, llama
   getAuth().revokeRefreshTokens(uid) + audit log. El user sigue logueado
   en este device hasta el próximo refresh (~5min Firebase JWT TTL); la
   UI hace signOut local para cierre inmediato del cliente actual.
   (Agente #6 MED + #11 MED-11-46)

3. UI: "Danger zone" en Profile.js al final del scroll.

   Dos botones agrupados visualmente:
   - 🔐 "Cerrar sesión en todos los dispositivos" — borde rojo suave
     (#3a2222), confirmación con AppAlert + style:cancel/destructive.
   - ⚠️ "Eliminar mi cuenta" — texto rojo (#ff6b6b), borde más oscuro
     (#5a1414), warning explicando retention 5y + irreversibilidad.

   Ambos botones con accessibilityLabel + accessibilityState.busy durante
   ejecución. minHeight:44 para WCAG-AA touch target.

4. i18n: 12 keys nuevas EN+ES bajo profile namespace (dangerZone,
   logoutEverywhere*, deleteAccount*, cancel).

5. callDeleteMyAccount + callRevokeMySessions en src/firebase/functions.js.

Tests: functions/index.js parsea OK. helpers tests no afectados.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
miningtheblocks added a commit that referenced this pull request Jun 17, 2026
Cierra 6 hallazgos críticos pendientes pre-launch. Cambios localizados, sin
refactor estructural.

1. activityFeed TTL `expiresAt` (Agente #12 + #11 HIGH-11-40).
   writeActivity ahora agrega expiresAt = now + 7d. Firestore TTL Console
   borrará docs viejos automáticamente (después de activar la policy —
   pendiente operacional en RUNBOOK).
   Pre-fix: feed crecía infinito → cost amplification + PII histórica.

2. mineCube docId `${K}_${cubeNumber}` (Agente #1 CRIT-1).
   Pre-fix: `mined/${cubeNumber}` colisionaba entre layers. K=100 mina N=5;
   cuando K decrementa a 99 y otro user mina N=5 en K=99, el docId "5"
   colisiona → data mixing.
   Pre-launch: 0 mines reales en producción → forward-only safe.

3. processPendingMints audit log en adminActions (Agente #6 HIGH).
   La invocación manual del cron de mints no quedaba en adminActions, solo
   en Cloud Logging (retención 30d). Para forensic post-incidente esencial.

4. Override global de console.log REMOVIDO (Agente #4 CRIT-FE-06).
   Pre-fix: console.log = wrapper que filtraba un warning de expo-gl.
   Anti-pattern: HMR re-importa el módulo → wrappea otra vez → cadena
   infinita de wrappers. Plus dead code en prod (babel strippea console.log).

5. miningAnimations dead state REMOVIDO (Agente #5).
   const [miningAnimations, setMiningAnimations] = useState(new Map())
   declarado pero setMiningAnimations nunca se llamaba. 3 sites
   referenciaban este state muerto: useEffect cleanup forEach (no-op,
   removido), render loop check hasActiveAnimations (siempre false), comments
   documentan migración a useRef si vuelve la necesidad.

6. getFaceRange() lee del cache faceRangesRef (Agente #5 CRIT-4).
   Pre-fix: iteraba 240k cubeNumbers por call. JSX lo llamaba en cada
   re-render = 15-60×/seg × 240k = 14M iter/seg = stutter Android low-end.
   Fix: cache hit primero (faceRangesRef ya populated por
   recomputeFaceRanges en buildLayer). Loop solo en cache miss.

Bonus: setCorsHeaders unused import removido (post Commit K).

Tests: helpers OK, lint clean, parse OK.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
miningtheblocks added a commit that referenced this pull request Jun 17, 2026
…, UpdateModal hardening, verifyBeforeUpdateEmail)

Cierra 4 hallazgos del bloque auth/identity pendientes post Commit B.

1. mineCube + assertFreshToken (Agente #6 CRIT — deferred en Commit B).

   Commit B aplicó checkRevoked en claimGemNFT, createCryptoPayment,
   submitGemClaim pero defirió mineCube por costo (~100 Auth Admin calls
   por sesión típica de mineo). Re-evaluación: costo real ~$0-10/mes a
   <10k DAU. Aceptable para garantizar que tokens revocados (post password
   reset, post admin-suspensión, post deleteMyAccount) no puedan mintear
   gemas hasta que el JWT TTL natural (~60min) los pesque.

2. Login.js: clear password post-login (Agente #4 ALTO-FE-15).

   Pre-fix: tras `signInWithEmailAndPassword`, el password seguía en React
   state hasta unmount o next render. Si la app queda en background, otra
   app con memory dump capability puede leerlo. Best-effort en JS (no hay
   SecureString native) — `setPassword('')` después de éxito + después de
   "email no verificado + signOut".

3. UpdateModal: rechazar userinfo + custom port (Agente #4 ALTO-FE-11).

   Pre-fix: `new URL("https://attacker.com@miningtheblocks.com/evil.apk")`
   parsea hostname=miningtheblocks.com (passa el allowlist) pero algunos
   clientes Android Linking navegan al userinfo en lugar del host.
   Bypass de la última línea de defensa contra APK malicioso via
   downloadUrl.
   Fix: explícitamente reject `u.username`, `u.password`, `u.port !== 443`.

4. Registration.js: verifyBeforeUpdateEmail en lugar de updateEmail
   (Agente #6 HIGH-12).

   Pre-fix: `updateEmail(u, newEmail)` cambiaba el email inmediatamente +
   dejaba emailVerified=false silenciosamente → limbo (user cree email
   cambió; no puede recuperar password porque nuevo no está verified;
   viejo ya no funciona). Plus escalation vector en account takeover.

   Fix: `verifyBeforeUpdateEmail(u, newEmail)`. Manda email de
   verificación al NUEVO address; el email solo cambia cuando el user
   clickea el link. Hasta entonces puede seguir con el email viejo.
   API moderna de Firebase Auth v9+ que reemplaza updateEmail.

Tests: parse OK + lint OK + 24/24 helpers tests.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Bumps [eslint](https://github.com/eslint/eslint) from 9.39.4 to 10.5.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](eslint/eslint@v9.39.4...v10.5.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 10.5.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot changed the title build(deps-dev): Bump eslint from 9.39.4 to 10.5.0 in /functions build(deps-dev): bump eslint from 9.39.4 to 10.5.0 in /functions Jun 23, 2026
@dependabot
dependabot Bot force-pushed the dependabot/npm_and_yarn/functions/eslint-10.5.0 branch from 66ac4a6 to 2198cbc Compare June 23, 2026 18:15
miningtheblocks added a commit that referenced this pull request Jun 23, 2026
- sentry.properties: defaults.org/project/url, auth.token vía env (commented)
- .env.example: documenta SENTRY_AUTH_TOKEN con link al settings page Sentry
- .easignore: + contracts_build/, audit_*/, RUNBOOK.md, *.sha256 (#6 Cleanup #4 bonus)

SENTRY_AUTH_TOKEN ya registrado como sensitive EAS env var en environment
production. Próximo `eas build --profile production` va a subir source maps
automáticamente vía el plugin @sentry/react-native (configurado en app.json).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@dependabot @github

dependabot Bot commented on behalf of github Jun 29, 2026

Copy link
Copy Markdown
Author

Superseded by #25.

@dependabot dependabot Bot closed this Jun 29, 2026
@dependabot
dependabot Bot deleted the dependabot/npm_and_yarn/functions/eslint-10.5.0 branch June 29, 2026 15:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants