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

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 (177) hide show
  1. package/cli.mjs +0 -0
  2. package/dist/api/artifacts.js +32 -8
  3. package/dist/api/artifacts.js.map +1 -0
  4. package/dist/api/build.d.ts +1 -1
  5. package/dist/api/build.js +231 -30
  6. package/dist/api/build.js.map +1 -0
  7. package/dist/api/create-npm-dirs.js +46 -8
  8. package/dist/api/create-npm-dirs.js.map +1 -0
  9. package/dist/api/new.js +47 -20
  10. package/dist/api/new.js.map +1 -0
  11. package/dist/api/pre-publish.js +10 -7
  12. package/dist/api/pre-publish.js.map +1 -0
  13. package/dist/api/rename.js +10 -1
  14. package/dist/api/rename.js.map +1 -0
  15. package/dist/api/templates/.gitignore.d.ts +1 -1
  16. package/dist/api/templates/.gitignore.js +2 -0
  17. package/dist/api/templates/.gitignore.js.map +1 -0
  18. package/dist/api/templates/.npmignore.js +1 -0
  19. package/dist/api/templates/.npmignore.js.map +1 -0
  20. package/dist/api/templates/build.rs.js +1 -0
  21. package/dist/api/templates/build.rs.js.map +1 -0
  22. package/dist/api/templates/cargo.toml.js +1 -0
  23. package/dist/api/templates/cargo.toml.js.map +1 -0
  24. package/dist/api/templates/ci-template.d.ts +2 -1
  25. package/dist/api/templates/ci-template.js +150 -152
  26. package/dist/api/templates/ci-template.js.map +1 -0
  27. package/dist/api/templates/ci.yml.d.ts +2 -1
  28. package/dist/api/templates/ci.yml.js +19 -4
  29. package/dist/api/templates/ci.yml.js.map +1 -0
  30. package/dist/api/templates/index.js +1 -0
  31. package/dist/api/templates/index.js.map +1 -0
  32. package/dist/api/templates/js-binding.d.ts +1 -1
  33. package/dist/api/templates/js-binding.js +143 -30
  34. package/dist/api/templates/js-binding.js.map +1 -0
  35. package/dist/api/templates/lib.rs.js +2 -4
  36. package/dist/api/templates/lib.rs.js.map +1 -0
  37. package/dist/api/templates/load-wasi-template.d.ts +2 -0
  38. package/dist/api/templates/load-wasi-template.js +143 -0
  39. package/dist/api/templates/load-wasi-template.js.map +1 -0
  40. package/dist/api/templates/package.json.d.ts +9 -2
  41. package/dist/api/templates/package.json.js +53 -28
  42. package/dist/api/templates/package.json.js.map +1 -0
  43. package/dist/api/templates/wasi-worker-template.d.ts +2 -0
  44. package/dist/api/templates/wasi-worker-template.js +93 -0
  45. package/dist/api/templates/wasi-worker-template.js.map +1 -0
  46. package/dist/api/universalize.js +6 -5
  47. package/dist/api/universalize.js.map +1 -0
  48. package/dist/api/version.js +3 -2
  49. package/dist/api/version.js.map +1 -0
  50. package/dist/cli.js +1 -0
  51. package/dist/cli.js.map +1 -0
  52. package/dist/commands/artifacts.js +4 -4
  53. package/dist/commands/artifacts.js.map +1 -0
  54. package/dist/commands/build.js +2 -1
  55. package/dist/commands/build.js.map +1 -0
  56. package/dist/commands/create-npm-dirs.js +1 -0
  57. package/dist/commands/create-npm-dirs.js.map +1 -0
  58. package/dist/commands/help.js +2 -2
  59. package/dist/commands/help.js.map +1 -0
  60. package/dist/commands/new.js +15 -7
  61. package/dist/commands/new.js.map +1 -0
  62. package/dist/commands/pre-publish.js +1 -0
  63. package/dist/commands/pre-publish.js.map +1 -0
  64. package/dist/commands/rename.js +1 -0
  65. package/dist/commands/rename.js.map +1 -0
  66. package/dist/commands/universalize.js +1 -0
  67. package/dist/commands/universalize.js.map +1 -0
  68. package/dist/commands/version.js +1 -0
  69. package/dist/commands/version.js.map +1 -0
  70. package/dist/def/artifacts.d.ts +21 -1
  71. package/dist/def/artifacts.js +12 -4
  72. package/dist/def/artifacts.js.map +1 -0
  73. package/dist/def/build.d.ts +20 -2
  74. package/dist/def/build.js +16 -4
  75. package/dist/def/build.js.map +1 -0
  76. package/dist/def/create-npm-dirs.d.ts +10 -0
  77. package/dist/def/create-npm-dirs.js +6 -2
  78. package/dist/def/create-npm-dirs.js.map +1 -0
  79. package/dist/def/new.d.ts +24 -6
  80. package/dist/def/new.js +13 -3
  81. package/dist/def/new.js.map +1 -0
  82. package/dist/def/pre-publish.d.ts +10 -0
  83. package/dist/def/pre-publish.js +9 -5
  84. package/dist/def/pre-publish.js.map +1 -0
  85. package/dist/def/rename.d.ts +11 -1
  86. package/dist/def/rename.js +7 -3
  87. package/dist/def/rename.js.map +1 -0
  88. package/dist/def/universalize.d.ts +10 -0
  89. package/dist/def/universalize.js +6 -2
  90. package/dist/def/universalize.js.map +1 -0
  91. package/dist/def/version.d.ts +10 -0
  92. package/dist/def/version.js +6 -2
  93. package/dist/def/version.js.map +1 -0
  94. package/dist/index.cjs +6022 -8033
  95. package/dist/index.d.ts +1 -0
  96. package/dist/index.js +2 -0
  97. package/dist/index.js.map +1 -0
  98. package/dist/utils/__tests__/config.spec.d.ts +1 -0
  99. package/dist/utils/__tests__/config.spec.js +63 -0
  100. package/dist/utils/__tests__/config.spec.js.map +1 -0
  101. package/dist/utils/__tests__/target.spec.js +1 -0
  102. package/dist/utils/__tests__/target.spec.js.map +1 -0
  103. package/dist/utils/__tests__/typegen.spec.js +9 -4
  104. package/dist/utils/__tests__/typegen.spec.js.map +1 -0
  105. package/dist/utils/__tests__/version.spec.js +1 -0
  106. package/dist/utils/__tests__/version.spec.js.map +1 -0
  107. package/dist/utils/cargo.js +2 -1
  108. package/dist/utils/cargo.js.map +1 -0
  109. package/dist/utils/ci.js +1 -0
  110. package/dist/utils/ci.js.map +1 -0
  111. package/dist/utils/config.d.ts +25 -5
  112. package/dist/utils/config.js +39 -6
  113. package/dist/utils/config.js.map +1 -0
  114. package/dist/utils/index.js +1 -0
  115. package/dist/utils/index.js.map +1 -0
  116. package/dist/utils/log.js +1 -0
  117. package/dist/utils/log.js.map +1 -0
  118. package/dist/utils/metadata.js +3 -2
  119. package/dist/utils/metadata.js.map +1 -0
  120. package/dist/utils/misc.d.ts +1 -1
  121. package/dist/utils/misc.js +4 -3
  122. package/dist/utils/misc.js.map +1 -0
  123. package/dist/utils/target.d.ts +9 -5
  124. package/dist/utils/target.js +16 -1
  125. package/dist/utils/target.js.map +1 -0
  126. package/dist/utils/typegen.d.ts +4 -1
  127. package/dist/utils/typegen.js +27 -6
  128. package/dist/utils/typegen.js.map +1 -0
  129. package/dist/utils/version.d.ts +2 -1
  130. package/dist/utils/version.js +13 -10
  131. package/dist/utils/version.js.map +1 -0
  132. package/package.json +50 -16
  133. package/src/api/artifacts.ts +85 -10
  134. package/src/api/build.ts +381 -32
  135. package/src/api/create-npm-dirs.ts +56 -8
  136. package/src/api/new.ts +69 -33
  137. package/src/api/pre-publish.ts +21 -12
  138. package/src/api/rename.ts +10 -1
  139. package/src/api/templates/.gitignore.ts +1 -0
  140. package/src/api/templates/ci-template.ts +151 -152
  141. package/src/api/templates/ci.yml.ts +19 -4
  142. package/src/api/templates/js-binding.ts +146 -30
  143. package/src/api/templates/lib.rs.ts +1 -4
  144. package/src/api/templates/load-wasi-template.ts +150 -0
  145. package/src/api/templates/package.json.ts +74 -27
  146. package/src/api/templates/wasi-worker-template.ts +93 -0
  147. package/src/api/universalize.ts +8 -5
  148. package/src/api/version.ts +5 -2
  149. package/src/commands/artifacts.ts +2 -2
  150. package/src/commands/build.ts +1 -1
  151. package/src/commands/new.ts +14 -8
  152. package/src/def/artifacts.ts +22 -3
  153. package/src/def/build.ts +32 -4
  154. package/src/def/create-npm-dirs.ts +9 -0
  155. package/src/def/new.ts +28 -3
  156. package/src/def/pre-publish.ts +12 -3
  157. package/src/def/rename.ts +11 -2
  158. package/src/def/universalize.ts +9 -0
  159. package/src/def/version.ts +9 -0
  160. package/src/index.ts +2 -0
  161. package/src/utils/__tests__/__snapshots__/config.spec.ts.md +97 -0
  162. package/src/utils/__tests__/__snapshots__/config.spec.ts.snap +0 -0
  163. package/src/utils/__tests__/__snapshots__/target.spec.ts.md +7 -0
  164. package/src/utils/__tests__/__snapshots__/target.spec.ts.snap +0 -0
  165. package/src/utils/__tests__/__snapshots__/typegen.spec.ts.md +555 -0
  166. package/src/utils/__tests__/__snapshots__/typegen.spec.ts.snap +0 -0
  167. package/src/utils/__tests__/__snapshots__/version.spec.ts.md +9 -8
  168. package/src/utils/__tests__/__snapshots__/version.spec.ts.snap +0 -0
  169. package/src/utils/__tests__/config.spec.ts +81 -0
  170. package/src/utils/__tests__/typegen.spec.ts +19 -4
  171. package/src/utils/cargo.ts +1 -1
  172. package/src/utils/config.ts +85 -9
  173. package/src/utils/metadata.ts +2 -2
  174. package/src/utils/misc.ts +11 -3
  175. package/src/utils/target.ts +23 -7
  176. package/src/utils/typegen.ts +30 -5
  177. package/src/utils/version.ts +11 -9
