mirror of
https://github.com/maputnik/editor.git
synced 2026-07-15 02:17:27 +00:00
43bb23801c
Bumps [i18next](https://github.com/i18next/i18next) from 26.3.4 to 26.3.6. <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.3.6</h2> <ul> <li>fix: allow TypeScript 7 in the optional <code>typescript</code> peer dependency range (<code>^5 || ^6 || ^7</code>). With <code>typescript@7.0.2</code> in a project, <code>npm install</code> failed with an <code>ERESOLVE</code> peer conflict. The published types are TS7-compatible as-is: every <code>test/typescript</code> suite produces identical results under 6.0 and 7.0.2. Reported in <a href="https://redirect.github.com/i18next/react-i18next/issues/1927">react-i18next#1927</a>, thanks <a href="https://github.com/andikapradanaarif"><code>@andikapradanaarif</code></a>.</li> </ul> <h2>v26.3.5</h2> <ul> <li>fix: <code>$t()</code> nesting options blocks that span multiple lines are now parsed. <code>nest()</code> decided where the nested key ends by testing <code>match[1]</code> with <code>/{.*}/</code>, whose dot does not cross line breaks — so a <code>$t(key, { ... })</code> options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside <code>$t(...)</code>; adding the <code>s</code> (dotAll) flag makes multiline options behave like the single-line form. Thanks <a href="https://github.com/spokodev"><code>@spokodev</code></a> (<a href="https://redirect.github.com/i18next/i18next/pull/2440">#2440</a>).</li> <li>fix: <code>getUsedParamsDetails</code> (the <code>returnDetails: true</code> path) no longer mutates the passed <code>replace</code> object. It wrote <code>count</code> straight onto <code>options.replace</code> so the returned <code>usedParams</code> would include it — a caller reusing one <code>replace</code> object across <code>t()</code> calls then carried a stale <code>count</code> into later interpolations (e.g. a previous call's <code>count: 5</code> rendered instead of the current call's value). The details are now built from a copy; <code>usedParams</code> still includes <code>count</code>. Thanks <a href="https://github.com/spokodev"><code>@spokodev</code></a> (<a href="https://redirect.github.com/i18next/i18next/pull/2441">#2441</a>).</li> <li>fix: with the default <code>skipOnVariables: true</code> + <code>escapeValue: true</code>, a <code>{{placeholder}}</code> carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex <code>lastIndex</code> by the raw value length, but the escaped text written into the string is longer, so <code>lastIndex</code> landed inside the inserted value and a trailing <code>{{placeholder}}</code> in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe <code>$</code>-doubling is applied only at the <code>String.replace</code> call so it can't distort the length arithmetic. Thanks <a href="https://github.com/spokodev"><code>@spokodev</code></a> (<a href="https://redirect.github.com/i18next/i18next/pull/2442">#2442</a>).</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.3.6</h2> <ul> <li>fix: allow TypeScript 7 in the optional <code>typescript</code> peer dependency range (<code>^5 || ^6 || ^7</code>). With <code>typescript@7.0.2</code> in a project, <code>npm install</code> failed with an <code>ERESOLVE</code> peer conflict. The published types are TS7-compatible as-is: every <code>test/typescript</code> suite produces identical results under 6.0 and 7.0.2. Reported in <a href="https://redirect.github.com/i18next/react-i18next/issues/1927">react-i18next#1927</a>, thanks <a href="https://github.com/andikapradanaarif"><code>@andikapradanaarif</code></a>.</li> </ul> <h2>26.3.5</h2> <ul> <li>fix: <code>$t()</code> nesting options blocks that span multiple lines are now parsed. <code>nest()</code> decided where the nested key ends by testing <code>match[1]</code> with <code>/{.*}/</code>, whose dot does not cross line breaks — so a <code>$t(key, { ... })</code> options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside <code>$t(...)</code>; adding the <code>s</code> (dotAll) flag makes multiline options behave like the single-line form. Thanks <a href="https://github.com/spokodev"><code>@spokodev</code></a> (<a href="https://redirect.github.com/i18next/i18next/pull/2440">#2440</a>).</li> <li>fix: <code>getUsedParamsDetails</code> (the <code>returnDetails: true</code> path) no longer mutates the passed <code>replace</code> object. It wrote <code>count</code> straight onto <code>options.replace</code> so the returned <code>usedParams</code> would include it — a caller reusing one <code>replace</code> object across <code>t()</code> calls then carried a stale <code>count</code> into later interpolations (e.g. a previous call's <code>count: 5</code> rendered instead of the current call's value). The details are now built from a copy; <code>usedParams</code> still includes <code>count</code>. Thanks <a href="https://github.com/spokodev"><code>@spokodev</code></a> (<a href="https://redirect.github.com/i18next/i18next/pull/2441">#2441</a>).</li> <li>fix: with the default <code>skipOnVariables: true</code> + <code>escapeValue: true</code>, a <code>{{placeholder}}</code> carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex <code>lastIndex</code> by the raw value length, but the escaped text written into the string is longer, so <code>lastIndex</code> landed inside the inserted value and a trailing <code>{{placeholder}}</code> in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe <code>$</code>-doubling is applied only at the <code>String.replace</code> call so it can't distort the length arithmetic. Thanks <a href="https://github.com/spokodev"><code>@spokodev</code></a> (<a href="https://redirect.github.com/i18next/i18next/pull/2442">#2442</a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/i18next/i18next/commit/e1c60d4dd28a16f91be7f55b3685ffcf9760619b"><code>e1c60d4</code></a> 26.3.6</li> <li><a href="https://github.com/i18next/i18next/commit/04da43e08cb799f2e6f9a5578f3674fe2ef49595"><code>04da43e</code></a> fix: allow typescript 7 in optional peerDependencies range (react-i18next#1927)</li> <li><a href="https://github.com/i18next/i18next/commit/8eed4accc6c69398e9e25f79b617249fd3f7b1ec"><code>8eed4ac</code></a> build</li> <li><a href="https://github.com/i18next/i18next/commit/573ae735682a082ad5a581dea3f2d5f517c53772"><code>573ae73</code></a> 26.3.5</li> <li><a href="https://github.com/i18next/i18next/commit/cc54b05b5cab9bf76cf66557c222c978bbb3c082"><code>cc54b05</code></a> docs(changelog): 26.3.5 — multiline $t() options, replace mutation, escaped-l...</li> <li><a href="https://github.com/i18next/i18next/commit/3180d67291a8fff10950f79660420c106c047f94"><code>3180d67</code></a> fix: skip interpolation of placeholders inside escaped values (<a href="https://redirect.github.com/i18next/i18next/issues/2442">#2442</a>)</li> <li><a href="https://github.com/i18next/i18next/commit/d16f5a2da748082155007ba0677d32b877b1102e"><code>d16f5a2</code></a> fix: stop mutating the passed replace object when returning details (<a href="https://redirect.github.com/i18next/i18next/issues/2441">#2441</a>)</li> <li><a href="https://github.com/i18next/i18next/commit/bed56c115979de52bd85c46d9b7a7b13361bf736"><code>bed56c1</code></a> fix: parse $t() nesting options block that spans multiple lines (<a href="https://redirect.github.com/i18next/i18next/issues/2440">#2440</a>)</li> <li><a href="https://github.com/i18next/i18next/commit/c19e45864f3abbbe90e30be44cc131f2248394bf"><code>c19e458</code></a> docs(changelog): link GHSA advisory for deepExtend fix</li> <li><a href="https://github.com/i18next/i18next/commit/7bb87d09f907b4395ed0825638d7d2c4356f7a89"><code>7bb87d0</code></a> docs(changelog): reference security advisory for deepExtend fix</li> <li>Additional commits viewable in <a href="https://github.com/i18next/i18next/compare/v26.3.4...v26.3.6">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
151 lines
4.7 KiB
JSON
151 lines
4.7 KiB
JSON
{
|
|
"name": "maputnik",
|
|
"version": "3.1.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": "playwright test",
|
|
"test-e2e": "playwright test",
|
|
"test-unit": "vitest",
|
|
"test-unit-ci": "vitest run --coverage --reporter=json",
|
|
"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.7",
|
|
"@codemirror/state": "^6.7.1",
|
|
"@codemirror/theme-one-dark": "^6.1.3",
|
|
"@codemirror/view": "^6.43.6",
|
|
"@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": "^25.0.2",
|
|
"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.4.0",
|
|
"events": "^3.3.0",
|
|
"file-saver": "^2.0.5",
|
|
"i18next": "^26.3.6",
|
|
"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.24.0",
|
|
"maputnik-design": "github:maputnik/design#172b06c",
|
|
"ol": "^10.9.0",
|
|
"ol-mapbox-style": "^13.4.1",
|
|
"pmtiles": "^4.4.1",
|
|
"prop-types": "^15.8.1",
|
|
"react": "^19.2.7",
|
|
"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.7",
|
|
"react-i18next": "^17.0.8",
|
|
"react-icons": "^5.7.0",
|
|
"react-markdown": "^10.1.0",
|
|
"reconnecting-websocket": "^4.4.0",
|
|
"slugify": "^1.6.9",
|
|
"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": {
|
|
"@eslint/js": "^10.0.1",
|
|
"@istanbuljs/nyc-config-typescript": "^1.0.2",
|
|
"@playwright/test": "^1.61.1",
|
|
"@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.17",
|
|
"@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.2",
|
|
"@vitest/coverage-v8": "^4.1.10",
|
|
"cors": "^2.8.6",
|
|
"eslint": "^10.6.0",
|
|
"eslint-plugin-react": "^7.37.5",
|
|
"eslint-plugin-react-hooks": "^7.1.1",
|
|
"eslint-plugin-react-refresh": "^0.5.3",
|
|
"i18next-cli": "^1.65.0",
|
|
"istanbul": "^0.4.5",
|
|
"istanbul-lib-coverage": "^3.2.2",
|
|
"nyc": "^18.0.0",
|
|
"postcss": "^8.5.16",
|
|
"react-hot-loader": "^4.13.1",
|
|
"sass": "^1.101.0",
|
|
"stylelint": "^17.14.0",
|
|
"stylelint-config-recommended-scss": "^17.0.1",
|
|
"stylelint-scss": "^7.2.0",
|
|
"typescript": "^6.0.3",
|
|
"typescript-eslint": "^8.62.1",
|
|
"uuid": "^14.0.1",
|
|
"vite": "^7.3.2",
|
|
"vite-plugin-istanbul": "^9.0.1",
|
|
"vitest": "^4.1.10"
|
|
}
|
|
}
|