@napi-rs/cli 3.0.0-alpha.7 → 3.0.0-alpha.70

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 (160) hide show
  1. package/cli.mjs +1 -1
  2. package/dist/api/artifacts.js +28 -7
  3. package/dist/api/artifacts.js.map +1 -1
  4. package/dist/api/build.js +243 -47
  5. package/dist/api/build.js.map +1 -1
  6. package/dist/api/create-npm-dirs.js +46 -9
  7. package/dist/api/create-npm-dirs.js.map +1 -1
  8. package/dist/api/new.js +57 -20
  9. package/dist/api/new.js.map +1 -1
  10. package/dist/api/pre-publish.js +9 -7
  11. package/dist/api/pre-publish.js.map +1 -1
  12. package/dist/api/rename.js +9 -1
  13. package/dist/api/rename.js.map +1 -1
  14. package/dist/api/templates/cargo.toml.js +1 -0
  15. package/dist/api/templates/cargo.toml.js.map +1 -1
  16. package/dist/api/templates/ci-template.d.ts +3 -1
  17. package/dist/api/templates/ci-template.js +144 -131
  18. package/dist/api/templates/ci-template.js.map +1 -1
  19. package/dist/api/templates/ci.yml.d.ts +3 -1
  20. package/dist/api/templates/ci.yml.js +21 -5
  21. package/dist/api/templates/ci.yml.js.map +1 -1
  22. package/dist/api/templates/js-binding.d.ts +1 -0
  23. package/dist/api/templates/js-binding.js +129 -221
  24. package/dist/api/templates/js-binding.js.map +1 -1
  25. package/dist/api/templates/lib.rs.js +1 -4
  26. package/dist/api/templates/lib.rs.js.map +1 -1
  27. package/dist/api/templates/load-wasi-template.d.ts +2 -0
  28. package/dist/api/templates/load-wasi-template.js +166 -0
  29. package/dist/api/templates/load-wasi-template.js.map +1 -0
  30. package/dist/api/templates/package.json.d.ts +9 -2
  31. package/dist/api/templates/package.json.js +26 -4
  32. package/dist/api/templates/package.json.js.map +1 -1
  33. package/dist/api/templates/wasi-worker-template.d.ts +2 -0
  34. package/dist/api/templates/wasi-worker-template.js +122 -0
  35. package/dist/api/templates/wasi-worker-template.js.map +1 -0
  36. package/dist/api/universalize.js +5 -5
  37. package/dist/api/universalize.js.map +1 -1
  38. package/dist/api/version.js +2 -2
  39. package/dist/api/version.js.map +1 -1
  40. package/dist/commands/artifacts.js +2 -2
  41. package/dist/commands/artifacts.js.map +1 -1
  42. package/dist/commands/build.js +1 -1
  43. package/dist/commands/build.js.map +1 -1
  44. package/dist/commands/new.js +34 -34
  45. package/dist/commands/new.js.map +1 -1
  46. package/dist/def/artifacts.d.ts +21 -1
  47. package/dist/def/artifacts.js +10 -2
  48. package/dist/def/artifacts.js.map +1 -1
  49. package/dist/def/build.d.ts +155 -4
  50. package/dist/def/build.js +30 -4
  51. package/dist/def/build.js.map +1 -1
  52. package/dist/def/create-npm-dirs.d.ts +10 -0
  53. package/dist/def/create-npm-dirs.js +4 -0
  54. package/dist/def/create-npm-dirs.js.map +1 -1
  55. package/dist/def/new.d.ts +25 -7
  56. package/dist/def/new.js +11 -1
  57. package/dist/def/new.js.map +1 -1
  58. package/dist/def/pre-publish.d.ts +12 -2
  59. package/dist/def/pre-publish.js +7 -3
  60. package/dist/def/pre-publish.js.map +1 -1
  61. package/dist/def/rename.d.ts +16 -6
  62. package/dist/def/rename.js +5 -1
  63. package/dist/def/rename.js.map +1 -1
  64. package/dist/def/universalize.d.ts +10 -0
  65. package/dist/def/universalize.js +4 -0
  66. package/dist/def/universalize.js.map +1 -1
  67. package/dist/def/version.d.ts +10 -0
  68. package/dist/def/version.js +4 -0
  69. package/dist/def/version.js.map +1 -1
  70. package/dist/index.cjs +8007 -14675
  71. package/dist/index.d.ts +1 -0
  72. package/dist/index.js +1 -0
  73. package/dist/index.js.map +1 -1
  74. package/dist/utils/__tests__/config.spec.d.ts +1 -0
  75. package/dist/utils/__tests__/config.spec.js +63 -0
  76. package/dist/utils/__tests__/config.spec.js.map +1 -0
  77. package/dist/utils/__tests__/typegen.spec.js +8 -4
  78. package/dist/utils/__tests__/typegen.spec.js.map +1 -1
  79. package/dist/utils/cargo.js +2 -2
  80. package/dist/utils/cargo.js.map +1 -1
  81. package/dist/utils/config.d.ts +48 -4
  82. package/dist/utils/config.js +37 -5
  83. package/dist/utils/config.js.map +1 -1
  84. package/dist/utils/index.d.ts +0 -1
  85. package/dist/utils/index.js +0 -1
  86. package/dist/utils/index.js.map +1 -1
  87. package/dist/utils/metadata.js +2 -2
  88. package/dist/utils/metadata.js.map +1 -1
  89. package/dist/utils/misc.d.ts +1 -2
  90. package/dist/utils/misc.js +3 -3
  91. package/dist/utils/misc.js.map +1 -1
  92. package/dist/utils/target.d.ts +7 -5
  93. package/dist/utils/target.js +17 -3
  94. package/dist/utils/target.js.map +1 -1
  95. package/dist/utils/typegen.d.ts +1 -1
  96. package/dist/utils/typegen.js +51 -17
  97. package/dist/utils/typegen.js.map +1 -1
  98. package/dist/utils/version.d.ts +2 -1
  99. package/dist/utils/version.js +10 -8
  100. package/dist/utils/version.js.map +1 -1
  101. package/package.json +27 -26
  102. package/src/api/artifacts.ts +81 -9
  103. package/src/api/build.ts +398 -66
  104. package/src/api/create-npm-dirs.ts +57 -9
  105. package/src/api/new.ts +89 -31
  106. package/src/api/pre-publish.ts +13 -7
  107. package/src/api/rename.ts +10 -1
  108. package/src/api/templates/cargo.toml.ts +1 -0
  109. package/src/api/templates/ci-template.ts +154 -131
  110. package/src/api/templates/ci.yml.ts +27 -6
  111. package/src/api/templates/js-binding.ts +135 -219
  112. package/src/api/templates/lib.rs.ts +1 -4
  113. package/src/api/templates/load-wasi-template.ts +180 -0
  114. package/src/api/templates/package.json.ts +47 -5
  115. package/src/api/templates/wasi-worker-template.ts +122 -0
  116. package/src/api/universalize.ts +13 -8
  117. package/src/api/version.ts +5 -2
  118. package/src/commands/artifacts.ts +2 -2
  119. package/src/commands/build.ts +1 -1
  120. package/src/commands/new.ts +46 -45
  121. package/src/def/artifacts.ts +22 -3
  122. package/src/def/build.ts +64 -8
  123. package/src/def/create-npm-dirs.ts +9 -0
  124. package/src/def/new.ts +28 -3
  125. package/src/def/pre-publish.ts +12 -3
  126. package/src/def/rename.ts +11 -2
  127. package/src/def/universalize.ts +9 -0
  128. package/src/def/version.ts +9 -0
  129. package/src/index.ts +2 -0
  130. package/src/utils/__tests__/__fixtures__/napi_type_def +130 -130
  131. package/src/utils/__tests__/__snapshots__/config.spec.ts.md +97 -0
  132. package/src/utils/__tests__/__snapshots__/config.spec.ts.snap +0 -0
  133. package/src/utils/__tests__/__snapshots__/target.spec.ts.md +28 -0
  134. package/src/utils/__tests__/__snapshots__/target.spec.ts.snap +0 -0
  135. package/src/utils/__tests__/__snapshots__/typegen.spec.ts.md +711 -158
  136. package/src/utils/__tests__/__snapshots__/typegen.spec.ts.snap +0 -0
  137. package/src/utils/__tests__/__snapshots__/version.spec.ts.md +8 -7
  138. package/src/utils/__tests__/__snapshots__/version.spec.ts.snap +0 -0
  139. package/src/utils/__tests__/config.spec.ts +81 -0
  140. package/src/utils/__tests__/typegen.spec.ts +18 -3
  141. package/src/utils/cargo.ts +2 -2
  142. package/src/utils/config.ts +112 -10
  143. package/src/utils/index.ts +0 -1
  144. package/src/utils/metadata.ts +2 -2
  145. package/src/utils/misc.ts +11 -3
  146. package/src/utils/target.ts +22 -4
  147. package/src/utils/typegen.ts +81 -36
  148. package/src/utils/version.ts +10 -8
  149. package/dist/api/load-wasi-template.d.ts +0 -1
  150. package/dist/api/load-wasi-template.js +0 -63
  151. package/dist/api/load-wasi-template.js.map +0 -1
  152. package/dist/api/wasi-worker-template.d.ts +0 -1
  153. package/dist/api/wasi-worker-template.js +0 -53
  154. package/dist/api/wasi-worker-template.js.map +0 -1
  155. package/dist/utils/ci.d.ts +0 -11
  156. package/dist/utils/ci.js +0 -96
  157. package/dist/utils/ci.js.map +0 -1
  158. package/src/api/load-wasi-template.ts +0 -65
  159. package/src/api/wasi-worker-template.ts +0 -52
  160. package/src/utils/ci.ts +0 -111
