@napi-rs/cli 3.0.0-alpha.5 → 3.0.0-alpha.50

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 (178) hide show
  1. package/dist/api/artifacts.js +32 -8
  2. package/dist/api/artifacts.js.map +1 -0
  3. package/dist/api/build.d.ts +1 -1
  4. package/dist/api/build.js +249 -25
  5. package/dist/api/build.js.map +1 -0
  6. package/dist/api/create-npm-dirs.js +46 -8
  7. package/dist/api/create-npm-dirs.js.map +1 -0
  8. package/dist/api/new.js +58 -20
  9. package/dist/api/new.js.map +1 -0
  10. package/dist/api/pre-publish.js +10 -7
  11. package/dist/api/pre-publish.js.map +1 -0
  12. package/dist/api/rename.js +10 -1
  13. package/dist/api/rename.js.map +1 -0
  14. package/dist/api/templates/.gitignore.d.ts +1 -1
  15. package/dist/api/templates/.gitignore.js +2 -0
  16. package/dist/api/templates/.gitignore.js.map +1 -0
  17. package/dist/api/templates/.npmignore.js +1 -0
  18. package/dist/api/templates/.npmignore.js.map +1 -0
  19. package/dist/api/templates/build.rs.js +1 -0
  20. package/dist/api/templates/build.rs.js.map +1 -0
  21. package/dist/api/templates/cargo.toml.js +1 -0
  22. package/dist/api/templates/cargo.toml.js.map +1 -0
  23. package/dist/api/templates/ci-template.d.ts +3 -1
  24. package/dist/api/templates/ci-template.js +167 -150
  25. package/dist/api/templates/ci-template.js.map +1 -0
  26. package/dist/api/templates/ci.yml.d.ts +3 -1
  27. package/dist/api/templates/ci.yml.js +13 -2
  28. package/dist/api/templates/ci.yml.js.map +1 -0
  29. package/dist/api/templates/index.js +1 -0
  30. package/dist/api/templates/index.js.map +1 -0
  31. package/dist/api/templates/js-binding.js +150 -225
  32. package/dist/api/templates/js-binding.js.map +1 -0
  33. package/dist/api/templates/lib.rs.js +2 -4
  34. package/dist/api/templates/lib.rs.js.map +1 -0
  35. package/dist/api/templates/load-wasi-template.d.ts +2 -0
  36. package/dist/api/templates/load-wasi-template.js +146 -0
  37. package/dist/api/templates/load-wasi-template.js.map +1 -0
  38. package/dist/api/templates/package.json.d.ts +9 -2
  39. package/dist/api/templates/package.json.js +27 -4
  40. package/dist/api/templates/package.json.js.map +1 -0
  41. package/dist/api/templates/wasi-worker-template.d.ts +2 -0
  42. package/dist/api/templates/wasi-worker-template.js +103 -0
  43. package/dist/api/templates/wasi-worker-template.js.map +1 -0
  44. package/dist/api/universalize.js +6 -5
  45. package/dist/api/universalize.js.map +1 -0
  46. package/dist/api/version.js +3 -2
  47. package/dist/api/version.js.map +1 -0
  48. package/dist/cli.js +1 -0
  49. package/dist/cli.js.map +1 -0
  50. package/dist/commands/artifacts.js +3 -2
  51. package/dist/commands/artifacts.js.map +1 -0
  52. package/dist/commands/build.js +2 -1
  53. package/dist/commands/build.js.map +1 -0
  54. package/dist/commands/create-npm-dirs.js +1 -0
  55. package/dist/commands/create-npm-dirs.js.map +1 -0
  56. package/dist/commands/help.js +1 -0
  57. package/dist/commands/help.js.map +1 -0
  58. package/dist/commands/new.js +17 -6
  59. package/dist/commands/new.js.map +1 -0
  60. package/dist/commands/pre-publish.js +1 -0
  61. package/dist/commands/pre-publish.js.map +1 -0
  62. package/dist/commands/rename.js +1 -0
  63. package/dist/commands/rename.js.map +1 -0
  64. package/dist/commands/universalize.js +1 -0
  65. package/dist/commands/universalize.js.map +1 -0
  66. package/dist/commands/version.js +1 -0
  67. package/dist/commands/version.js.map +1 -0
  68. package/dist/def/artifacts.d.ts +21 -1
  69. package/dist/def/artifacts.js +11 -2
  70. package/dist/def/artifacts.js.map +1 -0
  71. package/dist/def/build.d.ts +20 -2
  72. package/dist/def/build.js +15 -2
  73. package/dist/def/build.js.map +1 -0
  74. package/dist/def/create-npm-dirs.d.ts +10 -0
  75. package/dist/def/create-npm-dirs.js +5 -0
  76. package/dist/def/create-npm-dirs.js.map +1 -0
  77. package/dist/def/new.d.ts +24 -6
  78. package/dist/def/new.js +12 -1
  79. package/dist/def/new.js.map +1 -0
  80. package/dist/def/pre-publish.d.ts +10 -0
  81. package/dist/def/pre-publish.js +8 -3
  82. package/dist/def/pre-publish.js.map +1 -0
  83. package/dist/def/rename.d.ts +11 -1
  84. package/dist/def/rename.js +6 -1
  85. package/dist/def/rename.js.map +1 -0
  86. package/dist/def/universalize.d.ts +10 -0
  87. package/dist/def/universalize.js +5 -0
  88. package/dist/def/universalize.js.map +1 -0
  89. package/dist/def/version.d.ts +10 -0
  90. package/dist/def/version.js +5 -0
  91. package/dist/def/version.js.map +1 -0
  92. package/dist/index.cjs +3918 -715
  93. package/dist/index.d.ts +1 -0
  94. package/dist/index.js +2 -0
  95. package/dist/index.js.map +1 -0
  96. package/dist/utils/__tests__/config.spec.d.ts +1 -0
  97. package/dist/utils/__tests__/config.spec.js +63 -0
  98. package/dist/utils/__tests__/config.spec.js.map +1 -0
  99. package/dist/utils/__tests__/target.spec.js +1 -0
  100. package/dist/utils/__tests__/target.spec.js.map +1 -0
  101. package/dist/utils/__tests__/typegen.spec.js +9 -4
  102. package/dist/utils/__tests__/typegen.spec.js.map +1 -0
  103. package/dist/utils/__tests__/version.spec.js +1 -0
  104. package/dist/utils/__tests__/version.spec.js.map +1 -0
  105. package/dist/utils/cargo.js +2 -1
  106. package/dist/utils/cargo.js.map +1 -0
  107. package/dist/utils/config.d.ts +40 -5
  108. package/dist/utils/config.js +39 -6
  109. package/dist/utils/config.js.map +1 -0
  110. package/dist/utils/index.d.ts +0 -1
  111. package/dist/utils/index.js +1 -1
  112. package/dist/utils/index.js.map +1 -0
  113. package/dist/utils/log.js +1 -0
  114. package/dist/utils/log.js.map +1 -0
  115. package/dist/utils/metadata.js +3 -2
  116. package/dist/utils/metadata.js.map +1 -0
  117. package/dist/utils/misc.d.ts +1 -1
  118. package/dist/utils/misc.js +4 -3
  119. package/dist/utils/misc.js.map +1 -0
  120. package/dist/utils/target.d.ts +9 -5
  121. package/dist/utils/target.js +25 -1
  122. package/dist/utils/target.js.map +1 -0
  123. package/dist/utils/typegen.d.ts +1 -1
  124. package/dist/utils/typegen.js +8 -6
  125. package/dist/utils/typegen.js.map +1 -0
  126. package/dist/utils/version.d.ts +2 -1
  127. package/dist/utils/version.js +11 -8
  128. package/dist/utils/version.js.map +1 -0
  129. package/package.json +46 -13
  130. package/src/api/artifacts.ts +83 -8
  131. package/src/api/build.ts +416 -27
  132. package/src/api/create-npm-dirs.ts +56 -8
  133. package/src/api/new.ts +82 -31
  134. package/src/api/pre-publish.ts +13 -7
  135. package/src/api/rename.ts +10 -1
  136. package/src/api/templates/.gitignore.ts +1 -0
  137. package/src/api/templates/ci-template.ts +176 -150
  138. package/src/api/templates/ci.yml.ts +16 -3
  139. package/src/api/templates/js-binding.ts +150 -225
  140. package/src/api/templates/lib.rs.ts +1 -4
  141. package/src/api/templates/load-wasi-template.ts +157 -0
  142. package/src/api/templates/package.json.ts +47 -5
  143. package/src/api/templates/wasi-worker-template.ts +103 -0
  144. package/src/api/universalize.ts +8 -5
  145. package/src/api/version.ts +5 -2
  146. package/src/commands/artifacts.ts +2 -2
  147. package/src/commands/build.ts +1 -1
  148. package/src/commands/new.ts +16 -6
  149. package/src/def/artifacts.ts +22 -3
  150. package/src/def/build.ts +32 -4
  151. package/src/def/create-npm-dirs.ts +9 -0
  152. package/src/def/new.ts +28 -3
  153. package/src/def/pre-publish.ts +12 -3
  154. package/src/def/rename.ts +11 -2
  155. package/src/def/universalize.ts +9 -0
  156. package/src/def/version.ts +9 -0
  157. package/src/index.ts +2 -0
  158. package/src/utils/__tests__/__snapshots__/config.spec.ts.md +97 -0
  159. package/src/utils/__tests__/__snapshots__/config.spec.ts.snap +0 -0
  160. package/src/utils/__tests__/__snapshots__/target.spec.ts.md +28 -0
  161. package/src/utils/__tests__/__snapshots__/target.spec.ts.snap +0 -0
  162. package/src/utils/__tests__/__snapshots__/typegen.spec.ts.md +555 -0
  163. package/src/utils/__tests__/__snapshots__/typegen.spec.ts.snap +0 -0
  164. package/src/utils/__tests__/__snapshots__/version.spec.ts.md +8 -7
  165. package/src/utils/__tests__/__snapshots__/version.spec.ts.snap +0 -0
  166. package/src/utils/__tests__/config.spec.ts +81 -0
  167. package/src/utils/__tests__/typegen.spec.ts +18 -3
  168. package/src/utils/cargo.ts +1 -1
  169. package/src/utils/config.ts +104 -12
  170. package/src/utils/index.ts +0 -1
  171. package/src/utils/metadata.ts +2 -2
  172. package/src/utils/misc.ts +11 -3
  173. package/src/utils/target.ts +34 -7
  174. package/src/utils/typegen.ts +11 -5
  175. package/src/utils/version.ts +10 -8
  176. package/dist/utils/ci.d.ts +0 -11
  177. package/dist/utils/ci.js +0 -95
  178. package/src/utils/ci.ts +0 -111
