voltkit 0.1.0

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.
Files changed (117) hide show
  1. package/dist/app.d.ts +61 -0
  2. package/dist/app.d.ts.map +1 -0
  3. package/dist/app.js +98 -0
  4. package/dist/app.js.map +1 -0
  5. package/dist/clipboard.d.ts +38 -0
  6. package/dist/clipboard.d.ts.map +1 -0
  7. package/dist/clipboard.js +64 -0
  8. package/dist/clipboard.js.map +1 -0
  9. package/dist/dialog.d.ts +95 -0
  10. package/dist/dialog.d.ts.map +1 -0
  11. package/dist/dialog.js +70 -0
  12. package/dist/dialog.js.map +1 -0
  13. package/dist/fs.d.ts +62 -0
  14. package/dist/fs.d.ts.map +1 -0
  15. package/dist/fs.js +110 -0
  16. package/dist/fs.js.map +1 -0
  17. package/dist/globalShortcut.d.ts +32 -0
  18. package/dist/globalShortcut.d.ts.map +1 -0
  19. package/dist/globalShortcut.js +103 -0
  20. package/dist/globalShortcut.js.map +1 -0
  21. package/dist/index.d.ts +26 -0
  22. package/dist/index.d.ts.map +1 -0
  23. package/dist/index.js +16 -0
  24. package/dist/index.js.map +1 -0
  25. package/dist/internal.d.ts +6 -0
  26. package/dist/internal.d.ts.map +1 -0
  27. package/dist/internal.js +6 -0
  28. package/dist/internal.js.map +1 -0
  29. package/dist/ipc-contract/aliases.d.ts +4 -0
  30. package/dist/ipc-contract/aliases.d.ts.map +1 -0
  31. package/dist/ipc-contract/aliases.js +38 -0
  32. package/dist/ipc-contract/aliases.js.map +1 -0
  33. package/dist/ipc-contract/define.d.ts +3 -0
  34. package/dist/ipc-contract/define.d.ts.map +1 -0
  35. package/dist/ipc-contract/define.js +7 -0
  36. package/dist/ipc-contract/define.js.map +1 -0
  37. package/dist/ipc-contract/handlers.d.ts +3 -0
  38. package/dist/ipc-contract/handlers.d.ts.map +1 -0
  39. package/dist/ipc-contract/handlers.js +26 -0
  40. package/dist/ipc-contract/handlers.js.map +1 -0
  41. package/dist/ipc-contract/invoker.d.ts +4 -0
  42. package/dist/ipc-contract/invoker.d.ts.map +1 -0
  43. package/dist/ipc-contract/invoker.js +32 -0
  44. package/dist/ipc-contract/invoker.js.map +1 -0
  45. package/dist/ipc-contract/schema.d.ts +17 -0
  46. package/dist/ipc-contract/schema.d.ts.map +1 -0
  47. package/dist/ipc-contract/schema.js +78 -0
  48. package/dist/ipc-contract/schema.js.map +1 -0
  49. package/dist/ipc-contract/types.d.ts +45 -0
  50. package/dist/ipc-contract/types.d.ts.map +1 -0
  51. package/dist/ipc-contract/types.js +17 -0
  52. package/dist/ipc-contract/types.js.map +1 -0
  53. package/dist/ipc-contract/validation.d.ts +4 -0
  54. package/dist/ipc-contract/validation.d.ts.map +1 -0
  55. package/dist/ipc-contract/validation.js +24 -0
  56. package/dist/ipc-contract/validation.js.map +1 -0
  57. package/dist/ipc-contract.d.ts +25 -0
  58. package/dist/ipc-contract.d.ts.map +1 -0
  59. package/dist/ipc-contract.js +9 -0
  60. package/dist/ipc-contract.js.map +1 -0
  61. package/dist/ipc.d.ts +85 -0
  62. package/dist/ipc.d.ts.map +1 -0
  63. package/dist/ipc.js +196 -0
  64. package/dist/ipc.js.map +1 -0
  65. package/dist/menu.d.ts +72 -0
  66. package/dist/menu.d.ts.map +1 -0
  67. package/dist/menu.js +179 -0
  68. package/dist/menu.js.map +1 -0
  69. package/dist/notification.d.ts +34 -0
  70. package/dist/notification.d.ts.map +1 -0
  71. package/dist/notification.js +42 -0
  72. package/dist/notification.js.map +1 -0
  73. package/dist/renderer.d.ts +9 -0
  74. package/dist/renderer.d.ts.map +1 -0
  75. package/dist/renderer.js +7 -0
  76. package/dist/renderer.js.map +1 -0
  77. package/dist/runtime-modules.d.ts +161 -0
  78. package/dist/runtime-modules.d.ts.map +1 -0
  79. package/dist/runtime-modules.js +2 -0
  80. package/dist/runtime-modules.js.map +1 -0
  81. package/dist/shell.d.ts +22 -0
  82. package/dist/shell.d.ts.map +1 -0
  83. package/dist/shell.js +36 -0
  84. package/dist/shell.js.map +1 -0
  85. package/dist/tray.d.ts +59 -0
  86. package/dist/tray.d.ts.map +1 -0
  87. package/dist/tray.js +114 -0
  88. package/dist/tray.js.map +1 -0
  89. package/dist/types.d.ts +200 -0
  90. package/dist/types.d.ts.map +1 -0
  91. package/dist/types.js +5 -0
  92. package/dist/types.js.map +1 -0
  93. package/dist/updater.d.ts +61 -0
  94. package/dist/updater.d.ts.map +1 -0
  95. package/dist/updater.js +128 -0
  96. package/dist/updater.js.map +1 -0
  97. package/dist/window/browser-window.d.ts +41 -0
  98. package/dist/window/browser-window.d.ts.map +1 -0
  99. package/dist/window/browser-window.js +219 -0
  100. package/dist/window/browser-window.js.map +1 -0
  101. package/dist/window/native-bridge.d.ts +13 -0
  102. package/dist/window/native-bridge.d.ts.map +1 -0
  103. package/dist/window/native-bridge.js +44 -0
  104. package/dist/window/native-bridge.js.map +1 -0
  105. package/dist/window/registry.d.ts +9 -0
  106. package/dist/window/registry.d.ts.map +1 -0
  107. package/dist/window/registry.js +32 -0
  108. package/dist/window/registry.js.map +1 -0
  109. package/dist/window/types.d.ts +23 -0
  110. package/dist/window/types.d.ts.map +1 -0
  111. package/dist/window/types.js +2 -0
  112. package/dist/window/types.js.map +1 -0
  113. package/dist/window.d.ts +3 -0
  114. package/dist/window.d.ts.map +1 -0
  115. package/dist/window.js +2 -0
  116. package/dist/window.js.map +1 -0
  117. package/package.json +51 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC3C,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,YAAY,EACZ,cAAc,EACd,SAAS,EACT,4BAA4B,EAC5B,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,SAAS,IAAI,aAAa,EAC1B,eAAe,GAChB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Renderer-safe entrypoint.
