@napi-rs/cli 3.0.0-alpha.90 → 3.0.0-alpha.92

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 (133) hide show
  1. package/dist/api/create-npm-dirs.d.ts +5 -0
  2. package/dist/api/templates/index.d.ts +0 -7
  3. package/dist/cli.js +3892 -15
  4. package/dist/index.cjs +9212 -8791
  5. package/dist/index.js +3643 -32
  6. package/package.json +10 -8
  7. package/src/api/build.ts +15 -15
  8. package/src/api/create-npm-dirs.ts +4 -2
  9. package/src/api/templates/index.ts +0 -7
  10. package/src/api/templates/load-wasi-template.ts +23 -0
  11. package/src/utils/config.ts +9 -0
  12. package/dist/api/__tests__/new.spec.js +0 -283
  13. package/dist/api/__tests__/new.spec.js.map +0 -1
  14. package/dist/api/artifacts.js +0 -74
  15. package/dist/api/artifacts.js.map +0 -1
  16. package/dist/api/build.js +0 -707
  17. package/dist/api/build.js.map +0 -1
  18. package/dist/api/create-npm-dirs.js +0 -101
  19. package/dist/api/create-npm-dirs.js.map +0 -1
  20. package/dist/api/new.js +0 -360
  21. package/dist/api/new.js.map +0 -1
  22. package/dist/api/pre-publish.js +0 -160
  23. package/dist/api/pre-publish.js.map +0 -1
  24. package/dist/api/rename.js +0 -91
  25. package/dist/api/rename.js.map +0 -1
  26. package/dist/api/templates/.gitignore.d.ts +0 -1
  27. package/dist/api/templates/.gitignore.js +0 -200
  28. package/dist/api/templates/.gitignore.js.map +0 -1
  29. package/dist/api/templates/.npmignore.d.ts +0 -1
  30. package/dist/api/templates/.npmignore.js +0 -15
  31. package/dist/api/templates/.npmignore.js.map +0 -1
  32. package/dist/api/templates/build.rs.d.ts +0 -1
  33. package/dist/api/templates/build.rs.js +0 -5
  34. package/dist/api/templates/build.rs.js.map +0 -1
  35. package/dist/api/templates/cargo.toml.d.ts +0 -6
  36. package/dist/api/templates/cargo.toml.js +0 -27
  37. package/dist/api/templates/cargo.toml.js.map +0 -1
  38. package/dist/api/templates/ci-template.d.ts +0 -3
  39. package/dist/api/templates/ci-template.js +0 -593
  40. package/dist/api/templates/ci-template.js.map +0 -1
  41. package/dist/api/templates/ci.yml.d.ts +0 -3
  42. package/dist/api/templates/ci.yml.js +0 -115
  43. package/dist/api/templates/ci.yml.js.map +0 -1
  44. package/dist/api/templates/index.js +0 -9
  45. package/dist/api/templates/index.js.map +0 -1
  46. package/dist/api/templates/js-binding.js +0 -213
  47. package/dist/api/templates/js-binding.js.map +0 -1
  48. package/dist/api/templates/lib.rs.d.ts +0 -1
  49. package/dist/api/templates/lib.rs.js +0 -8
  50. package/dist/api/templates/lib.rs.js.map +0 -1
  51. package/dist/api/templates/load-wasi-template.js +0 -168
  52. package/dist/api/templates/load-wasi-template.js.map +0 -1
  53. package/dist/api/templates/package.json.d.ts +0 -15
  54. package/dist/api/templates/package.json.js +0 -54
  55. package/dist/api/templates/package.json.js.map +0 -1
  56. package/dist/api/templates/wasi-worker-template.js +0 -122
  57. package/dist/api/templates/wasi-worker-template.js.map +0 -1
  58. package/dist/api/universalize.js +0 -39
  59. package/dist/api/universalize.js.map +0 -1
  60. package/dist/api/version.js +0 -17
  61. package/dist/api/version.js.map +0 -1
  62. package/dist/cli.js.map +0 -1
  63. package/dist/commands/artifacts.js +0 -20
  64. package/dist/commands/artifacts.js.map +0 -1
  65. package/dist/commands/build.js +0 -35
  66. package/dist/commands/build.js.map +0 -1
  67. package/dist/commands/create-npm-dirs.js +0 -8
  68. package/dist/commands/create-npm-dirs.js.map +0 -1
  69. package/dist/commands/help.js +0 -13
  70. package/dist/commands/help.js.map +0 -1
  71. package/dist/commands/new.js +0 -110
  72. package/dist/commands/new.js.map +0 -1
  73. package/dist/commands/pre-publish.js +0 -9
  74. package/dist/commands/pre-publish.js.map +0 -1
  75. package/dist/commands/rename.js +0 -8
  76. package/dist/commands/rename.js.map +0 -1
  77. package/dist/commands/universalize.js +0 -8
  78. package/dist/commands/universalize.js.map +0 -1
  79. package/dist/commands/version.js +0 -8
  80. package/dist/commands/version.js.map +0 -1
  81. package/dist/def/artifacts.js +0 -47
  82. package/dist/def/artifacts.js.map +0 -1
  83. package/dist/def/build.js +0 -140
  84. package/dist/def/build.js.map +0 -1
  85. package/dist/def/create-npm-dirs.js +0 -43
  86. package/dist/def/create-npm-dirs.js.map +0 -1
  87. package/dist/def/new.js +0 -77
  88. package/dist/def/new.js.map +0 -1
  89. package/dist/def/pre-publish.js +0 -61
  90. package/dist/def/pre-publish.js.map +0 -1
  91. package/dist/def/rename.js +0 -63
  92. package/dist/def/rename.js.map +0 -1
  93. package/dist/def/universalize.js +0 -38
  94. package/dist/def/universalize.js.map +0 -1
  95. package/dist/def/version.js +0 -38
  96. package/dist/def/version.js.map +0 -1
  97. package/dist/index.js.map +0 -1
  98. package/dist/utils/__tests__/config.spec.js +0 -63
  99. package/dist/utils/__tests__/config.spec.js.map +0 -1
  100. package/dist/utils/__tests__/target.spec.js +0 -11
  101. package/dist/utils/__tests__/target.spec.js.map +0 -1
  102. package/dist/utils/__tests__/typegen.spec.js +0 -42
  103. package/dist/utils/__tests__/typegen.spec.js.map +0 -1
  104. package/dist/utils/__tests__/version.spec.js +0 -6
  105. package/dist/utils/__tests__/version.spec.js.map +0 -1
  106. package/dist/utils/cargo.js +0 -34
  107. package/dist/utils/cargo.js.map +0 -1
  108. package/dist/utils/config.js +0 -75
  109. package/dist/utils/config.js.map +0 -1
  110. package/dist/utils/index.js +0 -10
  111. package/dist/utils/index.js.map +0 -1
  112. package/dist/utils/log.js +0 -15
  113. package/dist/utils/log.js.map +0 -1
  114. package/dist/utils/metadata.js +0 -40
  115. package/dist/utils/metadata.js.map +0 -1
  116. package/dist/utils/misc.js +0 -43
  117. package/dist/utils/misc.js.map +0 -1
  118. package/dist/utils/read-config.js +0 -8
  119. package/dist/utils/read-config.js.map +0 -1
  120. package/dist/utils/target.js +0 -135
  121. package/dist/utils/target.js.map +0 -1
  122. package/dist/utils/typegen.js +0 -210
  123. package/dist/utils/typegen.js.map +0 -1
  124. package/dist/utils/version.js +0 -62
  125. package/dist/utils/version.js.map +0 -1
  126. package/src/api/templates/.gitignore.ts +0 -199
  127. package/src/api/templates/.npmignore.ts +0 -14
  128. package/src/api/templates/build.rs.ts +0 -4
  129. package/src/api/templates/cargo.toml.ts +0 -36
  130. package/src/api/templates/ci-template.ts +0 -602
  131. package/src/api/templates/ci.yml.ts +0 -140
  132. package/src/api/templates/lib.rs.ts +0 -7
  133. package/src/api/templates/package.json.ts +0 -90
