@bytecodealliance/jco 0.5.2 → 0.5.3

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 CHANGED
@@ -70,7 +70,7 @@ Commands:
70
70
  To componentize a JS file run:
71
71
 
72
72
  ```
73
- jco componentize app.js --world world.wit -o component.wasm
73
+ jco componentize app.js --wit world.wit -o component.wasm
74
74
  ```
75
75
 
76
76
  Creates a component from a JS module implementing a WIT world definition, via a Spidermonkey engine embedding.
package/api.d.ts CHANGED
@@ -31,6 +31,9 @@ export interface TranspileOpts {
31
31
  /// if using optimize, custom optimization options
32
32
  /// (defaults to best optimization, but this is very slow)
33
33
  optArgs?: string[],
34
+ /// rewrite WASI imports to the @bytecodealliance/preview2-shim
35
+ /// defaults to false
36
+ wasiShim?: boolean
34
37
  }
35
38
 
36
39
  /**
package/api.mjs CHANGED
@@ -40118,8 +40118,8 @@ const exports = {
40118
40118
 
40119
40119
  const $init = (async() => {
40120
40120
  const module0 = fetchCompile(__nccwpck_require__.ab + "js-component-bindgen-component.core.wasm");
40121
- const module1 = base64Compile('AGFzbQEAAAABBgFgAn9/AAMCAQAEBQFwAQEBBxACATAAAAgkaW1wb3J0cwEACg0BCwAgACABQQARAAALAC0JcHJvZHVjZXJzAQxwcm9jZXNzZWQtYnkBDXdpdC1jb21wb25lbnQFMC43LjAANQRuYW1lABMSd2l0LWNvbXBvbmVudDpzaGltARkBABZpbmRpcmVjdC1jb25zb2xlLWVycm9y');
40122
- const module2 = base64Compile('AGFzbQEAAAABBgFgAn9/AAIVAgABMAAAAAgkaW1wb3J0cwFwAQEBCQcBAEEACwEAAC0JcHJvZHVjZXJzAQxwcm9jZXNzZWQtYnkBDXdpdC1jb21wb25lbnQFMC43LjAAHARuYW1lABUUd2l0LWNvbXBvbmVudDpmaXh1cHM=');
40121
+ const module1 = base64Compile('AGFzbQEAAAABBgFgAn9/AAMCAQAEBQFwAQEBBxACATAAAAgkaW1wb3J0cwEACg0BCwAgACABQQARAAALAC0JcHJvZHVjZXJzAQxwcm9jZXNzZWQtYnkBDXdpdC1jb21wb25lbnQFMC43LjQANQRuYW1lABMSd2l0LWNvbXBvbmVudDpzaGltARkBABZpbmRpcmVjdC1jb25zb2xlLWVycm9y');
40122
+ const module2 = base64Compile('AGFzbQEAAAABBgFgAn9/AAIVAgABMAAAAAgkaW1wb3J0cwFwAQEBCQcBAEEACwEAAC0JcHJvZHVjZXJzAQxwcm9jZXNzZWQtYnkBDXdpdC1jb21wb25lbnQFMC43LjQAHARuYW1lABUUd2l0LWNvbXBvbmVudDpmaXh1cHM=');
40123
40123
  Promise.all([module0, module1, module2]).catch(() => {});
40124
40124
  ({ exports: exports0 } = await instantiateCore(await module1));
40125
40125
  ({ exports: exports1 } = await instantiateCore(await module0, {
@@ -40805,8 +40805,8 @@ const exports = {
40805
40805
 
40806
40806
  const $init = (async() => {
40807
40807
  const module0 = fetchCompile(__nccwpck_require__.ab + "wasm-tools.core.wasm");
40808
- const module1 = base64Compile('AGFzbQEAAAABBgFgAn9/AAMCAQAEBQFwAQEBBxACATAAAAgkaW1wb3J0cwEACg0BCwAgACABQQARAAALAC0JcHJvZHVjZXJzAQxwcm9jZXNzZWQtYnkBDXdpdC1jb21wb25lbnQFMC43LjAANQRuYW1lABMSd2l0LWNvbXBvbmVudDpzaGltARkBABZpbmRpcmVjdC1jb25zb2xlLWVycm9y');
40809
- const module2 = base64Compile('AGFzbQEAAAABBgFgAn9/AAIVAgABMAAAAAgkaW1wb3J0cwFwAQEBCQcBAEEACwEAAC0JcHJvZHVjZXJzAQxwcm9jZXNzZWQtYnkBDXdpdC1jb21wb25lbnQFMC43LjAAHARuYW1lABUUd2l0LWNvbXBvbmVudDpmaXh1cHM=');
40808
+ const module1 = base64Compile('AGFzbQEAAAABBgFgAn9/AAMCAQAEBQFwAQEBBxACATAAAAgkaW1wb3J0cwEACg0BCwAgACABQQARAAALAC0JcHJvZHVjZXJzAQxwcm9jZXNzZWQtYnkBDXdpdC1jb21wb25lbnQFMC43LjQANQRuYW1lABMSd2l0LWNvbXBvbmVudDpzaGltARkBABZpbmRpcmVjdC1jb25zb2xlLWVycm9y');
40809
+ const module2 = base64Compile('AGFzbQEAAAABBgFgAn9/AAIVAgABMAAAAAgkaW1wb3J0cwFwAQEBCQcBAEEACwEAAC0JcHJvZHVjZXJzAQxwcm9jZXNzZWQtYnkBDXdpdC1jb21wb25lbnQFMC43LjQAHARuYW1lABUUd2l0LWNvbXBvbmVudDpmaXh1cHM=');
40810
40810
  Promise.all([module0, module1, module2]).catch(() => {});
40811
40811
  ({ exports: exports0 } = await instantiateCore(await module1));
40812
40812
  ({ exports: exports1 } = await instantiateCore(await module0, {
@@ -41153,6 +41153,22 @@ async function transpileComponent (component, opts = {}) {
41153
41153
  ({ component } = await (0,_opt_js__WEBPACK_IMPORTED_MODULE_5__/* .optimizeComponent */ .j)(component, opts));
