actions-up 1.14.0 → 1.14.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.
Files changed (62) hide show
  1. package/dist/cli/build-json-report.js +18 -18
  2. package/dist/cli/index.js +101 -101
  3. package/dist/cli/merge-scan-results.js +2 -2
  4. package/dist/cli/normalize-update-mode.js +2 -2
  5. package/dist/cli/normalize-update-style.js +2 -2
  6. package/dist/cli/print-mode-warning.js +5 -5
  7. package/dist/cli/print-skipped-warning.js +7 -7
  8. package/dist/cli/resolve-scan-directories.js +8 -8
  9. package/dist/cli/validate-cli-options.js +2 -2
  10. package/dist/core/api/check-updates.js +42 -42
  11. package/dist/core/api/create-github-client.js +26 -26
  12. package/dist/core/api/get-all-releases.js +12 -12
  13. package/dist/core/api/get-all-tags.js +4 -4
  14. package/dist/core/api/get-compatible-update.js +6 -6
  15. package/dist/core/api/get-latest-release.js +15 -15
  16. package/dist/core/api/get-reference-type.js +5 -5
  17. package/dist/core/api/get-tag-info.js +14 -14
  18. package/dist/core/api/get-tag-sha.js +7 -7
  19. package/dist/core/api/internal-rate-limit-error.js +2 -2
  20. package/dist/core/api/make-request.js +4 -4
  21. package/dist/core/api/resolve-github-token-sync.js +7 -7
  22. package/dist/core/api/update-rate-limit-info.js +3 -6
  23. package/dist/core/ast/guards/has-range.js +2 -2
  24. package/dist/core/ast/guards/is-node.js +2 -2
  25. package/dist/core/ast/guards/is-pair.js +2 -2
  26. package/dist/core/ast/guards/is-scalar.js +2 -2
  27. package/dist/core/ast/guards/is-yaml-map.js +2 -2
  28. package/dist/core/ast/guards/is-yaml-sequence.js +2 -2
  29. package/dist/core/ast/scanners/scan-composite-action-ast.js +13 -13
  30. package/dist/core/ast/scanners/scan-workflow-ast.js +21 -21
  31. package/dist/core/ast/update/apply-updates.js +21 -21
  32. package/dist/core/ast/utils/extract-uses-from-steps.js +14 -14
  33. package/dist/core/ast/utils/find-map-pair.js +6 -6
  34. package/dist/core/ast/utils/get-line-number.js +4 -4
  35. package/dist/core/constants.js +2 -2
  36. package/dist/core/filters/parse-exclude-patterns.js +2 -2
  37. package/dist/core/fs/find-yaml-files-recursive.js +9 -9
  38. package/dist/core/fs/is-yaml-file.js +2 -2
  39. package/dist/core/fs/read-yaml-document.js +6 -6
  40. package/dist/core/ignore/should-ignore.js +4 -4
  41. package/dist/core/index.js +5 -5
  42. package/dist/core/interactive/format-version.js +14 -14
  43. package/dist/core/interactive/pad-string.js +4 -4
  44. package/dist/core/interactive/prompt-update-selection.js +153 -138
  45. package/dist/core/interactive/strip-ansi.js +2 -2
  46. package/dist/core/parsing/parse-action-reference.js +2 -2
  47. package/dist/core/scan-action-file.js +6 -6
  48. package/dist/core/scan-github-actions.js +83 -83
  49. package/dist/core/scan-recursive.js +24 -24
  50. package/dist/core/scan-workflow-file.js +6 -6
  51. package/dist/core/schema/composite/is-composite-action-runs.js +2 -2
  52. package/dist/core/schema/composite/is-composite-action-structure.js +2 -2
  53. package/dist/core/schema/workflow/is-workflow-structure.js +2 -2
  54. package/dist/core/updates/resolve-target-reference.js +2 -2
  55. package/dist/core/versions/find-compatible-tag.js +16 -16
  56. package/dist/core/versions/get-update-level.js +8 -8
  57. package/dist/core/versions/is-semver-like.js +2 -2
  58. package/dist/core/versions/is-sha.js +2 -2
  59. package/dist/core/versions/normalize-version.js +4 -4
  60. package/dist/core/versions/read-inline-version-comment.js +4 -4
  61. package/dist/package.js +2 -2
  62. package/package.json +1 -1
