neo-devpack-solidity 0.22.0

Production-focused Solidity-to-NeoVM compilation system
Documentation
const assert = require("node:assert/strict");
const fs = require("node:fs");
const path = require("node:path");

describe("Devpack package metadata", function () {
  it("uses Neo-native task scripts instead of stale EVM helper flows", function () {
    const packageJson = require("../package.json");
    const hardhatConfig = fs.readFileSync(path.join(__dirname, "..", "hardhat.config.js"), "utf8");

    assert.match(packageJson.scripts["deploy:testnet"], /\bneo-deploy\b/);
    assert.doesNotMatch(packageJson.scripts["deploy:testnet"], /scripts\/deploy\.js/);
    assert.match(packageJson.scripts["deploy:mainnet"], /\bneo-deploy\b/);
    assert.match(packageJson.scripts.verify, /\bneo-verify\b/);
    assert.match(packageJson.scripts.test, /\bneo-compile\b.*--force(?:\s|$)/);
    assert.match(packageJson.scripts["test:integration"], /\bneo-compile\b.*--force(?:\s|$)/);
    assert.doesNotMatch(packageJson.scripts.test, /\b--force\s+true\b/);
    assert.doesNotMatch(packageJson.scripts["test:integration"], /\b--force\s+true\b/);
    assert.ok(!packageJson.files.includes("dist/"));
    assert.ok(!("@r3e-network/neo-devpack-solidity" in (packageJson.peerDependencies || {})));
    assert.ok(!("lint" in packageJson.scripts));
    assert.ok(!("size" in packageJson.scripts));
    assert.ok(!("coverage" in packageJson.scripts));
    assert.ok(!("docs" in packageJson.scripts));
    assert.match(hardhatConfig, /solidity:\s*\{\s*version:\s*"0\.8\.34"/);
    assert.match(hardhatConfig, /config\.neoSolc\s*=\s*\{\s*solidity:\s*\{\s*version:\s*"0\.8\.34"/s);

    assert.doesNotMatch(hardhatConfig, /@nomicfoundation\/hardhat-toolbox/);
    assert.doesNotMatch(hardhatConfig, /hardhat-contract-sizer/);
    assert.doesNotMatch(hardhatConfig, /\bdocgen:\s*\{/);
  });
});