@theholocron/holocron-config 8.1.1 → 8.2.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.
@@ -1,2 +1,2 @@
1
- import { n as NextjsOptions, t as nextjs } from "../nextjs-qslqCncU.js";
1
+ import { n as NextjsOptions, t as nextjs } from "../nextjs-DF6ifcAm.js";
2
2
  export { type NextjsOptions, nextjs };
@@ -1,2 +1,2 @@
1
- import { t as nextjs } from "../nextjs-BVbxyvYY.js";
1
+ import { t as nextjs } from "../nextjs-Q-9hbfm1.js";
2
2
  export { nextjs };
@@ -6,12 +6,13 @@ type NodeDocsSitePreset = ComposedPreset;
6
6
  * Preset for theholocron repos that are TypeScript libraries AND publish a
7
7
  * documentation site (e.g. configs, utils, holocron, clients).
8
8
  *
9
- * Includes the "audit / Conclusion" required check so branch protection works
10
- * for repos that add the audit workflow explicitly. The workflow itself is
11
- * intentionally left repo-specific — add it with your own options:
12
- * tasks: [...preset.tasks, "audit", ...]
9
+ * Includes the "audit / Conclusion" check in `extraRequiredChecks` so branch
10
+ * protection works for repos that add the audit workflow explicitly. The
11
+ * workflow itself is intentionally left repo-specific — add it with your own
12
+ * options:
13
+ * tasks: [...preset.tasks, { name: "audit", required: true }, ...]
13
14
  * // or with overrides:
14
- * tasks: [...preset.tasks, { name: "audit", with: { "run-knip": true } }, ...]
15
+ * tasks: [...preset.tasks, { name: "audit", required: true, with: { "run-knip": true } }, ...]
15
16
  *
16
17
  * For docs-only sites without TypeScript source, use nodeDocsSite() instead.
17
18
  *
@@ -22,7 +23,7 @@ type NodeDocsSitePreset = ComposedPreset;
22
23
  * description: "...",
23
24
  * homepage: "https://docs.theholocron.dev/my-lib/",
24
25
  * repo: { ...preset.repo, name: "theholocron/my-lib", topics: ["typescript"] },
25
- * tasks: [...preset.tasks, "audit", { name: "release", with: { "run-build": true } }, "sync"],
26
+ * tasks: [...preset.tasks, { name: "audit", required: true }, { name: "release", with: { "run-build": true } }, "sync"],
26
27
  * providers: { ...preset.providers, secrets: "github" },
27
28
  * });
28
29
  */
@@ -1,2 +1,2 @@
1
- import { n as nodeDocsSite, t as nodeDocs } from "../node-docs-CWBYBXn2.js";
1
+ import { n as nodeDocsSite, t as nodeDocs } from "../node-docs-CcZ9-AX_.js";
2
2
  export { nodeDocs, nodeDocsSite };
@@ -1,4 +1,4 @@
1
- import { t as node$1 } from "../node-Rfcptkso.js";
1
+ import { t as node$1 } from "../node-BLjkrd5k.js";
2
2
  import { compose } from "@theholocron/cli";
3
3
  //#region configs/node.ts
