stratum-rs-overlay 1.0.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.
- package/LICENSE +16 -0
- package/README.md +112 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +317 -0
- package/dist/index.win32-x64-msvc.node +0 -0
- package/package.json +48 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
Copyright (c) 2026 JJoGeon <zgh9807@gmail.com>
|
|
2
|
+
|
|
3
|
+
All rights reserved.
|
|
4
|
+
|
|
5
|
+
This software is provided for use "as is".
|
|
6
|
+
Modification, reverse engineering, decompiling, or redistribution of this software
|
|
7
|
+
without express written permission from the copyright holder is strictly prohibited.
|
|
8
|
+
|
|
9
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER "AS IS" AND ANY EXPRESS OR
|
|
10
|
+
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
11
|
+
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
|
|
12
|
+
SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
13
|
+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
|
|
14
|
+
|
|
15
|
+
To obtain a commercial license or usage key, please visit:
|
|
16
|
+
https://stratum-rs.com
|
package/README.md
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# ⚡ Stratum Overlay (stratum-rs-overlay)
|
|
2
|
+
|
|
3
|
+
> **High-Performance, DLL-Injection Free Game Overlay Library for Electron.** > Powered by **Rust** 🦀 + **N-API**.
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/stratum-rs-overlay)
|
|
6
|
+
[](https://www.npmjs.com/package/stratum-rs-overlay)
|
|
7
|
+
[](https://stratum-rs.com)
|
|
8
|
+
|
|
9
|
+
**Stratum Overlay** is a specialized library designed to create invisible, click-through overlays for Windows applications using Electron. Unlike traditional methods, it does **not** inject DLLs into game processes, making it safer and more compatible with anti-cheat systems.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 🚀 Key Features
|
|
14
|
+
|
|
15
|
+
- **🛡️ Anti-Cheat Friendly:** Uses external window overlay method. No memory writing or code injection.
|
|
16
|
+
- **⚡ Blazing Fast:** Core logic written in **Rust** for minimal overhead and maximum performance.
|
|
17
|
+
- **🖱️ Click-Through Support:** Perfectly handles mouse events, passing clicks to the game behind the overlay.
|
|
18
|
+
- **🔒 Secure Licensing:** Built-in license verification system powered by Ed25519 cryptography.
|
|
19
|
+
- **🪟 Windows Native:** Fully optimized for Windows (x64) using native Win32 APIs.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 📦 Installation
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npm install stratum-rs-overlay
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
*Note: This library currently supports **Windows (x64)** only.*
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## 🛠️ Usage
|
|
34
|
+
|
|
35
|
+
### 1. Get a License Key
|
|
36
|
+
To use this library, you need a valid license key.
|
|
37
|
+
👉 **Get your key at:** [https://stratum-rs.com](https://stratum-rs.com)
|
|
38
|
+
|
|
39
|
+
### 2. Integration in Electron
|
|
40
|
+
Add the following code to your Electron **Main Process** (`main.js`):
|
|
41
|
+
|
|
42
|
+
```javascript
|
|
43
|
+
const { app, BrowserWindow } = require('electron');
|
|
44
|
+
const stratum = require('stratum-rs-overlay');
|
|
45
|
+
|
|
46
|
+
// Load environment variables (Recommended)
|
|
47
|
+
require('dotenv').config();
|
|
48
|
+
|
|
49
|
+
const LICENSE_KEY = process.env.STRATUM_LICENSE_KEY || "YOUR_LICENSE_KEY";
|
|
50
|
+
|
|
51
|
+
function createWindow() {
|
|
52
|
+
const win = new BrowserWindow({
|
|
53
|
+
width: 800,
|
|
54
|
+
height: 600,
|
|
55
|
+
transparent: true, // Required
|
|
56
|
+
frame: false, // Required
|
|
57
|
+
alwaysOnTop: true, // Recommended for overlays
|
|
58
|
+
webPreferences: {
|
|
59
|
+
nodeIntegration: true,
|
|
60
|
+
contextIsolation: false,
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
win.loadFile('index.html'); // or loadURL(...)
|
|
65
|
+
|
|
66
|
+
// ---------------------------------------------------------
|
|
67
|
+
// 🔐 1. Initialize & Verify License
|
|
68
|
+
// ---------------------------------------------------------
|
|
69
|
+
console.log("🔑 Verifying License...");
|
|
70
|
+
const isVerified = stratum.init(LICENSE_KEY);
|
|
71
|
+
|
|
72
|
+
if (isVerified) {
|
|
73
|
+
console.log("✅ License Verified! Activating Overlay...");
|
|
74
|
+
|
|
75
|
+
// -------------------------------------------------------
|
|
76
|
+
// 🖱️ 2. Enable Click-Through Mode
|
|
77
|
+
// Pass the native window handle (HWND) to Rust
|
|
78
|
+
// -------------------------------------------------------
|
|
79
|
+
const hwnd = win.getNativeWindowHandle();
|
|
80
|
+
stratum.setClickThrough(hwnd);
|
|
81
|
+
|
|
82
|
+
console.log("✨ Overlay Mode: ACTIVATED");
|
|
83
|
+
} else {
|
|
84
|
+
console.error("❌ License Verification Failed.");
|
|
85
|
+
console.error(" - Overlay features are disabled.");
|
|
86
|
+
// Handle invalid license (e.g., show error dialog or quit)
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
app.whenReady().then(createWindow);
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## ⚠️ Requirements
|
|
96
|
+
|
|
97
|
+
- **OS:** Windows 10 / 11 (64-bit)
|
|
98
|
+
- **Runtime:** Node.js 16+ / Electron
|
|
99
|
+
- **Dependencies:** Microsoft Visual C++ Redistributable (usually pre-installed on Windows)
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## 📞 Support & License
|
|
104
|
+
|
|
105
|
+
This project is a **Commercial Software**.
|
|
106
|
+
Usage without a valid license key is strictly prohibited.
|
|
107
|
+
|
|
108
|
+
- **Website:** [stratum-rs.com](https://stratum-rs.com)
|
|
109
|
+
- **Contact:** [zgh9807@gmail.com](mailto:zgh9807@gmail.com)
|
|
110
|
+
|
|
111
|
+
Copyright (c) 2026 JJoGeon <zgh9807@gmail.com>.
|
|
112
|
+
All rights reserved.
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/* prettier-ignore */
|
|
4
|
+
|
|
5
|
+
/* auto-generated by NAPI-RS */
|
|
6
|
+
|
|
7
|
+
const { existsSync, readFileSync } = require('fs')
|
|
8
|
+
const { join } = require('path')
|
|
9
|
+
|
|
10
|
+
const { platform, arch } = process
|
|
11
|
+
|
|
12
|
+
let nativeBinding = null
|
|
13
|
+
let localFileExisted = false
|
|
14
|
+
let loadError = null
|
|
15
|
+
|
|
16
|
+
function isMusl() {
|
|
17
|
+
// For Node 10
|
|
18
|
+
if (!process.report || typeof process.report.getReport !== 'function') {
|
|
19
|
+
try {
|
|
20
|
+
const lddPath = require('child_process').execSync('which ldd').toString().trim()
|
|
21
|
+
return readFileSync(lddPath, 'utf8').includes('musl')
|
|
22
|
+
} catch (e) {
|
|
23
|
+
return true
|
|
24
|
+
}
|
|
25
|
+
} else {
|
|
26
|
+
const { glibcVersionRuntime } = process.report.getReport().header
|
|
27
|
+
return !glibcVersionRuntime
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
switch (platform) {
|
|
32
|
+
case 'android':
|
|
33
|
+
switch (arch) {
|
|
34
|
+
case 'arm64':
|
|
35
|
+
localFileExisted = existsSync(join(__dirname, 'index.android-arm64.node'))
|
|
36
|
+
try {
|
|
37
|
+
if (localFileExisted) {
|
|
38
|
+
nativeBinding = require('./index.android-arm64.node')
|
|
39
|
+
} else {
|
|
40
|
+
nativeBinding = require('stratum-rs-overlay-android-arm64')
|
|
41
|
+
}
|
|
42
|
+
} catch (e) {
|
|
43
|
+
loadError = e
|
|
44
|
+
}
|
|
45
|
+
break
|
|
46
|
+
case 'arm':
|
|
47
|
+
localFileExisted = existsSync(join(__dirname, 'index.android-arm-eabi.node'))
|
|
48
|
+
try {
|
|
49
|
+
if (localFileExisted) {
|
|
50
|
+
nativeBinding = require('./index.android-arm-eabi.node')
|
|
51
|
+
} else {
|
|
52
|
+
nativeBinding = require('stratum-rs-overlay-android-arm-eabi')
|
|
53
|
+
}
|
|
54
|
+
} catch (e) {
|
|
55
|
+
loadError = e
|
|
56
|
+
}
|
|
57
|
+
break
|
|
58
|
+
default:
|
|
59
|
+
throw new Error(`Unsupported architecture on Android ${arch}`)
|
|
60
|
+
}
|
|
61
|
+
break
|
|
62
|
+
case 'win32':
|
|
63
|
+
switch (arch) {
|
|
64
|
+
case 'x64':
|
|
65
|
+
localFileExisted = existsSync(
|
|
66
|
+
join(__dirname, 'index.win32-x64-msvc.node')
|
|
67
|
+
)
|
|
68
|
+
try {
|
|
69
|
+
if (localFileExisted) {
|
|
70
|
+
nativeBinding = require('./index.win32-x64-msvc.node')
|
|
71
|
+
} else {
|
|
72
|
+
nativeBinding = require('stratum-rs-overlay-win32-x64-msvc')
|
|
73
|
+
}
|
|
74
|
+
} catch (e) {
|
|
75
|
+
loadError = e
|
|
76
|
+
}
|
|
77
|
+
break
|
|
78
|
+
case 'ia32':
|
|
79
|
+
localFileExisted = existsSync(
|
|
80
|
+
join(__dirname, 'index.win32-ia32-msvc.node')
|
|
81
|
+
)
|
|
82
|
+
try {
|
|
83
|
+
if (localFileExisted) {
|
|
84
|
+
nativeBinding = require('./index.win32-ia32-msvc.node')
|
|
85
|
+
} else {
|
|
86
|
+
nativeBinding = require('stratum-rs-overlay-win32-ia32-msvc')
|
|
87
|
+
}
|
|
88
|
+
} catch (e) {
|
|
89
|
+
loadError = e
|
|
90
|
+
}
|
|
91
|
+
break
|
|
92
|
+
case 'arm64':
|
|
93
|
+
localFileExisted = existsSync(
|
|
94
|
+
join(__dirname, 'index.win32-arm64-msvc.node')
|
|
95
|
+
)
|
|
96
|
+
try {
|
|
97
|
+
if (localFileExisted) {
|
|
98
|
+
nativeBinding = require('./index.win32-arm64-msvc.node')
|
|
99
|
+
} else {
|
|
100
|
+
nativeBinding = require('stratum-rs-overlay-win32-arm64-msvc')
|
|
101
|
+
}
|
|
102
|
+
} catch (e) {
|
|
103
|
+
loadError = e
|
|
104
|
+
}
|
|
105
|
+
break
|
|
106
|
+
default:
|
|
107
|
+
throw new Error(`Unsupported architecture on Windows: ${arch}`)
|
|
108
|
+
}
|
|
109
|
+
break
|
|
110
|
+
case 'darwin':
|
|
111
|
+
localFileExisted = existsSync(join(__dirname, 'index.darwin-universal.node'))
|
|
112
|
+
try {
|
|
113
|
+
if (localFileExisted) {
|
|
114
|
+
nativeBinding = require('./index.darwin-universal.node')
|
|
115
|
+
} else {
|
|
116
|
+
nativeBinding = require('stratum-rs-overlay-darwin-universal')
|
|
117
|
+
}
|
|
118
|
+
break
|
|
119
|
+
} catch {}
|
|
120
|
+
switch (arch) {
|
|
121
|
+
case 'x64':
|
|
122
|
+
localFileExisted = existsSync(join(__dirname, 'index.darwin-x64.node'))
|
|
123
|
+
try {
|
|
124
|
+
if (localFileExisted) {
|
|
125
|
+
nativeBinding = require('./index.darwin-x64.node')
|
|
126
|
+
} else {
|
|
127
|
+
nativeBinding = require('stratum-rs-overlay-darwin-x64')
|
|
128
|
+
}
|
|
129
|
+
} catch (e) {
|
|
130
|
+
loadError = e
|
|
131
|
+
}
|
|
132
|
+
break
|
|
133
|
+
case 'arm64':
|
|
134
|
+
localFileExisted = existsSync(
|
|
135
|
+
join(__dirname, 'index.darwin-arm64.node')
|
|
136
|
+
)
|
|
137
|
+
try {
|
|
138
|
+
if (localFileExisted) {
|
|
139
|
+
nativeBinding = require('./index.darwin-arm64.node')
|
|
140
|
+
} else {
|
|
141
|
+
nativeBinding = require('stratum-rs-overlay-darwin-arm64')
|
|
142
|
+
}
|
|
143
|
+
} catch (e) {
|
|
144
|
+
loadError = e
|
|
145
|
+
}
|
|
146
|
+
break
|
|
147
|
+
default:
|
|
148
|
+
throw new Error(`Unsupported architecture on macOS: ${arch}`)
|
|
149
|
+
}
|
|
150
|
+
break
|
|
151
|
+
case 'freebsd':
|
|
152
|
+
if (arch !== 'x64') {
|
|
153
|
+
throw new Error(`Unsupported architecture on FreeBSD: ${arch}`)
|
|
154
|
+
}
|
|
155
|
+
localFileExisted = existsSync(join(__dirname, 'index.freebsd-x64.node'))
|
|
156
|
+
try {
|
|
157
|
+
if (localFileExisted) {
|
|
158
|
+
nativeBinding = require('./index.freebsd-x64.node')
|
|
159
|
+
} else {
|
|
160
|
+
nativeBinding = require('stratum-rs-overlay-freebsd-x64')
|
|
161
|
+
}
|
|
162
|
+
} catch (e) {
|
|
163
|
+
loadError = e
|
|
164
|
+
}
|
|
165
|
+
break
|
|
166
|
+
case 'linux':
|
|
167
|
+
switch (arch) {
|
|
168
|
+
case 'x64':
|
|
169
|
+
if (isMusl()) {
|
|
170
|
+
localFileExisted = existsSync(
|
|
171
|
+
join(__dirname, 'index.linux-x64-musl.node')
|
|
172
|
+
)
|
|
173
|
+
try {
|
|
174
|
+
if (localFileExisted) {
|
|
175
|
+
nativeBinding = require('./index.linux-x64-musl.node')
|
|
176
|
+
} else {
|
|
177
|
+
nativeBinding = require('stratum-rs-overlay-linux-x64-musl')
|
|
178
|
+
}
|
|
179
|
+
} catch (e) {
|
|
180
|
+
loadError = e
|
|
181
|
+
}
|
|
182
|
+
} else {
|
|
183
|
+
localFileExisted = existsSync(
|
|
184
|
+
join(__dirname, 'index.linux-x64-gnu.node')
|
|
185
|
+
)
|
|
186
|
+
try {
|
|
187
|
+
if (localFileExisted) {
|
|
188
|
+
nativeBinding = require('./index.linux-x64-gnu.node')
|
|
189
|
+
} else {
|
|
190
|
+
nativeBinding = require('stratum-rs-overlay-linux-x64-gnu')
|
|
191
|
+
}
|
|
192
|
+
} catch (e) {
|
|
193
|
+
loadError = e
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
break
|
|
197
|
+
case 'arm64':
|
|
198
|
+
if (isMusl()) {
|
|
199
|
+
localFileExisted = existsSync(
|
|
200
|
+
join(__dirname, 'index.linux-arm64-musl.node')
|
|
201
|
+
)
|
|
202
|
+
try {
|
|
203
|
+
if (localFileExisted) {
|
|
204
|
+
nativeBinding = require('./index.linux-arm64-musl.node')
|
|
205
|
+
} else {
|
|
206
|
+
nativeBinding = require('stratum-rs-overlay-linux-arm64-musl')
|
|
207
|
+
}
|
|
208
|
+
} catch (e) {
|
|
209
|
+
loadError = e
|
|
210
|
+
}
|
|
211
|
+
} else {
|
|
212
|
+
localFileExisted = existsSync(
|
|
213
|
+
join(__dirname, 'index.linux-arm64-gnu.node')
|
|
214
|
+
)
|
|
215
|
+
try {
|
|
216
|
+
if (localFileExisted) {
|
|
217
|
+
nativeBinding = require('./index.linux-arm64-gnu.node')
|
|
218
|
+
} else {
|
|
219
|
+
nativeBinding = require('stratum-rs-overlay-linux-arm64-gnu')
|
|
220
|
+
}
|
|
221
|
+
} catch (e) {
|
|
222
|
+
loadError = e
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
break
|
|
226
|
+
case 'arm':
|
|
227
|
+
if (isMusl()) {
|
|
228
|
+
localFileExisted = existsSync(
|
|
229
|
+
join(__dirname, 'index.linux-arm-musleabihf.node')
|
|
230
|
+
)
|
|
231
|
+
try {
|
|
232
|
+
if (localFileExisted) {
|
|
233
|
+
nativeBinding = require('./index.linux-arm-musleabihf.node')
|
|
234
|
+
} else {
|
|
235
|
+
nativeBinding = require('stratum-rs-overlay-linux-arm-musleabihf')
|
|
236
|
+
}
|
|
237
|
+
} catch (e) {
|
|
238
|
+
loadError = e
|
|
239
|
+
}
|
|
240
|
+
} else {
|
|
241
|
+
localFileExisted = existsSync(
|
|
242
|
+
join(__dirname, 'index.linux-arm-gnueabihf.node')
|
|
243
|
+
)
|
|
244
|
+
try {
|
|
245
|
+
if (localFileExisted) {
|
|
246
|
+
nativeBinding = require('./index.linux-arm-gnueabihf.node')
|
|
247
|
+
} else {
|
|
248
|
+
nativeBinding = require('stratum-rs-overlay-linux-arm-gnueabihf')
|
|
249
|
+
}
|
|
250
|
+
} catch (e) {
|
|
251
|
+
loadError = e
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
break
|
|
255
|
+
case 'riscv64':
|
|
256
|
+
if (isMusl()) {
|
|
257
|
+
localFileExisted = existsSync(
|
|
258
|
+
join(__dirname, 'index.linux-riscv64-musl.node')
|
|
259
|
+
)
|
|
260
|
+
try {
|
|
261
|
+
if (localFileExisted) {
|
|
262
|
+
nativeBinding = require('./index.linux-riscv64-musl.node')
|
|
263
|
+
} else {
|
|
264
|
+
nativeBinding = require('stratum-rs-overlay-linux-riscv64-musl')
|
|
265
|
+
}
|
|
266
|
+
} catch (e) {
|
|
267
|
+
loadError = e
|
|
268
|
+
}
|
|
269
|
+
} else {
|
|
270
|
+
localFileExisted = existsSync(
|
|
271
|
+
join(__dirname, 'index.linux-riscv64-gnu.node')
|
|
272
|
+
)
|
|
273
|
+
try {
|
|
274
|
+
if (localFileExisted) {
|
|
275
|
+
nativeBinding = require('./index.linux-riscv64-gnu.node')
|
|
276
|
+
} else {
|
|
277
|
+
nativeBinding = require('stratum-rs-overlay-linux-riscv64-gnu')
|
|
278
|
+
}
|
|
279
|
+
} catch (e) {
|
|
280
|
+
loadError = e
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
break
|
|
284
|
+
case 's390x':
|
|
285
|
+
localFileExisted = existsSync(
|
|
286
|
+
join(__dirname, 'index.linux-s390x-gnu.node')
|
|
287
|
+
)
|
|
288
|
+
try {
|
|
289
|
+
if (localFileExisted) {
|
|
290
|
+
nativeBinding = require('./index.linux-s390x-gnu.node')
|
|
291
|
+
} else {
|
|
292
|
+
nativeBinding = require('stratum-rs-overlay-linux-s390x-gnu')
|
|
293
|
+
}
|
|
294
|
+
} catch (e) {
|
|
295
|
+
loadError = e
|
|
296
|
+
}
|
|
297
|
+
break
|
|
298
|
+
default:
|
|
299
|
+
throw new Error(`Unsupported architecture on Linux: ${arch}`)
|
|
300
|
+
}
|
|
301
|
+
break
|
|
302
|
+
default:
|
|
303
|
+
throw new Error(`Unsupported OS: ${platform}, architecture: ${arch}`)
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
if (!nativeBinding) {
|
|
307
|
+
if (loadError) {
|
|
308
|
+
throw loadError
|
|
309
|
+
}
|
|
310
|
+
throw new Error(`Failed to load native binding`)
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
const { helloFromRust, init, setClickThrough } = nativeBinding
|
|
314
|
+
|
|
315
|
+
module.exports.helloFromRust = helloFromRust
|
|
316
|
+
module.exports.init = init
|
|
317
|
+
module.exports.setClickThrough = setClickThrough
|
|
Binary file
|
package/package.json
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "stratum-rs-overlay",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "A high-performance, non-intrusive game overlay library for Electron powered by Rust.",
|
|
5
|
+
"os": [
|
|
6
|
+
"win32"
|
|
7
|
+
],
|
|
8
|
+
"keywords": [
|
|
9
|
+
"electron",
|
|
10
|
+
"overlay",
|
|
11
|
+
"window",
|
|
12
|
+
"transparent",
|
|
13
|
+
"click-through",
|
|
14
|
+
"rust",
|
|
15
|
+
"napi-rs",
|
|
16
|
+
"game-overlay"
|
|
17
|
+
],
|
|
18
|
+
"homepage": "https://stratum-rs.com",
|
|
19
|
+
"author": "JJoGeon <zgh9807@gmail.com>",
|
|
20
|
+
"bugs": {
|
|
21
|
+
"email": "zgh9807@gmail.com"
|
|
22
|
+
},
|
|
23
|
+
"license": "UNLICENSED",
|
|
24
|
+
"main": "dist/index.js",
|
|
25
|
+
"types": "dist/index.d.ts",
|
|
26
|
+
"files": [
|
|
27
|
+
"dist",
|
|
28
|
+
"LICENSE",
|
|
29
|
+
"README.md"
|
|
30
|
+
],
|
|
31
|
+
"scripts": {
|
|
32
|
+
"build": "shx rm -rf dist && shx mkdir -p dist && napi build --platform --release --js index.js --dts index.d.ts && shx mv index.js index.d.ts *.node dist/",
|
|
33
|
+
"build:debug": "shx rm -rf dist && shx mkdir -p dist && napi build --platform --js index.js --dts index.d.ts && shx mv index.js index.d.ts *.node dist/",
|
|
34
|
+
"start": "npm run build:debug && electron examples/main.js"
|
|
35
|
+
},
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"@napi-rs/cli": "^2.18.4",
|
|
38
|
+
"dotenv": "^17.2.3",
|
|
39
|
+
"electron": "^40.0.0",
|
|
40
|
+
"shx": "^0.4.0"
|
|
41
|
+
},
|
|
42
|
+
"napi": {
|
|
43
|
+
"binaryName": "index",
|
|
44
|
+
"targets": [
|
|
45
|
+
"x86_64-pc-windows-msvc"
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
}
|