@codedrifters/configulator 0.0.295 → 0.0.297
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 +288 -10
- package/lib/index.d.ts +289 -11
- package/lib/index.js +514 -60
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +488 -43
- package/lib/index.mjs.map +1 -1
- package/package.json +2 -2
package/lib/index.js
CHANGED
|
@@ -195,6 +195,7 @@ __export(index_exports, {
|
|
|
195
195
|
AwsDeploymentTarget: () => AwsDeploymentTarget,
|
|
196
196
|
AwsTeardownWorkflow: () => AwsTeardownWorkflow,
|
|
197
197
|
BUILT_IN_BUNDLES: () => BUILT_IN_BUNDLES,
|
|
198
|
+
BUNDLE_OWNERSHIP: () => BUNDLE_OWNERSHIP,
|
|
198
199
|
CLAUDE_RULE_TARGET: () => CLAUDE_RULE_TARGET,
|
|
199
200
|
COMPLETE_JOB_ID: () => COMPLETE_JOB_ID,
|
|
200
201
|
DEFAULT_AC_THRESHOLDS: () => DEFAULT_AC_THRESHOLDS,
|
|
@@ -259,6 +260,7 @@ __export(index_exports, {
|
|
|
259
260
|
MINIMUM_RELEASE_AGE: () => MINIMUM_RELEASE_AGE,
|
|
260
261
|
MONOREPO_LAYOUT: () => MONOREPO_LAYOUT,
|
|
261
262
|
MonorepoProject: () => MonorepoProject,
|
|
263
|
+
Nvmrc: () => Nvmrc,
|
|
262
264
|
PROD_DEPLOY_NAME: () => PROD_DEPLOY_NAME,
|
|
263
265
|
PROGRESS_FILES_FORMAT_VALUES: () => PROGRESS_FILES_FORMAT_VALUES,
|
|
264
266
|
PnpmWorkspace: () => PnpmWorkspace,
|
|
@@ -338,7 +340,12 @@ __export(index_exports, {
|
|
|
338
340
|
formatStarlightSingletonViolation: () => formatStarlightSingletonViolation,
|
|
339
341
|
getLatestEligibleVersion: () => getLatestEligibleVersion,
|
|
340
342
|
githubWorkflowBundle: () => githubWorkflowBundle,
|
|
343
|
+
hasAnyDocsEmittingBundle: () => hasAnyDocsEmittingBundle,
|
|
344
|
+
hasAnyDownstreamIssueKindBundle: () => hasAnyDownstreamIssueKindBundle,
|
|
341
345
|
industryDiscoveryBundle: () => industryDiscoveryBundle,
|
|
346
|
+
isPhaseLabelOwnedByExcluded: () => isPhaseLabelOwnedByExcluded,
|
|
347
|
+
isScheduledTaskOwnedByExcluded: () => isScheduledTaskOwnedByExcluded,
|
|
348
|
+
isTypeLabelOwnedByExcluded: () => isTypeLabelOwnedByExcluded,
|
|
342
349
|
jestBundle: () => jestBundle,
|
|
343
350
|
labelsForPhase: () => labelsForPhase,
|
|
344
351
|
maintenanceAuditBundle: () => maintenanceAuditBundle,
|
|
@@ -347,6 +354,8 @@ __export(index_exports, {
|
|
|
347
354
|
parseApiRollup: () => parseApiRollup,
|
|
348
355
|
peopleProfileBundle: () => peopleProfileBundle,
|
|
349
356
|
persistAuditReport: () => persistAuditReport,
|
|
357
|
+
pinPnpmActionSetup: () => pinPnpmActionSetup,
|
|
358
|
+
pinSetupNodeVersion: () => pinSetupNodeVersion,
|
|
350
359
|
pnpmBundle: () => pnpmBundle,
|
|
351
360
|
prReviewBundle: () => prReviewBundle,
|
|
352
361
|
projenBundle: () => projenBundle,
|
|
@@ -1404,8 +1413,8 @@ function resolveIssueTemplates(config) {
|
|
|
1404
1413
|
function validateIssueTemplatesConfig(config) {
|
|
1405
1414
|
return resolveIssueTemplates(config);
|
|
1406
1415
|
}
|
|
1407
|
-
function renderIssueTemplatesRuleContent(it) {
|
|
1408
|
-
if (!it.enabled) {
|
|
1416
|
+
function renderIssueTemplatesRuleContent(it, hasDownstreamBundles = true) {
|
|
1417
|
+
if (!it.enabled || !hasDownstreamBundles) {
|
|
1409
1418
|
return [
|
|
1410
1419
|
"# Issue Templates",
|
|
1411
1420
|
"",
|
|
@@ -11555,6 +11564,238 @@ function assertValidStateFilePath(stateFilePath) {
|
|
|
11555
11564
|
}
|
|
11556
11565
|
}
|
|
11557
11566
|
|
|
11567
|
+
// src/agent/bundles/bundle-ownership.ts
|
|
11568
|
+
var BUNDLE_OWNERSHIP = {
|
|
11569
|
+
agenda: {
|
|
11570
|
+
typeLabels: ["agenda"],
|
|
11571
|
+
phaseLabelPrefixes: ["agenda:"],
|
|
11572
|
+
scheduledTaskIds: ["worker-agenda"],
|
|
11573
|
+
emitsDocs: true,
|
|
11574
|
+
downstreamIssueKinds: true
|
|
11575
|
+
},
|
|
11576
|
+
"bcm-writer": {
|
|
11577
|
+
typeLabels: ["bcm-document"],
|
|
11578
|
+
phaseLabelPrefixes: ["bcm:"],
|
|
11579
|
+
scheduledTaskIds: ["worker-bcm-writer"],
|
|
11580
|
+
emitsDocs: true,
|
|
11581
|
+
downstreamIssueKinds: true
|
|
11582
|
+
},
|
|
11583
|
+
"business-models": {
|
|
11584
|
+
typeLabels: ["business-model"],
|
|
11585
|
+
phaseLabelPrefixes: ["business-models:"],
|
|
11586
|
+
scheduledTaskIds: ["worker-business-models"],
|
|
11587
|
+
emitsDocs: true,
|
|
11588
|
+
downstreamIssueKinds: true
|
|
11589
|
+
},
|
|
11590
|
+
"company-profile": {
|
|
11591
|
+
typeLabels: ["company-profile"],
|
|
11592
|
+
phaseLabelPrefixes: ["company:"],
|
|
11593
|
+
scheduledTaskIds: ["worker-company-profile"],
|
|
11594
|
+
emitsDocs: true,
|
|
11595
|
+
downstreamIssueKinds: true
|
|
11596
|
+
},
|
|
11597
|
+
"customer-profile": {
|
|
11598
|
+
typeLabels: ["customer-profile"],
|
|
11599
|
+
phaseLabelPrefixes: ["customer:"],
|
|
11600
|
+
scheduledTaskIds: ["worker-customer-profile"],
|
|
11601
|
+
emitsDocs: true,
|
|
11602
|
+
downstreamIssueKinds: true
|
|
11603
|
+
},
|
|
11604
|
+
"docs-sync": {
|
|
11605
|
+
typeLabels: ["docs-sync"],
|
|
11606
|
+
phaseLabelPrefixes: ["docs-sync:"],
|
|
11607
|
+
scheduledTaskIds: ["worker-docs-sync"],
|
|
11608
|
+
emitsDocs: true,
|
|
11609
|
+
downstreamIssueKinds: true
|
|
11610
|
+
},
|
|
11611
|
+
"industry-discovery": {
|
|
11612
|
+
typeLabels: ["industry-discovery"],
|
|
11613
|
+
phaseLabelPrefixes: ["industry:"],
|
|
11614
|
+
scheduledTaskIds: ["worker-industry-discovery"],
|
|
11615
|
+
emitsDocs: true,
|
|
11616
|
+
downstreamIssueKinds: true
|
|
11617
|
+
},
|
|
11618
|
+
"maintenance-audit": {
|
|
11619
|
+
typeLabels: ["maintenance"],
|
|
11620
|
+
phaseLabelPrefixes: ["maint:"],
|
|
11621
|
+
scheduledTaskIds: ["worker-maintenance"],
|
|
11622
|
+
emitsDocs: false,
|
|
11623
|
+
downstreamIssueKinds: true
|
|
11624
|
+
},
|
|
11625
|
+
"meeting-analysis": {
|
|
11626
|
+
typeLabels: ["meeting-processing"],
|
|
11627
|
+
phaseLabelPrefixes: ["meeting:"],
|
|
11628
|
+
scheduledTaskIds: ["worker-meeting-analysis"],
|
|
11629
|
+
emitsDocs: true,
|
|
11630
|
+
downstreamIssueKinds: true
|
|
11631
|
+
},
|
|
11632
|
+
orchestrator: {
|
|
11633
|
+
// The orchestrator pipeline manager itself ships with the
|
|
11634
|
+
// `worker-orchestrator` scheduled task. It owns no `type:*` label
|
|
11635
|
+
// (it dispatches every type) and no phase-label prefix.
|
|
11636
|
+
typeLabels: [],
|
|
11637
|
+
phaseLabelPrefixes: [],
|
|
11638
|
+
scheduledTaskIds: ["worker-orchestrator"],
|
|
11639
|
+
emitsDocs: false,
|
|
11640
|
+
downstreamIssueKinds: false
|
|
11641
|
+
},
|
|
11642
|
+
"people-profile": {
|
|
11643
|
+
typeLabels: ["people-profile"],
|
|
11644
|
+
phaseLabelPrefixes: ["people:"],
|
|
11645
|
+
scheduledTaskIds: ["worker-people-profile"],
|
|
11646
|
+
emitsDocs: true,
|
|
11647
|
+
downstreamIssueKinds: true
|
|
11648
|
+
},
|
|
11649
|
+
"pr-review": {
|
|
11650
|
+
typeLabels: ["pr-review"],
|
|
11651
|
+
phaseLabelPrefixes: [],
|
|
11652
|
+
scheduledTaskIds: ["worker-pr-review"],
|
|
11653
|
+
emitsDocs: false,
|
|
11654
|
+
downstreamIssueKinds: false
|
|
11655
|
+
},
|
|
11656
|
+
"regulatory-research": {
|
|
11657
|
+
typeLabels: ["regulatory-research"],
|
|
11658
|
+
phaseLabelPrefixes: ["regulatory:"],
|
|
11659
|
+
scheduledTaskIds: ["worker-regulatory-research"],
|
|
11660
|
+
emitsDocs: true,
|
|
11661
|
+
downstreamIssueKinds: true
|
|
11662
|
+
},
|
|
11663
|
+
"requirements-analyst": {
|
|
11664
|
+
typeLabels: ["requirement"],
|
|
11665
|
+
phaseLabelPrefixes: ["req:"],
|
|
11666
|
+
scheduledTaskIds: ["worker-requirements-analyst"],
|
|
11667
|
+
emitsDocs: true,
|
|
11668
|
+
downstreamIssueKinds: true
|
|
11669
|
+
},
|
|
11670
|
+
"requirements-reviewer": {
|
|
11671
|
+
// Co-owns `type:requirement` with the analyst and writer; owns
|
|
11672
|
+
// the `req:review` and `req:deprecate` phase labels exactly.
|
|
11673
|
+
typeLabels: ["requirement"],
|
|
11674
|
+
phaseLabelPrefixes: ["req:review", "req:deprecate"],
|
|
11675
|
+
scheduledTaskIds: ["worker-requirements-reviewer"],
|
|
11676
|
+
emitsDocs: true,
|
|
11677
|
+
downstreamIssueKinds: true
|
|
11678
|
+
},
|
|
11679
|
+
"requirements-writer": {
|
|
11680
|
+
// Co-owns `type:requirement` with the analyst and reviewer; owns
|
|
11681
|
+
// the `req:write` phase label exactly.
|
|
11682
|
+
typeLabels: ["requirement"],
|
|
11683
|
+
phaseLabelPrefixes: ["req:write"],
|
|
11684
|
+
scheduledTaskIds: ["worker-requirements-writer"],
|
|
11685
|
+
emitsDocs: true,
|
|
11686
|
+
downstreamIssueKinds: true
|
|
11687
|
+
},
|
|
11688
|
+
"research-pipeline": {
|
|
11689
|
+
typeLabels: ["research"],
|
|
11690
|
+
phaseLabelPrefixes: ["research:"],
|
|
11691
|
+
scheduledTaskIds: ["worker-research"],
|
|
11692
|
+
emitsDocs: true,
|
|
11693
|
+
downstreamIssueKinds: true
|
|
11694
|
+
},
|
|
11695
|
+
"software-profile": {
|
|
11696
|
+
typeLabels: ["software-profile"],
|
|
11697
|
+
phaseLabelPrefixes: ["software:"],
|
|
11698
|
+
scheduledTaskIds: ["worker-software-profile"],
|
|
11699
|
+
emitsDocs: true,
|
|
11700
|
+
downstreamIssueKinds: true
|
|
11701
|
+
},
|
|
11702
|
+
"standards-research": {
|
|
11703
|
+
typeLabels: ["standards-research"],
|
|
11704
|
+
phaseLabelPrefixes: ["standards:"],
|
|
11705
|
+
scheduledTaskIds: ["worker-standards-research"],
|
|
11706
|
+
emitsDocs: true,
|
|
11707
|
+
downstreamIssueKinds: true
|
|
11708
|
+
}
|
|
11709
|
+
};
|
|
11710
|
+
function isTypeLabelOwnedByExcluded(typeLabel, excludedBundles) {
|
|
11711
|
+
if (excludedBundles.length === 0) {
|
|
11712
|
+
return false;
|
|
11713
|
+
}
|
|
11714
|
+
for (const bundleName of excludedBundles) {
|
|
11715
|
+
const ownership = BUNDLE_OWNERSHIP[bundleName];
|
|
11716
|
+
if (!ownership) {
|
|
11717
|
+
continue;
|
|
11718
|
+
}
|
|
11719
|
+
if (ownership.typeLabels.includes(typeLabel)) {
|
|
11720
|
+
const owners = findOwnersOfTypeLabel(typeLabel);
|
|
11721
|
+
const allExcluded = owners.every(
|
|
11722
|
+
(owner) => excludedBundles.includes(owner)
|
|
11723
|
+
);
|
|
11724
|
+
if (allExcluded) {
|
|
11725
|
+
return true;
|
|
11726
|
+
}
|
|
11727
|
+
}
|
|
11728
|
+
}
|
|
11729
|
+
return false;
|
|
11730
|
+
}
|
|
11731
|
+
function isPhaseLabelOwnedByExcluded(phaseLabel, excludedBundles) {
|
|
11732
|
+
if (excludedBundles.length === 0) {
|
|
11733
|
+
return false;
|
|
11734
|
+
}
|
|
11735
|
+
for (const bundleName of excludedBundles) {
|
|
11736
|
+
const ownership = BUNDLE_OWNERSHIP[bundleName];
|
|
11737
|
+
if (!ownership) {
|
|
11738
|
+
continue;
|
|
11739
|
+
}
|
|
11740
|
+
for (const entry of ownership.phaseLabelPrefixes) {
|
|
11741
|
+
if (entry.endsWith(":")) {
|
|
11742
|
+
if (phaseLabel.startsWith(entry)) {
|
|
11743
|
+
return true;
|
|
11744
|
+
}
|
|
11745
|
+
} else if (phaseLabel === entry) {
|
|
11746
|
+
return true;
|
|
11747
|
+
}
|
|
11748
|
+
}
|
|
11749
|
+
}
|
|
11750
|
+
return false;
|
|
11751
|
+
}
|
|
11752
|
+
function isScheduledTaskOwnedByExcluded(taskId, excludedBundles) {
|
|
11753
|
+
if (excludedBundles.length === 0) {
|
|
11754
|
+
return false;
|
|
11755
|
+
}
|
|
11756
|
+
for (const bundleName of excludedBundles) {
|
|
11757
|
+
const ownership = BUNDLE_OWNERSHIP[bundleName];
|
|
11758
|
+
if (!ownership) {
|
|
11759
|
+
continue;
|
|
11760
|
+
}
|
|
11761
|
+
if (ownership.scheduledTaskIds.includes(taskId)) {
|
|
11762
|
+
return true;
|
|
11763
|
+
}
|
|
11764
|
+
}
|
|
11765
|
+
return false;
|
|
11766
|
+
}
|
|
11767
|
+
function hasAnyDocsEmittingBundle(excludedBundles) {
|
|
11768
|
+
for (const [bundleName, ownership] of Object.entries(BUNDLE_OWNERSHIP)) {
|
|
11769
|
+
if (!ownership.emitsDocs) {
|
|
11770
|
+
continue;
|
|
11771
|
+
}
|
|
11772
|
+
if (!excludedBundles.includes(bundleName)) {
|
|
11773
|
+
return true;
|
|
11774
|
+
}
|
|
11775
|
+
}
|
|
11776
|
+
return false;
|
|
11777
|
+
}
|
|
11778
|
+
function hasAnyDownstreamIssueKindBundle(excludedBundles) {
|
|
11779
|
+
for (const [bundleName, ownership] of Object.entries(BUNDLE_OWNERSHIP)) {
|
|
11780
|
+
if (!ownership.downstreamIssueKinds) {
|
|
11781
|
+
continue;
|
|
11782
|
+
}
|
|
11783
|
+
if (!excludedBundles.includes(bundleName)) {
|
|
11784
|
+
return true;
|
|
11785
|
+
}
|
|
11786
|
+
}
|
|
11787
|
+
return false;
|
|
11788
|
+
}
|
|
11789
|
+
function findOwnersOfTypeLabel(typeLabel) {
|
|
11790
|
+
const owners = [];
|
|
11791
|
+
for (const [bundleName, ownership] of Object.entries(BUNDLE_OWNERSHIP)) {
|
|
11792
|
+
if (ownership.typeLabels.includes(typeLabel)) {
|
|
11793
|
+
owners.push(bundleName);
|
|
11794
|
+
}
|
|
11795
|
+
}
|
|
11796
|
+
return owners;
|
|
11797
|
+
}
|
|
11798
|
+
|
|
11558
11799
|
// src/agent/bundles/scheduled-tasks.ts
|
|
11559
11800
|
var SCHEDULED_TASK_MODEL_VALUES = ["opus", "sonnet", "haiku"];
|
|
11560
11801
|
var SCHEDULED_TASK_KIND_VALUES = ["issue-worker", "pipeline"];
|
|
@@ -11819,17 +12060,23 @@ var DEFAULT_SCHEDULED_TASK_ENTRIES = [
|
|
|
11819
12060
|
description: "Documentation-sync drift-detection and audit pipeline (scaffolding release \u2014 behavior carried by downstream child issues of the parent docs-sync epic)."
|
|
11820
12061
|
}
|
|
11821
12062
|
];
|
|
11822
|
-
function resolveScheduledTasks(config) {
|
|
12063
|
+
function resolveScheduledTasks(config, excludeBundles = []) {
|
|
11823
12064
|
const root = config?.root ?? DEFAULT_SCHEDULED_TASKS_ROOT;
|
|
11824
12065
|
assertValidRoot(root);
|
|
11825
12066
|
const merged = /* @__PURE__ */ new Map();
|
|
11826
12067
|
for (const entry of DEFAULT_SCHEDULED_TASK_ENTRIES) {
|
|
12068
|
+
if (isScheduledTaskOwnedByExcluded(entry.taskId, excludeBundles)) {
|
|
12069
|
+
continue;
|
|
12070
|
+
}
|
|
11827
12071
|
merged.set(entry.taskId, entry);
|
|
11828
12072
|
}
|
|
11829
12073
|
if (config?.overrides) {
|
|
11830
12074
|
for (const [taskId, override] of Object.entries(config.overrides)) {
|
|
11831
12075
|
const existing = merged.get(taskId);
|
|
11832
12076
|
if (!existing) {
|
|
12077
|
+
if (isScheduledTaskOwnedByExcluded(taskId, excludeBundles)) {
|
|
12078
|
+
continue;
|
|
12079
|
+
}
|
|
11833
12080
|
throw new Error(
|
|
11834
12081
|
`ScheduledTasksConfig.overrides references unknown taskId ${JSON.stringify(
|
|
11835
12082
|
taskId
|
|
@@ -11860,8 +12107,8 @@ function resolveScheduledTasks(config) {
|
|
|
11860
12107
|
tasks: [...merged.values()]
|
|
11861
12108
|
};
|
|
11862
12109
|
}
|
|
11863
|
-
function validateScheduledTasksConfig(config) {
|
|
11864
|
-
return resolveScheduledTasks(config);
|
|
12110
|
+
function validateScheduledTasksConfig(config, excludeBundles = []) {
|
|
12111
|
+
return resolveScheduledTasks(config, excludeBundles);
|
|
11865
12112
|
}
|
|
11866
12113
|
function renderScheduledTasksSection(resolved) {
|
|
11867
12114
|
const lines = [
|
|
@@ -12344,7 +12591,7 @@ function classifyIssueScope(body, gate, labels = []) {
|
|
|
12344
12591
|
matchedLabel: effective.matchedLabel
|
|
12345
12592
|
};
|
|
12346
12593
|
}
|
|
12347
|
-
function renderScopeGateSection(gate) {
|
|
12594
|
+
function renderScopeGateSection(gate, excludeBundles = []) {
|
|
12348
12595
|
const { acceptanceCriteria: ac, sources } = gate;
|
|
12349
12596
|
const lines = [
|
|
12350
12597
|
"## Scope gate",
|
|
@@ -12418,7 +12665,9 @@ function renderScopeGateSection(gate) {
|
|
|
12418
12665
|
" is in place."
|
|
12419
12666
|
);
|
|
12420
12667
|
}
|
|
12421
|
-
const overrideEntries = Object.entries(gate.bundleOverrides)
|
|
12668
|
+
const overrideEntries = Object.entries(gate.bundleOverrides).filter(
|
|
12669
|
+
([label]) => !isPhaseLabelOwnedByExcluded(label, excludeBundles)
|
|
12670
|
+
);
|
|
12422
12671
|
if (overrideEntries.length > 0) {
|
|
12423
12672
|
lines.push(
|
|
12424
12673
|
"",
|
|
@@ -12762,9 +13011,12 @@ function validateAgentTierConfig(config) {
|
|
|
12762
13011
|
}
|
|
12763
13012
|
return resolveAgentTiers(config);
|
|
12764
13013
|
}
|
|
12765
|
-
function renderAgentTierSection(tiers) {
|
|
13014
|
+
function renderAgentTierSection(tiers, excludeBundles = []) {
|
|
13015
|
+
const filtered = tiers.filter(
|
|
13016
|
+
(entry) => !isTypeLabelOwnedByExcluded(entry.type, excludeBundles)
|
|
13017
|
+
);
|
|
12766
13018
|
const grouped = /* @__PURE__ */ new Map();
|
|
12767
|
-
for (const entry of
|
|
13019
|
+
for (const entry of filtered) {
|
|
12768
13020
|
const bucket = grouped.get(entry.tier) ?? [];
|
|
12769
13021
|
bucket.push(entry);
|
|
12770
13022
|
grouped.set(entry.tier, bucket);
|
|
@@ -14495,13 +14747,13 @@ var ORCHESTRATOR_CONVENTIONS_PREAMBLE = [
|
|
|
14495
14747
|
"",
|
|
14496
14748
|
'Practical implication for scheduled-task wiring: the `worker-orchestrator` scheduled task\'s `SKILL.md` instructs the **scheduled-task session itself** to read `.claude/agents/orchestrator.md` and execute its phase pipeline in-session, then use the `Agent` tool to delegate the picked work item to `issue-worker` (depth-1). The scheduled task does **not** call `Agent(subagent_type: "orchestrator")` \u2014 that would put the orchestrator at depth-1 and break the chain.'
|
|
14497
14749
|
].join("\n");
|
|
14498
|
-
function buildOrchestratorConventionsContent(tiers, scopeGate = resolveScopeGate(), runRatio = resolveRunRatio(), scheduledTasks = resolveScheduledTasks(), unblockDependents = resolveUnblockDependents()) {
|
|
14750
|
+
function buildOrchestratorConventionsContent(tiers, scopeGate = resolveScopeGate(), runRatio = resolveRunRatio(), scheduledTasks = resolveScheduledTasks(), unblockDependents = resolveUnblockDependents(), excludeBundles = []) {
|
|
14499
14751
|
return [
|
|
14500
14752
|
ORCHESTRATOR_CONVENTIONS_PREAMBLE,
|
|
14501
14753
|
"",
|
|
14502
|
-
renderAgentTierSection(tiers),
|
|
14754
|
+
renderAgentTierSection(tiers, excludeBundles),
|
|
14503
14755
|
"",
|
|
14504
|
-
renderScopeGateSection(scopeGate),
|
|
14756
|
+
renderScopeGateSection(scopeGate, excludeBundles),
|
|
14505
14757
|
"",
|
|
14506
14758
|
renderRunRatioSection(runRatio),
|
|
14507
14759
|
"",
|
|
@@ -14510,11 +14762,14 @@ function buildOrchestratorConventionsContent(tiers, scopeGate = resolveScopeGate
|
|
|
14510
14762
|
renderUnblockDependentsSection(unblockDependents)
|
|
14511
14763
|
].join("\n");
|
|
14512
14764
|
}
|
|
14513
|
-
function resolveOrchestratorAssets(tierConfig, scopeGateConfig, runRatioConfig, scheduledTasksConfig, unblockDependentsConfig) {
|
|
14765
|
+
function resolveOrchestratorAssets(tierConfig, scopeGateConfig, runRatioConfig, scheduledTasksConfig, unblockDependentsConfig, excludeBundles = []) {
|
|
14514
14766
|
const tiers = resolveAgentTiers(tierConfig);
|
|
14515
14767
|
const scopeGate = resolveScopeGate(scopeGateConfig);
|
|
14516
14768
|
const runRatio = resolveRunRatio(runRatioConfig);
|
|
14517
|
-
const scheduledTasks = resolveScheduledTasks(
|
|
14769
|
+
const scheduledTasks = resolveScheduledTasks(
|
|
14770
|
+
scheduledTasksConfig,
|
|
14771
|
+
excludeBundles
|
|
14772
|
+
);
|
|
14518
14773
|
const unblockDependentsResolved = resolveUnblockDependents(
|
|
14519
14774
|
unblockDependentsConfig
|
|
14520
14775
|
);
|
|
@@ -14529,7 +14784,8 @@ function resolveOrchestratorAssets(tierConfig, scopeGateConfig, runRatioConfig,
|
|
|
14529
14784
|
scopeGate,
|
|
14530
14785
|
runRatio,
|
|
14531
14786
|
scheduledTasks,
|
|
14532
|
-
unblockDependentsResolved
|
|
14787
|
+
unblockDependentsResolved,
|
|
14788
|
+
excludeBundles
|
|
14533
14789
|
),
|
|
14534
14790
|
procedure: buildCheckBlockedProcedure(tiers, scopeGate, runRatio),
|
|
14535
14791
|
unblockDependentsProcedure: buildUnblockDependentsProcedure(
|
|
@@ -15522,6 +15778,7 @@ var PnpmWorkspace = class _PnpmWorkspace extends import_projen.Component {
|
|
|
15522
15778
|
this.minimumReleaseAgeExclude = options.minimumReleaseAgeExclude ? ["@codedrifters/*", ...options.minimumReleaseAgeExclude] : ["@codedrifters/*"];
|
|
15523
15779
|
this.onlyBuiltDependencies = options.onlyBuiltDependencies ? options.onlyBuiltDependencies : [];
|
|
15524
15780
|
this.ignoredBuiltDependencies = options.ignoredBuiltDependencies ? options.ignoredBuiltDependencies : [];
|
|
15781
|
+
this.allowBuilds = options.allowBuilds ?? {};
|
|
15525
15782
|
this.subprojects = options.subprojects ?? [];
|
|
15526
15783
|
this.defaultCatalog = options.defaultCatalog;
|
|
15527
15784
|
this.namedCatalogs = options.namedCatalogs;
|
|
@@ -15545,11 +15802,35 @@ var PnpmWorkspace = class _PnpmWorkspace extends import_projen.Component {
|
|
|
15545
15802
|
if (this.minimumReleaseAgeExclude.length > 0) {
|
|
15546
15803
|
pnpmConfig.minimumReleaseAgeExclude = this.minimumReleaseAgeExclude;
|
|
15547
15804
|
}
|
|
15548
|
-
|
|
15549
|
-
|
|
15805
|
+
const mergedAllowBuilds = {};
|
|
15806
|
+
for (const pkg of this.onlyBuiltDependencies) {
|
|
15807
|
+
mergedAllowBuilds[pkg] = true;
|
|
15550
15808
|
}
|
|
15551
|
-
|
|
15552
|
-
|
|
15809
|
+
for (const pkg of this.ignoredBuiltDependencies) {
|
|
15810
|
+
mergedAllowBuilds[pkg] = false;
|
|
15811
|
+
}
|
|
15812
|
+
for (const [pkg, allowed] of Object.entries(this.allowBuilds)) {
|
|
15813
|
+
mergedAllowBuilds[pkg] = allowed;
|
|
15814
|
+
}
|
|
15815
|
+
const allowList = [];
|
|
15816
|
+
const denyList = [];
|
|
15817
|
+
for (const [pkg, allowed] of Object.entries(mergedAllowBuilds)) {
|
|
15818
|
+
if (allowed) {
|
|
15819
|
+
allowList.push(pkg);
|
|
15820
|
+
} else {
|
|
15821
|
+
denyList.push(pkg);
|
|
15822
|
+
}
|
|
15823
|
+
}
|
|
15824
|
+
allowList.sort();
|
|
15825
|
+
denyList.sort();
|
|
15826
|
+
if (allowList.length > 0) {
|
|
15827
|
+
pnpmConfig.onlyBuiltDependencies = allowList;
|
|
15828
|
+
}
|
|
15829
|
+
if (denyList.length > 0) {
|
|
15830
|
+
pnpmConfig.ignoredBuiltDependencies = denyList;
|
|
15831
|
+
}
|
|
15832
|
+
if (Object.keys(mergedAllowBuilds).length > 0) {
|
|
15833
|
+
pnpmConfig.allowBuilds = mergedAllowBuilds;
|
|
15553
15834
|
}
|
|
15554
15835
|
if (this.defaultCatalog && Object.keys(this.defaultCatalog).length > 0) {
|
|
15555
15836
|
pnpmConfig.catalog = this.defaultCatalog;
|
|
@@ -26830,11 +27111,11 @@ var VERSION = {
|
|
|
26830
27111
|
* Version of `pnpm/action-setup` to use in GitHub workflows.
|
|
26831
27112
|
* Tracks the version projen currently emits (see node_modules/projen/lib/javascript/node-project.js).
|
|
26832
27113
|
*/
|
|
26833
|
-
PNPM_ACTION_SETUP_VERSION: "
|
|
27114
|
+
PNPM_ACTION_SETUP_VERSION: "v6.0.5",
|
|
26834
27115
|
/**
|
|
26835
27116
|
* Version of PNPM to use in workflows at github actions.
|
|
26836
27117
|
*/
|
|
26837
|
-
PNPM_VERSION: "
|
|
27118
|
+
PNPM_VERSION: "11.0.8",
|
|
26838
27119
|
/**
|
|
26839
27120
|
* Version of Projen to use.
|
|
26840
27121
|
*/
|
|
@@ -28304,7 +28585,8 @@ var AgentConfig = class _AgentConfig extends import_projen8.Component {
|
|
|
28304
28585
|
this.project.gitignore.addPatterns(`/${resolvedProgressFiles.stateDir}/`);
|
|
28305
28586
|
}
|
|
28306
28587
|
const resolvedScheduledTasks = validateScheduledTasksConfig(
|
|
28307
|
-
this.options.scheduledTasks
|
|
28588
|
+
this.options.scheduledTasks,
|
|
28589
|
+
this.options.excludeBundles ?? []
|
|
28308
28590
|
);
|
|
28309
28591
|
if (resolvedScheduledTasks.enabled) {
|
|
28310
28592
|
for (const task of resolvedScheduledTasks.tasks) {
|
|
@@ -28512,7 +28794,8 @@ ${section}`
|
|
|
28512
28794
|
}
|
|
28513
28795
|
}
|
|
28514
28796
|
}
|
|
28515
|
-
|
|
28797
|
+
const excludedBundleNames = this.options.excludeBundles ?? [];
|
|
28798
|
+
if (this.options.tiers || this.options.scopeGate || this.options.runRatio || this.options.scheduledTasks || this.options.unblockDependents || excludedBundleNames.length > 0) {
|
|
28516
28799
|
const orchestratorRule = ruleMap.get("orchestrator-conventions");
|
|
28517
28800
|
if (orchestratorRule) {
|
|
28518
28801
|
const { conventionsContent } = resolveOrchestratorAssets(
|
|
@@ -28520,7 +28803,8 @@ ${section}`
|
|
|
28520
28803
|
this.options.scopeGate,
|
|
28521
28804
|
this.options.runRatio,
|
|
28522
28805
|
this.options.scheduledTasks,
|
|
28523
|
-
this.options.unblockDependents
|
|
28806
|
+
this.options.unblockDependents,
|
|
28807
|
+
excludedBundleNames
|
|
28524
28808
|
);
|
|
28525
28809
|
if (conventionsContent !== orchestratorRule.content) {
|
|
28526
28810
|
ruleMap.set("orchestrator-conventions", {
|
|
@@ -28653,11 +28937,13 @@ ${hook}`
|
|
|
28653
28937
|
const resolvedIssueTemplatesForRules = resolveIssueTemplates(
|
|
28654
28938
|
this.options.issueTemplates
|
|
28655
28939
|
);
|
|
28656
|
-
|
|
28940
|
+
const hasDownstreamBundles = hasAnyDownstreamIssueKindBundle(excludedBundleNames);
|
|
28941
|
+
if (this.options.issueTemplates || !hasDownstreamBundles) {
|
|
28657
28942
|
const issueTemplatesRule = ruleMap.get("issue-templates-convention");
|
|
28658
28943
|
if (issueTemplatesRule) {
|
|
28659
28944
|
const issueTemplatesContent = renderIssueTemplatesRuleContent(
|
|
28660
|
-
resolvedIssueTemplatesForRules
|
|
28945
|
+
resolvedIssueTemplatesForRules,
|
|
28946
|
+
hasDownstreamBundles
|
|
28661
28947
|
);
|
|
28662
28948
|
if (issueTemplatesContent !== issueTemplatesRule.content) {
|
|
28663
28949
|
ruleMap.set("issue-templates-convention", {
|
|
@@ -28667,7 +28953,10 @@ ${hook}`
|
|
|
28667
28953
|
}
|
|
28668
28954
|
}
|
|
28669
28955
|
}
|
|
28670
|
-
if (
|
|
28956
|
+
if (!hasAnyDocsEmittingBundle(excludedBundleNames)) {
|
|
28957
|
+
ruleMap.delete("stub-index-convention");
|
|
28958
|
+
}
|
|
28959
|
+
if (resolvedIssueTemplatesForRules.enabled && hasDownstreamBundles) {
|
|
28671
28960
|
for (const [ruleName, label] of ISSUE_TEMPLATES_BUNDLE_HOOKS) {
|
|
28672
28961
|
const existing = ruleMap.get(ruleName);
|
|
28673
28962
|
if (!existing) {
|
|
@@ -31020,7 +31309,7 @@ var JsiiFaker = class _JsiiFaker extends import_projen13.Component {
|
|
|
31020
31309
|
};
|
|
31021
31310
|
|
|
31022
31311
|
// src/projects/astro-project.ts
|
|
31023
|
-
var
|
|
31312
|
+
var import_projen19 = require("projen");
|
|
31024
31313
|
var import_ts_deepmerge3 = require("ts-deepmerge");
|
|
31025
31314
|
|
|
31026
31315
|
// src/projects/monorepo-layout.ts
|
|
@@ -31164,20 +31453,35 @@ function resolveAstroProjectOutdir(packageName) {
|
|
|
31164
31453
|
}
|
|
31165
31454
|
|
|
31166
31455
|
// src/projects/typescript-project.ts
|
|
31167
|
-
var
|
|
31456
|
+
var import_projen18 = require("projen");
|
|
31168
31457
|
var import_javascript4 = require("projen/lib/javascript");
|
|
31169
31458
|
var import_release = require("projen/lib/release");
|
|
31170
31459
|
var import_ts_deepmerge2 = require("ts-deepmerge");
|
|
31171
31460
|
|
|
31172
31461
|
// src/projects/monorepo-project.ts
|
|
31173
|
-
var
|
|
31462
|
+
var import_github4 = require("projen/lib/github");
|
|
31174
31463
|
var import_javascript3 = require("projen/lib/javascript");
|
|
31175
31464
|
var import_typescript3 = require("projen/lib/typescript");
|
|
31176
31465
|
var import_ts_deepmerge = require("ts-deepmerge");
|
|
31177
31466
|
|
|
31178
|
-
// src/
|
|
31467
|
+
// src/projects/nvmrc.ts
|
|
31179
31468
|
var import_projen14 = require("projen");
|
|
31180
|
-
var
|
|
31469
|
+
var import_textfile5 = require("projen/lib/textfile");
|
|
31470
|
+
var Nvmrc = class extends import_projen14.Component {
|
|
31471
|
+
constructor(project) {
|
|
31472
|
+
super(project);
|
|
31473
|
+
new import_textfile5.TextFile(project, ".nvmrc", {
|
|
31474
|
+
// `lines` is joined with `\n` — adding an empty trailing entry
|
|
31475
|
+
// produces a POSIX-friendly trailing newline (`24\n`).
|
|
31476
|
+
lines: [VERSION.NODE_WORKFLOWS, ""],
|
|
31477
|
+
readonly: true
|
|
31478
|
+
});
|
|
31479
|
+
}
|
|
31480
|
+
};
|
|
31481
|
+
|
|
31482
|
+
// src/tasks/reset-task.ts
|
|
31483
|
+
var import_projen15 = require("projen");
|
|
31484
|
+
var ResetTask = class _ResetTask extends import_projen15.Component {
|
|
31181
31485
|
constructor(project, options = {}) {
|
|
31182
31486
|
super(project);
|
|
31183
31487
|
this.project = project;
|
|
@@ -31250,12 +31554,12 @@ var ResetTask = class _ResetTask extends import_projen14.Component {
|
|
|
31250
31554
|
};
|
|
31251
31555
|
|
|
31252
31556
|
// src/vscode/vscode.ts
|
|
31253
|
-
var
|
|
31254
|
-
var VSCodeConfig = class extends
|
|
31557
|
+
var import_projen16 = require("projen");
|
|
31558
|
+
var VSCodeConfig = class extends import_projen16.Component {
|
|
31255
31559
|
constructor(project) {
|
|
31256
31560
|
super(project);
|
|
31257
|
-
const vsConfig = new
|
|
31258
|
-
const vsSettings = new
|
|
31561
|
+
const vsConfig = new import_projen16.vscode.VsCode(project);
|
|
31562
|
+
const vsSettings = new import_projen16.vscode.VsCodeSettings(vsConfig);
|
|
31259
31563
|
vsSettings.addSetting("editor.tabSize", 2);
|
|
31260
31564
|
vsSettings.addSetting("editor.detectIndentation", false);
|
|
31261
31565
|
vsSettings.addSetting("editor.bracketPairColorization.enabled", true);
|
|
@@ -31396,8 +31700,146 @@ function addBuildCompleteJob(buildWorkflow) {
|
|
|
31396
31700
|
});
|
|
31397
31701
|
}
|
|
31398
31702
|
|
|
31703
|
+
// src/workflows/pin-pnpm-action-setup.ts
|
|
31704
|
+
var import_github2 = require("projen/lib/github");
|
|
31705
|
+
var PNPM_ACTION_SETUP_PREFIX = "pnpm/action-setup@";
|
|
31706
|
+
var STEP_ARRAY_FIELDS = ["preBuildSteps", "postBuildSteps"];
|
|
31707
|
+
function pinPnpmActionSetup(project) {
|
|
31708
|
+
const pinned = `${PNPM_ACTION_SETUP_PREFIX}${VERSION.PNPM_ACTION_SETUP_VERSION}`;
|
|
31709
|
+
patchComponentStepArrays(project, pinned);
|
|
31710
|
+
for (const sub of project.subprojects) {
|
|
31711
|
+
patchComponentStepArrays(sub, pinned);
|
|
31712
|
+
}
|
|
31713
|
+
const github = import_github2.GitHub.of(project);
|
|
31714
|
+
if (!github) {
|
|
31715
|
+
return;
|
|
31716
|
+
}
|
|
31717
|
+
for (const workflow of github.workflows) {
|
|
31718
|
+
for (const job of Object.values(workflow.jobs)) {
|
|
31719
|
+
patchStepArray(getEagerSteps(job), pinned);
|
|
31720
|
+
}
|
|
31721
|
+
}
|
|
31722
|
+
}
|
|
31723
|
+
function patchComponentStepArrays(project, pinned) {
|
|
31724
|
+
for (const component of project.components) {
|
|
31725
|
+
for (const field of STEP_ARRAY_FIELDS) {
|
|
31726
|
+
const steps = readStepArray(component, field);
|
|
31727
|
+
if (steps !== void 0) {
|
|
31728
|
+
patchStepArray(steps, pinned);
|
|
31729
|
+
}
|
|
31730
|
+
}
|
|
31731
|
+
}
|
|
31732
|
+
}
|
|
31733
|
+
function readStepArray(component, field) {
|
|
31734
|
+
const value = component[field];
|
|
31735
|
+
return Array.isArray(value) ? value : void 0;
|
|
31736
|
+
}
|
|
31737
|
+
function getEagerSteps(job) {
|
|
31738
|
+
if (typeof job !== "object" || job === null) {
|
|
31739
|
+
return void 0;
|
|
31740
|
+
}
|
|
31741
|
+
const steps = job.steps;
|
|
31742
|
+
return Array.isArray(steps) ? steps : void 0;
|
|
31743
|
+
}
|
|
31744
|
+
function patchStepArray(steps, pinned) {
|
|
31745
|
+
if (!steps) {
|
|
31746
|
+
return;
|
|
31747
|
+
}
|
|
31748
|
+
for (const step of steps) {
|
|
31749
|
+
if (typeof step.uses === "string" && step.uses.startsWith(PNPM_ACTION_SETUP_PREFIX)) {
|
|
31750
|
+
step.uses = pinned;
|
|
31751
|
+
}
|
|
31752
|
+
}
|
|
31753
|
+
}
|
|
31754
|
+
|
|
31755
|
+
// src/workflows/pin-setup-node-version.ts
|
|
31756
|
+
var import_github3 = require("projen/lib/github");
|
|
31757
|
+
var SETUP_NODE_PREFIX = "actions/setup-node@";
|
|
31758
|
+
var STEP_ARRAY_FIELDS2 = ["preBuildSteps", "postBuildSteps"];
|
|
31759
|
+
var NODE_VERSION_FIELDS = ["workflowNodeVersion"];
|
|
31760
|
+
function pinSetupNodeVersion(project) {
|
|
31761
|
+
const pinned = VERSION.NODE_WORKFLOWS;
|
|
31762
|
+
patchComponentNodeVersionFields(project, pinned);
|
|
31763
|
+
patchComponentStepArrays2(project, pinned);
|
|
31764
|
+
for (const sub of project.subprojects) {
|
|
31765
|
+
patchComponentNodeVersionFields(sub, pinned);
|
|
31766
|
+
patchComponentStepArrays2(sub, pinned);
|
|
31767
|
+
}
|
|
31768
|
+
const github = import_github3.GitHub.of(project);
|
|
31769
|
+
if (!github) {
|
|
31770
|
+
return;
|
|
31771
|
+
}
|
|
31772
|
+
for (const workflow of github.workflows) {
|
|
31773
|
+
for (const job of Object.values(workflow.jobs)) {
|
|
31774
|
+
patchJobToolsNode(job, pinned);
|
|
31775
|
+
patchStepArray2(getEagerSteps2(job), pinned);
|
|
31776
|
+
}
|
|
31777
|
+
}
|
|
31778
|
+
}
|
|
31779
|
+
function patchComponentNodeVersionFields(project, pinned) {
|
|
31780
|
+
for (const component of project.components) {
|
|
31781
|
+
for (const field of NODE_VERSION_FIELDS) {
|
|
31782
|
+
const record = component;
|
|
31783
|
+
const value = record[field];
|
|
31784
|
+
if (typeof value === "string") {
|
|
31785
|
+
record[field] = pinned;
|
|
31786
|
+
}
|
|
31787
|
+
}
|
|
31788
|
+
}
|
|
31789
|
+
}
|
|
31790
|
+
function patchComponentStepArrays2(project, pinned) {
|
|
31791
|
+
for (const component of project.components) {
|
|
31792
|
+
for (const field of STEP_ARRAY_FIELDS2) {
|
|
31793
|
+
const steps = readStepArray2(component, field);
|
|
31794
|
+
if (steps !== void 0) {
|
|
31795
|
+
patchStepArray2(steps, pinned);
|
|
31796
|
+
}
|
|
31797
|
+
}
|
|
31798
|
+
}
|
|
31799
|
+
}
|
|
31800
|
+
function readStepArray2(component, field) {
|
|
31801
|
+
const value = component[field];
|
|
31802
|
+
return Array.isArray(value) ? value : void 0;
|
|
31803
|
+
}
|
|
31804
|
+
function getEagerSteps2(job) {
|
|
31805
|
+
if (typeof job !== "object" || job === null) {
|
|
31806
|
+
return void 0;
|
|
31807
|
+
}
|
|
31808
|
+
const steps = job.steps;
|
|
31809
|
+
return Array.isArray(steps) ? steps : void 0;
|
|
31810
|
+
}
|
|
31811
|
+
function patchJobToolsNode(job, pinned) {
|
|
31812
|
+
if (typeof job !== "object" || job === null) {
|
|
31813
|
+
return;
|
|
31814
|
+
}
|
|
31815
|
+
const tools = job.tools;
|
|
31816
|
+
if (typeof tools !== "object" || tools === null) {
|
|
31817
|
+
return;
|
|
31818
|
+
}
|
|
31819
|
+
const node = tools.node;
|
|
31820
|
+
if (typeof node !== "object" || node === null) {
|
|
31821
|
+
return;
|
|
31822
|
+
}
|
|
31823
|
+
if (typeof node.version === "string") {
|
|
31824
|
+
node.version = pinned;
|
|
31825
|
+
}
|
|
31826
|
+
}
|
|
31827
|
+
function patchStepArray2(steps, pinned) {
|
|
31828
|
+
if (!steps) {
|
|
31829
|
+
return;
|
|
31830
|
+
}
|
|
31831
|
+
for (const step of steps) {
|
|
31832
|
+
if (typeof step.uses === "string" && step.uses.startsWith(SETUP_NODE_PREFIX)) {
|
|
31833
|
+
if (!step.with || typeof step.with !== "object") {
|
|
31834
|
+
step.with = {};
|
|
31835
|
+
}
|
|
31836
|
+
step.with["node-version"] = pinned;
|
|
31837
|
+
}
|
|
31838
|
+
}
|
|
31839
|
+
}
|
|
31840
|
+
|
|
31399
31841
|
// src/workflows/sync-labels.ts
|
|
31400
|
-
var
|
|
31842
|
+
var import_projen17 = require("projen");
|
|
31401
31843
|
var import_workflows_model4 = require("projen/lib/github/workflows-model");
|
|
31402
31844
|
var DEFAULT_STATUS_LABELS = [
|
|
31403
31845
|
{
|
|
@@ -31605,10 +32047,10 @@ ${offenders}`
|
|
|
31605
32047
|
}
|
|
31606
32048
|
});
|
|
31607
32049
|
}
|
|
31608
|
-
var LabelsFile = class extends
|
|
32050
|
+
var LabelsFile = class extends import_projen17.Component {
|
|
31609
32051
|
constructor(project, labels) {
|
|
31610
32052
|
super(project);
|
|
31611
|
-
new
|
|
32053
|
+
new import_projen17.YamlFile(project, LABELS_CONFIG_PATH, {
|
|
31612
32054
|
obj: labels.map((l) => ({
|
|
31613
32055
|
name: l.name,
|
|
31614
32056
|
color: l.color,
|
|
@@ -31826,6 +32268,7 @@ var MonorepoProject = class extends import_typescript3.TypeScriptAppProject {
|
|
|
31826
32268
|
this.configulatorRegistryConsumer = options.configulatorRegistryConsumer ?? true;
|
|
31827
32269
|
this.layoutEnforcement = options.layoutEnforcement ?? LAYOUT_ENFORCEMENT.WARN;
|
|
31828
32270
|
new VSCodeConfig(this);
|
|
32271
|
+
new Nvmrc(this);
|
|
31829
32272
|
new PnpmWorkspace(this, options.pnpmOptions?.pnpmWorkspaceOptions);
|
|
31830
32273
|
if (options.turbo) {
|
|
31831
32274
|
new TurboRepo(this, options.turboOptions);
|
|
@@ -31834,7 +32277,7 @@ var MonorepoProject = class extends import_typescript3.TypeScriptAppProject {
|
|
|
31834
32277
|
name: "Build Sub Projects",
|
|
31835
32278
|
run: `pnpm exec projen ${ROOT_CI_TASK_NAME}`
|
|
31836
32279
|
},
|
|
31837
|
-
|
|
32280
|
+
import_github4.WorkflowSteps.uploadArtifact({
|
|
31838
32281
|
name: "Upload Turbo runs",
|
|
31839
32282
|
if: "always()",
|
|
31840
32283
|
continueOnError: true,
|
|
@@ -31944,6 +32387,8 @@ var MonorepoProject = class extends import_typescript3.TypeScriptAppProject {
|
|
|
31944
32387
|
*/
|
|
31945
32388
|
preSynthesize() {
|
|
31946
32389
|
super.preSynthesize();
|
|
32390
|
+
pinPnpmActionSetup(this);
|
|
32391
|
+
pinSetupNodeVersion(this);
|
|
31947
32392
|
if (this.layoutEnforcement === LAYOUT_ENFORCEMENT.OFF) {
|
|
31948
32393
|
return;
|
|
31949
32394
|
}
|
|
@@ -31998,7 +32443,7 @@ var TestRunner = {
|
|
|
31998
32443
|
JEST: "jest",
|
|
31999
32444
|
VITEST: "vitest"
|
|
32000
32445
|
};
|
|
32001
|
-
var TypeScriptProject = class extends
|
|
32446
|
+
var TypeScriptProject = class extends import_projen18.typescript.TypeScriptProject {
|
|
32002
32447
|
constructor(userOptions) {
|
|
32003
32448
|
if (!(userOptions.parent instanceof MonorepoProject)) {
|
|
32004
32449
|
throw new Error(
|
|
@@ -32308,10 +32753,10 @@ var AstroProject = class extends TypeScriptProject {
|
|
|
32308
32753
|
adapter: options.adapter
|
|
32309
32754
|
});
|
|
32310
32755
|
if (options.sampleCode === true) {
|
|
32311
|
-
new
|
|
32756
|
+
new import_projen19.SampleFile(this, "src/pages/index.astro", {
|
|
32312
32757
|
contents: DEFAULT_INDEX_ASTRO
|
|
32313
32758
|
});
|
|
32314
|
-
new
|
|
32759
|
+
new import_projen19.SampleFile(this, "public/favicon.svg", {
|
|
32315
32760
|
contents: DEFAULT_FAVICON_SVG
|
|
32316
32761
|
});
|
|
32317
32762
|
}
|
|
@@ -32336,19 +32781,19 @@ var DEFAULT_FAVICON_SVG = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0
|
|
|
32336
32781
|
`;
|
|
32337
32782
|
|
|
32338
32783
|
// src/projects/aws-cdk-project.ts
|
|
32339
|
-
var
|
|
32784
|
+
var import_projen22 = require("projen");
|
|
32340
32785
|
var import_javascript5 = require("projen/lib/javascript");
|
|
32341
32786
|
var import_release2 = require("projen/lib/release");
|
|
32342
32787
|
var import_ts_deepmerge4 = require("ts-deepmerge");
|
|
32343
32788
|
|
|
32344
32789
|
// src/workflows/aws-deploy-workflow.ts
|
|
32345
32790
|
var import_utils11 = __toESM(require_lib());
|
|
32346
|
-
var
|
|
32791
|
+
var import_projen20 = require("projen");
|
|
32347
32792
|
var import_build = require("projen/lib/build");
|
|
32348
|
-
var
|
|
32793
|
+
var import_github5 = require("projen/lib/github");
|
|
32349
32794
|
var import_workflows_model5 = require("projen/lib/github/workflows-model");
|
|
32350
32795
|
var PROD_DEPLOY_NAME = "prod-deploy";
|
|
32351
|
-
var AwsDeployWorkflow = class _AwsDeployWorkflow extends
|
|
32796
|
+
var AwsDeployWorkflow = class _AwsDeployWorkflow extends import_projen20.Component {
|
|
32352
32797
|
constructor(project, options = {}) {
|
|
32353
32798
|
super(project);
|
|
32354
32799
|
this.project = project;
|
|
@@ -32461,7 +32906,7 @@ var AwsDeployWorkflow = class _AwsDeployWorkflow extends import_projen19.Compone
|
|
|
32461
32906
|
);
|
|
32462
32907
|
}
|
|
32463
32908
|
this.rootProject = project.root;
|
|
32464
|
-
const github =
|
|
32909
|
+
const github = import_github5.GitHub.of(this.rootProject);
|
|
32465
32910
|
if (!github) {
|
|
32466
32911
|
throw new Error(
|
|
32467
32912
|
"AwsDeployWorkflow requires a GitHub component in the root project"
|
|
@@ -32596,7 +33041,7 @@ var AwsDeployWorkflow = class _AwsDeployWorkflow extends import_projen19.Compone
|
|
|
32596
33041
|
name: "Build Sub Projects",
|
|
32597
33042
|
run: `pnpm exec projen ${ROOT_CI_TASK_NAME}`
|
|
32598
33043
|
},
|
|
32599
|
-
|
|
33044
|
+
import_github5.WorkflowSteps.uploadArtifact({
|
|
32600
33045
|
name: "Upload Turbo runs",
|
|
32601
33046
|
if: "always()",
|
|
32602
33047
|
continueOnError: true,
|
|
@@ -32612,8 +33057,8 @@ var AwsDeployWorkflow = class _AwsDeployWorkflow extends import_projen19.Compone
|
|
|
32612
33057
|
};
|
|
32613
33058
|
|
|
32614
33059
|
// src/workflows/aws-teardown-workflow.ts
|
|
32615
|
-
var
|
|
32616
|
-
var
|
|
33060
|
+
var import_projen21 = require("projen");
|
|
33061
|
+
var import_github6 = require("projen/lib/github");
|
|
32617
33062
|
var import_workflows_model6 = require("projen/lib/github/workflows-model");
|
|
32618
33063
|
var DEFAULT_TEARDOWN_BRANCH_PATTERNS = [
|
|
32619
33064
|
"feat/*",
|
|
@@ -32634,7 +33079,7 @@ var resolveBranchPatterns = (explicit, targets) => {
|
|
|
32634
33079
|
}
|
|
32635
33080
|
return [...DEFAULT_TEARDOWN_BRANCH_PATTERNS];
|
|
32636
33081
|
};
|
|
32637
|
-
var AwsTeardownWorkflow = class extends
|
|
33082
|
+
var AwsTeardownWorkflow = class extends import_projen21.Component {
|
|
32638
33083
|
constructor(rootProject, options) {
|
|
32639
33084
|
super(rootProject);
|
|
32640
33085
|
this.rootProject = rootProject;
|
|
@@ -32663,7 +33108,7 @@ var AwsTeardownWorkflow = class extends import_projen20.Component {
|
|
|
32663
33108
|
"AwsTeardownWorkflow requires the root project to be a MonorepoProject"
|
|
32664
33109
|
);
|
|
32665
33110
|
}
|
|
32666
|
-
const github =
|
|
33111
|
+
const github = import_github6.GitHub.of(this.rootProject);
|
|
32667
33112
|
if (!github) {
|
|
32668
33113
|
throw new Error(
|
|
32669
33114
|
"AwsTeardownWorkflow requires a GitHub component in the root project"
|
|
@@ -32673,7 +33118,7 @@ var AwsTeardownWorkflow = class extends import_projen20.Component {
|
|
|
32673
33118
|
deleteBranchPatterns,
|
|
32674
33119
|
awsDestructionTargets
|
|
32675
33120
|
);
|
|
32676
|
-
const workflow = new
|
|
33121
|
+
const workflow = new import_github6.GithubWorkflow(github, "teardown-dev");
|
|
32677
33122
|
workflow.on({
|
|
32678
33123
|
workflowDispatch: {},
|
|
32679
33124
|
schedule: [
|
|
@@ -32816,7 +33261,7 @@ var AwsTeardownWorkflow = class extends import_projen20.Component {
|
|
|
32816
33261
|
};
|
|
32817
33262
|
|
|
32818
33263
|
// src/projects/aws-cdk-project.ts
|
|
32819
|
-
var AwsCdkProject = class extends
|
|
33264
|
+
var AwsCdkProject = class extends import_projen22.awscdk.AwsCdkTypeScriptApp {
|
|
32820
33265
|
constructor(userOptions) {
|
|
32821
33266
|
if (!(userOptions.parent instanceof MonorepoProject)) {
|
|
32822
33267
|
throw new Error(
|
|
@@ -33013,7 +33458,7 @@ var AwsCdkProject = class extends import_projen21.awscdk.AwsCdkTypeScriptApp {
|
|
|
33013
33458
|
};
|
|
33014
33459
|
|
|
33015
33460
|
// src/projects/starlight-project.ts
|
|
33016
|
-
var
|
|
33461
|
+
var import_projen23 = require("projen");
|
|
33017
33462
|
var STARLIGHT_ROLE = {
|
|
33018
33463
|
DOCS: "docs",
|
|
33019
33464
|
SITE: "site"
|
|
@@ -33055,10 +33500,10 @@ var StarlightProject = class extends AstroProject {
|
|
|
33055
33500
|
turbo.compileTask.inputs.push("src/content/**");
|
|
33056
33501
|
}
|
|
33057
33502
|
if (userOptions.sampleContent === true) {
|
|
33058
|
-
new
|
|
33503
|
+
new import_projen23.SampleFile(this, "src/content/docs/index.mdx", {
|
|
33059
33504
|
contents: DEFAULT_INDEX_MDX
|
|
33060
33505
|
});
|
|
33061
|
-
new
|
|
33506
|
+
new import_projen23.SampleFile(this, "src/content.config.ts", {
|
|
33062
33507
|
contents: DEFAULT_CONTENT_CONFIG_TS
|
|
33063
33508
|
});
|
|
33064
33509
|
}
|
|
@@ -33108,9 +33553,9 @@ export const collections = {
|
|
|
33108
33553
|
|
|
33109
33554
|
// src/typescript/typescript-config.ts
|
|
33110
33555
|
var import_node_path2 = require("path");
|
|
33111
|
-
var
|
|
33556
|
+
var import_projen24 = require("projen");
|
|
33112
33557
|
var import_path2 = require("projen/lib/util/path");
|
|
33113
|
-
var TypeScriptConfig = class extends
|
|
33558
|
+
var TypeScriptConfig = class extends import_projen24.Component {
|
|
33114
33559
|
constructor(project) {
|
|
33115
33560
|
super(project);
|
|
33116
33561
|
let tsPaths = {};
|
|
@@ -33157,6 +33602,7 @@ var TypeScriptConfig = class extends import_projen23.Component {
|
|
|
33157
33602
|
AwsDeploymentTarget,
|
|
33158
33603
|
AwsTeardownWorkflow,
|
|
33159
33604
|
BUILT_IN_BUNDLES,
|
|
33605
|
+
BUNDLE_OWNERSHIP,
|
|
33160
33606
|
CLAUDE_RULE_TARGET,
|
|
33161
33607
|
COMPLETE_JOB_ID,
|
|
33162
33608
|
DEFAULT_AC_THRESHOLDS,
|
|
@@ -33221,6 +33667,7 @@ var TypeScriptConfig = class extends import_projen23.Component {
|
|
|
33221
33667
|
MINIMUM_RELEASE_AGE,
|
|
33222
33668
|
MONOREPO_LAYOUT,
|
|
33223
33669
|
MonorepoProject,
|
|
33670
|
+
Nvmrc,
|
|
33224
33671
|
PROD_DEPLOY_NAME,
|
|
33225
33672
|
PROGRESS_FILES_FORMAT_VALUES,
|
|
33226
33673
|
PnpmWorkspace,
|
|
@@ -33300,7 +33747,12 @@ var TypeScriptConfig = class extends import_projen23.Component {
|
|
|
33300
33747
|
formatStarlightSingletonViolation,
|
|
33301
33748
|
getLatestEligibleVersion,
|
|
33302
33749
|
githubWorkflowBundle,
|
|
33750
|
+
hasAnyDocsEmittingBundle,
|
|
33751
|
+
hasAnyDownstreamIssueKindBundle,
|
|
33303
33752
|
industryDiscoveryBundle,
|
|
33753
|
+
isPhaseLabelOwnedByExcluded,
|
|
33754
|
+
isScheduledTaskOwnedByExcluded,
|
|
33755
|
+
isTypeLabelOwnedByExcluded,
|
|
33304
33756
|
jestBundle,
|
|
33305
33757
|
labelsForPhase,
|
|
33306
33758
|
maintenanceAuditBundle,
|
|
@@ -33309,6 +33761,8 @@ var TypeScriptConfig = class extends import_projen23.Component {
|
|
|
33309
33761
|
parseApiRollup,
|
|
33310
33762
|
peopleProfileBundle,
|
|
33311
33763
|
persistAuditReport,
|
|
33764
|
+
pinPnpmActionSetup,
|
|
33765
|
+
pinSetupNodeVersion,
|
|
33312
33766
|
pnpmBundle,
|
|
33313
33767
|
prReviewBundle,
|
|
33314
33768
|
projenBundle,
|