diff --git a/.github/workflows/ci-testing.yml b/.github/workflows/ci-testing.yml index e288d39..b3d8c35 100644 --- a/.github/workflows/ci-testing.yml +++ b/.github/workflows/ci-testing.yml @@ -12,13 +12,19 @@ jobs: - name: Use Node.js uses: actions/setup-node@v4 with: - node-version: latest - - name: Install XVFB - run: sudo apt-get install -y xvfb - - name: Install Dependencies - run: npm install - - name: Install Playwright - run: npx playwright install + node-version: 22 + cache: npm + - run: npm ci --ignore-scripts + - name: Cache Playwright browsers + id: playwright-cache + uses: actions/cache@v4 + with: + path: ~/.cache/ms-playwright + key: playwright-${{ runner.os }}-${{ hashFiles('package-lock.json') }} + - run: npx playwright install --with-deps + if: steps.playwright-cache.outputs.cache-hit != 'true' + - run: npx playwright install-deps + if: steps.playwright-cache.outputs.cache-hit == 'true' - name: Run Tests with XVFB run: xvfb-run --auto-servernum -- npm test env: diff --git a/package-lock.json b/package-lock.json index 157c7f2..9b6e831 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,23 +9,24 @@ "version": "1.0.0", "license": "W3C", "devDependencies": { - "@playwright/test": "^1.39.0", - "playwright": "^1.39.0" + "@playwright/test": "^1.60.0", + "playwright": "^1.60.0" } }, "node_modules/@playwright/test": { - "version": "1.42.1", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.42.1.tgz", - "integrity": "sha512-Gq9rmS54mjBL/7/MvBaNOBwbfnh7beHvS6oS4srqXFcQHpQCV1+c8JXWE8VLPyRDhgS3H8x8A7hztqI9VnwrAQ==", + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.60.0.tgz", + "integrity": "sha512-O71yZIbAh/PxDMNGns37GHBIfrVkEVyn+AXyIa5dOTfb4/xNvRWV+Vv/NMbNCtODB/pO7vLlF2OTmMVLhmr7Ag==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "playwright": "1.42.1" + "playwright": "1.60.0" }, "bin": { "playwright": "cli.js" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/fsevents": { @@ -34,6 +35,7 @@ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -43,44 +45,46 @@ } }, "node_modules/playwright": { - "version": "1.42.1", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.42.1.tgz", - "integrity": "sha512-PgwB03s2DZBcNRoW+1w9E+VkLBxweib6KTXM0M3tkiT4jVxKSi6PmVJ591J+0u10LUrgxB7dLRbiJqO5s2QPMg==", + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.60.0.tgz", + "integrity": "sha512-hheHdokM8cdqCb0lcE3s+zT4t4W+vvjpGxsZlDnikarzx8tSzMebh3UiFtgqwFwnTnjYQcsyMF8ei2mCO/tpeA==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.42.1" + "playwright-core": "1.60.0" }, "bin": { "playwright": "cli.js" }, "engines": { - "node": ">=16" + "node": ">=18" }, "optionalDependencies": { "fsevents": "2.3.2" } }, "node_modules/playwright-core": { - "version": "1.42.1", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.42.1.tgz", - "integrity": "sha512-mxz6zclokgrke9p1vtdy/COWBH+eOZgYUVVU34C73M+4j4HLlQJHtfcqiqqxpP0o8HhMkflvfbquLX5dg6wlfA==", + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", + "integrity": "sha512-9bW6zvX/m0lEbgTKJ6YppOKx8H3VOPBMOCFh2irXFOT4BbHgrx5hPjwJYLT40Lu+4qtD36qKc/Hn56StUW57IA==", "dev": true, + "license": "Apache-2.0", "bin": { "playwright-core": "cli.js" }, "engines": { - "node": ">=16" + "node": ">=18" } } }, "dependencies": { "@playwright/test": { - "version": "1.42.1", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.42.1.tgz", - "integrity": "sha512-Gq9rmS54mjBL/7/MvBaNOBwbfnh7beHvS6oS4srqXFcQHpQCV1+c8JXWE8VLPyRDhgS3H8x8A7hztqI9VnwrAQ==", + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.60.0.tgz", + "integrity": "sha512-O71yZIbAh/PxDMNGns37GHBIfrVkEVyn+AXyIa5dOTfb4/xNvRWV+Vv/NMbNCtODB/pO7vLlF2OTmMVLhmr7Ag==", "dev": true, "requires": { - "playwright": "1.42.1" + "playwright": "1.60.0" } }, "fsevents": { @@ -91,19 +95,19 @@ "optional": true }, "playwright": { - "version": "1.42.1", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.42.1.tgz", - "integrity": "sha512-PgwB03s2DZBcNRoW+1w9E+VkLBxweib6KTXM0M3tkiT4jVxKSi6PmVJ591J+0u10LUrgxB7dLRbiJqO5s2QPMg==", + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.60.0.tgz", + "integrity": "sha512-hheHdokM8cdqCb0lcE3s+zT4t4W+vvjpGxsZlDnikarzx8tSzMebh3UiFtgqwFwnTnjYQcsyMF8ei2mCO/tpeA==", "dev": true, "requires": { "fsevents": "2.3.2", - "playwright-core": "1.42.1" + "playwright-core": "1.60.0" } }, "playwright-core": { - "version": "1.42.1", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.42.1.tgz", - "integrity": "sha512-mxz6zclokgrke9p1vtdy/COWBH+eOZgYUVVU34C73M+4j4HLlQJHtfcqiqqxpP0o8HhMkflvfbquLX5dg6wlfA==", + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", + "integrity": "sha512-9bW6zvX/m0lEbgTKJ6YppOKx8H3VOPBMOCFh2irXFOT4BbHgrx5hPjwJYLT40Lu+4qtD36qKc/Hn56StUW57IA==", "dev": true } } diff --git a/package.json b/package.json index fc27be7..0ede348 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ }, "license": "W3C", "devDependencies": { - "@playwright/test": "^1.39.0", - "playwright": "^1.39.0" + "@playwright/test": "^1.60.0", + "playwright": "^1.60.0" } } diff --git a/src/_locales/en/messages.json b/src/_locales/en/messages.json index d8c5bff..4265361 100644 --- a/src/_locales/en/messages.json +++ b/src/_locales/en/messages.json @@ -76,6 +76,18 @@ "btnZoomOut": { "message": "Zoom out" }, + "btnSearch": { + "message": "Search" + }, + "btnSearchClose": { + "message": "Close search" + }, + "searchPlaceholder": { + "message": "Search…" + }, + "searchResultWithNoName": { + "message": "Unnamed" + }, "btnAttribution": { "message": "Map data attribution" }, diff --git a/src/_locales/fr/messages.json b/src/_locales/fr/messages.json index cdc266e..e1d96d6 100644 --- a/src/_locales/fr/messages.json +++ b/src/_locales/fr/messages.json @@ -77,6 +77,18 @@ "btnZoomOut": { "message": "Dézoomer" }, + "btnSearch": { + "message": "Rechercher" + }, + "btnSearchClose": { + "message": "Fermer la recherche" + }, + "searchPlaceholder": { + "message": "Rechercher\u2026" + }, + "searchResultWithNoName": { + "message": "Sans nom" + }, "btnAttribution": { "message": "Attribution des données cartographiques" }, diff --git a/src/_locales/sv/messages.json b/src/_locales/sv/messages.json index 6ec563e..253a173 100644 --- a/src/_locales/sv/messages.json +++ b/src/_locales/sv/messages.json @@ -76,6 +76,18 @@ "btnZoomOut": { "message": "Zooma ut" }, + "btnSearch": { + "message": "Sök" + }, + "btnSearchClose": { + "message": "Stäng sökning" + }, + "searchPlaceholder": { + "message": "Sök\u2026" + }, + "searchResultWithNoName": { + "message": "Namnlös" + }, "btnAttribution": { "message": "Tilldelning av kartdata" }, diff --git a/src/_locales/uk/messages.json b/src/_locales/uk/messages.json index 818e375..943c9bb 100644 --- a/src/_locales/uk/messages.json +++ b/src/_locales/uk/messages.json @@ -78,6 +78,18 @@ "btnZoomOut": { "message": "Зменшити" }, + "btnSearch": { + "message": "Пошук" + }, + "btnSearchClose": { + "message": "Закрити пошук" + }, + "searchPlaceholder": { + "message": "Пошук\u2026" + }, + "searchResultWithNoName": { + "message": "Без назви" + }, "btnAttribution": { "message": "Авторські права" }, diff --git a/src/background.js b/src/background.js index a7f1515..4daa9bb 100644 --- a/src/background.js +++ b/src/background.js @@ -130,6 +130,7 @@ function createMap() { let focus = !hash; map.setAttribute("projection", projection); map.setAttribute("controls", ""); + map.setAttribute("controlslist", "search"); map.setAttribute("lat", lat); map.setAttribute("lon", lon); map.setAttribute("zoom", zoom);