Files
editor/package.json
dependabot[bot] a23208d60d chore(deps): Bump i18next from 25.10.10 to 26.0.1 (#1776)
Bumps [i18next](https://github.com/i18next/i18next) from 25.10.10 to
26.0.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/i18next/i18next/releases">i18next's
releases</a>.</em></p>
<blockquote>
<h2>v26.0.1</h2>
<ul>
<li>fix: Formatter no longer crashes when <code>alwaysFormat</code> is
<code>true</code> and no format specifier is present
(<code>format</code> is <code>undefined</code>)</li>
<li>fix: Formatter now returns <code>undefined</code>/<code>null</code>
values as-is instead of producing <code>NaN</code> when the value is
missing</li>
</ul>
<h2>v26.0.0</h2>
<p><strong>This is a major breaking release:</strong></p>
<h3>Breaking Changes</h3>
<ul>
<li><strong>Remove deprecated <code>initImmediate</code> option</strong>
— the backward-compatibility mapping from <code>initImmediate</code> to
<code>initAsync</code> (introduced in v24) has been removed. Use
<code>initAsync</code> instead.</li>
<li><strong>Remove legacy <code>interpolation.format</code>
function</strong> — the old monolithic format function
(<code>interpolation: { format: (value, format, lng) =&gt; ... }</code>)
is no longer supported. The built-in Formatter (or a custom Formatter
module via <code>.use()</code>) is now always used. Migrate to the <a
href="https://www.i18next.com/translation-function/formatting">new
formatting approach</a> using
<code>i18next.services.formatter.add()</code> or
<code>.addCached()</code> for custom formatters.</li>
<li><strong>Remove console support notice</strong> — the console support
notice introduced in v25.8.0 has been removed, along with the
<code>showSupportNotice</code> option and all related internal
suppression logic (<code>globalThis.__i18next_supportNoticeShown</code>,
<code>I18NEXT_NO_SUPPORT_NOTICE</code> env var). See our blog post for
the <a href="https://www.locize.com/blog/i18next-support-notice">full
story</a>.</li>
<li><strong>Remove <code>simplifyPluralSuffix</code> option</strong> —
this option was unused by the core PluralResolver (which relies entirely
on <code>Intl.PluralRules</code>). It only had an effect in the old
v1/v2/v3 compatibility layer. The v4 test compatibility layer now
defaults to <code>true</code> internally.</li>
<li><strong>Remove deprecated <code>@babel/polyfill</code></strong> from
devDependencies.</li>
</ul>
<h3>Improvements</h3>
<ul>
<li><strong>Code modernization</strong> across all source files:
<ul>
<li>Replace <code>indexOf() &gt; -1</code> / <code>indexOf() &lt;
0</code> with <code>.includes()</code> (~40+ occurrences)</li>
<li>Replace <code>indexOf() === 0</code> with <code>.startsWith()</code>
where appropriate</li>
<li>Replace <code>var</code> with <code>const</code>, <code>'' +
object</code> with <code>String(object)</code>,
<code>.substring()</code> with <code>.slice()</code></li>
<li>Replace <code>.apply(observer, [event, ...args])</code> with direct
call <code>observer(event, ...args)</code></li>
<li>Remove unnecessary <code>.call(this, ...)</code> in BackendConnector
retry logic</li>
<li>Fix <code>array-callback-return</code> in LanguageUtils
<code>getBestMatchFromCodes</code></li>
<li>Clean up all stale <code>eslint-disable</code> comments from source
files</li>
</ul>
</li>
<li><strong>EventEmitter</strong>: add <code>once()</code> method for
one-time event subscriptions</li>
<li><strong>Memory leak fix</strong>: move module-level
<code>checkedLoadedFor</code> cache to Translator instance, preventing
cross-instance state leakage</li>
<li><strong>TypeScript</strong>: fix <code>BackendModule</code> generic
parameter naming inconsistency between CJS and ESM type definitions</li>
<li><strong>TypeScript</strong>: add <code>once()</code> method to
<code>i18n</code> and <code>ResourceStore</code> type interfaces</li>
<li><strong>ESLint 9</strong>: migrate from ESLint 8 (airbnb-base) to
ESLint 9 flat config with <a
href="https://github.com/neostandard/neostandard">neostandard</a></li>
<li><strong>Vitest 4</strong>: upgrade from vitest 3 to vitest 4,
migrate workspace files to <code>test.projects</code> config</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/i18next/i18next/blob/master/CHANGELOG.md">i18next's
changelog</a>.</em></p>
<blockquote>
<h2>26.0.1</h2>
<ul>
<li>fix: Formatter no longer crashes when <code>alwaysFormat</code> is
<code>true</code> and no format specifier is present
(<code>format</code> is <code>undefined</code>)</li>
<li>fix: Formatter now returns <code>undefined</code>/<code>null</code>
values as-is instead of producing <code>NaN</code> when the value is
missing</li>
</ul>
<h2>26.0.0</h2>
<p><strong>This is a major breaking release:</strong></p>
<h3>Breaking Changes</h3>
<ul>
<li><strong>Remove deprecated <code>initImmediate</code> option</strong>
— the backward-compatibility mapping from <code>initImmediate</code> to
<code>initAsync</code> (introduced in v24) has been removed. Use
<code>initAsync</code> instead.</li>
<li><strong>Remove legacy <code>interpolation.format</code>
function</strong> — the old monolithic format function
(<code>interpolation: { format: (value, format, lng) =&gt; ... }</code>)
is no longer supported. The built-in Formatter (or a custom Formatter
module via <code>.use()</code>) is now always used. Migrate to the <a
href="https://www.i18next.com/translation-function/formatting">new
formatting approach</a> using
<code>i18next.services.formatter.add()</code> or
<code>.addCached()</code> for custom formatters.</li>
<li><strong>Remove console support notice</strong> — the console support
notice introduced in v25.8.0 has been removed, along with the
<code>showSupportNotice</code> option and all related internal
suppression logic (<code>globalThis.__i18next_supportNoticeShown</code>,
<code>I18NEXT_NO_SUPPORT_NOTICE</code> env var). See our blog post for
the <a href="https://www.locize.com/blog/i18next-support-notice">full
story</a>.</li>
<li><strong>Remove <code>simplifyPluralSuffix</code> option</strong> —
this option was unused by the core PluralResolver (which relies entirely
on <code>Intl.PluralRules</code>). It only had an effect in the old
v1/v2/v3 compatibility layer. The v4 test compatibility layer now
defaults to <code>true</code> internally.</li>
<li><strong>Remove deprecated <code>@babel/polyfill</code></strong> from
devDependencies.</li>
</ul>
<h3>Improvements</h3>
<ul>
<li><strong>Code modernization</strong> across all source files:
<ul>
<li>Replace <code>indexOf() &gt; -1</code> / <code>indexOf() &lt;
0</code> with <code>.includes()</code> (~40+ occurrences)</li>
<li>Replace <code>indexOf() === 0</code> with <code>.startsWith()</code>
where appropriate</li>
<li>Replace <code>var</code> with <code>const</code>, <code>'' +
object</code> with <code>String(object)</code>,
<code>.substring()</code> with <code>.slice()</code></li>
<li>Replace <code>.apply(observer, [event, ...args])</code> with direct
call <code>observer(event, ...args)</code></li>
<li>Remove unnecessary <code>.call(this, ...)</code> in BackendConnector
retry logic</li>
<li>Fix <code>array-callback-return</code> in LanguageUtils
<code>getBestMatchFromCodes</code></li>
<li>Clean up all stale <code>eslint-disable</code> comments from source
files</li>
</ul>
</li>
<li><strong>EventEmitter</strong>: add <code>once()</code> method for
one-time event subscriptions</li>
<li><strong>Memory leak fix</strong>: move module-level
<code>checkedLoadedFor</code> cache to Translator instance, preventing
cross-instance state leakage</li>
<li><strong>TypeScript</strong>: fix <code>BackendModule</code> generic
parameter naming inconsistency between CJS and ESM type definitions</li>
<li><strong>TypeScript</strong>: add <code>once()</code> method to
<code>i18n</code> and <code>ResourceStore</code> type interfaces</li>
<li><strong>ESLint 9</strong>: migrate from ESLint 8 (airbnb-base) to
ESLint 9 flat config with <a
href="https://github.com/neostandard/neostandard">neostandard</a></li>
<li><strong>Vitest 4</strong>: upgrade from vitest 3 to vitest 4,
migrate workspace files to <code>test.projects</code> config</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="18b3dbb473"><code>18b3dbb</code></a>
26.0.1</li>
<li><a
href="c829f91a2a"><code>c829f91</code></a>
fix: Formater crashes etc.</li>
<li><a
href="1593d1125e"><code>1593d11</code></a>
remove node v18 from github actions</li>
<li><a
href="d85c23da86"><code>d85c23d</code></a>
26.0.0</li>
<li><a
href="fad19d59cf"><code>fad19d5</code></a>
feat!: v26.0.0 — major version with breaking changes</li>
<li><a
href="780aa9170f"><code>780aa91</code></a>
jsr update</li>
<li>See full diff in <a
href="https://github.com/i18next/i18next/compare/v25.10.10...v26.0.1">compare
view</a></li>
</ul>
</details>
<br />

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-02 14:00:40 +00:00

154 lines
4.9 KiB
JSON

{
"name": "maputnik",
"version": "3.0.0",
"description": "A MapLibre GL visual style editor",
"type": "module",
"main": "''",
"scripts": {
"start": "vite",
"build": "tsc && vite build --mode=production",
"build-desktop": "tsc && vite build --mode=desktop && cd desktop && make",
"build-linux": "tsc && vite build --mode=desktop && cd desktop && make bin/linux/maputnik",
"i18n:extract": "npx i18next-cli extract",
"lint": "eslint",
"test": "cypress run",
"test-unit": "vitest",
"test-unit-ci": "vitest run --coverage --reporter=json",
"cy:open": "cypress open",
"lint-css": "stylelint \"src/styles/*.scss\"",
"sort-styles": "jq 'sort_by(.id)' src/config/styles.json > tmp.json && mv tmp.json src/config/styles.json"
},
"repository": {
"type": "git",
"url": "https://github.com/maplibre/maputnik"
},
"author": "Lukas Martinelli",
"license": "MIT",
"homepage": "https://github.com/maplibre/maputnik#readme",
"dependencies": {
"@codemirror/lang-json": "^6.0.2",
"@codemirror/lint": "^6.9.5",
"@codemirror/state": "^6.6.0",
"@codemirror/theme-one-dark": "^6.1.3",
"@codemirror/view": "^6.40.0",
"@dnd-kit/core": "^6.3.1",
"@dnd-kit/sortable": "^10.0.0",
"@dnd-kit/utilities": "^3.2.2",
"@mapbox/mapbox-gl-rtl-text": "^0.4.0",
"@maplibre/maplibre-gl-geocoder": "^1.9.4",
"@maplibre/maplibre-gl-inspect": "^1.8.2",
"@maplibre/maplibre-gl-style-spec": "^24.7.0",
"array-move": "^4.0.0",
"buffer": "^6.0.3",
"classnames": "^2.5.1",
"codemirror": "^6.0.2",
"color": "^5.0.3",
"detect-browser": "^5.3.0",
"downshift": "^9.3.2",
"events": "^3.3.0",
"file-saver": "^2.0.5",
"i18next": "^26.0.1",
"i18next-browser-languagedetector": "^8.2.1",
"i18next-resources-to-backend": "^1.2.1",
"json-stringify-pretty-compact": "^4.0.0",
"json-to-ast": "^2.1.0",
"lodash": "^4.18.1",
"lodash.capitalize": "^4.2.1",
"lodash.clamp": "^4.0.3",
"lodash.clonedeep": "^4.5.0",
"lodash.get": "^4.4.2",
"lodash.isequal": "^4.5.0",
"lodash.throttle": "^4.1.1",
"maplibre-gl": "^5.21.1",
"maputnik-design": "github:maputnik/design#172b06c",
"ol": "^10.8.0",
"ol-mapbox-style": "^13.4.0",
"pmtiles": "^4.4.0",
"prop-types": "^15.8.1",
"react": "^19.2.4",
"react-accessible-accordion": "^5.0.1",
"react-aria-menubutton": "^8.0.0",
"react-aria-modal": "^5.0.2",
"react-collapse": "^5.1.1",
"react-color": "^2.19.3",
"react-dom": "^19.2.4",
"react-i18next": "^17.0.1",
"react-icons": "^5.6.0",
"react-markdown": "^10.1.0",
"reconnecting-websocket": "^4.4.0",
"slugify": "^1.6.8",
"string-hash": "^1.1.3",
"url": "^0.11.4"
},
"jshintConfig": {
"esversion": 6
},
"stylelint": {
"extends": "stylelint-config-recommended-scss",
"rules": {
"no-descending-specificity": null,
"media-feature-name-no-unknown": [
true,
{
"ignoreMediaFeatureNames": [
"prefers-reduced-motion"
]
}
]
}
},
"devDependencies": {
"@cypress/code-coverage": "^4.0.3",
"@eslint/js": "^10.0.1",
"@istanbuljs/nyc-config-typescript": "^1.0.2",
"@rollup/plugin-replace": "^6.0.3",
"@shellygo/cypress-test-utils": "^6.0.6",
"@stylistic/eslint-plugin": "^5.10.0",
"@types/codemirror": "^5.60.17",
"@types/color": "^4.2.1",
"@types/cors": "^2.8.19",
"@types/file-saver": "^2.0.7",
"@types/geojson": "^7946.0.16",
"@types/json-to-ast": "^2.1.4",
"@types/lodash.capitalize": "^4.2.9",
"@types/lodash.clamp": "^4.0.9",
"@types/lodash.clonedeep": "^4.5.9",
"@types/lodash.get": "^4.4.9",
"@types/lodash.isequal": "^4.5.8",
"@types/lodash.throttle": "^4.1.9",
"@types/randomcolor": "^0.5.9",
"@types/react": "^19.2.14",
"@types/react-aria-menubutton": "^6.2.14",
"@types/react-aria-modal": "^5.0.0",
"@types/react-collapse": "^5.0.4",
"@types/react-color": "^3.0.13",
"@types/react-dom": "^19.2.3",
"@types/string-hash": "^1.1.3",
"@types/wicg-file-system-access": "^2023.10.7",
"@vitejs/plugin-react": "^5.1.4",
"@vitest/coverage-v8": "^4.1.2",
"cors": "^2.8.6",
"cypress": "^15.13.0",
"cypress-plugin-tab": "^2.0.0",
"eslint": "^10.1.0",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-hooks": "^7.0.1",
"eslint-plugin-react-refresh": "^0.5.2",
"i18next-cli": "^1.51.5",
"istanbul": "^0.4.5",
"istanbul-lib-coverage": "^3.2.2",
"postcss": "^8.5.8",
"react-hot-loader": "^4.13.1",
"sass": "^1.98.0",
"stylelint": "^17.6.0",
"stylelint-config-recommended-scss": "^17.0.0",
"stylelint-scss": "^7.0.0",
"typescript": "^5.9.3",
"typescript-eslint": "^8.57.2",
"uuid": "^13.0.0",
"vite": "^7.3.1",
"vite-plugin-istanbul": "^8.0.0",
"vitest": "^4.1.2"
}
}