41154
41154
  }
41155
41155
 
41156
+ if (opts.wasiShim) {
41157
+ opts.map = Object.assign({
41158
+ 'environment-preopens': '@bytecodealliance/preview2-shim/environment-preopens',
41159
+ 'instance-wall-clock': '@bytecodealliance/preview2-shim/instance-wall-clock',
41160
+ 'instance-monotonic-clock': '@bytecodealliance/preview2-shim/instance-monotonic-clock',
41161
+ 'streams': '@bytecodealliance/preview2-shim/streams',
41162
+ 'monotonic-clock': '@bytecodealliance/preview2-shim/monotonic-clock',
41163
+ 'filesystem': '@bytecodealliance/preview2-shim/filesystem',
41164
+ 'wall-clock': '@bytecodealliance/preview2-shim/wall-clock',
41165
+ 'environment': '@bytecodealliance/preview2-shim/environment',
41166
+ 'random': '@bytecodealliance/preview2-shim/random',
41167
+ 'exit': '@bytecodealliance/preview2-shim/exit',
41168
+ 'stderr': '@bytecodealliance/preview2-shim/stderr'
41169
+ }, opts.map || {});
41170
+ }
41171
+
41156
41172
  let { files, imports, exports } = generate(component, {
41157
41173
  name: opts.name ?? 'component',
41158
41174
  map: Object.entries(opts.map ?? {}),
package/cli.mjs CHANGED
@@ -43516,8 +43516,8 @@ const exports = {
43516
43516
 
43517
43517
  const $init = (async() => {
43518
43518
  const module0 = fetchCompile(__nccwpck_require__.ab + "js-component-bindgen-component.core.wasm");
43519
- const module1 = base64Compile('AGFzbQEAAAABBgFgAn9/AAMCAQAEBQFwAQEBBxACATAAAAgkaW1wb3J0cwEACg0BCwAgACABQQARAAALAC0JcHJvZHVjZXJzAQxwcm9jZXNzZWQtYnkBDXdpdC1jb21wb25lbnQFMC43LjAANQRuYW1lABMSd2l0LWNvbXBvbmVudDpzaGltARkBABZpbmRpcmVjdC1jb25zb2xlLWVycm9y');
43520
- const module2 = base64Compile('AGFzbQEAAAABBgFgAn9/AAIVAgABMAAAAAgkaW1wb3J0cwFwAQEBCQcBAEEACwEAAC0JcHJvZHVjZXJzAQxwcm9jZXNzZWQtYnkBDXdpdC1jb21wb25lbnQFMC43LjAAHARuYW1lABUUd2l0LWNvbXBvbmVudDpmaXh1cHM=');
43519
+ const module1 = base64Compile('AGFzbQEAAAABBgFgAn9/AAMCAQAEBQFwAQEBBxACATAAAAgkaW1wb3J0cwEACg0BCwAgACABQQARAAALAC0JcHJvZHVjZXJzAQxwcm9jZXNzZWQtYnkBDXdpdC1jb21wb25lbnQFMC43LjQANQRuYW1lABMSd2l0LWNvbXBvbmVudDpzaGltARkBABZpbmRpcmVjdC1jb25zb2xlLWVycm9y');
43520
+ const module2 = base64Compile('AGFzbQEAAAABBgFgAn9/AAIVAgABMAAAAAgkaW1wb3J0cwFwAQEBCQcBAEEACwEAAC0JcHJvZHVjZXJzAQxwcm9jZXNzZWQtYnkBDXdpdC1jb21wb25lbnQFMC43LjQAHARuYW1lABUUd2l0LWNvbXBvbmVudDpmaXh1cHM=');
43521
43521
  Promise.all([module0, module1, module2]).catch(() => {});
43522
43522
  ({ exports: exports0 } = await instantiateCore(await module1));
43523
43523
  ({ exports: exports1 } = await instantiateCore(await module0, {
@@ -44203,8 +44203,8 @@ const exports = {
44203
44203
 
44204
44204
  const $init = (async() => {
44205
44205
  const module0 = fetchCompile(__nccwpck_require__.ab + "wasm-tools.core.wasm");
44206
- const module1 = base64Compile('AGFzbQEAAAABBgFgAn9/AAMCAQAEBQFwAQEBBxACATAAAAgkaW1wb3J0cwEACg0BCwAgACABQQARAAALAC0JcHJvZHVjZXJzAQxwcm9jZXNzZWQtYnkBDXdpdC1jb21wb25lbnQFMC43LjAANQRuYW1lABMSd2l0LWNvbXBvbmVudDpzaGltARkBABZpbmRpcmVjdC1jb25zb2xlLWVycm9y');
44207
- const module2 = base64Compile('AGFzbQEAAAABBgFgAn9/AAIVAgABMAAAAAgkaW1wb3J0cwFwAQEBCQcBAEEACwEAAC0JcHJvZHVjZXJzAQxwcm9jZXNzZWQtYnkBDXdpdC1jb21wb25lbnQFMC43LjAAHARuYW1lABUUd2l0LWNvbXBvbmVudDpmaXh1cHM=');
44206
+ const module1 = base64Compile('AGFzbQEAAAABBgFgAn9/AAMCAQAEBQFwAQEBBxACATAAAAgkaW1wb3J0cwEACg0BCwAgACABQQARAAALAC0JcHJvZHVjZXJzAQxwcm9jZXNzZWQtYnkBDXdpdC1jb21wb25lbnQFMC43LjQANQRuYW1lABMSd2l0LWNvbXBvbmVudDpzaGltARkBABZpbmRpcmVjdC1jb25zb2xlLWVycm9y');
44207
+ const module2 = base64Compile('AGFzbQEAAAABBgFgAn9/AAIVAgABMAAAAAgkaW1wb3J0cwFwAQEBCQcBAEEACwEAAC0JcHJvZHVjZXJzAQxwcm9jZXNzZWQtYnkBDXdpdC1jb21wb25lbnQFMC43LjQAHARuYW1lABUUd2l0LWNvbXBvbmVudDpmaXh1cHM=');
44208
44208
  Promise.all([module0, module1, module2]).catch(() => {});
44209
44209
  ({ exports: exports0 } = await instantiateCore(await module1));
44210
44210
  ({ exports: exports1 } = await instantiateCore(await module0, {
@@ -44541,6 +44541,22 @@ async function transpileComponent (component, opts = {}) {
44541
44541
  ({ component } = await (0,_opt_js__WEBPACK_IMPORTED_MODULE_5__/* .optimizeComponent */ .j)(component, opts));
44542
44542
  }
44543
44543
 
44544
+ if (opts.wasiShim) {
44545
+ opts.map = Object.assign({
44546
+ 'environment-preopens': '@bytecodealliance/preview2-shim/environment-preopens',
44547
+ 'instance-wall-clock': '@bytecodealliance/preview2-shim/instance-wall-clock',
44548
+ 'instance-monotonic-clock': '@bytecodealliance/preview2-shim/instance-monotonic-clock',
44549
+ 'streams': '@bytecodealliance/preview2-shim/streams',
44550
+ 'monotonic-clock': '@bytecodealliance/preview2-shim/monotonic-clock',
44551
+ 'filesystem': '@bytecodealliance/preview2-shim/filesystem',
44552
+ 'wall-clock': '@bytecodealliance/preview2-shim/wall-clock',
44553
+ 'environment': '@bytecodealliance/preview2-shim/environment',
44554
+ 'random': '@bytecodealliance/preview2-shim/random',
44555
+ 'exit': '@bytecodealliance/preview2-shim/exit',
44556
+ 'stderr': '@bytecodealliance/preview2-shim/stderr'
44557
+ }, opts.map || {});
44558
+ }
44559
+
44544
44560
  let { files, imports, exports } = generate(component, {
44545
44561
  name: opts.name ?? 'component',
44546
44562
  map: Object.entries(opts.map ?? {}),
@@ -45121,7 +45137,7 @@ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_cmd
45121
45137
  commander__WEBPACK_IMPORTED_MODULE_0__/* .program.name */ .Nx.name('jco')
45122
45138
  .description(chalk_template__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z`{bold jco - WebAssembly JS Component Tools}\n JS Component Transpilation Bindgen & Wasm Tools for JS`)
45123
45139
  .usage('<command> [options]')
45124
- .version('0.5.2');
45140
+ .version('0.5.3');
45125
45141
 
45126
45142
  function myParseInt(value) {
45127
45143
  return parseInt(value, 10);
@@ -45149,6 +45165,7 @@ commander__WEBPACK_IMPORTED_MODULE_0__/* .program.command */ .Nx.command('transp
45149
45165
  .option('--tla-compat', 'enables compatibility for JS environments without top-level await support via an async $init promise export')
45150
45166
  .option('--no-nodejs-compat', 'disables compatibility in Node.js without a fetch global')
45151
45167
  .option('-M, --map <mappings...>', 'specifier=./output custom mappings for the component imports')
45168
+ .option('-w, --wasi-shim', 'automatically rewrite WASI imports to use @bytecodealliance/preview2-shim')
45152
45169
  .option('--js', 'output JS instead of core WebAssembly')
45153
45170
  .option('-I, --instantiation', 'output for custom module instantiation')
45154
45171
  .option('-q, --quiet', 'disable logging')
@@ -45225,7 +45242,7 @@ function asyncAction (cmd) {
45225
45242
  await cmd.apply(null, args);
45226
45243
  }
45227
45244
  catch (e) {
45228
- process.stdout.write(`(jsct ${cmd.name}) `);
45245
+ process.stdout.write(`(jco ${cmd.name}) `);
45229
45246
  if (typeof e === 'string') {
45230
45247
  console.error(chalk_template__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z`{red.bold Error}: ${e}\n`);
45231
45248
  } else {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bytecodealliance/jco",
3
3
  "description": "JavaScript tooling for working with WebAssembly Components",
4
- "version": "0.5.2",
4
+ "version": "0.5.3",
5
5
  "exports": "./api.mjs",
6
6
  "types": "api.d.ts",
7
7
  "author": "Guy Bedford",