@codedrifters/configulator 0.0.242 → 0.0.244
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.
- package/lib/index.d.mts +92 -6
- package/lib/index.d.ts +93 -7
- package/lib/index.js +132 -59
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +137 -68
- package/lib/index.mjs.map +1 -1
- package/package.json +1 -1
package/lib/index.d.mts
CHANGED
|
@@ -2757,8 +2757,10 @@ type LayoutEnforcement = (typeof LAYOUT_ENFORCEMENT)[keyof typeof LAYOUT_ENFORCE
|
|
|
2757
2757
|
*
|
|
2758
2758
|
* We key by class name (not class reference) so this module stays free of
|
|
2759
2759
|
* import cycles with the project-type files that validate against it.
|
|
2760
|
-
* `StarlightProject` maps to `DOCS` because the docs-singleton
|
|
2761
|
-
*
|
|
2760
|
+
* `StarlightProject` maps to `DOCS` by default because the docs-singleton
|
|
2761
|
+
* rule says a default-role Starlight project is the monorepo-wide docs
|
|
2762
|
+
* site. Site-role Starlight projects override this mapping at validate
|
|
2763
|
+
* time via their instance `role` property.
|
|
2762
2764
|
*
|
|
2763
2765
|
* @see ADR-006 §4 — Configulator project-type → `outdir` mapping
|
|
2764
2766
|
*/
|
|
@@ -2773,6 +2775,14 @@ interface LayoutViolation {
|
|
|
2773
2775
|
readonly outdir: string;
|
|
2774
2776
|
readonly expectedRoot: MonorepoLayoutRoot;
|
|
2775
2777
|
}
|
|
2778
|
+
/**
|
|
2779
|
+
* Violation reported by {@link validateStarlightSingleton} when a
|
|
2780
|
+
* `MonorepoProject` tree contains more than one `StarlightProject`
|
|
2781
|
+
* carrying `role: "docs"` (the docs-singleton rule — ADR-006 §3).
|
|
2782
|
+
*/
|
|
2783
|
+
interface StarlightSingletonViolation {
|
|
2784
|
+
readonly projectNames: ReadonlyArray<string>;
|
|
2785
|
+
}
|
|
2776
2786
|
/**
|
|
2777
2787
|
* Inspect every sub-project of `root` and collect those whose `outdir` does
|
|
2778
2788
|
* not live under the root expected for their project class (ADR-006 §4).
|
|
@@ -2784,13 +2794,39 @@ interface LayoutViolation {
|
|
|
2784
2794
|
* sub-project).
|
|
2785
2795
|
* - `outdir` comparison is done in POSIX form against the project root so
|
|
2786
2796
|
* absolute paths synthesised on Windows still match.
|
|
2797
|
+
* - A `StarlightProject` carrying `role: "site"` is validated against the
|
|
2798
|
+
* `sites/` root rather than the default `docs/` root. This keeps the
|
|
2799
|
+
* class-to-root mapping static while still honouring the ADR-006 §3
|
|
2800
|
+
* docs-singleton carve-out for docs-role projects.
|
|
2787
2801
|
*/
|
|
2788
2802
|
declare function validateMonorepoLayout(root: Project$1): Array<LayoutViolation>;
|
|
2803
|
+
/**
|
|
2804
|
+
* Inspect every sub-project of `root` and flag cases where more than one
|
|
2805
|
+
* `StarlightProject` claims `role: "docs"` (ADR-006 §3 — there is
|
|
2806
|
+
* exactly one Starlight docs site per monorepo, and it lives at `/docs`).
|
|
2807
|
+
*
|
|
2808
|
+
* Returns `undefined` when the singleton rule is satisfied (zero or one
|
|
2809
|
+
* docs-role Starlight project). Returns a single violation whose
|
|
2810
|
+
* `projectNames` list contains every offending project when two or more
|
|
2811
|
+
* docs-role Starlight projects are present — the caller reports the
|
|
2812
|
+
* whole set so authors can see every candidate at once rather than
|
|
2813
|
+
* fixing them one at a time.
|
|
2814
|
+
*
|
|
2815
|
+
* Site-role Starlight projects never count toward the singleton limit
|
|
2816
|
+
* and are not flagged.
|
|
2817
|
+
*/
|
|
2818
|
+
declare function validateStarlightSingleton(root: Project$1): StarlightSingletonViolation | undefined;
|
|
2789
2819
|
/**
|
|
2790
2820
|
* Render one {@link LayoutViolation} as an actionable, single-line error
|
|
2791
2821
|
* message pointing the reader at ADR-006.
|
|
2792
2822
|
*/
|
|
2793
2823
|
declare function formatLayoutViolation(violation: LayoutViolation): string;
|
|
2824
|
+
/**
|
|
2825
|
+
* Render a {@link StarlightSingletonViolation} as an actionable,
|
|
2826
|
+
* single-line error message pointing the reader at ADR-006 §3
|
|
2827
|
+
* (docs-singleton carve-out).
|
|
2828
|
+
*/
|
|
2829
|
+
declare function formatStarlightSingletonViolation(violation: StarlightSingletonViolation): string;
|
|
2794
2830
|
|
|
2795
2831
|
/**
|
|
2796
2832
|
* Each of the below options corresponds to a task property found here:
|
|
@@ -3410,10 +3446,20 @@ declare class MonorepoProject extends TypeScriptAppProject {
|
|
|
3410
3446
|
* layout contract. Runs in `preSynthesize` so all sub-projects are
|
|
3411
3447
|
* attached by the time we inspect the tree.
|
|
3412
3448
|
*
|
|
3449
|
+
* Two checks run in sequence:
|
|
3450
|
+
*
|
|
3451
|
+
* 1. **Outdir-vs-root validation.** Every sub-project's `outdir` must
|
|
3452
|
+
* live under the root expected for its project type (ADR-006 §4).
|
|
3453
|
+
* 2. **Docs-singleton validation.** At most one `StarlightProject`
|
|
3454
|
+
* may carry `role: "docs"` (ADR-006 §3).
|
|
3455
|
+
*
|
|
3413
3456
|
* Behavior is controlled by `layoutEnforcement`:
|
|
3414
|
-
* - `"off"` — skip
|
|
3415
|
-
* - `"warn"` — log a `console.warn` per violation; continue.
|
|
3416
|
-
*
|
|
3457
|
+
* - `"off"` — skip both checks.
|
|
3458
|
+
* - `"warn"` — log a `console.warn` per violation; continue. Singleton
|
|
3459
|
+
* violations also warn in this mode rather than throwing, so all
|
|
3460
|
+
* layout findings are surfaced consistently.
|
|
3461
|
+
* - `"error"` — throw on the first outdir violation, or on the
|
|
3462
|
+
* singleton violation if outdir validation passed.
|
|
3417
3463
|
*/
|
|
3418
3464
|
preSynthesize(): void;
|
|
3419
3465
|
/**
|
|
@@ -3627,7 +3673,27 @@ declare function resolveTypeScriptProjectOutdir(packageName: string | undefined)
|
|
|
3627
3673
|
* under the canonical `apps/` root.
|
|
3628
3674
|
*/
|
|
3629
3675
|
declare function resolveAwsCdkProjectOutdir(packageName: string | undefined): string;
|
|
3676
|
+
/**
|
|
3677
|
+
* Convenience wrapper that resolves an `outdir` for an `AstroProject`
|
|
3678
|
+
* under the canonical `sites/` root.
|
|
3679
|
+
*/
|
|
3680
|
+
declare function resolveAstroProjectOutdir(packageName: string | undefined): string;
|
|
3630
3681
|
|
|
3682
|
+
/**
|
|
3683
|
+
* Role a {@link StarlightProject} plays inside the monorepo (ADR-006).
|
|
3684
|
+
*
|
|
3685
|
+
* - `"docs"` — the monorepo-wide Starlight docs site. Singleton: at most one
|
|
3686
|
+
* docs-role project may exist per `MonorepoProject`. Defaults `outdir` to
|
|
3687
|
+
* `docs/`.
|
|
3688
|
+
* - `"site"` — a user-facing Starlight site deployed from `sites/`. Behaves
|
|
3689
|
+
* like a regular {@link AstroProject} for placement: defaults `outdir` to
|
|
3690
|
+
* `sites/<scope>/<name>`.
|
|
3691
|
+
*/
|
|
3692
|
+
declare const STARLIGHT_ROLE: {
|
|
3693
|
+
readonly DOCS: "docs";
|
|
3694
|
+
readonly SITE: "site";
|
|
3695
|
+
};
|
|
3696
|
+
type StarlightRole = (typeof STARLIGHT_ROLE)[keyof typeof STARLIGHT_ROLE];
|
|
3631
3697
|
/**
|
|
3632
3698
|
* A single Starlight social icon link.
|
|
3633
3699
|
*/
|
|
@@ -3682,6 +3748,19 @@ interface StarlightProjectOptions extends AstroProjectOptions {
|
|
|
3682
3748
|
* Starlight site title (required).
|
|
3683
3749
|
*/
|
|
3684
3750
|
readonly starlightTitle: string;
|
|
3751
|
+
/**
|
|
3752
|
+
* Role this Starlight project plays in the monorepo (ADR-006).
|
|
3753
|
+
*
|
|
3754
|
+
* - `"docs"` (default) — the monorepo-wide docs singleton. `outdir`
|
|
3755
|
+
* defaults to `docs/`. Only one docs-role `StarlightProject` may
|
|
3756
|
+
* exist per `MonorepoProject`; a second one fails synth.
|
|
3757
|
+
* - `"site"` — a regular user-facing Starlight site. `outdir`
|
|
3758
|
+
* defaults to `sites/<scope>/<name>` (same rule as
|
|
3759
|
+
* `AstroProject`). Multiple site-role projects are allowed.
|
|
3760
|
+
*
|
|
3761
|
+
* @default "docs"
|
|
3762
|
+
*/
|
|
3763
|
+
readonly role?: StarlightRole;
|
|
3685
3764
|
/**
|
|
3686
3765
|
* Starlight site description.
|
|
3687
3766
|
*/
|
|
@@ -3732,6 +3811,13 @@ interface StarlightProjectOptions extends AstroProjectOptions {
|
|
|
3732
3811
|
* Starlight Astro integration.
|
|
3733
3812
|
*/
|
|
3734
3813
|
declare class StarlightProject extends AstroProject {
|
|
3814
|
+
/**
|
|
3815
|
+
* Role this Starlight project plays in the monorepo (ADR-006).
|
|
3816
|
+
*
|
|
3817
|
+
* - `"docs"` — monorepo-wide docs singleton at `/docs`.
|
|
3818
|
+
* - `"site"` — user-facing Starlight site under `sites/<scope>/<name>`.
|
|
3819
|
+
*/
|
|
3820
|
+
readonly role: StarlightRole;
|
|
3735
3821
|
constructor(userOptions: StarlightProjectOptions);
|
|
3736
3822
|
}
|
|
3737
3823
|
|
|
@@ -3769,4 +3855,4 @@ declare const COMPLETE_JOB_ID = "complete";
|
|
|
3769
3855
|
*/
|
|
3770
3856
|
declare function addBuildCompleteJob(buildWorkflow: BuildWorkflow): void;
|
|
3771
3857
|
|
|
3772
|
-
export { AGENT_MODEL, AGENT_PLATFORM, AGENT_RULE_SCOPE, AgentConfig, type AgentConfigOptions, type AgentModel, type AgentPlatform, type AgentPlatformOverrides, type AgentProcedure, type AgentRule, type AgentRuleBundle, type AgentRuleScope, type AgentSkill, type AgentSubAgent, type AgentSubAgentPlatformOverrides, type ApproveMergeUpgradeOptions, AstroConfig, type AstroConfigOptions, type AstroIntegrationSpec, AstroOutput, AstroProject, type AstroProjectOptions, type AwsAccount, AwsCdkProject, type AwsCdkProjectOptions, AwsDeployWorkflow, AwsDeploymentConfig, AwsDeploymentTarget, type AwsDeploymentTargetOptions, type AwsLocalDeploymentConfig, type AwsOrganization, type AwsRegion, AwsTeardownWorkflow, type AwsTeardownWorkflowOptions, BUILT_IN_BUNDLES, CLAUDE_RULE_TARGET, COMPLETE_JOB_ID, type CiDeploymentConfig, type ClassTypeOptions, type ClaudeAutoModeConfig, type ClaudeHookAction, type ClaudeHookEntry, type ClaudeHooksConfig, type ClaudePermissionsConfig, type ClaudeRuleTarget, type ClaudeSandboxConfig, type ClaudeSettingsConfig, type CopilotHandoff, type CursorHookAction, type CursorHooksConfig, type CursorSettingsConfig, DEFAULT_PRIORITY_LABELS, DEFAULT_STATUS_LABELS, DEFAULT_TEARDOWN_BRANCH_PATTERNS, DEFAULT_TYPE_LABELS, type DeployWorkflowOptions, type DeploymentMetadata, type GitBranch, type GitHubBoardMetadata, type GitHubProjectMetadata, type GitHubSprintMetadata, type IDependencyResolver, JsiiFaker, LAYOUT_ENFORCEMENT, LAYOUT_ROOT_BY_PROJECT_TYPE, type LabelDefinition, type LayoutEnforcement, type LayoutViolation, MCP_TRANSPORT, MERGE_METHODS, MIMIMUM_RELEASE_AGE, MINIMUM_RELEASE_AGE, MONOREPO_LAYOUT, type McpServerConfig, type McpTransport, type MergeMethod, type MonorepoLayoutRoot, MonorepoProject, type MonorepoProjectOptions, type OrganizationMetadata, PROD_DEPLOY_NAME, PnpmWorkspace, type PnpmWorkspaceOptions, ProjectMetadata, type ProjectMetadataOptions, REQUIREMENTS_WRITER_PATHS, ROOT_CI_TASK_NAME, ROOT_TURBO_TASK_NAME, type RemoteCacheOptions, type RepositoryMetadata, ResetTask, type ResetTaskOptions, type ResolvedProjectMetadata, type SlackMetadata, type StarlightEditLink, type StarlightLogo, StarlightProject, type StarlightProjectOptions, type StarlightSidebarItem, type StarlightSocialLink, type SyncLabelsOptions, type TemplateResolveResult, TestRunner, TurboRepo, type TurboRepoOptions, TurboRepoTask, type TurboRepoTaskOptions, TypeScriptConfig, TypeScriptProject, type TypeScriptProjectOptions, VERSION, VERSION_KEYS_SKIP, VERSION_NPM_PACKAGES, VSCodeConfig, type VersionKey, Vitest, type VitestConfigOptions, type VitestOptions, addApproveMergeUpgradeWorkflow, addBuildCompleteJob, addSyncLabelsWorkflow, awsCdkBundle, baseBundle, bcmWriterBundle, companyProfileBundle, formatLayoutViolation, getLatestEligibleVersion, githubWorkflowBundle, industryDiscoveryBundle, jestBundle, maintenanceAuditBundle, meetingAnalysisBundle, orchestratorBundle, peopleProfileBundle, pnpmBundle, prReviewBundle, projenBundle, requirementsAnalystBundle, requirementsReviewerBundle, requirementsWriterBundle, researchPipelineBundle, resolveAwsCdkProjectOutdir, resolveModelAlias, resolveOutdirFromPackageName, resolveTemplateVariables, resolveTypeScriptProjectOutdir, slackBundle, softwareProfileBundle, turborepoBundle, typescriptBundle, validateMonorepoLayout, vitestBundle };
|
|
3858
|
+
export { AGENT_MODEL, AGENT_PLATFORM, AGENT_RULE_SCOPE, AgentConfig, type AgentConfigOptions, type AgentModel, type AgentPlatform, type AgentPlatformOverrides, type AgentProcedure, type AgentRule, type AgentRuleBundle, type AgentRuleScope, type AgentSkill, type AgentSubAgent, type AgentSubAgentPlatformOverrides, type ApproveMergeUpgradeOptions, AstroConfig, type AstroConfigOptions, type AstroIntegrationSpec, AstroOutput, AstroProject, type AstroProjectOptions, type AwsAccount, AwsCdkProject, type AwsCdkProjectOptions, AwsDeployWorkflow, AwsDeploymentConfig, AwsDeploymentTarget, type AwsDeploymentTargetOptions, type AwsLocalDeploymentConfig, type AwsOrganization, type AwsRegion, AwsTeardownWorkflow, type AwsTeardownWorkflowOptions, BUILT_IN_BUNDLES, CLAUDE_RULE_TARGET, COMPLETE_JOB_ID, type CiDeploymentConfig, type ClassTypeOptions, type ClaudeAutoModeConfig, type ClaudeHookAction, type ClaudeHookEntry, type ClaudeHooksConfig, type ClaudePermissionsConfig, type ClaudeRuleTarget, type ClaudeSandboxConfig, type ClaudeSettingsConfig, type CopilotHandoff, type CursorHookAction, type CursorHooksConfig, type CursorSettingsConfig, DEFAULT_PRIORITY_LABELS, DEFAULT_STATUS_LABELS, DEFAULT_TEARDOWN_BRANCH_PATTERNS, DEFAULT_TYPE_LABELS, type DeployWorkflowOptions, type DeploymentMetadata, type GitBranch, type GitHubBoardMetadata, type GitHubProjectMetadata, type GitHubSprintMetadata, type IDependencyResolver, JsiiFaker, LAYOUT_ENFORCEMENT, LAYOUT_ROOT_BY_PROJECT_TYPE, type LabelDefinition, type LayoutEnforcement, type LayoutViolation, MCP_TRANSPORT, MERGE_METHODS, MIMIMUM_RELEASE_AGE, MINIMUM_RELEASE_AGE, MONOREPO_LAYOUT, type McpServerConfig, type McpTransport, type MergeMethod, type MonorepoLayoutRoot, MonorepoProject, type MonorepoProjectOptions, type OrganizationMetadata, PROD_DEPLOY_NAME, PnpmWorkspace, type PnpmWorkspaceOptions, ProjectMetadata, type ProjectMetadataOptions, REQUIREMENTS_WRITER_PATHS, ROOT_CI_TASK_NAME, ROOT_TURBO_TASK_NAME, type RemoteCacheOptions, type RepositoryMetadata, ResetTask, type ResetTaskOptions, type ResolvedProjectMetadata, STARLIGHT_ROLE, type SlackMetadata, type StarlightEditLink, type StarlightLogo, StarlightProject, type StarlightProjectOptions, type StarlightRole, type StarlightSidebarItem, type StarlightSingletonViolation, type StarlightSocialLink, type SyncLabelsOptions, type TemplateResolveResult, TestRunner, TurboRepo, type TurboRepoOptions, TurboRepoTask, type TurboRepoTaskOptions, TypeScriptConfig, TypeScriptProject, type TypeScriptProjectOptions, VERSION, VERSION_KEYS_SKIP, VERSION_NPM_PACKAGES, VSCodeConfig, type VersionKey, Vitest, type VitestConfigOptions, type VitestOptions, addApproveMergeUpgradeWorkflow, addBuildCompleteJob, addSyncLabelsWorkflow, awsCdkBundle, baseBundle, bcmWriterBundle, companyProfileBundle, formatLayoutViolation, formatStarlightSingletonViolation, getLatestEligibleVersion, githubWorkflowBundle, industryDiscoveryBundle, jestBundle, maintenanceAuditBundle, meetingAnalysisBundle, orchestratorBundle, peopleProfileBundle, pnpmBundle, prReviewBundle, projenBundle, requirementsAnalystBundle, requirementsReviewerBundle, requirementsWriterBundle, researchPipelineBundle, resolveAstroProjectOutdir, resolveAwsCdkProjectOutdir, resolveModelAlias, resolveOutdirFromPackageName, resolveTemplateVariables, resolveTypeScriptProjectOutdir, slackBundle, softwareProfileBundle, turborepoBundle, typescriptBundle, validateMonorepoLayout, validateStarlightSingleton, vitestBundle };
|
package/lib/index.d.ts
CHANGED
|
@@ -2806,8 +2806,10 @@ type LayoutEnforcement = (typeof LAYOUT_ENFORCEMENT)[keyof typeof LAYOUT_ENFORCE
|
|
|
2806
2806
|
*
|
|
2807
2807
|
* We key by class name (not class reference) so this module stays free of
|
|
2808
2808
|
* import cycles with the project-type files that validate against it.
|
|
2809
|
-
* `StarlightProject` maps to `DOCS` because the docs-singleton
|
|
2810
|
-
*
|
|
2809
|
+
* `StarlightProject` maps to `DOCS` by default because the docs-singleton
|
|
2810
|
+
* rule says a default-role Starlight project is the monorepo-wide docs
|
|
2811
|
+
* site. Site-role Starlight projects override this mapping at validate
|
|
2812
|
+
* time via their instance `role` property.
|
|
2811
2813
|
*
|
|
2812
2814
|
* @see ADR-006 §4 — Configulator project-type → `outdir` mapping
|
|
2813
2815
|
*/
|
|
@@ -2822,6 +2824,14 @@ interface LayoutViolation {
|
|
|
2822
2824
|
readonly outdir: string;
|
|
2823
2825
|
readonly expectedRoot: MonorepoLayoutRoot;
|
|
2824
2826
|
}
|
|
2827
|
+
/**
|
|
2828
|
+
* Violation reported by {@link validateStarlightSingleton} when a
|
|
2829
|
+
* `MonorepoProject` tree contains more than one `StarlightProject`
|
|
2830
|
+
* carrying `role: "docs"` (the docs-singleton rule — ADR-006 §3).
|
|
2831
|
+
*/
|
|
2832
|
+
interface StarlightSingletonViolation {
|
|
2833
|
+
readonly projectNames: ReadonlyArray<string>;
|
|
2834
|
+
}
|
|
2825
2835
|
/**
|
|
2826
2836
|
* Inspect every sub-project of `root` and collect those whose `outdir` does
|
|
2827
2837
|
* not live under the root expected for their project class (ADR-006 §4).
|
|
@@ -2833,13 +2843,39 @@ interface LayoutViolation {
|
|
|
2833
2843
|
* sub-project).
|
|
2834
2844
|
* - `outdir` comparison is done in POSIX form against the project root so
|
|
2835
2845
|
* absolute paths synthesised on Windows still match.
|
|
2846
|
+
* - A `StarlightProject` carrying `role: "site"` is validated against the
|
|
2847
|
+
* `sites/` root rather than the default `docs/` root. This keeps the
|
|
2848
|
+
* class-to-root mapping static while still honouring the ADR-006 §3
|
|
2849
|
+
* docs-singleton carve-out for docs-role projects.
|
|
2836
2850
|
*/
|
|
2837
2851
|
declare function validateMonorepoLayout(root: Project): Array<LayoutViolation>;
|
|
2852
|
+
/**
|
|
2853
|
+
* Inspect every sub-project of `root` and flag cases where more than one
|
|
2854
|
+
* `StarlightProject` claims `role: "docs"` (ADR-006 §3 — there is
|
|
2855
|
+
* exactly one Starlight docs site per monorepo, and it lives at `/docs`).
|
|
2856
|
+
*
|
|
2857
|
+
* Returns `undefined` when the singleton rule is satisfied (zero or one
|
|
2858
|
+
* docs-role Starlight project). Returns a single violation whose
|
|
2859
|
+
* `projectNames` list contains every offending project when two or more
|
|
2860
|
+
* docs-role Starlight projects are present — the caller reports the
|
|
2861
|
+
* whole set so authors can see every candidate at once rather than
|
|
2862
|
+
* fixing them one at a time.
|
|
2863
|
+
*
|
|
2864
|
+
* Site-role Starlight projects never count toward the singleton limit
|
|
2865
|
+
* and are not flagged.
|
|
2866
|
+
*/
|
|
2867
|
+
declare function validateStarlightSingleton(root: Project): StarlightSingletonViolation | undefined;
|
|
2838
2868
|
/**
|
|
2839
2869
|
* Render one {@link LayoutViolation} as an actionable, single-line error
|
|
2840
2870
|
* message pointing the reader at ADR-006.
|
|
2841
2871
|
*/
|
|
2842
2872
|
declare function formatLayoutViolation(violation: LayoutViolation): string;
|
|
2873
|
+
/**
|
|
2874
|
+
* Render a {@link StarlightSingletonViolation} as an actionable,
|
|
2875
|
+
* single-line error message pointing the reader at ADR-006 §3
|
|
2876
|
+
* (docs-singleton carve-out).
|
|
2877
|
+
*/
|
|
2878
|
+
declare function formatStarlightSingletonViolation(violation: StarlightSingletonViolation): string;
|
|
2843
2879
|
|
|
2844
2880
|
/**
|
|
2845
2881
|
* Each of the below options corresponds to a task property found here:
|
|
@@ -3459,10 +3495,20 @@ declare class MonorepoProject extends TypeScriptAppProject {
|
|
|
3459
3495
|
* layout contract. Runs in `preSynthesize` so all sub-projects are
|
|
3460
3496
|
* attached by the time we inspect the tree.
|
|
3461
3497
|
*
|
|
3498
|
+
* Two checks run in sequence:
|
|
3499
|
+
*
|
|
3500
|
+
* 1. **Outdir-vs-root validation.** Every sub-project's `outdir` must
|
|
3501
|
+
* live under the root expected for its project type (ADR-006 §4).
|
|
3502
|
+
* 2. **Docs-singleton validation.** At most one `StarlightProject`
|
|
3503
|
+
* may carry `role: "docs"` (ADR-006 §3).
|
|
3504
|
+
*
|
|
3462
3505
|
* Behavior is controlled by `layoutEnforcement`:
|
|
3463
|
-
* - `"off"` — skip
|
|
3464
|
-
* - `"warn"` — log a `console.warn` per violation; continue.
|
|
3465
|
-
*
|
|
3506
|
+
* - `"off"` — skip both checks.
|
|
3507
|
+
* - `"warn"` — log a `console.warn` per violation; continue. Singleton
|
|
3508
|
+
* violations also warn in this mode rather than throwing, so all
|
|
3509
|
+
* layout findings are surfaced consistently.
|
|
3510
|
+
* - `"error"` — throw on the first outdir violation, or on the
|
|
3511
|
+
* singleton violation if outdir validation passed.
|
|
3466
3512
|
*/
|
|
3467
3513
|
preSynthesize(): void;
|
|
3468
3514
|
/**
|
|
@@ -3676,7 +3722,27 @@ declare function resolveTypeScriptProjectOutdir(packageName: string | undefined)
|
|
|
3676
3722
|
* under the canonical `apps/` root.
|
|
3677
3723
|
*/
|
|
3678
3724
|
declare function resolveAwsCdkProjectOutdir(packageName: string | undefined): string;
|
|
3725
|
+
/**
|
|
3726
|
+
* Convenience wrapper that resolves an `outdir` for an `AstroProject`
|
|
3727
|
+
* under the canonical `sites/` root.
|
|
3728
|
+
*/
|
|
3729
|
+
declare function resolveAstroProjectOutdir(packageName: string | undefined): string;
|
|
3679
3730
|
|
|
3731
|
+
/**
|
|
3732
|
+
* Role a {@link StarlightProject} plays inside the monorepo (ADR-006).
|
|
3733
|
+
*
|
|
3734
|
+
* - `"docs"` — the monorepo-wide Starlight docs site. Singleton: at most one
|
|
3735
|
+
* docs-role project may exist per `MonorepoProject`. Defaults `outdir` to
|
|
3736
|
+
* `docs/`.
|
|
3737
|
+
* - `"site"` — a user-facing Starlight site deployed from `sites/`. Behaves
|
|
3738
|
+
* like a regular {@link AstroProject} for placement: defaults `outdir` to
|
|
3739
|
+
* `sites/<scope>/<name>`.
|
|
3740
|
+
*/
|
|
3741
|
+
declare const STARLIGHT_ROLE: {
|
|
3742
|
+
readonly DOCS: "docs";
|
|
3743
|
+
readonly SITE: "site";
|
|
3744
|
+
};
|
|
3745
|
+
type StarlightRole = (typeof STARLIGHT_ROLE)[keyof typeof STARLIGHT_ROLE];
|
|
3680
3746
|
/**
|
|
3681
3747
|
* A single Starlight social icon link.
|
|
3682
3748
|
*/
|
|
@@ -3731,6 +3797,19 @@ interface StarlightProjectOptions extends AstroProjectOptions {
|
|
|
3731
3797
|
* Starlight site title (required).
|
|
3732
3798
|
*/
|
|
3733
3799
|
readonly starlightTitle: string;
|
|
3800
|
+
/**
|
|
3801
|
+
* Role this Starlight project plays in the monorepo (ADR-006).
|
|
3802
|
+
*
|
|
3803
|
+
* - `"docs"` (default) — the monorepo-wide docs singleton. `outdir`
|
|
3804
|
+
* defaults to `docs/`. Only one docs-role `StarlightProject` may
|
|
3805
|
+
* exist per `MonorepoProject`; a second one fails synth.
|
|
3806
|
+
* - `"site"` — a regular user-facing Starlight site. `outdir`
|
|
3807
|
+
* defaults to `sites/<scope>/<name>` (same rule as
|
|
3808
|
+
* `AstroProject`). Multiple site-role projects are allowed.
|
|
3809
|
+
*
|
|
3810
|
+
* @default "docs"
|
|
3811
|
+
*/
|
|
3812
|
+
readonly role?: StarlightRole;
|
|
3734
3813
|
/**
|
|
3735
3814
|
* Starlight site description.
|
|
3736
3815
|
*/
|
|
@@ -3781,6 +3860,13 @@ interface StarlightProjectOptions extends AstroProjectOptions {
|
|
|
3781
3860
|
* Starlight Astro integration.
|
|
3782
3861
|
*/
|
|
3783
3862
|
declare class StarlightProject extends AstroProject {
|
|
3863
|
+
/**
|
|
3864
|
+
* Role this Starlight project plays in the monorepo (ADR-006).
|
|
3865
|
+
*
|
|
3866
|
+
* - `"docs"` — monorepo-wide docs singleton at `/docs`.
|
|
3867
|
+
* - `"site"` — user-facing Starlight site under `sites/<scope>/<name>`.
|
|
3868
|
+
*/
|
|
3869
|
+
readonly role: StarlightRole;
|
|
3784
3870
|
constructor(userOptions: StarlightProjectOptions);
|
|
3785
3871
|
}
|
|
3786
3872
|
|
|
@@ -3818,5 +3904,5 @@ declare const COMPLETE_JOB_ID = "complete";
|
|
|
3818
3904
|
*/
|
|
3819
3905
|
declare function addBuildCompleteJob(buildWorkflow: BuildWorkflow): void;
|
|
3820
3906
|
|
|
3821
|
-
export { AGENT_MODEL, AGENT_PLATFORM, AGENT_RULE_SCOPE, AgentConfig, AstroConfig, AstroOutput, AstroProject, AwsCdkProject, AwsDeployWorkflow, AwsDeploymentConfig, AwsDeploymentTarget, AwsTeardownWorkflow, BUILT_IN_BUNDLES, CLAUDE_RULE_TARGET, COMPLETE_JOB_ID, DEFAULT_PRIORITY_LABELS, DEFAULT_STATUS_LABELS, DEFAULT_TEARDOWN_BRANCH_PATTERNS, DEFAULT_TYPE_LABELS, JsiiFaker, LAYOUT_ENFORCEMENT, LAYOUT_ROOT_BY_PROJECT_TYPE, MCP_TRANSPORT, MERGE_METHODS, MIMIMUM_RELEASE_AGE, MINIMUM_RELEASE_AGE, MONOREPO_LAYOUT, MonorepoProject, PROD_DEPLOY_NAME, PnpmWorkspace, ProjectMetadata, REQUIREMENTS_WRITER_PATHS, ROOT_CI_TASK_NAME, ROOT_TURBO_TASK_NAME, ResetTask, StarlightProject, TestRunner, TurboRepo, TurboRepoTask, TypeScriptConfig, TypeScriptProject, VERSION, VERSION_KEYS_SKIP, VERSION_NPM_PACKAGES, VSCodeConfig, Vitest, addApproveMergeUpgradeWorkflow, addBuildCompleteJob, addSyncLabelsWorkflow, awsCdkBundle, baseBundle, bcmWriterBundle, companyProfileBundle, formatLayoutViolation, getLatestEligibleVersion, githubWorkflowBundle, industryDiscoveryBundle, jestBundle, maintenanceAuditBundle, meetingAnalysisBundle, orchestratorBundle, peopleProfileBundle, pnpmBundle, prReviewBundle, projenBundle, requirementsAnalystBundle, requirementsReviewerBundle, requirementsWriterBundle, researchPipelineBundle, resolveAwsCdkProjectOutdir, resolveModelAlias, resolveOutdirFromPackageName, resolveTemplateVariables, resolveTypeScriptProjectOutdir, slackBundle, softwareProfileBundle, turborepoBundle, typescriptBundle, validateMonorepoLayout, vitestBundle };
|
|
3822
|
-
export type { AgentConfigOptions, AgentModel, AgentPlatform, AgentPlatformOverrides, AgentProcedure, AgentRule, AgentRuleBundle, AgentRuleScope, AgentSkill, AgentSubAgent, AgentSubAgentPlatformOverrides, ApproveMergeUpgradeOptions, AstroConfigOptions, AstroIntegrationSpec, AstroProjectOptions, AwsAccount, AwsCdkProjectOptions, AwsDeploymentTargetOptions, AwsLocalDeploymentConfig, AwsOrganization, AwsRegion, AwsTeardownWorkflowOptions, CiDeploymentConfig, ClassTypeOptions, ClaudeAutoModeConfig, ClaudeHookAction, ClaudeHookEntry, ClaudeHooksConfig, ClaudePermissionsConfig, ClaudeRuleTarget, ClaudeSandboxConfig, ClaudeSettingsConfig, CopilotHandoff, CursorHookAction, CursorHooksConfig, CursorSettingsConfig, DeployWorkflowOptions, DeploymentMetadata, GitBranch, GitHubBoardMetadata, GitHubProjectMetadata, GitHubSprintMetadata, IDependencyResolver, LabelDefinition, LayoutEnforcement, LayoutViolation, McpServerConfig, McpTransport, MergeMethod, MonorepoLayoutRoot, MonorepoProjectOptions, OrganizationMetadata, PnpmWorkspaceOptions, ProjectMetadataOptions, RemoteCacheOptions, RepositoryMetadata, ResetTaskOptions, ResolvedProjectMetadata, SlackMetadata, StarlightEditLink, StarlightLogo, StarlightProjectOptions, StarlightSidebarItem, StarlightSocialLink, SyncLabelsOptions, TemplateResolveResult, TurboRepoOptions, TurboRepoTaskOptions, TypeScriptProjectOptions, VersionKey, VitestConfigOptions, VitestOptions };
|
|
3907
|
+
export { AGENT_MODEL, AGENT_PLATFORM, AGENT_RULE_SCOPE, AgentConfig, AstroConfig, AstroOutput, AstroProject, AwsCdkProject, AwsDeployWorkflow, AwsDeploymentConfig, AwsDeploymentTarget, AwsTeardownWorkflow, BUILT_IN_BUNDLES, CLAUDE_RULE_TARGET, COMPLETE_JOB_ID, DEFAULT_PRIORITY_LABELS, DEFAULT_STATUS_LABELS, DEFAULT_TEARDOWN_BRANCH_PATTERNS, DEFAULT_TYPE_LABELS, JsiiFaker, LAYOUT_ENFORCEMENT, LAYOUT_ROOT_BY_PROJECT_TYPE, MCP_TRANSPORT, MERGE_METHODS, MIMIMUM_RELEASE_AGE, MINIMUM_RELEASE_AGE, MONOREPO_LAYOUT, MonorepoProject, PROD_DEPLOY_NAME, PnpmWorkspace, ProjectMetadata, REQUIREMENTS_WRITER_PATHS, ROOT_CI_TASK_NAME, ROOT_TURBO_TASK_NAME, ResetTask, STARLIGHT_ROLE, StarlightProject, TestRunner, TurboRepo, TurboRepoTask, TypeScriptConfig, TypeScriptProject, VERSION, VERSION_KEYS_SKIP, VERSION_NPM_PACKAGES, VSCodeConfig, Vitest, addApproveMergeUpgradeWorkflow, addBuildCompleteJob, addSyncLabelsWorkflow, awsCdkBundle, baseBundle, bcmWriterBundle, companyProfileBundle, formatLayoutViolation, formatStarlightSingletonViolation, getLatestEligibleVersion, githubWorkflowBundle, industryDiscoveryBundle, jestBundle, maintenanceAuditBundle, meetingAnalysisBundle, orchestratorBundle, peopleProfileBundle, pnpmBundle, prReviewBundle, projenBundle, requirementsAnalystBundle, requirementsReviewerBundle, requirementsWriterBundle, researchPipelineBundle, resolveAstroProjectOutdir, resolveAwsCdkProjectOutdir, resolveModelAlias, resolveOutdirFromPackageName, resolveTemplateVariables, resolveTypeScriptProjectOutdir, slackBundle, softwareProfileBundle, turborepoBundle, typescriptBundle, validateMonorepoLayout, validateStarlightSingleton, vitestBundle };
|
|
3908
|
+
export type { AgentConfigOptions, AgentModel, AgentPlatform, AgentPlatformOverrides, AgentProcedure, AgentRule, AgentRuleBundle, AgentRuleScope, AgentSkill, AgentSubAgent, AgentSubAgentPlatformOverrides, ApproveMergeUpgradeOptions, AstroConfigOptions, AstroIntegrationSpec, AstroProjectOptions, AwsAccount, AwsCdkProjectOptions, AwsDeploymentTargetOptions, AwsLocalDeploymentConfig, AwsOrganization, AwsRegion, AwsTeardownWorkflowOptions, CiDeploymentConfig, ClassTypeOptions, ClaudeAutoModeConfig, ClaudeHookAction, ClaudeHookEntry, ClaudeHooksConfig, ClaudePermissionsConfig, ClaudeRuleTarget, ClaudeSandboxConfig, ClaudeSettingsConfig, CopilotHandoff, CursorHookAction, CursorHooksConfig, CursorSettingsConfig, DeployWorkflowOptions, DeploymentMetadata, GitBranch, GitHubBoardMetadata, GitHubProjectMetadata, GitHubSprintMetadata, IDependencyResolver, LabelDefinition, LayoutEnforcement, LayoutViolation, McpServerConfig, McpTransport, MergeMethod, MonorepoLayoutRoot, MonorepoProjectOptions, OrganizationMetadata, PnpmWorkspaceOptions, ProjectMetadataOptions, RemoteCacheOptions, RepositoryMetadata, ResetTaskOptions, ResolvedProjectMetadata, SlackMetadata, StarlightEditLink, StarlightLogo, StarlightProjectOptions, StarlightRole, StarlightSidebarItem, StarlightSingletonViolation, StarlightSocialLink, SyncLabelsOptions, TemplateResolveResult, TurboRepoOptions, TurboRepoTaskOptions, TypeScriptProjectOptions, VersionKey, VitestConfigOptions, VitestOptions };
|