claude-notification-plugin 1.0.88 → 1.0.90

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.
@@ -1,13 +1,13 @@
1
- {
2
- "name": "claude-notification-plugin",
3
- "version": "1.0.88",
4
- "description": "Claude Code task-completion notifications: Telegram, desktop notifications (Windows/macOS/Linux), sound, and voice",
5
- "author": {
6
- "name": "Viacheslav Makarov",
7
- "email": "npmjs@bazilio.ru"
8
- },
9
- "homepage": "https://github.com/Bazilio-san/claude-notification-plugin#readme",
10
- "repository": "https://github.com/Bazilio-san/claude-notification-plugin",
11
- "license": "MIT",
12
- "keywords": ["notification", "telegram", "windows", "sound", "voice", "hooks"]
13
- }
1
+ {
2
+ "name": "claude-notification-plugin",
3
+ "version": "1.0.90",
4
+ "description": "Claude Code task-completion notifications: Telegram, desktop notifications (Windows/macOS/Linux), sound, and voice",
5
+ "author": {
6
+ "name": "Viacheslav Makarov",
7
+ "email": "npmjs@bazilio.ru"
8
+ },
9
+ "homepage": "https://github.com/Bazilio-san/claude-notification-plugin#readme",
10
+ "repository": "https://github.com/Bazilio-san/claude-notification-plugin",
11
+ "license": "MIT",
12
+ "keywords": ["notification", "telegram", "windows", "sound", "voice", "hooks"]
13
+ }
package/bin/uninstall.js CHANGED
@@ -51,24 +51,51 @@ for (const file of [configPath, statePath, resolverPath]) {
51
51
  // Remove CLI wrapper scripts
52
52
  const CLI_BINS = ['claude-notify-listener', 'claude-notify-install', 'claude-notify-uninstall'];
53
53
  let cliBinsRemoved = false;
54
+ const ext = process.platform === 'win32' ? '.cmd' : '';
55
+
56
+ // Collect directories to check for wrapper scripts
57
+ const wrapperDirs = new Set();
58
+
59
+ // Directory next to claude binary
54
60
  try {
55
61
  const cmd = process.platform === 'win32' ? 'where claude' : 'which claude';
56
62
  const claudeBin = execSync(cmd, { encoding: 'utf-8', windowsHide: true }).trim().split('\n')[0].trim();
57
- const claudeBinDir = path.dirname(claudeBin);
58
- const ext = process.platform === 'win32' ? '.cmd' : '';
63
+ wrapperDirs.add(path.dirname(claudeBin));
64
+ } catch {
65
+ // claude not in PATH
66
+ }
59
67
 
68
+ // ~/.local/bin (common on Linux/macOS, also used on Windows)
69
+ wrapperDirs.add(path.join(home, '.local', 'bin'));
70
+
71
+ for (const dir of wrapperDirs) {
60
72
  for (const name of CLI_BINS) {
61
- const filePath = path.join(claudeBinDir, `${name}${ext}`);
73
+ const filePath = path.join(dir, `${name}${ext}`);
62
74
  if (fs.existsSync(filePath)) {
63
75
  fs.unlinkSync(filePath);
64
76
  cliBinsRemoved = true;
65
77
  }
66
78
  }
67
- } catch {
68
- // claude not in PATH — nothing to remove
69
79
  }
70
80
 
71
- // Remove plugin cache (old versions left by Claude Code)
81
+ // Remove from installed_plugins.json
82
+ const PLUGIN_KEY = 'claude-notification-plugin@bazilio-plugins';
83
+ const installedPluginsPath = path.join(claudeDir, 'plugins', 'installed_plugins.json');
84
+ let pluginEntryRemoved = false;
85
+ if (fs.existsSync(installedPluginsPath)) {
86
+ try {
87
+ const data = JSON.parse(fs.readFileSync(installedPluginsPath, 'utf-8'));
88
+ if (data.plugins?.[PLUGIN_KEY]) {
89
+ delete data.plugins[PLUGIN_KEY];
90
+ fs.writeFileSync(installedPluginsPath, JSON.stringify(data, null, 2));
91
+ pluginEntryRemoved = true;
92
+ }
93
+ } catch {
94
+ // ignore
95
+ }
96
+ }
97
+
98
+ // Remove plugin cache
72
99
  const pluginCacheDir = path.join(claudeDir, 'plugins', 'cache', 'bazilio-plugins', 'claude-notification-plugin');
73
100
  let cacheRemoved = false;
74
101
  if (fs.existsSync(pluginCacheDir)) {
@@ -80,8 +107,8 @@ console.log('');
80
107
  console.log('Claude Notification Plugin uninstalled.');
81
108
  console.log('Hooks removed from settings.json');
82
109
  console.log('Config files deleted.');
83
- if (cacheRemoved) {
84
- console.log('Plugin cache cleaned.');
110
+ if (pluginEntryRemoved || cacheRemoved) {
111
+ console.log('Plugin registration cleaned.');
85
112
  }
86
113
  if (cliBinsRemoved) {
87
114
  console.log('CLI wrapper scripts removed.');
package/package.json CHANGED
@@ -1,60 +1,60 @@
1
- {
2
- "name": "claude-notification-plugin",
3
- "productName": "claude-notification-plugin",
4
- "version": "1.0.88",
5
- "description": "Claude Code task-completion notifications: Telegram, desktop notifications (Windows/macOS/Linux), sound, and voice",
6
- "type": "module",
7
- "engines": {
8
- "node": ">=18.0.0"
9
- },
10
- "files": [
11
- ".claude-plugin/",
12
- "bin/",
13
- "hooks/",
14
- "listener/",
15
- "notifier/",
16
- "README.md",
17
- "LICENSE"
18
- ],
19
- "bin": {
20
- "claude-notify-install": "bin/install.js",
21
- "claude-notify-uninstall": "bin/uninstall.js",
22
- "claude-notifier": "notifier/notifier.js",
23
- "claude-notify-listener": "bin/listener-cli.js"
24
- },
25
- "scripts": {
26
- "preuninstall": "node bin/uninstall.js",
27
- "postinstall": "node bin/install.js",
28
- "lint": "eslint .",
29
- "lint:fix": "eslint --fix ."
30
- },
31
- "keywords": [
32
- "claude",
33
- "claude-code",
34
- "notifications",
35
- "telegram",
36
- "hooks",
37
- "macos",
38
- "linux",
39
- "cross-platform"
40
- ],
41
- "author": {
42
- "name": "Viacheslav Makarov",
43
- "email": "npmjs@bazilio.ru"
44
- },
45
- "license": "MIT",
46
- "repository": {
47
- "type": "git",
48
- "url": "git+https://github.com/Bazilio-san/claude-notification-plugin.git"
49
- },
50
- "homepage": "https://github.com/Bazilio-san/claude-notification-plugin#readme",
51
- "publishConfig": {
52
- "access": "public"
53
- },
54
- "dependencies": {
55
- "node-notifier": "^10.0.1"
56
- },
57
- "devDependencies": {
58
- "eslint-plugin-import": "^2.31.0"
59
- }
60
- }
1
+ {
2
+ "name": "claude-notification-plugin",
3
+ "productName": "claude-notification-plugin",
4
+ "version": "1.0.90",
5
+ "description": "Claude Code task-completion notifications: Telegram, desktop notifications (Windows/macOS/Linux), sound, and voice",
6
+ "type": "module",
7
+ "engines": {
8
+ "node": ">=18.0.0"
9
+ },
10
+ "files": [
11
+ ".claude-plugin/",
12
+ "bin/",
13
+ "hooks/",
14
+ "listener/",
15
+ "notifier/",
16
+ "README.md",
17
+ "LICENSE"
18
+ ],
19
+ "bin": {
20
+ "claude-notify-install": "bin/install.js",
21
+ "claude-notify-uninstall": "bin/uninstall.js",
22
+ "claude-notifier": "notifier/notifier.js",
23
+ "claude-notify-listener": "bin/listener-cli.js"
24
+ },
25
+ "scripts": {
26
+ "preuninstall": "node bin/uninstall.js",
27
+ "postinstall": "node bin/install.js",
28
+ "lint": "eslint .",
29
+ "lint:fix": "eslint --fix ."
30
+ },
31
+ "keywords": [
32
+ "claude",
33
+ "claude-code",
34
+ "notifications",
35
+ "telegram",
36
+ "hooks",
37
+ "macos",
38
+ "linux",
39
+ "cross-platform"
40
+ ],
41
+ "author": {
42
+ "name": "Viacheslav Makarov",
43
+ "email": "npmjs@bazilio.ru"
44
+ },
45
+ "license": "MIT",
46
+ "repository": {
47
+ "type": "git",
48
+ "url": "git+https://github.com/Bazilio-san/claude-notification-plugin.git"
49
+ },
50
+ "homepage": "https://github.com/Bazilio-san/claude-notification-plugin#readme",
51
+ "publishConfig": {
52
+ "access": "public"
53
+ },
54
+ "dependencies": {
55
+ "node-notifier": "^10.0.1"
56
+ },
57
+ "devDependencies": {
58
+ "eslint-plugin-import": "^2.31.0"
59
+ }
60
+ }