map-gl-offline 0.8.8 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +62 -191
- package/dist/idb-offline-sw.js +78 -11
- package/dist/index.d.ts +3 -3
- package/dist/index.esm.js +2065 -809
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +2072 -807
- package/dist/index.js.map +1 -1
- package/dist/index.umd.js +9502 -711
- package/dist/index.umd.js.map +1 -1
- package/dist/main.d.ts +3 -0
- package/dist/managers/offlineMapManager/analyticsManagement.d.ts +1 -1
- package/dist/managers/offlineMapManager/base.d.ts +5 -5
- package/dist/managers/offlineMapManager/cleanupManagement.d.ts +6 -1
- package/dist/managers/offlineMapManager/importExportManagement.d.ts +1 -1
- package/dist/managers/offlineMapManager/maintenanceManagement.d.ts +1 -1
- package/dist/managers/offlineMapManager/regionManagement.d.ts +2 -2
- package/dist/managers/offlineMapManager/resourceManagement.d.ts +1 -1
- package/dist/managers/offlineMapManager/styleManagement.d.ts +1 -1
- package/dist/services/analyticsService.d.ts +1 -1
- package/dist/services/cleanupService.d.ts +15 -1
- package/dist/services/fontService.d.ts +1 -1
- package/dist/services/glyphService.d.ts +1 -1
- package/dist/services/importExportService.d.ts +1 -1
- package/dist/services/maintenanceService.d.ts +2 -2
- package/dist/services/modelService.d.ts +3 -1
- package/dist/services/regionService.d.ts +21 -11
- package/dist/services/resourceService.d.ts +2 -2
- package/dist/services/runtimeAssetService.d.ts +12 -0
- package/dist/services/spriteService.d.ts +1 -1
- package/dist/services/styleService.d.ts +14 -1
- package/dist/services/tileService.d.ts +1 -1
- package/dist/sheet/collar.d.ts +34 -0
- package/dist/storage/indexedDbManager.d.ts +1 -1
- package/dist/style.css +2 -2
- package/dist/sw/shared.d.ts +31 -3
- package/dist/types/font.d.ts +5 -1
- package/dist/types/import-export.d.ts +5 -0
- package/dist/types/maintenance.d.ts +3 -1
- package/dist/types/region.d.ts +29 -2
- package/dist/types/style.d.ts +4 -0
- package/dist/types/tile.d.ts +31 -10
- package/dist/ui/components/PanelActions.d.ts +1 -1
- package/dist/ui/components/PanelHeader.d.ts +1 -1
- package/dist/ui/components/RegionList.d.ts +1 -1
- package/dist/ui/components/shared/Button.d.ts +6 -0
- package/dist/ui/components/shared/LanguageSelector.d.ts +1 -1
- package/dist/ui/components/shared/MapControlButton.d.ts +1 -1
- package/dist/ui/components/shared/PanelContent.d.ts +3 -3
- package/dist/ui/components/shared/RegionDrawingTool.d.ts +2 -2
- package/dist/ui/controls/polygonControl.d.ts +7 -1
- package/dist/ui/controls/regionControl.d.ts +3 -3
- package/dist/ui/managers/ControlButtonManager.d.ts +1 -1
- package/dist/ui/managers/PanelManager.d.ts +16 -3
- package/dist/ui/managers/downloadManager.d.ts +7 -3
- package/dist/ui/modals/mbtilesModal.d.ts +1 -1
- package/dist/ui/modals/regionDetailsModal.d.ts +1 -1
- package/dist/ui/modals/regionFormModal.d.ts +11 -1
- package/dist/ui/offlineManagerControl.d.ts +4 -1
- package/dist/ui/translations/ar.d.ts +15 -1
- package/dist/ui/translations/en.d.ts +15 -1
- package/dist/ui/translations/index.d.ts +2 -0
- package/dist/utils/constants.d.ts +10 -3
- package/dist/utils/convertStyleForSW.d.ts +1 -1
- package/dist/utils/download.d.ts +1 -1
- package/dist/utils/formatting.d.ts +11 -0
- package/dist/utils/importResolver.d.ts +1 -1
- package/dist/utils/sqlJsLoader.d.ts +1 -2
- package/dist/utils/styleConfig.d.ts +39 -0
- package/dist/utils/styleProviderUtils.d.ts +21 -8
- package/dist/utils/styleUtils.d.ts +61 -10
- package/dist/utils/tileRange.d.ts +63 -0
- package/dist/utils/validation.d.ts +1 -1
- package/package.json +45 -40
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
export interface TileRange {
|
|
2
|
+
minX: number;
|
|
3
|
+
maxX: number;
|
|
4
|
+
minY: number;
|
|
5
|
+
maxY: number;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* XYZ tile range covering `bounds` at zoom `z`. Shared by the download
|
|
9
|
+
* pipeline (which fetches exactly this range) and region-scoped consumers
|
|
10
|
+
* like MBTiles export, so both agree on which tiles belong to a region.
|
|
11
|
+
*/
|
|
12
|
+
export declare function getTileRangeAtZoom(bounds: [[number, number], [number, number]], z: number): TileRange;
|
|
13
|
+
/**
|
|
14
|
+
* Whether tile `z/x/y` falls inside `bounds` and `[minZoom, maxZoom]`.
|
|
15
|
+
*/
|
|
16
|
+
export declare function isTileInRegion(z: number, x: number, y: number, region: {
|
|
17
|
+
bounds: [[number, number], [number, number]];
|
|
18
|
+
minZoom: number;
|
|
19
|
+
maxZoom: number;
|
|
20
|
+
}): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Zoom levels to download for one source in `region`: the overlap of the
|
|
23
|
+
* region's and the source's zoom ranges. When they don't overlap, the source
|
|
24
|
+
* still gets the zooms the map needs from it:
|
|
25
|
+
* - source ends below the region (`maxzoom` < region min) → its `maxzoom`,
|
|
26
|
+
* which the renderer overzooms for the region's zooms;
|
|
27
|
+
* - source starts above the region (`minzoom` > region max) → `minzoom`
|
|
28
|
+
* through `maxzoom` (or just `minzoom` if unbounded).
|
|
29
|
+
*/
|
|
30
|
+
export declare function sourceZoomRange(region: {
|
|
31
|
+
minZoom: number;
|
|
32
|
+
maxZoom: number;
|
|
33
|
+
}, sourceMinZoom?: number, sourceMaxZoom?: number): {
|
|
34
|
+
min: number;
|
|
35
|
+
max: number;
|
|
36
|
+
};
|
|
37
|
+
/** Zoom fields of a stored style source (possibly patched by patchStyleForOffline). */
|
|
38
|
+
export interface SourceZoomConfig {
|
|
39
|
+
minzoom?: number;
|
|
40
|
+
maxzoom?: number;
|
|
41
|
+
__originalMaxzoom?: number | null;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* A stored source's upstream `maxzoom`. Patched styles cap `maxzoom` for
|
|
45
|
+
* rendering and stash the upstream value under `__originalMaxzoom`.
|
|
46
|
+
*/
|
|
47
|
+
export declare function upstreamMaxzoom(source: SourceZoomConfig | undefined): number | undefined;
|
|
48
|
+
/**
|
|
49
|
+
* Whether a stored tile was downloaded for `region`: inside its bounds, at a
|
|
50
|
+
* zoom the download pipeline fetches for the tile's source (which can fall
|
|
51
|
+
* outside the region's own range — see `sourceZoomRange`). `sources` is the
|
|
52
|
+
* stored style's `sources`. Regions with malformed bounds match nothing.
|
|
53
|
+
*/
|
|
54
|
+
export declare function tileBelongsToRegion(tile: {
|
|
55
|
+
sourceId?: string;
|
|
56
|
+
z: number;
|
|
57
|
+
x: number;
|
|
58
|
+
y: number;
|
|
59
|
+
}, region: {
|
|
60
|
+
bounds: [[number, number], [number, number]];
|
|
61
|
+
minZoom: number;
|
|
62
|
+
maxZoom: number;
|
|
63
|
+
}, sources: Record<string, SourceZoomConfig | undefined>): boolean;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Validation utilities for common patterns
|
|
3
3
|
* Provides reusable validation functions to ensure data integrity
|
|
4
4
|
*/
|
|
5
|
-
import type { OfflineRegionOptions } from '../types';
|
|
5
|
+
import type { OfflineRegionOptions } from '../types/index.js';
|
|
6
6
|
/**
|
|
7
7
|
* Validate geographic bounds
|
|
8
8
|
* @param bounds - Array of two [lng, lat] coordinate pairs
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "map-gl-offline",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"description": "A TypeScript-compatible npm package for MapLibre GL JS that enables comprehensive offline storage and usage of vector/raster tiles, sprites, styles, fonts (glyphs), and entire map regions with advanced analytics, import/export capabilities, and intelligent cleanup.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.esm.js",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"dev": "vite",
|
|
39
39
|
"build": "npm run build:clean && npm run build:sw-src && npm run build:lib && npm run build:types && npm run build:css && npm run build:sw",
|
|
40
40
|
"build:clean": "rimraf dist",
|
|
41
|
-
"build:lib": "rollup -c",
|
|
41
|
+
"build:lib": "rollup -c && node scripts/check-umd.mjs",
|
|
42
42
|
"build:types": "tsc --declaration --emitDeclarationOnly --outDir dist && tsc-alias -p tsconfig.json --outDir dist",
|
|
43
43
|
"build:css": "tailwindcss -i src/styles/style.css -o dist/style.css --minify",
|
|
44
44
|
"build:sw-src": "node scripts/build-sw.mjs",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"test": "jest",
|
|
53
53
|
"test:watch": "jest --watch",
|
|
54
54
|
"test:coverage": "jest --coverage",
|
|
55
|
-
"test:ci": "jest --ci --coverage --watchAll=false --testPathIgnorePatterns='tests/e2e'",
|
|
55
|
+
"test:ci": "jest --ci --coverage --watchAll=false --no-watchman --testPathIgnorePatterns='tests/e2e'",
|
|
56
56
|
"lint": "eslint src",
|
|
57
57
|
"lint:fix": "eslint src --fix",
|
|
58
58
|
"lint:warn": "eslint src --max-warnings 200",
|
|
@@ -71,7 +71,10 @@
|
|
|
71
71
|
"docs:build": "cd docs && npm run build",
|
|
72
72
|
"docs:serve": "cd docs && npm run serve",
|
|
73
73
|
"docs:deploy": "cd docs && npm run deploy",
|
|
74
|
-
"prepare": "husky"
|
|
74
|
+
"prepare": "husky",
|
|
75
|
+
"check:mapbox-standard": "node scripts/check-mapbox-standard.mjs",
|
|
76
|
+
"check:demo": "node scripts/check-demo.mjs",
|
|
77
|
+
"check:docs": "node scripts/check-doc-examples.mjs"
|
|
75
78
|
},
|
|
76
79
|
"keywords": [
|
|
77
80
|
"mapbox-gl",
|
|
@@ -102,13 +105,13 @@
|
|
|
102
105
|
"type": "module",
|
|
103
106
|
"dependencies": {
|
|
104
107
|
"@mapbox/tilebelt": "^2.0.3",
|
|
105
|
-
"@turf/area": "^7.
|
|
106
|
-
"@turf/bbox-polygon": "^7.
|
|
107
|
-
"@turf/difference": "^7.
|
|
108
|
-
"@turf/helpers": "^7.
|
|
109
|
-
"i18next": "^
|
|
110
|
-
"idb": "^8.0.
|
|
111
|
-
"sql.js": "^1.
|
|
108
|
+
"@turf/area": "^7.4.0",
|
|
109
|
+
"@turf/bbox-polygon": "^7.4.0",
|
|
110
|
+
"@turf/difference": "^7.4.0",
|
|
111
|
+
"@turf/helpers": "^7.4.0",
|
|
112
|
+
"i18next": "^26.7.2",
|
|
113
|
+
"idb": "^8.0.4",
|
|
114
|
+
"sql.js": "^1.15.2"
|
|
112
115
|
},
|
|
113
116
|
"peerDependencies": {
|
|
114
117
|
"mapbox-gl": ">=2.0.0",
|
|
@@ -123,44 +126,46 @@
|
|
|
123
126
|
}
|
|
124
127
|
},
|
|
125
128
|
"devDependencies": {
|
|
126
|
-
"@babel/
|
|
129
|
+
"@babel/core": "^8.1.0",
|
|
130
|
+
"@babel/preset-env": "^8.0.7",
|
|
127
131
|
"@eslint/js": "^10.0.1",
|
|
128
|
-
"@
|
|
132
|
+
"@fontsource/barlow": "^5.3.0",
|
|
133
|
+
"@rollup/plugin-commonjs": "^29.0.3",
|
|
129
134
|
"@rollup/plugin-node-resolve": "^16.0.3",
|
|
130
|
-
"@rollup/plugin-typescript": "^12.3.
|
|
131
|
-
"@tailwindcss/cli": "^4.
|
|
132
|
-
"@tailwindcss/vite": "^4.
|
|
135
|
+
"@rollup/plugin-typescript": "^12.3.1",
|
|
136
|
+
"@tailwindcss/cli": "^4.3.4",
|
|
137
|
+
"@tailwindcss/vite": "^4.3.4",
|
|
133
138
|
"@types/jest": "^30.0.0",
|
|
134
139
|
"@types/mapbox__tilebelt": "^1.0.4",
|
|
135
140
|
"@types/mapbox-gl": "^3.4.1",
|
|
136
|
-
"@types/
|
|
137
|
-
"@types/node": "^25.3.0",
|
|
141
|
+
"@types/node": "^26.6.6",
|
|
138
142
|
"@types/sql.js": "^1.4.11",
|
|
139
|
-
"autoprefixer": "^10.
|
|
140
|
-
"esbuild": "^0.
|
|
141
|
-
"eslint": "^10.
|
|
142
|
-
"fake-indexeddb": "^6.2.
|
|
143
|
+
"autoprefixer": "^10.6.2",
|
|
144
|
+
"esbuild": "^0.28.2",
|
|
145
|
+
"eslint": "^10.14.0",
|
|
146
|
+
"fake-indexeddb": "^6.2.7",
|
|
143
147
|
"husky": "^9.1.7",
|
|
144
|
-
"jest": "^30.2
|
|
145
|
-
"jest-environment-jsdom": "^30.2
|
|
146
|
-
"map-gl-style-switcher": "^0.
|
|
147
|
-
"mapbox-gl": "^3.
|
|
148
|
-
"
|
|
149
|
-
"
|
|
150
|
-
"
|
|
151
|
-
"
|
|
152
|
-
"
|
|
153
|
-
"rollup
|
|
154
|
-
"
|
|
155
|
-
"
|
|
148
|
+
"jest": "^30.5.2",
|
|
149
|
+
"jest-environment-jsdom": "^30.5.2",
|
|
150
|
+
"map-gl-style-switcher": "^0.10.1",
|
|
151
|
+
"mapbox-gl": "^3.34.2",
|
|
152
|
+
"maplibre-gl": "^6.16.0",
|
|
153
|
+
"postcss": "^8.5.32",
|
|
154
|
+
"prettier": "^3.9.10",
|
|
155
|
+
"puppeteer": "^25.16.0",
|
|
156
|
+
"rimraf": "^6.1.4",
|
|
157
|
+
"rollup": "^4.67.5",
|
|
158
|
+
"rollup-plugin-dts": "^6.5.1",
|
|
159
|
+
"tailwindcss": "^4.3.4",
|
|
160
|
+
"ts-jest": "^29.4.15",
|
|
156
161
|
"ts-node": "^10.9.2",
|
|
157
|
-
"tsc-alias": "^1.
|
|
162
|
+
"tsc-alias": "^1.9.10",
|
|
158
163
|
"tsconfig-paths": "^4.2.0",
|
|
159
|
-
"tslib": "^2.
|
|
160
|
-
"tsx": "^4.
|
|
161
|
-
"typescript": "^
|
|
162
|
-
"typescript-eslint": "^8.
|
|
163
|
-
"vite": "^
|
|
164
|
+
"tslib": "^2.9.1",
|
|
165
|
+
"tsx": "^4.23.15",
|
|
166
|
+
"typescript": "^6.0.3",
|
|
167
|
+
"typescript-eslint": "^8.72.1",
|
|
168
|
+
"vite": "^8.3.6",
|
|
164
169
|
"vite-tsconfig-paths": "^6.1.1"
|
|
165
170
|
}
|
|
166
171
|
}
|