@@ -1,10 +1,14 @@
1
- export const YAML = () => `
1
+ export const YAML = (packageManager) => `
2
2
  name: CI
3
3
 
4
4
  env:
5
5
  DEBUG: 'napi:*'
6
6
  MACOSX_DEPLOYMENT_TARGET: '10.13'
7
7
 
8
+ permissions:
9
+ contents: write
10
+ id-token: write
11
+
8
12
  on:
9
13
  push:
10
14
  branches:
@@ -28,97 +32,66 @@ jobs:
28
32
  settings:
29
33
  - host: macos-latest
30
34
  target: 'x86_64-apple-darwin'
31
- build: |
32
- yarn build --platform
33
- strip -x *.node
35
+ build: ${packageManager} build --platform
34
36
  - host: windows-latest
35
- build: yarn build --platform
37
+ build: ${packageManager} build --platform
36
38
  target: 'x86_64-pc-windows-msvc'
37
39
  - host: windows-latest
38
40
  build: |
39
- yarn build --platform --target i686-pc-windows-msvc
40
- yarn test
41
+ ${packageManager} build --platform --target i686-pc-windows-msvc
42
+ ${packageManager} test
41
43
  target: 'i686-pc-windows-msvc'
42
44
  - host: ubuntu-latest
43
45
  target: 'x86_64-unknown-linux-gnu'
