mrpj 0.0.1

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