frogql 0.2.0-rc.2 → 0.2.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/CHANGELOG.md +11 -0
- package/index.d.ts +147 -0
- package/index.js +318 -0
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,17 @@ Released in lock-step with the [PyPI `frogql` package](https://pypi.org/project/
|
|
|
8
8
|
|
|
9
9
|
## [Unreleased]
|
|
10
10
|
|
|
11
|
+
## [0.2.0-rc.3] — 2026-05-12
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
|
|
15
|
+
- Host package now ships `index.js` and `index.d.ts`. The `0.2.0-rc.2` tarball uploaded those files as build artifacts only and they never reached the publish job, so the package on npm contained README + LICENSE + package.json with no JavaScript. `require('frogql')` returned `Cannot find module './index.js'` for every consumer.
|
|
16
|
+
- Both files are now checked into git (canonical napi-rs pattern). Removed from `node/.gitignore`.
|
|
17
|
+
|
|
18
|
+
### Deprecated
|
|
19
|
+
|
|
20
|
+
- `frogql@0.2.0-rc.2` — broken, use `frogql@0.2.0-rc.3` or later.
|
|
21
|
+
|
|
11
22
|
## [0.2.0-rc.2] — 2026-05-12
|
|
12
23
|
|
|
13
24
|
### Added
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
|
|
4
|
+
/* auto-generated by NAPI-RS */
|
|
5
|
+
|
|
6
|
+
/** Result of `Connection.schema()`. */
|
|
7
|
+
export interface SchemaSummary {
|
|
8
|
+
nodeLabels: Array<string>
|
|
9
|
+
edgeLabels: Array<string>
|
|
10
|
+
nodeCount: number
|
|
11
|
+
edgeCount: number
|
|
12
|
+
}
|
|
13
|
+
/** One entry in `Connection.graphTypes()`. */
|
|
14
|
+
export interface GraphTypeSummary {
|
|
15
|
+
name: string
|
|
16
|
+
active: boolean
|
|
17
|
+
/** Number of node types declared in this graph type, if known. */
|
|
18
|
+
nodes?: number
|
|
19
|
+
/** Number of edge types declared in this graph type, if known. */
|
|
20
|
+
edges?: number
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Shape of a node reference inside an `execute()` row. `kind` is
|
|
24
|
+
* always `"node"`. Cast `execute()` rows to `{ x: NodeRef }` etc.
|
|
25
|
+
*/
|
|
26
|
+
export interface NodeRef {
|
|
27
|
+
kind: string
|
|
28
|
+
id: number
|
|
29
|
+
labels: Array<string>
|
|
30
|
+
/**
|
|
31
|
+
* Free-form property bag. Values are JSON-compatible (number /
|
|
32
|
+
* string / boolean / null / nested object / array).
|
|
33
|
+
*/
|
|
34
|
+
props: any
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Shape of an edge reference inside an `execute()` row. `kind` is
|
|
38
|
+
* always `"edge"`. `props` is present when returned via `RETURN e`
|
|
39
|
+
* (top-level `Value::Edge`); omitted in path context to keep payloads
|
|
40
|
+
* small.
|
|
41
|
+
*/
|
|
42
|
+
export interface EdgeRef {
|
|
43
|
+
kind: string
|
|
44
|
+
id: number
|
|
45
|
+
labels: Array<string>
|
|
46
|
+
props?: any
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Counters returned from a successful DML statement (INSERT / SET /
|
|
50
|
+
* REMOVE / DELETE / DETACH DELETE).
|
|
51
|
+
*/
|
|
52
|
+
export interface DmCounters {
|
|
53
|
+
nodesInserted: number
|
|
54
|
+
edgesInserted: number
|
|
55
|
+
nodesDeleted: number
|
|
56
|
+
edgesDeleted: number
|
|
57
|
+
nodesModified: number
|
|
58
|
+
edgesModified: number
|
|
59
|
+
rows: number
|
|
60
|
+
}
|
|
61
|
+
/** Result envelope for `CREATE / USE / DROP GRAPH TYPE`. */
|
|
62
|
+
export interface DdlOk {
|
|
63
|
+
ok: boolean
|
|
64
|
+
/** Always `"ddl"` for catalog statements. */
|
|
65
|
+
kind: string
|
|
66
|
+
message: string
|
|
67
|
+
}
|
|
68
|
+
/** Result envelope for `CREATE / DROP INDEX`. */
|
|
69
|
+
export interface IndexResult {
|
|
70
|
+
ok: boolean
|
|
71
|
+
/** Always `"index"`. */
|
|
72
|
+
kind: string
|
|
73
|
+
name: string
|
|
74
|
+
/** Present on CREATE, absent on DROP. */
|
|
75
|
+
label?: string
|
|
76
|
+
/** Present on CREATE, absent on DROP. */
|
|
77
|
+
prop?: string
|
|
78
|
+
/** `"HASH"` or `"BTREE"`. Present on CREATE only. */
|
|
79
|
+
indexKind?: string
|
|
80
|
+
/** Number of (label, prop) entries indexed. Present on CREATE only. */
|
|
81
|
+
entries?: number
|
|
82
|
+
/** Present when DROP failed (index not found). */
|
|
83
|
+
error?: string
|
|
84
|
+
}
|
|
85
|
+
/** One entry in `SHOW INDEXES`. */
|
|
86
|
+
export interface IndexSummary {
|
|
87
|
+
name: string
|
|
88
|
+
label: string
|
|
89
|
+
prop: string
|
|
90
|
+
/** `"HASH"` or `"BTREE"`. */
|
|
91
|
+
kind: string
|
|
92
|
+
/**
|
|
93
|
+
* `true` for auto-built indexes (memory-only), `false` for
|
|
94
|
+
* DDL-declared (persisted in `.gdb`).
|
|
95
|
+
*/
|
|
96
|
+
auto: boolean
|
|
97
|
+
entries: number
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Open or create a `.gdb` database. Eagerly warms the LTJ TripleIndex
|
|
101
|
+
* so the first `execute()` on the returned Connection runs at warm
|
|
102
|
+
* cache speed.
|
|
103
|
+
*/
|
|
104
|
+
export declare function open(path: string): Connection
|
|
105
|
+
/**
|
|
106
|
+
* Import a JSON graph (`{nodes: [...], edges: [...]}`) into a fresh
|
|
107
|
+
* `.gdb` at `dbPath`. Overwrites the destination.
|
|
108
|
+
*/
|
|
109
|
+
export declare function importJson(dbPath: string, jsonPath: string): void
|
|
110
|
+
/**
|
|
111
|
+
* Import a directory of CSVs (configured via `spanner_import_config.json`)
|
|
112
|
+
* into a fresh `.gdb` at `dbPath`. Overwrites the destination.
|
|
113
|
+
*/
|
|
114
|
+
export declare function importCsv(dbPath: string, csvDir: string): void
|
|
115
|
+
export declare class Connection {
|
|
116
|
+
get nodeCount(): number
|
|
117
|
+
get edgeCount(): number
|
|
118
|
+
/**
|
|
119
|
+
* Run a GQL statement. The return is polymorphic — depends on
|
|
120
|
+
* statement kind:
|
|
121
|
+
* - Query with RETURN: `Array<Record<string, unknown>>` keyed by alias
|
|
122
|
+
* - Query without RETURN: `Array<{ _paths, ...vars }>`
|
|
123
|
+
* - CREATE / USE / DROP GRAPH TYPE: `DdlOk`
|
|
124
|
+
* - SHOW GRAPH TYPES: `Array<GraphTypeSummary>`
|
|
125
|
+
* - SHOW GRAPH TYPE / SHOW CURRENT GRAPH TYPE / VALIDATE GRAPH TYPE: object
|
|
126
|
+
* - CREATE / DROP INDEX: `IndexResult`
|
|
127
|
+
* - SHOW INDEXES: `Array<IndexSummary>`
|
|
128
|
+
* - DML: `DmCounters`
|
|
129
|
+
*
|
|
130
|
+
* Cast the return to the expected shape:
|
|
131
|
+
* `const rows = conn.execute("MATCH ...") as Array<{ x: NodeRef }>`
|
|
132
|
+
*/
|
|
133
|
+
execute(query: string, limit?: number | undefined | null): unknown
|
|
134
|
+
/**
|
|
135
|
+
* Persist the merged base+overlay state back to the file the
|
|
136
|
+
* connection was opened from. Mirrors `.save` REPL command and
|
|
137
|
+
* SQLite's explicit-save model.
|
|
138
|
+
*/
|
|
139
|
+
save(): void
|
|
140
|
+
/** List graph types currently in the catalog with active markers. */
|
|
141
|
+
graphTypes(): Array<GraphTypeSummary>
|
|
142
|
+
/**
|
|
143
|
+
* Lightweight schema summary derived from the live graph: sorted
|
|
144
|
+
* label sets + node / edge counts. Does NOT consult the catalog.
|
|
145
|
+
*/
|
|
146
|
+
schema(): SchemaSummary
|
|
147
|
+
}
|
package/index.js
ADDED
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/* prettier-ignore */
|
|
4
|
+
|
|
5
|
+
/* auto-generated by NAPI-RS */
|
|
6
|
+
|
|
7
|
+
const { existsSync, readFileSync } = require('fs')
|
|
8
|
+
const { join } = require('path')
|
|
9
|
+
|
|
10
|
+
const { platform, arch } = process
|
|
11
|
+
|
|
12
|
+
let nativeBinding = null
|
|
13
|
+
let localFileExisted = false
|
|
14
|
+
let loadError = null
|
|
15
|
+
|
|
16
|
+
function isMusl() {
|
|
17
|
+
// For Node 10
|
|
18
|
+
if (!process.report || typeof process.report.getReport !== 'function') {
|
|
19
|
+
try {
|
|
20
|
+
const lddPath = require('child_process').execSync('which ldd').toString().trim()
|
|
21
|
+
return readFileSync(lddPath, 'utf8').includes('musl')
|
|
22
|
+
} catch (e) {
|
|
23
|
+
return true
|
|
24
|
+
}
|
|
25
|
+
} else {
|
|
26
|
+
const { glibcVersionRuntime } = process.report.getReport().header
|
|
27
|
+
return !glibcVersionRuntime
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
switch (platform) {
|
|
32
|
+
case 'android':
|
|
33
|
+
switch (arch) {
|
|
34
|
+
case 'arm64':
|
|
35
|
+
localFileExisted = existsSync(join(__dirname, 'frogql.android-arm64.node'))
|
|
36
|
+
try {
|
|
37
|
+
if (localFileExisted) {
|
|
38
|
+
nativeBinding = require('./frogql.android-arm64.node')
|
|
39
|
+
} else {
|
|
40
|
+
nativeBinding = require('frogql-android-arm64')
|
|
41
|
+
}
|
|
42
|
+
} catch (e) {
|
|
43
|
+
loadError = e
|
|
44
|
+
}
|
|
45
|
+
break
|
|
46
|
+
case 'arm':
|
|
47
|
+
localFileExisted = existsSync(join(__dirname, 'frogql.android-arm-eabi.node'))
|
|
48
|
+
try {
|
|
49
|
+
if (localFileExisted) {
|
|
50
|
+
nativeBinding = require('./frogql.android-arm-eabi.node')
|
|
51
|
+
} else {
|
|
52
|
+
nativeBinding = require('frogql-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, 'frogql.win32-x64-msvc.node')
|
|
67
|
+
)
|
|
68
|
+
try {
|
|
69
|
+
if (localFileExisted) {
|
|
70
|
+
nativeBinding = require('./frogql.win32-x64-msvc.node')
|
|
71
|
+
} else {
|
|
72
|
+
nativeBinding = require('frogql-win32-x64-msvc')
|
|
73
|
+
}
|
|
74
|
+
} catch (e) {
|
|
75
|
+
loadError = e
|
|
76
|
+
}
|
|
77
|
+
break
|
|
78
|
+
case 'ia32':
|
|
79
|
+
localFileExisted = existsSync(
|
|
80
|
+
join(__dirname, 'frogql.win32-ia32-msvc.node')
|
|
81
|
+
)
|
|
82
|
+
try {
|
|
83
|
+
if (localFileExisted) {
|
|
84
|
+
nativeBinding = require('./frogql.win32-ia32-msvc.node')
|
|
85
|
+
} else {
|
|
86
|
+
nativeBinding = require('frogql-win32-ia32-msvc')
|
|
87
|
+
}
|
|
88
|
+
} catch (e) {
|
|
89
|
+
loadError = e
|
|
90
|
+
}
|
|
91
|
+
break
|
|
92
|
+
case 'arm64':
|
|
93
|
+
localFileExisted = existsSync(
|
|
94
|
+
join(__dirname, 'frogql.win32-arm64-msvc.node')
|
|
95
|
+
)
|
|
96
|
+
try {
|
|
97
|
+
if (localFileExisted) {
|
|
98
|
+
nativeBinding = require('./frogql.win32-arm64-msvc.node')
|
|
99
|
+
} else {
|
|
100
|
+
nativeBinding = require('frogql-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, 'frogql.darwin-universal.node'))
|
|
112
|
+
try {
|
|
113
|
+
if (localFileExisted) {
|
|
114
|
+
nativeBinding = require('./frogql.darwin-universal.node')
|
|
115
|
+
} else {
|
|
116
|
+
nativeBinding = require('frogql-darwin-universal')
|
|
117
|
+
}
|
|
118
|
+
break
|
|
119
|
+
} catch {}
|
|
120
|
+
switch (arch) {
|
|
121
|
+
case 'x64':
|
|
122
|
+
localFileExisted = existsSync(join(__dirname, 'frogql.darwin-x64.node'))
|
|
123
|
+
try {
|
|
124
|
+
if (localFileExisted) {
|
|
125
|
+
nativeBinding = require('./frogql.darwin-x64.node')
|
|
126
|
+
} else {
|
|
127
|
+
nativeBinding = require('frogql-darwin-x64')
|
|
128
|
+
}
|
|
129
|
+
} catch (e) {
|
|
130
|
+
loadError = e
|
|
131
|
+
}
|
|
132
|
+
break
|
|
133
|
+
case 'arm64':
|
|
134
|
+
localFileExisted = existsSync(
|
|
135
|
+
join(__dirname, 'frogql.darwin-arm64.node')
|
|
136
|
+
)
|
|
137
|
+
try {
|
|
138
|
+
if (localFileExisted) {
|
|
139
|
+
nativeBinding = require('./frogql.darwin-arm64.node')
|
|
140
|
+
} else {
|
|
141
|
+
nativeBinding = require('frogql-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, 'frogql.freebsd-x64.node'))
|
|
156
|
+
try {
|
|
157
|
+
if (localFileExisted) {
|
|
158
|
+
nativeBinding = require('./frogql.freebsd-x64.node')
|
|
159
|
+
} else {
|
|
160
|
+
nativeBinding = require('frogql-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, 'frogql.linux-x64-musl.node')
|
|
172
|
+
)
|
|
173
|
+
try {
|
|
174
|
+
if (localFileExisted) {
|
|
175
|
+
nativeBinding = require('./frogql.linux-x64-musl.node')
|
|
176
|
+
} else {
|
|
177
|
+
nativeBinding = require('frogql-linux-x64-musl')
|
|
178
|
+
}
|
|
179
|
+
} catch (e) {
|
|
180
|
+
loadError = e
|
|
181
|
+
}
|
|
182
|
+
} else {
|
|
183
|
+
localFileExisted = existsSync(
|
|
184
|
+
join(__dirname, 'frogql.linux-x64-gnu.node')
|
|
185
|
+
)
|
|
186
|
+
try {
|
|
187
|
+
if (localFileExisted) {
|
|
188
|
+
nativeBinding = require('./frogql.linux-x64-gnu.node')
|
|
189
|
+
} else {
|
|
190
|
+
nativeBinding = require('frogql-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, 'frogql.linux-arm64-musl.node')
|
|
201
|
+
)
|
|
202
|
+
try {
|
|
203
|
+
if (localFileExisted) {
|
|
204
|
+
nativeBinding = require('./frogql.linux-arm64-musl.node')
|
|
205
|
+
} else {
|
|
206
|
+
nativeBinding = require('frogql-linux-arm64-musl')
|
|
207
|
+
}
|
|
208
|
+
} catch (e) {
|
|
209
|
+
loadError = e
|
|
210
|
+
}
|
|
211
|
+
} else {
|
|
212
|
+
localFileExisted = existsSync(
|
|
213
|
+
join(__dirname, 'frogql.linux-arm64-gnu.node')
|
|
214
|
+
)
|
|
215
|
+
try {
|
|
216
|
+
if (localFileExisted) {
|
|
217
|
+
nativeBinding = require('./frogql.linux-arm64-gnu.node')
|
|
218
|
+
} else {
|
|
219
|
+
nativeBinding = require('frogql-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, 'frogql.linux-arm-musleabihf.node')
|
|
230
|
+
)
|
|
231
|
+
try {
|
|
232
|
+
if (localFileExisted) {
|
|
233
|
+
nativeBinding = require('./frogql.linux-arm-musleabihf.node')
|
|
234
|
+
} else {
|
|
235
|
+
nativeBinding = require('frogql-linux-arm-musleabihf')
|
|
236
|
+
}
|
|
237
|
+
} catch (e) {
|
|
238
|
+
loadError = e
|
|
239
|
+
}
|
|
240
|
+
} else {
|
|
241
|
+
localFileExisted = existsSync(
|
|
242
|
+
join(__dirname, 'frogql.linux-arm-gnueabihf.node')
|
|
243
|
+
)
|
|
244
|
+
try {
|
|
245
|
+
if (localFileExisted) {
|
|
246
|
+
nativeBinding = require('./frogql.linux-arm-gnueabihf.node')
|
|
247
|
+
} else {
|
|
248
|
+
nativeBinding = require('frogql-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, 'frogql.linux-riscv64-musl.node')
|
|
259
|
+
)
|
|
260
|
+
try {
|
|
261
|
+
if (localFileExisted) {
|
|
262
|
+
nativeBinding = require('./frogql.linux-riscv64-musl.node')
|
|
263
|
+
} else {
|
|
264
|
+
nativeBinding = require('frogql-linux-riscv64-musl')
|
|
265
|
+
}
|
|
266
|
+
} catch (e) {
|
|
267
|
+
loadError = e
|
|
268
|
+
}
|
|
269
|
+
} else {
|
|
270
|
+
localFileExisted = existsSync(
|
|
271
|
+
join(__dirname, 'frogql.linux-riscv64-gnu.node')
|
|
272
|
+
)
|
|
273
|
+
try {
|
|
274
|
+
if (localFileExisted) {
|
|
275
|
+
nativeBinding = require('./frogql.linux-riscv64-gnu.node')
|
|
276
|
+
} else {
|
|
277
|
+
nativeBinding = require('frogql-linux-riscv64-gnu')
|
|
278
|
+
}
|
|
279
|
+
} catch (e) {
|
|
280
|
+
loadError = e
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
break
|
|
284
|
+
case 's390x':
|
|
285
|
+
localFileExisted = existsSync(
|
|
286
|
+
join(__dirname, 'frogql.linux-s390x-gnu.node')
|
|
287
|
+
)
|
|
288
|
+
try {
|
|
289
|
+
if (localFileExisted) {
|
|
290
|
+
nativeBinding = require('./frogql.linux-s390x-gnu.node')
|
|
291
|
+
} else {
|
|
292
|
+
nativeBinding = require('frogql-linux-s390x-gnu')
|
|
293
|
+
}
|
|
294
|
+
} catch (e) {
|
|
295
|
+
loadError = e
|
|
296
|
+
}
|
|
297
|
+
break
|
|
298
|
+
default:
|
|
299
|
+
throw new Error(`Unsupported architecture on Linux: ${arch}`)
|
|
300
|
+
}
|
|
301
|
+
break
|
|
302
|
+
default:
|
|
303
|
+
throw new Error(`Unsupported OS: ${platform}, architecture: ${arch}`)
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
if (!nativeBinding) {
|
|
307
|
+
if (loadError) {
|
|
308
|
+
throw loadError
|
|
309
|
+
}
|
|
310
|
+
throw new Error(`Failed to load native binding`)
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
const { Connection, open, importJson, importCsv } = nativeBinding
|
|
314
|
+
|
|
315
|
+
module.exports.Connection = Connection
|
|
316
|
+
module.exports.open = open
|
|
317
|
+
module.exports.importJson = importJson
|
|
318
|
+
module.exports.importCsv = importCsv
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "frogql",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "froGQL — embedded GQL graph database with ISO GQL path patterns (Rust core, Node.js bindings via napi-rs)",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"types": "index.d.ts",
|
|
@@ -65,10 +65,10 @@
|
|
|
65
65
|
"provenance": true
|
|
66
66
|
},
|
|
67
67
|
"optionalDependencies": {
|
|
68
|
-
"frogql-darwin-x64": "0.2.
|
|
69
|
-
"frogql-darwin-arm64": "0.2.
|
|
70
|
-
"frogql-linux-x64-gnu": "0.2.
|
|
71
|
-
"frogql-linux-arm64-gnu": "0.2.
|
|
72
|
-
"frogql-win32-x64-msvc": "0.2.
|
|
68
|
+
"frogql-darwin-x64": "0.2.1",
|
|
69
|
+
"frogql-darwin-arm64": "0.2.1",
|
|
70
|
+
"frogql-linux-x64-gnu": "0.2.1",
|
|
71
|
+
"frogql-linux-arm64-gnu": "0.2.1",
|
|
72
|
+
"frogql-win32-x64-msvc": "0.2.1"
|
|
73
73
|
}
|
|
74
74
|
}
|