fast-osmpbf-js 0.1.0 → 0.1.2
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/README.md +2 -0
- package/index.js +50 -557
- package/package.json +29 -36
package/README.md
CHANGED
|
@@ -3,6 +3,8 @@ fast-osmpbf-js
|
|
|
3
3
|
A library for reading OpenStreetMap files ([*.osm.pbf](https://wiki.openstreetmap.org/wiki/PBF_Format)).
|
|
4
4
|
It is using NodeJS bindings for the high-performance Rust library [fast-osmpbf](https://github.com/QuodEstDubitandum/fast-osmpbf).
|
|
5
5
|
|
|
6
|
+
[](https://www.npmjs.com/package/fast-osmpbf-js)
|
|
7
|
+
|
|
6
8
|
## Installation
|
|
7
9
|
|
|
8
10
|
```bash
|
package/index.js
CHANGED
|
@@ -1,576 +1,69 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
/* auto-generated by NAPI-RS */
|
|
1
|
+
import { createRequire } from "module"
|
|
2
|
+
const require = createRequire(import.meta.url)
|
|
3
|
+
const native = require("./index.node")
|
|
5
4
|
|
|
6
|
-
|
|
7
|
-
let
|
|
8
|
-
const loadErrors = []
|
|
5
|
+
export function getTags(block, index) {
|
|
6
|
+
let tags = block.denseTags || block.tags
|
|
9
7
|
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
if (musl === null) {
|
|
18
|
-
musl = isMuslFromChildProcess()
|
|
8
|
+
const start = tags[2][index]
|
|
9
|
+
const end = tags[2][index + 1]
|
|
10
|
+
const result = []
|
|
11
|
+
|
|
12
|
+
for (let i = start; i < end; i++) {
|
|
13
|
+
result.push([block.stringTable[tags[0][i]], block.stringTable[tags[1][i]]])
|
|
19
14
|
}
|
|
20
|
-
|
|
21
|
-
|
|
15
|
+
|
|
16
|
+
return result
|
|
22
17
|
}
|
|
23
18
|
|
|
24
|
-
|
|
19
|
+
export function getNodeIds(block, index) {
|
|
20
|
+
if (!block.nodeIds) {
|
|
21
|
+
return []
|
|
22
|
+
}
|
|
25
23
|
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
} catch {
|
|
30
|
-
return null
|
|
31
|
-
}
|
|
32
|
-
}
|
|
24
|
+
const result = []
|
|
25
|
+
const start = block.nodeIds[1][index]
|
|
26
|
+
const end = block.nodeIds[1][index + 1]
|
|
33
27
|
|
|
34
|
-
|
|
35
|
-
|
|
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
|
|
28
|
+
for (let i = start; i < end; i++) {
|
|
29
|
+
result.push(block.nodeIds[0][i])
|
|
49
30
|
}
|
|
50
|
-
}
|
|
51
|
-
return false
|
|
52
|
-
}
|
|
53
31
|
|
|
54
|
-
|
|
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
|
-
}
|
|
32
|
+
return result
|
|
61
33
|
}
|
|
62
34
|
|
|
63
|
-
function
|
|
64
|
-
|
|
65
|
-
|
|
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('./index.android-arm64.node')
|
|
74
|
-
} catch (e) {
|
|
75
|
-
loadErrors.push(e)
|
|
76
|
-
}
|
|
77
|
-
try {
|
|
78
|
-
const binding = require('fast-osmpbf-js-android-arm64')
|
|
79
|
-
const bindingPackageVersion = require('fast-osmpbf-js-android-arm64/package.json').version
|
|
80
|
-
if (bindingPackageVersion !== '0.1.0' && 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.1.0 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('./index.android-arm-eabi.node')
|
|
90
|
-
} catch (e) {
|
|
91
|
-
loadErrors.push(e)
|
|
92
|
-
}
|
|
93
|
-
try {
|
|
94
|
-
const binding = require('fast-osmpbf-js-android-arm-eabi')
|
|
95
|
-
const bindingPackageVersion = require('fast-osmpbf-js-android-arm-eabi/package.json').version
|
|
96
|
-
if (bindingPackageVersion !== '0.1.0' && 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.1.0 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('./index.win32-x64-gnu.node')
|
|
111
|
-
} catch (e) {
|
|
112
|
-
loadErrors.push(e)
|
|
113
|
-
}
|
|
114
|
-
try {
|
|
115
|
-
const binding = require('fast-osmpbf-js-win32-x64-gnu')
|
|
116
|
-
const bindingPackageVersion = require('fast-osmpbf-js-win32-x64-gnu/package.json').version
|
|
117
|
-
if (bindingPackageVersion !== '0.1.0' && 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.1.0 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('./index.win32-x64-msvc.node')
|
|
127
|
-
} catch (e) {
|
|
128
|
-
loadErrors.push(e)
|
|
129
|
-
}
|
|
130
|
-
try {
|
|
131
|
-
const binding = require('fast-osmpbf-js-win32-x64-msvc')
|
|
132
|
-
const bindingPackageVersion = require('fast-osmpbf-js-win32-x64-msvc/package.json').version
|
|
133
|
-
if (bindingPackageVersion !== '0.1.0' && 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.1.0 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('./index.win32-ia32-msvc.node')
|
|
144
|
-
} catch (e) {
|
|
145
|
-
loadErrors.push(e)
|
|
146
|
-
}
|
|
147
|
-
try {
|
|
148
|
-
const binding = require('fast-osmpbf-js-win32-ia32-msvc')
|
|
149
|
-
const bindingPackageVersion = require('fast-osmpbf-js-win32-ia32-msvc/package.json').version
|
|
150
|
-
if (bindingPackageVersion !== '0.1.0' && 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.1.0 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('./index.win32-arm64-msvc.node')
|
|
160
|
-
} catch (e) {
|
|
161
|
-
loadErrors.push(e)
|
|
162
|
-
}
|
|
163
|
-
try {
|
|
164
|
-
const binding = require('fast-osmpbf-js-win32-arm64-msvc')
|
|
165
|
-
const bindingPackageVersion = require('fast-osmpbf-js-win32-arm64-msvc/package.json').version
|
|
166
|
-
if (bindingPackageVersion !== '0.1.0' && 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.1.0 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('./index.darwin-universal.node')
|
|
179
|
-
} catch (e) {
|
|
180
|
-
loadErrors.push(e)
|
|
35
|
+
export function getRelationMembers(block, index) {
|
|
36
|
+
if (!block.relationMembers) {
|
|
37
|
+
return []
|
|
181
38
|
}
|
|
182
|
-
try {
|
|
183
|
-
const binding = require('fast-osmpbf-js-darwin-universal')
|
|
184
|
-
const bindingPackageVersion = require('fast-osmpbf-js-darwin-universal/package.json').version
|
|
185
|
-
if (bindingPackageVersion !== '0.1.0' && 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.1.0 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('./index.darwin-x64.node')
|
|
195
|
-
} catch (e) {
|
|
196
|
-
loadErrors.push(e)
|
|
197
|
-
}
|
|
198
|
-
try {
|
|
199
|
-
const binding = require('fast-osmpbf-js-darwin-x64')
|
|
200
|
-
const bindingPackageVersion = require('fast-osmpbf-js-darwin-x64/package.json').version
|
|
201
|
-
if (bindingPackageVersion !== '0.1.0' && 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.1.0 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('./index.darwin-arm64.node')
|
|
211
|
-
} catch (e) {
|
|
212
|
-
loadErrors.push(e)
|
|
213
|
-
}
|
|
214
|
-
try {
|
|
215
|
-
const binding = require('fast-osmpbf-js-darwin-arm64')
|
|
216
|
-
const bindingPackageVersion = require('fast-osmpbf-js-darwin-arm64/package.json').version
|
|
217
|
-
if (bindingPackageVersion !== '0.1.0' && 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.1.0 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('./index.freebsd-x64.node')
|
|
231
|
-
} catch (e) {
|
|
232
|
-
loadErrors.push(e)
|
|
233
|
-
}
|
|
234
|
-
try {
|
|
235
|
-
const binding = require('fast-osmpbf-js-freebsd-x64')
|
|
236
|
-
const bindingPackageVersion = require('fast-osmpbf-js-freebsd-x64/package.json').version
|
|
237
|
-
if (bindingPackageVersion !== '0.1.0' && 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.1.0 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('./index.freebsd-arm64.node')
|
|
247
|
-
} catch (e) {
|
|
248
|
-
loadErrors.push(e)
|
|
249
|
-
}
|
|
250
|
-
try {
|
|
251
|
-
const binding = require('fast-osmpbf-js-freebsd-arm64')
|
|
252
|
-
const bindingPackageVersion = require('fast-osmpbf-js-freebsd-arm64/package.json').version
|
|
253
|
-
if (bindingPackageVersion !== '0.1.0' && 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.1.0 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('./index.linux-x64-musl.node')
|
|
268
|
-
} catch (e) {
|
|
269
|
-
loadErrors.push(e)
|
|
270
|
-
}
|
|
271
|
-
try {
|
|
272
|
-
const binding = require('fast-osmpbf-js-linux-x64-musl')
|
|
273
|
-
const bindingPackageVersion = require('fast-osmpbf-js-linux-x64-musl/package.json').version
|
|
274
|
-
if (bindingPackageVersion !== '0.1.0' && 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.1.0 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('./index.linux-x64-gnu.node')
|
|
284
|
-
} catch (e) {
|
|
285
|
-
loadErrors.push(e)
|
|
286
|
-
}
|
|
287
|
-
try {
|
|
288
|
-
const binding = require('fast-osmpbf-js-linux-x64-gnu')
|
|
289
|
-
const bindingPackageVersion = require('fast-osmpbf-js-linux-x64-gnu/package.json').version
|
|
290
|
-
if (bindingPackageVersion !== '0.1.0' && 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.1.0 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('./index.linux-arm64-musl.node')
|
|
302
|
-
} catch (e) {
|
|
303
|
-
loadErrors.push(e)
|
|
304
|
-
}
|
|
305
|
-
try {
|
|
306
|
-
const binding = require('fast-osmpbf-js-linux-arm64-musl')
|
|
307
|
-
const bindingPackageVersion = require('fast-osmpbf-js-linux-arm64-musl/package.json').version
|
|
308
|
-
if (bindingPackageVersion !== '0.1.0' && 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.1.0 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('./index.linux-arm64-gnu.node')
|
|
318
|
-
} catch (e) {
|
|
319
|
-
loadErrors.push(e)
|
|
320
|
-
}
|
|
321
|
-
try {
|
|
322
|
-
const binding = require('fast-osmpbf-js-linux-arm64-gnu')
|
|
323
|
-
const bindingPackageVersion = require('fast-osmpbf-js-linux-arm64-gnu/package.json').version
|
|
324
|
-
if (bindingPackageVersion !== '0.1.0' && 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.1.0 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('./index.linux-arm-musleabihf.node')
|
|
336
|
-
} catch (e) {
|
|
337
|
-
loadErrors.push(e)
|
|
338
|
-
}
|
|
339
|
-
try {
|
|
340
|
-
const binding = require('fast-osmpbf-js-linux-arm-musleabihf')
|
|
341
|
-
const bindingPackageVersion = require('fast-osmpbf-js-linux-arm-musleabihf/package.json').version
|
|
342
|
-
if (bindingPackageVersion !== '0.1.0' && 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.1.0 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('./index.linux-arm-gnueabihf.node')
|
|
352
|
-
} catch (e) {
|
|
353
|
-
loadErrors.push(e)
|
|
354
|
-
}
|
|
355
|
-
try {
|
|
356
|
-
const binding = require('fast-osmpbf-js-linux-arm-gnueabihf')
|
|
357
|
-
const bindingPackageVersion = require('fast-osmpbf-js-linux-arm-gnueabihf/package.json').version
|
|
358
|
-
if (bindingPackageVersion !== '0.1.0' && 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.1.0 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('./index.linux-loong64-musl.node')
|
|
370
|
-
} catch (e) {
|
|
371
|
-
loadErrors.push(e)
|
|
372
|
-
}
|
|
373
|
-
try {
|
|
374
|
-
const binding = require('fast-osmpbf-js-linux-loong64-musl')
|
|
375
|
-
const bindingPackageVersion = require('fast-osmpbf-js-linux-loong64-musl/package.json').version
|
|
376
|
-
if (bindingPackageVersion !== '0.1.0' && 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.1.0 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('./index.linux-loong64-gnu.node')
|
|
386
|
-
} catch (e) {
|
|
387
|
-
loadErrors.push(e)
|
|
388
|
-
}
|
|
389
|
-
try {
|
|
390
|
-
const binding = require('fast-osmpbf-js-linux-loong64-gnu')
|
|
391
|
-
const bindingPackageVersion = require('fast-osmpbf-js-linux-loong64-gnu/package.json').version
|
|
392
|
-
if (bindingPackageVersion !== '0.1.0' && 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.1.0 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('./index.linux-riscv64-musl.node')
|
|
404
|
-
} catch (e) {
|
|
405
|
-
loadErrors.push(e)
|
|
406
|
-
}
|
|
407
|
-
try {
|
|
408
|
-
const binding = require('fast-osmpbf-js-linux-riscv64-musl')
|
|
409
|
-
const bindingPackageVersion = require('fast-osmpbf-js-linux-riscv64-musl/package.json').version
|
|
410
|
-
if (bindingPackageVersion !== '0.1.0' && 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.1.0 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('./index.linux-riscv64-gnu.node')
|
|
420
|
-
} catch (e) {
|
|
421
|
-
loadErrors.push(e)
|
|
422
|
-
}
|
|
423
|
-
try {
|
|
424
|
-
const binding = require('fast-osmpbf-js-linux-riscv64-gnu')
|
|
425
|
-
const bindingPackageVersion = require('fast-osmpbf-js-linux-riscv64-gnu/package.json').version
|
|
426
|
-
if (bindingPackageVersion !== '0.1.0' && 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.1.0 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('./index.linux-ppc64-gnu.node')
|
|
437
|
-
} catch (e) {
|
|
438
|
-
loadErrors.push(e)
|
|
439
|
-
}
|
|
440
|
-
try {
|
|
441
|
-
const binding = require('fast-osmpbf-js-linux-ppc64-gnu')
|
|
442
|
-
const bindingPackageVersion = require('fast-osmpbf-js-linux-ppc64-gnu/package.json').version
|
|
443
|
-
if (bindingPackageVersion !== '0.1.0' && 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.1.0 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('./index.linux-s390x-gnu.node')
|
|
453
|
-
} catch (e) {
|
|
454
|
-
loadErrors.push(e)
|
|
455
|
-
}
|
|
456
|
-
try {
|
|
457
|
-
const binding = require('fast-osmpbf-js-linux-s390x-gnu')
|
|
458
|
-
const bindingPackageVersion = require('fast-osmpbf-js-linux-s390x-gnu/package.json').version
|
|
459
|
-
if (bindingPackageVersion !== '0.1.0' && 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.1.0 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('./index.openharmony-arm64.node')
|
|
473
|
-
} catch (e) {
|
|
474
|
-
loadErrors.push(e)
|
|
475
|
-
}
|
|
476
|
-
try {
|
|
477
|
-
const binding = require('fast-osmpbf-js-openharmony-arm64')
|
|
478
|
-
const bindingPackageVersion = require('fast-osmpbf-js-openharmony-arm64/package.json').version
|
|
479
|
-
if (bindingPackageVersion !== '0.1.0' && 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.1.0 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('./index.openharmony-x64.node')
|
|
489
|
-
} catch (e) {
|
|
490
|
-
loadErrors.push(e)
|
|
491
|
-
}
|
|
492
|
-
try {
|
|
493
|
-
const binding = require('fast-osmpbf-js-openharmony-x64')
|
|
494
|
-
const bindingPackageVersion = require('fast-osmpbf-js-openharmony-x64/package.json').version
|
|
495
|
-
if (bindingPackageVersion !== '0.1.0' && 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.1.0 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('./index.openharmony-arm.node')
|
|
505
|
-
} catch (e) {
|
|
506
|
-
loadErrors.push(e)
|
|
507
|
-
}
|
|
508
|
-
try {
|
|
509
|
-
const binding = require('fast-osmpbf-js-openharmony-arm')
|
|
510
|
-
const bindingPackageVersion = require('fast-osmpbf-js-openharmony-arm/package.json').version
|
|
511
|
-
if (bindingPackageVersion !== '0.1.0' && 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.1.0 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
39
|
|
|
526
|
-
|
|
40
|
+
const result = []
|
|
41
|
+
const start = block.relationMembers[3][index]
|
|
42
|
+
const end = block.relationMembers[3][index + 1]
|
|
527
43
|
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
} catch (err) {
|
|
535
|
-
if (process.env.NAPI_RS_FORCE_WASI) {
|
|
536
|
-
wasiBindingError = err
|
|
537
|
-
}
|
|
538
|
-
}
|
|
539
|
-
if (!nativeBinding) {
|
|
540
|
-
try {
|
|
541
|
-
wasiBinding = require('fast-osmpbf-js-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
|
-
}
|
|
44
|
+
for (let i = start; i < end; i++) {
|
|
45
|
+
result.push({
|
|
46
|
+
id: block.relationMembers[0][i],
|
|
47
|
+
type: mapMemberType(block.relationMembers[1][i]),
|
|
48
|
+
role: block.stringTable[block.relationMembers[2][i]],
|
|
49
|
+
})
|
|
548
50
|
}
|
|
549
|
-
|
|
550
|
-
|
|
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
|
-
}
|
|
51
|
+
|
|
52
|
+
return result
|
|
555
53
|
}
|
|
556
54
|
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
return cur
|
|
567
|
-
}),
|
|
568
|
-
},
|
|
569
|
-
)
|
|
570
|
-
}
|
|
571
|
-
throw new Error(`Failed to load native binding`)
|
|
55
|
+
function mapMemberType(memberType) {
|
|
56
|
+
switch (memberType) {
|
|
57
|
+
case 0:
|
|
58
|
+
return "Node"
|
|
59
|
+
case 1:
|
|
60
|
+
return "Way"
|
|
61
|
+
case 2:
|
|
62
|
+
return "Relation"
|
|
63
|
+
}
|
|
572
64
|
}
|
|
573
65
|
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
66
|
+
// Re-export the NAPI exports
|
|
67
|
+
export const OsmReader = native.OsmReader
|
|
68
|
+
export const AsyncBlockIterator = native.AsyncBlockIterator
|
|
69
|
+
export const JsElementBlock = native.JsElementBlock
|
package/package.json
CHANGED
|
@@ -1,37 +1,30 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
"
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
"@types/node": "^24.3.0"
|
|
32
|
-
},
|
|
33
|
-
"engines": {
|
|
34
|
-
"node": ">=16"
|
|
35
|
-
},
|
|
36
|
-
"optionalDependencies": {}
|
|
37
|
-
}
|
|
2
|
+
"name": "fast-osmpbf-js",
|
|
3
|
+
"type": "module",
|
|
4
|
+
"version": "0.1.2",
|
|
5
|
+
"description": "Node.js bindings for the fast-osmpbf Rust library",
|
|
6
|
+
"author": {
|
|
7
|
+
"name": "Daniel Steblin",
|
|
8
|
+
"email": "d.steblin.dev@gmail.com"
|
|
9
|
+
},
|
|
10
|
+
"main": "index.js",
|
|
11
|
+
"types": "wrapper.d.ts",
|
|
12
|
+
"files": [
|
|
13
|
+
"index.js",
|
|
14
|
+
"wrapper.d.ts",
|
|
15
|
+
"index.node",
|
|
16
|
+
"index.d.ts"
|
|
17
|
+
],
|
|
18
|
+
"scripts": {
|
|
19
|
+
"artifacts": "napi artifacts",
|
|
20
|
+
"build": "napi build --platform --release"
|
|
21
|
+
},
|
|
22
|
+
"license": "MIT OR Apache-2.0",
|
|
23
|
+
"devDependencies": {
|
|
24
|
+
"@napi-rs/cli": "^3.4.1",
|
|
25
|
+
"@types/node": "^24.3.0"
|
|
26
|
+
},
|
|
27
|
+
"engines": {
|
|
28
|
+
"node": ">=16"
|
|
29
|
+
}
|
|
30
|
+
}
|