projen-modules 0.0.39 → 0.1.0

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.
Files changed (41) hide show
  1. package/.jsii +7195 -167
  2. package/API.md +2709 -2438
  3. package/README.md +10 -3
  4. package/lib/circleci.d.ts +1 -1
  5. package/lib/circleci.js +1 -1
  6. package/lib/components/github/codeowners.js +17 -0
  7. package/lib/components/github/pull-request-template.js +17 -0
  8. package/lib/components/index.d.ts +2 -0
  9. package/lib/components/index.js +21 -0
  10. package/lib/components/readme/elements/index.d.ts +1 -0
  11. package/lib/components/readme/elements/index.js +18 -0
  12. package/lib/components/readme/elements/section.d.ts +9 -0
  13. package/lib/components/readme/elements/section.js +19 -0
  14. package/lib/components/readme/index.d.ts +8 -0
  15. package/lib/components/readme/index.js +24 -0
  16. package/lib/index.d.ts +2 -3
  17. package/lib/index.js +3 -4
  18. package/lib/projects/index.d.ts +3 -0
  19. package/lib/projects/index.js +20 -0
  20. package/lib/projects/jsii/index.d.ts +14 -0
  21. package/lib/projects/jsii/index.js +58 -0
  22. package/lib/projects/jsii/jsii-project-options.d.ts +1106 -0
  23. package/lib/projects/jsii/jsii-project-options.js +3 -0
  24. package/lib/{npm → projects/npm}/index.d.ts +2 -7
  25. package/lib/projects/npm/index.js +63 -0
  26. package/lib/projects/npm/npm-package-options.d.ts +1000 -0
  27. package/lib/projects/npm/npm-package-options.js +3 -0
  28. package/lib/projects/python/index.d.ts +12 -0
  29. package/lib/projects/python/index.js +58 -0
  30. package/lib/projects/python/python-package-options.d.ts +391 -0
  31. package/lib/projects/python/python-package-options.js +3 -0
  32. package/package.json +2 -1
  33. package/lib/github/codeowners.js +0 -17
  34. package/lib/github/pull-request-template.js +0 -17
  35. package/lib/jsii/index.d.ts +0 -17
  36. package/lib/jsii/index.js +0 -47
  37. package/lib/npm/index.js +0 -52
  38. package/lib/python/index.d.ts +0 -29
  39. package/lib/python/index.js +0 -47
  40. /package/lib/{github → components/github}/codeowners.d.ts +0 -0
  41. /package/lib/{github → components/github}/pull-request-template.d.ts +0 -0
