@napi-rs/cli 3.0.0-alpha.44 → 3.0.0-alpha.46

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.
Files changed (40) hide show
  1. package/dist/api/new.js +11 -0
  2. package/dist/api/new.js.map +1 -1
  3. package/dist/api/templates/ci-template.d.ts +2 -1
  4. package/dist/api/templates/ci-template.js +22 -5
  5. package/dist/api/templates/ci-template.js.map +1 -1
  6. package/dist/api/templates/ci.yml.d.ts +2 -1
  7. package/dist/api/templates/ci.yml.js +5 -3
  8. package/dist/api/templates/ci.yml.js.map +1 -1
  9. package/dist/api/templates/js-binding.js +7 -1
  10. package/dist/api/templates/js-binding.js.map +1 -1
  11. package/dist/api/templates/wasi-worker-template.d.ts +1 -1
  12. package/dist/api/templates/wasi-worker-template.js +13 -3
  13. package/dist/api/templates/wasi-worker-template.js.map +1 -1
  14. package/dist/commands/new.js +3 -3
  15. package/dist/commands/new.js.map +1 -1
  16. package/dist/index.cjs +76 -27
  17. package/dist/utils/index.d.ts +0 -1
  18. package/dist/utils/index.js +0 -1
  19. package/dist/utils/index.js.map +1 -1
  20. package/dist/utils/target.d.ts +1 -1
  21. package/dist/utils/target.js +9 -1
  22. package/dist/utils/target.js.map +1 -1
  23. package/package.json +5 -4
  24. package/src/api/new.ts +15 -0
  25. package/src/api/templates/ci-template.ts +30 -5
  26. package/src/api/templates/ci.yml.ts +7 -3
  27. package/src/api/templates/js-binding.ts +7 -1
  28. package/src/api/templates/wasi-worker-template.ts +13 -3
  29. package/src/commands/new.ts +3 -3
  30. package/src/utils/__tests__/__snapshots__/config.spec.ts.snap +0 -0
  31. package/src/utils/__tests__/__snapshots__/target.spec.ts.md +21 -0
  32. package/src/utils/__tests__/__snapshots__/target.spec.ts.snap +0 -0
  33. package/src/utils/__tests__/__snapshots__/typegen.spec.ts.snap +0 -0
  34. package/src/utils/__tests__/__snapshots__/version.spec.ts.snap +0 -0
  35. package/src/utils/index.ts +0 -1
  36. package/src/utils/target.ts +11 -1
  37. package/dist/utils/ci.d.ts +0 -11
  38. package/dist/utils/ci.js +0 -96
  39. package/dist/utils/ci.js.map +0 -1
  40. package/src/utils/ci.ts +0 -111
package/dist/index.cjs CHANGED
@@ -6453,7 +6453,7 @@ var require_dist_node2 = __commonJS({
6453
6453
  });
6454
6454
  module2.exports = __toCommonJS2(dist_src_exports);
6455
6455
  var import_universal_user_agent = require_dist_node();
6456
- var VERSION = "9.0.4";
6456
+ var VERSION = "9.0.5";
6457
6457
  var userAgent = `octokit-endpoint.js/${VERSION} ${(0, import_universal_user_agent.getUserAgent)()}`;
