watskeburt 0.11.0 → 0.11.2

Sign up to get free protection for your applications and to get access to all the features.
package/README.md CHANGED
@@ -35,13 +35,14 @@ console.log(getSHASync());
35
35
  // files not staged for commit and files not under revision control)
36
36
  /** @type {import('watskeburt').IChange[]} */
37
37
  const lChangedFiles = await list("main");
38
- // or, with the sync interface:
38
+ // or with the synchronous interface:
39
39
  // const lChangedFiles = listSync("main");
40
40
 
41
41
  // list all files that differ between 'v0.6.1' and 'v0.7.1' (by definition
42
42
  // won't include files staged for commit and/ or not under revision control)
43
43
  /** @type {import('watskeburt').IChange[]} */
44
44
  const lChangedFiles = await list("v0.6.1", "v0.7.1");
45
+ // or with the synchronous interface:
45
46
  // const lChangedFiles = listSync("v0.6.1", "v0.7.1");
46
47
 
47
48
  // As a third parameter you can pass some options
@@ -52,8 +53,8 @@ const lChangedFiles = await list("main", null, {
52
53
  trackedOnly: false, // when set to true leaves out files not under revision control
53
54
  outputType: "object", // other options: "json" and "regex" (as used in the CLI)
54
55
  });
55
- // or with synchronous code:
56
- // const lChangedFiles = listSynd("main", null, {
56
+ // or with the synchronous interface:
57
+ // const lChangedFiles = listSync("main", null, {
57
58
  // trackedOnly: false, // when set to true leaves out files not under revision control
58
59
  // outputType: "object", // other options: "json" and "regex" (as used in the CLI)
59
60
  // });
@@ -86,7 +87,7 @@ For now there's also a simple command line interface
86
87
  ```shell
87
88
  # list all JavaScript-ish files changed since main in a regular expression
88
89
  $ npx watskeburt main
89
- ^(src/cli.mjs|src/formatters/regex.mjs|src/version.mjs)$
90
+ ^(src/cli\.mjs|src/formatters/regex\.mjs|src/version\.mjs)$
90
91
  ```
91
92
 
92
93
  By default this returns a regex that contains all changed files that could be
@@ -115,4 +116,4 @@ Options:
115
116
  _watskeburt_ is a fast pronunciation of the Dutch "wat is er gebeurd?"
116
117
  (_what has happened?_) or "wat er is gebeurd" (_what has happened_). It's
117
118
  also the title of a song by the Dutch band "De Jeugd van Tegenwoordig"
118
- (_Youth these days..._).
119
+ (_Youth these days_).
package/bin/version.js CHANGED
@@ -1,2 +1,2 @@
1
1
  // generated by tools/get-version.ts - edits will be overwritten
