@mxtommy/kip 4.5.0-beta.1 → 4.5.1

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.
Files changed (102) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +11 -7
  3. package/package.json +21 -8
  4. package/plugin/duckdb-parquet-storage.service.js +1182 -0
  5. package/plugin/history-series.service.js +439 -0
  6. package/plugin/index.js +705 -30
  7. package/plugin/openApi.json +253 -3
  8. package/plugin/plugin-auth.service.js +75 -0
  9. package/public/assets/help-docs/chartplotter.md +5 -18
  10. package/public/assets/help-docs/community.md +0 -3
  11. package/public/assets/help-docs/configuration.md +1 -1
  12. package/public/assets/help-docs/contact-us.md +0 -4
  13. package/public/assets/help-docs/dashboards.md +20 -18
  14. package/public/assets/help-docs/datainspector.md +7 -5
  15. package/public/assets/help-docs/history-api.md +116 -0
  16. package/public/assets/help-docs/menu.json +18 -6
  17. package/public/assets/help-docs/nodered-control-flows.md +125 -0
  18. package/public/assets/help-docs/putcontrols.md +101 -60
  19. package/public/assets/help-docs/welcome.md +6 -7
  20. package/public/assets/help-docs/widget-historical-series.md +66 -0
  21. package/public/assets/help-docs/zones.md +5 -10
  22. package/public/chunk-A6DQJFP4.js +16 -0
  23. package/public/chunk-B75MT7ND.js +1 -0
  24. package/public/{chunk-T6TFVZVM.js → chunk-CEB42O2C.js} +1 -1
  25. package/public/chunk-CHGXAEKT.js +2 -0
  26. package/public/chunk-D7VDX7ZF.js +5 -0
  27. package/public/{chunk-ZQER6AIQ.js → chunk-DEGYRCMI.js} +1 -1
  28. package/public/{chunk-M2B5OYGO.js → chunk-DEM56G4S.js} +1 -1
  29. package/public/chunk-DYTBBUMI.js +4 -0
  30. package/public/chunk-EQ2N7KDA.js +3 -0
  31. package/public/chunk-FNF7M3AE.js +1 -0
  32. package/public/chunk-IHURI4IH.js +5 -0
  33. package/public/{chunk-YIYYVDFO.js → chunk-IYRLINL7.js} +2 -2
  34. package/public/{chunk-5FEX27I4.js → chunk-JB4YVVNW.js} +1 -1
  35. package/public/chunk-JGGMFMY5.js +1 -0
  36. package/public/chunk-KPHICV76.js +5 -0
  37. package/public/{chunk-QZKCRH3H.js → chunk-KZ5DUKAX.js} +1 -1
  38. package/public/{chunk-HMOOTAEA.js → chunk-LQDSU4WS.js} +3 -3
  39. package/public/{chunk-IXQ7KIFY.js → chunk-MGPPVLZ7.js} +1 -1
  40. package/public/{chunk-QVCLOCEC.js → chunk-R7RQHWKJ.js} +1 -1
  41. package/public/chunk-RONXIZ2U.js +9 -0
  42. package/public/chunk-S72JTJPN.js +6 -0
  43. package/public/{chunk-KFFAA7DL.js → chunk-VCY32MWT.js} +8 -8
  44. package/public/chunk-YCEXTKGG.js +1 -0
  45. package/public/chunk-YKJKIWXO.js +6 -0
  46. package/public/chunk-ZV7IYYEQ.js +50 -0
  47. package/public/index.html +1 -1
  48. package/public/main-FQESQQV6.js +1 -0
  49. package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -84
  50. package/.github/ISSUE_TEMPLATE/config.yml +0 -5
  51. package/.github/ISSUE_TEMPLATE/feature_request.yml +0 -35
  52. package/.github/copilot-instructions.md +0 -205
  53. package/.github/instructions/angular.instructions.md +0 -123
  54. package/.github/instructions/best-practices.instructions.md +0 -59
  55. package/.github/instructions/project.instructions.md +0 -432
  56. package/.github/workflows/ci.yml +0 -37
  57. package/docs/widget-schematic.md +0 -102
  58. package/images/ActionSidenav.png +0 -0
  59. package/images/ChartplotterMode.png +0 -0
  60. package/images/KIPDemo.png +0 -0
  61. package/images/KipBrightness-1024.png +0 -0
  62. package/images/KipConfig-Units-1024.png +0 -0
  63. package/images/KipConfig-display-1024x488.png +0 -0
  64. package/images/KipFreeboard-SK-1024.png +0 -0
  65. package/images/KipGaugeSample1-1024x545.png +0 -0
  66. package/images/KipGaugeSample2-1024x488.png +0 -0
  67. package/images/KipGaugeSample3-1024x508.png +0 -0
  68. package/images/KipNightMode-1024.png +0 -0
  69. package/images/KipWidgetConfig-layout-1024.png +0 -0
  70. package/images/KipWidgetConfig-paths-1024x488.png +0 -0
  71. package/images/Options.png +0 -0
  72. package/images/exterior_user_installs.png +0 -0
  73. package/images/formfactor.png +0 -0
  74. package/public/assets/help-docs/datasets.md +0 -95
  75. package/public/chunk-2OB7ZJBR.js +0 -3
  76. package/public/chunk-6GGJZDRE.js +0 -1
  77. package/public/chunk-6V4GGGXE.js +0 -2
  78. package/public/chunk-A5BW6BUM.js +0 -1
  79. package/public/chunk-DGE5YFPU.js +0 -5
  80. package/public/chunk-G6M3Z3BY.js +0 -53
  81. package/public/chunk-GMGZLXY7.js +0 -4
  82. package/public/chunk-GUZ3BDVZ.js +0 -2
  83. package/public/chunk-ICDGHQFP.js +0 -6
  84. package/public/chunk-JCNE4QHQ.js +0 -15
  85. package/public/chunk-K6XYUNG4.js +0 -8
  86. package/public/chunk-LGCQEN7V.js +0 -4
  87. package/public/chunk-O3JH7UTR.js +0 -1
  88. package/public/chunk-Q3USFT4F.js +0 -2
  89. package/public/chunk-VIKU7BH7.js +0 -1
  90. package/public/chunk-XMQPXXLW.js +0 -8
  91. package/public/main-4URMGBQS.js +0 -1
  92. package/rm-npmjs-beta.sh +0 -50
  93. package/tools/schematics/collection.json +0 -9
  94. package/tools/schematics/create-host2-widget/files/readme/README.md.template +0 -109
  95. package/tools/schematics/create-host2-widget/files/spec/widget-__name@dasherize__.component.spec.ts +0 -38
  96. package/tools/schematics/create-host2-widget/files/widget/widget-__name@dasherize__.component.html +0 -6
  97. package/tools/schematics/create-host2-widget/files/widget/widget-__name@dasherize__.component.scss +0 -5
  98. package/tools/schematics/create-host2-widget/files/widget/widget-__name@dasherize__.component.ts.template +0 -94
  99. package/tools/schematics/create-host2-widget/index.js +0 -138
  100. package/tools/schematics/create-host2-widget/schema.json +0 -89
  101. package/tools/schematics/create-host2-widget/test/create-host2-widget.spec.ts +0 -70
  102. package/tools/schematics/create-host2-widget/utils/formatting.js +0 -119
