@napi-rs/cli 3.8.0 → 3.8.1

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@napi-rs/cli",
3
- "version": "3.8.0",
3
+ "version": "3.8.1",
4
4
  "description": "Cli tools for napi-rs",
5
5
  "author": "LongYinan <lynweklm@gmail.com>",
6
6
  "homepage": "https://napi.rs/",
@@ -450,6 +450,52 @@ test('should set @emnapi/core and @emnapi/runtime versions to match emnapi for W
450
450
  t.is(scopedPackageJson.dependencies['@emnapi/runtime'], emnapiVersion)
451
451
  })
452
452
 
453
+ test.serial(
454
+ 'should keep generated WASM runtime dependencies within the resolved minor',
455
+ async (t) => {
456
+ const { tmpDir, packageJsonPath } = t.context
457
+ const registryServer = await startRegistryServer({
458
+ 'dist-tags': {
459
+ latest: '1.1.6',
460
+ },
461
+ })
462
+
463
+ process.env.npm_config_registry = `${registryServer.origin}/npm`
464
+
465
+ const packageJson = {
466
+ name: 'test-wasm-runtime-range',
467
+ version: '1.0.0',
468
+ napi: {
469
+ binaryName: 'test-wasm-runtime-range',
470
+ targets: ['wasm32-wasip1', 'wasm32-wasip1-threads'],
471
+ },
472
+ }
473
+
474
+ await writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2))
475
+
476
+ try {
477
+ await createNpmDirs({
478
+ cwd: tmpDir,
479
+ packageJsonPath: 'package.json',
480
+ })
481
+
482
+ for (const packageDir of ['wasm32-wasip1', 'wasm32-wasi']) {
483
+ const scopedPackageJson = JSON.parse(
484
+ await readFile(
485
+ join(tmpDir, 'npm', packageDir, 'package.json'),
486
+ 'utf-8',
487
+ ),
488
+ )
489
+
490
+ t.is(scopedPackageJson.dependencies['@napi-rs/wasm-runtime'], '~1.1.6')
491
+ }
492
+ t.deepEqual(registryServer.requests, ['/npm/@napi-rs/wasm-runtime'])
493
+ } finally {
494
+ await registryServer.close()
495
+ }
496
+ },
497
+ )
498
+
453
499
  test.serial(
454
500
  'should reject an empty latest dist-tag when resolving wasm runtime metadata',
455
501
  async (t) => {
@@ -554,7 +554,9 @@ async function createNpmDirsUnlocked(
554
554
  }
555
555
  const emnapiVersion = require('emnapi/package.json').version
556
556
  scopedPackageJson.dependencies = {
557
- '@napi-rs/wasm-runtime': `^${wasmRuntimeVersion}`,
557
+ // Runtime minor releases can target a different emnapi generation.
558
+ // Keep generated packages on the resolved minor while allowing fixes.
559
+ '@napi-rs/wasm-runtime': `~${wasmRuntimeVersion}`,
558
560
  '@emnapi/core': emnapiVersion,
559
561
  '@emnapi/runtime': emnapiVersion,
560
562
  ...(wasm?.browser?.buffer === true &&