oxc-parser 0.77.2 → 0.78.0

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/bindings.js CHANGED
@@ -82,7 +82,6 @@ function requireNative() {
82
82
  } catch (e) {
83
83
  loadErrors.push(e)
84
84
  }
85
-
86
85
  } else if (process.arch === 'arm') {
87
86
  try {
88
87
  return require('./parser.android-arm-eabi.node')
@@ -94,7 +93,6 @@ function requireNative() {
94
93
  } catch (e) {
95
94
  loadErrors.push(e)
96
95
  }
97
-
98
96
  } else {
99
97
  loadErrors.push(new Error(`Unsupported architecture on Android ${process.arch}`))
100
98
  }
@@ -110,7 +108,6 @@ function requireNative() {
110
108
  } catch (e) {
111
109
  loadErrors.push(e)
112
110
  }
113
-
114
111
  } else if (process.arch === 'ia32') {
115
112
  try {
116
113
  return require('./parser.win32-ia32-msvc.node')
@@ -122,7 +119,6 @@ function requireNative() {
122
119
  } catch (e) {
123
120
  loadErrors.push(e)
124
121
  }
125
-
126
122
  } else if (process.arch === 'arm64') {
127
123
  try {
128
124
  return require('./parser.win32-arm64-msvc.node')
@@ -134,22 +130,20 @@ function requireNative() {
134
130
  } catch (e) {
135
131
  loadErrors.push(e)
136
132
  }
137
-
138
133
  } else {
139
134
  loadErrors.push(new Error(`Unsupported architecture on Windows: ${process.arch}`))
140
135
  }
141
136
  } else if (process.platform === 'darwin') {
142
137
  try {
143
- return require('./parser.darwin-universal.node')
144
- } catch (e) {
145
- loadErrors.push(e)
146
- }
147
- try {
148
- return require('@oxc-parser/binding-darwin-universal')
149
- } catch (e) {
150
- loadErrors.push(e)
151
- }
152
-
138
+ return require('./parser.darwin-universal.node')
139
+ } catch (e) {
140
+ loadErrors.push(e)
141
+ }
142
+ try {
143
+ return require('@oxc-parser/binding-darwin-universal')
144
+ } catch (e) {
145
+ loadErrors.push(e)
146
+ }
153
147
  if (process.arch === 'x64') {
154
148
  try {
155
149
  return require('./parser.darwin-x64.node')
@@ -161,7 +155,6 @@ function requireNative() {
161
155
  } catch (e) {
162
156
  loadErrors.push(e)
163
157
  }
164
-
165
158
  } else if (process.arch === 'arm64') {
166
159
  try {
167
160
  return require('./parser.darwin-arm64.node')
@@ -173,7 +166,6 @@ function requireNative() {
173
166
  } catch (e) {
174
167
  loadErrors.push(e)
175
168
  }
176
-
177
169
  } else {
178
170
  loadErrors.push(new Error(`Unsupported architecture on macOS: ${process.arch}`))
179
171
  }
@@ -189,7 +181,6 @@ function requireNative() {
189
181
  } catch (e) {
190
182
  loadErrors.push(e)
191
183
  }
192
-
193
184
  } else if (process.arch === 'arm64') {
194
185
  try {
195
186
  return require('./parser.freebsd-arm64.node')
@@ -201,7 +192,6 @@ function requireNative() {
201
192
  } catch (e) {
202
193
  loadErrors.push(e)
203
194
  }
204
-
205
195
  } else {
206
196
  loadErrors.push(new Error(`Unsupported architecture on FreeBSD: ${process.arch}`))
207
197
  }
@@ -209,133 +199,160 @@ function requireNative() {
209
199
  if (process.arch === 'x64') {
210
200
  if (isMusl()) {
211
201
  try {
212
- return require('./parser.linux-x64-musl.node')
213
- } catch (e) {
214
- loadErrors.push(e)
215
- }
216
- try {
217
- return require('@oxc-parser/binding-linux-x64-musl')
218
- } catch (e) {
219
- loadErrors.push(e)
220
- }
221
-
202
+ return require('./parser.linux-x64-musl.node')
203
+ } catch (e) {
204
+ loadErrors.push(e)
205
+ }
206
+ try {
207
+ return require('@oxc-parser/binding-linux-x64-musl')
208
+ } catch (e) {
209
+ loadErrors.push(e)
210
+ }
222
211
  } else {
223
212
  try {
224
- return require('./parser.linux-x64-gnu.node')
225
- } catch (e) {
226
- loadErrors.push(e)
227
- }
228
- try {
229
- return require('@oxc-parser/binding-linux-x64-gnu')
230
- } catch (e) {
231
- loadErrors.push(e)
232
- }
233
-
213
+ return require('./parser.linux-x64-gnu.node')
214
+ } catch (e) {
215
+ loadErrors.push(e)
216
+ }
217
+ try {
218
+ return require('@oxc-parser/binding-linux-x64-gnu')
219
+ } catch (e) {
220
+ loadErrors.push(e)
221
+ }
234
222
  }
235
223
  } else if (process.arch === 'arm64') {
236
224
  if (isMusl()) {
237
225
  try {
238
- return require('./parser.linux-arm64-musl.node')
239
- } catch (e) {
240
- loadErrors.push(e)
241
- }
242
- try {
243
- return require('@oxc-parser/binding-linux-arm64-musl')
244
- } catch (e) {
245
- loadErrors.push(e)
246
- }
247
-
226
+ return require('./parser.linux-arm64-musl.node')
227
+ } catch (e) {
228
+ loadErrors.push(e)
229
+ }
230
+ try {
231
+ return require('@oxc-parser/binding-linux-arm64-musl')
232
+ } catch (e) {
233
+ loadErrors.push(e)
234
+ }
248
235
  } else {
249
236
  try {
250
- return require('./parser.linux-arm64-gnu.node')
251
- } catch (e) {
252
- loadErrors.push(e)
253
- }
254
- try {
255
- return require('@oxc-parser/binding-linux-arm64-gnu')
256
- } catch (e) {
257
- loadErrors.push(e)
258
- }
259
-
237
+ return require('./parser.linux-arm64-gnu.node')
238
+ } catch (e) {
239
+ loadErrors.push(e)
240
+ }
241
+ try {
242
+ return require('@oxc-parser/binding-linux-arm64-gnu')
243
+ } catch (e) {
244
+ loadErrors.push(e)
245
+ }
260
246
  }
261
247
  } else if (process.arch === 'arm') {
262
248
  if (isMusl()) {
263
249
  try {
264
- return require('./parser.linux-arm-musleabihf.node')
265
- } catch (e) {
266
- loadErrors.push(e)
267
- }
268
- try {
269
- return require('@oxc-parser/binding-linux-arm-musleabihf')
270
- } catch (e) {
271
- loadErrors.push(e)
250
+ return require('./parser.linux-arm-musleabihf.node')
251
+ } catch (e) {
252
+ loadErrors.push(e)
253
+ }
254
+ try {
255
+ return require('@oxc-parser/binding-linux-arm-musleabihf')
256
+ } catch (e) {
257
+ loadErrors.push(e)
258
+ }
259
+ } else {
260
+ try {
261
+ return require('./parser.linux-arm-gnueabihf.node')
262
+ } catch (e) {
263
+ loadErrors.push(e)
264
+ }
265
+ try {
266
+ return require('@oxc-parser/binding-linux-arm-gnueabihf')
267
+ } catch (e) {
268
+ loadErrors.push(e)
269
+ }
272
270
  }
273
-
271
+ } else if (process.arch === 'riscv64') {
272
+ if (isMusl()) {
273
+ try {
274
+ return require('./parser.linux-riscv64-musl.node')
275
+ } catch (e) {
276
+ loadErrors.push(e)
277
+ }
278
+ try {
279
+ return require('@oxc-parser/binding-linux-riscv64-musl')
280
+ } catch (e) {
281
+ loadErrors.push(e)
282
+ }
274
283
  } else {
275
284
  try {
276
- return require('./parser.linux-arm-gnueabihf.node')
285
+ return require('./parser.linux-riscv64-gnu.node')
286
+ } catch (e) {
287
+ loadErrors.push(e)
288
+ }
289
+ try {
290
+ return require('@oxc-parser/binding-linux-riscv64-gnu')
291
+ } catch (e) {
292
+ loadErrors.push(e)
293
+ }
294
+ }
295
+ } else if (process.arch === 'ppc64') {
296
+ try {
297
+ return require('./parser.linux-ppc64-gnu.node')
277
298
  } catch (e) {
278
299
  loadErrors.push(e)
279
300
  }
280
301
  try {
281
- return require('@oxc-parser/binding-linux-arm-gnueabihf')
302
+ return require('@oxc-parser/binding-linux-ppc64-gnu')
282
303
  } catch (e) {
283
304
  loadErrors.push(e)
284
305
  }
285
-
286
- }
287
- } else if (process.arch === 'riscv64') {
288
- if (isMusl()) {
289
- try {
290
- return require('./parser.linux-riscv64-musl.node')
306
+ } else if (process.arch === 's390x') {
307
+ try {
308
+ return require('./parser.linux-s390x-gnu.node')
291
309
  } catch (e) {
292
310
  loadErrors.push(e)
293
311
  }
294
312
  try {
295
- return require('@oxc-parser/binding-linux-riscv64-musl')
313
+ return require('@oxc-parser/binding-linux-s390x-gnu')
296
314
  } catch (e) {
297
315
  loadErrors.push(e)
298
316
  }
299
-
300
- } else {
301
- try {
302
- return require('./parser.linux-riscv64-gnu.node')
317
+ } else {
318
+ loadErrors.push(new Error(`Unsupported architecture on Linux: ${process.arch}`))
319
+ }
320
+ } else if (process.platform === 'openharmony') {
321
+ if (process.arch === 'arm64') {
322
+ try {
323
+ return require('./parser.linux-arm64-ohos.node')
303
324
  } catch (e) {
304
325
  loadErrors.push(e)
305
326
  }
306
327
  try {
307
- return require('@oxc-parser/binding-linux-riscv64-gnu')
328
+ return require('@oxc-parser/binding-linux-arm64-ohos')
308
329
  } catch (e) {
309
330
  loadErrors.push(e)
310
331
  }
311
-
312
- }
313
- } else if (process.arch === 'ppc64') {
332
+ } else if (process.arch === 'x64') {
314
333
  try {
315
- return require('./parser.linux-ppc64-gnu.node')
334
+ return require('./parser.linux-x64-ohos.node')
316
335
  } catch (e) {
317
336
  loadErrors.push(e)
318
337
  }
319
338
  try {
320
- return require('@oxc-parser/binding-linux-ppc64-gnu')
339
+ return require('@oxc-parser/binding-linux-x64-ohos')
321
340
  } catch (e) {
322
341
  loadErrors.push(e)
323
342
  }
324
-
325
- } else if (process.arch === 's390x') {
343
+ } else if (process.arch === 'arm') {
326
344
  try {
327
- return require('./parser.linux-s390x-gnu.node')
345
+ return require('./parser.linux-arm-ohos.node')
328
346
  } catch (e) {
329
347
  loadErrors.push(e)
330
348
  }
331
349
  try {
332
- return require('@oxc-parser/binding-linux-s390x-gnu')
350
+ return require('@oxc-parser/binding-linux-arm-ohos')
333
351
  } catch (e) {
334
352
  loadErrors.push(e)
335
353
  }
336
-
337
354
  } else {
338
- loadErrors.push(new Error(`Unsupported architecture on Linux: ${process.arch}`))
355
+ loadErrors.push(new Error(`Unsupported architecture on OpenHarmony: ${process.arch}`))
339
356
  }
340
357
  } else {
341
358
  loadErrors.push(new Error(`Unsupported OS: ${process.platform}, architecture: ${process.arch}`))
@@ -373,11 +390,12 @@ if (!nativeBinding && globalThis.process?.versions?.["webcontainer"]) {
373
390
 
374
391
  if (!nativeBinding) {
375
392
  if (loadErrors.length > 0) {
376
- // TODO Link to documentation with potential fixes
377
- // - The package owner could build/publish bindings for this arch
378
- // - The user may need to bundle the correct files
379
- // - The user may need to re-install node_modules to get new packages
380
- throw new Error('Failed to load native binding', { cause: loadErrors })
393
+ throw new Error(
394
+ `Cannot find native binding. ` +
395
+ `npm has a bug related to optional dependencies (https://github.com/npm/cli/issues/4828). ` +
396
+ 'Please try `npm i` again after removing both package-lock.json and node_modules directory.',
397
+ { cause: loadErrors }
398
+ )
381
399
  }
382
400
  throw new Error(`Failed to load native binding`)
383
401
  }
@@ -1,10 +1,11 @@
1
1
  // Auto-generated code, DO NOT EDIT DIRECTLY!
2
2
  // To edit this generated file you have to edit `tasks/ast_tools/src/generators/raw_transfer.rs`.
3
3
 
4
- const BUFFER_SIZE = 2147483632,
4
+ const BUFFER_SIZE = 2147483616,
5
5
  BUFFER_ALIGN = 4294967296,
6
- DATA_POINTER_POS_32 = 536870906,
7
- IS_TS_FLAG_POS = 2147483628,
6
+ DATA_POINTER_POS_32 = 536870900,
7
+ IS_TS_FLAG_POS = 2147483612,
8
+ SOURCE_LEN_POS_32 = 536870901,
8
9
  PROGRAM_OFFSET = 0;
9
10
 
10
11
  module.exports = {
@@ -12,5 +13,6 @@ module.exports = {
12
13
  BUFFER_ALIGN,
13
14
  DATA_POINTER_POS_32,
14
15
  IS_TS_FLAG_POS,
16
+ SOURCE_LEN_POS_32,
15
17
  PROGRAM_OFFSET,
16
18
  };
@@ -20,7 +20,7 @@ function deserialize(buffer, sourceTextInput, sourceByteLenInput) {
20
20
  sourceByteLen = sourceByteLenInput;
21
21
  sourceIsAscii = sourceText.length === sourceByteLen;
22
22
 
23
- const data = deserializeRawTransferData(uint32[536870906]);
23
+ const data = deserializeRawTransferData(uint32[536870900]);
24
24
 
25
25
  uint8 =
26
26
  uint32 =
@@ -4020,6 +4020,14 @@ function deserializeErrorSeverity(pos) {
4020
4020
  }
4021
4021
  }
4022
4022
 
4023
+ function deserializeU32(pos) {
4024
+ return uint32[pos >> 2];
4025
+ }
4026
+
4027
+ function deserializeU8(pos) {
4028
+ return uint8[pos];
4029
+ }
4030
+
4023
4031
  function deserializeStr(pos) {
4024
4032
  const pos32 = pos >> 2,
4025
4033
  len = uint32[pos32 + 2];
@@ -4855,10 +4863,6 @@ function deserializeF64(pos) {
4855
4863
  return float64[pos >> 3];
4856
4864
  }
4857
4865
 
4858
- function deserializeU8(pos) {
4859
- return uint8[pos];
4860
- }
4861
-
4862
4866
  function deserializeBoxJSXOpeningElement(pos) {
4863
4867
  return deserializeJSXOpeningElement(uint32[pos >> 2]);
4864
4868
  }
@@ -5234,10 +5238,6 @@ function deserializeBoxTSExternalModuleReference(pos) {
5234
5238
  return deserializeTSExternalModuleReference(uint32[pos >> 2]);
5235
5239
  }
5236
5240
 
5237
- function deserializeU32(pos) {
5238
- return uint32[pos >> 2];
5239
- }
5240
-
5241
5241
  function deserializeOptionNameSpan(pos) {
5242
5242
  if (uint32[(pos + 8) >> 2] === 0 && uint32[(pos + 12) >> 2] === 0) return null;
5243
5243
  return deserializeNameSpan(pos);
@@ -20,7 +20,7 @@ function deserialize(buffer, sourceTextInput, sourceByteLenInput) {
20
20
  sourceByteLen = sourceByteLenInput;
21
21
  sourceIsAscii = sourceText.length === sourceByteLen;
22
22
 
23
- const data = deserializeRawTransferData(uint32[536870906]);
23
+ const data = deserializeRawTransferData(uint32[536870900]);
24
24
 
25
25
  uint8 =
26
26
  uint32 =
@@ -4151,6 +4151,14 @@ function deserializeErrorSeverity(pos) {
4151
4151
  }
4152
4152
  }
4153
4153
 
4154
+ function deserializeU32(pos) {
4155
+ return uint32[pos >> 2];
4156
+ }
4157
+
4158
+ function deserializeU8(pos) {
4159
+ return uint8[pos];
4160
+ }
4161
+
4154
4162
  function deserializeStr(pos) {
4155
4163
  const pos32 = pos >> 2,
4156
4164
  len = uint32[pos32 + 2];
@@ -4986,10 +4994,6 @@ function deserializeF64(pos) {
4986
4994
  return float64[pos >> 3];
4987
4995
  }
4988
4996
 
4989
- function deserializeU8(pos) {
4990
- return uint8[pos];
4991
- }
4992
-
4993
4997
  function deserializeBoxJSXOpeningElement(pos) {
4994
4998
  return deserializeJSXOpeningElement(uint32[pos >> 2]);
4995
4999
  }
@@ -5365,10 +5369,6 @@ function deserializeBoxTSExternalModuleReference(pos) {
5365
5369
  return deserializeTSExternalModuleReference(uint32[pos >> 2]);
5366
5370
  }
5367
5371
 
5368
- function deserializeU32(pos) {
5369
- return uint32[pos >> 2];
5370
- }
5371
-
5372
5372
  function deserializeOptionNameSpan(pos) {
5373
5373
  if (uint32[(pos + 8) >> 2] === 0 && uint32[(pos + 12) >> 2] === 0) return null;
5374
5374
  return deserializeNameSpan(pos);
@@ -12472,6 +12472,14 @@ class StaticExport {
12472
12472
 
12473
12473
  const DebugStaticExport = class StaticExport {};
12474
12474
 
12475
+ function constructU32(pos, ast) {
12476
+ return ast.buffer.uint32[pos >> 2];
12477
+ }
12478
+
12479
+ function constructU8(pos, ast) {
12480
+ return ast.buffer[pos];
12481
+ }
12482
+
12475
12483
  function constructStr(pos, ast) {
12476
12484
  const pos32 = pos >> 2,
12477
12485
  { buffer } = ast,
@@ -13353,10 +13361,6 @@ function constructF64(pos, ast) {
13353
13361
  return ast.buffer.float64[pos >> 3];
13354
13362
  }
13355
13363
 
13356
- function constructU8(pos, ast) {
13357
- return ast.buffer[pos];
13358
- }
13359
-
13360
13364
  function constructBoxJSXOpeningElement(pos, ast) {
13361
13365
  return new JSXOpeningElement(ast.buffer.uint32[pos >> 2], ast);
13362
13366
  }
@@ -13748,10 +13752,6 @@ function constructBoxTSExternalModuleReference(pos, ast) {
13748
13752
  return new TSExternalModuleReference(ast.buffer.uint32[pos >> 2], ast);
13749
13753
  }
13750
13754
 
13751
- function constructU32(pos, ast) {
13752
- return ast.buffer.uint32[pos >> 2];
13753
- }
13754
-
13755
13755
  function constructOptionNameSpan(pos, ast) {
13756
13756
  if (ast.buffer.uint32[(pos + 8) >> 2] === 0 && ast.buffer.uint32[(pos + 12) >> 2] === 0) return null;
13757
13757
  return new NameSpan(pos, ast);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oxc-parser",
3
- "version": "0.77.2",
3
+ "version": "0.78.0",
4
4
  "main": "index.js",
5
5
  "browser": "wasm.mjs",
6
6
  "engines": {
@@ -50,11 +50,11 @@
50
50
  "access": "public"
51
51
  },
52
52
  "dependencies": {
53
- "@oxc-project/types": "^0.77.2"
53
+ "@oxc-project/types": "^0.78.0"
54
54
  },
55
55
  "devDependencies": {
56
56
  "@codspeed/vitest-plugin": "^4.0.0",
57
- "@napi-rs/wasm-runtime": "^0.2.7",
57
+ "@napi-rs/wasm-runtime": "^1.0.0",
58
58
  "@vitest/browser": "3.2.4",
59
59
  "esbuild": "^0.25.0",
60
60
  "playwright": "^1.51.0",
@@ -90,21 +90,21 @@
90
90
  "dtsHeaderFile": "header.js"
91
91
  },
92
92
  "optionalDependencies": {
93
- "@oxc-parser/binding-win32-x64-msvc": "0.77.2",
94
- "@oxc-parser/binding-win32-arm64-msvc": "0.77.2",
95
- "@oxc-parser/binding-linux-x64-gnu": "0.77.2",
96
- "@oxc-parser/binding-linux-x64-musl": "0.77.2",
97
- "@oxc-parser/binding-freebsd-x64": "0.77.2",
98
- "@oxc-parser/binding-linux-arm64-gnu": "0.77.2",
99
- "@oxc-parser/binding-linux-arm64-musl": "0.77.2",
100
- "@oxc-parser/binding-linux-arm-gnueabihf": "0.77.2",
101
- "@oxc-parser/binding-linux-arm-musleabihf": "0.77.2",
102
- "@oxc-parser/binding-linux-s390x-gnu": "0.77.2",
103
- "@oxc-parser/binding-linux-riscv64-gnu": "0.77.2",
104
- "@oxc-parser/binding-darwin-x64": "0.77.2",
105
- "@oxc-parser/binding-darwin-arm64": "0.77.2",
106
- "@oxc-parser/binding-android-arm64": "0.77.2",
107
- "@oxc-parser/binding-wasm32-wasi": "0.77.2"
93
+ "@oxc-parser/binding-win32-x64-msvc": "0.78.0",
94
+ "@oxc-parser/binding-win32-arm64-msvc": "0.78.0",
95
+ "@oxc-parser/binding-linux-x64-gnu": "0.78.0",
96
+ "@oxc-parser/binding-linux-x64-musl": "0.78.0",
97
+ "@oxc-parser/binding-freebsd-x64": "0.78.0",
98
+ "@oxc-parser/binding-linux-arm64-gnu": "0.78.0",
99
+ "@oxc-parser/binding-linux-arm64-musl": "0.78.0",
100
+ "@oxc-parser/binding-linux-arm-gnueabihf": "0.78.0",
101
+ "@oxc-parser/binding-linux-arm-musleabihf": "0.78.0",
102
+ "@oxc-parser/binding-linux-s390x-gnu": "0.78.0",
103
+ "@oxc-parser/binding-linux-riscv64-gnu": "0.78.0",
104
+ "@oxc-parser/binding-darwin-x64": "0.78.0",
105
+ "@oxc-parser/binding-darwin-arm64": "0.78.0",
106
+ "@oxc-parser/binding-android-arm64": "0.78.0",
107
+ "@oxc-parser/binding-wasm32-wasi": "0.78.0"
108
108
  },
109
109
  "scripts": {
110
110
  "build-dev": "napi build --platform --js bindings.js",