@fastybird/smart-panel 1.0.0-beta.2 → 1.0.0-beta.3

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.
@@ -36,6 +36,25 @@ const packageJsonPath = join(__dirname, '..', 'package.json');
36
36
  const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
37
37
  const version = packageJson.version;
38
38
 
39
+ /**
40
+ * Detect a display installed by the retired eLinux path, by the systemd unit the old installer
41
+ * wrote. Its description is the only durable marker: the install directory and binary name are
42
+ * shared with the desktop build.
43
+ */
44
+ function isLegacyElinuxInstall() {
45
+ try {
46
+ const unitPath = '/etc/systemd/system/smart-panel-display.service';
47
+
48
+ if (!existsSync(unitPath)) {
49
+ return false;
50
+ }
51
+
52
+ return readFileSync(unitPath, 'utf-8').includes('eLinux DRM-GBM');
53
+ } catch {
54
+ return false;
55
+ }
56
+ }
57
+
39
58
  const program = new Command();
40
59
 
41
60
  program
@@ -626,7 +645,7 @@ program
626
645
  program
627
646
  .command('update-panel')
628
647
  .description('Update the Smart Panel display app')
629
- .option('--platform <platform>', 'Panel platform: flutter-pi-armv7, flutter-pi-arm64, elinux, linux, android')
648
+ .option('--platform <platform>', 'Panel platform: flutter-pi-armv7, flutter-pi-arm64, linux, android')
630
649
  .option('--version <version>', 'Install specific version')
631
650
  .option('--beta', 'Install latest beta release')
632
651
  .option('-d, --install-dir <dir>', 'Installation directory', '/opt/smart-panel-display')
@@ -661,7 +680,7 @@ program
661
680
  } else if (arch === 'armv7') {
662
681
  platform = 'flutter-pi-armv7';
663
682
  } else if (arch === 'x64') {
664
- platform = 'elinux';
683
+ platform = 'linux';
665
684
  } else {
666
685
  logger.error('Could not detect platform. Use --platform to specify.');
667
686
  process.exit(1);
@@ -669,6 +688,15 @@ program
669
688
  }
670
689
  }
671
690
 
691
+ // Only the desktop Linux path replaces the local display bundle and restarts its unit,
692
+ // so only it can damage an install left behind by the retired eLinux build. An Android
693
+ // panel over ADB or a flutter-pi device must not be blocked by a stale unit on this host.
694
+ if (platform === 'linux' && isLegacyElinuxInstall()) {
695
+ logger.error('This display was installed with the eLinux build, which is no longer produced.');
696
+ logger.error('Reinstall with install-display.sh to move to a supported build before updating.');
697
+ process.exit(1);
698
+ }
699
+
672
700
  logger.info(`Platform: ${platform}`);
673
701
 
674
702
  // Get release info
@@ -707,7 +735,6 @@ program
707
735
  const assetPatterns = {
708
736
  'flutter-pi-armv7': /smart-panel-display-armv7\.tar\.gz/,
709
737
  'flutter-pi-arm64': /smart-panel-display-arm64\.tar\.gz/,
710
- elinux: /smart-panel-display-elinux-x64\.tar\.gz/,
711
738
  linux: /smart-panel-display-linux-x64\.tar\.gz/,
712
739
  android: /smart-panel-display\.apk/,
713
740
  };
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CA8B1D"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAkC1D"}
@@ -9,7 +9,11 @@
9
9
  */
10
10
  export function compareSemver(a, b) {
11
11
  const parseVersion = (v) => {
12
- const cleaned = v.replace(/^v/, '');
12
+ // Build metadata is ignored when determining precedence (semver §10), and it has to go
13
+ // before the pre-release split rather than after: it may itself contain a '-', so
14
+ // "1.0.0+build-7" would otherwise parse as a pre-release of 1.0.0 and rank below it,
15
+ // and "1.0.1+build-alpha" would leave "1.0.1+build" as the base, making the patch NaN.
16
+ const cleaned = v.replace(/^v/, '').split('+')[0];
13
17
  const [base, ...prereleaseParts] = cleaned.split('-');
14
18
  const parts = base.split('.').map(Number);
15
19
  const prerelease = prereleaseParts.length > 0 ? prereleaseParts.join('-') : null;
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fastybird/smart-panel",
3
- "version": "1.0.0-beta.2",
3
+ "version": "1.0.0-beta.3",
4
4
  "description": "FastyBird Smart Panel - IoT Dashboard for Linux devices",
5
5
  "keywords": [
6
6
  "fastybird",
@@ -48,8 +48,8 @@
48
48
  "migration:revert": "node ./node_modules/typeorm/cli.js migration:revert -d ./node_modules/@fastybird/smart-panel-backend/dist/dataSource.js"
49
49
  },
50
50
  "dependencies": {
51
- "@fastybird/smart-panel-admin": "1.0.0-beta.2",
52
- "@fastybird/smart-panel-backend": "1.0.0-beta.2",
51
+ "@fastybird/smart-panel-admin": "1.0.0-beta.3",
52
+ "@fastybird/smart-panel-backend": "1.0.0-beta.3",
53
53
  "chalk": "^5.4.1",
54
54
  "commander": "^13.1.0",
55
55
  "ora": "^8.2.0"