3
+ * Exposes only APIs that are valid in the WebView/browser context.
4
+ */
5
+ export { invoke, on, off } from './ipc.js';
6
+ export { createContractInvoker, createLegacyInvokeAdapter, createSchema, defineCommands, IpcSchema, isIpcContractValidationError, resolveContractChannel, IpcContractValidationError, } from './ipc-contract.js';
7
+ //# sourceMappingURL=renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,YAAY,EACZ,cAAc,EACd,SAAS,EACT,4BAA4B,EAC5B,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,161 @@
1
+ declare module 'volt:ipc' {
2
+ interface IpcMain {
3
+ handle(channel: string, handler: (args: unknown) => unknown | Promise<unknown>): void;
4
+ removeHandler(channel: string): void;
5
+ clearHandlers(): void;
6
+ hasHandler(channel: string): boolean;
7
+ emit(eventName: string, data?: unknown): void;
8
+ emitTo(windowId: string, eventName: string, data?: unknown): void;
9
+ }
10
+ const ipcMain: IpcMain;
11
+ }
12
+ declare module 'volt:events' {
13
+ function emit(eventName: string, data?: unknown): void;
14
+ function emitTo(windowId: string, eventName: string, data?: unknown): void;
15
+ }
16
+ declare module 'volt:window' {
17
+ function close(windowId?: string): void;
18
+ function show(windowId?: string): void;
19
+ function focus(windowId?: string): void;
20
+ function maximize(windowId?: string): void;
21
+ function minimize(windowId?: string): void;
22
+ function restore(windowId?: string): void;
23
+ function getWindowCount(): Promise<number>;
24
+ function quit(): void;
25
+ }
26
+ declare module 'volt:menu' {
27
+ function setAppMenu(template: unknown): Promise<void>;
28
+ function on(eventName: 'click', handler: (payload: unknown) => void): void;
29
+ function off(eventName: 'click', handler: (payload: unknown) => void): void;
30
+ }
31
+ declare module 'volt:globalShortcut' {
32
+ function register(accelerator: string): Promise<number>;
33
+ function unregister(accelerator: string): Promise<void>;
34
+ function unregisterAll(): Promise<void>;
35
+ function on(eventName: 'triggered', handler: (payload: unknown) => void): void;
36
+ function off(eventName: 'triggered', handler: (payload: unknown) => void): void;
37
+ }
38
+ declare module 'volt:tray' {
39
+ interface TrayCreateOptions {
40
+ tooltip?: string;
41
+ icon?: string;
42
+ }
43
+ function create(options?: TrayCreateOptions): Promise<void>;
44
+ function setTooltip(tooltip: string): void;
45
+ function setVisible(visible: boolean): void;
46
+ function destroy(): void;
47
+ function on(eventName: 'click', handler: (payload: unknown) => void): void;
48
+ function off(eventName: 'click', handler: (payload: unknown) => void): void;
49
+ }
50
+ declare module 'volt:db' {
51
+ interface DbExecuteResult {
52
+ rowsAffected: number;
53
+ }
54
+ function open(path: string): Promise<void>;
55
+ function close(): Promise<void>;
56
+ function execute(sql: string, params?: unknown[]): Promise<DbExecuteResult>;
57
+ function query(sql: string, params?: unknown[]): Promise<unknown[]>;
58
+ function queryOne(sql: string, params?: unknown[]): Promise<unknown | null>;
59
+ function transaction<T>(callback: () => Promise<T> | T): Promise<T>;
60
+ }
61
+ declare module 'volt:secureStorage' {
62
+ export function set(key: string, value: string): Promise<void>;
63
+ export function get(key: string): Promise<string | null>;
64
+ function remove(key: string): Promise<void>;
65
+ export { remove as delete };
66
+ export function has(key: string): Promise<boolean>;
67
+ }
68
+ declare module 'volt:clipboard' {
69
+ function readText(): string;
70
+ function writeText(text: string): void;
71
+ }
72
+ declare module 'volt:crypto' {
73
+ function sha256(data: string): string;
74
+ function base64Encode(data: string): string;
75
+ function base64Decode(data: string): string;
76
+ }
77
+ declare module 'volt:os' {
78
+ function platform(): string;
79
+ function arch(): string;
80
+ function homeDir(): string;
81
+ function tempDir(): string;
82
+ }
83
+ declare module 'volt:shell' {
84
+ function openExternal(url: string): Promise<void>;
85
+ function showItemInFolder(path: string): void;
86
+ }
87
+ declare module 'volt:notification' {
88
+ interface NotificationOptions {
89
+ title: string;
90
+ body?: string;
91
+ icon?: string;
92
+ }
93
+ function show(options: NotificationOptions): void;
94
+ }
95
+ declare module 'volt:dialog' {
96
+ interface FileFilter {
97
+ name: string;
98
+ extensions: string[];
99
+ }
100
+ interface OpenDialogOptions {
101
+ title?: string;
102
+ defaultPath?: string;
103
+ filters?: FileFilter[];
104
+ multiple?: boolean;
105
+ directory?: boolean;
106
+ }
107
+ interface SaveDialogOptions {
108
+ title?: string;
109
+ defaultPath?: string;
110
+ filters?: FileFilter[];
111
+ }
112
+ interface MessageDialogOptions {
113
+ dialogType?: 'info' | 'warning' | 'error';
114
+ title?: string;
115
+ message: string;
116
+ buttons?: string[];
117
+ }
118
+ function showOpen(options?: OpenDialogOptions): Promise<string | null>;
119
+ function showSave(options?: SaveDialogOptions): Promise<string | null>;
120
+ function showMessage(options: MessageDialogOptions): Promise<0 | 1>;
121
+ }
122
+ declare module 'volt:fs' {
123
+ function readFile(path: string): Promise<string>;
124
+ function writeFile(path: string, data: string): Promise<void>;
125
+ function readDir(path: string): Promise<string[]>;
126
+ function exists(path: string): Promise<boolean>;
127
+ function mkdir(path: string): Promise<void>;
128
+ function remove(path: string): Promise<void>;
129
+ }
130
+ declare module 'volt:http' {
131
+ interface HttpFetchRequest {
132
+ url: string;
133
+ method?: string;
134
+ headers?: Record<string, string>;
135
+ body?: unknown;
136
+ timeoutMs?: number;
137
+ }
138
+ interface HttpFetchResponse {
139
+ status: number;
140
+ headers: Record<string, string[]>;
141
+ text(): Promise<string>;
142
+ json(): Promise<unknown>;
143
+ }
144
+ function fetch(request: HttpFetchRequest): Promise<HttpFetchResponse>;
145
+ }
146
+ declare module 'volt:updater' {
147
+ interface UpdateCheckOptions {
148
+ url: string;
149
+ currentVersion: string;
150
+ }
151
+ interface UpdateInfo {
152
+ version: string;
153
+ url: string;
154
+ signature: string;
155
+ sha256: string;
156
+ }
157
+ function checkForUpdate(options: UpdateCheckOptions): Promise<UpdateInfo | null>;
158
+ function downloadAndInstall(updateInfo: UpdateInfo): Promise<void>;
159
+ function cancelDownloadAndInstall(): void;
160
+ }
161
+ //# sourceMappingURL=runtime-modules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-modules.d.ts","sourceRoot":"","sources":["../src/runtime-modules.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=runtime-modules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-modules.js","sourceRoot":"","sources":["../src/runtime-modules.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Shell module.
3
+ * Provides secure URL opening with protocol validation.
4
+ * Requires `permissions: ['shell']` in volt.config.ts.
5
+ */
6
+ /**
7
+ * Open a URL in the default system application.
8
+ * SECURITY: Only allows http, https, and mailto protocols.
9
+ * All other protocols (file://, javascript:, data:, etc.) are rejected.
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * await shell.openExternal('https://example.com');
14
+ * ```
15
+ */
16
+ declare function openExternal(url: string): Promise<void>;
17
+ /** Shell APIs. Requires `permissions: ['shell']` in volt.config.ts. */
18
+ export declare const shell: {
19
+ openExternal: typeof openExternal;
20
+ };
21
+ export {};
22
+ //# sourceMappingURL=shell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../src/shell.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;;;;;;GASG;AACH,iBAAe,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBtD;AAED,uEAAuE;AACvE,eAAO,MAAM,KAAK;;CAEjB,CAAC"}
package/dist/shell.js ADDED
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Shell module.
3
+ * Provides secure URL opening with protocol validation.
4
+ * Requires `permissions: ['shell']` in volt.config.ts.
5
+ */
6
+ import { shellOpenExternal } from '@voltkit/volt-native';
7
+ /**
8
+ * Open a URL in the default system application.
9
+ * SECURITY: Only allows http, https, and mailto protocols.
10
+ * All other protocols (file://, javascript:, data:, etc.) are rejected.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * await shell.openExternal('https://example.com');
15
+ * ```
16
+ */
17
+ async function openExternal(url) {
18
+ // Validate URL scheme on the TypeScript side as well (defense-in-depth)
19
+ const ALLOWED_SCHEMES = ['http:', 'https:', 'mailto:'];
20
+ let parsed;
21
+ try {
22
+ parsed = new URL(url);
23
+ }
24
+ catch {
25
+ throw new Error(`Invalid URL: ${url}`);
26
+ }
27
+ if (!ALLOWED_SCHEMES.includes(parsed.protocol)) {
28
+ throw new Error(`Protocol not allowed: '${parsed.protocol}'. Only http, https, and mailto are permitted.`);
29
+ }
30
+ shellOpenExternal(url);
31
+ }
32
+ /** Shell APIs. Requires `permissions: ['shell']` in volt.config.ts. */
33
+ export const shell = {
34
+ openExternal,
35
+ };
36
+ //# sourceMappingURL=shell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell.js","sourceRoot":"","sources":["../src/shell.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD;;;;;;;;;GASG;AACH,KAAK,UAAU,YAAY,CAAC,GAAW;IACrC,wEAAwE;IACxE,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IACvD,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CACb,0BAA0B,MAAM,CAAC,QAAQ,gDAAgD,CAC1F,CAAC;IACJ,CAAC;IAED,iBAAiB,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,uEAAuE;AACvE,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,YAAY;CACb,CAAC"}
package/dist/tray.d.ts ADDED
@@ -0,0 +1,59 @@
1
+ /**
2
+ * System tray module.
3
+ * Provides the `Tray` class for creating and managing system tray icons.
4
+ * Requires `permissions: ['tray']` in volt.config.ts.
5
+ */
6
+ import { EventEmitter } from 'node:events';
7
+ /** Options for creating a system tray icon. */
8
+ export interface TrayOptions {
9
+ /** Tooltip text shown on hover. */
10
+ tooltip?: string;
11
+ /** Path to the tray icon image (PNG). */
12
+ icon?: string;
13
+ /** Menu items to show in the tray context menu (currently unsupported). */
14
+ menu?: TrayMenuItem[];
15
+ }
16
+ /** A tray context menu item. */
17
+ export interface TrayMenuItem {
18
+ /** Display label. */
19
+ label: string;
20
+ /** Whether the item is enabled. Default: true. */
21
+ enabled?: boolean;
22
+ /** Item type: 'normal' or 'separator'. */
23
+ type?: 'normal' | 'separator';
24
+ /** Click handler. */
25
+ click?: () => void;
26
+ }
27
+ /**
28
+ * System tray icon.
29
+ * Electron-compatible API for creating and managing system tray icons.
30
+ *
31
+ * @example
32
+ * ```ts
33
+ * const tray = new Tray({ tooltip: 'My App', icon: './icon.png' });
34
+ * tray.on('click', () => { mainWindow.show(); });
35
+ * ```
36
+ */
37
+ export declare class Tray extends EventEmitter {
38
+ private _tooltip;
39
+ private _icon;
40
+ private _visible;
41
+ private _destroyed;
42
+ private _native;
43
+ constructor(options?: TrayOptions);
44
+ /** Set the tray tooltip text. */
45
+ setToolTip(tooltip: string): void;
46
+ /** Get the current tooltip text. */
47
+ getToolTip(): string;
48
+ /** Set the tray icon from a file path. */
49
+ setImage(iconPath: string): void;
50
+ /** Show or hide the tray icon. */
51
+ setVisible(visible: boolean): void;
52
+ /** Check if the tray icon is visible. */
53
+ isVisible(): boolean;
54
+ /** Destroy the tray icon and clean up resources. */
55
+ destroy(): void;
56
+ /** Check if the tray has been destroyed. */
57
+ isDestroyed(): boolean;
58
+ }
59
+ //# sourceMappingURL=tray.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tray.d.ts","sourceRoot":"","sources":["../src/tray.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAK3C,+CAA+C;AAC/C,MAAM,WAAW,WAAW;IAC1B,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,gCAAgC;AAChC,MAAM,WAAW,YAAY;IAC3B,qBAAqB;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0CAA0C;IAC1C,IAAI,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;IAC9B,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,qBAAa,IAAK,SAAQ,YAAY;IACpC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,OAAO,CAAW;gBAEd,OAAO,GAAE,WAAgB;IAwCrC,iCAAiC;IACjC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQjC,oCAAoC;IACpC,UAAU,IAAI,MAAM;IAIpB,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAQhC,kCAAkC;IAClC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQlC,yCAAyC;IACzC,SAAS,IAAI,OAAO;IAIpB,oDAAoD;IACpD,OAAO,IAAI,IAAI;IASf,4CAA4C;IAC5C,WAAW,IAAI,OAAO;CAGvB"}
package/dist/tray.js ADDED
@@ -0,0 +1,114 @@
1
+ /**
2
+ * System tray module.
3
+ * Provides the `Tray` class for creating and managing system tray icons.
4
+ * Requires `permissions: ['tray']` in volt.config.ts.
5
+ */
6
+ import { EventEmitter } from 'node:events';
7
+ import { VoltTray } from '@voltkit/volt-native';
8
+ import { getApp } from './app.js';
9
+ /**
10
+ * System tray icon.
11
+ * Electron-compatible API for creating and managing system tray icons.
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * const tray = new Tray({ tooltip: 'My App', icon: './icon.png' });
16
+ * tray.on('click', () => { mainWindow.show(); });
17
+ * ```
18
+ */
19
+ export class Tray extends EventEmitter {
20
+ _tooltip;
21
+ _icon;
22
+ _visible = true;
23
+ _destroyed = false;
24
+ _native;
25
+ constructor(options = {}) {
26
+ super();
27
+ requireTrayPermissions(options.icon ? ['tray', 'fs'] : ['tray'], 'new Tray()');
28
+ if (options.menu && options.menu.length > 0) {
29
+ console.warn('[volt] Tray menu is not supported yet and will be ignored.');
30
+ }
31
+ this._tooltip = options.tooltip ?? '';
32
+ this._icon = options.icon;
33
+ // Create the native tray via napi binding
34
+ this._native = new VoltTray({
35
+ tooltip: this._tooltip,
36
+ icon: this._icon,
37
+ });
38
+ // Wire native click events to the EventEmitter
39
+ this._native.onClick((err, eventJson) => {
40
+ if (err || typeof eventJson !== 'string') {
41
+ this.emit('click');
42
+ return;
43
+ }
44
+ let event;
45
+ try {
46
+ event = JSON.parse(eventJson);
47
+ }
48
+ catch {
49
+ event = undefined;
50
+ }
51
+ if (event !== undefined) {
52
+ this.emit('click', event);
53
+ }
54
+ else {
55
+ this.emit('click');
56
+ }
57
+ });
58
+ }
59
+ /** Set the tray tooltip text. */
60
+ setToolTip(tooltip) {
61
+ requireTrayPermissions(['tray'], 'Tray.setToolTip()');
62
+ this._tooltip = tooltip;
63
+ if (!this._destroyed) {
64
+ this._native.setTooltip(tooltip);
65
+ }
66
+ }
67
+ /** Get the current tooltip text. */
68
+ getToolTip() {
69
+ return this._tooltip;
70
+ }
71
+ /** Set the tray icon from a file path. */
72
+ setImage(iconPath) {
73
+ requireTrayPermissions(['tray', 'fs'], 'Tray.setImage()');
74
+ this._icon = iconPath;
75
+ if (!this._destroyed) {
76
+ this._native.setIcon(iconPath);
77
+ }
78
+ }
79
+ /** Show or hide the tray icon. */
80
+ setVisible(visible) {
81
+ requireTrayPermissions(['tray'], 'Tray.setVisible()');
82
+ this._visible = visible;
83
+ if (!this._destroyed) {
84
+ this._native.setVisible(visible);
85
+ }
86
+ }
87
+ /** Check if the tray icon is visible. */
88
+ isVisible() {
89
+ return this._visible;
90
+ }
91
+ /** Destroy the tray icon and clean up resources. */
92
+ destroy() {
93
+ requireTrayPermissions(['tray'], 'Tray.destroy()');
94
+ if (this._destroyed)
95
+ return;
96
+ this._destroyed = true;
97
+ this._visible = false;
98
+ this._native.destroy();
99
+ this.removeAllListeners();
100
+ }
101
+ /** Check if the tray has been destroyed. */
102
+ isDestroyed() {
103
+ return this._destroyed;
104
+ }
105
+ }
106
+ function requireTrayPermissions(required, apiName) {
107
+ const granted = new Set(getApp().getConfig().permissions ?? []);
108
+ for (const permission of required) {
109
+ if (!granted.has(permission)) {
110
+ throw new Error(`Permission denied: ${apiName} requires '${permission}' in volt.config.ts permissions.`);
111
+ }
112
+ }
113
+ }
114
+ //# sourceMappingURL=tray.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tray.js","sourceRoot":"","sources":["../src/tray.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,200 @@
1
+ /** Configuration for the Volt application, typically defined in volt.config.ts. */
2
+ export interface VoltConfig {
3
+ /** Display name of the application. */
4
+ name: string;
5
+ /** Application version (semver). */
6
+ version?: string;
7
+ /** Window configuration. */
8
+ window?: WindowOptions;
9
+ /** Declared permissions for native API access. */
10
+ permissions?: Permission[];
11
+ /** Build configuration. */
12
+ build?: BuildConfig;
13
+ /** Backend entrypoint bundled into the standalone runtime (e.g. './src/backend.ts'). */
14
+ backend?: string;
15
+ /** Packaging configuration for platform installers. */
16
+ package?: PackageConfig;
17
+ /** Auto-updater configuration. */
18
+ updater?: UpdaterConfig;
19
+ /** Boa runtime pool configuration for production builds. */
20
+ runtime?: RuntimeConfig;
21
+ /** Legacy alias for runtime.poolSize. Prefer using runtime.poolSize. */
22
+ runtimePoolSize?: number;
23
+ /** Whether to enable devtools. Defaults to true in dev, false in production. */
24
+ devtools?: boolean;
25
+ }
26
+ /** Window creation options, compatible with Electron's BrowserWindow subset. */
27
+ export interface WindowOptions {
28
+ /** Window width in pixels. Default: 800. */
29
+ width?: number;
30
+ /** Window height in pixels. Default: 600. */
31
+ height?: number;
32
+ /** Minimum window width. */
33
+ minWidth?: number;
34
+ /** Minimum window height. */
35
+ minHeight?: number;
36
+ /** Maximum window width. */
37
+ maxWidth?: number;
38
+ /** Maximum window height. */
39
+ maxHeight?: number;
40
+ /** Window title. */
41
+ title?: string;
42
+ /** Whether the window is resizable. Default: true. */
43
+ resizable?: boolean;
44
+ /** Whether to show window decorations. Default: true. */
45
+ decorations?: boolean;
46
+ /** Whether window is transparent. Default: false. */
47
+ transparent?: boolean;
48
+ /** Whether window is always on top. Default: false. */
49
+ alwaysOnTop?: boolean;
50
+ /** Whether window starts maximized. Default: false. */
51
+ maximized?: boolean;
52
+ /** Whether WebView devtools should be enabled for this window. */
53
+ devtools?: boolean;
54
+ /** Initial X position. */
55
+ x?: number;
56
+ /** Initial Y position. */
57
+ y?: number;
58
+ }
59
+ /** Capability-based permissions that must be declared in volt.config.ts. */
60
+ export type Permission = 'clipboard' | 'notification' | 'dialog' | 'fs' | 'db' | 'menu' | 'shell' | 'http' | 'globalShortcut' | 'tray' | 'secureStorage';
61
+ /** Build output configuration. */
62
+ export interface BuildConfig {
63
+ /** Output directory for built assets. Default: 'dist'. */
64
+ outDir?: string;
65
+ }
66
+ /** Runtime execution configuration. */
67
+ export interface RuntimeConfig {
68
+ /** Number of Boa runtimes in the IPC pool. Clamped to [2, 4] by the runner. */
69
+ poolSize?: number;
70
+ }
71
+ /** Packaging configuration for platform-specific installers. */
72
+ export interface PackageConfig {
73
+ /** Application identifier (e.g., 'com.example.myapp'). */
74
+ identifier: string;
75
+ /** Path to the application icon. */
76
+ icon?: string;
77
+ /** Application categories (for Linux .desktop files). */
78
+ categories?: string[];
79
+ /** Windows-specific packaging settings (NSIS/MSIX/install mode). */
80
+ windows?: PackageWindowsConfig;
81
+ /** Enterprise packaging outputs (ADMX/docs bundle generation). */
82
+ enterprise?: PackageEnterpriseConfig;
83
+ /** Code signing configuration. Opt-in - omit to skip signing. */
84
+ signing?: SigningConfig;
85
+ }
86
+ /** Default Windows installation scope for generated installers. */
87
+ export type WindowsInstallMode = 'perMachine' | 'perUser';
88
+ /** MSIX metadata overrides for Windows package identity and display fields. */
89
+ export interface PackageWindowsMsixConfig {
90
+ /** Package identity name (must remain stable for updates). */
91
+ identityName?: string;
92
+ /** Publisher subject, usually a CN value (for example "CN=Contoso"). */
93
+ publisher?: string;
94
+ /** Publisher display name shown in Windows package metadata. */
95
+ publisherDisplayName?: string;
96
+ /** Display name shown by Windows for the installed package. */
97
+ displayName?: string;
98
+ /** Description shown in Windows package metadata. */
99
+ description?: string;
100
+ }
101
+ /** Windows packaging settings for NSIS and MSIX outputs. */
102
+ export interface PackageWindowsConfig {
103
+ /** Default install scope for NSIS packaging and enterprise policy output. */
104
+ installMode?: WindowsInstallMode;
105
+ /** Force /ALLUSERS=1 when installer runs silently (per-machine mode only). */
106
+ silentAllUsers?: boolean;
107
+ /** Optional MSIX identity and metadata overrides. */
108
+ msix?: PackageWindowsMsixConfig;
109
+ }
110
+ /** Enterprise packaging controls for policy/docs deployment outputs. */
111
+ export interface PackageEnterpriseConfig {
112
+ /** Emit ADMX/ADML policy templates and policy-values JSON. Default: true. */
113
+ generateAdmx?: boolean;
114
+ /** Emit deployment docs and PowerShell install scripts. Default: true. */
115
+ includeDocsBundle?: boolean;
116
+ }
117
+ /** Code signing configuration for macOS and Windows. */
118
+ export interface SigningConfig {
119
+ /** macOS code signing and notarization. */
120
+ macOS?: MacOSSigningConfig;
121
+ /** Windows code signing (Authenticode). */
122
+ windows?: WindowsSigningConfig;
123
+ }
124
+ /** macOS code signing configuration.
125
+ * Sensitive values (certificates, passwords) should be set via environment
126
+ * variables, not in this config. See docs/api/signing.md. */
127
+ export interface MacOSSigningConfig {
128
+ /** Signing identity (e.g., "Developer ID Application: Name (TEAMID)").
129
+ * Overridden by VOLT_MACOS_SIGNING_IDENTITY env var. */
130
+ identity?: string;
131
+ /** Path to entitlements .plist file. */
132
+ entitlements?: string;
133
+ /** Whether to notarize after signing. Default: true when identity is set. */
134
+ notarize?: boolean;
135
+ /** Apple Developer Team ID for notarization.
136
+ * Overridden by VOLT_APPLE_TEAM_ID env var. */
137
+ teamId?: string;
138
+ }
139
+ /** Windows code signing configuration.
140
+ * Certificate password should be set via VOLT_WIN_CERTIFICATE_PASSWORD env var. */
141
+ export interface WindowsSigningConfig {
142
+ /** Signing backend provider. Default: "local". */
143
+ provider?: 'local' | 'azureTrustedSigning' | 'digicertKeyLocker';
144
+ /** Path to certificate file (.pfx/.p12).
145
+ * Overridden by VOLT_WIN_CERTIFICATE env var. */
146
+ certificate?: string;
147
+ /** Digest algorithm. Default: "sha256". */
148
+ digestAlgorithm?: string;
149
+ /** RFC 3161 timestamp server URL. Default: "http://timestamp.digicert.com". */
150
+ timestampUrl?: string;
151
+ /** Azure Trusted Signing provider settings (when provider = "azureTrustedSigning"). */
152
+ azureTrustedSigning?: AzureTrustedSigningConfig;
153
+ /** DigiCert KeyLocker provider settings (when provider = "digicertKeyLocker"). */
154
+ digicertKeyLocker?: DigiCertKeyLockerConfig;
155
+ }
156
+ /** Azure Trusted Signing provider configuration for Windows Authenticode. */
157
+ export interface AzureTrustedSigningConfig {
158
+ /** Path to Azure.CodeSigning.Dlib.dll. Overridden by VOLT_AZURE_TRUSTED_SIGNING_DLIB_PATH. */
159
+ dlibPath?: string;
160
+ /** Path to Azure Trusted Signing metadata JSON. Overridden by VOLT_AZURE_TRUSTED_SIGNING_METADATA_PATH. */
161
+ metadataPath?: string;
162
+ /** Optional account endpoint. Overridden by VOLT_AZURE_TRUSTED_SIGNING_ENDPOINT. */
163
+ endpoint?: string;
164
+ /** Optional account name. Overridden by VOLT_AZURE_TRUSTED_SIGNING_ACCOUNT_NAME. */
165
+ accountName?: string;
166
+ /** Optional certificate profile name. Overridden by VOLT_AZURE_TRUSTED_SIGNING_CERT_PROFILE. */
167
+ certificateProfileName?: string;
168
+ /** Optional correlation ID for provider-side traceability. Overridden by VOLT_AZURE_TRUSTED_SIGNING_CORRELATION_ID. */
169
+ correlationId?: string;
170
+ }
171
+ /** DigiCert KeyLocker provider configuration for Windows Authenticode. */
172
+ export interface DigiCertKeyLockerConfig {
173
+ /** Key pair alias in DigiCert KeyLocker. Overridden by VOLT_DIGICERT_KEYLOCKER_KEYPAIR_ALIAS. */
174
+ keypairAlias?: string;
175
+ /** Optional cert fingerprint. Overridden by VOLT_DIGICERT_KEYLOCKER_CERT_FINGERPRINT. */
176
+ certificateFingerprint?: string;
177
+ /** Optional path to smctl executable. Overridden by VOLT_DIGICERT_KEYLOCKER_SMCTL_PATH. */
178
+ smctlPath?: string;
179
+ /** Optional RFC 3161 timestamp URL. Overridden by VOLT_DIGICERT_KEYLOCKER_TIMESTAMP_URL. */
180
+ timestampUrl?: string;
181
+ }
182
+ /** Auto-updater configuration. */
183
+ export interface UpdaterConfig {
184
+ /** URL endpoint to check for updates. */
185
+ endpoint: string;
186
+ /** Ed25519 public key for signature verification (base64). */
187
+ publicKey: string;
188
+ /** Optional telemetry controls for updater lifecycle instrumentation. */
189
+ telemetry?: UpdaterTelemetryConfig;
190
+ }
191
+ /** Updater telemetry controls (disabled by default). */
192
+ export interface UpdaterTelemetryConfig {
193
+ /** Enables updater telemetry events and sink emission. Default: false. */
194
+ enabled?: boolean;
195
+ /** Sink adapter identifier. `none` keeps telemetry in no-op mode. */
196
+ sink?: 'none' | 'stdout';
197
+ }
198
+ /** Define a Volt configuration with full type checking. */
199
+ export declare function defineConfig(config: VoltConfig): VoltConfig;
200
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}