@@ -8,8 +8,9 @@ const TEST_LINUX_X64_MUSL = 'test-linux-x64-musl-binding';
8
8
  const TEST_LINUX_AARCH64_GNU = 'test-linux-aarch64-gnu-binding';
9
9
  const TEST_LINUX_AARCH64_MUSL = 'test-linux-aarch64-musl-binding';
10
10
  const TEST_LINUX_ARM_GNUEABIHF = 'test-linux-arm-gnueabihf-binding';
11
+ const TEST_WASI = 'test-wasi-nodejs';
11
12
  const UNIVERSAL_MACOS = 'universal-macOS';
12
- export const createGithubActionsCIYml = (binaryName, targets) => {
13
+ export const createGithubActionsCIYml = (targets, packageManager, wasiTargetName) => {
13
14
  const allTargets = new Set(targets.flatMap((t) => {
14
15
  const platform = parseTriple(t);
15
16
  if (platform.arch === 'universal') {
@@ -18,7 +19,7 @@ export const createGithubActionsCIYml = (binaryName, targets) => {
18
19
  }
19
20
  return [t];
20
21
  }));
21
- const fullTemplate = load(YAML());
22
+ const fullTemplate = load(YAML(packageManager, wasiTargetName));
22
23
  const requiredSteps = [];
23
24
  const enableWindowsX86 = allTargets.has('x86_64-pc-windows-msvc');
24
25
  const enableMacOSX86 = allTargets.has('x86_64-apple-darwin');
@@ -29,6 +30,9 @@ export const createGithubActionsCIYml = (binaryName, targets) => {
29
30
  const enableLinuxArm7 = allTargets.has('armv7-unknown-linux-gnueabihf');
30
31
  const enableFreeBSD = allTargets.has('x86_64-unknown-freebsd');
31
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');
32
36
  fullTemplate.jobs.build.strategy.matrix.settings =
33
37
  fullTemplate.jobs.build.strategy.matrix.settings.filter(({ target }) => allTargets.has(target));
34
38
  if (!fullTemplate.jobs.build.strategy.matrix.settings.length) {
@@ -91,8 +95,15 @@ export const createGithubActionsCIYml = (binaryName, targets) => {
91
95
  else {
92
96
  requiredSteps.push(UNIVERSAL_MACOS);
93
97
  }
98
+ if (!enableWasi) {
99
+ delete fullTemplate.jobs[TEST_WASI];
100
+ }
101
+ else {
102
+ requiredSteps.push(TEST_WASI);
103
+ }
94
104
  fullTemplate.jobs.publish.needs = requiredSteps;
95
105
  return dump(fullTemplate, {
96
106
  lineWidth: 1000,
97
107
  });
98
108
  };
109
+ //# sourceMappingURL=ci.yml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ci.yml.js","sourceRoot":"","sources":["../../../src/api/templates/ci.yml.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAEpC,OAAO,EACL,aAAa,EAEb,kBAAkB,EAClB,WAAW,GACZ,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAAuB,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAE5D,MAAM,aAAa,GAAG,eAAe,CAAA;AACrC,MAAM,kBAAkB,GAAG,4BAA4B,CAAA;AACvD,MAAM,kBAAkB,GAAG,4BAA4B,CAAA;AACvD,MAAM,mBAAmB,GAAG,6BAA6B,CAAA;AACzD,MAAM,sBAAsB,GAAG,gCAAgC,CAAA;AAC/D,MAAM,uBAAuB,GAAG,iCAAiC,CAAA;AACjE,MAAM,wBAAwB,GAAG,kCAAkC,CAAA;AACnE,MAAM,SAAS,GAAG,kBAAkB,CAAA;AACpC,MAAM,eAAe,GAAG,iBAAiB,CAAA;AAEzC,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,OAAiB,EACjB,cAAuC,EACvC,cAA+B,EAC/B,EAAE;IACF,MAAM,UAAU,GAAG,IAAI,GAAG,CACxB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACpB,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACrE,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAC5C,CAAA;YACD,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAA;QACnC,CAAC;QACD,OAAO,CAAC,CAAC,CAAC,CAAA;IACZ,CAAC,CAAC,CACH,CAAA;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,CAAQ,CAAA;IAEtE,MAAM,aAAa,GAAG,EAAE,CAAA;IACxB,MAAM,gBAAgB,GAAG,UAAU,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;IACjE,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;IAC5D,MAAM,iBAAiB,GAAG,UAAU,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;IACpE,MAAM,kBAAkB,GAAG,UAAU,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;IACtE,MAAM,kBAAkB,GAAG,UAAU,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;IACtE,MAAM,mBAAmB,GAAG,UAAU,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAA;IACxE,MAAM,eAAe,GAAG,UAAU,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAA;IACvE,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;IAC9D,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;IAC/D,MAAM,UAAU,GACd,UAAU,CAAC,GAAG,CAAC,8BAA8B,CAAC;QAC9C,UAAU,CAAC,GAAG,CAAC,uBAAuB,CAAC;QACvC,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IACjC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ;QAC9C,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CACrD,CAAC,EAAE,MAAM,EAAsB,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAC3D,CAAA;IACH,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC7D,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAA;IAChD,CAAC;IAED,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IACzC,CAAC;SAAM,CAAC;QACN,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IACnC,CAAC;IAED,IAAI,CAAC,gBAAgB,IAAI,CAAC,cAAc,EAAE,CAAC;QACzC,OAAO,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;IAC9C,CAAC;SAAM,CAAC;QACN,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAA;QACvC,IAAI,gBAAgB,EAAE,CAAC;YACrB,aAAa,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;QACrC,CAAC;QACD,IAAI,cAAc,IAAI,cAAc,EAAE,CAAC;YACrC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;QACnC,CAAC;QACD,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ;YAC5D,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CACnE,CAAC,EAAE,IAAI,EAAoC,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CACxE,CAAA;QAEH,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;IACxC,CAAC;IAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,OAAO,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;IAC9C,CAAC;SAAM,CAAC;QACN,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;IACxC,CAAC;IAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,OAAO,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;IAC/C,CAAC;SAAM,CAAC;QACN,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;IACzC,CAAC;IAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,OAAO,YAAY,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;IAClD,CAAC;SAAM,CAAC;QACN,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;IAC5C,CAAC;IAED,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,OAAO,YAAY,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;IACnD,CAAC;SAAM,CAAC;QACN,aAAa,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;IAC7C,CAAC;IAED,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,YAAY,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;IACpD,CAAC;SAAM,CAAC;QACN,aAAa,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;IAC9C,CAAC;IAED,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IAC3C,CAAC;SAAM,CAAC;QACN,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IACrC,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACrC,CAAC;SAAM,CAAC;QACN,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC/B,CAAC;IAED,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,aAAa,CAAA;IAE/C,OAAO,IAAI,CAAC,YAAY,EAAE;QACxB,SAAS,EAAE,IAAI;KAChB,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -6,3 +6,4 @@ export * from './ci.yml.js';
6
6
  export * from './lib.rs.js';
7
7
  export * from './package.json.js';
8
8
  export * from './js-binding.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
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,258 +1,183 @@
1
1
  export function createCjsBinding(localName, pkgName, idents) {
2
+ function requireTuple(tuple) {
3
+ return `try {
4
+ return require('./${localName}.${tuple}.node')
5
+ } catch (e) {
6
+ loadErrors.push(e)
7
+ }
8
+ try {
9
+ return require('${pkgName}-${tuple}')
10
+ } catch (e) {
11
+ loadErrors.push(e)
12
+ }
13
+ `;
14
+ }
2
15
  return `// prettier-ignore
3
16
  /* eslint-disable */
4
17
  /* auto-generated by NAPI-RS */
5
18
 
6
- const { existsSync, readFileSync } = require('fs')
7
- const { join } = require('path')
8
-
9
- const { platform, arch } = process
19
+ const { readFileSync } = require('fs')
10
20
 
11
21
  let nativeBinding = null
12
- let localFileExisted = false
13
- let loadError = null
22
+ const loadErrors = []
14
23
 
15
- function isMusl() {
16
- // For Node 10
17
- if (!process.report || typeof process.report.getReport !== 'function') {
18
- try {
19
- const lddPath = require('child_process').execSync('which ldd').toString().trim()
20
- return readFileSync(lddPath, 'utf8').includes('musl')
21
- } catch (e) {
24
+ const isMusl = () => {
25
+ let musl = false
26
+ if (process.platform === 'linux') {
27
+ musl = isMuslFromFilesystem()
28
+ if (musl === null) {
29
+ musl = isMuslFromReport()
30
+ }
31
+ if (musl === null) {
32
+ musl = isMuslFromChildProcess()
33
+ }
34
+ }
35
+ return musl
36
+ }
37
+
38
+ const isFileMusl = (f) => f.includes('libc.musl-') || f.includes('ld-musl-')
39
+
40
+ const isMuslFromFilesystem = () => {
41
+ try {
42
+ return readFileSync('/usr/bin/ldd', 'utf-8').includes('musl')
43
+ } catch {
44
+ return null
45
+ }
46
+ }
47
+
48
+ const isMuslFromReport = () => {
49
+ const report = typeof process.report.getReport === 'function' ? process.report.getReport() : null
50
+ if (!report) {
51
+ return null
52
+ }
53
+ if (report.header && report.header.glibcVersionRuntime) {
54
+ return false
55
+ }
56
+ if (Array.isArray(report.sharedObjects)) {
57
+ if (report.sharedObjects.some(isFileMusl)) {
22
58
  return true
23
59
  }
24
- } else {
25
- const { glibcVersionRuntime } = process.report.getReport().header
26
- return !glibcVersionRuntime
27
60
  }
61
+ return false
28
62
  }
29
63
 
30
- switch (platform) {
31
- case 'android':
32
- switch (arch) {
33
- case 'arm64':
34
- localFileExisted = existsSync(join(__dirname, '${localName}.android-arm64.node'))
35
- try {
36
- if (localFileExisted) {
37
- nativeBinding = require('./${localName}.android-arm64.node')
38
- } else {
39
- nativeBinding = require('${pkgName}-android-arm64')
40
- }
41
- } catch (e) {
42
- loadError = e
43
- }
44
- break
45
- case 'arm':
46
- localFileExisted = existsSync(join(__dirname, '${localName}.android-arm-eabi.node'))
47
- try {
48
- if (localFileExisted) {
49
- nativeBinding = require('./${localName}.android-arm-eabi.node')
50
- } else {
51
- nativeBinding = require('${pkgName}-android-arm-eabi')
52
- }
53
- } catch (e) {
54
- loadError = e
55
- }
56
- break
57
- default:
58
- throw new Error(\`Unsupported architecture on Android \${arch}\`)
64
+ const isMuslFromChildProcess = () => {
65
+ try {
66
+ return require('child_process').execSync('ldd --version', { encoding: 'utf8' }).includes('musl')
67
+ } catch (e) {
68
+ // If we reach this case, we don't know if the system is musl or not, so is better to just fallback to false
69
+ return false
70
+ }
71
+ }
72
+
73
+ function requireNative() {
74
+ if (process.platform === 'android') {
75
+ if (process.arch === 'arm64') {
76
+ ${requireTuple('android-arm64')}
77
+ } else if (process.arch === 'arm') {
78
+ ${requireTuple('android-arm-eabi')}
79
+ } else {
80
+ loadErrors.push(new Error(\`Unsupported architecture on Android \${process.arch}\`))
59
81
  }
60
- break
61
- case 'win32':
62
- switch (arch) {
63
- case 'x64':
64
- localFileExisted = existsSync(
65
- join(__dirname, '${localName}.win32-x64-msvc.node')
66
- )
67
- try {
68
- if (localFileExisted) {
69
- nativeBinding = require('./${localName}.win32-x64-msvc.node')
70
- } else {
71
- nativeBinding = require('${pkgName}-win32-x64-msvc')
72
- }
73
- } catch (e) {
74
- loadError = e
75
- }
76
- break
77
- case 'ia32':
78
- localFileExisted = existsSync(
79
- join(__dirname, '${localName}.win32-ia32-msvc.node')
80
- )
81
- try {
82
- if (localFileExisted) {
83
- nativeBinding = require('./${localName}.win32-ia32-msvc.node')
84
- } else {
85
- nativeBinding = require('${pkgName}-win32-ia32-msvc')
86
- }
87
- } catch (e) {
88
- loadError = e
89
- }
90
- break
91
- case 'arm64':
92
- localFileExisted = existsSync(
93
- join(__dirname, '${localName}.win32-arm64-msvc.node')
94
- )
95
- try {
96
- if (localFileExisted) {
97
- nativeBinding = require('./${localName}.win32-arm64-msvc.node')
98
- } else {
99
- nativeBinding = require('${pkgName}-win32-arm64-msvc')
100
- }
101
- } catch (e) {
102
- loadError = e
103
- }
104
- break
105
- default:
106
- throw new Error(\`Unsupported architecture on Windows: \${arch}\`)
82
+ } else if (process.platform === 'win32') {
83
+ if (process.arch === 'x64') {
84
+ ${requireTuple('win32-x64-msvc')}
85
+ } else if (process.arch === 'ia32') {
86
+ ${requireTuple('win32-ia32-msvc')}
87
+ } else if (process.arch === 'arm64') {
88
+ ${requireTuple('win32-arm64-msvc')}
89
+ } else {
90
+ loadErrors.push(new Error(\`Unsupported architecture on Windows: \${process.arch}\`))
107
91
  }
108
- break
109
- case 'darwin':
110
- localFileExisted = existsSync(join(__dirname, '${localName}.darwin-universal.node'))
111
- try {
112
- if (localFileExisted) {
113
- nativeBinding = require('./${localName}.darwin-universal.node')
92
+ } else if (process.platform === 'darwin') {
93
+ ${requireTuple('darwin-universal')}
94
+ if (process.arch === 'x64') {
95
+ ${requireTuple('darwin-x64')}
96
+ } else if (process.arch === 'arm64') {
97
+ ${requireTuple('darwin-arm64')}
98
+ } else {
99
+ loadErrors.push(new Error(\`Unsupported architecture on macOS: \${process.arch}\`))
100
+ }
101
+ } else if (process.platform === 'freebsd') {
102
+ if (process.arch === 'x64') {
103
+ ${requireTuple('freebsd-x64')}
104
+ } else if (process.arch === 'arm64') {
105
+ ${requireTuple('freebsd-arm64')}
106
+ } else {
107
+ loadErrors.push(new Error(\`Unsupported architecture on FreeBSD: \${process.arch}\`))
108
+ }
109
+ } else if (process.platform === 'linux') {
110
+ if (process.arch === 'x64') {
111
+ if (isMusl()) {
112
+ ${requireTuple('linux-x64-musl')}
113
+ } else {
114
+ ${requireTuple('linux-x64-gnu')}
115
+ }
116
+ } else if (process.arch === 'arm64') {
117
+ if (isMusl()) {
118
+ ${requireTuple('linux-arm64-musl')}
119
+ } else {
120
+ ${requireTuple('linux-arm64-gnu')}
121
+ }
122
+ } else if (process.arch === 'arm') {
123
+ if (isMusl()) {
124
+ ${requireTuple('linux-arm-musleabihf')}
125
+ } else {
126
+ ${requireTuple('linux-arm-gnueabihf')}
127
+ }
128
+ } else if (process.arch === 'riscv64') {
129
+ if (isMusl()) {
130
+ ${requireTuple('linux-riscv64-musl')}
114
131
  } else {
115
- nativeBinding = require('${pkgName}-darwin-universal')
132
+ ${requireTuple('linux-riscv64-gnu')}
116
133
  }
117
- break
118
- } catch {}
119
- switch (arch) {
120
- case 'x64':
121
- localFileExisted = existsSync(join(__dirname, '${localName}.darwin-x64.node'))
122
- try {
123
- if (localFileExisted) {
124
- nativeBinding = require('./${localName}.darwin-x64.node')
125
- } else {
126
- nativeBinding = require('${pkgName}-darwin-x64')
127
- }
128
- } catch (e) {
129
- loadError = e
130
- }
131
- break
132
- case 'arm64':
133
- localFileExisted = existsSync(
134
- join(__dirname, '${localName}.darwin-arm64.node')
135
- )
136
- try {
137
- if (localFileExisted) {
138
- nativeBinding = require('./${localName}.darwin-arm64.node')
139
- } else {
140
- nativeBinding = require('${pkgName}-darwin-arm64')
141
- }
142
- } catch (e) {
143
- loadError = e
144
- }
145
- break
146
- default:
147
- throw new Error(\`Unsupported architecture on macOS: \${arch}\`)
134
+ } else if (process.arch === 'ppc64') {
135
+ ${requireTuple('linux-ppc64-gnu')}
136
+ } else if (process.arch === 's390x') {
137
+ ${requireTuple('linux-s390x-gnu')}
138
+ } else {
139
+ loadErrors.push(new Error(\`Unsupported architecture on Linux: \${process.arch}\`))
148
140
  }
149
- break
150
- case 'freebsd':
151
- if (arch !== 'x64') {
152
- throw new Error(\`Unsupported architecture on FreeBSD: \${arch}\`)
141
+ } else {
142
+ loadErrors.push(new Error(\`Unsupported OS: \${process.platform}, architecture: \${process.arch}\`))
143
+ }
144
+ }
145
+
146
+ nativeBinding = requireNative()
147
+
148
+ if (!nativeBinding || process.env.NAPI_RS_FORCE_WASI) {
149
+ try {
150
+ nativeBinding = require('./${localName}.wasi.cjs')
151
+ } catch (err) {
152
+ if (process.env.NAPI_RS_FORCE_WASI) {
153
+ console.error(err)
153
154
  }
154
- localFileExisted = existsSync(join(__dirname, '${localName}.freebsd-x64.node'))
155
+ }
156
+ if (!nativeBinding) {
155
157
  try {
156
- if (localFileExisted) {
157
- nativeBinding = require('./${localName}.freebsd-x64.node')
158
- } else {
159
- nativeBinding = require('${pkgName}-freebsd-x64')
158
+ nativeBinding = require('${pkgName}-wasm32-wasi')
159
+ } catch (err) {
160
+ if (process.env.NAPI_RS_FORCE_WASI) {
161
+ console.error(err)
160
162
  }
161
- } catch (e) {
162
- loadError = e
163
163
  }
164
- break
165
- case 'linux':
166
- switch (arch) {
167
- case 'x64':
168
- if (isMusl()) {
169
- localFileExisted = existsSync(
170
- join(__dirname, '${localName}.linux-x64-musl.node')
171
- )
172
- try {
173
- if (localFileExisted) {
174
- nativeBinding = require('./${localName}.linux-x64-musl.node')
175
- } else {
176
- nativeBinding = require('${pkgName}-linux-x64-musl')
177
- }
178
- } catch (e) {
179
- loadError = e
180
- }
181
- } else {
182
- localFileExisted = existsSync(
183
- join(__dirname, '${localName}.linux-x64-gnu.node')
184
- )
185
- try {
186
- if (localFileExisted) {
187
- nativeBinding = require('./${localName}.linux-x64-gnu.node')
188
- } else {
189
- nativeBinding = require('${pkgName}-linux-x64-gnu')
190
- }
191
- } catch (e) {
192
- loadError = e
193
- }
194
- }
195
- break
196
- case 'arm64':
197
- if (isMusl()) {
198
- localFileExisted = existsSync(
199
- join(__dirname, '${localName}.linux-arm64-musl.node')
200
- )
201
- try {
202
- if (localFileExisted) {
203
- nativeBinding = require('./${localName}.linux-arm64-musl.node')
204
- } else {
205
- nativeBinding = require('${pkgName}-linux-arm64-musl')
206
- }
207
- } catch (e) {
208
- loadError = e
209
- }
210
- } else {
211
- localFileExisted = existsSync(
212
- join(__dirname, '${localName}.linux-arm64-gnu.node')
213
- )
214
- try {
215
- if (localFileExisted) {
216
- nativeBinding = require('./${localName}.linux-arm64-gnu.node')
217
- } else {
218
- nativeBinding = require('${pkgName}-linux-arm64-gnu')
219
- }
220
- } catch (e) {
221
- loadError = e
222
- }
223
- }
224
- break
225
- case 'arm':
226
- localFileExisted = existsSync(
227
- join(__dirname, '${localName}.linux-arm-gnueabihf.node')
228
- )
229
- try {
230
- if (localFileExisted) {
231
- nativeBinding = require('./${localName}.linux-arm-gnueabihf.node')
232
- } else {
233
- nativeBinding = require('${pkgName}-linux-arm-gnueabihf')
234
- }
235
- } catch (e) {
236
- loadError = e
237
- }
238
- break
239
- default:
240
- throw new Error(\`Unsupported architecture on Linux: \${arch}\`)
241
- }
242
- break
243
- default:
244
- throw new Error(\`Unsupported OS: \${platform}, architecture: \${arch}\`)
164
+ }
245
165
  }
246
166
 
247
167
  if (!nativeBinding) {
248
- if (loadError) {
249
- throw loadError
168
+ if (loadErrors.length > 0) {
169
+ // TODO Link to documentation with potential fixes
170
+ // - The package owner could build/publish bindings for this arch
171
+ // - The user may need to bundle the correct files
172
+ // - The user may need to re-install node_modules to get new packages
173
+ throw new Error('Failed to load native binding', { cause: loadErrors })
250
174
  }
251
175
  throw new Error(\`Failed to load native binding\`)
252
176
  }
253
177
 
254
178
  ${idents
255
- .map((ident) => `module.exports.${ident} = binding.${ident}`)
179
+ .map((ident) => `module.exports.${ident} = nativeBinding.${ident}`)
256
180
  .join('\n')}
257
181
  `;
258
182
  }
183
+ //# sourceMappingURL=js-binding.js.map
@@ -0,0 +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,SAAS,YAAY,CAAC,KAAa;QACjC,OAAO;4BACiB,SAAS,IAAI,KAAK;;;;;0BAKpB,OAAO,IAAI,KAAK;;;;CAIzC,CAAA;IACC,CAAC;IAED,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA6DD,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;;;;;;;;;;;;;;;;;;;;EAoBtC,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,10 +1,8 @@
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 {
8
5
  a + b
9
6
  }
10
7
  `;
8
+ //# sourceMappingURL=lib.rs.js.map
@@ -0,0 +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;;;;;;CAMhC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const createWasiBrowserBinding: (wasiFilename: string, wasiRegisterFunctions: string[], initialMemory?: number, maximumMemory?: number) => string;
2
+ export declare const createWasiBinding: (wasmFileName: string, packageName: string, wasiRegisterFunctions: string[], initialMemory?: number, maximumMemory?: number) => string;
@@ -0,0 +1,146 @@
1
+ export const createWasiBrowserBinding = (wasiFilename, wasiRegisterFunctions, initialMemory = 4000, maximumMemory = 65536) => `import {
2
+ instantiateNapiModuleSync as __emnapiInstantiateNapiModuleSync,
3
+ getDefaultContext as __emnapiGetDefaultContext,
4
+ WASI as __WASI,
5
+ } from '@napi-rs/wasm-runtime'
6
+ import { Volume as __Volume, createFsFromVolume as __createFsFromVolume } from '@napi-rs/wasm-runtime/fs'
7
+
8
+ import __wasmUrl from './${wasiFilename}.wasm?url'
9
+
10
+ const __fs = __createFsFromVolume(
11
+ __Volume.fromJSON({
12
+ '/': null,
13
+ }),
14
+ )
15
+
16
+ const __wasi = new __WASI({
17
+ version: 'preview1',
18
+ fs: __fs,
19
+ })
20
+
21
+ const __emnapiContext = __emnapiGetDefaultContext()
22
+
23
+ const __sharedMemory = new WebAssembly.Memory({
24
+ initial: ${initialMemory},
25
+ maximum: ${maximumMemory},
26
+ shared: true,
27
+ })
28
+
29
+ const __wasmFile = await fetch(__wasmUrl).then((res) => res.arrayBuffer())
30
+
31
+ const {
32
+ instance: __napiInstance,
33
+ module: __wasiModule,
34
+ napiModule: __napiModule,
35
+ } = __emnapiInstantiateNapiModuleSync(__wasmFile, {
36
+ context: __emnapiContext,
37
+ asyncWorkPoolSize: 4,
38
+ wasi: __wasi,
39
+ onCreateWorker() {
40
+ return new Worker(new URL('./wasi-worker-browser.mjs', import.meta.url), {
41
+ type: 'module',
42
+ })
43
+ },
44
+ overwriteImports(importObject) {
45
+ importObject.env = {
46
+ ...importObject.env,
47
+ ...importObject.napi,
48
+ ...importObject.emnapi,
49
+ memory: __sharedMemory,
50
+ }
51
+ return importObject
52
+ },
53
+ beforeInit({ instance }) {
54
+ __napi_rs_initialize_modules(instance)
55
+ },
56
+ })
57
+
58
+ function __napi_rs_initialize_modules(__napiInstance) {
59
+ ${wasiRegisterFunctions
60
+ .map((name) => ` __napiInstance.exports['${name}']?.()`)
61
+ .join('\n')}
62
+ }
63
+ `;
64
+ export const createWasiBinding = (wasmFileName, packageName, wasiRegisterFunctions, initialMemory = 4000, maximumMemory = 65536) => `/* eslint-disable */
65
+ /* prettier-ignore */
66
+
67
+ /* auto-generated by NAPI-RS */
68
+
69
+ const __nodeFs= require('node:fs')
70
+ const __nodePath = require('node:path')
71
+ const { WASI: __nodeWASI } = require('node:wasi')
72
+ const { Worker } = require('node:worker_threads')
73
+
74
+ const {
75
+ instantiateNapiModuleSync: __emnapiInstantiateNapiModuleSync,
76
+ getDefaultContext: __emnapiGetDefaultContext,
77
+ } = require('@napi-rs/wasm-runtime')
78
+
79
+ const __wasi = new __nodeWASI({
80
+ version: 'preview1',
81
+ env: process.env,
82
+ preopens: {
83
+ '/': '/'
84
+ }
85
+ })
86
+
87
+ const __emnapiContext = __emnapiGetDefaultContext()
88
+
89
+ const __sharedMemory = new WebAssembly.Memory({
90
+ initial: ${initialMemory},
91
+ maximum: ${maximumMemory},
92
+ shared: true,
93
+ })
94
+
95
+ let __wasmFilePath = __nodePath.join(__dirname, '${wasmFileName}.wasm')
96
+ const __wasmDebugFilePath = __nodePath.join(__dirname, '${wasmFileName}.debug.wasm')
97
+
98
+ if (__nodeFs.existsSync(__wasmDebugFilePath)) {
99
+ __wasmFilePath = __wasmDebugFilePath
100
+ } else if (!__nodeFs.existsSync(__wasmFilePath)) {
101
+ try {
102
+ __wasmFilePath = __nodePath.resolve('${packageName}-wasm32-wasi')
103
+ } catch {
104
+ throw new Error('Cannot find ${wasmFileName}.wasm file, and ${packageName}-wasm32-wasi package is not installed.')
105
+ }
106
+ }
107
+
108
+ const { instance: __napiInstance, module: __wasiModule, napiModule: __napiModule } = __emnapiInstantiateNapiModuleSync(__nodeFs.readFileSync(__wasmFilePath), {
109
+ context: __emnapiContext,
110
+ asyncWorkPoolSize: (function() {
111
+ const threadsSizeFromEnv = Number(process.env.NAPI_RS_ASYNC_WORK_POOL_SIZE ?? process.env.UV_THREADPOOL_SIZE)
112
+ // NaN > 0 is false
113
+ if (threadsSizeFromEnv > 0) {
114
+ return threadsSizeFromEnv
115
+ } else {
116
+ return 4
117
+ }
118
+ })(),
119
+ wasi: __wasi,
120
+ onCreateWorker() {
121
+ return new Worker(__nodePath.join(__dirname, 'wasi-worker.mjs'), {
122
+ env: process.env,
123
+ execArgv: ['--experimental-wasi-unstable-preview1'],
124
+ })
125
+ },
126
+ overwriteImports(importObject) {
127
+ importObject.env = {
128
+ ...importObject.env,
129
+ ...importObject.napi,
130
+ ...importObject.emnapi,
131
+ memory: __sharedMemory,
132
+ }
133
+ return importObject
134
+ },
135
+ beforeInit({ instance }) {
136
+ __napi_rs_initialize_modules(instance)
137
+ }
138
+ })
139
+
140
+ function __napi_rs_initialize_modules(__napiInstance) {
141
+ ${wasiRegisterFunctions
142
+ .map((name) => ` __napiInstance.exports['${name}']?.()`)
143
+ .join('\n')}
144
+ }
145
+ `;
146
+ //# 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,CAAC;;;;;;;2BAOsB,YAAY;;;;;;;;;;;;;;;;aAgB1B,aAAa;aACb,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkCxB,qBAAqB;KACpB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,6BAA6B,IAAI,QAAQ,CAAC;KACxD,IAAI,CAAC,IAAI,CAAC;;CAEZ,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;;;;;;;;;;;;;;;;;;;;;;;;;;aA0BQ,aAAa;aACb,aAAa;;;;mDAIyB,YAAY;0DACL,YAAY;;;;;;2CAM3B,WAAW;;mCAEnB,YAAY,mBAAmB,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqC3E,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>;