@napi-rs/cli 3.0.0-alpha.2 → 3.0.0-alpha.4

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 (63) hide show
  1. package/cli.mjs +0 -0
  2. package/dist/api/build.js +8 -2
  3. package/dist/api/templates/ci-template.js +18 -17
  4. package/dist/api/templates/js-binding.js +242 -109
  5. package/dist/api/templates/package.json.js +1 -2
  6. package/dist/cli.js +0 -0
  7. package/dist/commands/artifacts.js +2 -1
  8. package/dist/commands/help.js +2 -1
  9. package/dist/def/artifacts.js +2 -1
  10. package/dist/def/build.d.ts +12 -0
  11. package/dist/def/build.js +10 -1
  12. package/dist/def/create-npm-dirs.js +2 -1
  13. package/dist/def/new.js +2 -1
  14. package/dist/def/pre-publish.js +2 -1
  15. package/dist/def/rename.js +2 -1
  16. package/dist/def/universalize.js +2 -1
  17. package/dist/def/version.js +2 -1
  18. package/dist/index.cjs +284 -127
  19. package/dist/utils/ci.js +9 -0
  20. package/dist/utils/target.d.ts +2 -2
  21. package/dist/utils/target.js +4 -0
  22. package/package.json +5 -5
  23. package/src/api/build.ts +11 -7
  24. package/src/api/templates/ci-template.ts +18 -17
  25. package/src/api/templates/js-binding.ts +231 -104
  26. package/src/api/templates/package.json.ts +1 -2
  27. package/src/def/build.ts +19 -0
  28. package/src/utils/__tests__/__snapshots__/target.spec.ts.md +7 -0
  29. package/src/utils/__tests__/__snapshots__/target.spec.ts.snap +0 -0
  30. package/src/utils/ci.ts +9 -0
  31. package/src/utils/target.ts +5 -0
  32. package/dist/def/commands/artifacts.d.ts +0 -15
  33. package/dist/def/commands/artifacts.js +0 -29
  34. package/dist/def/commands/build.d.ts +0 -53
  35. package/dist/def/commands/build.js +0 -105
  36. package/dist/def/commands/create-npm-dirs.d.ts +0 -15
  37. package/dist/def/commands/create-npm-dirs.js +0 -29
  38. package/dist/def/commands/new.d.ts +0 -27
  39. package/dist/def/commands/new.js +0 -53
  40. package/dist/def/commands/pre-publish.d.ts +0 -23
  41. package/dist/def/commands/pre-publish.js +0 -45
  42. package/dist/def/commands/rename.d.ts +0 -25
  43. package/dist/def/commands/rename.js +0 -49
  44. package/dist/def/commands/universalize.d.ts +0 -13
  45. package/dist/def/commands/universalize.js +0 -25
  46. package/dist/def/commands/version.d.ts +0 -13
  47. package/dist/def/commands/version.js +0 -25
  48. package/dist/def/options/artifacts.d.ts +0 -35
  49. package/dist/def/options/artifacts.js +0 -11
  50. package/dist/def/options/build.d.ts +0 -97
  51. package/dist/def/options/build.js +0 -3
  52. package/dist/def/options/create-npm-dirs.d.ts +0 -35
  53. package/dist/def/options/create-npm-dirs.js +0 -11
  54. package/dist/def/options/new.d.ts +0 -79
  55. package/dist/def/options/new.js +0 -15
  56. package/dist/def/options/pre-publish.d.ts +0 -65
  57. package/dist/def/options/pre-publish.js +0 -13
  58. package/dist/def/options/rename.d.ts +0 -75
  59. package/dist/def/options/rename.js +0 -11
  60. package/dist/def/options/universalize.d.ts +0 -28
  61. package/dist/def/options/universalize.js +0 -10
  62. package/dist/def/options/version.d.ts +0 -28
  63. package/dist/def/options/version.js +0 -10
package/dist/index.cjs CHANGED
@@ -4247,7 +4247,7 @@ var require_dist_node2 = __commonJS({
4247
4247
  parse: parse3
4248
4248
  });
4249
4249
  }