2
- export const VERSION = "0.11.0";
2
+ export const VERSION = "0.11.2";
@@ -1 +1 @@
1
- "use strict";var y=Object.defineProperty;var _=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var M=Object.prototype.hasOwnProperty;var b=(t,e)=>{for(var n in e)y(t,n,{get:e[n],enumerable:!0})},B=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of k(e))!M.call(t,o)&&o!==n&&y(t,o,{get:()=>e[o],enumerable:!(r=_(e,o))||r.enumerable});return t};var H=t=>B(y({},"__esModule",{value:!0}),t);var K={};b(K,{getSHA:()=>m,getSHASync:()=>p,list:()=>z,listSync:()=>q});module.exports=H(K);var T=require("os"),U=/^(?<changeType>[ACDMRTUXB])(?<similarity>[0-9]{3})?[ \t]+(?<name>[^ \t]+)[ \t]*(?<newName>[^ \t]+)?$/,j=/^(?<stagedChangeType>[ ACDMRTUXB?!])(?<unStagedChangeType>[ ACDMRTUXB?!])[ \t]+(?<name>[^ \t]+)(( -> )(?<newName>[^ \t]+))?$/,R={A:"added",C:"copied",D:"deleted",M:"modified",R:"renamed",T:"type changed",U:"unmerged",B:"pairing broken"," ":"unmodified","?":"untracked","!":"ignored"};function d(t){return R[t]??"unknown"}function v(t){let e=t.match(j),n={};if(e!=null&&e.groups){let r=d(e.groups.stagedChangeType),o=d(e.groups.unStagedChangeType);n.changeType=r==="unmodified"?o:r,e.groups.newName?(n.name=e.groups.newName,n.oldName=e.groups.name):n.name=e.groups.name}return n}function F(t){let e=t.match(U),n={};return e!=null&&e.groups&&(n.changeType=d(e.groups.changeType),e.groups.newName?(n.name=e.groups.newName,n.oldName=e.groups.name):n.name=e.groups.name),n}function h(t){return t.split(T.EOL).filter(Boolean).map(v).filter(({name:e,changeType:n})=>!!e&&!!n)}function S(t){return t.split(T.EOL).filter(Boolean).map(F).filter(({name:e,changeType:n})=>!!e&&!!n)}var u=require("child_process");function N(t){return t instanceof Buffer?t.toString("utf8"):t}function G(t){throw t.code==="ENOENT"?new Error("git executable not found"):new Error(`internal spawn error: ${t}`)}function w(t,e,n){let r=n("git",t,{cwd:process.cwd(),env:process.env});if(r.error&&G(r.error),r.status===0)return N(r.stdout);throw new Error(e[r.status??0]||`internal git error: ${r.status} (${N(r.stderr)})`)}function A(t=u.spawnSync){let e={129:`'${process.cwd()}' does not seem to be a git repository`};return w(["status","--porcelain"],e,t)}function D(t,e,n=u.spawnSync){let r={128:`revision '${t}' ${e?`(or '${e}') `:""}unknown`,129:`'${process.cwd()}' does not seem to be a git repository`};return w(e?["diff",t,e,"--name-status"]:["diff",t,"--name-status"],r,n)}function p(t=u.spawnSync){return w(["rev-parse","HEAD"],{},t).slice(0,40)}var L=require("path"),X=new Set([".cjs",".cjsx",".coffee",".csx",".cts",".js",".json",".jsx",".litcoffee",".ls",".mjs",".mts",".svelte",".ts",".tsx",".vue",".vuex"]),J=new Set(["modified","added","renamed","copied","untracked"]);function C(t,e=X,n=J){return`^(${t.filter(o=>n.has(o.changeType)).map(({name:o})=>o).filter(o=>e.has((0,L.extname)(o))).join("|")})$`}function I(t){return JSON.stringify(t,null,2)}var Y=t=>t,V=new Map([["regex",C],["json",I]]);function f(t,e){return(V.get(e??"unknown")||Y)(t)}var l=require("child_process");function O(t){return t instanceof Buffer?t.toString("utf8"):t}function E(t,e,n){let r=n("git",t,{cwd:process.cwd(),env:process.env}),o="",a="";return new Promise((c,i)=>{var g,x;(g=r.stdout)==null||g.on("data",s=>{o=o.concat(s)}),(x=r.stderr)==null||x.on("data",s=>{a=a.concat(s)}),r.on("close",s=>{s===0?c(O(o)):i(new Error(e[s??0]||`internal git error: ${s} (${O(a)})`))}),r.on("error",s=>{(s==null?void 0:s.code)==="ENOENT"?i(new Error("git executable not found")):i(new Error(`internal spawn error: ${s}`))})})}async function $(t=l.spawn){let e={129:`'${process.cwd()}' does not seem to be a git repository`};return await E(["status","--porcelain"],e,t)}async function P(t,e,n=l.spawn){let r={128:`revision '${t}' ${e?`(or '${e}') `:""}unknown`,129:`'${process.cwd()}' does not seem to be a git repository`};return await E(e?["diff",t,e,"--name-status"]:["diff",t,"--name-status"],r,n)}async function m(t=l.spawn){return(await E(["rev-parse","HEAD"],{},t)).slice(0,40)}function q(t,e,n){let r=t||p(),o=n||{},a=S(D(r,e));return o.trackedOnly||(a=a.concat(h(A()).filter(({changeType:c})=>c==="untracked"))),f(a,o.outputType)}async function z(t,e,n){let r=t||await m(),o=n||{},[a,c]=await Promise.all([P(r,e),o.trackedOnly?"":$()]),i=S(a);return o.trackedOnly||(i=i.concat(h(c).filter(({changeType:g})=>g==="untracked"))),f(i,o.outputType)}0&&(module.exports={getSHA,getSHASync,list,listSync});
1
+ "use strict";var l=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var _=Object.getOwnPropertyNames;var k=Object.prototype.hasOwnProperty;var M=(t,e)=>{for(var n in e)l(t,n,{get:e[n],enumerable:!0})},H=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of _(e))!k.call(t,s)&&s!==n&&l(t,s,{get:()=>e[s],enumerable:!(r=v(e,s))||r.enumerable});return t};var b=t=>H(l({},"__esModule",{value:!0}),t);var tt={};M(tt,{getSHA:()=>W,getSHASync:()=>Z,list:()=>K,listSync:()=>Q});module.exports=b(tt);var y=require("os"),B=/^(?<changeType>[ACDMRTUXB])(?<similarity>[0-9]{3})?[ \t]+(?<name>[^ \t]+)[ \t]*(?<newName>[^ \t]+)?$/,U=/^(?<stagedChangeType>[ ACDMRTUXB?!])(?<unStagedChangeType>[ ACDMRTUXB?!])[ \t]+(?<name>[^ \t]+)(( -> )(?<newName>[^ \t]+))?$/,j={A:"added",C:"copied",D:"deleted",M:"modified",R:"renamed",T:"type changed",U:"unmerged",B:"pairing broken"," ":"unmodified","?":"untracked","!":"ignored"};function m(t){return j[t]??"unknown"}function R(t){let e=t.match(U),n={};if(e!=null&&e.groups){let r=m(e.groups.stagedChangeType),s=m(e.groups.unStagedChangeType);n.changeType=r==="unmodified"?s:r,e.groups.newName?(n.name=e.groups.newName,n.oldName=e.groups.name):n.name=e.groups.name}return n}function F(t){let e=t.match(B),n={};return e!=null&&e.groups&&(n.changeType=m(e.groups.changeType),e.groups.newName?(n.name=e.groups.newName,n.oldName=e.groups.name):n.name=e.groups.name),n}function d(t){return t.split(y.EOL).filter(Boolean).map(R).filter(({name:e,changeType:n})=>!!e&&!!n)}function T(t){return t.split(y.EOL).filter(Boolean).map(F).filter(({name:e,changeType:n})=>!!e&&!!n)}var p=require("child_process");function A(t){return t instanceof Buffer?t.toString("utf8"):t}function G(t){throw t.code==="ENOENT"?new Error("git executable not found"):new Error(`internal spawn error: ${t}`)}function S(t,e,n){let r=n("git",t,{cwd:process.cwd(),env:process.env});if(r.error&&G(r.error),r.status===0)return A(r.stdout);throw new Error(e[r.status??0]||`internal git error: ${r.status} (${A(r.stderr)})`)}function N(t=p.spawnSync){let e={129:`'${process.cwd()}' does not seem to be a git repository`};return S(["status","--porcelain"],e,t)}function D(t,e,n=p.spawnSync){let r={128:`revision '${t}' ${e?`(or '${e}') `:""}unknown`,129:`'${process.cwd()}' does not seem to be a git repository`};return S(e?["diff",t,e,"--name-status"]:["diff",t,"--name-status"],r,n)}function h(t=p.spawnSync){return S(["rev-parse","HEAD"],{},t).slice(0,40)}var u=require("child_process");function L(t){return t instanceof Buffer?t.toString("utf8"):t}function w(t,e,n){let r=n("git",t,{cwd:process.cwd(),env:process.env}),s="",i="";return new Promise((c,a)=>{var g,x;(g=r.stdout)==null||g.on("data",o=>{s=s.concat(o)}),(x=r.stderr)==null||x.on("data",o=>{i=i.concat(o)}),r.on("close",o=>{o===0?c(L(s)):a(new Error(e[o??0]||`internal git error: ${o} (${L(i)})`))}),r.on("error",o=>{(o==null?void 0:o.code)==="ENOENT"?a(new Error("git executable not found")):a(new Error(`internal spawn error: ${o}`))})})}async function O(t=u.spawn){let e={129:`'${process.cwd()}' does not seem to be a git repository`};return await w(["status","--porcelain"],e,t)}async function P(t,e,n=u.spawn){let r={128:`revision '${t}' ${e?`(or '${e}') `:""}unknown`,129:`'${process.cwd()}' does not seem to be a git repository`};return await w(e?["diff",t,e,"--name-status"]:["diff",t,"--name-status"],r,n)}async function C(t=u.spawn){return(await w(["rev-parse","HEAD"],{},t)).slice(0,40)}var $=require("path"),Y=new Set([".cjs",".cjsx",".coffee",".csx",".cts",".js",".json",".jsx",".litcoffee",".ls",".mjs",".mts",".svelte",".ts",".tsx",".vue",".vuex"]),V=new Set(["modified","added","renamed","copied","untracked"]);function I(t,e=Y,n=V){return`^(${t.filter(s=>n.has(s.changeType)).map(({name:s})=>s).filter(s=>e.has((0,$.extname)(s))).map(s=>s.replace(/\./g,"\\.")).join("|")})$`}function E(t){return JSON.stringify(t,null,2)}var q=t=>t,z=new Map([["regex",I],["json",E]]);function f(t,e){return(z.get(e??"unknown")||q)(t)}async function K(t,e,n){let r=t||await C(),s=n||{},[i,c]=await Promise.all([P(r,e),s.trackedOnly?"":O()]),a=T(i);return s.trackedOnly||(a=a.concat(d(c).filter(({changeType:g})=>g==="untracked"))),f(a,s.outputType)}function Q(t,e,n){let r=t||h(),s=n||{},i=T(D(r,e));return s.trackedOnly||(i=i.concat(d(N()).filter(({changeType:c})=>c==="untracked"))),f(i,s.outputType)}function W(){return C()}function Z(){return h()}0&&(module.exports={getSHA,getSHASync,list,listSync});
@@ -1,7 +1,3 @@
1
- // the security (and unicorn) plugins don't seem to detect named caption
2
- // groups very well - false-flagging below regular expressions to be susceptible
3
- // to redos attacks.
4
- /* eslint-disable unicorn/no-unsafe-regex, security/detect-unsafe-regex */
5
1
  import { EOL } from "node:os";