package/CHANGELOG.md CHANGED
@@ -1,3 +1,21 @@
1
+ # v4.5.1
2
+ ## Fixes
3
+ * DuckDB dependency causing build and installation errors. Fixes #979
4
+ * Reduced installation size. Fixes #980
5
+ # v4.5.0
6
+ ## New Features
7
+ * Effortlessly review your vessel’s history with the new Widget Historical Charts—automatically track, store, and visualize key data. Instantly access up to the last full day of performance: just two-finger tap or right-click any widget to open a seamless history dialog—no setup, no clutter, just the trends you need. (Requires Signal K v2.22.1)
8
+ * Dashboards now start with fully populated Data Charts, powered by KIP’s managed Time-Series History-API provider or other compatible history providers. (Requires Signal K v2.22.1)
9
+ * Added internet availability detection for remote queries.
10
+ ## Improvements
11
+ * Added "Days" as a selectable time scale in the Data Chart widget.
12
+ * Improved integration by validating server plugin presence, plugin state, and configuration.
13
+ * Added a Node-RED introduction guide to the Help section.
14
+ * Migrated KIP plugin historical storage internals from `duckdb` to `@duckdb/node-api` and Parquet export writing to `@dsnp/parquetjs`.
15
+ ## Fixes
16
+ * Improved KIP plugin OpenAPI compatibility.
17
+ * Resolved slow Data Inspector performance caused by high resource usage in deep loop logic.
18
+ * Remote Control feature should not require Admin permission. Fixes #940
1
19
  # v4.4.0