4
4
  /**
@@ -1,2 +1,2 @@
1
- import { n as ReactOptions, t as react } from "../react-DFP2FRgL.js";
1
+ import { n as ReactOptions, t as react } from "../react-Da48S4-Q.js";
2
2
  export { type ReactOptions, react };
@@ -1,11 +1,11 @@
1
- import { t as node } from "../node-Rfcptkso.js";
2
- import { t as typecheck } from "../typecheck-CIe5Am0j.js";
3
- import { t as react$1 } from "../react-B6frNMdd.js";
1
+ import { t as node } from "../node-BLjkrd5k.js";
2
+ import { t as typecheck } from "../typecheck-CG1ePvP6.js";
3
+ import { t as react$1 } from "../react-4Ap2ev6C.js";
4
4
  import { compose } from "@theholocron/cli";
5
5
  //#region configs/react.ts
6
6
  /**
7
7
  * Preset for single-package React/Vite application repos. Includes Storybook,
8
- * interaction tests, Knip + Lighthouse audit, and UI required checks.
8
+ * interaction tests, Knip + Lighthouse audit, and the UI extraRequiredChecks.
9
9
  *
10
10
  * Pass `test` overrides to merge repo-specific options (e.g. run-chromatic)
11
11
  * into the single test workflow entry so the sync tool sees one complete entry:
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { monorepo } from "./configs/monorepo.js";
2
- import { n as NextjsOptions, r as nextjs$1, t as nextjs } from "./nextjs-qslqCncU.js";
2
+ import { n as NextjsOptions, r as nextjs$1, t as nextjs } from "./nextjs-DF6ifcAm.js";
3
3
  import { NodeDocsPreset, NodeDocsSitePreset, nodeDocs, nodeDocsSite } from "./configs/node-docs.js";
4
4
  import { HolocronPreset as ComposedPreset$1 } from "./configs/node.js";
5
- import { n as ReactOptions, r as react$1, t as react } from "./react-DFP2FRgL.js";
5
+ import { n as ReactOptions, r as react$1, t as react } from "./react-Da48S4-Q.js";
6
6
  import { Capability, Capability as Capability$1, ComposedPreset, compose } from "@theholocron/cli";
7
7
  //#region constants.d.ts
8
8
  /** Cloudflare account ID for the theholocron org. */
@@ -16,12 +16,15 @@ declare const CLOUDFLARE_ACCOUNT_ID = "9c558af98664d13fc89b7e0a0d93d5a8";
16
16
  * dependencies, bookkeeping). Does NOT include typecheck — add that separately.
17
17
  * The `lint` task carries the org linter list explicitly so every repo runs the
18
18
  * same set (a repo can override with its own `{ name: "lint", linters: [...] }`).
19
+ * `lint` and `test` are marked `required` — `holocron setup` derives their
20
+ * `… / Conclusion` branch-protection check contexts from the manifest.
19
21
  */
20
22
  declare function node(): Capability$1;
21
23
  //#endregion
22
24
  //#region capabilities/typecheck.d.ts
23
25
  /**
24
- * Adds TypeScript type-checking to a repo.
26
+ * Adds TypeScript type-checking to a repo. Marked `required` — `holocron setup`
27
+ * derives the `Typecheck / Conclusion` branch-protection check from the manifest.
25
28
  * Requires: node
26
29
  */
27
30
  declare function typecheck(): Capability$1;
@@ -29,8 +32,8 @@ declare function typecheck(): Capability$1;
29
32
  //#region capabilities/docs.d.ts
30
33
  /**
31
34
  * Adds a documentation site deployed to Cloudflare Pages with PR previews.
32
- * Sets org/domain, wires Cloudflare + DNS providers, and adds codecov
33
- * required checks (enabled for all docs repos).
35
+ * Sets org/domain, wires Cloudflare + DNS providers, and adds the codecov
36
+ * `extraRequiredChecks` (enabled for all docs repos).
34
37
  * Requires: node
35
38
  */
36
39
  declare function docs(): Capability$1;
@@ -45,7 +48,9 @@ interface AuditOptions {
45
48
  lighthouseConfig?: string;
46
49
  }
47
50
  /**
48
- * Adds BundleWatch + optional Knip and Lighthouse auditing.
51
+ * Adds BundleWatch + optional Knip and Lighthouse auditing. Marked `required` —
52
+ * `holocron setup` derives the `audit / Conclusion` branch-protection check
53
+ * from the manifest.
49
54
  * Requires: node
50
55
  */
51
56
  declare function audit({ knip, performance, lighthouseConfig }?: AuditOptions): Capability$1;
package/dist/index.js CHANGED
@@ -1,14 +1,16 @@
1
- import { i as CLOUDFLARE_ACCOUNT_ID, n as nodeDocsSite, r as docs, t as nodeDocs } from "./node-docs-CWBYBXn2.js";
2
- import { t as node } from "./node-Rfcptkso.js";
3
- import { t as typecheck } from "./typecheck-CIe5Am0j.js";
4
- import { t as react$1 } from "./react-B6frNMdd.js";
5
- import { n as nextjs$1, t as nextjs } from "./nextjs-BVbxyvYY.js";
1
+ import { i as CLOUDFLARE_ACCOUNT_ID, n as nodeDocsSite, r as docs, t as nodeDocs } from "./node-docs-CcZ9-AX_.js";
2
+ import { t as node } from "./node-BLjkrd5k.js";
3
+ import { t as typecheck } from "./typecheck-CG1ePvP6.js";
4
+ import { t as react$1 } from "./react-4Ap2ev6C.js";
5
+ import { n as nextjs$1, t as nextjs } from "./nextjs-Q-9hbfm1.js";
6
6
  import { react } from "./configs/react.js";
