signalk-charts-provider-simple 1.0.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/,github/workflows/publish.yml +40 -0
- package/.gitattributes +2 -0
- package/CHANGELOG.md +12 -0
- package/LICENSE.md +21 -0
- package/README.md +88 -0
- package/package.json +55 -0
- package/public/assets/charts_logo.png +0 -0
- package/public/css/manage-charts.css +1419 -0
- package/public/css/material-theme.css +495 -0
- package/public/index.html +54 -0
- package/public/index.js +5 -0
- package/public/js/download-simple.js +274 -0
- package/public/js/emoji-utils.js +153 -0
- package/public/js/manage-charts-enhanced.js +1123 -0
- package/public/js/tabs.js +41 -0
- package/public/style.css +990 -0
- package/src/charts-loader.js +363 -0
- package/src/index.js +800 -0
- package/src/utils/chart-state.js +77 -0
- package/src/utils/download-manager.js +326 -0
- package/src/utils/file-scanner.js +107 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
name: Publish Package
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- 'v*'
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
id-token: write
|
|
10
|
+
contents: read
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
publish:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v4
|
|
18
|
+
|
|
19
|
+
- name: Clean workspace
|
|
20
|
+
run: git clean -xfd
|
|
21
|
+
|
|
22
|
+
- uses: actions/setup-node@v4
|
|
23
|
+
with:
|
|
24
|
+
node-version: '20'
|
|
25
|
+
registry-url: 'https://registry.npmjs.org'
|
|
26
|
+
|
|
27
|
+
# Ensure npm 11.5.1 or later is installed
|
|
28
|
+
- name: Update npm
|
|
29
|
+
run: npm install -g npm@latest
|
|
30
|
+
- run: npm install
|
|
31
|
+
|
|
32
|
+
- run: npm test
|
|
33
|
+
|
|
34
|
+
- name: Publish
|
|
35
|
+
run: |
|
|
36
|
+
if [[ "${{ github.ref }}" == refs/tags/*-beta.* ]] || [[ "${{ github.ref }}" == refs/tags/*-rc.* ]]; then
|
|
37
|
+
npm publish --provenance --access public --tag beta
|
|
38
|
+
else
|
|
39
|
+
npm publish --provenance --access public
|
|
40
|
+
fi
|
package/.gitattributes
ADDED
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [1.0.0] 2025-01-26
|
|
4
|
+
- Initial release
|
|
5
|
+
- Material Design 3 UI
|
|
6
|
+
- Optimized for touch and mobile
|
|
7
|
+
- Download queue management
|
|
8
|
+
- Manual Upload
|
|
9
|
+
- Folder organization with drag-and-drop
|
|
10
|
+
- Root folder and subfolder will be abailable for charts
|
|
11
|
+
- Abillity to disable certain charts (requires server reload)
|
|
12
|
+
- Rename chart (requires server reload)
|
package/LICENSE.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Signal K Community
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# Signal K Charts Provider Simple
|
|
2
|
+
|
|
3
|
+
A lightweight, JavaScript-based Signal K server plugin for managing local nautical charts. This plugin provides a clean interface for organizing, uploading, and serving MBTiles.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- **Local Chart Management**: Support for MBTiles
|
|
8
|
+
- **Download Manager**: Built-in download queue with progress tracking and automatic ZIP extraction
|
|
9
|
+
- **Modern Web UI**: Clean, Material Design 3 interface with drag-and-drop chart organization
|
|
10
|
+
- **Chart Organization**: Folder-based organization with enable/disable toggles
|
|
11
|
+
- **Dual API Support**: Compatible with both Signal K v1 and v2 API
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## Installation
|
|
15
|
+
|
|
16
|
+
### From Signal K Appstore
|
|
17
|
+
|
|
18
|
+
1. Open your Signal K server admin interface
|
|
19
|
+
2. Navigate to Appstore
|
|
20
|
+
3. Search for "Charts Provider Simple"
|
|
21
|
+
4. Click Install
|
|
22
|
+
|
|
23
|
+
### Manual Installation
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
cd ~/.signalk
|
|
27
|
+
npm install signalk-charts-provider-simple
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Configuration
|
|
31
|
+
|
|
32
|
+
1. Navigate to **Server → Plugin Config → Charts Provider Simple**
|
|
33
|
+
2. Set your chart directory path (defaults to `~/.signalk/charts`)
|
|
34
|
+
3. Enable the plugin
|
|
35
|
+
4. Restart Signal K server
|
|
36
|
+
|
|
37
|
+
## Usage
|
|
38
|
+
|
|
39
|
+
### Web Interface
|
|
40
|
+
|
|
41
|
+
Access the plugin's web interface through your Signal K server:
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
http://[your-server]:3000/plugins/signalk-charts-provider-simple/
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
The interface provides two main tabs:
|
|
48
|
+
|
|
49
|
+
1. **Manage Charts**:
|
|
50
|
+
- View all charts in your library
|
|
51
|
+
- Enable/disable charts
|
|
52
|
+
- Organize charts into folders
|
|
53
|
+
- Upload new chart files
|
|
54
|
+
- Delete unwanted charts
|
|
55
|
+
- Rename charts
|
|
56
|
+
|
|
57
|
+
2. **Download from URL**:
|
|
58
|
+
- Download charts directly from any URL
|
|
59
|
+
- Supports `.mbtiles` files and `.zip` archives
|
|
60
|
+
- Automatic extraction of MBTiles from ZIP files
|
|
61
|
+
- Download queue with progress tracking
|
|
62
|
+
- Simple, clean interface without complex chart browsing
|
|
63
|
+
|
|
64
|
+
### Chart Formats
|
|
65
|
+
|
|
66
|
+
The plugin supports this chart formats:
|
|
67
|
+
|
|
68
|
+
- **MBTiles** (`.mbtiles`): SQLite-based map tile format
|
|
69
|
+
|
|
70
|
+
### Compatible Chart Plotters
|
|
71
|
+
|
|
72
|
+
Charts provided by this plugin work with:
|
|
73
|
+
- [Freeboard SK](https://www.npmjs.com/package/@signalk/freeboard-sk)
|
|
74
|
+
- [OpenCPN](https://opencpn.org/)
|
|
75
|
+
|
|
76
|
+
## Acknowledgments
|
|
77
|
+
|
|
78
|
+
Inspired by [Signal K Charts Plugin](https://github.com/SignalK/charts-plugin) by Mikko Vesikkala.
|
|
79
|
+
|
|
80
|
+
## Contributing
|
|
81
|
+
|
|
82
|
+
Contributions are welcome! Please feel free to submit a Pull Request.
|
|
83
|
+
|
|
84
|
+
## Support
|
|
85
|
+
|
|
86
|
+
For issues and feature requests:
|
|
87
|
+
- GitHub Issues: https://github.com/dirkwa/signalk-charts-provider-simple/issues
|
|
88
|
+
|
package/package.json
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "signalk-charts-provider-simple",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Simple Signal K chart provider for local MBTiles and directory-based charts with download management",
|
|
5
|
+
"main": "src/index.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
8
|
+
},
|
|
9
|
+
"license": "MIT",
|
|
10
|
+
"keywords": [
|
|
11
|
+
"signalk",
|
|
12
|
+
"signalk-node-server-plugin",
|
|
13
|
+
"signalk-webapp",
|
|
14
|
+
"nautic",
|
|
15
|
+
"chart",
|
|
16
|
+
"mbtiles",
|
|
17
|
+
"tms",
|
|
18
|
+
"chart-management",
|
|
19
|
+
"download-manager"
|
|
20
|
+
],
|
|
21
|
+
"author": {
|
|
22
|
+
"name": "Dirk Wahrheit",
|
|
23
|
+
"email": "dirkwa@users.noreply.github.com"
|
|
24
|
+
},
|
|
25
|
+
"dependencies": {
|
|
26
|
+
"@mapbox/mbtiles": "^0.12.1",
|
|
27
|
+
"@signalk/server-api": "^2.0.0",
|
|
28
|
+
"bluebird": "^3.5.1",
|
|
29
|
+
"busboy": "^1.6.0",
|
|
30
|
+
"lodash": "^4.17.11",
|
|
31
|
+
"unzipper": "^0.12.3",
|
|
32
|
+
"xml2js": "^0.6.2"
|
|
33
|
+
},
|
|
34
|
+
"repository": {
|
|
35
|
+
"type": "git",
|
|
36
|
+
"url": "https://github.com/dirkwa/signalk-charts-provider-simple"
|
|
37
|
+
},
|
|
38
|
+
"signalk": {
|
|
39
|
+
"appIcon": "assets/charts_logo.png",
|
|
40
|
+
"displayName": "Charts Provider Simple",
|
|
41
|
+
"appstore": {
|
|
42
|
+
"displayName": "Charts Provider Simple",
|
|
43
|
+
"categories": [
|
|
44
|
+
"utilities"
|
|
45
|
+
],
|
|
46
|
+
"author": "Dirk Wahrheit",
|
|
47
|
+
"description": "Simple Signal K chart provider for local MBTiles and directory-based charts with download management"
|
|
48
|
+
},
|
|
49
|
+
"webapp": {
|
|
50
|
+
"name": "Charts Provider Simple",
|
|
51
|
+
"description": "Simple Signal K chart provider for local MBTiles and directory-based charts",
|
|
52
|
+
"location": "/plugins/signalk-charts-provider-simple/"
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
Binary file
|