@tokscale/core 1.0.17 → 1.0.18
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.d.ts +36 -70
- package/index.js +528 -277
- package/package.json +2 -2
- package/tokscale-core.darwin-arm64.node +0 -0
- package/tokscale-core.darwin-x64.node +0 -0
- package/tokscale-core.linux-arm64-gnu.node +0 -0
- package/tokscale-core.linux-arm64-musl.node +0 -0
- package/tokscale-core.linux-x64-gnu.node +0 -0
- package/tokscale-core.linux-x64-musl.node +0 -0
- package/tokscale-core.win32-arm64-msvc.node +0 -0
- package/tokscale-core.win32-x64-msvc.node +0 -0
package/index.d.ts
CHANGED
|
@@ -28,14 +28,13 @@ export interface DataSummary {
|
|
|
28
28
|
models: Array<string>
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
/** Finalize graph
|
|
32
|
-
export declare function finalizeGraph(options: FinalizeGraphOptions): GraphResult
|
|
31
|
+
/** Finalize graph */
|
|
32
|
+
export declare function finalizeGraph(options: FinalizeGraphOptions): Promise<GraphResult>
|
|
33
33
|
|
|
34
34
|
/** Options for finalizing graph */
|
|
35
35
|
export interface FinalizeGraphOptions {
|
|
36
36
|
homeDir?: string
|
|
37
37
|
localMessages: ParsedMessages
|
|
38
|
-
pricing: Array<PricingEntry>
|
|
39
38
|
includeCursor: boolean
|
|
40
39
|
since?: string
|
|
41
40
|
until?: string
|
|
@@ -46,49 +45,42 @@ export interface FinalizeGraphOptions {
|
|
|
46
45
|
export interface FinalizeMonthlyOptions {
|
|
47
46
|
homeDir?: string
|
|
48
47
|
localMessages: ParsedMessages
|
|
49
|
-
pricing: Array<PricingEntry>
|
|
50
48
|
includeCursor: boolean
|
|
51
49
|
since?: string
|
|
52
50
|
until?: string
|
|
53
51
|
year?: string
|
|
54
52
|
}
|
|
55
53
|
|
|
56
|
-
/** Finalize monthly report
|
|
57
|
-
export declare function finalizeMonthlyReport(options: FinalizeMonthlyOptions): MonthlyReport
|
|
54
|
+
/** Finalize monthly report */
|
|
55
|
+
export declare function finalizeMonthlyReport(options: FinalizeMonthlyOptions): Promise<MonthlyReport>
|
|
58
56
|
|
|
59
57
|
/** Finalize model report: apply pricing to local messages, add Cursor, aggregate */
|
|
60
|
-
export declare function finalizeReport(options: FinalizeReportOptions): ModelReport
|
|
58
|
+
export declare function finalizeReport(options: FinalizeReportOptions): Promise<ModelReport>
|
|
61
59
|
|
|
62
|
-
/**
|
|
60
|
+
/**
|
|
61
|
+
* Finalize both report and graph in a single call with shared pricing
|
|
62
|
+
* This ensures consistent costs between report and graph data
|
|
63
|
+
*/
|
|
64
|
+
export declare function finalizeReportAndGraph(options: FinalizeReportOptions): Promise<ReportAndGraph>
|
|
65
|
+
|
|
66
|
+
/** Options for finalizing report */
|
|
63
67
|
export interface FinalizeReportOptions {
|
|
64
68
|
homeDir?: string
|
|
65
69
|
localMessages: ParsedMessages
|
|
66
|
-
pricing: Array<PricingEntry>
|
|
67
70
|
includeCursor: boolean
|
|
68
71
|
since?: string
|
|
69
72
|
until?: string
|
|
70
73
|
year?: string
|
|
71
74
|
}
|
|
72
75
|
|
|
73
|
-
/**
|
|
74
|
-
* Generate graph data from all session sources
|
|
75
|
-
*
|
|
76
|
-
* This is the main entry point that orchestrates:
|
|
77
|
-
* 1. Parallel file scanning
|
|
78
|
-
* 2. Parallel session parsing
|
|
79
|
-
* 3. Date filtering
|
|
80
|
-
* 4. Parallel aggregation
|
|
81
|
-
*/
|
|
82
|
-
export declare function generateGraph(options: GraphOptions): GraphResult
|
|
83
|
-
|
|
84
76
|
/** Generate graph data with pricing calculation */
|
|
85
|
-
export declare function generateGraphWithPricing(options: ReportOptions): GraphResult
|
|
77
|
+
export declare function generateGraphWithPricing(options: ReportOptions): Promise<GraphResult>
|
|
86
78
|
|
|
87
79
|
/** Get model usage report with pricing calculation */
|
|
88
|
-
export declare function getModelReport(options: ReportOptions): ModelReport
|
|
80
|
+
export declare function getModelReport(options: ReportOptions): Promise<ModelReport>
|
|
89
81
|
|
|
90
82
|
/** Get monthly usage report with pricing calculation */
|
|
91
|
-
export declare function getMonthlyReport(options: ReportOptions): MonthlyReport
|
|
83
|
+
export declare function getMonthlyReport(options: ReportOptions): Promise<MonthlyReport>
|
|
92
84
|
|
|
93
85
|
/** Metadata about the graph generation */
|
|
94
86
|
export interface GraphMeta {
|
|
@@ -99,22 +91,6 @@ export interface GraphMeta {
|
|
|
99
91
|
processingTimeMs: number
|
|
100
92
|
}
|
|
101
93
|
|
|
102
|
-
/** Configuration options for graph generation */
|
|
103
|
-
export interface GraphOptions {
|
|
104
|
-
/** Home directory path (defaults to user's home) */
|
|
105
|
-
homeDir?: string
|
|
106
|
-
/** Sources to include: "opencode", "claude", "codex", "gemini" */
|
|
107
|
-
sources?: Array<string>
|
|
108
|
-
/** Start date filter (YYYY-MM-DD) */
|
|
109
|
-
since?: string
|
|
110
|
-
/** End date filter (YYYY-MM-DD) */
|
|
111
|
-
until?: string
|
|
112
|
-
/** Filter to specific year */
|
|
113
|
-
year?: string
|
|
114
|
-
/** Number of parallel threads (defaults to CPU count) */
|
|
115
|
-
threads?: number
|
|
116
|
-
}
|
|
117
|
-
|
|
118
94
|
/** Complete graph result */
|
|
119
95
|
export interface GraphResult {
|
|
120
96
|
meta: GraphMeta
|
|
@@ -135,13 +111,7 @@ export interface LocalParseOptions {
|
|
|
135
111
|
year?: string
|
|
136
112
|
}
|
|
137
113
|
|
|
138
|
-
|
|
139
|
-
export interface ModelPricing {
|
|
140
|
-
inputCostPerToken: number
|
|
141
|
-
outputCostPerToken: number
|
|
142
|
-
cacheReadInputTokenCost?: number
|
|
143
|
-
cacheCreationInputTokenCost?: number
|
|
144
|
-
}
|
|
114
|
+
export declare function lookupPricing(modelId: string, provider?: string | undefined | null): Promise<PricingLookupResult>
|
|
145
115
|
|
|
146
116
|
/** Model report result */
|
|
147
117
|
export interface ModelReport {
|
|
@@ -188,6 +158,13 @@ export interface MonthlyUsage {
|
|
|
188
158
|
cost: number
|
|
189
159
|
}
|
|
190
160
|
|
|
161
|
+
export interface NativePricing {
|
|
162
|
+
inputCostPerToken: number
|
|
163
|
+
outputCostPerToken: number
|
|
164
|
+
cacheReadInputTokenCost?: number
|
|
165
|
+
cacheCreationInputTokenCost?: number
|
|
166
|
+
}
|
|
167
|
+
|
|
191
168
|
export interface ParsedMessage {
|
|
192
169
|
source: string
|
|
193
170
|
modelId: string
|
|
@@ -210,6 +187,8 @@ export interface ParsedMessages {
|
|
|
210
187
|
claudeCount: number
|
|
211
188
|
codexCount: number
|
|
212
189
|
geminiCount: number
|
|
190
|
+
ampCount: number
|
|
191
|
+
droidCount: number
|
|
213
192
|
processingTimeMs: number
|
|
214
193
|
}
|
|
215
194
|
|
|
@@ -219,41 +198,28 @@ export interface ParsedMessages {
|
|
|
219
198
|
*/
|
|
220
199
|
export declare function parseLocalSources(options: LocalParseOptions): ParsedMessages
|
|
221
200
|
|
|
222
|
-
|
|
223
|
-
export interface PricingEntry {
|
|
201
|
+
export interface PricingLookupResult {
|
|
224
202
|
modelId: string
|
|
225
|
-
|
|
203
|
+
matchedKey: string
|
|
204
|
+
source: string
|
|
205
|
+
pricing: NativePricing
|
|
226
206
|
}
|
|
227
207
|
|
|
228
|
-
/**
|
|
208
|
+
/** Combined result for report and graph (single pricing lookup) */
|
|
209
|
+
export interface ReportAndGraph {
|
|
210
|
+
report: ModelReport
|
|
211
|
+
graph: GraphResult
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
/** Options for reports */
|
|
229
215
|
export interface ReportOptions {
|
|
230
|
-
/** Home directory path (defaults to user's home) */
|
|
231
216
|
homeDir?: string
|
|
232
|
-
/** Sources to include: "opencode", "claude", "codex", "gemini" */
|
|
233
217
|
sources?: Array<string>
|
|
234
|
-
/** Pricing data for cost calculation */
|
|
235
|
-
pricing: Array<PricingEntry>
|
|
236
|
-
/** Start date filter (YYYY-MM-DD) */
|
|
237
218
|
since?: string
|
|
238
|
-
/** End date filter (YYYY-MM-DD) */
|
|
239
219
|
until?: string
|
|
240
|
-
/** Filter to specific year */
|
|
241
220
|
year?: string
|
|
242
221
|
}
|
|
243
222
|
|
|
244
|
-
/** Scan for session files (for debugging/testing) */
|
|
245
|
-
export declare function scanSessions(homeDir?: string | undefined | null, sources?: Array<string> | undefined | null): ScanStats
|
|
246
|
-
|
|
247
|
-
/** Scan session files and return file counts per source */
|
|
248
|
-
export interface ScanStats {
|
|
249
|
-
opencodeFiles: number
|
|
250
|
-
claudeFiles: number
|
|
251
|
-
codexFiles: number
|
|
252
|
-
geminiFiles: number
|
|
253
|
-
cursorFiles: number
|
|
254
|
-
totalFiles: number
|
|
255
|
-
}
|
|
256
|
-
|
|
257
223
|
/** Source contribution for a specific day */
|
|
258
224
|
export interface SourceContribution {
|
|
259
225
|
source: string
|
package/index.js
CHANGED
|
@@ -1,336 +1,587 @@
|
|
|
1
|
+
// prettier-ignore
|
|
1
2
|
/* eslint-disable */
|
|
3
|
+
// @ts-nocheck
|
|
2
4
|
/* auto-generated by NAPI-RS */
|
|
3
5
|
|
|
4
|
-
const {
|
|
5
|
-
|
|
6
|
+
const { readFileSync } = require('node:fs')
|
|
7
|
+
let nativeBinding = null
|
|
8
|
+
const loadErrors = []
|
|
6
9
|
|
|
7
|
-
const
|
|
10
|
+
const isMusl = () => {
|
|
11
|
+
let musl = false
|
|
12
|
+
if (process.platform === 'linux') {
|
|
13
|
+
musl = isMuslFromFilesystem()
|
|
14
|
+
if (musl === null) {
|
|
15
|
+
musl = isMuslFromReport()
|
|
16
|
+
}
|
|
17
|
+
if (musl === null) {
|
|
18
|
+
musl = isMuslFromChildProcess()
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return musl
|
|
22
|
+
}
|
|
8
23
|
|
|
9
|
-
|
|
10
|
-
let localFileExisted = false
|
|
11
|
-
let loadError = null
|
|
24
|
+
const isFileMusl = (f) => f.includes('libc.musl-') || f.includes('ld-musl-')
|
|
12
25
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
26
|
+
const isMuslFromFilesystem = () => {
|
|
27
|
+
try {
|
|
28
|
+
return readFileSync('/usr/bin/ldd', 'utf-8').includes('musl')
|
|
29
|
+
} catch {
|
|
30
|
+
return null
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const isMuslFromReport = () => {
|
|
35
|
+
let report = null
|
|
36
|
+
if (typeof process.report?.getReport === 'function') {
|
|
37
|
+
process.report.excludeNetwork = true
|
|
38
|
+
report = process.report.getReport()
|
|
39
|
+
}
|
|
40
|
+
if (!report) {
|
|
41
|
+
return null
|
|
42
|
+
}
|
|
43
|
+
if (report.header && report.header.glibcVersionRuntime) {
|
|
44
|
+
return false
|
|
45
|
+
}
|
|
46
|
+
if (Array.isArray(report.sharedObjects)) {
|
|
47
|
+
if (report.sharedObjects.some(isFileMusl)) {
|
|
20
48
|
return true
|
|
21
49
|
}
|
|
22
|
-
} else {
|
|
23
|
-
const { glibcVersionRuntime } = process.report.getReport().header
|
|
24
|
-
return !glibcVersionRuntime
|
|
25
50
|
}
|
|
51
|
+
return false
|
|
26
52
|
}
|
|
27
53
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
54
|
+
const isMuslFromChildProcess = () => {
|
|
55
|
+
try {
|
|
56
|
+
return require('child_process').execSync('ldd --version', { encoding: 'utf8' }).includes('musl')
|
|
57
|
+
} catch (e) {
|
|
58
|
+
// If we reach this case, we don't know if the system is musl or not, so is better to just fallback to false
|
|
59
|
+
return false
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function requireNative() {
|
|
64
|
+
if (process.env.NAPI_RS_NATIVE_LIBRARY_PATH) {
|
|
65
|
+
try {
|
|
66
|
+
return require(process.env.NAPI_RS_NATIVE_LIBRARY_PATH);
|
|
67
|
+
} catch (err) {
|
|
68
|
+
loadErrors.push(err)
|
|
69
|
+
}
|
|
70
|
+
} else if (process.platform === 'android') {
|
|
71
|
+
if (process.arch === 'arm64') {
|
|
72
|
+
try {
|
|
73
|
+
return require('./tokscale-core.android-arm64.node')
|
|
74
|
+
} catch (e) {
|
|
75
|
+
loadErrors.push(e)
|
|
76
|
+
}
|
|
77
|
+
try {
|
|
78
|
+
const binding = require('@tokscale/core-android-arm64')
|
|
79
|
+
const bindingPackageVersion = require('@tokscale/core-android-arm64/package.json').version
|
|
80
|
+
if (bindingPackageVersion !== '1.0.17' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
81
|
+
throw new Error(`Native binding package version mismatch, expected 1.0.17 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
82
|
+
}
|
|
83
|
+
return binding
|
|
84
|
+
} catch (e) {
|
|
85
|
+
loadErrors.push(e)
|
|
86
|
+
}
|
|
87
|
+
} else if (process.arch === 'arm') {
|
|
88
|
+
try {
|
|
89
|
+
return require('./tokscale-core.android-arm-eabi.node')
|
|
90
|
+
} catch (e) {
|
|
91
|
+
loadErrors.push(e)
|
|
92
|
+
}
|
|
93
|
+
try {
|
|
94
|
+
const binding = require('@tokscale/core-android-arm-eabi')
|
|
95
|
+
const bindingPackageVersion = require('@tokscale/core-android-arm-eabi/package.json').version
|
|
96
|
+
if (bindingPackageVersion !== '1.0.17' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
97
|
+
throw new Error(`Native binding package version mismatch, expected 1.0.17 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
98
|
+
}
|
|
99
|
+
return binding
|
|
100
|
+
} catch (e) {
|
|
101
|
+
loadErrors.push(e)
|
|
102
|
+
}
|
|
103
|
+
} else {
|
|
104
|
+
loadErrors.push(new Error(`Unsupported architecture on Android ${process.arch}`))
|
|
105
|
+
}
|
|
106
|
+
} else if (process.platform === 'win32') {
|
|
107
|
+
if (process.arch === 'x64') {
|
|
108
|
+
if (process.config?.variables?.shlib_suffix === 'dll.a' || process.config?.variables?.node_target_type === 'shared_library') {
|
|
33
109
|
try {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
110
|
+
return require('./tokscale-core.win32-x64-gnu.node')
|
|
111
|
+
} catch (e) {
|
|
112
|
+
loadErrors.push(e)
|
|
113
|
+
}
|
|
114
|
+
try {
|
|
115
|
+
const binding = require('@tokscale/core-win32-x64-gnu')
|
|
116
|
+
const bindingPackageVersion = require('@tokscale/core-win32-x64-gnu/package.json').version
|
|
117
|
+
if (bindingPackageVersion !== '1.0.17' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
118
|
+
throw new Error(`Native binding package version mismatch, expected 1.0.17 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
119
|
+
}
|
|
120
|
+
return binding
|
|
121
|
+
} catch (e) {
|
|
122
|
+
loadErrors.push(e)
|
|
123
|
+
}
|
|
124
|
+
} else {
|
|
125
|
+
try {
|
|
126
|
+
return require('./tokscale-core.win32-x64-msvc.node')
|
|
127
|
+
} catch (e) {
|
|
128
|
+
loadErrors.push(e)
|
|
129
|
+
}
|
|
130
|
+
try {
|
|
131
|
+
const binding = require('@tokscale/core-win32-x64-msvc')
|
|
132
|
+
const bindingPackageVersion = require('@tokscale/core-win32-x64-msvc/package.json').version
|
|
133
|
+
if (bindingPackageVersion !== '1.0.17' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
134
|
+
throw new Error(`Native binding package version mismatch, expected 1.0.17 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
135
|
+
}
|
|
136
|
+
return binding
|
|
137
|
+
} catch (e) {
|
|
138
|
+
loadErrors.push(e)
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
} else if (process.arch === 'ia32') {
|
|
142
|
+
try {
|
|
143
|
+
return require('./tokscale-core.win32-ia32-msvc.node')
|
|
144
|
+
} catch (e) {
|
|
145
|
+
loadErrors.push(e)
|
|
146
|
+
}
|
|
147
|
+
try {
|
|
148
|
+
const binding = require('@tokscale/core-win32-ia32-msvc')
|
|
149
|
+
const bindingPackageVersion = require('@tokscale/core-win32-ia32-msvc/package.json').version
|
|
150
|
+
if (bindingPackageVersion !== '1.0.17' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
151
|
+
throw new Error(`Native binding package version mismatch, expected 1.0.17 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
152
|
+
}
|
|
153
|
+
return binding
|
|
154
|
+
} catch (e) {
|
|
155
|
+
loadErrors.push(e)
|
|
156
|
+
}
|
|
157
|
+
} else if (process.arch === 'arm64') {
|
|
158
|
+
try {
|
|
159
|
+
return require('./tokscale-core.win32-arm64-msvc.node')
|
|
160
|
+
} catch (e) {
|
|
161
|
+
loadErrors.push(e)
|
|
162
|
+
}
|
|
163
|
+
try {
|
|
164
|
+
const binding = require('@tokscale/core-win32-arm64-msvc')
|
|
165
|
+
const bindingPackageVersion = require('@tokscale/core-win32-arm64-msvc/package.json').version
|
|
166
|
+
if (bindingPackageVersion !== '1.0.17' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
167
|
+
throw new Error(`Native binding package version mismatch, expected 1.0.17 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
168
|
+
}
|
|
169
|
+
return binding
|
|
170
|
+
} catch (e) {
|
|
171
|
+
loadErrors.push(e)
|
|
172
|
+
}
|
|
173
|
+
} else {
|
|
174
|
+
loadErrors.push(new Error(`Unsupported architecture on Windows: ${process.arch}`))
|
|
175
|
+
}
|
|
176
|
+
} else if (process.platform === 'darwin') {
|
|
177
|
+
try {
|
|
178
|
+
return require('./tokscale-core.darwin-universal.node')
|
|
179
|
+
} catch (e) {
|
|
180
|
+
loadErrors.push(e)
|
|
181
|
+
}
|
|
182
|
+
try {
|
|
183
|
+
const binding = require('@tokscale/core-darwin-universal')
|
|
184
|
+
const bindingPackageVersion = require('@tokscale/core-darwin-universal/package.json').version
|
|
185
|
+
if (bindingPackageVersion !== '1.0.17' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
186
|
+
throw new Error(`Native binding package version mismatch, expected 1.0.17 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
187
|
+
}
|
|
188
|
+
return binding
|
|
189
|
+
} catch (e) {
|
|
190
|
+
loadErrors.push(e)
|
|
191
|
+
}
|
|
192
|
+
if (process.arch === 'x64') {
|
|
193
|
+
try {
|
|
194
|
+
return require('./tokscale-core.darwin-x64.node')
|
|
195
|
+
} catch (e) {
|
|
196
|
+
loadErrors.push(e)
|
|
197
|
+
}
|
|
198
|
+
try {
|
|
199
|
+
const binding = require('@tokscale/core-darwin-x64')
|
|
200
|
+
const bindingPackageVersion = require('@tokscale/core-darwin-x64/package.json').version
|
|
201
|
+
if (bindingPackageVersion !== '1.0.17' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
202
|
+
throw new Error(`Native binding package version mismatch, expected 1.0.17 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
203
|
+
}
|
|
204
|
+
return binding
|
|
205
|
+
} catch (e) {
|
|
206
|
+
loadErrors.push(e)
|
|
207
|
+
}
|
|
208
|
+
} else if (process.arch === 'arm64') {
|
|
209
|
+
try {
|
|
210
|
+
return require('./tokscale-core.darwin-arm64.node')
|
|
211
|
+
} catch (e) {
|
|
212
|
+
loadErrors.push(e)
|
|
213
|
+
}
|
|
214
|
+
try {
|
|
215
|
+
const binding = require('@tokscale/core-darwin-arm64')
|
|
216
|
+
const bindingPackageVersion = require('@tokscale/core-darwin-arm64/package.json').version
|
|
217
|
+
if (bindingPackageVersion !== '1.0.17' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
218
|
+
throw new Error(`Native binding package version mismatch, expected 1.0.17 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
219
|
+
}
|
|
220
|
+
return binding
|
|
221
|
+
} catch (e) {
|
|
222
|
+
loadErrors.push(e)
|
|
223
|
+
}
|
|
224
|
+
} else {
|
|
225
|
+
loadErrors.push(new Error(`Unsupported architecture on macOS: ${process.arch}`))
|
|
226
|
+
}
|
|
227
|
+
} else if (process.platform === 'freebsd') {
|
|
228
|
+
if (process.arch === 'x64') {
|
|
229
|
+
try {
|
|
230
|
+
return require('./tokscale-core.freebsd-x64.node')
|
|
231
|
+
} catch (e) {
|
|
232
|
+
loadErrors.push(e)
|
|
233
|
+
}
|
|
234
|
+
try {
|
|
235
|
+
const binding = require('@tokscale/core-freebsd-x64')
|
|
236
|
+
const bindingPackageVersion = require('@tokscale/core-freebsd-x64/package.json').version
|
|
237
|
+
if (bindingPackageVersion !== '1.0.17' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
238
|
+
throw new Error(`Native binding package version mismatch, expected 1.0.17 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
239
|
+
}
|
|
240
|
+
return binding
|
|
241
|
+
} catch (e) {
|
|
242
|
+
loadErrors.push(e)
|
|
243
|
+
}
|
|
244
|
+
} else if (process.arch === 'arm64') {
|
|
245
|
+
try {
|
|
246
|
+
return require('./tokscale-core.freebsd-arm64.node')
|
|
247
|
+
} catch (e) {
|
|
248
|
+
loadErrors.push(e)
|
|
249
|
+
}
|
|
250
|
+
try {
|
|
251
|
+
const binding = require('@tokscale/core-freebsd-arm64')
|
|
252
|
+
const bindingPackageVersion = require('@tokscale/core-freebsd-arm64/package.json').version
|
|
253
|
+
if (bindingPackageVersion !== '1.0.17' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
254
|
+
throw new Error(`Native binding package version mismatch, expected 1.0.17 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
255
|
+
}
|
|
256
|
+
return binding
|
|
257
|
+
} catch (e) {
|
|
258
|
+
loadErrors.push(e)
|
|
259
|
+
}
|
|
260
|
+
} else {
|
|
261
|
+
loadErrors.push(new Error(`Unsupported architecture on FreeBSD: ${process.arch}`))
|
|
262
|
+
}
|
|
263
|
+
} else if (process.platform === 'linux') {
|
|
264
|
+
if (process.arch === 'x64') {
|
|
265
|
+
if (isMusl()) {
|
|
266
|
+
try {
|
|
267
|
+
return require('./tokscale-core.linux-x64-musl.node')
|
|
39
268
|
} catch (e) {
|
|
40
|
-
|
|
269
|
+
loadErrors.push(e)
|
|
41
270
|
}
|
|
42
|
-
break
|
|
43
|
-
case 'arm':
|
|
44
|
-
localFileExisted = existsSync(join(__dirname, 'tokscale-core.android-arm-eabi.node'))
|
|
45
271
|
try {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
272
|
+
const binding = require('@tokscale/core-linux-x64-musl')
|
|
273
|
+
const bindingPackageVersion = require('@tokscale/core-linux-x64-musl/package.json').version
|
|
274
|
+
if (bindingPackageVersion !== '1.0.17' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
275
|
+
throw new Error(`Native binding package version mismatch, expected 1.0.17 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
50
276
|
}
|
|
277
|
+
return binding
|
|
51
278
|
} catch (e) {
|
|
52
|
-
|
|
279
|
+
loadErrors.push(e)
|
|
53
280
|
}
|
|
54
|
-
|
|
55
|
-
default:
|
|
56
|
-
throw new Error(`Unsupported architecture on Android ${arch}`)
|
|
57
|
-
}
|
|
58
|
-
break
|
|
59
|
-
case 'win32':
|
|
60
|
-
switch (arch) {
|
|
61
|
-
case 'x64':
|
|
62
|
-
localFileExisted = existsSync(
|
|
63
|
-
join(__dirname, 'tokscale-core.win32-x64-msvc.node')
|
|
64
|
-
)
|
|
281
|
+
} else {
|
|
65
282
|
try {
|
|
66
|
-
|
|
67
|
-
nativeBinding = require('./tokscale-core.win32-x64-msvc.node')
|
|
68
|
-
} else {
|
|
69
|
-
nativeBinding = require('@tokscale/core-win32-x64-msvc')
|
|
70
|
-
}
|
|
283
|
+
return require('./tokscale-core.linux-x64-gnu.node')
|
|
71
284
|
} catch (e) {
|
|
72
|
-
|
|
285
|
+
loadErrors.push(e)
|
|
73
286
|
}
|
|
74
|
-
break
|
|
75
|
-
case 'ia32':
|
|
76
|
-
localFileExisted = existsSync(
|
|
77
|
-
join(__dirname, 'tokscale-core.win32-ia32-msvc.node')
|
|
78
|
-
)
|
|
79
287
|
try {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
288
|
+
const binding = require('@tokscale/core-linux-x64-gnu')
|
|
289
|
+
const bindingPackageVersion = require('@tokscale/core-linux-x64-gnu/package.json').version
|
|
290
|
+
if (bindingPackageVersion !== '1.0.17' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
291
|
+
throw new Error(`Native binding package version mismatch, expected 1.0.17 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
84
292
|
}
|
|
293
|
+
return binding
|
|
85
294
|
} catch (e) {
|
|
86
|
-
|
|
295
|
+
loadErrors.push(e)
|
|
87
296
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
join(__dirname, 'tokscale-core.win32-arm64-msvc.node')
|
|
92
|
-
)
|
|
297
|
+
}
|
|
298
|
+
} else if (process.arch === 'arm64') {
|
|
299
|
+
if (isMusl()) {
|
|
93
300
|
try {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
301
|
+
return require('./tokscale-core.linux-arm64-musl.node')
|
|
302
|
+
} catch (e) {
|
|
303
|
+
loadErrors.push(e)
|
|
304
|
+
}
|
|
305
|
+
try {
|
|
306
|
+
const binding = require('@tokscale/core-linux-arm64-musl')
|
|
307
|
+
const bindingPackageVersion = require('@tokscale/core-linux-arm64-musl/package.json').version
|
|
308
|
+
if (bindingPackageVersion !== '1.0.17' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
309
|
+
throw new Error(`Native binding package version mismatch, expected 1.0.17 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
98
310
|
}
|
|
311
|
+
return binding
|
|
99
312
|
} catch (e) {
|
|
100
|
-
|
|
313
|
+
loadErrors.push(e)
|
|
101
314
|
}
|
|
102
|
-
break
|
|
103
|
-
default:
|
|
104
|
-
throw new Error(`Unsupported architecture on Windows: ${arch}`)
|
|
105
|
-
}
|
|
106
|
-
break
|
|
107
|
-
case 'darwin':
|
|
108
|
-
localFileExisted = existsSync(join(__dirname, 'tokscale-core.darwin-universal.node'))
|
|
109
|
-
try {
|
|
110
|
-
if (localFileExisted) {
|
|
111
|
-
nativeBinding = require('./tokscale-core.darwin-universal.node')
|
|
112
315
|
} else {
|
|
113
|
-
nativeBinding = require('@tokscale/core-darwin-universal')
|
|
114
|
-
}
|
|
115
|
-
break
|
|
116
|
-
} catch {}
|
|
117
|
-
switch (arch) {
|
|
118
|
-
case 'x64':
|
|
119
|
-
localFileExisted = existsSync(join(__dirname, 'tokscale-core.darwin-x64.node'))
|
|
120
316
|
try {
|
|
121
|
-
|
|
122
|
-
nativeBinding = require('./tokscale-core.darwin-x64.node')
|
|
123
|
-
} else {
|
|
124
|
-
nativeBinding = require('@tokscale/core-darwin-x64')
|
|
125
|
-
}
|
|
317
|
+
return require('./tokscale-core.linux-arm64-gnu.node')
|
|
126
318
|
} catch (e) {
|
|
127
|
-
|
|
319
|
+
loadErrors.push(e)
|
|
128
320
|
}
|
|
129
|
-
break
|
|
130
|
-
case 'arm64':
|
|
131
|
-
localFileExisted = existsSync(
|
|
132
|
-
join(__dirname, 'tokscale-core.darwin-arm64.node')
|
|
133
|
-
)
|
|
134
321
|
try {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
322
|
+
const binding = require('@tokscale/core-linux-arm64-gnu')
|
|
323
|
+
const bindingPackageVersion = require('@tokscale/core-linux-arm64-gnu/package.json').version
|
|
324
|
+
if (bindingPackageVersion !== '1.0.17' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
325
|
+
throw new Error(`Native binding package version mismatch, expected 1.0.17 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
139
326
|
}
|
|
327
|
+
return binding
|
|
140
328
|
} catch (e) {
|
|
141
|
-
|
|
329
|
+
loadErrors.push(e)
|
|
142
330
|
}
|
|
143
|
-
break
|
|
144
|
-
default:
|
|
145
|
-
throw new Error(`Unsupported architecture on macOS: ${arch}`)
|
|
146
|
-
}
|
|
147
|
-
break
|
|
148
|
-
case 'freebsd':
|
|
149
|
-
if (arch !== 'x64') {
|
|
150
|
-
throw new Error(`Unsupported architecture on FreeBSD: ${arch}`)
|
|
151
|
-
}
|
|
152
|
-
localFileExisted = existsSync(join(__dirname, 'tokscale-core.freebsd-x64.node'))
|
|
153
|
-
try {
|
|
154
|
-
if (localFileExisted) {
|
|
155
|
-
nativeBinding = require('./tokscale-core.freebsd-x64.node')
|
|
156
|
-
} else {
|
|
157
|
-
nativeBinding = require('@tokscale/core-freebsd-x64')
|
|
158
331
|
}
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
case 'x64':
|
|
166
|
-
if (isMusl()) {
|
|
167
|
-
localFileExisted = existsSync(
|
|
168
|
-
join(__dirname, 'tokscale-core.linux-x64-musl.node')
|
|
169
|
-
)
|
|
170
|
-
try {
|
|
171
|
-
if (localFileExisted) {
|
|
172
|
-
nativeBinding = require('./tokscale-core.linux-x64-musl.node')
|
|
173
|
-
} else {
|
|
174
|
-
nativeBinding = require('@tokscale/core-linux-x64-musl')
|
|
175
|
-
}
|
|
176
|
-
} catch (e) {
|
|
177
|
-
loadError = e
|
|
178
|
-
}
|
|
179
|
-
} else {
|
|
180
|
-
localFileExisted = existsSync(
|
|
181
|
-
join(__dirname, 'tokscale-core.linux-x64-gnu.node')
|
|
182
|
-
)
|
|
183
|
-
try {
|
|
184
|
-
if (localFileExisted) {
|
|
185
|
-
nativeBinding = require('./tokscale-core.linux-x64-gnu.node')
|
|
186
|
-
} else {
|
|
187
|
-
nativeBinding = require('@tokscale/core-linux-x64-gnu')
|
|
188
|
-
}
|
|
189
|
-
} catch (e) {
|
|
190
|
-
loadError = e
|
|
191
|
-
}
|
|
332
|
+
} else if (process.arch === 'arm') {
|
|
333
|
+
if (isMusl()) {
|
|
334
|
+
try {
|
|
335
|
+
return require('./tokscale-core.linux-arm-musleabihf.node')
|
|
336
|
+
} catch (e) {
|
|
337
|
+
loadErrors.push(e)
|
|
192
338
|
}
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
)
|
|
199
|
-
try {
|
|
200
|
-
if (localFileExisted) {
|
|
201
|
-
nativeBinding = require('./tokscale-core.linux-arm64-musl.node')
|
|
202
|
-
} else {
|
|
203
|
-
nativeBinding = require('@tokscale/core-linux-arm64-musl')
|
|
204
|
-
}
|
|
205
|
-
} catch (e) {
|
|
206
|
-
loadError = e
|
|
207
|
-
}
|
|
208
|
-
} else {
|
|
209
|
-
localFileExisted = existsSync(
|
|
210
|
-
join(__dirname, 'tokscale-core.linux-arm64-gnu.node')
|
|
211
|
-
)
|
|
212
|
-
try {
|
|
213
|
-
if (localFileExisted) {
|
|
214
|
-
nativeBinding = require('./tokscale-core.linux-arm64-gnu.node')
|
|
215
|
-
} else {
|
|
216
|
-
nativeBinding = require('@tokscale/core-linux-arm64-gnu')
|
|
217
|
-
}
|
|
218
|
-
} catch (e) {
|
|
219
|
-
loadError = e
|
|
339
|
+
try {
|
|
340
|
+
const binding = require('@tokscale/core-linux-arm-musleabihf')
|
|
341
|
+
const bindingPackageVersion = require('@tokscale/core-linux-arm-musleabihf/package.json').version
|
|
342
|
+
if (bindingPackageVersion !== '1.0.17' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
343
|
+
throw new Error(`Native binding package version mismatch, expected 1.0.17 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
220
344
|
}
|
|
345
|
+
return binding
|
|
346
|
+
} catch (e) {
|
|
347
|
+
loadErrors.push(e)
|
|
348
|
+
}
|
|
349
|
+
} else {
|
|
350
|
+
try {
|
|
351
|
+
return require('./tokscale-core.linux-arm-gnueabihf.node')
|
|
352
|
+
} catch (e) {
|
|
353
|
+
loadErrors.push(e)
|
|
221
354
|
}
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
)
|
|
228
|
-
try {
|
|
229
|
-
if (localFileExisted) {
|
|
230
|
-
nativeBinding = require('./tokscale-core.linux-arm-musleabihf.node')
|
|
231
|
-
} else {
|
|
232
|
-
nativeBinding = require('@tokscale/core-linux-arm-musleabihf')
|
|
233
|
-
}
|
|
234
|
-
} catch (e) {
|
|
235
|
-
loadError = e
|
|
355
|
+
try {
|
|
356
|
+
const binding = require('@tokscale/core-linux-arm-gnueabihf')
|
|
357
|
+
const bindingPackageVersion = require('@tokscale/core-linux-arm-gnueabihf/package.json').version
|
|
358
|
+
if (bindingPackageVersion !== '1.0.17' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
359
|
+
throw new Error(`Native binding package version mismatch, expected 1.0.17 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
236
360
|
}
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
361
|
+
return binding
|
|
362
|
+
} catch (e) {
|
|
363
|
+
loadErrors.push(e)
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
} else if (process.arch === 'loong64') {
|
|
367
|
+
if (isMusl()) {
|
|
368
|
+
try {
|
|
369
|
+
return require('./tokscale-core.linux-loong64-musl.node')
|
|
370
|
+
} catch (e) {
|
|
371
|
+
loadErrors.push(e)
|
|
372
|
+
}
|
|
373
|
+
try {
|
|
374
|
+
const binding = require('@tokscale/core-linux-loong64-musl')
|
|
375
|
+
const bindingPackageVersion = require('@tokscale/core-linux-loong64-musl/package.json').version
|
|
376
|
+
if (bindingPackageVersion !== '1.0.17' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
377
|
+
throw new Error(`Native binding package version mismatch, expected 1.0.17 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
249
378
|
}
|
|
379
|
+
return binding
|
|
380
|
+
} catch (e) {
|
|
381
|
+
loadErrors.push(e)
|
|
250
382
|
}
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
}
|
|
263
|
-
} catch (e) {
|
|
264
|
-
loadError = e
|
|
383
|
+
} else {
|
|
384
|
+
try {
|
|
385
|
+
return require('./tokscale-core.linux-loong64-gnu.node')
|
|
386
|
+
} catch (e) {
|
|
387
|
+
loadErrors.push(e)
|
|
388
|
+
}
|
|
389
|
+
try {
|
|
390
|
+
const binding = require('@tokscale/core-linux-loong64-gnu')
|
|
391
|
+
const bindingPackageVersion = require('@tokscale/core-linux-loong64-gnu/package.json').version
|
|
392
|
+
if (bindingPackageVersion !== '1.0.17' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
393
|
+
throw new Error(`Native binding package version mismatch, expected 1.0.17 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
265
394
|
}
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
395
|
+
return binding
|
|
396
|
+
} catch (e) {
|
|
397
|
+
loadErrors.push(e)
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
} else if (process.arch === 'riscv64') {
|
|
401
|
+
if (isMusl()) {
|
|
402
|
+
try {
|
|
403
|
+
return require('./tokscale-core.linux-riscv64-musl.node')
|
|
404
|
+
} catch (e) {
|
|
405
|
+
loadErrors.push(e)
|
|
406
|
+
}
|
|
407
|
+
try {
|
|
408
|
+
const binding = require('@tokscale/core-linux-riscv64-musl')
|
|
409
|
+
const bindingPackageVersion = require('@tokscale/core-linux-riscv64-musl/package.json').version
|
|
410
|
+
if (bindingPackageVersion !== '1.0.17' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
411
|
+
throw new Error(`Native binding package version mismatch, expected 1.0.17 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
278
412
|
}
|
|
413
|
+
return binding
|
|
414
|
+
} catch (e) {
|
|
415
|
+
loadErrors.push(e)
|
|
416
|
+
}
|
|
417
|
+
} else {
|
|
418
|
+
try {
|
|
419
|
+
return require('./tokscale-core.linux-riscv64-gnu.node')
|
|
420
|
+
} catch (e) {
|
|
421
|
+
loadErrors.push(e)
|
|
279
422
|
}
|
|
280
|
-
break
|
|
281
|
-
case 's390x':
|
|
282
|
-
localFileExisted = existsSync(
|
|
283
|
-
join(__dirname, 'tokscale-core.linux-s390x-gnu.node')
|
|
284
|
-
)
|
|
285
423
|
try {
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
424
|
+
const binding = require('@tokscale/core-linux-riscv64-gnu')
|
|
425
|
+
const bindingPackageVersion = require('@tokscale/core-linux-riscv64-gnu/package.json').version
|
|
426
|
+
if (bindingPackageVersion !== '1.0.17' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
427
|
+
throw new Error(`Native binding package version mismatch, expected 1.0.17 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
290
428
|
}
|
|
429
|
+
return binding
|
|
291
430
|
} catch (e) {
|
|
292
|
-
|
|
431
|
+
loadErrors.push(e)
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
} else if (process.arch === 'ppc64') {
|
|
435
|
+
try {
|
|
436
|
+
return require('./tokscale-core.linux-ppc64-gnu.node')
|
|
437
|
+
} catch (e) {
|
|
438
|
+
loadErrors.push(e)
|
|
439
|
+
}
|
|
440
|
+
try {
|
|
441
|
+
const binding = require('@tokscale/core-linux-ppc64-gnu')
|
|
442
|
+
const bindingPackageVersion = require('@tokscale/core-linux-ppc64-gnu/package.json').version
|
|
443
|
+
if (bindingPackageVersion !== '1.0.17' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
444
|
+
throw new Error(`Native binding package version mismatch, expected 1.0.17 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
293
445
|
}
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
446
|
+
return binding
|
|
447
|
+
} catch (e) {
|
|
448
|
+
loadErrors.push(e)
|
|
449
|
+
}
|
|
450
|
+
} else if (process.arch === 's390x') {
|
|
451
|
+
try {
|
|
452
|
+
return require('./tokscale-core.linux-s390x-gnu.node')
|
|
453
|
+
} catch (e) {
|
|
454
|
+
loadErrors.push(e)
|
|
455
|
+
}
|
|
456
|
+
try {
|
|
457
|
+
const binding = require('@tokscale/core-linux-s390x-gnu')
|
|
458
|
+
const bindingPackageVersion = require('@tokscale/core-linux-s390x-gnu/package.json').version
|
|
459
|
+
if (bindingPackageVersion !== '1.0.17' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
460
|
+
throw new Error(`Native binding package version mismatch, expected 1.0.17 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
461
|
+
}
|
|
462
|
+
return binding
|
|
463
|
+
} catch (e) {
|
|
464
|
+
loadErrors.push(e)
|
|
465
|
+
}
|
|
466
|
+
} else {
|
|
467
|
+
loadErrors.push(new Error(`Unsupported architecture on Linux: ${process.arch}`))
|
|
297
468
|
}
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
469
|
+
} else if (process.platform === 'openharmony') {
|
|
470
|
+
if (process.arch === 'arm64') {
|
|
471
|
+
try {
|
|
472
|
+
return require('./tokscale-core.openharmony-arm64.node')
|
|
473
|
+
} catch (e) {
|
|
474
|
+
loadErrors.push(e)
|
|
475
|
+
}
|
|
476
|
+
try {
|
|
477
|
+
const binding = require('@tokscale/core-openharmony-arm64')
|
|
478
|
+
const bindingPackageVersion = require('@tokscale/core-openharmony-arm64/package.json').version
|
|
479
|
+
if (bindingPackageVersion !== '1.0.17' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
480
|
+
throw new Error(`Native binding package version mismatch, expected 1.0.17 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
481
|
+
}
|
|
482
|
+
return binding
|
|
483
|
+
} catch (e) {
|
|
484
|
+
loadErrors.push(e)
|
|
485
|
+
}
|
|
486
|
+
} else if (process.arch === 'x64') {
|
|
487
|
+
try {
|
|
488
|
+
return require('./tokscale-core.openharmony-x64.node')
|
|
489
|
+
} catch (e) {
|
|
490
|
+
loadErrors.push(e)
|
|
491
|
+
}
|
|
492
|
+
try {
|
|
493
|
+
const binding = require('@tokscale/core-openharmony-x64')
|
|
494
|
+
const bindingPackageVersion = require('@tokscale/core-openharmony-x64/package.json').version
|
|
495
|
+
if (bindingPackageVersion !== '1.0.17' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
496
|
+
throw new Error(`Native binding package version mismatch, expected 1.0.17 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
497
|
+
}
|
|
498
|
+
return binding
|
|
499
|
+
} catch (e) {
|
|
500
|
+
loadErrors.push(e)
|
|
501
|
+
}
|
|
502
|
+
} else if (process.arch === 'arm') {
|
|
503
|
+
try {
|
|
504
|
+
return require('./tokscale-core.openharmony-arm.node')
|
|
505
|
+
} catch (e) {
|
|
506
|
+
loadErrors.push(e)
|
|
507
|
+
}
|
|
508
|
+
try {
|
|
509
|
+
const binding = require('@tokscale/core-openharmony-arm')
|
|
510
|
+
const bindingPackageVersion = require('@tokscale/core-openharmony-arm/package.json').version
|
|
511
|
+
if (bindingPackageVersion !== '1.0.17' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
512
|
+
throw new Error(`Native binding package version mismatch, expected 1.0.17 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
513
|
+
}
|
|
514
|
+
return binding
|
|
515
|
+
} catch (e) {
|
|
516
|
+
loadErrors.push(e)
|
|
517
|
+
}
|
|
518
|
+
} else {
|
|
519
|
+
loadErrors.push(new Error(`Unsupported architecture on OpenHarmony: ${process.arch}`))
|
|
520
|
+
}
|
|
521
|
+
} else {
|
|
522
|
+
loadErrors.push(new Error(`Unsupported OS: ${process.platform}, architecture: ${process.arch}`))
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
nativeBinding = requireNative()
|
|
527
|
+
|
|
528
|
+
if (!nativeBinding || process.env.NAPI_RS_FORCE_WASI) {
|
|
529
|
+
let wasiBinding = null
|
|
530
|
+
let wasiBindingError = null
|
|
531
|
+
try {
|
|
532
|
+
wasiBinding = require('./tokscale-core.wasi.cjs')
|
|
533
|
+
nativeBinding = wasiBinding
|
|
534
|
+
} catch (err) {
|
|
535
|
+
if (process.env.NAPI_RS_FORCE_WASI) {
|
|
536
|
+
wasiBindingError = err
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
if (!nativeBinding) {
|
|
540
|
+
try {
|
|
541
|
+
wasiBinding = require('@tokscale/core-wasm32-wasi')
|
|
542
|
+
nativeBinding = wasiBinding
|
|
543
|
+
} catch (err) {
|
|
544
|
+
if (process.env.NAPI_RS_FORCE_WASI) {
|
|
545
|
+
wasiBindingError.cause = err
|
|
546
|
+
loadErrors.push(err)
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
if (process.env.NAPI_RS_FORCE_WASI === 'error' && !wasiBinding) {
|
|
551
|
+
const error = new Error('WASI binding not found and NAPI_RS_FORCE_WASI is set to error')
|
|
552
|
+
error.cause = wasiBindingError
|
|
553
|
+
throw error
|
|
554
|
+
}
|
|
301
555
|
}
|
|
302
556
|
|
|
303
557
|
if (!nativeBinding) {
|
|
304
|
-
if (
|
|
305
|
-
throw
|
|
558
|
+
if (loadErrors.length > 0) {
|
|
559
|
+
throw new Error(
|
|
560
|
+
`Cannot find native binding. ` +
|
|
561
|
+
`npm has a bug related to optional dependencies (https://github.com/npm/cli/issues/4828). ` +
|
|
562
|
+
'Please try `npm i` again after removing both package-lock.json and node_modules directory.',
|
|
563
|
+
{
|
|
564
|
+
cause: loadErrors.reduce((err, cur) => {
|
|
565
|
+
cur.cause = err
|
|
566
|
+
return cur
|
|
567
|
+
}),
|
|
568
|
+
},
|
|
569
|
+
)
|
|
306
570
|
}
|
|
307
571
|
throw new Error(`Failed to load native binding`)
|
|
308
572
|
}
|
|
309
573
|
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
module.exports.version = version
|
|
326
|
-
module.exports.healthCheck = healthCheck
|
|
327
|
-
module.exports.generateGraph = generateGraph
|
|
328
|
-
module.exports.scanSessions = scanSessions
|
|
329
|
-
module.exports.getModelReport = getModelReport
|
|
330
|
-
module.exports.getMonthlyReport = getMonthlyReport
|
|
331
|
-
module.exports.generateGraphWithPricing = generateGraphWithPricing
|
|
332
|
-
// Two-phase processing functions (parallel optimization)
|
|
333
|
-
module.exports.parseLocalSources = parseLocalSources
|
|
334
|
-
module.exports.finalizeReport = finalizeReport
|
|
335
|
-
module.exports.finalizeMonthlyReport = finalizeMonthlyReport
|
|
336
|
-
module.exports.finalizeGraph = finalizeGraph
|
|
574
|
+
module.exports = nativeBinding
|
|
575
|
+
module.exports.finalizeGraph = nativeBinding.finalizeGraph
|
|
576
|
+
module.exports.finalizeMonthlyReport = nativeBinding.finalizeMonthlyReport
|
|
577
|
+
module.exports.finalizeReport = nativeBinding.finalizeReport
|
|
578
|
+
module.exports.finalizeReportAndGraph = nativeBinding.finalizeReportAndGraph
|
|
579
|
+
module.exports.generateGraph = nativeBinding.generateGraph
|
|
580
|
+
module.exports.generateGraphWithPricing = nativeBinding.generateGraphWithPricing
|
|
581
|
+
module.exports.getModelReport = nativeBinding.getModelReport
|
|
582
|
+
module.exports.getMonthlyReport = nativeBinding.getMonthlyReport
|
|
583
|
+
module.exports.healthCheck = nativeBinding.healthCheck
|
|
584
|
+
module.exports.lookupPricing = nativeBinding.lookupPricing
|
|
585
|
+
module.exports.parseLocalSources = nativeBinding.parseLocalSources
|
|
586
|
+
module.exports.scanSessions = nativeBinding.scanSessions
|
|
587
|
+
module.exports.version = nativeBinding.version
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tokscale/core",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.18",
|
|
4
4
|
"description": "Native Rust core for tokscale CLI - high-performance session parsing",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"types": "index.d.ts",
|
|
@@ -66,4 +66,4 @@
|
|
|
66
66
|
"performance",
|
|
67
67
|
"native"
|
|
68
68
|
]
|
|
69
|
-
}
|
|
69
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|