@@ -1,46 +1,46 @@
1
- import { isCompositeActionStructure } from "./schema/composite/is-composite-action-structure.js";
2
- import { scanCompositeActionAst } from "./ast/scanners/scan-composite-action-ast.js";
3
- import { isWorkflowStructure } from "./schema/workflow/is-workflow-structure.js";
4
- import { findYamlFilesRecursive } from "./fs/find-yaml-files-recursive.js";
5
- import { scanWorkflowAst } from "./ast/scanners/scan-workflow-ast.js";
6
- import { readYamlDocument } from "./fs/read-yaml-document.js";
7
- import { dirname, relative, resolve } from "node:path";
8
- async function scanRecursive(u, d) {
1
+ import { isCompositeActionStructure as e } from "./schema/composite/is-composite-action-structure.js";
2
+ import { scanCompositeActionAst as t } from "./ast/scanners/scan-composite-action-ast.js";
3
+ import { isWorkflowStructure as n } from "./schema/workflow/is-workflow-structure.js";
4
+ import { findYamlFilesRecursive as r } from "./fs/find-yaml-files-recursive.js";
5
+ import { scanWorkflowAst as i } from "./ast/scanners/scan-workflow-ast.js";
6
+ import { readYamlDocument as a } from "./fs/read-yaml-document.js";
7
+ import { dirname as o, relative as s, resolve as c } from "node:path";
8
+ async function l(l, d) {
9
9
  let f = {
10
10
  compositeActions: /* @__PURE__ */ new Map(),
11
11
  workflows: /* @__PURE__ */ new Map(),
12
12
  actions: []
13
- }, p = resolve(u), m = resolve(p, d), h;
13
+ }, p = c(l), m = c(p, d), h;
14
14
  try {
15
- h = await findYamlFilesRecursive(m);
15
+ h = await r(m);
16
16
  } catch {
17
17
  return f;
18
18
  }
19
- let g = h.map(async (o) => {
20
- let s = relative(p, o);
19
+ let g = h.map(async (r) => {
20
+ let o = s(p, r);
21
21
  try {
22
- let { document: c, content: l } = await readYamlDocument(o), u = c.toJSON();
23
- if (isWorkflowStructure(u) && hasKey(u, "jobs")) return {
22
+ let { document: s, content: c } = await a(r), l = s.toJSON();
23
+ if (n(l) && u(l, "jobs")) return {
24
24
  type: "workflow",
25
- path: s,
26
- actions: scanWorkflowAst(c, l, o)
25
+ path: o,
26
+ actions: i(s, c, r)
27
27
  };
28
- if (isCompositeActionStructure(u) && hasKey(u, "runs")) return {
28
+ if (e(l) && u(l, "runs")) return {
29
29
  type: "action",
30
- path: s,
31
- actions: scanCompositeActionAst(c, l, o)
30
+ path: o,
31
+ actions: t(s, c, r)
32
32
  };
33
33
  } catch {}
34
34
  return null;
35
35
  }), _ = await Promise.all(g);
36
36
  for (let e of _) if (e) if (e.type === "workflow") f.workflows.set(e.path, e.actions), f.actions.push(...e.actions);
37
37
  else {
38
- let i = dirname(e.path), a = i === "." || i === "" ? e.path : i;
39
- f.compositeActions.set(a, e.path), f.actions.push(...e.actions);
38
+ let t = o(e.path), n = t === "." || t === "" ? e.path : t;
39
+ f.compositeActions.set(n, e.path), f.actions.push(...e.actions);
40
40
  }
41
41
  return f;
42
42
  }
43
- function hasKey(e, i) {
44
- return typeof e == "object" && !!e && i in e;
43
+ function u(e, t) {
44
+ return typeof e == "object" && !!e && t in e;
45
45
  }
46
- export { scanRecursive };
46
+ export { l as scanRecursive };
@@ -1,7 +1,7 @@
1
- import { scanWorkflowAst } from "./ast/scanners/scan-workflow-ast.js";
2
- import { readYamlDocument } from "./fs/read-yaml-document.js";
3
- async function scanWorkflowFile(n) {
4
- let { document: r, content: i } = await readYamlDocument(n);
5
- return scanWorkflowAst(r, i, n);
1
+ import { scanWorkflowAst as e } from "./ast/scanners/scan-workflow-ast.js";
2
+ import { readYamlDocument as t } from "./fs/read-yaml-document.js";
3
+ async function n(n) {
4
+ let { document: r, content: i } = await t(n);
5
+ return e(r, i, n);
6
6
  }
7
- export { scanWorkflowFile };
7
+ export { n as scanWorkflowFile };
@@ -1,4 +1,4 @@
1
- function isCompositeActionRuns(e) {
1
+ function e(e) {
2
2
  return typeof e != "object" || !e || Array.isArray(e) ? !1 : "using" in e;
3
3
  }
4
- export { isCompositeActionRuns };
4
+ export { e as isCompositeActionRuns };
@@ -1,6 +1,6 @@
1
- function isCompositeActionStructure(e) {
1
+ function e(e) {
2
2
  if (typeof e != "object" || !e || Array.isArray(e)) return !1;
3
3
  let t = e;
4
4
  return "name" in t || "description" in t || "runs" in t;
5
5
  }
6
- export { isCompositeActionStructure };
6
+ export { e as isCompositeActionStructure };
@@ -1,6 +1,6 @@
1
- function isWorkflowStructure(e) {
1
+ function e(e) {
2
2
  if (typeof e != "object" || !e || Array.isArray(e)) return !1;
3
3
  let t = e;
4
4
  return "on" in t || "name" in t || "jobs" in t;
5
5
  }
6
- export { isWorkflowStructure };
6
+ export { e as isWorkflowStructure };
@@ -1,4 +1,4 @@
1
- function resolveTargetReference(e, t) {
1
+ function e(e, t) {
2
2
  return e.hasUpdate ? t === "sha" || e.currentRefType === "sha" ? e.latestSha ? {
3
3
  ...e,
4
4
  targetRef: e.latestSha,
@@ -21,4 +21,4 @@ function resolveTargetReference(e, t) {
21
21
  targetRef: null
22
22
  };
23
23
  }
24
- export { resolveTargetReference };
24
+ export { e as resolveTargetReference };
@@ -1,27 +1,27 @@
1
- import { normalizeVersion } from "./normalize-version.js";
2
- import { isSemverLike } from "./is-semver-like.js";
3
- import semver from "semver";
4
- function findCompatibleTag(r, a, o) {
5
- if (!a || !isSemverLike(a) || r.length === 0) return null;
6
- let s = semver.valid(normalizeVersion(a));
1
+ import { normalizeVersion as e } from "./normalize-version.js";
2
+ import { isSemverLike as t } from "./is-semver-like.js";
3
+ import n from "semver";
4
+ function r(r, a, o) {
5
+ if (!a || !t(a) || r.length === 0) return null;
6
+ let s = n.valid(e(a));
7
7
  if (!s) return null;
8
- let c = semver.major(s), l = semver.minor(s), u = [];
8
+ let c = n.major(s), l = n.minor(s), u = [];
9
9
  for (let i of r) {
10
- if (!isSemverLike(i.tag)) continue;
11
- let r = semver.valid(normalizeVersion(i.tag));
12
- r && semver.gt(r, s) && semver.major(r) === c && (o === "patch" && semver.minor(r) !== l || u.push({
10
+ if (!t(i.tag)) continue;
11
+ let r = n.valid(e(i.tag));
12
+ r && n.gt(r, s) && n.major(r) === c && (o === "patch" && n.minor(r) !== l || u.push({
13
13
  tag: i,
14
14
  parsed: r
15
15
  }));
16
16
  }
17
- return u.length === 0 ? null : (u.sort((e, n) => {
18
- let r = semver.rcompare(e.parsed, n.parsed);
17
+ return u.length === 0 ? null : (u.sort((e, t) => {
18
+ let r = n.rcompare(e.parsed, t.parsed);
19
19
  if (r !== 0) return r;
20
- let a = getSemverSpecificity(e.tag.tag);
21
- return getSemverSpecificity(n.tag.tag) - a;
20
+ let a = i(e.tag.tag);
21
+ return i(t.tag.tag) - a;
22
22
  }), u[0].tag);
23
23
  }
24
- function getSemverSpecificity(e) {
24
+ function i(e) {
25
25
  return e.replace(/^v/u, "").split(".").length;
26
26
  }
27
- export { findCompatibleTag };
27
+ export { r as findCompatibleTag };
@@ -1,10 +1,10 @@
1
- import semver from "semver";
2
- function getUpdateLevel(t, r) {
1
+ import e from "semver";
2
+ function t(t, r) {
3
3
  if (!t || !r) return "unknown";
4
- let i = normalizeVersion(t), a = normalizeVersion(r);
4
+ let i = n(t), a = n(r);
5
5
  if (!i || !a) return "unknown";
6
- if (semver.eq(i, a)) return "none";
7
- let o = semver.diff(i, a);
6
+ if (e.eq(i, a)) return "none";
7
+ let o = e.diff(i, a);
8
8
  if (!o) return "none";
9
9
  switch (o) {
10
10
  case "premajor":
@@ -16,8 +16,8 @@ function getUpdateLevel(t, r) {
16
16
  default: return "unknown";
17
17
  }
18
18
  }
19
- function normalizeVersion(t) {
20
- let n = semver.coerce(t);
19
+ function n(t) {
20
+ let n = e.coerce(t);
21
21
  return n ? n.version : null;
22
22
  }
23
- export { getUpdateLevel };
23
+ export { t as getUpdateLevel };
@@ -1,4 +1,4 @@
1
- function isSemverLike(e) {
1
+ function e(e) {
2
2
  return typeof e == "string" && /^v?\d+(?:\.\d+){0,2}$/u.test(e.trim());
3
3
  }
4
- export { isSemverLike };
4
+ export { e as isSemverLike };
@@ -1,6 +1,6 @@
1
- function isSha(e) {
1
+ function e(e) {
2
2
  if (!e) return !1;
3
3
  let t = e.replace(/^v/u, "");
4
4
  return /^[0-9a-f]{7,40}$/iu.test(t);
5
5
  }
6
- export { isSha };
6
+ export { e as isSha };
@@ -1,9 +1,9 @@
1
- import semver from "semver";
2
- function normalizeVersion(t) {
1
+ import e from "semver";
2
+ function t(t) {
3
3
  if (!t) return null;
4
4
  let n = t.replace(/^v/u, "");
5
5
  if (/^[0-9a-f]{7,40}$/iu.test(n)) return t;
6
- let r = semver.coerce(n);
6
+ let r = e.coerce(n);
7
7
  return r ? r.version : t;
8
8
  }
9
- export { normalizeVersion };
9
+ export { t as normalizeVersion };
@@ -1,9 +1,9 @@
1
- import { readFile } from "node:fs/promises";
2
- async function readInlineVersionComment(t, n, r) {
1
+ import { readFile as e } from "node:fs/promises";
2
+ async function t(t, n, r) {
3
3
  try {
4
4
  if (!t || !n || n <= 0) return null;
5
5
  let i = r?.get(t);
6
- i === void 0 && (i = await readFile(t, "utf8"), r && r.set(t, i));
6
+ i === void 0 && (i = await e(t, "utf8"), r && r.set(t, i));
7
7
  let a = i.split("\n"), o = n - 1;
8
8
  if (o < 0 || o >= a.length) return null;
9
9
  let s = a[o].match(/#\s*(?<version>[Vv]?\d+(?:\.\d+){0,2}(?:[+-][\w\-.]+)?)/u);
@@ -11,4 +11,4 @@ async function readInlineVersionComment(t, n, r) {
11
11
  } catch {}
12
12
  return null;
13
13
  }
14
- export { readInlineVersionComment };
14
+ export { t as readInlineVersionComment };
package/dist/package.js CHANGED
@@ -1,2 +1,2 @@
1
- const version = "1.14.0";
2
- export { version };
1
+ var e = "1.14.1";
2
+ export { e as version };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "actions-up",
3
- "version": "1.14.0",
3
+ "version": "1.14.1",
4
4
  "description": "Interactive CLI tool to update GitHub Actions with SHA pinning or preserved refs",
5
5
  "keywords": [
6
6
  "github-actions",