6
2
  const DIFF_NAME_STATUS_LINE_PATTERN = /^(?<changeType>[ACDMRTUXB])(?<similarity>[0-9]{3})?[ \t]+(?<name>[^ \t]+)[ \t]*(?<newName>[^ \t]+)?$/;
7
3
  const DIFF_SHORT_STATUS_LINE_PATTERN = /^(?<stagedChangeType>[ ACDMRTUXB?!])(?<unStagedChangeType>[ ACDMRTUXB?!])[ \t]+(?<name>[^ \t]+)(( -> )(?<newName>[^ \t]+))?$/;
@@ -17,10 +13,8 @@ const CHANGE_CHAR_2_CHANGE_TYPE = {
17
13
  " ": "unmodified",
18
14
  "?": "untracked",
19
15
  "!": "ignored",
20
- // X: "unknown"
21
16
  };
22
17
  function changeChar2ChangeType(pChar) {
23
- // eslint-disable-next-line security/detect-object-injection
24
18
  return CHANGE_CHAR_2_CHANGE_TYPE[pChar] ?? "unknown";
25
19
  }
26
20
  export function convertStatusLine(pString) {
@@ -30,7 +30,7 @@ export default function formatToRegex(pChanges, pExtensions = DEFAULT_EXTENSIONS
30
30
  .filter((pChange) => pChangeTypes.has(pChange.changeType))
31
31
  .map(({ name }) => name)
32
32
  .filter((pName) => pExtensions.has(extname(pName)))
33
- // .replace(/\./g, "\\\\.")
33
+ .map((pName) => pName.replace(/\./g, "\\."))
34
34
  .join("|");
35
35
  return `^(${lChanges})$`;
36
36
  }
@@ -7,7 +7,6 @@ function stringifyOutStream(pError) {
7
7
  return pError;
8
8
  }
9
9
  }
