mirakurun 4.0.0-beta.6 → 4.0.0-beta.7

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/CHANGELOG.md CHANGED
@@ -2,7 +2,102 @@
2
2
 
3
3
  see [Commit Logs](https://github.com/Chinachu/Mirakurun/commits/master) to check all.
4
4
 
5
- ## 3.9.0 (2023-xx-xx)
5
+ ## 4.0.0-beta.7 (2025-03-14)
6
+
7
+ **Important Notice**: Mirakurun 4.0.0 includes significant performance improvements, enhanced EPG processing, asynchronous file I/O operations, and new features. As announced in 3.9.0, the experimental Win32 support has been completely removed.
8
+
9
+ ### Key Changes
10
+
11
+ - **Node.js**: Updated supported versions: `^18 || ^20 || ^22` (dropped support for Node.js 14 and 16)
12
+ - **Win32**: Completely removed support
13
+ - **UI**: Added UI for channel scanning
14
+ - **Performance**: Eliminated blocking file I/O operations to improve real-time processing
15
+ - **Configuration**: Reduced storage write frequency to minimize interruptions to real-time processing
16
+ - **Docker**: Updated configuration files, improved commands, and added Node.js 22 support
17
+
18
+ ### Breaking Changes
19
+
20
+ - **Win32**: Completely removed support
21
+ - **Project Structure**: Changed global installation to be discouraged and removed PM2 support
22
+
23
+ ### Server Changes
24
+
25
+ - **config/server**: Added new configuration options:
26
+ - `allowOrigins`: Specify CORS origins
27
+ - `allowPNA`: Allow Private Network Access (default: `true`)
28
+ - `tsplayEndpoint`: Endpoint for TSPlay feature
29
+ - **CORS**: Support for multiple origins, Cross-Origin Resource Policy set to "cross-origin"
30
+ - **Private Network Access**: Added PNA/LNA support, enabling secure access within private networks
31
+ - **Memory Usage**: Increased Node.js `max-semi-space-size` to 64MB to improve memory performance (this may slight increase memory usage)
32
+ - **config/channels/scan**: Added service type support, improved scanning capabilities
33
+ - Added `skipCh` parameter to skip specific channels
34
+ - Added asynchronous channel scanning with progress tracking
35
+ - Added DELETE endpoint for canceling scans
36
+ - **UI**:
37
+ - Changed API documentation from Swagger UI to ReDoc
38
+ - Added new UI components and service type filtering options
39
+ - Added channel, service ID, and User-Agent columns to tuner manager
40
+ - Added UI for channel scanning with visual progress tracking
41
+ - **TSPlay**: Added experimental TSPlay feature
42
+
43
+ ### Docker Changes
44
+
45
+ - **Base Image**: Updated from `node:18.15.0-buster-slim` to `node:22.14.0-bookworm-slim`
46
+ - **Build Process**: Changed from `npm install` to `npm ci` for more reliable builds
47
+ - **Configuration**:
48
+ - Made Dockerfile and image tag configurable via environment variables (`DOCKERFILE`, `MIRAKURUN_IMAGE_TAG`)
49
+ - Added `tmpfs` mount for `/tmp` to improve I/O performance
50
+ - **docker-compose.yml**:
51
+ - Simplified volume binding syntax
52
+ - Added configuration guidance for users not using card readers or DVB devices
53
+ - Added detailed comments for hostname settings
54
+ - **Commands**: Added new npm scripts for developers:
55
+ - `docker:run-setup`: Run container in setup mode
56
+ - `docker:down`: Stop and remove container
57
+ - `docker:logs`: Display container logs
58
+ - `docker:bash`: Run Bash shell in container
59
+
60
+ ### Other Changes
61
+
62
+ - **File I/O Processing**:
63
+ - Replaced synchronous file I/O operations with asynchronous ones to improve real-time processing performance
64
+ - Replaced synchronous methods from the `fs` module with asynchronous methods from `fs/promises`
65
+ - Introduced queues for config file I/O operations to prevent concurrent access issues
66
+ - Reduced storage write frequency (extended program info save interval from 10 seconds to 30 seconds)
67
+
68
+ - **Performance Optimization**:
69
+ - Implemented asynchronous JSON processing to prevent interruptions to real-time stream processing
70
+ - Introduced `yieldable-json` package for asynchronous JSON parsing
71
+ - Increased Node.js `max-semi-space-size` to 64MB to improve garbage collection efficiency
72
+
73
+ - **Packages and Frameworks**:
74
+ - Updated major dependencies:
75
+ - express: `4.17.3` → `4.21.2`
76
+ - glob: `7.2.3` → `11.0.1`
77
+ - semver: `7.3.5` → `7.7.1`
78
+ - rfdc: `1.3.0` → `1.4.1`
79
+ - React: `17.0.2` → `^18.3.1`
80
+ - React DOM: `17.0.2` → `^18.3.1`
81
+ - TypeScript: `4.7` → `5.7`
82
+ - Added new dependencies:
83
+ - redoc: `2.4.0` (as an alternative to Swagger UI)
84
+ - redoc-try: `1.4.10`
85
+ - yieldable-json: `^2.1.0`
86
+ - Removed dependencies:
87
+ - swagger-ui-dist (due to change in API documentation tool to ReDoc)
88
+
89
+ - **Project Structure**:
90
+ - Removed global installation (`preferGlobal`) flag
91
+ - Removed PM2 support, added dummy CLI script for migration guidance
92
+ - Completely removed Win32-specific scripts and support
93
+ - Improved TypeScript configuration and consistency
94
+ - Updated Azure Pipelines configuration (updated to Ubuntu 22.04 base)
95
+
96
+ - **Channels**:
97
+ - Updated default sample channel configuration
98
+ - Significantly improved and extended channel scanning functionality
99
+
100
+ ## 3.9.0-rc.4 (2023-04-09)
6
101
 
7
102
  Performance improvements, fixes for memory leaks and bugs related to EPG processing, etc.
8
103
 
package/bin/cli.sh ADDED
@@ -0,0 +1,15 @@
1
+ #!/bin/bash
2
+
3
+ cat <<EOF
4
+
5
+ CLI / PM2 support has been removed on @4.0.0.
6
+
7
+ Solutions:
8
+ - use Docker (recommended)
9
+ - https://github.com/Chinachu/Mirakurun/blob/release/4.0.0/doc/Platforms.md#docker-on-linux
10
+ - use PM2 manually (legacy)
11
+ - https://github.com/Chinachu/Mirakurun/blob/release/4.0.0/doc/Platforms.md#linux-w-pm2-legacy
12
+ - downgrade to @3.9.0-rc.4
13
+ - sudo npm install mirakurun@3.9.0-rc.4 -g --unsafe-perm --foreground-scripts --production
14
+
15
+ EOF
@@ -2,11 +2,13 @@ services:
2
2
  mirakurun:
3
3
  build:
4
4
  context: ../
5
- dockerfile: docker/Dockerfile
6
- # `:latest` can be changed to fix the version
7
- # `:latest` の部分を編集するとバージョンを固定できます
5
+ dockerfile: docker/${DOCKERFILE:-Dockerfile}
6
+ # `latest` can be changed to fix the version
7
+ # `latest` の部分を編集するとバージョンを固定できます
8
+ # `MIRAKURUN_IMAGE_TAG` environment variable can also be used
9
+ # `MIRAKURUN_IMAGE_TAG` 環境変数でも固定できます
8
10
  # available tags: https://hub.docker.com/r/chinachu/mirakurun/tags
9
- image: chinachu/mirakurun:latest
11
+ image: chinachu/mirakurun:${MIRAKURUN_IMAGE_TAG:-latest}
10
12
  container_name: mirakurun
11
13
  cap_add:
12
14
  - SYS_ADMIN
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mirakurun",
3
3
  "description": "DVR Tuner Server for Japanese TV.",
4
- "version": "4.0.0-beta.6",
4
+ "version": "4.0.0-beta.7",
5
5
  "homepage": "https://github.com/Chinachu/Mirakurun",
6
6
  "keywords": [
7
7
  "mirakurun",
@@ -30,6 +30,7 @@
30
30
  },
31
31
  "license": "Apache-2.0",
32
32
  "bin": {
33
+ "mirakurun": "bin/cli.sh",
33
34
  "mirakurun-epgdump": "bin/epgdump.js"
34
35
  },
35
36
  "main": "lib/client.js",