7
7
  import { monorepo } from "./configs/monorepo.js";
8
8
  import { compose } from "@theholocron/cli";
9
9
  //#region capabilities/audit.ts
10
10
  /**
11
- * Adds BundleWatch + optional Knip and Lighthouse auditing.
11
+ * Adds BundleWatch + optional Knip and Lighthouse auditing. Marked `required` —
12
+ * `holocron setup` derives the `audit / Conclusion` branch-protection check
13
+ * from the manifest.
12
14
  * Requires: node
13
15
  */
14
16
  function audit({ knip = false, performance = false, lighthouseConfig } = {}) {
@@ -21,9 +23,12 @@ function audit({ knip = false, performance = false, lighthouseConfig } = {}) {
21
23
  requires: ["node"],
22
24
  tasks: [Object.keys(withBlock).length > 0 ? {
23
25
  name: "audit",
26
+ required: true,
24
27
  with: withBlock
25
- } : "audit"],
26
- requiredChecks: ["audit / Conclusion"]
28
+ } : {
29
+ name: "audit",
30
+ required: true
31
+ }]
27
32
  };
28
33
  }
29
34
  //#endregion
@@ -21,7 +21,7 @@ declare function nextjs$1({ test: testOverrides }?: NextjsOptions): Capability[]
21
21
  /**
22
22
  * Preset for single-package Next.js application repos. Includes Vercel
23
23
  * deployment, Lighthouse audit, Storybook + interaction + user-flow tests,
24
- * and the Conclusion required checks.
24
+ * and the derived Conclusion checks.
25
25
  *
26
26
  * @example
27
27
  * const preset = nextjs({ test: { "wait-on-url": "http://localhost:3000", "run-chromatic": true } });
@@ -1,6 +1,6 @@
1
- import { t as node } from "./node-Rfcptkso.js";
2
- import { t as typecheck } from "./typecheck-CIe5Am0j.js";
3
- import { t as react } from "./react-B6frNMdd.js";
1
+ import { t as node } from "./node-BLjkrd5k.js";
2
+ import { t as typecheck } from "./typecheck-CG1ePvP6.js";
3
+ import { t as react } from "./react-4Ap2ev6C.js";
4
4
  import { compose } from "@theholocron/cli";
5
5
  //#region capabilities/nextjs.ts
6
6
  /**
@@ -39,7 +39,7 @@ function nextjs$1({ test: testOverrides = {} } = {}) {
39
39
  /**
40
40
  * Preset for single-package Next.js application repos. Includes Vercel
41
41
  * deployment, Lighthouse audit, Storybook + interaction + user-flow tests,
42
- * and the Conclusion required checks.
42
+ * and the derived Conclusion checks.
43
43
  *
44
44
  * @example
45
45
  * const preset = nextjs({ test: { "wait-on-url": "http://localhost:3000", "run-chromatic": true } });
@@ -17,6 +17,8 @@ const ORG_LINTERS = [
17
17
  * dependencies, bookkeeping). Does NOT include typecheck — add that separately.
18
18
  * The `lint` task carries the org linter list explicitly so every repo runs the
19
19
  * same set (a repo can override with its own `{ name: "lint", linters: [...] }`).
20
+ * `lint` and `test` are marked `required` — `holocron setup` derives their
21
+ * `… / Conclusion` branch-protection check contexts from the manifest.
20
22
  */
