opencode-notification-macos 1.0.0 → 1.0.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.
- package/dist/cli.js +18 -16
- package/dist/cli.js.map +1 -1
- package/dist/config.js +23 -17
- package/dist/config.js.map +1 -1
- package/dist/index.js +30 -13
- package/dist/index.js.map +1 -1
- package/dist/sound.js +20 -13
- package/dist/sound.js.map +1 -1
- package/dist/types.js +5 -2
- package/dist/types.js.map +1 -1
- package/package.json +3 -3
package/dist/cli.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const fs_1 = require("fs");
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
const os_1 = require("os");
|
|
7
|
+
const child_process_1 = require("child_process");
|
|
8
|
+
const util_1 = require("util");
|
|
9
|
+
const execAsync = (0, util_1.promisify)(child_process_1.exec);
|
|
8
10
|
const SYSTEM_SOUNDS_PATH = '/System/Library/Sounds';
|
|
9
11
|
const DEFAULT_CONFIG = {
|
|
10
12
|
sound: true,
|
|
@@ -19,7 +21,7 @@ const DEFAULT_CONFIG = {
|
|
|
19
21
|
}
|
|
20
22
|
};
|
|
21
23
|
function getGlobalConfigPath() {
|
|
22
|
-
return join(homedir(), '.config', 'opencode', 'opencode-notification-macos.json');
|
|
24
|
+
return (0, path_1.join)((0, os_1.homedir)(), '.config', 'opencode', 'opencode-notification-macos.json');
|
|
23
25
|
}
|
|
24
26
|
function listAvailableSounds() {
|
|
25
27
|
return [
|
|
@@ -29,7 +31,7 @@ function listAvailableSounds() {
|
|
|
29
31
|
];
|
|
30
32
|
}
|
|
31
33
|
async function playSound(soundName) {
|
|
32
|
-
const soundPath = join(SYSTEM_SOUNDS_PATH, `${soundName}.aiff`);
|
|
34
|
+
const soundPath = (0, path_1.join)(SYSTEM_SOUNDS_PATH, `${soundName}.aiff`);
|
|
33
35
|
try {
|
|
34
36
|
await execAsync(`afplay "${soundPath}"`);
|
|
35
37
|
}
|
|
@@ -64,14 +66,14 @@ async function previewSound(args) {
|
|
|
64
66
|
}
|
|
65
67
|
async function showConfig() {
|
|
66
68
|
const configPath = getGlobalConfigPath();
|
|
67
|
-
if (!existsSync(configPath)) {
|
|
69
|
+
if (!(0, fs_1.existsSync)(configPath)) {
|
|
68
70
|
console.log('\n⚙️ No configuration found. Using defaults:\n');
|
|
69
71
|
console.log(JSON.stringify(DEFAULT_CONFIG, null, 2));
|
|
70
72
|
console.log(`\nConfig path: ${configPath}\n`);
|
|
71
73
|
return;
|
|
72
74
|
}
|
|
73
75
|
try {
|
|
74
|
-
const config = JSON.parse(readFileSync(configPath, 'utf8'));
|
|
76
|
+
const config = JSON.parse((0, fs_1.readFileSync)(configPath, 'utf8'));
|
|
75
77
|
console.log('\n📋 Current Configuration:\n');
|
|
76
78
|
console.log(JSON.stringify(config, null, 2));
|
|
77
79
|
console.log(`\nConfig path: ${configPath}\n`);
|
|
@@ -83,8 +85,8 @@ async function showConfig() {
|
|
|
83
85
|
async function resetConfig() {
|
|
84
86
|
const configPath = getGlobalConfigPath();
|
|
85
87
|
try {
|
|
86
|
-
mkdirSync(dirname(configPath), { recursive: true });
|
|
87
|
-
writeFileSync(configPath, JSON.stringify(DEFAULT_CONFIG, null, 2));
|
|
88
|
+
(0, fs_1.mkdirSync)((0, path_1.dirname)(configPath), { recursive: true });
|
|
89
|
+
(0, fs_1.writeFileSync)(configPath, JSON.stringify(DEFAULT_CONFIG, null, 2));
|
|
88
90
|
console.log('\n✅ Configuration reset to defaults\n');
|
|
89
91
|
console.log(`Config saved to: ${configPath}\n`);
|
|
90
92
|
}
|
|
@@ -115,9 +117,9 @@ async function setSound(args) {
|
|
|
115
117
|
}
|
|
116
118
|
const configPath = getGlobalConfigPath();
|
|
117
119
|
let config = DEFAULT_CONFIG;
|
|
118
|
-
if (existsSync(configPath)) {
|
|
120
|
+
if ((0, fs_1.existsSync)(configPath)) {
|
|
119
121
|
try {
|
|
120
|
-
config = JSON.parse(readFileSync(configPath, 'utf8'));
|
|
122
|
+
config = JSON.parse((0, fs_1.readFileSync)(configPath, 'utf8'));
|
|
121
123
|
}
|
|
122
124
|
catch (e) {
|
|
123
125
|
// Use defaults
|
|
@@ -125,8 +127,8 @@ async function setSound(args) {
|
|
|
125
127
|
}
|
|
126
128
|
config.sounds[event] = soundName;
|
|
127
129
|
try {
|
|
128
|
-
mkdirSync(dirname(configPath), { recursive: true });
|
|
129
|
-
writeFileSync(configPath, JSON.stringify(config, null, 2));
|
|
130
|
+
(0, fs_1.mkdirSync)((0, path_1.dirname)(configPath), { recursive: true });
|
|
131
|
+
(0, fs_1.writeFileSync)(configPath, JSON.stringify(config, null, 2));
|
|
130
132
|
console.log(`\n✅ Set ${event} sound to ${soundName}\n`);
|
|
131
133
|
// Preview the sound
|
|
132
134
|
console.log(`🔊 Previewing ${soundName}...`);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AAEA,2BAAwE;AACxE,+BAAqC;AACrC,2BAA6B;AAC7B,iDAAqC;AACrC,+BAAiC;AAEjC,MAAM,SAAS,GAAG,IAAA,gBAAS,EAAC,oBAAI,CAAC,CAAC;AAElC,MAAM,kBAAkB,GAAG,wBAAwB,CAAC;AAEpD,MAAM,cAAc,GAAG;IACrB,KAAK,EAAE,IAAI;IACX,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,IAAI;IACrB,MAAM,EAAE;QACN,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,MAAM;QAClB,iBAAiB,EAAE,KAAK;KACzB;CACF,CAAC;AAEF,SAAS,mBAAmB;IAC1B,OAAO,IAAA,WAAI,EAAC,IAAA,YAAO,GAAE,EAAE,SAAS,EAAE,UAAU,EAAE,kCAAkC,CAAC,CAAC;AACpF,CAAC;AAED,SAAS,mBAAmB;IAC1B,OAAO;QACL,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;QAClD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ;QAChD,WAAW,EAAE,MAAM;KACpB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,SAAiB;IACxC,MAAM,SAAS,GAAG,IAAA,WAAI,EAAC,kBAAkB,EAAE,GAAG,SAAS,OAAO,CAAC,CAAC;IAChE,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,WAAW,SAAS,GAAG,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,gBAAgB;IAClB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU;IACvB,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;IACrC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,IAAc;IACxC,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;IAErC,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,IAAI,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;QACpE,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,KAAK,CAAC,CAAC;IACxC,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;IACvB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC1B,CAAC;AAED,KAAK,UAAU,UAAU;IACvB,MAAM,UAAU,GAAG,mBAAmB,EAAE,CAAC;IAEzC,IAAI,CAAC,IAAA,eAAU,EAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,kBAAkB,UAAU,IAAI,CAAC,CAAC;QAC9C,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,kBAAkB,UAAU,IAAI,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW;IACxB,MAAM,UAAU,GAAG,mBAAmB,EAAE,CAAC;IACzC,IAAI,CAAC;QACH,IAAA,cAAS,EAAC,IAAA,cAAO,EAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,IAAA,kBAAa,EAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,oBAAoB,UAAU,IAAI,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,IAAc;IACpC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC;IAChC,MAAM,WAAW,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,mBAAmB,CAAC,CAAC;IACzF,MAAM,WAAW,GAAG,mBAAmB,EAAE,CAAC;IAE1C,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;QAClF,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;QACrF,OAAO;IACT,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,oBAAoB,KAAK,EAAE,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACrD,OAAO;IACT,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACrD,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAG,mBAAmB,EAAE,CAAC;IACzC,IAAI,MAAM,GAAG,cAAc,CAAC;IAE5B,IAAI,IAAA,eAAU,EAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,eAAe;QACjB,CAAC;IACH,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,KAAmC,CAAC,GAAG,SAAS,CAAC;IAE/D,IAAI,CAAC;QACH,IAAA,cAAS,EAAC,IAAA,cAAO,EAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,IAAA,kBAAa,EAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,aAAa,SAAS,IAAI,CAAC,CAAC;QAExD,oBAAoB;QACpB,OAAO,CAAC,GAAG,CAAC,iBAAiB,SAAS,KAAK,CAAC,CAAC;QAC7C,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,MAAM;YACT,MAAM,UAAU,EAAE,CAAC;YACnB,MAAM;QACR,KAAK,SAAS;YACZ,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;YACzB,MAAM;QACR,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM;YACT,MAAM,UAAU,EAAE,CAAC;YACnB,MAAM;QACR,KAAK,OAAO;YACV,MAAM,WAAW,EAAE,CAAC;YACpB,MAAM;QACR,KAAK,WAAW;YACd,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;YACrB,MAAM;QACR;YACE,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BjB,CAAC,CAAC;IACD,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
|
package/dist/config.js
CHANGED
|
@@ -1,21 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getGlobalConfigPath = getGlobalConfigPath;
|
|
4
|
+
exports.getProjectConfigPath = getProjectConfigPath;
|
|
5
|
+
exports.loadConfig = loadConfig;
|
|
6
|
+
exports.saveConfig = saveConfig;
|
|
7
|
+
const fs_1 = require("fs");
|
|
8
|
+
const path_1 = require("path");
|
|
9
|
+
const os_1 = require("os");
|
|
10
|
+
const types_js_1 = require("./types.js");
|
|
11
|
+
function getGlobalConfigPath() {
|
|
12
|
+
return (0, path_1.join)((0, os_1.homedir)(), '.config', 'opencode', 'opencode-notification-macos.json');
|
|
7
13
|
}
|
|
8
|
-
|
|
9
|
-
return join(process.cwd(), '.opencode', 'notification.json');
|
|
14
|
+
function getProjectConfigPath() {
|
|
15
|
+
return (0, path_1.join)(process.cwd(), '.opencode', 'notification.json');
|
|
10
16
|
}
|
|
11
|
-
|
|
17
|
+
function loadConfig() {
|
|
12
18
|
const globalPath = getGlobalConfigPath();
|
|
13
19
|
const projectPath = getProjectConfigPath();
|
|
14
|
-
let config = { ...DEFAULT_CONFIG };
|
|
20
|
+
let config = { ...types_js_1.DEFAULT_CONFIG };
|
|
15
21
|
// Load global config
|
|
16
|
-
if (existsSync(globalPath)) {
|
|
22
|
+
if ((0, fs_1.existsSync)(globalPath)) {
|
|
17
23
|
try {
|
|
18
|
-
const globalConfig = JSON.parse(readFileSync(globalPath, 'utf8'));
|
|
24
|
+
const globalConfig = JSON.parse((0, fs_1.readFileSync)(globalPath, 'utf8'));
|
|
19
25
|
config = mergeConfig(config, globalConfig);
|
|
20
26
|
}
|
|
21
27
|
catch (e) {
|
|
@@ -23,9 +29,9 @@ export function loadConfig() {
|
|
|
23
29
|
}
|
|
24
30
|
}
|
|
25
31
|
// Load project config (overrides global)
|
|
26
|
-
if (existsSync(projectPath)) {
|
|
32
|
+
if ((0, fs_1.existsSync)(projectPath)) {
|
|
27
33
|
try {
|
|
28
|
-
const projectConfig = JSON.parse(readFileSync(projectPath, 'utf8'));
|
|
34
|
+
const projectConfig = JSON.parse((0, fs_1.readFileSync)(projectPath, 'utf8'));
|
|
29
35
|
config = mergeConfig(config, projectConfig);
|
|
30
36
|
}
|
|
31
37
|
catch (e) {
|
|
@@ -34,11 +40,11 @@ export function loadConfig() {
|
|
|
34
40
|
}
|
|
35
41
|
return config;
|
|
36
42
|
}
|
|
37
|
-
|
|
43
|
+
function saveConfig(config, isGlobal = true) {
|
|
38
44
|
const configPath = isGlobal ? getGlobalConfigPath() : getProjectConfigPath();
|
|
39
45
|
try {
|
|
40
|
-
mkdirSync(dirname(configPath), { recursive: true });
|
|
41
|
-
writeFileSync(configPath, JSON.stringify(config, null, 2));
|
|
46
|
+
(0, fs_1.mkdirSync)((0, path_1.dirname)(configPath), { recursive: true });
|
|
47
|
+
(0, fs_1.writeFileSync)(configPath, JSON.stringify(config, null, 2));
|
|
42
48
|
}
|
|
43
49
|
catch (e) {
|
|
44
50
|
console.error('[opencode-notification-macos] Failed to save config:', e);
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;AAKA,kDAEC;AAED,oDAEC;AAED,gCA2BC;AAED,gCAUC;AApDD,2BAAwE;AACxE,+BAAqC;AACrC,2BAA6B;AAC7B,yCAA0D;AAE1D,SAAgB,mBAAmB;IACjC,OAAO,IAAA,WAAI,EAAC,IAAA,YAAO,GAAE,EAAE,SAAS,EAAE,UAAU,EAAE,kCAAkC,CAAC,CAAC;AACpF,CAAC;AAED,SAAgB,oBAAoB;IAClC,OAAO,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,mBAAmB,CAAC,CAAC;AAC/D,CAAC;AAED,SAAgB,UAAU;IACxB,MAAM,UAAU,GAAG,mBAAmB,EAAE,CAAC;IACzC,MAAM,WAAW,GAAG,oBAAoB,EAAE,CAAC;IAE3C,IAAI,MAAM,GAAG,EAAE,GAAG,yBAAc,EAAE,CAAC;IAEnC,qBAAqB;IACrB,IAAI,IAAA,eAAU,EAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;YAClE,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,6DAA6D,EAAE,CAAC,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAED,yCAAyC;IACzC,IAAI,IAAA,eAAU,EAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;YACpE,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,8DAA8D,EAAE,CAAC,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,UAAU,CAAC,MAAoB,EAAE,WAAoB,IAAI;IACvE,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,oBAAoB,EAAE,CAAC;IAE7E,IAAI,CAAC;QACH,IAAA,cAAS,EAAC,IAAA,cAAO,EAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,IAAA,kBAAa,EAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,sDAAsD,EAAE,CAAC,CAAC,CAAC;QACzE,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,IAAkB,EAAE,QAA+B;IACtE,OAAO;QACL,GAAG,IAAI;QACP,GAAG,QAAQ;QACX,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE;QAC9C,QAAQ,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,QAAQ,CAAC,QAAQ,EAAE;QACpD,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE;KAC/C,CAAC;AACJ,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.default = opencodeNotificationMacOS;
|
|
18
|
+
const config_js_1 = require("./config.js");
|
|
19
|
+
const sound_js_1 = require("./sound.js");
|
|
3
20
|
function getSessionIDFromEvent(event) {
|
|
4
21
|
return event.data?.sessionID || event.sessionID || event.data?.id || null;
|
|
5
22
|
}
|
|
@@ -12,14 +29,14 @@ async function isChildSession(client, sessionID) {
|
|
|
12
29
|
return false;
|
|
13
30
|
}
|
|
14
31
|
}
|
|
15
|
-
|
|
16
|
-
const config = loadConfig();
|
|
32
|
+
async function opencodeNotificationMacOS({ client, directory }) {
|
|
33
|
+
const config = (0, config_js_1.loadConfig)();
|
|
17
34
|
const projectName = directory ? directory.split('/').pop() || null : null;
|
|
18
35
|
return {
|
|
19
36
|
event: async ({ event }) => {
|
|
20
37
|
// Permission events
|
|
21
38
|
if (event.type === 'permission.updated' || event.type === 'permission.asked') {
|
|
22
|
-
await handleEvent('permission', projectName, config);
|
|
39
|
+
await (0, sound_js_1.handleEvent)('permission', projectName, config);
|
|
23
40
|
}
|
|
24
41
|
// Session completion
|
|
25
42
|
if (event.type === 'session.idle') {
|
|
@@ -27,28 +44,28 @@ export default async function opencodeNotificationMacOS({ client, directory }) {
|
|
|
27
44
|
if (sessionID) {
|
|
28
45
|
const isChild = await isChildSession(client, sessionID);
|
|
29
46
|
const eventType = isChild ? 'subagent_complete' : 'complete';
|
|
30
|
-
await handleEvent(eventType, projectName, config);
|
|
47
|
+
await (0, sound_js_1.handleEvent)(eventType, projectName, config);
|
|
31
48
|
}
|
|
32
49
|
else {
|
|
33
|
-
await handleEvent('complete', projectName, config);
|
|
50
|
+
await (0, sound_js_1.handleEvent)('complete', projectName, config);
|
|
34
51
|
}
|
|
35
52
|
}
|
|
36
53
|
// Error events
|
|
37
54
|
if (event.type === 'session.error') {
|
|
38
|
-
await handleEvent('error', projectName, config);
|
|
55
|
+
await (0, sound_js_1.handleEvent)('error', projectName, config);
|
|
39
56
|
}
|
|
40
57
|
},
|
|
41
58
|
'permission.ask': async () => {
|
|
42
|
-
await handleEvent('permission', projectName, config);
|
|
59
|
+
await (0, sound_js_1.handleEvent)('permission', projectName, config);
|
|
43
60
|
},
|
|
44
61
|
'tool.execute.before': async (input) => {
|
|
45
62
|
if (input.tool === 'question') {
|
|
46
|
-
await handleEvent('question', projectName, config);
|
|
63
|
+
await (0, sound_js_1.handleEvent)('question', projectName, config);
|
|
47
64
|
}
|
|
48
65
|
}
|
|
49
66
|
};
|
|
50
67
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
68
|
+
__exportStar(require("./types.js"), exports);
|
|
69
|
+
__exportStar(require("./config.js"), exports);
|
|
70
|
+
__exportStar(require("./sound.js"), exports);
|
|
54
71
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAmCA,4CAuCC;AA1ED,2CAAyC;AACzC,yCAAyC;AAqBzC,SAAS,qBAAqB,CAAC,KAAY;IACzC,OAAO,KAAK,CAAC,IAAI,EAAE,SAAS,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,IAAI,CAAC;AAC5E,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,MAA+B,EAAE,SAAiB;IAC9E,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QACvE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAEc,KAAK,UAAU,yBAAyB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAiB;IAC1F,MAAM,MAAM,GAAG,IAAA,sBAAU,GAAE,CAAC;IAC5B,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAE1E,OAAO;QACL,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,EAAoB,EAAE,EAAE;YAC3C,oBAAoB;YACpB,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBAC7E,MAAM,IAAA,sBAAW,EAAC,YAAY,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;YACvD,CAAC;YAED,qBAAqB;YACrB,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBAClC,MAAM,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;gBAC/C,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;oBACxD,MAAM,SAAS,GAAc,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,UAAU,CAAC;oBACxE,MAAM,IAAA,sBAAW,EAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;gBACpD,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAA,sBAAW,EAAC,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC;YAED,eAAe;YACf,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBACnC,MAAM,IAAA,sBAAW,EAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,gBAAgB,EAAE,KAAK,IAAI,EAAE;YAC3B,MAAM,IAAA,sBAAW,EAAC,YAAY,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QACvD,CAAC;QAED,qBAAqB,EAAE,KAAK,EAAE,KAAuB,EAAE,EAAE;YACvD,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC9B,MAAM,IAAA,sBAAW,EAAC,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,6CAA2B;AAC3B,8CAA4B;AAC5B,6CAA2B"}
|
package/dist/sound.js
CHANGED
|
@@ -1,19 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getSoundPath = getSoundPath;
|
|
4
|
+
exports.playSound = playSound;
|
|
5
|
+
exports.showNotification = showNotification;
|
|
6
|
+
exports.handleEvent = handleEvent;
|
|
7
|
+
exports.listAvailableSounds = listAvailableSounds;
|
|
8
|
+
const child_process_1 = require("child_process");
|
|
9
|
+
const util_1 = require("util");
|
|
10
|
+
const fs_1 = require("fs");
|
|
11
|
+
const path_1 = require("path");
|
|
12
|
+
const execAsync = (0, util_1.promisify)(child_process_1.exec);
|
|
6
13
|
const SYSTEM_SOUNDS_PATH = '/System/Library/Sounds';
|
|
7
|
-
|
|
14
|
+
function getSoundPath(soundName) {
|
|
8
15
|
// Try system sounds
|
|
9
|
-
const systemPath = join(SYSTEM_SOUNDS_PATH, `${soundName}.aiff`);
|
|
10
|
-
if (existsSync(systemPath)) {
|
|
16
|
+
const systemPath = (0, path_1.join)(SYSTEM_SOUNDS_PATH, `${soundName}.aiff`);
|
|
17
|
+
if ((0, fs_1.existsSync)(systemPath)) {
|
|
11
18
|
return systemPath;
|
|
12
19
|
}
|
|
13
20
|
// Fallback to Glass
|
|
14
|
-
return join(SYSTEM_SOUNDS_PATH, 'Glass.aiff');
|
|
21
|
+
return (0, path_1.join)(SYSTEM_SOUNDS_PATH, 'Glass.aiff');
|
|
15
22
|
}
|
|
16
|
-
|
|
23
|
+
async function playSound(soundName) {
|
|
17
24
|
const soundPath = getSoundPath(soundName);
|
|
18
25
|
try {
|
|
19
26
|
await execAsync(`afplay "${soundPath}"`);
|
|
@@ -22,7 +29,7 @@ export async function playSound(soundName) {
|
|
|
22
29
|
// Silently fail - notifications shouldn't break workflow
|
|
23
30
|
}
|
|
24
31
|
}
|
|
25
|
-
|
|
32
|
+
async function showNotification(title, message) {
|
|
26
33
|
try {
|
|
27
34
|
const escapedTitle = title.replace(/"/g, '\\"');
|
|
28
35
|
const escapedMessage = message.replace(/"/g, '\\"');
|
|
@@ -32,7 +39,7 @@ export async function showNotification(title, message) {
|
|
|
32
39
|
// Silently fail
|
|
33
40
|
}
|
|
34
41
|
}
|
|
35
|
-
|
|
42
|
+
async function handleEvent(eventType, projectName, config) {
|
|
36
43
|
const title = config.showProjectName && projectName
|
|
37
44
|
? `OpenCode (${projectName})`
|
|
38
45
|
: 'OpenCode';
|
|
@@ -47,7 +54,7 @@ export async function handleEvent(eventType, projectName, config) {
|
|
|
47
54
|
await playSound(soundName);
|
|
48
55
|
}
|
|
49
56
|
}
|
|
50
|
-
|
|
57
|
+
function listAvailableSounds() {
|
|
51
58
|
return [
|
|
52
59
|
'Basso', 'Blow', 'Bottle', 'Frog', 'Funk', 'Glass',
|
|
53
60
|
'Hero', 'Morse', 'Ping', 'Pop', 'Purr', 'Sosumi',
|
package/dist/sound.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sound.js","sourceRoot":"","sources":["../src/sound.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sound.js","sourceRoot":"","sources":["../src/sound.ts"],"names":[],"mappings":";;AAUA,oCASC;AAED,8BAQC;AAED,4CAQC;AAED,kCAqBC;AAED,kDAMC;AAtED,iDAAqC;AACrC,+BAAiC;AACjC,2BAAgC;AAChC,+BAA4B;AAG5B,MAAM,SAAS,GAAG,IAAA,gBAAS,EAAC,oBAAI,CAAC,CAAC;AAElC,MAAM,kBAAkB,GAAG,wBAAwB,CAAC;AAEpD,SAAgB,YAAY,CAAC,SAAiB;IAC5C,oBAAoB;IACpB,MAAM,UAAU,GAAG,IAAA,WAAI,EAAC,kBAAkB,EAAE,GAAG,SAAS,OAAO,CAAC,CAAC;IACjE,IAAI,IAAA,eAAU,EAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,oBAAoB;IACpB,OAAO,IAAA,WAAI,EAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC;AAChD,CAAC;AAEM,KAAK,UAAU,SAAS,CAAC,SAAiB;IAC/C,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IAE1C,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,WAAW,SAAS,GAAG,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,yDAAyD;IAC3D,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,gBAAgB,CAAC,KAAa,EAAE,OAAe;IACnE,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAChD,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACpD,MAAM,SAAS,CAAC,uCAAuC,cAAc,iBAAiB,YAAY,IAAI,CAAC,CAAC;IAC1G,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,gBAAgB;IAClB,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,WAAW,CAC/B,SAAoB,EACpB,WAA0B,EAC1B,MAAqI;IAErI,MAAM,KAAK,GAAG,MAAM,CAAC,eAAe,IAAI,WAAW;QACjD,CAAC,CAAC,aAAa,WAAW,GAAG;QAC7B,CAAC,CAAC,UAAU,CAAC;IAEf,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAE3C,oBAAoB;IACpB,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,MAAM,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,aAAa;IACb,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,SAAgB,mBAAmB;IACjC,OAAO;QACL,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;QAClD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ;QAChD,WAAW,EAAE,MAAM;KACpB,CAAC;AACJ,CAAC"}
|
package/dist/types.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_CONFIG = exports.SYSTEM_SOUNDS = void 0;
|
|
4
|
+
exports.SYSTEM_SOUNDS = [
|
|
2
5
|
'Basso',
|
|
3
6
|
'Blow',
|
|
4
7
|
'Bottle',
|
|
@@ -14,7 +17,7 @@ export const SYSTEM_SOUNDS = [
|
|
|
14
17
|
'Submarine',
|
|
15
18
|
'Tink'
|
|
16
19
|
];
|
|
17
|
-
|
|
20
|
+
exports.DEFAULT_CONFIG = {
|
|
18
21
|
sound: true,
|
|
19
22
|
notification: true,
|
|
20
23
|
showProjectName: true,
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAoCa,QAAA,aAAa,GAAG;IAC3B,OAAO;IACP,MAAM;IACN,QAAQ;IACR,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,QAAQ;IACR,WAAW;IACX,MAAM;CACE,CAAC;AAEE,QAAA,cAAc,GAAiB;IAC1C,KAAK,EAAE,IAAI;IACX,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,IAAI;IACrB,MAAM,EAAE;QACN,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE;QAC7C,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE;QAC1C,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE;QAC7C,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE;QAC/C,iBAAiB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE;KACzD;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,kBAAkB;QAC5B,KAAK,EAAE,kBAAkB;QACzB,QAAQ,EAAE,6BAA6B;QACvC,UAAU,EAAE,wBAAwB;QACpC,iBAAiB,EAAE,mBAAmB;KACvC;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,MAAM;QAClB,iBAAiB,EAAE,KAAK;KACzB;CACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opencode-notification-macos",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "Native macOS notifications and sounds for OpenCode - zero dependencies",
|
|
5
|
-
"type": "module",
|
|
6
5
|
"main": "./dist/index.js",
|
|
7
6
|
"types": "./dist/index.d.ts",
|
|
8
7
|
"bin": {
|
|
@@ -11,7 +10,8 @@
|
|
|
11
10
|
"exports": {
|
|
12
11
|
".": {
|
|
13
12
|
"types": "./dist/index.d.ts",
|
|
14
|
-
"
|
|
13
|
+
"require": "./dist/index.js",
|
|
14
|
+
"default": "./dist/index.js"
|
|
15
15
|
}
|
|
16
16
|
},
|
|
17
17
|
"files": [
|