@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.mts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Component, Project as Project$1, typescript } from 'projen';
|
|
2
2
|
import { Project, Component as Component$1, Task } from 'projen/lib';
|
|
3
|
+
import { NodeProject } from 'projen/lib/javascript';
|
|
3
4
|
import { AwsCdkTypeScriptApp } from 'projen/lib/awscdk';
|
|
4
5
|
import { AwsStageType, DeploymentTargetRoleType, AwsEnvironmentType, AWS_STAGE_TYPE } from '@codedrifters/utils';
|
|
5
6
|
import * as spec from '@jsii/spec';
|
|
6
7
|
import { TypeScriptProject as TypeScriptProject$1, TypeScriptAppProject, TypeScriptProjectOptions as TypeScriptProjectOptions$1 } from 'projen/lib/typescript';
|
|
7
8
|
import { ValueOf } from 'type-fest';
|
|
8
9
|
import { BuildWorkflowOptions, BuildWorkflow } from 'projen/lib/build';
|
|
9
|
-
import { NodeProject } from 'projen/lib/javascript';
|
|
10
10
|
import { JobStep } from 'projen/lib/github/workflows-model';
|
|
11
11
|
|
|
12
12
|
/**
|
|
@@ -390,6 +390,56 @@ interface McpServerConfig {
|
|
|
390
390
|
readonly disabledTools?: ReadonlyArray<string>;
|
|
391
391
|
}
|
|
392
392
|
|
|
393
|
+
/** A single GitHub label definition for EndBug/label-sync. */
|
|
394
|
+
interface LabelDefinition {
|
|
395
|
+
/** Label name (e.g. "priority:high"). */
|
|
396
|
+
readonly name: string;
|
|
397
|
+
/** Hex color without the leading `#` (e.g. "B60205"). */
|
|
398
|
+
readonly color: string;
|
|
399
|
+
/** Short description shown in the GitHub UI. */
|
|
400
|
+
readonly description: string;
|
|
401
|
+
}
|
|
402
|
+
/** Options for the sync-labels workflow and labels config file. */
|
|
403
|
+
interface SyncLabelsOptions {
|
|
404
|
+
/**
|
|
405
|
+
* Additional labels to sync alongside the standard defaults.
|
|
406
|
+
* Merged with DEFAULT_STATUS_LABELS, DEFAULT_PRIORITY_LABELS, and
|
|
407
|
+
* DEFAULT_TYPE_LABELS (standard labels are always included).
|
|
408
|
+
*/
|
|
409
|
+
readonly labels?: ReadonlyArray<LabelDefinition>;
|
|
410
|
+
/**
|
|
411
|
+
* Remove labels from the repo that are not in the config file.
|
|
412
|
+
* @default true
|
|
413
|
+
*/
|
|
414
|
+
readonly deleteOtherLabels?: boolean;
|
|
415
|
+
/**
|
|
416
|
+
* Workflow file name (display name in the Actions tab).
|
|
417
|
+
* @default "sync-labels"
|
|
418
|
+
*/
|
|
419
|
+
readonly workflowName?: string;
|
|
420
|
+
/**
|
|
421
|
+
* Agent bundles whose contributed labels should be merged into
|
|
422
|
+
* `.github/labels.yml`. Typically populated by the project type from
|
|
423
|
+
* `AgentConfig.of(project)?.activeBundles` so bundle-supplied labels
|
|
424
|
+
* only appear when the bundle is actually enabled.
|
|
425
|
+
*
|
|
426
|
+
* Merge order: Tier 1 defaults → bundle labels → user-supplied `labels`
|
|
427
|
+
* (later entries override earlier ones on name collision).
|
|
428
|
+
*/
|
|
429
|
+
readonly bundles?: ReadonlyArray<AgentRuleBundle>;
|
|
430
|
+
}
|
|
431
|
+
/** Default status labels. */
|
|
432
|
+
declare const DEFAULT_STATUS_LABELS: ReadonlyArray<LabelDefinition>;
|
|
433
|
+
/** Default priority labels. */
|
|
434
|
+
declare const DEFAULT_PRIORITY_LABELS: ReadonlyArray<LabelDefinition>;
|
|
435
|
+
/** Default type labels — one per conventional commit type. */
|
|
436
|
+
declare const DEFAULT_TYPE_LABELS: ReadonlyArray<LabelDefinition>;
|
|
437
|
+
/**
|
|
438
|
+
* Adds a labels config file and a GitHub Actions workflow that syncs
|
|
439
|
+
* labels to the repository using EndBug/label-sync.
|
|
440
|
+
*/
|
|
441
|
+
declare function addSyncLabelsWorkflow(project: NodeProject, options: SyncLabelsOptions): void;
|
|
442
|
+
|
|
393
443
|
/*******************************************************************************
|
|
394
444
|
*
|
|
395
445
|
* Agent Rule Bundle
|
|
@@ -448,6 +498,15 @@ interface AgentRuleBundle {
|
|
|
448
498
|
readonly allow?: ReadonlyArray<string>;
|
|
449
499
|
readonly deny?: ReadonlyArray<string>;
|
|
450
500
|
};
|
|
501
|
+
/**
|
|
502
|
+
* GitHub labels contributed by this bundle. When the bundle is active in a
|
|
503
|
+
* project that also uses the sync-labels workflow, these labels are merged
|
|
504
|
+
* into `.github/labels.yml` alongside the Tier 1 defaults.
|
|
505
|
+
*
|
|
506
|
+
* User-supplied labels (via `SyncLabelsOptions.labels`) override bundle
|
|
507
|
+
* labels on name collision.
|
|
508
|
+
*/
|
|
509
|
+
readonly labels?: ReadonlyArray<LabelDefinition>;
|
|
451
510
|
}
|
|
452
511
|
/*******************************************************************************
|
|
453
512
|
*
|
|
@@ -882,6 +941,15 @@ declare class AgentConfig extends Component {
|
|
|
882
941
|
private static mergeClaudeDefaults;
|
|
883
942
|
private readonly options;
|
|
884
943
|
constructor(project: Project$1, options?: AgentConfigOptions);
|
|
944
|
+
/**
|
|
945
|
+
* Returns the bundles that are active for this project: auto-detected
|
|
946
|
+
* bundles (when `autoDetectBundles !== false`) plus force-included
|
|
947
|
+
* bundles, minus explicitly excluded bundles. Deduplicated by name.
|
|
948
|
+
*
|
|
949
|
+
* Exposed so sibling components (e.g. the sync-labels workflow) can
|
|
950
|
+
* consume bundle-contributed configuration.
|
|
951
|
+
*/
|
|
952
|
+
get activeBundles(): ReadonlyArray<AgentRuleBundle>;
|
|
885
953
|
preSynthesize(): void;
|
|
886
954
|
private resolvePlatforms;
|
|
887
955
|
private resolveRules;
|
|
@@ -1247,6 +1315,100 @@ interface TemplateResolveResult {
|
|
|
1247
1315
|
*/
|
|
1248
1316
|
declare function resolveTemplateVariables(template: string, metadata: ResolvedProjectMetadata | undefined): TemplateResolveResult;
|
|
1249
1317
|
|
|
1318
|
+
/**
|
|
1319
|
+
* Astro output mode.
|
|
1320
|
+
*
|
|
1321
|
+
* @see https://docs.astro.build/en/reference/configuration-reference/#output
|
|
1322
|
+
*/
|
|
1323
|
+
declare const AstroOutput: {
|
|
1324
|
+
readonly STATIC: "static";
|
|
1325
|
+
readonly SERVER: "server";
|
|
1326
|
+
readonly HYBRID: "hybrid";
|
|
1327
|
+
};
|
|
1328
|
+
type AstroOutput = (typeof AstroOutput)[keyof typeof AstroOutput];
|
|
1329
|
+
/**
|
|
1330
|
+
* Declarative spec for an Astro integration or adapter import.
|
|
1331
|
+
*
|
|
1332
|
+
* Rendered into `astro.config.mjs` as an import plus an invocation in
|
|
1333
|
+
* the `integrations` array (or as the `adapter` field).
|
|
1334
|
+
*/
|
|
1335
|
+
interface AstroIntegrationSpec {
|
|
1336
|
+
/**
|
|
1337
|
+
* Local binding used in the generated config, e.g. "react".
|
|
1338
|
+
*/
|
|
1339
|
+
readonly name: string;
|
|
1340
|
+
/**
|
|
1341
|
+
* Module to import from, e.g. "@astrojs/react".
|
|
1342
|
+
*/
|
|
1343
|
+
readonly importPath: string;
|
|
1344
|
+
/**
|
|
1345
|
+
* Raw argument expression passed to the integration call.
|
|
1346
|
+
*
|
|
1347
|
+
* Written verbatim inside the parentheses, e.g. `"{ include: ['**\/*.tsx'] }"`.
|
|
1348
|
+
* When omitted the integration is invoked with no arguments.
|
|
1349
|
+
*/
|
|
1350
|
+
readonly args?: string;
|
|
1351
|
+
/**
|
|
1352
|
+
* When true, use a default import (`import name from ...`).
|
|
1353
|
+
* When false or omitted, use a named import (`import { name } from ...`).
|
|
1354
|
+
*
|
|
1355
|
+
* @default true
|
|
1356
|
+
*/
|
|
1357
|
+
readonly defaultImport?: boolean;
|
|
1358
|
+
}
|
|
1359
|
+
/**
|
|
1360
|
+
* Options controlling the rendered `astro.config.mjs`.
|
|
1361
|
+
*/
|
|
1362
|
+
interface AstroConfigOptions {
|
|
1363
|
+
/**
|
|
1364
|
+
* Site URL (used for canonical URLs, sitemaps, RSS).
|
|
1365
|
+
*/
|
|
1366
|
+
readonly site?: string;
|
|
1367
|
+
/**
|
|
1368
|
+
* Base path the site is deployed under.
|
|
1369
|
+
*/
|
|
1370
|
+
readonly base?: string;
|
|
1371
|
+
/**
|
|
1372
|
+
* Output mode.
|
|
1373
|
+
*
|
|
1374
|
+
* @default AstroOutput.STATIC
|
|
1375
|
+
*/
|
|
1376
|
+
readonly output?: AstroOutput;
|
|
1377
|
+
/**
|
|
1378
|
+
* Integrations rendered into the `integrations` array.
|
|
1379
|
+
*/
|
|
1380
|
+
readonly integrations?: Array<AstroIntegrationSpec>;
|
|
1381
|
+
/**
|
|
1382
|
+
* SSR adapter rendered into the `adapter` field.
|
|
1383
|
+
*/
|
|
1384
|
+
readonly adapter?: AstroIntegrationSpec;
|
|
1385
|
+
}
|
|
1386
|
+
|
|
1387
|
+
/**
|
|
1388
|
+
* Renders `astro.config.mjs` for an Astro project.
|
|
1389
|
+
*/
|
|
1390
|
+
declare class AstroConfig extends Component {
|
|
1391
|
+
readonly project: NodeProject;
|
|
1392
|
+
/**
|
|
1393
|
+
* Find the AstroConfig component on a project.
|
|
1394
|
+
*/
|
|
1395
|
+
static of(project: NodeProject): AstroConfig | undefined;
|
|
1396
|
+
private readonly configFilePath;
|
|
1397
|
+
private readonly site?;
|
|
1398
|
+
private readonly base?;
|
|
1399
|
+
private readonly output?;
|
|
1400
|
+
private readonly integrations;
|
|
1401
|
+
private readonly adapter?;
|
|
1402
|
+
constructor(project: NodeProject, options?: AstroConfigOptions);
|
|
1403
|
+
/**
|
|
1404
|
+
* Render the config file contents as an array of lines.
|
|
1405
|
+
*
|
|
1406
|
+
* Exposed for unit testing — `synthesizeConfig` writes these to disk.
|
|
1407
|
+
*/
|
|
1408
|
+
renderConfig(): Array<string>;
|
|
1409
|
+
private synthesizeConfig;
|
|
1410
|
+
}
|
|
1411
|
+
|
|
1250
1412
|
/*******************************************************************************
|
|
1251
1413
|
*
|
|
1252
1414
|
* Git configs for this repo. This venn diagram has a great deal of overlap
|
|
@@ -1605,6 +1767,10 @@ interface AwsOrganization {
|
|
|
1605
1767
|
declare function getLatestEligibleVersion(packageName: string, minimumReleaseAgeMinutes: number): Promise<string | null>;
|
|
1606
1768
|
|
|
1607
1769
|
declare const VERSION: {
|
|
1770
|
+
/**
|
|
1771
|
+
* Version of Astro to pin for AstroProject scaffolding.
|
|
1772
|
+
*/
|
|
1773
|
+
readonly ASTRO_VERSION: "5.14.1";
|
|
1608
1774
|
/**
|
|
1609
1775
|
* CDK CLI for workflows and command line operations.
|
|
1610
1776
|
*
|
|
@@ -2029,6 +2195,192 @@ declare class ResetTask extends Component {
|
|
|
2029
2195
|
constructor(project: Project$1, options?: ResetTaskOptions);
|
|
2030
2196
|
}
|
|
2031
2197
|
|
|
2198
|
+
/**
|
|
2199
|
+
* Options for the Vitest config (test block in vitest.config).
|
|
2200
|
+
*
|
|
2201
|
+
* @see https://vitest.dev/config/
|
|
2202
|
+
*/
|
|
2203
|
+
interface VitestConfigOptions {
|
|
2204
|
+
/**
|
|
2205
|
+
* Glob patterns for test files.
|
|
2206
|
+
*
|
|
2207
|
+
* @default ["**\/*.{test,spec}.?(c|m)[jt]s?(x)"]
|
|
2208
|
+
*/
|
|
2209
|
+
readonly include?: string[];
|
|
2210
|
+
/**
|
|
2211
|
+
* Glob patterns to exclude from test files.
|
|
2212
|
+
*
|
|
2213
|
+
* @default ["**\/node_modules\/**", "**\/dist\/**", "**\/lib\/**", "**\/.?\*"]
|
|
2214
|
+
*/
|
|
2215
|
+
readonly exclude?: string[];
|
|
2216
|
+
/**
|
|
2217
|
+
* Test environment.
|
|
2218
|
+
*
|
|
2219
|
+
* @default "node"
|
|
2220
|
+
*/
|
|
2221
|
+
readonly environment?: "node" | "jsdom" | "happy-dom" | "edge-runtime";
|
|
2222
|
+
/**
|
|
2223
|
+
* Do not fail when no tests are found.
|
|
2224
|
+
*
|
|
2225
|
+
* @default true
|
|
2226
|
+
*/
|
|
2227
|
+
readonly passWithNoTests?: boolean;
|
|
2228
|
+
/**
|
|
2229
|
+
* Enable coverage collection.
|
|
2230
|
+
*
|
|
2231
|
+
* @default true
|
|
2232
|
+
*/
|
|
2233
|
+
readonly coverageEnabled?: boolean;
|
|
2234
|
+
/**
|
|
2235
|
+
* Coverage reports directory.
|
|
2236
|
+
*
|
|
2237
|
+
* @default "coverage"
|
|
2238
|
+
*/
|
|
2239
|
+
readonly coverageDirectory?: string;
|
|
2240
|
+
/**
|
|
2241
|
+
* Coverage reporters.
|
|
2242
|
+
*
|
|
2243
|
+
* @default ["text", "lcov"]
|
|
2244
|
+
*/
|
|
2245
|
+
readonly coverageReporters?: string[];
|
|
2246
|
+
}
|
|
2247
|
+
/**
|
|
2248
|
+
* Options for the Vitest component.
|
|
2249
|
+
*/
|
|
2250
|
+
interface VitestOptions {
|
|
2251
|
+
/**
|
|
2252
|
+
* Config file path.
|
|
2253
|
+
*
|
|
2254
|
+
* @default "vitest.config.ts"
|
|
2255
|
+
*/
|
|
2256
|
+
readonly configFilePath?: string;
|
|
2257
|
+
/**
|
|
2258
|
+
* Vitest config (test block).
|
|
2259
|
+
*/
|
|
2260
|
+
readonly config?: VitestConfigOptions;
|
|
2261
|
+
/**
|
|
2262
|
+
* Vitest version (overrides VERSION.VITEST_VERSION).
|
|
2263
|
+
*/
|
|
2264
|
+
readonly vitestVersion?: string;
|
|
2265
|
+
}
|
|
2266
|
+
/**
|
|
2267
|
+
* Vitest component for Node/TypeScript projects.
|
|
2268
|
+
*
|
|
2269
|
+
* Adds Vitest as the test runner: devDeps, vitest.config.ts, and test/watch tasks.
|
|
2270
|
+
* Incompatible with Jest; use jest: false when constructing the project.
|
|
2271
|
+
*/
|
|
2272
|
+
declare class Vitest extends Component {
|
|
2273
|
+
readonly project: NodeProject;
|
|
2274
|
+
/**
|
|
2275
|
+
* Find the Vitest component on a project.
|
|
2276
|
+
*/
|
|
2277
|
+
static of(project: NodeProject): Vitest | undefined;
|
|
2278
|
+
private readonly configFilePath;
|
|
2279
|
+
private readonly include;
|
|
2280
|
+
private readonly exclude;
|
|
2281
|
+
private readonly environment;
|
|
2282
|
+
private readonly passWithNoTests;
|
|
2283
|
+
private readonly coverageEnabled;
|
|
2284
|
+
private readonly coverageDirectory;
|
|
2285
|
+
private readonly coverageReporters;
|
|
2286
|
+
private readonly version;
|
|
2287
|
+
constructor(project: NodeProject, options?: VitestOptions);
|
|
2288
|
+
preSynthesize(): void;
|
|
2289
|
+
private addTestTasks;
|
|
2290
|
+
private synthesizeConfig;
|
|
2291
|
+
private renderConfig;
|
|
2292
|
+
}
|
|
2293
|
+
|
|
2294
|
+
/**
|
|
2295
|
+
* Test runner for TypeScript projects.
|
|
2296
|
+
*/
|
|
2297
|
+
declare const TestRunner: {
|
|
2298
|
+
readonly JEST: "jest";
|
|
2299
|
+
readonly VITEST: "vitest";
|
|
2300
|
+
};
|
|
2301
|
+
type TestRunner = (typeof TestRunner)[keyof typeof TestRunner];
|
|
2302
|
+
/**
|
|
2303
|
+
* Configuration options for TypeScriptProject.
|
|
2304
|
+
*/
|
|
2305
|
+
interface TypeScriptProjectOptions extends Omit<typescript.TypeScriptProjectOptions, "defaultReleaseBranch"> {
|
|
2306
|
+
/**
|
|
2307
|
+
* Test runner to use.
|
|
2308
|
+
*
|
|
2309
|
+
* @default TestRunner.JEST
|
|
2310
|
+
*/
|
|
2311
|
+
readonly testRunner?: TestRunner;
|
|
2312
|
+
/**
|
|
2313
|
+
* Options for Vitest (only used when testRunner is 'vitest').
|
|
2314
|
+
*/
|
|
2315
|
+
readonly vitestOptions?: VitestOptions;
|
|
2316
|
+
/**
|
|
2317
|
+
* Enable the reset task that deletes all build artifacts.
|
|
2318
|
+
*
|
|
2319
|
+
* @default true
|
|
2320
|
+
*/
|
|
2321
|
+
readonly resetTask?: boolean;
|
|
2322
|
+
/**
|
|
2323
|
+
* Options for the reset task.
|
|
2324
|
+
*/
|
|
2325
|
+
readonly resetTaskOptions?: ResetTaskOptions;
|
|
2326
|
+
/**
|
|
2327
|
+
* AI agent configuration (Cursor, Claude Code rules).
|
|
2328
|
+
* Generates rule files with auto-detected bundles based on project tooling.
|
|
2329
|
+
*
|
|
2330
|
+
* - `true` or `{}`: enable with auto-detected defaults
|
|
2331
|
+
* - `AgentConfigOptions`: enable with explicit configuration
|
|
2332
|
+
* - `false` or `undefined`: disabled (default)
|
|
2333
|
+
*
|
|
2334
|
+
* Sub-projects do not inherit `AgentConfig` from their parent
|
|
2335
|
+
* `MonorepoProject`. Agent rule files are rendered only on projects that
|
|
2336
|
+
* explicitly opt in, so a monorepo's root `AgentConfig` does not duplicate
|
|
2337
|
+
* `.cursor/`, `.claude/`, or `CLAUDE.md` into each sub-project's `outdir`.
|
|
2338
|
+
*
|
|
2339
|
+
* @default false
|
|
2340
|
+
*/
|
|
2341
|
+
readonly agentConfig?: AgentConfigOptions | boolean;
|
|
2342
|
+
}
|
|
2343
|
+
declare class TypeScriptProject extends typescript.TypeScriptProject {
|
|
2344
|
+
constructor(userOptions: TypeScriptProjectOptions);
|
|
2345
|
+
}
|
|
2346
|
+
|
|
2347
|
+
/**
|
|
2348
|
+
* Configuration options for AstroProject.
|
|
2349
|
+
*/
|
|
2350
|
+
interface AstroProjectOptions extends TypeScriptProjectOptions, AstroConfigOptions {
|
|
2351
|
+
/**
|
|
2352
|
+
* Astro package version.
|
|
2353
|
+
*
|
|
2354
|
+
* @default VERSION.ASTRO_VERSION
|
|
2355
|
+
*/
|
|
2356
|
+
readonly astroVersion?: string;
|
|
2357
|
+
/**
|
|
2358
|
+
* Emit sample Astro starter files (`src/pages/index.astro`, `public/favicon.svg`).
|
|
2359
|
+
*
|
|
2360
|
+
* @default false
|
|
2361
|
+
*/
|
|
2362
|
+
readonly sampleCode?: boolean;
|
|
2363
|
+
/**
|
|
2364
|
+
* Astro tsconfig preset to extend.
|
|
2365
|
+
*
|
|
2366
|
+
* @default "astro/tsconfigs/strict"
|
|
2367
|
+
*/
|
|
2368
|
+
readonly astroTsconfigExtends?: string;
|
|
2369
|
+
}
|
|
2370
|
+
/**
|
|
2371
|
+
* Minimal Astro site scaffolded on top of {@link TypeScriptProject}.
|
|
2372
|
+
*
|
|
2373
|
+
* Replaces the `tsc` compile step with `astro check && astro build`, writes
|
|
2374
|
+
* `astro.config.mjs`, sets `"type": "module"`, and wires dev/preview tasks.
|
|
2375
|
+
*/
|
|
2376
|
+
declare class AstroProject extends TypeScriptProject {
|
|
2377
|
+
/**
|
|
2378
|
+
* Rendered Astro config component.
|
|
2379
|
+
*/
|
|
2380
|
+
readonly astroConfig: AstroConfig;
|
|
2381
|
+
constructor(userOptions: AstroProjectOptions);
|
|
2382
|
+
}
|
|
2383
|
+
|
|
2032
2384
|
/**
|
|
2033
2385
|
* Each of the below options corresponds to a task property found here:
|
|
2034
2386
|
* * https://turborepo.com/docs/reference/configuration#defining-tasks
|
|
@@ -2507,46 +2859,6 @@ interface ApproveMergeUpgradeOptions {
|
|
|
2507
2859
|
*/
|
|
2508
2860
|
declare function addApproveMergeUpgradeWorkflow(project: NodeProject, options: ApproveMergeUpgradeOptions): void;
|
|
2509
2861
|
|
|
2510
|
-
/** A single GitHub label definition for EndBug/label-sync. */
|
|
2511
|
-
interface LabelDefinition {
|
|
2512
|
-
/** Label name (e.g. "priority:high"). */
|
|
2513
|
-
readonly name: string;
|
|
2514
|
-
/** Hex color without the leading `#` (e.g. "B60205"). */
|
|
2515
|
-
readonly color: string;
|
|
2516
|
-
/** Short description shown in the GitHub UI. */
|
|
2517
|
-
readonly description: string;
|
|
2518
|
-
}
|
|
2519
|
-
/** Options for the sync-labels workflow and labels config file. */
|
|
2520
|
-
interface SyncLabelsOptions {
|
|
2521
|
-
/**
|
|
2522
|
-
* Additional labels to sync alongside the standard defaults.
|
|
2523
|
-
* Merged with DEFAULT_STATUS_LABELS, DEFAULT_PRIORITY_LABELS, and
|
|
2524
|
-
* DEFAULT_TYPE_LABELS (standard labels are always included).
|
|
2525
|
-
*/
|
|
2526
|
-
readonly labels?: ReadonlyArray<LabelDefinition>;
|
|
2527
|
-
/**
|
|
2528
|
-
* Remove labels from the repo that are not in the config file.
|
|
2529
|
-
* @default true
|
|
2530
|
-
*/
|
|
2531
|
-
readonly deleteOtherLabels?: boolean;
|
|
2532
|
-
/**
|
|
2533
|
-
* Workflow file name (display name in the Actions tab).
|
|
2534
|
-
* @default "sync-labels"
|
|
2535
|
-
*/
|
|
2536
|
-
readonly workflowName?: string;
|
|
2537
|
-
}
|
|
2538
|
-
/** Default status labels. */
|
|
2539
|
-
declare const DEFAULT_STATUS_LABELS: ReadonlyArray<LabelDefinition>;
|
|
2540
|
-
/** Default priority labels. */
|
|
2541
|
-
declare const DEFAULT_PRIORITY_LABELS: ReadonlyArray<LabelDefinition>;
|
|
2542
|
-
/** Default type labels — one per conventional commit type. */
|
|
2543
|
-
declare const DEFAULT_TYPE_LABELS: ReadonlyArray<LabelDefinition>;
|
|
2544
|
-
/**
|
|
2545
|
-
* Adds a labels config file and a GitHub Actions workflow that syncs
|
|
2546
|
-
* labels to the repository using EndBug/label-sync.
|
|
2547
|
-
*/
|
|
2548
|
-
declare function addSyncLabelsWorkflow(project: NodeProject, options: SyncLabelsOptions): void;
|
|
2549
|
-
|
|
2550
2862
|
/*******************************************************************************
|
|
2551
2863
|
*
|
|
2552
2864
|
* Monorepo Root Project.
|
|
@@ -2709,155 +3021,6 @@ declare class ProjectMetadata extends Component {
|
|
|
2709
3021
|
private autoDetectRepository;
|
|
2710
3022
|
}
|
|
2711
3023
|
|
|
2712
|
-
/**
|
|
2713
|
-
* Options for the Vitest config (test block in vitest.config).
|
|
2714
|
-
*
|
|
2715
|
-
* @see https://vitest.dev/config/
|
|
2716
|
-
*/
|
|
2717
|
-
interface VitestConfigOptions {
|
|
2718
|
-
/**
|
|
2719
|
-
* Glob patterns for test files.
|
|
2720
|
-
*
|
|
2721
|
-
* @default ["**\/*.{test,spec}.?(c|m)[jt]s?(x)"]
|
|
2722
|
-
*/
|
|
2723
|
-
readonly include?: string[];
|
|
2724
|
-
/**
|
|
2725
|
-
* Glob patterns to exclude from test files.
|
|
2726
|
-
*
|
|
2727
|
-
* @default ["**\/node_modules\/**", "**\/dist\/**", "**\/lib\/**", "**\/.?\*"]
|
|
2728
|
-
*/
|
|
2729
|
-
readonly exclude?: string[];
|
|
2730
|
-
/**
|
|
2731
|
-
* Test environment.
|
|
2732
|
-
*
|
|
2733
|
-
* @default "node"
|
|
2734
|
-
*/
|
|
2735
|
-
readonly environment?: "node" | "jsdom" | "happy-dom" | "edge-runtime";
|
|
2736
|
-
/**
|
|
2737
|
-
* Do not fail when no tests are found.
|
|
2738
|
-
*
|
|
2739
|
-
* @default true
|
|
2740
|
-
*/
|
|
2741
|
-
readonly passWithNoTests?: boolean;
|
|
2742
|
-
/**
|
|
2743
|
-
* Enable coverage collection.
|
|
2744
|
-
*
|
|
2745
|
-
* @default true
|
|
2746
|
-
*/
|
|
2747
|
-
readonly coverageEnabled?: boolean;
|
|
2748
|
-
/**
|
|
2749
|
-
* Coverage reports directory.
|
|
2750
|
-
*
|
|
2751
|
-
* @default "coverage"
|
|
2752
|
-
*/
|
|
2753
|
-
readonly coverageDirectory?: string;
|
|
2754
|
-
/**
|
|
2755
|
-
* Coverage reporters.
|
|
2756
|
-
*
|
|
2757
|
-
* @default ["text", "lcov"]
|
|
2758
|
-
*/
|
|
2759
|
-
readonly coverageReporters?: string[];
|
|
2760
|
-
}
|
|
2761
|
-
/**
|
|
2762
|
-
* Options for the Vitest component.
|
|
2763
|
-
*/
|
|
2764
|
-
interface VitestOptions {
|
|
2765
|
-
/**
|
|
2766
|
-
* Config file path.
|
|
2767
|
-
*
|
|
2768
|
-
* @default "vitest.config.ts"
|
|
2769
|
-
*/
|
|
2770
|
-
readonly configFilePath?: string;
|
|
2771
|
-
/**
|
|
2772
|
-
* Vitest config (test block).
|
|
2773
|
-
*/
|
|
2774
|
-
readonly config?: VitestConfigOptions;
|
|
2775
|
-
/**
|
|
2776
|
-
* Vitest version (overrides VERSION.VITEST_VERSION).
|
|
2777
|
-
*/
|
|
2778
|
-
readonly vitestVersion?: string;
|
|
2779
|
-
}
|
|
2780
|
-
/**
|
|
2781
|
-
* Vitest component for Node/TypeScript projects.
|
|
2782
|
-
*
|
|
2783
|
-
* Adds Vitest as the test runner: devDeps, vitest.config.ts, and test/watch tasks.
|
|
2784
|
-
* Incompatible with Jest; use jest: false when constructing the project.
|
|
2785
|
-
*/
|
|
2786
|
-
declare class Vitest extends Component {
|
|
2787
|
-
readonly project: NodeProject;
|
|
2788
|
-
/**
|
|
2789
|
-
* Find the Vitest component on a project.
|
|
2790
|
-
*/
|
|
2791
|
-
static of(project: NodeProject): Vitest | undefined;
|
|
2792
|
-
private readonly configFilePath;
|
|
2793
|
-
private readonly include;
|
|
2794
|
-
private readonly exclude;
|
|
2795
|
-
private readonly environment;
|
|
2796
|
-
private readonly passWithNoTests;
|
|
2797
|
-
private readonly coverageEnabled;
|
|
2798
|
-
private readonly coverageDirectory;
|
|
2799
|
-
private readonly coverageReporters;
|
|
2800
|
-
private readonly version;
|
|
2801
|
-
constructor(project: NodeProject, options?: VitestOptions);
|
|
2802
|
-
preSynthesize(): void;
|
|
2803
|
-
private addTestTasks;
|
|
2804
|
-
private synthesizeConfig;
|
|
2805
|
-
private renderConfig;
|
|
2806
|
-
}
|
|
2807
|
-
|
|
2808
|
-
/**
|
|
2809
|
-
* Test runner for TypeScript projects.
|
|
2810
|
-
*/
|
|
2811
|
-
declare const TestRunner: {
|
|
2812
|
-
readonly JEST: "jest";
|
|
2813
|
-
readonly VITEST: "vitest";
|
|
2814
|
-
};
|
|
2815
|
-
type TestRunner = (typeof TestRunner)[keyof typeof TestRunner];
|
|
2816
|
-
/**
|
|
2817
|
-
* Configuration options for TypeScriptProject.
|
|
2818
|
-
*/
|
|
2819
|
-
interface TypeScriptProjectOptions extends Omit<typescript.TypeScriptProjectOptions, "defaultReleaseBranch"> {
|
|
2820
|
-
/**
|
|
2821
|
-
* Test runner to use.
|
|
2822
|
-
*
|
|
2823
|
-
* @default TestRunner.JEST
|
|
2824
|
-
*/
|
|
2825
|
-
readonly testRunner?: TestRunner;
|
|
2826
|
-
/**
|
|
2827
|
-
* Options for Vitest (only used when testRunner is 'vitest').
|
|
2828
|
-
*/
|
|
2829
|
-
readonly vitestOptions?: VitestOptions;
|
|
2830
|
-
/**
|
|
2831
|
-
* Enable the reset task that deletes all build artifacts.
|
|
2832
|
-
*
|
|
2833
|
-
* @default true
|
|
2834
|
-
*/
|
|
2835
|
-
readonly resetTask?: boolean;
|
|
2836
|
-
/**
|
|
2837
|
-
* Options for the reset task.
|
|
2838
|
-
*/
|
|
2839
|
-
readonly resetTaskOptions?: ResetTaskOptions;
|
|
2840
|
-
/**
|
|
2841
|
-
* AI agent configuration (Cursor, Claude Code rules).
|
|
2842
|
-
* Generates rule files with auto-detected bundles based on project tooling.
|
|
2843
|
-
*
|
|
2844
|
-
* - `true` or `{}`: enable with auto-detected defaults
|
|
2845
|
-
* - `AgentConfigOptions`: enable with explicit configuration
|
|
2846
|
-
* - `false` or `undefined`: disabled (default)
|
|
2847
|
-
*
|
|
2848
|
-
* Sub-projects do not inherit `AgentConfig` from their parent
|
|
2849
|
-
* `MonorepoProject`. Agent rule files are rendered only on projects that
|
|
2850
|
-
* explicitly opt in, so a monorepo's root `AgentConfig` does not duplicate
|
|
2851
|
-
* `.cursor/`, `.claude/`, or `CLAUDE.md` into each sub-project's `outdir`.
|
|
2852
|
-
*
|
|
2853
|
-
* @default false
|
|
2854
|
-
*/
|
|
2855
|
-
readonly agentConfig?: AgentConfigOptions | boolean;
|
|
2856
|
-
}
|
|
2857
|
-
declare class TypeScriptProject extends typescript.TypeScriptProject {
|
|
2858
|
-
constructor(userOptions: TypeScriptProjectOptions);
|
|
2859
|
-
}
|
|
2860
|
-
|
|
2861
3024
|
/*******************************************************************************
|
|
2862
3025
|
*
|
|
2863
3026
|
* Update / customize typescript configs for a project.
|
|
@@ -2973,4 +3136,4 @@ declare const COMPLETE_JOB_ID = "complete";
|
|
|
2973
3136
|
*/
|
|
2974
3137
|
declare function addBuildCompleteJob(buildWorkflow: BuildWorkflow): void;
|
|
2975
3138
|
|
|
2976
|
-
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, type AwsAccount, AwsDeployWorkflow, AwsDeploymentConfig, AwsDeploymentTarget, type AwsDeploymentTargetOptions, type AwsLocalDeploymentConfig, type AwsOrganization, type AwsRegion, 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_TYPE_LABELS, type DeployWorkflowOptions, type DeploymentMetadata, type GitBranch, type GitHubBoardMetadata, type GitHubProjectMetadata, type GitHubSprintMetadata, type IDependencyResolver, JsiiFaker, type LabelDefinition, MCP_TRANSPORT, MERGE_METHODS, MIMIMUM_RELEASE_AGE, MINIMUM_RELEASE_AGE, type McpServerConfig, type McpTransport, type MergeMethod, MonorepoProject, type MonorepoProjectOptions, type OrganizationMetadata, PROD_DEPLOY_NAME, PnpmWorkspace, type PnpmWorkspaceOptions, ProjectMetadata, type ProjectMetadataOptions, ROOT_CI_TASK_NAME, ROOT_TURBO_TASK_NAME, type RemoteCacheOptions, type RepositoryMetadata, ResetTask, type ResetTaskOptions, type ResolvedProjectMetadata, type SlackMetadata, 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, getLatestEligibleVersion, githubWorkflowBundle, jestBundle, meetingAnalysisBundle, orchestratorBundle, pnpmBundle, projenBundle, resolveModelAlias, resolveTemplateVariables, slackBundle, turborepoBundle, typescriptBundle, vitestBundle };
|
|
3139
|
+
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, AwsDeployWorkflow, AwsDeploymentConfig, AwsDeploymentTarget, type AwsDeploymentTargetOptions, type AwsLocalDeploymentConfig, type AwsOrganization, type AwsRegion, 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_TYPE_LABELS, type DeployWorkflowOptions, type DeploymentMetadata, type GitBranch, type GitHubBoardMetadata, type GitHubProjectMetadata, type GitHubSprintMetadata, type IDependencyResolver, JsiiFaker, type LabelDefinition, MCP_TRANSPORT, MERGE_METHODS, MIMIMUM_RELEASE_AGE, MINIMUM_RELEASE_AGE, type McpServerConfig, type McpTransport, type MergeMethod, MonorepoProject, type MonorepoProjectOptions, type OrganizationMetadata, PROD_DEPLOY_NAME, PnpmWorkspace, type PnpmWorkspaceOptions, ProjectMetadata, type ProjectMetadataOptions, ROOT_CI_TASK_NAME, ROOT_TURBO_TASK_NAME, type RemoteCacheOptions, type RepositoryMetadata, ResetTask, type ResetTaskOptions, type ResolvedProjectMetadata, type SlackMetadata, 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, getLatestEligibleVersion, githubWorkflowBundle, jestBundle, meetingAnalysisBundle, orchestratorBundle, pnpmBundle, projenBundle, resolveModelAlias, resolveTemplateVariables, slackBundle, turborepoBundle, typescriptBundle, vitestBundle };
|