@bytecodealliance/jco 0.12.0 → 0.12.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 CHANGED
@@ -37,7 +37,7 @@ jco can be used as either a library or as a CLI via the `jco` CLI command.
37
37
 
38
38
  ## Example
39
39
 
40
- See the [example workflow](EXAMPLE.md) page for a full usage example.
40
+ See the [example workflow](docs/src/example.md) page for a full usage example.
41
41
 
42
42
  ## CLI
43
43
 
@@ -176,11 +176,7 @@ Add new producer metadata to a component or core Wasm binary.
176
176
 
177
177
  ## Contributing
178
178
 
179
- Development is based on a standard `npm install && npm run build && npm run test` workflow.
180
-
181
- Tests can be run without bundling via `npm run build:dev && npm run test:dev`.
182
-
183
- Specific tests can be run adding the mocha `--grep` flag, for example: `npm run test:dev -- --grep exports_only`.
179
+ See the [Contributing](docs/src/contributing.md) chapter of the jco book.
184
180
 
185
181
  # License
186
182
 
@@ -0,0 +1,2 @@
1
+ export namespace WasiSocketsTcp {
2
+ }
@@ -2339,8 +2339,8 @@ let _initialized = false;
2339
2339
  export const $init = (async() => {
2340
2340
  const module0 = fetchCompile(new URL('./js-component-bindgen-component.core.wasm', import.meta.url));
2341
2341
  const module1 = fetchCompile(new URL('./js-component-bindgen-component.core2.wasm', import.meta.url));
2342
- const module2 = base64Compile('AGFzbQEAAAABUgxgAX8AYAN/fn8AYAJ/fwBgCH9/f39/f39/AGAEf39/fwBgAn5/AGACf38Bf2AEf39/fwF/YAl/f39/f35+f38Bf2ABfwF/YAN/f38Bf2ABfwADHx4AAQECAgIDAgEBAgQEAgUAAAAABgcHCAYGBgkGCgsEBQFwAR4eB5gBHwEwAAABMQABATIAAgEzAAMBNAAEATUABQE2AAYBNwAHATgACAE5AAkCMTAACgIxMQALAjEyAAwCMTMADQIxNAAOAjE1AA8CMTYAEAIxNwARAjE4ABICMTkAEwIyMAAUAjIxABUCMjIAFgIyMwAXAjI0ABgCMjUAGQIyNgAaAjI3ABsCMjgAHAIyOQAdCCRpbXBvcnRzAQAKjwMeCQAgAEEAEQAACw0AIAAgASACQQERAQALDQAgACABIAJBAhEBAAsLACAAIAFBAxECAAsLACAAIAFBBBECAAsLACAAIAFBBRECAAsXACAAIAEgAiADIAQgBSAGIAdBBhEDAAsLACAAIAFBBxECAAsNACAAIAEgAkEIEQEACw0AIAAgASACQQkRAQALCwAgACABQQoRAgALDwAgACABIAIgA0ELEQQACw8AIAAgASACIANBDBEEAAsLACAAIAFBDRECAAsLACAAIAFBDhEFAAsJACAAQQ8RAAALCQAgAEEQEQAACwkAIABBEREAAAsJACAAQRIRAAALCwAgACABQRMRBgALDwAgACABIAIgA0EUEQcACw8AIAAgASACIANBFREHAAsZACAAIAEgAiADIAQgBSAGIAcgCEEWEQgACwsAIAAgAUEXEQYACwsAIAAgAUEYEQYACwsAIAAgAUEZEQYACwkAIABBGhEJAAsLACAAIAFBGxEGAAsNACAAIAEgAkEcEQoACwkAIABBHRELAAsALglwcm9kdWNlcnMBDHByb2Nlc3NlZC1ieQENd2l0LWNvbXBvbmVudAYwLjE0LjIAxQoEbmFtZQATEndpdC1jb21wb25lbnQ6c2hpbQGoCh4AMWluZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS9wcmVvcGVucy1nZXQtZGlyZWN0b3JpZXMBLmluZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlcy1yZWFkLXZpYS1zdHJlYW0CL2luZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlcy13cml0ZS12aWEtc3RyZWFtAzBpbmRpcmVjdC13YXNpOmZpbGVzeXN0ZW0vdHlwZXMtYXBwZW5kLXZpYS1zdHJlYW0EJ2luZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlcy1nZXQtdHlwZQUjaW5kaXJlY3Qtd2FzaTpmaWxlc3lzdGVtL3R5cGVzLXN0YXQGJmluZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlcy1vcGVuLWF0ByxpbmRpcmVjdC13YXNpOmZpbGVzeXN0ZW0vdHlwZXMtbWV0YWRhdGEtaGFzaAgdaW5kaXJlY3Qtd2FzaTppby9zdHJlYW1zLXJlYWQJJmluZGlyZWN0LXdhc2k6aW8vc3RyZWFtcy1ibG9ja2luZy1yZWFkCiRpbmRpcmVjdC13YXNpOmlvL3N0cmVhbXMtY2hlY2std3JpdGULHmluZGlyZWN0LXdhc2k6aW8vc3RyZWFtcy13cml0ZQwxaW5kaXJlY3Qtd2FzaTppby9zdHJlYW1zLWJsb2NraW5nLXdyaXRlLWFuZC1mbHVzaA0naW5kaXJlY3Qtd2FzaTppby9zdHJlYW1zLWJsb2NraW5nLWZsdXNoDixpbmRpcmVjdC13YXNpOnJhbmRvbS9yYW5kb20tZ2V0LXJhbmRvbS1ieXRlcw8taW5kaXJlY3Qtd2FzaTpjbGkvZW52aXJvbm1lbnQtZ2V0LWVudmlyb25tZW50EDNpbmRpcmVjdC13YXNpOmNsaS90ZXJtaW5hbC1zdGRpbi1nZXQtdGVybWluYWwtc3RkaW4RNWluZGlyZWN0LXdhc2k6Y2xpL3Rlcm1pbmFsLXN0ZG91dC1nZXQtdGVybWluYWwtc3Rkb3V0EjVpbmRpcmVjdC13YXNpOmNsaS90ZXJtaW5hbC1zdGRlcnItZ2V0LXRlcm1pbmFsLXN0ZGVychMsYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF9maWxlc3RhdF9nZXQUJGFkYXB0LXdhc2lfc25hcHNob3RfcHJldmlldzEtZmRfcmVhZBUlYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF93cml0ZRYmYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1wYXRoX29wZW4XJ2FkYXB0LXdhc2lfc25hcHNob3RfcHJldmlldzEtcmFuZG9tX2dldBgoYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1lbnZpcm9uX2dldBkuYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1lbnZpcm9uX3NpemVzX2dldBolYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF9jbG9zZRsrYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF9wcmVzdGF0X2dldBwwYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF9wcmVzdGF0X2Rpcl9uYW1lHSZhZGFwdC13YXNpX3NuYXBzaG90X3ByZXZpZXcxLXByb2NfZXhpdA');
2343
- const module3 = base64Compile('AGFzbQEAAAABUgxgAX8AYAN/fn8AYAJ/fwBgCH9/f39/f39/AGAEf39/fwBgAn5/AGACf38Bf2AEf39/fwF/YAl/f39/f35+f38Bf2ABfwF/YAN/f38Bf2ABfwACugEfAAEwAAAAATEAAQABMgABAAEzAAIAATQAAgABNQACAAE2AAMAATcAAgABOAABAAE5AAEAAjEwAAIAAjExAAQAAjEyAAQAAjEzAAIAAjE0AAUAAjE1AAAAAjE2AAAAAjE3AAAAAjE4AAAAAjE5AAYAAjIwAAcAAjIxAAcAAjIyAAgAAjIzAAYAAjI0AAYAAjI1AAYAAjI2AAkAAjI3AAYAAjI4AAoAAjI5AAsACCRpbXBvcnRzAXABHh4JJAEAQQALHgABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHQAuCXByb2R1Y2VycwEMcHJvY2Vzc2VkLWJ5AQ13aXQtY29tcG9uZW50BjAuMTQuMgAcBG5hbWUAFRR3aXQtY29tcG9uZW50OmZpeHVwcw');
2342
+ const module2 = base64Compile('AGFzbQEAAAABUgxgAX8AYAN/fn8AYAJ/fwBgCH9/f39/f39/AGAEf39/fwBgAn5/AGACf38Bf2AEf39/fwF/YAl/f39/f35+f38Bf2ABfwF/YAN/f38Bf2ABfwADHx4AAQECAgIDAgEBAgQEAgUAAAAABgcHCAYGBgkGCgsEBQFwAR4eB5gBHwEwAAABMQABATIAAgEzAAMBNAAEATUABQE2AAYBNwAHATgACAE5AAkCMTAACgIxMQALAjEyAAwCMTMADQIxNAAOAjE1AA8CMTYAEAIxNwARAjE4ABICMTkAEwIyMAAUAjIxABUCMjIAFgIyMwAXAjI0ABgCMjUAGQIyNgAaAjI3ABsCMjgAHAIyOQAdCCRpbXBvcnRzAQAKjwMeCQAgAEEAEQAACw0AIAAgASACQQERAQALDQAgACABIAJBAhEBAAsLACAAIAFBAxECAAsLACAAIAFBBBECAAsLACAAIAFBBRECAAsXACAAIAEgAiADIAQgBSAGIAdBBhEDAAsLACAAIAFBBxECAAsNACAAIAEgAkEIEQEACw0AIAAgASACQQkRAQALCwAgACABQQoRAgALDwAgACABIAIgA0ELEQQACw8AIAAgASACIANBDBEEAAsLACAAIAFBDRECAAsLACAAIAFBDhEFAAsJACAAQQ8RAAALCQAgAEEQEQAACwkAIABBEREAAAsJACAAQRIRAAALCwAgACABQRMRBgALDwAgACABIAIgA0EUEQcACw8AIAAgASACIANBFREHAAsZACAAIAEgAiADIAQgBSAGIAcgCEEWEQgACwsAIAAgAUEXEQYACwsAIAAgAUEYEQYACwsAIAAgAUEZEQYACwkAIABBGhEJAAsLACAAIAFBGxEGAAsNACAAIAEgAkEcEQoACwkAIABBHRELAAsALglwcm9kdWNlcnMBDHByb2Nlc3NlZC1ieQENd2l0LWNvbXBvbmVudAYwLjE1LjAAxQoEbmFtZQATEndpdC1jb21wb25lbnQ6c2hpbQGoCh4AMWluZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS9wcmVvcGVucy1nZXQtZGlyZWN0b3JpZXMBLmluZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlcy1yZWFkLXZpYS1zdHJlYW0CL2luZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlcy13cml0ZS12aWEtc3RyZWFtAzBpbmRpcmVjdC13YXNpOmZpbGVzeXN0ZW0vdHlwZXMtYXBwZW5kLXZpYS1zdHJlYW0EJ2luZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlcy1nZXQtdHlwZQUjaW5kaXJlY3Qtd2FzaTpmaWxlc3lzdGVtL3R5cGVzLXN0YXQGJmluZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlcy1vcGVuLWF0ByxpbmRpcmVjdC13YXNpOmZpbGVzeXN0ZW0vdHlwZXMtbWV0YWRhdGEtaGFzaAgdaW5kaXJlY3Qtd2FzaTppby9zdHJlYW1zLXJlYWQJJmluZGlyZWN0LXdhc2k6aW8vc3RyZWFtcy1ibG9ja2luZy1yZWFkCiRpbmRpcmVjdC13YXNpOmlvL3N0cmVhbXMtY2hlY2std3JpdGULHmluZGlyZWN0LXdhc2k6aW8vc3RyZWFtcy13cml0ZQwxaW5kaXJlY3Qtd2FzaTppby9zdHJlYW1zLWJsb2NraW5nLXdyaXRlLWFuZC1mbHVzaA0naW5kaXJlY3Qtd2FzaTppby9zdHJlYW1zLWJsb2NraW5nLWZsdXNoDixpbmRpcmVjdC13YXNpOnJhbmRvbS9yYW5kb20tZ2V0LXJhbmRvbS1ieXRlcw8taW5kaXJlY3Qtd2FzaTpjbGkvZW52aXJvbm1lbnQtZ2V0LWVudmlyb25tZW50EDNpbmRpcmVjdC13YXNpOmNsaS90ZXJtaW5hbC1zdGRpbi1nZXQtdGVybWluYWwtc3RkaW4RNWluZGlyZWN0LXdhc2k6Y2xpL3Rlcm1pbmFsLXN0ZG91dC1nZXQtdGVybWluYWwtc3Rkb3V0EjVpbmRpcmVjdC13YXNpOmNsaS90ZXJtaW5hbC1zdGRlcnItZ2V0LXRlcm1pbmFsLXN0ZGVychMsYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF9maWxlc3RhdF9nZXQUJGFkYXB0LXdhc2lfc25hcHNob3RfcHJldmlldzEtZmRfcmVhZBUlYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF93cml0ZRYmYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1wYXRoX29wZW4XJ2FkYXB0LXdhc2lfc25hcHNob3RfcHJldmlldzEtcmFuZG9tX2dldBgoYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1lbnZpcm9uX2dldBkuYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1lbnZpcm9uX3NpemVzX2dldBolYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF9jbG9zZRsrYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF9wcmVzdGF0X2dldBwwYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF9wcmVzdGF0X2Rpcl9uYW1lHSZhZGFwdC13YXNpX3NuYXBzaG90X3ByZXZpZXcxLXByb2NfZXhpdA');
2343
+ const module3 = base64Compile('AGFzbQEAAAABUgxgAX8AYAN/fn8AYAJ/fwBgCH9/f39/f39/AGAEf39/fwBgAn5/AGACf38Bf2AEf39/fwF/YAl/f39/f35+f38Bf2ABfwF/YAN/f38Bf2ABfwACugEfAAEwAAAAATEAAQABMgABAAEzAAIAATQAAgABNQACAAE2AAMAATcAAgABOAABAAE5AAEAAjEwAAIAAjExAAQAAjEyAAQAAjEzAAIAAjE0AAUAAjE1AAAAAjE2AAAAAjE3AAAAAjE4AAAAAjE5AAYAAjIwAAcAAjIxAAcAAjIyAAgAAjIzAAYAAjI0AAYAAjI1AAYAAjI2AAkAAjI3AAYAAjI4AAoAAjI5AAsACCRpbXBvcnRzAXABHh4JJAEAQQALHgABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHQAuCXByb2R1Y2VycwEMcHJvY2Vzc2VkLWJ5AQ13aXQtY29tcG9uZW50BjAuMTUuMAAcBG5hbWUAFRR3aXQtY29tcG9uZW50OmZpeHVwcw');
2344
2344
  const instanceFlags0 = new WebAssembly.Global({ value: "i32", mutable: true }, 3);
2345
2345
  Promise.all([module0, module1, module2, module3]).catch(() => {});
2346
2346
  ({ exports: exports0 } = await instantiateCore(await module2));
Binary file
Binary file
package/obj/wasm-tools.js CHANGED
@@ -2531,8 +2531,8 @@ let _initialized = false;
2531
2531
  export const $init = (async() => {
2532
2532
  const module0 = fetchCompile(new URL('./wasm-tools.core.wasm', import.meta.url));
2533
2533
  const module1 = fetchCompile(new URL('./wasm-tools.core2.wasm', import.meta.url));
2534
- const module2 = base64Compile('AGFzbQEAAAABUgxgAX8AYAN/fn8AYAJ/fwBgCH9/f39/f39/AGAEf39/fwBgAn5/AGACf38Bf2AEf39/fwF/YAl/f39/f35+f38Bf2ABfwF/YAN/f38Bf2ABfwADHx4AAQECAgIDAgEBAgQEAgUAAAAABgcHCAYGBgkGCgsEBQFwAR4eB5gBHwEwAAABMQABATIAAgEzAAMBNAAEATUABQE2AAYBNwAHATgACAE5AAkCMTAACgIxMQALAjEyAAwCMTMADQIxNAAOAjE1AA8CMTYAEAIxNwARAjE4ABICMTkAEwIyMAAUAjIxABUCMjIAFgIyMwAXAjI0ABgCMjUAGQIyNgAaAjI3ABsCMjgAHAIyOQAdCCRpbXBvcnRzAQAKjwMeCQAgAEEAEQAACw0AIAAgASACQQERAQALDQAgACABIAJBAhEBAAsLACAAIAFBAxECAAsLACAAIAFBBBECAAsLACAAIAFBBRECAAsXACAAIAEgAiADIAQgBSAGIAdBBhEDAAsLACAAIAFBBxECAAsNACAAIAEgAkEIEQEACw0AIAAgASACQQkRAQALCwAgACABQQoRAgALDwAgACABIAIgA0ELEQQACw8AIAAgASACIANBDBEEAAsLACAAIAFBDRECAAsLACAAIAFBDhEFAAsJACAAQQ8RAAALCQAgAEEQEQAACwkAIABBEREAAAsJACAAQRIRAAALCwAgACABQRMRBgALDwAgACABIAIgA0EUEQcACw8AIAAgASACIANBFREHAAsZACAAIAEgAiADIAQgBSAGIAcgCEEWEQgACwsAIAAgAUEXEQYACwsAIAAgAUEYEQYACwsAIAAgAUEZEQYACwkAIABBGhEJAAsLACAAIAFBGxEGAAsNACAAIAEgAkEcEQoACwkAIABBHRELAAsALglwcm9kdWNlcnMBDHByb2Nlc3NlZC1ieQENd2l0LWNvbXBvbmVudAYwLjE0LjIAxQoEbmFtZQATEndpdC1jb21wb25lbnQ6c2hpbQGoCh4AMWluZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS9wcmVvcGVucy1nZXQtZGlyZWN0b3JpZXMBLmluZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlcy1yZWFkLXZpYS1zdHJlYW0CL2luZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlcy13cml0ZS12aWEtc3RyZWFtAzBpbmRpcmVjdC13YXNpOmZpbGVzeXN0ZW0vdHlwZXMtYXBwZW5kLXZpYS1zdHJlYW0EJ2luZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlcy1nZXQtdHlwZQUjaW5kaXJlY3Qtd2FzaTpmaWxlc3lzdGVtL3R5cGVzLXN0YXQGJmluZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlcy1vcGVuLWF0ByxpbmRpcmVjdC13YXNpOmZpbGVzeXN0ZW0vdHlwZXMtbWV0YWRhdGEtaGFzaAgdaW5kaXJlY3Qtd2FzaTppby9zdHJlYW1zLXJlYWQJJmluZGlyZWN0LXdhc2k6aW8vc3RyZWFtcy1ibG9ja2luZy1yZWFkCiRpbmRpcmVjdC13YXNpOmlvL3N0cmVhbXMtY2hlY2std3JpdGULHmluZGlyZWN0LXdhc2k6aW8vc3RyZWFtcy13cml0ZQwxaW5kaXJlY3Qtd2FzaTppby9zdHJlYW1zLWJsb2NraW5nLXdyaXRlLWFuZC1mbHVzaA0naW5kaXJlY3Qtd2FzaTppby9zdHJlYW1zLWJsb2NraW5nLWZsdXNoDixpbmRpcmVjdC13YXNpOnJhbmRvbS9yYW5kb20tZ2V0LXJhbmRvbS1ieXRlcw8taW5kaXJlY3Qtd2FzaTpjbGkvZW52aXJvbm1lbnQtZ2V0LWVudmlyb25tZW50EDNpbmRpcmVjdC13YXNpOmNsaS90ZXJtaW5hbC1zdGRpbi1nZXQtdGVybWluYWwtc3RkaW4RNWluZGlyZWN0LXdhc2k6Y2xpL3Rlcm1pbmFsLXN0ZG91dC1nZXQtdGVybWluYWwtc3Rkb3V0EjVpbmRpcmVjdC13YXNpOmNsaS90ZXJtaW5hbC1zdGRlcnItZ2V0LXRlcm1pbmFsLXN0ZGVychMsYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF9maWxlc3RhdF9nZXQUJGFkYXB0LXdhc2lfc25hcHNob3RfcHJldmlldzEtZmRfcmVhZBUlYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF93cml0ZRYmYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1wYXRoX29wZW4XJ2FkYXB0LXdhc2lfc25hcHNob3RfcHJldmlldzEtcmFuZG9tX2dldBgoYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1lbnZpcm9uX2dldBkuYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1lbnZpcm9uX3NpemVzX2dldBolYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF9jbG9zZRsrYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF9wcmVzdGF0X2dldBwwYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF9wcmVzdGF0X2Rpcl9uYW1lHSZhZGFwdC13YXNpX3NuYXBzaG90X3ByZXZpZXcxLXByb2NfZXhpdA');
2535
- const module3 = base64Compile('AGFzbQEAAAABUgxgAX8AYAN/fn8AYAJ/fwBgCH9/f39/f39/AGAEf39/fwBgAn5/AGACf38Bf2AEf39/fwF/YAl/f39/f35+f38Bf2ABfwF/YAN/f38Bf2ABfwACugEfAAEwAAAAATEAAQABMgABAAEzAAIAATQAAgABNQACAAE2AAMAATcAAgABOAABAAE5AAEAAjEwAAIAAjExAAQAAjEyAAQAAjEzAAIAAjE0AAUAAjE1AAAAAjE2AAAAAjE3AAAAAjE4AAAAAjE5AAYAAjIwAAcAAjIxAAcAAjIyAAgAAjIzAAYAAjI0AAYAAjI1AAYAAjI2AAkAAjI3AAYAAjI4AAoAAjI5AAsACCRpbXBvcnRzAXABHh4JJAEAQQALHgABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHQAuCXByb2R1Y2VycwEMcHJvY2Vzc2VkLWJ5AQ13aXQtY29tcG9uZW50BjAuMTQuMgAcBG5hbWUAFRR3aXQtY29tcG9uZW50OmZpeHVwcw');
2534
+ const module2 = base64Compile('AGFzbQEAAAABUgxgAX8AYAN/fn8AYAJ/fwBgCH9/f39/f39/AGAEf39/fwBgAn5/AGACf38Bf2AEf39/fwF/YAl/f39/f35+f38Bf2ABfwF/YAN/f38Bf2ABfwADHx4AAQECAgIDAgEBAgQEAgUAAAAABgcHCAYGBgkGCgsEBQFwAR4eB5gBHwEwAAABMQABATIAAgEzAAMBNAAEATUABQE2AAYBNwAHATgACAE5AAkCMTAACgIxMQALAjEyAAwCMTMADQIxNAAOAjE1AA8CMTYAEAIxNwARAjE4ABICMTkAEwIyMAAUAjIxABUCMjIAFgIyMwAXAjI0ABgCMjUAGQIyNgAaAjI3ABsCMjgAHAIyOQAdCCRpbXBvcnRzAQAKjwMeCQAgAEEAEQAACw0AIAAgASACQQERAQALDQAgACABIAJBAhEBAAsLACAAIAFBAxECAAsLACAAIAFBBBECAAsLACAAIAFBBRECAAsXACAAIAEgAiADIAQgBSAGIAdBBhEDAAsLACAAIAFBBxECAAsNACAAIAEgAkEIEQEACw0AIAAgASACQQkRAQALCwAgACABQQoRAgALDwAgACABIAIgA0ELEQQACw8AIAAgASACIANBDBEEAAsLACAAIAFBDRECAAsLACAAIAFBDhEFAAsJACAAQQ8RAAALCQAgAEEQEQAACwkAIABBEREAAAsJACAAQRIRAAALCwAgACABQRMRBgALDwAgACABIAIgA0EUEQcACw8AIAAgASACIANBFREHAAsZACAAIAEgAiADIAQgBSAGIAcgCEEWEQgACwsAIAAgAUEXEQYACwsAIAAgAUEYEQYACwsAIAAgAUEZEQYACwkAIABBGhEJAAsLACAAIAFBGxEGAAsNACAAIAEgAkEcEQoACwkAIABBHRELAAsALglwcm9kdWNlcnMBDHByb2Nlc3NlZC1ieQENd2l0LWNvbXBvbmVudAYwLjE1LjAAxQoEbmFtZQATEndpdC1jb21wb25lbnQ6c2hpbQGoCh4AMWluZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS9wcmVvcGVucy1nZXQtZGlyZWN0b3JpZXMBLmluZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlcy1yZWFkLXZpYS1zdHJlYW0CL2luZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlcy13cml0ZS12aWEtc3RyZWFtAzBpbmRpcmVjdC13YXNpOmZpbGVzeXN0ZW0vdHlwZXMtYXBwZW5kLXZpYS1zdHJlYW0EJ2luZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlcy1nZXQtdHlwZQUjaW5kaXJlY3Qtd2FzaTpmaWxlc3lzdGVtL3R5cGVzLXN0YXQGJmluZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlcy1vcGVuLWF0ByxpbmRpcmVjdC13YXNpOmZpbGVzeXN0ZW0vdHlwZXMtbWV0YWRhdGEtaGFzaAgdaW5kaXJlY3Qtd2FzaTppby9zdHJlYW1zLXJlYWQJJmluZGlyZWN0LXdhc2k6aW8vc3RyZWFtcy1ibG9ja2luZy1yZWFkCiRpbmRpcmVjdC13YXNpOmlvL3N0cmVhbXMtY2hlY2std3JpdGULHmluZGlyZWN0LXdhc2k6aW8vc3RyZWFtcy13cml0ZQwxaW5kaXJlY3Qtd2FzaTppby9zdHJlYW1zLWJsb2NraW5nLXdyaXRlLWFuZC1mbHVzaA0naW5kaXJlY3Qtd2FzaTppby9zdHJlYW1zLWJsb2NraW5nLWZsdXNoDixpbmRpcmVjdC13YXNpOnJhbmRvbS9yYW5kb20tZ2V0LXJhbmRvbS1ieXRlcw8taW5kaXJlY3Qtd2FzaTpjbGkvZW52aXJvbm1lbnQtZ2V0LWVudmlyb25tZW50EDNpbmRpcmVjdC13YXNpOmNsaS90ZXJtaW5hbC1zdGRpbi1nZXQtdGVybWluYWwtc3RkaW4RNWluZGlyZWN0LXdhc2k6Y2xpL3Rlcm1pbmFsLXN0ZG91dC1nZXQtdGVybWluYWwtc3Rkb3V0EjVpbmRpcmVjdC13YXNpOmNsaS90ZXJtaW5hbC1zdGRlcnItZ2V0LXRlcm1pbmFsLXN0ZGVychMsYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF9maWxlc3RhdF9nZXQUJGFkYXB0LXdhc2lfc25hcHNob3RfcHJldmlldzEtZmRfcmVhZBUlYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF93cml0ZRYmYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1wYXRoX29wZW4XJ2FkYXB0LXdhc2lfc25hcHNob3RfcHJldmlldzEtcmFuZG9tX2dldBgoYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1lbnZpcm9uX2dldBkuYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1lbnZpcm9uX3NpemVzX2dldBolYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF9jbG9zZRsrYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF9wcmVzdGF0X2dldBwwYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF9wcmVzdGF0X2Rpcl9uYW1lHSZhZGFwdC13YXNpX3NuYXBzaG90X3ByZXZpZXcxLXByb2NfZXhpdA');
2535
+ const module3 = base64Compile('AGFzbQEAAAABUgxgAX8AYAN/fn8AYAJ/fwBgCH9/f39/f39/AGAEf39/fwBgAn5/AGACf38Bf2AEf39/fwF/YAl/f39/f35+f38Bf2ABfwF/YAN/f38Bf2ABfwACugEfAAEwAAAAATEAAQABMgABAAEzAAIAATQAAgABNQACAAE2AAMAATcAAgABOAABAAE5AAEAAjEwAAIAAjExAAQAAjEyAAQAAjEzAAIAAjE0AAUAAjE1AAAAAjE2AAAAAjE3AAAAAjE4AAAAAjE5AAYAAjIwAAcAAjIxAAcAAjIyAAgAAjIzAAYAAjI0AAYAAjI1AAYAAjI2AAkAAjI3AAYAAjI4AAoAAjI5AAsACCRpbXBvcnRzAXABHh4JJAEAQQALHgABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHQAuCXByb2R1Y2VycwEMcHJvY2Vzc2VkLWJ5AQ13aXQtY29tcG9uZW50BjAuMTUuMAAcBG5hbWUAFRR3aXQtY29tcG9uZW50OmZpeHVwcw');
2536
2536
  const instanceFlags0 = new WebAssembly.Global({ value: "i32", mutable: true }, 3);
2537
2537
  const instanceFlags1 = new WebAssembly.Global({ value: "i32", mutable: true }, 3);
2538
2538
  Promise.all([module0, module1, module2, module3]).catch(() => {});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bytecodealliance/jco",
3
- "version": "0.12.0",
3
+ "version": "0.12.2",
4
4
  "description": "JavaScript tooling for working with WebAssembly Components",
5
5
  "author": "Guy Bedford",
6
6
  "bin": {
@@ -18,7 +18,7 @@
18
18
  },
19
19
  "type": "module",
20
20
  "dependencies": {
21
- "@bytecodealliance/preview2-shim": "0.0.15",
21
+ "@bytecodealliance/preview2-shim": "0.0.17",
22
22
  "binaryen": "^111.0.0",
23
23
  "chalk-template": "^0.4.0",
24
24
  "commander": "^9.4.1",
@@ -27,7 +27,7 @@
27
27
  "terser": "^5.16.1"
28
28
  },
29
29
  "devDependencies": {
30
- "@bytecodealliance/componentize-js": "^0.2.0",
30
+ "@bytecodealliance/componentize-js": "^0.3.0",
31
31
  "@types/node": "^18.11.17",
32
32
  "@typescript-eslint/eslint-plugin": "^5.41.0",
33
33
  "@typescript-eslint/parser": "^5.41.0",
@@ -51,10 +51,10 @@
51
51
  },
52
52
  "homepage": "https://github.com/bytecodealliance/jco#readme",
53
53
  "scripts": {
54
- "build": "cargo build --workspace --target wasm32-wasi --release && cargo run",
55
- "build:types:preview2-shim": "PREVIEW2_SHIM_TYPES=* cargo build -p jco",
54
+ "build": "cargo xtask build workspace",
55
+ "build:types:preview2-shim": "cargo xtask build shims",
56
56
  "lint": "eslint -c eslintrc.cjs lib/**/*.js packages/*/lib/**/*.js",
57
- "test": "rm -rf $(pwd)/node_modules/@bytecodealliance/jco/lib && ln -s $(pwd)/lib $(pwd)/node_modules/@bytecodealliance/jco/ && mocha -u tdd test/test.js --timeout 120000"
57
+ "test": "mocha -u tdd test/test.js --timeout 120000"
58
58
  },
59
59
  "files": [
60
60
  "lib",
@@ -16,6 +16,7 @@ export async function componentize (jsSource, opts) {
16
16
  witPath: resolve(opts.wit),
17
17
  worldName: opts.worldName,
18
18
  enableStdout: opts.enableStdout,
19
+ preview2Adapter: opts.preview2Adapter,
19
20
  });
20
21
  await writeFile(opts.out, component);
21
22
  console.log(c`{green OK} Successfully written {bold ${opts.out}} with imports (${imports.join(', ')}).`);
package/src/cmd/run.js CHANGED
@@ -1,20 +1,15 @@
1
+ import { getTmpDir } from '../common.js';
1
2
  import { transpile } from './transpile.js';
2
- import { tmpdir } from 'node:os';
3
3
  import { rm, stat, mkdir, writeFile, symlink, chmod } from 'node:fs/promises';
4
4
  import { basename, resolve, extname } from 'node:path';
5
5
  import { spawn } from 'node:child_process';
6
6
  import { argv0, exit } from 'node:process';
7
7
  import { fileURLToPath } from 'node:url';
8
- import * as crypto from 'node:crypto';
9
8
  import c from 'chalk-template';
10
9
 
11
- function getTmpDir (name) {
12
- return resolve(tmpdir(), crypto.createHash('sha256').update(name).update(Math.random().toString()).digest('hex'));
13
- }
14
-
15
10
  export async function run (componentPath, args) {
16
11
  const name = basename(componentPath.slice(0, -extname(componentPath).length || Infinity));
17
- const outDir = resolve(getTmpDir(name));
12
+ const outDir = await getTmpDir();
18
13
  let cp;
19
14
  try {
20
15
  try {
@@ -54,10 +49,6 @@ export async function run (componentPath, args) {
54
49
 
55
50
  const runPath = resolve(outDir, '_run.js');
56
51
  await writeFile(runPath, `
57
- import { _setEnv, _setArgs, _setCwd } from '@bytecodealliance/preview2-shim/cli';
58
- _setArgs(process.argv.slice(1));
59
- _setEnv(process.env);
60
- _setCwd(process.cwd());
61
52
  function logInvalidCommand () {
62
53
  console.error('Not a valid command component to execute, make sure it was built to a command adapter and with the same version.');
63
54
  }
package/src/common.js CHANGED
@@ -1,7 +1,6 @@
1
- import crypto from 'node:crypto';
2
- import { resolve } from 'node:path';
1
+ import { normalize, resolve, sep } from 'node:path';
3
2
  import { tmpdir } from 'node:os';
4
- import { readFile, writeFile, unlink } from 'node:fs/promises';
3
+ import { readFile, writeFile, rm, mkdtemp } from 'node:fs/promises';
5
4
  import { spawn } from 'node:child_process';
6
5
  import { argv0 } from 'node:process';
7
6
  import c from 'chalk-template';
@@ -56,8 +55,13 @@ export function table (data, align = []) {
56
55
  return outTable;
57
56
  }
58
57
 
59
- export function getTmpFile (source, ext) {
60
- return resolve(tmpdir(), crypto.createHash('sha256').update(source).update(Math.random().toString()).digest('hex') + ext);
58
+ /**
59
+ * Securely creates a temporary directory and returns its path.
60
+ *
61
+ * The new directory is created using `fsPromises.mkdtemp()`.
62
+ */
63
+ export async function getTmpDir () {
64
+ return await mkdtemp(normalize(tmpdir() + sep));
61
65
  }
62
66
 
63
67
  async function readFileCli (file, encoding) {
@@ -71,34 +75,33 @@ async function readFileCli (file, encoding) {
71
75
  export { readFileCli as readFile }
72
76
 
73
77
  export async function spawnIOTmp (cmd, input, args) {
74
- const inFile = getTmpFile(input, '.wasm');
75
- let outFile = getTmpFile(inFile, '.wasm');
78
+ const tmpDir = await getTmpDir();
79
+ try {
80
+ const inFile = resolve(tmpDir, 'in.wasm');
81
+ let outFile = resolve(tmpDir, 'out.wasm');
76
82
 
77
- await writeFile(inFile, input);
83
+ await writeFile(inFile, input);
78
84
 
79
- const cp = spawn(argv0, [cmd, inFile, ...args, outFile], { stdio: 'pipe' });
85
+ const cp = spawn(argv0, [cmd, inFile, ...args, outFile], { stdio: 'pipe' });
80
86
 
81
- let stderr = '';
82
- const p = new Promise((resolve, reject) => {
83
- cp.stderr.on('data', data => stderr += data.toString());
84
- cp.on('error', e => {
85
- reject(e);
86
- });
87
- cp.on('exit', code => {
88
- if (code === 0)
89
- resolve();
90
- else
91
- reject(stderr);
87
+ let stderr = '';
88
+ const p = new Promise((resolve, reject) => {
89
+ cp.stderr.on('data', data => stderr += data.toString());
90
+ cp.on('error', e => {
91
+ reject(e);
92
+ });
93
+ cp.on('exit', code => {
94
+ if (code === 0)
95
+ resolve();
96
+ else
97
+ reject(stderr);
98
+ });
92
99
  });
93
- });
94
100
 
95
- try {
96
101
  await p;
97
102
  var output = await readFile(outFile);
98
- await Promise.all([unlink(inFile), unlink(outFile)]);
99
103
  return output;
100
- } catch (e) {
101
- await unlink(inFile);
102
- throw e;
104
+ } finally {
105
+ await rm(tmpDir, { recursive: true });
103
106
  }
104
107
  }
package/src/jco.js CHANGED
@@ -11,7 +11,7 @@ program
11
11
  .name('jco')
12
12
  .description(c`{bold jco - WebAssembly JS Component Tools}\n JS Component Transpilation Bindgen & Wasm Tools for JS`)
13
13
  .usage('<command> [options]')
14
- .version('0.12.0');
14
+ .version('0.12.2');
15
15
 
16
16
  function myParseInt(value) {
17
17
  return parseInt(value, 10);
@@ -24,6 +24,7 @@ program.command('componentize')
24
24
  .requiredOption('-w, --wit <path>', 'WIT path to build with')
25
25
  .option('-n, --world-name <name>', 'WIT world to build')
26
26
  .option('--enable-stdout', 'Allow console.log to output to stdout')
27
+ .option('--preview2-adapter <adapter>', 'provide a custom preview2 adapter path')
27
28
  .requiredOption('-o, --out <out>', 'output component file')
28
29
  .action(asyncAction(componentize));
29
30