44
- docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian
45
- build: >-
46
- set -e &&\n
47
- yarn build --platform --target x86_64-unknown-linux-gnu &&\n
48
- strip *.node
46
+ build: ${packageManager} build --platform --target x86_64-unknown-linux-gnu --use-napi-cross
49
47
  - host: ubuntu-latest
50
48
  target: 'x86_64-unknown-linux-musl'
51
- docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
52
- build: >-
53
- set -e &&
54
- yarn build --platform &&
55
- strip *.node
49
+ build: ${packageManager} build --platform --target x86_64-unknown-linux-musl -x
56
50
  - host: macos-latest
57
51
  target: 'aarch64-apple-darwin'
58
- build: |
59
- yarn build --platform --target aarch64-apple-darwin
60
- strip -x *.node
52
+ build: ${packageManager} build --platform --target aarch64-apple-darwin
61
53
  - host: ubuntu-latest
62
54
  target: 'aarch64-unknown-linux-gnu'
63
- docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64
64
- build: >-
65
- set -e &&\n
66
- yarn build --platform --target aarch64-unknown-linux-gnu &&\n
67
- aarch64-unknown-linux-gnu-strip *.node
55
+ build: ${packageManager} build --platform --target aarch64-unknown-linux-gnu --use-napi-cross
68
56
  - host: ubuntu-latest
69
57
  target: 'armv7-unknown-linux-gnueabihf'
70
- setup: |
71
- sudo apt-get update
72
- sudo apt-get install gcc-arm-linux-gnueabihf -y
73
- build: |
74
- yarn build --platform --target armv7-unknown-linux-gnueabihf --cross-compile
75
- arm-linux-gnueabihf-strip *.node
58
+ build: ${packageManager} build --platform --target armv7-unknown-linux-gnueabihf --use-napi-cross
76
59
  - host: ubuntu-latest
77
60
  target: 'aarch64-linux-android'
