diff --git a/.eslintrc.json b/.eslintrc.json index fb2b2de6..b017cf4f 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -7,8 +7,7 @@ "root": true, "plugins": [ "@typescript-eslint", - "import", - "prettier" + "import" ], "parser": "@typescript-eslint/parser", "parserOptions": { @@ -18,7 +17,6 @@ }, "extends": [ "plugin:import/typescript", - "prettier", "plugin:prettier/recommended" ], "settings": { @@ -46,9 +44,6 @@ "!projenrc/**/*.ts" ], "rules": { - "prettier/prettier": [ - "error" - ], "@typescript-eslint/no-require-imports": [ "error" ], diff --git a/.gitattributes b/.gitattributes index ac39f453..7914a649 100644 --- a/.gitattributes +++ b/.gitattributes @@ -17,7 +17,6 @@ /.gitignore linguist-generated /.mergify.yml linguist-generated /.npmignore linguist-generated -/.npmrc linguist-generated /.nvmrc linguist-generated /.prettierignore linguist-generated /.prettierrc.json linguist-generated diff --git a/.gitignore b/.gitignore index 6124d215..81528d20 100644 --- a/.gitignore +++ b/.gitignore @@ -46,7 +46,6 @@ junit.xml !/.github/pull_request_template.md !/.prettierignore !/.prettierrc.json -!/.npmrc !/test/ !/tsconfig.dev.json !/src/ diff --git a/.projen/deps.json b/.projen/deps.json index 61f517f6..76a56eac 100644 --- a/.projen/deps.json +++ b/.projen/deps.json @@ -24,11 +24,12 @@ "type": "build" }, { - "name": "eslint-config-prettier", + "name": "constructs", + "version": "^10.0.0", "type": "build" }, { - "name": "eslint-import-resolver-node", + "name": "eslint-config-prettier", "type": "build" }, { @@ -79,11 +80,6 @@ "version": "5.0.x", "type": "build" }, - { - "name": "npm-check-updates", - "version": "^16", - "type": "build" - }, { "name": "prettier", "type": "build" diff --git a/.projen/files.json b/.projen/files.json index 2ca254ff..359b7bd5 100644 --- a/.projen/files.json +++ b/.projen/files.json @@ -15,7 +15,6 @@ ".github/workflows/update-projen-main.yml", ".gitignore", ".mergify.yml", - ".npmrc", ".nvmrc", ".prettierignore", ".prettierrc.json", diff --git a/.projen/tasks.json b/.projen/tasks.json index 9ddc9b97..28dbb808 100644 --- a/.projen/tasks.json +++ b/.projen/tasks.json @@ -262,10 +262,7 @@ }, "steps": [ { - "exec": "yarn upgrade npm-check-updates" - }, - { - "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=projen,@time-loop/clickup-projen" + "exec": "npx npm-check-updates@16 --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=projen,@time-loop/clickup-projen" }, { "exec": "yarn install --check-files" diff --git a/API.md b/API.md index 3e2f30f1..e4d3b4a2 100644 --- a/API.md +++ b/API.md @@ -284,12345 +284,12516 @@ Here is an example: # API Reference +## Constructs -## Structs +### ClickUpCdkConstructLibrary -### CDKDiffOptionsConfig +ClickUp standardized CDK Construct Library. -#### Initializer +Note: disgusting hack to achieve "defaults" in the constructor +leverages "empty string is falsy" behavior of TS. +I am not proud of this. +It's better than cloning the interface since projen revs pretty fast. +Marginally. + +#### Initializers ```typescript -import { cdkDiffWorkflow } from '@time-loop/clickup-projen' +import { clickupCdk } from '@time-loop/clickup-projen' -const cDKDiffOptionsConfig: cdkDiffWorkflow.CDKDiffOptionsConfig = { ... } +new clickupCdk.ClickUpCdkConstructLibrary(options: ClickUpCdkConstructLibraryOptions) ``` -#### Properties - | **Name** | **Type** | **Description** | | --- | --- | --- | -| nodeVersion | string | Specify a nodeVersion. | -| envsToDiff | @time-loop/clickup-projen.cdkDiffWorkflow.EnvToDiff \| @time-loop/clickup-projen.cdkDiffWorkflow.ExplicitStacksEnvToDiff[] | Collection of environments to cdk diff. | -| createOidcRoleStack | boolean | Detrmines if the OIDC role stack should be created. | +| options | @time-loop/clickup-projen.clickupCdk.ClickUpCdkConstructLibraryOptions | *No description.* | --- -##### `nodeVersion`Optional +##### `options`Required -```typescript -public readonly nodeVersion: string; -``` +- *Type:* @time-loop/clickup-projen.clickupCdk.ClickUpCdkConstructLibraryOptions -- *Type:* string -- *Default:* should be parameters.PROJEN_NODE_VERSION +--- -Specify a nodeVersion. +#### Methods + +| **Name** | **Description** | +| --- | --- | +| toString | Returns a string representation of this construct. | +| addExcludeFromCleanup | Exclude the matching files from pre-synth cleanup. | +| addGitIgnore | Adds a .gitignore pattern. | +| addPackageIgnore | Exclude these files from the bundled package. | +| addTask | Adds a new task to this project. | +| addTip | Prints a "tip" message during synthesis. | +| annotateGenerated | Marks the provided file(s) as being generated. | +| postSynthesize | Called after all components are synthesized. | +| preSynthesize | Called before all components are synthesized. | +| removeTask | Removes a task from a project. | +| runTaskCommand | Returns the shell command to execute in order to run a task. | +| synth | Synthesize all project files into `outdir`. | +| tryFindFile | Finds a file at the specified relative path within this project and all its subprojects. | +| tryFindJsonFile | Finds a json file by name. | +| tryFindObjectFile | Finds an object file (like JsonFile, YamlFile, etc.) by name. | +| tryRemoveFile | Finds a file at the specified relative path within this project and removes it. | +| addBins | *No description.* | +| addBundledDeps | Defines bundled dependencies. | +| addCompileCommand | DEPRECATED. | +| addDeps | Defines normal dependencies. | +| addDevDeps | Defines development/test dependencies. | +| addFields | Directly set fields in `package.json`. | +| addKeywords | Adds keywords to package.json (deduplicated). | +| addPeerDeps | Defines peer dependencies. | +| addScripts | Replaces the contents of multiple npm package.json scripts. | +| addTestCommand | DEPRECATED. | +| hasScript | Indicates if a script by the name name is defined. | +| removeScript | Removes the npm script (always successful). | +| renderWorkflowSetup | Returns the set of workflow steps which should be executed to bootstrap a workflow. | +| setScript | Replaces the contents of an npm package.json script. | +| addCdkDependencies | Adds dependencies to AWS CDK modules. | +| addCdkTestDependencies | Adds AWS CDK modules as dev dependencies. | --- -##### `envsToDiff`Required +##### `toString` ```typescript -public readonly envsToDiff: EnvToDiff | ExplicitStacksEnvToDiff[]; +public toString(): string ``` -- *Type:* @time-loop/clickup-projen.cdkDiffWorkflow.EnvToDiff | @time-loop/clickup-projen.cdkDiffWorkflow.ExplicitStacksEnvToDiff[] +Returns a string representation of this construct. -Collection of environments to cdk diff. +##### `addExcludeFromCleanup` + +```typescript +public addExcludeFromCleanup(globs: string): void +``` + +Exclude the matching files from pre-synth cleanup. + +Can be used when, for example, some +source files include the projen marker and we don't want them to be erased during synth. + +###### `globs`Required + +- *Type:* string + +The glob patterns to match. --- -##### `createOidcRoleStack`Optional +##### `addGitIgnore` ```typescript -public readonly createOidcRoleStack: boolean; +public addGitIgnore(pattern: string): void ``` -- *Type:* boolean +Adds a .gitignore pattern. -Detrmines if the OIDC role stack should be created. +###### `pattern`Required ---- +- *Type:* string -### ClickUpCdkCommonOptions +The glob pattern to ignore. -#### Initializer +--- -```typescript -import { clickupCdk } from '@time-loop/clickup-projen' +##### `addPackageIgnore` -const clickUpCdkCommonOptions: clickupCdk.ClickUpCdkCommonOptions = { ... } +```typescript +public addPackageIgnore(pattern: string): void ``` -#### Properties +Exclude these files from the bundled package. -| **Name** | **Type** | **Description** | -| --- | --- | --- | -| sendSlackWebhookOnRelease | boolean | Should we send a slack webhook on release (required for compliance audits). | -| sendSlackWebhookOnReleaseOpts | @time-loop/clickup-projen.slackAlert.ReleaseEventOptions | Slack alert on release options. | -| cdkDiffOptionsConfig | @time-loop/clickup-projen.cdkDiffWorkflow.CDKDiffOptionsConfig | Cdk diff options. | -| renovateOptionsConfig | @time-loop/clickup-projen.renovateWorkflow.RenovateOptionsConfig | Renovate options. | -| sendReleaseEvent | boolean | Feature flag for datadog event sending on release. | -| sendReleaseEventOpts | @time-loop/clickup-projen.datadog.ReleaseEventOptions | Datadog event options to use on release. | -| serviceCatalogOptions | @time-loop/clickup-projen.datadogServiceCatalog.ServiceCatalogOptions | Datadog Service Catalog options. | +Implemented by project types based on the +packaging mechanism. For example, `NodeProject` delegates this to `.npmignore`. + +###### `pattern`Required + +- *Type:* string --- -##### `sendSlackWebhookOnRelease`Optional +##### `addTask` ```typescript -public readonly sendSlackWebhookOnRelease: boolean; +public addTask(name: string, props?: TaskOptions): Task ``` -- *Type:* boolean -- *Default:* true +Adds a new task to this project. -Should we send a slack webhook on release (required for compliance audits). +This will fail if the project already has +a task with this name. + +###### `name`Required + +- *Type:* string + +The task name to add. --- -##### `sendSlackWebhookOnReleaseOpts`Optional +###### `props`Optional + +- *Type:* projen.TaskOptions + +Task properties. + +--- + +##### ~~`addTip`~~ ```typescript -public readonly sendSlackWebhookOnReleaseOpts: ReleaseEventOptions; +public addTip(message: string): void ``` -- *Type:* @time-loop/clickup-projen.slackAlert.ReleaseEventOptions +Prints a "tip" message during synthesis. -Slack alert on release options. +###### `message`Required -Only valid when `sendSlackWebhookOnRelease` is true. +- *Type:* string + +The message. --- -##### `cdkDiffOptionsConfig`Optional +##### `annotateGenerated` ```typescript -public readonly cdkDiffOptionsConfig: CDKDiffOptionsConfig; +public annotateGenerated(glob: string): void ``` -- *Type:* @time-loop/clickup-projen.cdkDiffWorkflow.CDKDiffOptionsConfig -- *Default:* undefined +Marks the provided file(s) as being generated. -Cdk diff options. +This is achieved using the +github-linguist attributes. Generated files do not count against the +repository statistics and language breakdown. + +> [https://github.com/github/linguist/blob/master/docs/overrides.md](https://github.com/github/linguist/blob/master/docs/overrides.md) + +###### `glob`Required + +- *Type:* string + +the glob pattern to match (could be a file path). --- -##### `renovateOptionsConfig`Optional +##### `postSynthesize` ```typescript -public readonly renovateOptionsConfig: RenovateOptionsConfig; +public postSynthesize(): void ``` -- *Type:* @time-loop/clickup-projen.renovateWorkflow.RenovateOptionsConfig -- *Default:* undefined +Called after all components are synthesized. -Renovate options. +Order is *not* guaranteed. ---- +##### `preSynthesize` -##### `sendReleaseEvent`Optional +```typescript +public preSynthesize(): void +``` + +Called before all components are synthesized. + +##### `removeTask` ```typescript -public readonly sendReleaseEvent: boolean; +public removeTask(name: string): Task ``` -- *Type:* boolean -- *Default:* true +Removes a task from a project. -Feature flag for datadog event sending on release. +###### `name`Required + +- *Type:* string + +The name of the task to remove. --- -##### `sendReleaseEventOpts`Optional +##### `runTaskCommand` ```typescript -public readonly sendReleaseEventOpts: ReleaseEventOptions; +public runTaskCommand(task: Task): string ``` -- *Type:* @time-loop/clickup-projen.datadog.ReleaseEventOptions -- *Default:* undefined +Returns the shell command to execute in order to run a task. -Datadog event options to use on release. +This will +typically be `npx projen TASK`. -Only valid when -`sendReleaseEvent` is true. +###### `task`Required + +- *Type:* projen.Task + +The task for which the command is required. --- -##### `serviceCatalogOptions`Optional +##### `synth` ```typescript -public readonly serviceCatalogOptions: ServiceCatalogOptions; +public synth(): void ``` -- *Type:* @time-loop/clickup-projen.datadogServiceCatalog.ServiceCatalogOptions -- *Default:* undefined +Synthesize all project files into `outdir`. -Datadog Service Catalog options. +1. Call "this.preSynthesize()" +2. Delete all generated files +3. Synthesize all subprojects +4. Synthesize all components of this project +5. Call "postSynthesize()" for all components of this project +6. Call "this.postSynthesize()" ---- +##### `tryFindFile` -### ClickUpCdkConstructLibraryOptions +```typescript +public tryFindFile(filePath: string): FileBase +``` -#### Initializer +Finds a file at the specified relative path within this project and all its subprojects. -```typescript -import { clickupCdk } from '@time-loop/clickup-projen' +###### `filePath`Required -const clickUpCdkConstructLibraryOptions: clickupCdk.ClickUpCdkConstructLibraryOptions = { ... } -``` +- *Type:* string -#### Properties +The file path. -| **Name** | **Type** | **Description** | -| --- | --- | --- | -| name | string | This is the name of your project. | -| commitGenerated | boolean | Whether to commit the managed files by default. | -| gitIgnoreOptions | projen.IgnoreFileOptions | Configuration options for .gitignore file. | -| gitOptions | projen.GitOptions | Configuration options for git. | -| logging | projen.LoggerOptions | Configure logging options such as verbosity. | -| outdir | string | The root directory of the project. | -| parent | projen.Project | The parent project, if this project is part of a bigger project. | -| projenCommand | string | The shell command to use in order to run the projen CLI. | -| projenrcJson | boolean | Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. | -| projenrcJsonOptions | projen.ProjenrcJsonOptions | Options for .projenrc.json. | -| renovatebot | boolean | Use renovatebot to handle dependency upgrades. | -| renovatebotOptions | projen.RenovatebotOptions | Options for renovatebot. | -| autoApproveOptions | projen.github.AutoApproveOptions | Enable and configure the 'auto approve' workflow. | -| autoMerge | boolean | Enable automatic merging on GitHub. | -| autoMergeOptions | projen.github.AutoMergeOptions | Configure options for automatic merging on GitHub. | -| clobber | boolean | Add a `clobber` task which resets the repo to origin. | -| devContainer | boolean | Add a VSCode development environment (used for GitHub Codespaces). | -| github | boolean | Enable GitHub integration. | -| githubOptions | projen.github.GitHubOptions | Options for GitHub integration. | -| gitpod | boolean | Add a Gitpod development environment. | -| mergify | boolean | Whether mergify should be enabled on this repository or not. | -| mergifyOptions | projen.github.MergifyOptions | Options for mergify. | -| projectType | projen.ProjectType | Which type of project this is (library/app). | -| projenCredentials | projen.github.GithubCredentials | Choose a method of providing GitHub API access for projen workflows. | -| projenTokenSecret | string | The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. | -| readme | projen.SampleReadmeProps | The README setup. | -| stale | boolean | Auto-close of stale issues and pull request. | -| staleOptions | projen.github.StaleOptions | Auto-close stale issues and pull requests. | -| vscode | boolean | Enable VSCode integration. | -| allowLibraryDependencies | boolean | Allow the project to include `peerDependencies` and `bundledDependencies`. | -| authorEmail | string | Author's e-mail. | -| authorName | string | Author's name. | -| authorOrganization | boolean | Is the author an organization. | -| authorUrl | string | Author's URL / Website. | -| autoDetectBin | boolean | Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section. | -| bin | {[ key: string ]: string} | Binary programs vended with your module. | -| bugsEmail | string | The email address to which issues should be reported. | -| bugsUrl | string | The url to your project's issue tracker. | -| bundledDeps | string[] | List of dependencies to bundle into this module. | -| codeArtifactOptions | projen.javascript.CodeArtifactOptions | Options for npm packages using AWS CodeArtifact. | -| deps | string[] | Runtime dependencies of this module. | -| description | string | The description is just a string that helps people understand the purpose of the package. | -| devDeps | string[] | Build dependencies for this module. | -| entrypoint | string | Module entrypoint (`main` in `package.json`). | -| homepage | string | Package's Homepage / Website. | -| keywords | string[] | Keywords to include in `package.json`. | -| license | string | License's SPDX identifier. | -| licensed | boolean | Indicates if a license should be added. | -| maxNodeVersion | string | Minimum node.js version to require via `engines` (inclusive). | -| minNodeVersion | string | Minimum Node.js version to require via package.json `engines` (inclusive). | -| npmAccess | projen.javascript.NpmAccess | Access level of the npm package. | -| npmRegistry | string | The host name of the npm registry to publish to. | -| npmRegistryUrl | string | The base URL of the npm package registry. | -| npmTokenSecret | string | GitHub secret which contains the NPM token to use when publishing packages. | -| packageManager | projen.javascript.NodePackageManager | The Node Package Manager used to execute scripts. | -| packageName | string | The "name" in package.json. | -| peerDependencyOptions | projen.javascript.PeerDependencyOptions | Options for `peerDeps`. | -| peerDeps | string[] | Peer dependencies for this module. | -| pnpmVersion | string | The version of PNPM to use if using PNPM as a package manager. | -| repository | string | The repository is the location where the actual code for your package lives. | -| repositoryDirectory | string | 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. | -| scopedPackagesOptions | projen.javascript.ScopedPackagesOptions[] | Options for privately hosted scoped packages. | -| scripts | {[ key: string ]: string} | npm scripts to include. | -| stability | string | Package's Stability. | -| jsiiReleaseVersion | string | Version requirement of `publib` which is used to publish modules to npm. | -| majorVersion | number | Major version to release from the default branch. | -| minMajorVersion | number | Minimal Major version to release. | -| npmDistTag | string | The npmDistTag to use when publishing from the default branch. | -| postBuildSteps | projen.github.workflows.JobStep[] | Steps to execute after build as part of the release workflow. | -| prerelease | string | Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). | -| publishDryRun | boolean | Instead of actually publishing to package managers, just print the publishing command. | -| publishTasks | boolean | Define publishing tasks that can be executed manually as well as workflows. | -| releasableCommits | projen.ReleasableCommits | Find commits that should be considered releasable Used to decide if a release is required. | -| releaseBranches | {[ key: string ]: projen.release.BranchOptions} | Defines additional release branches. | -| releaseEveryCommit | boolean | Automatically release new versions every commit to one of branches in `releaseBranches`. | -| releaseFailureIssue | boolean | Create a github issue on every failed publishing task. | -| releaseFailureIssueLabel | string | The label to apply to issues indicating publish failures. | -| releaseSchedule | string | CRON schedule to trigger new releases. | -| releaseTagPrefix | string | Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers. | -| releaseTrigger | projen.release.ReleaseTrigger | The release trigger to use. | -| releaseWorkflowName | string | The name of the default release workflow. | -| releaseWorkflowSetupSteps | projen.github.workflows.JobStep[] | A set of workflow steps to execute in order to setup the workflow container. | -| versionrcOptions | {[ key: string ]: any} | Custom configuration used when creating changelog with standard-version package. | -| workflowContainerImage | string | Container image to use for GitHub workflows. | -| workflowRunsOn | string[] | Github Runner selection labels. | -| workflowRunsOnGroup | projen.GroupRunnerOptions | Github Runner Group selection options. | -| defaultReleaseBranch | string | The name of the main release branch. | -| artifactsDirectory | string | A directory which will contain build artifacts. | -| autoApproveUpgrades | boolean | Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). | -| buildWorkflow | boolean | Define a GitHub workflow for building PRs. | -| buildWorkflowTriggers | projen.github.workflows.Triggers | Build workflow triggers. | -| bundlerOptions | projen.javascript.BundlerOptions | Options for `Bundler`. | -| codeCov | boolean | 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`. | -| codeCovTokenSecret | string | Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. | -| copyrightOwner | string | License copyright owner. | -| copyrightPeriod | string | The copyright years to put in the LICENSE file. | -| dependabot | boolean | Use dependabot to handle dependency upgrades. | -| dependabotOptions | projen.github.DependabotOptions | Options for dependabot. | -| depsUpgrade | boolean | Use tasks and github workflows to handle dependency upgrades. | -| depsUpgradeOptions | projen.javascript.UpgradeDependenciesOptions | Options for `UpgradeDependencies`. | -| gitignore | string[] | Additional entries to .gitignore. | -| jest | boolean | Setup jest unit tests. | -| jestOptions | projen.javascript.JestOptions | Jest options. | -| mutableBuild | boolean | Automatically update files modified during builds to pull-request branches. | -| npmignore | string[] | Additional entries to .npmignore. | -| npmignoreEnabled | boolean | Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs. | -| npmIgnoreOptions | projen.IgnoreFileOptions | Configuration options for .npmignore file. | -| package | boolean | Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`). | -| prettier | boolean | Setup prettier. | -| prettierOptions | projen.javascript.PrettierOptions | Prettier options. | -| projenDevDependency | boolean | Indicates of "projen" should be installed as a devDependency. | -| projenrcJs | boolean | Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation. | -| projenrcJsOptions | projen.javascript.ProjenrcOptions | Options for .projenrc.js. | -| projenVersion | string | Version of projen to install. | -| pullRequestTemplate | boolean | Include a GitHub pull request template. | -| pullRequestTemplateContents | string[] | The contents of the pull request template. | -| release | boolean | Add release management to this project. | -| releaseToNpm | boolean | Automatically release to npm when new versions are introduced. | -| releaseWorkflow | boolean | DEPRECATED: renamed to `release`. | -| workflowBootstrapSteps | projen.github.workflows.JobStep[] | Workflow steps to use in order to bootstrap this repo. | -| workflowGitIdentity | projen.github.GitIdentity | The git identity to use in workflows. | -| workflowNodeVersion | string | The node version to use in GitHub workflows. | -| workflowPackageCache | boolean | Enable Node.js package cache in GitHub workflows. | -| disableTsconfig | boolean | Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler). | -| disableTsconfigDev | boolean | Do not generate a `tsconfig.dev.json` file. | -| docgen | boolean | Docgen by Typedoc. | -| docsDirectory | string | Docs directory. | -| entrypointTypes | string | The .d.ts file that includes the type declarations for this module. | -| eslint | boolean | Setup eslint. | -| eslintOptions | projen.javascript.EslintOptions | Eslint options. | -| libdir | string | Typescript artifacts output directory. | -| projenrcTs | boolean | Use TypeScript for your projenrc file (`.projenrc.ts`). | -| projenrcTsOptions | projen.typescript.ProjenrcOptions | Options for .projenrc.ts. | -| sampleCode | boolean | Generate one-time sample in `src/` and `test/` if there are no files there. | -| srcdir | string | Typescript sources directory. | -| testdir | string | Jest tests directory. Tests files should be named `xxx.test.ts`. | -| tsconfig | projen.javascript.TypescriptConfigOptions | Custom TSConfig. | -| tsconfigDev | projen.javascript.TypescriptConfigOptions | Custom tsconfig options for the development tsconfig.json file (used for testing). | -| tsconfigDevFile | string | The name of the development tsconfig.json file. | -| typescriptVersion | string | TypeScript version to use. | -| author | string | The name of the library author. | -| authorAddress | string | Email or URL of the library author. | -| repositoryUrl | string | Git repository URL. | -| compat | boolean | Automatically run API compatibility test against the latest version published to npm after compilation. | -| compatIgnore | string | Name of the ignore file for API compatibility tests. | -| compressAssembly | boolean | Emit a compressed version of the assembly. | -| docgenFilePath | string | File path for generated docs. | -| dotnet | projen.cdk.JsiiDotNetTarget | *No description.* | -| excludeTypescript | string[] | Accepts a list of glob patterns. | -| jsiiVersion | string | Version of the jsii compiler to use. | -| publishToGo | projen.cdk.JsiiGoTarget | Publish Go bindings to a git repository. | -| publishToMaven | projen.cdk.JsiiJavaTarget | Publish to maven. | -| publishToNuget | projen.cdk.JsiiDotNetTarget | Publish to NuGet. | -| publishToPypi | projen.cdk.JsiiPythonTarget | Publish to pypi. | -| python | projen.cdk.JsiiPythonTarget | *No description.* | -| rootdir | string | *No description.* | -| catalog | projen.cdk.Catalog | Libraries will be picked up by the construct catalog when they are published to npm as jsii modules and will be published under:. | -| cdkVersion | string | Minimum version of the AWS CDK to depend on. | -| cdkAssert | boolean | Warning: NodeJS only. | -| cdkAssertions | boolean | Install the assertions library? | -| cdkDependencies | string[] | Which AWS CDKv1 modules this project requires. | -| cdkDependenciesAsDeps | boolean | If this is enabled (default), all modules declared in `cdkDependencies` will be also added as normal `dependencies` (as well as `peerDependencies`). | -| cdkTestDependencies | string[] | AWS CDK modules required for testing. | -| cdkVersionPinning | boolean | Use pinned version instead of caret version for CDK. | -| constructsVersion | string | Minimum version of the `constructs` library to depend on. | -| edgeLambdaAutoDiscover | boolean | Automatically adds an `cloudfront.experimental.EdgeFunction` for each `.edge-lambda.ts` handler in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project. | -| integrationTestAutoDiscover | boolean | Automatically discovers and creates integration tests for each `.integ.ts` file in under your test directory. | -| lambdaAutoDiscover | boolean | Automatically adds an `aws_lambda.Function` for each `.lambda.ts` handler in your source tree. If this is disabled, you either need to explicitly call `aws_lambda.Function.autoDiscover()` or define a `new aws_lambda.Function()` for each handler. | -| lambdaExtensionAutoDiscover | boolean | Automatically adds an `awscdk.LambdaExtension` for each `.lambda-extension.ts` entrypoint in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project. | -| lambdaOptions | projen.awscdk.LambdaFunctionCommonOptions | Common options for all AWS Lambda functions. | -| sendSlackWebhookOnRelease | boolean | Should we send a slack webhook on release (required for compliance audits). | -| sendSlackWebhookOnReleaseOpts | @time-loop/clickup-projen.slackAlert.ReleaseEventOptions | Slack alert on release options. | -| cdkDiffOptionsConfig | @time-loop/clickup-projen.cdkDiffWorkflow.CDKDiffOptionsConfig | Cdk diff options. | -| renovateOptionsConfig | @time-loop/clickup-projen.renovateWorkflow.RenovateOptionsConfig | Renovate options. | -| sendReleaseEvent | boolean | Feature flag for datadog event sending on release. | -| sendReleaseEventOpts | @time-loop/clickup-projen.datadog.ReleaseEventOptions | Datadog event options to use on release. | -| serviceCatalogOptions | @time-loop/clickup-projen.datadogServiceCatalog.ServiceCatalogOptions | Datadog Service Catalog options. | +If this path is relative, it will be resolved +from the root of _this_ project. --- -##### `name`Required +##### ~~`tryFindJsonFile`~~ ```typescript -public readonly name: string; +public tryFindJsonFile(filePath: string): JsonFile ``` +Finds a json file by name. + +###### `filePath`Required + - *Type:* string -- *Default:* $BASEDIR -This is the name of your project. +The file path. --- -##### `commitGenerated`Optional +##### `tryFindObjectFile` ```typescript -public readonly commitGenerated: boolean; +public tryFindObjectFile(filePath: string): ObjectFile ``` -- *Type:* boolean -- *Default:* true +Finds an object file (like JsonFile, YamlFile, etc.) by name. -Whether to commit the managed files by default. +###### `filePath`Required + +- *Type:* string + +The file path. --- -##### `gitIgnoreOptions`Optional +##### `tryRemoveFile` ```typescript -public readonly gitIgnoreOptions: IgnoreFileOptions; +public tryRemoveFile(filePath: string): FileBase ``` -- *Type:* projen.IgnoreFileOptions +Finds a file at the specified relative path within this project and removes it. -Configuration options for .gitignore file. +###### `filePath`Required + +- *Type:* string + +The file path. + +If this path is relative, it will be +resolved from the root of _this_ project. --- -##### `gitOptions`Optional +##### `addBins` ```typescript -public readonly gitOptions: GitOptions; +public addBins(bins: {[ key: string ]: string}): void ``` -- *Type:* projen.GitOptions +###### `bins`Required -Configuration options for git. +- *Type:* {[ key: string ]: string} --- -##### `logging`Optional +##### `addBundledDeps` ```typescript -public readonly logging: LoggerOptions; +public addBundledDeps(deps: string): void +``` + +Defines bundled dependencies. + +Bundled dependencies will be added as normal dependencies as well as to the +`bundledDependencies` section of your `package.json`. + +###### `deps`Required + +- *Type:* string + +Names modules to install. + +By default, the the dependency will +be installed in the next `npx projen` run and the version will be recorded +in your `package.json` file. You can upgrade manually or using `yarn +add/upgrade`. If you wish to specify a version range use this syntax: +`module@^7`. + +--- + +##### ~~`addCompileCommand`~~ + +```typescript +public addCompileCommand(commands: string): void +``` + +DEPRECATED. + +###### `commands`Required + +- *Type:* string + +--- + +##### `addDeps` + +```typescript +public addDeps(deps: string): void +``` + +Defines normal dependencies. + +###### `deps`Required + +- *Type:* string + +Names modules to install. + +By default, the the dependency will +be installed in the next `npx projen` run and the version will be recorded +in your `package.json` file. You can upgrade manually or using `yarn +add/upgrade`. If you wish to specify a version range use this syntax: +`module@^7`. + +--- + +##### `addDevDeps` + +```typescript +public addDevDeps(deps: string): void +``` + +Defines development/test dependencies. + +###### `deps`Required + +- *Type:* string + +Names modules to install. + +By default, the the dependency will +be installed in the next `npx projen` run and the version will be recorded +in your `package.json` file. You can upgrade manually or using `yarn +add/upgrade`. If you wish to specify a version range use this syntax: +`module@^7`. + +--- + +##### `addFields` + +```typescript +public addFields(fields: {[ key: string ]: any}): void +``` + +Directly set fields in `package.json`. + +###### `fields`Required + +- *Type:* {[ key: string ]: any} + +The fields to set. + +--- + +##### `addKeywords` + +```typescript +public addKeywords(keywords: string): void +``` + +Adds keywords to package.json (deduplicated). + +###### `keywords`Required + +- *Type:* string + +The keywords to add. + +--- + +##### `addPeerDeps` + +```typescript +public addPeerDeps(deps: string): void ``` -- *Type:* projen.LoggerOptions -- *Default:* {} +Defines peer dependencies. + +When adding peer dependencies, a devDependency will also be added on the +pinned version of the declared peer. This will ensure that you are testing +your code against the minimum version required from your consumers. + +###### `deps`Required + +- *Type:* string + +Names modules to install. + +By default, the the dependency will +be installed in the next `npx projen` run and the version will be recorded +in your `package.json` file. You can upgrade manually or using `yarn +add/upgrade`. If you wish to specify a version range use this syntax: +`module@^7`. + +--- + +##### `addScripts` + +```typescript +public addScripts(scripts: {[ key: string ]: string}): void +``` + +Replaces the contents of multiple npm package.json scripts. + +###### `scripts`Required + +- *Type:* {[ key: string ]: string} + +The scripts to set. + +--- + +##### ~~`addTestCommand`~~ + +```typescript +public addTestCommand(commands: string): void +``` + +DEPRECATED. + +###### `commands`Required + +- *Type:* string + +--- + +##### ~~`hasScript`~~ + +```typescript +public hasScript(name: string): boolean +``` + +Indicates if a script by the name name is defined. + +###### `name`Required + +- *Type:* string + +The name of the script. + +--- + +##### `removeScript` + +```typescript +public removeScript(name: string): void +``` + +Removes the npm script (always successful). + +###### `name`Required + +- *Type:* string + +The name of the script. + +--- + +##### `renderWorkflowSetup` + +```typescript +public renderWorkflowSetup(options?: RenderWorkflowSetupOptions): JobStep[] +``` + +Returns the set of workflow steps which should be executed to bootstrap a workflow. + +###### `options`Optional + +- *Type:* projen.javascript.RenderWorkflowSetupOptions -Configure logging options such as verbosity. +Options. --- -##### `outdir`Optional +##### `setScript` ```typescript -public readonly outdir: string; +public setScript(name: string, command: string): void ``` +Replaces the contents of an npm package.json script. + +###### `name`Required + - *Type:* string -- *Default:* "." -The root directory of the project. +The script name. -Relative to this directory, all files are synthesized. +--- -If this project has a parent, this directory is relative to the parent -directory and it cannot be the same as the parent or any of it's other -sub-projects. +###### `command`Required + +- *Type:* string + +The command to execute. --- -##### `parent`Optional +##### ~~`addCdkDependencies`~~ ```typescript -public readonly parent: Project; +public addCdkDependencies(deps: string): void ``` -- *Type:* projen.Project +Adds dependencies to AWS CDK modules. -The parent project, if this project is part of a bigger project. +Since this is a library project, dependencies will be added as peer dependencies. + +###### `deps`Required + +- *Type:* string + +names of cdk modules (e.g. `@aws-cdk/aws-lambda`). --- -##### `projenCommand`Optional +##### ~~`addCdkTestDependencies`~~ ```typescript -public readonly projenCommand: string; +public addCdkTestDependencies(deps: string): void ``` +Adds AWS CDK modules as dev dependencies. + +###### `deps`Required + - *Type:* string -- *Default:* "npx projen" -The shell command to use in order to run the projen CLI. +names of cdk modules (e.g. `@aws-cdk/aws-lambda`). -Can be used to customize in special environments. +--- + +#### Static Functions + +| **Name** | **Description** | +| --- | --- | +| isConstruct | Checks if `x` is a construct. | +| isProject | Test whether the given construct is a project. | +| of | Find the closest ancestor project for given construct. | --- -##### `projenrcJson`Optional +##### `isConstruct` ```typescript -public readonly projenrcJson: boolean; -``` +import { clickupCdk } from '@time-loop/clickup-projen' -- *Type:* boolean -- *Default:* false +clickupCdk.ClickUpCdkConstructLibrary.isConstruct(x: any) +``` -Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. +Checks if `x` is a construct. ---- +Use this method instead of `instanceof` to properly detect `Construct` +instances, even when the construct library is symlinked. -##### `projenrcJsonOptions`Optional +Explanation: in JavaScript, multiple copies of the `constructs` library on +disk are seen as independent, completely different libraries. As a +consequence, the class `Construct` in each copy of the `constructs` library +is seen as a different class, and an instance of one class will not test as +`instanceof` the other class. `npm install` will not create installations +like this, but users may manually symlink construct libraries together or +use a monorepo tool: in those cases, multiple copies of the `constructs` +library can be accidentally installed, and `instanceof` will behave +unpredictably. It is safest to avoid using `instanceof`, and using +this type-testing method instead. -```typescript -public readonly projenrcJsonOptions: ProjenrcJsonOptions; -``` +###### `x`Required -- *Type:* projen.ProjenrcJsonOptions -- *Default:* default options +- *Type:* any -Options for .projenrc.json. +Any object. --- -##### `renovatebot`Optional +##### `isProject` ```typescript -public readonly renovatebot: boolean; +import { clickupCdk } from '@time-loop/clickup-projen' + +clickupCdk.ClickUpCdkConstructLibrary.isProject(x: any) ``` -- *Type:* boolean -- *Default:* false +Test whether the given construct is a project. -Use renovatebot to handle dependency upgrades. +###### `x`Required + +- *Type:* any --- -##### `renovatebotOptions`Optional +##### `of` ```typescript -public readonly renovatebotOptions: RenovatebotOptions; +import { clickupCdk } from '@time-loop/clickup-projen' + +clickupCdk.ClickUpCdkConstructLibrary.of(construct: IConstruct) ``` -- *Type:* projen.RenovatebotOptions -- *Default:* default options +Find the closest ancestor project for given construct. -Options for renovatebot. +When given a project, this it the project itself. ---- +###### `construct`Required -##### `autoApproveOptions`Optional +- *Type:* constructs.IConstruct -```typescript -public readonly autoApproveOptions: AutoApproveOptions; -``` +--- -- *Type:* projen.github.AutoApproveOptions -- *Default:* auto approve is disabled +#### Properties -Enable and configure the 'auto approve' workflow. +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| node | constructs.Node | The tree node. | +| buildTask | projen.Task | *No description.* | +| commitGenerated | boolean | Whether to commit the managed files by default. | +| compileTask | projen.Task | *No description.* | +| components | projen.Component[] | Returns all the components within this project. | +| deps | projen.Dependencies | Project dependencies. | +| ejected | boolean | Whether or not the project is being ejected. | +| files | projen.FileBase[] | All files in this project. | +| gitattributes | projen.GitAttributesFile | The .gitattributes file for this repository. | +| gitignore | projen.IgnoreFile | .gitignore. | +| logger | projen.Logger | Logging utilities. | +| name | string | Project name. | +| outdir | string | Absolute output directory of this project. | +| packageTask | projen.Task | *No description.* | +| postCompileTask | projen.Task | *No description.* | +| preCompileTask | projen.Task | *No description.* | +| projectBuild | projen.ProjectBuild | Manages the build process of the project. | +| projenCommand | string | The command to use in order to run the projen CLI. | +| root | projen.Project | The root project. | +| subprojects | projen.Project[] | Returns all the subprojects within this project. | +| tasks | projen.Tasks | Project tasks. | +| testTask | projen.Task | *No description.* | +| defaultTask | projen.Task | This is the "default" task, the one that executes "projen". | +| initProject | projen.InitProject | The options used when this project is bootstrapped via `projen new`. | +| parent | projen.Project | A parent project. | +| projectType | projen.ProjectType | *No description.* | +| autoApprove | projen.github.AutoApprove | Auto approve set up for this project. | +| devContainer | projen.vscode.DevContainer | Access for .devcontainer.json (used for GitHub Codespaces). | +| github | projen.github.GitHub | Access all github components. | +| gitpod | projen.Gitpod | Access for Gitpod. | +| vscode | projen.vscode.VsCode | Access all VSCode components. | +| allowLibraryDependencies | boolean | *No description.* | +| artifactsDirectory | string | The build output directory. | +| artifactsJavascriptDirectory | string | The location of the npm tarball after build (`${artifactsDirectory}/js`). | +| bundler | projen.javascript.Bundler | *No description.* | +| entrypoint | string | *No description.* | +| manifest | any | *No description.* | +| npmrc | projen.javascript.NpmConfig | The .npmrc file. | +| package | projen.javascript.NodePackage | API for managing the node package. | +| packageManager | projen.javascript.NodePackageManager | The package manager to use. | +| runScriptCommand | string | The command to use to run scripts (e.g. `yarn run` or `npm run` depends on the package manager). | +| autoMerge | projen.github.AutoMerge | Component that sets up mergify for merging approved pull requests. | +| buildWorkflow | projen.build.BuildWorkflow | The PR build GitHub workflow. | +| buildWorkflowJobId | string | The job ID of the build workflow. | +| jest | projen.javascript.Jest | The Jest configuration (if enabled). | +| maxNodeVersion | string | Maximum node version required by this package. | +| minNodeVersion | string | Minimum node.js version required by this package. | +| npmignore | projen.IgnoreFile | The .npmignore file. | +| prettier | projen.javascript.Prettier | *No description.* | +| publisher | projen.release.Publisher | Package publisher. | +| release | projen.release.Release | Release management. | +| upgradeWorkflow | projen.javascript.UpgradeDependencies | The upgrade workflow. | +| docsDirectory | string | *No description.* | +| libdir | string | The directory in which compiled .js files reside. | +| srcdir | string | The directory in which the .ts sources reside. | +| testdir | string | The directory in which tests reside. | +| tsconfigDev | projen.javascript.TypescriptConfig | A typescript configuration file which covers all files (sources, tests, projen). | +| watchTask | projen.Task | The "watch" task. | +| docgen | boolean | *No description.* | +| eslint | projen.javascript.Eslint | *No description.* | +| tsconfig | projen.javascript.TypescriptConfig | *No description.* | +| tsconfigEslint | projen.javascript.TypescriptConfig | *No description.* | +| cdkDeps | projen.awscdk.AwsCdkDeps | *No description.* | +| cdkVersion | string | The target CDK version for this library. | +| version | string | *No description.* | +| datadogEvent | boolean | *No description.* | --- -##### `autoMerge`Optional +##### `node`Required ```typescript -public readonly autoMerge: boolean; +public readonly node: Node; ``` -- *Type:* boolean -- *Default:* true - -Enable automatic merging on GitHub. +- *Type:* constructs.Node -Has no effect if `github.mergify` -is set to false. +The tree node. --- -##### `autoMergeOptions`Optional +##### `buildTask`Required ```typescript -public readonly autoMergeOptions: AutoMergeOptions; +public readonly buildTask: Task; ``` -- *Type:* projen.github.AutoMergeOptions -- *Default:* see defaults in `AutoMergeOptions` - -Configure options for automatic merging on GitHub. - -Has no effect if -`github.mergify` or `autoMerge` is set to false. +- *Type:* projen.Task --- -##### `clobber`Optional +##### `commitGenerated`Required ```typescript -public readonly clobber: boolean; +public readonly commitGenerated: boolean; ``` - *Type:* boolean -- *Default:* true, but false for subprojects -Add a `clobber` task which resets the repo to origin. +Whether to commit the managed files by default. --- -##### `devContainer`Optional +##### `compileTask`Required ```typescript -public readonly devContainer: boolean; +public readonly compileTask: Task; ``` -- *Type:* boolean -- *Default:* false - -Add a VSCode development environment (used for GitHub Codespaces). +- *Type:* projen.Task --- -##### `github`Optional +##### `components`Required ```typescript -public readonly github: boolean; +public readonly components: Component[]; ``` -- *Type:* boolean -- *Default:* true - -Enable GitHub integration. +- *Type:* projen.Component[] -Enabled by default for root projects. Disabled for non-root projects. +Returns all the components within this project. --- -##### `githubOptions`Optional +##### `deps`Required ```typescript -public readonly githubOptions: GitHubOptions; +public readonly deps: Dependencies; ``` -- *Type:* projen.github.GitHubOptions -- *Default:* see GitHubOptions +- *Type:* projen.Dependencies -Options for GitHub integration. +Project dependencies. --- -##### `gitpod`Optional +##### `ejected`Required ```typescript -public readonly gitpod: boolean; +public readonly ejected: boolean; ``` - *Type:* boolean -- *Default:* false -Add a Gitpod development environment. +Whether or not the project is being ejected. --- -##### ~~`mergify`~~Optional - -- *Deprecated:* use `githubOptions.mergify` instead +##### `files`Required ```typescript -public readonly mergify: boolean; +public readonly files: FileBase[]; ``` -- *Type:* boolean -- *Default:* true +- *Type:* projen.FileBase[] -Whether mergify should be enabled on this repository or not. +All files in this project. --- -##### ~~`mergifyOptions`~~Optional - -- *Deprecated:* use `githubOptions.mergifyOptions` instead +##### `gitattributes`Required ```typescript -public readonly mergifyOptions: MergifyOptions; +public readonly gitattributes: GitAttributesFile; ``` -- *Type:* projen.github.MergifyOptions -- *Default:* default options +- *Type:* projen.GitAttributesFile -Options for mergify. +The .gitattributes file for this repository. --- -##### ~~`projectType`~~Optional - -- *Deprecated:* no longer supported at the base project level +##### `gitignore`Required ```typescript -public readonly projectType: ProjectType; +public readonly gitignore: IgnoreFile; ``` -- *Type:* projen.ProjectType -- *Default:* ProjectType.UNKNOWN +- *Type:* projen.IgnoreFile -Which type of project this is (library/app). +.gitignore. --- -##### `projenCredentials`Optional +##### `logger`Required ```typescript -public readonly projenCredentials: GithubCredentials; +public readonly logger: Logger; ``` -- *Type:* projen.github.GithubCredentials -- *Default:* use a personal access token named PROJEN_GITHUB_TOKEN +- *Type:* projen.Logger -Choose a method of providing GitHub API access for projen workflows. +Logging utilities. --- -##### ~~`projenTokenSecret`~~Optional - -- *Deprecated:* use `projenCredentials` +##### `name`Required ```typescript -public readonly projenTokenSecret: string; +public readonly name: string; ``` - *Type:* string -- *Default:* "PROJEN_GITHUB_TOKEN" - -The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. -This token needs to have the `repo`, `workflows` -and `packages` scope. +Project name. --- -##### `readme`Optional +##### `outdir`Required ```typescript -public readonly readme: SampleReadmeProps; +public readonly outdir: string; ``` -- *Type:* projen.SampleReadmeProps -- *Default:* { filename: 'README.md', contents: '# replace this' } +- *Type:* string -The README setup. +Absolute output directory of this project. --- -*Example* +##### `packageTask`Required ```typescript -"{ filename: 'readme.md', contents: '# title' }" +public readonly packageTask: Task; ``` +- *Type:* projen.Task -##### `stale`Optional +--- + +##### `postCompileTask`Required ```typescript -public readonly stale: boolean; +public readonly postCompileTask: Task; ``` -- *Type:* boolean -- *Default:* false - -Auto-close of stale issues and pull request. - -See `staleOptions` for options. +- *Type:* projen.Task --- -##### `staleOptions`Optional +##### `preCompileTask`Required ```typescript -public readonly staleOptions: StaleOptions; +public readonly preCompileTask: Task; ``` -- *Type:* projen.github.StaleOptions -- *Default:* see defaults in `StaleOptions` - -Auto-close stale issues and pull requests. - -To disable set `stale` to `false`. +- *Type:* projen.Task --- -##### `vscode`Optional +##### `projectBuild`Required ```typescript -public readonly vscode: boolean; +public readonly projectBuild: ProjectBuild; ``` -- *Type:* boolean -- *Default:* true - -Enable VSCode integration. +- *Type:* projen.ProjectBuild -Enabled by default for root projects. Disabled for non-root projects. +Manages the build process of the project. --- -##### `allowLibraryDependencies`Optional +##### `projenCommand`Required ```typescript -public readonly allowLibraryDependencies: boolean; +public readonly projenCommand: string; ``` -- *Type:* boolean -- *Default:* true - -Allow the project to include `peerDependencies` and `bundledDependencies`. +- *Type:* string -This is normally only allowed for libraries. For apps, there's no meaning -for specifying these. +The command to use in order to run the projen CLI. --- -##### `authorEmail`Optional +##### `root`Required ```typescript -public readonly authorEmail: string; +public readonly root: Project; ``` -- *Type:* string +- *Type:* projen.Project -Author's e-mail. +The root project. --- -##### `authorName`Optional +##### `subprojects`Required ```typescript -public readonly authorName: string; +public readonly subprojects: Project[]; ``` -- *Type:* string +- *Type:* projen.Project[] -Author's name. +Returns all the subprojects within this project. --- -##### `authorOrganization`Optional +##### `tasks`Required ```typescript -public readonly authorOrganization: boolean; +public readonly tasks: Tasks; ``` -- *Type:* boolean +- *Type:* projen.Tasks -Is the author an organization. +Project tasks. --- -##### `authorUrl`Optional +##### `testTask`Required ```typescript -public readonly authorUrl: string; +public readonly testTask: Task; ``` -- *Type:* string - -Author's URL / Website. +- *Type:* projen.Task --- -##### `autoDetectBin`Optional +##### `defaultTask`Optional ```typescript -public readonly autoDetectBin: boolean; +public readonly defaultTask: Task; ``` -- *Type:* boolean -- *Default:* true +- *Type:* projen.Task -Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section. +This is the "default" task, the one that executes "projen". + +Undefined if +the project is being ejected. --- -##### `bin`Optional +##### `initProject`Optional ```typescript -public readonly bin: {[ key: string ]: string}; +public readonly initProject: InitProject; ``` -- *Type:* {[ key: string ]: string} +- *Type:* projen.InitProject -Binary programs vended with your module. +The options used when this project is bootstrapped via `projen new`. -You can use this option to add/customize how binaries are represented in -your `package.json`, but unless `autoDetectBin` is `false`, every -executable file under `bin` will automatically be added to this section. +It +includes the original set of options passed to the CLI and also the JSII +FQN of the project type. --- -##### `bugsEmail`Optional +##### `parent`Optional ```typescript -public readonly bugsEmail: string; +public readonly parent: Project; ``` -- *Type:* string +- *Type:* projen.Project -The email address to which issues should be reported. +A parent project. + +If undefined, this is the root project. --- -##### `bugsUrl`Optional +##### `projectType`Required ```typescript -public readonly bugsUrl: string; +public readonly projectType: ProjectType; ``` -- *Type:* string - -The url to your project's issue tracker. +- *Type:* projen.ProjectType --- -##### `bundledDeps`Optional +##### `autoApprove`Optional ```typescript -public readonly bundledDeps: string[]; +public readonly autoApprove: AutoApprove; ``` -- *Type:* string[] - -List of dependencies to bundle into this module. - -These modules will be -added both to the `dependencies` section and `bundledDependencies` section of -your `package.json`. +- *Type:* projen.github.AutoApprove -The recommendation is to only specify the module name here (e.g. -`express`). This will behave similar to `yarn add` or `npm install` in the -sense that it will add the module as a dependency to your `package.json` -file with the latest version (`^`). You can specify semver requirements in -the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and -this will be what you `package.json` will eventually include. +Auto approve set up for this project. --- -##### `codeArtifactOptions`Optional +##### `devContainer`Optional ```typescript -public readonly codeArtifactOptions: CodeArtifactOptions; +public readonly devContainer: DevContainer; ``` -- *Type:* projen.javascript.CodeArtifactOptions -- *Default:* undefined +- *Type:* projen.vscode.DevContainer -Options for npm packages using AWS CodeArtifact. +Access for .devcontainer.json (used for GitHub Codespaces). -This is required if publishing packages to, or installing scoped packages from AWS CodeArtifact +This will be `undefined` if devContainer boolean is false --- -##### `deps`Optional +##### `github`Optional ```typescript -public readonly deps: string[]; +public readonly github: GitHub; ``` -- *Type:* string[] -- *Default:* [] +- *Type:* projen.github.GitHub -Runtime dependencies of this module. +Access all github components. -The recommendation is to only specify the module name here (e.g. -`express`). This will behave similar to `yarn add` or `npm install` in the -sense that it will add the module as a dependency to your `package.json` -file with the latest version (`^`). You can specify semver requirements in -the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and -this will be what you `package.json` will eventually include. +This will be `undefined` for subprojects. --- -*Example* - -```typescript -[ 'express', 'lodash', 'foo@^2' ] -``` - - -##### `description`Optional +##### `gitpod`Optional ```typescript -public readonly description: string; +public readonly gitpod: Gitpod; ``` -- *Type:* string +- *Type:* projen.Gitpod -The description is just a string that helps people understand the purpose of the package. +Access for Gitpod. -It can be used when searching for packages in a package manager as well. -See https://classic.yarnpkg.com/en/docs/package-json/#toc-description +This will be `undefined` if gitpod boolean is false --- -##### `devDeps`Optional +##### `vscode`Optional ```typescript -public readonly devDeps: string[]; +public readonly vscode: VsCode; ``` -- *Type:* string[] -- *Default:* [] - -Build dependencies for this module. +- *Type:* projen.vscode.VsCode -These dependencies will only be -available in your build environment but will not be fetched when this -module is consumed. +Access all VSCode components. -The recommendation is to only specify the module name here (e.g. -`express`). This will behave similar to `yarn add` or `npm install` in the -sense that it will add the module as a dependency to your `package.json` -file with the latest version (`^`). You can specify semver requirements in -the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and -this will be what you `package.json` will eventually include. +This will be `undefined` for subprojects. --- -*Example* +##### ~~`allowLibraryDependencies`~~Required + +- *Deprecated:* use `package.allowLibraryDependencies` ```typescript -[ 'typescript', '@types/express' ] +public readonly allowLibraryDependencies: boolean; ``` +- *Type:* boolean + +--- -##### `entrypoint`Optional +##### `artifactsDirectory`Required ```typescript -public readonly entrypoint: string; +public readonly artifactsDirectory: string; ``` - *Type:* string -- *Default:* "lib/index.js" -Module entrypoint (`main` in `package.json`). +The build output directory. -Set to an empty string to not include `main` in your package.json +An npm tarball will be created under the `js` +subdirectory. For example, if this is set to `dist` (the default), the npm +tarball will be placed under `dist/js/boom-boom-1.2.3.tg`. --- -##### `homepage`Optional +##### `artifactsJavascriptDirectory`Required ```typescript -public readonly homepage: string; +public readonly artifactsJavascriptDirectory: string; ``` - *Type:* string -Package's Homepage / Website. +The location of the npm tarball after build (`${artifactsDirectory}/js`). --- -##### `keywords`Optional +##### `bundler`Required ```typescript -public readonly keywords: string[]; +public readonly bundler: Bundler; ``` -- *Type:* string[] - -Keywords to include in `package.json`. +- *Type:* projen.javascript.Bundler --- -##### `license`Optional +##### ~~`entrypoint`~~Required + +- *Deprecated:* use `package.entrypoint` ```typescript -public readonly license: string; +public readonly entrypoint: string; ``` - *Type:* string -- *Default:* "Apache-2.0" -License's SPDX identifier. +--- -See https://github.com/projen/projen/tree/main/license-text for a list of supported licenses. -Use the `licensed` option if you want to no license to be specified. +##### ~~`manifest`~~Required + +- *Deprecated:* use `package.addField(x, y)` + +```typescript +public readonly manifest: any; +``` + +- *Type:* any --- -##### `licensed`Optional +##### `npmrc`Required ```typescript -public readonly licensed: boolean; +public readonly npmrc: NpmConfig; ``` -- *Type:* boolean -- *Default:* true +- *Type:* projen.javascript.NpmConfig -Indicates if a license should be added. +The .npmrc file. --- -##### `maxNodeVersion`Optional +##### `package`Required ```typescript -public readonly maxNodeVersion: string; +public readonly package: NodePackage; ``` -- *Type:* string -- *Default:* no max +- *Type:* projen.javascript.NodePackage -Minimum node.js version to require via `engines` (inclusive). +API for managing the node package. --- -##### `minNodeVersion`Optional +##### ~~`packageManager`~~Required + +- *Deprecated:* use `package.packageManager` ```typescript -public readonly minNodeVersion: string; +public readonly packageManager: NodePackageManager; ``` -- *Type:* string -- *Default:* no "engines" specified +- *Type:* projen.javascript.NodePackageManager -Minimum Node.js version to require via package.json `engines` (inclusive). +The package manager to use. --- -##### `npmAccess`Optional +##### `runScriptCommand`Required ```typescript -public readonly npmAccess: NpmAccess; +public readonly runScriptCommand: string; ``` -- *Type:* projen.javascript.NpmAccess -- *Default:* for scoped packages (e.g. `foo@bar`), the default is `NpmAccess.RESTRICTED`, for non-scoped packages, the default is `NpmAccess.PUBLIC`. +- *Type:* string -Access level of the npm package. +The command to use to run scripts (e.g. `yarn run` or `npm run` depends on the package manager). --- -##### ~~`npmRegistry`~~Optional - -- *Deprecated:* use `npmRegistryUrl` instead +##### `autoMerge`Optional ```typescript -public readonly npmRegistry: string; +public readonly autoMerge: AutoMerge; ``` -- *Type:* string - -The host name of the npm registry to publish to. +- *Type:* projen.github.AutoMerge -Cannot be set together with `npmRegistryUrl`. +Component that sets up mergify for merging approved pull requests. --- -##### `npmRegistryUrl`Optional +##### `buildWorkflow`Optional ```typescript -public readonly npmRegistryUrl: string; +public readonly buildWorkflow: BuildWorkflow; ``` -- *Type:* string -- *Default:* "https://registry.npmjs.org" +- *Type:* projen.build.BuildWorkflow -The base URL of the npm package registry. +The PR build GitHub workflow. -Must be a URL (e.g. start with "https://" or "http://") +`undefined` if `buildWorkflow` is disabled. --- -##### `npmTokenSecret`Optional +##### `buildWorkflowJobId`Optional ```typescript -public readonly npmTokenSecret: string; +public readonly buildWorkflowJobId: string; ``` - *Type:* string -- *Default:* "NPM_TOKEN" -GitHub secret which contains the NPM token to use when publishing packages. +The job ID of the build workflow. --- -##### `packageManager`Optional +##### `jest`Optional ```typescript -public readonly packageManager: NodePackageManager; +public readonly jest: Jest; ``` -- *Type:* projen.javascript.NodePackageManager -- *Default:* NodePackageManager.YARN +- *Type:* projen.javascript.Jest -The Node Package Manager used to execute scripts. +The Jest configuration (if enabled). --- -##### `packageName`Optional +##### `maxNodeVersion`Optional ```typescript -public readonly packageName: string; +public readonly maxNodeVersion: string; ``` - *Type:* string -- *Default:* defaults to project name -The "name" in package.json. +Maximum node version required by this package. --- -##### `peerDependencyOptions`Optional +##### `minNodeVersion`Optional ```typescript -public readonly peerDependencyOptions: PeerDependencyOptions; +public readonly minNodeVersion: string; ``` -- *Type:* projen.javascript.PeerDependencyOptions +- *Type:* string -Options for `peerDeps`. +Minimum node.js version required by this package. --- -##### `peerDeps`Optional +##### `npmignore`Optional ```typescript -public readonly peerDeps: string[]; +public readonly npmignore: IgnoreFile; ``` -- *Type:* string[] -- *Default:* [] - -Peer dependencies for this module. - -Dependencies listed here are required to -be installed (and satisfied) by the _consumer_ of this library. Using peer -dependencies allows you to ensure that only a single module of a certain -library exists in the `node_modules` tree of your consumers. - -Note that prior to npm@7, peer dependencies are _not_ automatically -installed, which means that adding peer dependencies to a library will be a -breaking change for your customers. +- *Type:* projen.IgnoreFile -Unless `peerDependencyOptions.pinnedDevDependency` is disabled (it is -enabled by default), projen will automatically add a dev dependency with a -pinned version for each peer dependency. This will ensure that you build & -test your module against the lowest peer version required. +The .npmignore file. --- -##### `pnpmVersion`Optional +##### `prettier`Optional ```typescript -public readonly pnpmVersion: string; +public readonly prettier: Prettier; ``` -- *Type:* string -- *Default:* "7" - -The version of PNPM to use if using PNPM as a package manager. +- *Type:* projen.javascript.Prettier --- -##### `repository`Optional +##### ~~`publisher`~~Optional + +- *Deprecated:* use `release.publisher`. ```typescript -public readonly repository: string; +public readonly publisher: Publisher; ``` -- *Type:* string +- *Type:* projen.release.Publisher -The repository is the location where the actual code for your package lives. +Package publisher. -See https://classic.yarnpkg.com/en/docs/package-json/#toc-repository +This will be `undefined` if the project does not have a +release workflow. --- -##### `repositoryDirectory`Optional +##### `release`Optional ```typescript -public readonly repositoryDirectory: string; +public readonly release: Release; ``` -- *Type:* string +- *Type:* projen.release.Release -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. +Release management. --- -##### `scopedPackagesOptions`Optional +##### `upgradeWorkflow`Optional ```typescript -public readonly scopedPackagesOptions: ScopedPackagesOptions[]; +public readonly upgradeWorkflow: UpgradeDependencies; ``` -- *Type:* projen.javascript.ScopedPackagesOptions[] -- *Default:* fetch all scoped packages from the public npm registry +- *Type:* projen.javascript.UpgradeDependencies -Options for privately hosted scoped packages. +The upgrade workflow. --- -##### ~~`scripts`~~Optional - -- *Deprecated:* use `project.addTask()` or `package.setScript()` +##### `docsDirectory`Required ```typescript -public readonly scripts: {[ key: string ]: string}; +public readonly docsDirectory: string; ``` -- *Type:* {[ key: string ]: string} -- *Default:* {} - -npm scripts to include. - -If a script has the same name as a standard script, -the standard script will be overwritten. -Also adds the script as a task. +- *Type:* string --- -##### `stability`Optional +##### `libdir`Required ```typescript -public readonly stability: string; +public readonly libdir: string; ``` - *Type:* string -Package's Stability. +The directory in which compiled .js files reside. --- -##### `jsiiReleaseVersion`Optional +##### `srcdir`Required ```typescript -public readonly jsiiReleaseVersion: string; +public readonly srcdir: string; ``` - *Type:* string -- *Default:* "latest" -Version requirement of `publib` which is used to publish modules to npm. +The directory in which the .ts sources reside. --- -##### `majorVersion`Optional +##### `testdir`Required ```typescript -public readonly majorVersion: number; +public readonly testdir: string; ``` -- *Type:* number -- *Default:* Major version is not enforced. - -Major version to release from the default branch. +- *Type:* string -If this is specified, we bump the latest version of this major version line. -If not specified, we bump the global latest version. +The directory in which tests reside. --- -##### `minMajorVersion`Optional +##### `tsconfigDev`Required ```typescript -public readonly minMajorVersion: number; +public readonly tsconfigDev: TypescriptConfig; ``` -- *Type:* number -- *Default:* No minimum version is being enforced - -Minimal Major version to release. - -This can be useful to set to 1, as breaking changes before the 1.x major -release are not incrementing the major version number. +- *Type:* projen.javascript.TypescriptConfig -Can not be set together with `majorVersion`. +A typescript configuration file which covers all files (sources, tests, projen). --- -##### `npmDistTag`Optional +##### `watchTask`Required ```typescript -public readonly npmDistTag: string; +public readonly watchTask: Task; ``` -- *Type:* string -- *Default:* "latest" - -The npmDistTag to use when publishing from the default branch. +- *Type:* projen.Task -To set the npm dist-tag for release branches, set the `npmDistTag` property -for each branch. +The "watch" task. --- -##### `postBuildSteps`Optional +##### `docgen`Optional ```typescript -public readonly postBuildSteps: JobStep[]; +public readonly docgen: boolean; ``` -- *Type:* projen.github.workflows.JobStep[] -- *Default:* [] - -Steps to execute after build as part of the release workflow. +- *Type:* boolean --- -##### `prerelease`Optional +##### `eslint`Optional ```typescript -public readonly prerelease: string; +public readonly eslint: Eslint; ``` -- *Type:* string -- *Default:* normal semantic versions - -Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). +- *Type:* projen.javascript.Eslint --- -##### `publishDryRun`Optional +##### `tsconfig`Optional ```typescript -public readonly publishDryRun: boolean; +public readonly tsconfig: TypescriptConfig; ``` -- *Type:* boolean -- *Default:* false - -Instead of actually publishing to package managers, just print the publishing command. +- *Type:* projen.javascript.TypescriptConfig --- -##### `publishTasks`Optional +##### `tsconfigEslint`Optional ```typescript -public readonly publishTasks: boolean; +public readonly tsconfigEslint: TypescriptConfig; ``` -- *Type:* boolean -- *Default:* false - -Define publishing tasks that can be executed manually as well as workflows. - -Normally, publishing only happens within automated workflows. Enable this -in order to create a publishing task for each publishing activity. +- *Type:* projen.javascript.TypescriptConfig --- -##### `releasableCommits`Optional +##### `cdkDeps`Required ```typescript -public readonly releasableCommits: ReleasableCommits; +public readonly cdkDeps: AwsCdkDeps; ``` -- *Type:* projen.ReleasableCommits -- *Default:* ReleasableCommits.everyCommit() - -Find commits that should be considered releasable Used to decide if a release is required. +- *Type:* projen.awscdk.AwsCdkDeps --- -##### `releaseBranches`Optional +##### `cdkVersion`Required ```typescript -public readonly releaseBranches: {[ key: string ]: BranchOptions}; +public readonly cdkVersion: string; ``` -- *Type:* {[ key: string ]: projen.release.BranchOptions} -- *Default:* no additional branches are used for release. you can use `addBranch()` to add additional branches. - -Defines additional release branches. +- *Type:* string -A workflow will be created for each -release branch which will publish releases from commits in this branch. -Each release branch _must_ be assigned a major version number which is used -to enforce that versions published from that branch always use that major -version. If multiple branches are used, the `majorVersion` field must also -be provided for the default branch. +The target CDK version for this library. --- -##### ~~`releaseEveryCommit`~~Optional +##### ~~`version`~~Required -- *Deprecated:* Use `releaseTrigger: ReleaseTrigger.continuous()` instead +- *Deprecated:* use `cdkVersion` ```typescript -public readonly releaseEveryCommit: boolean; +public readonly version: string; ``` -- *Type:* boolean -- *Default:* true - -Automatically release new versions every commit to one of branches in `releaseBranches`. +- *Type:* string --- -##### `releaseFailureIssue`Optional +##### `datadogEvent`Required ```typescript -public readonly releaseFailureIssue: boolean; +public readonly datadogEvent: boolean; ``` - *Type:* boolean -- *Default:* false -Create a github issue on every failed publishing task. +--- + +#### Constants + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| DEFAULT_TASK | string | The name of the default task (the task executed when `projen` is run without arguments). | --- -##### `releaseFailureIssueLabel`Optional +##### `DEFAULT_TASK`Required ```typescript -public readonly releaseFailureIssueLabel: string; +public readonly DEFAULT_TASK: string; ``` - *Type:* string -- *Default:* "failed-release" -The label to apply to issues indicating publish failures. +The name of the default task (the task executed when `projen` is run without arguments). -Only applies if `releaseFailureIssue` is true. +Normally +this task should synthesize the project files. --- -##### ~~`releaseSchedule`~~Optional +### ClickUpCdkTypeScriptApp -- *Deprecated:* Use `releaseTrigger: ReleaseTrigger.scheduled()` instead +ClickUp standardized CDK TypeScript App. + +Includes: +- default author information +- default proprietary license +- default release build configuration +- default linting and codecov configuration +- default minNodeVersion: '14.17.0' +- default deps and devDeps (you can add your own, but the base will always be present) + +#### Initializers ```typescript -public readonly releaseSchedule: string; -``` +import { clickupCdk } from '@time-loop/clickup-projen' -- *Type:* string -- *Default:* no scheduled releases +new clickupCdk.ClickUpCdkTypeScriptApp(options: ClickUpCdkTypeScriptAppOptions) +``` -CRON schedule to trigger new releases. +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| options | @time-loop/clickup-projen.clickupCdk.ClickUpCdkTypeScriptAppOptions | *No description.* | --- -##### `releaseTagPrefix`Optional +##### `options`Required -```typescript -public readonly releaseTagPrefix: string; -``` +- *Type:* @time-loop/clickup-projen.clickupCdk.ClickUpCdkTypeScriptAppOptions -- *Type:* string -- *Default:* "v" +--- -Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers. +#### Methods -Note: this prefix is used to detect the latest tagged version -when bumping, so if you change this on a project with an existing version -history, you may need to manually tag your latest release -with the new prefix. +| **Name** | **Description** | +| --- | --- | +| toString | Returns a string representation of this construct. | +| addExcludeFromCleanup | Exclude the matching files from pre-synth cleanup. | +| addGitIgnore | Adds a .gitignore pattern. | +| addPackageIgnore | Exclude these files from the bundled package. | +| addTask | Adds a new task to this project. | +| addTip | Prints a "tip" message during synthesis. | +| annotateGenerated | Marks the provided file(s) as being generated. | +| postSynthesize | Called after all components are synthesized. | +| preSynthesize | Called before all components are synthesized. | +| removeTask | Removes a task from a project. | +| runTaskCommand | Returns the shell command to execute in order to run a task. | +| synth | Synthesize all project files into `outdir`. | +| tryFindFile | Finds a file at the specified relative path within this project and all its subprojects. | +| tryFindJsonFile | Finds a json file by name. | +| tryFindObjectFile | Finds an object file (like JsonFile, YamlFile, etc.) by name. | +| tryRemoveFile | Finds a file at the specified relative path within this project and removes it. | +| addBins | *No description.* | +| addBundledDeps | Defines bundled dependencies. | +| addCompileCommand | DEPRECATED. | +| addDeps | Defines normal dependencies. | +| addDevDeps | Defines development/test dependencies. | +| addFields | Directly set fields in `package.json`. | +| addKeywords | Adds keywords to package.json (deduplicated). | +| addPeerDeps | Defines peer dependencies. | +| addScripts | Replaces the contents of multiple npm package.json scripts. | +| addTestCommand | DEPRECATED. | +| hasScript | Indicates if a script by the name name is defined. | +| removeScript | Removes the npm script (always successful). | +| renderWorkflowSetup | Returns the set of workflow steps which should be executed to bootstrap a workflow. | +| setScript | Replaces the contents of an npm package.json script. | +| addCdkDependency | Adds an AWS CDK module dependencies. | --- -##### `releaseTrigger`Optional +##### `toString` ```typescript -public readonly releaseTrigger: ReleaseTrigger; +public toString(): string ``` -- *Type:* projen.release.ReleaseTrigger -- *Default:* Continuous releases (`ReleaseTrigger.continuous()`) - -The release trigger to use. - ---- +Returns a string representation of this construct. -##### `releaseWorkflowName`Optional +##### `addExcludeFromCleanup` ```typescript -public readonly releaseWorkflowName: string; +public addExcludeFromCleanup(globs: string): void ``` +Exclude the matching files from pre-synth cleanup. + +Can be used when, for example, some +source files include the projen marker and we don't want them to be erased during synth. + +###### `globs`Required + - *Type:* string -- *Default:* "Release" -The name of the default release workflow. +The glob patterns to match. --- -##### `releaseWorkflowSetupSteps`Optional +##### `addGitIgnore` ```typescript -public readonly releaseWorkflowSetupSteps: JobStep[]; +public addGitIgnore(pattern: string): void ``` -- *Type:* projen.github.workflows.JobStep[] +Adds a .gitignore pattern. -A set of workflow steps to execute in order to setup the workflow container. +###### `pattern`Required + +- *Type:* string + +The glob pattern to ignore. --- -##### `versionrcOptions`Optional +##### `addPackageIgnore` ```typescript -public readonly versionrcOptions: {[ key: string ]: any}; +public addPackageIgnore(pattern: string): void ``` -- *Type:* {[ key: string ]: any} -- *Default:* standard configuration applicable for GitHub repositories +Exclude these files from the bundled package. -Custom configuration used when creating changelog with standard-version package. +Implemented by project types based on the +packaging mechanism. For example, `NodeProject` delegates this to `.npmignore`. -Given values either append to default configuration or overwrite values in it. +###### `pattern`Required + +- *Type:* string --- -##### `workflowContainerImage`Optional +##### `addTask` ```typescript -public readonly workflowContainerImage: string; +public addTask(name: string, props?: TaskOptions): Task ``` -- *Type:* string -- *Default:* default image - -Container image to use for GitHub workflows. - ---- +Adds a new task to this project. -##### `workflowRunsOn`Optional +This will fail if the project already has +a task with this name. -```typescript -public readonly workflowRunsOn: string[]; -``` +###### `name`Required -- *Type:* string[] -- *Default:* ["ubuntu-latest"] +- *Type:* string -Github Runner selection labels. +The task name to add. --- -##### `workflowRunsOnGroup`Optional - -```typescript -public readonly workflowRunsOnGroup: GroupRunnerOptions; -``` +###### `props`Optional -- *Type:* projen.GroupRunnerOptions +- *Type:* projen.TaskOptions -Github Runner Group selection options. +Task properties. --- -##### `defaultReleaseBranch`Required +##### ~~`addTip`~~ ```typescript -public readonly defaultReleaseBranch: string; +public addTip(message: string): void ``` +Prints a "tip" message during synthesis. + +###### `message`Required + - *Type:* string -- *Default:* "main" -The name of the main release branch. +The message. --- -##### `artifactsDirectory`Optional +##### `annotateGenerated` ```typescript -public readonly artifactsDirectory: string; +public annotateGenerated(glob: string): void ``` +Marks the provided file(s) as being generated. + +This is achieved using the +github-linguist attributes. Generated files do not count against the +repository statistics and language breakdown. + +> [https://github.com/github/linguist/blob/master/docs/overrides.md](https://github.com/github/linguist/blob/master/docs/overrides.md) + +###### `glob`Required + - *Type:* string -- *Default:* "dist" -A directory which will contain build artifacts. +the glob pattern to match (could be a file path). --- -##### `autoApproveUpgrades`Optional +##### `postSynthesize` ```typescript -public readonly autoApproveUpgrades: boolean; +public postSynthesize(): void ``` -- *Type:* boolean -- *Default:* true - -Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). - -Throw if set to true but `autoApproveOptions` are not defined. +Called after all components are synthesized. ---- +Order is *not* guaranteed. -##### `buildWorkflow`Optional +##### `preSynthesize` ```typescript -public readonly buildWorkflow: boolean; +public preSynthesize(): void ``` -- *Type:* boolean -- *Default:* true if not a subproject - -Define a GitHub workflow for building PRs. - ---- +Called before all components are synthesized. -##### `buildWorkflowTriggers`Optional +##### `removeTask` ```typescript -public readonly buildWorkflowTriggers: Triggers; +public removeTask(name: string): Task ``` -- *Type:* projen.github.workflows.Triggers -- *Default:* "{ pullRequest: {}, workflowDispatch: {} }" +Removes a task from a project. -Build workflow triggers. +###### `name`Required + +- *Type:* string + +The name of the task to remove. --- -##### `bundlerOptions`Optional +##### `runTaskCommand` ```typescript -public readonly bundlerOptions: BundlerOptions; +public runTaskCommand(task: Task): string ``` -- *Type:* projen.javascript.BundlerOptions +Returns the shell command to execute in order to run a task. -Options for `Bundler`. +This will +typically be `npx projen TASK`. + +###### `task`Required + +- *Type:* projen.Task + +The task for which the command is required. --- -##### `codeCov`Optional +##### `synth` ```typescript -public readonly codeCov: boolean; +public synth(): void ``` -- *Type:* boolean -- *Default:* false - -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`. +Synthesize all project files into `outdir`. ---- +1. Call "this.preSynthesize()" +2. Delete all generated files +3. Synthesize all subprojects +4. Synthesize all components of this project +5. Call "postSynthesize()" for all components of this project +6. Call "this.postSynthesize()" -##### `codeCovTokenSecret`Optional +##### `tryFindFile` ```typescript -public readonly codeCovTokenSecret: string; +public tryFindFile(filePath: string): FileBase ``` +Finds a file at the specified relative path within this project and all its subprojects. + +###### `filePath`Required + - *Type:* string -- *Default:* if this option is not specified, only public repositories are supported -Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. +The file path. + +If this path is relative, it will be resolved +from the root of _this_ project. --- -##### `copyrightOwner`Optional +##### ~~`tryFindJsonFile`~~ ```typescript -public readonly copyrightOwner: string; +public tryFindJsonFile(filePath: string): JsonFile ``` +Finds a json file by name. + +###### `filePath`Required + - *Type:* string -- *Default:* defaults to the value of authorName or "" if `authorName` is undefined. -License copyright owner. +The file path. --- -##### `copyrightPeriod`Optional +##### `tryFindObjectFile` ```typescript -public readonly copyrightPeriod: string; +public tryFindObjectFile(filePath: string): ObjectFile ``` +Finds an object file (like JsonFile, YamlFile, etc.) by name. + +###### `filePath`Required + - *Type:* string -- *Default:* current year -The copyright years to put in the LICENSE file. +The file path. --- -##### `dependabot`Optional +##### `tryRemoveFile` ```typescript -public readonly dependabot: boolean; +public tryRemoveFile(filePath: string): FileBase ``` -- *Type:* boolean -- *Default:* false +Finds a file at the specified relative path within this project and removes it. -Use dependabot to handle dependency upgrades. +###### `filePath`Required -Cannot be used in conjunction with `depsUpgrade`. +- *Type:* string + +The file path. + +If this path is relative, it will be +resolved from the root of _this_ project. --- -##### `dependabotOptions`Optional +##### `addBins` ```typescript -public readonly dependabotOptions: DependabotOptions; +public addBins(bins: {[ key: string ]: string}): void ``` -- *Type:* projen.github.DependabotOptions -- *Default:* default options +###### `bins`Required -Options for dependabot. +- *Type:* {[ key: string ]: string} --- -##### `depsUpgrade`Optional +##### `addBundledDeps` ```typescript -public readonly depsUpgrade: boolean; +public addBundledDeps(deps: string): void ``` -- *Type:* boolean -- *Default:* true - -Use tasks and github workflows to handle dependency upgrades. - -Cannot be used in conjunction with `dependabot`. +Defines bundled dependencies. ---- +Bundled dependencies will be added as normal dependencies as well as to the +`bundledDependencies` section of your `package.json`. -##### `depsUpgradeOptions`Optional +###### `deps`Required -```typescript -public readonly depsUpgradeOptions: UpgradeDependenciesOptions; -``` +- *Type:* string -- *Type:* projen.javascript.UpgradeDependenciesOptions -- *Default:* default options +Names modules to install. -Options for `UpgradeDependencies`. +By default, the the dependency will +be installed in the next `npx projen` run and the version will be recorded +in your `package.json` file. You can upgrade manually or using `yarn +add/upgrade`. If you wish to specify a version range use this syntax: +`module@^7`. --- -##### `gitignore`Optional +##### ~~`addCompileCommand`~~ ```typescript -public readonly gitignore: string[]; +public addCompileCommand(commands: string): void ``` -- *Type:* string[] +DEPRECATED. -Additional entries to .gitignore. +###### `commands`Required + +- *Type:* string --- -##### `jest`Optional +##### `addDeps` ```typescript -public readonly jest: boolean; +public addDeps(deps: string): void ``` -- *Type:* boolean -- *Default:* true - -Setup jest unit tests. - ---- +Defines normal dependencies. -##### `jestOptions`Optional +###### `deps`Required -```typescript -public readonly jestOptions: JestOptions; -``` +- *Type:* string -- *Type:* projen.javascript.JestOptions -- *Default:* default options +Names modules to install. -Jest options. +By default, the the dependency will +be installed in the next `npx projen` run and the version will be recorded +in your `package.json` file. You can upgrade manually or using `yarn +add/upgrade`. If you wish to specify a version range use this syntax: +`module@^7`. --- -##### `mutableBuild`Optional +##### `addDevDeps` ```typescript -public readonly mutableBuild: boolean; +public addDevDeps(deps: string): void ``` -- *Type:* boolean -- *Default:* true +Defines development/test dependencies. -Automatically update files modified during builds to pull-request branches. +###### `deps`Required -This means -that any files synthesized by projen or e.g. test snapshots will always be up-to-date -before a PR is merged. +- *Type:* string -Implies that PR builds do not have anti-tamper checks. +Names modules to install. ---- +By default, the the dependency will +be installed in the next `npx projen` run and the version will be recorded +in your `package.json` file. You can upgrade manually or using `yarn +add/upgrade`. If you wish to specify a version range use this syntax: +`module@^7`. -##### ~~`npmignore`~~Optional +--- -- *Deprecated:* - use `project.addPackageIgnore` +##### `addFields` ```typescript -public readonly npmignore: string[]; +public addFields(fields: {[ key: string ]: any}): void ``` -- *Type:* string[] +Directly set fields in `package.json`. + +###### `fields`Required + +- *Type:* {[ key: string ]: any} -Additional entries to .npmignore. +The fields to set. --- -##### `npmignoreEnabled`Optional +##### `addKeywords` ```typescript -public readonly npmignoreEnabled: boolean; +public addKeywords(keywords: string): void ``` -- *Type:* boolean -- *Default:* true +Adds keywords to package.json (deduplicated). -Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs. +###### `keywords`Required + +- *Type:* string + +The keywords to add. --- -##### `npmIgnoreOptions`Optional +##### `addPeerDeps` ```typescript -public readonly npmIgnoreOptions: IgnoreFileOptions; +public addPeerDeps(deps: string): void ``` -- *Type:* projen.IgnoreFileOptions - -Configuration options for .npmignore file. +Defines peer dependencies. ---- +When adding peer dependencies, a devDependency will also be added on the +pinned version of the declared peer. This will ensure that you are testing +your code against the minimum version required from your consumers. -##### `package`Optional +###### `deps`Required -```typescript -public readonly package: boolean; -``` +- *Type:* string -- *Type:* boolean -- *Default:* true +Names modules to install. -Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`). +By default, the the dependency will +be installed in the next `npx projen` run and the version will be recorded +in your `package.json` file. You can upgrade manually or using `yarn +add/upgrade`. If you wish to specify a version range use this syntax: +`module@^7`. --- -##### `prettier`Optional +##### `addScripts` ```typescript -public readonly prettier: boolean; +public addScripts(scripts: {[ key: string ]: string}): void ``` -- *Type:* boolean -- *Default:* false +Replaces the contents of multiple npm package.json scripts. -Setup prettier. +###### `scripts`Required + +- *Type:* {[ key: string ]: string} + +The scripts to set. --- -##### `prettierOptions`Optional +##### ~~`addTestCommand`~~ ```typescript -public readonly prettierOptions: PrettierOptions; +public addTestCommand(commands: string): void ``` -- *Type:* projen.javascript.PrettierOptions -- *Default:* default options +DEPRECATED. -Prettier options. +###### `commands`Required + +- *Type:* string --- -##### `projenDevDependency`Optional +##### ~~`hasScript`~~ ```typescript -public readonly projenDevDependency: boolean; +public hasScript(name: string): boolean ``` -- *Type:* boolean -- *Default:* true +Indicates if a script by the name name is defined. -Indicates of "projen" should be installed as a devDependency. +###### `name`Required + +- *Type:* string + +The name of the script. --- -##### `projenrcJs`Optional +##### `removeScript` ```typescript -public readonly projenrcJs: boolean; +public removeScript(name: string): void ``` -- *Type:* boolean -- *Default:* true if projenrcJson is false +Removes the npm script (always successful). -Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation. +###### `name`Required + +- *Type:* string + +The name of the script. --- -##### `projenrcJsOptions`Optional +##### `renderWorkflowSetup` ```typescript -public readonly projenrcJsOptions: ProjenrcOptions; +public renderWorkflowSetup(options?: RenderWorkflowSetupOptions): JobStep[] ``` -- *Type:* projen.javascript.ProjenrcOptions -- *Default:* default options +Returns the set of workflow steps which should be executed to bootstrap a workflow. -Options for .projenrc.js. +###### `options`Optional + +- *Type:* projen.javascript.RenderWorkflowSetupOptions + +Options. --- -##### `projenVersion`Optional +##### `setScript` ```typescript -public readonly projenVersion: string; +public setScript(name: string, command: string): void ``` +Replaces the contents of an npm package.json script. + +###### `name`Required + - *Type:* string -- *Default:* Defaults to the latest version. -Version of projen to install. +The script name. --- -##### `pullRequestTemplate`Optional - -```typescript -public readonly pullRequestTemplate: boolean; -``` +###### `command`Required -- *Type:* boolean -- *Default:* true +- *Type:* string -Include a GitHub pull request template. +The command to execute. --- -##### `pullRequestTemplateContents`Optional +##### `addCdkDependency` ```typescript -public readonly pullRequestTemplateContents: string[]; +public addCdkDependency(modules: string): void ``` -- *Type:* string[] -- *Default:* default content +Adds an AWS CDK module dependencies. -The contents of the pull request template. +###### `modules`Required ---- +- *Type:* string -##### `release`Optional +The list of modules to depend on. -```typescript -public readonly release: boolean; -``` +--- -- *Type:* boolean -- *Default:* true (false for subprojects) +#### Static Functions -Add release management to this project. +| **Name** | **Description** | +| --- | --- | +| isConstruct | Checks if `x` is a construct. | +| isProject | Test whether the given construct is a project. | +| of | Find the closest ancestor project for given construct. | --- -##### `releaseToNpm`Optional +##### `isConstruct` ```typescript -public readonly releaseToNpm: boolean; -``` - -- *Type:* boolean -- *Default:* false +import { clickupCdk } from '@time-loop/clickup-projen' -Automatically release to npm when new versions are introduced. +clickupCdk.ClickUpCdkTypeScriptApp.isConstruct(x: any) +``` ---- +Checks if `x` is a construct. -##### ~~`releaseWorkflow`~~Optional +Use this method instead of `instanceof` to properly detect `Construct` +instances, even when the construct library is symlinked. -- *Deprecated:* see `release`. +Explanation: in JavaScript, multiple copies of the `constructs` library on +disk are seen as independent, completely different libraries. As a +consequence, the class `Construct` in each copy of the `constructs` library +is seen as a different class, and an instance of one class will not test as +`instanceof` the other class. `npm install` will not create installations +like this, but users may manually symlink construct libraries together or +use a monorepo tool: in those cases, multiple copies of the `constructs` +library can be accidentally installed, and `instanceof` will behave +unpredictably. It is safest to avoid using `instanceof`, and using +this type-testing method instead. -```typescript -public readonly releaseWorkflow: boolean; -``` +###### `x`Required -- *Type:* boolean -- *Default:* true if not a subproject +- *Type:* any -DEPRECATED: renamed to `release`. +Any object. --- -##### `workflowBootstrapSteps`Optional +##### `isProject` ```typescript -public readonly workflowBootstrapSteps: JobStep[]; +import { clickupCdk } from '@time-loop/clickup-projen' + +clickupCdk.ClickUpCdkTypeScriptApp.isProject(x: any) ``` -- *Type:* projen.github.workflows.JobStep[] -- *Default:* "yarn install --frozen-lockfile && yarn projen" +Test whether the given construct is a project. -Workflow steps to use in order to bootstrap this repo. +###### `x`Required + +- *Type:* any --- -##### `workflowGitIdentity`Optional +##### `of` ```typescript -public readonly workflowGitIdentity: GitIdentity; +import { clickupCdk } from '@time-loop/clickup-projen' + +clickupCdk.ClickUpCdkTypeScriptApp.of(construct: IConstruct) ``` -- *Type:* projen.github.GitIdentity -- *Default:* GitHub Actions +Find the closest ancestor project for given construct. -The git identity to use in workflows. +When given a project, this it the project itself. ---- +###### `construct`Required -##### `workflowNodeVersion`Optional +- *Type:* constructs.IConstruct -```typescript -public readonly workflowNodeVersion: string; -``` +--- -- *Type:* string -- *Default:* same as `minNodeVersion` +#### Properties -The node version to use in GitHub workflows. +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| node | constructs.Node | The tree node. | +| buildTask | projen.Task | *No description.* | +| commitGenerated | boolean | Whether to commit the managed files by default. | +| compileTask | projen.Task | *No description.* | +| components | projen.Component[] | Returns all the components within this project. | +| deps | projen.Dependencies | Project dependencies. | +| ejected | boolean | Whether or not the project is being ejected. | +| files | projen.FileBase[] | All files in this project. | +| gitattributes | projen.GitAttributesFile | The .gitattributes file for this repository. | +| gitignore | projen.IgnoreFile | .gitignore. | +| logger | projen.Logger | Logging utilities. | +| name | string | Project name. | +| outdir | string | Absolute output directory of this project. | +| packageTask | projen.Task | *No description.* | +| postCompileTask | projen.Task | *No description.* | +| preCompileTask | projen.Task | *No description.* | +| projectBuild | projen.ProjectBuild | Manages the build process of the project. | +| projenCommand | string | The command to use in order to run the projen CLI. | +| root | projen.Project | The root project. | +| subprojects | projen.Project[] | Returns all the subprojects within this project. | +| tasks | projen.Tasks | Project tasks. | +| testTask | projen.Task | *No description.* | +| defaultTask | projen.Task | This is the "default" task, the one that executes "projen". | +| initProject | projen.InitProject | The options used when this project is bootstrapped via `projen new`. | +| parent | projen.Project | A parent project. | +| projectType | projen.ProjectType | *No description.* | +| autoApprove | projen.github.AutoApprove | Auto approve set up for this project. | +| devContainer | projen.vscode.DevContainer | Access for .devcontainer.json (used for GitHub Codespaces). | +| github | projen.github.GitHub | Access all github components. | +| gitpod | projen.Gitpod | Access for Gitpod. | +| vscode | projen.vscode.VsCode | Access all VSCode components. | +| allowLibraryDependencies | boolean | *No description.* | +| artifactsDirectory | string | The build output directory. | +| artifactsJavascriptDirectory | string | The location of the npm tarball after build (`${artifactsDirectory}/js`). | +| bundler | projen.javascript.Bundler | *No description.* | +| entrypoint | string | *No description.* | +| manifest | any | *No description.* | +| npmrc | projen.javascript.NpmConfig | The .npmrc file. | +| package | projen.javascript.NodePackage | API for managing the node package. | +| packageManager | projen.javascript.NodePackageManager | The package manager to use. | +| runScriptCommand | string | The command to use to run scripts (e.g. `yarn run` or `npm run` depends on the package manager). | +| autoMerge | projen.github.AutoMerge | Component that sets up mergify for merging approved pull requests. | +| buildWorkflow | projen.build.BuildWorkflow | The PR build GitHub workflow. | +| buildWorkflowJobId | string | The job ID of the build workflow. | +| jest | projen.javascript.Jest | The Jest configuration (if enabled). | +| maxNodeVersion | string | Maximum node version required by this package. | +| minNodeVersion | string | Minimum node.js version required by this package. | +| npmignore | projen.IgnoreFile | The .npmignore file. | +| prettier | projen.javascript.Prettier | *No description.* | +| publisher | projen.release.Publisher | Package publisher. | +| release | projen.release.Release | Release management. | +| upgradeWorkflow | projen.javascript.UpgradeDependencies | The upgrade workflow. | +| docsDirectory | string | *No description.* | +| libdir | string | The directory in which compiled .js files reside. | +| srcdir | string | The directory in which the .ts sources reside. | +| testdir | string | The directory in which tests reside. | +| tsconfigDev | projen.javascript.TypescriptConfig | A typescript configuration file which covers all files (sources, tests, projen). | +| watchTask | projen.Task | The "watch" task. | +| docgen | boolean | *No description.* | +| eslint | projen.javascript.Eslint | *No description.* | +| tsconfig | projen.javascript.TypescriptConfig | *No description.* | +| tsconfigEslint | projen.javascript.TypescriptConfig | *No description.* | +| appEntrypoint | string | The CDK app entrypoint. | +| cdkConfig | projen.awscdk.CdkConfig | cdk.json configuration. | +| cdkDeps | projen.awscdk.AwsCdkDeps | *No description.* | +| cdkTasks | projen.awscdk.CdkTasks | Common CDK tasks. | +| cdkVersion | string | The CDK version this app is using. | +| datadogEvent | boolean | *No description.* | +| workflowNodeVersion | string | *No description.* | --- -##### `workflowPackageCache`Optional +##### `node`Required ```typescript -public readonly workflowPackageCache: boolean; +public readonly node: Node; ``` -- *Type:* boolean -- *Default:* false +- *Type:* constructs.Node -Enable Node.js package cache in GitHub workflows. +The tree node. --- -##### `disableTsconfig`Optional +##### `buildTask`Required ```typescript -public readonly disableTsconfig: boolean; +public readonly buildTask: Task; ``` -- *Type:* boolean -- *Default:* false - -Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler). +- *Type:* projen.Task --- -##### `disableTsconfigDev`Optional +##### `commitGenerated`Required ```typescript -public readonly disableTsconfigDev: boolean; +public readonly commitGenerated: boolean; ``` - *Type:* boolean -- *Default:* false -Do not generate a `tsconfig.dev.json` file. +Whether to commit the managed files by default. --- -##### `docgen`Optional +##### `compileTask`Required ```typescript -public readonly docgen: boolean; +public readonly compileTask: Task; ``` -- *Type:* boolean -- *Default:* false - -Docgen by Typedoc. +- *Type:* projen.Task --- -##### `docsDirectory`Optional +##### `components`Required ```typescript -public readonly docsDirectory: string; +public readonly components: Component[]; ``` -- *Type:* string -- *Default:* "docs" +- *Type:* projen.Component[] -Docs directory. +Returns all the components within this project. --- -##### `entrypointTypes`Optional +##### `deps`Required ```typescript -public readonly entrypointTypes: string; +public readonly deps: Dependencies; ``` -- *Type:* string -- *Default:* .d.ts file derived from the project's entrypoint (usually lib/index.d.ts) +- *Type:* projen.Dependencies -The .d.ts file that includes the type declarations for this module. +Project dependencies. --- -##### `eslint`Optional +##### `ejected`Required ```typescript -public readonly eslint: boolean; +public readonly ejected: boolean; ``` - *Type:* boolean -- *Default:* true -Setup eslint. - ---- - -##### `eslintOptions`Optional - -```typescript -public readonly eslintOptions: EslintOptions; -``` - -- *Type:* projen.javascript.EslintOptions -- *Default:* opinionated default options - -Eslint options. +Whether or not the project is being ejected. --- -##### `libdir`Optional +##### `files`Required ```typescript -public readonly libdir: string; +public readonly files: FileBase[]; ``` -- *Type:* string -- *Default:* "lib" +- *Type:* projen.FileBase[] -Typescript artifacts output directory. +All files in this project. --- -##### `projenrcTs`Optional +##### `gitattributes`Required ```typescript -public readonly projenrcTs: boolean; +public readonly gitattributes: GitAttributesFile; ``` -- *Type:* boolean -- *Default:* false +- *Type:* projen.GitAttributesFile -Use TypeScript for your projenrc file (`.projenrc.ts`). +The .gitattributes file for this repository. --- -##### `projenrcTsOptions`Optional +##### `gitignore`Required ```typescript -public readonly projenrcTsOptions: ProjenrcOptions; +public readonly gitignore: IgnoreFile; ``` -- *Type:* projen.typescript.ProjenrcOptions +- *Type:* projen.IgnoreFile -Options for .projenrc.ts. +.gitignore. --- -##### `sampleCode`Optional +##### `logger`Required ```typescript -public readonly sampleCode: boolean; +public readonly logger: Logger; ``` -- *Type:* boolean -- *Default:* true +- *Type:* projen.Logger -Generate one-time sample in `src/` and `test/` if there are no files there. +Logging utilities. --- -##### `srcdir`Optional +##### `name`Required ```typescript -public readonly srcdir: string; +public readonly name: string; ``` - *Type:* string -- *Default:* "src" -Typescript sources directory. +Project name. --- -##### `testdir`Optional +##### `outdir`Required ```typescript -public readonly testdir: string; +public readonly outdir: string; ``` - *Type:* string -- *Default:* "test" - -Jest tests directory. Tests files should be named `xxx.test.ts`. -If this directory is under `srcdir` (e.g. `src/test`, `src/__tests__`), -then tests are going to be compiled into `lib/` and executed as javascript. -If the test directory is outside of `src`, then we configure jest to -compile the code in-memory. - ---- - -##### `tsconfig`Optional - -```typescript -public readonly tsconfig: TypescriptConfigOptions; -``` - -- *Type:* projen.javascript.TypescriptConfigOptions -- *Default:* default options - -Custom TSConfig. - ---- - -##### `tsconfigDev`Optional - -```typescript -public readonly tsconfigDev: TypescriptConfigOptions; -``` - -- *Type:* projen.javascript.TypescriptConfigOptions -- *Default:* use the production tsconfig options - -Custom tsconfig options for the development tsconfig.json file (used for testing). +Absolute output directory of this project. --- -##### `tsconfigDevFile`Optional +##### `packageTask`Required ```typescript -public readonly tsconfigDevFile: string; +public readonly packageTask: Task; ``` -- *Type:* string -- *Default:* "tsconfig.dev.json" - -The name of the development tsconfig.json file. +- *Type:* projen.Task --- -##### `typescriptVersion`Optional +##### `postCompileTask`Required ```typescript -public readonly typescriptVersion: string; +public readonly postCompileTask: Task; ``` -- *Type:* string -- *Default:* "latest" - -TypeScript version to use. - -NOTE: Typescript is not semantically versioned and should remain on the -same minor, so we recommend using a `~` dependency (e.g. `~1.2.3`). +- *Type:* projen.Task --- -##### `author`Required +##### `preCompileTask`Required ```typescript -public readonly author: string; +public readonly preCompileTask: Task; ``` -- *Type:* string -- *Default:* $GIT_USER_NAME - -The name of the library author. +- *Type:* projen.Task --- -##### `authorAddress`Required +##### `projectBuild`Required ```typescript -public readonly authorAddress: string; +public readonly projectBuild: ProjectBuild; ``` -- *Type:* string -- *Default:* $GIT_USER_EMAIL +- *Type:* projen.ProjectBuild -Email or URL of the library author. +Manages the build process of the project. --- -##### `repositoryUrl`Required +##### `projenCommand`Required ```typescript -public readonly repositoryUrl: string; +public readonly projenCommand: string; ``` - *Type:* string -- *Default:* $GIT_REMOTE - -Git repository URL. - ---- - -##### `compat`Optional - -```typescript -public readonly compat: boolean; -``` - -- *Type:* boolean -- *Default:* false -Automatically run API compatibility test against the latest version published to npm after compilation. - -You can manually run compatibility tests using `yarn compat` if this feature is disabled. -- You can ignore compatibility failures by adding lines to a ".compatignore" file. +The command to use in order to run the projen CLI. --- -##### `compatIgnore`Optional +##### `root`Required ```typescript -public readonly compatIgnore: string; +public readonly root: Project; ``` -- *Type:* string -- *Default:* ".compatignore" +- *Type:* projen.Project -Name of the ignore file for API compatibility tests. +The root project. --- -##### `compressAssembly`Optional +##### `subprojects`Required ```typescript -public readonly compressAssembly: boolean; +public readonly subprojects: Project[]; ``` -- *Type:* boolean -- *Default:* false +- *Type:* projen.Project[] -Emit a compressed version of the assembly. +Returns all the subprojects within this project. --- -##### `docgenFilePath`Optional +##### `tasks`Required ```typescript -public readonly docgenFilePath: string; +public readonly tasks: Tasks; ``` -- *Type:* string -- *Default:* "API.md" +- *Type:* projen.Tasks -File path for generated docs. +Project tasks. --- -##### ~~`dotnet`~~Optional - -- *Deprecated:* use `publishToNuget` +##### `testTask`Required ```typescript -public readonly dotnet: JsiiDotNetTarget; +public readonly testTask: Task; ``` -- *Type:* projen.cdk.JsiiDotNetTarget +- *Type:* projen.Task --- -##### `excludeTypescript`Optional +##### `defaultTask`Optional ```typescript -public readonly excludeTypescript: string[]; +public readonly defaultTask: Task; ``` -- *Type:* string[] - -Accepts a list of glob patterns. +- *Type:* projen.Task -Files matching any of those patterns will be excluded from the TypeScript compiler input. +This is the "default" task, the one that executes "projen". -By default, jsii will include all *.ts files (except .d.ts files) in the TypeScript compiler input. -This can be problematic for example when the package's build or test procedure generates .ts files -that cannot be compiled with jsii's compiler settings. +Undefined if +the project is being ejected. --- -##### `jsiiVersion`Optional +##### `initProject`Optional ```typescript -public readonly jsiiVersion: string; +public readonly initProject: InitProject; ``` -- *Type:* string -- *Default:* "1.x" - -Version of the jsii compiler to use. +- *Type:* projen.InitProject -Set to "*" if you want to manually manage the version of jsii in your -project by managing updates to `package.json` on your own. +The options used when this project is bootstrapped via `projen new`. -NOTE: The jsii compiler releases since 5.0.0 are not semantically versioned -and should remain on the same minor, so we recommend using a `~` dependency -(e.g. `~5.0.0`). +It +includes the original set of options passed to the CLI and also the JSII +FQN of the project type. --- -##### `publishToGo`Optional +##### `parent`Optional ```typescript -public readonly publishToGo: JsiiGoTarget; +public readonly parent: Project; ``` -- *Type:* projen.cdk.JsiiGoTarget -- *Default:* no publishing +- *Type:* projen.Project -Publish Go bindings to a git repository. +A parent project. + +If undefined, this is the root project. --- -##### `publishToMaven`Optional +##### `projectType`Required ```typescript -public readonly publishToMaven: JsiiJavaTarget; +public readonly projectType: ProjectType; ``` -- *Type:* projen.cdk.JsiiJavaTarget -- *Default:* no publishing - -Publish to maven. +- *Type:* projen.ProjectType --- -##### `publishToNuget`Optional +##### `autoApprove`Optional ```typescript -public readonly publishToNuget: JsiiDotNetTarget; +public readonly autoApprove: AutoApprove; ``` -- *Type:* projen.cdk.JsiiDotNetTarget -- *Default:* no publishing +- *Type:* projen.github.AutoApprove -Publish to NuGet. +Auto approve set up for this project. --- -##### `publishToPypi`Optional +##### `devContainer`Optional ```typescript -public readonly publishToPypi: JsiiPythonTarget; +public readonly devContainer: DevContainer; ``` -- *Type:* projen.cdk.JsiiPythonTarget -- *Default:* no publishing +- *Type:* projen.vscode.DevContainer -Publish to pypi. +Access for .devcontainer.json (used for GitHub Codespaces). ---- +This will be `undefined` if devContainer boolean is false -##### ~~`python`~~Optional +--- -- *Deprecated:* use `publishToPyPi` +##### `github`Optional ```typescript -public readonly python: JsiiPythonTarget; +public readonly github: GitHub; ``` -- *Type:* projen.cdk.JsiiPythonTarget - ---- - -##### `rootdir`Optional +- *Type:* projen.github.GitHub -```typescript -public readonly rootdir: string; -``` +Access all github components. -- *Type:* string -- *Default:* "." +This will be `undefined` for subprojects. --- -##### `catalog`Optional +##### `gitpod`Optional ```typescript -public readonly catalog: Catalog; +public readonly gitpod: Gitpod; ``` -- *Type:* projen.cdk.Catalog -- *Default:* new version will be announced - -Libraries will be picked up by the construct catalog when they are published to npm as jsii modules and will be published under:. - -https://awscdk.io/packages/[@SCOPE/]PACKAGE@VERSION - -The catalog will also post a tweet to https://twitter.com/awscdkio with the -package name, description and the above link. You can disable these tweets -through `{ announce: false }`. +- *Type:* projen.Gitpod -You can also add a Twitter handle through `{ twitter: 'xx' }` which will be -mentioned in the tweet. +Access for Gitpod. -> [https://github.com/construct-catalog/catalog](https://github.com/construct-catalog/catalog) +This will be `undefined` if gitpod boolean is false --- -##### `cdkVersion`Required +##### `vscode`Optional ```typescript -public readonly cdkVersion: string; +public readonly vscode: VsCode; ``` -- *Type:* string -- *Default:* "2.1.0" +- *Type:* projen.vscode.VsCode -Minimum version of the AWS CDK to depend on. +Access all VSCode components. + +This will be `undefined` for subprojects. --- -##### ~~`cdkAssert`~~Optional +##### ~~`allowLibraryDependencies`~~Required -- *Deprecated:* The +- *Deprecated:* use `package.allowLibraryDependencies` ```typescript -public readonly cdkAssert: boolean; +public readonly allowLibraryDependencies: boolean; ``` - *Type:* boolean -- *Default:* will be included by default for AWS CDK >= 1.0.0 < 2.0.0 - -Warning: NodeJS only. - -Install the --- -##### `cdkAssertions`Optional +##### `artifactsDirectory`Required ```typescript -public readonly cdkAssertions: boolean; +public readonly artifactsDirectory: string; ``` -- *Type:* boolean -- *Default:* will be included by default for AWS CDK >= 1.111.0 < 2.0.0 +- *Type:* string -Install the assertions library? +The build output directory. -Only needed for CDK 1.x. If using CDK 2.x then -assertions is already included in 'aws-cdk-lib' +An npm tarball will be created under the `js` +subdirectory. For example, if this is set to `dist` (the default), the npm +tarball will be placed under `dist/js/boom-boom-1.2.3.tg`. --- -##### ~~`cdkDependencies`~~Optional - -- *Deprecated:* For CDK 2.x use "deps" instead. (or "peerDeps" if you're building a library) +##### `artifactsJavascriptDirectory`Required ```typescript -public readonly cdkDependencies: string[]; +public readonly artifactsJavascriptDirectory: string; ``` -- *Type:* string[] +- *Type:* string -Which AWS CDKv1 modules this project requires. +The location of the npm tarball after build (`${artifactsDirectory}/js`). --- -##### ~~`cdkDependenciesAsDeps`~~Optional - -- *Deprecated:* Not supported in CDK v2. +##### `bundler`Required ```typescript -public readonly cdkDependenciesAsDeps: boolean; +public readonly bundler: Bundler; ``` -- *Type:* boolean -- *Default:* true +- *Type:* projen.javascript.Bundler -If this is enabled (default), all modules declared in `cdkDependencies` will be also added as normal `dependencies` (as well as `peerDependencies`). +--- -This is to ensure that downstream consumers actually have your CDK dependencies installed -when using npm < 7 or yarn, where peer dependencies are not automatically installed. -If this is disabled, `cdkDependencies` will be added to `devDependencies` to ensure -they are present during development. +##### ~~`entrypoint`~~Required -Note: this setting only applies to construct library projects +- *Deprecated:* use `package.entrypoint` + +```typescript +public readonly entrypoint: string; +``` + +- *Type:* string --- -##### ~~`cdkTestDependencies`~~Optional +##### ~~`manifest`~~Required -- *Deprecated:* For CDK 2.x use 'devDeps' (in node.js projects) or 'testDeps' (in java projects) instead +- *Deprecated:* use `package.addField(x, y)` ```typescript -public readonly cdkTestDependencies: string[]; +public readonly manifest: any; ``` -- *Type:* string[] - -AWS CDK modules required for testing. +- *Type:* any --- -##### `cdkVersionPinning`Optional +##### `npmrc`Required ```typescript -public readonly cdkVersionPinning: boolean; +public readonly npmrc: NpmConfig; ``` -- *Type:* boolean - -Use pinned version instead of caret version for CDK. +- *Type:* projen.javascript.NpmConfig -You can use this to prevent mixed versions for your CDK dependencies and to prevent auto-updates. -If you use experimental features this will let you define the moment you include breaking changes. +The .npmrc file. --- -##### `constructsVersion`Optional +##### `package`Required ```typescript -public readonly constructsVersion: string; +public readonly package: NodePackage; ``` -- *Type:* string -- *Default:* for CDK 1.x the default is "3.2.27", for CDK 2.x the default is "10.0.5". +- *Type:* projen.javascript.NodePackage -Minimum version of the `constructs` library to depend on. +API for managing the node package. --- -##### `edgeLambdaAutoDiscover`Optional +##### ~~`packageManager`~~Required + +- *Deprecated:* use `package.packageManager` ```typescript -public readonly edgeLambdaAutoDiscover: boolean; +public readonly packageManager: NodePackageManager; ``` -- *Type:* boolean -- *Default:* true +- *Type:* projen.javascript.NodePackageManager -Automatically adds an `cloudfront.experimental.EdgeFunction` for each `.edge-lambda.ts` handler in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project. +The package manager to use. --- -##### `integrationTestAutoDiscover`Optional +##### `runScriptCommand`Required ```typescript -public readonly integrationTestAutoDiscover: boolean; +public readonly runScriptCommand: string; ``` -- *Type:* boolean -- *Default:* true +- *Type:* string -Automatically discovers and creates integration tests for each `.integ.ts` file in under your test directory. +The command to use to run scripts (e.g. `yarn run` or `npm run` depends on the package manager). --- -##### `lambdaAutoDiscover`Optional +##### `autoMerge`Optional ```typescript -public readonly lambdaAutoDiscover: boolean; +public readonly autoMerge: AutoMerge; ``` -- *Type:* boolean -- *Default:* true +- *Type:* projen.github.AutoMerge -Automatically adds an `aws_lambda.Function` for each `.lambda.ts` handler in your source tree. If this is disabled, you either need to explicitly call `aws_lambda.Function.autoDiscover()` or define a `new aws_lambda.Function()` for each handler. +Component that sets up mergify for merging approved pull requests. --- -##### `lambdaExtensionAutoDiscover`Optional +##### `buildWorkflow`Optional ```typescript -public readonly lambdaExtensionAutoDiscover: boolean; +public readonly buildWorkflow: BuildWorkflow; ``` -- *Type:* boolean -- *Default:* true +- *Type:* projen.build.BuildWorkflow -Automatically adds an `awscdk.LambdaExtension` for each `.lambda-extension.ts` entrypoint in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project. +The PR build GitHub workflow. + +`undefined` if `buildWorkflow` is disabled. --- -##### `lambdaOptions`Optional +##### `buildWorkflowJobId`Optional ```typescript -public readonly lambdaOptions: LambdaFunctionCommonOptions; +public readonly buildWorkflowJobId: string; ``` -- *Type:* projen.awscdk.LambdaFunctionCommonOptions -- *Default:* default options +- *Type:* string -Common options for all AWS Lambda functions. +The job ID of the build workflow. --- -##### `sendSlackWebhookOnRelease`Optional +##### `jest`Optional ```typescript -public readonly sendSlackWebhookOnRelease: boolean; +public readonly jest: Jest; ``` -- *Type:* boolean -- *Default:* true +- *Type:* projen.javascript.Jest -Should we send a slack webhook on release (required for compliance audits). +The Jest configuration (if enabled). --- -##### `sendSlackWebhookOnReleaseOpts`Optional +##### `maxNodeVersion`Optional ```typescript -public readonly sendSlackWebhookOnReleaseOpts: ReleaseEventOptions; +public readonly maxNodeVersion: string; ``` -- *Type:* @time-loop/clickup-projen.slackAlert.ReleaseEventOptions - -Slack alert on release options. +- *Type:* string -Only valid when `sendSlackWebhookOnRelease` is true. +Maximum node version required by this package. --- -##### `cdkDiffOptionsConfig`Optional +##### `minNodeVersion`Optional ```typescript -public readonly cdkDiffOptionsConfig: CDKDiffOptionsConfig; +public readonly minNodeVersion: string; ``` -- *Type:* @time-loop/clickup-projen.cdkDiffWorkflow.CDKDiffOptionsConfig -- *Default:* undefined +- *Type:* string -Cdk diff options. +Minimum node.js version required by this package. --- -##### `renovateOptionsConfig`Optional +##### `npmignore`Optional ```typescript -public readonly renovateOptionsConfig: RenovateOptionsConfig; +public readonly npmignore: IgnoreFile; ``` -- *Type:* @time-loop/clickup-projen.renovateWorkflow.RenovateOptionsConfig -- *Default:* undefined +- *Type:* projen.IgnoreFile -Renovate options. +The .npmignore file. --- -##### `sendReleaseEvent`Optional +##### `prettier`Optional ```typescript -public readonly sendReleaseEvent: boolean; +public readonly prettier: Prettier; ``` -- *Type:* boolean -- *Default:* true - -Feature flag for datadog event sending on release. +- *Type:* projen.javascript.Prettier --- -##### `sendReleaseEventOpts`Optional +##### ~~`publisher`~~Optional + +- *Deprecated:* use `release.publisher`. ```typescript -public readonly sendReleaseEventOpts: ReleaseEventOptions; +public readonly publisher: Publisher; ``` -- *Type:* @time-loop/clickup-projen.datadog.ReleaseEventOptions -- *Default:* undefined +- *Type:* projen.release.Publisher -Datadog event options to use on release. +Package publisher. -Only valid when -`sendReleaseEvent` is true. +This will be `undefined` if the project does not have a +release workflow. --- -##### `serviceCatalogOptions`Optional +##### `release`Optional ```typescript -public readonly serviceCatalogOptions: ServiceCatalogOptions; +public readonly release: Release; ``` -- *Type:* @time-loop/clickup-projen.datadogServiceCatalog.ServiceCatalogOptions -- *Default:* undefined +- *Type:* projen.release.Release -Datadog Service Catalog options. +Release management. --- -### ClickUpCdkTypeScriptAppOptions - -#### Initializer +##### `upgradeWorkflow`Optional ```typescript -import { clickupCdk } from '@time-loop/clickup-projen' - -const clickUpCdkTypeScriptAppOptions: clickupCdk.ClickUpCdkTypeScriptAppOptions = { ... } +public readonly upgradeWorkflow: UpgradeDependencies; ``` -#### Properties +- *Type:* projen.javascript.UpgradeDependencies -| **Name** | **Type** | **Description** | -| --- | --- | --- | -| name | string | This is the name of your project. | -| commitGenerated | boolean | Whether to commit the managed files by default. | -| gitIgnoreOptions | projen.IgnoreFileOptions | Configuration options for .gitignore file. | -| gitOptions | projen.GitOptions | Configuration options for git. | -| logging | projen.LoggerOptions | Configure logging options such as verbosity. | -| outdir | string | The root directory of the project. | -| parent | projen.Project | The parent project, if this project is part of a bigger project. | -| projenCommand | string | The shell command to use in order to run the projen CLI. | -| projenrcJson | boolean | Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. | -| projenrcJsonOptions | projen.ProjenrcJsonOptions | Options for .projenrc.json. | -| renovatebot | boolean | Use renovatebot to handle dependency upgrades. | -| renovatebotOptions | projen.RenovatebotOptions | Options for renovatebot. | -| autoApproveOptions | projen.github.AutoApproveOptions | Enable and configure the 'auto approve' workflow. | -| autoMerge | boolean | Enable automatic merging on GitHub. | -| autoMergeOptions | projen.github.AutoMergeOptions | Configure options for automatic merging on GitHub. | -| clobber | boolean | Add a `clobber` task which resets the repo to origin. | -| devContainer | boolean | Add a VSCode development environment (used for GitHub Codespaces). | -| github | boolean | Enable GitHub integration. | -| githubOptions | projen.github.GitHubOptions | Options for GitHub integration. | -| gitpod | boolean | Add a Gitpod development environment. | -| mergify | boolean | Whether mergify should be enabled on this repository or not. | -| mergifyOptions | projen.github.MergifyOptions | Options for mergify. | -| projectType | projen.ProjectType | Which type of project this is (library/app). | -| projenCredentials | projen.github.GithubCredentials | Choose a method of providing GitHub API access for projen workflows. | -| projenTokenSecret | string | The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. | -| readme | projen.SampleReadmeProps | The README setup. | -| stale | boolean | Auto-close of stale issues and pull request. | -| staleOptions | projen.github.StaleOptions | Auto-close stale issues and pull requests. | -| vscode | boolean | Enable VSCode integration. | -| allowLibraryDependencies | boolean | Allow the project to include `peerDependencies` and `bundledDependencies`. | -| authorEmail | string | Author's e-mail. | -| authorName | string | Author's name. | -| authorOrganization | boolean | Is the author an organization. | -| authorUrl | string | Author's URL / Website. | -| autoDetectBin | boolean | Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section. | -| bin | {[ key: string ]: string} | Binary programs vended with your module. | -| bugsEmail | string | The email address to which issues should be reported. | -| bugsUrl | string | The url to your project's issue tracker. | -| bundledDeps | string[] | List of dependencies to bundle into this module. | -| codeArtifactOptions | projen.javascript.CodeArtifactOptions | Options for npm packages using AWS CodeArtifact. | -| deps | string[] | Runtime dependencies of this module. | -| description | string | The description is just a string that helps people understand the purpose of the package. | -| devDeps | string[] | Build dependencies for this module. | -| entrypoint | string | Module entrypoint (`main` in `package.json`). | -| homepage | string | Package's Homepage / Website. | -| keywords | string[] | Keywords to include in `package.json`. | -| license | string | License's SPDX identifier. | -| licensed | boolean | Indicates if a license should be added. | -| maxNodeVersion | string | Minimum node.js version to require via `engines` (inclusive). | -| minNodeVersion | string | Minimum Node.js version to require via package.json `engines` (inclusive). | -| npmAccess | projen.javascript.NpmAccess | Access level of the npm package. | -| npmRegistry | string | The host name of the npm registry to publish to. | -| npmRegistryUrl | string | The base URL of the npm package registry. | -| npmTokenSecret | string | GitHub secret which contains the NPM token to use when publishing packages. | -| packageManager | projen.javascript.NodePackageManager | The Node Package Manager used to execute scripts. | -| packageName | string | The "name" in package.json. | -| peerDependencyOptions | projen.javascript.PeerDependencyOptions | Options for `peerDeps`. | -| peerDeps | string[] | Peer dependencies for this module. | -| pnpmVersion | string | The version of PNPM to use if using PNPM as a package manager. | -| repository | string | The repository is the location where the actual code for your package lives. | -| repositoryDirectory | string | 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. | -| scopedPackagesOptions | projen.javascript.ScopedPackagesOptions[] | Options for privately hosted scoped packages. | -| scripts | {[ key: string ]: string} | npm scripts to include. | -| stability | string | Package's Stability. | -| jsiiReleaseVersion | string | Version requirement of `publib` which is used to publish modules to npm. | -| majorVersion | number | Major version to release from the default branch. | -| minMajorVersion | number | Minimal Major version to release. | -| npmDistTag | string | The npmDistTag to use when publishing from the default branch. | -| postBuildSteps | projen.github.workflows.JobStep[] | Steps to execute after build as part of the release workflow. | -| prerelease | string | Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). | -| publishDryRun | boolean | Instead of actually publishing to package managers, just print the publishing command. | -| publishTasks | boolean | Define publishing tasks that can be executed manually as well as workflows. | -| releasableCommits | projen.ReleasableCommits | Find commits that should be considered releasable Used to decide if a release is required. | -| releaseBranches | {[ key: string ]: projen.release.BranchOptions} | Defines additional release branches. | -| releaseEveryCommit | boolean | Automatically release new versions every commit to one of branches in `releaseBranches`. | -| releaseFailureIssue | boolean | Create a github issue on every failed publishing task. | -| releaseFailureIssueLabel | string | The label to apply to issues indicating publish failures. | -| releaseSchedule | string | CRON schedule to trigger new releases. | -| releaseTagPrefix | string | Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers. | -| releaseTrigger | projen.release.ReleaseTrigger | The release trigger to use. | -| releaseWorkflowName | string | The name of the default release workflow. | -| releaseWorkflowSetupSteps | projen.github.workflows.JobStep[] | A set of workflow steps to execute in order to setup the workflow container. | -| versionrcOptions | {[ key: string ]: any} | Custom configuration used when creating changelog with standard-version package. | -| workflowContainerImage | string | Container image to use for GitHub workflows. | -| workflowRunsOn | string[] | Github Runner selection labels. | -| workflowRunsOnGroup | projen.GroupRunnerOptions | Github Runner Group selection options. | -| defaultReleaseBranch | string | The name of the main release branch. | -| artifactsDirectory | string | A directory which will contain build artifacts. | -| autoApproveUpgrades | boolean | Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). | -| buildWorkflow | boolean | Define a GitHub workflow for building PRs. | -| buildWorkflowTriggers | projen.github.workflows.Triggers | Build workflow triggers. | -| bundlerOptions | projen.javascript.BundlerOptions | Options for `Bundler`. | -| codeCov | boolean | 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`. | -| codeCovTokenSecret | string | Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. | -| copyrightOwner | string | License copyright owner. | -| copyrightPeriod | string | The copyright years to put in the LICENSE file. | -| dependabot | boolean | Use dependabot to handle dependency upgrades. | -| dependabotOptions | projen.github.DependabotOptions | Options for dependabot. | -| depsUpgrade | boolean | Use tasks and github workflows to handle dependency upgrades. | -| depsUpgradeOptions | projen.javascript.UpgradeDependenciesOptions | Options for `UpgradeDependencies`. | -| gitignore | string[] | Additional entries to .gitignore. | -| jest | boolean | Setup jest unit tests. | -| jestOptions | projen.javascript.JestOptions | Jest options. | -| mutableBuild | boolean | Automatically update files modified during builds to pull-request branches. | -| npmignore | string[] | Additional entries to .npmignore. | -| npmignoreEnabled | boolean | Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs. | -| npmIgnoreOptions | projen.IgnoreFileOptions | Configuration options for .npmignore file. | -| package | boolean | Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`). | -| prettier | boolean | Setup prettier. | -| prettierOptions | projen.javascript.PrettierOptions | Prettier options. | -| projenDevDependency | boolean | Indicates of "projen" should be installed as a devDependency. | -| projenrcJs | boolean | Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation. | -| projenrcJsOptions | projen.javascript.ProjenrcOptions | Options for .projenrc.js. | -| projenVersion | string | Version of projen to install. | -| pullRequestTemplate | boolean | Include a GitHub pull request template. | -| pullRequestTemplateContents | string[] | The contents of the pull request template. | -| release | boolean | Add release management to this project. | -| releaseToNpm | boolean | Automatically release to npm when new versions are introduced. | -| releaseWorkflow | boolean | DEPRECATED: renamed to `release`. | -| workflowBootstrapSteps | projen.github.workflows.JobStep[] | Workflow steps to use in order to bootstrap this repo. | -| workflowGitIdentity | projen.github.GitIdentity | The git identity to use in workflows. | -| workflowNodeVersion | string | The node version to use in GitHub workflows. | -| workflowPackageCache | boolean | Enable Node.js package cache in GitHub workflows. | -| disableTsconfig | boolean | Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler). | -| disableTsconfigDev | boolean | Do not generate a `tsconfig.dev.json` file. | -| docgen | boolean | Docgen by Typedoc. | -| docsDirectory | string | Docs directory. | -| entrypointTypes | string | The .d.ts file that includes the type declarations for this module. | -| eslint | boolean | Setup eslint. | -| eslintOptions | projen.javascript.EslintOptions | Eslint options. | -| libdir | string | Typescript artifacts output directory. | -| projenrcTs | boolean | Use TypeScript for your projenrc file (`.projenrc.ts`). | -| projenrcTsOptions | projen.typescript.ProjenrcOptions | Options for .projenrc.ts. | -| sampleCode | boolean | Generate one-time sample in `src/` and `test/` if there are no files there. | -| srcdir | string | Typescript sources directory. | -| testdir | string | Jest tests directory. Tests files should be named `xxx.test.ts`. | -| tsconfig | projen.javascript.TypescriptConfigOptions | Custom TSConfig. | -| tsconfigDev | projen.javascript.TypescriptConfigOptions | Custom tsconfig options for the development tsconfig.json file (used for testing). | -| tsconfigDevFile | string | The name of the development tsconfig.json file. | -| typescriptVersion | string | TypeScript version to use. | -| buildCommand | string | A command to execute before synthesis. | -| cdkout | string | cdk.out directory. | -| context | {[ key: string ]: any} | Additional context to include in `cdk.json`. | -| featureFlags | boolean | Include all feature flags in cdk.json. | -| requireApproval | projen.awscdk.ApprovalLevel | To protect you against unintended changes that affect your security posture, the AWS CDK Toolkit prompts you to approve security-related changes before deploying them. | -| watchExcludes | string[] | Glob patterns to exclude from `cdk watch`. | -| watchIncludes | string[] | Glob patterns to include in `cdk watch`. | -| cdkVersion | string | Minimum version of the AWS CDK to depend on. | -| cdkAssert | boolean | Warning: NodeJS only. | -| cdkAssertions | boolean | Install the assertions library? | -| cdkDependencies | string[] | Which AWS CDKv1 modules this project requires. | -| cdkDependenciesAsDeps | boolean | If this is enabled (default), all modules declared in `cdkDependencies` will be also added as normal `dependencies` (as well as `peerDependencies`). | -| cdkTestDependencies | string[] | AWS CDK modules required for testing. | -| cdkVersionPinning | boolean | Use pinned version instead of caret version for CDK. | -| constructsVersion | string | Minimum version of the `constructs` library to depend on. | -| appEntrypoint | string | The CDK app's entrypoint (relative to the source directory, which is "src" by default). | -| edgeLambdaAutoDiscover | boolean | Automatically adds an `cloudfront.experimental.EdgeFunction` for each `.edge-lambda.ts` handler in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project. | -| integrationTestAutoDiscover | boolean | Automatically discovers and creates integration tests for each `.integ.ts` file in under your test directory. | -| lambdaAutoDiscover | boolean | Automatically adds an `awscdk.LambdaFunction` for each `.lambda.ts` handler in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project. | -| lambdaExtensionAutoDiscover | boolean | Automatically adds an `awscdk.LambdaExtension` for each `.lambda-extension.ts` entrypoint in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project. | -| lambdaOptions | projen.awscdk.LambdaFunctionCommonOptions | Common options for all AWS Lambda functions. | -| sendSlackWebhookOnRelease | boolean | Should we send a slack webhook on release (required for compliance audits). | -| sendSlackWebhookOnReleaseOpts | @time-loop/clickup-projen.slackAlert.ReleaseEventOptions | Slack alert on release options. | -| cdkDiffOptionsConfig | @time-loop/clickup-projen.cdkDiffWorkflow.CDKDiffOptionsConfig | Cdk diff options. | -| renovateOptionsConfig | @time-loop/clickup-projen.renovateWorkflow.RenovateOptionsConfig | Renovate options. | -| sendReleaseEvent | boolean | Feature flag for datadog event sending on release. | -| sendReleaseEventOpts | @time-loop/clickup-projen.datadog.ReleaseEventOptions | Datadog event options to use on release. | -| serviceCatalogOptions | @time-loop/clickup-projen.datadogServiceCatalog.ServiceCatalogOptions | Datadog Service Catalog options. | -| cdkContextJsonOptions | @time-loop/clickup-projen.cdkContextJson.Options | Add support for cdk.context.json lookups? This allows GitHub PRs to lookup missing things from your cdk.context.json file and then commit a self-mutation so that your PRs don't break. | +The upgrade workflow. --- -##### `name`Required +##### `docsDirectory`Required ```typescript -public readonly name: string; +public readonly docsDirectory: string; ``` - *Type:* string -- *Default:* $BASEDIR -This is the name of your project. +--- + +##### `libdir`Required + +```typescript +public readonly libdir: string; +``` + +- *Type:* string + +The directory in which compiled .js files reside. --- -##### `commitGenerated`Optional +##### `srcdir`Required ```typescript -public readonly commitGenerated: boolean; +public readonly srcdir: string; +``` + +- *Type:* string + +The directory in which the .ts sources reside. + +--- + +##### `testdir`Required + +```typescript +public readonly testdir: string; +``` + +- *Type:* string + +The directory in which tests reside. + +--- + +##### `tsconfigDev`Required + +```typescript +public readonly tsconfigDev: TypescriptConfig; +``` + +- *Type:* projen.javascript.TypescriptConfig + +A typescript configuration file which covers all files (sources, tests, projen). + +--- + +##### `watchTask`Required + +```typescript +public readonly watchTask: Task; +``` + +- *Type:* projen.Task + +The "watch" task. + +--- + +##### `docgen`Optional + +```typescript +public readonly docgen: boolean; ``` - *Type:* boolean -- *Default:* true -Whether to commit the managed files by default. +--- + +##### `eslint`Optional + +```typescript +public readonly eslint: Eslint; +``` + +- *Type:* projen.javascript.Eslint --- -##### `gitIgnoreOptions`Optional +##### `tsconfig`Optional ```typescript -public readonly gitIgnoreOptions: IgnoreFileOptions; +public readonly tsconfig: TypescriptConfig; ``` -- *Type:* projen.IgnoreFileOptions +- *Type:* projen.javascript.TypescriptConfig -Configuration options for .gitignore file. +--- + +##### `tsconfigEslint`Optional + +```typescript +public readonly tsconfigEslint: TypescriptConfig; +``` + +- *Type:* projen.javascript.TypescriptConfig --- -##### `gitOptions`Optional +##### `appEntrypoint`Required ```typescript -public readonly gitOptions: GitOptions; +public readonly appEntrypoint: string; ``` -- *Type:* projen.GitOptions +- *Type:* string -Configuration options for git. +The CDK app entrypoint. --- -##### `logging`Optional +##### `cdkConfig`Required ```typescript -public readonly logging: LoggerOptions; +public readonly cdkConfig: CdkConfig; ``` -- *Type:* projen.LoggerOptions -- *Default:* {} +- *Type:* projen.awscdk.CdkConfig -Configure logging options such as verbosity. +cdk.json configuration. --- -##### `outdir`Optional +##### `cdkDeps`Required ```typescript -public readonly outdir: string; +public readonly cdkDeps: AwsCdkDeps; +``` + +- *Type:* projen.awscdk.AwsCdkDeps + +--- + +##### `cdkTasks`Required + +```typescript +public readonly cdkTasks: CdkTasks; +``` + +- *Type:* projen.awscdk.CdkTasks + +Common CDK tasks. + +--- + +##### `cdkVersion`Required + +```typescript +public readonly cdkVersion: string; ``` - *Type:* string -- *Default:* "." -The root directory of the project. +The CDK version this app is using. -Relative to this directory, all files are synthesized. +--- -If this project has a parent, this directory is relative to the parent -directory and it cannot be the same as the parent or any of it's other -sub-projects. +##### `datadogEvent`Required + +```typescript +public readonly datadogEvent: boolean; +``` + +- *Type:* boolean + +--- + +##### `workflowNodeVersion`Optional + +```typescript +public readonly workflowNodeVersion: string; +``` + +- *Type:* string + +--- + +#### Constants + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| DEFAULT_TASK | string | The name of the default task (the task executed when `projen` is run without arguments). | + +--- + +##### `DEFAULT_TASK`Required + +```typescript +public readonly DEFAULT_TASK: string; +``` + +- *Type:* string + +The name of the default task (the task executed when `projen` is run without arguments). + +Normally +this task should synthesize the project files. + +--- + +### ClickUpTypeScriptProject + +ClickUp standardized TypeScript Project. + +Includes: +- default author information +- default proprietary license +- default release build configuration +- default linting and codecov configuration +- default minNodeVersion: '14.17.0' +- default devDeps (you can add your own, but the base will always be present) + +Note that for GitHub Packages to work, the package has to be scoped into the `@time-loop` project. +We handle that automatically. + +#### Initializers + +```typescript +import { clickupTs } from '@time-loop/clickup-projen' + +new clickupTs.ClickUpTypeScriptProject(options: ClickUpTypeScriptProjectOptions) +``` + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| options | @time-loop/clickup-projen.clickupTs.ClickUpTypeScriptProjectOptions | *No description.* | + +--- + +##### `options`Required + +- *Type:* @time-loop/clickup-projen.clickupTs.ClickUpTypeScriptProjectOptions + +--- + +#### Methods + +| **Name** | **Description** | +| --- | --- | +| toString | Returns a string representation of this construct. | +| addExcludeFromCleanup | Exclude the matching files from pre-synth cleanup. | +| addGitIgnore | Adds a .gitignore pattern. | +| addPackageIgnore | Exclude these files from the bundled package. | +| addTask | Adds a new task to this project. | +| addTip | Prints a "tip" message during synthesis. | +| annotateGenerated | Marks the provided file(s) as being generated. | +| postSynthesize | Called after all components are synthesized. | +| preSynthesize | Called before all components are synthesized. | +| removeTask | Removes a task from a project. | +| runTaskCommand | Returns the shell command to execute in order to run a task. | +| synth | Synthesize all project files into `outdir`. | +| tryFindFile | Finds a file at the specified relative path within this project and all its subprojects. | +| tryFindJsonFile | Finds a json file by name. | +| tryFindObjectFile | Finds an object file (like JsonFile, YamlFile, etc.) by name. | +| tryRemoveFile | Finds a file at the specified relative path within this project and removes it. | +| addBins | *No description.* | +| addBundledDeps | Defines bundled dependencies. | +| addCompileCommand | DEPRECATED. | +| addDeps | Defines normal dependencies. | +| addDevDeps | Defines development/test dependencies. | +| addFields | Directly set fields in `package.json`. | +| addKeywords | Adds keywords to package.json (deduplicated). | +| addPeerDeps | Defines peer dependencies. | +| addScripts | Replaces the contents of multiple npm package.json scripts. | +| addTestCommand | DEPRECATED. | +| hasScript | Indicates if a script by the name name is defined. | +| removeScript | Removes the npm script (always successful). | +| renderWorkflowSetup | Returns the set of workflow steps which should be executed to bootstrap a workflow. | +| setScript | Replaces the contents of an npm package.json script. | --- -##### `parent`Optional +##### `toString` ```typescript -public readonly parent: Project; +public toString(): string ``` -- *Type:* projen.Project - -The parent project, if this project is part of a bigger project. - ---- +Returns a string representation of this construct. -##### `projenCommand`Optional +##### `addExcludeFromCleanup` ```typescript -public readonly projenCommand: string; +public addExcludeFromCleanup(globs: string): void ``` -- *Type:* string -- *Default:* "npx projen" - -The shell command to use in order to run the projen CLI. - -Can be used to customize in special environments. - ---- +Exclude the matching files from pre-synth cleanup. -##### `projenrcJson`Optional +Can be used when, for example, some +source files include the projen marker and we don't want them to be erased during synth. -```typescript -public readonly projenrcJson: boolean; -``` +###### `globs`Required -- *Type:* boolean -- *Default:* false +- *Type:* string -Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. +The glob patterns to match. --- -##### `projenrcJsonOptions`Optional +##### `addGitIgnore` ```typescript -public readonly projenrcJsonOptions: ProjenrcJsonOptions; +public addGitIgnore(pattern: string): void ``` -- *Type:* projen.ProjenrcJsonOptions -- *Default:* default options - -Options for .projenrc.json. - ---- - -##### `renovatebot`Optional +Adds a .gitignore pattern. -```typescript -public readonly renovatebot: boolean; -``` +###### `pattern`Required -- *Type:* boolean -- *Default:* false +- *Type:* string -Use renovatebot to handle dependency upgrades. +The glob pattern to ignore. --- -##### `renovatebotOptions`Optional +##### `addPackageIgnore` ```typescript -public readonly renovatebotOptions: RenovatebotOptions; +public addPackageIgnore(pattern: string): void ``` -- *Type:* projen.RenovatebotOptions -- *Default:* default options - -Options for renovatebot. - ---- - -##### `autoApproveOptions`Optional +Exclude these files from the bundled package. -```typescript -public readonly autoApproveOptions: AutoApproveOptions; -``` +Implemented by project types based on the +packaging mechanism. For example, `NodeProject` delegates this to `.npmignore`. -- *Type:* projen.github.AutoApproveOptions -- *Default:* auto approve is disabled +###### `pattern`Required -Enable and configure the 'auto approve' workflow. +- *Type:* string --- -##### `autoMerge`Optional +##### `addTask` ```typescript -public readonly autoMerge: boolean; +public addTask(name: string, props?: TaskOptions): Task ``` -- *Type:* boolean -- *Default:* true +Adds a new task to this project. -Enable automatic merging on GitHub. +This will fail if the project already has +a task with this name. -Has no effect if `github.mergify` -is set to false. +###### `name`Required ---- +- *Type:* string -##### `autoMergeOptions`Optional +The task name to add. -```typescript -public readonly autoMergeOptions: AutoMergeOptions; -``` +--- -- *Type:* projen.github.AutoMergeOptions -- *Default:* see defaults in `AutoMergeOptions` +###### `props`Optional -Configure options for automatic merging on GitHub. +- *Type:* projen.TaskOptions -Has no effect if -`github.mergify` or `autoMerge` is set to false. +Task properties. --- -##### `clobber`Optional +##### ~~`addTip`~~ ```typescript -public readonly clobber: boolean; +public addTip(message: string): void ``` -- *Type:* boolean -- *Default:* true, but false for subprojects +Prints a "tip" message during synthesis. -Add a `clobber` task which resets the repo to origin. +###### `message`Required + +- *Type:* string + +The message. --- -##### `devContainer`Optional +##### `annotateGenerated` ```typescript -public readonly devContainer: boolean; +public annotateGenerated(glob: string): void ``` -- *Type:* boolean -- *Default:* false - -Add a VSCode development environment (used for GitHub Codespaces). - ---- +Marks the provided file(s) as being generated. -##### `github`Optional +This is achieved using the +github-linguist attributes. Generated files do not count against the +repository statistics and language breakdown. -```typescript -public readonly github: boolean; -``` +> [https://github.com/github/linguist/blob/master/docs/overrides.md](https://github.com/github/linguist/blob/master/docs/overrides.md) -- *Type:* boolean -- *Default:* true +###### `glob`Required -Enable GitHub integration. +- *Type:* string -Enabled by default for root projects. Disabled for non-root projects. +the glob pattern to match (could be a file path). --- -##### `githubOptions`Optional +##### `postSynthesize` ```typescript -public readonly githubOptions: GitHubOptions; +public postSynthesize(): void ``` -- *Type:* projen.github.GitHubOptions -- *Default:* see GitHubOptions - -Options for GitHub integration. +Called after all components are synthesized. ---- +Order is *not* guaranteed. -##### `gitpod`Optional +##### `preSynthesize` ```typescript -public readonly gitpod: boolean; +public preSynthesize(): void ``` -- *Type:* boolean -- *Default:* false - -Add a Gitpod development environment. - ---- - -##### ~~`mergify`~~Optional +Called before all components are synthesized. -- *Deprecated:* use `githubOptions.mergify` instead +##### `removeTask` ```typescript -public readonly mergify: boolean; +public removeTask(name: string): Task ``` -- *Type:* boolean -- *Default:* true +Removes a task from a project. -Whether mergify should be enabled on this repository or not. +###### `name`Required ---- +- *Type:* string -##### ~~`mergifyOptions`~~Optional +The name of the task to remove. -- *Deprecated:* use `githubOptions.mergifyOptions` instead +--- + +##### `runTaskCommand` ```typescript -public readonly mergifyOptions: MergifyOptions; +public runTaskCommand(task: Task): string ``` -- *Type:* projen.github.MergifyOptions -- *Default:* default options - -Options for mergify. - ---- - -##### ~~`projectType`~~Optional +Returns the shell command to execute in order to run a task. -- *Deprecated:* no longer supported at the base project level +This will +typically be `npx projen TASK`. -```typescript -public readonly projectType: ProjectType; -``` +###### `task`Required -- *Type:* projen.ProjectType -- *Default:* ProjectType.UNKNOWN +- *Type:* projen.Task -Which type of project this is (library/app). +The task for which the command is required. --- -##### `projenCredentials`Optional +##### `synth` ```typescript -public readonly projenCredentials: GithubCredentials; +public synth(): void ``` -- *Type:* projen.github.GithubCredentials -- *Default:* use a personal access token named PROJEN_GITHUB_TOKEN - -Choose a method of providing GitHub API access for projen workflows. - ---- +Synthesize all project files into `outdir`. -##### ~~`projenTokenSecret`~~Optional +1. Call "this.preSynthesize()" +2. Delete all generated files +3. Synthesize all subprojects +4. Synthesize all components of this project +5. Call "postSynthesize()" for all components of this project +6. Call "this.postSynthesize()" -- *Deprecated:* use `projenCredentials` +##### `tryFindFile` ```typescript -public readonly projenTokenSecret: string; +public tryFindFile(filePath: string): FileBase ``` +Finds a file at the specified relative path within this project and all its subprojects. + +###### `filePath`Required + - *Type:* string -- *Default:* "PROJEN_GITHUB_TOKEN" -The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. +The file path. -This token needs to have the `repo`, `workflows` -and `packages` scope. +If this path is relative, it will be resolved +from the root of _this_ project. --- -##### `readme`Optional +##### ~~`tryFindJsonFile`~~ ```typescript -public readonly readme: SampleReadmeProps; +public tryFindJsonFile(filePath: string): JsonFile ``` -- *Type:* projen.SampleReadmeProps -- *Default:* { filename: 'README.md', contents: '# replace this' } +Finds a json file by name. -The README setup. +###### `filePath`Required + +- *Type:* string + +The file path. --- -*Example* +##### `tryFindObjectFile` ```typescript -"{ filename: 'readme.md', contents: '# title' }" +public tryFindObjectFile(filePath: string): ObjectFile ``` +Finds an object file (like JsonFile, YamlFile, etc.) by name. -##### `stale`Optional +###### `filePath`Required + +- *Type:* string + +The file path. + +--- + +##### `tryRemoveFile` ```typescript -public readonly stale: boolean; +public tryRemoveFile(filePath: string): FileBase ``` -- *Type:* boolean -- *Default:* false +Finds a file at the specified relative path within this project and removes it. -Auto-close of stale issues and pull request. +###### `filePath`Required -See `staleOptions` for options. +- *Type:* string + +The file path. + +If this path is relative, it will be +resolved from the root of _this_ project. --- -##### `staleOptions`Optional +##### `addBins` ```typescript -public readonly staleOptions: StaleOptions; +public addBins(bins: {[ key: string ]: string}): void ``` -- *Type:* projen.github.StaleOptions -- *Default:* see defaults in `StaleOptions` - -Auto-close stale issues and pull requests. +###### `bins`Required -To disable set `stale` to `false`. +- *Type:* {[ key: string ]: string} --- -##### `vscode`Optional +##### `addBundledDeps` ```typescript -public readonly vscode: boolean; +public addBundledDeps(deps: string): void ``` -- *Type:* boolean -- *Default:* true +Defines bundled dependencies. -Enable VSCode integration. +Bundled dependencies will be added as normal dependencies as well as to the +`bundledDependencies` section of your `package.json`. -Enabled by default for root projects. Disabled for non-root projects. +###### `deps`Required + +- *Type:* string + +Names modules to install. + +By default, the the dependency will +be installed in the next `npx projen` run and the version will be recorded +in your `package.json` file. You can upgrade manually or using `yarn +add/upgrade`. If you wish to specify a version range use this syntax: +`module@^7`. --- -##### `allowLibraryDependencies`Optional +##### ~~`addCompileCommand`~~ ```typescript -public readonly allowLibraryDependencies: boolean; +public addCompileCommand(commands: string): void ``` -- *Type:* boolean -- *Default:* true +DEPRECATED. -Allow the project to include `peerDependencies` and `bundledDependencies`. +###### `commands`Required -This is normally only allowed for libraries. For apps, there's no meaning -for specifying these. +- *Type:* string --- -##### `authorEmail`Optional +##### `addDeps` ```typescript -public readonly authorEmail: string; +public addDeps(deps: string): void ``` +Defines normal dependencies. + +###### `deps`Required + - *Type:* string -Author's e-mail. +Names modules to install. + +By default, the the dependency will +be installed in the next `npx projen` run and the version will be recorded +in your `package.json` file. You can upgrade manually or using `yarn +add/upgrade`. If you wish to specify a version range use this syntax: +`module@^7`. --- -##### `authorName`Optional +##### `addDevDeps` ```typescript -public readonly authorName: string; +public addDevDeps(deps: string): void ``` +Defines development/test dependencies. + +###### `deps`Required + - *Type:* string -Author's name. +Names modules to install. + +By default, the the dependency will +be installed in the next `npx projen` run and the version will be recorded +in your `package.json` file. You can upgrade manually or using `yarn +add/upgrade`. If you wish to specify a version range use this syntax: +`module@^7`. --- -##### `authorOrganization`Optional +##### `addFields` ```typescript -public readonly authorOrganization: boolean; +public addFields(fields: {[ key: string ]: any}): void ``` -- *Type:* boolean +Directly set fields in `package.json`. -Is the author an organization. +###### `fields`Required + +- *Type:* {[ key: string ]: any} + +The fields to set. --- -##### `authorUrl`Optional +##### `addKeywords` ```typescript -public readonly authorUrl: string; +public addKeywords(keywords: string): void ``` +Adds keywords to package.json (deduplicated). + +###### `keywords`Required + - *Type:* string -Author's URL / Website. +The keywords to add. --- -##### `autoDetectBin`Optional +##### `addPeerDeps` ```typescript -public readonly autoDetectBin: boolean; +public addPeerDeps(deps: string): void ``` -- *Type:* boolean -- *Default:* true - -Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section. - ---- +Defines peer dependencies. -##### `bin`Optional +When adding peer dependencies, a devDependency will also be added on the +pinned version of the declared peer. This will ensure that you are testing +your code against the minimum version required from your consumers. -```typescript -public readonly bin: {[ key: string ]: string}; -``` +###### `deps`Required -- *Type:* {[ key: string ]: string} +- *Type:* string -Binary programs vended with your module. +Names modules to install. -You can use this option to add/customize how binaries are represented in -your `package.json`, but unless `autoDetectBin` is `false`, every -executable file under `bin` will automatically be added to this section. +By default, the the dependency will +be installed in the next `npx projen` run and the version will be recorded +in your `package.json` file. You can upgrade manually or using `yarn +add/upgrade`. If you wish to specify a version range use this syntax: +`module@^7`. --- -##### `bugsEmail`Optional +##### `addScripts` ```typescript -public readonly bugsEmail: string; +public addScripts(scripts: {[ key: string ]: string}): void ``` -- *Type:* string +Replaces the contents of multiple npm package.json scripts. -The email address to which issues should be reported. +###### `scripts`Required + +- *Type:* {[ key: string ]: string} + +The scripts to set. --- -##### `bugsUrl`Optional +##### ~~`addTestCommand`~~ ```typescript -public readonly bugsUrl: string; +public addTestCommand(commands: string): void ``` -- *Type:* string +DEPRECATED. -The url to your project's issue tracker. +###### `commands`Required + +- *Type:* string --- -##### `bundledDeps`Optional +##### ~~`hasScript`~~ ```typescript -public readonly bundledDeps: string[]; +public hasScript(name: string): boolean ``` -- *Type:* string[] +Indicates if a script by the name name is defined. -List of dependencies to bundle into this module. +###### `name`Required -These modules will be -added both to the `dependencies` section and `bundledDependencies` section of -your `package.json`. +- *Type:* string -The recommendation is to only specify the module name here (e.g. -`express`). This will behave similar to `yarn add` or `npm install` in the -sense that it will add the module as a dependency to your `package.json` -file with the latest version (`^`). You can specify semver requirements in -the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and -this will be what you `package.json` will eventually include. +The name of the script. --- -##### `codeArtifactOptions`Optional +##### `removeScript` ```typescript -public readonly codeArtifactOptions: CodeArtifactOptions; +public removeScript(name: string): void ``` -- *Type:* projen.javascript.CodeArtifactOptions -- *Default:* undefined +Removes the npm script (always successful). -Options for npm packages using AWS CodeArtifact. +###### `name`Required -This is required if publishing packages to, or installing scoped packages from AWS CodeArtifact +- *Type:* string + +The name of the script. --- -##### `deps`Optional +##### `renderWorkflowSetup` ```typescript -public readonly deps: string[]; +public renderWorkflowSetup(options?: RenderWorkflowSetupOptions): JobStep[] ``` -- *Type:* string[] -- *Default:* [] +Returns the set of workflow steps which should be executed to bootstrap a workflow. -Runtime dependencies of this module. +###### `options`Optional -The recommendation is to only specify the module name here (e.g. -`express`). This will behave similar to `yarn add` or `npm install` in the -sense that it will add the module as a dependency to your `package.json` -file with the latest version (`^`). You can specify semver requirements in -the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and -this will be what you `package.json` will eventually include. +- *Type:* projen.javascript.RenderWorkflowSetupOptions + +Options. --- -*Example* +##### `setScript` ```typescript -[ 'express', 'lodash', 'foo@^2' ] +public setScript(name: string, command: string): void ``` +Replaces the contents of an npm package.json script. -##### `description`Optional - -```typescript -public readonly description: string; -``` +###### `name`Required - *Type:* string -The description is just a string that helps people understand the purpose of the package. - -It can be used when searching for packages in a package manager as well. -See https://classic.yarnpkg.com/en/docs/package-json/#toc-description +The script name. --- -##### `devDeps`Optional +###### `command`Required -```typescript -public readonly devDeps: string[]; -``` +- *Type:* string -- *Type:* string[] -- *Default:* [] +The command to execute. -Build dependencies for this module. +--- -These dependencies will only be -available in your build environment but will not be fetched when this -module is consumed. +#### Static Functions -The recommendation is to only specify the module name here (e.g. -`express`). This will behave similar to `yarn add` or `npm install` in the -sense that it will add the module as a dependency to your `package.json` -file with the latest version (`^`). You can specify semver requirements in -the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and -this will be what you `package.json` will eventually include. +| **Name** | **Description** | +| --- | --- | +| isConstruct | Checks if `x` is a construct. | +| isProject | Test whether the given construct is a project. | +| of | Find the closest ancestor project for given construct. | --- -*Example* +##### `isConstruct` ```typescript -[ 'typescript', '@types/express' ] +import { clickupTs } from '@time-loop/clickup-projen' + +clickupTs.ClickUpTypeScriptProject.isConstruct(x: any) ``` +Checks if `x` is a construct. -##### `entrypoint`Optional +Use this method instead of `instanceof` to properly detect `Construct` +instances, even when the construct library is symlinked. -```typescript -public readonly entrypoint: string; -``` +Explanation: in JavaScript, multiple copies of the `constructs` library on +disk are seen as independent, completely different libraries. As a +consequence, the class `Construct` in each copy of the `constructs` library +is seen as a different class, and an instance of one class will not test as +`instanceof` the other class. `npm install` will not create installations +like this, but users may manually symlink construct libraries together or +use a monorepo tool: in those cases, multiple copies of the `constructs` +library can be accidentally installed, and `instanceof` will behave +unpredictably. It is safest to avoid using `instanceof`, and using +this type-testing method instead. -- *Type:* string -- *Default:* "lib/index.js" +###### `x`Required -Module entrypoint (`main` in `package.json`). +- *Type:* any -Set to an empty string to not include `main` in your package.json +Any object. --- -##### `homepage`Optional +##### `isProject` ```typescript -public readonly homepage: string; +import { clickupTs } from '@time-loop/clickup-projen' + +clickupTs.ClickUpTypeScriptProject.isProject(x: any) ``` -- *Type:* string +Test whether the given construct is a project. -Package's Homepage / Website. +###### `x`Required + +- *Type:* any --- -##### `keywords`Optional +##### `of` ```typescript -public readonly keywords: string[]; -``` +import { clickupTs } from '@time-loop/clickup-projen' -- *Type:* string[] +clickupTs.ClickUpTypeScriptProject.of(construct: IConstruct) +``` -Keywords to include in `package.json`. +Find the closest ancestor project for given construct. ---- +When given a project, this it the project itself. -##### `license`Optional +###### `construct`Required -```typescript -public readonly license: string; -``` +- *Type:* constructs.IConstruct -- *Type:* string -- *Default:* "Apache-2.0" +--- -License's SPDX identifier. +#### Properties -See https://github.com/projen/projen/tree/main/license-text for a list of supported licenses. -Use the `licensed` option if you want to no license to be specified. +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| node | constructs.Node | The tree node. | +| buildTask | projen.Task | *No description.* | +| commitGenerated | boolean | Whether to commit the managed files by default. | +| compileTask | projen.Task | *No description.* | +| components | projen.Component[] | Returns all the components within this project. | +| deps | projen.Dependencies | Project dependencies. | +| ejected | boolean | Whether or not the project is being ejected. | +| files | projen.FileBase[] | All files in this project. | +| gitattributes | projen.GitAttributesFile | The .gitattributes file for this repository. | +| gitignore | projen.IgnoreFile | .gitignore. | +| logger | projen.Logger | Logging utilities. | +| name | string | Project name. | +| outdir | string | Absolute output directory of this project. | +| packageTask | projen.Task | *No description.* | +| postCompileTask | projen.Task | *No description.* | +| preCompileTask | projen.Task | *No description.* | +| projectBuild | projen.ProjectBuild | Manages the build process of the project. | +| projenCommand | string | The command to use in order to run the projen CLI. | +| root | projen.Project | The root project. | +| subprojects | projen.Project[] | Returns all the subprojects within this project. | +| tasks | projen.Tasks | Project tasks. | +| testTask | projen.Task | *No description.* | +| defaultTask | projen.Task | This is the "default" task, the one that executes "projen". | +| initProject | projen.InitProject | The options used when this project is bootstrapped via `projen new`. | +| parent | projen.Project | A parent project. | +| projectType | projen.ProjectType | *No description.* | +| autoApprove | projen.github.AutoApprove | Auto approve set up for this project. | +| devContainer | projen.vscode.DevContainer | Access for .devcontainer.json (used for GitHub Codespaces). | +| github | projen.github.GitHub | Access all github components. | +| gitpod | projen.Gitpod | Access for Gitpod. | +| vscode | projen.vscode.VsCode | Access all VSCode components. | +| allowLibraryDependencies | boolean | *No description.* | +| artifactsDirectory | string | The build output directory. | +| artifactsJavascriptDirectory | string | The location of the npm tarball after build (`${artifactsDirectory}/js`). | +| bundler | projen.javascript.Bundler | *No description.* | +| entrypoint | string | *No description.* | +| manifest | any | *No description.* | +| npmrc | projen.javascript.NpmConfig | The .npmrc file. | +| package | projen.javascript.NodePackage | API for managing the node package. | +| packageManager | projen.javascript.NodePackageManager | The package manager to use. | +| runScriptCommand | string | The command to use to run scripts (e.g. `yarn run` or `npm run` depends on the package manager). | +| autoMerge | projen.github.AutoMerge | Component that sets up mergify for merging approved pull requests. | +| buildWorkflow | projen.build.BuildWorkflow | The PR build GitHub workflow. | +| buildWorkflowJobId | string | The job ID of the build workflow. | +| jest | projen.javascript.Jest | The Jest configuration (if enabled). | +| maxNodeVersion | string | Maximum node version required by this package. | +| minNodeVersion | string | Minimum node.js version required by this package. | +| npmignore | projen.IgnoreFile | The .npmignore file. | +| prettier | projen.javascript.Prettier | *No description.* | +| publisher | projen.release.Publisher | Package publisher. | +| release | projen.release.Release | Release management. | +| upgradeWorkflow | projen.javascript.UpgradeDependencies | The upgrade workflow. | +| docsDirectory | string | *No description.* | +| libdir | string | The directory in which compiled .js files reside. | +| srcdir | string | The directory in which the .ts sources reside. | +| testdir | string | The directory in which tests reside. | +| tsconfigDev | projen.javascript.TypescriptConfig | A typescript configuration file which covers all files (sources, tests, projen). | +| watchTask | projen.Task | The "watch" task. | +| docgen | boolean | *No description.* | +| eslint | projen.javascript.Eslint | *No description.* | +| tsconfig | projen.javascript.TypescriptConfig | *No description.* | +| tsconfigEslint | projen.javascript.TypescriptConfig | *No description.* | --- -##### `licensed`Optional +##### `node`Required ```typescript -public readonly licensed: boolean; +public readonly node: Node; ``` -- *Type:* boolean -- *Default:* true +- *Type:* constructs.Node -Indicates if a license should be added. +The tree node. --- -##### `maxNodeVersion`Optional +##### `buildTask`Required ```typescript -public readonly maxNodeVersion: string; +public readonly buildTask: Task; ``` -- *Type:* string -- *Default:* no max - -Minimum node.js version to require via `engines` (inclusive). +- *Type:* projen.Task --- -##### `minNodeVersion`Optional +##### `commitGenerated`Required ```typescript -public readonly minNodeVersion: string; +public readonly commitGenerated: boolean; ``` -- *Type:* string -- *Default:* no "engines" specified +- *Type:* boolean -Minimum Node.js version to require via package.json `engines` (inclusive). +Whether to commit the managed files by default. --- -##### `npmAccess`Optional +##### `compileTask`Required ```typescript -public readonly npmAccess: NpmAccess; +public readonly compileTask: Task; ``` -- *Type:* projen.javascript.NpmAccess -- *Default:* for scoped packages (e.g. `foo@bar`), the default is `NpmAccess.RESTRICTED`, for non-scoped packages, the default is `NpmAccess.PUBLIC`. - -Access level of the npm package. +- *Type:* projen.Task --- -##### ~~`npmRegistry`~~Optional - -- *Deprecated:* use `npmRegistryUrl` instead +##### `components`Required ```typescript -public readonly npmRegistry: string; +public readonly components: Component[]; ``` -- *Type:* string - -The host name of the npm registry to publish to. +- *Type:* projen.Component[] -Cannot be set together with `npmRegistryUrl`. +Returns all the components within this project. --- -##### `npmRegistryUrl`Optional +##### `deps`Required ```typescript -public readonly npmRegistryUrl: string; +public readonly deps: Dependencies; ``` -- *Type:* string -- *Default:* "https://registry.npmjs.org" - -The base URL of the npm package registry. +- *Type:* projen.Dependencies -Must be a URL (e.g. start with "https://" or "http://") +Project dependencies. --- -##### `npmTokenSecret`Optional +##### `ejected`Required ```typescript -public readonly npmTokenSecret: string; +public readonly ejected: boolean; ``` -- *Type:* string -- *Default:* "NPM_TOKEN" +- *Type:* boolean -GitHub secret which contains the NPM token to use when publishing packages. +Whether or not the project is being ejected. --- -##### `packageManager`Optional +##### `files`Required ```typescript -public readonly packageManager: NodePackageManager; +public readonly files: FileBase[]; ``` -- *Type:* projen.javascript.NodePackageManager -- *Default:* NodePackageManager.YARN +- *Type:* projen.FileBase[] -The Node Package Manager used to execute scripts. +All files in this project. --- -##### `packageName`Optional +##### `gitattributes`Required ```typescript -public readonly packageName: string; +public readonly gitattributes: GitAttributesFile; ``` -- *Type:* string -- *Default:* defaults to project name +- *Type:* projen.GitAttributesFile -The "name" in package.json. +The .gitattributes file for this repository. --- -##### `peerDependencyOptions`Optional +##### `gitignore`Required ```typescript -public readonly peerDependencyOptions: PeerDependencyOptions; +public readonly gitignore: IgnoreFile; ``` -- *Type:* projen.javascript.PeerDependencyOptions +- *Type:* projen.IgnoreFile -Options for `peerDeps`. +.gitignore. --- -##### `peerDeps`Optional +##### `logger`Required ```typescript -public readonly peerDeps: string[]; +public readonly logger: Logger; ``` -- *Type:* string[] -- *Default:* [] - -Peer dependencies for this module. - -Dependencies listed here are required to -be installed (and satisfied) by the _consumer_ of this library. Using peer -dependencies allows you to ensure that only a single module of a certain -library exists in the `node_modules` tree of your consumers. - -Note that prior to npm@7, peer dependencies are _not_ automatically -installed, which means that adding peer dependencies to a library will be a -breaking change for your customers. +- *Type:* projen.Logger -Unless `peerDependencyOptions.pinnedDevDependency` is disabled (it is -enabled by default), projen will automatically add a dev dependency with a -pinned version for each peer dependency. This will ensure that you build & -test your module against the lowest peer version required. +Logging utilities. --- -##### `pnpmVersion`Optional +##### `name`Required ```typescript -public readonly pnpmVersion: string; +public readonly name: string; ``` - *Type:* string -- *Default:* "7" -The version of PNPM to use if using PNPM as a package manager. +Project name. --- -##### `repository`Optional +##### `outdir`Required ```typescript -public readonly repository: string; +public readonly outdir: string; ``` - *Type:* string -The repository is the location where the actual code for your package lives. - -See https://classic.yarnpkg.com/en/docs/package-json/#toc-repository +Absolute output directory of this project. --- -##### `repositoryDirectory`Optional +##### `packageTask`Required ```typescript -public readonly repositoryDirectory: string; +public readonly packageTask: Task; ``` -- *Type:* string +- *Type:* projen.Task + +--- + +##### `postCompileTask`Required + +```typescript +public readonly postCompileTask: Task; +``` -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. +- *Type:* projen.Task --- -##### `scopedPackagesOptions`Optional +##### `preCompileTask`Required ```typescript -public readonly scopedPackagesOptions: ScopedPackagesOptions[]; +public readonly preCompileTask: Task; ``` -- *Type:* projen.javascript.ScopedPackagesOptions[] -- *Default:* fetch all scoped packages from the public npm registry - -Options for privately hosted scoped packages. +- *Type:* projen.Task --- -##### ~~`scripts`~~Optional - -- *Deprecated:* use `project.addTask()` or `package.setScript()` +##### `projectBuild`Required ```typescript -public readonly scripts: {[ key: string ]: string}; +public readonly projectBuild: ProjectBuild; ``` -- *Type:* {[ key: string ]: string} -- *Default:* {} - -npm scripts to include. +- *Type:* projen.ProjectBuild -If a script has the same name as a standard script, -the standard script will be overwritten. -Also adds the script as a task. +Manages the build process of the project. --- -##### `stability`Optional +##### `projenCommand`Required ```typescript -public readonly stability: string; +public readonly projenCommand: string; ``` - *Type:* string -Package's Stability. +The command to use in order to run the projen CLI. --- -##### `jsiiReleaseVersion`Optional +##### `root`Required ```typescript -public readonly jsiiReleaseVersion: string; +public readonly root: Project; ``` -- *Type:* string -- *Default:* "latest" +- *Type:* projen.Project -Version requirement of `publib` which is used to publish modules to npm. +The root project. --- -##### `majorVersion`Optional +##### `subprojects`Required ```typescript -public readonly majorVersion: number; +public readonly subprojects: Project[]; ``` -- *Type:* number -- *Default:* Major version is not enforced. - -Major version to release from the default branch. +- *Type:* projen.Project[] -If this is specified, we bump the latest version of this major version line. -If not specified, we bump the global latest version. +Returns all the subprojects within this project. --- -##### `minMajorVersion`Optional +##### `tasks`Required ```typescript -public readonly minMajorVersion: number; +public readonly tasks: Tasks; ``` -- *Type:* number -- *Default:* No minimum version is being enforced - -Minimal Major version to release. - -This can be useful to set to 1, as breaking changes before the 1.x major -release are not incrementing the major version number. +- *Type:* projen.Tasks -Can not be set together with `majorVersion`. +Project tasks. --- -##### `npmDistTag`Optional +##### `testTask`Required ```typescript -public readonly npmDistTag: string; +public readonly testTask: Task; ``` -- *Type:* string -- *Default:* "latest" - -The npmDistTag to use when publishing from the default branch. - -To set the npm dist-tag for release branches, set the `npmDistTag` property -for each branch. +- *Type:* projen.Task --- -##### `postBuildSteps`Optional +##### `defaultTask`Optional ```typescript -public readonly postBuildSteps: JobStep[]; +public readonly defaultTask: Task; ``` -- *Type:* projen.github.workflows.JobStep[] -- *Default:* [] +- *Type:* projen.Task -Steps to execute after build as part of the release workflow. +This is the "default" task, the one that executes "projen". + +Undefined if +the project is being ejected. --- -##### `prerelease`Optional +##### `initProject`Optional ```typescript -public readonly prerelease: string; +public readonly initProject: InitProject; ``` -- *Type:* string -- *Default:* normal semantic versions +- *Type:* projen.InitProject -Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). +The options used when this project is bootstrapped via `projen new`. + +It +includes the original set of options passed to the CLI and also the JSII +FQN of the project type. --- -##### `publishDryRun`Optional +##### `parent`Optional ```typescript -public readonly publishDryRun: boolean; +public readonly parent: Project; ``` -- *Type:* boolean -- *Default:* false +- *Type:* projen.Project -Instead of actually publishing to package managers, just print the publishing command. +A parent project. + +If undefined, this is the root project. --- -##### `publishTasks`Optional +##### `projectType`Required ```typescript -public readonly publishTasks: boolean; +public readonly projectType: ProjectType; ``` -- *Type:* boolean -- *Default:* false - -Define publishing tasks that can be executed manually as well as workflows. - -Normally, publishing only happens within automated workflows. Enable this -in order to create a publishing task for each publishing activity. +- *Type:* projen.ProjectType --- -##### `releasableCommits`Optional +##### `autoApprove`Optional ```typescript -public readonly releasableCommits: ReleasableCommits; +public readonly autoApprove: AutoApprove; ``` -- *Type:* projen.ReleasableCommits -- *Default:* ReleasableCommits.everyCommit() +- *Type:* projen.github.AutoApprove -Find commits that should be considered releasable Used to decide if a release is required. +Auto approve set up for this project. --- -##### `releaseBranches`Optional +##### `devContainer`Optional ```typescript -public readonly releaseBranches: {[ key: string ]: BranchOptions}; +public readonly devContainer: DevContainer; ``` -- *Type:* {[ key: string ]: projen.release.BranchOptions} -- *Default:* no additional branches are used for release. you can use `addBranch()` to add additional branches. +- *Type:* projen.vscode.DevContainer -Defines additional release branches. +Access for .devcontainer.json (used for GitHub Codespaces). -A workflow will be created for each -release branch which will publish releases from commits in this branch. -Each release branch _must_ be assigned a major version number which is used -to enforce that versions published from that branch always use that major -version. If multiple branches are used, the `majorVersion` field must also -be provided for the default branch. +This will be `undefined` if devContainer boolean is false --- -##### ~~`releaseEveryCommit`~~Optional - -- *Deprecated:* Use `releaseTrigger: ReleaseTrigger.continuous()` instead +##### `github`Optional ```typescript -public readonly releaseEveryCommit: boolean; +public readonly github: GitHub; ``` -- *Type:* boolean -- *Default:* true +- *Type:* projen.github.GitHub -Automatically release new versions every commit to one of branches in `releaseBranches`. +Access all github components. + +This will be `undefined` for subprojects. --- -##### `releaseFailureIssue`Optional +##### `gitpod`Optional ```typescript -public readonly releaseFailureIssue: boolean; +public readonly gitpod: Gitpod; ``` -- *Type:* boolean -- *Default:* false +- *Type:* projen.Gitpod -Create a github issue on every failed publishing task. +Access for Gitpod. + +This will be `undefined` if gitpod boolean is false --- -##### `releaseFailureIssueLabel`Optional +##### `vscode`Optional ```typescript -public readonly releaseFailureIssueLabel: string; +public readonly vscode: VsCode; ``` -- *Type:* string -- *Default:* "failed-release" +- *Type:* projen.vscode.VsCode -The label to apply to issues indicating publish failures. +Access all VSCode components. -Only applies if `releaseFailureIssue` is true. +This will be `undefined` for subprojects. --- -##### ~~`releaseSchedule`~~Optional +##### ~~`allowLibraryDependencies`~~Required -- *Deprecated:* Use `releaseTrigger: ReleaseTrigger.scheduled()` instead +- *Deprecated:* use `package.allowLibraryDependencies` ```typescript -public readonly releaseSchedule: string; +public readonly allowLibraryDependencies: boolean; ``` -- *Type:* string -- *Default:* no scheduled releases - -CRON schedule to trigger new releases. +- *Type:* boolean --- -##### `releaseTagPrefix`Optional +##### `artifactsDirectory`Required ```typescript -public readonly releaseTagPrefix: string; +public readonly artifactsDirectory: string; ``` - *Type:* string -- *Default:* "v" -Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers. +The build output directory. -Note: this prefix is used to detect the latest tagged version -when bumping, so if you change this on a project with an existing version -history, you may need to manually tag your latest release -with the new prefix. +An npm tarball will be created under the `js` +subdirectory. For example, if this is set to `dist` (the default), the npm +tarball will be placed under `dist/js/boom-boom-1.2.3.tg`. --- -##### `releaseTrigger`Optional +##### `artifactsJavascriptDirectory`Required ```typescript -public readonly releaseTrigger: ReleaseTrigger; +public readonly artifactsJavascriptDirectory: string; ``` -- *Type:* projen.release.ReleaseTrigger -- *Default:* Continuous releases (`ReleaseTrigger.continuous()`) +- *Type:* string -The release trigger to use. +The location of the npm tarball after build (`${artifactsDirectory}/js`). --- -##### `releaseWorkflowName`Optional +##### `bundler`Required ```typescript -public readonly releaseWorkflowName: string; +public readonly bundler: Bundler; ``` -- *Type:* string -- *Default:* "Release" - -The name of the default release workflow. +- *Type:* projen.javascript.Bundler --- -##### `releaseWorkflowSetupSteps`Optional +##### ~~`entrypoint`~~Required + +- *Deprecated:* use `package.entrypoint` ```typescript -public readonly releaseWorkflowSetupSteps: JobStep[]; +public readonly entrypoint: string; ``` -- *Type:* projen.github.workflows.JobStep[] - -A set of workflow steps to execute in order to setup the workflow container. +- *Type:* string --- -##### `versionrcOptions`Optional +##### ~~`manifest`~~Required + +- *Deprecated:* use `package.addField(x, y)` ```typescript -public readonly versionrcOptions: {[ key: string ]: any}; +public readonly manifest: any; ``` -- *Type:* {[ key: string ]: any} -- *Default:* standard configuration applicable for GitHub repositories - -Custom configuration used when creating changelog with standard-version package. - -Given values either append to default configuration or overwrite values in it. +- *Type:* any --- -##### `workflowContainerImage`Optional +##### `npmrc`Required ```typescript -public readonly workflowContainerImage: string; +public readonly npmrc: NpmConfig; ``` -- *Type:* string -- *Default:* default image +- *Type:* projen.javascript.NpmConfig -Container image to use for GitHub workflows. +The .npmrc file. --- -##### `workflowRunsOn`Optional +##### `package`Required ```typescript -public readonly workflowRunsOn: string[]; +public readonly package: NodePackage; ``` -- *Type:* string[] -- *Default:* ["ubuntu-latest"] +- *Type:* projen.javascript.NodePackage -Github Runner selection labels. +API for managing the node package. --- -##### `workflowRunsOnGroup`Optional +##### ~~`packageManager`~~Required + +- *Deprecated:* use `package.packageManager` ```typescript -public readonly workflowRunsOnGroup: GroupRunnerOptions; +public readonly packageManager: NodePackageManager; ``` -- *Type:* projen.GroupRunnerOptions +- *Type:* projen.javascript.NodePackageManager -Github Runner Group selection options. +The package manager to use. --- -##### `defaultReleaseBranch`Required +##### `runScriptCommand`Required ```typescript -public readonly defaultReleaseBranch: string; +public readonly runScriptCommand: string; ``` - *Type:* string -- *Default:* "main" -The name of the main release branch. +The command to use to run scripts (e.g. `yarn run` or `npm run` depends on the package manager). --- -##### `artifactsDirectory`Optional +##### `autoMerge`Optional ```typescript -public readonly artifactsDirectory: string; +public readonly autoMerge: AutoMerge; ``` -- *Type:* string -- *Default:* "dist" +- *Type:* projen.github.AutoMerge -A directory which will contain build artifacts. +Component that sets up mergify for merging approved pull requests. --- -##### `autoApproveUpgrades`Optional +##### `buildWorkflow`Optional ```typescript -public readonly autoApproveUpgrades: boolean; +public readonly buildWorkflow: BuildWorkflow; ``` -- *Type:* boolean -- *Default:* true +- *Type:* projen.build.BuildWorkflow -Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). +The PR build GitHub workflow. -Throw if set to true but `autoApproveOptions` are not defined. +`undefined` if `buildWorkflow` is disabled. --- -##### `buildWorkflow`Optional +##### `buildWorkflowJobId`Optional ```typescript -public readonly buildWorkflow: boolean; +public readonly buildWorkflowJobId: string; ``` -- *Type:* boolean -- *Default:* true if not a subproject +- *Type:* string -Define a GitHub workflow for building PRs. +The job ID of the build workflow. --- -##### `buildWorkflowTriggers`Optional +##### `jest`Optional ```typescript -public readonly buildWorkflowTriggers: Triggers; +public readonly jest: Jest; ``` -- *Type:* projen.github.workflows.Triggers -- *Default:* "{ pullRequest: {}, workflowDispatch: {} }" +- *Type:* projen.javascript.Jest -Build workflow triggers. +The Jest configuration (if enabled). --- -##### `bundlerOptions`Optional +##### `maxNodeVersion`Optional ```typescript -public readonly bundlerOptions: BundlerOptions; +public readonly maxNodeVersion: string; ``` -- *Type:* projen.javascript.BundlerOptions +- *Type:* string -Options for `Bundler`. +Maximum node version required by this package. --- -##### `codeCov`Optional +##### `minNodeVersion`Optional ```typescript -public readonly codeCov: boolean; +public readonly minNodeVersion: string; ``` -- *Type:* boolean -- *Default:* false +- *Type:* string -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`. +Minimum node.js version required by this package. --- -##### `codeCovTokenSecret`Optional +##### `npmignore`Optional ```typescript -public readonly codeCovTokenSecret: string; +public readonly npmignore: IgnoreFile; ``` -- *Type:* string -- *Default:* if this option is not specified, only public repositories are supported +- *Type:* projen.IgnoreFile -Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. +The .npmignore file. --- -##### `copyrightOwner`Optional +##### `prettier`Optional ```typescript -public readonly copyrightOwner: string; +public readonly prettier: Prettier; ``` -- *Type:* string -- *Default:* defaults to the value of authorName or "" if `authorName` is undefined. - -License copyright owner. +- *Type:* projen.javascript.Prettier --- -##### `copyrightPeriod`Optional +##### ~~`publisher`~~Optional + +- *Deprecated:* use `release.publisher`. ```typescript -public readonly copyrightPeriod: string; +public readonly publisher: Publisher; ``` -- *Type:* string -- *Default:* current year +- *Type:* projen.release.Publisher -The copyright years to put in the LICENSE file. +Package publisher. + +This will be `undefined` if the project does not have a +release workflow. --- -##### `dependabot`Optional +##### `release`Optional ```typescript -public readonly dependabot: boolean; +public readonly release: Release; ``` -- *Type:* boolean -- *Default:* false - -Use dependabot to handle dependency upgrades. +- *Type:* projen.release.Release -Cannot be used in conjunction with `depsUpgrade`. +Release management. --- -##### `dependabotOptions`Optional +##### `upgradeWorkflow`Optional ```typescript -public readonly dependabotOptions: DependabotOptions; +public readonly upgradeWorkflow: UpgradeDependencies; ``` -- *Type:* projen.github.DependabotOptions -- *Default:* default options +- *Type:* projen.javascript.UpgradeDependencies -Options for dependabot. +The upgrade workflow. --- -##### `depsUpgrade`Optional +##### `docsDirectory`Required ```typescript -public readonly depsUpgrade: boolean; +public readonly docsDirectory: string; ``` -- *Type:* boolean -- *Default:* true - -Use tasks and github workflows to handle dependency upgrades. - -Cannot be used in conjunction with `dependabot`. +- *Type:* string --- -##### `depsUpgradeOptions`Optional +##### `libdir`Required ```typescript -public readonly depsUpgradeOptions: UpgradeDependenciesOptions; +public readonly libdir: string; ``` -- *Type:* projen.javascript.UpgradeDependenciesOptions -- *Default:* default options +- *Type:* string -Options for `UpgradeDependencies`. +The directory in which compiled .js files reside. --- -##### `gitignore`Optional +##### `srcdir`Required ```typescript -public readonly gitignore: string[]; +public readonly srcdir: string; ``` -- *Type:* string[] +- *Type:* string -Additional entries to .gitignore. +The directory in which the .ts sources reside. --- -##### `jest`Optional +##### `testdir`Required ```typescript -public readonly jest: boolean; +public readonly testdir: string; ``` -- *Type:* boolean -- *Default:* true +- *Type:* string -Setup jest unit tests. +The directory in which tests reside. --- -##### `jestOptions`Optional +##### `tsconfigDev`Required ```typescript -public readonly jestOptions: JestOptions; +public readonly tsconfigDev: TypescriptConfig; ``` -- *Type:* projen.javascript.JestOptions -- *Default:* default options +- *Type:* projen.javascript.TypescriptConfig -Jest options. +A typescript configuration file which covers all files (sources, tests, projen). --- -##### `mutableBuild`Optional +##### `watchTask`Required ```typescript -public readonly mutableBuild: boolean; +public readonly watchTask: Task; ``` -- *Type:* boolean -- *Default:* true +- *Type:* projen.Task -Automatically update files modified during builds to pull-request branches. +The "watch" task. -This means -that any files synthesized by projen or e.g. test snapshots will always be up-to-date -before a PR is merged. +--- -Implies that PR builds do not have anti-tamper checks. +##### `docgen`Optional ---- +```typescript +public readonly docgen: boolean; +``` -##### ~~`npmignore`~~Optional +- *Type:* boolean -- *Deprecated:* - use `project.addPackageIgnore` +--- + +##### `eslint`Optional ```typescript -public readonly npmignore: string[]; +public readonly eslint: Eslint; ``` -- *Type:* string[] - -Additional entries to .npmignore. +- *Type:* projen.javascript.Eslint --- -##### `npmignoreEnabled`Optional +##### `tsconfig`Optional ```typescript -public readonly npmignoreEnabled: boolean; +public readonly tsconfig: TypescriptConfig; ``` -- *Type:* boolean -- *Default:* true - -Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs. +- *Type:* projen.javascript.TypescriptConfig --- -##### `npmIgnoreOptions`Optional +##### `tsconfigEslint`Optional ```typescript -public readonly npmIgnoreOptions: IgnoreFileOptions; +public readonly tsconfigEslint: TypescriptConfig; ``` -- *Type:* projen.IgnoreFileOptions +- *Type:* projen.javascript.TypescriptConfig -Configuration options for .npmignore file. +--- + +#### Constants + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| DEFAULT_TASK | string | The name of the default task (the task executed when `projen` is run without arguments). | --- -##### `package`Optional +##### `DEFAULT_TASK`Required ```typescript -public readonly package: boolean; +public readonly DEFAULT_TASK: string; ``` -- *Type:* boolean -- *Default:* true +- *Type:* string -Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`). +The name of the default task (the task executed when `projen` is run without arguments). + +Normally +this task should synthesize the project files. + +--- + +## Structs ---- +### CDKDiffOptionsConfig -##### `prettier`Optional +#### Initializer ```typescript -public readonly prettier: boolean; +import { cdkDiffWorkflow } from '@time-loop/clickup-projen' + +const cDKDiffOptionsConfig: cdkDiffWorkflow.CDKDiffOptionsConfig = { ... } ``` -- *Type:* boolean -- *Default:* false +#### Properties -Setup prettier. +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| nodeVersion | string | Specify a nodeVersion. | +| envsToDiff | @time-loop/clickup-projen.cdkDiffWorkflow.EnvToDiff \| @time-loop/clickup-projen.cdkDiffWorkflow.ExplicitStacksEnvToDiff[] | Collection of environments to cdk diff. | +| createOidcRoleStack | boolean | Detrmines if the OIDC role stack should be created. | --- -##### `prettierOptions`Optional +##### `nodeVersion`Optional ```typescript -public readonly prettierOptions: PrettierOptions; +public readonly nodeVersion: string; ``` -- *Type:* projen.javascript.PrettierOptions -- *Default:* default options +- *Type:* string +- *Default:* should be parameters.PROJEN_NODE_VERSION -Prettier options. +Specify a nodeVersion. --- -##### `projenDevDependency`Optional +##### `envsToDiff`Required ```typescript -public readonly projenDevDependency: boolean; +public readonly envsToDiff: EnvToDiff | ExplicitStacksEnvToDiff[]; ``` -- *Type:* boolean -- *Default:* true +- *Type:* @time-loop/clickup-projen.cdkDiffWorkflow.EnvToDiff | @time-loop/clickup-projen.cdkDiffWorkflow.ExplicitStacksEnvToDiff[] -Indicates of "projen" should be installed as a devDependency. +Collection of environments to cdk diff. --- -##### `projenrcJs`Optional +##### `createOidcRoleStack`Optional ```typescript -public readonly projenrcJs: boolean; +public readonly createOidcRoleStack: boolean; ``` - *Type:* boolean -- *Default:* true if projenrcJson is false -Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation. +Detrmines if the OIDC role stack should be created. --- -##### `projenrcJsOptions`Optional +### ClickUpCdkCommonOptions + +#### Initializer ```typescript -public readonly projenrcJsOptions: ProjenrcOptions; +import { clickupCdk } from '@time-loop/clickup-projen' + +const clickUpCdkCommonOptions: clickupCdk.ClickUpCdkCommonOptions = { ... } ``` -- *Type:* projen.javascript.ProjenrcOptions -- *Default:* default options +#### Properties -Options for .projenrc.js. +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| sendSlackWebhookOnRelease | boolean | Should we send a slack webhook on release (required for compliance audits). | +| sendSlackWebhookOnReleaseOpts | @time-loop/clickup-projen.slackAlert.ReleaseEventOptions | Slack alert on release options. | +| cdkDiffOptionsConfig | @time-loop/clickup-projen.cdkDiffWorkflow.CDKDiffOptionsConfig | Cdk diff options. | +| renovateOptionsConfig | @time-loop/clickup-projen.renovateWorkflow.RenovateOptionsConfig | Renovate options. | +| sendReleaseEvent | boolean | Feature flag for datadog event sending on release. | +| sendReleaseEventOpts | @time-loop/clickup-projen.datadog.ReleaseEventOptions | Datadog event options to use on release. | +| serviceCatalogOptions | @time-loop/clickup-projen.datadogServiceCatalog.ServiceCatalogOptions | Datadog Service Catalog options. | --- -##### `projenVersion`Optional +##### `sendSlackWebhookOnRelease`Optional ```typescript -public readonly projenVersion: string; +public readonly sendSlackWebhookOnRelease: boolean; ``` -- *Type:* string -- *Default:* Defaults to the latest version. +- *Type:* boolean +- *Default:* true -Version of projen to install. +Should we send a slack webhook on release (required for compliance audits). --- -##### `pullRequestTemplate`Optional +##### `sendSlackWebhookOnReleaseOpts`Optional ```typescript -public readonly pullRequestTemplate: boolean; +public readonly sendSlackWebhookOnReleaseOpts: ReleaseEventOptions; ``` -- *Type:* boolean -- *Default:* true +- *Type:* @time-loop/clickup-projen.slackAlert.ReleaseEventOptions -Include a GitHub pull request template. +Slack alert on release options. + +Only valid when `sendSlackWebhookOnRelease` is true. --- -##### `pullRequestTemplateContents`Optional +##### `cdkDiffOptionsConfig`Optional ```typescript -public readonly pullRequestTemplateContents: string[]; +public readonly cdkDiffOptionsConfig: CDKDiffOptionsConfig; ``` -- *Type:* string[] -- *Default:* default content +- *Type:* @time-loop/clickup-projen.cdkDiffWorkflow.CDKDiffOptionsConfig +- *Default:* undefined -The contents of the pull request template. +Cdk diff options. --- -##### `release`Optional +##### `renovateOptionsConfig`Optional ```typescript -public readonly release: boolean; +public readonly renovateOptionsConfig: RenovateOptionsConfig; ``` -- *Type:* boolean -- *Default:* true (false for subprojects) +- *Type:* @time-loop/clickup-projen.renovateWorkflow.RenovateOptionsConfig +- *Default:* undefined -Add release management to this project. +Renovate options. --- -##### `releaseToNpm`Optional +##### `sendReleaseEvent`Optional ```typescript -public readonly releaseToNpm: boolean; +public readonly sendReleaseEvent: boolean; ``` - *Type:* boolean -- *Default:* false +- *Default:* true -Automatically release to npm when new versions are introduced. +Feature flag for datadog event sending on release. --- -##### ~~`releaseWorkflow`~~Optional - -- *Deprecated:* see `release`. +##### `sendReleaseEventOpts`Optional ```typescript -public readonly releaseWorkflow: boolean; +public readonly sendReleaseEventOpts: ReleaseEventOptions; ``` -- *Type:* boolean -- *Default:* true if not a subproject +- *Type:* @time-loop/clickup-projen.datadog.ReleaseEventOptions +- *Default:* undefined -DEPRECATED: renamed to `release`. +Datadog event options to use on release. + +Only valid when +`sendReleaseEvent` is true. --- -##### `workflowBootstrapSteps`Optional +##### `serviceCatalogOptions`Optional ```typescript -public readonly workflowBootstrapSteps: JobStep[]; +public readonly serviceCatalogOptions: ServiceCatalogOptions; ``` -- *Type:* projen.github.workflows.JobStep[] -- *Default:* "yarn install --frozen-lockfile && yarn projen" +- *Type:* @time-loop/clickup-projen.datadogServiceCatalog.ServiceCatalogOptions +- *Default:* undefined -Workflow steps to use in order to bootstrap this repo. +Datadog Service Catalog options. --- -##### `workflowGitIdentity`Optional +### ClickUpCdkConstructLibraryOptions + +#### Initializer ```typescript -public readonly workflowGitIdentity: GitIdentity; +import { clickupCdk } from '@time-loop/clickup-projen' + +const clickUpCdkConstructLibraryOptions: clickupCdk.ClickUpCdkConstructLibraryOptions = { ... } ``` -- *Type:* projen.github.GitIdentity -- *Default:* GitHub Actions +#### Properties -The git identity to use in workflows. +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| name | string | This is the name of your project. | +| commitGenerated | boolean | Whether to commit the managed files by default. | +| gitIgnoreOptions | projen.IgnoreFileOptions | Configuration options for .gitignore file. | +| gitOptions | projen.GitOptions | Configuration options for git. | +| logging | projen.LoggerOptions | Configure logging options such as verbosity. | +| outdir | string | The root directory of the project. | +| parent | projen.Project | The parent project, if this project is part of a bigger project. | +| projenCommand | string | The shell command to use in order to run the projen CLI. | +| projenrcJson | boolean | Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. | +| projenrcJsonOptions | projen.ProjenrcJsonOptions | Options for .projenrc.json. | +| renovatebot | boolean | Use renovatebot to handle dependency upgrades. | +| renovatebotOptions | projen.RenovatebotOptions | Options for renovatebot. | +| autoApproveOptions | projen.github.AutoApproveOptions | Enable and configure the 'auto approve' workflow. | +| autoMerge | boolean | Enable automatic merging on GitHub. | +| autoMergeOptions | projen.github.AutoMergeOptions | Configure options for automatic merging on GitHub. | +| clobber | boolean | Add a `clobber` task which resets the repo to origin. | +| devContainer | boolean | Add a VSCode development environment (used for GitHub Codespaces). | +| github | boolean | Enable GitHub integration. | +| githubOptions | projen.github.GitHubOptions | Options for GitHub integration. | +| gitpod | boolean | Add a Gitpod development environment. | +| mergify | boolean | Whether mergify should be enabled on this repository or not. | +| mergifyOptions | projen.github.MergifyOptions | Options for mergify. | +| projectType | projen.ProjectType | Which type of project this is (library/app). | +| projenCredentials | projen.github.GithubCredentials | Choose a method of providing GitHub API access for projen workflows. | +| projenTokenSecret | string | The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. | +| readme | projen.SampleReadmeProps | The README setup. | +| stale | boolean | Auto-close of stale issues and pull request. | +| staleOptions | projen.github.StaleOptions | Auto-close stale issues and pull requests. | +| vscode | boolean | Enable VSCode integration. | +| allowLibraryDependencies | boolean | Allow the project to include `peerDependencies` and `bundledDependencies`. | +| authorEmail | string | Author's e-mail. | +| authorName | string | Author's name. | +| authorOrganization | boolean | Is the author an organization. | +| authorUrl | string | Author's URL / Website. | +| autoDetectBin | boolean | Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section. | +| bin | {[ key: string ]: string} | Binary programs vended with your module. | +| bugsEmail | string | The email address to which issues should be reported. | +| bugsUrl | string | The url to your project's issue tracker. | +| bundledDeps | string[] | List of dependencies to bundle into this module. | +| codeArtifactOptions | projen.javascript.CodeArtifactOptions | Options for npm packages using AWS CodeArtifact. | +| deps | string[] | Runtime dependencies of this module. | +| description | string | The description is just a string that helps people understand the purpose of the package. | +| devDeps | string[] | Build dependencies for this module. | +| entrypoint | string | Module entrypoint (`main` in `package.json`). | +| homepage | string | Package's Homepage / Website. | +| keywords | string[] | Keywords to include in `package.json`. | +| license | string | License's SPDX identifier. | +| licensed | boolean | Indicates if a license should be added. | +| maxNodeVersion | string | Minimum node.js version to require via `engines` (inclusive). | +| minNodeVersion | string | Minimum Node.js version to require via package.json `engines` (inclusive). | +| npmAccess | projen.javascript.NpmAccess | Access level of the npm package. | +| npmRegistry | string | The host name of the npm registry to publish to. | +| npmRegistryUrl | string | The base URL of the npm package registry. | +| npmTokenSecret | string | GitHub secret which contains the NPM token to use when publishing packages. | +| packageManager | projen.javascript.NodePackageManager | The Node Package Manager used to execute scripts. | +| packageName | string | The "name" in package.json. | +| peerDependencyOptions | projen.javascript.PeerDependencyOptions | Options for `peerDeps`. | +| peerDeps | string[] | Peer dependencies for this module. | +| pnpmVersion | string | The version of PNPM to use if using PNPM as a package manager. | +| repository | string | The repository is the location where the actual code for your package lives. | +| repositoryDirectory | string | 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. | +| scopedPackagesOptions | projen.javascript.ScopedPackagesOptions[] | Options for privately hosted scoped packages. | +| scripts | {[ key: string ]: string} | npm scripts to include. | +| stability | string | Package's Stability. | +| yarnBerryOptions | projen.javascript.YarnBerryOptions | Options for Yarn Berry. | +| jsiiReleaseVersion | string | Version requirement of `publib` which is used to publish modules to npm. | +| majorVersion | number | Major version to release from the default branch. | +| minMajorVersion | number | Minimal Major version to release. | +| npmDistTag | string | The npmDistTag to use when publishing from the default branch. | +| postBuildSteps | projen.github.workflows.JobStep[] | Steps to execute after build as part of the release workflow. | +| prerelease | string | Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). | +| publishDryRun | boolean | Instead of actually publishing to package managers, just print the publishing command. | +| publishTasks | boolean | Define publishing tasks that can be executed manually as well as workflows. | +| releasableCommits | projen.ReleasableCommits | Find commits that should be considered releasable Used to decide if a release is required. | +| releaseBranches | {[ key: string ]: projen.release.BranchOptions} | Defines additional release branches. | +| releaseEveryCommit | boolean | Automatically release new versions every commit to one of branches in `releaseBranches`. | +| releaseFailureIssue | boolean | Create a github issue on every failed publishing task. | +| releaseFailureIssueLabel | string | The label to apply to issues indicating publish failures. | +| releaseSchedule | string | CRON schedule to trigger new releases. | +| releaseTagPrefix | string | Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers. | +| releaseTrigger | projen.release.ReleaseTrigger | The release trigger to use. | +| releaseWorkflowName | string | The name of the default release workflow. | +| releaseWorkflowSetupSteps | projen.github.workflows.JobStep[] | A set of workflow steps to execute in order to setup the workflow container. | +| versionrcOptions | {[ key: string ]: any} | Custom configuration used when creating changelog with standard-version package. | +| workflowContainerImage | string | Container image to use for GitHub workflows. | +| workflowRunsOn | string[] | Github Runner selection labels. | +| workflowRunsOnGroup | projen.GroupRunnerOptions | Github Runner Group selection options. | +| defaultReleaseBranch | string | The name of the main release branch. | +| artifactsDirectory | string | A directory which will contain build artifacts. | +| autoApproveUpgrades | boolean | Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). | +| buildWorkflow | boolean | Define a GitHub workflow for building PRs. | +| buildWorkflowTriggers | projen.github.workflows.Triggers | Build workflow triggers. | +| bundlerOptions | projen.javascript.BundlerOptions | Options for `Bundler`. | +| codeCov | boolean | 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`. | +| codeCovTokenSecret | string | Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. | +| copyrightOwner | string | License copyright owner. | +| copyrightPeriod | string | The copyright years to put in the LICENSE file. | +| dependabot | boolean | Use dependabot to handle dependency upgrades. | +| dependabotOptions | projen.github.DependabotOptions | Options for dependabot. | +| depsUpgrade | boolean | Use tasks and github workflows to handle dependency upgrades. | +| depsUpgradeOptions | projen.javascript.UpgradeDependenciesOptions | Options for `UpgradeDependencies`. | +| gitignore | string[] | Additional entries to .gitignore. | +| jest | boolean | Setup jest unit tests. | +| jestOptions | projen.javascript.JestOptions | Jest options. | +| mutableBuild | boolean | Automatically update files modified during builds to pull-request branches. | +| npmignore | string[] | Additional entries to .npmignore. | +| npmignoreEnabled | boolean | Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs. | +| npmIgnoreOptions | projen.IgnoreFileOptions | Configuration options for .npmignore file. | +| package | boolean | Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`). | +| prettier | boolean | Setup prettier. | +| prettierOptions | projen.javascript.PrettierOptions | Prettier options. | +| projenDevDependency | boolean | Indicates of "projen" should be installed as a devDependency. | +| projenrcJs | boolean | Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation. | +| projenrcJsOptions | projen.javascript.ProjenrcOptions | Options for .projenrc.js. | +| projenVersion | string | Version of projen to install. | +| pullRequestTemplate | boolean | Include a GitHub pull request template. | +| pullRequestTemplateContents | string[] | The contents of the pull request template. | +| release | boolean | Add release management to this project. | +| releaseToNpm | boolean | Automatically release to npm when new versions are introduced. | +| releaseWorkflow | boolean | DEPRECATED: renamed to `release`. | +| workflowBootstrapSteps | projen.github.workflows.JobStep[] | Workflow steps to use in order to bootstrap this repo. | +| workflowGitIdentity | projen.github.GitIdentity | The git identity to use in workflows. | +| workflowNodeVersion | string | The node version to use in GitHub workflows. | +| workflowPackageCache | boolean | Enable Node.js package cache in GitHub workflows. | +| disableTsconfig | boolean | Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler). | +| disableTsconfigDev | boolean | Do not generate a `tsconfig.dev.json` file. | +| docgen | boolean | Docgen by Typedoc. | +| docsDirectory | string | Docs directory. | +| entrypointTypes | string | The .d.ts file that includes the type declarations for this module. | +| eslint | boolean | Setup eslint. | +| eslintOptions | projen.javascript.EslintOptions | Eslint options. | +| libdir | string | Typescript artifacts output directory. | +| projenrcTs | boolean | Use TypeScript for your projenrc file (`.projenrc.ts`). | +| projenrcTsOptions | projen.typescript.ProjenrcOptions | Options for .projenrc.ts. | +| sampleCode | boolean | Generate one-time sample in `src/` and `test/` if there are no files there. | +| srcdir | string | Typescript sources directory. | +| testdir | string | Jest tests directory. Tests files should be named `xxx.test.ts`. | +| tsconfig | projen.javascript.TypescriptConfigOptions | Custom TSConfig. | +| tsconfigDev | projen.javascript.TypescriptConfigOptions | Custom tsconfig options for the development tsconfig.json file (used for testing). | +| tsconfigDevFile | string | The name of the development tsconfig.json file. | +| typescriptVersion | string | TypeScript version to use. | +| author | string | The name of the library author. | +| authorAddress | string | Email or URL of the library author. | +| repositoryUrl | string | Git repository URL. | +| compat | boolean | Automatically run API compatibility test against the latest version published to npm after compilation. | +| compatIgnore | string | Name of the ignore file for API compatibility tests. | +| compressAssembly | boolean | Emit a compressed version of the assembly. | +| docgenFilePath | string | File path for generated docs. | +| dotnet | projen.cdk.JsiiDotNetTarget | *No description.* | +| excludeTypescript | string[] | Accepts a list of glob patterns. | +| jsiiVersion | string | Version of the jsii compiler to use. | +| publishToGo | projen.cdk.JsiiGoTarget | Publish Go bindings to a git repository. | +| publishToMaven | projen.cdk.JsiiJavaTarget | Publish to maven. | +| publishToNuget | projen.cdk.JsiiDotNetTarget | Publish to NuGet. | +| publishToPypi | projen.cdk.JsiiPythonTarget | Publish to pypi. | +| python | projen.cdk.JsiiPythonTarget | *No description.* | +| rootdir | string | *No description.* | +| catalog | projen.cdk.Catalog | Libraries will be picked up by the construct catalog when they are published to npm as jsii modules and will be published under:. | +| cdkVersion | string | Minimum version of the AWS CDK to depend on. | +| cdkAssert | boolean | Warning: NodeJS only. | +| cdkAssertions | boolean | Install the assertions library? | +| cdkDependencies | string[] | Which AWS CDKv1 modules this project requires. | +| cdkDependenciesAsDeps | boolean | If this is enabled (default), all modules declared in `cdkDependencies` will be also added as normal `dependencies` (as well as `peerDependencies`). | +| cdkTestDependencies | string[] | AWS CDK modules required for testing. | +| cdkVersionPinning | boolean | Use pinned version instead of caret version for CDK. | +| constructsVersion | string | Minimum version of the `constructs` library to depend on. | +| edgeLambdaAutoDiscover | boolean | Automatically adds an `cloudfront.experimental.EdgeFunction` for each `.edge-lambda.ts` handler in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project. | +| experimentalIntegRunner | boolean | Enable experimental support for the AWS CDK integ-runner. | +| integrationTestAutoDiscover | boolean | Automatically discovers and creates integration tests for each `.integ.ts` file in under your test directory. | +| lambdaAutoDiscover | boolean | Automatically adds an `aws_lambda.Function` for each `.lambda.ts` handler in your source tree. If this is disabled, you either need to explicitly call `aws_lambda.Function.autoDiscover()` or define a `new aws_lambda.Function()` for each handler. | +| lambdaExtensionAutoDiscover | boolean | Automatically adds an `awscdk.LambdaExtension` for each `.lambda-extension.ts` entrypoint in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project. | +| lambdaOptions | projen.awscdk.LambdaFunctionCommonOptions | Common options for all AWS Lambda functions. | +| sendSlackWebhookOnRelease | boolean | Should we send a slack webhook on release (required for compliance audits). | +| sendSlackWebhookOnReleaseOpts | @time-loop/clickup-projen.slackAlert.ReleaseEventOptions | Slack alert on release options. | +| cdkDiffOptionsConfig | @time-loop/clickup-projen.cdkDiffWorkflow.CDKDiffOptionsConfig | Cdk diff options. | +| renovateOptionsConfig | @time-loop/clickup-projen.renovateWorkflow.RenovateOptionsConfig | Renovate options. | +| sendReleaseEvent | boolean | Feature flag for datadog event sending on release. | +| sendReleaseEventOpts | @time-loop/clickup-projen.datadog.ReleaseEventOptions | Datadog event options to use on release. | +| serviceCatalogOptions | @time-loop/clickup-projen.datadogServiceCatalog.ServiceCatalogOptions | Datadog Service Catalog options. | --- -##### `workflowNodeVersion`Optional +##### `name`Required ```typescript -public readonly workflowNodeVersion: string; +public readonly name: string; ``` - *Type:* string -- *Default:* same as `minNodeVersion` - -The node version to use in GitHub workflows. - ---- - -##### `workflowPackageCache`Optional - -```typescript -public readonly workflowPackageCache: boolean; -``` - -- *Type:* boolean -- *Default:* false +- *Default:* $BASEDIR -Enable Node.js package cache in GitHub workflows. +This is the name of your project. --- -##### `disableTsconfig`Optional +##### `commitGenerated`Optional ```typescript -public readonly disableTsconfig: boolean; +public readonly commitGenerated: boolean; ``` - *Type:* boolean -- *Default:* false +- *Default:* true -Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler). +Whether to commit the managed files by default. --- -##### `disableTsconfigDev`Optional +##### `gitIgnoreOptions`Optional ```typescript -public readonly disableTsconfigDev: boolean; +public readonly gitIgnoreOptions: IgnoreFileOptions; ``` -- *Type:* boolean -- *Default:* false +- *Type:* projen.IgnoreFileOptions -Do not generate a `tsconfig.dev.json` file. +Configuration options for .gitignore file. --- -##### `docgen`Optional +##### `gitOptions`Optional ```typescript -public readonly docgen: boolean; +public readonly gitOptions: GitOptions; ``` -- *Type:* boolean -- *Default:* false +- *Type:* projen.GitOptions -Docgen by Typedoc. +Configuration options for git. --- -##### `docsDirectory`Optional +##### `logging`Optional ```typescript -public readonly docsDirectory: string; +public readonly logging: LoggerOptions; ``` -- *Type:* string -- *Default:* "docs" +- *Type:* projen.LoggerOptions +- *Default:* {} -Docs directory. +Configure logging options such as verbosity. --- -##### `entrypointTypes`Optional +##### `outdir`Optional ```typescript -public readonly entrypointTypes: string; +public readonly outdir: string; ``` - *Type:* string -- *Default:* .d.ts file derived from the project's entrypoint (usually lib/index.d.ts) - -The .d.ts file that includes the type declarations for this module. - ---- - -##### `eslint`Optional +- *Default:* "." -```typescript -public readonly eslint: boolean; -``` +The root directory of the project. -- *Type:* boolean -- *Default:* true +Relative to this directory, all files are synthesized. -Setup eslint. +If this project has a parent, this directory is relative to the parent +directory and it cannot be the same as the parent or any of it's other +subprojects. --- -##### `eslintOptions`Optional +##### `parent`Optional ```typescript -public readonly eslintOptions: EslintOptions; +public readonly parent: Project; ``` -- *Type:* projen.javascript.EslintOptions -- *Default:* opinionated default options +- *Type:* projen.Project -Eslint options. +The parent project, if this project is part of a bigger project. --- -##### `libdir`Optional +##### `projenCommand`Optional ```typescript -public readonly libdir: string; +public readonly projenCommand: string; ``` - *Type:* string -- *Default:* "lib" - -Typescript artifacts output directory. - ---- - -##### `projenrcTs`Optional - -```typescript -public readonly projenrcTs: boolean; -``` - -- *Type:* boolean -- *Default:* false - -Use TypeScript for your projenrc file (`.projenrc.ts`). - ---- - -##### `projenrcTsOptions`Optional - -```typescript -public readonly projenrcTsOptions: ProjenrcOptions; -``` +- *Default:* "npx projen" -- *Type:* projen.typescript.ProjenrcOptions +The shell command to use in order to run the projen CLI. -Options for .projenrc.ts. +Can be used to customize in special environments. --- -##### `sampleCode`Optional +##### `projenrcJson`Optional ```typescript -public readonly sampleCode: boolean; +public readonly projenrcJson: boolean; ``` - *Type:* boolean -- *Default:* true - -Generate one-time sample in `src/` and `test/` if there are no files there. - ---- - -##### `srcdir`Optional - -```typescript -public readonly srcdir: string; -``` - -- *Type:* string -- *Default:* "src" - -Typescript sources directory. - ---- - -##### `testdir`Optional - -```typescript -public readonly testdir: string; -``` - -- *Type:* string -- *Default:* "test" - -Jest tests directory. Tests files should be named `xxx.test.ts`. +- *Default:* false -If this directory is under `srcdir` (e.g. `src/test`, `src/__tests__`), -then tests are going to be compiled into `lib/` and executed as javascript. -If the test directory is outside of `src`, then we configure jest to -compile the code in-memory. +Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. --- -##### `tsconfig`Optional +##### `projenrcJsonOptions`Optional ```typescript -public readonly tsconfig: TypescriptConfigOptions; +public readonly projenrcJsonOptions: ProjenrcJsonOptions; ``` -- *Type:* projen.javascript.TypescriptConfigOptions +- *Type:* projen.ProjenrcJsonOptions - *Default:* default options -Custom TSConfig. - ---- - -##### `tsconfigDev`Optional - -```typescript -public readonly tsconfigDev: TypescriptConfigOptions; -``` - -- *Type:* projen.javascript.TypescriptConfigOptions -- *Default:* use the production tsconfig options - -Custom tsconfig options for the development tsconfig.json file (used for testing). +Options for .projenrc.json. --- -##### `tsconfigDevFile`Optional +##### `renovatebot`Optional ```typescript -public readonly tsconfigDevFile: string; +public readonly renovatebot: boolean; ``` -- *Type:* string -- *Default:* "tsconfig.dev.json" +- *Type:* boolean +- *Default:* false -The name of the development tsconfig.json file. +Use renovatebot to handle dependency upgrades. --- -##### `typescriptVersion`Optional +##### `renovatebotOptions`Optional ```typescript -public readonly typescriptVersion: string; +public readonly renovatebotOptions: RenovatebotOptions; ``` -- *Type:* string -- *Default:* "latest" - -TypeScript version to use. +- *Type:* projen.RenovatebotOptions +- *Default:* default options -NOTE: Typescript is not semantically versioned and should remain on the -same minor, so we recommend using a `~` dependency (e.g. `~1.2.3`). +Options for renovatebot. --- -##### `buildCommand`Optional +##### `autoApproveOptions`Optional ```typescript -public readonly buildCommand: string; +public readonly autoApproveOptions: AutoApproveOptions; ``` -- *Type:* string -- *Default:* no build command - -A command to execute before synthesis. +- *Type:* projen.github.AutoApproveOptions +- *Default:* auto approve is disabled -This command will be called when -running `cdk synth` or when `cdk watch` identifies a change in your source -code before redeployment. +Enable and configure the 'auto approve' workflow. --- -##### `cdkout`Optional +##### `autoMerge`Optional ```typescript -public readonly cdkout: string; +public readonly autoMerge: boolean; ``` -- *Type:* string -- *Default:* "cdk.out" +- *Type:* boolean +- *Default:* true -cdk.out directory. +Enable automatic merging on GitHub. + +Has no effect if `github.mergify` +is set to false. --- -##### `context`Optional +##### `autoMergeOptions`Optional ```typescript -public readonly context: {[ key: string ]: any}; +public readonly autoMergeOptions: AutoMergeOptions; ``` -- *Type:* {[ key: string ]: any} -- *Default:* no additional context +- *Type:* projen.github.AutoMergeOptions +- *Default:* see defaults in `AutoMergeOptions` -Additional context to include in `cdk.json`. +Configure options for automatic merging on GitHub. + +Has no effect if +`github.mergify` or `autoMerge` is set to false. --- -##### `featureFlags`Optional +##### `clobber`Optional ```typescript -public readonly featureFlags: boolean; +public readonly clobber: boolean; ``` - *Type:* boolean -- *Default:* true +- *Default:* true, but false for subprojects -Include all feature flags in cdk.json. +Add a `clobber` task which resets the repo to origin. --- -##### `requireApproval`Optional +##### `devContainer`Optional ```typescript -public readonly requireApproval: ApprovalLevel; +public readonly devContainer: boolean; ``` -- *Type:* projen.awscdk.ApprovalLevel -- *Default:* ApprovalLevel.BROADENING +- *Type:* boolean +- *Default:* false -To protect you against unintended changes that affect your security posture, the AWS CDK Toolkit prompts you to approve security-related changes before deploying them. +Add a VSCode development environment (used for GitHub Codespaces). --- -##### `watchExcludes`Optional +##### `github`Optional ```typescript -public readonly watchExcludes: string[]; +public readonly github: boolean; ``` -- *Type:* string[] -- *Default:* [] +- *Type:* boolean +- *Default:* true -Glob patterns to exclude from `cdk watch`. +Enable GitHub integration. + +Enabled by default for root projects. Disabled for non-root projects. --- -##### `watchIncludes`Optional +##### `githubOptions`Optional ```typescript -public readonly watchIncludes: string[]; +public readonly githubOptions: GitHubOptions; ``` -- *Type:* string[] -- *Default:* [] +- *Type:* projen.github.GitHubOptions +- *Default:* see GitHubOptions -Glob patterns to include in `cdk watch`. +Options for GitHub integration. --- -##### `cdkVersion`Required +##### `gitpod`Optional ```typescript -public readonly cdkVersion: string; +public readonly gitpod: boolean; ``` -- *Type:* string -- *Default:* "2.1.0" +- *Type:* boolean +- *Default:* false -Minimum version of the AWS CDK to depend on. +Add a Gitpod development environment. --- -##### ~~`cdkAssert`~~Optional +##### ~~`mergify`~~Optional -- *Deprecated:* The +- *Deprecated:* use `githubOptions.mergify` instead ```typescript -public readonly cdkAssert: boolean; +public readonly mergify: boolean; ``` - *Type:* boolean -- *Default:* will be included by default for AWS CDK >= 1.0.0 < 2.0.0 - -Warning: NodeJS only. +- *Default:* true -Install the +Whether mergify should be enabled on this repository or not. --- -##### `cdkAssertions`Optional +##### ~~`mergifyOptions`~~Optional + +- *Deprecated:* use `githubOptions.mergifyOptions` instead ```typescript -public readonly cdkAssertions: boolean; +public readonly mergifyOptions: MergifyOptions; ``` -- *Type:* boolean -- *Default:* will be included by default for AWS CDK >= 1.111.0 < 2.0.0 - -Install the assertions library? +- *Type:* projen.github.MergifyOptions +- *Default:* default options -Only needed for CDK 1.x. If using CDK 2.x then -assertions is already included in 'aws-cdk-lib' +Options for mergify. --- -##### ~~`cdkDependencies`~~Optional +##### ~~`projectType`~~Optional -- *Deprecated:* For CDK 2.x use "deps" instead. (or "peerDeps" if you're building a library) +- *Deprecated:* no longer supported at the base project level ```typescript -public readonly cdkDependencies: string[]; +public readonly projectType: ProjectType; ``` -- *Type:* string[] +- *Type:* projen.ProjectType +- *Default:* ProjectType.UNKNOWN -Which AWS CDKv1 modules this project requires. +Which type of project this is (library/app). --- -##### ~~`cdkDependenciesAsDeps`~~Optional - -- *Deprecated:* Not supported in CDK v2. +##### `projenCredentials`Optional ```typescript -public readonly cdkDependenciesAsDeps: boolean; +public readonly projenCredentials: GithubCredentials; ``` -- *Type:* boolean -- *Default:* true - -If this is enabled (default), all modules declared in `cdkDependencies` will be also added as normal `dependencies` (as well as `peerDependencies`). - -This is to ensure that downstream consumers actually have your CDK dependencies installed -when using npm < 7 or yarn, where peer dependencies are not automatically installed. -If this is disabled, `cdkDependencies` will be added to `devDependencies` to ensure -they are present during development. +- *Type:* projen.github.GithubCredentials +- *Default:* use a personal access token named PROJEN_GITHUB_TOKEN -Note: this setting only applies to construct library projects +Choose a method of providing GitHub API access for projen workflows. --- -##### ~~`cdkTestDependencies`~~Optional +##### ~~`projenTokenSecret`~~Optional -- *Deprecated:* For CDK 2.x use 'devDeps' (in node.js projects) or 'testDeps' (in java projects) instead +- *Deprecated:* use `projenCredentials` ```typescript -public readonly cdkTestDependencies: string[]; +public readonly projenTokenSecret: string; ``` -- *Type:* string[] +- *Type:* string +- *Default:* "PROJEN_GITHUB_TOKEN" -AWS CDK modules required for testing. +The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. + +This token needs to have the `repo`, `workflows` +and `packages` scope. --- -##### `cdkVersionPinning`Optional +##### `readme`Optional ```typescript -public readonly cdkVersionPinning: boolean; +public readonly readme: SampleReadmeProps; ``` -- *Type:* boolean - -Use pinned version instead of caret version for CDK. +- *Type:* projen.SampleReadmeProps +- *Default:* { filename: 'README.md', contents: '# replace this' } -You can use this to prevent mixed versions for your CDK dependencies and to prevent auto-updates. -If you use experimental features this will let you define the moment you include breaking changes. +The README setup. --- -##### `constructsVersion`Optional +*Example* ```typescript -public readonly constructsVersion: string; +"{ filename: 'readme.md', contents: '# title' }" ``` -- *Type:* string -- *Default:* for CDK 1.x the default is "3.2.27", for CDK 2.x the default is "10.0.5". - -Minimum version of the `constructs` library to depend on. - ---- -##### `appEntrypoint`Optional +##### `stale`Optional ```typescript -public readonly appEntrypoint: string; +public readonly stale: boolean; ``` -- *Type:* string -- *Default:* "main.ts" +- *Type:* boolean +- *Default:* false -The CDK app's entrypoint (relative to the source directory, which is "src" by default). +Auto-close of stale issues and pull request. + +See `staleOptions` for options. --- -##### `edgeLambdaAutoDiscover`Optional +##### `staleOptions`Optional ```typescript -public readonly edgeLambdaAutoDiscover: boolean; +public readonly staleOptions: StaleOptions; ``` -- *Type:* boolean -- *Default:* true +- *Type:* projen.github.StaleOptions +- *Default:* see defaults in `StaleOptions` -Automatically adds an `cloudfront.experimental.EdgeFunction` for each `.edge-lambda.ts` handler in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project. +Auto-close stale issues and pull requests. + +To disable set `stale` to `false`. --- -##### `integrationTestAutoDiscover`Optional +##### `vscode`Optional ```typescript -public readonly integrationTestAutoDiscover: boolean; +public readonly vscode: boolean; ``` - *Type:* boolean - *Default:* true -Automatically discovers and creates integration tests for each `.integ.ts` file in under your test directory. +Enable VSCode integration. + +Enabled by default for root projects. Disabled for non-root projects. --- -##### `lambdaAutoDiscover`Optional +##### `allowLibraryDependencies`Optional ```typescript -public readonly lambdaAutoDiscover: boolean; +public readonly allowLibraryDependencies: boolean; ``` - *Type:* boolean - *Default:* true -Automatically adds an `awscdk.LambdaFunction` for each `.lambda.ts` handler in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project. +Allow the project to include `peerDependencies` and `bundledDependencies`. + +This is normally only allowed for libraries. For apps, there's no meaning +for specifying these. --- -##### `lambdaExtensionAutoDiscover`Optional +##### `authorEmail`Optional ```typescript -public readonly lambdaExtensionAutoDiscover: boolean; +public readonly authorEmail: string; ``` -- *Type:* boolean -- *Default:* true +- *Type:* string -Automatically adds an `awscdk.LambdaExtension` for each `.lambda-extension.ts` entrypoint in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project. +Author's e-mail. --- -##### `lambdaOptions`Optional +##### `authorName`Optional ```typescript -public readonly lambdaOptions: LambdaFunctionCommonOptions; +public readonly authorName: string; ``` -- *Type:* projen.awscdk.LambdaFunctionCommonOptions -- *Default:* default options +- *Type:* string -Common options for all AWS Lambda functions. +Author's name. --- -##### `sendSlackWebhookOnRelease`Optional +##### `authorOrganization`Optional ```typescript -public readonly sendSlackWebhookOnRelease: boolean; +public readonly authorOrganization: boolean; ``` - *Type:* boolean -- *Default:* true -Should we send a slack webhook on release (required for compliance audits). +Is the author an organization. --- -##### `sendSlackWebhookOnReleaseOpts`Optional +##### `authorUrl`Optional ```typescript -public readonly sendSlackWebhookOnReleaseOpts: ReleaseEventOptions; +public readonly authorUrl: string; ``` -- *Type:* @time-loop/clickup-projen.slackAlert.ReleaseEventOptions - -Slack alert on release options. +- *Type:* string -Only valid when `sendSlackWebhookOnRelease` is true. +Author's URL / Website. --- -##### `cdkDiffOptionsConfig`Optional +##### `autoDetectBin`Optional ```typescript -public readonly cdkDiffOptionsConfig: CDKDiffOptionsConfig; +public readonly autoDetectBin: boolean; ``` -- *Type:* @time-loop/clickup-projen.cdkDiffWorkflow.CDKDiffOptionsConfig -- *Default:* undefined +- *Type:* boolean +- *Default:* true -Cdk diff options. +Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section. --- -##### `renovateOptionsConfig`Optional +##### `bin`Optional ```typescript -public readonly renovateOptionsConfig: RenovateOptionsConfig; +public readonly bin: {[ key: string ]: string}; ``` -- *Type:* @time-loop/clickup-projen.renovateWorkflow.RenovateOptionsConfig -- *Default:* undefined +- *Type:* {[ key: string ]: string} -Renovate options. +Binary programs vended with your module. + +You can use this option to add/customize how binaries are represented in +your `package.json`, but unless `autoDetectBin` is `false`, every +executable file under `bin` will automatically be added to this section. --- -##### `sendReleaseEvent`Optional +##### `bugsEmail`Optional ```typescript -public readonly sendReleaseEvent: boolean; +public readonly bugsEmail: string; ``` -- *Type:* boolean -- *Default:* true +- *Type:* string -Feature flag for datadog event sending on release. +The email address to which issues should be reported. --- -##### `sendReleaseEventOpts`Optional +##### `bugsUrl`Optional ```typescript -public readonly sendReleaseEventOpts: ReleaseEventOptions; +public readonly bugsUrl: string; ``` -- *Type:* @time-loop/clickup-projen.datadog.ReleaseEventOptions -- *Default:* undefined - -Datadog event options to use on release. +- *Type:* string -Only valid when -`sendReleaseEvent` is true. +The url to your project's issue tracker. --- -##### `serviceCatalogOptions`Optional +##### `bundledDeps`Optional ```typescript -public readonly serviceCatalogOptions: ServiceCatalogOptions; +public readonly bundledDeps: string[]; ``` -- *Type:* @time-loop/clickup-projen.datadogServiceCatalog.ServiceCatalogOptions -- *Default:* undefined +- *Type:* string[] -Datadog Service Catalog options. +List of dependencies to bundle into this module. + +These modules will be +added both to the `dependencies` section and `bundledDependencies` section of +your `package.json`. + +The recommendation is to only specify the module name here (e.g. +`express`). This will behave similar to `yarn add` or `npm install` in the +sense that it will add the module as a dependency to your `package.json` +file with the latest version (`^`). You can specify semver requirements in +the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and +this will be what you `package.json` will eventually include. --- -##### `cdkContextJsonOptions`Optional +##### `codeArtifactOptions`Optional ```typescript -public readonly cdkContextJsonOptions: Options; +public readonly codeArtifactOptions: CodeArtifactOptions; ``` -- *Type:* @time-loop/clickup-projen.cdkContextJson.Options +- *Type:* projen.javascript.CodeArtifactOptions +- *Default:* undefined -Add support for cdk.context.json lookups? This allows GitHub PRs to lookup missing things from your cdk.context.json file and then commit a self-mutation so that your PRs don't break. +Options for npm packages using AWS CodeArtifact. ---- +This is required if publishing packages to, or installing scoped packages from AWS CodeArtifact -### ClickUpTypeScriptProjectOptions +--- -#### Initializer +##### `deps`Optional ```typescript -import { clickupTs } from '@time-loop/clickup-projen' - -const clickUpTypeScriptProjectOptions: clickupTs.ClickUpTypeScriptProjectOptions = { ... } +public readonly deps: string[]; ``` -#### Properties - -| **Name** | **Type** | **Description** | -| --- | --- | --- | -| name | string | This is the name of your project. | -| commitGenerated | boolean | Whether to commit the managed files by default. | -| gitIgnoreOptions | projen.IgnoreFileOptions | Configuration options for .gitignore file. | -| gitOptions | projen.GitOptions | Configuration options for git. | -| logging | projen.LoggerOptions | Configure logging options such as verbosity. | -| outdir | string | The root directory of the project. | -| parent | projen.Project | The parent project, if this project is part of a bigger project. | -| projenCommand | string | The shell command to use in order to run the projen CLI. | -| projenrcJson | boolean | Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. | -| projenrcJsonOptions | projen.ProjenrcJsonOptions | Options for .projenrc.json. | -| renovatebot | boolean | Use renovatebot to handle dependency upgrades. | -| renovatebotOptions | projen.RenovatebotOptions | Options for renovatebot. | -| autoApproveOptions | projen.github.AutoApproveOptions | Enable and configure the 'auto approve' workflow. | -| autoMerge | boolean | Enable automatic merging on GitHub. | -| autoMergeOptions | projen.github.AutoMergeOptions | Configure options for automatic merging on GitHub. | -| clobber | boolean | Add a `clobber` task which resets the repo to origin. | -| devContainer | boolean | Add a VSCode development environment (used for GitHub Codespaces). | -| github | boolean | Enable GitHub integration. | -| githubOptions | projen.github.GitHubOptions | Options for GitHub integration. | -| gitpod | boolean | Add a Gitpod development environment. | -| mergify | boolean | Whether mergify should be enabled on this repository or not. | -| mergifyOptions | projen.github.MergifyOptions | Options for mergify. | -| projectType | projen.ProjectType | Which type of project this is (library/app). | -| projenCredentials | projen.github.GithubCredentials | Choose a method of providing GitHub API access for projen workflows. | -| projenTokenSecret | string | The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. | -| readme | projen.SampleReadmeProps | The README setup. | -| stale | boolean | Auto-close of stale issues and pull request. | -| staleOptions | projen.github.StaleOptions | Auto-close stale issues and pull requests. | -| vscode | boolean | Enable VSCode integration. | -| allowLibraryDependencies | boolean | Allow the project to include `peerDependencies` and `bundledDependencies`. | -| authorEmail | string | Author's e-mail. | -| authorName | string | Author's name. | -| authorOrganization | boolean | Is the author an organization. | -| authorUrl | string | Author's URL / Website. | -| autoDetectBin | boolean | Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section. | -| bin | {[ key: string ]: string} | Binary programs vended with your module. | -| bugsEmail | string | The email address to which issues should be reported. | -| bugsUrl | string | The url to your project's issue tracker. | -| bundledDeps | string[] | List of dependencies to bundle into this module. | -| codeArtifactOptions | projen.javascript.CodeArtifactOptions | Options for npm packages using AWS CodeArtifact. | -| deps | string[] | Runtime dependencies of this module. | -| description | string | The description is just a string that helps people understand the purpose of the package. | -| devDeps | string[] | Build dependencies for this module. | -| entrypoint | string | Module entrypoint (`main` in `package.json`). | -| homepage | string | Package's Homepage / Website. | -| keywords | string[] | Keywords to include in `package.json`. | -| license | string | License's SPDX identifier. | -| licensed | boolean | Indicates if a license should be added. | -| maxNodeVersion | string | Minimum node.js version to require via `engines` (inclusive). | -| minNodeVersion | string | Minimum Node.js version to require via package.json `engines` (inclusive). | -| npmAccess | projen.javascript.NpmAccess | Access level of the npm package. | -| npmRegistry | string | The host name of the npm registry to publish to. | -| npmRegistryUrl | string | The base URL of the npm package registry. | -| npmTokenSecret | string | GitHub secret which contains the NPM token to use when publishing packages. | -| packageManager | projen.javascript.NodePackageManager | The Node Package Manager used to execute scripts. | -| packageName | string | The "name" in package.json. | -| peerDependencyOptions | projen.javascript.PeerDependencyOptions | Options for `peerDeps`. | -| peerDeps | string[] | Peer dependencies for this module. | -| pnpmVersion | string | The version of PNPM to use if using PNPM as a package manager. | -| repository | string | The repository is the location where the actual code for your package lives. | -| repositoryDirectory | string | 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. | -| scopedPackagesOptions | projen.javascript.ScopedPackagesOptions[] | Options for privately hosted scoped packages. | -| scripts | {[ key: string ]: string} | npm scripts to include. | -| stability | string | Package's Stability. | -| jsiiReleaseVersion | string | Version requirement of `publib` which is used to publish modules to npm. | -| majorVersion | number | Major version to release from the default branch. | -| minMajorVersion | number | Minimal Major version to release. | -| npmDistTag | string | The npmDistTag to use when publishing from the default branch. | -| postBuildSteps | projen.github.workflows.JobStep[] | Steps to execute after build as part of the release workflow. | -| prerelease | string | Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). | -| publishDryRun | boolean | Instead of actually publishing to package managers, just print the publishing command. | -| publishTasks | boolean | Define publishing tasks that can be executed manually as well as workflows. | -| releasableCommits | projen.ReleasableCommits | Find commits that should be considered releasable Used to decide if a release is required. | -| releaseBranches | {[ key: string ]: projen.release.BranchOptions} | Defines additional release branches. | -| releaseEveryCommit | boolean | Automatically release new versions every commit to one of branches in `releaseBranches`. | -| releaseFailureIssue | boolean | Create a github issue on every failed publishing task. | -| releaseFailureIssueLabel | string | The label to apply to issues indicating publish failures. | -| releaseSchedule | string | CRON schedule to trigger new releases. | -| releaseTagPrefix | string | Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers. | -| releaseTrigger | projen.release.ReleaseTrigger | The release trigger to use. | -| releaseWorkflowName | string | The name of the default release workflow. | -| releaseWorkflowSetupSteps | projen.github.workflows.JobStep[] | A set of workflow steps to execute in order to setup the workflow container. | -| versionrcOptions | {[ key: string ]: any} | Custom configuration used when creating changelog with standard-version package. | -| workflowContainerImage | string | Container image to use for GitHub workflows. | -| workflowRunsOn | string[] | Github Runner selection labels. | -| workflowRunsOnGroup | projen.GroupRunnerOptions | Github Runner Group selection options. | -| defaultReleaseBranch | string | The name of the main release branch. | -| artifactsDirectory | string | A directory which will contain build artifacts. | -| autoApproveUpgrades | boolean | Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). | -| buildWorkflow | boolean | Define a GitHub workflow for building PRs. | -| buildWorkflowTriggers | projen.github.workflows.Triggers | Build workflow triggers. | -| bundlerOptions | projen.javascript.BundlerOptions | Options for `Bundler`. | -| codeCov | boolean | 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`. | -| codeCovTokenSecret | string | Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. | -| copyrightOwner | string | License copyright owner. | -| copyrightPeriod | string | The copyright years to put in the LICENSE file. | -| dependabot | boolean | Use dependabot to handle dependency upgrades. | -| dependabotOptions | projen.github.DependabotOptions | Options for dependabot. | -| depsUpgrade | boolean | Use tasks and github workflows to handle dependency upgrades. | -| depsUpgradeOptions | projen.javascript.UpgradeDependenciesOptions | Options for `UpgradeDependencies`. | -| gitignore | string[] | Additional entries to .gitignore. | -| jest | boolean | Setup jest unit tests. | -| jestOptions | projen.javascript.JestOptions | Jest options. | -| mutableBuild | boolean | Automatically update files modified during builds to pull-request branches. | -| npmignore | string[] | Additional entries to .npmignore. | -| npmignoreEnabled | boolean | Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs. | -| npmIgnoreOptions | projen.IgnoreFileOptions | Configuration options for .npmignore file. | -| package | boolean | Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`). | -| prettier | boolean | Setup prettier. | -| prettierOptions | projen.javascript.PrettierOptions | Prettier options. | -| projenDevDependency | boolean | Indicates of "projen" should be installed as a devDependency. | -| projenrcJs | boolean | Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation. | -| projenrcJsOptions | projen.javascript.ProjenrcOptions | Options for .projenrc.js. | -| projenVersion | string | Version of projen to install. | -| pullRequestTemplate | boolean | Include a GitHub pull request template. | -| pullRequestTemplateContents | string[] | The contents of the pull request template. | -| release | boolean | Add release management to this project. | -| releaseToNpm | boolean | Automatically release to npm when new versions are introduced. | -| releaseWorkflow | boolean | DEPRECATED: renamed to `release`. | -| workflowBootstrapSteps | projen.github.workflows.JobStep[] | Workflow steps to use in order to bootstrap this repo. | -| workflowGitIdentity | projen.github.GitIdentity | The git identity to use in workflows. | -| workflowNodeVersion | string | The node version to use in GitHub workflows. | -| workflowPackageCache | boolean | Enable Node.js package cache in GitHub workflows. | -| disableTsconfig | boolean | Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler). | -| disableTsconfigDev | boolean | Do not generate a `tsconfig.dev.json` file. | -| docgen | boolean | Docgen by Typedoc. | -| docsDirectory | string | Docs directory. | -| entrypointTypes | string | The .d.ts file that includes the type declarations for this module. | -| eslint | boolean | Setup eslint. | -| eslintOptions | projen.javascript.EslintOptions | Eslint options. | -| libdir | string | Typescript artifacts output directory. | -| projenrcTs | boolean | Use TypeScript for your projenrc file (`.projenrc.ts`). | -| projenrcTsOptions | projen.typescript.ProjenrcOptions | Options for .projenrc.ts. | -| sampleCode | boolean | Generate one-time sample in `src/` and `test/` if there are no files there. | -| srcdir | string | Typescript sources directory. | -| testdir | string | Jest tests directory. Tests files should be named `xxx.test.ts`. | -| tsconfig | projen.javascript.TypescriptConfigOptions | Custom TSConfig. | -| tsconfigDev | projen.javascript.TypescriptConfigOptions | Custom tsconfig options for the development tsconfig.json file (used for testing). | -| tsconfigDevFile | string | The name of the development tsconfig.json file. | -| typescriptVersion | string | TypeScript version to use. | -| sendSlackWebhookOnRelease | boolean | Should we send a slack webhook on release (required for compliance audits). | -| sendSlackWebhookOnReleaseOpts | @time-loop/clickup-projen.slackAlert.ReleaseEventOptions | Slack alert on release options. | -| authorAddress | string | Email address for project author. | -| docgenOptions | @time-loop/clickup-projen.clickupTs.TypedocDocgenOptions | Additional options pertaining to the typedoc config file. | -| renovateOptionsConfig | @time-loop/clickup-projen.renovateWorkflow.RenovateOptionsConfig | *No description.* | +- *Type:* string[] +- *Default:* [] + +Runtime dependencies of this module. + +The recommendation is to only specify the module name here (e.g. +`express`). This will behave similar to `yarn add` or `npm install` in the +sense that it will add the module as a dependency to your `package.json` +file with the latest version (`^`). You can specify semver requirements in +the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and +this will be what you `package.json` will eventually include. --- -##### `name`Required +*Example* ```typescript -public readonly name: string; +[ 'express', 'lodash', 'foo@^2' ] +``` + + +##### `description`Optional + +```typescript +public readonly description: string; ``` - *Type:* string -- *Default:* $BASEDIR -This is the name of your project. +The description is just a string that helps people understand the purpose of the package. + +It can be used when searching for packages in a package manager as well. +See https://classic.yarnpkg.com/en/docs/package-json/#toc-description --- -##### `commitGenerated`Optional +##### `devDeps`Optional ```typescript -public readonly commitGenerated: boolean; +public readonly devDeps: string[]; ``` -- *Type:* boolean -- *Default:* true +- *Type:* string[] +- *Default:* [] -Whether to commit the managed files by default. +Build dependencies for this module. + +These dependencies will only be +available in your build environment but will not be fetched when this +module is consumed. + +The recommendation is to only specify the module name here (e.g. +`express`). This will behave similar to `yarn add` or `npm install` in the +sense that it will add the module as a dependency to your `package.json` +file with the latest version (`^`). You can specify semver requirements in +the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and +this will be what you `package.json` will eventually include. --- -##### `gitIgnoreOptions`Optional +*Example* ```typescript -public readonly gitIgnoreOptions: IgnoreFileOptions; +[ 'typescript', '@types/express' ] ``` -- *Type:* projen.IgnoreFileOptions -Configuration options for .gitignore file. +##### `entrypoint`Optional + +```typescript +public readonly entrypoint: string; +``` + +- *Type:* string +- *Default:* "lib/index.js" + +Module entrypoint (`main` in `package.json`). + +Set to an empty string to not include `main` in your package.json --- -##### `gitOptions`Optional +##### `homepage`Optional ```typescript -public readonly gitOptions: GitOptions; +public readonly homepage: string; ``` -- *Type:* projen.GitOptions +- *Type:* string -Configuration options for git. +Package's Homepage / Website. --- -##### `logging`Optional +##### `keywords`Optional ```typescript -public readonly logging: LoggerOptions; +public readonly keywords: string[]; ``` -- *Type:* projen.LoggerOptions -- *Default:* {} +- *Type:* string[] -Configure logging options such as verbosity. +Keywords to include in `package.json`. --- -##### `outdir`Optional +##### `license`Optional ```typescript -public readonly outdir: string; +public readonly license: string; ``` - *Type:* string -- *Default:* "." +- *Default:* "Apache-2.0" -The root directory of the project. +License's SPDX identifier. -Relative to this directory, all files are synthesized. +See https://github.com/projen/projen/tree/main/license-text for a list of supported licenses. +Use the `licensed` option if you want to no license to be specified. -If this project has a parent, this directory is relative to the parent -directory and it cannot be the same as the parent or any of it's other -sub-projects. +--- + +##### `licensed`Optional + +```typescript +public readonly licensed: boolean; +``` + +- *Type:* boolean +- *Default:* true + +Indicates if a license should be added. --- -##### `parent`Optional +##### `maxNodeVersion`Optional ```typescript -public readonly parent: Project; +public readonly maxNodeVersion: string; ``` -- *Type:* projen.Project +- *Type:* string +- *Default:* no max -The parent project, if this project is part of a bigger project. +Minimum node.js version to require via `engines` (inclusive). --- -##### `projenCommand`Optional +##### `minNodeVersion`Optional ```typescript -public readonly projenCommand: string; +public readonly minNodeVersion: string; ``` - *Type:* string -- *Default:* "npx projen" +- *Default:* no "engines" specified -The shell command to use in order to run the projen CLI. +Minimum Node.js version to require via package.json `engines` (inclusive). -Can be used to customize in special environments. +--- + +##### `npmAccess`Optional + +```typescript +public readonly npmAccess: NpmAccess; +``` + +- *Type:* projen.javascript.NpmAccess +- *Default:* for scoped packages (e.g. `foo@bar`), the default is `NpmAccess.RESTRICTED`, for non-scoped packages, the default is `NpmAccess.PUBLIC`. + +Access level of the npm package. --- -##### `projenrcJson`Optional +##### ~~`npmRegistry`~~Optional + +- *Deprecated:* use `npmRegistryUrl` instead ```typescript -public readonly projenrcJson: boolean; +public readonly npmRegistry: string; ``` -- *Type:* boolean -- *Default:* false +- *Type:* string -Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. +The host name of the npm registry to publish to. + +Cannot be set together with `npmRegistryUrl`. --- -##### `projenrcJsonOptions`Optional +##### `npmRegistryUrl`Optional ```typescript -public readonly projenrcJsonOptions: ProjenrcJsonOptions; +public readonly npmRegistryUrl: string; ``` -- *Type:* projen.ProjenrcJsonOptions -- *Default:* default options +- *Type:* string +- *Default:* "https://registry.npmjs.org" -Options for .projenrc.json. +The base URL of the npm package registry. + +Must be a URL (e.g. start with "https://" or "http://") --- -##### `renovatebot`Optional +##### `npmTokenSecret`Optional ```typescript -public readonly renovatebot: boolean; +public readonly npmTokenSecret: string; ``` -- *Type:* boolean -- *Default:* false +- *Type:* string +- *Default:* "NPM_TOKEN" -Use renovatebot to handle dependency upgrades. +GitHub secret which contains the NPM token to use when publishing packages. --- -##### `renovatebotOptions`Optional +##### `packageManager`Optional ```typescript -public readonly renovatebotOptions: RenovatebotOptions; +public readonly packageManager: NodePackageManager; ``` -- *Type:* projen.RenovatebotOptions -- *Default:* default options +- *Type:* projen.javascript.NodePackageManager +- *Default:* NodePackageManager.YARN_CLASSIC -Options for renovatebot. +The Node Package Manager used to execute scripts. --- -##### `autoApproveOptions`Optional +##### `packageName`Optional ```typescript -public readonly autoApproveOptions: AutoApproveOptions; +public readonly packageName: string; ``` -- *Type:* projen.github.AutoApproveOptions -- *Default:* auto approve is disabled +- *Type:* string +- *Default:* defaults to project name -Enable and configure the 'auto approve' workflow. +The "name" in package.json. --- -##### `autoMerge`Optional +##### `peerDependencyOptions`Optional ```typescript -public readonly autoMerge: boolean; +public readonly peerDependencyOptions: PeerDependencyOptions; ``` -- *Type:* boolean -- *Default:* true +- *Type:* projen.javascript.PeerDependencyOptions -Enable automatic merging on GitHub. +Options for `peerDeps`. -Has no effect if `github.mergify` -is set to false. +--- + +##### `peerDeps`Optional + +```typescript +public readonly peerDeps: string[]; +``` + +- *Type:* string[] +- *Default:* [] + +Peer dependencies for this module. + +Dependencies listed here are required to +be installed (and satisfied) by the _consumer_ of this library. Using peer +dependencies allows you to ensure that only a single module of a certain +library exists in the `node_modules` tree of your consumers. + +Note that prior to npm@7, peer dependencies are _not_ automatically +installed, which means that adding peer dependencies to a library will be a +breaking change for your customers. + +Unless `peerDependencyOptions.pinnedDevDependency` is disabled (it is +enabled by default), projen will automatically add a dev dependency with a +pinned version for each peer dependency. This will ensure that you build & +test your module against the lowest peer version required. + +--- + +##### `pnpmVersion`Optional + +```typescript +public readonly pnpmVersion: string; +``` + +- *Type:* string +- *Default:* "7" + +The version of PNPM to use if using PNPM as a package manager. + +--- + +##### `repository`Optional + +```typescript +public readonly repository: string; +``` + +- *Type:* string + +The repository is the location where the actual code for your package lives. + +See https://classic.yarnpkg.com/en/docs/package-json/#toc-repository --- -##### `autoMergeOptions`Optional +##### `repositoryDirectory`Optional ```typescript -public readonly autoMergeOptions: AutoMergeOptions; +public readonly repositoryDirectory: string; ``` -- *Type:* projen.github.AutoMergeOptions -- *Default:* see defaults in `AutoMergeOptions` - -Configure options for automatic merging on GitHub. +- *Type:* string -Has no effect if -`github.mergify` or `autoMerge` is set to false. +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. --- -##### `clobber`Optional +##### `scopedPackagesOptions`Optional ```typescript -public readonly clobber: boolean; +public readonly scopedPackagesOptions: ScopedPackagesOptions[]; ``` -- *Type:* boolean -- *Default:* true, but false for subprojects +- *Type:* projen.javascript.ScopedPackagesOptions[] +- *Default:* fetch all scoped packages from the public npm registry -Add a `clobber` task which resets the repo to origin. +Options for privately hosted scoped packages. --- -##### `devContainer`Optional +##### ~~`scripts`~~Optional + +- *Deprecated:* use `project.addTask()` or `package.setScript()` ```typescript -public readonly devContainer: boolean; +public readonly scripts: {[ key: string ]: string}; ``` -- *Type:* boolean -- *Default:* false +- *Type:* {[ key: string ]: string} +- *Default:* {} -Add a VSCode development environment (used for GitHub Codespaces). +npm scripts to include. + +If a script has the same name as a standard script, +the standard script will be overwritten. +Also adds the script as a task. --- -##### `github`Optional +##### `stability`Optional ```typescript -public readonly github: boolean; +public readonly stability: string; ``` -- *Type:* boolean -- *Default:* true - -Enable GitHub integration. +- *Type:* string -Enabled by default for root projects. Disabled for non-root projects. +Package's Stability. --- -##### `githubOptions`Optional +##### `yarnBerryOptions`Optional ```typescript -public readonly githubOptions: GitHubOptions; +public readonly yarnBerryOptions: YarnBerryOptions; ``` -- *Type:* projen.github.GitHubOptions -- *Default:* see GitHubOptions +- *Type:* projen.javascript.YarnBerryOptions +- *Default:* Yarn Berry v4 with all default options -Options for GitHub integration. +Options for Yarn Berry. --- -##### `gitpod`Optional +##### `jsiiReleaseVersion`Optional ```typescript -public readonly gitpod: boolean; +public readonly jsiiReleaseVersion: string; ``` -- *Type:* boolean -- *Default:* false +- *Type:* string +- *Default:* "latest" -Add a Gitpod development environment. +Version requirement of `publib` which is used to publish modules to npm. --- -##### ~~`mergify`~~Optional - -- *Deprecated:* use `githubOptions.mergify` instead +##### `majorVersion`Optional ```typescript -public readonly mergify: boolean; +public readonly majorVersion: number; ``` -- *Type:* boolean -- *Default:* true +- *Type:* number +- *Default:* Major version is not enforced. -Whether mergify should be enabled on this repository or not. +Major version to release from the default branch. ---- +If this is specified, we bump the latest version of this major version line. +If not specified, we bump the global latest version. -##### ~~`mergifyOptions`~~Optional +--- -- *Deprecated:* use `githubOptions.mergifyOptions` instead +##### `minMajorVersion`Optional ```typescript -public readonly mergifyOptions: MergifyOptions; +public readonly minMajorVersion: number; ``` -- *Type:* projen.github.MergifyOptions -- *Default:* default options +- *Type:* number +- *Default:* No minimum version is being enforced -Options for mergify. +Minimal Major version to release. ---- +This can be useful to set to 1, as breaking changes before the 1.x major +release are not incrementing the major version number. -##### ~~`projectType`~~Optional +Can not be set together with `majorVersion`. -- *Deprecated:* no longer supported at the base project level +--- + +##### `npmDistTag`Optional ```typescript -public readonly projectType: ProjectType; +public readonly npmDistTag: string; ``` -- *Type:* projen.ProjectType -- *Default:* ProjectType.UNKNOWN +- *Type:* string +- *Default:* "latest" -Which type of project this is (library/app). +The npmDistTag to use when publishing from the default branch. + +To set the npm dist-tag for release branches, set the `npmDistTag` property +for each branch. --- -##### `projenCredentials`Optional +##### `postBuildSteps`Optional ```typescript -public readonly projenCredentials: GithubCredentials; +public readonly postBuildSteps: JobStep[]; ``` -- *Type:* projen.github.GithubCredentials -- *Default:* use a personal access token named PROJEN_GITHUB_TOKEN +- *Type:* projen.github.workflows.JobStep[] +- *Default:* [] -Choose a method of providing GitHub API access for projen workflows. +Steps to execute after build as part of the release workflow. --- -##### ~~`projenTokenSecret`~~Optional - -- *Deprecated:* use `projenCredentials` +##### `prerelease`Optional ```typescript -public readonly projenTokenSecret: string; +public readonly prerelease: string; ``` - *Type:* string -- *Default:* "PROJEN_GITHUB_TOKEN" - -The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. +- *Default:* normal semantic versions -This token needs to have the `repo`, `workflows` -and `packages` scope. +Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). --- -##### `readme`Optional +##### `publishDryRun`Optional ```typescript -public readonly readme: SampleReadmeProps; +public readonly publishDryRun: boolean; ``` -- *Type:* projen.SampleReadmeProps -- *Default:* { filename: 'README.md', contents: '# replace this' } +- *Type:* boolean +- *Default:* false -The README setup. +Instead of actually publishing to package managers, just print the publishing command. --- -*Example* +##### `publishTasks`Optional ```typescript -"{ filename: 'readme.md', contents: '# title' }" +public readonly publishTasks: boolean; ``` +- *Type:* boolean +- *Default:* false -##### `stale`Optional +Define publishing tasks that can be executed manually as well as workflows. + +Normally, publishing only happens within automated workflows. Enable this +in order to create a publishing task for each publishing activity. + +--- + +##### `releasableCommits`Optional ```typescript -public readonly stale: boolean; +public readonly releasableCommits: ReleasableCommits; ``` -- *Type:* boolean -- *Default:* false - -Auto-close of stale issues and pull request. +- *Type:* projen.ReleasableCommits +- *Default:* ReleasableCommits.everyCommit() -See `staleOptions` for options. +Find commits that should be considered releasable Used to decide if a release is required. --- -##### `staleOptions`Optional +##### `releaseBranches`Optional ```typescript -public readonly staleOptions: StaleOptions; +public readonly releaseBranches: {[ key: string ]: BranchOptions}; ``` -- *Type:* projen.github.StaleOptions -- *Default:* see defaults in `StaleOptions` +- *Type:* {[ key: string ]: projen.release.BranchOptions} +- *Default:* no additional branches are used for release. you can use `addBranch()` to add additional branches. -Auto-close stale issues and pull requests. +Defines additional release branches. -To disable set `stale` to `false`. +A workflow will be created for each +release branch which will publish releases from commits in this branch. +Each release branch _must_ be assigned a major version number which is used +to enforce that versions published from that branch always use that major +version. If multiple branches are used, the `majorVersion` field must also +be provided for the default branch. --- -##### `vscode`Optional +##### ~~`releaseEveryCommit`~~Optional + +- *Deprecated:* Use `releaseTrigger: ReleaseTrigger.continuous()` instead ```typescript -public readonly vscode: boolean; +public readonly releaseEveryCommit: boolean; ``` - *Type:* boolean - *Default:* true -Enable VSCode integration. - -Enabled by default for root projects. Disabled for non-root projects. +Automatically release new versions every commit to one of branches in `releaseBranches`. --- -##### `allowLibraryDependencies`Optional +##### `releaseFailureIssue`Optional ```typescript -public readonly allowLibraryDependencies: boolean; +public readonly releaseFailureIssue: boolean; ``` - *Type:* boolean -- *Default:* true - -Allow the project to include `peerDependencies` and `bundledDependencies`. +- *Default:* false -This is normally only allowed for libraries. For apps, there's no meaning -for specifying these. +Create a github issue on every failed publishing task. --- -##### `authorEmail`Optional +##### `releaseFailureIssueLabel`Optional ```typescript -public readonly authorEmail: string; +public readonly releaseFailureIssueLabel: string; ``` - *Type:* string +- *Default:* "failed-release" -Author's e-mail. +The label to apply to issues indicating publish failures. + +Only applies if `releaseFailureIssue` is true. --- -##### `authorName`Optional +##### ~~`releaseSchedule`~~Optional + +- *Deprecated:* Use `releaseTrigger: ReleaseTrigger.scheduled()` instead ```typescript -public readonly authorName: string; +public readonly releaseSchedule: string; ``` - *Type:* string +- *Default:* no scheduled releases -Author's name. +CRON schedule to trigger new releases. --- -##### `authorOrganization`Optional +##### `releaseTagPrefix`Optional ```typescript -public readonly authorOrganization: boolean; +public readonly releaseTagPrefix: string; ``` -- *Type:* boolean +- *Type:* string +- *Default:* "v" -Is the author an organization. +Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers. + +Note: this prefix is used to detect the latest tagged version +when bumping, so if you change this on a project with an existing version +history, you may need to manually tag your latest release +with the new prefix. --- -##### `authorUrl`Optional +##### `releaseTrigger`Optional ```typescript -public readonly authorUrl: string; +public readonly releaseTrigger: ReleaseTrigger; ``` -- *Type:* string +- *Type:* projen.release.ReleaseTrigger +- *Default:* Continuous releases (`ReleaseTrigger.continuous()`) -Author's URL / Website. +The release trigger to use. --- -##### `autoDetectBin`Optional +##### `releaseWorkflowName`Optional ```typescript -public readonly autoDetectBin: boolean; +public readonly releaseWorkflowName: string; ``` -- *Type:* boolean -- *Default:* true +- *Type:* string +- *Default:* "Release" -Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section. +The name of the default release workflow. --- -##### `bin`Optional +##### `releaseWorkflowSetupSteps`Optional ```typescript -public readonly bin: {[ key: string ]: string}; +public readonly releaseWorkflowSetupSteps: JobStep[]; ``` -- *Type:* {[ key: string ]: string} - -Binary programs vended with your module. +- *Type:* projen.github.workflows.JobStep[] -You can use this option to add/customize how binaries are represented in -your `package.json`, but unless `autoDetectBin` is `false`, every -executable file under `bin` will automatically be added to this section. +A set of workflow steps to execute in order to setup the workflow container. --- -##### `bugsEmail`Optional +##### `versionrcOptions`Optional ```typescript -public readonly bugsEmail: string; +public readonly versionrcOptions: {[ key: string ]: any}; ``` -- *Type:* string +- *Type:* {[ key: string ]: any} +- *Default:* standard configuration applicable for GitHub repositories -The email address to which issues should be reported. +Custom configuration used when creating changelog with standard-version package. + +Given values either append to default configuration or overwrite values in it. --- -##### `bugsUrl`Optional +##### `workflowContainerImage`Optional ```typescript -public readonly bugsUrl: string; +public readonly workflowContainerImage: string; ``` - *Type:* string +- *Default:* default image -The url to your project's issue tracker. +Container image to use for GitHub workflows. --- -##### `bundledDeps`Optional +##### `workflowRunsOn`Optional ```typescript -public readonly bundledDeps: string[]; +public readonly workflowRunsOn: string[]; ``` - *Type:* string[] +- *Default:* ["ubuntu-latest"] -List of dependencies to bundle into this module. - -These modules will be -added both to the `dependencies` section and `bundledDependencies` section of -your `package.json`. - -The recommendation is to only specify the module name here (e.g. -`express`). This will behave similar to `yarn add` or `npm install` in the -sense that it will add the module as a dependency to your `package.json` -file with the latest version (`^`). You can specify semver requirements in -the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and -this will be what you `package.json` will eventually include. +Github Runner selection labels. --- -##### `codeArtifactOptions`Optional +##### `workflowRunsOnGroup`Optional ```typescript -public readonly codeArtifactOptions: CodeArtifactOptions; +public readonly workflowRunsOnGroup: GroupRunnerOptions; ``` -- *Type:* projen.javascript.CodeArtifactOptions -- *Default:* undefined - -Options for npm packages using AWS CodeArtifact. +- *Type:* projen.GroupRunnerOptions -This is required if publishing packages to, or installing scoped packages from AWS CodeArtifact +Github Runner Group selection options. --- -##### `deps`Optional +##### `defaultReleaseBranch`Required ```typescript -public readonly deps: string[]; +public readonly defaultReleaseBranch: string; ``` -- *Type:* string[] -- *Default:* [] - -Runtime dependencies of this module. +- *Type:* string +- *Default:* "main" -The recommendation is to only specify the module name here (e.g. -`express`). This will behave similar to `yarn add` or `npm install` in the -sense that it will add the module as a dependency to your `package.json` -file with the latest version (`^`). You can specify semver requirements in -the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and -this will be what you `package.json` will eventually include. +The name of the main release branch. --- -*Example* - -```typescript -[ 'express', 'lodash', 'foo@^2' ] -``` - - -##### `description`Optional +##### `artifactsDirectory`Optional ```typescript -public readonly description: string; +public readonly artifactsDirectory: string; ``` - *Type:* string +- *Default:* "dist" -The description is just a string that helps people understand the purpose of the package. - -It can be used when searching for packages in a package manager as well. -See https://classic.yarnpkg.com/en/docs/package-json/#toc-description +A directory which will contain build artifacts. --- -##### `devDeps`Optional +##### `autoApproveUpgrades`Optional ```typescript -public readonly devDeps: string[]; +public readonly autoApproveUpgrades: boolean; ``` -- *Type:* string[] -- *Default:* [] - -Build dependencies for this module. +- *Type:* boolean +- *Default:* true -These dependencies will only be -available in your build environment but will not be fetched when this -module is consumed. +Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). -The recommendation is to only specify the module name here (e.g. -`express`). This will behave similar to `yarn add` or `npm install` in the -sense that it will add the module as a dependency to your `package.json` -file with the latest version (`^`). You can specify semver requirements in -the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and -this will be what you `package.json` will eventually include. +Throw if set to true but `autoApproveOptions` are not defined. --- -*Example* +##### `buildWorkflow`Optional ```typescript -[ 'typescript', '@types/express' ] +public readonly buildWorkflow: boolean; ``` +- *Type:* boolean +- *Default:* true if not a subproject -##### `entrypoint`Optional +Define a GitHub workflow for building PRs. + +--- + +##### `buildWorkflowTriggers`Optional ```typescript -public readonly entrypoint: string; +public readonly buildWorkflowTriggers: Triggers; ``` -- *Type:* string -- *Default:* "lib/index.js" - -Module entrypoint (`main` in `package.json`). +- *Type:* projen.github.workflows.Triggers +- *Default:* "{ pullRequest: {}, workflowDispatch: {} }" -Set to an empty string to not include `main` in your package.json +Build workflow triggers. --- -##### `homepage`Optional +##### `bundlerOptions`Optional ```typescript -public readonly homepage: string; +public readonly bundlerOptions: BundlerOptions; ``` -- *Type:* string +- *Type:* projen.javascript.BundlerOptions -Package's Homepage / Website. +Options for `Bundler`. --- -##### `keywords`Optional +##### `codeCov`Optional ```typescript -public readonly keywords: string[]; +public readonly codeCov: boolean; ``` -- *Type:* string[] +- *Type:* boolean +- *Default:* false -Keywords to include in `package.json`. +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`. --- -##### `license`Optional +##### `codeCovTokenSecret`Optional ```typescript -public readonly license: string; +public readonly codeCovTokenSecret: string; ``` - *Type:* string -- *Default:* "Apache-2.0" - -License's SPDX identifier. +- *Default:* if this option is not specified, only public repositories are supported -See https://github.com/projen/projen/tree/main/license-text for a list of supported licenses. -Use the `licensed` option if you want to no license to be specified. +Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. --- -##### `licensed`Optional +##### `copyrightOwner`Optional ```typescript -public readonly licensed: boolean; +public readonly copyrightOwner: string; ``` -- *Type:* boolean -- *Default:* true +- *Type:* string +- *Default:* defaults to the value of authorName or "" if `authorName` is undefined. -Indicates if a license should be added. +License copyright owner. --- -##### `maxNodeVersion`Optional +##### `copyrightPeriod`Optional ```typescript -public readonly maxNodeVersion: string; +public readonly copyrightPeriod: string; ``` - *Type:* string -- *Default:* no max +- *Default:* current year -Minimum node.js version to require via `engines` (inclusive). +The copyright years to put in the LICENSE file. --- -##### `minNodeVersion`Optional +##### `dependabot`Optional ```typescript -public readonly minNodeVersion: string; +public readonly dependabot: boolean; ``` -- *Type:* string -- *Default:* no "engines" specified +- *Type:* boolean +- *Default:* false -Minimum Node.js version to require via package.json `engines` (inclusive). +Use dependabot to handle dependency upgrades. + +Cannot be used in conjunction with `depsUpgrade`. --- -##### `npmAccess`Optional +##### `dependabotOptions`Optional ```typescript -public readonly npmAccess: NpmAccess; +public readonly dependabotOptions: DependabotOptions; ``` -- *Type:* projen.javascript.NpmAccess -- *Default:* for scoped packages (e.g. `foo@bar`), the default is `NpmAccess.RESTRICTED`, for non-scoped packages, the default is `NpmAccess.PUBLIC`. +- *Type:* projen.github.DependabotOptions +- *Default:* default options -Access level of the npm package. +Options for dependabot. --- -##### ~~`npmRegistry`~~Optional - -- *Deprecated:* use `npmRegistryUrl` instead +##### `depsUpgrade`Optional ```typescript -public readonly npmRegistry: string; +public readonly depsUpgrade: boolean; ``` -- *Type:* string +- *Type:* boolean +- *Default:* true -The host name of the npm registry to publish to. +Use tasks and github workflows to handle dependency upgrades. -Cannot be set together with `npmRegistryUrl`. +Cannot be used in conjunction with `dependabot`. --- -##### `npmRegistryUrl`Optional +##### `depsUpgradeOptions`Optional ```typescript -public readonly npmRegistryUrl: string; +public readonly depsUpgradeOptions: UpgradeDependenciesOptions; ``` -- *Type:* string -- *Default:* "https://registry.npmjs.org" - -The base URL of the npm package registry. +- *Type:* projen.javascript.UpgradeDependenciesOptions +- *Default:* default options -Must be a URL (e.g. start with "https://" or "http://") +Options for `UpgradeDependencies`. --- -##### `npmTokenSecret`Optional +##### `gitignore`Optional ```typescript -public readonly npmTokenSecret: string; +public readonly gitignore: string[]; ``` -- *Type:* string -- *Default:* "NPM_TOKEN" +- *Type:* string[] -GitHub secret which contains the NPM token to use when publishing packages. +Additional entries to .gitignore. --- -##### `packageManager`Optional +##### `jest`Optional ```typescript -public readonly packageManager: NodePackageManager; +public readonly jest: boolean; ``` -- *Type:* projen.javascript.NodePackageManager -- *Default:* NodePackageManager.YARN +- *Type:* boolean +- *Default:* true -The Node Package Manager used to execute scripts. +Setup jest unit tests. --- -##### `packageName`Optional +##### `jestOptions`Optional ```typescript -public readonly packageName: string; +public readonly jestOptions: JestOptions; ``` -- *Type:* string -- *Default:* defaults to project name +- *Type:* projen.javascript.JestOptions +- *Default:* default options -The "name" in package.json. +Jest options. --- -##### `peerDependencyOptions`Optional +##### `mutableBuild`Optional ```typescript -public readonly peerDependencyOptions: PeerDependencyOptions; +public readonly mutableBuild: boolean; ``` -- *Type:* projen.javascript.PeerDependencyOptions +- *Type:* boolean +- *Default:* true -Options for `peerDeps`. +Automatically update files modified during builds to pull-request branches. + +This means +that any files synthesized by projen or e.g. test snapshots will always be up-to-date +before a PR is merged. + +Implies that PR builds do not have anti-tamper checks. --- -##### `peerDeps`Optional +##### ~~`npmignore`~~Optional + +- *Deprecated:* - use `project.addPackageIgnore` ```typescript -public readonly peerDeps: string[]; +public readonly npmignore: string[]; ``` - *Type:* string[] -- *Default:* [] - -Peer dependencies for this module. - -Dependencies listed here are required to -be installed (and satisfied) by the _consumer_ of this library. Using peer -dependencies allows you to ensure that only a single module of a certain -library exists in the `node_modules` tree of your consumers. - -Note that prior to npm@7, peer dependencies are _not_ automatically -installed, which means that adding peer dependencies to a library will be a -breaking change for your customers. -Unless `peerDependencyOptions.pinnedDevDependency` is disabled (it is -enabled by default), projen will automatically add a dev dependency with a -pinned version for each peer dependency. This will ensure that you build & -test your module against the lowest peer version required. +Additional entries to .npmignore. --- -##### `pnpmVersion`Optional +##### `npmignoreEnabled`Optional ```typescript -public readonly pnpmVersion: string; +public readonly npmignoreEnabled: boolean; ``` -- *Type:* string -- *Default:* "7" +- *Type:* boolean +- *Default:* true -The version of PNPM to use if using PNPM as a package manager. +Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs. --- -##### `repository`Optional +##### `npmIgnoreOptions`Optional ```typescript -public readonly repository: string; +public readonly npmIgnoreOptions: IgnoreFileOptions; ``` -- *Type:* string - -The repository is the location where the actual code for your package lives. +- *Type:* projen.IgnoreFileOptions -See https://classic.yarnpkg.com/en/docs/package-json/#toc-repository +Configuration options for .npmignore file. --- -##### `repositoryDirectory`Optional +##### `package`Optional ```typescript -public readonly repositoryDirectory: string; +public readonly package: boolean; ``` -- *Type:* string +- *Type:* boolean +- *Default:* true -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. +Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`). --- -##### `scopedPackagesOptions`Optional +##### `prettier`Optional ```typescript -public readonly scopedPackagesOptions: ScopedPackagesOptions[]; +public readonly prettier: boolean; ``` -- *Type:* projen.javascript.ScopedPackagesOptions[] -- *Default:* fetch all scoped packages from the public npm registry +- *Type:* boolean +- *Default:* false -Options for privately hosted scoped packages. +Setup prettier. --- -##### ~~`scripts`~~Optional - -- *Deprecated:* use `project.addTask()` or `package.setScript()` +##### `prettierOptions`Optional ```typescript -public readonly scripts: {[ key: string ]: string}; +public readonly prettierOptions: PrettierOptions; ``` -- *Type:* {[ key: string ]: string} -- *Default:* {} - -npm scripts to include. +- *Type:* projen.javascript.PrettierOptions +- *Default:* default options -If a script has the same name as a standard script, -the standard script will be overwritten. -Also adds the script as a task. +Prettier options. --- -##### `stability`Optional +##### `projenDevDependency`Optional ```typescript -public readonly stability: string; +public readonly projenDevDependency: boolean; ``` -- *Type:* string +- *Type:* boolean +- *Default:* true -Package's Stability. +Indicates of "projen" should be installed as a devDependency. --- -##### `jsiiReleaseVersion`Optional +##### `projenrcJs`Optional ```typescript -public readonly jsiiReleaseVersion: string; +public readonly projenrcJs: boolean; ``` -- *Type:* string -- *Default:* "latest" +- *Type:* boolean +- *Default:* true if projenrcJson is false -Version requirement of `publib` which is used to publish modules to npm. +Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation. --- -##### `majorVersion`Optional +##### `projenrcJsOptions`Optional ```typescript -public readonly majorVersion: number; +public readonly projenrcJsOptions: ProjenrcOptions; ``` -- *Type:* number -- *Default:* Major version is not enforced. - -Major version to release from the default branch. +- *Type:* projen.javascript.ProjenrcOptions +- *Default:* default options -If this is specified, we bump the latest version of this major version line. -If not specified, we bump the global latest version. +Options for .projenrc.js. --- -##### `minMajorVersion`Optional +##### `projenVersion`Optional ```typescript -public readonly minMajorVersion: number; +public readonly projenVersion: string; ``` -- *Type:* number -- *Default:* No minimum version is being enforced - -Minimal Major version to release. - -This can be useful to set to 1, as breaking changes before the 1.x major -release are not incrementing the major version number. +- *Type:* string +- *Default:* Defaults to the latest version. -Can not be set together with `majorVersion`. +Version of projen to install. --- -##### `npmDistTag`Optional +##### `pullRequestTemplate`Optional ```typescript -public readonly npmDistTag: string; +public readonly pullRequestTemplate: boolean; ``` -- *Type:* string -- *Default:* "latest" - -The npmDistTag to use when publishing from the default branch. +- *Type:* boolean +- *Default:* true -To set the npm dist-tag for release branches, set the `npmDistTag` property -for each branch. +Include a GitHub pull request template. --- -##### `postBuildSteps`Optional +##### `pullRequestTemplateContents`Optional ```typescript -public readonly postBuildSteps: JobStep[]; +public readonly pullRequestTemplateContents: string[]; ``` -- *Type:* projen.github.workflows.JobStep[] -- *Default:* [] +- *Type:* string[] +- *Default:* default content -Steps to execute after build as part of the release workflow. +The contents of the pull request template. --- -##### `prerelease`Optional +##### `release`Optional ```typescript -public readonly prerelease: string; +public readonly release: boolean; ``` -- *Type:* string -- *Default:* normal semantic versions +- *Type:* boolean +- *Default:* true (false for subprojects) -Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). +Add release management to this project. --- -##### `publishDryRun`Optional +##### `releaseToNpm`Optional ```typescript -public readonly publishDryRun: boolean; +public readonly releaseToNpm: boolean; ``` - *Type:* boolean - *Default:* false -Instead of actually publishing to package managers, just print the publishing command. +Automatically release to npm when new versions are introduced. --- -##### `publishTasks`Optional +##### ~~`releaseWorkflow`~~Optional + +- *Deprecated:* see `release`. ```typescript -public readonly publishTasks: boolean; +public readonly releaseWorkflow: boolean; ``` - *Type:* boolean -- *Default:* false - -Define publishing tasks that can be executed manually as well as workflows. +- *Default:* true if not a subproject -Normally, publishing only happens within automated workflows. Enable this -in order to create a publishing task for each publishing activity. +DEPRECATED: renamed to `release`. --- -##### `releasableCommits`Optional +##### `workflowBootstrapSteps`Optional ```typescript -public readonly releasableCommits: ReleasableCommits; +public readonly workflowBootstrapSteps: JobStep[]; ``` -- *Type:* projen.ReleasableCommits -- *Default:* ReleasableCommits.everyCommit() +- *Type:* projen.github.workflows.JobStep[] +- *Default:* "yarn install --frozen-lockfile && yarn projen" -Find commits that should be considered releasable Used to decide if a release is required. +Workflow steps to use in order to bootstrap this repo. --- -##### `releaseBranches`Optional +##### `workflowGitIdentity`Optional ```typescript -public readonly releaseBranches: {[ key: string ]: BranchOptions}; +public readonly workflowGitIdentity: GitIdentity; ``` -- *Type:* {[ key: string ]: projen.release.BranchOptions} -- *Default:* no additional branches are used for release. you can use `addBranch()` to add additional branches. - -Defines additional release branches. +- *Type:* projen.github.GitIdentity +- *Default:* GitHub Actions -A workflow will be created for each -release branch which will publish releases from commits in this branch. -Each release branch _must_ be assigned a major version number which is used -to enforce that versions published from that branch always use that major -version. If multiple branches are used, the `majorVersion` field must also -be provided for the default branch. +The git identity to use in workflows. --- -##### ~~`releaseEveryCommit`~~Optional - -- *Deprecated:* Use `releaseTrigger: ReleaseTrigger.continuous()` instead +##### `workflowNodeVersion`Optional ```typescript -public readonly releaseEveryCommit: boolean; +public readonly workflowNodeVersion: string; ``` -- *Type:* boolean -- *Default:* true +- *Type:* string +- *Default:* same as `minNodeVersion` -Automatically release new versions every commit to one of branches in `releaseBranches`. +The node version to use in GitHub workflows. --- -##### `releaseFailureIssue`Optional +##### `workflowPackageCache`Optional ```typescript -public readonly releaseFailureIssue: boolean; +public readonly workflowPackageCache: boolean; ``` - *Type:* boolean - *Default:* false -Create a github issue on every failed publishing task. +Enable Node.js package cache in GitHub workflows. --- -##### `releaseFailureIssueLabel`Optional +##### `disableTsconfig`Optional ```typescript -public readonly releaseFailureIssueLabel: string; +public readonly disableTsconfig: boolean; ``` -- *Type:* string -- *Default:* "failed-release" - -The label to apply to issues indicating publish failures. - -Only applies if `releaseFailureIssue` is true. +- *Type:* boolean +- *Default:* false ---- +Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler). -##### ~~`releaseSchedule`~~Optional +--- -- *Deprecated:* Use `releaseTrigger: ReleaseTrigger.scheduled()` instead +##### `disableTsconfigDev`Optional ```typescript -public readonly releaseSchedule: string; +public readonly disableTsconfigDev: boolean; ``` -- *Type:* string -- *Default:* no scheduled releases +- *Type:* boolean +- *Default:* false -CRON schedule to trigger new releases. +Do not generate a `tsconfig.dev.json` file. --- -##### `releaseTagPrefix`Optional +##### `docgen`Optional ```typescript -public readonly releaseTagPrefix: string; +public readonly docgen: boolean; ``` -- *Type:* string -- *Default:* "v" - -Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers. +- *Type:* boolean +- *Default:* false -Note: this prefix is used to detect the latest tagged version -when bumping, so if you change this on a project with an existing version -history, you may need to manually tag your latest release -with the new prefix. +Docgen by Typedoc. --- -##### `releaseTrigger`Optional +##### `docsDirectory`Optional ```typescript -public readonly releaseTrigger: ReleaseTrigger; +public readonly docsDirectory: string; ``` -- *Type:* projen.release.ReleaseTrigger -- *Default:* Continuous releases (`ReleaseTrigger.continuous()`) +- *Type:* string +- *Default:* "docs" -The release trigger to use. +Docs directory. --- -##### `releaseWorkflowName`Optional +##### `entrypointTypes`Optional ```typescript -public readonly releaseWorkflowName: string; +public readonly entrypointTypes: string; ``` - *Type:* string -- *Default:* "Release" +- *Default:* .d.ts file derived from the project's entrypoint (usually lib/index.d.ts) -The name of the default release workflow. +The .d.ts file that includes the type declarations for this module. --- -##### `releaseWorkflowSetupSteps`Optional +##### `eslint`Optional ```typescript -public readonly releaseWorkflowSetupSteps: JobStep[]; +public readonly eslint: boolean; ``` -- *Type:* projen.github.workflows.JobStep[] +- *Type:* boolean +- *Default:* true -A set of workflow steps to execute in order to setup the workflow container. +Setup eslint. --- -##### `versionrcOptions`Optional +##### `eslintOptions`Optional ```typescript -public readonly versionrcOptions: {[ key: string ]: any}; +public readonly eslintOptions: EslintOptions; ``` -- *Type:* {[ key: string ]: any} -- *Default:* standard configuration applicable for GitHub repositories - -Custom configuration used when creating changelog with standard-version package. +- *Type:* projen.javascript.EslintOptions +- *Default:* opinionated default options -Given values either append to default configuration or overwrite values in it. +Eslint options. --- -##### `workflowContainerImage`Optional +##### `libdir`Optional ```typescript -public readonly workflowContainerImage: string; +public readonly libdir: string; ``` - *Type:* string -- *Default:* default image +- *Default:* "lib" -Container image to use for GitHub workflows. +Typescript artifacts output directory. --- -##### `workflowRunsOn`Optional +##### `projenrcTs`Optional ```typescript -public readonly workflowRunsOn: string[]; +public readonly projenrcTs: boolean; ``` -- *Type:* string[] -- *Default:* ["ubuntu-latest"] +- *Type:* boolean +- *Default:* false -Github Runner selection labels. +Use TypeScript for your projenrc file (`.projenrc.ts`). --- -##### `workflowRunsOnGroup`Optional +##### `projenrcTsOptions`Optional ```typescript -public readonly workflowRunsOnGroup: GroupRunnerOptions; +public readonly projenrcTsOptions: ProjenrcOptions; ``` -- *Type:* projen.GroupRunnerOptions +- *Type:* projen.typescript.ProjenrcOptions -Github Runner Group selection options. +Options for .projenrc.ts. --- -##### `defaultReleaseBranch`Required +##### `sampleCode`Optional ```typescript -public readonly defaultReleaseBranch: string; +public readonly sampleCode: boolean; ``` -- *Type:* string -- *Default:* "main" +- *Type:* boolean +- *Default:* true -The name of the main release branch. +Generate one-time sample in `src/` and `test/` if there are no files there. --- -##### `artifactsDirectory`Optional +##### `srcdir`Optional ```typescript -public readonly artifactsDirectory: string; +public readonly srcdir: string; ``` - *Type:* string -- *Default:* "dist" +- *Default:* "src" -A directory which will contain build artifacts. +Typescript sources directory. --- -##### `autoApproveUpgrades`Optional +##### `testdir`Optional ```typescript -public readonly autoApproveUpgrades: boolean; +public readonly testdir: string; ``` -- *Type:* boolean -- *Default:* true +- *Type:* string +- *Default:* "test" -Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). +Jest tests directory. Tests files should be named `xxx.test.ts`. -Throw if set to true but `autoApproveOptions` are not defined. +If this directory is under `srcdir` (e.g. `src/test`, `src/__tests__`), +then tests are going to be compiled into `lib/` and executed as javascript. +If the test directory is outside of `src`, then we configure jest to +compile the code in-memory. --- -##### `buildWorkflow`Optional +##### `tsconfig`Optional ```typescript -public readonly buildWorkflow: boolean; +public readonly tsconfig: TypescriptConfigOptions; ``` -- *Type:* boolean -- *Default:* true if not a subproject +- *Type:* projen.javascript.TypescriptConfigOptions +- *Default:* default options -Define a GitHub workflow for building PRs. +Custom TSConfig. --- -##### `buildWorkflowTriggers`Optional +##### `tsconfigDev`Optional ```typescript -public readonly buildWorkflowTriggers: Triggers; +public readonly tsconfigDev: TypescriptConfigOptions; ``` -- *Type:* projen.github.workflows.Triggers -- *Default:* "{ pullRequest: {}, workflowDispatch: {} }" +- *Type:* projen.javascript.TypescriptConfigOptions +- *Default:* use the production tsconfig options -Build workflow triggers. +Custom tsconfig options for the development tsconfig.json file (used for testing). --- -##### `bundlerOptions`Optional +##### `tsconfigDevFile`Optional ```typescript -public readonly bundlerOptions: BundlerOptions; +public readonly tsconfigDevFile: string; ``` -- *Type:* projen.javascript.BundlerOptions +- *Type:* string +- *Default:* "tsconfig.dev.json" -Options for `Bundler`. +The name of the development tsconfig.json file. --- -##### `codeCov`Optional +##### `typescriptVersion`Optional ```typescript -public readonly codeCov: boolean; +public readonly typescriptVersion: string; ``` -- *Type:* boolean -- *Default:* false +- *Type:* string +- *Default:* "latest" -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`. +TypeScript version to use. + +NOTE: Typescript is not semantically versioned and should remain on the +same minor, so we recommend using a `~` dependency (e.g. `~1.2.3`). --- -##### `codeCovTokenSecret`Optional +##### `author`Required ```typescript -public readonly codeCovTokenSecret: string; +public readonly author: string; ``` - *Type:* string -- *Default:* if this option is not specified, only public repositories are supported +- *Default:* $GIT_USER_NAME -Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. +The name of the library author. --- -##### `copyrightOwner`Optional +##### `authorAddress`Required ```typescript -public readonly copyrightOwner: string; +public readonly authorAddress: string; ``` - *Type:* string -- *Default:* defaults to the value of authorName or "" if `authorName` is undefined. +- *Default:* $GIT_USER_EMAIL -License copyright owner. +Email or URL of the library author. --- -##### `copyrightPeriod`Optional +##### `repositoryUrl`Required ```typescript -public readonly copyrightPeriod: string; +public readonly repositoryUrl: string; ``` - *Type:* string -- *Default:* current year +- *Default:* $GIT_REMOTE -The copyright years to put in the LICENSE file. +Git repository URL. --- -##### `dependabot`Optional +##### `compat`Optional ```typescript -public readonly dependabot: boolean; +public readonly compat: boolean; ``` - *Type:* boolean - *Default:* false -Use dependabot to handle dependency upgrades. +Automatically run API compatibility test against the latest version published to npm after compilation. -Cannot be used in conjunction with `depsUpgrade`. +You can manually run compatibility tests using `yarn compat` if this feature is disabled. +- You can ignore compatibility failures by adding lines to a ".compatignore" file. --- -##### `dependabotOptions`Optional +##### `compatIgnore`Optional ```typescript -public readonly dependabotOptions: DependabotOptions; +public readonly compatIgnore: string; ``` -- *Type:* projen.github.DependabotOptions -- *Default:* default options +- *Type:* string +- *Default:* ".compatignore" -Options for dependabot. +Name of the ignore file for API compatibility tests. --- -##### `depsUpgrade`Optional +##### `compressAssembly`Optional ```typescript -public readonly depsUpgrade: boolean; +public readonly compressAssembly: boolean; ``` - *Type:* boolean -- *Default:* true - -Use tasks and github workflows to handle dependency upgrades. +- *Default:* false -Cannot be used in conjunction with `dependabot`. +Emit a compressed version of the assembly. --- -##### `depsUpgradeOptions`Optional +##### `docgenFilePath`Optional ```typescript -public readonly depsUpgradeOptions: UpgradeDependenciesOptions; +public readonly docgenFilePath: string; ``` -- *Type:* projen.javascript.UpgradeDependenciesOptions -- *Default:* default options +- *Type:* string +- *Default:* "API.md" -Options for `UpgradeDependencies`. +File path for generated docs. --- -##### `gitignore`Optional - -```typescript -public readonly gitignore: string[]; -``` - -- *Type:* string[] - -Additional entries to .gitignore. - ---- +##### ~~`dotnet`~~Optional -##### `jest`Optional +- *Deprecated:* use `publishToNuget` ```typescript -public readonly jest: boolean; +public readonly dotnet: JsiiDotNetTarget; ``` -- *Type:* boolean -- *Default:* true - -Setup jest unit tests. +- *Type:* projen.cdk.JsiiDotNetTarget --- -##### `jestOptions`Optional +##### `excludeTypescript`Optional ```typescript -public readonly jestOptions: JestOptions; +public readonly excludeTypescript: string[]; ``` -- *Type:* projen.javascript.JestOptions -- *Default:* default options +- *Type:* string[] + +Accepts a list of glob patterns. -Jest options. +Files matching any of those patterns will be excluded from the TypeScript compiler input. + +By default, jsii will include all *.ts files (except .d.ts files) in the TypeScript compiler input. +This can be problematic for example when the package's build or test procedure generates .ts files +that cannot be compiled with jsii's compiler settings. --- -##### `mutableBuild`Optional +##### `jsiiVersion`Optional ```typescript -public readonly mutableBuild: boolean; +public readonly jsiiVersion: string; ``` -- *Type:* boolean -- *Default:* true +- *Type:* string +- *Default:* "1.x" -Automatically update files modified during builds to pull-request branches. +Version of the jsii compiler to use. -This means -that any files synthesized by projen or e.g. test snapshots will always be up-to-date -before a PR is merged. +Set to "*" if you want to manually manage the version of jsii in your +project by managing updates to `package.json` on your own. -Implies that PR builds do not have anti-tamper checks. +NOTE: The jsii compiler releases since 5.0.0 are not semantically versioned +and should remain on the same minor, so we recommend using a `~` dependency +(e.g. `~5.0.0`). --- -##### ~~`npmignore`~~Optional - -- *Deprecated:* - use `project.addPackageIgnore` +##### `publishToGo`Optional ```typescript -public readonly npmignore: string[]; +public readonly publishToGo: JsiiGoTarget; ``` -- *Type:* string[] +- *Type:* projen.cdk.JsiiGoTarget +- *Default:* no publishing -Additional entries to .npmignore. +Publish Go bindings to a git repository. --- -##### `npmignoreEnabled`Optional +##### `publishToMaven`Optional ```typescript -public readonly npmignoreEnabled: boolean; +public readonly publishToMaven: JsiiJavaTarget; ``` -- *Type:* boolean -- *Default:* true +- *Type:* projen.cdk.JsiiJavaTarget +- *Default:* no publishing -Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs. +Publish to maven. --- -##### `npmIgnoreOptions`Optional +##### `publishToNuget`Optional ```typescript -public readonly npmIgnoreOptions: IgnoreFileOptions; +public readonly publishToNuget: JsiiDotNetTarget; ``` -- *Type:* projen.IgnoreFileOptions +- *Type:* projen.cdk.JsiiDotNetTarget +- *Default:* no publishing -Configuration options for .npmignore file. +Publish to NuGet. --- -##### `package`Optional +##### `publishToPypi`Optional ```typescript -public readonly package: boolean; +public readonly publishToPypi: JsiiPythonTarget; ``` -- *Type:* boolean -- *Default:* true +- *Type:* projen.cdk.JsiiPythonTarget +- *Default:* no publishing -Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`). +Publish to pypi. --- -##### `prettier`Optional +##### ~~`python`~~Optional + +- *Deprecated:* use `publishToPyPi` ```typescript -public readonly prettier: boolean; +public readonly python: JsiiPythonTarget; ``` -- *Type:* boolean -- *Default:* false - -Setup prettier. +- *Type:* projen.cdk.JsiiPythonTarget --- -##### `prettierOptions`Optional +##### `rootdir`Optional ```typescript -public readonly prettierOptions: PrettierOptions; +public readonly rootdir: string; ``` -- *Type:* projen.javascript.PrettierOptions -- *Default:* default options - -Prettier options. +- *Type:* string +- *Default:* "." --- -##### `projenDevDependency`Optional +##### `catalog`Optional ```typescript -public readonly projenDevDependency: boolean; +public readonly catalog: Catalog; ``` -- *Type:* boolean -- *Default:* true - -Indicates of "projen" should be installed as a devDependency. +- *Type:* projen.cdk.Catalog +- *Default:* new version will be announced ---- +Libraries will be picked up by the construct catalog when they are published to npm as jsii modules and will be published under:. -##### `projenrcJs`Optional +https://awscdk.io/packages/[@SCOPE/]PACKAGE@VERSION -```typescript -public readonly projenrcJs: boolean; -``` +The catalog will also post a tweet to https://twitter.com/awscdkio with the +package name, description and the above link. You can disable these tweets +through `{ announce: false }`. -- *Type:* boolean -- *Default:* true if projenrcJson is false +You can also add a Twitter handle through `{ twitter: 'xx' }` which will be +mentioned in the tweet. -Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation. +> [https://github.com/construct-catalog/catalog](https://github.com/construct-catalog/catalog) --- -##### `projenrcJsOptions`Optional +##### `cdkVersion`Required ```typescript -public readonly projenrcJsOptions: ProjenrcOptions; +public readonly cdkVersion: string; ``` -- *Type:* projen.javascript.ProjenrcOptions -- *Default:* default options +- *Type:* string +- *Default:* "2.1.0" -Options for .projenrc.js. +Minimum version of the AWS CDK to depend on. --- -##### `projenVersion`Optional +##### ~~`cdkAssert`~~Optional + +- *Deprecated:* The ```typescript -public readonly projenVersion: string; +public readonly cdkAssert: boolean; ``` -- *Type:* string -- *Default:* Defaults to the latest version. +- *Type:* boolean +- *Default:* will be included by default for AWS CDK >= 1.0.0 < 2.0.0 -Version of projen to install. +Warning: NodeJS only. + +Install the --- -##### `pullRequestTemplate`Optional +##### `cdkAssertions`Optional ```typescript -public readonly pullRequestTemplate: boolean; +public readonly cdkAssertions: boolean; ``` - *Type:* boolean -- *Default:* true +- *Default:* will be included by default for AWS CDK >= 1.111.0 < 2.0.0 -Include a GitHub pull request template. +Install the assertions library? + +Only needed for CDK 1.x. If using CDK 2.x then +assertions is already included in 'aws-cdk-lib' --- -##### `pullRequestTemplateContents`Optional +##### ~~`cdkDependencies`~~Optional + +- *Deprecated:* For CDK 2.x use "deps" instead. (or "peerDeps" if you're building a library) ```typescript -public readonly pullRequestTemplateContents: string[]; +public readonly cdkDependencies: string[]; ``` - *Type:* string[] -- *Default:* default content -The contents of the pull request template. +Which AWS CDKv1 modules this project requires. --- -##### `release`Optional +##### ~~`cdkDependenciesAsDeps`~~Optional + +- *Deprecated:* Not supported in CDK v2. ```typescript -public readonly release: boolean; +public readonly cdkDependenciesAsDeps: boolean; ``` - *Type:* boolean -- *Default:* true (false for subprojects) +- *Default:* true -Add release management to this project. +If this is enabled (default), all modules declared in `cdkDependencies` will be also added as normal `dependencies` (as well as `peerDependencies`). + +This is to ensure that downstream consumers actually have your CDK dependencies installed +when using npm < 7 or yarn, where peer dependencies are not automatically installed. +If this is disabled, `cdkDependencies` will be added to `devDependencies` to ensure +they are present during development. + +Note: this setting only applies to construct library projects --- -##### `releaseToNpm`Optional +##### ~~`cdkTestDependencies`~~Optional + +- *Deprecated:* For CDK 2.x use 'devDeps' (in node.js projects) or 'testDeps' (in java projects) instead ```typescript -public readonly releaseToNpm: boolean; +public readonly cdkTestDependencies: string[]; ``` -- *Type:* boolean -- *Default:* false +- *Type:* string[] -Automatically release to npm when new versions are introduced. +AWS CDK modules required for testing. --- -##### ~~`releaseWorkflow`~~Optional - -- *Deprecated:* see `release`. +##### `cdkVersionPinning`Optional ```typescript -public readonly releaseWorkflow: boolean; +public readonly cdkVersionPinning: boolean; ``` - *Type:* boolean -- *Default:* true if not a subproject -DEPRECATED: renamed to `release`. +Use pinned version instead of caret version for CDK. + +You can use this to prevent mixed versions for your CDK dependencies and to prevent auto-updates. +If you use experimental features this will let you define the moment you include breaking changes. --- -##### `workflowBootstrapSteps`Optional +##### `constructsVersion`Optional ```typescript -public readonly workflowBootstrapSteps: JobStep[]; +public readonly constructsVersion: string; ``` -- *Type:* projen.github.workflows.JobStep[] -- *Default:* "yarn install --frozen-lockfile && yarn projen" +- *Type:* string +- *Default:* for CDK 1.x the default is "3.2.27", for CDK 2.x the default is "10.0.5". -Workflow steps to use in order to bootstrap this repo. +Minimum version of the `constructs` library to depend on. --- -##### `workflowGitIdentity`Optional +##### `edgeLambdaAutoDiscover`Optional ```typescript -public readonly workflowGitIdentity: GitIdentity; +public readonly edgeLambdaAutoDiscover: boolean; ``` -- *Type:* projen.github.GitIdentity -- *Default:* GitHub Actions +- *Type:* boolean +- *Default:* true -The git identity to use in workflows. +Automatically adds an `cloudfront.experimental.EdgeFunction` for each `.edge-lambda.ts` handler in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project. --- -##### `workflowNodeVersion`Optional +##### `experimentalIntegRunner`Optional ```typescript -public readonly workflowNodeVersion: string; +public readonly experimentalIntegRunner: boolean; ``` -- *Type:* string -- *Default:* same as `minNodeVersion` +- *Type:* boolean +- *Default:* false -The node version to use in GitHub workflows. +Enable experimental support for the AWS CDK integ-runner. --- -##### `workflowPackageCache`Optional +##### `integrationTestAutoDiscover`Optional ```typescript -public readonly workflowPackageCache: boolean; +public readonly integrationTestAutoDiscover: boolean; ``` - *Type:* boolean -- *Default:* false +- *Default:* true -Enable Node.js package cache in GitHub workflows. +Automatically discovers and creates integration tests for each `.integ.ts` file in under your test directory. --- -##### `disableTsconfig`Optional +##### `lambdaAutoDiscover`Optional ```typescript -public readonly disableTsconfig: boolean; +public readonly lambdaAutoDiscover: boolean; ``` - *Type:* boolean -- *Default:* false +- *Default:* true -Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler). +Automatically adds an `aws_lambda.Function` for each `.lambda.ts` handler in your source tree. If this is disabled, you either need to explicitly call `aws_lambda.Function.autoDiscover()` or define a `new aws_lambda.Function()` for each handler. --- -##### `disableTsconfigDev`Optional +##### `lambdaExtensionAutoDiscover`Optional ```typescript -public readonly disableTsconfigDev: boolean; +public readonly lambdaExtensionAutoDiscover: boolean; ``` - *Type:* boolean -- *Default:* false +- *Default:* true -Do not generate a `tsconfig.dev.json` file. +Automatically adds an `awscdk.LambdaExtension` for each `.lambda-extension.ts` entrypoint in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project. --- -##### `docgen`Optional +##### `lambdaOptions`Optional ```typescript -public readonly docgen: boolean; +public readonly lambdaOptions: LambdaFunctionCommonOptions; ``` -- *Type:* boolean -- *Default:* false +- *Type:* projen.awscdk.LambdaFunctionCommonOptions +- *Default:* default options -Docgen by Typedoc. +Common options for all AWS Lambda functions. --- -##### `docsDirectory`Optional +##### `sendSlackWebhookOnRelease`Optional ```typescript -public readonly docsDirectory: string; +public readonly sendSlackWebhookOnRelease: boolean; ``` -- *Type:* string -- *Default:* "docs" +- *Type:* boolean +- *Default:* true -Docs directory. +Should we send a slack webhook on release (required for compliance audits). --- -##### `entrypointTypes`Optional +##### `sendSlackWebhookOnReleaseOpts`Optional ```typescript -public readonly entrypointTypes: string; +public readonly sendSlackWebhookOnReleaseOpts: ReleaseEventOptions; ``` -- *Type:* string -- *Default:* .d.ts file derived from the project's entrypoint (usually lib/index.d.ts) +- *Type:* @time-loop/clickup-projen.slackAlert.ReleaseEventOptions -The .d.ts file that includes the type declarations for this module. +Slack alert on release options. + +Only valid when `sendSlackWebhookOnRelease` is true. --- -##### `eslint`Optional +##### `cdkDiffOptionsConfig`Optional ```typescript -public readonly eslint: boolean; +public readonly cdkDiffOptionsConfig: CDKDiffOptionsConfig; ``` -- *Type:* boolean -- *Default:* true +- *Type:* @time-loop/clickup-projen.cdkDiffWorkflow.CDKDiffOptionsConfig +- *Default:* undefined -Setup eslint. +Cdk diff options. --- -##### `eslintOptions`Optional +##### `renovateOptionsConfig`Optional ```typescript -public readonly eslintOptions: EslintOptions; +public readonly renovateOptionsConfig: RenovateOptionsConfig; ``` -- *Type:* projen.javascript.EslintOptions -- *Default:* opinionated default options +- *Type:* @time-loop/clickup-projen.renovateWorkflow.RenovateOptionsConfig +- *Default:* undefined -Eslint options. +Renovate options. --- -##### `libdir`Optional +##### `sendReleaseEvent`Optional ```typescript -public readonly libdir: string; +public readonly sendReleaseEvent: boolean; ``` -- *Type:* string -- *Default:* "lib" +- *Type:* boolean +- *Default:* true -Typescript artifacts output directory. +Feature flag for datadog event sending on release. --- -##### `projenrcTs`Optional +##### `sendReleaseEventOpts`Optional ```typescript -public readonly projenrcTs: boolean; +public readonly sendReleaseEventOpts: ReleaseEventOptions; ``` -- *Type:* boolean -- *Default:* false +- *Type:* @time-loop/clickup-projen.datadog.ReleaseEventOptions +- *Default:* undefined -Use TypeScript for your projenrc file (`.projenrc.ts`). +Datadog event options to use on release. + +Only valid when +`sendReleaseEvent` is true. --- -##### `projenrcTsOptions`Optional +##### `serviceCatalogOptions`Optional ```typescript -public readonly projenrcTsOptions: ProjenrcOptions; +public readonly serviceCatalogOptions: ServiceCatalogOptions; ``` -- *Type:* projen.typescript.ProjenrcOptions +- *Type:* @time-loop/clickup-projen.datadogServiceCatalog.ServiceCatalogOptions +- *Default:* undefined -Options for .projenrc.ts. +Datadog Service Catalog options. --- -##### `sampleCode`Optional +### ClickUpCdkTypeScriptAppOptions + +#### Initializer ```typescript -public readonly sampleCode: boolean; +import { clickupCdk } from '@time-loop/clickup-projen' + +const clickUpCdkTypeScriptAppOptions: clickupCdk.ClickUpCdkTypeScriptAppOptions = { ... } ``` -- *Type:* boolean -- *Default:* true +#### Properties -Generate one-time sample in `src/` and `test/` if there are no files there. +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| name | string | This is the name of your project. | +| commitGenerated | boolean | Whether to commit the managed files by default. | +| gitIgnoreOptions | projen.IgnoreFileOptions | Configuration options for .gitignore file. | +| gitOptions | projen.GitOptions | Configuration options for git. | +| logging | projen.LoggerOptions | Configure logging options such as verbosity. | +| outdir | string | The root directory of the project. | +| parent | projen.Project | The parent project, if this project is part of a bigger project. | +| projenCommand | string | The shell command to use in order to run the projen CLI. | +| projenrcJson | boolean | Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. | +| projenrcJsonOptions | projen.ProjenrcJsonOptions | Options for .projenrc.json. | +| renovatebot | boolean | Use renovatebot to handle dependency upgrades. | +| renovatebotOptions | projen.RenovatebotOptions | Options for renovatebot. | +| autoApproveOptions | projen.github.AutoApproveOptions | Enable and configure the 'auto approve' workflow. | +| autoMerge | boolean | Enable automatic merging on GitHub. | +| autoMergeOptions | projen.github.AutoMergeOptions | Configure options for automatic merging on GitHub. | +| clobber | boolean | Add a `clobber` task which resets the repo to origin. | +| devContainer | boolean | Add a VSCode development environment (used for GitHub Codespaces). | +| github | boolean | Enable GitHub integration. | +| githubOptions | projen.github.GitHubOptions | Options for GitHub integration. | +| gitpod | boolean | Add a Gitpod development environment. | +| mergify | boolean | Whether mergify should be enabled on this repository or not. | +| mergifyOptions | projen.github.MergifyOptions | Options for mergify. | +| projectType | projen.ProjectType | Which type of project this is (library/app). | +| projenCredentials | projen.github.GithubCredentials | Choose a method of providing GitHub API access for projen workflows. | +| projenTokenSecret | string | The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. | +| readme | projen.SampleReadmeProps | The README setup. | +| stale | boolean | Auto-close of stale issues and pull request. | +| staleOptions | projen.github.StaleOptions | Auto-close stale issues and pull requests. | +| vscode | boolean | Enable VSCode integration. | +| allowLibraryDependencies | boolean | Allow the project to include `peerDependencies` and `bundledDependencies`. | +| authorEmail | string | Author's e-mail. | +| authorName | string | Author's name. | +| authorOrganization | boolean | Is the author an organization. | +| authorUrl | string | Author's URL / Website. | +| autoDetectBin | boolean | Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section. | +| bin | {[ key: string ]: string} | Binary programs vended with your module. | +| bugsEmail | string | The email address to which issues should be reported. | +| bugsUrl | string | The url to your project's issue tracker. | +| bundledDeps | string[] | List of dependencies to bundle into this module. | +| codeArtifactOptions | projen.javascript.CodeArtifactOptions | Options for npm packages using AWS CodeArtifact. | +| deps | string[] | Runtime dependencies of this module. | +| description | string | The description is just a string that helps people understand the purpose of the package. | +| devDeps | string[] | Build dependencies for this module. | +| entrypoint | string | Module entrypoint (`main` in `package.json`). | +| homepage | string | Package's Homepage / Website. | +| keywords | string[] | Keywords to include in `package.json`. | +| license | string | License's SPDX identifier. | +| licensed | boolean | Indicates if a license should be added. | +| maxNodeVersion | string | Minimum node.js version to require via `engines` (inclusive). | +| minNodeVersion | string | Minimum Node.js version to require via package.json `engines` (inclusive). | +| npmAccess | projen.javascript.NpmAccess | Access level of the npm package. | +| npmRegistry | string | The host name of the npm registry to publish to. | +| npmRegistryUrl | string | The base URL of the npm package registry. | +| npmTokenSecret | string | GitHub secret which contains the NPM token to use when publishing packages. | +| packageManager | projen.javascript.NodePackageManager | The Node Package Manager used to execute scripts. | +| packageName | string | The "name" in package.json. | +| peerDependencyOptions | projen.javascript.PeerDependencyOptions | Options for `peerDeps`. | +| peerDeps | string[] | Peer dependencies for this module. | +| pnpmVersion | string | The version of PNPM to use if using PNPM as a package manager. | +| repository | string | The repository is the location where the actual code for your package lives. | +| repositoryDirectory | string | 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. | +| scopedPackagesOptions | projen.javascript.ScopedPackagesOptions[] | Options for privately hosted scoped packages. | +| scripts | {[ key: string ]: string} | npm scripts to include. | +| stability | string | Package's Stability. | +| yarnBerryOptions | projen.javascript.YarnBerryOptions | Options for Yarn Berry. | +| jsiiReleaseVersion | string | Version requirement of `publib` which is used to publish modules to npm. | +| majorVersion | number | Major version to release from the default branch. | +| minMajorVersion | number | Minimal Major version to release. | +| npmDistTag | string | The npmDistTag to use when publishing from the default branch. | +| postBuildSteps | projen.github.workflows.JobStep[] | Steps to execute after build as part of the release workflow. | +| prerelease | string | Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). | +| publishDryRun | boolean | Instead of actually publishing to package managers, just print the publishing command. | +| publishTasks | boolean | Define publishing tasks that can be executed manually as well as workflows. | +| releasableCommits | projen.ReleasableCommits | Find commits that should be considered releasable Used to decide if a release is required. | +| releaseBranches | {[ key: string ]: projen.release.BranchOptions} | Defines additional release branches. | +| releaseEveryCommit | boolean | Automatically release new versions every commit to one of branches in `releaseBranches`. | +| releaseFailureIssue | boolean | Create a github issue on every failed publishing task. | +| releaseFailureIssueLabel | string | The label to apply to issues indicating publish failures. | +| releaseSchedule | string | CRON schedule to trigger new releases. | +| releaseTagPrefix | string | Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers. | +| releaseTrigger | projen.release.ReleaseTrigger | The release trigger to use. | +| releaseWorkflowName | string | The name of the default release workflow. | +| releaseWorkflowSetupSteps | projen.github.workflows.JobStep[] | A set of workflow steps to execute in order to setup the workflow container. | +| versionrcOptions | {[ key: string ]: any} | Custom configuration used when creating changelog with standard-version package. | +| workflowContainerImage | string | Container image to use for GitHub workflows. | +| workflowRunsOn | string[] | Github Runner selection labels. | +| workflowRunsOnGroup | projen.GroupRunnerOptions | Github Runner Group selection options. | +| defaultReleaseBranch | string | The name of the main release branch. | +| artifactsDirectory | string | A directory which will contain build artifacts. | +| autoApproveUpgrades | boolean | Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). | +| buildWorkflow | boolean | Define a GitHub workflow for building PRs. | +| buildWorkflowTriggers | projen.github.workflows.Triggers | Build workflow triggers. | +| bundlerOptions | projen.javascript.BundlerOptions | Options for `Bundler`. | +| codeCov | boolean | 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`. | +| codeCovTokenSecret | string | Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. | +| copyrightOwner | string | License copyright owner. | +| copyrightPeriod | string | The copyright years to put in the LICENSE file. | +| dependabot | boolean | Use dependabot to handle dependency upgrades. | +| dependabotOptions | projen.github.DependabotOptions | Options for dependabot. | +| depsUpgrade | boolean | Use tasks and github workflows to handle dependency upgrades. | +| depsUpgradeOptions | projen.javascript.UpgradeDependenciesOptions | Options for `UpgradeDependencies`. | +| gitignore | string[] | Additional entries to .gitignore. | +| jest | boolean | Setup jest unit tests. | +| jestOptions | projen.javascript.JestOptions | Jest options. | +| mutableBuild | boolean | Automatically update files modified during builds to pull-request branches. | +| npmignore | string[] | Additional entries to .npmignore. | +| npmignoreEnabled | boolean | Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs. | +| npmIgnoreOptions | projen.IgnoreFileOptions | Configuration options for .npmignore file. | +| package | boolean | Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`). | +| prettier | boolean | Setup prettier. | +| prettierOptions | projen.javascript.PrettierOptions | Prettier options. | +| projenDevDependency | boolean | Indicates of "projen" should be installed as a devDependency. | +| projenrcJs | boolean | Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation. | +| projenrcJsOptions | projen.javascript.ProjenrcOptions | Options for .projenrc.js. | +| projenVersion | string | Version of projen to install. | +| pullRequestTemplate | boolean | Include a GitHub pull request template. | +| pullRequestTemplateContents | string[] | The contents of the pull request template. | +| release | boolean | Add release management to this project. | +| releaseToNpm | boolean | Automatically release to npm when new versions are introduced. | +| releaseWorkflow | boolean | DEPRECATED: renamed to `release`. | +| workflowBootstrapSteps | projen.github.workflows.JobStep[] | Workflow steps to use in order to bootstrap this repo. | +| workflowGitIdentity | projen.github.GitIdentity | The git identity to use in workflows. | +| workflowNodeVersion | string | The node version to use in GitHub workflows. | +| workflowPackageCache | boolean | Enable Node.js package cache in GitHub workflows. | +| disableTsconfig | boolean | Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler). | +| disableTsconfigDev | boolean | Do not generate a `tsconfig.dev.json` file. | +| docgen | boolean | Docgen by Typedoc. | +| docsDirectory | string | Docs directory. | +| entrypointTypes | string | The .d.ts file that includes the type declarations for this module. | +| eslint | boolean | Setup eslint. | +| eslintOptions | projen.javascript.EslintOptions | Eslint options. | +| libdir | string | Typescript artifacts output directory. | +| projenrcTs | boolean | Use TypeScript for your projenrc file (`.projenrc.ts`). | +| projenrcTsOptions | projen.typescript.ProjenrcOptions | Options for .projenrc.ts. | +| sampleCode | boolean | Generate one-time sample in `src/` and `test/` if there are no files there. | +| srcdir | string | Typescript sources directory. | +| testdir | string | Jest tests directory. Tests files should be named `xxx.test.ts`. | +| tsconfig | projen.javascript.TypescriptConfigOptions | Custom TSConfig. | +| tsconfigDev | projen.javascript.TypescriptConfigOptions | Custom tsconfig options for the development tsconfig.json file (used for testing). | +| tsconfigDevFile | string | The name of the development tsconfig.json file. | +| typescriptVersion | string | TypeScript version to use. | +| buildCommand | string | A command to execute before synthesis. | +| cdkout | string | cdk.out directory. | +| context | {[ key: string ]: any} | Additional context to include in `cdk.json`. | +| featureFlags | boolean | Include all feature flags in cdk.json. | +| requireApproval | projen.awscdk.ApprovalLevel | To protect you against unintended changes that affect your security posture, the AWS CDK Toolkit prompts you to approve security-related changes before deploying them. | +| watchExcludes | string[] | Glob patterns to exclude from `cdk watch`. | +| watchIncludes | string[] | Glob patterns to include in `cdk watch`. | +| cdkVersion | string | Minimum version of the AWS CDK to depend on. | +| cdkAssert | boolean | Warning: NodeJS only. | +| cdkAssertions | boolean | Install the assertions library? | +| cdkDependencies | string[] | Which AWS CDKv1 modules this project requires. | +| cdkDependenciesAsDeps | boolean | If this is enabled (default), all modules declared in `cdkDependencies` will be also added as normal `dependencies` (as well as `peerDependencies`). | +| cdkTestDependencies | string[] | AWS CDK modules required for testing. | +| cdkVersionPinning | boolean | Use pinned version instead of caret version for CDK. | +| constructsVersion | string | Minimum version of the `constructs` library to depend on. | +| appEntrypoint | string | The CDK app's entrypoint (relative to the source directory, which is "src" by default). | +| edgeLambdaAutoDiscover | boolean | Automatically adds an `cloudfront.experimental.EdgeFunction` for each `.edge-lambda.ts` handler in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project. | +| experimentalIntegRunner | boolean | Enable experimental support for the AWS CDK integ-runner. | +| integrationTestAutoDiscover | boolean | Automatically discovers and creates integration tests for each `.integ.ts` file in under your test directory. | +| lambdaAutoDiscover | boolean | Automatically adds an `awscdk.LambdaFunction` for each `.lambda.ts` handler in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project. | +| lambdaExtensionAutoDiscover | boolean | Automatically adds an `awscdk.LambdaExtension` for each `.lambda-extension.ts` entrypoint in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project. | +| lambdaOptions | projen.awscdk.LambdaFunctionCommonOptions | Common options for all AWS Lambda functions. | +| sendSlackWebhookOnRelease | boolean | Should we send a slack webhook on release (required for compliance audits). | +| sendSlackWebhookOnReleaseOpts | @time-loop/clickup-projen.slackAlert.ReleaseEventOptions | Slack alert on release options. | +| cdkDiffOptionsConfig | @time-loop/clickup-projen.cdkDiffWorkflow.CDKDiffOptionsConfig | Cdk diff options. | +| renovateOptionsConfig | @time-loop/clickup-projen.renovateWorkflow.RenovateOptionsConfig | Renovate options. | +| sendReleaseEvent | boolean | Feature flag for datadog event sending on release. | +| sendReleaseEventOpts | @time-loop/clickup-projen.datadog.ReleaseEventOptions | Datadog event options to use on release. | +| serviceCatalogOptions | @time-loop/clickup-projen.datadogServiceCatalog.ServiceCatalogOptions | Datadog Service Catalog options. | +| cdkContextJsonOptions | @time-loop/clickup-projen.cdkContextJson.Options | Add support for cdk.context.json lookups? This allows GitHub PRs to lookup missing things from your cdk.context.json file and then commit a self-mutation so that your PRs don't break. | --- -##### `srcdir`Optional +##### `name`Required ```typescript -public readonly srcdir: string; +public readonly name: string; ``` - *Type:* string -- *Default:* "src" +- *Default:* $BASEDIR -Typescript sources directory. +This is the name of your project. --- -##### `testdir`Optional +##### `commitGenerated`Optional ```typescript -public readonly testdir: string; +public readonly commitGenerated: boolean; ``` -- *Type:* string -- *Default:* "test" - -Jest tests directory. Tests files should be named `xxx.test.ts`. +- *Type:* boolean +- *Default:* true -If this directory is under `srcdir` (e.g. `src/test`, `src/__tests__`), -then tests are going to be compiled into `lib/` and executed as javascript. -If the test directory is outside of `src`, then we configure jest to -compile the code in-memory. +Whether to commit the managed files by default. --- -##### `tsconfig`Optional +##### `gitIgnoreOptions`Optional ```typescript -public readonly tsconfig: TypescriptConfigOptions; +public readonly gitIgnoreOptions: IgnoreFileOptions; ``` -- *Type:* projen.javascript.TypescriptConfigOptions -- *Default:* default options +- *Type:* projen.IgnoreFileOptions -Custom TSConfig. +Configuration options for .gitignore file. --- -##### `tsconfigDev`Optional +##### `gitOptions`Optional ```typescript -public readonly tsconfigDev: TypescriptConfigOptions; +public readonly gitOptions: GitOptions; ``` -- *Type:* projen.javascript.TypescriptConfigOptions -- *Default:* use the production tsconfig options +- *Type:* projen.GitOptions -Custom tsconfig options for the development tsconfig.json file (used for testing). +Configuration options for git. --- -##### `tsconfigDevFile`Optional +##### `logging`Optional ```typescript -public readonly tsconfigDevFile: string; +public readonly logging: LoggerOptions; ``` -- *Type:* string -- *Default:* "tsconfig.dev.json" +- *Type:* projen.LoggerOptions +- *Default:* {} -The name of the development tsconfig.json file. +Configure logging options such as verbosity. --- -##### `typescriptVersion`Optional +##### `outdir`Optional ```typescript -public readonly typescriptVersion: string; +public readonly outdir: string; ``` - *Type:* string -- *Default:* "latest" +- *Default:* "." -TypeScript version to use. +The root directory of the project. -NOTE: Typescript is not semantically versioned and should remain on the -same minor, so we recommend using a `~` dependency (e.g. `~1.2.3`). +Relative to this directory, all files are synthesized. + +If this project has a parent, this directory is relative to the parent +directory and it cannot be the same as the parent or any of it's other +subprojects. --- -##### `sendSlackWebhookOnRelease`Optional +##### `parent`Optional ```typescript -public readonly sendSlackWebhookOnRelease: boolean; +public readonly parent: Project; ``` -- *Type:* boolean -- *Default:* true +- *Type:* projen.Project -Should we send a slack webhook on release (required for compliance audits). +The parent project, if this project is part of a bigger project. --- -##### `sendSlackWebhookOnReleaseOpts`Optional +##### `projenCommand`Optional ```typescript -public readonly sendSlackWebhookOnReleaseOpts: ReleaseEventOptions; +public readonly projenCommand: string; ``` -- *Type:* @time-loop/clickup-projen.slackAlert.ReleaseEventOptions +- *Type:* string +- *Default:* "npx projen" -Slack alert on release options. +The shell command to use in order to run the projen CLI. -Only valid when `sendSlackWebhookOnRelease` is true. +Can be used to customize in special environments. --- -##### `authorAddress`Optional +##### `projenrcJson`Optional ```typescript -public readonly authorAddress: string; +public readonly projenrcJson: boolean; ``` -- *Type:* string +- *Type:* boolean +- *Default:* false -Email address for project author. +Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. --- -##### `docgenOptions`Optional +##### `projenrcJsonOptions`Optional ```typescript -public readonly docgenOptions: TypedocDocgenOptions; +public readonly projenrcJsonOptions: ProjenrcJsonOptions; ``` -- *Type:* @time-loop/clickup-projen.clickupTs.TypedocDocgenOptions - -Additional options pertaining to the typedoc config file. +- *Type:* projen.ProjenrcJsonOptions +- *Default:* default options -NOTE: `docgen` attribute cannot be false. +Options for .projenrc.json. --- -##### `renovateOptionsConfig`Optional +##### `renovatebot`Optional ```typescript -public readonly renovateOptionsConfig: RenovateOptionsConfig; +public readonly renovatebot: boolean; ``` -- *Type:* @time-loop/clickup-projen.renovateWorkflow.RenovateOptionsConfig +- *Type:* boolean +- *Default:* false ---- +Use renovatebot to handle dependency upgrades. -### ContactInfo +--- -#### Initializer +##### `renovatebotOptions`Optional ```typescript -import { datadogServiceCatalog } from '@time-loop/clickup-projen' - -const contactInfo: datadogServiceCatalog.ContactInfo = { ... } +public readonly renovatebotOptions: RenovatebotOptions; ``` -#### Properties +- *Type:* projen.RenovatebotOptions +- *Default:* default options -| **Name** | **Type** | **Description** | -| --- | --- | --- | -| contact | string | The actual contact information for the contact. | -| name | string | The name of the contact. | -| type | @time-loop/clickup-projen.datadogServiceCatalog.ContactType | The type of the contact. | +Options for renovatebot. --- -##### `contact`Required +##### `autoApproveOptions`Optional ```typescript -public readonly contact: string; +public readonly autoApproveOptions: AutoApproveOptions; ``` -- *Type:* string - -The actual contact information for the contact. +- *Type:* projen.github.AutoApproveOptions +- *Default:* auto approve is disabled -For example, if the type is email, this would be the email address. +Enable and configure the 'auto approve' workflow. --- -##### `name`Required +##### `autoMerge`Optional ```typescript -public readonly name: string; +public readonly autoMerge: boolean; ``` -- *Type:* string +- *Type:* boolean +- *Default:* true -The name of the contact. +Enable automatic merging on GitHub. + +Has no effect if `github.mergify` +is set to false. --- -##### `type`Required +##### `autoMergeOptions`Optional ```typescript -public readonly type: ContactType; +public readonly autoMergeOptions: AutoMergeOptions; ``` -- *Type:* @time-loop/clickup-projen.datadogServiceCatalog.ContactType +- *Type:* projen.github.AutoMergeOptions +- *Default:* see defaults in `AutoMergeOptions` -The type of the contact. +Configure options for automatic merging on GitHub. -Acceptable values are: email, slack, and microsoft-teams +Has no effect if +`github.mergify` or `autoMerge` is set to false. --- -### EnvToDiff - -#### Initializer +##### `clobber`Optional ```typescript -import { cdkDiffWorkflow } from '@time-loop/clickup-projen' - -const envToDiff: cdkDiffWorkflow.EnvToDiff = { ... } +public readonly clobber: boolean; ``` -#### Properties +- *Type:* boolean +- *Default:* true, but false for subprojects -| **Name** | **Type** | **Description** | -| --- | --- | --- | -| labelToApplyWhenNoDiffPresent | string | Label that will be applied to the PR when there are no changes in the diff Example: `no-qa-changes`. | -| name | string | Unique name for the cdk diff action. | -| oidcRoleArn | string | Name of the OIDC role name which contains neccesasry IAM policies to run the CDK diff. | -| stackSearchString | string | String to search for stacks to diff Example: `Qa`, 'Staging', 'Prod'. | +Add a `clobber` task which resets the repo to origin. --- -##### `labelToApplyWhenNoDiffPresent`Required +##### `devContainer`Optional ```typescript -public readonly labelToApplyWhenNoDiffPresent: string; +public readonly devContainer: boolean; ``` -- *Type:* string +- *Type:* boolean +- *Default:* false -Label that will be applied to the PR when there are no changes in the diff Example: `no-qa-changes`. +Add a VSCode development environment (used for GitHub Codespaces). --- -##### `name`Required +##### `github`Optional ```typescript -public readonly name: string; +public readonly github: boolean; ``` -- *Type:* string +- *Type:* boolean +- *Default:* true -Unique name for the cdk diff action. +Enable GitHub integration. -This will be used to create the output file name, header on comments, and more -Example: `qa`, `staging`, `prod` +Enabled by default for root projects. Disabled for non-root projects. --- -##### `oidcRoleArn`Required +##### `githubOptions`Optional ```typescript -public readonly oidcRoleArn: string; +public readonly githubOptions: GitHubOptions; ``` -- *Type:* string - -Name of the OIDC role name which contains neccesasry IAM policies to run the CDK diff. +- *Type:* projen.github.GitHubOptions +- *Default:* see GitHubOptions -Example arn: `arn:aws:iam::123123123123:role/squad-github-actions-permissions-squad-cdk-github-actions-role` +Options for GitHub integration. --- -##### `stackSearchString`Required +##### `gitpod`Optional ```typescript -public readonly stackSearchString: string; +public readonly gitpod: boolean; ``` -- *Type:* string +- *Type:* boolean +- *Default:* false -String to search for stacks to diff Example: `Qa`, 'Staging', 'Prod'. +Add a Gitpod development environment. --- -### ExplicitStacksEnvToDiff +##### ~~`mergify`~~Optional -#### Initializer +- *Deprecated:* use `githubOptions.mergify` instead ```typescript -import { cdkDiffWorkflow } from '@time-loop/clickup-projen' - -const explicitStacksEnvToDiff: cdkDiffWorkflow.ExplicitStacksEnvToDiff = { ... } +public readonly mergify: boolean; ``` -#### Properties +- *Type:* boolean +- *Default:* true -| **Name** | **Type** | **Description** | -| --- | --- | --- | -| labelToApplyWhenNoDiffPresent | string | Label that will be applied to the PR when there are no changes in the diff Example: `no-qa-changes`. | -| name | string | Unique name for the cdk diff action. | -| oidcRoleArn | string | Name of the OIDC role name which contains neccesasry IAM policies to run the CDK diff. | -| stacks | string[] | Explicit stacks given instead of using stackSearchString to find stacks via cdk ls Example: `['stack1', 'stack2']`. | +Whether mergify should be enabled on this repository or not. + +--- + +##### ~~`mergifyOptions`~~Optional + +- *Deprecated:* use `githubOptions.mergifyOptions` instead + +```typescript +public readonly mergifyOptions: MergifyOptions; +``` + +- *Type:* projen.github.MergifyOptions +- *Default:* default options + +Options for mergify. --- -##### `labelToApplyWhenNoDiffPresent`Required +##### ~~`projectType`~~Optional + +- *Deprecated:* no longer supported at the base project level ```typescript -public readonly labelToApplyWhenNoDiffPresent: string; +public readonly projectType: ProjectType; ``` -- *Type:* string +- *Type:* projen.ProjectType +- *Default:* ProjectType.UNKNOWN -Label that will be applied to the PR when there are no changes in the diff Example: `no-qa-changes`. +Which type of project this is (library/app). --- -##### `name`Required +##### `projenCredentials`Optional ```typescript -public readonly name: string; +public readonly projenCredentials: GithubCredentials; ``` -- *Type:* string - -Unique name for the cdk diff action. +- *Type:* projen.github.GithubCredentials +- *Default:* use a personal access token named PROJEN_GITHUB_TOKEN -This will be used to create the output file name, header on comments, and more -Example: `qa`, `staging`, `prod` +Choose a method of providing GitHub API access for projen workflows. --- -##### `oidcRoleArn`Required +##### ~~`projenTokenSecret`~~Optional + +- *Deprecated:* use `projenCredentials` ```typescript -public readonly oidcRoleArn: string; +public readonly projenTokenSecret: string; ``` - *Type:* string +- *Default:* "PROJEN_GITHUB_TOKEN" -Name of the OIDC role name which contains neccesasry IAM policies to run the CDK diff. +The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. -Example arn: `arn:aws:iam::123123123123:role/squad-github-actions-permissions-squad-cdk-github-actions-role` +This token needs to have the `repo`, `workflows` +and `packages` scope. --- -##### `stacks`Required +##### `readme`Optional ```typescript -public readonly stacks: string[]; +public readonly readme: SampleReadmeProps; ``` -- *Type:* string[] +- *Type:* projen.SampleReadmeProps +- *Default:* { filename: 'README.md', contents: '# replace this' } -Explicit stacks given instead of using stackSearchString to find stacks via cdk ls Example: `['stack1', 'stack2']`. +The README setup. --- -### InjectionOptions - -#### Initializer +*Example* ```typescript -import { cdkContextJson } from '@time-loop/clickup-projen' +"{ filename: 'readme.md', contents: '# title' }" +``` -const injectionOptions: cdkContextJson.InjectionOptions = { ... } + +##### `stale`Optional + +```typescript +public readonly stale: boolean; ``` -#### Properties +- *Type:* boolean +- *Default:* false -| **Name** | **Type** | **Description** | -| --- | --- | --- | -| lookupAccountId | string | The account number where the role the GH actions will assume lives. | -| awsRegion | string | Which region should GH Auth into? | -| roleDurationSeconds | number | How long should the requested role be valid. | +Auto-close of stale issues and pull request. + +See `staleOptions` for options. --- -##### `lookupAccountId`Required +##### `staleOptions`Optional ```typescript -public readonly lookupAccountId: string; +public readonly staleOptions: StaleOptions; ``` -- *Type:* string - -The account number where the role the GH actions will assume lives. +- *Type:* projen.github.StaleOptions +- *Default:* see defaults in `StaleOptions` -This is usually the same account running cdk-pipelines, -but can be any account which has been configured with +Auto-close stale issues and pull requests. -```ts -cdk bootstrap --trust-for-lookup $this_account_number ... -``` +To disable set `stale` to `false`. --- -##### `awsRegion`Optional +##### `vscode`Optional ```typescript -public readonly awsRegion: string; +public readonly vscode: boolean; ``` -- *Type:* string -- *Default:* 'us-west-2' +- *Type:* boolean +- *Default:* true -Which region should GH Auth into? +Enable VSCode integration. + +Enabled by default for root projects. Disabled for non-root projects. --- -##### `roleDurationSeconds`Optional +##### `allowLibraryDependencies`Optional ```typescript -public readonly roleDurationSeconds: number; +public readonly allowLibraryDependencies: boolean; ``` -- *Type:* number -- *Default:* 900 15min seems pretty generous. +- *Type:* boolean +- *Default:* true -How long should the requested role be valid. +Allow the project to include `peerDependencies` and `bundledDependencies`. ---- +This is normally only allowed for libraries. For apps, there's no meaning +for specifying these. -### LinkInfo +--- -#### Initializer +##### `authorEmail`Optional ```typescript -import { datadogServiceCatalog } from '@time-loop/clickup-projen' - -const linkInfo: datadogServiceCatalog.LinkInfo = { ... } +public readonly authorEmail: string; ``` -#### Properties +- *Type:* string -| **Name** | **Type** | **Description** | -| --- | --- | --- | -| name | string | The name of the link. | -| type | @time-loop/clickup-projen.datadogServiceCatalog.LinkType | The type for the link. | -| url | string | The URL of the link. | +Author's e-mail. --- -##### `name`Required +##### `authorName`Optional ```typescript -public readonly name: string; +public readonly authorName: string; ``` - *Type:* string -The name of the link. +Author's name. --- -##### `type`Required +##### `authorOrganization`Optional ```typescript -public readonly type: LinkType; +public readonly authorOrganization: boolean; ``` -- *Type:* @time-loop/clickup-projen.datadogServiceCatalog.LinkType - -The type for the link. +- *Type:* boolean -Acceptable values are: 'doc', 'runbook', 'repo', 'dashboard', and 'other' +Is the author an organization. --- -##### `url`Required +##### `authorUrl`Optional ```typescript -public readonly url: string; +public readonly authorUrl: string; ``` - *Type:* string -The URL of the link. +Author's URL / Website. --- -### OptionalNodeVersion - -#### Initializer +##### `autoDetectBin`Optional ```typescript -import { OptionalNodeVersion } from '@time-loop/clickup-projen' - -const optionalNodeVersion: OptionalNodeVersion = { ... } +public readonly autoDetectBin: boolean; ``` -#### Properties +- *Type:* boolean +- *Default:* true -| **Name** | **Type** | **Description** | -| --- | --- | --- | -| nodeVersion | string | Specify a nodeVersion. | +Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section. --- -##### `nodeVersion`Optional +##### `bin`Optional ```typescript -public readonly nodeVersion: string; +public readonly bin: {[ key: string ]: string}; ``` -- *Type:* string -- *Default:* should be parameters.PROJEN_NODE_VERSION - -Specify a nodeVersion. +- *Type:* {[ key: string ]: string} ---- +Binary programs vended with your module. -### Options +You can use this option to add/customize how binaries are represented in +your `package.json`, but unless `autoDetectBin` is `false`, every +executable file under `bin` will automatically be added to this section. -Options to support cdk.context.json management. +--- -#### Initializer +##### `bugsEmail`Optional ```typescript -import { cdkContextJson } from '@time-loop/clickup-projen' - -const options: cdkContextJson.Options = { ... } +public readonly bugsEmail: string; ``` -#### Properties +- *Type:* string -| **Name** | **Type** | **Description** | -| --- | --- | --- | -| createOidcRoleStack | boolean | *No description.* | -| injectionOptions | @time-loop/clickup-projen.cdkContextJson.InjectionOptions | You must configure this if you want to self-mutation cdk.context.json. | +The email address to which issues should be reported. --- -##### `createOidcRoleStack`Optional +##### `bugsUrl`Optional ```typescript -public readonly createOidcRoleStack: boolean; +public readonly bugsUrl: string; ``` -- *Type:* boolean -- *Default:* do not create stack SampleCode for OIDC role +- *Type:* string + +The url to your project's issue tracker. --- -##### `injectionOptions`Optional +##### `bundledDeps`Optional ```typescript -public readonly injectionOptions: InjectionOptions; +public readonly bundledDeps: string[]; ``` -- *Type:* @time-loop/clickup-projen.cdkContextJson.InjectionOptions -- *Default:* do not modify the build workflow to authorize against AWS. +- *Type:* string[] -You must configure this if you want to self-mutation cdk.context.json. +List of dependencies to bundle into this module. ---- +These modules will be +added both to the `dependencies` section and `bundledDependencies` section of +your `package.json`. -### ReleaseEventOptions +The recommendation is to only specify the module name here (e.g. +`express`). This will behave similar to `yarn add` or `npm install` in the +sense that it will add the module as a dependency to your `package.json` +file with the latest version (`^`). You can specify semver requirements in +the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and +this will be what you `package.json` will eventually include. -Options to set for the event sent to Datadog on release. +--- -#### Initializer +##### `codeArtifactOptions`Optional ```typescript -import { datadog } from '@time-loop/clickup-projen' - -const releaseEventOptions: datadog.ReleaseEventOptions = { ... } +public readonly codeArtifactOptions: CodeArtifactOptions; ``` -#### Properties +- *Type:* projen.javascript.CodeArtifactOptions +- *Default:* undefined -| **Name** | **Type** | **Description** | -| --- | --- | --- | -| datadogApiKey | string | *No description.* | -| datadogUs | boolean | *No description.* | -| eventPriority | string | *No description.* | -| eventTags | @time-loop/clickup-projen.datadog.ReleaseEventTags | Additional tags to append to the standard tags (project, release, version, actor). | -| eventText | string | *No description.* | -| eventTitle | string | *No description.* | +Options for npm packages using AWS CodeArtifact. + +This is required if publishing packages to, or installing scoped packages from AWS CodeArtifact --- -##### `datadogApiKey`Optional +##### `deps`Optional ```typescript -public readonly datadogApiKey: string; +public readonly deps: string[]; ``` -- *Type:* string -- *Default:* secrets.DD_PROJEN_RELEASE_API_KEY +- *Type:* string[] +- *Default:* [] + +Runtime dependencies of this module. + +The recommendation is to only specify the module name here (e.g. +`express`). This will behave similar to `yarn add` or `npm install` in the +sense that it will add the module as a dependency to your `package.json` +file with the latest version (`^`). You can specify semver requirements in +the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and +this will be what you `package.json` will eventually include. --- -##### `datadogUs`Optional +*Example* ```typescript -public readonly datadogUs: boolean; +[ 'express', 'lodash', 'foo@^2' ] ``` -- *Type:* boolean -- *Default:* true - ---- -##### `eventPriority`Optional +##### `description`Optional ```typescript -public readonly eventPriority: string; +public readonly description: string; ``` - *Type:* string -- *Default:* normal + +The description is just a string that helps people understand the purpose of the package. + +It can be used when searching for packages in a package manager as well. +See https://classic.yarnpkg.com/en/docs/package-json/#toc-description --- -##### `eventTags`Optional +##### `devDeps`Optional ```typescript -public readonly eventTags: ReleaseEventTags; +public readonly devDeps: string[]; ``` -- *Type:* @time-loop/clickup-projen.datadog.ReleaseEventTags -- *Default:* undefined +- *Type:* string[] +- *Default:* [] -Additional tags to append to the standard tags (project, release, version, actor). +Build dependencies for this module. + +These dependencies will only be +available in your build environment but will not be fetched when this +module is consumed. + +The recommendation is to only specify the module name here (e.g. +`express`). This will behave similar to `yarn add` or `npm install` in the +sense that it will add the module as a dependency to your `package.json` +file with the latest version (`^`). You can specify semver requirements in +the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and +this will be what you `package.json` will eventually include. --- -##### `eventText`Optional +*Example* ```typescript -public readonly eventText: string; +[ 'typescript', '@types/express' ] ``` -- *Type:* string -- *Default:* The release repo and semantically versioned release number - ---- -##### `eventTitle`Optional +##### `entrypoint`Optional ```typescript -public readonly eventTitle: string; +public readonly entrypoint: string; ``` - *Type:* string -- *Default:* The release repo and semantically versioned release number +- *Default:* "lib/index.js" ---- +Module entrypoint (`main` in `package.json`). -### ReleaseEventOptions +Set to an empty string to not include `main` in your package.json -Options to set for the event sent to Slack on release. +--- -#### Initializer +##### `homepage`Optional ```typescript -import { slackAlert } from '@time-loop/clickup-projen' - -const releaseEventOptions: slackAlert.ReleaseEventOptions = { ... } +public readonly homepage: string; ``` -#### Properties +- *Type:* string -| **Name** | **Type** | **Description** | -| --- | --- | --- | -| messageBody | string | Override the default slack message body. | -| messageTitle | string | Override the default slack message title. | -| webhook | string | *No description.* | +Package's Homepage / Website. --- -##### `messageBody`Optional +##### `keywords`Optional ```typescript -public readonly messageBody: string; +public readonly keywords: string[]; ``` -- *Type:* string +- *Type:* string[] -Override the default slack message body. +Keywords to include in `package.json`. --- -##### `messageTitle`Optional +##### `license`Optional ```typescript -public readonly messageTitle: string; +public readonly license: string; ``` - *Type:* string +- *Default:* "Apache-2.0" -Override the default slack message title. +License's SPDX identifier. + +See https://github.com/projen/projen/tree/main/license-text for a list of supported licenses. +Use the `licensed` option if you want to no license to be specified. --- -##### `webhook`Optional +##### `licensed`Optional ```typescript -public readonly webhook: string; +public readonly licensed: boolean; ``` -- *Type:* string -- *Default:* secrets.PROJEN_RELEASE_SLACK_WEBHOOK +- *Type:* boolean +- *Default:* true ---- +Indicates if a license should be added. -### ReleaseEventTags +--- -#### Initializer +##### `maxNodeVersion`Optional ```typescript -import { datadog } from '@time-loop/clickup-projen' - -const releaseEventTags: datadog.ReleaseEventTags = { ... } +public readonly maxNodeVersion: string; ``` +- *Type:* string +- *Default:* no max -### RenovateOptionsConfig +Minimum node.js version to require via `engines` (inclusive). -#### Initializer +--- -```typescript -import { renovateWorkflow } from '@time-loop/clickup-projen' +##### `minNodeVersion`Optional -const renovateOptionsConfig: renovateWorkflow.RenovateOptionsConfig = { ... } +```typescript +public readonly minNodeVersion: string; ``` -#### Properties +- *Type:* string +- *Default:* no "engines" specified -| **Name** | **Type** | **Description** | -| --- | --- | --- | -| autoMergeNonBreakingUpdates | boolean | Whether to auto merge non breaking dependency updates. | -| defaultOverrides | projen.RenovatebotOptions | Allows overriding any renovate config option default. | +Minimum Node.js version to require via package.json `engines` (inclusive). --- -##### `autoMergeNonBreakingUpdates`Optional +##### `npmAccess`Optional ```typescript -public readonly autoMergeNonBreakingUpdates: boolean; +public readonly npmAccess: NpmAccess; ``` -- *Type:* boolean - -Whether to auto merge non breaking dependency updates. +- *Type:* projen.javascript.NpmAccess +- *Default:* for scoped packages (e.g. `foo@bar`), the default is `NpmAccess.RESTRICTED`, for non-scoped packages, the default is `NpmAccess.PUBLIC`. -Note: if you have the "Require review from Code Owners" option enabled in the branch protection rules this will not work +Access level of the npm package. --- -##### `defaultOverrides`Optional +##### ~~`npmRegistry`~~Optional + +- *Deprecated:* use `npmRegistryUrl` instead ```typescript -public readonly defaultOverrides: RenovatebotOptions; +public readonly npmRegistry: string; ``` -- *Type:* projen.RenovatebotOptions +- *Type:* string -Allows overriding any renovate config option default. +The host name of the npm registry to publish to. -This is deep merged into the default config +Cannot be set together with `npmRegistryUrl`. --- -### SendSlackOptions - -Options to add to interface for projects that wish to off send slack functionality. - -#### Initializer +##### `npmRegistryUrl`Optional ```typescript -import { slackAlert } from '@time-loop/clickup-projen' - -const sendSlackOptions: slackAlert.SendSlackOptions = { ... } +public readonly npmRegistryUrl: string; ``` -#### Properties +- *Type:* string +- *Default:* "https://registry.npmjs.org" -| **Name** | **Type** | **Description** | -| --- | --- | --- | -| sendSlackWebhookOnRelease | boolean | Should we send a slack webhook on release (required for compliance audits). | -| sendSlackWebhookOnReleaseOpts | @time-loop/clickup-projen.slackAlert.ReleaseEventOptions | Slack alert on release options. | +The base URL of the npm package registry. + +Must be a URL (e.g. start with "https://" or "http://") --- -##### `sendSlackWebhookOnRelease`Optional +##### `npmTokenSecret`Optional ```typescript -public readonly sendSlackWebhookOnRelease: boolean; +public readonly npmTokenSecret: string; ``` -- *Type:* boolean -- *Default:* true +- *Type:* string +- *Default:* "NPM_TOKEN" -Should we send a slack webhook on release (required for compliance audits). +GitHub secret which contains the NPM token to use when publishing packages. --- -##### `sendSlackWebhookOnReleaseOpts`Optional +##### `packageManager`Optional ```typescript -public readonly sendSlackWebhookOnReleaseOpts: ReleaseEventOptions; +public readonly packageManager: NodePackageManager; ``` -- *Type:* @time-loop/clickup-projen.slackAlert.ReleaseEventOptions - -Slack alert on release options. +- *Type:* projen.javascript.NodePackageManager +- *Default:* NodePackageManager.YARN_CLASSIC -Only valid when `sendSlackWebhookOnRelease` is true. +The Node Package Manager used to execute scripts. --- -### ServiceCatalogOptions - -Service Catalog Options. - -#### Initializer +##### `packageName`Optional ```typescript -import { datadogServiceCatalog } from '@time-loop/clickup-projen' - -const serviceCatalogOptions: datadogServiceCatalog.ServiceCatalogOptions = { ... } +public readonly packageName: string; ``` -#### Properties +- *Type:* string +- *Default:* defaults to project name -| **Name** | **Type** | **Description** | -| --- | --- | --- | -| contacts | @time-loop/clickup-projen.datadogServiceCatalog.ContactInfo[] | The list of contacts for the service. | -| links | @time-loop/clickup-projen.datadogServiceCatalog.LinkInfo[] | A list of links associated with the service. | -| serviceInfo | @time-loop/clickup-projen.datadogServiceCatalog.ServiceInfo[] | Information about the services that will be published to the service catalog. | -| serviceTags | {[ key: string ]: string} | The list of tags that are associated with the service. | +The "name" in package.json. --- -##### `contacts`Optional +##### `peerDependencyOptions`Optional ```typescript -public readonly contacts: ContactInfo[]; +public readonly peerDependencyOptions: PeerDependencyOptions; ``` -- *Type:* @time-loop/clickup-projen.datadogServiceCatalog.ContactInfo[] -- *Default:* undefined - -The list of contacts for the service. +- *Type:* projen.javascript.PeerDependencyOptions -Each of these contacts is an object with the following properties: name, type, and contact. +Options for `peerDeps`. --- -##### `links`Optional +##### `peerDeps`Optional ```typescript -public readonly links: LinkInfo[]; +public readonly peerDeps: string[]; ``` -- *Type:* @time-loop/clickup-projen.datadogServiceCatalog.LinkInfo[] -- *Default:* undefined +- *Type:* string[] +- *Default:* [] -A list of links associated with the service. +Peer dependencies for this module. -Each of these links is an object with the following properties: name, type, and url. +Dependencies listed here are required to +be installed (and satisfied) by the _consumer_ of this library. Using peer +dependencies allows you to ensure that only a single module of a certain +library exists in the `node_modules` tree of your consumers. + +Note that prior to npm@7, peer dependencies are _not_ automatically +installed, which means that adding peer dependencies to a library will be a +breaking change for your customers. + +Unless `peerDependencyOptions.pinnedDevDependency` is disabled (it is +enabled by default), projen will automatically add a dev dependency with a +pinned version for each peer dependency. This will ensure that you build & +test your module against the lowest peer version required. --- -##### `serviceInfo`Optional +##### `pnpmVersion`Optional ```typescript -public readonly serviceInfo: ServiceInfo[]; +public readonly pnpmVersion: string; ``` -- *Type:* @time-loop/clickup-projen.datadogServiceCatalog.ServiceInfo[] +- *Type:* string +- *Default:* "7" -Information about the services that will be published to the service catalog. +The version of PNPM to use if using PNPM as a package manager. --- -##### `serviceTags`Optional +##### `repository`Optional ```typescript -public readonly serviceTags: {[ key: string ]: string}; +public readonly repository: string; ``` -- *Type:* {[ key: string ]: string} -- *Default:* undefined +- *Type:* string -The list of tags that are associated with the service. +The repository is the location where the actual code for your package lives. ---- +See https://classic.yarnpkg.com/en/docs/package-json/#toc-repository -### ServiceInfo +--- -#### Initializer +##### `repositoryDirectory`Optional ```typescript -import { datadogServiceCatalog } from '@time-loop/clickup-projen' - -const serviceInfo: datadogServiceCatalog.ServiceInfo = { ... } +public readonly repositoryDirectory: string; ``` -#### Properties +- *Type:* string -| **Name** | **Type** | **Description** | -| --- | --- | --- | -| application | string | The application/product that this service assists. | -| description | string | Some details on what this service does. | -| lifecycle | string | Where is this service in the development cycle (development, staging, production, deprecated). | -| pagerdutyUrl | string | The PagerDuty URL for the service. | -| serviceName | string | The name of the service. | -| team | string | Which squad owns this service. | -| tier | string | How important is this service for business functionality (low, medium, high, critical). | +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. --- -##### `application`Optional +##### `scopedPackagesOptions`Optional ```typescript -public readonly application: string; +public readonly scopedPackagesOptions: ScopedPackagesOptions[]; ``` -- *Type:* string -- *Default:* 'Not Provided' +- *Type:* projen.javascript.ScopedPackagesOptions[] +- *Default:* fetch all scoped packages from the public npm registry -The application/product that this service assists. +Options for privately hosted scoped packages. --- -##### `description`Optional +##### ~~`scripts`~~Optional + +- *Deprecated:* use `project.addTask()` or `package.setScript()` ```typescript -public readonly description: string; +public readonly scripts: {[ key: string ]: string}; ``` -- *Type:* string -- *Default:* 'Not Provided' +- *Type:* {[ key: string ]: string} +- *Default:* {} -Some details on what this service does. +npm scripts to include. + +If a script has the same name as a standard script, +the standard script will be overwritten. +Also adds the script as a task. --- -##### `lifecycle`Optional +##### `stability`Optional ```typescript -public readonly lifecycle: string; +public readonly stability: string; ``` - *Type:* string -- *Default:* 'Not Provided' -Where is this service in the development cycle (development, staging, production, deprecated). +Package's Stability. --- -##### `pagerdutyUrl`Optional +##### `yarnBerryOptions`Optional ```typescript -public readonly pagerdutyUrl: string; +public readonly yarnBerryOptions: YarnBerryOptions; ``` -- *Type:* string -- *Default:* 'Not Provided' +- *Type:* projen.javascript.YarnBerryOptions +- *Default:* Yarn Berry v4 with all default options -The PagerDuty URL for the service. +Options for Yarn Berry. --- -##### `serviceName`Optional +##### `jsiiReleaseVersion`Optional ```typescript -public readonly serviceName: string; +public readonly jsiiReleaseVersion: string; ``` - *Type:* string -- *Default:* project.name - -The name of the service. +- *Default:* "latest" -This must be unique across all services. +Version requirement of `publib` which is used to publish modules to npm. --- -##### `team`Optional +##### `majorVersion`Optional ```typescript -public readonly team: string; +public readonly majorVersion: number; ``` -- *Type:* string +- *Type:* number +- *Default:* Major version is not enforced. -Which squad owns this service. +Major version to release from the default branch. + +If this is specified, we bump the latest version of this major version line. +If not specified, we bump the global latest version. --- -##### `tier`Optional +##### `minMajorVersion`Optional ```typescript -public readonly tier: string; +public readonly minMajorVersion: number; ``` -- *Type:* string -- *Default:* 'low' - -How important is this service for business functionality (low, medium, high, critical). +- *Type:* number +- *Default:* No minimum version is being enforced ---- +Minimal Major version to release. -### TypedocDocgenOptions +This can be useful to set to 1, as breaking changes before the 1.x major +release are not incrementing the major version number. -Optional properties for configuring the `typedoc` documentation generator. +Can not be set together with `majorVersion`. -This configuration provides further customization than what is offered by -projen's typescript.TypedocDocgen class. +--- -#### Initializer +##### `npmDistTag`Optional ```typescript -import { clickupTs } from '@time-loop/clickup-projen' - -const typedocDocgenOptions: clickupTs.TypedocDocgenOptions = { ... } +public readonly npmDistTag: string; ``` -#### Properties +- *Type:* string +- *Default:* "latest" -| **Name** | **Type** | **Description** | -| --- | --- | --- | -| configFileContents | {[ key: string ]: any} | Supports all config keys enumerated in the Typedoc Options. | -| configFilePath | string | The file path at which to create the Typedoc config file. | -| html | boolean | Whether to generate the documentation in rendered HTML as opposed to the Markdown format. | +The npmDistTag to use when publishing from the default branch. + +To set the npm dist-tag for release branches, set the `npmDistTag` property +for each branch. --- -##### `configFileContents`Optional +##### `postBuildSteps`Optional ```typescript -public readonly configFileContents: {[ key: string ]: any}; +public readonly postBuildSteps: JobStep[]; ``` -- *Type:* {[ key: string ]: any} -- *Default:* { $schema: 'https://typedoc.org/schema.json', entryPoints: ['./src/index.ts'], out: project.docsDirectory, readme: 'none', } - -Supports all config keys enumerated in the Typedoc Options. +- *Type:* projen.github.workflows.JobStep[] +- *Default:* [] -https://typedoc.org/guides/options/ +Steps to execute after build as part of the release workflow. --- -##### `configFilePath`Optional +##### `prerelease`Optional ```typescript -public readonly configFilePath: string; +public readonly prerelease: string; ``` - *Type:* string -- *Default:* 'typedoc.json' +- *Default:* normal semantic versions -The file path at which to create the Typedoc config file. +Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). --- -##### `html`Optional +##### `publishDryRun`Optional ```typescript -public readonly html: boolean; +public readonly publishDryRun: boolean; ``` - *Type:* boolean - *Default:* false -Whether to generate the documentation in rendered HTML as opposed to the Markdown format. +Instead of actually publishing to package managers, just print the publishing command. --- -## Classes - -### ClickUpCdkConstructLibrary - -ClickUp standardized CDK Construct Library. - -Note: disgusting hack to achieve "defaults" in the constructor -leverages "empty string is falsy" behavior of TS. -I am not proud of this. -It's better than cloning the interface since projen revs pretty fast. -Marginally. - -#### Initializers +##### `publishTasks`Optional ```typescript -import { clickupCdk } from '@time-loop/clickup-projen' - -new clickupCdk.ClickUpCdkConstructLibrary(options: ClickUpCdkConstructLibraryOptions) +public readonly publishTasks: boolean; ``` -| **Name** | **Type** | **Description** | -| --- | --- | --- | -| options | @time-loop/clickup-projen.clickupCdk.ClickUpCdkConstructLibraryOptions | *No description.* | - ---- +- *Type:* boolean +- *Default:* false -##### `options`Required +Define publishing tasks that can be executed manually as well as workflows. -- *Type:* @time-loop/clickup-projen.clickupCdk.ClickUpCdkConstructLibraryOptions +Normally, publishing only happens within automated workflows. Enable this +in order to create a publishing task for each publishing activity. --- -#### Methods +##### `releasableCommits`Optional -| **Name** | **Description** | -| --- | --- | -| addExcludeFromCleanup | Exclude the matching files from pre-synth cleanup. | -| addGitIgnore | Adds a .gitignore pattern. | -| addPackageIgnore | Exclude these files from the bundled package. | -| addTask | Adds a new task to this project. | -| addTip | Prints a "tip" message during synthesis. | -| annotateGenerated | Marks the provided file(s) as being generated. | -| postSynthesize | Called after all components are synthesized. | -| preSynthesize | Called before all components are synthesized. | -| removeTask | Removes a task from a project. | -| runTaskCommand | Returns the shell command to execute in order to run a task. | -| synth | Synthesize all project files into `outdir`. | -| tryFindFile | Finds a file at the specified relative path within this project and all its subprojects. | -| tryFindJsonFile | Finds a json file by name. | -| tryFindObjectFile | Finds an object file (like JsonFile, YamlFile, etc.) by name. | -| tryRemoveFile | Finds a file at the specified relative path within this project and removes it. | -| addBins | *No description.* | -| addBundledDeps | Defines bundled dependencies. | -| addCompileCommand | DEPRECATED. | -| addDeps | Defines normal dependencies. | -| addDevDeps | Defines development/test dependencies. | -| addFields | Directly set fields in `package.json`. | -| addKeywords | Adds keywords to package.json (deduplicated). | -| addPeerDeps | Defines peer dependencies. | -| addScripts | Replaces the contents of multiple npm package.json scripts. | -| addTestCommand | DEPRECATED. | -| hasScript | Indicates if a script by the name name is defined. | -| removeScript | Removes the npm script (always successful). | -| renderWorkflowSetup | Returns the set of workflow steps which should be executed to bootstrap a workflow. | -| setScript | Replaces the contents of an npm package.json script. | -| addCdkDependencies | Adds dependencies to AWS CDK modules. | -| addCdkTestDependencies | Adds AWS CDK modules as dev dependencies. | +```typescript +public readonly releasableCommits: ReleasableCommits; +``` + +- *Type:* projen.ReleasableCommits +- *Default:* ReleasableCommits.everyCommit() + +Find commits that should be considered releasable Used to decide if a release is required. --- -##### `addExcludeFromCleanup` +##### `releaseBranches`Optional ```typescript -public addExcludeFromCleanup(globs: string): void +public readonly releaseBranches: {[ key: string ]: BranchOptions}; ``` -Exclude the matching files from pre-synth cleanup. - -Can be used when, for example, some -source files include the projen marker and we don't want them to be erased during synth. - -###### `globs`Required +- *Type:* {[ key: string ]: projen.release.BranchOptions} +- *Default:* no additional branches are used for release. you can use `addBranch()` to add additional branches. -- *Type:* string +Defines additional release branches. -The glob patterns to match. +A workflow will be created for each +release branch which will publish releases from commits in this branch. +Each release branch _must_ be assigned a major version number which is used +to enforce that versions published from that branch always use that major +version. If multiple branches are used, the `majorVersion` field must also +be provided for the default branch. --- -##### `addGitIgnore` +##### ~~`releaseEveryCommit`~~Optional + +- *Deprecated:* Use `releaseTrigger: ReleaseTrigger.continuous()` instead ```typescript -public addGitIgnore(pattern: string): void +public readonly releaseEveryCommit: boolean; ``` -Adds a .gitignore pattern. - -###### `pattern`Required - -- *Type:* string +- *Type:* boolean +- *Default:* true -The glob pattern to ignore. +Automatically release new versions every commit to one of branches in `releaseBranches`. --- -##### `addPackageIgnore` +##### `releaseFailureIssue`Optional ```typescript -public addPackageIgnore(pattern: string): void +public readonly releaseFailureIssue: boolean; ``` -Exclude these files from the bundled package. - -Implemented by project types based on the -packaging mechanism. For example, `NodeProject` delegates this to `.npmignore`. - -###### `pattern`Required +- *Type:* boolean +- *Default:* false -- *Type:* string +Create a github issue on every failed publishing task. --- -##### `addTask` +##### `releaseFailureIssueLabel`Optional ```typescript -public addTask(name: string, props?: TaskOptions): Task +public readonly releaseFailureIssueLabel: string; ``` -Adds a new task to this project. - -This will fail if the project already has -a task with this name. - -###### `name`Required - - *Type:* string +- *Default:* "failed-release" -The task name to add. - ---- - -###### `props`Optional - -- *Type:* projen.TaskOptions +The label to apply to issues indicating publish failures. -Task properties. +Only applies if `releaseFailureIssue` is true. --- -##### ~~`addTip`~~ +##### ~~`releaseSchedule`~~Optional + +- *Deprecated:* Use `releaseTrigger: ReleaseTrigger.scheduled()` instead ```typescript -public addTip(message: string): void +public readonly releaseSchedule: string; ``` -Prints a "tip" message during synthesis. - -###### `message`Required - - *Type:* string +- *Default:* no scheduled releases -The message. +CRON schedule to trigger new releases. --- -##### `annotateGenerated` +##### `releaseTagPrefix`Optional ```typescript -public annotateGenerated(glob: string): void +public readonly releaseTagPrefix: string; ``` -Marks the provided file(s) as being generated. - -This is achieved using the -github-linguist attributes. Generated files do not count against the -repository statistics and language breakdown. - -> [https://github.com/github/linguist/blob/master/docs/overrides.md](https://github.com/github/linguist/blob/master/docs/overrides.md) - -###### `glob`Required - - *Type:* string +- *Default:* "v" -the glob pattern to match (could be a file path). +Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers. + +Note: this prefix is used to detect the latest tagged version +when bumping, so if you change this on a project with an existing version +history, you may need to manually tag your latest release +with the new prefix. --- -##### `postSynthesize` +##### `releaseTrigger`Optional ```typescript -public postSynthesize(): void +public readonly releaseTrigger: ReleaseTrigger; ``` -Called after all components are synthesized. - -Order is *not* guaranteed. - -##### `preSynthesize` +- *Type:* projen.release.ReleaseTrigger +- *Default:* Continuous releases (`ReleaseTrigger.continuous()`) -```typescript -public preSynthesize(): void -``` +The release trigger to use. -Called before all components are synthesized. +--- -##### `removeTask` +##### `releaseWorkflowName`Optional ```typescript -public removeTask(name: string): Task +public readonly releaseWorkflowName: string; ``` -Removes a task from a project. - -###### `name`Required - - *Type:* string +- *Default:* "Release" -The name of the task to remove. +The name of the default release workflow. --- -##### `runTaskCommand` +##### `releaseWorkflowSetupSteps`Optional ```typescript -public runTaskCommand(task: Task): string +public readonly releaseWorkflowSetupSteps: JobStep[]; ``` -Returns the shell command to execute in order to run a task. - -This will -typically be `npx projen TASK`. - -###### `task`Required - -- *Type:* projen.Task +- *Type:* projen.github.workflows.JobStep[] -The task for which the command is required. +A set of workflow steps to execute in order to setup the workflow container. --- -##### `synth` +##### `versionrcOptions`Optional ```typescript -public synth(): void +public readonly versionrcOptions: {[ key: string ]: any}; ``` -Synthesize all project files into `outdir`. +- *Type:* {[ key: string ]: any} +- *Default:* standard configuration applicable for GitHub repositories -1. Call "this.preSynthesize()" -2. Delete all generated files -3. Synthesize all sub-projects -4. Synthesize all components of this project -5. Call "postSynthesize()" for all components of this project -6. Call "this.postSynthesize()" +Custom configuration used when creating changelog with standard-version package. -##### `tryFindFile` +Given values either append to default configuration or overwrite values in it. -```typescript -public tryFindFile(filePath: string): FileBase -``` +--- -Finds a file at the specified relative path within this project and all its subprojects. +##### `workflowContainerImage`Optional -###### `filePath`Required +```typescript +public readonly workflowContainerImage: string; +``` - *Type:* string +- *Default:* default image -The file path. - -If this path is relative, it will be resolved -from the root of _this_ project. +Container image to use for GitHub workflows. --- -##### ~~`tryFindJsonFile`~~ +##### `workflowRunsOn`Optional ```typescript -public tryFindJsonFile(filePath: string): JsonFile +public readonly workflowRunsOn: string[]; ``` -Finds a json file by name. - -###### `filePath`Required - -- *Type:* string +- *Type:* string[] +- *Default:* ["ubuntu-latest"] -The file path. +Github Runner selection labels. --- -##### `tryFindObjectFile` +##### `workflowRunsOnGroup`Optional ```typescript -public tryFindObjectFile(filePath: string): ObjectFile +public readonly workflowRunsOnGroup: GroupRunnerOptions; ``` -Finds an object file (like JsonFile, YamlFile, etc.) by name. - -###### `filePath`Required - -- *Type:* string +- *Type:* projen.GroupRunnerOptions -The file path. +Github Runner Group selection options. --- -##### `tryRemoveFile` +##### `defaultReleaseBranch`Required ```typescript -public tryRemoveFile(filePath: string): FileBase +public readonly defaultReleaseBranch: string; ``` -Finds a file at the specified relative path within this project and removes it. - -###### `filePath`Required - - *Type:* string +- *Default:* "main" -The file path. - -If this path is relative, it will be -resolved from the root of _this_ project. +The name of the main release branch. --- -##### `addBins` +##### `artifactsDirectory`Optional ```typescript -public addBins(bins: {[ key: string ]: string}): void +public readonly artifactsDirectory: string; ``` -###### `bins`Required +- *Type:* string +- *Default:* "dist" -- *Type:* {[ key: string ]: string} +A directory which will contain build artifacts. --- -##### `addBundledDeps` +##### `autoApproveUpgrades`Optional ```typescript -public addBundledDeps(deps: string): void +public readonly autoApproveUpgrades: boolean; ``` -Defines bundled dependencies. - -Bundled dependencies will be added as normal dependencies as well as to the -`bundledDependencies` section of your `package.json`. - -###### `deps`Required - -- *Type:* string +- *Type:* boolean +- *Default:* true -Names modules to install. +Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). -By default, the the dependency will -be installed in the next `npx projen` run and the version will be recorded -in your `package.json` file. You can upgrade manually or using `yarn -add/upgrade`. If you wish to specify a version range use this syntax: -`module@^7`. +Throw if set to true but `autoApproveOptions` are not defined. --- -##### ~~`addCompileCommand`~~ +##### `buildWorkflow`Optional ```typescript -public addCompileCommand(commands: string): void +public readonly buildWorkflow: boolean; ``` -DEPRECATED. - -###### `commands`Required +- *Type:* boolean +- *Default:* true if not a subproject -- *Type:* string +Define a GitHub workflow for building PRs. --- -##### `addDeps` +##### `buildWorkflowTriggers`Optional ```typescript -public addDeps(deps: string): void +public readonly buildWorkflowTriggers: Triggers; ``` -Defines normal dependencies. - -###### `deps`Required - -- *Type:* string - -Names modules to install. +- *Type:* projen.github.workflows.Triggers +- *Default:* "{ pullRequest: {}, workflowDispatch: {} }" -By default, the the dependency will -be installed in the next `npx projen` run and the version will be recorded -in your `package.json` file. You can upgrade manually or using `yarn -add/upgrade`. If you wish to specify a version range use this syntax: -`module@^7`. +Build workflow triggers. --- -##### `addDevDeps` +##### `bundlerOptions`Optional ```typescript -public addDevDeps(deps: string): void +public readonly bundlerOptions: BundlerOptions; ``` -Defines development/test dependencies. - -###### `deps`Required - -- *Type:* string - -Names modules to install. +- *Type:* projen.javascript.BundlerOptions -By default, the the dependency will -be installed in the next `npx projen` run and the version will be recorded -in your `package.json` file. You can upgrade manually or using `yarn -add/upgrade`. If you wish to specify a version range use this syntax: -`module@^7`. +Options for `Bundler`. --- -##### `addFields` +##### `codeCov`Optional ```typescript -public addFields(fields: {[ key: string ]: any}): void +public readonly codeCov: boolean; ``` -Directly set fields in `package.json`. - -###### `fields`Required - -- *Type:* {[ key: string ]: any} +- *Type:* boolean +- *Default:* false -The fields to set. +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`. --- -##### `addKeywords` +##### `codeCovTokenSecret`Optional ```typescript -public addKeywords(keywords: string): void +public readonly codeCovTokenSecret: string; ``` -Adds keywords to package.json (deduplicated). - -###### `keywords`Required - - *Type:* string +- *Default:* if this option is not specified, only public repositories are supported -The keywords to add. +Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. --- -##### `addPeerDeps` +##### `copyrightOwner`Optional ```typescript -public addPeerDeps(deps: string): void +public readonly copyrightOwner: string; ``` -Defines peer dependencies. - -When adding peer dependencies, a devDependency will also be added on the -pinned version of the declared peer. This will ensure that you are testing -your code against the minimum version required from your consumers. - -###### `deps`Required - - *Type:* string +- *Default:* defaults to the value of authorName or "" if `authorName` is undefined. -Names modules to install. - -By default, the the dependency will -be installed in the next `npx projen` run and the version will be recorded -in your `package.json` file. You can upgrade manually or using `yarn -add/upgrade`. If you wish to specify a version range use this syntax: -`module@^7`. +License copyright owner. --- -##### `addScripts` +##### `copyrightPeriod`Optional ```typescript -public addScripts(scripts: {[ key: string ]: string}): void +public readonly copyrightPeriod: string; ``` -Replaces the contents of multiple npm package.json scripts. - -###### `scripts`Required - -- *Type:* {[ key: string ]: string} +- *Type:* string +- *Default:* current year -The scripts to set. +The copyright years to put in the LICENSE file. --- -##### ~~`addTestCommand`~~ +##### `dependabot`Optional ```typescript -public addTestCommand(commands: string): void +public readonly dependabot: boolean; ``` -DEPRECATED. +- *Type:* boolean +- *Default:* false -###### `commands`Required +Use dependabot to handle dependency upgrades. -- *Type:* string +Cannot be used in conjunction with `depsUpgrade`. --- -##### ~~`hasScript`~~ +##### `dependabotOptions`Optional ```typescript -public hasScript(name: string): boolean +public readonly dependabotOptions: DependabotOptions; ``` -Indicates if a script by the name name is defined. - -###### `name`Required - -- *Type:* string +- *Type:* projen.github.DependabotOptions +- *Default:* default options -The name of the script. +Options for dependabot. --- -##### `removeScript` +##### `depsUpgrade`Optional ```typescript -public removeScript(name: string): void +public readonly depsUpgrade: boolean; ``` -Removes the npm script (always successful). - -###### `name`Required +- *Type:* boolean +- *Default:* true -- *Type:* string +Use tasks and github workflows to handle dependency upgrades. -The name of the script. +Cannot be used in conjunction with `dependabot`. --- -##### `renderWorkflowSetup` +##### `depsUpgradeOptions`Optional ```typescript -public renderWorkflowSetup(options?: RenderWorkflowSetupOptions): JobStep[] +public readonly depsUpgradeOptions: UpgradeDependenciesOptions; ``` -Returns the set of workflow steps which should be executed to bootstrap a workflow. - -###### `options`Optional - -- *Type:* projen.javascript.RenderWorkflowSetupOptions +- *Type:* projen.javascript.UpgradeDependenciesOptions +- *Default:* default options -Options. +Options for `UpgradeDependencies`. --- -##### `setScript` +##### `gitignore`Optional ```typescript -public setScript(name: string, command: string): void +public readonly gitignore: string[]; ``` -Replaces the contents of an npm package.json script. - -###### `name`Required - -- *Type:* string +- *Type:* string[] -The script name. +Additional entries to .gitignore. --- -###### `command`Required +##### `jest`Optional -- *Type:* string +```typescript +public readonly jest: boolean; +``` -The command to execute. +- *Type:* boolean +- *Default:* true + +Setup jest unit tests. --- -##### ~~`addCdkDependencies`~~ +##### `jestOptions`Optional ```typescript -public addCdkDependencies(deps: string): void +public readonly jestOptions: JestOptions; ``` -Adds dependencies to AWS CDK modules. - -Since this is a library project, dependencies will be added as peer dependencies. - -###### `deps`Required - -- *Type:* string +- *Type:* projen.javascript.JestOptions +- *Default:* default options -names of cdk modules (e.g. `@aws-cdk/aws-lambda`). +Jest options. --- -##### ~~`addCdkTestDependencies`~~ +##### `mutableBuild`Optional ```typescript -public addCdkTestDependencies(deps: string): void +public readonly mutableBuild: boolean; ``` -Adds AWS CDK modules as dev dependencies. +- *Type:* boolean +- *Default:* true -###### `deps`Required +Automatically update files modified during builds to pull-request branches. -- *Type:* string +This means +that any files synthesized by projen or e.g. test snapshots will always be up-to-date +before a PR is merged. -names of cdk modules (e.g. `@aws-cdk/aws-lambda`). +Implies that PR builds do not have anti-tamper checks. --- +##### ~~`npmignore`~~Optional -#### Properties - -| **Name** | **Type** | **Description** | -| --- | --- | --- | -| buildTask | projen.Task | *No description.* | -| commitGenerated | boolean | Whether to commit the managed files by default. | -| compileTask | projen.Task | *No description.* | -| components | projen.Component[] | Returns all the components within this project. | -| deps | projen.Dependencies | Project dependencies. | -| ejected | boolean | Whether or not the project is being ejected. | -| files | projen.FileBase[] | All files in this project. | -| gitattributes | projen.GitAttributesFile | The .gitattributes file for this repository. | -| gitignore | projen.IgnoreFile | .gitignore. | -| logger | projen.Logger | Logging utilities. | -| name | string | Project name. | -| outdir | string | Absolute output directory of this project. | -| packageTask | projen.Task | *No description.* | -| postCompileTask | projen.Task | *No description.* | -| preCompileTask | projen.Task | *No description.* | -| projectBuild | projen.ProjectBuild | Manages the build process of the project. | -| projenCommand | string | The command to use in order to run the projen CLI. | -| root | projen.Project | The root project. | -| subprojects | projen.Project[] | Returns all the subprojects within this project. | -| tasks | projen.Tasks | Project tasks. | -| testTask | projen.Task | *No description.* | -| defaultTask | projen.Task | This is the "default" task, the one that executes "projen". | -| initProject | projen.InitProject | The options used when this project is bootstrapped via `projen new`. | -| parent | projen.Project | A parent project. | -| projectType | projen.ProjectType | *No description.* | -| autoApprove | projen.github.AutoApprove | Auto approve set up for this project. | -| devContainer | projen.vscode.DevContainer | Access for .devcontainer.json (used for GitHub Codespaces). | -| github | projen.github.GitHub | Access all github components. | -| gitpod | projen.Gitpod | Access for Gitpod. | -| vscode | projen.vscode.VsCode | Access all VSCode components. | -| allowLibraryDependencies | boolean | *No description.* | -| artifactsDirectory | string | The build output directory. | -| artifactsJavascriptDirectory | string | The location of the npm tarball after build (`${artifactsDirectory}/js`). | -| bundler | projen.javascript.Bundler | *No description.* | -| entrypoint | string | *No description.* | -| manifest | any | *No description.* | -| npmrc | projen.javascript.NpmConfig | The .npmrc file. | -| package | projen.javascript.NodePackage | API for managing the node package. | -| packageManager | projen.javascript.NodePackageManager | The package manager to use. | -| runScriptCommand | string | The command to use to run scripts (e.g. `yarn run` or `npm run` depends on the package manager). | -| autoMerge | projen.github.AutoMerge | Component that sets up mergify for merging approved pull requests. | -| buildWorkflow | projen.build.BuildWorkflow | The PR build GitHub workflow. | -| buildWorkflowJobId | string | The job ID of the build workflow. | -| jest | projen.javascript.Jest | The Jest configuration (if enabled). | -| maxNodeVersion | string | Maximum node version required by this package. | -| minNodeVersion | string | Minimum node.js version required by this package. | -| npmignore | projen.IgnoreFile | The .npmignore file. | -| prettier | projen.javascript.Prettier | *No description.* | -| publisher | projen.release.Publisher | Package publisher. | -| release | projen.release.Release | Release management. | -| upgradeWorkflow | projen.javascript.UpgradeDependencies | The upgrade workflow. | -| docsDirectory | string | *No description.* | -| libdir | string | The directory in which compiled .js files reside. | -| srcdir | string | The directory in which the .ts sources reside. | -| testdir | string | The directory in which tests reside. | -| tsconfigDev | projen.javascript.TypescriptConfig | A typescript configuration file which covers all files (sources, tests, projen). | -| watchTask | projen.Task | The "watch" task. | -| docgen | boolean | *No description.* | -| eslint | projen.javascript.Eslint | *No description.* | -| tsconfig | projen.javascript.TypescriptConfig | *No description.* | -| tsconfigEslint | projen.javascript.TypescriptConfig | *No description.* | -| cdkDeps | projen.awscdk.AwsCdkDeps | *No description.* | -| cdkVersion | string | The target CDK version for this library. | -| version | string | *No description.* | -| datadogEvent | boolean | *No description.* | +- *Deprecated:* - use `project.addPackageIgnore` + +```typescript +public readonly npmignore: string[]; +``` + +- *Type:* string[] + +Additional entries to .npmignore. --- -##### `buildTask`Required +##### `npmignoreEnabled`Optional ```typescript -public readonly buildTask: Task; +public readonly npmignoreEnabled: boolean; ``` -- *Type:* projen.Task +- *Type:* boolean +- *Default:* true + +Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs. --- -##### `commitGenerated`Required +##### `npmIgnoreOptions`Optional ```typescript -public readonly commitGenerated: boolean; +public readonly npmIgnoreOptions: IgnoreFileOptions; ``` -- *Type:* boolean +- *Type:* projen.IgnoreFileOptions -Whether to commit the managed files by default. +Configuration options for .npmignore file. --- -##### `compileTask`Required +##### `package`Optional ```typescript -public readonly compileTask: Task; +public readonly package: boolean; ``` -- *Type:* projen.Task +- *Type:* boolean +- *Default:* true + +Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`). --- -##### `components`Required +##### `prettier`Optional ```typescript -public readonly components: Component[]; +public readonly prettier: boolean; ``` -- *Type:* projen.Component[] +- *Type:* boolean +- *Default:* false -Returns all the components within this project. +Setup prettier. --- -##### `deps`Required +##### `prettierOptions`Optional ```typescript -public readonly deps: Dependencies; +public readonly prettierOptions: PrettierOptions; ``` -- *Type:* projen.Dependencies +- *Type:* projen.javascript.PrettierOptions +- *Default:* default options -Project dependencies. +Prettier options. --- -##### `ejected`Required +##### `projenDevDependency`Optional ```typescript -public readonly ejected: boolean; +public readonly projenDevDependency: boolean; ``` - *Type:* boolean +- *Default:* true -Whether or not the project is being ejected. +Indicates of "projen" should be installed as a devDependency. --- -##### `files`Required +##### `projenrcJs`Optional ```typescript -public readonly files: FileBase[]; +public readonly projenrcJs: boolean; ``` -- *Type:* projen.FileBase[] +- *Type:* boolean +- *Default:* true if projenrcJson is false -All files in this project. +Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation. --- -##### `gitattributes`Required +##### `projenrcJsOptions`Optional ```typescript -public readonly gitattributes: GitAttributesFile; +public readonly projenrcJsOptions: ProjenrcOptions; ``` -- *Type:* projen.GitAttributesFile +- *Type:* projen.javascript.ProjenrcOptions +- *Default:* default options -The .gitattributes file for this repository. +Options for .projenrc.js. --- -##### `gitignore`Required +##### `projenVersion`Optional ```typescript -public readonly gitignore: IgnoreFile; +public readonly projenVersion: string; ``` -- *Type:* projen.IgnoreFile +- *Type:* string +- *Default:* Defaults to the latest version. -.gitignore. +Version of projen to install. --- -##### `logger`Required +##### `pullRequestTemplate`Optional ```typescript -public readonly logger: Logger; +public readonly pullRequestTemplate: boolean; ``` -- *Type:* projen.Logger +- *Type:* boolean +- *Default:* true -Logging utilities. +Include a GitHub pull request template. --- -##### `name`Required +##### `pullRequestTemplateContents`Optional ```typescript -public readonly name: string; +public readonly pullRequestTemplateContents: string[]; ``` -- *Type:* string +- *Type:* string[] +- *Default:* default content -Project name. +The contents of the pull request template. --- -##### `outdir`Required +##### `release`Optional ```typescript -public readonly outdir: string; +public readonly release: boolean; ``` -- *Type:* string +- *Type:* boolean +- *Default:* true (false for subprojects) -Absolute output directory of this project. +Add release management to this project. --- -##### `packageTask`Required +##### `releaseToNpm`Optional ```typescript -public readonly packageTask: Task; +public readonly releaseToNpm: boolean; ``` -- *Type:* projen.Task +- *Type:* boolean +- *Default:* false + +Automatically release to npm when new versions are introduced. --- -##### `postCompileTask`Required +##### ~~`releaseWorkflow`~~Optional + +- *Deprecated:* see `release`. ```typescript -public readonly postCompileTask: Task; +public readonly releaseWorkflow: boolean; ``` -- *Type:* projen.Task +- *Type:* boolean +- *Default:* true if not a subproject + +DEPRECATED: renamed to `release`. --- -##### `preCompileTask`Required +##### `workflowBootstrapSteps`Optional ```typescript -public readonly preCompileTask: Task; +public readonly workflowBootstrapSteps: JobStep[]; ``` -- *Type:* projen.Task +- *Type:* projen.github.workflows.JobStep[] +- *Default:* "yarn install --frozen-lockfile && yarn projen" + +Workflow steps to use in order to bootstrap this repo. --- -##### `projectBuild`Required +##### `workflowGitIdentity`Optional ```typescript -public readonly projectBuild: ProjectBuild; +public readonly workflowGitIdentity: GitIdentity; ``` -- *Type:* projen.ProjectBuild +- *Type:* projen.github.GitIdentity +- *Default:* GitHub Actions -Manages the build process of the project. +The git identity to use in workflows. --- -##### `projenCommand`Required +##### `workflowNodeVersion`Optional ```typescript -public readonly projenCommand: string; +public readonly workflowNodeVersion: string; ``` - *Type:* string +- *Default:* same as `minNodeVersion` -The command to use in order to run the projen CLI. +The node version to use in GitHub workflows. --- -##### `root`Required +##### `workflowPackageCache`Optional ```typescript -public readonly root: Project; +public readonly workflowPackageCache: boolean; ``` -- *Type:* projen.Project +- *Type:* boolean +- *Default:* false -The root project. +Enable Node.js package cache in GitHub workflows. --- -##### `subprojects`Required +##### `disableTsconfig`Optional ```typescript -public readonly subprojects: Project[]; +public readonly disableTsconfig: boolean; ``` -- *Type:* projen.Project[] +- *Type:* boolean +- *Default:* false -Returns all the subprojects within this project. +Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler). --- -##### `tasks`Required +##### `disableTsconfigDev`Optional ```typescript -public readonly tasks: Tasks; +public readonly disableTsconfigDev: boolean; ``` -- *Type:* projen.Tasks +- *Type:* boolean +- *Default:* false -Project tasks. +Do not generate a `tsconfig.dev.json` file. --- -##### `testTask`Required +##### `docgen`Optional ```typescript -public readonly testTask: Task; +public readonly docgen: boolean; ``` -- *Type:* projen.Task +- *Type:* boolean +- *Default:* false + +Docgen by Typedoc. --- -##### `defaultTask`Optional +##### `docsDirectory`Optional ```typescript -public readonly defaultTask: Task; +public readonly docsDirectory: string; ``` -- *Type:* projen.Task +- *Type:* string +- *Default:* "docs" -This is the "default" task, the one that executes "projen". +Docs directory. -Undefined if -the project is being ejected. +--- + +##### `entrypointTypes`Optional + +```typescript +public readonly entrypointTypes: string; +``` + +- *Type:* string +- *Default:* .d.ts file derived from the project's entrypoint (usually lib/index.d.ts) + +The .d.ts file that includes the type declarations for this module. + +--- + +##### `eslint`Optional + +```typescript +public readonly eslint: boolean; +``` + +- *Type:* boolean +- *Default:* true + +Setup eslint. + +--- + +##### `eslintOptions`Optional + +```typescript +public readonly eslintOptions: EslintOptions; +``` + +- *Type:* projen.javascript.EslintOptions +- *Default:* opinionated default options + +Eslint options. + +--- + +##### `libdir`Optional + +```typescript +public readonly libdir: string; +``` + +- *Type:* string +- *Default:* "lib" + +Typescript artifacts output directory. --- -##### `initProject`Optional +##### `projenrcTs`Optional ```typescript -public readonly initProject: InitProject; +public readonly projenrcTs: boolean; ``` -- *Type:* projen.InitProject - -The options used when this project is bootstrapped via `projen new`. +- *Type:* boolean +- *Default:* false -It -includes the original set of options passed to the CLI and also the JSII -FQN of the project type. +Use TypeScript for your projenrc file (`.projenrc.ts`). --- -##### `parent`Optional +##### `projenrcTsOptions`Optional ```typescript -public readonly parent: Project; +public readonly projenrcTsOptions: ProjenrcOptions; ``` -- *Type:* projen.Project - -A parent project. +- *Type:* projen.typescript.ProjenrcOptions -If undefined, this is the root project. +Options for .projenrc.ts. --- -##### `projectType`Required +##### `sampleCode`Optional ```typescript -public readonly projectType: ProjectType; +public readonly sampleCode: boolean; ``` -- *Type:* projen.ProjectType +- *Type:* boolean +- *Default:* true + +Generate one-time sample in `src/` and `test/` if there are no files there. --- -##### `autoApprove`Optional +##### `srcdir`Optional ```typescript -public readonly autoApprove: AutoApprove; +public readonly srcdir: string; ``` -- *Type:* projen.github.AutoApprove +- *Type:* string +- *Default:* "src" -Auto approve set up for this project. +Typescript sources directory. --- -##### `devContainer`Optional +##### `testdir`Optional ```typescript -public readonly devContainer: DevContainer; +public readonly testdir: string; ``` -- *Type:* projen.vscode.DevContainer +- *Type:* string +- *Default:* "test" -Access for .devcontainer.json (used for GitHub Codespaces). +Jest tests directory. Tests files should be named `xxx.test.ts`. -This will be `undefined` if devContainer boolean is false +If this directory is under `srcdir` (e.g. `src/test`, `src/__tests__`), +then tests are going to be compiled into `lib/` and executed as javascript. +If the test directory is outside of `src`, then we configure jest to +compile the code in-memory. --- -##### `github`Optional +##### `tsconfig`Optional ```typescript -public readonly github: GitHub; +public readonly tsconfig: TypescriptConfigOptions; ``` -- *Type:* projen.github.GitHub - -Access all github components. +- *Type:* projen.javascript.TypescriptConfigOptions +- *Default:* default options -This will be `undefined` for subprojects. +Custom TSConfig. --- -##### `gitpod`Optional +##### `tsconfigDev`Optional ```typescript -public readonly gitpod: Gitpod; +public readonly tsconfigDev: TypescriptConfigOptions; ``` -- *Type:* projen.Gitpod - -Access for Gitpod. +- *Type:* projen.javascript.TypescriptConfigOptions +- *Default:* use the production tsconfig options -This will be `undefined` if gitpod boolean is false +Custom tsconfig options for the development tsconfig.json file (used for testing). --- -##### `vscode`Optional +##### `tsconfigDevFile`Optional ```typescript -public readonly vscode: VsCode; +public readonly tsconfigDevFile: string; ``` -- *Type:* projen.vscode.VsCode - -Access all VSCode components. +- *Type:* string +- *Default:* "tsconfig.dev.json" -This will be `undefined` for subprojects. +The name of the development tsconfig.json file. --- -##### ~~`allowLibraryDependencies`~~Required - -- *Deprecated:* use `package.allowLibraryDependencies` +##### `typescriptVersion`Optional ```typescript -public readonly allowLibraryDependencies: boolean; +public readonly typescriptVersion: string; ``` -- *Type:* boolean +- *Type:* string +- *Default:* "latest" + +TypeScript version to use. + +NOTE: Typescript is not semantically versioned and should remain on the +same minor, so we recommend using a `~` dependency (e.g. `~1.2.3`). --- -##### `artifactsDirectory`Required +##### `buildCommand`Optional ```typescript -public readonly artifactsDirectory: string; +public readonly buildCommand: string; ``` - *Type:* string +- *Default:* no build command -The build output directory. +A command to execute before synthesis. -An npm tarball will be created under the `js` -subdirectory. For example, if this is set to `dist` (the default), the npm -tarball will be placed under `dist/js/boom-boom-1.2.3.tg`. +This command will be called when +running `cdk synth` or when `cdk watch` identifies a change in your source +code before redeployment. --- -##### `artifactsJavascriptDirectory`Required +##### `cdkout`Optional ```typescript -public readonly artifactsJavascriptDirectory: string; +public readonly cdkout: string; ``` - *Type:* string +- *Default:* "cdk.out" -The location of the npm tarball after build (`${artifactsDirectory}/js`). +cdk.out directory. --- -##### `bundler`Required +##### `context`Optional ```typescript -public readonly bundler: Bundler; +public readonly context: {[ key: string ]: any}; ``` -- *Type:* projen.javascript.Bundler +- *Type:* {[ key: string ]: any} +- *Default:* no additional context ---- +Additional context to include in `cdk.json`. -##### ~~`entrypoint`~~Required +--- -- *Deprecated:* use `package.entrypoint` +##### `featureFlags`Optional ```typescript -public readonly entrypoint: string; +public readonly featureFlags: boolean; ``` -- *Type:* string +- *Type:* boolean +- *Default:* true ---- +Include all feature flags in cdk.json. -##### ~~`manifest`~~Required +--- -- *Deprecated:* use `package.addField(x, y)` +##### `requireApproval`Optional ```typescript -public readonly manifest: any; +public readonly requireApproval: ApprovalLevel; ``` -- *Type:* any +- *Type:* projen.awscdk.ApprovalLevel +- *Default:* ApprovalLevel.BROADENING + +To protect you against unintended changes that affect your security posture, the AWS CDK Toolkit prompts you to approve security-related changes before deploying them. --- -##### `npmrc`Required +##### `watchExcludes`Optional ```typescript -public readonly npmrc: NpmConfig; +public readonly watchExcludes: string[]; ``` -- *Type:* projen.javascript.NpmConfig +- *Type:* string[] +- *Default:* [] -The .npmrc file. +Glob patterns to exclude from `cdk watch`. --- -##### `package`Required +##### `watchIncludes`Optional ```typescript -public readonly package: NodePackage; +public readonly watchIncludes: string[]; ``` -- *Type:* projen.javascript.NodePackage +- *Type:* string[] +- *Default:* [] -API for managing the node package. +Glob patterns to include in `cdk watch`. --- -##### ~~`packageManager`~~Required - -- *Deprecated:* use `package.packageManager` +##### `cdkVersion`Required ```typescript -public readonly packageManager: NodePackageManager; +public readonly cdkVersion: string; ``` -- *Type:* projen.javascript.NodePackageManager +- *Type:* string +- *Default:* "2.1.0" -The package manager to use. +Minimum version of the AWS CDK to depend on. --- -##### `runScriptCommand`Required +##### ~~`cdkAssert`~~Optional + +- *Deprecated:* The ```typescript -public readonly runScriptCommand: string; +public readonly cdkAssert: boolean; ``` -- *Type:* string +- *Type:* boolean +- *Default:* will be included by default for AWS CDK >= 1.0.0 < 2.0.0 -The command to use to run scripts (e.g. `yarn run` or `npm run` depends on the package manager). +Warning: NodeJS only. + +Install the --- -##### `autoMerge`Optional +##### `cdkAssertions`Optional ```typescript -public readonly autoMerge: AutoMerge; +public readonly cdkAssertions: boolean; ``` -- *Type:* projen.github.AutoMerge +- *Type:* boolean +- *Default:* will be included by default for AWS CDK >= 1.111.0 < 2.0.0 -Component that sets up mergify for merging approved pull requests. +Install the assertions library? + +Only needed for CDK 1.x. If using CDK 2.x then +assertions is already included in 'aws-cdk-lib' --- -##### `buildWorkflow`Optional +##### ~~`cdkDependencies`~~Optional + +- *Deprecated:* For CDK 2.x use "deps" instead. (or "peerDeps" if you're building a library) ```typescript -public readonly buildWorkflow: BuildWorkflow; +public readonly cdkDependencies: string[]; ``` -- *Type:* projen.build.BuildWorkflow - -The PR build GitHub workflow. +- *Type:* string[] -`undefined` if `buildWorkflow` is disabled. +Which AWS CDKv1 modules this project requires. --- -##### `buildWorkflowJobId`Optional +##### ~~`cdkDependenciesAsDeps`~~Optional + +- *Deprecated:* Not supported in CDK v2. ```typescript -public readonly buildWorkflowJobId: string; +public readonly cdkDependenciesAsDeps: boolean; ``` -- *Type:* string +- *Type:* boolean +- *Default:* true -The job ID of the build workflow. +If this is enabled (default), all modules declared in `cdkDependencies` will be also added as normal `dependencies` (as well as `peerDependencies`). + +This is to ensure that downstream consumers actually have your CDK dependencies installed +when using npm < 7 or yarn, where peer dependencies are not automatically installed. +If this is disabled, `cdkDependencies` will be added to `devDependencies` to ensure +they are present during development. + +Note: this setting only applies to construct library projects --- -##### `jest`Optional +##### ~~`cdkTestDependencies`~~Optional + +- *Deprecated:* For CDK 2.x use 'devDeps' (in node.js projects) or 'testDeps' (in java projects) instead ```typescript -public readonly jest: Jest; +public readonly cdkTestDependencies: string[]; ``` -- *Type:* projen.javascript.Jest +- *Type:* string[] -The Jest configuration (if enabled). +AWS CDK modules required for testing. --- -##### `maxNodeVersion`Optional +##### `cdkVersionPinning`Optional ```typescript -public readonly maxNodeVersion: string; +public readonly cdkVersionPinning: boolean; ``` -- *Type:* string +- *Type:* boolean -Maximum node version required by this package. +Use pinned version instead of caret version for CDK. + +You can use this to prevent mixed versions for your CDK dependencies and to prevent auto-updates. +If you use experimental features this will let you define the moment you include breaking changes. --- -##### `minNodeVersion`Optional +##### `constructsVersion`Optional ```typescript -public readonly minNodeVersion: string; +public readonly constructsVersion: string; ``` - *Type:* string +- *Default:* for CDK 1.x the default is "3.2.27", for CDK 2.x the default is "10.0.5". -Minimum node.js version required by this package. +Minimum version of the `constructs` library to depend on. --- -##### `npmignore`Optional +##### `appEntrypoint`Optional ```typescript -public readonly npmignore: IgnoreFile; +public readonly appEntrypoint: string; ``` -- *Type:* projen.IgnoreFile +- *Type:* string +- *Default:* "main.ts" -The .npmignore file. +The CDK app's entrypoint (relative to the source directory, which is "src" by default). --- -##### `prettier`Optional +##### `edgeLambdaAutoDiscover`Optional ```typescript -public readonly prettier: Prettier; +public readonly edgeLambdaAutoDiscover: boolean; ``` -- *Type:* projen.javascript.Prettier +- *Type:* boolean +- *Default:* true ---- +Automatically adds an `cloudfront.experimental.EdgeFunction` for each `.edge-lambda.ts` handler in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project. -##### ~~`publisher`~~Optional +--- -- *Deprecated:* use `release.publisher`. +##### `experimentalIntegRunner`Optional ```typescript -public readonly publisher: Publisher; +public readonly experimentalIntegRunner: boolean; ``` -- *Type:* projen.release.Publisher - -Package publisher. +- *Type:* boolean +- *Default:* false -This will be `undefined` if the project does not have a -release workflow. +Enable experimental support for the AWS CDK integ-runner. --- -##### `release`Optional +##### `integrationTestAutoDiscover`Optional ```typescript -public readonly release: Release; +public readonly integrationTestAutoDiscover: boolean; ``` -- *Type:* projen.release.Release +- *Type:* boolean +- *Default:* true -Release management. +Automatically discovers and creates integration tests for each `.integ.ts` file in under your test directory. --- -##### `upgradeWorkflow`Optional +##### `lambdaAutoDiscover`Optional ```typescript -public readonly upgradeWorkflow: UpgradeDependencies; +public readonly lambdaAutoDiscover: boolean; ``` -- *Type:* projen.javascript.UpgradeDependencies +- *Type:* boolean +- *Default:* true -The upgrade workflow. +Automatically adds an `awscdk.LambdaFunction` for each `.lambda.ts` handler in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project. --- -##### `docsDirectory`Required +##### `lambdaExtensionAutoDiscover`Optional ```typescript -public readonly docsDirectory: string; +public readonly lambdaExtensionAutoDiscover: boolean; ``` -- *Type:* string +- *Type:* boolean +- *Default:* true + +Automatically adds an `awscdk.LambdaExtension` for each `.lambda-extension.ts` entrypoint in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project. --- -##### `libdir`Required +##### `lambdaOptions`Optional ```typescript -public readonly libdir: string; +public readonly lambdaOptions: LambdaFunctionCommonOptions; ``` -- *Type:* string +- *Type:* projen.awscdk.LambdaFunctionCommonOptions +- *Default:* default options -The directory in which compiled .js files reside. +Common options for all AWS Lambda functions. --- -##### `srcdir`Required +##### `sendSlackWebhookOnRelease`Optional ```typescript -public readonly srcdir: string; +public readonly sendSlackWebhookOnRelease: boolean; ``` -- *Type:* string +- *Type:* boolean +- *Default:* true -The directory in which the .ts sources reside. +Should we send a slack webhook on release (required for compliance audits). --- -##### `testdir`Required +##### `sendSlackWebhookOnReleaseOpts`Optional ```typescript -public readonly testdir: string; +public readonly sendSlackWebhookOnReleaseOpts: ReleaseEventOptions; ``` -- *Type:* string +- *Type:* @time-loop/clickup-projen.slackAlert.ReleaseEventOptions -The directory in which tests reside. +Slack alert on release options. + +Only valid when `sendSlackWebhookOnRelease` is true. --- -##### `tsconfigDev`Required +##### `cdkDiffOptionsConfig`Optional ```typescript -public readonly tsconfigDev: TypescriptConfig; +public readonly cdkDiffOptionsConfig: CDKDiffOptionsConfig; ``` -- *Type:* projen.javascript.TypescriptConfig +- *Type:* @time-loop/clickup-projen.cdkDiffWorkflow.CDKDiffOptionsConfig +- *Default:* undefined -A typescript configuration file which covers all files (sources, tests, projen). +Cdk diff options. --- -##### `watchTask`Required +##### `renovateOptionsConfig`Optional ```typescript -public readonly watchTask: Task; +public readonly renovateOptionsConfig: RenovateOptionsConfig; ``` -- *Type:* projen.Task +- *Type:* @time-loop/clickup-projen.renovateWorkflow.RenovateOptionsConfig +- *Default:* undefined -The "watch" task. +Renovate options. --- -##### `docgen`Optional +##### `sendReleaseEvent`Optional ```typescript -public readonly docgen: boolean; +public readonly sendReleaseEvent: boolean; ``` - *Type:* boolean +- *Default:* true + +Feature flag for datadog event sending on release. --- -##### `eslint`Optional +##### `sendReleaseEventOpts`Optional ```typescript -public readonly eslint: Eslint; +public readonly sendReleaseEventOpts: ReleaseEventOptions; ``` -- *Type:* projen.javascript.Eslint +- *Type:* @time-loop/clickup-projen.datadog.ReleaseEventOptions +- *Default:* undefined + +Datadog event options to use on release. + +Only valid when +`sendReleaseEvent` is true. --- -##### `tsconfig`Optional +##### `serviceCatalogOptions`Optional ```typescript -public readonly tsconfig: TypescriptConfig; +public readonly serviceCatalogOptions: ServiceCatalogOptions; ``` -- *Type:* projen.javascript.TypescriptConfig +- *Type:* @time-loop/clickup-projen.datadogServiceCatalog.ServiceCatalogOptions +- *Default:* undefined + +Datadog Service Catalog options. --- -##### `tsconfigEslint`Optional +##### `cdkContextJsonOptions`Optional ```typescript -public readonly tsconfigEslint: TypescriptConfig; +public readonly cdkContextJsonOptions: Options; ``` -- *Type:* projen.javascript.TypescriptConfig +- *Type:* @time-loop/clickup-projen.cdkContextJson.Options + +Add support for cdk.context.json lookups? This allows GitHub PRs to lookup missing things from your cdk.context.json file and then commit a self-mutation so that your PRs don't break. --- -##### `cdkDeps`Required +### ClickUpTypeScriptProjectOptions + +#### Initializer ```typescript -public readonly cdkDeps: AwsCdkDeps; +import { clickupTs } from '@time-loop/clickup-projen' + +const clickUpTypeScriptProjectOptions: clickupTs.ClickUpTypeScriptProjectOptions = { ... } ``` -- *Type:* projen.awscdk.AwsCdkDeps +#### Properties + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| name | string | This is the name of your project. | +| commitGenerated | boolean | Whether to commit the managed files by default. | +| gitIgnoreOptions | projen.IgnoreFileOptions | Configuration options for .gitignore file. | +| gitOptions | projen.GitOptions | Configuration options for git. | +| logging | projen.LoggerOptions | Configure logging options such as verbosity. | +| outdir | string | The root directory of the project. | +| parent | projen.Project | The parent project, if this project is part of a bigger project. | +| projenCommand | string | The shell command to use in order to run the projen CLI. | +| projenrcJson | boolean | Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. | +| projenrcJsonOptions | projen.ProjenrcJsonOptions | Options for .projenrc.json. | +| renovatebot | boolean | Use renovatebot to handle dependency upgrades. | +| renovatebotOptions | projen.RenovatebotOptions | Options for renovatebot. | +| autoApproveOptions | projen.github.AutoApproveOptions | Enable and configure the 'auto approve' workflow. | +| autoMerge | boolean | Enable automatic merging on GitHub. | +| autoMergeOptions | projen.github.AutoMergeOptions | Configure options for automatic merging on GitHub. | +| clobber | boolean | Add a `clobber` task which resets the repo to origin. | +| devContainer | boolean | Add a VSCode development environment (used for GitHub Codespaces). | +| github | boolean | Enable GitHub integration. | +| githubOptions | projen.github.GitHubOptions | Options for GitHub integration. | +| gitpod | boolean | Add a Gitpod development environment. | +| mergify | boolean | Whether mergify should be enabled on this repository or not. | +| mergifyOptions | projen.github.MergifyOptions | Options for mergify. | +| projectType | projen.ProjectType | Which type of project this is (library/app). | +| projenCredentials | projen.github.GithubCredentials | Choose a method of providing GitHub API access for projen workflows. | +| projenTokenSecret | string | The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. | +| readme | projen.SampleReadmeProps | The README setup. | +| stale | boolean | Auto-close of stale issues and pull request. | +| staleOptions | projen.github.StaleOptions | Auto-close stale issues and pull requests. | +| vscode | boolean | Enable VSCode integration. | +| allowLibraryDependencies | boolean | Allow the project to include `peerDependencies` and `bundledDependencies`. | +| authorEmail | string | Author's e-mail. | +| authorName | string | Author's name. | +| authorOrganization | boolean | Is the author an organization. | +| authorUrl | string | Author's URL / Website. | +| autoDetectBin | boolean | Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section. | +| bin | {[ key: string ]: string} | Binary programs vended with your module. | +| bugsEmail | string | The email address to which issues should be reported. | +| bugsUrl | string | The url to your project's issue tracker. | +| bundledDeps | string[] | List of dependencies to bundle into this module. | +| codeArtifactOptions | projen.javascript.CodeArtifactOptions | Options for npm packages using AWS CodeArtifact. | +| deps | string[] | Runtime dependencies of this module. | +| description | string | The description is just a string that helps people understand the purpose of the package. | +| devDeps | string[] | Build dependencies for this module. | +| entrypoint | string | Module entrypoint (`main` in `package.json`). | +| homepage | string | Package's Homepage / Website. | +| keywords | string[] | Keywords to include in `package.json`. | +| license | string | License's SPDX identifier. | +| licensed | boolean | Indicates if a license should be added. | +| maxNodeVersion | string | Minimum node.js version to require via `engines` (inclusive). | +| minNodeVersion | string | Minimum Node.js version to require via package.json `engines` (inclusive). | +| npmAccess | projen.javascript.NpmAccess | Access level of the npm package. | +| npmRegistry | string | The host name of the npm registry to publish to. | +| npmRegistryUrl | string | The base URL of the npm package registry. | +| npmTokenSecret | string | GitHub secret which contains the NPM token to use when publishing packages. | +| packageManager | projen.javascript.NodePackageManager | The Node Package Manager used to execute scripts. | +| packageName | string | The "name" in package.json. | +| peerDependencyOptions | projen.javascript.PeerDependencyOptions | Options for `peerDeps`. | +| peerDeps | string[] | Peer dependencies for this module. | +| pnpmVersion | string | The version of PNPM to use if using PNPM as a package manager. | +| repository | string | The repository is the location where the actual code for your package lives. | +| repositoryDirectory | string | 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. | +| scopedPackagesOptions | projen.javascript.ScopedPackagesOptions[] | Options for privately hosted scoped packages. | +| scripts | {[ key: string ]: string} | npm scripts to include. | +| stability | string | Package's Stability. | +| yarnBerryOptions | projen.javascript.YarnBerryOptions | Options for Yarn Berry. | +| jsiiReleaseVersion | string | Version requirement of `publib` which is used to publish modules to npm. | +| majorVersion | number | Major version to release from the default branch. | +| minMajorVersion | number | Minimal Major version to release. | +| npmDistTag | string | The npmDistTag to use when publishing from the default branch. | +| postBuildSteps | projen.github.workflows.JobStep[] | Steps to execute after build as part of the release workflow. | +| prerelease | string | Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). | +| publishDryRun | boolean | Instead of actually publishing to package managers, just print the publishing command. | +| publishTasks | boolean | Define publishing tasks that can be executed manually as well as workflows. | +| releasableCommits | projen.ReleasableCommits | Find commits that should be considered releasable Used to decide if a release is required. | +| releaseBranches | {[ key: string ]: projen.release.BranchOptions} | Defines additional release branches. | +| releaseEveryCommit | boolean | Automatically release new versions every commit to one of branches in `releaseBranches`. | +| releaseFailureIssue | boolean | Create a github issue on every failed publishing task. | +| releaseFailureIssueLabel | string | The label to apply to issues indicating publish failures. | +| releaseSchedule | string | CRON schedule to trigger new releases. | +| releaseTagPrefix | string | Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers. | +| releaseTrigger | projen.release.ReleaseTrigger | The release trigger to use. | +| releaseWorkflowName | string | The name of the default release workflow. | +| releaseWorkflowSetupSteps | projen.github.workflows.JobStep[] | A set of workflow steps to execute in order to setup the workflow container. | +| versionrcOptions | {[ key: string ]: any} | Custom configuration used when creating changelog with standard-version package. | +| workflowContainerImage | string | Container image to use for GitHub workflows. | +| workflowRunsOn | string[] | Github Runner selection labels. | +| workflowRunsOnGroup | projen.GroupRunnerOptions | Github Runner Group selection options. | +| defaultReleaseBranch | string | The name of the main release branch. | +| artifactsDirectory | string | A directory which will contain build artifacts. | +| autoApproveUpgrades | boolean | Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). | +| buildWorkflow | boolean | Define a GitHub workflow for building PRs. | +| buildWorkflowTriggers | projen.github.workflows.Triggers | Build workflow triggers. | +| bundlerOptions | projen.javascript.BundlerOptions | Options for `Bundler`. | +| codeCov | boolean | 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`. | +| codeCovTokenSecret | string | Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. | +| copyrightOwner | string | License copyright owner. | +| copyrightPeriod | string | The copyright years to put in the LICENSE file. | +| dependabot | boolean | Use dependabot to handle dependency upgrades. | +| dependabotOptions | projen.github.DependabotOptions | Options for dependabot. | +| depsUpgrade | boolean | Use tasks and github workflows to handle dependency upgrades. | +| depsUpgradeOptions | projen.javascript.UpgradeDependenciesOptions | Options for `UpgradeDependencies`. | +| gitignore | string[] | Additional entries to .gitignore. | +| jest | boolean | Setup jest unit tests. | +| jestOptions | projen.javascript.JestOptions | Jest options. | +| mutableBuild | boolean | Automatically update files modified during builds to pull-request branches. | +| npmignore | string[] | Additional entries to .npmignore. | +| npmignoreEnabled | boolean | Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs. | +| npmIgnoreOptions | projen.IgnoreFileOptions | Configuration options for .npmignore file. | +| package | boolean | Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`). | +| prettier | boolean | Setup prettier. | +| prettierOptions | projen.javascript.PrettierOptions | Prettier options. | +| projenDevDependency | boolean | Indicates of "projen" should be installed as a devDependency. | +| projenrcJs | boolean | Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation. | +| projenrcJsOptions | projen.javascript.ProjenrcOptions | Options for .projenrc.js. | +| projenVersion | string | Version of projen to install. | +| pullRequestTemplate | boolean | Include a GitHub pull request template. | +| pullRequestTemplateContents | string[] | The contents of the pull request template. | +| release | boolean | Add release management to this project. | +| releaseToNpm | boolean | Automatically release to npm when new versions are introduced. | +| releaseWorkflow | boolean | DEPRECATED: renamed to `release`. | +| workflowBootstrapSteps | projen.github.workflows.JobStep[] | Workflow steps to use in order to bootstrap this repo. | +| workflowGitIdentity | projen.github.GitIdentity | The git identity to use in workflows. | +| workflowNodeVersion | string | The node version to use in GitHub workflows. | +| workflowPackageCache | boolean | Enable Node.js package cache in GitHub workflows. | +| disableTsconfig | boolean | Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler). | +| disableTsconfigDev | boolean | Do not generate a `tsconfig.dev.json` file. | +| docgen | boolean | Docgen by Typedoc. | +| docsDirectory | string | Docs directory. | +| entrypointTypes | string | The .d.ts file that includes the type declarations for this module. | +| eslint | boolean | Setup eslint. | +| eslintOptions | projen.javascript.EslintOptions | Eslint options. | +| libdir | string | Typescript artifacts output directory. | +| projenrcTs | boolean | Use TypeScript for your projenrc file (`.projenrc.ts`). | +| projenrcTsOptions | projen.typescript.ProjenrcOptions | Options for .projenrc.ts. | +| sampleCode | boolean | Generate one-time sample in `src/` and `test/` if there are no files there. | +| srcdir | string | Typescript sources directory. | +| testdir | string | Jest tests directory. Tests files should be named `xxx.test.ts`. | +| tsconfig | projen.javascript.TypescriptConfigOptions | Custom TSConfig. | +| tsconfigDev | projen.javascript.TypescriptConfigOptions | Custom tsconfig options for the development tsconfig.json file (used for testing). | +| tsconfigDevFile | string | The name of the development tsconfig.json file. | +| typescriptVersion | string | TypeScript version to use. | +| sendSlackWebhookOnRelease | boolean | Should we send a slack webhook on release (required for compliance audits). | +| sendSlackWebhookOnReleaseOpts | @time-loop/clickup-projen.slackAlert.ReleaseEventOptions | Slack alert on release options. | +| authorAddress | string | Email address for project author. | +| docgenOptions | @time-loop/clickup-projen.clickupTs.TypedocDocgenOptions | Additional options pertaining to the typedoc config file. | +| renovateOptionsConfig | @time-loop/clickup-projen.renovateWorkflow.RenovateOptionsConfig | *No description.* | --- -##### `cdkVersion`Required +##### `name`Required ```typescript -public readonly cdkVersion: string; +public readonly name: string; ``` - *Type:* string +- *Default:* $BASEDIR -The target CDK version for this library. - ---- - -##### ~~`version`~~Required - -- *Deprecated:* use `cdkVersion` - -```typescript -public readonly version: string; -``` - -- *Type:* string +This is the name of your project. --- -##### `datadogEvent`Required +##### `commitGenerated`Optional ```typescript -public readonly datadogEvent: boolean; +public readonly commitGenerated: boolean; ``` - *Type:* boolean +- *Default:* true ---- - -#### Constants - -| **Name** | **Type** | **Description** | -| --- | --- | --- | -| DEFAULT_TASK | string | The name of the default task (the task executed when `projen` is run without arguments). | +Whether to commit the managed files by default. --- -##### `DEFAULT_TASK`Required +##### `gitIgnoreOptions`Optional ```typescript -public readonly DEFAULT_TASK: string; +public readonly gitIgnoreOptions: IgnoreFileOptions; ``` -- *Type:* string - -The name of the default task (the task executed when `projen` is run without arguments). +- *Type:* projen.IgnoreFileOptions -Normally -this task should synthesize the project files. +Configuration options for .gitignore file. --- -### ClickUpCdkTypeScriptApp - -ClickUp standardized CDK TypeScript App. - -Includes: -- default author information -- default proprietary license -- default release build configuration -- default linting and codecov configuration -- default minNodeVersion: '14.17.0' -- default deps and devDeps (you can add your own, but the base will always be present) - -#### Initializers +##### `gitOptions`Optional ```typescript -import { clickupCdk } from '@time-loop/clickup-projen' - -new clickupCdk.ClickUpCdkTypeScriptApp(options: ClickUpCdkTypeScriptAppOptions) +public readonly gitOptions: GitOptions; ``` -| **Name** | **Type** | **Description** | -| --- | --- | --- | -| options | @time-loop/clickup-projen.clickupCdk.ClickUpCdkTypeScriptAppOptions | *No description.* | - ---- - -##### `options`Required - -- *Type:* @time-loop/clickup-projen.clickupCdk.ClickUpCdkTypeScriptAppOptions - ---- - -#### Methods +- *Type:* projen.GitOptions -| **Name** | **Description** | -| --- | --- | -| addExcludeFromCleanup | Exclude the matching files from pre-synth cleanup. | -| addGitIgnore | Adds a .gitignore pattern. | -| addPackageIgnore | Exclude these files from the bundled package. | -| addTask | Adds a new task to this project. | -| addTip | Prints a "tip" message during synthesis. | -| annotateGenerated | Marks the provided file(s) as being generated. | -| postSynthesize | Called after all components are synthesized. | -| preSynthesize | Called before all components are synthesized. | -| removeTask | Removes a task from a project. | -| runTaskCommand | Returns the shell command to execute in order to run a task. | -| synth | Synthesize all project files into `outdir`. | -| tryFindFile | Finds a file at the specified relative path within this project and all its subprojects. | -| tryFindJsonFile | Finds a json file by name. | -| tryFindObjectFile | Finds an object file (like JsonFile, YamlFile, etc.) by name. | -| tryRemoveFile | Finds a file at the specified relative path within this project and removes it. | -| addBins | *No description.* | -| addBundledDeps | Defines bundled dependencies. | -| addCompileCommand | DEPRECATED. | -| addDeps | Defines normal dependencies. | -| addDevDeps | Defines development/test dependencies. | -| addFields | Directly set fields in `package.json`. | -| addKeywords | Adds keywords to package.json (deduplicated). | -| addPeerDeps | Defines peer dependencies. | -| addScripts | Replaces the contents of multiple npm package.json scripts. | -| addTestCommand | DEPRECATED. | -| hasScript | Indicates if a script by the name name is defined. | -| removeScript | Removes the npm script (always successful). | -| renderWorkflowSetup | Returns the set of workflow steps which should be executed to bootstrap a workflow. | -| setScript | Replaces the contents of an npm package.json script. | -| addCdkDependency | Adds an AWS CDK module dependencies. | +Configuration options for git. --- -##### `addExcludeFromCleanup` +##### `logging`Optional ```typescript -public addExcludeFromCleanup(globs: string): void +public readonly logging: LoggerOptions; ``` -Exclude the matching files from pre-synth cleanup. - -Can be used when, for example, some -source files include the projen marker and we don't want them to be erased during synth. - -###### `globs`Required - -- *Type:* string +- *Type:* projen.LoggerOptions +- *Default:* {} -The glob patterns to match. +Configure logging options such as verbosity. --- -##### `addGitIgnore` +##### `outdir`Optional ```typescript -public addGitIgnore(pattern: string): void +public readonly outdir: string; ``` -Adds a .gitignore pattern. - -###### `pattern`Required - - *Type:* string +- *Default:* "." -The glob pattern to ignore. - ---- - -##### `addPackageIgnore` - -```typescript -public addPackageIgnore(pattern: string): void -``` - -Exclude these files from the bundled package. - -Implemented by project types based on the -packaging mechanism. For example, `NodeProject` delegates this to `.npmignore`. +The root directory of the project. -###### `pattern`Required +Relative to this directory, all files are synthesized. -- *Type:* string +If this project has a parent, this directory is relative to the parent +directory and it cannot be the same as the parent or any of it's other +subprojects. --- -##### `addTask` +##### `parent`Optional ```typescript -public addTask(name: string, props?: TaskOptions): Task +public readonly parent: Project; ``` -Adds a new task to this project. - -This will fail if the project already has -a task with this name. - -###### `name`Required - -- *Type:* string - -The task name to add. - ---- - -###### `props`Optional - -- *Type:* projen.TaskOptions +- *Type:* projen.Project -Task properties. +The parent project, if this project is part of a bigger project. --- -##### ~~`addTip`~~ +##### `projenCommand`Optional ```typescript -public addTip(message: string): void +public readonly projenCommand: string; ``` -Prints a "tip" message during synthesis. - -###### `message`Required - - *Type:* string +- *Default:* "npx projen" -The message. - ---- - -##### `annotateGenerated` - -```typescript -public annotateGenerated(glob: string): void -``` - -Marks the provided file(s) as being generated. - -This is achieved using the -github-linguist attributes. Generated files do not count against the -repository statistics and language breakdown. - -> [https://github.com/github/linguist/blob/master/docs/overrides.md](https://github.com/github/linguist/blob/master/docs/overrides.md) - -###### `glob`Required - -- *Type:* string +The shell command to use in order to run the projen CLI. -the glob pattern to match (could be a file path). +Can be used to customize in special environments. --- -##### `postSynthesize` +##### `projenrcJson`Optional ```typescript -public postSynthesize(): void +public readonly projenrcJson: boolean; ``` -Called after all components are synthesized. +- *Type:* boolean +- *Default:* false -Order is *not* guaranteed. +Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. -##### `preSynthesize` +--- + +##### `projenrcJsonOptions`Optional ```typescript -public preSynthesize(): void +public readonly projenrcJsonOptions: ProjenrcJsonOptions; ``` -Called before all components are synthesized. +- *Type:* projen.ProjenrcJsonOptions +- *Default:* default options -##### `removeTask` +Options for .projenrc.json. -```typescript -public removeTask(name: string): Task -``` +--- -Removes a task from a project. +##### `renovatebot`Optional -###### `name`Required +```typescript +public readonly renovatebot: boolean; +``` -- *Type:* string +- *Type:* boolean +- *Default:* false -The name of the task to remove. +Use renovatebot to handle dependency upgrades. --- -##### `runTaskCommand` +##### `renovatebotOptions`Optional ```typescript -public runTaskCommand(task: Task): string +public readonly renovatebotOptions: RenovatebotOptions; ``` -Returns the shell command to execute in order to run a task. - -This will -typically be `npx projen TASK`. - -###### `task`Required - -- *Type:* projen.Task +- *Type:* projen.RenovatebotOptions +- *Default:* default options -The task for which the command is required. +Options for renovatebot. --- -##### `synth` +##### `autoApproveOptions`Optional ```typescript -public synth(): void +public readonly autoApproveOptions: AutoApproveOptions; ``` -Synthesize all project files into `outdir`. +- *Type:* projen.github.AutoApproveOptions +- *Default:* auto approve is disabled -1. Call "this.preSynthesize()" -2. Delete all generated files -3. Synthesize all sub-projects -4. Synthesize all components of this project -5. Call "postSynthesize()" for all components of this project -6. Call "this.postSynthesize()" +Enable and configure the 'auto approve' workflow. -##### `tryFindFile` +--- + +##### `autoMerge`Optional ```typescript -public tryFindFile(filePath: string): FileBase +public readonly autoMerge: boolean; ``` -Finds a file at the specified relative path within this project and all its subprojects. - -###### `filePath`Required - -- *Type:* string +- *Type:* boolean +- *Default:* true -The file path. +Enable automatic merging on GitHub. -If this path is relative, it will be resolved -from the root of _this_ project. +Has no effect if `github.mergify` +is set to false. --- -##### ~~`tryFindJsonFile`~~ +##### `autoMergeOptions`Optional ```typescript -public tryFindJsonFile(filePath: string): JsonFile +public readonly autoMergeOptions: AutoMergeOptions; ``` -Finds a json file by name. - -###### `filePath`Required +- *Type:* projen.github.AutoMergeOptions +- *Default:* see defaults in `AutoMergeOptions` -- *Type:* string +Configure options for automatic merging on GitHub. -The file path. +Has no effect if +`github.mergify` or `autoMerge` is set to false. --- -##### `tryFindObjectFile` +##### `clobber`Optional ```typescript -public tryFindObjectFile(filePath: string): ObjectFile +public readonly clobber: boolean; ``` -Finds an object file (like JsonFile, YamlFile, etc.) by name. - -###### `filePath`Required - -- *Type:* string +- *Type:* boolean +- *Default:* true, but false for subprojects -The file path. +Add a `clobber` task which resets the repo to origin. --- -##### `tryRemoveFile` +##### `devContainer`Optional ```typescript -public tryRemoveFile(filePath: string): FileBase +public readonly devContainer: boolean; ``` -Finds a file at the specified relative path within this project and removes it. +- *Type:* boolean +- *Default:* false -###### `filePath`Required +Add a VSCode development environment (used for GitHub Codespaces). -- *Type:* string +--- -The file path. +##### `github`Optional -If this path is relative, it will be -resolved from the root of _this_ project. +```typescript +public readonly github: boolean; +``` + +- *Type:* boolean +- *Default:* true + +Enable GitHub integration. + +Enabled by default for root projects. Disabled for non-root projects. --- -##### `addBins` +##### `githubOptions`Optional ```typescript -public addBins(bins: {[ key: string ]: string}): void +public readonly githubOptions: GitHubOptions; ``` -###### `bins`Required +- *Type:* projen.github.GitHubOptions +- *Default:* see GitHubOptions -- *Type:* {[ key: string ]: string} +Options for GitHub integration. --- -##### `addBundledDeps` +##### `gitpod`Optional ```typescript -public addBundledDeps(deps: string): void +public readonly gitpod: boolean; ``` -Defines bundled dependencies. +- *Type:* boolean +- *Default:* false -Bundled dependencies will be added as normal dependencies as well as to the -`bundledDependencies` section of your `package.json`. +Add a Gitpod development environment. -###### `deps`Required +--- -- *Type:* string +##### ~~`mergify`~~Optional -Names modules to install. +- *Deprecated:* use `githubOptions.mergify` instead -By default, the the dependency will -be installed in the next `npx projen` run and the version will be recorded -in your `package.json` file. You can upgrade manually or using `yarn -add/upgrade`. If you wish to specify a version range use this syntax: -`module@^7`. +```typescript +public readonly mergify: boolean; +``` + +- *Type:* boolean +- *Default:* true + +Whether mergify should be enabled on this repository or not. --- -##### ~~`addCompileCommand`~~ +##### ~~`mergifyOptions`~~Optional + +- *Deprecated:* use `githubOptions.mergifyOptions` instead ```typescript -public addCompileCommand(commands: string): void +public readonly mergifyOptions: MergifyOptions; ``` -DEPRECATED. - -###### `commands`Required +- *Type:* projen.github.MergifyOptions +- *Default:* default options -- *Type:* string +Options for mergify. --- -##### `addDeps` +##### ~~`projectType`~~Optional + +- *Deprecated:* no longer supported at the base project level ```typescript -public addDeps(deps: string): void +public readonly projectType: ProjectType; ``` -Defines normal dependencies. +- *Type:* projen.ProjectType +- *Default:* ProjectType.UNKNOWN -###### `deps`Required +Which type of project this is (library/app). -- *Type:* string +--- -Names modules to install. +##### `projenCredentials`Optional -By default, the the dependency will -be installed in the next `npx projen` run and the version will be recorded -in your `package.json` file. You can upgrade manually or using `yarn -add/upgrade`. If you wish to specify a version range use this syntax: -`module@^7`. +```typescript +public readonly projenCredentials: GithubCredentials; +``` + +- *Type:* projen.github.GithubCredentials +- *Default:* use a personal access token named PROJEN_GITHUB_TOKEN + +Choose a method of providing GitHub API access for projen workflows. --- -##### `addDevDeps` +##### ~~`projenTokenSecret`~~Optional + +- *Deprecated:* use `projenCredentials` ```typescript -public addDevDeps(deps: string): void +public readonly projenTokenSecret: string; ``` -Defines development/test dependencies. - -###### `deps`Required - - *Type:* string +- *Default:* "PROJEN_GITHUB_TOKEN" -Names modules to install. +The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. -By default, the the dependency will -be installed in the next `npx projen` run and the version will be recorded -in your `package.json` file. You can upgrade manually or using `yarn -add/upgrade`. If you wish to specify a version range use this syntax: -`module@^7`. +This token needs to have the `repo`, `workflows` +and `packages` scope. --- -##### `addFields` +##### `readme`Optional ```typescript -public addFields(fields: {[ key: string ]: any}): void +public readonly readme: SampleReadmeProps; ``` -Directly set fields in `package.json`. +- *Type:* projen.SampleReadmeProps +- *Default:* { filename: 'README.md', contents: '# replace this' } -###### `fields`Required +The README setup. -- *Type:* {[ key: string ]: any} +--- -The fields to set. +*Example* ---- +```typescript +"{ filename: 'readme.md', contents: '# title' }" +``` -##### `addKeywords` + +##### `stale`Optional ```typescript -public addKeywords(keywords: string): void +public readonly stale: boolean; ``` -Adds keywords to package.json (deduplicated). - -###### `keywords`Required +- *Type:* boolean +- *Default:* false -- *Type:* string +Auto-close of stale issues and pull request. -The keywords to add. +See `staleOptions` for options. --- -##### `addPeerDeps` +##### `staleOptions`Optional ```typescript -public addPeerDeps(deps: string): void +public readonly staleOptions: StaleOptions; ``` -Defines peer dependencies. - -When adding peer dependencies, a devDependency will also be added on the -pinned version of the declared peer. This will ensure that you are testing -your code against the minimum version required from your consumers. - -###### `deps`Required - -- *Type:* string +- *Type:* projen.github.StaleOptions +- *Default:* see defaults in `StaleOptions` -Names modules to install. +Auto-close stale issues and pull requests. -By default, the the dependency will -be installed in the next `npx projen` run and the version will be recorded -in your `package.json` file. You can upgrade manually or using `yarn -add/upgrade`. If you wish to specify a version range use this syntax: -`module@^7`. +To disable set `stale` to `false`. --- -##### `addScripts` +##### `vscode`Optional ```typescript -public addScripts(scripts: {[ key: string ]: string}): void +public readonly vscode: boolean; ``` -Replaces the contents of multiple npm package.json scripts. - -###### `scripts`Required +- *Type:* boolean +- *Default:* true -- *Type:* {[ key: string ]: string} +Enable VSCode integration. -The scripts to set. +Enabled by default for root projects. Disabled for non-root projects. --- -##### ~~`addTestCommand`~~ +##### `allowLibraryDependencies`Optional ```typescript -public addTestCommand(commands: string): void +public readonly allowLibraryDependencies: boolean; ``` -DEPRECATED. +- *Type:* boolean +- *Default:* true -###### `commands`Required +Allow the project to include `peerDependencies` and `bundledDependencies`. -- *Type:* string +This is normally only allowed for libraries. For apps, there's no meaning +for specifying these. --- -##### ~~`hasScript`~~ +##### `authorEmail`Optional ```typescript -public hasScript(name: string): boolean +public readonly authorEmail: string; ``` -Indicates if a script by the name name is defined. - -###### `name`Required - - *Type:* string -The name of the script. +Author's e-mail. --- -##### `removeScript` +##### `authorName`Optional ```typescript -public removeScript(name: string): void +public readonly authorName: string; ``` -Removes the npm script (always successful). - -###### `name`Required - - *Type:* string -The name of the script. +Author's name. --- -##### `renderWorkflowSetup` +##### `authorOrganization`Optional ```typescript -public renderWorkflowSetup(options?: RenderWorkflowSetupOptions): JobStep[] +public readonly authorOrganization: boolean; ``` -Returns the set of workflow steps which should be executed to bootstrap a workflow. - -###### `options`Optional - -- *Type:* projen.javascript.RenderWorkflowSetupOptions +- *Type:* boolean -Options. +Is the author an organization. --- -##### `setScript` +##### `authorUrl`Optional ```typescript -public setScript(name: string, command: string): void +public readonly authorUrl: string; ``` -Replaces the contents of an npm package.json script. - -###### `name`Required - - *Type:* string -The script name. +Author's URL / Website. --- -###### `command`Required +##### `autoDetectBin`Optional -- *Type:* string +```typescript +public readonly autoDetectBin: boolean; +``` -The command to execute. +- *Type:* boolean +- *Default:* true + +Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section. --- -##### `addCdkDependency` +##### `bin`Optional ```typescript -public addCdkDependency(modules: string): void +public readonly bin: {[ key: string ]: string}; ``` -Adds an AWS CDK module dependencies. - -###### `modules`Required +- *Type:* {[ key: string ]: string} -- *Type:* string +Binary programs vended with your module. -The list of modules to depend on. +You can use this option to add/customize how binaries are represented in +your `package.json`, but unless `autoDetectBin` is `false`, every +executable file under `bin` will automatically be added to this section. --- +##### `bugsEmail`Optional -#### Properties +```typescript +public readonly bugsEmail: string; +``` -| **Name** | **Type** | **Description** | -| --- | --- | --- | -| buildTask | projen.Task | *No description.* | -| commitGenerated | boolean | Whether to commit the managed files by default. | -| compileTask | projen.Task | *No description.* | -| components | projen.Component[] | Returns all the components within this project. | -| deps | projen.Dependencies | Project dependencies. | -| ejected | boolean | Whether or not the project is being ejected. | -| files | projen.FileBase[] | All files in this project. | -| gitattributes | projen.GitAttributesFile | The .gitattributes file for this repository. | -| gitignore | projen.IgnoreFile | .gitignore. | -| logger | projen.Logger | Logging utilities. | -| name | string | Project name. | -| outdir | string | Absolute output directory of this project. | -| packageTask | projen.Task | *No description.* | -| postCompileTask | projen.Task | *No description.* | -| preCompileTask | projen.Task | *No description.* | -| projectBuild | projen.ProjectBuild | Manages the build process of the project. | -| projenCommand | string | The command to use in order to run the projen CLI. | -| root | projen.Project | The root project. | -| subprojects | projen.Project[] | Returns all the subprojects within this project. | -| tasks | projen.Tasks | Project tasks. | -| testTask | projen.Task | *No description.* | -| defaultTask | projen.Task | This is the "default" task, the one that executes "projen". | -| initProject | projen.InitProject | The options used when this project is bootstrapped via `projen new`. | -| parent | projen.Project | A parent project. | -| projectType | projen.ProjectType | *No description.* | -| autoApprove | projen.github.AutoApprove | Auto approve set up for this project. | -| devContainer | projen.vscode.DevContainer | Access for .devcontainer.json (used for GitHub Codespaces). | -| github | projen.github.GitHub | Access all github components. | -| gitpod | projen.Gitpod | Access for Gitpod. | -| vscode | projen.vscode.VsCode | Access all VSCode components. | -| allowLibraryDependencies | boolean | *No description.* | -| artifactsDirectory | string | The build output directory. | -| artifactsJavascriptDirectory | string | The location of the npm tarball after build (`${artifactsDirectory}/js`). | -| bundler | projen.javascript.Bundler | *No description.* | -| entrypoint | string | *No description.* | -| manifest | any | *No description.* | -| npmrc | projen.javascript.NpmConfig | The .npmrc file. | -| package | projen.javascript.NodePackage | API for managing the node package. | -| packageManager | projen.javascript.NodePackageManager | The package manager to use. | -| runScriptCommand | string | The command to use to run scripts (e.g. `yarn run` or `npm run` depends on the package manager). | -| autoMerge | projen.github.AutoMerge | Component that sets up mergify for merging approved pull requests. | -| buildWorkflow | projen.build.BuildWorkflow | The PR build GitHub workflow. | -| buildWorkflowJobId | string | The job ID of the build workflow. | -| jest | projen.javascript.Jest | The Jest configuration (if enabled). | -| maxNodeVersion | string | Maximum node version required by this package. | -| minNodeVersion | string | Minimum node.js version required by this package. | -| npmignore | projen.IgnoreFile | The .npmignore file. | -| prettier | projen.javascript.Prettier | *No description.* | -| publisher | projen.release.Publisher | Package publisher. | -| release | projen.release.Release | Release management. | -| upgradeWorkflow | projen.javascript.UpgradeDependencies | The upgrade workflow. | -| docsDirectory | string | *No description.* | -| libdir | string | The directory in which compiled .js files reside. | -| srcdir | string | The directory in which the .ts sources reside. | -| testdir | string | The directory in which tests reside. | -| tsconfigDev | projen.javascript.TypescriptConfig | A typescript configuration file which covers all files (sources, tests, projen). | -| watchTask | projen.Task | The "watch" task. | -| docgen | boolean | *No description.* | -| eslint | projen.javascript.Eslint | *No description.* | -| tsconfig | projen.javascript.TypescriptConfig | *No description.* | -| tsconfigEslint | projen.javascript.TypescriptConfig | *No description.* | -| appEntrypoint | string | The CDK app entrypoint. | -| cdkConfig | projen.awscdk.CdkConfig | cdk.json configuration. | -| cdkDeps | projen.awscdk.AwsCdkDeps | *No description.* | -| cdkTasks | projen.awscdk.CdkTasks | Common CDK tasks. | -| cdkVersion | string | The CDK version this app is using. | -| datadogEvent | boolean | *No description.* | -| workflowNodeVersion | string | *No description.* | +- *Type:* string + +The email address to which issues should be reported. --- -##### `buildTask`Required +##### `bugsUrl`Optional ```typescript -public readonly buildTask: Task; +public readonly bugsUrl: string; ``` -- *Type:* projen.Task +- *Type:* string + +The url to your project's issue tracker. --- -##### `commitGenerated`Required +##### `bundledDeps`Optional ```typescript -public readonly commitGenerated: boolean; +public readonly bundledDeps: string[]; ``` -- *Type:* boolean +- *Type:* string[] -Whether to commit the managed files by default. +List of dependencies to bundle into this module. + +These modules will be +added both to the `dependencies` section and `bundledDependencies` section of +your `package.json`. + +The recommendation is to only specify the module name here (e.g. +`express`). This will behave similar to `yarn add` or `npm install` in the +sense that it will add the module as a dependency to your `package.json` +file with the latest version (`^`). You can specify semver requirements in +the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and +this will be what you `package.json` will eventually include. --- -##### `compileTask`Required +##### `codeArtifactOptions`Optional ```typescript -public readonly compileTask: Task; +public readonly codeArtifactOptions: CodeArtifactOptions; ``` -- *Type:* projen.Task +- *Type:* projen.javascript.CodeArtifactOptions +- *Default:* undefined + +Options for npm packages using AWS CodeArtifact. + +This is required if publishing packages to, or installing scoped packages from AWS CodeArtifact --- -##### `components`Required +##### `deps`Optional ```typescript -public readonly components: Component[]; +public readonly deps: string[]; ``` -- *Type:* projen.Component[] +- *Type:* string[] +- *Default:* [] -Returns all the components within this project. +Runtime dependencies of this module. + +The recommendation is to only specify the module name here (e.g. +`express`). This will behave similar to `yarn add` or `npm install` in the +sense that it will add the module as a dependency to your `package.json` +file with the latest version (`^`). You can specify semver requirements in +the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and +this will be what you `package.json` will eventually include. --- -##### `deps`Required +*Example* ```typescript -public readonly deps: Dependencies; +[ 'express', 'lodash', 'foo@^2' ] ``` -- *Type:* projen.Dependencies - -Project dependencies. - ---- -##### `ejected`Required +##### `description`Optional ```typescript -public readonly ejected: boolean; +public readonly description: string; ``` -- *Type:* boolean +- *Type:* string -Whether or not the project is being ejected. +The description is just a string that helps people understand the purpose of the package. + +It can be used when searching for packages in a package manager as well. +See https://classic.yarnpkg.com/en/docs/package-json/#toc-description --- -##### `files`Required +##### `devDeps`Optional ```typescript -public readonly files: FileBase[]; +public readonly devDeps: string[]; ``` -- *Type:* projen.FileBase[] +- *Type:* string[] +- *Default:* [] -All files in this project. +Build dependencies for this module. + +These dependencies will only be +available in your build environment but will not be fetched when this +module is consumed. + +The recommendation is to only specify the module name here (e.g. +`express`). This will behave similar to `yarn add` or `npm install` in the +sense that it will add the module as a dependency to your `package.json` +file with the latest version (`^`). You can specify semver requirements in +the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and +this will be what you `package.json` will eventually include. --- -##### `gitattributes`Required +*Example* ```typescript -public readonly gitattributes: GitAttributesFile; +[ 'typescript', '@types/express' ] ``` -- *Type:* projen.GitAttributesFile - -The .gitattributes file for this repository. - ---- -##### `gitignore`Required +##### `entrypoint`Optional ```typescript -public readonly gitignore: IgnoreFile; +public readonly entrypoint: string; ``` -- *Type:* projen.IgnoreFile +- *Type:* string +- *Default:* "lib/index.js" -.gitignore. +Module entrypoint (`main` in `package.json`). + +Set to an empty string to not include `main` in your package.json --- -##### `logger`Required +##### `homepage`Optional ```typescript -public readonly logger: Logger; +public readonly homepage: string; ``` -- *Type:* projen.Logger +- *Type:* string -Logging utilities. +Package's Homepage / Website. --- -##### `name`Required +##### `keywords`Optional ```typescript -public readonly name: string; +public readonly keywords: string[]; ``` -- *Type:* string +- *Type:* string[] -Project name. +Keywords to include in `package.json`. --- -##### `outdir`Required +##### `license`Optional ```typescript -public readonly outdir: string; +public readonly license: string; ``` - *Type:* string +- *Default:* "Apache-2.0" -Absolute output directory of this project. +License's SPDX identifier. + +See https://github.com/projen/projen/tree/main/license-text for a list of supported licenses. +Use the `licensed` option if you want to no license to be specified. --- -##### `packageTask`Required +##### `licensed`Optional ```typescript -public readonly packageTask: Task; +public readonly licensed: boolean; ``` -- *Type:* projen.Task +- *Type:* boolean +- *Default:* true + +Indicates if a license should be added. --- -##### `postCompileTask`Required +##### `maxNodeVersion`Optional ```typescript -public readonly postCompileTask: Task; +public readonly maxNodeVersion: string; ``` -- *Type:* projen.Task +- *Type:* string +- *Default:* no max + +Minimum node.js version to require via `engines` (inclusive). --- -##### `preCompileTask`Required +##### `minNodeVersion`Optional ```typescript -public readonly preCompileTask: Task; +public readonly minNodeVersion: string; ``` -- *Type:* projen.Task +- *Type:* string +- *Default:* no "engines" specified + +Minimum Node.js version to require via package.json `engines` (inclusive). --- -##### `projectBuild`Required +##### `npmAccess`Optional ```typescript -public readonly projectBuild: ProjectBuild; +public readonly npmAccess: NpmAccess; ``` -- *Type:* projen.ProjectBuild +- *Type:* projen.javascript.NpmAccess +- *Default:* for scoped packages (e.g. `foo@bar`), the default is `NpmAccess.RESTRICTED`, for non-scoped packages, the default is `NpmAccess.PUBLIC`. -Manages the build process of the project. +Access level of the npm package. --- -##### `projenCommand`Required +##### ~~`npmRegistry`~~Optional + +- *Deprecated:* use `npmRegistryUrl` instead ```typescript -public readonly projenCommand: string; +public readonly npmRegistry: string; ``` - *Type:* string -The command to use in order to run the projen CLI. +The host name of the npm registry to publish to. + +Cannot be set together with `npmRegistryUrl`. --- -##### `root`Required +##### `npmRegistryUrl`Optional ```typescript -public readonly root: Project; +public readonly npmRegistryUrl: string; ``` -- *Type:* projen.Project +- *Type:* string +- *Default:* "https://registry.npmjs.org" -The root project. +The base URL of the npm package registry. + +Must be a URL (e.g. start with "https://" or "http://") --- -##### `subprojects`Required +##### `npmTokenSecret`Optional ```typescript -public readonly subprojects: Project[]; +public readonly npmTokenSecret: string; ``` -- *Type:* projen.Project[] +- *Type:* string +- *Default:* "NPM_TOKEN" -Returns all the subprojects within this project. +GitHub secret which contains the NPM token to use when publishing packages. --- -##### `tasks`Required +##### `packageManager`Optional ```typescript -public readonly tasks: Tasks; +public readonly packageManager: NodePackageManager; ``` -- *Type:* projen.Tasks +- *Type:* projen.javascript.NodePackageManager +- *Default:* NodePackageManager.YARN_CLASSIC -Project tasks. +The Node Package Manager used to execute scripts. --- -##### `testTask`Required +##### `packageName`Optional ```typescript -public readonly testTask: Task; +public readonly packageName: string; ``` -- *Type:* projen.Task +- *Type:* string +- *Default:* defaults to project name + +The "name" in package.json. --- -##### `defaultTask`Optional +##### `peerDependencyOptions`Optional ```typescript -public readonly defaultTask: Task; +public readonly peerDependencyOptions: PeerDependencyOptions; ``` -- *Type:* projen.Task - -This is the "default" task, the one that executes "projen". +- *Type:* projen.javascript.PeerDependencyOptions -Undefined if -the project is being ejected. +Options for `peerDeps`. --- -##### `initProject`Optional +##### `peerDeps`Optional ```typescript -public readonly initProject: InitProject; +public readonly peerDeps: string[]; ``` -- *Type:* projen.InitProject - -The options used when this project is bootstrapped via `projen new`. - -It -includes the original set of options passed to the CLI and also the JSII -FQN of the project type. - ---- - -##### `parent`Optional +- *Type:* string[] +- *Default:* [] -```typescript -public readonly parent: Project; -``` +Peer dependencies for this module. -- *Type:* projen.Project +Dependencies listed here are required to +be installed (and satisfied) by the _consumer_ of this library. Using peer +dependencies allows you to ensure that only a single module of a certain +library exists in the `node_modules` tree of your consumers. -A parent project. +Note that prior to npm@7, peer dependencies are _not_ automatically +installed, which means that adding peer dependencies to a library will be a +breaking change for your customers. -If undefined, this is the root project. +Unless `peerDependencyOptions.pinnedDevDependency` is disabled (it is +enabled by default), projen will automatically add a dev dependency with a +pinned version for each peer dependency. This will ensure that you build & +test your module against the lowest peer version required. --- -##### `projectType`Required +##### `pnpmVersion`Optional ```typescript -public readonly projectType: ProjectType; +public readonly pnpmVersion: string; ``` -- *Type:* projen.ProjectType +- *Type:* string +- *Default:* "7" + +The version of PNPM to use if using PNPM as a package manager. --- -##### `autoApprove`Optional +##### `repository`Optional ```typescript -public readonly autoApprove: AutoApprove; +public readonly repository: string; ``` -- *Type:* projen.github.AutoApprove +- *Type:* string -Auto approve set up for this project. +The repository is the location where the actual code for your package lives. + +See https://classic.yarnpkg.com/en/docs/package-json/#toc-repository --- -##### `devContainer`Optional +##### `repositoryDirectory`Optional ```typescript -public readonly devContainer: DevContainer; +public readonly repositoryDirectory: string; ``` -- *Type:* projen.vscode.DevContainer - -Access for .devcontainer.json (used for GitHub Codespaces). +- *Type:* string -This will be `undefined` if devContainer boolean is false +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. --- -##### `github`Optional +##### `scopedPackagesOptions`Optional ```typescript -public readonly github: GitHub; +public readonly scopedPackagesOptions: ScopedPackagesOptions[]; ``` -- *Type:* projen.github.GitHub - -Access all github components. +- *Type:* projen.javascript.ScopedPackagesOptions[] +- *Default:* fetch all scoped packages from the public npm registry -This will be `undefined` for subprojects. +Options for privately hosted scoped packages. --- -##### `gitpod`Optional +##### ~~`scripts`~~Optional + +- *Deprecated:* use `project.addTask()` or `package.setScript()` ```typescript -public readonly gitpod: Gitpod; +public readonly scripts: {[ key: string ]: string}; ``` -- *Type:* projen.Gitpod +- *Type:* {[ key: string ]: string} +- *Default:* {} -Access for Gitpod. +npm scripts to include. -This will be `undefined` if gitpod boolean is false +If a script has the same name as a standard script, +the standard script will be overwritten. +Also adds the script as a task. --- -##### `vscode`Optional +##### `stability`Optional ```typescript -public readonly vscode: VsCode; +public readonly stability: string; ``` -- *Type:* projen.vscode.VsCode - -Access all VSCode components. +- *Type:* string -This will be `undefined` for subprojects. +Package's Stability. --- -##### ~~`allowLibraryDependencies`~~Required - -- *Deprecated:* use `package.allowLibraryDependencies` +##### `yarnBerryOptions`Optional ```typescript -public readonly allowLibraryDependencies: boolean; +public readonly yarnBerryOptions: YarnBerryOptions; ``` -- *Type:* boolean +- *Type:* projen.javascript.YarnBerryOptions +- *Default:* Yarn Berry v4 with all default options + +Options for Yarn Berry. --- -##### `artifactsDirectory`Required +##### `jsiiReleaseVersion`Optional ```typescript -public readonly artifactsDirectory: string; +public readonly jsiiReleaseVersion: string; ``` - *Type:* string +- *Default:* "latest" -The build output directory. - -An npm tarball will be created under the `js` -subdirectory. For example, if this is set to `dist` (the default), the npm -tarball will be placed under `dist/js/boom-boom-1.2.3.tg`. +Version requirement of `publib` which is used to publish modules to npm. --- -##### `artifactsJavascriptDirectory`Required +##### `majorVersion`Optional ```typescript -public readonly artifactsJavascriptDirectory: string; +public readonly majorVersion: number; ``` -- *Type:* string +- *Type:* number +- *Default:* Major version is not enforced. -The location of the npm tarball after build (`${artifactsDirectory}/js`). +Major version to release from the default branch. + +If this is specified, we bump the latest version of this major version line. +If not specified, we bump the global latest version. --- -##### `bundler`Required +##### `minMajorVersion`Optional ```typescript -public readonly bundler: Bundler; +public readonly minMajorVersion: number; ``` -- *Type:* projen.javascript.Bundler - ---- - -##### ~~`entrypoint`~~Required +- *Type:* number +- *Default:* No minimum version is being enforced -- *Deprecated:* use `package.entrypoint` +Minimal Major version to release. -```typescript -public readonly entrypoint: string; -``` +This can be useful to set to 1, as breaking changes before the 1.x major +release are not incrementing the major version number. -- *Type:* string +Can not be set together with `majorVersion`. --- -##### ~~`manifest`~~Required - -- *Deprecated:* use `package.addField(x, y)` +##### `npmDistTag`Optional ```typescript -public readonly manifest: any; +public readonly npmDistTag: string; ``` -- *Type:* any +- *Type:* string +- *Default:* "latest" + +The npmDistTag to use when publishing from the default branch. + +To set the npm dist-tag for release branches, set the `npmDistTag` property +for each branch. --- -##### `npmrc`Required +##### `postBuildSteps`Optional ```typescript -public readonly npmrc: NpmConfig; +public readonly postBuildSteps: JobStep[]; ``` -- *Type:* projen.javascript.NpmConfig +- *Type:* projen.github.workflows.JobStep[] +- *Default:* [] -The .npmrc file. +Steps to execute after build as part of the release workflow. --- -##### `package`Required +##### `prerelease`Optional ```typescript -public readonly package: NodePackage; +public readonly prerelease: string; ``` -- *Type:* projen.javascript.NodePackage +- *Type:* string +- *Default:* normal semantic versions -API for managing the node package. +Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). --- -##### ~~`packageManager`~~Required - -- *Deprecated:* use `package.packageManager` +##### `publishDryRun`Optional ```typescript -public readonly packageManager: NodePackageManager; +public readonly publishDryRun: boolean; ``` -- *Type:* projen.javascript.NodePackageManager +- *Type:* boolean +- *Default:* false -The package manager to use. +Instead of actually publishing to package managers, just print the publishing command. --- -##### `runScriptCommand`Required +##### `publishTasks`Optional ```typescript -public readonly runScriptCommand: string; +public readonly publishTasks: boolean; ``` -- *Type:* string +- *Type:* boolean +- *Default:* false -The command to use to run scripts (e.g. `yarn run` or `npm run` depends on the package manager). +Define publishing tasks that can be executed manually as well as workflows. + +Normally, publishing only happens within automated workflows. Enable this +in order to create a publishing task for each publishing activity. --- -##### `autoMerge`Optional +##### `releasableCommits`Optional ```typescript -public readonly autoMerge: AutoMerge; +public readonly releasableCommits: ReleasableCommits; ``` -- *Type:* projen.github.AutoMerge +- *Type:* projen.ReleasableCommits +- *Default:* ReleasableCommits.everyCommit() -Component that sets up mergify for merging approved pull requests. +Find commits that should be considered releasable Used to decide if a release is required. --- -##### `buildWorkflow`Optional +##### `releaseBranches`Optional ```typescript -public readonly buildWorkflow: BuildWorkflow; +public readonly releaseBranches: {[ key: string ]: BranchOptions}; ``` -- *Type:* projen.build.BuildWorkflow +- *Type:* {[ key: string ]: projen.release.BranchOptions} +- *Default:* no additional branches are used for release. you can use `addBranch()` to add additional branches. -The PR build GitHub workflow. +Defines additional release branches. -`undefined` if `buildWorkflow` is disabled. +A workflow will be created for each +release branch which will publish releases from commits in this branch. +Each release branch _must_ be assigned a major version number which is used +to enforce that versions published from that branch always use that major +version. If multiple branches are used, the `majorVersion` field must also +be provided for the default branch. --- -##### `buildWorkflowJobId`Optional +##### ~~`releaseEveryCommit`~~Optional + +- *Deprecated:* Use `releaseTrigger: ReleaseTrigger.continuous()` instead ```typescript -public readonly buildWorkflowJobId: string; +public readonly releaseEveryCommit: boolean; ``` -- *Type:* string +- *Type:* boolean +- *Default:* true -The job ID of the build workflow. +Automatically release new versions every commit to one of branches in `releaseBranches`. --- -##### `jest`Optional +##### `releaseFailureIssue`Optional ```typescript -public readonly jest: Jest; +public readonly releaseFailureIssue: boolean; ``` -- *Type:* projen.javascript.Jest +- *Type:* boolean +- *Default:* false -The Jest configuration (if enabled). +Create a github issue on every failed publishing task. --- -##### `maxNodeVersion`Optional +##### `releaseFailureIssueLabel`Optional ```typescript -public readonly maxNodeVersion: string; +public readonly releaseFailureIssueLabel: string; ``` - *Type:* string +- *Default:* "failed-release" -Maximum node version required by this package. +The label to apply to issues indicating publish failures. + +Only applies if `releaseFailureIssue` is true. --- -##### `minNodeVersion`Optional +##### ~~`releaseSchedule`~~Optional + +- *Deprecated:* Use `releaseTrigger: ReleaseTrigger.scheduled()` instead ```typescript -public readonly minNodeVersion: string; +public readonly releaseSchedule: string; ``` - *Type:* string +- *Default:* no scheduled releases -Minimum node.js version required by this package. +CRON schedule to trigger new releases. --- -##### `npmignore`Optional +##### `releaseTagPrefix`Optional ```typescript -public readonly npmignore: IgnoreFile; +public readonly releaseTagPrefix: string; ``` -- *Type:* projen.IgnoreFile +- *Type:* string +- *Default:* "v" -The .npmignore file. +Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers. + +Note: this prefix is used to detect the latest tagged version +when bumping, so if you change this on a project with an existing version +history, you may need to manually tag your latest release +with the new prefix. --- -##### `prettier`Optional +##### `releaseTrigger`Optional ```typescript -public readonly prettier: Prettier; +public readonly releaseTrigger: ReleaseTrigger; ``` -- *Type:* projen.javascript.Prettier +- *Type:* projen.release.ReleaseTrigger +- *Default:* Continuous releases (`ReleaseTrigger.continuous()`) ---- +The release trigger to use. -##### ~~`publisher`~~Optional +--- -- *Deprecated:* use `release.publisher`. +##### `releaseWorkflowName`Optional ```typescript -public readonly publisher: Publisher; +public readonly releaseWorkflowName: string; ``` -- *Type:* projen.release.Publisher - -Package publisher. +- *Type:* string +- *Default:* "Release" -This will be `undefined` if the project does not have a -release workflow. +The name of the default release workflow. --- -##### `release`Optional +##### `releaseWorkflowSetupSteps`Optional ```typescript -public readonly release: Release; +public readonly releaseWorkflowSetupSteps: JobStep[]; ``` -- *Type:* projen.release.Release +- *Type:* projen.github.workflows.JobStep[] -Release management. +A set of workflow steps to execute in order to setup the workflow container. --- -##### `upgradeWorkflow`Optional +##### `versionrcOptions`Optional ```typescript -public readonly upgradeWorkflow: UpgradeDependencies; +public readonly versionrcOptions: {[ key: string ]: any}; ``` -- *Type:* projen.javascript.UpgradeDependencies +- *Type:* {[ key: string ]: any} +- *Default:* standard configuration applicable for GitHub repositories -The upgrade workflow. +Custom configuration used when creating changelog with standard-version package. + +Given values either append to default configuration or overwrite values in it. --- -##### `docsDirectory`Required +##### `workflowContainerImage`Optional ```typescript -public readonly docsDirectory: string; +public readonly workflowContainerImage: string; ``` -- *Type:* string +- *Type:* string +- *Default:* default image + +Container image to use for GitHub workflows. --- -##### `libdir`Required +##### `workflowRunsOn`Optional ```typescript -public readonly libdir: string; +public readonly workflowRunsOn: string[]; ``` -- *Type:* string +- *Type:* string[] +- *Default:* ["ubuntu-latest"] -The directory in which compiled .js files reside. +Github Runner selection labels. --- -##### `srcdir`Required +##### `workflowRunsOnGroup`Optional ```typescript -public readonly srcdir: string; +public readonly workflowRunsOnGroup: GroupRunnerOptions; ``` -- *Type:* string +- *Type:* projen.GroupRunnerOptions -The directory in which the .ts sources reside. +Github Runner Group selection options. --- -##### `testdir`Required +##### `defaultReleaseBranch`Required ```typescript -public readonly testdir: string; +public readonly defaultReleaseBranch: string; ``` - *Type:* string +- *Default:* "main" -The directory in which tests reside. +The name of the main release branch. --- -##### `tsconfigDev`Required +##### `artifactsDirectory`Optional ```typescript -public readonly tsconfigDev: TypescriptConfig; +public readonly artifactsDirectory: string; ``` -- *Type:* projen.javascript.TypescriptConfig +- *Type:* string +- *Default:* "dist" -A typescript configuration file which covers all files (sources, tests, projen). +A directory which will contain build artifacts. --- -##### `watchTask`Required +##### `autoApproveUpgrades`Optional ```typescript -public readonly watchTask: Task; +public readonly autoApproveUpgrades: boolean; ``` -- *Type:* projen.Task +- *Type:* boolean +- *Default:* true -The "watch" task. +Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). + +Throw if set to true but `autoApproveOptions` are not defined. --- -##### `docgen`Optional +##### `buildWorkflow`Optional ```typescript -public readonly docgen: boolean; +public readonly buildWorkflow: boolean; ``` - *Type:* boolean +- *Default:* true if not a subproject + +Define a GitHub workflow for building PRs. --- -##### `eslint`Optional +##### `buildWorkflowTriggers`Optional ```typescript -public readonly eslint: Eslint; +public readonly buildWorkflowTriggers: Triggers; ``` -- *Type:* projen.javascript.Eslint +- *Type:* projen.github.workflows.Triggers +- *Default:* "{ pullRequest: {}, workflowDispatch: {} }" + +Build workflow triggers. --- -##### `tsconfig`Optional +##### `bundlerOptions`Optional ```typescript -public readonly tsconfig: TypescriptConfig; +public readonly bundlerOptions: BundlerOptions; ``` -- *Type:* projen.javascript.TypescriptConfig +- *Type:* projen.javascript.BundlerOptions + +Options for `Bundler`. --- -##### `tsconfigEslint`Optional +##### `codeCov`Optional ```typescript -public readonly tsconfigEslint: TypescriptConfig; +public readonly codeCov: boolean; ``` -- *Type:* projen.javascript.TypescriptConfig +- *Type:* boolean +- *Default:* false + +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`. --- -##### `appEntrypoint`Required +##### `codeCovTokenSecret`Optional ```typescript -public readonly appEntrypoint: string; +public readonly codeCovTokenSecret: string; ``` - *Type:* string +- *Default:* if this option is not specified, only public repositories are supported -The CDK app entrypoint. +Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. --- -##### `cdkConfig`Required +##### `copyrightOwner`Optional ```typescript -public readonly cdkConfig: CdkConfig; +public readonly copyrightOwner: string; ``` -- *Type:* projen.awscdk.CdkConfig +- *Type:* string +- *Default:* defaults to the value of authorName or "" if `authorName` is undefined. -cdk.json configuration. +License copyright owner. --- -##### `cdkDeps`Required +##### `copyrightPeriod`Optional ```typescript -public readonly cdkDeps: AwsCdkDeps; +public readonly copyrightPeriod: string; ``` -- *Type:* projen.awscdk.AwsCdkDeps +- *Type:* string +- *Default:* current year + +The copyright years to put in the LICENSE file. --- -##### `cdkTasks`Required +##### `dependabot`Optional ```typescript -public readonly cdkTasks: CdkTasks; +public readonly dependabot: boolean; ``` -- *Type:* projen.awscdk.CdkTasks +- *Type:* boolean +- *Default:* false -Common CDK tasks. +Use dependabot to handle dependency upgrades. + +Cannot be used in conjunction with `depsUpgrade`. --- -##### `cdkVersion`Required +##### `dependabotOptions`Optional ```typescript -public readonly cdkVersion: string; +public readonly dependabotOptions: DependabotOptions; ``` -- *Type:* string +- *Type:* projen.github.DependabotOptions +- *Default:* default options -The CDK version this app is using. +Options for dependabot. --- -##### `datadogEvent`Required +##### `depsUpgrade`Optional ```typescript -public readonly datadogEvent: boolean; +public readonly depsUpgrade: boolean; ``` - *Type:* boolean +- *Default:* true + +Use tasks and github workflows to handle dependency upgrades. + +Cannot be used in conjunction with `dependabot`. --- -##### `workflowNodeVersion`Optional +##### `depsUpgradeOptions`Optional ```typescript -public readonly workflowNodeVersion: string; +public readonly depsUpgradeOptions: UpgradeDependenciesOptions; ``` -- *Type:* string - ---- - -#### Constants +- *Type:* projen.javascript.UpgradeDependenciesOptions +- *Default:* default options -| **Name** | **Type** | **Description** | -| --- | --- | --- | -| DEFAULT_TASK | string | The name of the default task (the task executed when `projen` is run without arguments). | +Options for `UpgradeDependencies`. --- -##### `DEFAULT_TASK`Required +##### `gitignore`Optional ```typescript -public readonly DEFAULT_TASK: string; +public readonly gitignore: string[]; ``` -- *Type:* string - -The name of the default task (the task executed when `projen` is run without arguments). +- *Type:* string[] -Normally -this task should synthesize the project files. +Additional entries to .gitignore. --- -### ClickUpTypeScriptProject +##### `jest`Optional -ClickUp standardized TypeScript Project. +```typescript +public readonly jest: boolean; +``` -Includes: -- default author information -- default proprietary license -- default release build configuration -- default linting and codecov configuration -- default minNodeVersion: '14.17.0' -- default devDeps (you can add your own, but the base will always be present) +- *Type:* boolean +- *Default:* true -Note that for GitHub Packages to work, the package has to be scoped into the `@time-loop` project. -We handle that automatically. +Setup jest unit tests. -#### Initializers +--- -```typescript -import { clickupTs } from '@time-loop/clickup-projen' +##### `jestOptions`Optional -new clickupTs.ClickUpTypeScriptProject(options: ClickUpTypeScriptProjectOptions) +```typescript +public readonly jestOptions: JestOptions; ``` -| **Name** | **Type** | **Description** | -| --- | --- | --- | -| options | @time-loop/clickup-projen.clickupTs.ClickUpTypeScriptProjectOptions | *No description.* | +- *Type:* projen.javascript.JestOptions +- *Default:* default options + +Jest options. --- -##### `options`Required +##### `mutableBuild`Optional -- *Type:* @time-loop/clickup-projen.clickupTs.ClickUpTypeScriptProjectOptions +```typescript +public readonly mutableBuild: boolean; +``` ---- +- *Type:* boolean +- *Default:* true -#### Methods +Automatically update files modified during builds to pull-request branches. -| **Name** | **Description** | -| --- | --- | -| addExcludeFromCleanup | Exclude the matching files from pre-synth cleanup. | -| addGitIgnore | Adds a .gitignore pattern. | -| addPackageIgnore | Exclude these files from the bundled package. | -| addTask | Adds a new task to this project. | -| addTip | Prints a "tip" message during synthesis. | -| annotateGenerated | Marks the provided file(s) as being generated. | -| postSynthesize | Called after all components are synthesized. | -| preSynthesize | Called before all components are synthesized. | -| removeTask | Removes a task from a project. | -| runTaskCommand | Returns the shell command to execute in order to run a task. | -| synth | Synthesize all project files into `outdir`. | -| tryFindFile | Finds a file at the specified relative path within this project and all its subprojects. | -| tryFindJsonFile | Finds a json file by name. | -| tryFindObjectFile | Finds an object file (like JsonFile, YamlFile, etc.) by name. | -| tryRemoveFile | Finds a file at the specified relative path within this project and removes it. | -| addBins | *No description.* | -| addBundledDeps | Defines bundled dependencies. | -| addCompileCommand | DEPRECATED. | -| addDeps | Defines normal dependencies. | -| addDevDeps | Defines development/test dependencies. | -| addFields | Directly set fields in `package.json`. | -| addKeywords | Adds keywords to package.json (deduplicated). | -| addPeerDeps | Defines peer dependencies. | -| addScripts | Replaces the contents of multiple npm package.json scripts. | -| addTestCommand | DEPRECATED. | -| hasScript | Indicates if a script by the name name is defined. | -| removeScript | Removes the npm script (always successful). | -| renderWorkflowSetup | Returns the set of workflow steps which should be executed to bootstrap a workflow. | -| setScript | Replaces the contents of an npm package.json script. | +This means +that any files synthesized by projen or e.g. test snapshots will always be up-to-date +before a PR is merged. + +Implies that PR builds do not have anti-tamper checks. --- -##### `addExcludeFromCleanup` +##### ~~`npmignore`~~Optional + +- *Deprecated:* - use `project.addPackageIgnore` ```typescript -public addExcludeFromCleanup(globs: string): void +public readonly npmignore: string[]; ``` -Exclude the matching files from pre-synth cleanup. - -Can be used when, for example, some -source files include the projen marker and we don't want them to be erased during synth. - -###### `globs`Required - -- *Type:* string +- *Type:* string[] -The glob patterns to match. +Additional entries to .npmignore. --- -##### `addGitIgnore` +##### `npmignoreEnabled`Optional ```typescript -public addGitIgnore(pattern: string): void +public readonly npmignoreEnabled: boolean; ``` -Adds a .gitignore pattern. - -###### `pattern`Required - -- *Type:* string +- *Type:* boolean +- *Default:* true -The glob pattern to ignore. +Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs. --- -##### `addPackageIgnore` +##### `npmIgnoreOptions`Optional ```typescript -public addPackageIgnore(pattern: string): void +public readonly npmIgnoreOptions: IgnoreFileOptions; ``` -Exclude these files from the bundled package. - -Implemented by project types based on the -packaging mechanism. For example, `NodeProject` delegates this to `.npmignore`. - -###### `pattern`Required +- *Type:* projen.IgnoreFileOptions -- *Type:* string +Configuration options for .npmignore file. --- -##### `addTask` +##### `package`Optional ```typescript -public addTask(name: string, props?: TaskOptions): Task +public readonly package: boolean; ``` -Adds a new task to this project. - -This will fail if the project already has -a task with this name. - -###### `name`Required - -- *Type:* string +- *Type:* boolean +- *Default:* true -The task name to add. +Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`). --- -###### `props`Optional +##### `prettier`Optional -- *Type:* projen.TaskOptions +```typescript +public readonly prettier: boolean; +``` -Task properties. +- *Type:* boolean +- *Default:* false + +Setup prettier. --- -##### ~~`addTip`~~ +##### `prettierOptions`Optional ```typescript -public addTip(message: string): void +public readonly prettierOptions: PrettierOptions; ``` -Prints a "tip" message during synthesis. - -###### `message`Required - -- *Type:* string +- *Type:* projen.javascript.PrettierOptions +- *Default:* default options -The message. +Prettier options. --- -##### `annotateGenerated` +##### `projenDevDependency`Optional ```typescript -public annotateGenerated(glob: string): void +public readonly projenDevDependency: boolean; ``` -Marks the provided file(s) as being generated. - -This is achieved using the -github-linguist attributes. Generated files do not count against the -repository statistics and language breakdown. - -> [https://github.com/github/linguist/blob/master/docs/overrides.md](https://github.com/github/linguist/blob/master/docs/overrides.md) - -###### `glob`Required - -- *Type:* string +- *Type:* boolean +- *Default:* true -the glob pattern to match (could be a file path). +Indicates of "projen" should be installed as a devDependency. --- -##### `postSynthesize` +##### `projenrcJs`Optional ```typescript -public postSynthesize(): void +public readonly projenrcJs: boolean; ``` -Called after all components are synthesized. +- *Type:* boolean +- *Default:* true if projenrcJson is false -Order is *not* guaranteed. +Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation. -##### `preSynthesize` +--- + +##### `projenrcJsOptions`Optional ```typescript -public preSynthesize(): void +public readonly projenrcJsOptions: ProjenrcOptions; ``` -Called before all components are synthesized. +- *Type:* projen.javascript.ProjenrcOptions +- *Default:* default options -##### `removeTask` +Options for .projenrc.js. -```typescript -public removeTask(name: string): Task -``` +--- -Removes a task from a project. +##### `projenVersion`Optional -###### `name`Required +```typescript +public readonly projenVersion: string; +``` - *Type:* string +- *Default:* Defaults to the latest version. -The name of the task to remove. +Version of projen to install. --- -##### `runTaskCommand` +##### `pullRequestTemplate`Optional ```typescript -public runTaskCommand(task: Task): string +public readonly pullRequestTemplate: boolean; ``` -Returns the shell command to execute in order to run a task. +- *Type:* boolean +- *Default:* true -This will -typically be `npx projen TASK`. +Include a GitHub pull request template. -###### `task`Required +--- -- *Type:* projen.Task +##### `pullRequestTemplateContents`Optional -The task for which the command is required. +```typescript +public readonly pullRequestTemplateContents: string[]; +``` + +- *Type:* string[] +- *Default:* default content + +The contents of the pull request template. --- -##### `synth` +##### `release`Optional ```typescript -public synth(): void +public readonly release: boolean; ``` -Synthesize all project files into `outdir`. +- *Type:* boolean +- *Default:* true (false for subprojects) -1. Call "this.preSynthesize()" -2. Delete all generated files -3. Synthesize all sub-projects -4. Synthesize all components of this project -5. Call "postSynthesize()" for all components of this project -6. Call "this.postSynthesize()" +Add release management to this project. -##### `tryFindFile` +--- + +##### `releaseToNpm`Optional ```typescript -public tryFindFile(filePath: string): FileBase +public readonly releaseToNpm: boolean; ``` -Finds a file at the specified relative path within this project and all its subprojects. +- *Type:* boolean +- *Default:* false -###### `filePath`Required +Automatically release to npm when new versions are introduced. -- *Type:* string +--- -The file path. +##### ~~`releaseWorkflow`~~Optional -If this path is relative, it will be resolved -from the root of _this_ project. +- *Deprecated:* see `release`. + +```typescript +public readonly releaseWorkflow: boolean; +``` + +- *Type:* boolean +- *Default:* true if not a subproject + +DEPRECATED: renamed to `release`. --- -##### ~~`tryFindJsonFile`~~ +##### `workflowBootstrapSteps`Optional ```typescript -public tryFindJsonFile(filePath: string): JsonFile +public readonly workflowBootstrapSteps: JobStep[]; ``` -Finds a json file by name. - -###### `filePath`Required - -- *Type:* string +- *Type:* projen.github.workflows.JobStep[] +- *Default:* "yarn install --frozen-lockfile && yarn projen" -The file path. +Workflow steps to use in order to bootstrap this repo. --- -##### `tryFindObjectFile` +##### `workflowGitIdentity`Optional ```typescript -public tryFindObjectFile(filePath: string): ObjectFile +public readonly workflowGitIdentity: GitIdentity; ``` -Finds an object file (like JsonFile, YamlFile, etc.) by name. - -###### `filePath`Required - -- *Type:* string +- *Type:* projen.github.GitIdentity +- *Default:* GitHub Actions -The file path. +The git identity to use in workflows. --- -##### `tryRemoveFile` +##### `workflowNodeVersion`Optional ```typescript -public tryRemoveFile(filePath: string): FileBase +public readonly workflowNodeVersion: string; ``` -Finds a file at the specified relative path within this project and removes it. - -###### `filePath`Required - - *Type:* string +- *Default:* same as `minNodeVersion` -The file path. - -If this path is relative, it will be -resolved from the root of _this_ project. +The node version to use in GitHub workflows. --- -##### `addBins` +##### `workflowPackageCache`Optional ```typescript -public addBins(bins: {[ key: string ]: string}): void +public readonly workflowPackageCache: boolean; ``` -###### `bins`Required +- *Type:* boolean +- *Default:* false -- *Type:* {[ key: string ]: string} +Enable Node.js package cache in GitHub workflows. --- -##### `addBundledDeps` +##### `disableTsconfig`Optional ```typescript -public addBundledDeps(deps: string): void +public readonly disableTsconfig: boolean; ``` -Defines bundled dependencies. +- *Type:* boolean +- *Default:* false -Bundled dependencies will be added as normal dependencies as well as to the -`bundledDependencies` section of your `package.json`. +Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler). -###### `deps`Required +--- -- *Type:* string +##### `disableTsconfigDev`Optional -Names modules to install. +```typescript +public readonly disableTsconfigDev: boolean; +``` -By default, the the dependency will -be installed in the next `npx projen` run and the version will be recorded -in your `package.json` file. You can upgrade manually or using `yarn -add/upgrade`. If you wish to specify a version range use this syntax: -`module@^7`. +- *Type:* boolean +- *Default:* false + +Do not generate a `tsconfig.dev.json` file. --- -##### ~~`addCompileCommand`~~ +##### `docgen`Optional ```typescript -public addCompileCommand(commands: string): void +public readonly docgen: boolean; ``` -DEPRECATED. - -###### `commands`Required +- *Type:* boolean +- *Default:* false -- *Type:* string +Docgen by Typedoc. --- -##### `addDeps` +##### `docsDirectory`Optional ```typescript -public addDeps(deps: string): void +public readonly docsDirectory: string; ``` -Defines normal dependencies. - -###### `deps`Required - - *Type:* string +- *Default:* "docs" -Names modules to install. - -By default, the the dependency will -be installed in the next `npx projen` run and the version will be recorded -in your `package.json` file. You can upgrade manually or using `yarn -add/upgrade`. If you wish to specify a version range use this syntax: -`module@^7`. +Docs directory. --- -##### `addDevDeps` +##### `entrypointTypes`Optional ```typescript -public addDevDeps(deps: string): void +public readonly entrypointTypes: string; ``` -Defines development/test dependencies. - -###### `deps`Required - - *Type:* string +- *Default:* .d.ts file derived from the project's entrypoint (usually lib/index.d.ts) -Names modules to install. - -By default, the the dependency will -be installed in the next `npx projen` run and the version will be recorded -in your `package.json` file. You can upgrade manually or using `yarn -add/upgrade`. If you wish to specify a version range use this syntax: -`module@^7`. +The .d.ts file that includes the type declarations for this module. --- -##### `addFields` +##### `eslint`Optional ```typescript -public addFields(fields: {[ key: string ]: any}): void +public readonly eslint: boolean; ``` -Directly set fields in `package.json`. - -###### `fields`Required - -- *Type:* {[ key: string ]: any} +- *Type:* boolean +- *Default:* true -The fields to set. +Setup eslint. --- -##### `addKeywords` +##### `eslintOptions`Optional ```typescript -public addKeywords(keywords: string): void +public readonly eslintOptions: EslintOptions; ``` -Adds keywords to package.json (deduplicated). - -###### `keywords`Required - -- *Type:* string +- *Type:* projen.javascript.EslintOptions +- *Default:* opinionated default options -The keywords to add. +Eslint options. --- -##### `addPeerDeps` +##### `libdir`Optional ```typescript -public addPeerDeps(deps: string): void +public readonly libdir: string; ``` -Defines peer dependencies. +- *Type:* string +- *Default:* "lib" -When adding peer dependencies, a devDependency will also be added on the -pinned version of the declared peer. This will ensure that you are testing -your code against the minimum version required from your consumers. +Typescript artifacts output directory. -###### `deps`Required +--- -- *Type:* string +##### `projenrcTs`Optional -Names modules to install. +```typescript +public readonly projenrcTs: boolean; +``` -By default, the the dependency will -be installed in the next `npx projen` run and the version will be recorded -in your `package.json` file. You can upgrade manually or using `yarn -add/upgrade`. If you wish to specify a version range use this syntax: -`module@^7`. +- *Type:* boolean +- *Default:* false + +Use TypeScript for your projenrc file (`.projenrc.ts`). --- -##### `addScripts` +##### `projenrcTsOptions`Optional ```typescript -public addScripts(scripts: {[ key: string ]: string}): void +public readonly projenrcTsOptions: ProjenrcOptions; ``` -Replaces the contents of multiple npm package.json scripts. - -###### `scripts`Required - -- *Type:* {[ key: string ]: string} +- *Type:* projen.typescript.ProjenrcOptions -The scripts to set. +Options for .projenrc.ts. --- -##### ~~`addTestCommand`~~ +##### `sampleCode`Optional ```typescript -public addTestCommand(commands: string): void +public readonly sampleCode: boolean; ``` -DEPRECATED. - -###### `commands`Required +- *Type:* boolean +- *Default:* true -- *Type:* string +Generate one-time sample in `src/` and `test/` if there are no files there. --- -##### ~~`hasScript`~~ +##### `srcdir`Optional ```typescript -public hasScript(name: string): boolean +public readonly srcdir: string; ``` -Indicates if a script by the name name is defined. - -###### `name`Required - - *Type:* string +- *Default:* "src" -The name of the script. +Typescript sources directory. --- -##### `removeScript` +##### `testdir`Optional ```typescript -public removeScript(name: string): void +public readonly testdir: string; ``` -Removes the npm script (always successful). - -###### `name`Required - - *Type:* string +- *Default:* "test" -The name of the script. +Jest tests directory. Tests files should be named `xxx.test.ts`. + +If this directory is under `srcdir` (e.g. `src/test`, `src/__tests__`), +then tests are going to be compiled into `lib/` and executed as javascript. +If the test directory is outside of `src`, then we configure jest to +compile the code in-memory. --- -##### `renderWorkflowSetup` +##### `tsconfig`Optional ```typescript -public renderWorkflowSetup(options?: RenderWorkflowSetupOptions): JobStep[] +public readonly tsconfig: TypescriptConfigOptions; ``` -Returns the set of workflow steps which should be executed to bootstrap a workflow. - -###### `options`Optional - -- *Type:* projen.javascript.RenderWorkflowSetupOptions +- *Type:* projen.javascript.TypescriptConfigOptions +- *Default:* default options -Options. +Custom TSConfig. --- -##### `setScript` +##### `tsconfigDev`Optional ```typescript -public setScript(name: string, command: string): void +public readonly tsconfigDev: TypescriptConfigOptions; ``` -Replaces the contents of an npm package.json script. - -###### `name`Required - -- *Type:* string +- *Type:* projen.javascript.TypescriptConfigOptions +- *Default:* use the production tsconfig options -The script name. +Custom tsconfig options for the development tsconfig.json file (used for testing). --- -###### `command`Required +##### `tsconfigDevFile`Optional + +```typescript +public readonly tsconfigDevFile: string; +``` - *Type:* string +- *Default:* "tsconfig.dev.json" -The command to execute. +The name of the development tsconfig.json file. --- +##### `typescriptVersion`Optional -#### Properties +```typescript +public readonly typescriptVersion: string; +``` -| **Name** | **Type** | **Description** | -| --- | --- | --- | -| buildTask | projen.Task | *No description.* | -| commitGenerated | boolean | Whether to commit the managed files by default. | -| compileTask | projen.Task | *No description.* | -| components | projen.Component[] | Returns all the components within this project. | -| deps | projen.Dependencies | Project dependencies. | -| ejected | boolean | Whether or not the project is being ejected. | -| files | projen.FileBase[] | All files in this project. | -| gitattributes | projen.GitAttributesFile | The .gitattributes file for this repository. | -| gitignore | projen.IgnoreFile | .gitignore. | -| logger | projen.Logger | Logging utilities. | -| name | string | Project name. | -| outdir | string | Absolute output directory of this project. | -| packageTask | projen.Task | *No description.* | -| postCompileTask | projen.Task | *No description.* | -| preCompileTask | projen.Task | *No description.* | -| projectBuild | projen.ProjectBuild | Manages the build process of the project. | -| projenCommand | string | The command to use in order to run the projen CLI. | -| root | projen.Project | The root project. | -| subprojects | projen.Project[] | Returns all the subprojects within this project. | -| tasks | projen.Tasks | Project tasks. | -| testTask | projen.Task | *No description.* | -| defaultTask | projen.Task | This is the "default" task, the one that executes "projen". | -| initProject | projen.InitProject | The options used when this project is bootstrapped via `projen new`. | -| parent | projen.Project | A parent project. | -| projectType | projen.ProjectType | *No description.* | -| autoApprove | projen.github.AutoApprove | Auto approve set up for this project. | -| devContainer | projen.vscode.DevContainer | Access for .devcontainer.json (used for GitHub Codespaces). | -| github | projen.github.GitHub | Access all github components. | -| gitpod | projen.Gitpod | Access for Gitpod. | -| vscode | projen.vscode.VsCode | Access all VSCode components. | -| allowLibraryDependencies | boolean | *No description.* | -| artifactsDirectory | string | The build output directory. | -| artifactsJavascriptDirectory | string | The location of the npm tarball after build (`${artifactsDirectory}/js`). | -| bundler | projen.javascript.Bundler | *No description.* | -| entrypoint | string | *No description.* | -| manifest | any | *No description.* | -| npmrc | projen.javascript.NpmConfig | The .npmrc file. | -| package | projen.javascript.NodePackage | API for managing the node package. | -| packageManager | projen.javascript.NodePackageManager | The package manager to use. | -| runScriptCommand | string | The command to use to run scripts (e.g. `yarn run` or `npm run` depends on the package manager). | -| autoMerge | projen.github.AutoMerge | Component that sets up mergify for merging approved pull requests. | -| buildWorkflow | projen.build.BuildWorkflow | The PR build GitHub workflow. | -| buildWorkflowJobId | string | The job ID of the build workflow. | -| jest | projen.javascript.Jest | The Jest configuration (if enabled). | -| maxNodeVersion | string | Maximum node version required by this package. | -| minNodeVersion | string | Minimum node.js version required by this package. | -| npmignore | projen.IgnoreFile | The .npmignore file. | -| prettier | projen.javascript.Prettier | *No description.* | -| publisher | projen.release.Publisher | Package publisher. | -| release | projen.release.Release | Release management. | -| upgradeWorkflow | projen.javascript.UpgradeDependencies | The upgrade workflow. | -| docsDirectory | string | *No description.* | -| libdir | string | The directory in which compiled .js files reside. | -| srcdir | string | The directory in which the .ts sources reside. | -| testdir | string | The directory in which tests reside. | -| tsconfigDev | projen.javascript.TypescriptConfig | A typescript configuration file which covers all files (sources, tests, projen). | -| watchTask | projen.Task | The "watch" task. | -| docgen | boolean | *No description.* | -| eslint | projen.javascript.Eslint | *No description.* | -| tsconfig | projen.javascript.TypescriptConfig | *No description.* | -| tsconfigEslint | projen.javascript.TypescriptConfig | *No description.* | +- *Type:* string +- *Default:* "latest" + +TypeScript version to use. + +NOTE: Typescript is not semantically versioned and should remain on the +same minor, so we recommend using a `~` dependency (e.g. `~1.2.3`). --- -##### `buildTask`Required +##### `sendSlackWebhookOnRelease`Optional ```typescript -public readonly buildTask: Task; +public readonly sendSlackWebhookOnRelease: boolean; ``` -- *Type:* projen.Task +- *Type:* boolean +- *Default:* true + +Should we send a slack webhook on release (required for compliance audits). --- -##### `commitGenerated`Required +##### `sendSlackWebhookOnReleaseOpts`Optional ```typescript -public readonly commitGenerated: boolean; +public readonly sendSlackWebhookOnReleaseOpts: ReleaseEventOptions; ``` -- *Type:* boolean +- *Type:* @time-loop/clickup-projen.slackAlert.ReleaseEventOptions -Whether to commit the managed files by default. +Slack alert on release options. + +Only valid when `sendSlackWebhookOnRelease` is true. --- -##### `compileTask`Required +##### `authorAddress`Optional ```typescript -public readonly compileTask: Task; +public readonly authorAddress: string; ``` -- *Type:* projen.Task +- *Type:* string + +Email address for project author. --- -##### `components`Required +##### `docgenOptions`Optional ```typescript -public readonly components: Component[]; +public readonly docgenOptions: TypedocDocgenOptions; ``` -- *Type:* projen.Component[] +- *Type:* @time-loop/clickup-projen.clickupTs.TypedocDocgenOptions -Returns all the components within this project. +Additional options pertaining to the typedoc config file. + +NOTE: `docgen` attribute cannot be false. --- -##### `deps`Required +##### `renovateOptionsConfig`Optional ```typescript -public readonly deps: Dependencies; +public readonly renovateOptionsConfig: RenovateOptionsConfig; ``` -- *Type:* projen.Dependencies +- *Type:* @time-loop/clickup-projen.renovateWorkflow.RenovateOptionsConfig -Project dependencies. +--- + +### ContactInfo + +#### Initializer + +```typescript +import { datadogServiceCatalog } from '@time-loop/clickup-projen' + +const contactInfo: datadogServiceCatalog.ContactInfo = { ... } +``` + +#### Properties + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| contact | string | The actual contact information for the contact. | +| name | string | The name of the contact. | +| type | @time-loop/clickup-projen.datadogServiceCatalog.ContactType | The type of the contact. | --- -##### `ejected`Required +##### `contact`Required ```typescript -public readonly ejected: boolean; +public readonly contact: string; ``` -- *Type:* boolean +- *Type:* string -Whether or not the project is being ejected. +The actual contact information for the contact. + +For example, if the type is email, this would be the email address. --- -##### `files`Required +##### `name`Required ```typescript -public readonly files: FileBase[]; +public readonly name: string; ``` -- *Type:* projen.FileBase[] +- *Type:* string -All files in this project. +The name of the contact. --- -##### `gitattributes`Required +##### `type`Required ```typescript -public readonly gitattributes: GitAttributesFile; +public readonly type: ContactType; ``` -- *Type:* projen.GitAttributesFile +- *Type:* @time-loop/clickup-projen.datadogServiceCatalog.ContactType -The .gitattributes file for this repository. +The type of the contact. + +Acceptable values are: email, slack, and microsoft-teams --- -##### `gitignore`Required +### EnvToDiff + +#### Initializer ```typescript -public readonly gitignore: IgnoreFile; +import { cdkDiffWorkflow } from '@time-loop/clickup-projen' + +const envToDiff: cdkDiffWorkflow.EnvToDiff = { ... } ``` -- *Type:* projen.IgnoreFile +#### Properties -.gitignore. +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| labelToApplyWhenNoDiffPresent | string | Label that will be applied to the PR when there are no changes in the diff Example: `no-qa-changes`. | +| name | string | Unique name for the cdk diff action. | +| oidcRoleArn | string | Name of the OIDC role name which contains neccesasry IAM policies to run the CDK diff. | +| stackSearchString | string | String to search for stacks to diff Example: `Qa`, 'Staging', 'Prod'. | --- -##### `logger`Required +##### `labelToApplyWhenNoDiffPresent`Required ```typescript -public readonly logger: Logger; +public readonly labelToApplyWhenNoDiffPresent: string; ``` -- *Type:* projen.Logger +- *Type:* string -Logging utilities. +Label that will be applied to the PR when there are no changes in the diff Example: `no-qa-changes`. --- -##### `name`Required +##### `name`Required ```typescript public readonly name: string; @@ -12630,640 +12801,830 @@ public readonly name: string; - *Type:* string -Project name. +Unique name for the cdk diff action. + +This will be used to create the output file name, header on comments, and more +Example: `qa`, `staging`, `prod` --- -##### `outdir`Required +##### `oidcRoleArn`Required ```typescript -public readonly outdir: string; +public readonly oidcRoleArn: string; ``` - *Type:* string -Absolute output directory of this project. +Name of the OIDC role name which contains neccesasry IAM policies to run the CDK diff. + +Example arn: `arn:aws:iam::123123123123:role/squad-github-actions-permissions-squad-cdk-github-actions-role` --- -##### `packageTask`Required +##### `stackSearchString`Required ```typescript -public readonly packageTask: Task; +public readonly stackSearchString: string; ``` -- *Type:* projen.Task +- *Type:* string + +String to search for stacks to diff Example: `Qa`, 'Staging', 'Prod'. --- -##### `postCompileTask`Required +### ExplicitStacksEnvToDiff + +#### Initializer ```typescript -public readonly postCompileTask: Task; +import { cdkDiffWorkflow } from '@time-loop/clickup-projen' + +const explicitStacksEnvToDiff: cdkDiffWorkflow.ExplicitStacksEnvToDiff = { ... } ``` -- *Type:* projen.Task +#### Properties + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| labelToApplyWhenNoDiffPresent | string | Label that will be applied to the PR when there are no changes in the diff Example: `no-qa-changes`. | +| name | string | Unique name for the cdk diff action. | +| oidcRoleArn | string | Name of the OIDC role name which contains neccesasry IAM policies to run the CDK diff. | +| stacks | string[] | Explicit stacks given instead of using stackSearchString to find stacks via cdk ls Example: `['stack1', 'stack2']`. | --- -##### `preCompileTask`Required +##### `labelToApplyWhenNoDiffPresent`Required ```typescript -public readonly preCompileTask: Task; +public readonly labelToApplyWhenNoDiffPresent: string; ``` -- *Type:* projen.Task +- *Type:* string + +Label that will be applied to the PR when there are no changes in the diff Example: `no-qa-changes`. --- -##### `projectBuild`Required +##### `name`Required ```typescript -public readonly projectBuild: ProjectBuild; +public readonly name: string; ``` -- *Type:* projen.ProjectBuild +- *Type:* string -Manages the build process of the project. +Unique name for the cdk diff action. + +This will be used to create the output file name, header on comments, and more +Example: `qa`, `staging`, `prod` --- -##### `projenCommand`Required +##### `oidcRoleArn`Required ```typescript -public readonly projenCommand: string; +public readonly oidcRoleArn: string; ``` - *Type:* string -The command to use in order to run the projen CLI. +Name of the OIDC role name which contains neccesasry IAM policies to run the CDK diff. + +Example arn: `arn:aws:iam::123123123123:role/squad-github-actions-permissions-squad-cdk-github-actions-role` --- -##### `root`Required +##### `stacks`Required ```typescript -public readonly root: Project; +public readonly stacks: string[]; ``` -- *Type:* projen.Project +- *Type:* string[] -The root project. +Explicit stacks given instead of using stackSearchString to find stacks via cdk ls Example: `['stack1', 'stack2']`. --- -##### `subprojects`Required +### InjectionOptions + +#### Initializer ```typescript -public readonly subprojects: Project[]; +import { cdkContextJson } from '@time-loop/clickup-projen' + +const injectionOptions: cdkContextJson.InjectionOptions = { ... } ``` -- *Type:* projen.Project[] +#### Properties -Returns all the subprojects within this project. +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| lookupAccountId | string | The account number where the role the GH actions will assume lives. | +| awsRegion | string | Which region should GH Auth into? | +| roleDurationSeconds | number | How long should the requested role be valid. | + +--- + +##### `lookupAccountId`Required + +```typescript +public readonly lookupAccountId: string; +``` + +- *Type:* string + +The account number where the role the GH actions will assume lives. + +This is usually the same account running cdk-pipelines, +but can be any account which has been configured with + +```ts +cdk bootstrap --trust-for-lookup $this_account_number ... +``` + +--- + +##### `awsRegion`Optional + +```typescript +public readonly awsRegion: string; +``` + +- *Type:* string +- *Default:* 'us-west-2' + +Which region should GH Auth into? + +--- + +##### `roleDurationSeconds`Optional + +```typescript +public readonly roleDurationSeconds: number; +``` + +- *Type:* number +- *Default:* 900 15min seems pretty generous. + +How long should the requested role be valid. --- -##### `tasks`Required +### LinkInfo + +#### Initializer ```typescript -public readonly tasks: Tasks; +import { datadogServiceCatalog } from '@time-loop/clickup-projen' + +const linkInfo: datadogServiceCatalog.LinkInfo = { ... } ``` -- *Type:* projen.Tasks +#### Properties -Project tasks. +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| name | string | The name of the link. | +| type | @time-loop/clickup-projen.datadogServiceCatalog.LinkType | The type for the link. | +| url | string | The URL of the link. | --- -##### `testTask`Required +##### `name`Required ```typescript -public readonly testTask: Task; +public readonly name: string; ``` -- *Type:* projen.Task +- *Type:* string + +The name of the link. --- -##### `defaultTask`Optional +##### `type`Required ```typescript -public readonly defaultTask: Task; +public readonly type: LinkType; ``` -- *Type:* projen.Task +- *Type:* @time-loop/clickup-projen.datadogServiceCatalog.LinkType -This is the "default" task, the one that executes "projen". +The type for the link. -Undefined if -the project is being ejected. +Acceptable values are: 'doc', 'runbook', 'repo', 'dashboard', and 'other' --- -##### `initProject`Optional +##### `url`Required ```typescript -public readonly initProject: InitProject; +public readonly url: string; ``` -- *Type:* projen.InitProject - -The options used when this project is bootstrapped via `projen new`. +- *Type:* string -It -includes the original set of options passed to the CLI and also the JSII -FQN of the project type. +The URL of the link. --- -##### `parent`Optional +### OptionalNodeVersion + +#### Initializer ```typescript -public readonly parent: Project; -``` +import { OptionalNodeVersion } from '@time-loop/clickup-projen' -- *Type:* projen.Project +const optionalNodeVersion: OptionalNodeVersion = { ... } +``` -A parent project. +#### Properties -If undefined, this is the root project. +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| nodeVersion | string | Specify a nodeVersion. | --- -##### `projectType`Required +##### `nodeVersion`Optional ```typescript -public readonly projectType: ProjectType; +public readonly nodeVersion: string; ``` -- *Type:* projen.ProjectType +- *Type:* string +- *Default:* should be parameters.PROJEN_NODE_VERSION + +Specify a nodeVersion. --- -##### `autoApprove`Optional +### Options + +Options to support cdk.context.json management. + +#### Initializer ```typescript -public readonly autoApprove: AutoApprove; +import { cdkContextJson } from '@time-loop/clickup-projen' + +const options: cdkContextJson.Options = { ... } ``` -- *Type:* projen.github.AutoApprove +#### Properties -Auto approve set up for this project. +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| createOidcRoleStack | boolean | *No description.* | +| injectionOptions | @time-loop/clickup-projen.cdkContextJson.InjectionOptions | You must configure this if you want to self-mutation cdk.context.json. | --- -##### `devContainer`Optional +##### `createOidcRoleStack`Optional ```typescript -public readonly devContainer: DevContainer; +public readonly createOidcRoleStack: boolean; ``` -- *Type:* projen.vscode.DevContainer - -Access for .devcontainer.json (used for GitHub Codespaces). - -This will be `undefined` if devContainer boolean is false +- *Type:* boolean +- *Default:* do not create stack SampleCode for OIDC role --- -##### `github`Optional +##### `injectionOptions`Optional ```typescript -public readonly github: GitHub; +public readonly injectionOptions: InjectionOptions; ``` -- *Type:* projen.github.GitHub - -Access all github components. +- *Type:* @time-loop/clickup-projen.cdkContextJson.InjectionOptions +- *Default:* do not modify the build workflow to authorize against AWS. -This will be `undefined` for subprojects. +You must configure this if you want to self-mutation cdk.context.json. --- -##### `gitpod`Optional +### ReleaseEventOptions + +Options to set for the event sent to Datadog on release. + +#### Initializer ```typescript -public readonly gitpod: Gitpod; -``` +import { datadog } from '@time-loop/clickup-projen' -- *Type:* projen.Gitpod +const releaseEventOptions: datadog.ReleaseEventOptions = { ... } +``` -Access for Gitpod. +#### Properties -This will be `undefined` if gitpod boolean is false +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| datadogApiKey | string | *No description.* | +| datadogUs | boolean | *No description.* | +| eventPriority | string | *No description.* | +| eventTags | @time-loop/clickup-projen.datadog.ReleaseEventTags | Additional tags to append to the standard tags (project, release, version, actor). | +| eventText | string | *No description.* | +| eventTitle | string | *No description.* | --- -##### `vscode`Optional +##### `datadogApiKey`Optional ```typescript -public readonly vscode: VsCode; +public readonly datadogApiKey: string; ``` -- *Type:* projen.vscode.VsCode - -Access all VSCode components. - -This will be `undefined` for subprojects. +- *Type:* string +- *Default:* secrets.DD_PROJEN_RELEASE_API_KEY --- -##### ~~`allowLibraryDependencies`~~Required - -- *Deprecated:* use `package.allowLibraryDependencies` +##### `datadogUs`Optional ```typescript -public readonly allowLibraryDependencies: boolean; +public readonly datadogUs: boolean; ``` - *Type:* boolean +- *Default:* true --- -##### `artifactsDirectory`Required +##### `eventPriority`Optional ```typescript -public readonly artifactsDirectory: string; +public readonly eventPriority: string; ``` - *Type:* string - -The build output directory. - -An npm tarball will be created under the `js` -subdirectory. For example, if this is set to `dist` (the default), the npm -tarball will be placed under `dist/js/boom-boom-1.2.3.tg`. +- *Default:* normal --- -##### `artifactsJavascriptDirectory`Required +##### `eventTags`Optional ```typescript -public readonly artifactsJavascriptDirectory: string; +public readonly eventTags: ReleaseEventTags; ``` -- *Type:* string +- *Type:* @time-loop/clickup-projen.datadog.ReleaseEventTags +- *Default:* undefined -The location of the npm tarball after build (`${artifactsDirectory}/js`). +Additional tags to append to the standard tags (project, release, version, actor). --- -##### `bundler`Required +##### `eventText`Optional ```typescript -public readonly bundler: Bundler; +public readonly eventText: string; ``` -- *Type:* projen.javascript.Bundler +- *Type:* string +- *Default:* The release repo and semantically versioned release number --- -##### ~~`entrypoint`~~Required - -- *Deprecated:* use `package.entrypoint` +##### `eventTitle`Optional ```typescript -public readonly entrypoint: string; +public readonly eventTitle: string; ``` - *Type:* string +- *Default:* The release repo and semantically versioned release number --- -##### ~~`manifest`~~Required +### ReleaseEventOptions -- *Deprecated:* use `package.addField(x, y)` +Options to set for the event sent to Slack on release. + +#### Initializer ```typescript -public readonly manifest: any; +import { slackAlert } from '@time-loop/clickup-projen' + +const releaseEventOptions: slackAlert.ReleaseEventOptions = { ... } ``` -- *Type:* any +#### Properties + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| messageBody | string | Override the default slack message body. | +| messageTitle | string | Override the default slack message title. | +| webhook | string | *No description.* | --- -##### `npmrc`Required +##### `messageBody`Optional ```typescript -public readonly npmrc: NpmConfig; +public readonly messageBody: string; ``` -- *Type:* projen.javascript.NpmConfig +- *Type:* string -The .npmrc file. +Override the default slack message body. --- -##### `package`Required +##### `messageTitle`Optional ```typescript -public readonly package: NodePackage; +public readonly messageTitle: string; ``` -- *Type:* projen.javascript.NodePackage +- *Type:* string -API for managing the node package. +Override the default slack message title. --- -##### ~~`packageManager`~~Required - -- *Deprecated:* use `package.packageManager` +##### `webhook`Optional ```typescript -public readonly packageManager: NodePackageManager; +public readonly webhook: string; ``` -- *Type:* projen.javascript.NodePackageManager - -The package manager to use. +- *Type:* string +- *Default:* secrets.PROJEN_RELEASE_SLACK_WEBHOOK --- -##### `runScriptCommand`Required +### ReleaseEventTags + +#### Initializer ```typescript -public readonly runScriptCommand: string; +import { datadog } from '@time-loop/clickup-projen' + +const releaseEventTags: datadog.ReleaseEventTags = { ... } ``` -- *Type:* string -The command to use to run scripts (e.g. `yarn run` or `npm run` depends on the package manager). +### RenovateOptionsConfig + +#### Initializer + +```typescript +import { renovateWorkflow } from '@time-loop/clickup-projen' + +const renovateOptionsConfig: renovateWorkflow.RenovateOptionsConfig = { ... } +``` + +#### Properties + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| autoMergeNonBreakingUpdates | boolean | Whether to auto merge non breaking dependency updates. | +| defaultOverrides | projen.RenovatebotOptions | Allows overriding any renovate config option default. | --- -##### `autoMerge`Optional +##### `autoMergeNonBreakingUpdates`Optional ```typescript -public readonly autoMerge: AutoMerge; +public readonly autoMergeNonBreakingUpdates: boolean; ``` -- *Type:* projen.github.AutoMerge +- *Type:* boolean -Component that sets up mergify for merging approved pull requests. +Whether to auto merge non breaking dependency updates. + +Note: if you have the "Require review from Code Owners" option enabled in the branch protection rules this will not work --- -##### `buildWorkflow`Optional +##### `defaultOverrides`Optional ```typescript -public readonly buildWorkflow: BuildWorkflow; +public readonly defaultOverrides: RenovatebotOptions; ``` -- *Type:* projen.build.BuildWorkflow +- *Type:* projen.RenovatebotOptions -The PR build GitHub workflow. +Allows overriding any renovate config option default. -`undefined` if `buildWorkflow` is disabled. +This is deep merged into the default config --- -##### `buildWorkflowJobId`Optional +### SendSlackOptions + +Options to add to interface for projects that wish to off send slack functionality. + +#### Initializer ```typescript -public readonly buildWorkflowJobId: string; +import { slackAlert } from '@time-loop/clickup-projen' + +const sendSlackOptions: slackAlert.SendSlackOptions = { ... } ``` -- *Type:* string +#### Properties -The job ID of the build workflow. +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| sendSlackWebhookOnRelease | boolean | Should we send a slack webhook on release (required for compliance audits). | +| sendSlackWebhookOnReleaseOpts | @time-loop/clickup-projen.slackAlert.ReleaseEventOptions | Slack alert on release options. | --- -##### `jest`Optional +##### `sendSlackWebhookOnRelease`Optional ```typescript -public readonly jest: Jest; +public readonly sendSlackWebhookOnRelease: boolean; ``` -- *Type:* projen.javascript.Jest +- *Type:* boolean +- *Default:* true -The Jest configuration (if enabled). +Should we send a slack webhook on release (required for compliance audits). --- -##### `maxNodeVersion`Optional +##### `sendSlackWebhookOnReleaseOpts`Optional ```typescript -public readonly maxNodeVersion: string; +public readonly sendSlackWebhookOnReleaseOpts: ReleaseEventOptions; ``` -- *Type:* string +- *Type:* @time-loop/clickup-projen.slackAlert.ReleaseEventOptions -Maximum node version required by this package. +Slack alert on release options. + +Only valid when `sendSlackWebhookOnRelease` is true. --- -##### `minNodeVersion`Optional +### ServiceCatalogOptions + +Service Catalog Options. + +#### Initializer ```typescript -public readonly minNodeVersion: string; +import { datadogServiceCatalog } from '@time-loop/clickup-projen' + +const serviceCatalogOptions: datadogServiceCatalog.ServiceCatalogOptions = { ... } ``` -- *Type:* string +#### Properties -Minimum node.js version required by this package. +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| contacts | @time-loop/clickup-projen.datadogServiceCatalog.ContactInfo[] | The list of contacts for the service. | +| links | @time-loop/clickup-projen.datadogServiceCatalog.LinkInfo[] | A list of links associated with the service. | +| serviceInfo | @time-loop/clickup-projen.datadogServiceCatalog.ServiceInfo[] | Information about the services that will be published to the service catalog. | +| serviceTags | {[ key: string ]: string} | The list of tags that are associated with the service. | --- -##### `npmignore`Optional +##### `contacts`Optional ```typescript -public readonly npmignore: IgnoreFile; +public readonly contacts: ContactInfo[]; ``` -- *Type:* projen.IgnoreFile +- *Type:* @time-loop/clickup-projen.datadogServiceCatalog.ContactInfo[] +- *Default:* undefined -The .npmignore file. +The list of contacts for the service. + +Each of these contacts is an object with the following properties: name, type, and contact. --- -##### `prettier`Optional +##### `links`Optional ```typescript -public readonly prettier: Prettier; +public readonly links: LinkInfo[]; ``` -- *Type:* projen.javascript.Prettier +- *Type:* @time-loop/clickup-projen.datadogServiceCatalog.LinkInfo[] +- *Default:* undefined ---- +A list of links associated with the service. -##### ~~`publisher`~~Optional +Each of these links is an object with the following properties: name, type, and url. -- *Deprecated:* use `release.publisher`. +--- + +##### `serviceInfo`Optional ```typescript -public readonly publisher: Publisher; +public readonly serviceInfo: ServiceInfo[]; ``` -- *Type:* projen.release.Publisher - -Package publisher. +- *Type:* @time-loop/clickup-projen.datadogServiceCatalog.ServiceInfo[] -This will be `undefined` if the project does not have a -release workflow. +Information about the services that will be published to the service catalog. --- -##### `release`Optional +##### `serviceTags`Optional ```typescript -public readonly release: Release; +public readonly serviceTags: {[ key: string ]: string}; ``` -- *Type:* projen.release.Release +- *Type:* {[ key: string ]: string} +- *Default:* undefined -Release management. +The list of tags that are associated with the service. --- -##### `upgradeWorkflow`Optional +### ServiceInfo + +#### Initializer ```typescript -public readonly upgradeWorkflow: UpgradeDependencies; +import { datadogServiceCatalog } from '@time-loop/clickup-projen' + +const serviceInfo: datadogServiceCatalog.ServiceInfo = { ... } ``` -- *Type:* projen.javascript.UpgradeDependencies +#### Properties -The upgrade workflow. +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| application | string | The application/product that this service assists. | +| description | string | Some details on what this service does. | +| lifecycle | string | Where is this service in the development cycle (development, staging, production, deprecated). | +| pagerdutyUrl | string | The PagerDuty URL for the service. | +| serviceName | string | The name of the service. | +| team | string | Which squad owns this service. | +| tier | string | How important is this service for business functionality (low, medium, high, critical). | --- -##### `docsDirectory`Required +##### `application`Optional ```typescript -public readonly docsDirectory: string; +public readonly application: string; ``` - *Type:* string +- *Default:* 'Not Provided' + +The application/product that this service assists. --- -##### `libdir`Required +##### `description`Optional ```typescript -public readonly libdir: string; +public readonly description: string; ``` - *Type:* string +- *Default:* 'Not Provided' -The directory in which compiled .js files reside. +Some details on what this service does. --- -##### `srcdir`Required +##### `lifecycle`Optional ```typescript -public readonly srcdir: string; +public readonly lifecycle: string; ``` - *Type:* string +- *Default:* 'Not Provided' -The directory in which the .ts sources reside. +Where is this service in the development cycle (development, staging, production, deprecated). --- -##### `testdir`Required +##### `pagerdutyUrl`Optional ```typescript -public readonly testdir: string; +public readonly pagerdutyUrl: string; ``` - *Type:* string +- *Default:* 'Not Provided' -The directory in which tests reside. +The PagerDuty URL for the service. --- -##### `tsconfigDev`Required +##### `serviceName`Optional ```typescript -public readonly tsconfigDev: TypescriptConfig; +public readonly serviceName: string; ``` -- *Type:* projen.javascript.TypescriptConfig +- *Type:* string +- *Default:* project.name -A typescript configuration file which covers all files (sources, tests, projen). +The name of the service. + +This must be unique across all services. --- -##### `watchTask`Required +##### `team`Optional ```typescript -public readonly watchTask: Task; +public readonly team: string; ``` -- *Type:* projen.Task +- *Type:* string -The "watch" task. +Which squad owns this service. --- -##### `docgen`Optional +##### `tier`Optional ```typescript -public readonly docgen: boolean; +public readonly tier: string; ``` -- *Type:* boolean +- *Type:* string +- *Default:* 'low' + +How important is this service for business functionality (low, medium, high, critical). --- -##### `eslint`Optional +### TypedocDocgenOptions + +Optional properties for configuring the `typedoc` documentation generator. + +This configuration provides further customization than what is offered by +projen's typescript.TypedocDocgen class. + +#### Initializer ```typescript -public readonly eslint: Eslint; +import { clickupTs } from '@time-loop/clickup-projen' + +const typedocDocgenOptions: clickupTs.TypedocDocgenOptions = { ... } ``` -- *Type:* projen.javascript.Eslint +#### Properties + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| configFileContents | {[ key: string ]: any} | Supports all config keys enumerated in the Typedoc Options. | +| configFilePath | string | The file path at which to create the Typedoc config file. | +| html | boolean | Whether to generate the documentation in rendered HTML as opposed to the Markdown format. | --- -##### `tsconfig`Optional +##### `configFileContents`Optional ```typescript -public readonly tsconfig: TypescriptConfig; +public readonly configFileContents: {[ key: string ]: any}; ``` -- *Type:* projen.javascript.TypescriptConfig +- *Type:* {[ key: string ]: any} +- *Default:* { $schema: 'https://typedoc.org/schema.json', entryPoints: ['./src/index.ts'], out: project.docsDirectory, readme: 'none', } + +Supports all config keys enumerated in the Typedoc Options. + +https://typedoc.org/guides/options/ --- -##### `tsconfigEslint`Optional +##### `configFilePath`Optional ```typescript -public readonly tsconfigEslint: TypescriptConfig; +public readonly configFilePath: string; ``` -- *Type:* projen.javascript.TypescriptConfig - ---- - -#### Constants +- *Type:* string +- *Default:* 'typedoc.json' -| **Name** | **Type** | **Description** | -| --- | --- | --- | -| DEFAULT_TASK | string | The name of the default task (the task executed when `projen` is run without arguments). | +The file path at which to create the Typedoc config file. --- -##### `DEFAULT_TASK`Required +##### `html`Optional ```typescript -public readonly DEFAULT_TASK: string; +public readonly html: boolean; ``` -- *Type:* string - -The name of the default task (the task executed when `projen` is run without arguments). +- *Type:* boolean +- *Default:* false -Normally -this task should synthesize the project files. +Whether to generate the documentation in rendered HTML as opposed to the Markdown format. --- + ## Enums ### ContactType diff --git a/package.json b/package.json index 8b5dafb7..d545ef2d 100644 --- a/package.json +++ b/package.json @@ -39,9 +39,9 @@ "@types/semver": "^7.5.6", "@typescript-eslint/eslint-plugin": "^6", "@typescript-eslint/parser": "^6", + "constructs": "^10.0.0", "eslint": "^8", "eslint-config-prettier": "^9.0.0", - "eslint-import-resolver-node": "^0.3.9", "eslint-import-resolver-typescript": "^3.6.1", "eslint-plugin-import": "^2.29.0", "eslint-plugin-prettier": "^5.0.1", @@ -52,20 +52,19 @@ "jsii-docgen": "^9.2.2", "jsii-pacmak": "^1.92.0", "jsii-rosetta": "5.0.x", - "npm-check-updates": "^16", "prettier": "^3.1.0", - "projen": "^0.73.37", + "projen": "^0.77.4", "standard-version": "^9", "ts-jest": "^29.1.1", "ts-node": "^10.9.1", "typescript": "^5.3.2" }, "peerDependencies": { - "projen": "^0.73.37" + "projen": "^0.77.4" }, "dependencies": { "cson-parser": "^4.0.9", - "projen": "^0.73.37", + "projen": "^0.77.4", "semver": "^7.5.4", "ts-deepmerge": "^6.2.0" }, diff --git a/renovate.json5 b/renovate.json5 index 521bc059..8f81caef 100644 --- a/renovate.json5 +++ b/renovate.json5 @@ -50,11 +50,11 @@ "@types/node", "@typescript-eslint/eslint-plugin", "@typescript-eslint/parser", + "constructs", "eslint", "jest-junit", "jsii-rosetta", "jsii", - "npm-check-updates", "standard-version", "node", "@time-loop/clickup-projen", diff --git a/test/__snapshots__/clickup-cdk.test.ts.snap b/test/__snapshots__/clickup-cdk.test.ts.snap index 616b5943..1cc57f3d 100644 --- a/test/__snapshots__/clickup-cdk.test.ts.snap +++ b/test/__snapshots__/clickup-cdk.test.ts.snap @@ -18,7 +18,6 @@ exports[`ClickUpCdkConstructLibrary defaults package.json 1`] = ` "esbuild": "*", "eslint": "^8", "eslint-config-prettier": "*", - "eslint-import-resolver-node": "*", "eslint-import-resolver-typescript": "*", "eslint-plugin-import": "*", "eslint-plugin-prettier": "*", @@ -30,7 +29,6 @@ exports[`ClickUpCdkConstructLibrary defaults package.json 1`] = ` "jsii-pacmak": "*", "jsii-release": "*", "jsii-rosetta": "5.0.*", - "npm-check-updates": "^16", "prettier": "*", "projen": "*", "standard-version": "^9", @@ -504,14 +502,12 @@ exports[`ClickUpCdkTypeScriptApp defaults package.json 1`] = ` "esbuild": "*", "eslint": "^8", "eslint-config-prettier": "*", - "eslint-import-resolver-node": "*", "eslint-import-resolver-typescript": "*", "eslint-plugin-import": "*", "eslint-plugin-prettier": "*", "jest": "*", "jest-junit": "^15", "jsii-release": "*", - "npm-check-updates": "^16", "prettier": "*", "projen": "*", "standard-version": "^9", @@ -956,14 +952,12 @@ exports[`ClickUpCdkTypeScriptApp options node20 package.json 1`] = ` "esbuild": "*", "eslint": "^8", "eslint-config-prettier": "*", - "eslint-import-resolver-node": "*", "eslint-import-resolver-typescript": "*", "eslint-plugin-import": "*", "eslint-plugin-prettier": "*", "jest": "*", "jest-junit": "^15", "jsii-release": "*", - "npm-check-updates": "^16", "prettier": "*", "projen": "*", "standard-version": "^9", @@ -1081,14 +1075,12 @@ exports[`cdk-diff additions - ClickUpCdkTypeScriptApp package.json 1`] = ` "esbuild": "*", "eslint": "^8", "eslint-config-prettier": "*", - "eslint-import-resolver-node": "*", "eslint-import-resolver-typescript": "*", "eslint-plugin-import": "*", "eslint-plugin-prettier": "*", "jest": "*", "jest-junit": "^15", "jsii-release": "*", - "npm-check-updates": "^16", "prettier": "*", "projen": "*", "standard-version": "^9", diff --git a/test/__snapshots__/clickup-ts.test.ts.snap b/test/__snapshots__/clickup-ts.test.ts.snap index dfdba246..e1144c0e 100644 --- a/test/__snapshots__/clickup-ts.test.ts.snap +++ b/test/__snapshots__/clickup-ts.test.ts.snap @@ -225,17 +225,16 @@ exports[`ClickUpTypeScriptProject defaults package.json 1`] = ` "@types/node": "^18", "@typescript-eslint/eslint-plugin": "^6", "@typescript-eslint/parser": "^6", + "constructs": "^10.0.0", "esbuild": "*", "eslint": "^8", "eslint-config-prettier": "*", - "eslint-import-resolver-node": "*", "eslint-import-resolver-typescript": "*", "eslint-plugin-import": "*", "eslint-plugin-prettier": "*", "jest": "*", "jest-junit": "^15", "jsii-release": "*", - "npm-check-updates": "^16", "prettier": "*", "projen": "*", "standard-version": "^9", diff --git a/test/__snapshots__/datadog-service-catalog.test.ts.snap b/test/__snapshots__/datadog-service-catalog.test.ts.snap index 2b51a21a..dbab2922 100644 --- a/test/__snapshots__/datadog-service-catalog.test.ts.snap +++ b/test/__snapshots__/datadog-service-catalog.test.ts.snap @@ -54,7 +54,7 @@ jobs: steps: - uses: actions/setup-node@v3 with: - node-version: 16.x + node-version: 18.x - name: Download build artifacts uses: actions/download-artifact@v3 with: @@ -177,7 +177,7 @@ jobs: steps: - uses: actions/setup-node@v3 with: - node-version: 16.x + node-version: 18.x - name: Download build artifacts uses: actions/download-artifact@v3 with: diff --git a/test/__snapshots__/datadog.test.ts.snap b/test/__snapshots__/datadog.test.ts.snap index 6c9597b4..39156fc1 100644 --- a/test/__snapshots__/datadog.test.ts.snap +++ b/test/__snapshots__/datadog.test.ts.snap @@ -54,7 +54,7 @@ jobs: steps: - uses: actions/setup-node@v3 with: - node-version: 16.x + node-version: 18.x - name: Download build artifacts uses: actions/download-artifact@v3 with: @@ -153,7 +153,7 @@ jobs: steps: - uses: actions/setup-node@v3 with: - node-version: 16.x + node-version: 18.x - name: Download build artifacts uses: actions/download-artifact@v3 with: @@ -252,7 +252,7 @@ jobs: steps: - uses: actions/setup-node@v3 with: - node-version: 16.x + node-version: 18.x - name: Download build artifacts uses: actions/download-artifact@v3 with: diff --git a/test/__snapshots__/slack-alert.test.ts.snap b/test/__snapshots__/slack-alert.test.ts.snap index 2729b4c4..01d28069 100644 --- a/test/__snapshots__/slack-alert.test.ts.snap +++ b/test/__snapshots__/slack-alert.test.ts.snap @@ -54,7 +54,7 @@ jobs: steps: - uses: actions/setup-node@v3 with: - node-version: 16.x + node-version: 18.x - name: Download build artifacts uses: actions/download-artifact@v3 with: @@ -151,7 +151,7 @@ jobs: steps: - uses: actions/setup-node@v3 with: - node-version: 16.x + node-version: 18.x - name: Download build artifacts uses: actions/download-artifact@v3 with: diff --git a/yarn.lock b/yarn.lock index 2bee761c..395735fe 100644 --- a/yarn.lock +++ b/yarn.lock @@ -302,11 +302,6 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@colors/colors@1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" - integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== - "@cspotcode/source-map-support@^0.8.0": version "0.8.1" resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" @@ -380,18 +375,6 @@ resolved "https://registry.yarnpkg.com/@iarna/toml/-/toml-2.2.5.tgz#b32366c89b43c6f8cefbdefac778b9c828e3ba8c" integrity sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg== -"@isaacs/cliui@^8.0.2": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" - integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== - dependencies: - string-width "^5.1.2" - string-width-cjs "npm:string-width@^4.2.0" - strip-ansi "^7.0.1" - strip-ansi-cjs "npm:strip-ansi@^6.0.1" - wrap-ansi "^8.1.0" - wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" - "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" @@ -732,58 +715,6 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@npmcli/fs@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-3.1.0.tgz#233d43a25a91d68c3a863ba0da6a3f00924a173e" - integrity sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w== - dependencies: - semver "^7.3.5" - -"@npmcli/git@^4.0.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-4.1.0.tgz#ab0ad3fd82bc4d8c1351b6c62f0fa56e8fe6afa6" - integrity sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ== - dependencies: - "@npmcli/promise-spawn" "^6.0.0" - lru-cache "^7.4.4" - npm-pick-manifest "^8.0.0" - proc-log "^3.0.0" - promise-inflight "^1.0.1" - promise-retry "^2.0.1" - semver "^7.3.5" - which "^3.0.0" - -"@npmcli/installed-package-contents@^2.0.1": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz#bfd817eccd9e8df200919e73f57f9e3d9e4f9e33" - integrity sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ== - dependencies: - npm-bundled "^3.0.0" - npm-normalize-package-bin "^3.0.0" - -"@npmcli/node-gyp@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz#101b2d0490ef1aa20ed460e4c0813f0db560545a" - integrity sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA== - -"@npmcli/promise-spawn@^6.0.0", "@npmcli/promise-spawn@^6.0.1": - version "6.0.2" - resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-6.0.2.tgz#c8bc4fa2bd0f01cb979d8798ba038f314cfa70f2" - integrity sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg== - dependencies: - which "^3.0.0" - -"@npmcli/run-script@^6.0.0": - version "6.0.2" - resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-6.0.2.tgz#a25452d45ee7f7fb8c16dfaf9624423c0c0eb885" - integrity sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA== - dependencies: - "@npmcli/node-gyp" "^3.0.0" - "@npmcli/promise-spawn" "^6.0.0" - node-gyp "^9.0.0" - read-package-json-fast "^3.0.0" - which "^3.0.0" - "@oozcitak/dom@1.15.10": version "1.15.10" resolved "https://registry.yarnpkg.com/@oozcitak/dom/-/dom-1.15.10.tgz#dca7289f2b292cff2a901ea4fbbcc0a1ab0b05c2" @@ -813,11 +744,6 @@ resolved "https://registry.yarnpkg.com/@oozcitak/util/-/util-8.3.8.tgz#10f65fe1891fd8cde4957360835e78fd1936bfdd" integrity sha512-T8TbSnGsxo6TDBJx/Sgv/BlVJL3tshxZP7Aq5R1mSnM5OcHY2dQaxLMu2+E8u3gN0MLOzdjurqN4ZRVuzQycOQ== -"@pkgjs/parseargs@^0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" - integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== - "@pkgr/utils@^2.3.1": version "2.4.2" resolved "https://registry.yarnpkg.com/@pkgr/utils/-/utils-2.4.2.tgz#9e638bbe9a6a6f165580dc943f138fd3309a2cbc" @@ -830,66 +756,11 @@ picocolors "^1.0.0" tslib "^2.6.0" -"@pnpm/config.env-replace@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz#ab29da53df41e8948a00f2433f085f54de8b3a4c" - integrity sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w== - -"@pnpm/network.ca-file@^1.0.1": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz#2ab05e09c1af0cdf2fcf5035bea1484e222f7983" - integrity sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA== - dependencies: - graceful-fs "4.2.10" - -"@pnpm/npm-conf@^2.1.0": - version "2.2.2" - resolved "https://registry.yarnpkg.com/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz#0058baf1c26cbb63a828f0193795401684ac86f0" - integrity sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA== - dependencies: - "@pnpm/config.env-replace" "^1.1.0" - "@pnpm/network.ca-file" "^1.0.1" - config-chain "^1.1.11" - -"@sigstore/bundle@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@sigstore/bundle/-/bundle-1.1.0.tgz#17f8d813b09348b16eeed66a8cf1c3d6bd3d04f1" - integrity sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog== - dependencies: - "@sigstore/protobuf-specs" "^0.2.0" - -"@sigstore/protobuf-specs@^0.2.0": - version "0.2.1" - resolved "https://registry.yarnpkg.com/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz#be9ef4f3c38052c43bd399d3f792c97ff9e2277b" - integrity sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A== - -"@sigstore/sign@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@sigstore/sign/-/sign-1.0.0.tgz#6b08ebc2f6c92aa5acb07a49784cb6738796f7b4" - integrity sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA== - dependencies: - "@sigstore/bundle" "^1.1.0" - "@sigstore/protobuf-specs" "^0.2.0" - make-fetch-happen "^11.0.1" - -"@sigstore/tuf@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@sigstore/tuf/-/tuf-1.0.3.tgz#2a65986772ede996485728f027b0514c0b70b160" - integrity sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg== - dependencies: - "@sigstore/protobuf-specs" "^0.2.0" - tuf-js "^1.1.7" - "@sinclair/typebox@^0.27.8": version "0.27.8" resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== -"@sindresorhus/is@^5.2.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-5.6.0.tgz#41dd6093d34652cddb5d5bdeee04eafc33826668" - integrity sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g== - "@sinonjs/commons@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.0.tgz#beb434fe875d965265e04722ccfc21df7f755d72" @@ -904,18 +775,6 @@ dependencies: "@sinonjs/commons" "^3.0.0" -"@szmarczak/http-timer@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-5.0.1.tgz#c7c1bf1141cdd4751b0399c8fc7b8b664cd5be3a" - integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw== - dependencies: - defer-to-connect "^2.0.1" - -"@tootallnate/once@2": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" - integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== - "@tsconfig/node10@^1.0.7": version "1.0.9" resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" @@ -936,19 +795,6 @@ resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== -"@tufjs/canonical-json@1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@tufjs/canonical-json/-/canonical-json-1.0.0.tgz#eade9fd1f537993bc1f0949f3aea276ecc4fab31" - integrity sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ== - -"@tufjs/models@1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@tufjs/models/-/models-1.0.4.tgz#5a689630f6b9dbda338d4b208019336562f176ef" - integrity sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A== - dependencies: - "@tufjs/canonical-json" "1.0.0" - minimatch "^9.0.0" - "@types/babel__core@^7.1.14": version "7.20.1" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.1.tgz#916ecea274b0c776fec721e333e55762d3a9614b" @@ -997,11 +843,6 @@ dependencies: "@types/node" "*" -"@types/http-cache-semantics@^4.0.1": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.2.tgz#abe102d06ccda1efdf0ed98c10ccf7f36a785a41" - integrity sha512-FD+nQWA2zJjh4L9+pFXqWOi0Hs1ryBCfI+985NjluQ1p8EYtoLvjLOKidXBtZ4/IcxDX4o8/E8qDS3540tNliw== - "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": version "2.0.4" resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" @@ -1189,11 +1030,6 @@ JSONStream@^1.0.4: jsonparse "^1.2.0" through ">=2.2.7 <3" -abbrev@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" @@ -1214,28 +1050,6 @@ add-stream@^1.0.0: resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" integrity sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ== -agent-base@6, agent-base@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - -agentkeepalive@^4.2.1: - version "4.5.0" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.5.0.tgz#2673ad1389b3c418c5a20c5d7364f93ca04be923" - integrity sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew== - dependencies: - humanize-ms "^1.2.1" - -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - ajv@^6.12.4: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" @@ -1256,13 +1070,6 @@ ajv@^8.12.0: require-from-string "^2.0.2" uri-js "^4.2.2" -ansi-align@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" - integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== - dependencies: - string-width "^4.1.0" - ansi-escapes@^4.2.1: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" @@ -1275,11 +1082,6 @@ ansi-regex@^5.0.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== -ansi-regex@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" - integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== - ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -1299,11 +1101,6 @@ ansi-styles@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== -ansi-styles@^6.1.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" - integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== - anymatch@^3.0.3: version "3.1.3" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" @@ -1312,19 +1109,6 @@ anymatch@^3.0.3: normalize-path "^3.0.0" picomatch "^2.0.4" -"aproba@^1.0.3 || ^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" - integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== - -are-we-there-yet@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz#679df222b278c64f2cdba1175cdc00b0d96164bd" - integrity sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg== - dependencies: - delegates "^1.0.0" - readable-stream "^3.6.0" - arg@^4.1.0: version "4.1.3" resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" @@ -1500,20 +1284,6 @@ big-integer@^1.6.44: resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== -boxen@^7.0.0: - version "7.1.1" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-7.1.1.tgz#f9ba525413c2fec9cdb88987d835c4f7cad9c8f4" - integrity sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog== - dependencies: - ansi-align "^3.0.1" - camelcase "^7.0.1" - chalk "^5.2.0" - cli-boxes "^3.0.0" - string-width "^5.1.2" - type-fest "^2.13.0" - widest-line "^4.0.1" - wrap-ansi "^8.1.0" - bplist-parser@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e" @@ -1572,13 +1342,6 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -builtins@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" - integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== - dependencies: - semver "^7.0.0" - bundle-name@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-3.0.0.tgz#ba59bcc9ac785fb67ccdbf104a2bf60c099f0e1a" @@ -1586,42 +1349,6 @@ bundle-name@^3.0.0: dependencies: run-applescript "^5.0.0" -cacache@^17.0.0: - version "17.1.4" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-17.1.4.tgz#b3ff381580b47e85c6e64f801101508e26604b35" - integrity sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A== - dependencies: - "@npmcli/fs" "^3.1.0" - fs-minipass "^3.0.0" - glob "^10.2.2" - lru-cache "^7.7.1" - minipass "^7.0.3" - minipass-collect "^1.0.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.4" - p-map "^4.0.0" - ssri "^10.0.0" - tar "^6.1.11" - unique-filename "^3.0.0" - -cacheable-lookup@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz#3476a8215d046e5a3202a9209dd13fec1f933a27" - integrity sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w== - -cacheable-request@^10.2.8: - version "10.2.13" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-10.2.13.tgz#b7012bb4a2acdb18cb54d2dff751d766b3500842" - integrity sha512-3SD4rrMu1msNGEtNSt8Od6enwdo//U9s4ykmXfA2TD58kcLkCobtCDiby7kNyj7a/Q7lz/mAesAFI54rTdnvBA== - dependencies: - "@types/http-cache-semantics" "^4.0.1" - get-stream "^6.0.1" - http-cache-semantics "^4.1.1" - keyv "^4.5.3" - mimic-response "^4.0.0" - normalize-url "^8.0.0" - responselike "^3.0.0" - call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" @@ -1663,11 +1390,6 @@ camelcase@^6.2.0, camelcase@^6.3.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -camelcase@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-7.0.1.tgz#f02e50af9fd7782bc8b88a3558c32fd3a388f048" - integrity sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw== - caniuse-lite@^1.0.30001517: version "1.0.30001519" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001519.tgz#3e7b8b8a7077e78b0eb054d69e6edf5c7df35601" @@ -1695,50 +1417,21 @@ chalk@^4, chalk@^4.0.0, chalk@^4.1.2: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^5.0.1, chalk@^5.2.0, chalk@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" - integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== - char-regex@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== -chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== - ci-info@^3.2.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91" - integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== + version "3.9.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== cjs-module-lexer@^1.0.0: version "1.2.3" resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz#6c370ab19f8a3394e318fe682686ec0ac684d107" integrity sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ== -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -cli-boxes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-3.0.0.tgz#71a10c716feeba005e4504f36329ef0b17cf3145" - integrity sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g== - -cli-table3@^0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.3.tgz#61ab765aac156b52f222954ffc607a6f01dbeeb2" - integrity sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg== - dependencies: - string-width "^4.2.0" - optionalDependencies: - "@colors/colors" "1.5.0" - cliui@^7.0.2: version "7.0.4" resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" @@ -1810,16 +1503,6 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-support@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" - integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== - -commander@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" - integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== - comment-json@4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/comment-json/-/comment-json-4.2.2.tgz#5fae70a94e0c8f84a077bd31df5aa5269252f293" @@ -1864,29 +1547,10 @@ concat-stream@^2.0.0: readable-stream "^3.0.2" typedarray "^0.0.6" -config-chain@^1.1.11: - version "1.1.13" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" - integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== - dependencies: - ini "^1.3.4" - proto-list "~1.2.1" - -configstore@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-6.0.0.tgz#49eca2ebc80983f77e09394a1a56e0aca8235566" - integrity sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA== - dependencies: - dot-prop "^6.0.1" - graceful-fs "^4.2.6" - unique-string "^3.0.0" - write-file-atomic "^3.0.3" - xdg-basedir "^5.0.1" - -console-control-strings@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== +constructs@^10.0.0: + version "10.3.0" + resolved "https://registry.yarnpkg.com/constructs/-/constructs-10.3.0.tgz#4c246fce9cf8e77711ad45944e9fbd41f1501965" + integrity sha512-vbK8i3rIb/xwZxSpTjz3SagHn1qq9BChLEfy5Hf6fB3/2eFbrwt2n9kHwQcS0CPTRBesreeAcsJfMq2229FnbQ== conventional-changelog-angular@^5.0.12: version "5.0.13" @@ -2084,7 +1748,7 @@ create-require@^1.1.0: resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== -cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -2093,13 +1757,6 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -crypto-random-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-4.0.0.tgz#5a3cc53d7dd86183df5da0312816ceeeb5bb1fc2" - integrity sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA== - dependencies: - type-fest "^1.0.1" - cson-parser@^4.0.9: version "4.0.9" resolved "https://registry.yarnpkg.com/cson-parser/-/cson-parser-4.0.9.tgz#eef0cf77edd057f97861ef800300c8239224eedb" @@ -2122,13 +1779,6 @@ dateformat@^3.0.0: resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" @@ -2136,6 +1786,13 @@ debug@^3.2.7: dependencies: ms "^2.1.1" +debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + decamelize-keys@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" @@ -2154,23 +1811,11 @@ decamelize@^5.0.1: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-5.0.1.tgz#db11a92e58c741ef339fb0a2868d8a06a9a7b1e9" integrity sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA== -decompress-response@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" - integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== - dependencies: - mimic-response "^3.1.0" - dedent@^1.0.0: version "1.5.1" resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.1.tgz#4f3fc94c8b711e9bb2800d185cd6ad20f2a90aff" integrity sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg== -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - deep-is@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" @@ -2199,11 +1844,6 @@ default-browser@^4.0.0: execa "^7.1.1" titleize "^3.0.0" -defer-to-connect@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" - integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== - define-data-property@^1.0.1, define-data-property@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" @@ -2226,11 +1866,6 @@ define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: has-property-descriptors "^1.0.0" object-keys "^1.1.1" -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== - detect-indent@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" @@ -2294,13 +1929,6 @@ dot-prop@^5.1.0: dependencies: is-obj "^2.0.0" -dot-prop@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083" - integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== - dependencies: - is-obj "^2.0.0" - dotgitignore@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/dotgitignore/-/dotgitignore-2.1.0.tgz#a4b15a4e4ef3cf383598aaf1dfa4a04bcc089b7b" @@ -2318,11 +1946,6 @@ downlevel-dts@^0.11.0: shelljs "^0.8.3" typescript next -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== - electron-to-chromium@^1.4.477: version "1.4.490" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.490.tgz#d99286f6e915667fa18ea4554def1aa60eb4d5f1" @@ -2338,18 +1961,6 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== - -encoding@^0.1.13: - version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" - integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== - dependencies: - iconv-lite "^0.6.2" - enhanced-resolve@^5.12.0: version "5.15.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" @@ -2363,16 +1974,6 @@ entities@~2.0: resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f" integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ== -env-paths@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" - integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== - -err-code@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" - integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== - error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -2455,11 +2056,6 @@ escalade@^3.1.1: resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== -escape-goat@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-4.0.0.tgz#9424820331b510b0666b98f7873fe11ac4aa8081" - integrity sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg== - escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -2692,11 +2288,6 @@ expect@^29.7.0: jest-message-util "^29.7.0" jest-util "^29.7.0" -exponential-backoff@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6" - integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== - fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -2707,10 +2298,10 @@ fast-diff@^1.1.2: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== -fast-glob@^3.2.9, fast-glob@^3.3.0, fast-glob@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" - integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== +fast-glob@^3.2.9, fast-glob@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -2718,10 +2309,10 @@ fast-glob@^3.2.9, fast-glob@^3.3.0, fast-glob@^3.3.1: merge2 "^1.3.0" micromatch "^4.0.4" -fast-glob@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" - integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== +fast-glob@^3.3.0, fast-glob@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" + integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -2744,11 +2335,6 @@ fast-levenshtein@^2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== -fast-memoize@^2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/fast-memoize/-/fast-memoize-2.5.2.tgz#79e3bb6a4ec867ea40ba0e7146816f6cdce9b57e" - integrity sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw== - fastq@^1.6.0: version "1.15.0" resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" @@ -2784,14 +2370,6 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -find-up@5.0.0, find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - find-up@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" @@ -2814,6 +2392,14 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + flat-cache@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" @@ -2834,24 +2420,6 @@ for-each@^0.3.3: dependencies: is-callable "^1.1.3" -foreground-child@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" - integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== - dependencies: - cross-spawn "^7.0.0" - signal-exit "^4.0.1" - -form-data-encoder@^2.1.2: - version "2.1.4" - resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-2.1.4.tgz#261ea35d2a70d48d30ec7a9603130fa5515e9cd5" - integrity sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw== - -fp-and-or@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/fp-and-or/-/fp-and-or-0.1.4.tgz#0268c800c359ede259cdcbc352654e698b7ea299" - integrity sha512-+yRYRhpnFPWXSly/6V4Lw9IfOV26uu30kynGJ03PW+MnjOEQe45RZ141QcS0aJehYBYA50GfCDnsRbFJdhssRw== - fs-extra@^10.1.0: version "10.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" @@ -2870,20 +2438,6 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-minipass@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - dependencies: - minipass "^3.0.0" - -fs-minipass@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-3.0.3.tgz#79a85981c4dc120065e96f62086bf6f9dc26cc54" - integrity sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw== - dependencies: - minipass "^7.0.3" - fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -2894,12 +2448,7 @@ fsevents@^2.3.2: resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -function-bind@^1.1.2: +function-bind@^1.1.1, function-bind@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== @@ -2919,20 +2468,6 @@ functions-have-names@^1.2.3: resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== -gauge@^4.0.3: - version "4.0.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce" - integrity sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg== - dependencies: - aproba "^1.0.3 || ^2.0.0" - color-support "^1.1.3" - console-control-strings "^1.1.0" - has-unicode "^2.0.1" - signal-exit "^3.0.7" - string-width "^4.2.3" - strip-ansi "^6.0.1" - wide-align "^1.1.5" - gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" @@ -2978,11 +2513,6 @@ get-pkg-repo@^4.0.0: through2 "^2.0.0" yargs "^16.2.0" -get-stdin@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53" - integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg== - get-stream@^6.0.0, get-stream@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" @@ -3058,17 +2588,6 @@ glob-promise@^6.0.5: dependencies: "@types/glob" "^8.0.0" -glob@^10.2.2, glob@^10.3.7: - version "10.3.10" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" - integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== - dependencies: - foreground-child "^3.1.0" - jackspeak "^2.3.5" - minimatch "^9.0.1" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - path-scurry "^1.10.1" - glob@^7.0.0, glob@^7.1.3, glob@^7.1.4: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" @@ -3092,13 +2611,6 @@ glob@^8, glob@^8.1.0: minimatch "^5.0.1" once "^1.3.0" -global-dirs@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.1.tgz#0c488971f066baceda21447aecb1a8b911d22485" - integrity sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA== - dependencies: - ini "2.0.0" - globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" @@ -3118,7 +2630,7 @@ globalthis@^1.0.3: dependencies: define-properties "^1.1.3" -globby@^11.0.4, globby@^11.1.0: +globby@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== @@ -3137,29 +2649,7 @@ gopd@^1.0.1: dependencies: get-intrinsic "^1.1.3" -got@^12.1.0: - version "12.6.1" - resolved "https://registry.yarnpkg.com/got/-/got-12.6.1.tgz#8869560d1383353204b5a9435f782df9c091f549" - integrity sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ== - dependencies: - "@sindresorhus/is" "^5.2.0" - "@szmarczak/http-timer" "^5.0.1" - cacheable-lookup "^7.0.0" - cacheable-request "^10.2.8" - decompress-response "^6.0.0" - form-data-encoder "^2.1.2" - get-stream "^6.0.1" - http2-wrapper "^2.1.10" - lowercase-keys "^3.0.0" - p-cancelable "^3.0.0" - responselike "^3.0.0" - -graceful-fs@4.2.10: - version "4.2.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.9: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -3230,22 +2720,10 @@ has-tostringtag@^1.0.0: dependencies: has-symbols "^1.0.2" -has-unicode@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== - -has-yarn@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-3.0.0.tgz#c3c21e559730d1d3b57e28af1f30d06fac38147d" - integrity sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA== - has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" + version "1.0.4" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.4.tgz#2eb2860e000011dae4f1406a86fe80e530fb2ec6" + integrity sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ== hasown@^2.0.0: version "2.0.0" @@ -3266,55 +2744,11 @@ hosted-git-info@^4.0.0, hosted-git-info@^4.0.1: dependencies: lru-cache "^6.0.0" -hosted-git-info@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-5.2.1.tgz#0ba1c97178ef91f3ab30842ae63d6a272341156f" - integrity sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw== - dependencies: - lru-cache "^7.5.1" - -hosted-git-info@^6.0.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-6.1.1.tgz#629442c7889a69c05de604d52996b74fe6f26d58" - integrity sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w== - dependencies: - lru-cache "^7.5.1" - html-escaper@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== -http-cache-semantics@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" - integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== - -http-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" - integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== - dependencies: - "@tootallnate/once" "2" - agent-base "6" - debug "4" - -http2-wrapper@^2.1.10: - version "2.2.0" - resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.2.0.tgz#b80ad199d216b7d3680195077bd7b9060fa9d7f3" - integrity sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ== - dependencies: - quick-lru "^5.1.1" - resolve-alpn "^1.2.0" - -https-proxy-agent@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" - integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== - dependencies: - agent-base "6" - debug "4" - human-signals@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" @@ -3325,28 +2759,12 @@ human-signals@^4.3.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== -humanize-ms@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== - dependencies: - ms "^2.0.0" - -iconv-lite@^0.6.2: - version "0.6.3" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" - integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - -ignore-walk@^6.0.0: - version "6.0.3" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-6.0.3.tgz#0fcdb6decaccda35e308a7b0948645dd9523b7bb" - integrity sha512-C7FfFoTA+bI10qfeydT8aZbvr91vAEU+2W5BZUlzPec47oNb07SsOfwYrtxuvOYdUApPP/Qlh4DtAO51Ekk2QA== - dependencies: - minimatch "^9.0.0" +ignore@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" + integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== -ignore@^5.2.0, ignore@^5.2.4: +ignore@^5.2.4: version "5.2.4" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== @@ -3359,11 +2777,6 @@ import-fresh@^3.2.1: parent-module "^1.0.0" resolve-from "^4.0.0" -import-lazy@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" - integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== - import-local@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" @@ -3395,20 +2808,15 @@ inherits@2, inherits@^2.0.3, inherits@~2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -ini@2.0.0, ini@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" - integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== - -ini@^1.3.2, ini@^1.3.4, ini@~1.3.0: +ini@^1.3.2: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -ini@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ini/-/ini-4.1.1.tgz#d95b3d843b1e906e56d6747d5447904ff50ce7a1" - integrity sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g== +ini@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== internal-slot@^1.0.5: version "1.0.5" @@ -3424,11 +2832,6 @@ interpret@^1.0.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== -ip@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" - integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== - is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" @@ -3463,21 +2866,14 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-ci@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" - integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== - dependencies: - ci-info "^3.2.0" - -is-core-module@^2.11.0, is-core-module@^2.13.0, is-core-module@^2.5.0, is-core-module@^2.8.1: +is-core-module@^2.11.0, is-core-module@^2.5.0: version "2.13.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== dependencies: has "^1.0.3" -is-core-module@^2.13.1: +is-core-module@^2.13.0, is-core-module@^2.13.1: version "2.13.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== @@ -3530,29 +2926,11 @@ is-inside-container@^1.0.0: dependencies: is-docker "^3.0.0" -is-installed-globally@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" - integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== - dependencies: - global-dirs "^3.0.0" - is-path-inside "^3.0.2" - -is-lambda@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" - integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== - is-negative-zero@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== -is-npm@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-6.0.0.tgz#b59e75e8915543ca5d881ecff864077cba095261" - integrity sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ== - is-number-object@^1.0.4: version "1.0.7" resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" @@ -3570,7 +2948,7 @@ is-obj@^2.0.0: resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== -is-path-inside@^3.0.2, is-path-inside@^3.0.3: +is-path-inside@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== @@ -3633,11 +3011,6 @@ is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: dependencies: which-typed-array "^1.1.11" -is-typedarray@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== - is-weakref@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" @@ -3652,11 +3025,6 @@ is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" -is-yarn-global@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.4.1.tgz#b312d902b313f81e4eaf98b6361ba2b45cd694bb" - integrity sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ== - isarray@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" @@ -3725,15 +3093,6 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jackspeak@^2.3.5: - version "2.3.6" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" - integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== - dependencies: - "@isaacs/cliui" "^8.0.2" - optionalDependencies: - "@pkgjs/parseargs" "^0.11.0" - jest-changed-files@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a" @@ -4154,11 +3513,6 @@ jest@^29.7.0: import-local "^3.0.2" jest-cli "^29.7.0" -jju@^1.1.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/jju/-/jju-1.4.0.tgz#a3abe2718af241a2b2904f84a625970f389ae32a" - integrity sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA== - js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -4328,11 +3682,6 @@ jsii@5.0.x, jsii@~5.0.5: typescript "~5.0.4" yargs "^17.7.2" -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - json-parse-better-errors@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" @@ -4343,18 +3692,6 @@ json-parse-even-better-errors@^2.3.0: resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== -json-parse-even-better-errors@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz#2cb2ee33069a78870a0c7e3da560026b89669cf7" - integrity sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA== - -json-parse-helpfulerror@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz#13f14ce02eed4e981297b64eb9e3b932e2dd13dc" - integrity sha512-XgP0FGR77+QhUxjXkwOMkC94k3WtqEBfcnjWqhRd82qTat4SWKRE+9kUnynz/shm3I4ea2+qISvTIeGTNU7kJg== - dependencies: - jju "^1.1.0" - json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" @@ -4403,23 +3740,11 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" -jsonlines@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsonlines/-/jsonlines-0.1.1.tgz#4fcd246dc5d0e38691907c44ab002f782d1d94cc" - integrity sha512-ekDrAGso79Cvf+dtm+mL8OBI2bmAOt3gssYs833De/C9NmIpWDWyUO4zPgB5x2/OhY366dkhgfPMYfwZF7yOZA== - -jsonparse@^1.2.0, jsonparse@^1.3.1: +jsonparse@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== -keyv@^4.5.3: - version "4.5.3" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.3.tgz#00873d2b046df737963157bd04f294ca818c9c25" - integrity sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug== - dependencies: - json-buffer "3.0.1" - kind-of@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" @@ -4430,18 +3755,6 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== -kleur@^4.0.1: - version "4.1.5" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" - integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== - -latest-version@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-7.0.0.tgz#843201591ea81a4d404932eeb61240fe04e9e5da" - integrity sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg== - dependencies: - package-json "^8.1.0" - leven@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" @@ -4515,7 +3828,7 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash@^4.17.15, lodash@^4.17.21: +lodash@^4.17.15: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -4531,11 +3844,6 @@ log4js@^6.9.1: rfdc "^1.3.0" streamroller "^3.1.5" -lowercase-keys@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" - integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== - lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -4550,16 +3858,6 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: - version "7.18.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" - integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== - -"lru-cache@^9.1.1 || ^10.0.0": - version "10.0.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.0.1.tgz#0a3be479df549cca0e5d693ac402ff19537a6b7a" - integrity sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g== - make-dir@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" @@ -4572,27 +3870,6 @@ make-error@1.x, make-error@^1.1.1: resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== -make-fetch-happen@^11.0.0, make-fetch-happen@^11.0.1, make-fetch-happen@^11.0.3, make-fetch-happen@^11.1.1: - version "11.1.1" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz#85ceb98079584a9523d4bf71d32996e7e208549f" - integrity sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w== - dependencies: - agentkeepalive "^4.2.1" - cacache "^17.0.0" - http-cache-semantics "^4.1.1" - http-proxy-agent "^5.0.0" - https-proxy-agent "^5.0.0" - is-lambda "^1.0.1" - lru-cache "^7.7.1" - minipass "^5.0.0" - minipass-fetch "^3.0.0" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.4" - negotiator "^0.6.3" - promise-retry "^2.0.1" - socks-proxy-agent "^7.0.0" - ssri "^10.0.0" - makeerror@1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" @@ -4660,16 +3937,6 @@ mimic-fn@^4.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== -mimic-response@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" - integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== - -mimic-response@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-4.0.0.tgz#35468b19e7c75d10f5165ea25e75a5ceea7cf70f" - integrity sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg== - min-indent@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" @@ -4689,13 +3956,6 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" -minimatch@^9.0.0, minimatch@^9.0.1, minimatch@^9.0.3: - version "9.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== - dependencies: - brace-expansion "^2.0.1" - minimist-options@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" @@ -4710,79 +3970,7 @@ minimist@>=1.2.2, minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1 resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== -minipass-collect@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" - integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== - dependencies: - minipass "^3.0.0" - -minipass-fetch@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-3.0.4.tgz#4d4d9b9f34053af6c6e597a64be8e66e42bf45b7" - integrity sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg== - dependencies: - minipass "^7.0.3" - minipass-sized "^1.0.3" - minizlib "^2.1.2" - optionalDependencies: - encoding "^0.1.13" - -minipass-flush@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" - integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== - dependencies: - minipass "^3.0.0" - -minipass-json-stream@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz#7edbb92588fbfc2ff1db2fc10397acb7b6b44aa7" - integrity sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg== - dependencies: - jsonparse "^1.3.1" - minipass "^3.0.0" - -minipass-pipeline@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" - integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== - dependencies: - minipass "^3.0.0" - -minipass-sized@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" - integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== - dependencies: - minipass "^3.0.0" - -minipass@^3.0.0: - version "3.3.6" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" - integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== - dependencies: - yallist "^4.0.0" - -minipass@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" - integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== - -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.3: - version "7.0.4" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" - integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== - -minizlib@^2.1.1, minizlib@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" - integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== - dependencies: - minipass "^3.0.0" - yallist "^4.0.0" - -mkdirp@^1.0.3, mkdirp@^1.0.4: +mkdirp@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== @@ -4797,7 +3985,7 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@^2.0.0, ms@^2.1.1: +ms@^2.1.1: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -4807,33 +3995,11 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -negotiator@^0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== - neo-async@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -node-gyp@^9.0.0: - version "9.4.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.4.0.tgz#2a7a91c7cba4eccfd95e949369f27c9ba704f369" - integrity sha512-dMXsYP6gc9rRbejLXmTbVRYjAHw7ppswsKyMxuxJxxOHzluIO1rGp9TOQgjFJ+2MCqcOcQTOPB/8Xwhr+7s4Eg== - dependencies: - env-paths "^2.2.0" - exponential-backoff "^3.1.1" - glob "^7.1.4" - graceful-fs "^4.2.6" - make-fetch-happen "^11.0.3" - nopt "^6.0.0" - npmlog "^6.0.0" - rimraf "^3.0.2" - semver "^7.3.5" - tar "^6.1.2" - which "^2.0.2" - node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" @@ -4844,13 +4010,6 @@ node-releases@^2.0.13: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== -nopt@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-6.0.0.tgz#245801d8ebf409c6df22ab9d95b65e1309cdb16d" - integrity sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g== - dependencies: - abbrev "^1.0.0" - normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -4871,123 +4030,11 @@ normalize-package-data@^3.0.0: semver "^7.3.4" validate-npm-package-license "^3.0.1" -normalize-package-data@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-5.0.0.tgz#abcb8d7e724c40d88462b84982f7cbf6859b4588" - integrity sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q== - dependencies: - hosted-git-info "^6.0.0" - is-core-module "^2.8.1" - semver "^7.3.5" - validate-npm-package-license "^3.0.4" - normalize-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -normalize-url@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-8.0.0.tgz#593dbd284f743e8dcf6a5ddf8fadff149c82701a" - integrity sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw== - -npm-bundled@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-3.0.0.tgz#7e8e2f8bb26b794265028491be60321a25a39db7" - integrity sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ== - dependencies: - npm-normalize-package-bin "^3.0.0" - -npm-check-updates@^16: - version "16.14.4" - resolved "https://registry.yarnpkg.com/npm-check-updates/-/npm-check-updates-16.14.4.tgz#561e97e92079ae4dbab9d9cbeb424d292ca01bae" - integrity sha512-PKg1wv3vno75/9qgRLqV2huBO7eukOlW+PmIGl7LPXjElfYTUTWUtaMOdOckImaSj4Uqe46W/zMbMFZQp5dHRQ== - dependencies: - chalk "^5.3.0" - cli-table3 "^0.6.3" - commander "^10.0.1" - fast-memoize "^2.5.2" - find-up "5.0.0" - fp-and-or "^0.1.3" - get-stdin "^8.0.0" - globby "^11.0.4" - hosted-git-info "^5.1.0" - ini "^4.1.1" - js-yaml "^4.1.0" - json-parse-helpfulerror "^1.0.3" - jsonlines "^0.1.1" - lodash "^4.17.21" - make-fetch-happen "^11.1.1" - minimatch "^9.0.3" - p-map "^4.0.0" - pacote "15.2.0" - parse-github-url "^1.0.2" - progress "^2.0.3" - prompts-ncu "^3.0.0" - rc-config-loader "^4.1.3" - remote-git-tags "^3.0.0" - rimraf "^5.0.1" - semver "^7.5.4" - semver-utils "^1.1.4" - source-map-support "^0.5.21" - spawn-please "^2.0.1" - strip-ansi "^7.1.0" - strip-json-comments "^5.0.1" - untildify "^4.0.0" - update-notifier "^6.0.2" - -npm-install-checks@^6.0.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-6.2.0.tgz#fae55b9967b03ac309695ec96629492d5cedf371" - integrity sha512-744wat5wAAHsxa4590mWO0tJ8PKxR8ORZsH9wGpQc3nWTzozMAgBN/XyqYw7mg3yqLM8dLwEnwSfKMmXAjF69g== - dependencies: - semver "^7.1.1" - -npm-normalize-package-bin@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz#25447e32a9a7de1f51362c61a559233b89947832" - integrity sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ== - -npm-package-arg@^10.0.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-10.1.0.tgz#827d1260a683806685d17193073cc152d3c7e9b1" - integrity sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA== - dependencies: - hosted-git-info "^6.0.0" - proc-log "^3.0.0" - semver "^7.3.5" - validate-npm-package-name "^5.0.0" - -npm-packlist@^7.0.0: - version "7.0.4" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-7.0.4.tgz#033bf74110eb74daf2910dc75144411999c5ff32" - integrity sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q== - dependencies: - ignore-walk "^6.0.0" - -npm-pick-manifest@^8.0.0: - version "8.0.2" - resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-8.0.2.tgz#2159778d9c7360420c925c1a2287b5a884c713aa" - integrity sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg== - dependencies: - npm-install-checks "^6.0.0" - npm-normalize-package-bin "^3.0.0" - npm-package-arg "^10.0.0" - semver "^7.3.5" - -npm-registry-fetch@^14.0.0: - version "14.0.5" - resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-14.0.5.tgz#fe7169957ba4986a4853a650278ee02e568d115d" - integrity sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA== - dependencies: - make-fetch-happen "^11.0.0" - minipass "^5.0.0" - minipass-fetch "^3.0.0" - minipass-json-stream "^1.0.1" - minizlib "^2.1.2" - npm-package-arg "^10.0.0" - proc-log "^3.0.0" - npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" @@ -5002,16 +4049,6 @@ npm-run-path@^5.1.0: dependencies: path-key "^4.0.0" -npmlog@^6.0.0: - version "6.0.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830" - integrity sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg== - dependencies: - are-we-there-yet "^3.0.0" - console-control-strings "^1.1.0" - gauge "^4.0.3" - set-blocking "^2.0.0" - object-inspect@^1.13.1: version "1.13.1" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" @@ -5118,11 +4155,6 @@ optionator@^0.9.3: prelude-ls "^1.2.1" type-check "^0.4.0" -p-cancelable@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-3.0.0.tgz#63826694b54d61ca1c20ebcb6d3ecf5e14cd8050" - integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== - p-limit@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" @@ -5172,13 +4204,6 @@ p-locate@^5.0.0: dependencies: p-limit "^3.0.2" -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" @@ -5189,40 +4214,6 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -package-json@^8.1.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-8.1.1.tgz#3e9948e43df40d1e8e78a85485f1070bf8f03dc8" - integrity sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA== - dependencies: - got "^12.1.0" - registry-auth-token "^5.0.1" - registry-url "^6.0.0" - semver "^7.3.7" - -pacote@15.2.0: - version "15.2.0" - resolved "https://registry.yarnpkg.com/pacote/-/pacote-15.2.0.tgz#0f0dfcc3e60c7b39121b2ac612bf8596e95344d3" - integrity sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA== - dependencies: - "@npmcli/git" "^4.0.0" - "@npmcli/installed-package-contents" "^2.0.1" - "@npmcli/promise-spawn" "^6.0.1" - "@npmcli/run-script" "^6.0.0" - cacache "^17.0.0" - fs-minipass "^3.0.0" - minipass "^5.0.0" - npm-package-arg "^10.0.0" - npm-packlist "^7.0.0" - npm-pick-manifest "^8.0.0" - npm-registry-fetch "^14.0.0" - proc-log "^3.0.0" - promise-retry "^2.0.1" - read-package-json "^6.0.0" - read-package-json-fast "^3.0.0" - sigstore "^1.3.0" - ssri "^10.0.0" - tar "^6.1.11" - parent-module@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" @@ -5230,11 +4221,6 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-github-url@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/parse-github-url/-/parse-github-url-1.0.2.tgz#242d3b65cbcdda14bb50439e3242acf6971db395" - integrity sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw== - parse-json@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" @@ -5283,14 +4269,6 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-scurry@^1.10.1: - version "1.10.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" - integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== - dependencies: - lru-cache "^9.1.1 || ^10.0.0" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - path-type@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" @@ -5370,30 +4348,21 @@ pretty-format@^29.7.0: ansi-styles "^5.0.0" react-is "^18.0.0" -proc-log@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-3.0.0.tgz#fb05ef83ccd64fd7b20bbe9c8c1070fc08338dd8" - integrity sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A== - process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -progress@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - -projen@^0.73.37: - version "0.73.37" - resolved "https://registry.yarnpkg.com/projen/-/projen-0.73.37.tgz#b75cd1da989eb512308da52e66affd97c4c93ed7" - integrity sha512-3M5kCkJGcSU7UBi7B1m5svTsZkIr0g6QnhEHHNLI+ujweaP4RlaMIoMOrZQsEpBF7mjFqtF6sSUpYKvrYlJsyw== +projen@^0.77.4: + version "0.77.4" + resolved "https://registry.yarnpkg.com/projen/-/projen-0.77.4.tgz#d05393f49c326b00f42fc3814120fcd6f5fc0881" + integrity sha512-mErPkhiIweZ1GBfr8syClijfqNmPtAu1skOwsrm49lmyEIA8esqQCguzKV1/ytyv1N+4apfOUmkUW/+5dBTbPA== dependencies: "@iarna/toml" "^2.2.5" case "^1.6.3" chalk "^4.1.2" comment-json "4.2.2" + constructs "^10.0.0" conventional-changelog-config-spec "^2.1.0" fast-json-patch "^3.1.1" glob "^8" @@ -5404,27 +4373,6 @@ projen@^0.73.37: yaml "^2.2.2" yargs "^17.7.2" -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== - -promise-retry@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" - integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== - dependencies: - err-code "^2.0.2" - retry "^0.12.0" - -prompts-ncu@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/prompts-ncu/-/prompts-ncu-3.0.0.tgz#716feb4874fca3dbe00af0f3de17a15d43d2228d" - integrity sha512-qyz9UxZ5MlPKWVhWrCmSZ1ahm2GVYdjLb8og2sg0IPth1KRuhcggHGuijz0e41dkx35p1t1q3GRISGH7QGALFA== - dependencies: - kleur "^4.0.1" - sisteransi "^1.0.5" - prompts@^2.0.1: version "2.4.2" resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" @@ -5433,23 +4381,11 @@ prompts@^2.0.1: kleur "^3.0.3" sisteransi "^1.0.5" -proto-list@~1.2.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== - punycode@^2.1.0: version "2.3.0" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== -pupa@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/pupa/-/pupa-3.1.0.tgz#f15610274376bbcc70c9a3aa8b505ea23f41c579" - integrity sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug== - dependencies: - escape-goat "^4.0.0" - pure-rand@^6.0.0: version "6.0.2" resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.2.tgz#a9c2ddcae9b68d736a8163036f088a2781c8b306" @@ -5470,54 +4406,11 @@ quick-lru@^4.0.1: resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== -quick-lru@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" - integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== - -rc-config-loader@^4.1.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/rc-config-loader/-/rc-config-loader-4.1.3.tgz#1352986b8a2d8d96d6fd054a5bb19a60c576876a" - integrity sha512-kD7FqML7l800i6pS6pvLyIE2ncbk9Du8Q0gp/4hMPhJU6ZxApkoLcGD8ZeqgiAlfwZ6BlETq6qqe+12DUL207w== - dependencies: - debug "^4.3.4" - js-yaml "^4.1.0" - json5 "^2.2.2" - require-from-string "^2.0.2" - -rc@1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - react-is@^18.0.0: version "18.2.0" resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== -read-package-json-fast@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz#394908a9725dc7a5f14e70c8e7556dff1d2b1049" - integrity sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw== - dependencies: - json-parse-even-better-errors "^3.0.0" - npm-normalize-package-bin "^3.0.0" - -read-package-json@^6.0.0: - version "6.0.4" - resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-6.0.4.tgz#90318824ec456c287437ea79595f4c2854708836" - integrity sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw== - dependencies: - glob "^10.2.2" - json-parse-even-better-errors "^3.0.0" - normalize-package-data "^5.0.0" - npm-normalize-package-bin "^3.0.0" - read-pkg-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" @@ -5554,7 +4447,7 @@ read-pkg@^5.2.0: parse-json "^5.0.0" type-fest "^0.6.0" -readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.6.0: +readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2: version "3.6.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== @@ -5600,25 +4493,6 @@ regexp.prototype.flags@^1.5.1: define-properties "^1.2.0" set-function-name "^2.0.0" -registry-auth-token@^5.0.1: - version "5.0.2" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-5.0.2.tgz#8b026cc507c8552ebbe06724136267e63302f756" - integrity sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ== - dependencies: - "@pnpm/npm-conf" "^2.1.0" - -registry-url@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-6.0.1.tgz#056d9343680f2f64400032b1e199faa692286c58" - integrity sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q== - dependencies: - rc "1.2.8" - -remote-git-tags@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/remote-git-tags/-/remote-git-tags-3.0.0.tgz#424f8ec2cdea00bb5af1784a49190f25e16983c3" - integrity sha512-C9hAO4eoEsX+OXA4rla66pXZQ+TLQ8T9dttgQj18yuKlPMTVkIkdYXvlMC55IuUsIkV6DpmQYi10JKFLaU+l7w== - repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" @@ -5634,11 +4508,6 @@ require-from-string@^2.0.2: resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== -resolve-alpn@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" - integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== - resolve-cwd@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" @@ -5667,9 +4536,9 @@ resolve.exports@^2.0.0: integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== resolve@^1.1.6: - version "1.22.6" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.6.tgz#dd209739eca3aef739c626fea1b4f3c506195362" - integrity sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw== + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== dependencies: is-core-module "^2.13.0" path-parse "^1.0.7" @@ -5684,18 +4553,6 @@ resolve@^1.10.0, resolve@^1.20.0, resolve@^1.22.4: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -responselike@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-3.0.0.tgz#20decb6c298aff0dbee1c355ca95461d42823626" - integrity sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg== - dependencies: - lowercase-keys "^3.0.0" - -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== - reusify@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" @@ -5713,13 +4570,6 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" -rimraf@^5.0.1: - version "5.0.5" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.5.tgz#9be65d2d6e683447d2e9013da2bf451139a61ccf" - integrity sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A== - dependencies: - glob "^10.3.7" - run-applescript@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-5.0.0.tgz#e11e1c932e055d5c6b40d98374e0268d9b11899c" @@ -5763,18 +4613,6 @@ safe-regex-test@^1.0.0: get-intrinsic "^1.1.3" is-regex "^1.1.4" -"safer-buffer@>= 2.1.2 < 3.0.0": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -semver-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-4.0.0.tgz#3afcf5ed6d62259f5c72d0d5d50dffbdc9680df5" - integrity sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA== - dependencies: - semver "^7.3.5" - semver-intersect@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/semver-intersect/-/semver-intersect-1.4.0.tgz#bdd9c06bedcdd2fedb8cd352c3c43ee8c61321f3" @@ -5782,11 +4620,6 @@ semver-intersect@^1.4.0: dependencies: semver "^5.0.0" -semver-utils@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/semver-utils/-/semver-utils-1.1.4.tgz#cf0405e669a57488913909fc1c3f29bf2a4871e2" - integrity sha512-EjnoLE5OGmDAVV/8YDoN5KiajNadjzIp9BAHOhYeQHt7j0UWxjmgsx4YD48wp4Ue1Qogq38F1GNUJNqF1kKKxA== - "semver@2 || 3 || 4 || 5", semver@^5.0.0: version "5.7.2" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" @@ -5797,18 +4630,13 @@ semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.0.0, semver@^7.1.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.5.1, semver@^7.5.3, semver@^7.5.4: +semver@^7.1.1, semver@^7.3.2, semver@^7.3.4, semver@^7.5.1, semver@^7.5.3, semver@^7.5.4: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== dependencies: lru-cache "^6.0.0" -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== - set-function-length@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed" @@ -5866,27 +4694,11 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: +signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== -signal-exit@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" - integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== - -sigstore@^1.3.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/sigstore/-/sigstore-1.9.0.tgz#1e7ad8933aa99b75c6898ddd0eeebc3eb0d59875" - integrity sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A== - dependencies: - "@sigstore/bundle" "^1.1.0" - "@sigstore/protobuf-specs" "^0.2.0" - "@sigstore/sign" "^1.0.0" - "@sigstore/tuf" "^1.0.3" - make-fetch-happen "^11.0.1" - sisteransi@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" @@ -5897,28 +4709,6 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -smart-buffer@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" - integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== - -socks-proxy-agent@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz#dc069ecf34436621acb41e3efa66ca1b5fed15b6" - integrity sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww== - dependencies: - agent-base "^6.0.2" - debug "^4.3.3" - socks "^2.6.2" - -socks@^2.6.2: - version "2.7.1" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" - integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== - dependencies: - ip "^2.0.0" - smart-buffer "^4.2.0" - sort-json@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/sort-json/-/sort-json-2.0.1.tgz#7338783bef807185dc37d5b02e3afd905d537cfb" @@ -5936,26 +4726,11 @@ source-map-support@0.5.13: buffer-from "^1.0.0" source-map "^0.6.0" -source-map-support@^0.5.21: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - source-map@^0.6.0, source-map@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -spawn-please@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/spawn-please/-/spawn-please-2.0.2.tgz#41912d82fe9504dd5a5424d2b4834e9a6cea56e0" - integrity sha512-KM8coezO6ISQ89c1BzyWNtcn2V2kAVtwIXd3cN/V5a0xPYc1F/vydrRc01wsKFEQ/p+V1a4sw4z2yMITIXrgGw== - dependencies: - cross-spawn "^7.0.3" - spdx-correct@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" @@ -5978,9 +4753,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.15" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.15.tgz#142460aabaca062bc7cd4cc87b7d50725ed6a4ba" - integrity sha512-lpT8hSQp9jAKp9mhtBU4Xjon8LPGBvLIuBiSVhMEtmLecTh2mO0tlqrAMp47tBXzMr13NJMQ2lf7RpQGLJ3HsQ== + version "3.0.16" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz#a14f64e0954f6e25cc6587bd4f392522db0d998f" + integrity sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw== spdx-license-list@^6.6.0: version "6.6.0" @@ -6011,13 +4786,6 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== -ssri@^10.0.0: - version "10.0.5" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.5.tgz#e49efcd6e36385196cb515d3a2ad6c3f0265ef8c" - integrity sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A== - dependencies: - minipass "^7.0.3" - stack-utils@^2.0.3: version "2.0.6" resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" @@ -6074,7 +4842,7 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -6083,15 +4851,6 @@ string-length@^4.0.1: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string-width@^5.0.1, string-width@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - string.prototype.repeat@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/string.prototype.repeat/-/string.prototype.repeat-0.2.0.tgz#aba36de08dcee6a5a337d49b2ea1da1b28fc0ecf" @@ -6143,20 +4902,13 @@ stringify-package@^1.0.1: resolved "https://registry.yarnpkg.com/stringify-package/-/stringify-package-1.0.1.tgz#e5aa3643e7f74d0f28628b72f3dad5cecfc3ba85" integrity sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg== -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: +strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" -strip-ansi@^7.0.1, strip-ansi@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" - integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== - dependencies: - ansi-regex "^6.0.1" - strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -6189,16 +4941,6 @@ strip-json-comments@^3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -strip-json-comments@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-5.0.1.tgz#0d8b7d01b23848ed7dbdf4baaaa31a8250d8cfa0" - integrity sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw== - -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== - supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -6238,18 +4980,6 @@ tapable@^2.2.0: resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== -tar@^6.1.11, tar@^6.1.2: - version "6.2.0" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.0.tgz#b14ce49a79cb1cd23bc9b016302dea5474493f73" - integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^5.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" - test-exclude@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" @@ -6374,15 +5104,6 @@ tslib@^2.5.0, tslib@^2.6.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.1.tgz#fd8c9a0ff42590b25703c0acb3de3d3f4ede0410" integrity sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig== -tuf-js@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/tuf-js/-/tuf-js-1.1.7.tgz#21b7ae92a9373015be77dfe0cb282a80ec3bbe43" - integrity sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg== - dependencies: - "@tufjs/models" "1.0.4" - debug "^4.3.4" - make-fetch-happen "^11.1.1" - type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" @@ -6420,16 +5141,6 @@ type-fest@^0.8.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== -type-fest@^1.0.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" - integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== - -type-fest@^2.13.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" - integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== - typed-array-buffer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" @@ -6469,13 +5180,6 @@ typed-array-length@^1.0.4: for-each "^0.3.3" is-typed-array "^1.1.9" -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" @@ -6516,27 +5220,6 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" -unique-filename@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-3.0.0.tgz#48ba7a5a16849f5080d26c760c86cf5cf05770ea" - integrity sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g== - dependencies: - unique-slug "^4.0.0" - -unique-slug@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-4.0.0.tgz#6bae6bb16be91351badd24cdce741f892a6532e3" - integrity sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ== - dependencies: - imurmurhash "^0.1.4" - -unique-string@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-3.0.0.tgz#84a1c377aff5fd7a8bc6b55d8244b2bd90d75b9a" - integrity sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ== - dependencies: - crypto-random-string "^4.0.0" - universalify@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" @@ -6560,26 +5243,6 @@ update-browserslist-db@^1.0.11: escalade "^3.1.1" picocolors "^1.0.0" -update-notifier@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-6.0.2.tgz#a6990253dfe6d5a02bd04fbb6a61543f55026b60" - integrity sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og== - dependencies: - boxen "^7.0.0" - chalk "^5.0.1" - configstore "^6.0.0" - has-yarn "^3.0.0" - import-lazy "^4.0.0" - is-ci "^3.0.1" - is-installed-globally "^0.4.0" - is-npm "^6.0.0" - is-yarn-global "^0.4.0" - latest-version "^7.0.0" - pupa "^3.1.0" - semver "^7.3.7" - semver-diff "^4.0.0" - xdg-basedir "^5.1.0" - uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -6611,7 +5274,7 @@ v8-to-istanbul@^9.0.1: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0" -validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: +validate-npm-package-license@^3.0.1: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== @@ -6619,13 +5282,6 @@ validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" -validate-npm-package-name@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz#f16afd48318e6f90a1ec101377fa0384cfc8c713" - integrity sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ== - dependencies: - builtins "^5.0.0" - walker@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" @@ -6666,34 +5322,13 @@ which-typed-array@^1.1.13: gopd "^1.0.1" has-tostringtag "^1.0.0" -which@^2.0.1, which@^2.0.2: +which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" -which@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/which/-/which-3.0.1.tgz#89f1cd0c23f629a8105ffe69b8172791c87b4be1" - integrity sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg== - dependencies: - isexe "^2.0.0" - -wide-align@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" - integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== - dependencies: - string-width "^1.0.2 || 2 || 3 || 4" - -widest-line@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-4.0.1.tgz#a0fc673aaba1ea6f0a0d35b3c2795c9a9cc2ebf2" - integrity sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig== - dependencies: - string-width "^5.0.1" - wordwrap@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" @@ -6709,7 +5344,7 @@ workerpool@^6.5.1: resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.5.1.tgz#060f73b39d0caf97c6db64da004cd01b4c099544" integrity sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: +wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -6718,30 +5353,11 @@ workerpool@^6.5.1: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" - integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== - dependencies: - ansi-styles "^6.1.0" - string-width "^5.0.1" - strip-ansi "^7.0.1" - wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -write-file-atomic@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - write-file-atomic@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" @@ -6750,11 +5366,6 @@ write-file-atomic@^4.0.2: imurmurhash "^0.1.4" signal-exit "^3.0.7" -xdg-basedir@^5.0.1, xdg-basedir@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-5.1.0.tgz#1efba19425e73be1bc6f2a6ceb52a3d2c884c0c9" - integrity sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ== - xml@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/xml/-/xml-1.0.1.tgz#78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5" @@ -6796,9 +5407,9 @@ yallist@^4.0.0: integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== yaml@^2.2.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.2.tgz#f522db4313c671a0ca963a75670f1c12ea909144" - integrity sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg== + version "2.3.4" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.4.tgz#53fc1d514be80aabf386dc6001eb29bf3b7523b2" + integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== yargs-parser@^20.2.2, yargs-parser@^20.2.3: version "20.2.9"