10
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
11
10
  function throwSpawnError(pError) {
12
11
  if (pError.code === "ENOENT") {
13
12
  throw new Error("git executable not found");
@@ -16,13 +15,9 @@ function throwSpawnError(pError) {
16
15
  throw new Error(`internal spawn error: ${pError}`);
17
16
  }
18
17
  }
19
- /**
20
- * @throws {Error}
21
- */
22
18
  function getGitResultSync(pArguments, pErrorMap, pSpawnFunction) {
23
19
  const lGitResult = pSpawnFunction("git", pArguments, {
24
20
  cwd: process.cwd(),
25
- // eslint-disable-next-line node/no-process-env
26
21
  env: process.env,
27
22
  });
28
23
  if (lGitResult.error) {
@@ -36,19 +31,12 @@ function getGitResultSync(pArguments, pErrorMap, pSpawnFunction) {
36
31
  `internal git error: ${lGitResult.status} (${stringifyOutStream(lGitResult.stderr)})`);
37
32
  }
38
33
  }
39
- /**
40
- * @throws {Error}
41
- */
42
34
  export function getStatusShortSync(pSpawnFunction = spawnSync) {
43
35
  const lErrorMap = {
44
36
  129: `'${process.cwd()}' does not seem to be a git repository`,
45
37
  };
46
38
  return getGitResultSync(["status", "--porcelain"], lErrorMap, pSpawnFunction);
47
39
  }
48
- /**
49
- *
50
- * @throws {Error}
51
- */
52
40
  export function getDiffLinesSync(pOldRevision, pNewRevision, pSpawnFunction = spawnSync) {
53
41
  const lErrorMap = {
54
42
  128: `revision '${pOldRevision}' ${pNewRevision ? `(or '${pNewRevision}') ` : ""}unknown`,
@@ -1,4 +1,3 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
1
  import { spawn } from "node:child_process";
3
2
  function stringifyOutStream(pBufferOrString) {
4
3
  if (pBufferOrString instanceof Buffer) {
@@ -8,13 +7,9 @@ function stringifyOutStream(pBufferOrString) {
8
7
  return pBufferOrString;
9
8
  }
10
9
  }
11
- /**
12
- * @throws {Error}
13
- */
14
10
  function getGitResult(pArguments, pErrorMap, pSpawnFunction) {
15
11
  const lGit = pSpawnFunction("git", pArguments, {
16
12
  cwd: process.cwd(),
17
- // eslint-disable-next-line node/no-process-env
18
13
  env: process.env,
19
14
  });
20
15
  let lStdOutData = "";
@@ -45,9 +40,6 @@ function getGitResult(pArguments, pErrorMap, pSpawnFunction) {
45
40
  });
46
41
  });
47
42
  }
48
- /**
49
- * @throws {Error}
50
- */
51
43
  export async function getStatusShort(pSpawnFunction = spawn) {
52
44
  const lErrorMap = {
53
45
  129: `'${process.cwd()}' does not seem to be a git repository`,
@@ -55,10 +47,6 @@ export async function getStatusShort(pSpawnFunction = spawn) {
55
47
  const lResult = await getGitResult(["status", "--porcelain"], lErrorMap, pSpawnFunction);
56
48
  return lResult;
57
49
  }
58
- /**
59
- *
60
- * @throws {Error}
61
- */
62
50
  export async function getDiffLines(pOldRevision, pNewRevision, pSpawnFunction = spawn) {
63
51
  const lErrorMap = {
64
52
  128: `revision '${pOldRevision}' ${pNewRevision ? `(or '${pNewRevision}') ` : ""}unknown`,
package/dist/esm/main.js CHANGED
@@ -1,22 +1,13 @@
1
1
  import { convertDiffLines, convertStatusLines, } from "./convert-to-change-object.js";
2
- import { getDiffLinesSync, getSHASync, getStatusShortSync, } from "./git-primitives-sync.js";
2
+ import * as primitivesSync from "./git-primitives-sync.js";
3
+ import * as primitives from "./git-primitives.js";
3
4
  import format from "./formatters/format.js";
4
- import { getDiffLines, getStatusShort, getSHA } from "./git-primitives.js";
5
- export function listSync(pOldRevision, pNewRevision, pOptions) {
6
- const lOldRevision = pOldRevision || getSHASync();
7
- const lOptions = pOptions || {};
8
- let lChanges = convertDiffLines(getDiffLinesSync(lOldRevision, pNewRevision));
9
- if (!lOptions.trackedOnly) {
10
- lChanges = lChanges.concat(convertStatusLines(getStatusShortSync()).filter(({ changeType }) => changeType === "untracked"));
11
- }
12
- return format(lChanges, lOptions.outputType);
13
- }
14
5
  export async function list(pOldRevision, pNewRevision, pOptions) {
15
- const lOldRevision = pOldRevision || (await getSHA());
6
+ const lOldRevision = pOldRevision || (await primitives.getSHA());
16
7
  const lOptions = pOptions || {};
17
8
  const [lDiffLines, lStatusLines] = await Promise.all([
18
- getDiffLines(lOldRevision, pNewRevision),
19
- lOptions.trackedOnly ? "" : getStatusShort(),
9
+ primitives.getDiffLines(lOldRevision, pNewRevision),
10
+ !lOptions.trackedOnly ? primitives.getStatusShort() : "",
20
11
  ]);
21
12
  let lChanges = convertDiffLines(lDiffLines);
22
13
  if (!lOptions.trackedOnly) {
@@ -24,5 +15,18 @@ export async function list(pOldRevision, pNewRevision, pOptions) {
24
15
  }
25
16
  return format(lChanges, lOptions.outputType);
26
17
  }
27
- export { getSHASync } from "./git-primitives-sync.js";
28
- export { getSHA } from "./git-primitives.js";
18
+ export function listSync(pOldRevision, pNewRevision, pOptions) {
19
+ const lOldRevision = pOldRevision || primitivesSync.getSHASync();
20
+ const lOptions = pOptions || {};
21
+ let lChanges = convertDiffLines(primitivesSync.getDiffLinesSync(lOldRevision, pNewRevision));
22
+ if (!lOptions.trackedOnly) {
23
+ lChanges = lChanges.concat(convertStatusLines(primitivesSync.getStatusShortSync()).filter(({ changeType }) => changeType === "untracked"));
24
+ }
25
+ return format(lChanges, lOptions.outputType);
26
+ }
27
+ export function getSHA() {
28
+ return primitives.getSHA();
29
+ }
30
+ export function getSHASync() {
31
+ return primitivesSync.getSHASync();
32
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "watskeburt",
3
- "version": "0.11.0",
3
+ "version": "0.11.2",
4
4
  "description": "List files changed since a git revision",
5
5
  "keywords": [
6
6
  "git",
@@ -48,12 +48,12 @@
48
48
  },
49
49
  "devDependencies": {
50
50
  "@types/mocha": "10.0.1",
51
- "@types/node": "18.16.2",
52
- "@typescript-eslint/eslint-plugin": "5.59.1",
51
+ "@types/node": "20.1.4",
52
+ "@typescript-eslint/eslint-plugin": "5.59.5",
53
53
  "c8": "7.13.0",
54
- "dependency-cruiser": "13.0.0-beta-5",
55
- "esbuild": "0.17.18",
56
- "eslint": "8.39.0",
54
+ "dependency-cruiser": "13.0.0",
55
+ "esbuild": "0.17.19",
56
+ "eslint": "8.40.0",
57
57
  "eslint-config-moving-meadow": "4.0.2",
58
58
  "eslint-config-prettier": "8.8.0",
59
59
  "eslint-plugin-budapestian": "5.0.1",
@@ -62,7 +62,7 @@
62
62
  "eslint-plugin-mocha": "10.1.0",
63
63
  "eslint-plugin-node": "11.1.0",
64
64
  "eslint-plugin-security": "1.7.1",
65
- "eslint-plugin-unicorn": "46.0.0",
65
+ "eslint-plugin-unicorn": "47.0.0",
66
66
  "mocha": "10.2.0",
67
67
  "npm-run-all": "4.1.5",
68
68
  "prettier": "2.8.8",
@@ -70,21 +70,12 @@
70
70
  "typescript": "5.0.4",
71
71
  "upem": "7.3.2"
72
72
  },
73
- "upem": {
74
- "policies": [
75
- {
76
- "package": "dependency-cruiser",
77
- "policy": "wanted",
78
- "because": "we're beta testing v13 & policy 'latest' would downgraded it back to v12 again"
79
- }
80
- ]
81
- },
82
73
  "engines": {
83
74
  "node": "^14||^16||>=18"
84
75
  },
85
76
  "scripts": {
86
77
  "build": "npm-run-all --sequential build:clean build:version build:dist",
87
- "build:version": "ts-node --esm tools/get-version.ts > bin/version.js",
78
+ "build:version": "node --no-warnings --loader ts-node/esm tools/get-version.ts > bin/version.js",
88
79
  "build:clean": "rm -rf dist/*",
89
80
  "build:dist": "npm-run-all build:dist:*",
90
81
  "build:dist:cjs": "esbuild src/main.ts --format=cjs --target=node14 --platform=node --bundle --global-name=wkbtcjs --minify --outfile=dist/cjs-bundle.cjs",