@@ -0,0 +1,1000 @@
1
+ import type { github, GitOptions, GroupRunnerOptions, IgnoreFileOptions, javascript, LoggerOptions, Project, ProjectType, ProjenrcJsonOptions, ReleasableCommits, release, RenovatebotOptions, typescript } from 'projen';
2
+ /**
3
+ * NpmPackageOptions
4
+ */
5
+ export interface NpmPackageOptions {
6
+ /**
7
+ * TypeScript version to use.
8
+ * NOTE: Typescript is not semantically versioned and should remain on the
9
+ * same minor, so we recommend using a `~` dependency (e.g. `~1.2.3`).
10
+ * @default "latest"
11
+ * @stability experimental
12
+ */
13
+ readonly typescriptVersion?: string;
14
+ /**
15
+ * Options for ts-jest.
16
+ * @stability experimental
17
+ */
18
+ readonly tsJestOptions?: typescript.TsJestOptions;
19
+ /**
20
+ * The name of the development tsconfig.json file.
21
+ * @default "tsconfig.dev.json"
22
+ * @stability experimental
23
+ */
24
+ readonly tsconfigDevFile?: string;
25
+ /**
26
+ * Custom tsconfig options for the development tsconfig.json file (used for testing).
27
+ * @default - use the production tsconfig options
28
+ * @stability experimental
29
+ */
30
+ readonly tsconfigDev?: javascript.TypescriptConfigOptions;
31
+ /**
32
+ * Custom TSConfig.
33
+ * @default - default options
34
+ * @stability experimental
35
+ */
36
+ readonly tsconfig?: javascript.TypescriptConfigOptions;
37
+ /**
38
+ * Jest tests directory. Tests files should be named `xxx.test.ts`.
39
+ * If this directory is under `srcdir` (e.g. `src/test`, `src/__tests__`),
40
+ * then tests are going to be compiled into `lib/` and executed as javascript.
41
+ * If the test directory is outside of `src`, then we configure jest to
42
+ * compile the code in-memory.
43
+ * @default "test"
44
+ * @stability experimental
45
+ */
46
+ readonly testdir?: string;
47
+ /**
48
+ * Typescript sources directory.
49
+ * @default "src"
50
+ * @stability experimental
51
+ */
52
+ readonly srcdir?: string;
53
+ /**
54
+ * Generate one-time sample in `src/` and `test/` if there are no files there.
55
+ * @default true
56
+ * @stability experimental
57
+ */
58
+ readonly sampleCode?: boolean;
59
+ /**
60
+ * Options for .projenrc.ts.
61
+ * @stability experimental
62
+ */
63
+ readonly projenrcTsOptions?: typescript.ProjenrcOptions;
64
+ /**
65
+ * Use TypeScript for your projenrc file (`.projenrc.ts`).
66
+ * @default false
67
+ * @stability experimental
68
+ * @pjnew true
69
+ */
70
+ readonly projenrcTs?: boolean;
71
+ /**
72
+ * Typescript artifacts output directory.
73
+ * @default "lib"
74
+ * @stability experimental
75
+ */
76
+ readonly libdir?: string;
77
+ /**
78
+ * Eslint options.
79
+ * @default - opinionated default options
80
+ * @stability experimental
81
+ */
82
+ readonly eslintOptions?: javascript.EslintOptions;
83
+ /**
84
+ * Setup eslint.
85
+ * @default true
86
+ * @stability experimental
87
+ */
88
+ readonly eslint?: boolean;
89
+ /**
90
+ * The .d.ts file that includes the type declarations for this module.
91
+ * @default - .d.ts file derived from the project's entrypoint (usually lib/index.d.ts)
92
+ * @stability experimental
93
+ */
94
+ readonly entrypointTypes?: string;
95
+ /**
96
+ * Docs directory.
97
+ * @default "docs"
98
+ * @stability experimental
99
+ */
100
+ readonly docsDirectory?: string;
101
+ /**
102
+ * Docgen by Typedoc.
103
+ * @default false
104
+ * @stability experimental
105
+ */
106
+ readonly docgen?: boolean;
107
+ /**
108
+ * Do not generate a `tsconfig.dev.json` file.
109
+ * @default false
110
+ * @stability experimental
111
+ */
112
+ readonly disableTsconfigDev?: boolean;
113
+ /**
114
+ * Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler).
115
+ * @default false
116
+ * @stability experimental
117
+ */
118
+ readonly disableTsconfig?: boolean;
119
+ /**
120
+ * Enable Node.js package cache in GitHub workflows.
121
+ * @default false
122
+ * @stability experimental
123
+ */
124
+ readonly workflowPackageCache?: boolean;
125
+ /**
126
+ * The node version used in GitHub Actions workflows.
127
+ * Always use this option if your GitHub Actions workflows require a specific to run.
128
+ * @default - `minNodeVersion` if set, otherwise `lts/*`.
129
+ * @stability experimental
130
+ */
131
+ readonly workflowNodeVersion?: string;
132
+ /**
133
+ * The git identity to use in workflows.
134
+ * @default - GitHub Actions
135
+ * @stability experimental
136
+ */
137
+ readonly workflowGitIdentity?: github.GitIdentity;
138
+ /**
139
+ * Workflow steps to use in order to bootstrap this repo.
140
+ * @default "yarn install --frozen-lockfile && yarn projen"
141
+ * @stability experimental
142
+ */
143
+ readonly workflowBootstrapSteps?: Array<github.workflows.JobStep>;
144
+ /**
145
+ * DEPRECATED: renamed to `release`.
146
+ * @default - true if not a subproject
147
+ * @deprecated see `release`.
148
+ * @stability deprecated
149
+ */
150
+ readonly releaseWorkflow?: boolean;
151
+ /**
152
+ * Automatically release to npm when new versions are introduced.
153
+ * @default false
154
+ * @stability experimental
155
+ */
156
+ readonly releaseToNpm?: boolean;
157
+ /**
158
+ * Add release management to this project.
159
+ * @default - true (false for subprojects)
160
+ * @stability experimental
161
+ */
162
+ readonly release?: boolean;
163
+ /**
164
+ * The contents of the pull request template.
165
+ * @default - default content
166
+ * @stability experimental
167
+ */
168
+ readonly pullRequestTemplateContents?: Array<string>;
169
+ /**
170
+ * Include a GitHub pull request template.
171
+ * @default true
172
+ * @stability experimental
173
+ */
174
+ readonly pullRequestTemplate?: boolean;
175
+ /**
176
+ * Version of projen to install.
177
+ * @default - Defaults to the latest version.
178
+ * @stability experimental
179
+ */
180
+ readonly projenVersion?: string;
181
+ /**
182
+ * Options for .projenrc.js.
183
+ * @default - default options
184
+ * @stability experimental
185
+ */
186
+ readonly projenrcJsOptions?: javascript.ProjenrcOptions;
187
+ /**
188
+ * Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation.
189
+ * @default - true if projenrcJson is false
190
+ * @stability experimental
191
+ */
192
+ readonly projenrcJs?: boolean;
193
+ /**
194
+ * Indicates of "projen" should be installed as a devDependency.
195
+ * @default - true if not a subproject
196
+ * @stability experimental
197
+ */
198
+ readonly projenDevDependency?: boolean;
199
+ /**
200
+ * Prettier options.
201
+ * @default - default options
202
+ * @stability experimental
203
+ */
204
+ readonly prettierOptions?: javascript.PrettierOptions;
205
+ /**
206
+ * Setup prettier.
207
+ * @default false
208
+ * @stability experimental
209
+ */
210
+ readonly prettier?: boolean;
211
+ /**
212
+ * Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`).
213
+ * @default true
214
+ * @stability experimental
215
+ */
216
+ readonly package?: boolean;
217
+ /**
218
+ * Configuration options for .npmignore file.
219
+ * @stability experimental
220
+ */
221
+ readonly npmIgnoreOptions?: IgnoreFileOptions;
222
+ /**
223
+ * Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs.
224
+ * @default true
225
+ * @stability experimental
226
+ */
227
+ readonly npmignoreEnabled?: boolean;
228
+ /**
229
+ * Additional entries to .npmignore.
230
+ * @deprecated - use `project.addPackageIgnore`
231
+ * @stability deprecated
232
+ */
233
+ readonly npmignore?: Array<string>;
234
+ /**
235
+ * Automatically update files modified during builds to pull-request branches.
236
+ * This means
237
+ * that any files synthesized by projen or e.g. test snapshots will always be up-to-date
238
+ * before a PR is merged.
239
+ *
240
+ * Implies that PR builds do not have anti-tamper checks.
241
+ * @default true
242
+ * @deprecated - Use `buildWorkflowOptions.mutableBuild`
243
+ * @stability deprecated
244
+ */
245
+ readonly mutableBuild?: boolean;
246
+ /**
247
+ * Jest options.
248
+ * @default - default options
249
+ * @stability experimental
250
+ */
251
+ readonly jestOptions?: javascript.JestOptions;
252
+ /**
253
+ * Setup jest unit tests.
254
+ * @default true
255
+ * @stability experimental
256
+ */
257
+ readonly jest?: boolean;
258
+ /**
259
+ * Additional entries to .gitignore.
260
+ * @stability experimental
261
+ */
262
+ readonly gitignore?: Array<string>;
263
+ /**
264
+ * Options for `UpgradeDependencies`.
265
+ * @default - default options
266
+ * @stability experimental
267
+ */
268
+ readonly depsUpgradeOptions?: javascript.UpgradeDependenciesOptions;
269
+ /**
270
+ * Use tasks and github workflows to handle dependency upgrades.
271
+ * Cannot be used in conjunction with `dependabot`.
272
+ * @default true
273
+ * @stability experimental
274
+ */
275
+ readonly depsUpgrade?: boolean;
276
+ /**
277
+ * Options for dependabot.
278
+ * @default - default options
279
+ * @stability experimental
280
+ */
281
+ readonly dependabotOptions?: github.DependabotOptions;
282
+ /**
283
+ * Use dependabot to handle dependency upgrades.
284
+ * Cannot be used in conjunction with `depsUpgrade`.
285
+ * @default false
286
+ * @stability experimental
287
+ */
288
+ readonly dependabot?: boolean;
289
+ /**
290
+ * The copyright years to put in the LICENSE file.
291
+ * @default - current year
292
+ * @stability experimental
293
+ */
294
+ readonly copyrightPeriod?: string;
295
+ /**
296
+ * License copyright owner.
297
+ * @default - defaults to the value of authorName or "" if `authorName` is undefined.
298
+ * @stability experimental
299
+ */
300
+ readonly copyrightOwner?: string;
301
+ /**
302
+ * Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories.
303
+ * @default - if this option is not specified, only public repositories are supported
304
+ * @stability experimental
305
+ */
306
+ readonly codeCovTokenSecret?: string;
307
+ /**
308
+ * Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v4 A secret is required for private repos. Configured with `@codeCovTokenSecret`.
309
+ * @default false
310
+ * @stability experimental
311
+ */
312
+ readonly codeCov?: boolean;
313
+ /**
314
+ * Configure which licenses should be deemed acceptable for use by dependencies.
315
+ * This setting will cause the build to fail, if any prohibited or not allowed licenses ares encountered.
316
+ * @default - no license checks are run during the build and all licenses will be accepted
317
+ * @stability experimental
318
+ */
319
+ readonly checkLicenses?: javascript.LicenseCheckerOptions;
320
+ /**
321
+ * Options for `Bundler`.
322
+ * @stability experimental
323
+ */
324
+ readonly bundlerOptions?: javascript.BundlerOptions;
325
+ /**
326
+ * Build workflow triggers.
327
+ * @default "{ pullRequest: {}, workflowDispatch: {} }"
328
+ * @deprecated - Use `buildWorkflowOptions.workflowTriggers`
329
+ * @stability deprecated
330
+ */
331
+ readonly buildWorkflowTriggers?: github.workflows.Triggers;
332
+ /**
333
+ * Options for PR build workflow.
334
+ * @stability experimental
335
+ */
336
+ readonly buildWorkflowOptions?: javascript.BuildWorkflowOptions;
337
+ /**
338
+ * Define a GitHub workflow for building PRs.
339
+ * @default - true if not a subproject
340
+ * @stability experimental
341
+ */
342
+ readonly buildWorkflow?: boolean;
343
+ /**
344
+ * Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued).
345
+ * Throw if set to true but `autoApproveOptions` are not defined.
346
+ * @default - true
347
+ * @stability experimental
348
+ */
349
+ readonly autoApproveUpgrades?: boolean;
350
+ /**
351
+ * A directory which will contain build artifacts.
352
+ * @default "dist"
353
+ * @stability experimental
354
+ */
355
+ readonly artifactsDirectory?: string;
356
+ /**
357
+ * The name of the main release branch.
358
+ * @default "main"
359
+ * @stability experimental
360
+ */
361
+ readonly defaultReleaseBranch?: string;
362
+ /**
363
+ * Github Runner Group selection options.
364
+ * @stability experimental
365
+ * @description Defines a target Runner Group by name and/or labels
366
+ * @throws {Error} if both `runsOn` and `runsOnGroup` are specified
367
+ */
368
+ readonly workflowRunsOnGroup?: GroupRunnerOptions;
369
+ /**
370
+ * Github Runner selection labels.
371
+ * @default ["ubuntu-latest"]
372
+ * @stability experimental
373
+ * @description Defines a target Runner by labels
374
+ * @throws {Error} if both `runsOn` and `runsOnGroup` are specified
375
+ */
376
+ readonly workflowRunsOn?: Array<string>;
377
+ /**
378
+ * Container image to use for GitHub workflows.
379
+ * @default - default image
380
+ * @stability experimental
381
+ */
382
+ readonly workflowContainerImage?: string;
383
+ /**
384
+ * Custom configuration used when creating changelog with commit-and-tag-version package.
385
+ * Given values either append to default configuration or overwrite values in it.
386
+ * @default - standard configuration applicable for GitHub repositories
387
+ * @stability experimental
388
+ */
389
+ readonly versionrcOptions?: Record<string, any>;
390
+ /**
391
+ * A set of workflow steps to execute in order to setup the workflow container.
392
+ * @stability experimental
393
+ */
394
+ readonly releaseWorkflowSetupSteps?: Array<github.workflows.JobStep>;
395
+ /**
396
+ * The name of the default release workflow.
397
+ * @default "release"
398
+ * @stability experimental
399
+ */
400
+ readonly releaseWorkflowName?: string;
401
+ /**
402
+ * The release trigger to use.
403
+ * @default - Continuous releases (`ReleaseTrigger.continuous()`)
404
+ * @stability experimental
405
+ */
406
+ readonly releaseTrigger?: release.ReleaseTrigger;
407
+ /**
408
+ * Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers.
409
+ * Note: this prefix is used to detect the latest tagged version
410
+ * when bumping, so if you change this on a project with an existing version
411
+ * history, you may need to manually tag your latest release
412
+ * with the new prefix.
413
+ * @default "v"
414
+ * @stability experimental
415
+ */
416
+ readonly releaseTagPrefix?: string;
417
+ /**
418
+ * CRON schedule to trigger new releases.
419
+ * @default - no scheduled releases
420
+ * @deprecated Use `releaseTrigger: ReleaseTrigger.scheduled()` instead
421
+ * @stability deprecated
422
+ */
423
+ readonly releaseSchedule?: string;
424
+ /**
425
+ * The label to apply to issues indicating publish failures.
426
+ * Only applies if `releaseFailureIssue` is true.
427
+ * @default "failed-release"
428
+ * @stability experimental
429
+ */
430
+ readonly releaseFailureIssueLabel?: string;
431
+ /**
432
+ * Create a github issue on every failed publishing task.
433
+ * @default false
434
+ * @stability experimental
435
+ */
436
+ readonly releaseFailureIssue?: boolean;
437
+ /**
438
+ * Automatically release new versions every commit to one of branches in `releaseBranches`.
439
+ * @default true
440
+ * @deprecated Use `releaseTrigger: ReleaseTrigger.continuous()` instead
441
+ * @stability deprecated
442
+ */
443
+ readonly releaseEveryCommit?: boolean;
444
+ /**
445
+ * Defines additional release branches.
446
+ * A workflow will be created for each
447
+ * release branch which will publish releases from commits in this branch.
448
+ * Each release branch _must_ be assigned a major version number which is used
449
+ * to enforce that versions published from that branch always use that major
450
+ * version. If multiple branches are used, the `majorVersion` field must also
451
+ * be provided for the default branch.
452
+ * @default - no additional branches are used for release. you can use
453
+ `addBranch()` to add additional branches.
454
+ * @stability experimental
455
+ */
456
+ readonly releaseBranches?: Record<string, release.BranchOptions>;
457
+ /**
458
+ * Find commits that should be considered releasable Used to decide if a release is required.
459
+ * @default ReleasableCommits.everyCommit()
460
+ * @stability experimental
461
+ */
462
+ readonly releasableCommits?: ReleasableCommits;
463
+ /**
464
+ * Define publishing tasks that can be executed manually as well as workflows.
465
+ * Normally, publishing only happens within automated workflows. Enable this
466
+ * in order to create a publishing task for each publishing activity.
467
+ * @default false
468
+ * @stability experimental
469
+ */
470
+ readonly publishTasks?: boolean;
471
+ /**
472
+ * Instead of actually publishing to package managers, just print the publishing command.
473
+ * @default false
474
+ * @stability experimental
475
+ */
476
+ readonly publishDryRun?: boolean;
477
+ /**
478
+ * Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre").
479
+ * @default - normal semantic versions
480
+ * @stability experimental
481
+ */
482
+ readonly prerelease?: string;
483
+ /**
484
+ * Steps to execute after build as part of the release workflow.
485
+ * @default []
486
+ * @stability experimental
487
+ */
488
+ readonly postBuildSteps?: Array<github.workflows.JobStep>;
489
+ /**
490
+ * The npmDistTag to use when publishing from the default branch.
491
+ * To set the npm dist-tag for release branches, set the `npmDistTag` property
492
+ * for each branch.
493
+ * @default "latest"
494
+ * @stability experimental
495
+ */
496
+ readonly npmDistTag?: string;
497
+ /**
498
+ * Minimal Major version to release.
499
+ * This can be useful to set to 1, as breaking changes before the 1.x major
500
+ * release are not incrementing the major version number.
501
+ *
502
+ * Can not be set together with `majorVersion`.
503
+ * @default - No minimum version is being enforced
504
+ * @stability experimental
505
+ */
506
+ readonly minMajorVersion?: number;
507
+ /**
508
+ * Major version to release from the default branch.
509
+ * If this is specified, we bump the latest version of this major version line.
510
+ * If not specified, we bump the global latest version.
511
+ * @default - Major version is not enforced.
512
+ * @stability experimental
513
+ */
514
+ readonly majorVersion?: number;
515
+ /**
516
+ * Version requirement of `publib` which is used to publish modules to npm.
517
+ * @default "latest"
518
+ * @stability experimental
519
+ */
520
+ readonly jsiiReleaseVersion?: string;
521
+ /**
522
+ * Options for Yarn Berry.
523
+ * @default - Yarn Berry v4 with all default options
524
+ * @stability experimental
525
+ */
526
+ readonly yarnBerryOptions?: javascript.YarnBerryOptions;
527
+ /**
528
+ * Package's Stability.
529
+ * @stability experimental
530
+ */
531
+ readonly stability?: string;
532
+ /**
533
+ * npm scripts to include.
534
+ * If a script has the same name as a standard script,
535
+ * the standard script will be overwritten.
536
+ * Also adds the script as a task.
537
+ * @default {}
538
+ * @deprecated use `project.addTask()` or `package.setScript()`
539
+ * @stability deprecated
540
+ */
541
+ readonly scripts?: Record<string, string>;
542
+ /**
543
+ * Options for privately hosted scoped packages.
544
+ * @default - fetch all scoped packages from the public npm registry
545
+ * @stability experimental
546
+ */
547
+ readonly scopedPackagesOptions?: Array<javascript.ScopedPackagesOptions>;
548
+ /**
549
+ * If the package.json for your package is not in the root directory (for example if it is part of a monorepo), you can specify the directory in which it lives.
550
+ * @stability experimental
551
+ */
552
+ readonly repositoryDirectory?: string;
553
+ /**
554
+ * The repository is the location where the actual code for your package lives.
555
+ * See https://classic.yarnpkg.com/en/docs/package-json/#toc-repository
556
+ * @stability experimental
557
+ */
558
+ readonly repository?: string;
559
+ /**
560
+ * The version of PNPM to use if using PNPM as a package manager.
561
+ * @default "7"
562
+ * @stability experimental
563
+ */
564
+ readonly pnpmVersion?: string;
565
+ /**
566
+ * Peer dependencies for this module.
567
+ * Dependencies listed here are required to
568
+ * be installed (and satisfied) by the _consumer_ of this library. Using peer
569
+ * dependencies allows you to ensure that only a single module of a certain
570
+ * library exists in the `node_modules` tree of your consumers.
571
+ *
572
+ * Note that prior to npm@7, peer dependencies are _not_ automatically
573
+ * installed, which means that adding peer dependencies to a library will be a
574
+ * breaking change for your customers.
575
+ *
576
+ * Unless `peerDependencyOptions.pinnedDevDependency` is disabled (it is
577
+ * enabled by default), projen will automatically add a dev dependency with a
578
+ * pinned version for each peer dependency. This will ensure that you build &
579
+ * test your module against the lowest peer version required.
580
+ * @default []
581
+ * @stability experimental
582
+ */
583
+ readonly peerDeps?: Array<string>;
584
+ /**
585
+ * Options for `peerDeps`.
586
+ * @stability experimental
587
+ */
588
+ readonly peerDependencyOptions?: javascript.PeerDependencyOptions;
589
+ /**
590
+ * The "name" in package.json.
591
+ * @default - defaults to project name
592
+ * @stability experimental
593
+ * @featured true
594
+ */
595
+ readonly packageName?: string;
596
+ /**
597
+ * The Node Package Manager used to execute scripts.
598
+ * @default NodePackageManager.YARN_CLASSIC
599
+ * @stability experimental
600
+ */
601
+ readonly packageManager?: javascript.NodePackageManager;
602
+ /**
603
+ * GitHub secret which contains the NPM token to use when publishing packages.
604
+ * @default "NPM_TOKEN"
605
+ * @stability experimental
606
+ */
607
+ readonly npmTokenSecret?: string;
608
+ /**
609
+ * The base URL of the npm package registry.
610
+ * Must be a URL (e.g. start with "https://" or "http://")
611
+ * @default "https://registry.npmjs.org"
612
+ * @stability experimental
613
+ */
614
+ readonly npmRegistryUrl?: string;
615
+ /**
616
+ * The host name of the npm registry to publish to.
617
+ * Cannot be set together with `npmRegistryUrl`.
618
+ * @deprecated use `npmRegistryUrl` instead
619
+ * @stability deprecated
620
+ */
621
+ readonly npmRegistry?: string;
622
+ /**
623
+ * Should provenance statements be generated when the package is published.
624
+ * A supported package manager is required to publish a package with npm provenance statements and
625
+ * you will need to use a supported CI/CD provider.
626
+ *
627
+ * Note that the projen `Release` and `Publisher` components are using `publib` to publish packages,
628
+ * which is using npm internally and supports provenance statements independently of the package manager used.
629
+ * @default - true for public packages, false otherwise
630
+ * @stability experimental
631
+ */
632
+ readonly npmProvenance?: boolean;
633
+ /**
634
+ * Access level of the npm package.
635
+ * @default - for scoped packages (e.g. `foo@bar`), the default is
636
+ `NpmAccess.RESTRICTED`, for non-scoped packages, the default is
637
+ `NpmAccess.PUBLIC`.
638
+ * @stability experimental
639
+ */
640
+ readonly npmAccess?: javascript.NpmAccess;
641
+ /**
642
+ * The minimum node version required by this package to function. Most projects should not use this option.
643
+ * The value indicates that the package is incompatible with any older versions of node.
644
+ * This requirement is enforced via the engines field.
645
+ *
646
+ * You will normally not need to set this option, even if your package is incompatible with EOL versions of node.
647
+ * Consider this option only if your package depends on a specific feature, that is not available in other LTS versions.
648
+ * Setting this option has very high impact on the consumers of your package,
649
+ * as package managers will actively prevent usage with node versions you have marked as incompatible.
650
+ *
651
+ * To change the node version of your CI/CD workflows, use `workflowNodeVersion`.
652
+ * @default - no minimum version is enforced
653
+ * @stability experimental
654
+ */
655
+ readonly minNodeVersion?: string;
656
+ /**
657
+ * The maximum node version supported by this package. Most projects should not use this option.
658
+ * The value indicates that the package is incompatible with any newer versions of node.
659
+ * This requirement is enforced via the engines field.
660
+ *
661
+ * You will normally not need to set this option.
662
+ * Consider this option only if your package is known to not function with newer versions of node.
663
+ * @default - no maximum version is enforced
664
+ * @stability experimental
665
+ */
666
+ readonly maxNodeVersion?: string;
667
+ /**
668
+ * Indicates if a license should be added.
669
+ * @default true
670
+ * @stability experimental
671
+ */
672
+ readonly licensed?: boolean;
673
+ /**
674
+ * License's SPDX identifier.
675
+ * See https://github.com/projen/projen/tree/main/license-text for a list of supported licenses.
676
+ * Use the `licensed` option if you want to no license to be specified.
677
+ * @default "Apache-2.0"
678
+ * @stability experimental
679
+ */
680
+ readonly license?: string;
681
+ /**
682
+ * Keywords to include in `package.json`.
683
+ * @stability experimental
684
+ */
685
+ readonly keywords?: Array<string>;
686
+ /**
687
+ * Package's Homepage / Website.
688
+ * @stability experimental
689
+ */
690
+ readonly homepage?: string;
691
+ /**
692
+ * Module entrypoint (`main` in `package.json`).
693
+ * Set to an empty string to not include `main` in your package.json
694
+ * @default "lib/index.js"
695
+ * @stability experimental
696
+ */
697
+ readonly entrypoint?: string;
698
+ /**
699
+ * Build dependencies for this module.
700
+ * These dependencies will only be
701
+ * available in your build environment but will not be fetched when this
702
+ * module is consumed.
703
+ *
704
+ * The recommendation is to only specify the module name here (e.g.
705
+ * `express`). This will behave similar to `yarn add` or `npm install` in the
706
+ * sense that it will add the module as a dependency to your `package.json`
707
+ * file with the latest version (`^`). You can specify semver requirements in
708
+ * the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and
709
+ * this will be what you `package.json` will eventually include.
710
+ * @default []
711
+ * @stability experimental
712
+ * @featured true
713
+ */
714
+ readonly devDeps?: Array<string>;
715
+ /**
716
+ * The description is just a string that helps people understand the purpose of the package.
717
+ * It can be used when searching for packages in a package manager as well.
718
+ * See https://classic.yarnpkg.com/en/docs/package-json/#toc-description
719
+ * @stability experimental
720
+ * @featured true
721
+ */
722
+ readonly description?: string;
723
+ /**
724
+ * Runtime dependencies of this module.
725
+ * The recommendation is to only specify the module name here (e.g.
726
+ * `express`). This will behave similar to `yarn add` or `npm install` in the
727
+ * sense that it will add the module as a dependency to your `package.json`
728
+ * file with the latest version (`^`). You can specify semver requirements in
729
+ * the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and
730
+ * this will be what you `package.json` will eventually include.
731
+ * @default []
732
+ * @stability experimental
733
+ * @featured true
734
+ */
735
+ readonly deps?: Array<string>;
736
+ /**
737
+ * Options for npm packages using AWS CodeArtifact.
738
+ * This is required if publishing packages to, or installing scoped packages from AWS CodeArtifact
739
+ * @default - undefined
740
+ * @stability experimental
741
+ */
742
+ readonly codeArtifactOptions?: javascript.CodeArtifactOptions;
743
+ /**
744
+ * List of dependencies to bundle into this module.
745
+ * These modules will be
746
+ * added both to the `dependencies` section and `bundledDependencies` section of
747
+ * your `package.json`.
748
+ *
749
+ * The recommendation is to only specify the module name here (e.g.
750
+ * `express`). This will behave similar to `yarn add` or `npm install` in the
751
+ * sense that it will add the module as a dependency to your `package.json`
752
+ * file with the latest version (`^`). You can specify semver requirements in
753
+ * the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and
754
+ * this will be what you `package.json` will eventually include.
755
+ * @stability experimental
756
+ */
757
+ readonly bundledDeps?: Array<string>;
758
+ /**
759
+ * The url to your project's issue tracker.
760
+ * @stability experimental
761
+ */
762
+ readonly bugsUrl?: string;
763
+ /**
764
+ * The email address to which issues should be reported.
765
+ * @stability experimental
766
+ */
767
+ readonly bugsEmail?: string;
768
+ /**
769
+ * Binary programs vended with your module.
770
+ * You can use this option to add/customize how binaries are represented in
771
+ * your `package.json`, but unless `autoDetectBin` is `false`, every
772
+ * executable file under `bin` will automatically be added to this section.
773
+ * @stability experimental
774
+ */
775
+ readonly bin?: Record<string, string>;
776
+ /**
777
+ * Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section.
778
+ * @default true
779
+ * @stability experimental
780
+ */
781
+ readonly autoDetectBin?: boolean;
782
+ /**
783
+ * Author's URL / Website.
784
+ * @stability experimental
785
+ */
786
+ readonly authorUrl?: string;
787
+ /**
788
+ * Is the author an organization.
789
+ * @stability experimental
790
+ */
791
+ readonly authorOrganization?: boolean;
792
+ /**
793
+ * Author's name.
794
+ * @stability experimental
795
+ */
796
+ readonly authorName?: string;
797
+ /**
798
+ * Author's e-mail.
799
+ * @stability experimental
800
+ */
801
+ readonly authorEmail?: string;
802
+ /**
803
+ * Allow the project to include `peerDependencies` and `bundledDependencies`.
804
+ * This is normally only allowed for libraries. For apps, there's no meaning
805
+ * for specifying these.
806
+ * @default true
807
+ * @stability experimental
808
+ */
809
+ readonly allowLibraryDependencies?: boolean;
810
+ /**
811
+ * Enable VSCode integration.
812
+ * Enabled by default for root projects. Disabled for non-root projects.
813
+ * @default true
814
+ * @stability experimental
815
+ */
816
+ readonly vscode?: boolean;
817
+ /**
818
+ * Auto-close stale issues and pull requests.
819
+ * To disable set `stale` to `false`.
820
+ * @default - see defaults in `StaleOptions`
821
+ * @stability experimental
822
+ */
823
+ readonly staleOptions?: github.StaleOptions;
824
+ /**
825
+ * Auto-close of stale issues and pull request.
826
+ * See `staleOptions` for options.
827
+ * @default false
828
+ * @stability experimental
829
+ */
830
+ readonly stale?: boolean;
831
+ /**
832
+ * The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows.
833
+ * This token needs to have the `repo`, `workflows`
834
+ * and `packages` scope.
835
+ * @default "PROJEN_GITHUB_TOKEN"
836
+ * @deprecated use `projenCredentials`
837
+ * @stability deprecated
838
+ */
839
+ readonly projenTokenSecret?: string;
840
+ /**
841
+ * Choose a method of providing GitHub API access for projen workflows.
842
+ * @default - use a personal access token named PROJEN_GITHUB_TOKEN
843
+ * @stability experimental
844
+ */
845
+ readonly projenCredentials?: github.GithubCredentials;
846
+ /**
847
+ * Which type of project this is (library/app).
848
+ * @default ProjectType.UNKNOWN
849
+ * @deprecated no longer supported at the base project level
850
+ * @stability deprecated
851
+ */
852
+ readonly projectType?: ProjectType;
853
+ /**
854
+ * Options for mergify.
855
+ * @default - default options
856
+ * @deprecated use `githubOptions.mergifyOptions` instead
857
+ * @stability deprecated
858
+ */
859
+ readonly mergifyOptions?: github.MergifyOptions;
860
+ /**
861
+ * Whether mergify should be enabled on this repository or not.
862
+ * @default true
863
+ * @deprecated use `githubOptions.mergify` instead
864
+ * @stability deprecated
865
+ */
866
+ readonly mergify?: boolean;
867
+ /**
868
+ * Add a Gitpod development environment.
869
+ * @default false
870
+ * @stability experimental
871
+ */
872
+ readonly gitpod?: boolean;
873
+ /**
874
+ * Options for GitHub integration.
875
+ * @default - see GitHubOptions
876
+ * @stability experimental
877
+ */
878
+ readonly githubOptions?: github.GitHubOptions;
879
+ /**
880
+ * Enable GitHub integration.
881
+ * Enabled by default for root projects. Disabled for non-root projects.
882
+ * @default true
883
+ * @stability experimental
884
+ */
885
+ readonly github?: boolean;
886
+ /**
887
+ * Add a VSCode development environment (used for GitHub Codespaces).
888
+ * @default false
889
+ * @stability experimental
890
+ */
891
+ readonly devContainer?: boolean;
892
+ /**
893
+ * Add a `clobber` task which resets the repo to origin.
894
+ * @default - true, but false for subprojects
895
+ * @stability experimental
896
+ */
897
+ readonly clobber?: boolean;
898
+ /**
899
+ * Configure options for automatic merging on GitHub.
900
+ * Has no effect if
901
+ * `github.mergify` or `autoMerge` is set to false.
902
+ * @default - see defaults in `AutoMergeOptions`
903
+ * @stability experimental
904
+ */
905
+ readonly autoMergeOptions?: github.AutoMergeOptions;
906
+ /**
907
+ * Enable automatic merging on GitHub.
908
+ * Has no effect if `github.mergify`
909
+ * is set to false.
910
+ * @default true
911
+ * @stability experimental
912
+ */
913
+ readonly autoMerge?: boolean;
914
+ /**
915
+ * Enable and configure the 'auto approve' workflow.
916
+ * @default - auto approve is disabled
917
+ * @stability experimental
918
+ */
919
+ readonly autoApproveOptions?: github.AutoApproveOptions;
920
+ /**
921
+ * Options for renovatebot.
922
+ * @default - default options
923
+ * @stability experimental
924
+ */
925
+ readonly renovatebotOptions?: RenovatebotOptions;
926
+ /**
927
+ * Use renovatebot to handle dependency upgrades.
928
+ * @default false
929
+ * @stability experimental
930
+ */
931
+ readonly renovatebot?: boolean;
932
+ /**
933
+ * Options for .projenrc.json.
934
+ * @default - default options
935
+ * @stability experimental
936
+ */
937
+ readonly projenrcJsonOptions?: ProjenrcJsonOptions;
938
+ /**
939
+ * Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation.
940
+ * @default false
941
+ * @stability experimental
942
+ */
943
+ readonly projenrcJson?: boolean;
944
+ /**
945
+ * The shell command to use in order to run the projen CLI.
946
+ * Can be used to customize in special environments.
947
+ * @default "npx projen"
948
+ * @stability experimental
949
+ */
950
+ readonly projenCommand?: string;
951
+ /**
952
+ * The parent project, if this project is part of a bigger project.
953
+ * @stability experimental
954
+ */
955
+ readonly parent?: Project;
956
+ /**
957
+ * The root directory of the project.
958
+ * Relative to this directory, all files are synthesized.
959
+ *
960
+ * If this project has a parent, this directory is relative to the parent
961
+ * directory and it cannot be the same as the parent or any of it's other
962
+ * subprojects.
963
+ * @default "."
964
+ * @stability experimental
965
+ */
966
+ readonly outdir?: string;
967
+ /**
968
+ * Configure logging options such as verbosity.
969
+ * @default {}
970
+ * @stability experimental
971
+ */
972
+ readonly logging?: LoggerOptions;
973
+ /**
974
+ * Configuration options for git.
975
+ * @stability experimental
976
+ */
977
+ readonly gitOptions?: GitOptions;
978
+ /**
979
+ * Configuration options for .gitignore file.
980
+ * @stability experimental
981
+ */
982
+ readonly gitIgnoreOptions?: IgnoreFileOptions;
983
+ /**
984
+ * Whether to commit the managed files by default.
985
+ * @default true
986
+ * @stability experimental
987
+ */
988
+ readonly commitGenerated?: boolean;
989
+ /**
990
+ * This is the name of your project.
991
+ * @default $BASEDIR
992
+ * @stability experimental
993
+ * @featured true
994
+ */
995
+ readonly name: string;
996
+ /**
997
+ * List of teams used to generate the CODEOWNERS file
998
+ */
999
+ readonly codeOwners: Array<string>;
1000
+ }