@bytecodealliance/jco 1.17.7 → 1.17.8

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.
@@ -49,6 +49,7 @@ export interface GenerateOptions {
49
49
  guest?: boolean,
50
50
  multiMemory?: boolean,
51
51
  asyncMode?: AsyncMode,
52
+ strict?: boolean,
52
53
  }
53
54
  export type Wit = WitSource | WitBinary | WitPath;
54
55
  export interface WitSource {
@@ -80,6 +81,7 @@ export interface TypeGenerationOptions {
80
81
  features?: EnabledFeatureSet,
81
82
  guest?: boolean,
82
83
  asyncMode?: AsyncMode,
84
+ strict?: boolean,
83
85
  }
84
86
  /**
85
87
  * # Variants
@@ -3649,7 +3649,6 @@ class ComponentAsyncState {
3649
3649
  if (!table) { throw new Error(`missing/invalid table [${tableIdx}] while getting future end`); }
3650
3650
  futureEnd = table.get(futureEndHandle);
3651
3651
  } else {
3652
- console.log("args?", args);
3653
3652
  throw new TypeError("must specify either waitable idx or handle to retrieve future");
3654
3653
  }
3655
3654
 
@@ -9063,7 +9062,7 @@ let exports1Generate;
9063
9062
 
9064
9063
  function generate(arg0, arg1) {
9065
9064
  if (!_initialized) throwUninitialized();
9066
- var ptr0 = realloc1(0, 0, 4, 84);
9065
+ var ptr0 = realloc1(0, 0, 4, 88);
9067
9066
  var val1 = arg0;
9068
9067
  var len1 = Array.isArray(val1) ? val1.length : val1.byteLength;
9069
9068
  var ptr1 = realloc1(0, 0, 1, len1 * 1);
@@ -9088,7 +9087,7 @@ function generate(arg0, arg1) {
9088
9087
 
9089
9088
  dataView(memory0).setUint32(ptr0 + 4, len1, true);
9090
9089
  dataView(memory0).setUint32(ptr0 + 0, ptr1, true);
9091
- var {name: v2_0, noTypescript: v2_1, instantiation: v2_2, importBindings: v2_3, map: v2_4, compat: v2_5, noNodejsCompat: v2_6, base64Cutoff: v2_7, tlaCompat: v2_8, validLiftingOptimization: v2_9, tracing: v2_10, noNamespacedExports: v2_11, guest: v2_12, multiMemory: v2_13, asyncMode: v2_14 } = arg1;
9090
+ var {name: v2_0, noTypescript: v2_1, instantiation: v2_2, importBindings: v2_3, map: v2_4, compat: v2_5, noNodejsCompat: v2_6, base64Cutoff: v2_7, tlaCompat: v2_8, validLiftingOptimization: v2_9, tracing: v2_10, noNamespacedExports: v2_11, guest: v2_12, multiMemory: v2_13, asyncMode: v2_14, strict: v2_15 } = arg1;
9092
9091
 
9093
9092
  var encodeRes = _utf8AllocateAndEncode(v2_0, realloc1, memory0);
9094
9093
  var ptr3= encodeRes.ptr;
@@ -9309,6 +9308,14 @@ function generate(arg0, arg1) {
9309
9308
  }
9310
9309
  }
9311
9310
  }
9311
+ var variant30 = v2_15;
9312
+ if (variant30 === null || variant30=== undefined) {
9313
+ dataView(memory0).setInt8(ptr0 + 84, 0, true);
9314
+ } else {
9315
+ const e = variant30;
9316
+ dataView(memory0).setInt8(ptr0 + 84, 1, true);
9317
+ dataView(memory0).setInt8(ptr0 + 85, e ? 1 : 0, true);
9318
+ }
9312
9319
  _debugLog('[iface="generate", function="generate"][Instruction::CallWasm] enter', {
9313
9320
  funcName: 'generate',
9314
9321
  paramCount: 1,
@@ -9337,73 +9344,73 @@ function generate(arg0, arg1) {
9337
9344
  fn: () => exports1Generate(ptr0),
9338
9345
  });
9339
9346
 
9340
- let variant39;
9347
+ let variant40;
9341
9348
  switch (dataView(memory0).getUint8(ret + 0, true)) {
9342
9349
  case 0: {
9343
- var len32 = dataView(memory0).getUint32(ret + 8, true);
9344
- var base32 = dataView(memory0).getUint32(ret + 4, true);
9345
- var result32 = [];
9346
- for (let i = 0; i < len32; i++) {
9347
- const base = base32 + i * 16;
9348
- var ptr30 = dataView(memory0).getUint32(base + 0, true);
9349
- var len30 = dataView(memory0).getUint32(base + 4, true);
9350
- var result30 = TEXT_DECODER_UTF8.decode(new Uint8Array(memory0.buffer, ptr30, len30));
9351
- var ptr31 = dataView(memory0).getUint32(base + 8, true);
9352
- var len31 = dataView(memory0).getUint32(base + 12, true);
9353
- var result31 = new Uint8Array(memory0.buffer.slice(ptr31, ptr31 + len31 * 1));
9354
- result32.push([result30, result31]);
9355
- }
9356
- var len34 = dataView(memory0).getUint32(ret + 16, true);
9357
- var base34 = dataView(memory0).getUint32(ret + 12, true);
9358
- var result34 = [];
9359
- for (let i = 0; i < len34; i++) {
9360
- const base = base34 + i * 8;
9361
- var ptr33 = dataView(memory0).getUint32(base + 0, true);
9362
- var len33 = dataView(memory0).getUint32(base + 4, true);
9363
- var result33 = TEXT_DECODER_UTF8.decode(new Uint8Array(memory0.buffer, ptr33, len33));
9364
- result34.push(result33);
9365
- }
9366
- var len37 = dataView(memory0).getUint32(ret + 24, true);
9367
- var base37 = dataView(memory0).getUint32(ret + 20, true);
9368
- var result37 = [];
9369
- for (let i = 0; i < len37; i++) {
9370
- const base = base37 + i * 12;
9371
- var ptr35 = dataView(memory0).getUint32(base + 0, true);
9372
- var len35 = dataView(memory0).getUint32(base + 4, true);
9373
- var result35 = TEXT_DECODER_UTF8.decode(new Uint8Array(memory0.buffer, ptr35, len35));
9374
- let enum36;
9350
+ var len33 = dataView(memory0).getUint32(ret + 8, true);
9351
+ var base33 = dataView(memory0).getUint32(ret + 4, true);
9352
+ var result33 = [];
9353
+ for (let i = 0; i < len33; i++) {
9354
+ const base = base33 + i * 16;
9355
+ var ptr31 = dataView(memory0).getUint32(base + 0, true);
9356
+ var len31 = dataView(memory0).getUint32(base + 4, true);
9357
+ var result31 = TEXT_DECODER_UTF8.decode(new Uint8Array(memory0.buffer, ptr31, len31));
9358
+ var ptr32 = dataView(memory0).getUint32(base + 8, true);
9359
+ var len32 = dataView(memory0).getUint32(base + 12, true);
9360
+ var result32 = new Uint8Array(memory0.buffer.slice(ptr32, ptr32 + len32 * 1));
9361
+ result33.push([result31, result32]);
9362
+ }
9363
+ var len35 = dataView(memory0).getUint32(ret + 16, true);
9364
+ var base35 = dataView(memory0).getUint32(ret + 12, true);
9365
+ var result35 = [];
9366
+ for (let i = 0; i < len35; i++) {
9367
+ const base = base35 + i * 8;
9368
+ var ptr34 = dataView(memory0).getUint32(base + 0, true);
9369
+ var len34 = dataView(memory0).getUint32(base + 4, true);
9370
+ var result34 = TEXT_DECODER_UTF8.decode(new Uint8Array(memory0.buffer, ptr34, len34));
9371
+ result35.push(result34);
9372
+ }
9373
+ var len38 = dataView(memory0).getUint32(ret + 24, true);
9374
+ var base38 = dataView(memory0).getUint32(ret + 20, true);
9375
+ var result38 = [];
9376
+ for (let i = 0; i < len38; i++) {
9377
+ const base = base38 + i * 12;
9378
+ var ptr36 = dataView(memory0).getUint32(base + 0, true);
9379
+ var len36 = dataView(memory0).getUint32(base + 4, true);
9380
+ var result36 = TEXT_DECODER_UTF8.decode(new Uint8Array(memory0.buffer, ptr36, len36));
9381
+ let enum37;
9375
9382
  switch (dataView(memory0).getUint8(base + 8, true)) {
9376
9383
  case 0: {
9377
- enum36 = 'function';
9384
+ enum37 = 'function';
9378
9385
  break;
9379
9386
  }
9380
9387
  case 1: {
9381
- enum36 = 'instance';
9388
+ enum37 = 'instance';
9382
9389
  break;
9383
9390
  }
9384
9391
  default: {
9385
9392
  throw new TypeError('invalid discriminant specified for ExportType');
9386
9393
  }
9387
9394
  }
9388
- result37.push([result35, enum36]);
9395
+ result38.push([result36, enum37]);
9389
9396
  }
9390
- variant39= {
9397
+ variant40= {
9391
9398
  tag: 'ok',
9392
9399
  val: {
9393
- files: result32,
9394
- imports: result34,
9395
- exports: result37,
9400
+ files: result33,
9401
+ imports: result35,
9402
+ exports: result38,
9396
9403
  }
9397
9404
  };
9398
9405
  break;
9399
9406
  }
9400
9407
  case 1: {
9401
- var ptr38 = dataView(memory0).getUint32(ret + 4, true);
9402
- var len38 = dataView(memory0).getUint32(ret + 8, true);
9403
- var result38 = TEXT_DECODER_UTF8.decode(new Uint8Array(memory0.buffer, ptr38, len38));
9404
- variant39= {
9408
+ var ptr39 = dataView(memory0).getUint32(ret + 4, true);
9409
+ var len39 = dataView(memory0).getUint32(ret + 8, true);
9410
+ var result39 = TEXT_DECODER_UTF8.decode(new Uint8Array(memory0.buffer, ptr39, len39));
9411
+ variant40= {
9405
9412
  tag: 'err',
9406
- val: result38
9413
+ val: result39
9407
9414
  };
9408
9415
  break;
9409
9416
  }
@@ -9417,7 +9424,7 @@ function generate(arg0, arg1) {
9417
9424
  async: false,
9418
9425
  postReturn: true
9419
9426
  });
9420
- const retCopy = variant39;
9427
+ const retCopy = variant40;
9421
9428
  task.resolve([retCopy.val]);
9422
9429
 
9423
9430
  let cstate = getOrCreateAsyncState(0);
@@ -9438,7 +9445,7 @@ let exports1GenerateTypes;
9438
9445
 
9439
9446
  function generateTypes(arg0, arg1) {
9440
9447
  if (!_initialized) throwUninitialized();
9441
- var ptr0 = realloc1(0, 0, 4, 92);
9448
+ var ptr0 = realloc1(0, 0, 4, 96);
9442
9449
 
9443
9450
  var encodeRes = _utf8AllocateAndEncode(arg0, realloc1, memory0);
9444
9451
  var ptr1= encodeRes.ptr;
@@ -9446,7 +9453,7 @@ function generateTypes(arg0, arg1) {
9446
9453
 
9447
9454
  dataView(memory0).setUint32(ptr0 + 4, len1, true);
9448
9455
  dataView(memory0).setUint32(ptr0 + 0, ptr1, true);
9449
- var {wit: v2_0, world: v2_1, tlaCompat: v2_2, instantiation: v2_3, map: v2_4, features: v2_5, guest: v2_6, asyncMode: v2_7 } = arg1;
9456
+ var {wit: v2_0, world: v2_1, tlaCompat: v2_2, instantiation: v2_3, map: v2_4, features: v2_5, guest: v2_6, asyncMode: v2_7, strict: v2_8 } = arg1;
9450
9457
  var variant6 = v2_0;
9451
9458
  switch (variant6.tag) {
9452
9459
  case 'source': {
@@ -9677,6 +9684,14 @@ function generateTypes(arg0, arg1) {
9677
9684
  }
9678
9685
  }
9679
9686
  }
9687
+ var variant29 = v2_8;
9688
+ if (variant29 === null || variant29=== undefined) {
9689
+ dataView(memory0).setInt8(ptr0 + 92, 0, true);
9690
+ } else {
9691
+ const e = variant29;
9692
+ dataView(memory0).setInt8(ptr0 + 92, 1, true);
9693
+ dataView(memory0).setInt8(ptr0 + 93, e ? 1 : 0, true);
9694
+ }
9680
9695
  _debugLog('[iface="generate-types", function="generate-types"][Instruction::CallWasm] enter', {
9681
9696
  funcName: 'generate-types',
9682
9697
  paramCount: 1,
@@ -9705,35 +9720,35 @@ function generateTypes(arg0, arg1) {
9705
9720
  fn: () => exports1GenerateTypes(ptr0),
9706
9721
  });
9707
9722
 
9708
- let variant33;
9723
+ let variant34;
9709
9724
  switch (dataView(memory0).getUint8(ret + 0, true)) {
9710
9725
  case 0: {
9711
- var len31 = dataView(memory0).getUint32(ret + 8, true);
9712
- var base31 = dataView(memory0).getUint32(ret + 4, true);
9713
- var result31 = [];
9714
- for (let i = 0; i < len31; i++) {
9715
- const base = base31 + i * 16;
9716
- var ptr29 = dataView(memory0).getUint32(base + 0, true);
9717
- var len29 = dataView(memory0).getUint32(base + 4, true);
9718
- var result29 = TEXT_DECODER_UTF8.decode(new Uint8Array(memory0.buffer, ptr29, len29));
9719
- var ptr30 = dataView(memory0).getUint32(base + 8, true);
9720
- var len30 = dataView(memory0).getUint32(base + 12, true);
9721
- var result30 = new Uint8Array(memory0.buffer.slice(ptr30, ptr30 + len30 * 1));
9722
- result31.push([result29, result30]);
9723
- }
9724
- variant33= {
9726
+ var len32 = dataView(memory0).getUint32(ret + 8, true);
9727
+ var base32 = dataView(memory0).getUint32(ret + 4, true);
9728
+ var result32 = [];
9729
+ for (let i = 0; i < len32; i++) {
9730
+ const base = base32 + i * 16;
9731
+ var ptr30 = dataView(memory0).getUint32(base + 0, true);
9732
+ var len30 = dataView(memory0).getUint32(base + 4, true);
9733
+ var result30 = TEXT_DECODER_UTF8.decode(new Uint8Array(memory0.buffer, ptr30, len30));
9734
+ var ptr31 = dataView(memory0).getUint32(base + 8, true);
9735
+ var len31 = dataView(memory0).getUint32(base + 12, true);
9736
+ var result31 = new Uint8Array(memory0.buffer.slice(ptr31, ptr31 + len31 * 1));
9737
+ result32.push([result30, result31]);
9738
+ }
9739
+ variant34= {
9725
9740
  tag: 'ok',
9726
- val: result31
9741
+ val: result32
9727
9742
  };
9728
9743
  break;
9729
9744
  }
9730
9745
  case 1: {
9731
- var ptr32 = dataView(memory0).getUint32(ret + 4, true);
9732
- var len32 = dataView(memory0).getUint32(ret + 8, true);
9733
- var result32 = TEXT_DECODER_UTF8.decode(new Uint8Array(memory0.buffer, ptr32, len32));
9734
- variant33= {
9746
+ var ptr33 = dataView(memory0).getUint32(ret + 4, true);
9747
+ var len33 = dataView(memory0).getUint32(ret + 8, true);
9748
+ var result33 = TEXT_DECODER_UTF8.decode(new Uint8Array(memory0.buffer, ptr33, len33));
9749
+ variant34= {
9735
9750
  tag: 'err',
9736
- val: result32
9751
+ val: result33
9737
9752
  };
9738
9753
  break;
9739
9754
  }
@@ -9747,7 +9762,7 @@ function generateTypes(arg0, arg1) {
9747
9762
  async: false,
9748
9763
  postReturn: true
9749
9764
  });
9750
- const retCopy = variant33;
9765
+ const retCopy = variant34;
9751
9766
  task.resolve([retCopy.val]);
9752
9767
 
9753
9768
  let cstate = getOrCreateAsyncState(0);
package/obj/wasm-tools.js CHANGED
@@ -3649,7 +3649,6 @@ class ComponentAsyncState {
3649
3649
  if (!table) { throw new Error(`missing/invalid table [${tableIdx}] while getting future end`); }
3650
3650
  futureEnd = table.get(futureEndHandle);
3651
3651
  } else {
3652
- console.log("args?", args);
3653
3652
  throw new TypeError("must specify either waitable idx or handle to retrieve future");
3654
3653
  }
3655
3654
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bytecodealliance/jco",
3
- "version": "1.17.7",
3
+ "version": "1.17.8",
4
4
  "description": "JavaScript tooling for working with WebAssembly Components",
5
5
  "keywords": [
6
6
  "Component",
@@ -17,6 +17,7 @@ export function guestTypes(witPath: any, opts: any): Promise<void>;
17
17
  * outDir?: string,
18
18
  * features?: string[] | 'all',
19
19
  * guest?: bool,
20
+ * strict?: bool,
20
21
  * }} opts
21
22
  * @returns {Promise<{ [filename: string]: Uint8Array }>}
22
23
  */
@@ -33,6 +34,7 @@ export function typesComponent(
33
34
  outDir?: string;
34
35
  features?: string[] | "all";
35
36
  guest?: boolean;
37
+ strict?: boolean;
36
38
  },
37
39
  ): Promise<{
38
40
  [filename: string]: Uint8Array;
@@ -153,9 +153,8 @@ export async function transpileComponent(component, opts = {}) {
153
153
  // Let's define `instantiation` from `--instantiation` if it's present.
154
154
  if (opts.instantiation) {
155
155
  instantiation = { tag: opts.instantiation };
156
- }
157
- // Otherwise, if `--js` is present, an `instantiate` function is required.
158
- else if (opts.js) {
156
+ } else if (opts.js) {
157
+ // Otherwise, if `--js` is present, an `instantiate` function is required.
159
158
  instantiation = { tag: "async" };
160
159
  }
161
160
 
@@ -200,6 +199,7 @@ export async function transpileComponent(component, opts = {}) {
200
199
  noNamespacedExports: opts.namespacedExports === false,
201
200
  multiMemory: opts.multiMemory === true,
202
201
  idlImports: opts.experimentalIdlImports === true,
202
+ strict: opts.strict === true,
203
203
  });
204
204
 
205
205
  let outDir = (opts.outDir ?? "").replace(/\\/g, "/");
@@ -13,6 +13,7 @@ export function guestTypes(witPath: any, opts: any): Promise<void>;
13
13
  * outDir?: string,
14
14
  * features?: string[] | 'all',
15
15
  * guest?: bool,
16
+ * strict?: bool,
16
17
  * }} opts