78
- build: |
79
- yarn build --platform --target aarch64-linux-android
80
- \${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip *.node
61
+ build: ${packageManager} build --platform --target aarch64-linux-android
81
62
  - host: ubuntu-latest
82
63
  target: 'armv7-linux-androideabi'
83
- build: |
84
- yarn build --platform --target armv7-linux-androideabi
85
- \${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip *.node
64
+ build: ${packageManager} build --platform --target armv7-linux-androideabi
86
65
  - host: ubuntu-latest
87
66
  target: 'aarch64-unknown-linux-musl'
88
- docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
89
- build: >-
90
- set -e &&\n
91
- rustup target add aarch64-unknown-linux-musl &&\n
92
- yarn build --platform --target aarch64-unknown-linux-musl &&\n
93
- /aarch64-linux-musl-cross/bin/aarch64-linux-musl-strip *.node
67
+ build: ${packageManager} build --platform --target aarch64-unknown-linux-musl -x
94
68
  - host: windows-latest
95
69
  target: 'aarch64-pc-windows-msvc'
96
- build: yarn build --platform --target aarch64-pc-windows-msvc
70
+ build: ${packageManager} build --platform --target aarch64-pc-windows-msvc
97
71
  - host: ubuntu-latest
98
72
  target: 'riscv64gc-unknown-linux-gnu'
99
73
  setup: |
100
74
  sudo apt-get update
101
75
  sudo apt-get install gcc-riscv64-linux-gnu -y
102
- build: |
103
- yarn build --platform --target riscv64gc-unknown-linux-gnu
104
- riscv64-linux-gnu-strip *.node
76
+ build: ${packageManager} build --platform --target riscv64gc-unknown-linux-gnu
77
+ - host: ubuntu-latest
78
+ target: 'wasm32-wasi-preview1-threads'
79
+ build: ${packageManager} build --platform --target wasm32-wasi-preview1-threads
105
80
 
106
- name: stable - \${{ matrix.settings.target }} - node@18
81
+ name: stable - \${{ matrix.settings.target }} - node@20
107
82
  runs-on: \${{ matrix.settings.host }}
108
83
 
109
84
  steps:
110
- - uses: actions/checkout@v3
85
+ - uses: actions/checkout@v4
111
86
 
112
87
  - name: Setup node
113
- uses: actions/setup-node@v3
114
- if: \${{ !matrix.settings.docker }}
88
+ uses: actions/setup-node@v4
115
89
  with:
116
- node-version: 18
117
- cache: yarn
90
+ node-version: 20
91
+ cache: ${packageManager}
118
92
 
119
93
  - name: Install
120
94
  uses: dtolnay/rust-toolchain@stable
121
- if: \${{ !matrix.settings.docker }}
122
95
  with:
123
96
  toolchain: stable
124
97
  targets: \${{ matrix.settings.target }}
@@ -130,14 +103,15 @@ jobs:
130
103
  ~/.cargo/registry/index/
131
104
  ~/.cargo/registry/cache/
132
105
  ~/.cargo/git/db/
106
+ ~/.napi-rs
133
107
  .cargo-cache
134
108
  target/
135
109
  key: \${{ matrix.settings.target }}-cargo-\${{ matrix.settings.host }}
136
110
 
137
111
  - uses: goto-bus-stop/setup-zig@v2
138
- if: \${{ matrix.settings.target == 'armv7-unknown-linux-gnueabihf' }}
112
+ if: \${{ contains(matrix.settings.target, 'musl') }}
139
113
  with:
140
- version: 0.10.1
114
+ version: 0.11.0
141
115
 
142
116
  - name: Setup toolchain
143
117
  run: \${{ matrix.settings.setup }}
@@ -150,82 +124,80 @@ jobs:
150
124
  shell: bash
151
125
 
152
126
  - name: 'Install dependencies'
153
- run: yarn install
127
+ run: ${packageManager} install
154
128
 
155
129
  - name: Setup node x86
156
- uses: actions/setup-node@v3
130
+ uses: actions/setup-node@v4
157
131
  if: matrix.settings.target == 'i686-pc-windows-msvc'
158
132
  with:
159
- node-version: 18
160
- cache: yarn
133
+ node-version: 20
161
134
  architecture: x86
162
135
 
163
- - name: Build in docker
164
- uses: addnab/docker-run-action@v3
165
- if: \${{ matrix.settings.docker }}
166
- with:
167
- image: \${{ matrix.settings.docker }}
168
- options: --user 0:0 -v \${{ github.workspace }}/.cargo-cache/git/db:/usr/local/cargo/git/db -v \${{ github.workspace }}/.cargo/registry/cache:/usr/local/cargo/registry/cache -v \${{ github.workspace }}/.cargo/registry/index:/usr/local/cargo/registry/index -v \${{ github.workspace }}:/build -w /build
169
- run: \${{ matrix.settings.build }}
170
-
171
136
  - name: 'Build'
172
137
  run: \${{ matrix.settings.build }}
173
- if: \${{ !matrix.settings.docker }}
174
138
  shell: bash
175
139
 
176
140
  - name: Upload artifact
177
- uses: actions/upload-artifact@v3
141
+ uses: actions/upload-artifact@v4
142
+ if: matrix.settings.target != 'wasm32-wasi-preview1-threads'
178
143
  with:
179
144
  name: bindings-\${{ matrix.settings.target }}
180
145
  path: "*.node"
181
146
  if-no-files-found: error
182
147
 
148
+ - name: Upload artifact
149
+ uses: actions/upload-artifact@v4
150
+ if: matrix.settings.target == 'wasm32-wasi-preview1-threads'
151
+ with:
152
+ name: bindings-\${{ matrix.settings.target }}
153
+ path: "*.wasm"
154
+ if-no-files-found: error
155
+
183
156
  build-freebsd:
184
157
  runs-on: macos-12
185
158
  name: Build FreeBSD
186
159
  steps:
187
- - uses: actions/checkout@v3
160
+ - uses: actions/checkout@v4
188
161
  - name: Build
189
162
  id: build
190
- uses: vmactions/freebsd-vm@v0
163
+ uses: cross-platform-actions/action@v0.21.1
164
+ timeout-minutes: 30
191
165
  env:
192
166
  DEBUG: 'napi:*'
193
- RUSTUP_HOME: /usr/local/rustup
194
- CARGO_HOME: /usr/local/cargo
195
167
  RUSTUP_IO_THREADS: 1
196
168
  with:
197
- envs: 'DEBUG RUSTUP_HOME CARGO_HOME RUSTUP_IO_THREADS'
198
- usesh: true
199
- mem: 3000
200
- prepare: |
201
- pkg install -y -f curl node libnghttp2
202
- curl -qL https://www.npmjs.com/install.sh | sh
203
- npm install --location=global --ignore-scripts yarn
169
+ operating_system: freebsd
170
+ version: '13.2'
171
+ memory: 8G
172
+ cpu_count: 3
173
+ environment_variables: 'DEBUG RUSTUP_IO_THREADS'
174
+ shell: bash
175
+ run: |
176
+ sudo pkg install -y -f curl node libnghttp2 npm
177
+ sudo npm install -g ${packageManager} --ignore-scripts
204
178
  curl https://sh.rustup.rs -sSf --output rustup.sh
205
- sh rustup.sh -y --profile minimal --default-toolchain beta
206
- export PATH="/usr/local/cargo/bin:$PATH"
179
+ sh rustup.sh -y --profile minimal --default-toolchain stable
180
+ source "$HOME/.cargo/env"
207
181
  echo "~~~~ rustc --version ~~~~"
208
182
  rustc --version
209
183
  echo "~~~~ node -v ~~~~"
210
184
  node -v
211
185
  echo "~~~~ yarn --version ~~~~"
212
186
  yarn --version
213
- run: |
214
- export PATH="/usr/local/cargo/bin:$PATH"
215
187
  pwd
216
188
  ls -lah
217
189
  whoami
218
190
  env
219
191
  freebsd-version
220
- yarn install
221
- yarn build
192
+ ${packageManager} install
193
+ ${packageManager} build
222
194
  strip -x *.node
223
195
  yarn test
224
196
  rm -rf node_modules
225
197
  rm -rf target
226
198
  rm -rf .yarn/cache
227
199
  - name: Upload artifact
228
- uses: actions/upload-artifact@v3
200
+ uses: actions/upload-artifact@v4
229
201
  with:
230
202
  name: bindings-freebsd
231
203
  path: "*.node"
@@ -243,23 +215,23 @@ jobs:
243
215
  target: 'x86_64-apple-darwin'
244
216
  - host: windows-latest
245
217
  target: 'x86_64-pc-windows-msvc'
246
- node: ['16', '18']
218
+ node: ['18', '20']
247
219
  runs-on: \${{ matrix.settings.host }}
248
220
 
249
221
  steps:
250
- - uses: actions/checkout@v3
222
+ - uses: actions/checkout@v4
251
223
 
252
224
  - name: Setup node
253
- uses: actions/setup-node@v3
225
+ uses: actions/setup-node@v4
254
226
  with:
255
227
  node-version: \${{ matrix.node }}
256
- cache: 'yarn'
228
+ cache: '${packageManager}'
257
229
 
258
230
  - name: 'Install dependencies'
259
- run: yarn install
231
+ run: ${packageManager} install
260
232
 
261
233
  - name: Download artifacts
262
- uses: actions/download-artifact@v3
234
+ uses: actions/download-artifact@v4
263
235
  with:
264
236
  name: bindings-\${{ matrix.settings.target }}
265
237
  path: .
@@ -269,7 +241,7 @@ jobs:
269
241
  shell: bash
270
242
 
271
243
  - name: Test bindings
272
- run: yarn test
244
+ run: ${packageManager} test
273
245
 
274
246
  test-linux-x64-gnu-binding:
275
247
  name: Test bindings on Linux-x64-gnu - node@\${{ matrix.node }}
@@ -278,23 +250,23 @@ jobs:
278
250
  strategy:
279
251
  fail-fast: false
280
252
  matrix:
281
- node: ['16', '18']
253
+ node: ['18', '20']
282
254
  runs-on: ubuntu-latest
283
255
 
284
256
  steps:
285
- - uses: actions/checkout@v3
257
+ - uses: actions/checkout@v4
286
258
 
287
259
  - name: Setup node
288
- uses: actions/setup-node@v3
260
+ uses: actions/setup-node@v4
289
261
  with:
290
262
  node-version: \${{ matrix.node }}
291
- cache: 'yarn'
263
+ cache: '${packageManager}'
292
264
 
293
265
  - name: 'Install dependencies'
294
- run: yarn install
266
+ run: ${packageManager} install
295
267
 
296
268
  - name: Download artifacts
297
- uses: actions/download-artifact@v3
269
+ uses: actions/download-artifact@v4
298
270
  with:
299
271
  name: bindings-x86_64-unknown-linux-gnu
300
272
  path: .
@@ -313,14 +285,14 @@ jobs:
313
285
  strategy:
314
286
  fail-fast: false
315
287
  matrix:
316
- node: ['16', '18']
288
+ node: ['18', '20']
317
289
  runs-on: ubuntu-latest
318
290
 
319
291
  steps:
320
- - uses: actions/checkout@v3
292
+ - uses: actions/checkout@v4
321
293
 
322
294
  - name: Setup node
323
- uses: actions/setup-node@v3
295
+ uses: actions/setup-node@v4
324
296
  with:
325
297
  node-version: \${{ matrix.node }}
326
298
  cache: 'yarn'
@@ -328,10 +300,10 @@ jobs:
328
300
  - name: 'Install dependencies'
329
301
  run: |
330
302
  yarn config set supportedArchitectures.libc "musl"
331
- yarn install
303
+ ${packageManager} install
332
304
 
333
305
  - name: Download artifacts
334
- uses: actions/download-artifact@v3
306
+ uses: actions/download-artifact@v4
335
307
  with:
336
308
  name: bindings-x86_64-unknown-linux-musl
337
309
  path: .
@@ -350,14 +322,14 @@ jobs:
350
322
  strategy:
351
323
  fail-fast: false
352
324
  matrix:
353
- node: ['16', '18']
325
+ node: ['20']
354
326
  runs-on: ubuntu-latest
355
327
 
356
328
  steps:
357
- - uses: actions/checkout@v3
329
+ - uses: actions/checkout@v4
358
330
 
359
331
  - name: Download artifacts
360
- uses: actions/download-artifact@v3
332
+ uses: actions/download-artifact@v4
361
333
  with:
362
334
  name: bindings-aarch64-unknown-linux-gnu
363
335
  path: .
@@ -370,10 +342,10 @@ jobs:
370
342
  run: |
371
343
  yarn config set supportedArchitectures.cpu "arm64"
372
344
  yarn config set supportedArchitectures.libc "glibc"
373
- yarn install
345
+ ${packageManager} install
374
346
 
375
347
  - name: Set up QEMU
376
- uses: docker/setup-qemu-action@v2
348
+ uses: docker/setup-qemu-action@v3
377
349
  with:
378
350
  platforms: arm64
379
351
  - run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
@@ -383,23 +355,24 @@ jobs:
383
355
  with:
384
356
  image: node:\${{ matrix.node }}-slim
385
357
  options: --platform linux/arm64 -v \${{ github.workspace }}:/build -w /build
386
- run: |
387
- set -e
388
- yarn test
389
- ls -la
358
+ run: yarn test
390
359
 
391
360
  test-linux-aarch64-musl-binding:
392
361
  name: Test bindings on aarch64-unknown-linux-musl - node@\${{ matrix.node }}
393
362
  needs:
394
363
  - build
364
+ strategy:
365
+ fail-fast: false
366
+ matrix:
367
+ node: ['18', '20']
395
368
 
396
369
  runs-on: ubuntu-latest
397
370
 
398
371
  steps:
399
- - uses: actions/checkout@v3
372
+ - uses: actions/checkout@v4
400
373
 
401
374
  - name: Download artifacts
402
- uses: actions/download-artifact@v3
375
+ uses: actions/download-artifact@v4
403
376
  with:
404
377
  name: bindings-aarch64-unknown-linux-musl
405
378
  path: .
@@ -412,10 +385,10 @@ jobs:
412
385
  run: |
413
386
  yarn config set supportedArchitectures.cpu "arm64"
414
387
  yarn config set supportedArchitectures.libc "musl"
415
- yarn install
388
+ ${packageManager} install
416
389
 
417
390
  - name: Set up QEMU
418
- uses: docker/setup-qemu-action@v2
391
+ uses: docker/setup-qemu-action@v3
419
392
  with:
420
393
  platforms: arm64
421
394
  - run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
@@ -423,11 +396,9 @@ jobs:
423
396
  - name: Setup and run tests
424
397
  uses: addnab/docker-run-action@v3
425
398
  with:
426
- image: node:lts-alpine
399
+ image: node:\${{ matrix.node }}-alpine
427
400
  options: --platform linux/arm64 -v \${{ github.workspace }}:/build -w /build
428
- run: |
429
- set -e
430
- yarn test
401
+ run: yarn test
431
402
 
432
403
  test-linux-arm-gnueabihf-binding:
433
404
  name: Test bindings on armv7-unknown-linux-gnueabihf - node@\${{ matrix.node }}
@@ -436,14 +407,14 @@ jobs:
436
407
  strategy:
437
408
  fail-fast: false
438
409
  matrix:
439
- node: ['16', '18']
410
+ node: ['18', '20']
440
411
  runs-on: ubuntu-latest
441
412
 
442
413
  steps:
443
- - uses: actions/checkout@v3
414
+ - uses: actions/checkout@v4
444
415
 
445
416
  - name: Download artifacts
446
- uses: actions/download-artifact@v3
417
+ uses: actions/download-artifact@v4
447
418
  with:
448
419
  name: bindings-armv7-unknown-linux-gnueabihf
449
420
  path: .
@@ -455,10 +426,10 @@ jobs:
455
426
  - name: Install dependencies
456
427
  run: |
457
428
  yarn config set supportedArchitectures.cpu "arm"
458
- yarn install
429
+ ${packageManager} install
459
430
 
460
431
  - name: Set up QEMU
461
- uses: docker/setup-qemu-action@v2
432
+ uses: docker/setup-qemu-action@v3
462
433
  with:
463
434
  platforms: arm
464
435
  - run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
@@ -468,10 +439,7 @@ jobs:
468
439
  with:
469
440
  image: node:\${{ matrix.node }}-bullseye-slim
470
441
  options: --platform linux/arm/v7 -v \${{ github.workspace }}:/build -w /build
471
- run: |
472
- set -e
473
- yarn test
474
- ls -la
442
+ run: ${packageManager} test
475
443
 
476
444
  universal-macOS:
477
445
  name: Build universal macOS binary
@@ -480,38 +448,67 @@ jobs:
480
448
  runs-on: macos-latest
481
449
 
482
450
  steps:
483
- - uses: actions/checkout@v3
451
+ - uses: actions/checkout@v4
484
452
 
485
453
  - name: Setup node
486
- uses: actions/setup-node@v3
454
+ uses: actions/setup-node@v4
487
455
  with:
488
- node-version: 18
489
- cache: yarn
456
+ node-version: 20
457
+ cache: ${packageManager}
490
458
 
491
459
  - name: 'Install dependencies'
492
- run: yarn install
460
+ run: ${packageManager} install
493
461
 
494
462
  - name: Download macOS x64 artifact
495
- uses: actions/download-artifact@v3
463
+ uses: actions/download-artifact@v4
496
464
  with:
497
465
  name: bindings-x86_64-apple-darwin
498
466
  path: .
499
467
  - name: Download macOS arm64 artifact
500
- uses: actions/download-artifact@v3
468
+ uses: actions/download-artifact@v4
501
469
  with:
502
470
  name: bindings-aarch64-apple-darwin
503
471
  path: .
504
472
 
505
473
  - name: Combine binaries
506
- run: yarn napi universalize
474
+ run: ${packageManager} napi universalize
507
475
 
508
476
  - name: Upload artifact
509
- uses: actions/upload-artifact@v3
477
+ uses: actions/upload-artifact@v4
510
478
  with:
511
479
  name: bindings-universal-apple-darwin
512
480
  path: "*.node"
513
481
  if-no-files-found: error
514
482
 
483
+ test-wasi-nodejs:
484
+ name: Test bindings on wasi - node@\${{ matrix.node }}
485
+ needs:
486
+ - build
487
+ strategy:
488
+ fail-fast: false
489
+ matrix:
490
+ node: ['18', '20']
491
+ runs-on: ubuntu-latest
492
+ steps:
493
+ - uses: actions/checkout@v4
494
+ - name: Download artifacts
495
+ uses: actions/download-artifact@v4
496
+ with:
497
+ name: bindings-wasm32-wasi-preview1-threads
498
+ path: .
499
+ - name: List packages
500
+ run: ls -R .
501
+ - uses: actions/setup-node@v4
502
+ with:
503
+ node-version: \${{ matrix.node }}
504
+ cache: ${packageManager}
505
+ - name: 'Install dependencies'
506
+ run: ${packageManager} install
507
+ - name: Test
508
+ run: ${packageManager} test
509
+ env:
510
+ NAPI_RS_FORCE_WASI: true
511
+
515
512
  publish:
516
513
  name: Publish
517
514
  runs-on: ubuntu-latest
@@ -522,22 +519,24 @@ jobs:
522
519
  - test-linux-arm-gnueabihf-binding
523
520
  - test-macOS-windows-binding
524
521
  - test-linux-aarch64-musl-binding
522
+ - test-wasi-nodejs
525
523
  - build-freebsd
526
524
 
527
525
  steps:
528
- - uses: actions/checkout@v3
526
+ - uses: actions/checkout@v4
529
527
 
530
528
  - name: Setup node
531
- uses: actions/setup-node@v3
529
+ uses: actions/setup-node@v4
532
530
  with:
533
- node-version: 18
534
- cache: 'yarn'
531
+ node-version: 20
532
+ cache: '${packageManager}'
533
+ registry-url: 'https://registry.npmjs.org'
535
534
 
536
535
  - name: 'Install dependencies'
537
- run: yarn install
536
+ run: ${packageManager} install
538
537
 
539
538
  - name: Download all artifacts
540
- uses: actions/download-artifact@v3
539
+ uses: actions/download-artifact@v4
541
540
  with:
542
541
  path: artifacts
543
542
 
@@ -552,16 +551,15 @@ jobs:
552
551
  run: |
553
552
  if git log -1 --pretty=%B | grep "^[0-9]\\+\\.[0-9]\\+\\.[0-9]\\+$";
554
553
  then
555
- echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc
556
- npm publish --access public
554
+ npm publish --access public --provenance
557
555
  elif git log -1 --pretty=%B | grep "^[0-9]\\+\\.[0-9]\\+\\.[0-9]\\+";
558
556
  then
559
- echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc
560
- npm publish --tag next --access public
557
+ npm publish --tag next --access public --provenance
561
558
  else
562
559
  echo "Not a release, skipping publish"
563
560
  fi
564
561
  env:
565
562
  GITHUB_TOKEN: \${{ secrets.GITHUB_TOKEN }}
566
- NPM_TOKEN: \${{ secrets.NPM_TOKEN }}
563
+ NODE_AUTH_TOKEN: \${{ secrets.NPM_TOKEN }}
567
564
  `;
565
+ //# sourceMappingURL=ci-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ci-template.js","sourceRoot":"","sources":["../../../src/api/templates/ci-template.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,cAAuC,EAAE,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAkC5C,cAAc;;qBAEd,cAAc;;;;gBAInB,cAAc;gBACd,cAAc;;;;qBAIT,cAAc;;;qBAGd,cAAc;;;qBAGd,cAAc;;;qBAGd,cAAc;;;qBAGd,cAAc;;;qBAGd,cAAc;;;qBAGd,cAAc;;;qBAGd,cAAc;;;qBAGd,cAAc;;;;;;qBAMd,cAAc;;;qBAGd,cAAc;;;;;;;;;;;;mBAYhB,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAoClB,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAkDK,cAAc;;;;;;;;;;;;;;;cAelC,cAAc;cACd,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAmCR,cAAc;;;eAGnB,cAAc;;;;;;;;;;;;;eAad,cAAc;;;;;;;;;;;;;;;;;;;oBAmBT,cAAc;;;eAGnB,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAqCjB,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YA0Cd,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YA2Cd,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAyCd,cAAc;;;;;;;;;;;;;iBAaT,cAAc;;;;;;;;;;;;;;;mBAeZ,cAAc;;;eAGlB,cAAc;;;;;;;;;;;;;;eAcd,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBA8BV,cAAc;;eAElB,cAAc;;eAEd,cAAc;;;;;;;;;;;;;;;;;;;;;;;;oBAwBT,cAAc;;;;eAInB,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4B5B,CAAA"}
@@ -1 +1,2 @@
1
- export declare const createGithubActionsCIYml: (binaryName: string, targets: string[]) => string;
1
+ import { type SupportedPackageManager } from '../../utils/index.js';
2
+ export declare const createGithubActionsCIYml: (targets: string[], packageManager: SupportedPackageManager) => string;