wickra 0.1.2 → 0.1.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/index.js CHANGED
@@ -1,50 +1,340 @@
1
+ /* tslint:disable */
1
2
  /* eslint-disable */
2
3
  /* prettier-ignore */
3
- // Platform-aware loader for the Wickra Node native binding.
4
- //
5
- // In production (after `npm install wickra`) the actual `.node` binary
6
- // lives inside a per-platform subpackage that npm installs as an
7
- // optional dependency — e.g. `wickra-linux-x64-gnu`. In development
8
- // (after `napi build --platform`) the binary sits next to this file.
9
- // We try the local path first and fall back to the subpackage so the
10
- // same loader works in both modes.
11
-
12
- const { platform, arch } = process;
13
- const { join } = require('node:path');
14
- const { existsSync } = require('node:fs');
15
-
16
- const TARGETS = {
17
- 'linux-x64': 'linux-x64-gnu',
18
- 'darwin-x64': 'darwin-x64',
19
- 'darwin-arm64': 'darwin-arm64',
20
- 'win32-x64': 'win32-x64-msvc',
21
- };
22
-
23
- function load() {
24
- const key = `${platform}-${arch}`;
25
- const target = TARGETS[key];
26
- if (!target) {
27
- throw new Error(
28
- `wickra: this platform/architecture combination is not supported (${key}). ` +
29
- 'Open an issue at https://github.com/kingchenc/wickra/issues with your platform details.'
30
- );
31
- }
32
4
 
33
- const localBinary = join(__dirname, `wickra.${target}.node`);
34
- if (existsSync(localBinary)) {
35
- return require(localBinary);
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
36
28
  }
29
+ }
30
+
31
+ switch (platform) {
32
+ case 'android':
33
+ switch (arch) {
34
+ case 'arm64':
35
+ localFileExisted = existsSync(join(__dirname, 'wickra.android-arm64.node'))
36
+ try {
37
+ if (localFileExisted) {
38
+ nativeBinding = require('./wickra.android-arm64.node')
39
+ } else {
40
+ nativeBinding = require('wickra-android-arm64')
41
+ }
42
+ } catch (e) {
43
+ loadError = e
44
+ }
45
+ break
46
+ case 'arm':
47
+ localFileExisted = existsSync(join(__dirname, 'wickra.android-arm-eabi.node'))
48
+ try {
49
+ if (localFileExisted) {
50
+ nativeBinding = require('./wickra.android-arm-eabi.node')
51
+ } else {
52
+ nativeBinding = require('wickra-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, 'wickra.win32-x64-msvc.node')
67
+ )
68
+ try {
69
+ if (localFileExisted) {
70
+ nativeBinding = require('./wickra.win32-x64-msvc.node')
71
+ } else {
72
+ nativeBinding = require('wickra-win32-x64-msvc')
73
+ }
74
+ } catch (e) {
75
+ loadError = e
76
+ }
77
+ break
78
+ case 'ia32':
79
+ localFileExisted = existsSync(
80
+ join(__dirname, 'wickra.win32-ia32-msvc.node')
81
+ )
82
+ try {
83
+ if (localFileExisted) {
84
+ nativeBinding = require('./wickra.win32-ia32-msvc.node')
85
+ } else {
86
+ nativeBinding = require('wickra-win32-ia32-msvc')
87
+ }
88
+ } catch (e) {
89
+ loadError = e
90
+ }
91
+ break
92
+ case 'arm64':
93
+ localFileExisted = existsSync(
94
+ join(__dirname, 'wickra.win32-arm64-msvc.node')
95
+ )
96
+ try {
97
+ if (localFileExisted) {
98
+ nativeBinding = require('./wickra.win32-arm64-msvc.node')
99
+ } else {
100
+ nativeBinding = require('wickra-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, 'wickra.darwin-universal.node'))
112
+ try {
113
+ if (localFileExisted) {
114
+ nativeBinding = require('./wickra.darwin-universal.node')
115
+ } else {
116
+ nativeBinding = require('wickra-darwin-universal')
117
+ }
118
+ break
119
+ } catch {}
120
+ switch (arch) {
121
+ case 'x64':
122
+ localFileExisted = existsSync(join(__dirname, 'wickra.darwin-x64.node'))
123
+ try {
124
+ if (localFileExisted) {
125
+ nativeBinding = require('./wickra.darwin-x64.node')
126
+ } else {
127
+ nativeBinding = require('wickra-darwin-x64')
128
+ }
129
+ } catch (e) {
130
+ loadError = e
131
+ }
132
+ break
133
+ case 'arm64':
134
+ localFileExisted = existsSync(
135
+ join(__dirname, 'wickra.darwin-arm64.node')
136
+ )
137
+ try {
138
+ if (localFileExisted) {
139
+ nativeBinding = require('./wickra.darwin-arm64.node')
140
+ } else {
141
+ nativeBinding = require('wickra-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, 'wickra.freebsd-x64.node'))
156
+ try {
157
+ if (localFileExisted) {
158
+ nativeBinding = require('./wickra.freebsd-x64.node')
159
+ } else {
160
+ nativeBinding = require('wickra-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, 'wickra.linux-x64-musl.node')
172
+ )
173
+ try {
174
+ if (localFileExisted) {
175
+ nativeBinding = require('./wickra.linux-x64-musl.node')
176
+ } else {
177
+ nativeBinding = require('wickra-linux-x64-musl')
178
+ }
179
+ } catch (e) {
180
+ loadError = e
181
+ }
182
+ } else {
183
+ localFileExisted = existsSync(
184
+ join(__dirname, 'wickra.linux-x64-gnu.node')
185
+ )
186
+ try {
187
+ if (localFileExisted) {
188
+ nativeBinding = require('./wickra.linux-x64-gnu.node')
189
+ } else {
190
+ nativeBinding = require('wickra-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, 'wickra.linux-arm64-musl.node')
201
+ )
202
+ try {
203
+ if (localFileExisted) {
204
+ nativeBinding = require('./wickra.linux-arm64-musl.node')
205
+ } else {
206
+ nativeBinding = require('wickra-linux-arm64-musl')
207
+ }
208
+ } catch (e) {
209
+ loadError = e
210
+ }
211
+ } else {
212
+ localFileExisted = existsSync(
213
+ join(__dirname, 'wickra.linux-arm64-gnu.node')
214
+ )
215
+ try {
216
+ if (localFileExisted) {
217
+ nativeBinding = require('./wickra.linux-arm64-gnu.node')
218
+ } else {
219
+ nativeBinding = require('wickra-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, 'wickra.linux-arm-musleabihf.node')
230
+ )
231
+ try {
232
+ if (localFileExisted) {
233
+ nativeBinding = require('./wickra.linux-arm-musleabihf.node')
234
+ } else {
235
+ nativeBinding = require('wickra-linux-arm-musleabihf')
236
+ }
237
+ } catch (e) {
238
+ loadError = e
239
+ }
240
+ } else {
241
+ localFileExisted = existsSync(
242
+ join(__dirname, 'wickra.linux-arm-gnueabihf.node')
243
+ )
244
+ try {
245
+ if (localFileExisted) {
246
+ nativeBinding = require('./wickra.linux-arm-gnueabihf.node')
247
+ } else {
248
+ nativeBinding = require('wickra-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, 'wickra.linux-riscv64-musl.node')
259
+ )
260
+ try {
261
+ if (localFileExisted) {
262
+ nativeBinding = require('./wickra.linux-riscv64-musl.node')
263
+ } else {
264
+ nativeBinding = require('wickra-linux-riscv64-musl')
265
+ }
266
+ } catch (e) {
267
+ loadError = e
268
+ }
269
+ } else {
270
+ localFileExisted = existsSync(
271
+ join(__dirname, 'wickra.linux-riscv64-gnu.node')
272
+ )
273
+ try {
274
+ if (localFileExisted) {
275
+ nativeBinding = require('./wickra.linux-riscv64-gnu.node')
276
+ } else {
277
+ nativeBinding = require('wickra-linux-riscv64-gnu')
278
+ }
279
+ } catch (e) {
280
+ loadError = e
281
+ }
282
+ }
283
+ break
284
+ case 's390x':
285
+ localFileExisted = existsSync(
286
+ join(__dirname, 'wickra.linux-s390x-gnu.node')
287
+ )
288
+ try {
289
+ if (localFileExisted) {
290
+ nativeBinding = require('./wickra.linux-s390x-gnu.node')
291
+ } else {
292
+ nativeBinding = require('wickra-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
+ }
37
305
 
38
- try {
39
- return require(`wickra-${target}`);
40
- } catch (err) {
41
- throw new Error(
42
- `wickra: failed to load the native binding for ${key}. ` +
43
- `Expected either ${localBinary} or the wickra-${target} package to be installed. ` +
44
- `Run \`npm install\` again, or build from source with \`npm run build\`. ` +
45
- `Underlying error: ${err.message}`
46
- );
306
+ if (!nativeBinding) {
307
+ if (loadError) {
308
+ throw loadError
47
309
  }
310
+ throw new Error(`Failed to load native binding`)
48
311
  }
49
312
 
50
- module.exports = load();
313
+ const { version, SMA, EMA, WMA, RSI, DEMA, TEMA, HMA, ROC, TRIX, MACD, BollingerBands, ATR, Stochastic, OBV, ADX, CCI, WilliamsR, MFI, PSAR, Keltner, Donchian, VWAP, AwesomeOscillator, Aroon, KAMA } = nativeBinding
314
+
315
+ module.exports.version = version
316
+ module.exports.SMA = SMA
317
+ module.exports.EMA = EMA
318
+ module.exports.WMA = WMA
319
+ module.exports.RSI = RSI
320
+ module.exports.DEMA = DEMA
321
+ module.exports.TEMA = TEMA
322
+ module.exports.HMA = HMA
323
+ module.exports.ROC = ROC
324
+ module.exports.TRIX = TRIX
325
+ module.exports.MACD = MACD
326
+ module.exports.BollingerBands = BollingerBands
327
+ module.exports.ATR = ATR
328
+ module.exports.Stochastic = Stochastic
329
+ module.exports.OBV = OBV
330
+ module.exports.ADX = ADX
331
+ module.exports.CCI = CCI
332
+ module.exports.WilliamsR = WilliamsR
333
+ module.exports.MFI = MFI
334
+ module.exports.PSAR = PSAR
335
+ module.exports.Keltner = Keltner
336
+ module.exports.Donchian = Donchian
337
+ module.exports.VWAP = VWAP
338
+ module.exports.AwesomeOscillator = AwesomeOscillator
339
+ module.exports.Aroon = Aroon
340
+ module.exports.KAMA = KAMA
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wickra-darwin-arm64",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "Native binding for wickra (macOS Apple Silicon). Installed automatically as an optional dependency of wickra on matching platforms.",
5
5
  "main": "wickra.darwin-arm64.node",
6
6
  "files": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wickra-darwin-x64",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "Native binding for wickra (macOS Intel). Installed automatically as an optional dependency of wickra on matching platforms.",
5
5
  "main": "wickra.darwin-x64.node",
6
6
  "files": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wickra-linux-x64-gnu",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "Native binding for wickra (linux x64 GNU). Installed automatically as an optional dependency of wickra on matching platforms.",
5
5
  "main": "wickra.linux-x64-gnu.node",
6
6
  "files": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wickra-win32-x64-msvc",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "Native binding for wickra (Windows x64 MSVC). Installed automatically as an optional dependency of wickra on matching platforms.",
5
5
  "main": "wickra.win32-x64-msvc.node",
6
6
  "files": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wickra",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "Streaming-first technical indicators: incremental, fast, install-free. Node bindings powered by Rust.",
5
5
  "author": "kingchenc <kingchencp@gmail.com>",
6
6
  "main": "index.js",
@@ -45,10 +45,10 @@
45
45
  "node": ">= 16"
46
46
  },
47
47
  "optionalDependencies": {
48
- "wickra-linux-x64-gnu": "0.1.2",
49
- "wickra-darwin-x64": "0.1.2",
50
- "wickra-darwin-arm64": "0.1.2",
51
- "wickra-win32-x64-msvc": "0.1.2"
48
+ "wickra-linux-x64-gnu": "0.1.3",
49
+ "wickra-darwin-x64": "0.1.3",
50
+ "wickra-darwin-arm64": "0.1.3",
51
+ "wickra-win32-x64-msvc": "0.1.3"
52
52
  },
53
53
  "scripts": {
54
54
  "build": "napi build --platform --release",
Binary file
Binary file
Binary file
Binary file