17
18
  * @returns {Promise<{ [filename: string]: Uint8Array }>}
18
19
  */
@@ -29,6 +30,7 @@ export function typesComponent(
29
30
  outDir?: string;
30
31
  features?: string[] | "all";
31
32
  guest?: boolean;
33
+ strict?: boolean;
32
34
  },
33
35
  ): Promise<{
34
36
  [filename: string]: Uint8Array;
package/src/cmd/types.js CHANGED
@@ -140,6 +140,7 @@ export async function typesComponent(witPath, opts) {
140
140
  world: opts.worldName,
141
141
  features,
142
142
  guest: opts.guest ?? false,
143
+ strict: opts.strict === true,
143
144
  asyncMode: asyncModeObj,
144
145
  }).map(([name, file]) => [`${outDir}${name}`, file]);
145
146
  } catch (err) {
package/src/jco.js CHANGED
@@ -25,7 +25,7 @@ program
25
25
  )
26
26
  .usage("<command> [options]")
27
27
  .enablePositionalOptions()
28
- .version("1.16.1");
28
+ .version("1.17.8");
29
29
 
30
30
  function myParseInt(value) {
31
31
  return parseInt(value, 10);
@@ -128,6 +128,7 @@ program
128
128
  .option("-q, --quiet", "disable output summary")
129
129
  .option("--no-namespaced-exports", "disable namespaced exports for typescript compatibility")
130
130
  .option("--multi-memory", "optimized output for Wasm multi-memory")
131
+ .option("--strict", "generate bindings with strict type checking")
131
132
  .allowExcessArguments(true)
132
133
  .action(asyncAction(transpile));
133
134
 
@@ -164,6 +165,7 @@ program
164
165
  .option("--feature <feature>", "enable one specific WIT feature (repeatable)", collectOptions, [])
165
166
  .option("--all-features", "enable all features")
166
167
  .option("--wasm-opt-bin <path-to-wasm-opt>', 'wasm-opt binary path (default: 'binaryen/bin/wasm-opt')")
168
+ .option("--strict", "generate bindings with strict type checking")
167
169
  .action(asyncAction(types));
168
170
 
169
171
  program
@@ -186,6 +188,7 @@ program
186
188
  .choices(["sync", "jspi"])
187
189
  .preset("sync"),
188
190
  )
191
+ .option("--strict", "generate bindings with strict type checking")
189
192
  .action(asyncAction(guestTypes));
190
193
 
191
194
  program