2
20
  ## New Features
3
21
  * New AIS Radar widget: Turn AIS traffic into an instant tactical view with live targets, dynamic range rings, fast zoom controls, and smart filters—so you can spot nearby vessels quicker and make confident navigation decisions at a glance.
package/README.md CHANGED
@@ -24,7 +24,7 @@ With KIP, you get the **familiar feel of professional Multi-Function Displays**
24
24
  - [Installations Showcase](#installations-showcase)
25
25
  - [Design Goal](#design-goal)
26
26
  - [User Experience](#user-experience)
27
- - [Dashboards and Configuration](#dashboards-and-configuration) & [Widget Library](#widget-library)
27
+ - [Dashboards and Configuration](#dashboards-and-configuration), [Widget Library](#widget-library) & [Historical Data](#historycal-data)
28
28
  - [Night Modes](#night-modes)
29
29
  - [Chartplotter Mode](#chartplotter-mode)
30
30
  - [Remote Control](#remote-control-other-kip-displays)
@@ -54,12 +54,12 @@ The goal is to replicate and enhance the functionality of modern marine instrume
54
54
 
55
55
  ## User Experience
56
56
 
57
- ### Interractions
57
+ ### Interactions
58
58
  - Swipe up and down to navigate through your dashboards effortlessly.
59
59
  - Swipe left and right to access notifications and other system features quickly.
60
60
  - Use keyboard shortcuts for essential features, ensuring fast and efficient navigation across devices types.
61
61
 
62
- ### Customyze
62
+ ### Customize
63
63
  - Effortlessly create and customize dashboards using an intuitive grid layout system.
64
64
  - Add, resize, and align widgets to design tailored displays for your specific needs.
65
65
  - Duplicate widgets or entire dashboards, including their configurations, with a single click.
@@ -137,6 +137,9 @@ Freeboard-SK Chartplotter integration with Autopilot widget
137
137
  Grafana integration with other widgets
138
138
  ![Embedded Webpage Concept Image](./images/KipGaugeSample3-1024x508.png)
139
139
 
140
+ ## Historical Data
141
+ Experience effortless insight into your vessel’s past with KIP’s Widget Historical Charts—automatically track, store, and visualize key data, unlocking instant access charts showing up to the last full day of performance. Whether you’re sailing or docked, simply tap or right-click widgets to reveal a seamless history dialog—no setup, no clutter, just the trends you need. With full support for Data Driven widgets, live-to-history transitions, KIP puts your boat’s story at your fingertips—so you can make smarter decisions, spot patterns, and sail with confidence.
142
+
140
143
  ## Night Modes
141
144
  Keep your night vision with automatic or manual day and night switching to a color preserving dim mode or an all Red theme. The images below look very dark, but at night... they are perfect!
142
145
 
@@ -258,16 +261,17 @@ Once done with your work, from your fork's working branch, make a GitHub pull re
258
261
 
259
262
  For comprehensive development guidance, please refer to these instruction files:
260
263
 
261
- ### **Primary Instructions:**
264
+ ### Primary Instructions
262
265
  - **[COPILOT.md](./COPILOT.md)**: Complete KIP project guidelines including architecture, services, widget development patterns, theming, and Signal K integration.
263
- - **[Angular Instructions](./.github/instructions/angular.instructions.md)**: Modern Angular v20+ coding standards, component patterns, and framework best practices.
266
+ - **[Angular Instructions](./.github/instructions/angular.instructions.md)**: Modern Angular v21+ coding standards, component patterns, and framework best practices.
267
+ - **[Copilot Agent Instructions](./.github/copilot-instructions.md)**: Architecture details and coding-agent guardrails for this repository.
264
268
 
265
- ### **Development Workflow:**
269
+ ### Development Workflow
266
270
  1. **Start Here**: Read `COPILOT.md` for KIP-specific architecture and patterns.
267
271
  2. **Angular Standards**: Follow `.github/instructions/angular.instructions.md` for modern Angular development.
268
272
  3. **Setup & Build**: Use this README for project setup and build commands.
269
273
 
270
- ### **Key Priorities:**
274
+ ### Key Priorities
271
275
  - **Widget Development**: Use the Host2 widget pattern (signals + directives) and scaffold new widgets with the `create-host2-widget` schematic (see `COPILOT.md`).
272
276
  - **Angular Patterns**: Use signals, standalone components, and modern control flow.
273
277
  - **Theming**: Follow KIP's theme system for consistent UI.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mxtommy/kip",
3
- "version": "4.5.0-beta.1",
3
+ "version": "4.5.1",
4
4
  "description": "An advanced and versatile marine instrumentation package to display Signal K data.",
5
5
  "license": "MIT",
6
6
  "author": {
@@ -26,6 +26,7 @@
26
26
  "signalk-webapp",
27
27
  "signalk-category-instruments",
28
28
  "signalk-category-notifications",
29
+ "signalk-category-ais",
29
30
  "signalk-node-server-plugin",
30
31
  "signal k",
31
32
  "signalk",
@@ -39,9 +40,19 @@
39
40
  "displayName": "KIP Instrument MFD"
40
41
  },
41
42
  "main": "plugin/index.js",
43
+ "files": [
44
+ "plugin/**",
45
+ "public/**",
46
+ "README.md",
47
+ "LICENSE",
48
+ "CHANGELOG.md",
49
+ "CONTRIBUTORS.md",
50
+ "package.json"
51
+ ],
42
52
  "signalk-plugin-enabled-by-default": true,
43
53
  "scripts": {
44
54
  "test": "CI=1 ng test --watch=false",
55
+ "test:plugin": "npm run build:plugin && node --test --test-concurrency=1 kip-plugin/tests/index.test.cjs",
45
56
  "test:interactive": "ng test",
46
57
  "test:headless": "CI=1 ng test --browsers=ChromeHeadless --watch=false",
47
58
  "lint": "ng lint",
@@ -62,12 +73,12 @@
62
73
  "@angular/compiler-cli": "21.1.4",
63
74
  "@angular/language-service": "21.1.4",
64
75
  "@types/canvas-gauges": "^2.1.8",
76
+ "@types/d3": "^7.4.3",
65
77
  "@types/jasmine": "~3.6.0",
66
78
  "@types/jasminewd2": "^2.0.9",
67
79
  "@types/js-quantities": "^1.6.6",
68
80
  "@types/lodash-es": "^4.17.9",
69
81
  "@types/node": "^24.1.0",
70
- "@types/d3": "^7.4.3",
71
82
  "angular-eslint": "21.2.0",
72
83
  "codelyzer": "^6.0.0",
73
84
  "eslint": "^9.29.0",
@@ -85,9 +96,7 @@
85
96
  "pwa-asset-generator": "^8.1.1",
86
97
  "sass": "^1.49.9",
87
98
  "ts-node": "^10.9.2",
88
- "typescript": "^5.9.3"
89
- },
90
- "dependencies": {
99
+ "typescript": "^5.9.3",
91
100
  "@angular/animations": "21.1.4",
92
101
  "@angular/cdk": "21.1.4",
93
102
  "@angular/common": "21.1.4",
@@ -116,10 +125,14 @@
116
125
  "prismjs": "^1.30.0",
117
126
  "rxjs": "^7.8.2",
118
127
  "screenfull": "^6.0.2",
128
+ "sk-ais-status-plugin": "^1.0.0",
119
129
  "steelseries": "^2.0.9",
120
130
  "tslib": "^2.6.2",
121
- "zone.js": "^0.15.1",
122
- "@signalk/server-api": "^2.7.2",
123
- "sk-ais-status-plugin": "^1.0.0"
131
+ "zone.js": "^0.15.1"
132
+ },
133
+ "dependencies": {
134
+ "@dsnp/parquetjs": "^1.8.7",
135
+ "@duckdb/node-api": "^1.4.4-r.2",
136
+ "@signalk/server-api": "^2.22.0"
124
137
  }
125
138
  }