21
23
  function node() {
22
24
  return {
@@ -38,13 +40,16 @@ function node() {
38
40
  uses_external_packages: true
39
41
  }
40
42
  },
41
- requiredChecks: ["Lint / Conclusion", "Test / Conclusion"],
42
43
  tasks: [
43
44
  {
44
45
  name: "lint",
46
+ required: true,
45
47
  linters: ORG_LINTERS
46
48
  },
47
- "test",
49
+ {
50
+ name: "test",
51
+ required: true
52
+ },
48
53
  "security",
49
54
  "review",
50
55
  "stale",
@@ -1,5 +1,5 @@
1
- import { t as node } from "./node-Rfcptkso.js";
2
- import { t as typecheck } from "./typecheck-CIe5Am0j.js";
1
+ import { t as node } from "./node-BLjkrd5k.js";
2
+ import { t as typecheck } from "./typecheck-CG1ePvP6.js";
3
3
  import { compose } from "@theholocron/cli";
4
4
  //#region constants.ts
5
5
  /** Cloudflare account ID for the theholocron org. */
@@ -8,8 +8,8 @@ const CLOUDFLARE_ACCOUNT_ID = "9c558af98664d13fc89b7e0a0d93d5a8";
8
8
  //#region capabilities/docs.ts
9
9
  /**
10
10
  * Adds a documentation site deployed to Cloudflare Pages with PR previews.
11
- * Sets org/domain, wires Cloudflare + DNS providers, and adds codecov
12
- * required checks (enabled for all docs repos).
11
+ * Sets org/domain, wires Cloudflare + DNS providers, and adds the codecov
12
+ * `extraRequiredChecks` (enabled for all docs repos).
13
13
  * Requires: node
14
14
  */
15
15
  function docs() {
@@ -34,7 +34,7 @@ function docs() {
34
34
  preview: true
35
35
  }
36
36
  }],
37
- requiredChecks: ["codecov/patch", "codecov/project"]
37
+ extraRequiredChecks: ["codecov/patch", "codecov/project"]
38
38
  };
39
39
  }
40
40
  //#endregion
@@ -43,12 +43,13 @@ function docs() {
43
43
  * Preset for theholocron repos that are TypeScript libraries AND publish a
44
44
  * documentation site (e.g. configs, utils, holocron, clients).
45
45
  *
46
- * Includes the "audit / Conclusion" required check so branch protection works
47
- * for repos that add the audit workflow explicitly. The workflow itself is
48
- * intentionally left repo-specific — add it with your own options:
49
- * tasks: [...preset.tasks, "audit", ...]
46
+ * Includes the "audit / Conclusion" check in `extraRequiredChecks` so branch
47
+ * protection works for repos that add the audit workflow explicitly. The
48
+ * workflow itself is intentionally left repo-specific — add it with your own
49
+ * options:
50
+ * tasks: [...preset.tasks, { name: "audit", required: true }, ...]
50
51
  * // or with overrides:
51
- * tasks: [...preset.tasks, { name: "audit", with: { "run-knip": true } }, ...]
52
+ * tasks: [...preset.tasks, { name: "audit", required: true, with: { "run-knip": true } }, ...]
52
53
  *
53
54
  * For docs-only sites without TypeScript source, use nodeDocsSite() instead.
54
55
  *
@@ -59,7 +60,7 @@ function docs() {
59
60
  * description: "...",
60
61
  * homepage: "https://docs.theholocron.dev/my-lib/",
61
62
  * repo: { ...preset.repo, name: "theholocron/my-lib", topics: ["typescript"] },
62
- * tasks: [...preset.tasks, "audit", { name: "release", with: { "run-build": true } }, "sync"],
63
+ * tasks: [...preset.tasks, { name: "audit", required: true }, { name: "release", with: { "run-build": true } }, "sync"],
63
64
  * providers: { ...preset.providers, secrets: "github" },
64
65
  * });
65
66
  */
@@ -67,7 +68,7 @@ function nodeDocs() {
67
68
  return compose(node(), typecheck(), docs(), {
68
69
  id: "audit-check",
69
70
  requires: ["node"],
70
- requiredChecks: ["audit / Conclusion"]
71
+ extraRequiredChecks: ["audit / Conclusion"]
71
72
  });
72
73
  }
73
74
  /**
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Adds React/Storybook UI testing and browser runtime config.
4
4
  * Contributes: secrets provider, browser runtime property, Storybook + interaction
5
- * test jobs, audit with Knip + Lighthouse, and UI required checks.
5
+ * test jobs, audit with Knip + Lighthouse, and the UI `extraRequiredChecks`.
6
6
  * Requires: node, typecheck
7
7
  *
8
8
  * Pass `test` overrides to merge repo-specific options into the single test
@@ -37,7 +37,7 @@ function react({ test: testOverrides = {} } = {}) {
37
37
  ...testOverrides
38
38
  }
39
39
  }],
40
- requiredChecks: [
40
+ extraRequiredChecks: [
41
41
  "Storybook Publish",
42
42
  "UI Review",
43
43
  "UI Tests",
@@ -7,7 +7,7 @@ interface ReactOptions {
7
7
  /**
8
8
  * Adds React/Storybook UI testing and browser runtime config.
9
9
  * Contributes: secrets provider, browser runtime property, Storybook + interaction
10
- * test jobs, audit with Knip + Lighthouse, and UI required checks.
10
+ * test jobs, audit with Knip + Lighthouse, and the UI `extraRequiredChecks`.
11
11
  * Requires: node, typecheck
12
12
  *
13
13
  * Pass `test` overrides to merge repo-specific options into the single test
@@ -22,7 +22,7 @@ declare function react$1({ test: testOverrides }?: ReactOptions): Capability;
22
22
  //#region configs/react.d.ts
23
23
  /**
24
24
  * Preset for single-package React/Vite application repos. Includes Storybook,
25
- * interaction tests, Knip + Lighthouse audit, and UI required checks.
25
+ * interaction tests, Knip + Lighthouse audit, and the UI extraRequiredChecks.
26
26
  *
27
27
  * Pass `test` overrides to merge repo-specific options (e.g. run-chromatic)
28
28
  * into the single test workflow entry so the sync tool sees one complete entry:
@@ -0,0 +1,18 @@
1
+ //#region capabilities/typecheck.ts
2
+ /**
3
+ * Adds TypeScript type-checking to a repo. Marked `required` — `holocron setup`
4
+ * derives the `Typecheck / Conclusion` branch-protection check from the manifest.
5
+ * Requires: node
6
+ */
7
+ function typecheck() {
8
+ return {
9
+ id: "typecheck",
10
+ requires: ["node"],
11
+ tasks: [{
12
+ name: "typecheck",
13
+ required: true
14
+ }]
15
+ };
16
+ }
17
+ //#endregion
18
+ export { typecheck as t };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@theholocron/holocron-config",
3
- "version": "8.1.1",
3
+ "version": "8.2.1",
4
4
  "description": "Shareable holocron configuration presets for theholocron repositories.",
5
5
  "homepage": "https://github.com/theholocron/configs/tree/main/packages/holocron-config#readme",
6
6
  "bugs": "https://github.com/theholocron/configs/issues",
@@ -18,16 +18,16 @@
18
18
  ],
19
19
  "type": "module",
20
20
  "devDependencies": {
21
- "@theholocron/cli": "^4.6.0",
21
+ "@theholocron/cli": "^4.16.2",
22
22
  "tsdown": "^0.22.14",
23
23
  "typescript": "^5.9.3",
24
24
  "vitest": "^4.1.10",
25
25
  "@vitest/coverage-v8": "^4.1.10",
26
- "@theholocron/tsconfig": "8.1.1",
27
- "@theholocron/vitest-config": "8.1.1"
26
+ "@theholocron/tsconfig": "8.2.1",
27
+ "@theholocron/vitest-config": "8.2.1"
28
28
  },
29
29
  "peerDependencies": {
30
- "@theholocron/cli": ">=4.6.0"
30
+ "@theholocron/cli": ">=4.10.0"
31
31
  },
32
32
  "exports": {
33
33
  ".": {
@@ -1,15 +0,0 @@
1
- //#region capabilities/typecheck.ts
2
- /**
3
- * Adds TypeScript type-checking to a repo.
4
- * Requires: node
5
- */
6
- function typecheck() {
7
- return {
8
- id: "typecheck",
9
- requires: ["node"],
10
- tasks: ["typecheck"],
11
- requiredChecks: ["Typecheck / Conclusion"]
12
- };
13
- }
14
- //#endregion
15
- export { typecheck as t };