Use Query cancellation and native mutation results instead of HTTP registries, access epochs and copied scope state. Keep local auth ordering and mutation identity fences. Allow staged generated files to remain excluded from ESLint. Backend contract: WealthLedger/backend@d698ed9 BREAKING CHANGE: drop investment stateVersion/progress/resources from the client contract and use data/metadata readiness instead of rewritten query status. Cross-tab auth may require re-login.
25 lines
737 B
JavaScript
25 lines
737 B
JavaScript
const assert = require("node:assert/strict");
|
|
const { execFileSync } = require("node:child_process");
|
|
|
|
const { version } = require("../package.json");
|
|
|
|
const git = (...arguments_) =>
|
|
execFileSync("git", arguments_, { encoding: "utf8" }).trim(); // eslint-disable-line sonarjs/no-os-command-from-path -- Repository checks use the developer/CI Git installation; arguments never invoke a shell.
|
|
|
|
const tag_ = git(
|
|
"tag",
|
|
"--merged",
|
|
"HEAD",
|
|
"--list",
|
|
"v[0-9]*",
|
|
"--sort=-version:refname",
|
|
)
|
|
.split("\n")
|
|
.find(tag => /^v\d+\.\d+\.\d+$/.test(tag));
|
|
|
|
assert.equal(
|
|
version,
|
|
tag_?.slice(1) ?? "0.0.0",
|
|
"Version is already prepared or release tags are missing. Fetch tags; finish the existing release before preparing another.",
|
|
);
|