Skip to content

chore(deps): bump i18next-http-backend from 3.0.5 to 4.0.0 in /apps/web#435

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/apps/web/i18next-http-backend-4.0.0
Open

chore(deps): bump i18next-http-backend from 3.0.5 to 4.0.0 in /apps/web#435
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/apps/web/i18next-http-backend-4.0.0

Conversation

@dependabot
Copy link
Copy Markdown
Contributor

@dependabot dependabot Bot commented on behalf of github May 5, 2026

Bumps i18next-http-backend from 3.0.5 to 4.0.0.

Changelog

Sourced from i18next-http-backend's changelog.

4.0.0

  • BREAKING: drop cross-fetch dependency. i18next-http-backend now requires a host-provided fetch. This is available in Node ≥ 18 (stable since Node 21), all modern browsers, Deno, and Bun. For runtimes without native fetch, install a ponyfill yourself and inject it via options.alternateFetch, or stay on v3.x.
  • BREAKING: minimum Node version is now 18 (engines.node = ">=18").
  • chore: simplified environment detection in lib/request.js — uses globalThis (with global / window fallbacks for legacy embedded runtimes) instead of separate global.* / window.* branches per API. XHR / ActiveXObject are still picked up if the host provides them, but no longer polyfilled.
  • chore: declared "sideEffects": false for better tree-shaking by downstream bundlers.
  • build: replaced babel + browserify + uglify-js with tsdown (rolldown + oxc). One config produces ESM, CJS, and the IIFE browser bundles. Drops @babel/cli, @babel/core, @babel/preset-env, babel-plugin-add-module-exports, browserify, uglify-js, the fixcjs rewrite hack, and the --ignore cross-fetch browserify flag. Side benefit: minified browser bundle shrinks from ~13 KB to ~6.8 KB (oxc minifier + no babel runtime helpers).
  • build: ESM and CJS outputs are now bundled into a single index.js per format (previously one file per lib/*.js module). The package's exports map is unchanged, so this is invisible to consumers using documented entry points.
  • lint: replaced eslint-config-standard (+ five plugins) with neostandard and migrated to ESLint 9 flat config (eslint.config.mjs). Removed deprecated tslint and dtslinttest:typescript now runs tsc --noEmit plus tsd.
  • chore: tightened .npmignore — published tarball no longer includes the source lib/, the build configs (tsdown.config.ts, eslint.config.mjs, tsconfig.json), or the root index.js re-export shim. Drops from 21.3 KB → ~17 KB packed.
  • docs: alternateFetch is now documented in the README options block as the supported escape hatch for fetch ponyfills, test mocking, and request interception. v4 migration note added to "Getting started".

3.0.6

  • fix: allow forward slashes in ns values so nested namespace names (mapping to URL layouts such as /locales/en/a/b.json) fetch correctly again. 3.0.5's security fix applied the same strict URL-segment check to both lng and ns, which was correct for lng (no BCP-47 shape contains /) but over-strict for ns — nested namespaces containing / were never officially supported, but the behaviour fell out of the implicit string-substitution semantics of loadPath and is common enough in the wild to be worth accommodating. isSafeUrlSegment is now split into isSafeLangUrlSegment (strict — still rejects /) and isSafeNsUrlSegment (loose — allows / but still rejects .., \, URL-structure characters, control chars, prototype keys, and oversized inputs). isSafeUrlSegment is kept as a backwards-compatible alias for the strict check. The 3.0.5 security fix remains in force for every concrete attack pattern from the original advisory.
Commits
  • a4d4a83 4.0.0
  • fdf4f98 feat!: v4 — drop cross-fetch, switch build to tsdown, lint to neostandard
  • d8dafd8 docs: clarify that nested-ns with slashes was never officially supported
  • e534a62 build
  • ddf1048 3.0.6
  • d73cfdc fix: allow forward slashes in ns values
  • 9abbdee Bump i18next-http-backend from 1.4.0 to 3.0.5 in /example/i18next-vue (#184)
  • b4ca8bb Bump i18next-http-backend from 3.0.1 to 3.0.5 in /example/fallback (#183)
  • dffddd4 Bump i18next-http-backend from 3.0.2 to 3.0.5 in /example/next (#182)
  • fd29b40 Bump i18next-http-backend from 1.3.2 to 3.0.5 in /example/vue (#181)
  • Additional commits viewable in compare view

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file Javascript labels May 5, 2026
Bumps [i18next-http-backend](https://github.com/i18next/i18next-http-backend) from 3.0.5 to 4.0.0.
- [Changelog](https://github.com/i18next/i18next-http-backend/blob/master/CHANGELOG.md)
- [Commits](i18next/i18next-http-backend@v3.0.5...v4.0.0)

---
updated-dependencies:
- dependency-name: i18next-http-backend
  dependency-version: 4.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot force-pushed the dependabot/npm_and_yarn/apps/web/i18next-http-backend-4.0.0 branch from a35dedc to 72054ae Compare May 9, 2026 07:12
hessius added a commit that referenced this pull request May 11, 2026
…ep updates (#444)

* [ImgBot] Optimize images

*Total -- 10,762.46kb -> 6,876.32kb (36.11%)

/apps/web/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-1.png -- 40.31kb -> 16.62kb (58.77%)
/apps/web/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732.png -- 40.31kb -> 16.62kb (58.77%)
/apps/web/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-2.png -- 40.31kb -> 16.62kb (58.77%)
/screenshots/public/screenshots/en/shot-analysis.png -- 410.15kb -> 230.43kb (43.82%)
/resources/screenshots/ShotAnalysis.png -- 410.15kb -> 230.43kb (43.82%)
/resources/screenshots/Home.png -- 538.02kb -> 307.16kb (42.91%)
/screenshots/public/screenshots/en/home.png -- 538.02kb -> 307.16kb (42.91%)
/resources/screenshots/CreateProfile.png -- 417.38kb -> 249.61kb (40.2%)
/screenshots/public/screenshots/en/create-profile.png -- 417.38kb -> 249.61kb (40.2%)
/screenshots/public/screenshots/en/compass.png -- 465.23kb -> 280.70kb (39.67%)
/resources/screenshots/Compass.png -- 465.23kb -> 280.70kb (39.67%)
/resources/screenshots/PourOver.png -- 419.73kb -> 261.06kb (37.8%)
/screenshots/public/screenshots/en/pour-over.png -- 419.73kb -> 261.06kb (37.8%)
/apps/web/screenshots/home_it.png -- 270.09kb -> 174.58kb (35.36%)
/apps/web/screenshots/home_es.png -- 269.77kb -> 174.50kb (35.31%)
/apps/web/screenshots/home_de.png -- 269.79kb -> 174.58kb (35.29%)
/apps/web/screenshots/home_sv.png -- 271.12kb -> 175.63kb (35.22%)
/apps/web/screenshots/home_fr.png -- 270.99kb -> 175.66kb (35.18%)
/resources/logo/icon.iconset/icon_512x512.png -- 327.74kb -> 216.26kb (34.01%)
/resources/logo/icon.iconset/icon_256x256@2x.png -- 327.74kb -> 216.26kb (34.01%)
/apps/web/ios/App/App/Assets.xcassets/AppIcon.appiconset/icon_512x512@2x.png -- 1,238.33kb -> 825.67kb (33.32%)
/resources/logo/icon.iconset/icon_512x512@2x.png -- 1,238.33kb -> 825.67kb (33.32%)
/resources/logo/icon.iconset/icon_256x256.png -- 81.41kb -> 54.68kb (32.83%)
/resources/logo/icon.iconset/icon_128x128@2x.png -- 81.41kb -> 54.68kb (32.83%)
/resources/screenshots/Profile Catalogue.png -- 592.42kb -> 406.73kb (31.34%)
/screenshots/public/screenshots/en/profile-catalogue.png -- 592.42kb -> 406.73kb (31.34%)
/resources/logo/icon.iconset/icon_128x128.png -- 19.87kb -> 15.18kb (23.59%)
/apps/web/screenshots/home_en.png -- 112.91kb -> 98.44kb (12.82%)
/resources/logo/icon.iconset/icon_32x32@2x.png -- 5.71kb -> 5.02kb (12.15%)
/apps/web/public/logo-white.svg -- 36.68kb -> 35.76kb (2.51%)
/apps/web/public/logo.svg -- 36.68kb -> 35.76kb (2.51%)
/resources/logo/icon.iconset/icon_16x16@2x.png -- 2.00kb -> 1.98kb (1.03%)
/resources/logo/icon.iconset/icon_32x32.png -- 2.00kb -> 1.98kb (1.03%)
/screenshots/public/mockup.png -- 93.11kb -> 92.80kb (0.33%)

Signed-off-by: ImgBotApp <ImgBotHelp@gmail.com>

* chore(deps): update frontend and backend dependencies

Frontend:
- lucide-react 1.11.0 → 1.14.0
- react-resizable-panels 4.10.0 → 4.11.0
- i18next-http-backend 3.0.6 → 4.0.0
- react-hook-form 7.74.0 → 7.75.0
- zod 4.3.6 → 4.4.3
- @xmldom/xmldom 0.8.12 → 0.9.10
- Dev dependencies updated (14 packages)

Backend:
- uvicorn 0.44.0 → 0.46.0
- python-multipart 0.0.26 → 0.0.27
- pytest-asyncio >=0.23.8 → >=1.3.0
- pytest-cov >=5.0.0 → >=7.1.0
- paho-mqtt >=2.0.0 → >=2.1.0

Closes #437, #436, #435, #434, #433, #432, #431, #430, #429, #428, #427, #426, #413

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: address TestFlight feedback bugs (#417, #419, #422, #424, #440, #441, #442, #418)

- #440: Toast notifications now respect safe area insets with proper offset
- #441: AI model selection saves immediately (bypasses debounce)
- #442: AI unavailable warning suggests switching models, explains Google outage
- #417: Target overlay uses vectorEffect=non-scaling-stroke, consistent strokeWidth
- #424: Shot analysis layout — stage name nowrap, exit trigger pills nowrap,
        responsive 2/4-col grid for execution data, mt-1 for stage pills
- #422: iPad foreground layout — visibilitychange listener triggers resize
- #419: Strip raw JSON blocks from profile analysis shown to user
- #418: LlmAnalysisModal fallback uses MarkdownText instead of raw text

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* feat: TestFlight improvements — retraction phase, exit reasoning, dual temp (#438, #425, #421)

- #438: Retraction phase data now labeled as 'Retraction' stage in chart
- #425: Explicit exit reason summary (trigger/limit) shown per stage
- #421: Secondary boiler temperature sensor displayed alongside brew temp

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* test: update retryUtils test expectations for updated error message

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore(release): bump version to 2.4.1

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: address PR #444 code review findings

- Fix BrowserAIService reply field to preserve fenced JSON blocks for
  downstream extraction (was breaking profile saving with JSON.stringify)
- i18n all formatGeminiError messages via i18next.t() with keys in all
  6 locales (en, de, es, fr, it, sv)
- Translate exitedBecause, exitedByLimit, brewTemp, boilerTemp into
  all non-English locales

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: address second round of PR #444 review findings

- Fix unused profileJson variable causing CI lint error
- i18n the 'Profile created successfully' fallback string
- Restore {{minutes}} interpolation in preheatStartsBefore (all locales)
- Fix exit trigger pill overflow: use break-words instead of whitespace-nowrap

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* feat: add Gemini 3.1 and 2.5 Flash Lite model options to settings

Add gemini-3.1-flash, gemini-3.1-pro, gemini-3.1-flash-lite,
and gemini-2.5-flash-lite as selectable AI models. i18n keys
added to all 6 locales.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(live-view): 3-column temp/weight row, rename labels to Brew Head & Brew Chamber

- Changed grid from 2-col to 3-col so weight + both temps fit one row
- Boiler temp always shown (was conditional on non-null)
- Labels: 'Brew' → 'Brew Head', 'Boiler' → 'Brew Chamber'
- Updated i18n in all 6 locales

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: address round 2 testing feedback (A-E)

A) Show profile name/image in ControlCenter during brewing
B) Move toast notifications to bottom-center (avoid status bar)
C) Smooth stage background transitions in replay chart
D) Grouped chart legend: Shot/Targets/Stages with dashed line indicators
E) Strip 'Structured Recommendations' text from AI analysis output

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: critical profile creation regression + loading screen + pour over tabs

A) Profile creation broken in Capacitor: DirectModeInterceptor returned
   result.analysis (JSON-stripped) as reply instead of result.reply (with
   JSON intact). App.tsx extractProfileJson() couldn't find profile JSON
   → no profile details/export/run-shot. Also fix machine profile saving
   which extracted from analysis instead of reply.

B) Loading screen not showing segmented progress in Capacitor:
   useGenerationProgress tried SSE to /api/generate/progress which returns
   404 in direct mode. Added CustomEvent-based progress bridge — interceptor
   emits progress events, hook listens for them in direct mode. Also pass
   advanced_customization and detailed_knowledge from FormData.

C) Pour over tab bar (free/ratio/recipe) was sticky, covering weight/timer
   during brewing. Removed sticky positioning.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: toast position override + Gemini 3.1 model IDs

A) App.tsx had <Toaster position='top-center'> overriding the
   bottom-center default in sonner.tsx. Removed position prop so
   the component default applies correctly.

B) Gemini 3.1 Flash and 3.1 Pro model IDs were missing the -preview
   suffix. Updated: gemini-3.1-flash → gemini-3.1-flash-preview,
   gemini-3.1-pro → gemini-3.1-pro-preview.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: keep testflight.md untracked

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: show retraction phase in shot charts + remove deprecated Gemini 2.0

A) Remove deprecated gemini-2.0-flash from model dropdown.

B) Retraction phase now shown in shot analysis charts:
   - Added status[] array to interceptor's parallel data format so
     stage info is preserved for chart rendering
   - Updated getChartData() parallel array branch to read status
   - Added fixed gray color (index 8) for Retraction stage across
     all color arrays — visually distinct as 'not part of the shot'
   - Both getStageRanges() and extractStageRanges() now map
     'retracting' → 'Retraction' with the fixed gray color

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: retraction phase now visible in shot charts

Root cause: during retraction, profile_time freezes (stays at shot-end
value) while wall-clock time continues advancing. The parallel array
conversion used profile_time ?? time, causing all retraction points to
map to the same X coordinate → zero-width stage range.

Fix: use wall-clock time for retracting entries so the retraction phase
spans its actual duration on the chart X axis.

Also added gravimetric_flow to the parallel array format (available in
~82% of data points, was previously only in nested format path).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: move Toaster to top-level to fix position in WKWebView

Toaster was nested inside a scrollable overflow-y-auto div with relative
positioning. In WKWebView (Capacitor), position:fixed elements can
malfunction inside overflow containers. Moved to top-level fragment.
Also added z-index: 9999 to ensure toasts render above all content.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: force toast to bottom with CSS override for WKWebView

- Remove useTheme/offset/swipeDirections from Toaster wrapper
- Destructure and discard incoming position prop to prevent overrides
- Force bottom position regardless of Sonner internal state

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: move shot detection banner to bottom + fix Swedish translations

- ShotDetectionBanner was a custom fixed-position component at top-2,
  NOT a Sonner toast — this is why previous Sonner fixes had no effect
- Moved to bottom with safe-area-inset-bottom respect
- Animation now slides up from bottom instead of down from top
- Fixed Swedish: 'skott' (gunshot) → 'bryggning/espresso' in all
  smartGreeting strings (justBrewed, milestone, longGap)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* refactor: consolidate ShotDetectionBanner into Sonner toast system

- Replace custom ShotDetectionBanner component with toast.info() call
- Uses Sonner's id ('shot-running'), duration: Infinity, and action API
- Auto-dismisses when brewing stops or user navigates to live-shot view
- Delete ShotDetectionBanner.tsx (67 lines removed)
- Clean up Sonner wrapper: remove defensive hacks from position debugging
- Keep CSS override in index.css for WKWebView safety
- Remove test mock for deleted component

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: control center overflow on iPad + layout fix on app resume

- Add ResizeObserver to status row: progressively hides target temp
  then connection label when row overflows (re-shows when space allows)
- Add WKWebView reflow workaround: on visibilitychange→visible, nudge
  root zoom to force CSS grid recomputation (fixes smushed layout on
  iPad Pro after backgrounding)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: remove non-existent gemini-3.1-flash-preview model

The Gemini API has no 'gemini-3.1-flash-preview' model — only
gemini-3.1-pro-preview and gemini-3.1-flash-lite exist for text
generation. Removed the broken option from the dropdown.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Signed-off-by: ImgBotApp <ImgBotHelp@gmail.com>
Co-authored-by: ImgBotApp <ImgBotHelp@gmail.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file Javascript

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants