mcpal 1.3.1 → 1.3.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.
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/notify.d.ts.map +1 -1
- package/dist/notify.js +74 -27
- package/dist/notify.js.map +1 -1
- package/dist/scripts/setup-notifier.d.ts +5 -1
- package/dist/scripts/setup-notifier.d.ts.map +1 -1
- package/dist/scripts/setup-notifier.js +154 -66
- package/dist/scripts/setup-notifier.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -5,6 +5,7 @@ const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
|
|
|
5
5
|
const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
|
|
6
6
|
const zod_1 = require("zod");
|
|
7
7
|
const notify_js_1 = require("./notify.js");
|
|
8
|
+
const setup_notifier_js_1 = require("./scripts/setup-notifier.js");
|
|
8
9
|
const server = new mcp_js_1.McpServer({
|
|
9
10
|
name: "mcpal",
|
|
10
11
|
version: "1.0.0",
|
|
@@ -99,6 +100,8 @@ server.registerTool("send_notification", {
|
|
|
99
100
|
}
|
|
100
101
|
});
|
|
101
102
|
async function main() {
|
|
103
|
+
// Ensure MCPal.app is set up (handles npx installs where postinstall doesn't run)
|
|
104
|
+
await (0, setup_notifier_js_1.ensureMcpalAppSetup)();
|
|
102
105
|
const transport = new stdio_js_1.StdioServerTransport();
|
|
103
106
|
await server.connect(transport);
|
|
104
107
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAEA,oEAAoE;AACpE,wEAAiF;AACjF,6BAAwB;AAExB,2CAA+D;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/notify.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notify.d.ts","sourceRoot":"","sources":["../src/notify.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"notify.d.ts","sourceRoot":"","sources":["../src/notify.ts"],"names":[],"mappings":"AAiIA,wBAAgB,eAAe,IAAI,MAAM,GAAG,SAAS,CAmBpD;AAGD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAQ/C,CAAC;AAEF,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,wBAAwB,CACtC,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,GAAG,SAAS,CAoBpB;AAOD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAgCD,wBAAgB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAwBpE"}
|
package/dist/notify.js
CHANGED
|
@@ -13,39 +13,86 @@ const node_notifier_1 = __importDefault(require("node-notifier"));
|
|
|
13
13
|
const os_1 = __importDefault(require("os"));
|
|
14
14
|
const path_1 = __importDefault(require("path"));
|
|
15
15
|
const isMacOS = os_1.default.platform() === "darwin";
|
|
16
|
-
//
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
16
|
+
// Get the package root directory
|
|
17
|
+
const packageRoot = path_1.default.resolve(__dirname, "..");
|
|
18
|
+
/**
|
|
19
|
+
* Find all potential mac.noindex directories containing terminal-notifier.app or MCPal.app.
|
|
20
|
+
* Searches local node_modules and npx cache directories.
|
|
21
|
+
*/
|
|
22
|
+
function findAllNotifierDirs() {
|
|
23
|
+
const dirs = [];
|
|
24
|
+
// 1. Local node_modules (npm/yarn)
|
|
25
|
+
dirs.push(path_1.default.join(packageRoot, "node_modules", "node-notifier", "vendor", "mac.noindex"));
|
|
26
|
+
// 2. Local node_modules (pnpm)
|
|
27
|
+
const localPnpmDir = path_1.default.join(packageRoot, "node_modules", ".pnpm");
|
|
28
|
+
if (fs_1.default.existsSync(localPnpmDir)) {
|
|
29
|
+
try {
|
|
30
|
+
const entries = fs_1.default.readdirSync(localPnpmDir);
|
|
31
|
+
const nodeNotifierDir = entries.find((e) => e.startsWith("node-notifier@"));
|
|
32
|
+
if (nodeNotifierDir) {
|
|
33
|
+
dirs.push(path_1.default.join(localPnpmDir, nodeNotifierDir, "node_modules", "node-notifier", "vendor", "mac.noindex"));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
// Ignore errors
|
|
30
38
|
}
|
|
31
39
|
}
|
|
32
|
-
|
|
33
|
-
|
|
40
|
+
// 3. npx cache locations
|
|
41
|
+
const npxCacheDirs = [
|
|
42
|
+
path_1.default.join(os_1.default.homedir(), ".npm", "_npx"),
|
|
43
|
+
path_1.default.join(os_1.default.homedir(), "Library", "Caches", "pnpm", "dlx"),
|
|
44
|
+
];
|
|
45
|
+
for (const cacheDir of npxCacheDirs) {
|
|
46
|
+
if (!fs_1.default.existsSync(cacheDir)) {
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
try {
|
|
50
|
+
const cacheEntries = fs_1.default.readdirSync(cacheDir);
|
|
51
|
+
for (const entry of cacheEntries) {
|
|
52
|
+
const entryPath = path_1.default.join(cacheDir, entry);
|
|
53
|
+
// npm structure: node_modules/node-notifier/vendor/mac.noindex
|
|
54
|
+
const npmPath = path_1.default.join(entryPath, "node_modules", "node-notifier", "vendor", "mac.noindex");
|
|
55
|
+
if (fs_1.default.existsSync(npmPath)) {
|
|
56
|
+
dirs.push(npmPath);
|
|
57
|
+
}
|
|
58
|
+
// mcpal's node_modules in npx cache
|
|
59
|
+
const mcpalPath = path_1.default.join(entryPath, "node_modules", "mcpal", "node_modules", "node-notifier", "vendor", "mac.noindex");
|
|
60
|
+
if (fs_1.default.existsSync(mcpalPath)) {
|
|
61
|
+
dirs.push(mcpalPath);
|
|
62
|
+
}
|
|
63
|
+
// pnpm structure in cache
|
|
64
|
+
const pnpmDir = path_1.default.join(entryPath, "node_modules", ".pnpm");
|
|
65
|
+
if (fs_1.default.existsSync(pnpmDir)) {
|
|
66
|
+
try {
|
|
67
|
+
const pnpmEntries = fs_1.default.readdirSync(pnpmDir);
|
|
68
|
+
const nodeNotifierDir = pnpmEntries.find((e) => e.startsWith("node-notifier@"));
|
|
69
|
+
if (nodeNotifierDir) {
|
|
70
|
+
dirs.push(path_1.default.join(pnpmDir, nodeNotifierDir, "node_modules", "node-notifier", "vendor", "mac.noindex"));
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
// Ignore errors
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
// Ignore errors reading cache directories
|
|
81
|
+
}
|
|
34
82
|
}
|
|
35
|
-
return
|
|
83
|
+
return dirs;
|
|
36
84
|
}
|
|
37
85
|
// Get the path to the renamed MCPal.app notifier executable
|
|
38
86
|
function getNotifierPath() {
|
|
39
|
-
const
|
|
40
|
-
const possiblePaths = [
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
];
|
|
87
|
+
const notifierDirs = findAllNotifierDirs();
|
|
88
|
+
const possiblePaths = [];
|
|
89
|
+
// For each directory, check MCPal.app first, then terminal-notifier.app as fallback
|
|
90
|
+
for (const dir of notifierDirs) {
|
|
91
|
+
possiblePaths.push(path_1.default.join(dir, "MCPal.app"));
|
|
92
|
+
}
|
|
93
|
+
for (const dir of notifierDirs) {
|
|
94
|
+
possiblePaths.push(path_1.default.join(dir, "terminal-notifier.app"));
|
|
95
|
+
}
|
|
49
96
|
for (const p of possiblePaths) {
|
|
50
97
|
const execPath = path_1.default.join(p, "Contents", "MacOS", "terminal-notifier");
|
|
51
98
|
if (fs_1.default.existsSync(execPath)) {
|
package/dist/notify.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notify.js","sourceRoot":"","sources":["../src/notify.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"notify.js","sourceRoot":"","sources":["../src/notify.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Ensure MCPal.app is set up correctly for macOS notifications.
|
|
4
|
+
* This function can be called at runtime (not just postinstall).
|
|
5
|
+
*/
|
|
6
|
+
export declare function ensureMcpalAppSetup(): Promise<void>;
|
|
3
7
|
//# sourceMappingURL=setup-notifier.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-notifier.d.ts","sourceRoot":"","sources":["../../src/scripts/setup-notifier.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"setup-notifier.d.ts","sourceRoot":"","sources":["../../src/scripts/setup-notifier.ts"],"names":[],"mappings":";AAoLA;;;GAGG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAoEzD"}
|
|
@@ -4,40 +4,112 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
5
|
};
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.ensureMcpalAppSetup = ensureMcpalAppSetup;
|
|
7
8
|
const fs_1 = __importDefault(require("fs"));
|
|
9
|
+
const os_1 = __importDefault(require("os"));
|
|
8
10
|
const path_1 = __importDefault(require("path"));
|
|
9
|
-
//
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
11
|
+
// Get the package root (where src/assets lives)
|
|
12
|
+
const packageRoot = path_1.default.resolve(__dirname, "..", "..");
|
|
13
|
+
/**
|
|
14
|
+
* Find all potential locations where node-notifier's terminal-notifier.app might be located.
|
|
15
|
+
* Searches both local node_modules and npx cache directories.
|
|
16
|
+
*/
|
|
17
|
+
function findAllTerminalNotifierPaths() {
|
|
18
|
+
const paths = [];
|
|
19
|
+
// 1. Local node_modules (npm/yarn)
|
|
20
|
+
paths.push(path_1.default.join(packageRoot, "node_modules", "node-notifier", "vendor", "mac.noindex", "terminal-notifier.app"));
|
|
21
|
+
// 2. Local node_modules (pnpm)
|
|
22
|
+
const localPnpmDir = path_1.default.join(packageRoot, "node_modules", ".pnpm");
|
|
23
|
+
if (fs_1.default.existsSync(localPnpmDir)) {
|
|
24
|
+
try {
|
|
25
|
+
const entries = fs_1.default.readdirSync(localPnpmDir);
|
|
26
|
+
const nodeNotifierDir = entries.find((e) => e.startsWith("node-notifier@"));
|
|
27
|
+
if (nodeNotifierDir) {
|
|
28
|
+
paths.push(path_1.default.join(localPnpmDir, nodeNotifierDir, "node_modules", "node-notifier", "vendor", "mac.noindex", "terminal-notifier.app"));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
// Ignore errors
|
|
33
|
+
}
|
|
20
34
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
35
|
+
// 3. npx cache locations
|
|
36
|
+
const npxCacheDirs = [
|
|
37
|
+
// npm npx cache
|
|
38
|
+
path_1.default.join(os_1.default.homedir(), ".npm", "_npx"),
|
|
39
|
+
// pnpm dlx cache
|
|
40
|
+
path_1.default.join(os_1.default.homedir(), "Library", "Caches", "pnpm", "dlx"),
|
|
41
|
+
];
|
|
42
|
+
for (const cacheDir of npxCacheDirs) {
|
|
43
|
+
if (!fs_1.default.existsSync(cacheDir)) {
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
try {
|
|
47
|
+
// Search recursively for node-notifier in cache
|
|
48
|
+
const cacheEntries = fs_1.default.readdirSync(cacheDir);
|
|
49
|
+
for (const entry of cacheEntries) {
|
|
50
|
+
const entryPath = path_1.default.join(cacheDir, entry);
|
|
51
|
+
// Check for node-notifier in standard npm structure
|
|
52
|
+
const npmPath = path_1.default.join(entryPath, "node_modules", "node-notifier", "vendor", "mac.noindex", "terminal-notifier.app");
|
|
53
|
+
if (fs_1.default.existsSync(npmPath)) {
|
|
54
|
+
paths.push(npmPath);
|
|
55
|
+
}
|
|
56
|
+
// Check for node-notifier in mcpal's node_modules (npx installs mcpal which has node-notifier as dep)
|
|
57
|
+
const mcpalPath = path_1.default.join(entryPath, "node_modules", "mcpal", "node_modules", "node-notifier", "vendor", "mac.noindex", "terminal-notifier.app");
|
|
58
|
+
if (fs_1.default.existsSync(mcpalPath)) {
|
|
59
|
+
paths.push(mcpalPath);
|
|
60
|
+
}
|
|
61
|
+
// Check pnpm structure in cache
|
|
62
|
+
const pnpmDir = path_1.default.join(entryPath, "node_modules", ".pnpm");
|
|
63
|
+
if (fs_1.default.existsSync(pnpmDir)) {
|
|
64
|
+
try {
|
|
65
|
+
const pnpmEntries = fs_1.default.readdirSync(pnpmDir);
|
|
66
|
+
const nodeNotifierDir = pnpmEntries.find((e) => e.startsWith("node-notifier@"));
|
|
67
|
+
if (nodeNotifierDir) {
|
|
68
|
+
paths.push(path_1.default.join(pnpmDir, nodeNotifierDir, "node_modules", "node-notifier", "vendor", "mac.noindex", "terminal-notifier.app"));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
// Ignore errors
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
// Ignore errors reading cache directories
|
|
28
79
|
}
|
|
29
80
|
}
|
|
30
|
-
|
|
31
|
-
|
|
81
|
+
return paths;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Find the first existing terminal-notifier.app or MCPal.app
|
|
85
|
+
*/
|
|
86
|
+
function findNotifierApp() {
|
|
87
|
+
const searchPaths = findAllTerminalNotifierPaths();
|
|
88
|
+
for (const appPath of searchPaths) {
|
|
89
|
+
// Check if already renamed to MCPal.app
|
|
90
|
+
const mcpalPath = path_1.default.join(path_1.default.dirname(appPath), "MCPal.app");
|
|
91
|
+
if (fs_1.default.existsSync(mcpalPath)) {
|
|
92
|
+
return { path: mcpalPath, isRenamed: true };
|
|
93
|
+
}
|
|
94
|
+
// Check if terminal-notifier.app exists
|
|
95
|
+
if (fs_1.default.existsSync(appPath)) {
|
|
96
|
+
return { path: appPath, isRenamed: false };
|
|
97
|
+
}
|
|
32
98
|
}
|
|
33
|
-
return
|
|
99
|
+
return null;
|
|
34
100
|
}
|
|
35
|
-
|
|
101
|
+
/**
|
|
102
|
+
* Find the icon source file. Checks multiple locations since the package
|
|
103
|
+
* structure differs between development and installed contexts.
|
|
104
|
+
*/
|
|
105
|
+
function findIconSource() {
|
|
36
106
|
const possiblePaths = [
|
|
37
|
-
//
|
|
38
|
-
path_1.default.join(
|
|
39
|
-
//
|
|
40
|
-
|
|
107
|
+
// Development: src/assets/mcpal.icns
|
|
108
|
+
path_1.default.join(packageRoot, "src", "assets", "mcpal.icns"),
|
|
109
|
+
// Built/installed: dist/assets/mcpal.icns
|
|
110
|
+
path_1.default.join(packageRoot, "dist", "assets", "mcpal.icns"),
|
|
111
|
+
// Relative to this script in dist
|
|
112
|
+
path_1.default.join(__dirname, "..", "assets", "mcpal.icns"),
|
|
41
113
|
];
|
|
42
114
|
for (const p of possiblePaths) {
|
|
43
115
|
if (fs_1.default.existsSync(p)) {
|
|
@@ -46,46 +118,62 @@ function findTerminalNotifier() {
|
|
|
46
118
|
}
|
|
47
119
|
return null;
|
|
48
120
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
//
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
//
|
|
64
|
-
if (
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
121
|
+
/**
|
|
122
|
+
* Ensure MCPal.app is set up correctly for macOS notifications.
|
|
123
|
+
* This function can be called at runtime (not just postinstall).
|
|
124
|
+
*/
|
|
125
|
+
async function ensureMcpalAppSetup() {
|
|
126
|
+
// Only run on macOS
|
|
127
|
+
if (process.platform !== "darwin") {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
const notifierApp = findNotifierApp();
|
|
131
|
+
if (!notifierApp) {
|
|
132
|
+
console.error("[MCPal] terminal-notifier.app not found, skipping setup");
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
// If already renamed and configured, we're done
|
|
136
|
+
if (notifierApp.isRenamed) {
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
const icnsSource = findIconSource();
|
|
140
|
+
if (!icnsSource) {
|
|
141
|
+
console.error("[MCPal] Icon file not found, skipping setup");
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
try {
|
|
145
|
+
const terminalNotifierApp = notifierApp.path;
|
|
146
|
+
const parentDir = path_1.default.dirname(terminalNotifierApp);
|
|
147
|
+
const mcpalApp = path_1.default.join(parentDir, "MCPal.app");
|
|
148
|
+
// Rename to MCPal.app
|
|
149
|
+
fs_1.default.renameSync(terminalNotifierApp, mcpalApp);
|
|
150
|
+
console.error("[MCPal] Renamed app bundle to MCPal.app");
|
|
151
|
+
const resourcesDir = path_1.default.join(mcpalApp, "Contents", "Resources");
|
|
152
|
+
const infoPlist = path_1.default.join(mcpalApp, "Contents", "Info.plist");
|
|
153
|
+
// Copy the new icon
|
|
154
|
+
const icnsDest = path_1.default.join(resourcesDir, "mcpal.icns");
|
|
155
|
+
fs_1.default.copyFileSync(icnsSource, icnsDest);
|
|
156
|
+
// Update Info.plist
|
|
157
|
+
let plistContent = fs_1.default.readFileSync(infoPlist, "utf8");
|
|
158
|
+
// Replace icon reference
|
|
159
|
+
plistContent = plistContent.replace(/<key>CFBundleIconFile<\/key>\s*<string>[^<]+<\/string>/, "<key>CFBundleIconFile</key>\n\t<string>mcpal</string>");
|
|
160
|
+
// Update bundle identifier
|
|
161
|
+
plistContent = plistContent.replace(/<key>CFBundleIdentifier<\/key>\s*<string>[^<]+<\/string>/, "<key>CFBundleIdentifier</key>\n\t<string>com.mcpal</string>");
|
|
162
|
+
// Update bundle name (shown in System Preferences > Notifications)
|
|
163
|
+
plistContent = plistContent.replace(/<key>CFBundleName<\/key>\s*<string>[^<]+<\/string>/, "<key>CFBundleName</key>\n\t<string>MCPal</string>");
|
|
164
|
+
fs_1.default.writeFileSync(infoPlist, plistContent);
|
|
165
|
+
console.error("[MCPal] macOS notification setup complete!");
|
|
166
|
+
}
|
|
167
|
+
catch (err) {
|
|
168
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
169
|
+
console.error("[MCPal] Failed to setup notification icon:", message);
|
|
170
|
+
// Don't throw - notification will still work, just with default branding
|
|
171
|
+
}
|
|
84
172
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
173
|
+
// Run directly if called as a script (postinstall)
|
|
174
|
+
if (require.main === module) {
|
|
175
|
+
ensureMcpalAppSetup()
|
|
176
|
+
.then(() => process.exit(0))
|
|
177
|
+
.catch(() => process.exit(0)); // Don't fail install
|
|
90
178
|
}
|
|
91
179
|
//# sourceMappingURL=setup-notifier.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-notifier.js","sourceRoot":"","sources":["../../src/scripts/setup-notifier.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"setup-notifier.js","sourceRoot":"","sources":["../../src/scripts/setup-notifier.ts"],"names":[],"mappings":"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"}
|