@@ -1 +1 @@
1
- {"version":3,"file":"ci.yml.js","sourceRoot":"","sources":["../../../src/api/templates/ci.yml.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ci.yml.js","sourceRoot":"","sources":["../../../src/api/templates/ci.yml.ts"],"names":[],"mappings":"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"}
@@ -1 +1,2 @@
1
1
  export declare function createCjsBinding(localName: string, pkgName: string, idents: string[]): string;
2
+ export declare function createEsmBinding(localName: string, pkgName: string, idents: string[]): string;
@@ -1,16 +1,47 @@
1
1
  export function createCjsBinding(localName, pkgName, idents) {
2
- return `// prettier-ignore
3
- /* eslint-disable */
4
- /* auto-generated by NAPI-RS */
5
-
6
- const { existsSync, readFileSync } = require('fs')
7
- const { join } = require('path')
2
+ return `${bindingHeader}
3
+ const { createRequire } = require('node:module')
4
+ require = createRequire(__filename)
8
5
 
9
- const { platform, arch } = process
6
+ ${createCommonBinding(localName, pkgName)}
7
+ ${idents
8
+ .map((ident) => `module.exports.${ident} = nativeBinding.${ident}`)
9
+ .join('\n')}
10
+ `;
11
+ }
12
+ export function createEsmBinding(localName, pkgName, idents) {
13
+ return `${bindingHeader}
14
+ import { createRequire } from 'node:module'
15
+ const require = createRequire(import.meta.url)
16
+ const __dirname = new URL('.', import.meta.url).pathname
10
17
 
18
+ ${createCommonBinding(localName, pkgName)}
19
+ const { ${idents.join(', ')} } = nativeBinding
20
+ ${idents.map((ident) => `export { ${ident} }`).join('\n')}
21
+ `;
22
+ }
23
+ const bindingHeader = `// prettier-ignore
24
+ /* eslint-disable */
25
+ // @ts-nocheck
26
+ /* auto-generated by NAPI-RS */
27
+ `;
28
+ function createCommonBinding(localName, pkgName) {
29
+ function requireTuple(tuple) {
30
+ return `try {
31
+ return require('./${localName}.${tuple}.node')
32
+ } catch (e) {
33
+ loadErrors.push(e)
34
+ }
35
+ try {
36
+ return require('${pkgName}-${tuple}')
37
+ } catch (e) {
38
+ loadErrors.push(e)
39
+ }
40
+ `;
41
+ }
42
+ return `const { readFileSync } = require('node:fs')
11
43
  let nativeBinding = null
12
- let localFileExisted = false
13
- let loadError = null
44
+ const loadErrors = []
14
45
 
15
46
  const isMusl = () => {
16
47
  let musl = false
@@ -61,233 +92,110 @@ const isMuslFromChildProcess = () => {
61
92
  }
62
93
  }
63
94
 
64
- switch (platform) {
65
- case 'android':
66
- switch (arch) {
67
- case 'arm64':
68
- localFileExisted = existsSync(join(__dirname, '${localName}.android-arm64.node'))
69
- try {
70
- if (localFileExisted) {
71
- nativeBinding = require('./${localName}.android-arm64.node')
72
- } else {
73
- nativeBinding = require('${pkgName}-android-arm64')
74
- }
75
- } catch (e) {
76
- loadError = e
77
- }
78
- break
79
- case 'arm':
80
- localFileExisted = existsSync(join(__dirname, '${localName}.android-arm-eabi.node'))
81
- try {
82
- if (localFileExisted) {
83
- nativeBinding = require('./${localName}.android-arm-eabi.node')
84
- } else {
85
- nativeBinding = require('${pkgName}-android-arm-eabi')
86
- }
87
- } catch (e) {
88
- loadError = e
89
- }
90
- break
91
- default:
92
- throw new Error(\`Unsupported architecture on Android \${arch}\`)
95
+ function requireNative() {
96
+ if (process.platform === 'android') {
97
+ if (process.arch === 'arm64') {
98
+ ${requireTuple('android-arm64')}
99
+ } else if (process.arch === 'arm') {
100
+ ${requireTuple('android-arm-eabi')}
101
+ } else {
102
+ loadErrors.push(new Error(\`Unsupported architecture on Android \${process.arch}\`))
93
103
  }
94
- break
95
- case 'win32':
96
- switch (arch) {
97
- case 'x64':
98
- localFileExisted = existsSync(
99
- join(__dirname, '${localName}.win32-x64-msvc.node')
100
- )
101
- try {
102
- if (localFileExisted) {
103
- nativeBinding = require('./${localName}.win32-x64-msvc.node')
104
- } else {
105
- nativeBinding = require('${pkgName}-win32-x64-msvc')
106
- }
107
- } catch (e) {
108
- loadError = e
109
- }
110
- break
111
- case 'ia32':
112
- localFileExisted = existsSync(
113
- join(__dirname, '${localName}.win32-ia32-msvc.node')
114
- )
115
- try {
116
- if (localFileExisted) {
117
- nativeBinding = require('./${localName}.win32-ia32-msvc.node')
118
- } else {
119
- nativeBinding = require('${pkgName}-win32-ia32-msvc')
120
- }
121
- } catch (e) {
122
- loadError = e
123
- }
124
- break
125
- case 'arm64':
126
- localFileExisted = existsSync(
127
- join(__dirname, '${localName}.win32-arm64-msvc.node')
128
- )
129
- try {
130
- if (localFileExisted) {
131
- nativeBinding = require('./${localName}.win32-arm64-msvc.node')
132
- } else {
133
- nativeBinding = require('${pkgName}-win32-arm64-msvc')
134
- }
135
- } catch (e) {
136
- loadError = e
137
- }
138
- break
139
- default:
140
- throw new Error(\`Unsupported architecture on Windows: \${arch}\`)
104
+ } else if (process.platform === 'win32') {
105
+ if (process.arch === 'x64') {
106
+ ${requireTuple('win32-x64-msvc')}
107
+ } else if (process.arch === 'ia32') {
108
+ ${requireTuple('win32-ia32-msvc')}
109
+ } else if (process.arch === 'arm64') {
110
+ ${requireTuple('win32-arm64-msvc')}
111
+ } else {
112
+ loadErrors.push(new Error(\`Unsupported architecture on Windows: \${process.arch}\`))
141
113
  }
142
- break
143
- case 'darwin':
144
- localFileExisted = existsSync(join(__dirname, '${localName}.darwin-universal.node'))
145
- try {
146
- if (localFileExisted) {
147
- nativeBinding = require('./${localName}.darwin-universal.node')
114
+ } else if (process.platform === 'darwin') {
115
+ ${requireTuple('darwin-universal')}
116
+ if (process.arch === 'x64') {
117
+ ${requireTuple('darwin-x64')}
118
+ } else if (process.arch === 'arm64') {
119
+ ${requireTuple('darwin-arm64')}
120
+ } else {
121
+ loadErrors.push(new Error(\`Unsupported architecture on macOS: \${process.arch}\`))
122
+ }
123
+ } else if (process.platform === 'freebsd') {
124
+ if (process.arch === 'x64') {
125
+ ${requireTuple('freebsd-x64')}
126
+ } else if (process.arch === 'arm64') {
127
+ ${requireTuple('freebsd-arm64')}
128
+ } else {
129
+ loadErrors.push(new Error(\`Unsupported architecture on FreeBSD: \${process.arch}\`))
130
+ }
131
+ } else if (process.platform === 'linux') {
132
+ if (process.arch === 'x64') {
133
+ if (isMusl()) {
134
+ ${requireTuple('linux-x64-musl')}
148
135
  } else {
149
- nativeBinding = require('${pkgName}-darwin-universal')
136
+ ${requireTuple('linux-x64-gnu')}
150
137
  }
151
- break
152
- } catch {}
153
- switch (arch) {
154
- case 'x64':
155
- localFileExisted = existsSync(join(__dirname, '${localName}.darwin-x64.node'))
156
- try {
157
- if (localFileExisted) {
158
- nativeBinding = require('./${localName}.darwin-x64.node')
159
- } else {
160
- nativeBinding = require('${pkgName}-darwin-x64')
161
- }
162
- } catch (e) {
163
- loadError = e
164
- }
165
- break
166
- case 'arm64':
167
- localFileExisted = existsSync(
168
- join(__dirname, '${localName}.darwin-arm64.node')
169
- )
170
- try {
171
- if (localFileExisted) {
172
- nativeBinding = require('./${localName}.darwin-arm64.node')
173
- } else {
174
- nativeBinding = require('${pkgName}-darwin-arm64')
175
- }
176
- } catch (e) {
177
- loadError = e
178
- }
179
- break
180
- default:
181
- throw new Error(\`Unsupported architecture on macOS: \${arch}\`)
138
+ } else if (process.arch === 'arm64') {
139
+ if (isMusl()) {
140
+ ${requireTuple('linux-arm64-musl')}
141
+ } else {
142
+ ${requireTuple('linux-arm64-gnu')}
143
+ }
144
+ } else if (process.arch === 'arm') {
145
+ if (isMusl()) {
146
+ ${requireTuple('linux-arm-musleabihf')}
147
+ } else {
148
+ ${requireTuple('linux-arm-gnueabihf')}
149
+ }
150
+ } else if (process.arch === 'riscv64') {
151
+ if (isMusl()) {
152
+ ${requireTuple('linux-riscv64-musl')}
153
+ } else {
154
+ ${requireTuple('linux-riscv64-gnu')}
155
+ }
156
+ } else if (process.arch === 'ppc64') {
157
+ ${requireTuple('linux-ppc64-gnu')}
158
+ } else if (process.arch === 's390x') {
159
+ ${requireTuple('linux-s390x-gnu')}
160
+ } else {
161
+ loadErrors.push(new Error(\`Unsupported architecture on Linux: \${process.arch}\`))
182
162
  }
183
- break
184
- case 'freebsd':
185
- if (arch !== 'x64') {
186
- throw new Error(\`Unsupported architecture on FreeBSD: \${arch}\`)
163
+ } else {
164
+ loadErrors.push(new Error(\`Unsupported OS: \${process.platform}, architecture: \${process.arch}\`))
165
+ }
166
+ }
167
+
168
+ nativeBinding = requireNative()
169
+
170
+ if (!nativeBinding || process.env.NAPI_RS_FORCE_WASI) {
171
+ try {
172
+ nativeBinding = require('./${localName}.wasi.cjs')
173
+ } catch (err) {
174
+ if (process.env.NAPI_RS_FORCE_WASI) {
175
+ loadErrors.push(err)
187
176
  }
188
- localFileExisted = existsSync(join(__dirname, '${localName}.freebsd-x64.node'))
177
+ }
178
+ if (!nativeBinding) {
189
179
  try {
190
- if (localFileExisted) {
191
- nativeBinding = require('./${localName}.freebsd-x64.node')
192
- } else {
193
- nativeBinding = require('${pkgName}-freebsd-x64')
180
+ nativeBinding = require('${pkgName}-wasm32-wasi')
181
+ } catch (err) {
182
+ if (process.env.NAPI_RS_FORCE_WASI) {
183
+ loadErrors.push(err)
194
184
  }
195
- } catch (e) {
196
- loadError = e
197
185
  }
198
- break
199
- case 'linux':
200
- switch (arch) {
201
- case 'x64':
202
- if (isMusl()) {
203
- localFileExisted = existsSync(
204
- join(__dirname, '${localName}.linux-x64-musl.node')
205
- )
206
- try {
207
- if (localFileExisted) {
208
- nativeBinding = require('./${localName}.linux-x64-musl.node')
209
- } else {
210
- nativeBinding = require('${pkgName}-linux-x64-musl')
211
- }
212
- } catch (e) {
213
- loadError = e
214
- }
215
- } else {
216
- localFileExisted = existsSync(
217
- join(__dirname, '${localName}.linux-x64-gnu.node')
218
- )
219
- try {
220
- if (localFileExisted) {
221
- nativeBinding = require('./${localName}.linux-x64-gnu.node')
222
- } else {
223
- nativeBinding = require('${pkgName}-linux-x64-gnu')
224
- }
225
- } catch (e) {
226
- loadError = e
227
- }
228
- }
229
- break
230
- case 'arm64':
231
- if (isMusl()) {
232
- localFileExisted = existsSync(
233
- join(__dirname, '${localName}.linux-arm64-musl.node')
234
- )
235
- try {
236
- if (localFileExisted) {
237
- nativeBinding = require('./${localName}.linux-arm64-musl.node')
238
- } else {
239
- nativeBinding = require('${pkgName}-linux-arm64-musl')
240
- }
241
- } catch (e) {
242
- loadError = e
243
- }
244
- } else {
245
- localFileExisted = existsSync(
246
- join(__dirname, '${localName}.linux-arm64-gnu.node')
247
- )
248
- try {
249
- if (localFileExisted) {
250
- nativeBinding = require('./${localName}.linux-arm64-gnu.node')
251
- } else {
252
- nativeBinding = require('${pkgName}-linux-arm64-gnu')
253
- }
254
- } catch (e) {
255
- loadError = e
256
- }
257
- }
258
- break
259
- case 'arm':
260
- localFileExisted = existsSync(
261
- join(__dirname, '${localName}.linux-arm-gnueabihf.node')
262
- )
263
- try {
264
- if (localFileExisted) {
265
- nativeBinding = require('./${localName}.linux-arm-gnueabihf.node')
266
- } else {
267
- nativeBinding = require('${pkgName}-linux-arm-gnueabihf')
268
- }
269
- } catch (e) {
270
- loadError = e
271
- }
272
- break
273
- default:
274
- throw new Error(\`Unsupported architecture on Linux: \${arch}\`)
275
- }
276
- break
277
- default:
278
- throw new Error(\`Unsupported OS: \${platform}, architecture: \${arch}\`)
186
+ }
279
187
  }
280
188
 
281
189
  if (!nativeBinding) {
282
- if (loadError) {
283
- throw loadError
190
+ if (loadErrors.length > 0) {
191
+ // TODO Link to documentation with potential fixes
192
+ // - The package owner could build/publish bindings for this arch
193
+ // - The user may need to bundle the correct files
194
+ // - The user may need to re-install node_modules to get new packages
195
+ throw new Error('Failed to load native binding', { cause: loadErrors })
284
196
  }
285
197
  throw new Error(\`Failed to load native binding\`)
286
198
  }
287
-
288
- ${idents
289
- .map((ident) => `module.exports.${ident} = nativeBinding.${ident}`)
290
- .join('\n')}
291
199
  `;
292
200
  }
293
201
  //# sourceMappingURL=js-binding.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"js-binding.js","sourceRoot":"","sources":["../../../src/api/templates/js-binding.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,gBAAgB,CAC9B,SAAiB,EACjB,OAAe,EACf,MAAgB;IAEhB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yDAkEgD,SAAS;;;yCAGzB,SAAS;;uCAEX,OAAO;;;;;;;yDAOW,SAAS;;;yCAGzB,SAAS;;uCAEX,OAAO;;;;;;;;;;;;;;6BAcjB,SAAS;;;;yCAIG,SAAS;;uCAEX,OAAO;;;;;;;;6BAQjB,SAAS;;;;yCAIG,SAAS;;uCAEX,OAAO;;;;;;;;6BAQjB,SAAS;;;;yCAIG,SAAS;;uCAEX,OAAO;;;;;;;;;;;qDAWO,SAAS;;;qCAGzB,SAAS;;mCAEX,OAAO;;;;;;yDAMe,SAAS;;;yCAGzB,SAAS;;uCAEX,OAAO;;;;;;;;6BAQjB,SAAS;;;;yCAIG,SAAS;;uCAEX,OAAO;;;;;;;;;;;;;;qDAcO,SAAS;;;qCAGzB,SAAS;;mCAEX,OAAO;;;;;;;;;;;+BAWX,SAAS;;;;2CAIG,SAAS;;yCAEX,OAAO;;;;;;;+BAOjB,SAAS;;;;2CAIG,SAAS;;yCAEX,OAAO;;;;;;;;;;+BAUjB,SAAS;;;;2CAIG,SAAS;;yCAEX,OAAO;;;;;;;+BAOjB,SAAS;;;;2CAIG,SAAS;;yCAEX,OAAO;;;;;;;;;6BASnB,SAAS;;;;yCAIG,SAAS;;uCAEX,OAAO;;;;;;;;;;;;;;;;;;;;;EAqB5C,MAAM;SACL,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,kBAAkB,KAAK,oBAAoB,KAAK,EAAE,CAAC;SAClE,IAAI,CAAC,IAAI,CAAC;CACZ,CAAA;AACD,CAAC"}
1
+ {"version":3,"file":"js-binding.js","sourceRoot":"","sources":["../../../src/api/templates/js-binding.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,gBAAgB,CAC9B,SAAiB,EACjB,OAAe,EACf,MAAgB;IAEhB,OAAO,GAAG,aAAa;;;;EAIvB,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC;EACvC,MAAM;SACL,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,kBAAkB,KAAK,oBAAoB,KAAK,EAAE,CAAC;SAClE,IAAI,CAAC,IAAI,CAAC;CACZ,CAAA;AACD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,SAAiB,EACjB,OAAe,EACf,MAAgB;IAEhB,OAAO,GAAG,aAAa;;;;;EAKvB,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC;UAC/B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;EACzB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;CACxD,CAAA;AACD,CAAC;AAED,MAAM,aAAa,GAAG;;;;CAIrB,CAAA;AAED,SAAS,mBAAmB,CAAC,SAAiB,EAAE,OAAe;IAC7D,SAAS,YAAY,CAAC,KAAa;QACjC,OAAO;4BACiB,SAAS,IAAI,KAAK;;;;;0BAKpB,OAAO,IAAI,KAAK;;;;CAIzC,CAAA;IACC,CAAC;IAED,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAwDD,YAAY,CAAC,eAAe,CAAC;;QAE7B,YAAY,CAAC,kBAAkB,CAAC;;;;;;QAMhC,YAAY,CAAC,gBAAgB,CAAC;;QAE9B,YAAY,CAAC,iBAAiB,CAAC;;QAE/B,YAAY,CAAC,kBAAkB,CAAC;;;;;MAKlC,YAAY,CAAC,kBAAkB,CAAC;;QAE9B,YAAY,CAAC,YAAY,CAAC;;QAE1B,YAAY,CAAC,cAAc,CAAC;;;;;;QAM5B,YAAY,CAAC,aAAa,CAAC;;QAE3B,YAAY,CAAC,eAAe,CAAC;;;;;;;UAO3B,YAAY,CAAC,gBAAgB,CAAC;;UAE9B,YAAY,CAAC,eAAe,CAAC;;;;UAI7B,YAAY,CAAC,kBAAkB,CAAC;;UAEhC,YAAY,CAAC,iBAAiB,CAAC;;;;UAI/B,YAAY,CAAC,sBAAsB,CAAC;;UAEpC,YAAY,CAAC,qBAAqB,CAAC;;;;UAInC,YAAY,CAAC,oBAAoB,CAAC;;UAElC,YAAY,CAAC,mBAAmB,CAAC;;;QAGnC,YAAY,CAAC,iBAAiB,CAAC;;QAE/B,YAAY,CAAC,iBAAiB,CAAC;;;;;;;;;;;;;iCAaN,SAAS;;;;;;;;iCAQT,OAAO;;;;;;;;;;;;;;;;;;;CAmBvC,CAAA;AACD,CAAC"}
@@ -1,7 +1,4 @@
1
- export const createLibRs = () => `#![deny(clippy::all)]
2
-
3
- #[macro_use]
4
- extern crate napi_derive;
1
+ export const createLibRs = () => `use napi_derive::napi;
5
2
 
6
3
  #[napi]
7
4
  pub fn sum(a: i32, b: i32) -> i32 {
@@ -1 +1 @@
1
- {"version":3,"file":"lib.rs.js","sourceRoot":"","sources":["../../../src/api/templates/lib.rs.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC;;;;;;;;;CAShC,CAAA"}
1
+ {"version":3,"file":"lib.rs.js","sourceRoot":"","sources":["../../../src/api/templates/lib.rs.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC;;;;;;CAMhC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const createWasiBrowserBinding: (wasiFilename: string, wasiRegisterFunctions: string[], initialMemory?: number, maximumMemory?: number, fs?: boolean) => string;
2
+ export declare const createWasiBinding: (wasmFileName: string, packageName: string, wasiRegisterFunctions: string[], initialMemory?: number, maximumMemory?: number) => string;
@@ -0,0 +1,166 @@
1
+ export const createWasiBrowserBinding = (wasiFilename, wasiRegisterFunctions, initialMemory = 4000, maximumMemory = 65536, fs = false) => {
2
+ const fsImport = fs ? `import { memfs } from '@napi-rs/wasm-runtime/fs'` : '';
3
+ const wasiCreation = fs
4
+ ? `
5
+ export const { fs: __fs, vol: __volume } = memfs()
6
+
7
+ const __wasi = new __WASI({
8
+ version: 'preview1',
9
+ fs: __fs,
10
+ preopens: {
11
+ '/': '/',
12
+ },
13
+ })`
14
+ : `
15
+ const __wasi = new __WASI({
16
+ version: 'preview1',
17
+ })`;
18
+ const workerFsHandler = fs
19
+ ? ` worker.addEventListener('message', __wasmCreateOnMessageForFsProxy(__fs))\n`
20
+ : '';
21
+ return `import {
22
+ instantiateNapiModuleSync as __emnapiInstantiateNapiModuleSync,
23
+ getDefaultContext as __emnapiGetDefaultContext,
24
+ WASI as __WASI,
25
+ createOnMessage as __wasmCreateOnMessageForFsProxy,
26
+ } from '@napi-rs/wasm-runtime'
27
+ ${fsImport}
28
+ import __wasmUrl from './${wasiFilename}.wasm?url'
29
+ ${wasiCreation}
30
+
31
+ const __emnapiContext = __emnapiGetDefaultContext()
32
+
33
+ const __sharedMemory = new WebAssembly.Memory({
34
+ initial: ${initialMemory},
35
+ maximum: ${maximumMemory},
36
+ shared: true,
37
+ })
38
+
39
+ const __wasmFile = await fetch(__wasmUrl).then((res) => res.arrayBuffer())
40
+
41
+ const {
42
+ instance: __napiInstance,
43
+ module: __wasiModule,
44
+ napiModule: __napiModule,
45
+ } = __emnapiInstantiateNapiModuleSync(__wasmFile, {
46
+ context: __emnapiContext,
47
+ asyncWorkPoolSize: 4,
48
+ wasi: __wasi,
49
+ onCreateWorker() {
50
+ const worker = new Worker(new URL('./wasi-worker-browser.mjs', import.meta.url), {
51
+ type: 'module',
52
+ })
53
+ ${workerFsHandler}
54
+ return worker
55
+ },
56
+ overwriteImports(importObject) {
57
+ importObject.env = {
58
+ ...importObject.env,
59
+ ...importObject.napi,
60
+ ...importObject.emnapi,
61
+ memory: __sharedMemory,
62
+ }
63
+ return importObject
64
+ },
65
+ beforeInit({ instance }) {
66
+ __napi_rs_initialize_modules(instance)
67
+ },
68
+ })
69
+
70
+ function __napi_rs_initialize_modules(__napiInstance) {
71
+ ${wasiRegisterFunctions
72
+ .map((name) => ` __napiInstance.exports['${name}']?.()`)
73
+ .join('\n')}
74
+ }
75
+ `;
76
+ };
77
+ export const createWasiBinding = (wasmFileName, packageName, wasiRegisterFunctions, initialMemory = 4000, maximumMemory = 65536) => `/* eslint-disable */
78
+ /* prettier-ignore */
79
+
80
+ /* auto-generated by NAPI-RS */
81
+
82
+ const __nodeFs = require('node:fs')
83
+ const __nodePath = require('node:path')
84
+ const { WASI: __nodeWASI } = require('node:wasi')
85
+ const { Worker } = require('node:worker_threads')
86
+
87
+ const {
88
+ instantiateNapiModuleSync: __emnapiInstantiateNapiModuleSync,
89
+ getDefaultContext: __emnapiGetDefaultContext,
90
+ createOnMessage: __wasmCreateOnMessageForFsProxy,
91
+ } = require('@napi-rs/wasm-runtime')
92
+
93
+ const __rootDir = __nodePath.parse(process.cwd()).root
94
+
95
+ const __wasi = new __nodeWASI({
96
+ version: 'preview1',
97
+ env: process.env,
98
+ preopens: {
99
+ [__rootDir]: __rootDir,
100
+ }
101
+ })
102
+
103
+ const __emnapiContext = __emnapiGetDefaultContext()
104
+
105
+ const __sharedMemory = new WebAssembly.Memory({
106
+ initial: ${initialMemory},
107
+ maximum: ${maximumMemory},
108
+ shared: true,
109
+ })
110
+
111
+ let __wasmFilePath = __nodePath.join(__dirname, '${wasmFileName}.wasm')
112
+ const __wasmDebugFilePath = __nodePath.join(__dirname, '${wasmFileName}.debug.wasm')
113
+
114
+ if (__nodeFs.existsSync(__wasmDebugFilePath)) {
115
+ __wasmFilePath = __wasmDebugFilePath
116
+ } else if (!__nodeFs.existsSync(__wasmFilePath)) {
117
+ try {
118
+ __wasmFilePath = __nodePath.resolve('${packageName}-wasm32-wasi')
119
+ } catch {
120
+ throw new Error('Cannot find ${wasmFileName}.wasm file, and ${packageName}-wasm32-wasi package is not installed.')
121
+ }
122
+ }
123
+
124
+ const { instance: __napiInstance, module: __wasiModule, napiModule: __napiModule } = __emnapiInstantiateNapiModuleSync(__nodeFs.readFileSync(__wasmFilePath), {
125
+ context: __emnapiContext,
126
+ asyncWorkPoolSize: (function() {
127
+ const threadsSizeFromEnv = Number(process.env.NAPI_RS_ASYNC_WORK_POOL_SIZE ?? process.env.UV_THREADPOOL_SIZE)
128
+ // NaN > 0 is false
129
+ if (threadsSizeFromEnv > 0) {
130
+ return threadsSizeFromEnv
131
+ } else {
132
+ return 4
133
+ }
134
+ })(),
135
+ reuseWorker: true,
136
+ wasi: __wasi,
137
+ onCreateWorker() {
138
+ const worker = new Worker(__nodePath.join(__dirname, 'wasi-worker.mjs'), {
139
+ env: process.env,
140
+ })
141
+ worker.onmessage = ({ data }) => {
142
+ __wasmCreateOnMessageForFsProxy(__nodeFs)(data)
143
+ }
144
+ return worker
145
+ },
146
+ overwriteImports(importObject) {
147
+ importObject.env = {
148
+ ...importObject.env,
149
+ ...importObject.napi,
150
+ ...importObject.emnapi,
151
+ memory: __sharedMemory,
152
+ }
153
+ return importObject
154
+ },
155
+ beforeInit({ instance }) {
156
+ __napi_rs_initialize_modules(instance)
157
+ }
158
+ })
159
+
160
+ function __napi_rs_initialize_modules(__napiInstance) {
161
+ ${wasiRegisterFunctions
162
+ .map((name) => ` __napiInstance.exports['${name}']?.()`)
163
+ .join('\n')}
164
+ }
165
+ `;
166
+ //# sourceMappingURL=load-wasi-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-wasi-template.js","sourceRoot":"","sources":["../../../src/api/templates/load-wasi-template.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,YAAoB,EACpB,qBAA+B,EAC/B,aAAa,GAAG,IAAI,EACpB,aAAa,GAAG,KAAK,EACrB,EAAE,GAAG,KAAK,EACV,EAAE;IACF,MAAM,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,kDAAkD,CAAC,CAAC,CAAC,EAAE,CAAA;IAC7E,MAAM,YAAY,GAAG,EAAE;QACrB,CAAC,CAAC;;;;;;;;;GASH;QACC,CAAC,CAAC;;;GAGH,CAAA;IAED,MAAM,eAAe,GAAG,EAAE;QACxB,CAAC,CAAC,iFAAiF;QACnF,CAAC,CAAC,EAAE,CAAA;IAEN,OAAO;;;;;;EAMP,QAAQ;2BACiB,YAAY;EACrC,YAAY;;;;;aAKD,aAAa;aACb,aAAa;;;;;;;;;;;;;;;;;;EAkBxB,eAAe;;;;;;;;;;;;;;;;;;EAkBf,qBAAqB;SACpB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,6BAA6B,IAAI,QAAQ,CAAC;SACxD,IAAI,CAAC,IAAI,CAAC;;CAEZ,CAAA;AACD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,YAAoB,EACpB,WAAmB,EACnB,qBAA+B,EAC/B,aAAa,GAAG,IAAI,EACpB,aAAa,GAAG,KAAK,EACrB,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA6BQ,aAAa;aACb,aAAa;;;;mDAIyB,YAAY;0DACL,YAAY;;;;;;2CAM3B,WAAW;;mCAEnB,YAAY,mBAAmB,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyC3E,qBAAqB;KACpB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,6BAA6B,IAAI,QAAQ,CAAC;KACxD,IAAI,CAAC,IAAI,CAAC;;CAEZ,CAAA"}
@@ -1,8 +1,15 @@
1
- export declare const createPackageJson: ({ name, binaryName, targets, license, engineRequirement, cliVersion, }: {
1
+ import type { SupportedTestFramework } from '../../utils/config.js';
2
+ export interface PackageMeta {
3
+ 'dist-tags': {
4
+ [index: string]: string;
5
+ };
6
+ }
7
+ export declare const createPackageJson: ({ name, binaryName, targets, license, engineRequirement, cliVersion, testFramework, }: {
2
8
  name: string;
3
9
  binaryName: string;
4
10
  targets: string[];
5
11
  license: string;
6
12
  engineRequirement: string;
7
13
  cliVersion: string;
8
- }) => string;
14
+ testFramework: SupportedTestFramework;
15
+ }) => Promise<string>;