electron-native-speech 0.1.4 → 0.1.5

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/README.md CHANGED
@@ -8,7 +8,7 @@ This package provides the shared types and high-level API:
8
8
  - `transcribeFile()`
9
9
  - `createSpeechSession()`
10
10
 
11
- On macOS, it auto-loads `electron-native-speech-backend-macos` at runtime.
11
+ On macOS, it installs and auto-loads the bundled backend at runtime.
12
12
 
13
13
  ## Install
14
14
 
@@ -16,12 +16,7 @@ On macOS, it auto-loads `electron-native-speech-backend-macos` at runtime.
16
16
  npm install electron-native-speech
17
17
  ```
18
18
 
19
- On macOS, the backend package is normally installed automatically as an optional dependency.
20
- If your environment skips optional dependencies, install it explicitly:
21
-
22
- ```bash
23
- npm install electron-native-speech electron-native-speech-backend-macos
24
- ```
19
+ That single package install is the supported path for normal users.
25
20
 
26
21
  ## When to use this package
27
22
 
@@ -31,11 +26,10 @@ Use this package when you want:
31
26
  - direct access from Node or the Electron main process
32
27
  - a shared abstraction for custom backends or tests
33
28
 
34
- If you need to expose speech APIs to a context-isolated Electron renderer, also install:
29
+ For Electron preload and main-process wiring, import the helpers from this package:
35
30
 
36
- ```bash
37
- npm install electron-native-speech-preload
38
- ```
31
+ - `electron-native-speech/preload`
32
+ - `electron-native-speech/main-handlers`
39
33
 
40
34
  ## Usage
41
35
 
@@ -136,8 +130,9 @@ Windows and Linux backends are not published yet.
136
130
 
137
131
  For a complete Electron integration with `contextIsolation: true`, use:
138
132
 
139
- - `electron-native-speech` for the shared API and types
140
- - `electron-native-speech-preload` for the preload bridge and IPC handlers
133
+ - `electron-native-speech` for the shared API and runtime
134
+ - `electron-native-speech/preload` for the preload bridge
135
+ - `electron-native-speech/main-handlers` for IPC wiring in the main process
141
136
 
142
137
  Full documentation and examples:
143
138
 
@@ -22,7 +22,7 @@ function getBackend() {
22
22
  return _backend;
23
23
  }
24
24
  catch {
25
- (0, errors_1.throwSpeechError)("unavailable", "macOS speech backend not found. Run: npm install electron-native-speech-backend-macos");
25
+ (0, errors_1.throwSpeechError)("unavailable", "macOS speech backend not found. Reinstall electron-native-speech and verify dependencies were installed.");
26
26
  }
27
27
  }
28
28
  (0, errors_1.throwSpeechError)("unavailable", `Platform "${platform}" is not yet supported. electron-native-speech currently supports macOS.`);
@@ -1 +1 @@
1
- {"version":3,"file":"backend-loader.js","sourceRoot":"","sources":["../src/backend-loader.ts"],"names":[],"mappings":";;AAUA,gCAuBC;AAGD,gCAEC;AAED,oCAKC;AA5CD,qCAA2C;AAE3C,IAAI,QAAQ,GAA0B,IAAI,CAAA;AAE1C;;;;GAIG;AACH,SAAgB,UAAU;IACxB,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAE7B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;IAEjC,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,iEAAiE;YACjE,MAAM,GAAG,GAAG,OAAO,CAAC,sCAAsC,CAAC,CAAA;YAC3D,QAAQ,GAAG,IAAI,GAAG,CAAC,kBAAkB,EAAoB,CAAA;YACzD,OAAO,QAAQ,CAAA;QACjB,CAAC;QAAC,MAAM,CAAC;YACP,IAAA,yBAAgB,EACd,aAAa,EACb,uFAAuF,CACxF,CAAA;QACH,CAAC;IACH,CAAC;IAED,IAAA,yBAAgB,EACd,aAAa,EACb,aAAa,QAAQ,0EAA0E,CAChG,CAAA;AACH,CAAC;AAED,+CAA+C;AAC/C,SAAgB,UAAU,CAAC,OAAuB;IAChD,QAAQ,GAAG,OAAO,CAAA;AACpB,CAAC;AAED,SAAgB,YAAY;IAC1B,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IACpC,CAAC;IACD,QAAQ,GAAG,IAAI,CAAA;AACjB,CAAC"}
1
+ {"version":3,"file":"backend-loader.js","sourceRoot":"","sources":["../src/backend-loader.ts"],"names":[],"mappings":";;AAUA,gCAuBC;AAGD,gCAEC;AAED,oCAKC;AA5CD,qCAA2C;AAE3C,IAAI,QAAQ,GAA0B,IAAI,CAAA;AAE1C;;;;GAIG;AACH,SAAgB,UAAU;IACxB,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAE7B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;IAEjC,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,iEAAiE;YACjE,MAAM,GAAG,GAAG,OAAO,CAAC,sCAAsC,CAAC,CAAA;YAC3D,QAAQ,GAAG,IAAI,GAAG,CAAC,kBAAkB,EAAoB,CAAA;YACzD,OAAO,QAAQ,CAAA;QACjB,CAAC;QAAC,MAAM,CAAC;YACP,IAAA,yBAAgB,EACd,aAAa,EACb,0GAA0G,CAC3G,CAAA;QACH,CAAC;IACH,CAAC;IAED,IAAA,yBAAgB,EACd,aAAa,EACb,aAAa,QAAQ,0EAA0E,CAChG,CAAA;AACH,CAAC;AAED,+CAA+C;AAC/C,SAAgB,UAAU,CAAC,OAAuB;IAChD,QAAQ,GAAG,OAAO,CAAA;AACpB,CAAC;AAED,SAAgB,YAAY;IAC1B,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IACpC,CAAC;IACD,QAAQ,GAAG,IAAI,CAAA;AACjB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { IpcMain, WebContents } from "electron";
2
+ export declare function registerSpeechHandlers(ipcMain: IpcMain, webContents: WebContents): () => void;
3
+ //# sourceMappingURL=main-handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main-handlers.d.ts","sourceRoot":"","sources":["../src/main-handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAEpD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,GAAG,MAAM,IAAI,CAO7F"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerSpeechHandlers = registerSpeechHandlers;
4
+ function registerSpeechHandlers(ipcMain, webContents) {
5
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
6
+ const mod = require("electron-native-speech-preload/main-handlers");
7
+ return mod.registerSpeechHandlers(ipcMain, webContents);
8
+ }
9
+ //# sourceMappingURL=main-handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main-handlers.js","sourceRoot":"","sources":["../src/main-handlers.ts"],"names":[],"mappings":";;AAEA,wDAOC;AAPD,SAAgB,sBAAsB,CAAC,OAAgB,EAAE,WAAwB;IAC/E,iEAAiE;IACjE,MAAM,GAAG,GAAG,OAAO,CAAC,8CAA8C,CAEjE,CAAA;IAED,OAAO,GAAG,CAAC,sBAAsB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;AACzD,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { FileTranscriptionOptions, FileTranscriptionResult, LiveSpeechResult, SpeechAvailability, SpeechError, SpeechSessionStartOptions, SpeechSessionState } from "./types";
2
+ type SessionEventType = "result" | "error" | "state";
3
+ type SessionListener<T extends SessionEventType> = T extends "result" ? (result: LiveSpeechResult) => void : T extends "error" ? (error: SpeechError) => void : T extends "state" ? (state: SpeechSessionState) => void : never;
4
+ export interface RendererSpeechSession {
5
+ on<T extends SessionEventType>(event: T, listener: SessionListener<T>): () => void;
6
+ start(options?: SpeechSessionStartOptions): Promise<void>;
7
+ stop(): Promise<void>;
8
+ abort(): Promise<void>;
9
+ dispose(): Promise<void>;
10
+ }
11
+ export interface ElectronSpeechAPI {
12
+ getSpeechAvailability(): Promise<SpeechAvailability>;
13
+ transcribeFile(options: FileTranscriptionOptions): Promise<FileTranscriptionResult>;
14
+ createSpeechSession(): RendererSpeechSession;
15
+ }
16
+ export declare function exposeElectronSpeech(key?: string): void;
17
+ export {};
18
+ //# sourceMappingURL=preload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preload.d.ts","sourceRoot":"","sources":["../src/preload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,EACX,yBAAyB,EACzB,kBAAkB,EACnB,MAAM,SAAS,CAAA;AAEhB,KAAK,gBAAgB,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAA;AACpD,KAAK,eAAe,CAAC,CAAC,SAAS,gBAAgB,IAC7C,CAAC,SAAS,QAAQ,GAAG,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,GACrD,CAAC,SAAS,OAAO,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAChD,CAAC,SAAS,OAAO,GAAG,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,GACvD,KAAK,CAAA;AAET,MAAM,WAAW,qBAAqB;IACpC,EAAE,CAAC,CAAC,SAAS,gBAAgB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAA;IAClF,KAAK,CAAC,OAAO,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,qBAAqB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAAA;IACpD,cAAc,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAA;IACnF,mBAAmB,IAAI,qBAAqB,CAAA;CAC7C;AAED,wBAAgB,oBAAoB,CAAC,GAAG,SAAmB,GAAG,IAAI,CAOjE"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.exposeElectronSpeech = exposeElectronSpeech;
4
+ function exposeElectronSpeech(key = "electronSpeech") {
5
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
6
+ const mod = require("electron-native-speech-preload");
7
+ mod.exposeElectronSpeech(key);
8
+ }
9
+ //# sourceMappingURL=preload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preload.js","sourceRoot":"","sources":["../src/preload.ts"],"names":[],"mappings":";;AA+BA,oDAOC;AAPD,SAAgB,oBAAoB,CAAC,GAAG,GAAG,gBAAgB;IACzD,iEAAiE;IACjE,MAAM,GAAG,GAAG,OAAO,CAAC,gCAAgC,CAEnD,CAAA;IAED,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAA;AAC/B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "electron-native-speech",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
4
4
  "description": "Native OS speech transcription for Electron apps — fast, local, no cloud required",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -8,6 +8,24 @@
8
8
  ".": {
9
9
  "require": "./dist/index.js",
10
10
  "types": "./dist/index.d.ts"
11
+ },
12
+ "./preload": {
13
+ "require": "./dist/preload.js",
14
+ "types": "./dist/preload.d.ts"
15
+ },
16
+ "./main-handlers": {
17
+ "require": "./dist/main-handlers.js",
18
+ "types": "./dist/main-handlers.d.ts"
19
+ }
20
+ },
21
+ "typesVersions": {
22
+ "*": {
23
+ "preload": [
24
+ "dist/preload.d.ts"
25
+ ],
26
+ "main-handlers": [
27
+ "dist/main-handlers.d.ts"
28
+ ]
11
29
  }
12
30
  },
13
31
  "files": [
@@ -40,8 +58,8 @@
40
58
  "optional": true
41
59
  }
42
60
  },
43
- "optionalDependencies": {
44
- "electron-native-speech-backend-macos": ">=0.1.6",
45
- "electron-native-speech-preload": ">=0.1.4"
61
+ "dependencies": {
62
+ "electron-native-speech-backend-macos": "^0.1.6",
63
+ "electron-native-speech-preload": "^0.1.4"
46
64
  }
47
65
  }