4250
- var VERSION = "7.0.3";
4250
+ var VERSION = "7.0.5";
4251
4251
  var userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`;
4252
4252
  var DEFAULTS = {
4253
4253
  method: "GET",
@@ -9749,9 +9749,9 @@ var require_encoding = __commonJS({
9749
9749
  }
9750
9750
  });
9751
9751
 
9752
- // ../node_modules/node-fetch/lib/index.js
9752
+ // ../node_modules/@octokit/request/node_modules/node-fetch/lib/index.js
9753
9753
  var require_lib4 = __commonJS({
9754
- "../node_modules/node-fetch/lib/index.js"(exports2, module2) {
9754
+ "../node_modules/@octokit/request/node_modules/node-fetch/lib/index.js"(exports2, module2) {
9755
9755
  "use strict";
9756
9756
  Object.defineProperty(exports2, "__esModule", { value: true });
9757
9757
  function _interopDefault(ex) {
@@ -10810,7 +10810,9 @@ var require_lib4 = __commonJS({
10810
10810
  if (signal && signal.aborted) {
10811
10811
  return;
10812
10812
  }
10813
- destroyStream(response.body, err);
10813
+ if (response && response.body) {
10814
+ destroyStream(response.body, err);
10815
+ }
10814
10816
  });
10815
10817
  if (parseInt(process.version.substring(1)) < 14) {
10816
10818
  req.on("socket", function(s) {
@@ -11157,7 +11159,7 @@ var require_dist_node5 = __commonJS({
11157
11159
  var isPlainObject2 = require_is_plain_object();
11158
11160
  var nodeFetch = _interopDefault(require_lib4());
11159
11161
  var requestError = require_dist_node4();
11160
- var VERSION = "6.2.2";
11162
+ var VERSION = "6.2.3";
11161
11163
  function getBufferResponse(response) {
11162
11164
  return response.arrayBuffer();
11163
11165
  }
@@ -11309,7 +11311,7 @@ var require_dist_node6 = __commonJS({
11309
11311
  Object.defineProperty(exports2, "__esModule", { value: true });
11310
11312
  var request = require_dist_node5();
11311
11313
  var universalUserAgent = require_dist_node();
11312
- var VERSION = "5.0.4";
11314
+ var VERSION = "5.0.5";
11313
11315
  function _buildMessageForResponseErrors(data) {
11314
11316
  return `Request failed due to following response errors:
11315
11317
  ` + data.errors.map((e) => ` - ${e.message}`).join("\n");
@@ -11456,7 +11458,7 @@ var require_dist_node8 = __commonJS({
11456
11458
  var request = require_dist_node5();
11457
11459
  var graphql = require_dist_node6();
11458
11460
  var authToken = require_dist_node7();
11459
- var VERSION = "4.1.0";
11461
+ var VERSION = "4.2.0";
11460
11462
  var Octokit2 = class {
11461
11463
  constructor(options = {}) {
11462
11464
  const hook = new beforeAfterHook.Collection();
@@ -13042,7 +13044,8 @@ var AVAILABLE_TARGETS = [
13042
13044
  "i686-pc-windows-msvc",
13043
13045
  "armv7-unknown-linux-gnueabihf",
13044
13046
  "armv7-linux-androideabi",
13045
- "universal-apple-darwin"
13047
+ "universal-apple-darwin",
13048
+ "riscv64gc-unknown-linux-gnu"
13046
13049
  ];
13047
13050
  var DEFAULT_TARGETS = [
13048
13051
  "x86_64-apple-darwin",
@@ -13050,19 +13053,22 @@ var DEFAULT_TARGETS = [
13050
13053
  "x86_64-unknown-linux-gnu"
13051
13054
  ];
13052
13055
  var TARGET_LINKER = {
13053
- "aarch64-unknown-linux-musl": "aarch64-linux-musl-gcc"
13056
+ "aarch64-unknown-linux-musl": "aarch64-linux-musl-gcc",
13057
+ "riscv64gc-unknown-linux-gnu": "riscv64-linux-gnu-gcc"
13054
13058
  };
13055
13059
  var CpuToNodeArch = {
13056
13060
  x86_64: "x64",
13057
13061
  aarch64: "arm64",
13058
13062
  i686: "ia32",
13059
- armv7: "arm"
13063
+ armv7: "arm",
13064
+ riscv64gc: "riscv64"
13060
13065
  };
13061
13066
  var NodeArchToCpu = {
13062
13067
  x64: "x86_64",
13063
13068
  arm64: "aarch64",
13064
13069
  ia32: "i686",
13065
- arm: "armv7"
13070
+ arm: "armv7",
13071
+ riscv64: "riscv64gc"
13066
13072
  };
13067
13073
  var SysToNodePlatform = {
13068
13074
  linux: "linux",
@@ -18807,7 +18813,7 @@ jobs:
18807
18813
  sudo apt-get update
18808
18814
  sudo apt-get install gcc-arm-linux-gnueabihf -y
18809
18815
  build: |
18810
- yarn build --platform --target armv7-unknown-linux-gnueabihf
18816
+ yarn build --platform --target armv7-unknown-linux-gnueabihf --cross-compile
18811
18817
  arm-linux-gnueabihf-strip *.node
18812
18818
  - host: ubuntu-latest
18813
18819
  target: 'aarch64-linux-android'
@@ -18833,6 +18839,14 @@ jobs:
18833
18839
  - host: windows-latest
18834
18840
  target: 'aarch64-pc-windows-msvc'
18835
18841
  build: yarn build --platform --target aarch64-pc-windows-msvc
18842
+ - host: ubuntu-latest
18843
+ target: 'riscv64gc-unknown-linux-gnu'
18844
+ setup: |
18845
+ sudo apt-get update
18846
+ sudo apt-get install gcc-riscv64-linux-gnu -y
18847
+ build: |
18848
+ yarn build --platform --target riscv64gc-unknown-linux-gnu
18849
+ riscv64-linux-gnu-strip *.node
18836
18850
 
18837
18851
  name: stable - \${{ matrix.settings.target }} - node@18
18838
18852
  runs-on: \${{ matrix.settings.host }}
@@ -18845,7 +18859,6 @@ jobs:
18845
18859
  if: \${{ !matrix.settings.docker }}
18846
18860
  with:
18847
18861
  node-version: 18
18848
- check-latest: true
18849
18862
  cache: yarn
18850
18863
 
18851
18864
  - name: Install
@@ -18889,7 +18902,6 @@ jobs:
18889
18902
  if: matrix.settings.target == 'i686-pc-windows-msvc'
18890
18903
  with:
18891
18904
  node-version: 18
18892
- check-latest: true
18893
18905
  cache: yarn
18894
18906
  architecture: x86
18895
18907
 
@@ -18976,7 +18988,7 @@ jobs:
18976
18988
  target: 'x86_64-apple-darwin'
18977
18989
  - host: windows-latest
18978
18990
  target: 'x86_64-pc-windows-msvc'
18979
- node: ['14', '16', '18']
18991
+ node: ['16', '18']
18980
18992
  runs-on: \${{ matrix.settings.host }}
18981
18993
 
18982
18994
  steps:
@@ -18986,7 +18998,6 @@ jobs:
18986
18998
  uses: actions/setup-node@v3
18987
18999
  with:
18988
19000
  node-version: \${{ matrix.node }}
18989
- check-latest: true
18990
19001
  cache: 'yarn'
18991
19002
 
18992
19003
  - name: 'Install dependencies'
@@ -19012,7 +19023,7 @@ jobs:
19012
19023
  strategy:
19013
19024
  fail-fast: false
19014
19025
  matrix:
19015
- node: ['14', '16', '18']
19026
+ node: ['16', '18']
19016
19027
  runs-on: ubuntu-latest
19017
19028
 
19018
19029
  steps:
@@ -19022,7 +19033,6 @@ jobs:
19022
19033
  uses: actions/setup-node@v3
19023
19034
  with:
19024
19035
  node-version: \${{ matrix.node }}
19025
- check-latest: true
19026
19036
  cache: 'yarn'
19027
19037
 
19028
19038
  - name: 'Install dependencies'
@@ -19048,7 +19058,7 @@ jobs:
19048
19058
  strategy:
19049
19059
  fail-fast: false
19050
19060
  matrix:
19051
- node: ['14', '16', '18']
19061
+ node: ['16', '18']
19052
19062
  runs-on: ubuntu-latest
19053
19063
 
19054
19064
  steps:
@@ -19058,7 +19068,6 @@ jobs:
19058
19068
  uses: actions/setup-node@v3
19059
19069
  with:
19060
19070
  node-version: \${{ matrix.node }}
19061
- check-latest: true
19062
19071
  cache: 'yarn'
19063
19072
 
19064
19073
  - name: 'Install dependencies'
@@ -19086,7 +19095,7 @@ jobs:
19086
19095
  strategy:
19087
19096
  fail-fast: false
19088
19097
  matrix:
19089
- node: ['14', '16', '18']
19098
+ node: ['16', '18']
19090
19099
  runs-on: ubuntu-latest
19091
19100
 
19092
19101
  steps:
@@ -19107,7 +19116,7 @@ jobs:
19107
19116
  yarn config set supportedArchitectures.cpu "arm64"
19108
19117
  yarn config set supportedArchitectures.libc "glibc"
19109
19118
  yarn install
19110
-
19119
+
19111
19120
  - name: Set up QEMU
19112
19121
  uses: docker/setup-qemu-action@v2
19113
19122
  with:
@@ -19172,7 +19181,7 @@ jobs:
19172
19181
  strategy:
19173
19182
  fail-fast: false
19174
19183
  matrix:
19175
- node: ['14', '16', '18']
19184
+ node: ['16', '18']
19176
19185
  runs-on: ubuntu-latest
19177
19186
 
19178
19187
  steps:
@@ -19222,7 +19231,6 @@ jobs:
19222
19231
  uses: actions/setup-node@v3
19223
19232
  with:
19224
19233
  node-version: 18
19225
- check-latest: true
19226
19234
  cache: yarn
19227
19235
 
19228
19236
  - name: 'Install dependencies'
@@ -19232,15 +19240,15 @@ jobs:
19232
19240
  uses: actions/download-artifact@v3
19233
19241
  with:
19234
19242
  name: bindings-x86_64-apple-darwin
19235
- path: artifacts
19243
+ path: .
19236
19244
  - name: Download macOS arm64 artifact
19237
19245
  uses: actions/download-artifact@v3
19238
19246
  with:
19239
19247
  name: bindings-aarch64-apple-darwin
19240
- path: artifacts
19248
+ path: .
19241
19249
 
19242
19250
  - name: Combine binaries
19243
- run: yarn universal
19251
+ run: yarn napi universalize
19244
19252
 
19245
19253
  - name: Upload artifact
19246
19254
  uses: actions/upload-artifact@v3
@@ -19268,7 +19276,6 @@ jobs:
19268
19276
  uses: actions/setup-node@v3
19269
19277
  with:
19270
19278
  node-version: 18
19271
- check-latest: true
19272
19279
  cache: 'yarn'
19273
19280
 
19274
19281
  - name: 'Install dependencies'
@@ -19415,12 +19422,11 @@ var createPackageJson = ({ name, binaryName, targets, license, engineRequirement
19415
19422
  ]
19416
19423
  },
19417
19424
  "scripts": {
19418
- "test": "yarn build:debug --platform && node -e \\"assert(require('.').sum(1, 2) === 3)\\"",
19425
+ "test": "node -e \\"assert(require('.').sum(1, 2) === 3)\\"",
19419
19426
  "build": "napi build --release --platform --strip",
19420
19427
  "build:debug": "napi build",
19421
19428
  "prepublishOnly": "napi prepublish -t npm",
19422
19429
  "artifacts": "napi artifacts",
19423
- "universal": "napi universal",
19424
19430
  "version": "napi version"
19425
19431
  },
19426
19432
  "devDependencies": {
@@ -19430,116 +19436,261 @@ var createPackageJson = ({ name, binaryName, targets, license, engineRequirement
19430
19436
  };
19431
19437
 
19432
19438
  // dist/api/templates/js-binding.js
19433
- function loadNapiModule(binaryName, packageName) {
19434
- const { existsSync: existsSync2, readFileSync } = require("fs");
19435
- const { join: join7 } = require("path");
19436
- const { platform: platform2, arch } = process;
19437
- const candidates = [];
19438
- function isMusl() {
19439
- if (!process.report || typeof process.report.getReport !== "function") {
19440
- try {
19441
- const lddPath = require("child_process").execSync("which ldd").toString().trim();
19442
- return readFileSync(lddPath, "utf8").includes("musl");
19443
- } catch (e) {
19444
- return true;
19445
- }
19446
- } else {
19447
- const { glibcVersionRuntime } = process.report.getReport().header;
19448
- return !glibcVersionRuntime;
19439
+ function createJsBinding(localName, pkgName) {
19440
+ return `// prettier-ignore
19441
+ /* tslint:disable */
19442
+ /* eslint-disable */
19443
+
19444
+ /* auto-generated by NAPI-RS */
19445
+
19446
+ const { existsSync, readFileSync } = require('fs')
19447
+ const { join } = require('path')
19448
+
19449
+ const { platform, arch } = process
19450
+
19451
+ let nativeBinding = null
19452
+ let localFileExisted = false
19453
+ let loadError = null
19454
+
19455
+ function isMusl() {
19456
+ // For Node 10
19457
+ if (!process.report || typeof process.report.getReport !== 'function') {
19458
+ try {
19459
+ const lddPath = require('child_process').execSync('which ldd').toString().trim()
19460
+ return readFileSync(lddPath, 'utf8').includes('musl')
19461
+ } catch (e) {
19462
+ return true
19449
19463
  }
19464
+ } else {
19465
+ const { glibcVersionRuntime } = process.report.getReport().header
19466
+ return !glibcVersionRuntime
19450
19467
  }
19451
- switch (platform2) {
19452
- case "android":
19453
- switch (arch) {
19454
- case "arm64":
19455
- candidates.push("android-arm64");
19456
- break;
19457
- case "arm":
19458
- candidates.push("android-arm-eabi");
19459
- break;
19460
- }
19461
- break;
19462
- case "win32":
19463
- switch (arch) {
19464
- case "x64":
19465
- candidates.push("win32-x64-msvc");
19466
- break;
19467
- case "ia32":
19468
- candidates.push("win32-ia32-msvc");
19469
- break;
19470
- case "arm64":
19471
- candidates.push("win32-arm64-msvc");
19472
- break;
19473
- }
19474
- break;
19475
- case "darwin":
19476
- candidates.push("darwin-universal");
19477
- switch (arch) {
19478
- case "x64":
19479
- candidates.push("darwin-x64");
19480
- break;
19481
- case "arm64":
19482
- candidates.push("darwin-arm64");
19483
- break;
19484
- }
19485
- break;
19486
- case "freebsd":
19487
- if (arch === "x64") {
19488
- candidates.push("freebsd-x64");
19489
- }
19490
- break;
19491
- case "linux":
19492
- switch (arch) {
19493
- case "x64":
19494
- if (isMusl()) {
19495
- candidates.push("linux-x64-musl");
19468
+ }
19469
+
19470
+ switch (platform) {
19471
+ case 'android':
19472
+ switch (arch) {
19473
+ case 'arm64':
19474
+ localFileExisted = existsSync(join(__dirname, '${localName}.android-arm64.node'))
19475
+ try {
19476
+ if (localFileExisted) {
19477
+ nativeBinding = require('./${localName}.android-arm64.node')
19496
19478
  } else {
19497
- candidates.push("linux-x64-gnu");
19479
+ nativeBinding = require('${pkgName}-android-arm64')
19498
19480
  }
19499
- break;
19500
- case "arm64":
19501
- if (isMusl()) {
19502
- candidates.push("linux-arm64-musl");
19481
+ } catch (e) {
19482
+ loadError = e
19483
+ }
19484
+ break
19485
+ case 'arm':
19486
+ localFileExisted = existsSync(join(__dirname, '${localName}.android-arm-eabi.node'))
19487
+ try {
19488
+ if (localFileExisted) {
19489
+ nativeBinding = require('./${localName}.android-arm-eabi.node')
19503
19490
  } else {
19504
- candidates.push("linux-arm64-gnu");
19491
+ nativeBinding = require('${pkgName}-android-arm-eabi')
19505
19492
  }
19506
- break;
19507
- case "arm":
19508
- candidates.push("linux-arm-gnueabihf");
19509
- break;
19493
+ } catch (e) {
19494
+ loadError = e
19495
+ }
19496
+ break
19497
+ default:
19498
+ throw new Error(\`Unsupported architecture on Android \${arch}\`)
19499
+ }
19500
+ break
19501
+ case 'win32':
19502
+ switch (arch) {
19503
+ case 'x64':
19504
+ localFileExisted = existsSync(
19505
+ join(__dirname, '${localName}.win32-x64-msvc.node')
19506
+ )
19507
+ try {
19508
+ if (localFileExisted) {
19509
+ nativeBinding = require('./${localName}.win32-x64-msvc.node')
19510
+ } else {
19511
+ nativeBinding = require('${pkgName}-win32-x64-msvc')
19512
+ }
19513
+ } catch (e) {
19514
+ loadError = e
19515
+ }
19516
+ break
19517
+ case 'ia32':
19518
+ localFileExisted = existsSync(
19519
+ join(__dirname, '${localName}.win32-ia32-msvc.node')
19520
+ )
19521
+ try {
19522
+ if (localFileExisted) {
19523
+ nativeBinding = require('./${localName}.win32-ia32-msvc.node')
19524
+ } else {
19525
+ nativeBinding = require('${pkgName}-win32-ia32-msvc')
19526
+ }
19527
+ } catch (e) {
19528
+ loadError = e
19529
+ }
19530
+ break
19531
+ case 'arm64':
19532
+ localFileExisted = existsSync(
19533
+ join(__dirname, '${localName}.win32-arm64-msvc.node')
19534
+ )
19535
+ try {
19536
+ if (localFileExisted) {
19537
+ nativeBinding = require('./${localName}.win32-arm64-msvc.node')
19538
+ } else {
19539
+ nativeBinding = require('${pkgName}-win32-arm64-msvc')
19540
+ }
19541
+ } catch (e) {
19542
+ loadError = e
19543
+ }
19544
+ break
19545
+ default:
19546
+ throw new Error(\`Unsupported architecture on Windows: \${arch}\`)
19547
+ }
19548
+ break
19549
+ case 'darwin':
19550
+ localFileExisted = existsSync(join(__dirname, '${localName}.darwin-universal.node'))
19551
+ try {
19552
+ if (localFileExisted) {
19553
+ nativeBinding = require('./${localName}.darwin-universal.node')
19554
+ } else {
19555
+ nativeBinding = require('${pkgName}-darwin-universal')
19510
19556
  }
19511
- break;
19512
- }
19513
- let nativeBinding;
19514
- let loadError;
19515
- for (const suffix of candidates) {
19516
- const localPath = join7(__dirname, `${binaryName}.${suffix}.node`);
19517
- const pkgPath = `${packageName}-${suffix}`;
19557
+ break
19558
+ } catch {}
19559
+ switch (arch) {
19560
+ case 'x64':
19561
+ localFileExisted = existsSync(join(__dirname, '${localName}.darwin-x64.node'))
19562
+ try {
19563
+ if (localFileExisted) {
19564
+ nativeBinding = require('./${localName}.darwin-x64.node')
19565
+ } else {
19566
+ nativeBinding = require('${pkgName}-darwin-x64')
19567
+ }
19568
+ } catch (e) {
19569
+ loadError = e
19570
+ }
19571
+ break
19572
+ case 'arm64':
19573
+ localFileExisted = existsSync(
19574
+ join(__dirname, '${localName}.darwin-arm64.node')
19575
+ )
19576
+ try {
19577
+ if (localFileExisted) {
19578
+ nativeBinding = require('./${localName}.darwin-arm64.node')
19579
+ } else {
19580
+ nativeBinding = require('${pkgName}-darwin-arm64')
19581
+ }
19582
+ } catch (e) {
19583
+ loadError = e
19584
+ }
19585
+ break
19586
+ default:
19587
+ throw new Error(\`Unsupported architecture on macOS: \${arch}\`)
19588
+ }
19589
+ break
19590
+ case 'freebsd':
19591
+ if (arch !== 'x64') {
19592
+ throw new Error(\`Unsupported architecture on FreeBSD: \${arch}\`)
19593
+ }
19594
+ localFileExisted = existsSync(join(__dirname, '${localName}.freebsd-x64.node'))
19518
19595
  try {
19519
- if (existsSync2(localPath)) {
19520
- nativeBinding = require(localPath);
19596
+ if (localFileExisted) {
19597
+ nativeBinding = require('./${localName}.freebsd-x64.node')
19521
19598
  } else {
19522
- nativeBinding = require(pkgPath);
19599
+ nativeBinding = require('${pkgName}-freebsd-x64')
19523
19600
  }
19524
19601
  } catch (e) {
19525
- loadError = e;
19526
- continue;
19527
- }
19528
- loadError = null;
19529
- break;
19530
- }
19531
- if (!nativeBinding) {
19532
- if (loadError) {
19533
- throw loadError;
19602
+ loadError = e
19603
+ }
19604
+ break
19605
+ case 'linux':
19606
+ switch (arch) {
19607
+ case 'x64':
19608
+ if (isMusl()) {
19609
+ localFileExisted = existsSync(
19610
+ join(__dirname, '${localName}.linux-x64-musl.node')
19611
+ )
19612
+ try {
19613
+ if (localFileExisted) {
19614
+ nativeBinding = require('./${localName}.linux-x64-musl.node')
19615
+ } else {
19616
+ nativeBinding = require('${pkgName}-linux-x64-musl')
19617
+ }
19618
+ } catch (e) {
19619
+ loadError = e
19620
+ }
19621
+ } else {
19622
+ localFileExisted = existsSync(
19623
+ join(__dirname, '${localName}.linux-x64-gnu.node')
19624
+ )
19625
+ try {
19626
+ if (localFileExisted) {
19627
+ nativeBinding = require('./${localName}.linux-x64-gnu.node')
19628
+ } else {
19629
+ nativeBinding = require('${pkgName}-linux-x64-gnu')
19630
+ }
19631
+ } catch (e) {
19632
+ loadError = e
19633
+ }
19634
+ }
19635
+ break
19636
+ case 'arm64':
19637
+ if (isMusl()) {
19638
+ localFileExisted = existsSync(
19639
+ join(__dirname, '${localName}.linux-arm64-musl.node')
19640
+ )
19641
+ try {
19642
+ if (localFileExisted) {
19643
+ nativeBinding = require('./${localName}.linux-arm64-musl.node')
19644
+ } else {
19645
+ nativeBinding = require('${pkgName}-linux-arm64-musl')
19646
+ }
19647
+ } catch (e) {
19648
+ loadError = e
19649
+ }
19650
+ } else {
19651
+ localFileExisted = existsSync(
19652
+ join(__dirname, '${localName}.linux-arm64-gnu.node')
19653
+ )
19654
+ try {
19655
+ if (localFileExisted) {
19656
+ nativeBinding = require('./${localName}.linux-arm64-gnu.node')
19657
+ } else {
19658
+ nativeBinding = require('${pkgName}-linux-arm64-gnu')
19659
+ }
19660
+ } catch (e) {
19661
+ loadError = e
19662
+ }
19663
+ }
19664
+ break
19665
+ case 'arm':
19666
+ localFileExisted = existsSync(
19667
+ join(__dirname, '${localName}.linux-arm-gnueabihf.node')
19668
+ )
19669
+ try {
19670
+ if (localFileExisted) {
19671
+ nativeBinding = require('./${localName}.linux-arm-gnueabihf.node')
19672
+ } else {
19673
+ nativeBinding = require('${pkgName}-linux-arm-gnueabihf')
19674
+ }
19675
+ } catch (e) {
19676
+ loadError = e
19677
+ }
19678
+ break
19679
+ default:
19680
+ throw new Error(\`Unsupported architecture on Linux: \${arch}\`)
19534
19681
  }
19535
- throw new Error(`Unsupported OS: ${platform2}, architecture: ${arch}`);
19682
+ break
19683
+ default:
19684
+ throw new Error(\`Unsupported OS: \${platform}, architecture: \${arch}\`)
19685
+ }
19686
+
19687
+ if (!nativeBinding) {
19688
+ if (loadError) {
19689
+ throw loadError
19536
19690
  }
19537
- return nativeBinding;
19691
+ throw new Error(\`Failed to load native binding\`)
19538
19692
  }
19539
- function createJsBinding(localName, pkgName) {
19540
- return `${loadNapiModule.toString()}
19541
19693
 
19542
- module.exports = loadNapiModule('${localName}', '${pkgName}')
19543
19694
  `;
19544
19695
  }
19545
19696
 
@@ -19610,7 +19761,8 @@ var Builder = class {
19610
19761
  debug3(" %i", `cargo ${this.args.join(" ")}`);
19611
19762
  const controller = new AbortController();
19612
19763
  const buildTask = new Promise((resolve8, reject) => {
19613
- const buildProcess = (0, import_child_process4.spawn)("cargo", this.args, {
19764
+ const command = process.env.CARGO ?? (this.options.useCross ? "cross" : "cargo");
19765
+ const buildProcess = (0, import_child_process4.spawn)(command, this.args, {
19614
19766
  env: {
19615
19767
  ...process.env,
19616
19768
  ...this.envs
@@ -19775,6 +19927,9 @@ var Builder = class {
19775
19927
  if (this.options.targetDir) {
19776
19928
  this.args.push("--target-dir", this.options.targetDir);
19777
19929
  }
19930
+ if (this.options.profile) {
19931
+ this.args.push("--profile", this.options.profile);
19932
+ }
19778
19933
  if (this.options.cargoOptions?.length) {
19779
19934
  this.args.push(...this.options.cargoOptions);
19780
19935
  }
@@ -19809,7 +19964,9 @@ var Builder = class {
19809
19964
  if (!srcName || !destName) {
19810
19965
  return;
19811
19966
  }
19812
- const src = (0, import_path2.join)(this.targetDir, this.target.triple, this.options.release ? "release" : "debug", srcName);
19967
+ const profile = this.options.profile ?? (this.options.release ? "release" : "debug");
19968
+ const src = (0, import_path2.join)(this.targetDir, this.target.triple, profile, srcName);
19969
+ debug3(`Copy artifact from: [${src}]`);
19813
19970
  const dest = (0, import_path2.join)(this.outputDir, destName);
19814
19971
  try {
19815
19972
  if (await fileExists(dest)) {
package/dist/utils/ci.js CHANGED
@@ -83,4 +83,13 @@ export const CIConfig = {
83
83
  ],
84
84
  test: false,
85
85
  },
86
+ 'riscv64gc-unknown-linux-gnu': {
87
+ host: 'ubuntu-latest',
88
+ build_setup: [
89
+ 'sudo apt-get update',
90
+ 'sudo apt-get install g++-riscv64-linux-gnu gcc-riscv64-linux-gnu -y',
91
+ ],
92
+ // No official nodejs docker image for riscv64
93
+ test: false,
94
+ },
86
95
  };
@@ -1,9 +1,9 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
- 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"];
2
+ 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"];
3
3
  export type TargetTriple = (typeof AVAILABLE_TARGETS)[number];
4
4
  export declare const DEFAULT_TARGETS: readonly ["x86_64-apple-darwin", "x86_64-pc-windows-msvc", "x86_64-unknown-linux-gnu"];
5
5
  export declare const TARGET_LINKER: Record<string, string>;
6
- type NodeJSArch = 'arm' | 'arm64' | 'ia32' | 'mips' | 'mipsel' | 'ppc' | 'ppc64' | 's390' | 's390x' | 'x32' | 'x64' | 'universal';
6
+ type NodeJSArch = 'arm' | 'arm64' | 'ia32' | 'mips' | 'mipsel' | 'ppc' | 'ppc64' | 'riscv64' | 's390' | 's390x' | 'x32' | 'x64' | 'universal';
7
7
  export declare const NodeArchToCpu: Record<string, string>;
8
8
  export declare const UniArchsByPlatform: Partial<Record<NodeJS.Platform, NodeJSArch[]>>;
9
9
  export interface Target {