@runtimed/node 0.0.1
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 +28 -0
- package/package.json +51 -0
- package/src/binding.cjs +586 -0
- package/src/binding.d.ts +172 -0
- package/src/index.cjs +12 -0
- package/src/index.d.ts +7 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
BSD 3-Clause License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024, runtimed
|
|
4
|
+
|
|
5
|
+
Redistribution and use in source and binary forms, with or without
|
|
6
|
+
modification, are permitted provided that the following conditions are met:
|
|
7
|
+
|
|
8
|
+
1. Redistributions of source code must retain the above copyright notice, this
|
|
9
|
+
list of conditions and the following disclaimer.
|
|
10
|
+
|
|
11
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
12
|
+
this list of conditions and the following disclaimer in the documentation
|
|
13
|
+
and/or other materials provided with the distribution.
|
|
14
|
+
|
|
15
|
+
3. Neither the name of the copyright holder nor the names of its
|
|
16
|
+
contributors may be used to endorse or promote products derived from
|
|
17
|
+
this software without specific prior written permission.
|
|
18
|
+
|
|
19
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
20
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
21
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
22
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
23
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
24
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
25
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
26
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
27
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
28
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
package/package.json
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@runtimed/node",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "Node.js bindings for the runtimed daemon client (napi-rs).",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "BSD-3-Clause",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/nteract/desktop.git",
|
|
10
|
+
"directory": "packages/runtimed-node"
|
|
11
|
+
},
|
|
12
|
+
"main": "./src/index.cjs",
|
|
13
|
+
"types": "./src/index.d.ts",
|
|
14
|
+
"exports": {
|
|
15
|
+
".": {
|
|
16
|
+
"types": "./src/index.d.ts",
|
|
17
|
+
"require": "./src/index.cjs",
|
|
18
|
+
"default": "./src/index.cjs"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"files": [
|
|
22
|
+
"src/index.cjs",
|
|
23
|
+
"src/index.d.ts",
|
|
24
|
+
"src/binding.cjs",
|
|
25
|
+
"src/binding.d.ts"
|
|
26
|
+
],
|
|
27
|
+
"napi": {
|
|
28
|
+
"binaryName": "runtimed-node",
|
|
29
|
+
"targets": [
|
|
30
|
+
"x86_64-unknown-linux-gnu"
|
|
31
|
+
]
|
|
32
|
+
},
|
|
33
|
+
"optionalDependencies": {
|
|
34
|
+
"@runtimed/node-darwin-arm64": "0.0.1",
|
|
35
|
+
"@runtimed/node-linux-x64-gnu": "0.0.1"
|
|
36
|
+
},
|
|
37
|
+
"publishConfig": {
|
|
38
|
+
"access": "public"
|
|
39
|
+
},
|
|
40
|
+
"devDependencies": {
|
|
41
|
+
"@napi-rs/cli": "^3.6.2"
|
|
42
|
+
},
|
|
43
|
+
"scripts": {
|
|
44
|
+
"assemble:platform": "node scripts/assemble-platform-package.mjs",
|
|
45
|
+
"build": "napi build --platform --release --js binding.cjs --dts binding.d.ts --manifest-path ../../crates/runtimed-node/Cargo.toml --output-dir src",
|
|
46
|
+
"build:debug": "napi build --platform --js binding.cjs --dts binding.d.ts --manifest-path ../../crates/runtimed-node/Cargo.toml --output-dir src",
|
|
47
|
+
"pack:platform:dry-run": "node scripts/assemble-platform-package.mjs --pack-dry-run",
|
|
48
|
+
"pack:dry-run": "pnpm pack --dry-run",
|
|
49
|
+
"smoke": "node -e \"const m = require('./src/index.cjs'); console.log('defaultSocketPath:', m.defaultSocketPath());\""
|
|
50
|
+
}
|
|
51
|
+
}
|
package/src/binding.cjs
ADDED
|
@@ -0,0 +1,586 @@
|
|
|
1
|
+
// prettier-ignore
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
// @ts-nocheck
|
|
4
|
+
/* auto-generated by NAPI-RS */
|
|
5
|
+
|
|
6
|
+
const { readFileSync } = require('node:fs')
|
|
7
|
+
let nativeBinding = null
|
|
8
|
+
const loadErrors = []
|
|
9
|
+
|
|
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
|
+
}
|
|
23
|
+
|
|
24
|
+
const isFileMusl = (f) => f.includes('libc.musl-') || f.includes('ld-musl-')
|
|
25
|
+
|
|
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)) {
|
|
48
|
+
return true
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return false
|
|
52
|
+
}
|
|
53
|
+
|
|
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('./runtimed-node.android-arm64.node')
|
|
74
|
+
} catch (e) {
|
|
75
|
+
loadErrors.push(e)
|
|
76
|
+
}
|
|
77
|
+
try {
|
|
78
|
+
const binding = require('@runtimed/node-android-arm64')
|
|
79
|
+
const bindingPackageVersion = require('@runtimed/node-android-arm64/package.json').version
|
|
80
|
+
if (bindingPackageVersion !== '0.0.1' && 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 0.0.1 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('./runtimed-node.android-arm-eabi.node')
|
|
90
|
+
} catch (e) {
|
|
91
|
+
loadErrors.push(e)
|
|
92
|
+
}
|
|
93
|
+
try {
|
|
94
|
+
const binding = require('@runtimed/node-android-arm-eabi')
|
|
95
|
+
const bindingPackageVersion = require('@runtimed/node-android-arm-eabi/package.json').version
|
|
96
|
+
if (bindingPackageVersion !== '0.0.1' && 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 0.0.1 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') {
|
|
109
|
+
try {
|
|
110
|
+
return require('./runtimed-node.win32-x64-gnu.node')
|
|
111
|
+
} catch (e) {
|
|
112
|
+
loadErrors.push(e)
|
|
113
|
+
}
|
|
114
|
+
try {
|
|
115
|
+
const binding = require('@runtimed/node-win32-x64-gnu')
|
|
116
|
+
const bindingPackageVersion = require('@runtimed/node-win32-x64-gnu/package.json').version
|
|
117
|
+
if (bindingPackageVersion !== '0.0.1' && 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 0.0.1 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('./runtimed-node.win32-x64-msvc.node')
|
|
127
|
+
} catch (e) {
|
|
128
|
+
loadErrors.push(e)
|
|
129
|
+
}
|
|
130
|
+
try {
|
|
131
|
+
const binding = require('@runtimed/node-win32-x64-msvc')
|
|
132
|
+
const bindingPackageVersion = require('@runtimed/node-win32-x64-msvc/package.json').version
|
|
133
|
+
if (bindingPackageVersion !== '0.0.1' && 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 0.0.1 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('./runtimed-node.win32-ia32-msvc.node')
|
|
144
|
+
} catch (e) {
|
|
145
|
+
loadErrors.push(e)
|
|
146
|
+
}
|
|
147
|
+
try {
|
|
148
|
+
const binding = require('@runtimed/node-win32-ia32-msvc')
|
|
149
|
+
const bindingPackageVersion = require('@runtimed/node-win32-ia32-msvc/package.json').version
|
|
150
|
+
if (bindingPackageVersion !== '0.0.1' && 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 0.0.1 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('./runtimed-node.win32-arm64-msvc.node')
|
|
160
|
+
} catch (e) {
|
|
161
|
+
loadErrors.push(e)
|
|
162
|
+
}
|
|
163
|
+
try {
|
|
164
|
+
const binding = require('@runtimed/node-win32-arm64-msvc')
|
|
165
|
+
const bindingPackageVersion = require('@runtimed/node-win32-arm64-msvc/package.json').version
|
|
166
|
+
if (bindingPackageVersion !== '0.0.1' && 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 0.0.1 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('./runtimed-node.darwin-universal.node')
|
|
179
|
+
} catch (e) {
|
|
180
|
+
loadErrors.push(e)
|
|
181
|
+
}
|
|
182
|
+
try {
|
|
183
|
+
const binding = require('@runtimed/node-darwin-universal')
|
|
184
|
+
const bindingPackageVersion = require('@runtimed/node-darwin-universal/package.json').version
|
|
185
|
+
if (bindingPackageVersion !== '0.0.1' && 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 0.0.1 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('./runtimed-node.darwin-x64.node')
|
|
195
|
+
} catch (e) {
|
|
196
|
+
loadErrors.push(e)
|
|
197
|
+
}
|
|
198
|
+
try {
|
|
199
|
+
const binding = require('@runtimed/node-darwin-x64')
|
|
200
|
+
const bindingPackageVersion = require('@runtimed/node-darwin-x64/package.json').version
|
|
201
|
+
if (bindingPackageVersion !== '0.0.1' && 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 0.0.1 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('./runtimed-node.darwin-arm64.node')
|
|
211
|
+
} catch (e) {
|
|
212
|
+
loadErrors.push(e)
|
|
213
|
+
}
|
|
214
|
+
try {
|
|
215
|
+
const binding = require('@runtimed/node-darwin-arm64')
|
|
216
|
+
const bindingPackageVersion = require('@runtimed/node-darwin-arm64/package.json').version
|
|
217
|
+
if (bindingPackageVersion !== '0.0.1' && 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 0.0.1 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('./runtimed-node.freebsd-x64.node')
|
|
231
|
+
} catch (e) {
|
|
232
|
+
loadErrors.push(e)
|
|
233
|
+
}
|
|
234
|
+
try {
|
|
235
|
+
const binding = require('@runtimed/node-freebsd-x64')
|
|
236
|
+
const bindingPackageVersion = require('@runtimed/node-freebsd-x64/package.json').version
|
|
237
|
+
if (bindingPackageVersion !== '0.0.1' && 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 0.0.1 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('./runtimed-node.freebsd-arm64.node')
|
|
247
|
+
} catch (e) {
|
|
248
|
+
loadErrors.push(e)
|
|
249
|
+
}
|
|
250
|
+
try {
|
|
251
|
+
const binding = require('@runtimed/node-freebsd-arm64')
|
|
252
|
+
const bindingPackageVersion = require('@runtimed/node-freebsd-arm64/package.json').version
|
|
253
|
+
if (bindingPackageVersion !== '0.0.1' && 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 0.0.1 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('./runtimed-node.linux-x64-musl.node')
|
|
268
|
+
} catch (e) {
|
|
269
|
+
loadErrors.push(e)
|
|
270
|
+
}
|
|
271
|
+
try {
|
|
272
|
+
const binding = require('@runtimed/node-linux-x64-musl')
|
|
273
|
+
const bindingPackageVersion = require('@runtimed/node-linux-x64-musl/package.json').version
|
|
274
|
+
if (bindingPackageVersion !== '0.0.1' && 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 0.0.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
276
|
+
}
|
|
277
|
+
return binding
|
|
278
|
+
} catch (e) {
|
|
279
|
+
loadErrors.push(e)
|
|
280
|
+
}
|
|
281
|
+
} else {
|
|
282
|
+
try {
|
|
283
|
+
return require('./runtimed-node.linux-x64-gnu.node')
|
|
284
|
+
} catch (e) {
|
|
285
|
+
loadErrors.push(e)
|
|
286
|
+
}
|
|
287
|
+
try {
|
|
288
|
+
const binding = require('@runtimed/node-linux-x64-gnu')
|
|
289
|
+
const bindingPackageVersion = require('@runtimed/node-linux-x64-gnu/package.json').version
|
|
290
|
+
if (bindingPackageVersion !== '0.0.1' && 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 0.0.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
292
|
+
}
|
|
293
|
+
return binding
|
|
294
|
+
} catch (e) {
|
|
295
|
+
loadErrors.push(e)
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
} else if (process.arch === 'arm64') {
|
|
299
|
+
if (isMusl()) {
|
|
300
|
+
try {
|
|
301
|
+
return require('./runtimed-node.linux-arm64-musl.node')
|
|
302
|
+
} catch (e) {
|
|
303
|
+
loadErrors.push(e)
|
|
304
|
+
}
|
|
305
|
+
try {
|
|
306
|
+
const binding = require('@runtimed/node-linux-arm64-musl')
|
|
307
|
+
const bindingPackageVersion = require('@runtimed/node-linux-arm64-musl/package.json').version
|
|
308
|
+
if (bindingPackageVersion !== '0.0.1' && 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 0.0.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
310
|
+
}
|
|
311
|
+
return binding
|
|
312
|
+
} catch (e) {
|
|
313
|
+
loadErrors.push(e)
|
|
314
|
+
}
|
|
315
|
+
} else {
|
|
316
|
+
try {
|
|
317
|
+
return require('./runtimed-node.linux-arm64-gnu.node')
|
|
318
|
+
} catch (e) {
|
|
319
|
+
loadErrors.push(e)
|
|
320
|
+
}
|
|
321
|
+
try {
|
|
322
|
+
const binding = require('@runtimed/node-linux-arm64-gnu')
|
|
323
|
+
const bindingPackageVersion = require('@runtimed/node-linux-arm64-gnu/package.json').version
|
|
324
|
+
if (bindingPackageVersion !== '0.0.1' && 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 0.0.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
326
|
+
}
|
|
327
|
+
return binding
|
|
328
|
+
} catch (e) {
|
|
329
|
+
loadErrors.push(e)
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
} else if (process.arch === 'arm') {
|
|
333
|
+
if (isMusl()) {
|
|
334
|
+
try {
|
|
335
|
+
return require('./runtimed-node.linux-arm-musleabihf.node')
|
|
336
|
+
} catch (e) {
|
|
337
|
+
loadErrors.push(e)
|
|
338
|
+
}
|
|
339
|
+
try {
|
|
340
|
+
const binding = require('@runtimed/node-linux-arm-musleabihf')
|
|
341
|
+
const bindingPackageVersion = require('@runtimed/node-linux-arm-musleabihf/package.json').version
|
|
342
|
+
if (bindingPackageVersion !== '0.0.1' && 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 0.0.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
344
|
+
}
|
|
345
|
+
return binding
|
|
346
|
+
} catch (e) {
|
|
347
|
+
loadErrors.push(e)
|
|
348
|
+
}
|
|
349
|
+
} else {
|
|
350
|
+
try {
|
|
351
|
+
return require('./runtimed-node.linux-arm-gnueabihf.node')
|
|
352
|
+
} catch (e) {
|
|
353
|
+
loadErrors.push(e)
|
|
354
|
+
}
|
|
355
|
+
try {
|
|
356
|
+
const binding = require('@runtimed/node-linux-arm-gnueabihf')
|
|
357
|
+
const bindingPackageVersion = require('@runtimed/node-linux-arm-gnueabihf/package.json').version
|
|
358
|
+
if (bindingPackageVersion !== '0.0.1' && 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 0.0.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
360
|
+
}
|
|
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('./runtimed-node.linux-loong64-musl.node')
|
|
370
|
+
} catch (e) {
|
|
371
|
+
loadErrors.push(e)
|
|
372
|
+
}
|
|
373
|
+
try {
|
|
374
|
+
const binding = require('@runtimed/node-linux-loong64-musl')
|
|
375
|
+
const bindingPackageVersion = require('@runtimed/node-linux-loong64-musl/package.json').version
|
|
376
|
+
if (bindingPackageVersion !== '0.0.1' && 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 0.0.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
378
|
+
}
|
|
379
|
+
return binding
|
|
380
|
+
} catch (e) {
|
|
381
|
+
loadErrors.push(e)
|
|
382
|
+
}
|
|
383
|
+
} else {
|
|
384
|
+
try {
|
|
385
|
+
return require('./runtimed-node.linux-loong64-gnu.node')
|
|
386
|
+
} catch (e) {
|
|
387
|
+
loadErrors.push(e)
|
|
388
|
+
}
|
|
389
|
+
try {
|
|
390
|
+
const binding = require('@runtimed/node-linux-loong64-gnu')
|
|
391
|
+
const bindingPackageVersion = require('@runtimed/node-linux-loong64-gnu/package.json').version
|
|
392
|
+
if (bindingPackageVersion !== '0.0.1' && 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 0.0.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
394
|
+
}
|
|
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('./runtimed-node.linux-riscv64-musl.node')
|
|
404
|
+
} catch (e) {
|
|
405
|
+
loadErrors.push(e)
|
|
406
|
+
}
|
|
407
|
+
try {
|
|
408
|
+
const binding = require('@runtimed/node-linux-riscv64-musl')
|
|
409
|
+
const bindingPackageVersion = require('@runtimed/node-linux-riscv64-musl/package.json').version
|
|
410
|
+
if (bindingPackageVersion !== '0.0.1' && 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 0.0.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
412
|
+
}
|
|
413
|
+
return binding
|
|
414
|
+
} catch (e) {
|
|
415
|
+
loadErrors.push(e)
|
|
416
|
+
}
|
|
417
|
+
} else {
|
|
418
|
+
try {
|
|
419
|
+
return require('./runtimed-node.linux-riscv64-gnu.node')
|
|
420
|
+
} catch (e) {
|
|
421
|
+
loadErrors.push(e)
|
|
422
|
+
}
|
|
423
|
+
try {
|
|
424
|
+
const binding = require('@runtimed/node-linux-riscv64-gnu')
|
|
425
|
+
const bindingPackageVersion = require('@runtimed/node-linux-riscv64-gnu/package.json').version
|
|
426
|
+
if (bindingPackageVersion !== '0.0.1' && 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 0.0.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
428
|
+
}
|
|
429
|
+
return binding
|
|
430
|
+
} catch (e) {
|
|
431
|
+
loadErrors.push(e)
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
} else if (process.arch === 'ppc64') {
|
|
435
|
+
try {
|
|
436
|
+
return require('./runtimed-node.linux-ppc64-gnu.node')
|
|
437
|
+
} catch (e) {
|
|
438
|
+
loadErrors.push(e)
|
|
439
|
+
}
|
|
440
|
+
try {
|
|
441
|
+
const binding = require('@runtimed/node-linux-ppc64-gnu')
|
|
442
|
+
const bindingPackageVersion = require('@runtimed/node-linux-ppc64-gnu/package.json').version
|
|
443
|
+
if (bindingPackageVersion !== '0.0.1' && 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 0.0.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
445
|
+
}
|
|
446
|
+
return binding
|
|
447
|
+
} catch (e) {
|
|
448
|
+
loadErrors.push(e)
|
|
449
|
+
}
|
|
450
|
+
} else if (process.arch === 's390x') {
|
|
451
|
+
try {
|
|
452
|
+
return require('./runtimed-node.linux-s390x-gnu.node')
|
|
453
|
+
} catch (e) {
|
|
454
|
+
loadErrors.push(e)
|
|
455
|
+
}
|
|
456
|
+
try {
|
|
457
|
+
const binding = require('@runtimed/node-linux-s390x-gnu')
|
|
458
|
+
const bindingPackageVersion = require('@runtimed/node-linux-s390x-gnu/package.json').version
|
|
459
|
+
if (bindingPackageVersion !== '0.0.1' && 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 0.0.1 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}`))
|
|
468
|
+
}
|
|
469
|
+
} else if (process.platform === 'openharmony') {
|
|
470
|
+
if (process.arch === 'arm64') {
|
|
471
|
+
try {
|
|
472
|
+
return require('./runtimed-node.openharmony-arm64.node')
|
|
473
|
+
} catch (e) {
|
|
474
|
+
loadErrors.push(e)
|
|
475
|
+
}
|
|
476
|
+
try {
|
|
477
|
+
const binding = require('@runtimed/node-openharmony-arm64')
|
|
478
|
+
const bindingPackageVersion = require('@runtimed/node-openharmony-arm64/package.json').version
|
|
479
|
+
if (bindingPackageVersion !== '0.0.1' && 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 0.0.1 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('./runtimed-node.openharmony-x64.node')
|
|
489
|
+
} catch (e) {
|
|
490
|
+
loadErrors.push(e)
|
|
491
|
+
}
|
|
492
|
+
try {
|
|
493
|
+
const binding = require('@runtimed/node-openharmony-x64')
|
|
494
|
+
const bindingPackageVersion = require('@runtimed/node-openharmony-x64/package.json').version
|
|
495
|
+
if (bindingPackageVersion !== '0.0.1' && 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 0.0.1 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('./runtimed-node.openharmony-arm.node')
|
|
505
|
+
} catch (e) {
|
|
506
|
+
loadErrors.push(e)
|
|
507
|
+
}
|
|
508
|
+
try {
|
|
509
|
+
const binding = require('@runtimed/node-openharmony-arm')
|
|
510
|
+
const bindingPackageVersion = require('@runtimed/node-openharmony-arm/package.json').version
|
|
511
|
+
if (bindingPackageVersion !== '0.0.1' && 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 0.0.1 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('./runtimed-node.wasi.cjs')
|
|
533
|
+
nativeBinding = wasiBinding
|
|
534
|
+
} catch (err) {
|
|
535
|
+
if (process.env.NAPI_RS_FORCE_WASI) {
|
|
536
|
+
wasiBindingError = err
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
if (!nativeBinding || process.env.NAPI_RS_FORCE_WASI) {
|
|
540
|
+
try {
|
|
541
|
+
wasiBinding = require('@runtimed/node-wasm32-wasi')
|
|
542
|
+
nativeBinding = wasiBinding
|
|
543
|
+
} catch (err) {
|
|
544
|
+
if (process.env.NAPI_RS_FORCE_WASI) {
|
|
545
|
+
if (!wasiBindingError) {
|
|
546
|
+
wasiBindingError = err
|
|
547
|
+
} else {
|
|
548
|
+
wasiBindingError.cause = err
|
|
549
|
+
}
|
|
550
|
+
loadErrors.push(err)
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
}
|
|
554
|
+
if (process.env.NAPI_RS_FORCE_WASI === 'error' && !wasiBinding) {
|
|
555
|
+
const error = new Error('WASI binding not found and NAPI_RS_FORCE_WASI is set to error')
|
|
556
|
+
error.cause = wasiBindingError
|
|
557
|
+
throw error
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
if (!nativeBinding) {
|
|
562
|
+
if (loadErrors.length > 0) {
|
|
563
|
+
throw new Error(
|
|
564
|
+
`Cannot find native binding. ` +
|
|
565
|
+
`npm has a bug related to optional dependencies (https://github.com/npm/cli/issues/4828). ` +
|
|
566
|
+
'Please try `npm i` again after removing both package-lock.json and node_modules directory.',
|
|
567
|
+
{
|
|
568
|
+
cause: loadErrors.reduce((err, cur) => {
|
|
569
|
+
cur.cause = err
|
|
570
|
+
return cur
|
|
571
|
+
}),
|
|
572
|
+
},
|
|
573
|
+
)
|
|
574
|
+
}
|
|
575
|
+
throw new Error(`Failed to load native binding`)
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
module.exports = nativeBinding
|
|
579
|
+
module.exports.Session = nativeBinding.Session
|
|
580
|
+
module.exports.createNotebook = nativeBinding.createNotebook
|
|
581
|
+
module.exports.defaultSocketPath = nativeBinding.defaultSocketPath
|
|
582
|
+
module.exports.getExecutionResult = nativeBinding.getExecutionResult
|
|
583
|
+
module.exports.openNotebook = nativeBinding.openNotebook
|
|
584
|
+
module.exports.readParquetFile = nativeBinding.readParquetFile
|
|
585
|
+
module.exports.socketPathForChannel = nativeBinding.socketPathForChannel
|
|
586
|
+
module.exports.summarizeParquetFile = nativeBinding.summarizeParquetFile
|
package/src/binding.d.ts
ADDED
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/* auto-generated by NAPI-RS */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/** A connected notebook session. */
|
|
4
|
+
export declare class Session {
|
|
5
|
+
/** The notebook ID (always a UUID). */
|
|
6
|
+
get notebookId(): string
|
|
7
|
+
/**
|
|
8
|
+
* Save the notebook to disk. If a path is given, saves to that path
|
|
9
|
+
* (creating the file if needed). Otherwise saves to the original location.
|
|
10
|
+
*/
|
|
11
|
+
saveNotebook(path?: string | undefined | null): Promise<void>
|
|
12
|
+
/** Close the session and release the underlying connection. */
|
|
13
|
+
close(): Promise<void>
|
|
14
|
+
/**
|
|
15
|
+
* Add a UV dependency to the notebook (e.g. `"matplotlib>=3.8"`).
|
|
16
|
+
* Call `syncEnvironment()` or restart the kernel to install it.
|
|
17
|
+
*/
|
|
18
|
+
addUvDependency(pkg: string): Promise<void>
|
|
19
|
+
/** Get the current dependency fingerprint used for guarded trust approval. */
|
|
20
|
+
dependencyFingerprint(): Promise<string | null>
|
|
21
|
+
/** Approve and sign the current dependency metadata. */
|
|
22
|
+
approveTrust(dependencyFingerprint?: string | undefined | null): Promise<void>
|
|
23
|
+
/**
|
|
24
|
+
* Ask the daemon to hot-install any pending dependency changes into
|
|
25
|
+
* the running kernel's env. Starts the kernel first if needed.
|
|
26
|
+
* Returns once the install finishes.
|
|
27
|
+
*/
|
|
28
|
+
syncEnvironment(): Promise<void>
|
|
29
|
+
/**
|
|
30
|
+
* Execute a source string as a new cell. Starts the kernel on demand.
|
|
31
|
+
* Returns the cell's outputs once execution is terminal.
|
|
32
|
+
*/
|
|
33
|
+
runCell(source: string, options?: RunCellOptions | undefined | null): Promise<CellResult>
|
|
34
|
+
/** Queue a source string as a new cell without waiting for execution. */
|
|
35
|
+
queueCell(source: string, options?: QueueCellOptions | undefined | null): Promise<QueuedExecution>
|
|
36
|
+
/** Wait for an already-queued execution in this live session. */
|
|
37
|
+
waitForExecution(executionId: string, options?: WaitExecutionOptions | undefined | null): Promise<CellResult>
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/** Result of running a cell. */
|
|
41
|
+
export interface CellResult {
|
|
42
|
+
cellId: string
|
|
43
|
+
executionId: string
|
|
44
|
+
executionCount?: number
|
|
45
|
+
/** One of: `"done"`, `"error"`, `"timeout"`, `"kernel_error"`. */
|
|
46
|
+
status: string
|
|
47
|
+
success: boolean
|
|
48
|
+
outputs: Array<JsOutput>
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/** Create a new (ephemeral) notebook against the daemon. */
|
|
52
|
+
export declare function createNotebook(options?: CreateNotebookOptions | undefined | null): Promise<Session>
|
|
53
|
+
|
|
54
|
+
/** Options for `createNotebook()`. */
|
|
55
|
+
export interface CreateNotebookOptions {
|
|
56
|
+
/** Runtime type: `"python"` or `"deno"`. Defaults to `"python"`. */
|
|
57
|
+
runtime?: string
|
|
58
|
+
/** Working directory for the kernel. */
|
|
59
|
+
workingDir?: string
|
|
60
|
+
/** Override daemon socket path (otherwise uses `default_socket_path()`). */
|
|
61
|
+
socketPath?: string
|
|
62
|
+
/** Actor label for presence / Automerge provenance. */
|
|
63
|
+
peerLabel?: string
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Return the default daemon socket path.
|
|
68
|
+
*
|
|
69
|
+
* Respects `RUNTIMED_SOCKET_PATH` if set. In dev mode
|
|
70
|
+
* (`RUNTIMED_WORKSPACE_PATH` set) returns the per-worktree socket.
|
|
71
|
+
*/
|
|
72
|
+
export declare function defaultSocketPath(): string
|
|
73
|
+
|
|
74
|
+
/** Read a terminal execution result from the daemon's durable execution store. */
|
|
75
|
+
export declare function getExecutionResult(executionId: string, options?: GetExecutionResultOptions | undefined | null): Promise<CellResult>
|
|
76
|
+
|
|
77
|
+
/** Options for top-level `getExecutionResult()`. */
|
|
78
|
+
export interface GetExecutionResultOptions {
|
|
79
|
+
/** Override daemon socket path (otherwise uses `defaultSocketPath()`). */
|
|
80
|
+
socketPath?: string
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/** One output from a cell. `data` values are: `{ type: "text"|"binary"|"json", value: ... }`. */
|
|
84
|
+
export interface JsOutput {
|
|
85
|
+
outputType: string
|
|
86
|
+
name?: string
|
|
87
|
+
text?: string
|
|
88
|
+
/** MIME-keyed map, serialized via JSON. Binary values become base64 strings. */
|
|
89
|
+
dataJson?: string
|
|
90
|
+
ename?: string
|
|
91
|
+
evalue?: string
|
|
92
|
+
traceback?: Array<string>
|
|
93
|
+
executionCount?: number
|
|
94
|
+
blobUrlsJson?: string
|
|
95
|
+
blobPathsJson?: string
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/** Open an existing notebook by ID. */
|
|
99
|
+
export declare function openNotebook(notebookId: string, options?: OpenNotebookOptions | undefined | null): Promise<Session>
|
|
100
|
+
|
|
101
|
+
/** Options for `openNotebook()`. */
|
|
102
|
+
export interface OpenNotebookOptions {
|
|
103
|
+
socketPath?: string
|
|
104
|
+
peerLabel?: string
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
export interface ParquetColumnInfo {
|
|
108
|
+
name: string
|
|
109
|
+
dataType: string
|
|
110
|
+
nullCount: number
|
|
111
|
+
/** JSON-encoded column stats (numeric: {min, max}, string: {distinct_count, top}, etc.) */
|
|
112
|
+
statsJson: string
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/** A page of rows from a parquet file, as string values for display. */
|
|
116
|
+
export interface ParquetRowPage {
|
|
117
|
+
columns: Array<string>
|
|
118
|
+
/** Row data — outer vec is rows, inner vec is column values as display strings. */
|
|
119
|
+
rows: Array<Array<string>>
|
|
120
|
+
totalRows: number
|
|
121
|
+
offset: number
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/** Summary of a parquet dataset — column names, types, stats. */
|
|
125
|
+
export interface ParquetSummaryResult {
|
|
126
|
+
numRows: number
|
|
127
|
+
numBytes: number
|
|
128
|
+
columns: Array<ParquetColumnInfo>
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/** Options for `Session.queueCell()`. */
|
|
132
|
+
export interface QueueCellOptions {
|
|
133
|
+
/** Cell source type: `"code"` (default), `"markdown"`, or `"raw"`. */
|
|
134
|
+
cellType?: string
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/** A queued execution handle. */
|
|
138
|
+
export interface QueuedExecution {
|
|
139
|
+
cellId: string
|
|
140
|
+
executionId: string
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Read a page of rows from a local blob/file path.
|
|
145
|
+
* Returns string representations of each cell for display.
|
|
146
|
+
*/
|
|
147
|
+
export declare function readParquetFile(filePath: string, offset: number, limit: number): ParquetRowPage
|
|
148
|
+
|
|
149
|
+
/** Options for `Session.runCell()`. */
|
|
150
|
+
export interface RunCellOptions {
|
|
151
|
+
/** Max milliseconds to wait for execution. Default 120_000 (2 min). */
|
|
152
|
+
timeoutMs?: number
|
|
153
|
+
/** Cell source type: `"code"` (default), `"markdown"`, or `"raw"`. */
|
|
154
|
+
cellType?: string
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Return the daemon socket path for a specific channel ("stable" or
|
|
159
|
+
* "nightly"). Ignores `RUNTIMED_SOCKET_PATH`.
|
|
160
|
+
*/
|
|
161
|
+
export declare function socketPathForChannel(channel: string): string
|
|
162
|
+
|
|
163
|
+
/** Summarize a parquet file from a local blob/file path. */
|
|
164
|
+
export declare function summarizeParquetFile(filePath: string): ParquetSummaryResult
|
|
165
|
+
|
|
166
|
+
/** Options for `Session.waitForExecution()`. */
|
|
167
|
+
export interface WaitExecutionOptions {
|
|
168
|
+
/** Cell ID to use when reporting kernel failures before terminal state syncs. */
|
|
169
|
+
cellId?: string
|
|
170
|
+
/** Max milliseconds to wait for execution. Default 120_000 (2 min). */
|
|
171
|
+
timeoutMs?: number
|
|
172
|
+
}
|
package/src/index.cjs
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @runtimed/node — thin JS wrapper over the N-API binding.
|
|
3
|
+
*
|
|
4
|
+
* The native binding lives in `binding.cjs` + `runtimed-node.<triple>.node`.
|
|
5
|
+
* This file exists so consumers can `require('@runtimed/node')`
|
|
6
|
+
* without thinking about platform suffixes.
|
|
7
|
+
*/
|
|
8
|
+
"use strict";
|
|
9
|
+
|
|
10
|
+
const binding = require("./binding.cjs");
|
|
11
|
+
|
|
12
|
+
module.exports = binding;
|