6458
6458
  var DEFAULTS = {
6459
6459
  method: "GET",
@@ -6986,7 +6986,7 @@ var require_dist_node5 = __commonJS({
6986
6986
  module2.exports = __toCommonJS2(dist_src_exports);
6987
6987
  var import_endpoint = require_dist_node2();
6988
6988
  var import_universal_user_agent = require_dist_node();
6989
- var VERSION = "8.2.0";
6989
+ var VERSION = "8.3.1";
6990
6990
  function isPlainObject2(value) {
6991
6991
  if (typeof value !== "object" || value === null)
6992
6992
  return false;
@@ -7197,7 +7197,7 @@ var require_dist_node6 = __commonJS({
7197
7197
  module2.exports = __toCommonJS2(dist_src_exports);
7198
7198
  var import_request3 = require_dist_node5();
7199
7199
  var import_universal_user_agent = require_dist_node();
7200
- var VERSION = "7.0.2";
7200
+ var VERSION = "7.1.0";
7201
7201
  var import_request2 = require_dist_node5();
7202
7202
  var import_request = require_dist_node5();
7203
7203
  function _buildMessageForResponseErrors(data) {
@@ -7407,7 +7407,7 @@ var require_dist_node8 = __commonJS({
7407
7407
  var import_request = require_dist_node5();
7408
7408
  var import_graphql = require_dist_node6();
7409
7409
  var import_auth_token = require_dist_node7();
7410
- var VERSION = "5.1.0";
7410
+ var VERSION = "5.2.0";
7411
7411
  var noop = () => {
7412
7412
  };
7413
7413
  var consoleWarn = console.warn.bind(console);
@@ -7991,7 +7991,7 @@ var require_dist_node11 = __commonJS({
7991
7991
  restEndpointMethods: () => restEndpointMethods
7992
7992
  });
7993
7993
  module2.exports = __toCommonJS2(dist_src_exports);
7994
- var VERSION = "10.4.0";
7994
+ var VERSION = "10.4.1";
7995
7995
  var Endpoints = {
7996
7996
  actions: {
7997
7997
  addCustomLabelsToSelfHostedRunnerForOrg: [
@@ -10150,7 +10150,7 @@ var require_dist_node12 = __commonJS({
10150
10150
  var import_plugin_request_log = require_dist_node9();
10151
10151
  var import_plugin_paginate_rest = require_dist_node10();
10152
10152
  var import_plugin_rest_endpoint_methods = require_dist_node11();
10153
- var VERSION = "20.0.2";
10153
+ var VERSION = "20.1.0";
10154
10154
  var Octokit2 = import_core.Octokit.plugin(
10155
10155
  import_plugin_request_log.requestLog,
10156
10156
  import_plugin_rest_endpoint_methods.legacyRestEndpointMethods,
@@ -10399,9 +10399,12 @@ var AVAILABLE_TARGETS = [
10399
10399
  "x86_64-unknown-freebsd",
10400
10400
  "i686-pc-windows-msvc",
10401
10401
  "armv7-unknown-linux-gnueabihf",
10402
+ "armv7-unknown-linux-musleabihf",
10402
10403
  "armv7-linux-androideabi",
10403
10404
  "universal-apple-darwin",
10404
10405
  "riscv64gc-unknown-linux-gnu",
10406
+ "powerpc64le-unknown-linux-gnu",
10407
+ "s390x-unknown-linux-gnu",
10405
10408
  "wasm32-wasi-preview1-threads"
10406
10409
  ];
10407
10410
  var DEFAULT_TARGETS = [
@@ -10412,21 +10415,25 @@ var DEFAULT_TARGETS = [
10412
10415
  ];
10413
10416
  var TARGET_LINKER = {
10414
10417
  "aarch64-unknown-linux-musl": "aarch64-linux-musl-gcc",
10415
- "riscv64gc-unknown-linux-gnu": "riscv64-linux-gnu-gcc"
10418
+ "riscv64gc-unknown-linux-gnu": "riscv64-linux-gnu-gcc",
10419
+ "powerpc64le-unknown-linux-gnu": "powerpc64le-linux-gnu-gcc",
10420
+ "s390x-unknown-linux-gnu": "s390x-linux-gnu-gcc"
10416
10421
  };
10417
10422
  var CpuToNodeArch = {
10418
10423
  x86_64: "x64",
10419
10424
  aarch64: "arm64",
10420
10425
  i686: "ia32",
10421
10426
  armv7: "arm",
10422
- riscv64gc: "riscv64"
10427
+ riscv64gc: "riscv64",
10428
+ powerpc64le: "ppc64"
10423
10429
  };
10424
10430
  var NodeArchToCpu = {
10425
10431
  x64: "x86_64",
10426
10432
  arm64: "aarch64",
10427
10433
  ia32: "i686",
10428
10434
  arm: "armv7",
10429
- riscv64: "riscv64gc"
10435
+ riscv64: "riscv64gc",
10436
+ ppc64: "powerpc64le"
10430
10437
  };
10431
10438
  var SysToNodePlatform = {
10432
10439
  linux: "linux",
@@ -10438,7 +10445,7 @@ var UniArchsByPlatform = {
10438
10445
  darwin: ["x64", "arm64"]
10439
10446
  };
10440
10447
  function parseTriple(rawTriple) {
10441
- if (rawTriple === "wasm32-wasi-preview1-threads") {
10448
+ if (rawTriple === "wasm32-wasi-preview1-threads" || rawTriple.startsWith("wasm32-wasip")) {
10442
10449
  return {
10443
10450
  triple: rawTriple,
10444
10451
  platformArchABI: "wasm32-wasi",
@@ -16181,7 +16188,7 @@ var safeLoadAll = renamed("safeLoadAll", "loadAll");
16181
16188
  var safeDump = renamed("safeDump", "dump");
16182
16189
 
16183
16190
  // dist/api/templates/ci-template.js
16184
- var YAML = (packageManager) => `
16191
+ var YAML = (packageManager, wasiTargetName) => `
16185
16192
  name: CI
16186
16193
 
16187
16194
  env:
@@ -16239,6 +16246,9 @@ jobs:
16239
16246
  - host: ubuntu-latest
16240
16247
  target: 'armv7-unknown-linux-gnueabihf'
16241
16248
  build: ${packageManager} build --platform --target armv7-unknown-linux-gnueabihf --use-napi-cross
16249
+ - host: ubuntu-latest
16250
+ target: 'armv7-unknown-linux-musleabihf'
16251
+ build: ${packageManager} build --platform --target armv7-unknown-linux-musleabihf -x
16242
16252
  - host: ubuntu-latest
16243
16253
  target: 'aarch64-linux-android'
16244
16254
  build: ${packageManager} build --platform --target aarch64-linux-android
@@ -16257,9 +16267,23 @@ jobs:
16257
16267
  sudo apt-get update
16258
16268
  sudo apt-get install gcc-riscv64-linux-gnu -y
16259
16269
  build: ${packageManager} build --platform --target riscv64gc-unknown-linux-gnu
16270
+ - host: ubuntu-latest
16271
+ target: 'powerpc64le-unknown-linux-gnu'
16272
+ setup: |
16273
+ sudo apt-get update
16274
+ sudo apt-get install gcc-powerpc64le-linux-gnu -y
16275
+ build: ${packageManager} build --platform --target powerpc64le-unknown-linux-gnu
16276
+ - host: ubuntu-latest
16277
+ target: 's390x-unknown-linux-gnu'
16278
+ setup: |
16279
+ sudo apt-get update
16280
+ sudo apt-get install gcc-s390x-linux-gnu -y
16281
+ build: ${packageManager} build --platform --target s390x-unknown-linux-gnu
16260
16282
  - host: ubuntu-latest
16261
16283
  target: 'wasm32-wasi-preview1-threads'
16262
16284
  build: ${packageManager} build --platform --target wasm32-wasi-preview1-threads
16285
+ target: '${wasiTargetName}'
16286
+ build: ${packageManager} build --platform --target ${wasiTargetName}
16263
16287
 
16264
16288
  name: stable - \${{ matrix.settings.target }} - node@20
16265
16289
  runs-on: \${{ matrix.settings.host }}
@@ -16322,7 +16346,7 @@ jobs:
16322
16346
 
16323
16347
  - name: Upload artifact
16324
16348
  uses: actions/upload-artifact@v4
16325
- if: matrix.settings.target != 'wasm32-wasi-preview1-threads'
16349
+ if: matrix.settings.target != '${wasiTargetName}'
16326
16350
  with:
16327
16351
  name: bindings-\${{ matrix.settings.target }}
16328
16352
  path: "*.node"
@@ -16330,7 +16354,7 @@ jobs:
16330
16354
 
16331
16355
  - name: Upload artifact
16332
16356
  uses: actions/upload-artifact@v4
16333
- if: matrix.settings.target == 'wasm32-wasi-preview1-threads'
16357
+ if: matrix.settings.target == '${wasiTargetName}'
16334
16358
  with:
16335
16359
  name: bindings-\${{ matrix.settings.target }}
16336
16360
  path: "*.wasm"
@@ -16343,7 +16367,7 @@ jobs:
16343
16367
  - uses: actions/checkout@v4
16344
16368
  - name: Build
16345
16369
  id: build
16346
- uses: cross-platform-actions/action@v0.21.1
16370
+ uses: cross-platform-actions/action@v0.23.0
16347
16371
  timeout-minutes: 30
16348
16372
  env:
16349
16373
  DEBUG: 'napi:*'
@@ -16677,7 +16701,7 @@ jobs:
16677
16701
  - name: Download artifacts
16678
16702
  uses: actions/download-artifact@v4
16679
16703
  with:
16680
- name: bindings-wasm32-wasi-preview1-threads
16704
+ name: bindings-${wasiTargetName}
16681
16705
  path: .
16682
16706
  - name: List packages
16683
16707
  run: ls -R .
@@ -16756,7 +16780,7 @@ var TEST_LINUX_AARCH64_MUSL = "test-linux-aarch64-musl-binding";
16756
16780
  var TEST_LINUX_ARM_GNUEABIHF = "test-linux-arm-gnueabihf-binding";
16757
16781
  var TEST_WASI = "test-wasi-nodejs";
16758
16782
  var UNIVERSAL_MACOS = "universal-macOS";
16759
- var createGithubActionsCIYml = (targets, packageManager) => {
16783
+ var createGithubActionsCIYml = (targets, packageManager, wasiTargetName) => {
16760
16784
  const allTargets = new Set(targets.flatMap((t) => {
16761
16785
  const platform2 = parseTriple(t);
16762
16786
  if (platform2.arch === "universal") {
@@ -16765,7 +16789,7 @@ var createGithubActionsCIYml = (targets, packageManager) => {
16765
16789
  }
16766
16790
  return [t];
16767
16791
  }));
16768
- const fullTemplate = load(YAML(packageManager));
16792
+ const fullTemplate = load(YAML(packageManager, wasiTargetName));
16769
16793
  const requiredSteps = [];
16770
16794
  const enableWindowsX86 = allTargets.has("x86_64-pc-windows-msvc");
16771
16795
  const enableMacOSX86 = allTargets.has("x86_64-apple-darwin");
@@ -16776,7 +16800,7 @@ var createGithubActionsCIYml = (targets, packageManager) => {
16776
16800
  const enableLinuxArm7 = allTargets.has("armv7-unknown-linux-gnueabihf");
16777
16801
  const enableFreeBSD = allTargets.has("x86_64-unknown-freebsd");
16778
16802
  const enableMacOSUni = allTargets.has("universal-apple-darwin");
16779
- const enableWasi = allTargets.has("wasm32-wasi-preview1-threads");
16803
+ const enableWasi = allTargets.has("wasm32-wasi-preview1-threads") || allTargets.has("wasm32-wasip1-threads") || allTargets.has("wasm32-wasip2");
16780
16804
  fullTemplate.jobs.build.strategy.matrix.settings = fullTemplate.jobs.build.strategy.matrix.settings.filter(({ target }) => allTargets.has(target));
16781
16805
  if (!fullTemplate.jobs.build.strategy.matrix.settings.length) {
16782
16806
  delete fullTemplate.jobs.build.strategy.matrix;
@@ -17023,13 +17047,19 @@ function requireNative() {
17023
17047
  ${requireTuple("linux-arm64-gnu")}
17024
17048
  }
17025
17049
  } else if (process.arch === 'arm') {
17026
- ${requireTuple("linux-arm-gnueabihf")}
17050
+ if (isMusl()) {
17051
+ ${requireTuple("linux-arm-musleabihf")}
17052
+ } else {
17053
+ ${requireTuple("linux-arm-gnueabihf")}
17054
+ }
17027
17055
  } else if (process.arch === 'riscv64') {
17028
17056
  if (isMusl()) {
17029
17057
  ${requireTuple("linux-riscv64-musl")}
17030
17058
  } else {
17031
17059
  ${requireTuple("linux-riscv64-gnu")}
17032
17060
  }
17061
+ } else if (process.arch === 'ppc64') {
17062
+ ${requireTuple("linux-ppc64-gnu")}
17033
17063
  } else if (process.arch === 's390x') {
17034
17064
  ${requireTuple("linux-s390x-gnu")}
17035
17065
  } else {
@@ -17219,12 +17249,13 @@ ${wasiRegisterFunctions.map((name) => ` __napiInstance.exports['${name}']?.()`)
17219
17249
  // dist/api/templates/wasi-worker-template.js
17220
17250
  var WASI_WORKER_TEMPLATE = `import fs from "node:fs";
17221
17251
  import { createRequire } from "node:module";
17252
+ import { WASI } from "node:wasi";
17222
17253
  import { parentPort, Worker } from "node:worker_threads";
17223
17254
 
17224
- import { instantiateNapiModuleSync, MessageHandler, WASI } from "@napi-rs/wasm-runtime";
17225
-
17226
17255
  const require = createRequire(import.meta.url);
17227
17256
 
17257
+ const { instantiateNapiModuleSync, MessageHandler, getDefaultContext } = require("@napi-rs/wasm-runtime");
17258
+
17228
17259
  if (parentPort) {
17229
17260
  parentPort.on("message", (data) => {
17230
17261
  globalThis.onmessage({ data });
@@ -17245,13 +17276,22 @@ Object.assign(globalThis, {
17245
17276
  },
17246
17277
  });
17247
17278
 
17279
+ const emnapiContext = getDefaultContext()
17280
+
17248
17281
  const handler = new MessageHandler({
17249
17282
  onLoad({ wasmModule, wasmMemory }) {
17250
- const wasi = new WASI({ fs });
17283
+ const wasi = new WASI({
17284
+ version: 'preview1',
17285
+ env: process.env,
17286
+ preopens: {
17287
+ '/': '/',
17288
+ },
17289
+ });
17251
17290
 
17252
17291
  return instantiateNapiModuleSync(wasmModule, {
17253
17292
  childThread: true,
17254
17293
  wasi,
17294
+ context: emnapiContext,
17255
17295
  overwriteImports(importObject) {
17256
17296
  importObject.env = {
17257
17297
  ...importObject.env,
@@ -17961,6 +18001,7 @@ This is the **${target.triple}** binary for \`${packageName}\`
17961
18001
  }
17962
18002
 
17963
18003
  // dist/api/new.js
18004
+ var import_node_child_process5 = require("node:child_process");
17964
18005
  var import_node_path4 = __toESM(require("node:path"), 1);
17965
18006
 
17966
18007
  // dist/def/new.js
@@ -18063,6 +18104,14 @@ function processOptions(options) {
18063
18104
  throw new Error("At least one target must be enabled");
18064
18105
  }
18065
18106
  }
18107
+ if (options.targets.some((target) => target === "wasm32-wasi-preview1-threads")) {
18108
+ const out = (0, import_node_child_process5.execSync)(`rustup target list`, {
18109
+ encoding: "utf8"
18110
+ });
18111
+ if (out.includes("wasm32-wasip1-threads")) {
18112
+ options.targets.map((target) => target === "wasm32-wasi-preview1-threads" ? "wasm32-wasip1-threads" : target);
18113
+ }
18114
+ }
18066
18115
  return applyDefaultNewOptions(options);
18067
18116
  }
18068
18117
  async function newProject(userOptions) {
@@ -18207,7 +18256,7 @@ function getBinaryName(name) {
18207
18256
  }
18208
18257
 
18209
18258
  // dist/api/pre-publish.js
18210
- var import_node_child_process5 = require("node:child_process");
18259
+ var import_node_child_process6 = require("node:child_process");
18211
18260
  var import_node_fs4 = require("node:fs");
18212
18261
  var import_node_path6 = require("node:path");
18213
18262
  var import_rest = __toESM(require_dist_node12(), 1);
@@ -18368,7 +18417,7 @@ async function prePublish(userOptions) {
18368
18417
  return { owner: owner2, repo: repo2, pkgInfo: pkgInfo2, octokit: octokit2 };
18369
18418
  }
18370
18419
  function getRepoInfo(packageName2, version2) {
18371
- const headCommit = (0, import_node_child_process5.execSync)("git log -1 --pretty=%B", {
18420
+ const headCommit = (0, import_node_child_process6.execSync)("git log -1 --pretty=%B", {
18372
18421
  encoding: "utf-8"
18373
18422
  }).trim();
18374
18423
  const { GITHUB_REPOSITORY } = process.env;
@@ -18420,7 +18469,7 @@ async function prePublish(userOptions) {
18420
18469
  debug7.warn(`%s doesn't exist`, dstPath);
18421
18470
  continue;
18422
18471
  }
18423
- (0, import_node_child_process5.execSync)(`${npmClient} publish`, {
18472
+ (0, import_node_child_process6.execSync)(`${npmClient} publish`, {
18424
18473
  cwd: pkgDir,
18425
18474
  env: process.env
18426
18475
  });
@@ -18566,7 +18615,7 @@ async function renameProject(userOptions) {
18566
18615
  }
18567
18616
 
18568
18617
  // dist/api/universalize.js
18569
- var import_node_child_process6 = require("node:child_process");
18618
+ var import_node_child_process7 = require("node:child_process");
18570
18619
  var import_node_path8 = require("node:path");
18571
18620
 
18572
18621
  // dist/def/universalize.js
@@ -18610,7 +18659,7 @@ function applyDefaultUniversalizeOptions(options) {
18610
18659
  var debug8 = debugFactory("universalize");
18611
18660
  var universalizers = {
18612
18661
  darwin: (inputs, output) => {
18613
- (0, import_node_child_process6.spawnSync)("lipo", ["-create", "-output", output, ...inputs], {
18662
+ (0, import_node_child_process7.spawnSync)("lipo", ["-create", "-output", output, ...inputs], {
18614
18663
  stdio: "inherit"
18615
18664
  });
18616
18665
  }
@@ -1,4 +1,3 @@
1
- export * from './ci.js';
2
1
  export * from './log.js';
3
2
  export * from './misc.js';
4
3
  export * from './target.js';
@@ -1,4 +1,3 @@
1
- export * from './ci.js';
2
1
  export * from './log.js';
3
2
  export * from './misc.js';
4
3
  export * from './target.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA"}
@@ -3,7 +3,7 @@ export type Platform = NodeJS.Platform | 'wasm' | 'wasi';
3
3
  export declare const UNIVERSAL_TARGETS: {
4
4
  readonly 'universal-apple-darwin': readonly ["aarch64-apple-darwin", "x86_64-apple-darwin"];
5
5
  };
6
- export declare const AVAILABLE_TARGETS: readonly ["aarch64-apple-darwin", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "aarch64-unknown-linux-musl", "aarch64-pc-windows-msvc", "x86_64-apple-darwin", "x86_64-pc-windows-msvc", "x86_64-unknown-linux-gnu", "x86_64-unknown-linux-musl", "x86_64-unknown-freebsd", "i686-pc-windows-msvc", "armv7-unknown-linux-gnueabihf", "armv7-linux-androideabi", "universal-apple-darwin", "riscv64gc-unknown-linux-gnu", "wasm32-wasi-preview1-threads"];
6
+ export declare const AVAILABLE_TARGETS: readonly ["aarch64-apple-darwin", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "aarch64-unknown-linux-musl", "aarch64-pc-windows-msvc", "x86_64-apple-darwin", "x86_64-pc-windows-msvc", "x86_64-unknown-linux-gnu", "x86_64-unknown-linux-musl", "x86_64-unknown-freebsd", "i686-pc-windows-msvc", "armv7-unknown-linux-gnueabihf", "armv7-unknown-linux-musleabihf", "armv7-linux-androideabi", "universal-apple-darwin", "riscv64gc-unknown-linux-gnu", "powerpc64le-unknown-linux-gnu", "s390x-unknown-linux-gnu", "wasm32-wasi-preview1-threads"];
7
7
  export type TargetTriple = (typeof AVAILABLE_TARGETS)[number];
8
8
  export declare const DEFAULT_TARGETS: readonly ["x86_64-apple-darwin", "aarch64-apple-darwin", "x86_64-pc-windows-msvc", "x86_64-unknown-linux-gnu"];
9
9
  export declare const TARGET_LINKER: Record<string, string>;
@@ -15,9 +15,12 @@ export const AVAILABLE_TARGETS = [
15
15
  'x86_64-unknown-freebsd',
16
16
  'i686-pc-windows-msvc',
17
17
  'armv7-unknown-linux-gnueabihf',
18
+ 'armv7-unknown-linux-musleabihf',
18
19
  'armv7-linux-androideabi',
19
20
  'universal-apple-darwin',
20
21
  'riscv64gc-unknown-linux-gnu',
22
+ 'powerpc64le-unknown-linux-gnu',
23
+ 's390x-unknown-linux-gnu',
21
24
  'wasm32-wasi-preview1-threads',
22
25
  ];
23
26
  export const DEFAULT_TARGETS = [
@@ -29,6 +32,8 @@ export const DEFAULT_TARGETS = [
29
32
  export const TARGET_LINKER = {
30
33
  'aarch64-unknown-linux-musl': 'aarch64-linux-musl-gcc',
31
34
  'riscv64gc-unknown-linux-gnu': 'riscv64-linux-gnu-gcc',
35
+ 'powerpc64le-unknown-linux-gnu': 'powerpc64le-linux-gnu-gcc',
36
+ 's390x-unknown-linux-gnu': 's390x-linux-gnu-gcc',
32
37
  };
33
38
  const CpuToNodeArch = {
34
39
  x86_64: 'x64',
@@ -36,6 +41,7 @@ const CpuToNodeArch = {
36
41
  i686: 'ia32',
37
42
  armv7: 'arm',
38
43
  riscv64gc: 'riscv64',
44
+ powerpc64le: 'ppc64',
39
45
  };
40
46
  export const NodeArchToCpu = {
41
47
  x64: 'x86_64',
@@ -43,6 +49,7 @@ export const NodeArchToCpu = {
43
49
  ia32: 'i686',
44
50
  arm: 'armv7',
45
51
  riscv64: 'riscv64gc',
52
+ ppc64: 'powerpc64le',
46
53
  };
47
54
  const SysToNodePlatform = {
48
55
  linux: 'linux',
@@ -64,7 +71,8 @@ export const UniArchsByPlatform = {
64
71
  * - `abi` = The ABI, for example `gnu`, `android`, `eabi`, etc.
65
72
  */
66
73
  export function parseTriple(rawTriple) {
67
- if (rawTriple === 'wasm32-wasi-preview1-threads') {
74
+ if (rawTriple === 'wasm32-wasi-preview1-threads' ||
75
+ rawTriple.startsWith('wasm32-wasip')) {
68
76
  return {
69
77
  triple: rawTriple,
70
78
  platformArchABI: 'wasm32-wasi',
@@ -1 +1 @@
1
- {"version":3,"file":"target.js","sourceRoot":"","sources":["../../src/utils/target.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"target.js","sourceRoot":"","sources":["../../src/utils/target.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@napi-rs/cli",
3
- "version": "3.0.0-alpha.44",
3
+ "version": "3.0.0-alpha.46",
4
4
  "description": "Cli tools for napi-rs",
5
5
  "author": "LongYinan <lynweklm@gmail.com>",
6
6
  "homepage": "https://github.com/napi-rs/napi-rs",
@@ -72,7 +72,7 @@
72
72
  "clipanion": "^3.2.1",
73
73
  "colorette": "^2.0.20",
74
74
  "debug": "^4.3.4",
75
- "emnapi": "1.1.0",
75
+ "emnapi": "1.1.1",
76
76
  "inquirer": "^9.2.13",
77
77
  "js-yaml": "^4.1.0",
78
78
  "lodash-es": "^4.17.21",
@@ -89,13 +89,14 @@
89
89
  "@types/js-yaml": "^4.0.9",
90
90
  "@types/lodash-es": "^4.17.12",
91
91
  "@types/node": "^20.11.13",
92
+ "@types/semver": "^7.5.8",
92
93
  "ava": "^6.1.1",
93
94
  "env-paths": "^3.0.0",
94
95
  "esbuild": "^0.20.0",
95
96
  "prettier": "^3.2.4",
96
97
  "ts-node": "^10.9.2",
97
98
  "tslib": "^2.6.2",
98
- "typescript": "^5.3.3"
99
+ "typescript": "^5.4.4"
99
100
  },
100
101
  "peerDependencies": {
101
102
  "@emnapi/runtime": "^1.1.0",
@@ -127,5 +128,5 @@
127
128
  "**/__tests__/**/*.spec.ts"
128
129
  ]
129
130
  },
130
- "gitHead": "35b9637151a91471976d04937bbaa49a9690130b"
131
+ "gitHead": "f1b8ab5e645e674df33c796ef75aa278cd1b4a31"
131
132
  }
package/src/api/new.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { execSync } from 'node:child_process'
1
2
  import path from 'node:path'
2
3
 
3
4
  import {
@@ -61,6 +62,20 @@ function processOptions(options: RawNewOptions) {
61
62
  throw new Error('At least one target must be enabled')
62
63
  }
63
64
  }
65
+ if (
66
+ options.targets.some((target) => target === 'wasm32-wasi-preview1-threads')
67
+ ) {
68
+ const out = execSync(`rustup target list`, {
69
+ encoding: 'utf8',
70
+ })
71
+ if (out.includes('wasm32-wasip1-threads')) {
72
+ options.targets.map((target) =>
73
+ target === 'wasm32-wasi-preview1-threads'
74
+ ? 'wasm32-wasip1-threads'
75
+ : target,
76
+ )
77
+ }
78
+ }
64
79
 
65
80
  return applyDefaultNewOptions(options) as NewOptions
66
81
  }
@@ -1,6 +1,14 @@
1
1
  import type { SupportedPackageManager } from '../../utils/config.js'
2
2
 
3
- export const YAML = (packageManager: SupportedPackageManager) => `
3
+ export type WasiTargetName =
4
+ | 'wasm32-wasi-preview1-threads'
5
+ | 'wasm32-wasip1-threads'
6
+ | 'wasm32-wasip2'
7
+
8
+ export const YAML = (
9
+ packageManager: SupportedPackageManager,
10
+ wasiTargetName?: WasiTargetName,
11
+ ) => `
4
12
  name: CI
5
13
 
6
14
  env:
@@ -58,6 +66,9 @@ jobs:
58
66
  - host: ubuntu-latest
59
67
  target: 'armv7-unknown-linux-gnueabihf'
60
68
  build: ${packageManager} build --platform --target armv7-unknown-linux-gnueabihf --use-napi-cross
69
+ - host: ubuntu-latest
70
+ target: 'armv7-unknown-linux-musleabihf'
71
+ build: ${packageManager} build --platform --target armv7-unknown-linux-musleabihf -x
61
72
  - host: ubuntu-latest
62
73
  target: 'aarch64-linux-android'
63
74
  build: ${packageManager} build --platform --target aarch64-linux-android
@@ -76,9 +87,23 @@ jobs:
76
87
  sudo apt-get update
77
88
  sudo apt-get install gcc-riscv64-linux-gnu -y
78
89
  build: ${packageManager} build --platform --target riscv64gc-unknown-linux-gnu
90
+ - host: ubuntu-latest
91
+ target: 'powerpc64le-unknown-linux-gnu'
92
+ setup: |
93
+ sudo apt-get update
94
+ sudo apt-get install gcc-powerpc64le-linux-gnu -y
95
+ build: ${packageManager} build --platform --target powerpc64le-unknown-linux-gnu
96
+ - host: ubuntu-latest
97
+ target: 's390x-unknown-linux-gnu'
98
+ setup: |
99
+ sudo apt-get update
100
+ sudo apt-get install gcc-s390x-linux-gnu -y
101
+ build: ${packageManager} build --platform --target s390x-unknown-linux-gnu
79
102
  - host: ubuntu-latest
80
103
  target: 'wasm32-wasi-preview1-threads'
81
104
  build: ${packageManager} build --platform --target wasm32-wasi-preview1-threads
105
+ target: '${wasiTargetName}'
106
+ build: ${packageManager} build --platform --target ${wasiTargetName}
82
107
 
83
108
  name: stable - \${{ matrix.settings.target }} - node@20
84
109
  runs-on: \${{ matrix.settings.host }}
@@ -141,7 +166,7 @@ jobs:
141
166
 
142
167
  - name: Upload artifact
143
168
  uses: actions/upload-artifact@v4
144
- if: matrix.settings.target != 'wasm32-wasi-preview1-threads'
169
+ if: matrix.settings.target != '${wasiTargetName}'
145
170
  with:
146
171
  name: bindings-\${{ matrix.settings.target }}
147
172
  path: "*.node"
@@ -149,7 +174,7 @@ jobs:
149
174
 
150
175
  - name: Upload artifact
151
176
  uses: actions/upload-artifact@v4
152
- if: matrix.settings.target == 'wasm32-wasi-preview1-threads'
177
+ if: matrix.settings.target == '${wasiTargetName}'
153
178
  with:
154
179
  name: bindings-\${{ matrix.settings.target }}
155
180
  path: "*.wasm"
@@ -162,7 +187,7 @@ jobs:
162
187
  - uses: actions/checkout@v4
163
188
  - name: Build
164
189
  id: build
165
- uses: cross-platform-actions/action@v0.21.1
190
+ uses: cross-platform-actions/action@v0.23.0
166
191
  timeout-minutes: 30
167
192
  env:
168
193
  DEBUG: 'napi:*'
@@ -496,7 +521,7 @@ jobs:
496
521
  - name: Download artifacts
497
522
  uses: actions/download-artifact@v4
498
523
  with:
499
- name: bindings-wasm32-wasi-preview1-threads
524
+ name: bindings-${wasiTargetName}
500
525
  path: .
501
526
  - name: List packages
502
527
  run: ls -R .
@@ -7,7 +7,7 @@ import {
7
7
  parseTriple,
8
8
  } from '../../utils/index.js'
9
9
 
10
- import { YAML } from './ci-template.js'
10
+ import { type WasiTargetName, YAML } from './ci-template.js'
11
11
 
12
12
  const BUILD_FREEBSD = 'build-freebsd'
13
13
  const TEST_MACOS_WINDOWS = 'test-macOS-windows-binding'
@@ -22,6 +22,7 @@ const UNIVERSAL_MACOS = 'universal-macOS'
22
22
  export const createGithubActionsCIYml = (
23
23
  targets: string[],
24
24
  packageManager: SupportedPackageManager,
25
+ wasiTargetName?: WasiTargetName,
25
26
  ) => {
26
27
  const allTargets = new Set(
27
28
  targets.flatMap((t) => {
@@ -36,7 +37,7 @@ export const createGithubActionsCIYml = (
36
37
  }),
37
38
  )
38
39
 
39
- const fullTemplate = load(YAML(packageManager)) as any
40
+ const fullTemplate = load(YAML(packageManager, wasiTargetName)) as any
40
41
 
41
42
  const requiredSteps = []
42
43
  const enableWindowsX86 = allTargets.has('x86_64-pc-windows-msvc')
@@ -48,7 +49,10 @@ export const createGithubActionsCIYml = (
48
49
  const enableLinuxArm7 = allTargets.has('armv7-unknown-linux-gnueabihf')
49
50
  const enableFreeBSD = allTargets.has('x86_64-unknown-freebsd')
50
51
  const enableMacOSUni = allTargets.has('universal-apple-darwin')
51
- const enableWasi = allTargets.has('wasm32-wasi-preview1-threads')
52
+ const enableWasi =
53
+ allTargets.has('wasm32-wasi-preview1-threads') ||
54
+ allTargets.has('wasm32-wasip1-threads') ||
55
+ allTargets.has('wasm32-wasip2')
52
56
  fullTemplate.jobs.build.strategy.matrix.settings =
53
57
  fullTemplate.jobs.build.strategy.matrix.settings.filter(
54
58
  ({ target }: { target: string }) => allTargets.has(target),
@@ -125,13 +125,19 @@ function requireNative() {
125
125
  ${requireTuple('linux-arm64-gnu')}
126
126
  }
127
127
  } else if (process.arch === 'arm') {
128
- ${requireTuple('linux-arm-gnueabihf')}
128
+ if (isMusl()) {
129
+ ${requireTuple('linux-arm-musleabihf')}
130
+ } else {
131
+ ${requireTuple('linux-arm-gnueabihf')}
132
+ }
129
133
  } else if (process.arch === 'riscv64') {
130
134
  if (isMusl()) {
131
135
  ${requireTuple('linux-riscv64-musl')}
132
136
  } else {
133
137
  ${requireTuple('linux-riscv64-gnu')}
134
138
  }
139
+ } else if (process.arch === 'ppc64') {
140
+ ${requireTuple('linux-ppc64-gnu')}
135
141
  } else if (process.arch === 's390x') {
136
142
  ${requireTuple('linux-s390x-gnu')}
137
143
  } else {