@codedrifters/configulator 0.0.191 → 0.0.193
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/docs/label-taxonomy.md +138 -0
- package/lib/index.d.mts +354 -191
- package/lib/index.d.ts +355 -192
- package/lib/index.js +458 -203
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +462 -210
- package/lib/index.mjs.map +1 -1
- package/package.json +1 -1
package/lib/index.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Component, Project, typescript } from 'projen';
|
|
2
2
|
import { Project as Project$1, Task, Component as Component$1 } from 'projen/lib';
|
|
3
|
+
import { NodeProject } from 'projen/lib/javascript';
|
|
3
4
|
import { AwsCdkTypeScriptApp } from 'projen/lib/awscdk';
|
|
4
5
|
import * as spec from '@jsii/spec';
|
|
5
6
|
import { TypeScriptProject as TypeScriptProject$1, TypeScriptAppProject, TypeScriptProjectOptions as TypeScriptProjectOptions$1 } from 'projen/lib/typescript';
|
|
6
7
|
import { ValueOf } from 'type-fest';
|
|
7
8
|
import { BuildWorkflow, BuildWorkflowOptions } from 'projen/lib/build';
|
|
8
|
-
import { NodeProject } from 'projen/lib/javascript';
|
|
9
9
|
import { JobStep } from 'projen/lib/github/workflows-model';
|
|
10
10
|
|
|
11
11
|
/**
|
|
@@ -439,6 +439,56 @@ interface McpServerConfig {
|
|
|
439
439
|
readonly disabledTools?: ReadonlyArray<string>;
|
|
440
440
|
}
|
|
441
441
|
|
|
442
|
+
/** A single GitHub label definition for EndBug/label-sync. */
|
|
443
|
+
interface LabelDefinition {
|
|
444
|
+
/** Label name (e.g. "priority:high"). */
|
|
445
|
+
readonly name: string;
|
|
446
|
+
/** Hex color without the leading `#` (e.g. "B60205"). */
|
|
447
|
+
readonly color: string;
|
|
448
|
+
/** Short description shown in the GitHub UI. */
|
|
449
|
+
readonly description: string;
|
|
450
|
+
}
|
|
451
|
+
/** Options for the sync-labels workflow and labels config file. */
|
|
452
|
+
interface SyncLabelsOptions {
|
|
453
|
+
/**
|
|
454
|
+
* Additional labels to sync alongside the standard defaults.
|
|
455
|
+
* Merged with DEFAULT_STATUS_LABELS, DEFAULT_PRIORITY_LABELS, and
|
|
456
|
+
* DEFAULT_TYPE_LABELS (standard labels are always included).
|
|
457
|
+
*/
|
|
458
|
+
readonly labels?: ReadonlyArray<LabelDefinition>;
|
|
459
|
+
/**
|
|
460
|
+
* Remove labels from the repo that are not in the config file.
|
|
461
|
+
* @default true
|
|
462
|
+
*/
|
|
463
|
+
readonly deleteOtherLabels?: boolean;
|
|
464
|
+
/**
|
|
465
|
+
* Workflow file name (display name in the Actions tab).
|
|
466
|
+
* @default "sync-labels"
|
|
467
|
+
*/
|
|
468
|
+
readonly workflowName?: string;
|
|
469
|
+
/**
|
|
470
|
+
* Agent bundles whose contributed labels should be merged into
|
|
471
|
+
* `.github/labels.yml`. Typically populated by the project type from
|
|
472
|
+
* `AgentConfig.of(project)?.activeBundles` so bundle-supplied labels
|
|
473
|
+
* only appear when the bundle is actually enabled.
|
|
474
|
+
*
|
|
475
|
+
* Merge order: Tier 1 defaults → bundle labels → user-supplied `labels`
|
|
476
|
+
* (later entries override earlier ones on name collision).
|
|
477
|
+
*/
|
|
478
|
+
readonly bundles?: ReadonlyArray<AgentRuleBundle>;
|
|
479
|
+
}
|
|
480
|
+
/** Default status labels. */
|
|
481
|
+
declare const DEFAULT_STATUS_LABELS: ReadonlyArray<LabelDefinition>;
|
|
482
|
+
/** Default priority labels. */
|
|
483
|
+
declare const DEFAULT_PRIORITY_LABELS: ReadonlyArray<LabelDefinition>;
|
|
484
|
+
/** Default type labels — one per conventional commit type. */
|
|
485
|
+
declare const DEFAULT_TYPE_LABELS: ReadonlyArray<LabelDefinition>;
|
|
486
|
+
/**
|
|
487
|
+
* Adds a labels config file and a GitHub Actions workflow that syncs
|
|
488
|
+
* labels to the repository using EndBug/label-sync.
|
|
489
|
+
*/
|
|
490
|
+
declare function addSyncLabelsWorkflow(project: NodeProject, options: SyncLabelsOptions): void;
|
|
491
|
+
|
|
442
492
|
/*******************************************************************************
|
|
443
493
|
*
|
|
444
494
|
* Agent Rule Bundle
|
|
@@ -497,6 +547,15 @@ interface AgentRuleBundle {
|
|
|
497
547
|
readonly allow?: ReadonlyArray<string>;
|
|
498
548
|
readonly deny?: ReadonlyArray<string>;
|
|
499
549
|
};
|
|
550
|
+
/**
|
|
551
|
+
* GitHub labels contributed by this bundle. When the bundle is active in a
|
|
552
|
+
* project that also uses the sync-labels workflow, these labels are merged
|
|
553
|
+
* into `.github/labels.yml` alongside the Tier 1 defaults.
|
|
554
|
+
*
|
|
555
|
+
* User-supplied labels (via `SyncLabelsOptions.labels`) override bundle
|
|
556
|
+
* labels on name collision.
|
|
557
|
+
*/
|
|
558
|
+
readonly labels?: ReadonlyArray<LabelDefinition>;
|
|
500
559
|
}
|
|
501
560
|
/*******************************************************************************
|
|
502
561
|
*
|
|
@@ -931,6 +990,15 @@ declare class AgentConfig extends Component {
|
|
|
931
990
|
private static mergeClaudeDefaults;
|
|
932
991
|
private readonly options;
|
|
933
992
|
constructor(project: Project, options?: AgentConfigOptions);
|
|
993
|
+
/**
|
|
994
|
+
* Returns the bundles that are active for this project: auto-detected
|
|
995
|
+
* bundles (when `autoDetectBundles !== false`) plus force-included
|
|
996
|
+
* bundles, minus explicitly excluded bundles. Deduplicated by name.
|
|
997
|
+
*
|
|
998
|
+
* Exposed so sibling components (e.g. the sync-labels workflow) can
|
|
999
|
+
* consume bundle-contributed configuration.
|
|
1000
|
+
*/
|
|
1001
|
+
get activeBundles(): ReadonlyArray<AgentRuleBundle>;
|
|
934
1002
|
preSynthesize(): void;
|
|
935
1003
|
private resolvePlatforms;
|
|
936
1004
|
private resolveRules;
|
|
@@ -1296,6 +1364,100 @@ interface TemplateResolveResult {
|
|
|
1296
1364
|
*/
|
|
1297
1365
|
declare function resolveTemplateVariables(template: string, metadata: ResolvedProjectMetadata | undefined): TemplateResolveResult;
|
|
1298
1366
|
|
|
1367
|
+
/**
|
|
1368
|
+
* Astro output mode.
|
|
1369
|
+
*
|
|
1370
|
+
* @see https://docs.astro.build/en/reference/configuration-reference/#output
|
|
1371
|
+
*/
|
|
1372
|
+
declare const AstroOutput: {
|
|
1373
|
+
readonly STATIC: "static";
|
|
1374
|
+
readonly SERVER: "server";
|
|
1375
|
+
readonly HYBRID: "hybrid";
|
|
1376
|
+
};
|
|
1377
|
+
type AstroOutput = (typeof AstroOutput)[keyof typeof AstroOutput];
|
|
1378
|
+
/**
|
|
1379
|
+
* Declarative spec for an Astro integration or adapter import.
|
|
1380
|
+
*
|
|
1381
|
+
* Rendered into `astro.config.mjs` as an import plus an invocation in
|
|
1382
|
+
* the `integrations` array (or as the `adapter` field).
|
|
1383
|
+
*/
|
|
1384
|
+
interface AstroIntegrationSpec {
|
|
1385
|
+
/**
|
|
1386
|
+
* Local binding used in the generated config, e.g. "react".
|
|
1387
|
+
*/
|
|
1388
|
+
readonly name: string;
|
|
1389
|
+
/**
|
|
1390
|
+
* Module to import from, e.g. "@astrojs/react".
|
|
1391
|
+
*/
|
|
1392
|
+
readonly importPath: string;
|
|
1393
|
+
/**
|
|
1394
|
+
* Raw argument expression passed to the integration call.
|
|
1395
|
+
*
|
|
1396
|
+
* Written verbatim inside the parentheses, e.g. `"{ include: ['**\/*.tsx'] }"`.
|
|
1397
|
+
* When omitted the integration is invoked with no arguments.
|
|
1398
|
+
*/
|
|
1399
|
+
readonly args?: string;
|
|
1400
|
+
/**
|
|
1401
|
+
* When true, use a default import (`import name from ...`).
|
|
1402
|
+
* When false or omitted, use a named import (`import { name } from ...`).
|
|
1403
|
+
*
|
|
1404
|
+
* @default true
|
|
1405
|
+
*/
|
|
1406
|
+
readonly defaultImport?: boolean;
|
|
1407
|
+
}
|
|
1408
|
+
/**
|
|
1409
|
+
* Options controlling the rendered `astro.config.mjs`.
|
|
1410
|
+
*/
|
|
1411
|
+
interface AstroConfigOptions {
|
|
1412
|
+
/**
|
|
1413
|
+
* Site URL (used for canonical URLs, sitemaps, RSS).
|
|
1414
|
+
*/
|
|
1415
|
+
readonly site?: string;
|
|
1416
|
+
/**
|
|
1417
|
+
* Base path the site is deployed under.
|
|
1418
|
+
*/
|
|
1419
|
+
readonly base?: string;
|
|
1420
|
+
/**
|
|
1421
|
+
* Output mode.
|
|
1422
|
+
*
|
|
1423
|
+
* @default AstroOutput.STATIC
|
|
1424
|
+
*/
|
|
1425
|
+
readonly output?: AstroOutput;
|
|
1426
|
+
/**
|
|
1427
|
+
* Integrations rendered into the `integrations` array.
|
|
1428
|
+
*/
|
|
1429
|
+
readonly integrations?: Array<AstroIntegrationSpec>;
|
|
1430
|
+
/**
|
|
1431
|
+
* SSR adapter rendered into the `adapter` field.
|
|
1432
|
+
*/
|
|
1433
|
+
readonly adapter?: AstroIntegrationSpec;
|
|
1434
|
+
}
|
|
1435
|
+
|
|
1436
|
+
/**
|
|
1437
|
+
* Renders `astro.config.mjs` for an Astro project.
|
|
1438
|
+
*/
|
|
1439
|
+
declare class AstroConfig extends Component {
|
|
1440
|
+
readonly project: NodeProject;
|
|
1441
|
+
/**
|
|
1442
|
+
* Find the AstroConfig component on a project.
|
|
1443
|
+
*/
|
|
1444
|
+
static of(project: NodeProject): AstroConfig | undefined;
|
|
1445
|
+
private readonly configFilePath;
|
|
1446
|
+
private readonly site?;
|
|
1447
|
+
private readonly base?;
|
|
1448
|
+
private readonly output?;
|
|
1449
|
+
private readonly integrations;
|
|
1450
|
+
private readonly adapter?;
|
|
1451
|
+
constructor(project: NodeProject, options?: AstroConfigOptions);
|
|
1452
|
+
/**
|
|
1453
|
+
* Render the config file contents as an array of lines.
|
|
1454
|
+
*
|
|
1455
|
+
* Exposed for unit testing — `synthesizeConfig` writes these to disk.
|
|
1456
|
+
*/
|
|
1457
|
+
renderConfig(): Array<string>;
|
|
1458
|
+
private synthesizeConfig;
|
|
1459
|
+
}
|
|
1460
|
+
|
|
1299
1461
|
/*******************************************************************************
|
|
1300
1462
|
*
|
|
1301
1463
|
* Git configs for this repo. This venn diagram has a great deal of overlap
|
|
@@ -1654,6 +1816,10 @@ interface AwsOrganization {
|
|
|
1654
1816
|
declare function getLatestEligibleVersion(packageName: string, minimumReleaseAgeMinutes: number): Promise<string | null>;
|
|
1655
1817
|
|
|
1656
1818
|
declare const VERSION: {
|
|
1819
|
+
/**
|
|
1820
|
+
* Version of Astro to pin for AstroProject scaffolding.
|
|
1821
|
+
*/
|
|
1822
|
+
readonly ASTRO_VERSION: "5.14.1";
|
|
1657
1823
|
/**
|
|
1658
1824
|
* CDK CLI for workflows and command line operations.
|
|
1659
1825
|
*
|
|
@@ -2078,6 +2244,192 @@ declare class ResetTask extends Component {
|
|
|
2078
2244
|
constructor(project: Project, options?: ResetTaskOptions);
|
|
2079
2245
|
}
|
|
2080
2246
|
|
|
2247
|
+
/**
|
|
2248
|
+
* Options for the Vitest config (test block in vitest.config).
|
|
2249
|
+
*
|
|
2250
|
+
* @see https://vitest.dev/config/
|
|
2251
|
+
*/
|
|
2252
|
+
interface VitestConfigOptions {
|
|
2253
|
+
/**
|
|
2254
|
+
* Glob patterns for test files.
|
|
2255
|
+
*
|
|
2256
|
+
* @default ["**\/*.{test,spec}.?(c|m)[jt]s?(x)"]
|
|
2257
|
+
*/
|
|
2258
|
+
readonly include?: string[];
|
|
2259
|
+
/**
|
|
2260
|
+
* Glob patterns to exclude from test files.
|
|
2261
|
+
*
|
|
2262
|
+
* @default ["**\/node_modules\/**", "**\/dist\/**", "**\/lib\/**", "**\/.?\*"]
|
|
2263
|
+
*/
|
|
2264
|
+
readonly exclude?: string[];
|
|
2265
|
+
/**
|
|
2266
|
+
* Test environment.
|
|
2267
|
+
*
|
|
2268
|
+
* @default "node"
|
|
2269
|
+
*/
|
|
2270
|
+
readonly environment?: "node" | "jsdom" | "happy-dom" | "edge-runtime";
|
|
2271
|
+
/**
|
|
2272
|
+
* Do not fail when no tests are found.
|
|
2273
|
+
*
|
|
2274
|
+
* @default true
|
|
2275
|
+
*/
|
|
2276
|
+
readonly passWithNoTests?: boolean;
|
|
2277
|
+
/**
|
|
2278
|
+
* Enable coverage collection.
|
|
2279
|
+
*
|
|
2280
|
+
* @default true
|
|
2281
|
+
*/
|
|
2282
|
+
readonly coverageEnabled?: boolean;
|
|
2283
|
+
/**
|
|
2284
|
+
* Coverage reports directory.
|
|
2285
|
+
*
|
|
2286
|
+
* @default "coverage"
|
|
2287
|
+
*/
|
|
2288
|
+
readonly coverageDirectory?: string;
|
|
2289
|
+
/**
|
|
2290
|
+
* Coverage reporters.
|
|
2291
|
+
*
|
|
2292
|
+
* @default ["text", "lcov"]
|
|
2293
|
+
*/
|
|
2294
|
+
readonly coverageReporters?: string[];
|
|
2295
|
+
}
|
|
2296
|
+
/**
|
|
2297
|
+
* Options for the Vitest component.
|
|
2298
|
+
*/
|
|
2299
|
+
interface VitestOptions {
|
|
2300
|
+
/**
|
|
2301
|
+
* Config file path.
|
|
2302
|
+
*
|
|
2303
|
+
* @default "vitest.config.ts"
|
|
2304
|
+
*/
|
|
2305
|
+
readonly configFilePath?: string;
|
|
2306
|
+
/**
|
|
2307
|
+
* Vitest config (test block).
|
|
2308
|
+
*/
|
|
2309
|
+
readonly config?: VitestConfigOptions;
|
|
2310
|
+
/**
|
|
2311
|
+
* Vitest version (overrides VERSION.VITEST_VERSION).
|
|
2312
|
+
*/
|
|
2313
|
+
readonly vitestVersion?: string;
|
|
2314
|
+
}
|
|
2315
|
+
/**
|
|
2316
|
+
* Vitest component for Node/TypeScript projects.
|
|
2317
|
+
*
|
|
2318
|
+
* Adds Vitest as the test runner: devDeps, vitest.config.ts, and test/watch tasks.
|
|
2319
|
+
* Incompatible with Jest; use jest: false when constructing the project.
|
|
2320
|
+
*/
|
|
2321
|
+
declare class Vitest extends Component {
|
|
2322
|
+
readonly project: NodeProject;
|
|
2323
|
+
/**
|
|
2324
|
+
* Find the Vitest component on a project.
|
|
2325
|
+
*/
|
|
2326
|
+
static of(project: NodeProject): Vitest | undefined;
|
|
2327
|
+
private readonly configFilePath;
|
|
2328
|
+
private readonly include;
|
|
2329
|
+
private readonly exclude;
|
|
2330
|
+
private readonly environment;
|
|
2331
|
+
private readonly passWithNoTests;
|
|
2332
|
+
private readonly coverageEnabled;
|
|
2333
|
+
private readonly coverageDirectory;
|
|
2334
|
+
private readonly coverageReporters;
|
|
2335
|
+
private readonly version;
|
|
2336
|
+
constructor(project: NodeProject, options?: VitestOptions);
|
|
2337
|
+
preSynthesize(): void;
|
|
2338
|
+
private addTestTasks;
|
|
2339
|
+
private synthesizeConfig;
|
|
2340
|
+
private renderConfig;
|
|
2341
|
+
}
|
|
2342
|
+
|
|
2343
|
+
/**
|
|
2344
|
+
* Test runner for TypeScript projects.
|
|
2345
|
+
*/
|
|
2346
|
+
declare const TestRunner: {
|
|
2347
|
+
readonly JEST: "jest";
|
|
2348
|
+
readonly VITEST: "vitest";
|
|
2349
|
+
};
|
|
2350
|
+
type TestRunner = (typeof TestRunner)[keyof typeof TestRunner];
|
|
2351
|
+
/**
|
|
2352
|
+
* Configuration options for TypeScriptProject.
|
|
2353
|
+
*/
|
|
2354
|
+
interface TypeScriptProjectOptions extends Omit<typescript.TypeScriptProjectOptions, "defaultReleaseBranch"> {
|
|
2355
|
+
/**
|
|
2356
|
+
* Test runner to use.
|
|
2357
|
+
*
|
|
2358
|
+
* @default TestRunner.JEST
|
|
2359
|
+
*/
|
|
2360
|
+
readonly testRunner?: TestRunner;
|
|
2361
|
+
/**
|
|
2362
|
+
* Options for Vitest (only used when testRunner is 'vitest').
|
|
2363
|
+
*/
|
|
2364
|
+
readonly vitestOptions?: VitestOptions;
|
|
2365
|
+
/**
|
|
2366
|
+
* Enable the reset task that deletes all build artifacts.
|
|
2367
|
+
*
|
|
2368
|
+
* @default true
|
|
2369
|
+
*/
|
|
2370
|
+
readonly resetTask?: boolean;
|
|
2371
|
+
/**
|
|
2372
|
+
* Options for the reset task.
|
|
2373
|
+
*/
|
|
2374
|
+
readonly resetTaskOptions?: ResetTaskOptions;
|
|
2375
|
+
/**
|
|
2376
|
+
* AI agent configuration (Cursor, Claude Code rules).
|
|
2377
|
+
* Generates rule files with auto-detected bundles based on project tooling.
|
|
2378
|
+
*
|
|
2379
|
+
* - `true` or `{}`: enable with auto-detected defaults
|
|
2380
|
+
* - `AgentConfigOptions`: enable with explicit configuration
|
|
2381
|
+
* - `false` or `undefined`: disabled (default)
|
|
2382
|
+
*
|
|
2383
|
+
* Sub-projects do not inherit `AgentConfig` from their parent
|
|
2384
|
+
* `MonorepoProject`. Agent rule files are rendered only on projects that
|
|
2385
|
+
* explicitly opt in, so a monorepo's root `AgentConfig` does not duplicate
|
|
2386
|
+
* `.cursor/`, `.claude/`, or `CLAUDE.md` into each sub-project's `outdir`.
|
|
2387
|
+
*
|
|
2388
|
+
* @default false
|
|
2389
|
+
*/
|
|
2390
|
+
readonly agentConfig?: AgentConfigOptions | boolean;
|
|
2391
|
+
}
|
|
2392
|
+
declare class TypeScriptProject extends typescript.TypeScriptProject {
|
|
2393
|
+
constructor(userOptions: TypeScriptProjectOptions);
|
|
2394
|
+
}
|
|
2395
|
+
|
|
2396
|
+
/**
|
|
2397
|
+
* Configuration options for AstroProject.
|
|
2398
|
+
*/
|
|
2399
|
+
interface AstroProjectOptions extends TypeScriptProjectOptions, AstroConfigOptions {
|
|
2400
|
+
/**
|
|
2401
|
+
* Astro package version.
|
|
2402
|
+
*
|
|
2403
|
+
* @default VERSION.ASTRO_VERSION
|
|
2404
|
+
*/
|
|
2405
|
+
readonly astroVersion?: string;
|
|
2406
|
+
/**
|
|
2407
|
+
* Emit sample Astro starter files (`src/pages/index.astro`, `public/favicon.svg`).
|
|
2408
|
+
*
|
|
2409
|
+
* @default false
|
|
2410
|
+
*/
|
|
2411
|
+
readonly sampleCode?: boolean;
|
|
2412
|
+
/**
|
|
2413
|
+
* Astro tsconfig preset to extend.
|
|
2414
|
+
*
|
|
2415
|
+
* @default "astro/tsconfigs/strict"
|
|
2416
|
+
*/
|
|
2417
|
+
readonly astroTsconfigExtends?: string;
|
|
2418
|
+
}
|
|
2419
|
+
/**
|
|
2420
|
+
* Minimal Astro site scaffolded on top of {@link TypeScriptProject}.
|
|
2421
|
+
*
|
|
2422
|
+
* Replaces the `tsc` compile step with `astro check && astro build`, writes
|
|
2423
|
+
* `astro.config.mjs`, sets `"type": "module"`, and wires dev/preview tasks.
|
|
2424
|
+
*/
|
|
2425
|
+
declare class AstroProject extends TypeScriptProject {
|
|
2426
|
+
/**
|
|
2427
|
+
* Rendered Astro config component.
|
|
2428
|
+
*/
|
|
2429
|
+
readonly astroConfig: AstroConfig;
|
|
2430
|
+
constructor(userOptions: AstroProjectOptions);
|
|
2431
|
+
}
|
|
2432
|
+
|
|
2081
2433
|
/**
|
|
2082
2434
|
* Each of the below options corresponds to a task property found here:
|
|
2083
2435
|
* * https://turborepo.com/docs/reference/configuration#defining-tasks
|
|
@@ -2556,46 +2908,6 @@ interface ApproveMergeUpgradeOptions {
|
|
|
2556
2908
|
*/
|
|
2557
2909
|
declare function addApproveMergeUpgradeWorkflow(project: NodeProject, options: ApproveMergeUpgradeOptions): void;
|
|
2558
2910
|
|
|
2559
|
-
/** A single GitHub label definition for EndBug/label-sync. */
|
|
2560
|
-
interface LabelDefinition {
|
|
2561
|
-
/** Label name (e.g. "priority:high"). */
|
|
2562
|
-
readonly name: string;
|
|
2563
|
-
/** Hex color without the leading `#` (e.g. "B60205"). */
|
|
2564
|
-
readonly color: string;
|
|
2565
|
-
/** Short description shown in the GitHub UI. */
|
|
2566
|
-
readonly description: string;
|
|
2567
|
-
}
|
|
2568
|
-
/** Options for the sync-labels workflow and labels config file. */
|
|
2569
|
-
interface SyncLabelsOptions {
|
|
2570
|
-
/**
|
|
2571
|
-
* Additional labels to sync alongside the standard defaults.
|
|
2572
|
-
* Merged with DEFAULT_STATUS_LABELS, DEFAULT_PRIORITY_LABELS, and
|
|
2573
|
-
* DEFAULT_TYPE_LABELS (standard labels are always included).
|
|
2574
|
-
*/
|
|
2575
|
-
readonly labels?: ReadonlyArray<LabelDefinition>;
|
|
2576
|
-
/**
|
|
2577
|
-
* Remove labels from the repo that are not in the config file.
|
|
2578
|
-
* @default true
|
|
2579
|
-
*/
|
|
2580
|
-
readonly deleteOtherLabels?: boolean;
|
|
2581
|
-
/**
|
|
2582
|
-
* Workflow file name (display name in the Actions tab).
|
|
2583
|
-
* @default "sync-labels"
|
|
2584
|
-
*/
|
|
2585
|
-
readonly workflowName?: string;
|
|
2586
|
-
}
|
|
2587
|
-
/** Default status labels. */
|
|
2588
|
-
declare const DEFAULT_STATUS_LABELS: ReadonlyArray<LabelDefinition>;
|
|
2589
|
-
/** Default priority labels. */
|
|
2590
|
-
declare const DEFAULT_PRIORITY_LABELS: ReadonlyArray<LabelDefinition>;
|
|
2591
|
-
/** Default type labels — one per conventional commit type. */
|
|
2592
|
-
declare const DEFAULT_TYPE_LABELS: ReadonlyArray<LabelDefinition>;
|
|
2593
|
-
/**
|
|
2594
|
-
* Adds a labels config file and a GitHub Actions workflow that syncs
|
|
2595
|
-
* labels to the repository using EndBug/label-sync.
|
|
2596
|
-
*/
|
|
2597
|
-
declare function addSyncLabelsWorkflow(project: NodeProject, options: SyncLabelsOptions): void;
|
|
2598
|
-
|
|
2599
2911
|
/*******************************************************************************
|
|
2600
2912
|
*
|
|
2601
2913
|
* Monorepo Root Project.
|
|
@@ -2758,155 +3070,6 @@ declare class ProjectMetadata extends Component {
|
|
|
2758
3070
|
private autoDetectRepository;
|
|
2759
3071
|
}
|
|
2760
3072
|
|
|
2761
|
-
/**
|
|
2762
|
-
* Options for the Vitest config (test block in vitest.config).
|
|
2763
|
-
*
|
|
2764
|
-
* @see https://vitest.dev/config/
|
|
2765
|
-
*/
|
|
2766
|
-
interface VitestConfigOptions {
|
|
2767
|
-
/**
|
|
2768
|
-
* Glob patterns for test files.
|
|
2769
|
-
*
|
|
2770
|
-
* @default ["**\/*.{test,spec}.?(c|m)[jt]s?(x)"]
|
|
2771
|
-
*/
|
|
2772
|
-
readonly include?: string[];
|
|
2773
|
-
/**
|
|
2774
|
-
* Glob patterns to exclude from test files.
|
|
2775
|
-
*
|
|
2776
|
-
* @default ["**\/node_modules\/**", "**\/dist\/**", "**\/lib\/**", "**\/.?\*"]
|
|
2777
|
-
*/
|
|
2778
|
-
readonly exclude?: string[];
|
|
2779
|
-
/**
|
|
2780
|
-
* Test environment.
|
|
2781
|
-
*
|
|
2782
|
-
* @default "node"
|
|
2783
|
-
*/
|
|
2784
|
-
readonly environment?: "node" | "jsdom" | "happy-dom" | "edge-runtime";
|
|
2785
|
-
/**
|
|
2786
|
-
* Do not fail when no tests are found.
|
|
2787
|
-
*
|
|
2788
|
-
* @default true
|
|
2789
|
-
*/
|
|
2790
|
-
readonly passWithNoTests?: boolean;
|
|
2791
|
-
/**
|
|
2792
|
-
* Enable coverage collection.
|
|
2793
|
-
*
|
|
2794
|
-
* @default true
|
|
2795
|
-
*/
|
|
2796
|
-
readonly coverageEnabled?: boolean;
|
|
2797
|
-
/**
|
|
2798
|
-
* Coverage reports directory.
|
|
2799
|
-
*
|
|
2800
|
-
* @default "coverage"
|
|
2801
|
-
*/
|
|
2802
|
-
readonly coverageDirectory?: string;
|
|
2803
|
-
/**
|
|
2804
|
-
* Coverage reporters.
|
|
2805
|
-
*
|
|
2806
|
-
* @default ["text", "lcov"]
|
|
2807
|
-
*/
|
|
2808
|
-
readonly coverageReporters?: string[];
|
|
2809
|
-
}
|
|
2810
|
-
/**
|
|
2811
|
-
* Options for the Vitest component.
|
|
2812
|
-
*/
|
|
2813
|
-
interface VitestOptions {
|
|
2814
|
-
/**
|
|
2815
|
-
* Config file path.
|
|
2816
|
-
*
|
|
2817
|
-
* @default "vitest.config.ts"
|
|
2818
|
-
*/
|
|
2819
|
-
readonly configFilePath?: string;
|
|
2820
|
-
/**
|
|
2821
|
-
* Vitest config (test block).
|
|
2822
|
-
*/
|
|
2823
|
-
readonly config?: VitestConfigOptions;
|
|
2824
|
-
/**
|
|
2825
|
-
* Vitest version (overrides VERSION.VITEST_VERSION).
|
|
2826
|
-
*/
|
|
2827
|
-
readonly vitestVersion?: string;
|
|
2828
|
-
}
|
|
2829
|
-
/**
|
|
2830
|
-
* Vitest component for Node/TypeScript projects.
|
|
2831
|
-
*
|
|
2832
|
-
* Adds Vitest as the test runner: devDeps, vitest.config.ts, and test/watch tasks.
|
|
2833
|
-
* Incompatible with Jest; use jest: false when constructing the project.
|
|
2834
|
-
*/
|
|
2835
|
-
declare class Vitest extends Component {
|
|
2836
|
-
readonly project: NodeProject;
|
|
2837
|
-
/**
|
|
2838
|
-
* Find the Vitest component on a project.
|
|
2839
|
-
*/
|
|
2840
|
-
static of(project: NodeProject): Vitest | undefined;
|
|
2841
|
-
private readonly configFilePath;
|
|
2842
|
-
private readonly include;
|
|
2843
|
-
private readonly exclude;
|
|
2844
|
-
private readonly environment;
|
|
2845
|
-
private readonly passWithNoTests;
|
|
2846
|
-
private readonly coverageEnabled;
|
|
2847
|
-
private readonly coverageDirectory;
|
|
2848
|
-
private readonly coverageReporters;
|
|
2849
|
-
private readonly version;
|
|
2850
|
-
constructor(project: NodeProject, options?: VitestOptions);
|
|
2851
|
-
preSynthesize(): void;
|
|
2852
|
-
private addTestTasks;
|
|
2853
|
-
private synthesizeConfig;
|
|
2854
|
-
private renderConfig;
|
|
2855
|
-
}
|
|
2856
|
-
|
|
2857
|
-
/**
|
|
2858
|
-
* Test runner for TypeScript projects.
|
|
2859
|
-
*/
|
|
2860
|
-
declare const TestRunner: {
|
|
2861
|
-
readonly JEST: "jest";
|
|
2862
|
-
readonly VITEST: "vitest";
|
|
2863
|
-
};
|
|
2864
|
-
type TestRunner = (typeof TestRunner)[keyof typeof TestRunner];
|
|
2865
|
-
/**
|
|
2866
|
-
* Configuration options for TypeScriptProject.
|
|
2867
|
-
*/
|
|
2868
|
-
interface TypeScriptProjectOptions extends Omit<typescript.TypeScriptProjectOptions, "defaultReleaseBranch"> {
|
|
2869
|
-
/**
|
|
2870
|
-
* Test runner to use.
|
|
2871
|
-
*
|
|
2872
|
-
* @default TestRunner.JEST
|
|
2873
|
-
*/
|
|
2874
|
-
readonly testRunner?: TestRunner;
|
|
2875
|
-
/**
|
|
2876
|
-
* Options for Vitest (only used when testRunner is 'vitest').
|
|
2877
|
-
*/
|
|
2878
|
-
readonly vitestOptions?: VitestOptions;
|
|
2879
|
-
/**
|
|
2880
|
-
* Enable the reset task that deletes all build artifacts.
|
|
2881
|
-
*
|
|
2882
|
-
* @default true
|
|
2883
|
-
*/
|
|
2884
|
-
readonly resetTask?: boolean;
|
|
2885
|
-
/**
|
|
2886
|
-
* Options for the reset task.
|
|
2887
|
-
*/
|
|
2888
|
-
readonly resetTaskOptions?: ResetTaskOptions;
|
|
2889
|
-
/**
|
|
2890
|
-
* AI agent configuration (Cursor, Claude Code rules).
|
|
2891
|
-
* Generates rule files with auto-detected bundles based on project tooling.
|
|
2892
|
-
*
|
|
2893
|
-
* - `true` or `{}`: enable with auto-detected defaults
|
|
2894
|
-
* - `AgentConfigOptions`: enable with explicit configuration
|
|
2895
|
-
* - `false` or `undefined`: disabled (default)
|
|
2896
|
-
*
|
|
2897
|
-
* Sub-projects do not inherit `AgentConfig` from their parent
|
|
2898
|
-
* `MonorepoProject`. Agent rule files are rendered only on projects that
|
|
2899
|
-
* explicitly opt in, so a monorepo's root `AgentConfig` does not duplicate
|
|
2900
|
-
* `.cursor/`, `.claude/`, or `CLAUDE.md` into each sub-project's `outdir`.
|
|
2901
|
-
*
|
|
2902
|
-
* @default false
|
|
2903
|
-
*/
|
|
2904
|
-
readonly agentConfig?: AgentConfigOptions | boolean;
|
|
2905
|
-
}
|
|
2906
|
-
declare class TypeScriptProject extends typescript.TypeScriptProject {
|
|
2907
|
-
constructor(userOptions: TypeScriptProjectOptions);
|
|
2908
|
-
}
|
|
2909
|
-
|
|
2910
3073
|
/*******************************************************************************
|
|
2911
3074
|
*
|
|
2912
3075
|
* Update / customize typescript configs for a project.
|
|
@@ -3022,5 +3185,5 @@ declare const COMPLETE_JOB_ID = "complete";
|
|
|
3022
3185
|
*/
|
|
3023
3186
|
declare function addBuildCompleteJob(buildWorkflow: BuildWorkflow): void;
|
|
3024
3187
|
|
|
3025
|
-
export { AGENT_MODEL, AGENT_PLATFORM, AGENT_RULE_SCOPE, AgentConfig, AwsDeployWorkflow, AwsDeploymentConfig, AwsDeploymentTarget, BUILT_IN_BUNDLES, CLAUDE_RULE_TARGET, COMPLETE_JOB_ID, DEFAULT_PRIORITY_LABELS, DEFAULT_STATUS_LABELS, DEFAULT_TYPE_LABELS, JsiiFaker, MCP_TRANSPORT, MERGE_METHODS, MIMIMUM_RELEASE_AGE, MINIMUM_RELEASE_AGE, MonorepoProject, PROD_DEPLOY_NAME, PnpmWorkspace, ProjectMetadata, ROOT_CI_TASK_NAME, ROOT_TURBO_TASK_NAME, ResetTask, TestRunner, TurboRepo, TurboRepoTask, TypeScriptConfig, TypeScriptProject, VERSION, VERSION_KEYS_SKIP, VERSION_NPM_PACKAGES, VSCodeConfig, Vitest, addApproveMergeUpgradeWorkflow, addBuildCompleteJob, addSyncLabelsWorkflow, awsCdkBundle, baseBundle, getLatestEligibleVersion, githubWorkflowBundle, jestBundle, meetingAnalysisBundle, orchestratorBundle, pnpmBundle, projenBundle, resolveModelAlias, resolveTemplateVariables, slackBundle, turborepoBundle, typescriptBundle, vitestBundle };
|
|
3026
|
-
export type { AgentConfigOptions, AgentModel, AgentPlatform, AgentPlatformOverrides, AgentProcedure, AgentRule, AgentRuleBundle, AgentRuleScope, AgentSkill, AgentSubAgent, AgentSubAgentPlatformOverrides, ApproveMergeUpgradeOptions, AwsAccount, AwsDeploymentTargetOptions, AwsLocalDeploymentConfig, AwsOrganization, AwsRegion, CiDeploymentConfig, ClassTypeOptions, ClaudeAutoModeConfig, ClaudeHookAction, ClaudeHookEntry, ClaudeHooksConfig, ClaudePermissionsConfig, ClaudeRuleTarget, ClaudeSandboxConfig, ClaudeSettingsConfig, CopilotHandoff, CursorHookAction, CursorHooksConfig, CursorSettingsConfig, DeployWorkflowOptions, DeploymentMetadata, GitBranch, GitHubBoardMetadata, GitHubProjectMetadata, GitHubSprintMetadata, IDependencyResolver, LabelDefinition, McpServerConfig, McpTransport, MergeMethod, MonorepoProjectOptions, OrganizationMetadata, PnpmWorkspaceOptions, ProjectMetadataOptions, RemoteCacheOptions, RepositoryMetadata, ResetTaskOptions, ResolvedProjectMetadata, SlackMetadata, SyncLabelsOptions, TemplateResolveResult, TurboRepoOptions, TurboRepoTaskOptions, TypeScriptProjectOptions, VersionKey, VitestConfigOptions, VitestOptions };
|
|
3188
|
+
export { AGENT_MODEL, AGENT_PLATFORM, AGENT_RULE_SCOPE, AgentConfig, AstroConfig, AstroOutput, AstroProject, AwsDeployWorkflow, AwsDeploymentConfig, AwsDeploymentTarget, BUILT_IN_BUNDLES, CLAUDE_RULE_TARGET, COMPLETE_JOB_ID, DEFAULT_PRIORITY_LABELS, DEFAULT_STATUS_LABELS, DEFAULT_TYPE_LABELS, JsiiFaker, MCP_TRANSPORT, MERGE_METHODS, MIMIMUM_RELEASE_AGE, MINIMUM_RELEASE_AGE, MonorepoProject, PROD_DEPLOY_NAME, PnpmWorkspace, ProjectMetadata, ROOT_CI_TASK_NAME, ROOT_TURBO_TASK_NAME, ResetTask, TestRunner, TurboRepo, TurboRepoTask, TypeScriptConfig, TypeScriptProject, VERSION, VERSION_KEYS_SKIP, VERSION_NPM_PACKAGES, VSCodeConfig, Vitest, addApproveMergeUpgradeWorkflow, addBuildCompleteJob, addSyncLabelsWorkflow, awsCdkBundle, baseBundle, getLatestEligibleVersion, githubWorkflowBundle, jestBundle, meetingAnalysisBundle, orchestratorBundle, pnpmBundle, projenBundle, resolveModelAlias, resolveTemplateVariables, slackBundle, turborepoBundle, typescriptBundle, vitestBundle };
|
|
3189
|
+
export type { AgentConfigOptions, AgentModel, AgentPlatform, AgentPlatformOverrides, AgentProcedure, AgentRule, AgentRuleBundle, AgentRuleScope, AgentSkill, AgentSubAgent, AgentSubAgentPlatformOverrides, ApproveMergeUpgradeOptions, AstroConfigOptions, AstroIntegrationSpec, AstroProjectOptions, AwsAccount, AwsDeploymentTargetOptions, AwsLocalDeploymentConfig, AwsOrganization, AwsRegion, CiDeploymentConfig, ClassTypeOptions, ClaudeAutoModeConfig, ClaudeHookAction, ClaudeHookEntry, ClaudeHooksConfig, ClaudePermissionsConfig, ClaudeRuleTarget, ClaudeSandboxConfig, ClaudeSettingsConfig, CopilotHandoff, CursorHookAction, CursorHooksConfig, CursorSettingsConfig, DeployWorkflowOptions, DeploymentMetadata, GitBranch, GitHubBoardMetadata, GitHubProjectMetadata, GitHubSprintMetadata, IDependencyResolver, LabelDefinition, McpServerConfig, McpTransport, MergeMethod, MonorepoProjectOptions, OrganizationMetadata, PnpmWorkspaceOptions, ProjectMetadataOptions, RemoteCacheOptions, RepositoryMetadata, ResetTaskOptions, ResolvedProjectMetadata, SlackMetadata, SyncLabelsOptions, TemplateResolveResult, TurboRepoOptions, TurboRepoTaskOptions, TypeScriptProjectOptions, VersionKey, VitestConfigOptions, VitestOptions };
|