@@ -1,115 +0,0 @@
1
- import { load, dump } from 'js-yaml';
2
- import { NodeArchToCpu, UniArchsByPlatform, parseTriple, } from '../../utils/index.js';
3
- import { YAML } from './ci-template.js';
4
- const BUILD_FREEBSD = 'build-freebsd';
5
- const TEST_MACOS_WINDOWS = 'test-macOS-windows-binding';
6
- const TEST_LINUX_X64_GNU = 'test-linux-x64-gnu-binding';
7
- const TEST_LINUX_X64_MUSL = 'test-linux-x64-musl-binding';
8
- const TEST_LINUX_AARCH64_GNU = 'test-linux-aarch64-gnu-binding';
9
- const TEST_LINUX_AARCH64_MUSL = 'test-linux-aarch64-musl-binding';
10
- const TEST_LINUX_ARM_GNUEABIHF = 'test-linux-arm-gnueabihf-binding';
11
- const TEST_WASI = 'test-wasi-nodejs';
12
- const UNIVERSAL_MACOS = 'universal-macOS';
13
- export const createGithubActionsCIYml = (targets, packageManager, wasiTargetName) => {
14
- const allTargets = new Set(targets.flatMap((t) => {
15
- const platform = parseTriple(t);
16
- if (platform.arch === 'universal') {
17
- const srcTriples = UniArchsByPlatform[platform.platform]?.map((arch) => t.replace('universal', NodeArchToCpu[arch]));
18
- return [t, ...(srcTriples ?? [])];
19
- }
20
- return [t];
21
- }));
22
- const fullTemplate = load(YAML(packageManager, wasiTargetName));
23
- const requiredSteps = [];
24
- const enableWindowsX86 = allTargets.has('x86_64-pc-windows-msvc');
25
- const enableMacOSX86 = allTargets.has('x86_64-apple-darwin');
26
- const enableLinuxX86Gnu = allTargets.has('x86_64-unknown-linux-gnu');
27
- const enableLinuxX86Musl = allTargets.has('x86_64-unknown-linux-musl');
28
- const enableLinuxArm8Gnu = allTargets.has('aarch64-unknown-linux-gnu');
29
- const enableLinuxArm8Musl = allTargets.has('aarch64-unknown-linux-musl');
30
- const enableLinuxArm7 = allTargets.has('armv7-unknown-linux-gnueabihf');
31
- const enableFreeBSD = allTargets.has('x86_64-unknown-freebsd');
32
- const enableMacOSUni = allTargets.has('universal-apple-darwin');
33
- const enableWasi = allTargets.has('wasm32-wasi-preview1-threads') ||
34
- allTargets.has('wasm32-wasip1-threads') ||
35
- allTargets.has('wasm32-wasip2');
36
- fullTemplate.jobs.build.strategy.matrix.settings =
37
- fullTemplate.jobs.build.strategy.matrix.settings.filter(({ target }) => allTargets.has(target));
38
- if (!fullTemplate.jobs.build.strategy.matrix.settings.length) {
39
- delete fullTemplate.jobs.build.strategy.matrix;
40
- }
41
- if (!enableFreeBSD) {
42
- delete fullTemplate.jobs[BUILD_FREEBSD];
43
- }
44
- else {
45
- requiredSteps.push(BUILD_FREEBSD);
46
- }
47
- if (!enableWindowsX86 && !enableMacOSX86) {
48
- delete fullTemplate.jobs[TEST_MACOS_WINDOWS];
49
- }
50
- else {
51
- const filterTargets = new Set();
52
- if (enableWindowsX86) {
53
- filterTargets.add('windows-latest');
54
- }
55
- if (enableMacOSUni || enableMacOSX86) {
56
- filterTargets.add('macos-latest');
57
- }
58
- fullTemplate.jobs[TEST_MACOS_WINDOWS].strategy.matrix.settings =
59
- fullTemplate.jobs[TEST_MACOS_WINDOWS].strategy.matrix.settings.filter(({ host }) => filterTargets.has(host));
60
- requiredSteps.push(TEST_MACOS_WINDOWS);
61
- }
62
- if (!enableLinuxX86Gnu) {
63
- delete fullTemplate.jobs[TEST_LINUX_X64_GNU];
64
- }
65
- else {
66
- requiredSteps.push(TEST_LINUX_X64_GNU);
67
- }
68
- if (!enableLinuxX86Musl) {
69
- delete fullTemplate.jobs[TEST_LINUX_X64_MUSL];
70
- }
71
- else {
72
- requiredSteps.push(TEST_LINUX_X64_MUSL);
73
- }
74
- if (!enableLinuxArm8Gnu) {
75
- delete fullTemplate.jobs[TEST_LINUX_AARCH64_GNU];
76
- }
77
- else {
78
- requiredSteps.push(TEST_LINUX_AARCH64_GNU);
79
- }
80
- if (!enableLinuxArm8Musl) {
81
- delete fullTemplate.jobs[TEST_LINUX_AARCH64_MUSL];
82
- }
83
- else {
84
- requiredSteps.push(TEST_LINUX_AARCH64_MUSL);
85
- }
86
- if (!enableLinuxArm7) {
87
- delete fullTemplate.jobs[TEST_LINUX_ARM_GNUEABIHF];
88
- }
89
- else {
90
- requiredSteps.push(TEST_LINUX_ARM_GNUEABIHF);
91
- }
92
- if (!enableMacOSUni) {
93
- delete fullTemplate.jobs[UNIVERSAL_MACOS];
94
- }
95
- else {
96
- requiredSteps.push(UNIVERSAL_MACOS);
97
- }
98
- if (!enableWasi) {
99
- delete fullTemplate.jobs[TEST_WASI];
100
- }
101
- else {
102
- requiredSteps.push(TEST_WASI);
103
- }
104
- fullTemplate.jobs.publish.needs = requiredSteps;
105
- try {
106
- return dump(fullTemplate, {
107
- lineWidth: 1000,
108
- });
109
- }
110
- catch (err) {
111
- console.info(fullTemplate);
112
- throw err;
113
- }
114
- };
115
- //# sourceMappingURL=ci.yml.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ci.yml.js","sourceRoot":"","sources":["../../../src/api/templates/ci.yml.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- export * from './.gitignore.js';
2
- export * from './.npmignore.js';
3
- export * from './build.rs.js';
4
- export * from './cargo.toml.js';
5
- export * from './ci.yml.js';
6
- export * from './lib.rs.js';
7
- export * from './package.json.js';
8
- export * from './js-binding.js';
9
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/templates/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA"}
@@ -1,213 +0,0 @@
1
- export function createCjsBinding(localName, pkgName, idents) {
2
- return `${bindingHeader}
3
- const { createRequire } = require('node:module')
4
- require = createRequire(__filename)
5
-
6
- ${createCommonBinding(localName, pkgName)}
7
- module.exports = nativeBinding
8
- ${idents
9
- .map((ident) => `module.exports.${ident} = nativeBinding.${ident}`)
10
- .join('\n')}
11
- `;
12
- }
13
- export function createEsmBinding(localName, pkgName, idents) {
14
- return `${bindingHeader}
15
- import { createRequire } from 'node:module'
16
- const require = createRequire(import.meta.url)
17
- const __dirname = new URL('.', import.meta.url).pathname
18
-
19
- ${createCommonBinding(localName, pkgName)}
20
- const { ${idents.join(', ')} } = nativeBinding
21
- ${idents.map((ident) => `export { ${ident} }`).join('\n')}
22
- `;
23
- }
24
- const bindingHeader = `// prettier-ignore
25
- /* eslint-disable */
26
- // @ts-nocheck
27
- /* auto-generated by NAPI-RS */
28
- `;
29
- function createCommonBinding(localName, pkgName) {
30
- function requireTuple(tuple) {
31
- return `try {
32
- return require('./${localName}.${tuple}.node')
33
- } catch (e) {
34
- loadErrors.push(e)
35
- }
36
- try {
37
- return require('${pkgName}-${tuple}')
38
- } catch (e) {
39
- loadErrors.push(e)
40
- }
41
- `;
42
- }
43
- return `const { readFileSync } = require('node:fs')
44
- let nativeBinding = null
45
- const loadErrors = []
46
-
47
- const isMusl = () => {
48
- let musl = false
49
- if (process.platform === 'linux') {
50
- musl = isMuslFromFilesystem()
51
- if (musl === null) {
52
- musl = isMuslFromReport()
53
- }
54
- if (musl === null) {
55
- musl = isMuslFromChildProcess()
56
- }
57
- }
58
- return musl
59
- }
60
-
61
- const isFileMusl = (f) => f.includes('libc.musl-') || f.includes('ld-musl-')
62
-
63
- const isMuslFromFilesystem = () => {
64
- try {
65
- return readFileSync('/usr/bin/ldd', 'utf-8').includes('musl')
66
- } catch {
67
- return null
68
- }
69
- }
70
-
71
- const isMuslFromReport = () => {
72
- let report = null
73
- if (typeof process.report?.getReport === 'function') {
74
- process.report.excludeNetwork = true
75
- report = process.report.getReport()
76
- }
77
- if (!report) {
78
- return null
79
- }
80
- if (report.header && report.header.glibcVersionRuntime) {
81
- return false
82
- }
83
- if (Array.isArray(report.sharedObjects)) {
84
- if (report.sharedObjects.some(isFileMusl)) {
85
- return true
86
- }
87
- }
88
- return false
89
- }
90
-
91
- const isMuslFromChildProcess = () => {
92
- try {
93
- return require('child_process').execSync('ldd --version', { encoding: 'utf8' }).includes('musl')
94
- } catch (e) {
95
- // If we reach this case, we don't know if the system is musl or not, so is better to just fallback to false
96
- return false
97
- }
98
- }
99
-
100
- function requireNative() {
101
- if (process.env.NAPI_RS_NATIVE_LIBRARY_PATH) {
102
- try {
103
- nativeBinding = require(process.env.NAPI_RS_NATIVE_LIBRARY_PATH);
104
- } catch (err) {
105
- loadErrors.push(err)
106
- }
107
- } else if (process.platform === 'android') {
108
- if (process.arch === 'arm64') {
109
- ${requireTuple('android-arm64')}
110
- } else if (process.arch === 'arm') {
111
- ${requireTuple('android-arm-eabi')}
112
- } else {
113
- loadErrors.push(new Error(\`Unsupported architecture on Android \${process.arch}\`))
114
- }
115
- } else if (process.platform === 'win32') {
116
- if (process.arch === 'x64') {
117
- ${requireTuple('win32-x64-msvc')}
118
- } else if (process.arch === 'ia32') {
119
- ${requireTuple('win32-ia32-msvc')}
120
- } else if (process.arch === 'arm64') {
121
- ${requireTuple('win32-arm64-msvc')}
122
- } else {
123
- loadErrors.push(new Error(\`Unsupported architecture on Windows: \${process.arch}\`))
124
- }
125
- } else if (process.platform === 'darwin') {
126
- ${requireTuple('darwin-universal')}
127
- if (process.arch === 'x64') {
128
- ${requireTuple('darwin-x64')}
129
- } else if (process.arch === 'arm64') {
130
- ${requireTuple('darwin-arm64')}
131
- } else {
132
- loadErrors.push(new Error(\`Unsupported architecture on macOS: \${process.arch}\`))
133
- }
134
- } else if (process.platform === 'freebsd') {
135
- if (process.arch === 'x64') {
136
- ${requireTuple('freebsd-x64')}
137
- } else if (process.arch === 'arm64') {
138
- ${requireTuple('freebsd-arm64')}
139
- } else {
140
- loadErrors.push(new Error(\`Unsupported architecture on FreeBSD: \${process.arch}\`))
141
- }
142
- } else if (process.platform === 'linux') {
143
- if (process.arch === 'x64') {
144
- if (isMusl()) {
145
- ${requireTuple('linux-x64-musl')}
146
- } else {
147
- ${requireTuple('linux-x64-gnu')}
148
- }
149
- } else if (process.arch === 'arm64') {
150
- if (isMusl()) {
151
- ${requireTuple('linux-arm64-musl')}
152
- } else {
153
- ${requireTuple('linux-arm64-gnu')}
154
- }
155
- } else if (process.arch === 'arm') {
156
- if (isMusl()) {
157
- ${requireTuple('linux-arm-musleabihf')}
158
- } else {
159
- ${requireTuple('linux-arm-gnueabihf')}
160
- }
161
- } else if (process.arch === 'riscv64') {
162
- if (isMusl()) {
163
- ${requireTuple('linux-riscv64-musl')}
164
- } else {
165
- ${requireTuple('linux-riscv64-gnu')}
166
- }
167
- } else if (process.arch === 'ppc64') {
168
- ${requireTuple('linux-ppc64-gnu')}
169
- } else if (process.arch === 's390x') {
170
- ${requireTuple('linux-s390x-gnu')}
171
- } else {
172
- loadErrors.push(new Error(\`Unsupported architecture on Linux: \${process.arch}\`))
173
- }
174
- } else {
175
- loadErrors.push(new Error(\`Unsupported OS: \${process.platform}, architecture: \${process.arch}\`))
176
- }
177
- }
178
-
179
- nativeBinding = requireNative()
180
-
181
- if (!nativeBinding || process.env.NAPI_RS_FORCE_WASI) {
182
- try {
183
- nativeBinding = require('./${localName}.wasi.cjs')
184
- } catch (err) {
185
- if (process.env.NAPI_RS_FORCE_WASI) {
186
- loadErrors.push(err)
187
- }
188
- }
189
- if (!nativeBinding) {
190
- try {
191
- nativeBinding = require('${pkgName}-wasm32-wasi')
192
- } catch (err) {
193
- if (process.env.NAPI_RS_FORCE_WASI) {
194
- loadErrors.push(err)
195
- }
196
- }
197
- }
198
- }
199
-
200
- if (!nativeBinding) {
201
- if (loadErrors.length > 0) {
202
- throw new Error(
203
- \`Cannot find native binding. \` +
204
- \`npm has a bug related to optional dependencies (https://github.com/npm/cli/issues/4828). \` +
205
- 'Please try \`npm i\` again after removing both package-lock.json and node_modules directory.',
206
- { cause: loadErrors }
207
- )
208
- }
209
- throw new Error(\`Failed to load native binding\`)
210
- }
211
- `;
212
- }
213
- //# sourceMappingURL=js-binding.js.map
@@ -1 +0,0 @@
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;;EAEvC,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAkED,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;;;;;;;;;;;;;;;;;;;;CAoBvC,CAAA;AACD,CAAC"}
@@ -1 +0,0 @@
1
- export declare const createLibRs: () => string;
@@ -1,8 +0,0 @@
1
- export const createLibRs = () => `use napi_derive::napi;
2
-
3
- #[napi]
4
- pub fn sum(a: i32, b: i32) -> i32 {
5
- a + b
6
- }
7
- `;
8
- //# sourceMappingURL=lib.rs.js.map
@@ -1 +0,0 @@
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"}
@@ -1,168 +0,0 @@
1
- export const createWasiBrowserBinding = (wasiFilename, initialMemory = 4000, maximumMemory = 65536, fs = false, asyncInit = 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
- const emnapiInstantiateImport = asyncInit
22
- ? `instantiateNapiModule as __emnapiInstantiateNapiModule`
23
- : `instantiateNapiModuleSync as __emnapiInstantiateNapiModuleSync`;
24
- const emnapiInstantiateCall = asyncInit
25
- ? `await __emnapiInstantiateNapiModule`
26
- : `__emnapiInstantiateNapiModuleSync`;
27
- return `import {
28
- createOnMessage as __wasmCreateOnMessageForFsProxy,
29
- getDefaultContext as __emnapiGetDefaultContext,
30
- ${emnapiInstantiateImport},
31
- WASI as __WASI,
32
- } from '@napi-rs/wasm-runtime'
33
- ${fsImport}
34
- ${wasiCreation}
35
-
36
- const __wasmUrl = new URL('./${wasiFilename}.wasm', import.meta.url).href
37
- const __emnapiContext = __emnapiGetDefaultContext()
38
-
39
- const __sharedMemory = new WebAssembly.Memory({
40
- initial: ${initialMemory},
41
- maximum: ${maximumMemory},
42
- shared: true,
43
- })
44
-
45
- const __wasmFile = await fetch(__wasmUrl).then((res) => res.arrayBuffer())
46
-
47
- const {
48
- instance: __napiInstance,
49
- module: __wasiModule,
50
- napiModule: __napiModule,
51
- } = ${emnapiInstantiateCall}(__wasmFile, {
52
- context: __emnapiContext,
53
- asyncWorkPoolSize: 4,
54
- wasi: __wasi,
55
- onCreateWorker() {
56
- const worker = new Worker(new URL('./wasi-worker-browser.mjs', import.meta.url), {
57
- type: 'module',
58
- })
59
- ${workerFsHandler}
60
- return worker
61
- },
62
- overwriteImports(importObject) {
63
- importObject.env = {
64
- ...importObject.env,
65
- ...importObject.napi,
66
- ...importObject.emnapi,
67
- memory: __sharedMemory,
68
- }
69
- return importObject
70
- },
71
- beforeInit({ instance }) {
72
- for (const name of Object.keys(instance.exports)) {
73
- if (name.startsWith('__napi_register__')) {
74
- instance.exports[name]()
75
- }
76
- }
77
- },
78
- })
79
- `;
80
- };
81
- export const createWasiBinding = (wasmFileName, packageName, initialMemory = 4000, maximumMemory = 65536) => `/* eslint-disable */
82
- /* prettier-ignore */
83
-
84
- /* auto-generated by NAPI-RS */
85
-
86
- const __nodeFs = require('node:fs')
87
- const __nodePath = require('node:path')
88
- const { WASI: __nodeWASI } = require('node:wasi')
89
- const { Worker } = require('node:worker_threads')
90
-
91
- const {
92
- createOnMessage: __wasmCreateOnMessageForFsProxy,
93
- getDefaultContext: __emnapiGetDefaultContext,
94
- instantiateNapiModuleSync: __emnapiInstantiateNapiModuleSync,
95
- } = require('@napi-rs/wasm-runtime')
96
-
97
- const __rootDir = __nodePath.parse(process.cwd()).root
98
-
99
- const __wasi = new __nodeWASI({
100
- version: 'preview1',
101
- env: process.env,
102
- preopens: {
103
- [__rootDir]: __rootDir,
104
- }
105
- })
106
-
107
- const __emnapiContext = __emnapiGetDefaultContext()
108
-
109
- const __sharedMemory = new WebAssembly.Memory({
110
- initial: ${initialMemory},
111
- maximum: ${maximumMemory},
112
- shared: true,
113
- })
114
-
115
- let __wasmFilePath = __nodePath.join(__dirname, '${wasmFileName}.wasm')
116
- const __wasmDebugFilePath = __nodePath.join(__dirname, '${wasmFileName}.debug.wasm')
117
-
118
- if (__nodeFs.existsSync(__wasmDebugFilePath)) {
119
- __wasmFilePath = __wasmDebugFilePath
120
- } else if (!__nodeFs.existsSync(__wasmFilePath)) {
121
- try {
122
- __wasmFilePath = __nodePath.resolve('${packageName}-wasm32-wasi')
123
- } catch {
124
- throw new Error('Cannot find ${wasmFileName}.wasm file, and ${packageName}-wasm32-wasi package is not installed.')
125
- }
126
- }
127
-
128
- const { instance: __napiInstance, module: __wasiModule, napiModule: __napiModule } = __emnapiInstantiateNapiModuleSync(__nodeFs.readFileSync(__wasmFilePath), {
129
- context: __emnapiContext,
130
- asyncWorkPoolSize: (function() {
131
- const threadsSizeFromEnv = Number(process.env.NAPI_RS_ASYNC_WORK_POOL_SIZE ?? process.env.UV_THREADPOOL_SIZE)
132
- // NaN > 0 is false
133
- if (threadsSizeFromEnv > 0) {
134
- return threadsSizeFromEnv
135
- } else {
136
- return 4
137
- }
138
- })(),
139
- reuseWorker: true,
140
- wasi: __wasi,
141
- onCreateWorker() {
142
- const worker = new Worker(__nodePath.join(__dirname, 'wasi-worker.mjs'), {
143
- env: process.env,
144
- })
145
- worker.onmessage = ({ data }) => {
146
- __wasmCreateOnMessageForFsProxy(__nodeFs)(data)
147
- }
148
- return worker
149
- },
150
- overwriteImports(importObject) {
151
- importObject.env = {
152
- ...importObject.env,
153
- ...importObject.napi,
154
- ...importObject.emnapi,
155
- memory: __sharedMemory,
156
- }
157
- return importObject
158
- },
159
- beforeInit({ instance }) {
160
- for (const name of Object.keys(instance.exports)) {
161
- if (name.startsWith('__napi_register__')) {
162
- instance.exports[name]()
163
- }
164
- }
165
- },
166
- })
167
- `;
168
- //# sourceMappingURL=load-wasi-template.js.map
@@ -1 +0,0 @@
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,aAAa,GAAG,IAAI,EACpB,aAAa,GAAG,KAAK,EACrB,EAAE,GAAG,KAAK,EACV,SAAS,GAAG,KAAK,EACjB,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,MAAM,uBAAuB,GAAG,SAAS;QACvC,CAAC,CAAC,wDAAwD;QAC1D,CAAC,CAAC,gEAAgE,CAAA;IACpE,MAAM,qBAAqB,GAAG,SAAS;QACrC,CAAC,CAAC,qCAAqC;QACvC,CAAC,CAAC,mCAAmC,CAAA;IAEvC,OAAO;;;IAGL,uBAAuB;;;EAGzB,QAAQ;EACR,YAAY;;+BAEiB,YAAY;;;;aAI9B,aAAa;aACb,aAAa;;;;;;;;;;MAUpB,qBAAqB;;;;;;;;EAQzB,eAAe;;;;;;;;;;;;;;;;;;;;CAoBhB,CAAA;AACD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,YAAoB,EACpB,WAAmB,EACnB,aAAa,GAAG,IAAI,EACpB,aAAa,GAAG,KAAK,EACrB,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA6BQ,aAAa;aACb,aAAa;;;;mDAIyB,YAAY;0DACL,YAAY;;;;;;2CAM3B,WAAW;;mCAEnB,YAAY,mBAAmB,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2C5E,CAAA"}
@@ -1,15 +0,0 @@
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, }: {
8
- name: string;
9
- binaryName: string;
10
- targets: string[];
11
- license: string;
12
- engineRequirement: string;
13
- cliVersion: string;
14
- testFramework: SupportedTestFramework;
15
- }) => Promise<string>;
@@ -1,54 +0,0 @@
1
- import { UNIVERSAL_TARGETS } from '../../utils/target.js';
2
- export const createPackageJson = async ({ name, binaryName, targets, license, engineRequirement, cliVersion, testFramework, }) => {
3
- const hasWasmTarget = targets.some((t) => t.includes('wasm'));
4
- const universalTargets = targets.filter((t) => t in UNIVERSAL_TARGETS);
5
- const unifiedtargets = universalTargets.length
6
- ? targets.filter((target) => !universalTargets.some((t) => {
7
- // @ts-expect-error
8
- return UNIVERSAL_TARGETS[t].includes(target);
9
- }))
10
- : targets;
11
- const content = {
12
- name,
13
- version: '0.0.0',
14
- license,
15
- engines: {
16
- node: engineRequirement,
17
- },
18
- type: 'commonjs',
19
- main: 'index.js',
20
- types: 'index.d.ts',
21
- browser: 'browser.js',
22
- module: undefined,
23
- exports: undefined,
24
- napi: {
25
- binaryName,
26
- targets: unifiedtargets,
27
- },
28
- scripts: {
29
- test: testFramework,
30
- build: 'napi build --release --platform --strip',
31
- 'build:debug': 'napi build',
32
- prepublishOnly: 'napi prepublish -t npm',
33
- artifacts: 'napi artifacts',
34
- version: 'napi version',
35
- },
36
- devDependencies: {
37
- '@napi-rs/cli': `^${cliVersion}`,
38
- },
39
- };
40
- if (testFramework === 'ava') {
41
- const avaMeta = await fetch(`https://registry.npmjs.org/ava`).then((res) => res.json());
42
- content.devDependencies['ava'] = `^${avaMeta['dist-tags'].latest}`;
43
- content.ava = {
44
- timeout: '1m',
45
- };
46
- }
47
- if (hasWasmTarget) {
48
- const wasmRuntime = await fetch(`https://registry.npmjs.org/@napi-rs/wasm-runtime`).then((res) => res.json());
49
- const latest = wasmRuntime['dist-tags'].latest;
50
- content.devDependencies['@napi-rs/wasm-runtime'] = `^${latest}`;
51
- }
52
- return JSON.stringify(content, null, 2);
53
- };
54
- //# sourceMappingURL=package.json.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"package.json.js","sourceRoot":"","sources":["../../../src/api/templates/package.json.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAMzD,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,EACtC,IAAI,EACJ,UAAU,EACV,OAAO,EACP,OAAO,EACP,iBAAiB,EACjB,UAAU,EACV,aAAa,GASd,EAAE,EAAE;IACH,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;IAC7D,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CACrC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,iBAAiB,CACQ,CAAA;IACvC,MAAM,cAAc,GAAG,gBAAgB,CAAC,MAAM;QAC5C,CAAC,CAAC,OAAO,CAAC,MAAM,CACZ,CAAC,MAAM,EAAE,EAAE,CACT,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YAC3B,mBAAmB;YACnB,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAC9C,CAAC,CAAC,CACL;QACH,CAAC,CAAC,OAAO,CAAA;IACX,MAAM,OAAO,GAA4B;QACvC,IAAI;QACJ,OAAO,EAAE,OAAO;QAChB,OAAO;QACP,OAAO,EAAE;YACP,IAAI,EAAE,iBAAiB;SACxB;QACD,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,YAAY;QACnB,OAAO,EAAE,YAAY;QACrB,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE;YACJ,UAAU;YACV,OAAO,EAAE,cAAc;SACxB;QACD,OAAO,EAAE;YACP,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,yCAAyC;YAChD,aAAa,EAAE,YAAY;YAC3B,cAAc,EAAE,wBAAwB;YACxC,SAAS,EAAE,gBAAgB;YAC3B,OAAO,EAAE,cAAc;SACxB;QACD,eAAe,EAAE;YACf,cAAc,EAAE,IAAI,UAAU,EAAE;SACjC;KACF,CAAA;IAED,IAAI,aAAa,KAAK,KAAK,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,gCAAgC,CAAC,CAAC,IAAI,CAChE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAA0B,CAC5C,CAAA;QACD,OAAO,CAAC,eAAgB,CAAC,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,CAAA;QACnE,OAAO,CAAC,GAAG,GAAG;YACZ,OAAO,EAAE,IAAI;SACd,CAAA;IACH,CAAC;IAED,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,WAAW,GAAG,MAAM,KAAK,CAC7B,kDAAkD,CACnD,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAA0B,CAAC,CAAA;QACnD,MAAM,MAAM,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC,MAAM,CAAA;QAC9C,OAAO,CAAC,eAAgB,CAAC,uBAAuB,CAAC,GAAG,IAAI,MAAM,EAAE,CAAA;IAClE,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;AACzC,CAAC,CAAA"}