@codedrifters/configulator 0.0.86 → 0.0.87
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.d.mts +1311 -0
- package/lib/index.d.ts +1311 -10
- package/lib/index.js +1508 -26
- package/lib/index.js.map +1 -0
- package/lib/index.mjs +1497 -0
- package/lib/index.mjs.map +1 -0
- package/package.json +5 -4
- package/lib/aws/aws-deployment-config.d.ts +0 -78
- package/lib/aws/aws-deployment-config.js +0 -134
- package/lib/aws/aws-deployment-target.d.ts +0 -183
- package/lib/aws/aws-deployment-target.js +0 -163
- package/lib/aws/aws-types.d.ts +0 -63
- package/lib/aws/aws-types.js +0 -9
- package/lib/aws/index.d.ts +0 -2
- package/lib/aws/index.js +0 -19
- package/lib/git/git-types.d.ts +0 -18
- package/lib/git/git-types.js +0 -9
- package/lib/git/index.d.ts +0 -1
- package/lib/git/index.js +0 -18
- package/lib/jsii/index.d.ts +0 -1
- package/lib/jsii/index.js +0 -18
- package/lib/jsii/jsii-faker.d.ts +0 -47
- package/lib/jsii/jsii-faker.js +0 -103
- package/lib/pnpm/index.d.ts +0 -1
- package/lib/pnpm/index.js +0 -18
- package/lib/pnpm/pnpm-workspace.d.ts +0 -244
- package/lib/pnpm/pnpm-workspace.js +0 -176
- package/lib/projects/index.d.ts +0 -2
- package/lib/projects/index.js +0 -19
- package/lib/projects/monorepo-project.d.ts +0 -100
- package/lib/projects/monorepo-project.js +0 -321
- package/lib/projects/typescript-project.d.ts +0 -20
- package/lib/projects/typescript-project.js +0 -199
- package/lib/tasks/index.d.ts +0 -1
- package/lib/tasks/index.js +0 -18
- package/lib/tasks/reset-task.d.ts +0 -51
- package/lib/tasks/reset-task.js +0 -149
- package/lib/turbo/index.d.ts +0 -2
- package/lib/turbo/index.js +0 -19
- package/lib/turbo/turbo-repo-task.d.ts +0 -36
- package/lib/turbo/turbo-repo-task.js +0 -43
- package/lib/turbo/turbo-repo.d.ts +0 -375
- package/lib/turbo/turbo-repo.js +0 -299
- package/lib/typescript/index.d.ts +0 -1
- package/lib/typescript/index.js +0 -18
- package/lib/typescript/typescript-config.d.ts +0 -13
- package/lib/typescript/typescript-config.js +0 -40
- package/lib/versions.d.ts +0 -34
- package/lib/versions.js +0 -38
- package/lib/vscode/index.d.ts +0 -1
- package/lib/vscode/index.js +0 -18
- package/lib/vscode/vscode.d.ts +0 -10
- package/lib/vscode/vscode.js +0 -38
- package/lib/workflows/aws-deploy-workflow.d.ts +0 -86
- package/lib/workflows/aws-deploy-workflow.js +0 -313
- package/lib/workflows/index.d.ts +0 -1
- package/lib/workflows/index.js +0 -18
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import { UpgradeDependencies, UpgradeDependenciesOptions } from "projen/lib/javascript";
|
|
2
|
-
import { TypeScriptAppProject, TypeScriptProjectOptions } from "projen/lib/typescript";
|
|
3
|
-
import { PnpmWorkspaceOptions } from "../pnpm/pnpm-workspace";
|
|
4
|
-
import { ResetTaskOptions } from "../tasks/reset-task";
|
|
5
|
-
import { TurboRepoOptions } from "../turbo/turbo-repo";
|
|
6
|
-
/*******************************************************************************
|
|
7
|
-
*
|
|
8
|
-
* Monorepo Root Project
|
|
9
|
-
*
|
|
10
|
-
* This project should be used as the base project for other projects in a
|
|
11
|
-
* monorepo. The Monorepo root project generally won't contain any code, but it
|
|
12
|
-
* will contain configuration for the monorepo, such as package management,
|
|
13
|
-
* linting, testing, and other project-wide settings.
|
|
14
|
-
*
|
|
15
|
-
******************************************************************************/
|
|
16
|
-
export interface IDependencyResolver {
|
|
17
|
-
resolveDepsAndWritePackageJson(): boolean;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Configuration options for the monorepo.
|
|
21
|
-
*/
|
|
22
|
-
export interface MonorepoProjectOptions extends Omit<TypeScriptProjectOptions, "defaultReleaseBranch"> {
|
|
23
|
-
/**
|
|
24
|
-
* Turn on Turborepo support.
|
|
25
|
-
*
|
|
26
|
-
* @default true
|
|
27
|
-
*/
|
|
28
|
-
turbo?: boolean;
|
|
29
|
-
/**
|
|
30
|
-
* Optionsal options for turborepo config
|
|
31
|
-
*/
|
|
32
|
-
turboOptions?: TurboRepoOptions;
|
|
33
|
-
/**
|
|
34
|
-
* Enable the reset task that deletes all build artifacts.
|
|
35
|
-
*
|
|
36
|
-
* @default true
|
|
37
|
-
*/
|
|
38
|
-
resetTask?: boolean;
|
|
39
|
-
/**
|
|
40
|
-
* Options for the reset task.
|
|
41
|
-
*/
|
|
42
|
-
resetTaskOptions?: ResetTaskOptions;
|
|
43
|
-
/**
|
|
44
|
-
* PNPM options for the monorepo.
|
|
45
|
-
*/
|
|
46
|
-
pnpmOptions?: {
|
|
47
|
-
/**
|
|
48
|
-
* The version of PNPM to use in the monorepo.
|
|
49
|
-
* @default VERSION.PNPM_VERSION
|
|
50
|
-
* @see {@link src/versions.ts}
|
|
51
|
-
*/
|
|
52
|
-
version?: string;
|
|
53
|
-
/**
|
|
54
|
-
* Optional pnpm options for the monorepo workspace file.
|
|
55
|
-
*/
|
|
56
|
-
pnpmWorkspaceOptions?: PnpmWorkspaceOptions;
|
|
57
|
-
};
|
|
58
|
-
/**
|
|
59
|
-
* Turn on the upgrade configurator task that will attempt to upgrade the
|
|
60
|
-
* @codedrifters/configulator package version nightly. This keeps the
|
|
61
|
-
* project up-to-date with the latest official CodeDrifters configs..
|
|
62
|
-
*
|
|
63
|
-
* @default true
|
|
64
|
-
*/
|
|
65
|
-
readonly upgradeConfigulatorTask?: boolean;
|
|
66
|
-
/**
|
|
67
|
-
* Options for the upgrade configurator task.
|
|
68
|
-
*
|
|
69
|
-
* @default: daily schedule
|
|
70
|
-
*/
|
|
71
|
-
readonly upgradeConfigulatorTaskOptions?: UpgradeDependenciesOptions;
|
|
72
|
-
}
|
|
73
|
-
export declare class MonorepoProject extends TypeScriptAppProject {
|
|
74
|
-
/**
|
|
75
|
-
* Version of PNPM which the whole monorepo should use.
|
|
76
|
-
*/
|
|
77
|
-
readonly pnpmVersion: string;
|
|
78
|
-
/**
|
|
79
|
-
* Optional task that will attempt to upgrade the @codedrifters/configulator
|
|
80
|
-
* package version nightly. This keeps the project up-to-date with the latest
|
|
81
|
-
* official CodeDrifters configs.
|
|
82
|
-
*/
|
|
83
|
-
readonly upgradeConfigulatorTask?: UpgradeDependencies;
|
|
84
|
-
/**
|
|
85
|
-
* List of functions to call after dependencies have been installed.
|
|
86
|
-
*/
|
|
87
|
-
private postInstallDependencies;
|
|
88
|
-
constructor(userOptions: MonorepoProjectOptions);
|
|
89
|
-
/**
|
|
90
|
-
* Allows a sub project to request installation of dependency at the Monorepo root
|
|
91
|
-
* They must provide a function that is executed after dependencies have been installed
|
|
92
|
-
* If this function returns true, the install command is run for a second time after all sub project requests have run.
|
|
93
|
-
* This is used to resolve dependency versions from `*` to a concrete version constraint.
|
|
94
|
-
*/
|
|
95
|
-
requestInstallDependencies(resolver: IDependencyResolver): void;
|
|
96
|
-
/**
|
|
97
|
-
* Hooks into the install dependencies cycle
|
|
98
|
-
*/
|
|
99
|
-
postSynthesize(): void;
|
|
100
|
-
}
|
|
@@ -1,321 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MonorepoProject = void 0;
|
|
4
|
-
const javascript_1 = require("projen/lib/javascript");
|
|
5
|
-
const typescript_1 = require("projen/lib/typescript");
|
|
6
|
-
const ts_deepmerge_1 = require("ts-deepmerge");
|
|
7
|
-
const pnpm_workspace_1 = require("../pnpm/pnpm-workspace");
|
|
8
|
-
const reset_task_1 = require("../tasks/reset-task");
|
|
9
|
-
const turbo_repo_1 = require("../turbo/turbo-repo");
|
|
10
|
-
const versions_1 = require("../versions");
|
|
11
|
-
const vscode_1 = require("../vscode/vscode");
|
|
12
|
-
class MonorepoProject extends typescript_1.TypeScriptAppProject {
|
|
13
|
-
constructor(userOptions) {
|
|
14
|
-
/***************************************************************************
|
|
15
|
-
*
|
|
16
|
-
* BUILD WORKFLOW OPTIONS
|
|
17
|
-
*
|
|
18
|
-
* discover some turbo options for build workflow, if needed.
|
|
19
|
-
*
|
|
20
|
-
**************************************************************************/
|
|
21
|
-
const buildWorkflowOptions = userOptions
|
|
22
|
-
.turboOptions?.remoteCacheOptions
|
|
23
|
-
? turbo_repo_1.TurboRepo.buildWorkflowOptions(userOptions.turboOptions.remoteCacheOptions)
|
|
24
|
-
: {};
|
|
25
|
-
/***************************************************************************
|
|
26
|
-
*
|
|
27
|
-
* DEFAULT OPTIONS
|
|
28
|
-
*
|
|
29
|
-
* These are the default options unless you override with option inputs.
|
|
30
|
-
*
|
|
31
|
-
**************************************************************************/
|
|
32
|
-
const defaultOptions = {
|
|
33
|
-
/**
|
|
34
|
-
* Use typescript based config file.
|
|
35
|
-
*/
|
|
36
|
-
projenrcTs: true,
|
|
37
|
-
/**
|
|
38
|
-
* Projen version should be pinned to the local specified version.
|
|
39
|
-
*/
|
|
40
|
-
projenVersion: "catalog:",
|
|
41
|
-
/**
|
|
42
|
-
* Use Prettier for code formatting.
|
|
43
|
-
*/
|
|
44
|
-
prettier: true,
|
|
45
|
-
/**
|
|
46
|
-
* Not licensed by default.
|
|
47
|
-
*/
|
|
48
|
-
licensed: false,
|
|
49
|
-
/**
|
|
50
|
-
* GitHub options for the monorepo.
|
|
51
|
-
* Don't enable mergify by default.
|
|
52
|
-
*/
|
|
53
|
-
githubOptions: {
|
|
54
|
-
mergify: false,
|
|
55
|
-
/**
|
|
56
|
-
* Configure pull request linting to validate PR titles follow Conventional Commits.
|
|
57
|
-
* By default, all conventional commit types are allowed, providing flexibility
|
|
58
|
-
* for different types of changes (features, fixes, documentation, refactoring, etc.).
|
|
59
|
-
*/
|
|
60
|
-
pullRequestLintOptions: {
|
|
61
|
-
semanticTitleOptions: {
|
|
62
|
-
/**
|
|
63
|
-
* Allowed conventional commit types for PR titles.
|
|
64
|
-
* This includes all standard types from the Conventional Commits specification:
|
|
65
|
-
* - feat: New features
|
|
66
|
-
* - fix: Bug fixes
|
|
67
|
-
* - docs: Documentation changes
|
|
68
|
-
* - style: Code style changes (formatting, etc.)
|
|
69
|
-
* - refactor: Code refactoring
|
|
70
|
-
* - perf: Performance improvements
|
|
71
|
-
* - test: Test additions or changes
|
|
72
|
-
* - build: Build system changes
|
|
73
|
-
* - ci: CI configuration changes
|
|
74
|
-
* - chore: Maintenance tasks
|
|
75
|
-
* - revert: Revert commits
|
|
76
|
-
*/
|
|
77
|
-
types: [
|
|
78
|
-
"feat",
|
|
79
|
-
"fix",
|
|
80
|
-
"docs",
|
|
81
|
-
"style",
|
|
82
|
-
"refactor",
|
|
83
|
-
"perf",
|
|
84
|
-
"test",
|
|
85
|
-
"build",
|
|
86
|
-
"ci",
|
|
87
|
-
"chore",
|
|
88
|
-
"revert",
|
|
89
|
-
],
|
|
90
|
-
},
|
|
91
|
-
},
|
|
92
|
-
},
|
|
93
|
-
/**
|
|
94
|
-
* Default PNPM version to use in the monorepo.
|
|
95
|
-
*/
|
|
96
|
-
pnpmVersion: versions_1.VERSION.PNPM_VERSION,
|
|
97
|
-
/**
|
|
98
|
-
* We don't want sample code generated for the root project.
|
|
99
|
-
*/
|
|
100
|
-
sampleCode: false,
|
|
101
|
-
/**
|
|
102
|
-
* Jest is not required in the root project.
|
|
103
|
-
*/
|
|
104
|
-
jest: false,
|
|
105
|
-
/**
|
|
106
|
-
* Don't release the root project.
|
|
107
|
-
*/
|
|
108
|
-
release: false,
|
|
109
|
-
/**
|
|
110
|
-
* Uppgrade dependencies automatically unless otherwise instructed.
|
|
111
|
-
*/
|
|
112
|
-
depsUpgrade: true,
|
|
113
|
-
depsUpgradeOptions: {
|
|
114
|
-
workflowOptions: {
|
|
115
|
-
schedule: javascript_1.UpgradeDependenciesSchedule.WEEKLY,
|
|
116
|
-
},
|
|
117
|
-
cooldown: 1,
|
|
118
|
-
},
|
|
119
|
-
/**
|
|
120
|
-
* Disable tsconfig.dev.json in the root since we aren't going to be
|
|
121
|
-
* developing any code here. It's just a task runner and configuration
|
|
122
|
-
* tool for sub-projects.
|
|
123
|
-
*/
|
|
124
|
-
disableTsconfigDev: true,
|
|
125
|
-
/**
|
|
126
|
-
* Kill the srcdir in the root since we aren't using one.
|
|
127
|
-
*/
|
|
128
|
-
tsconfig: {
|
|
129
|
-
compilerOptions: {
|
|
130
|
-
rootDir: undefined,
|
|
131
|
-
},
|
|
132
|
-
exclude: ["node_modules"],
|
|
133
|
-
},
|
|
134
|
-
/**
|
|
135
|
-
* Enable turborepo by default.
|
|
136
|
-
*/
|
|
137
|
-
turbo: true,
|
|
138
|
-
/**
|
|
139
|
-
* Enable reset task by default.
|
|
140
|
-
*/
|
|
141
|
-
resetTask: true,
|
|
142
|
-
/**
|
|
143
|
-
* Include self as a devDep
|
|
144
|
-
*/
|
|
145
|
-
devDeps: ["@codedrifters/configulator", "@codedrifters/utils"],
|
|
146
|
-
/**
|
|
147
|
-
* PNPM options for the monorepo.
|
|
148
|
-
*/
|
|
149
|
-
pnpmOptions: {
|
|
150
|
-
pnpmWorkspaceOptions: {
|
|
151
|
-
defaultCatalog: {
|
|
152
|
-
["aws-cdk"]: versions_1.VERSION.AWS_CDK_CLI_VERSION,
|
|
153
|
-
["aws-cdk-lib"]: versions_1.VERSION.AWS_CDK_LIB_VERSION,
|
|
154
|
-
["projen"]: versions_1.VERSION.PROJEN_VERSION,
|
|
155
|
-
["constructs"]: versions_1.VERSION.AWS_CONSTRUCTS_VERSION,
|
|
156
|
-
["turbo"]: versions_1.VERSION.TURBO_VERSION,
|
|
157
|
-
},
|
|
158
|
-
},
|
|
159
|
-
},
|
|
160
|
-
};
|
|
161
|
-
/***************************************************************************
|
|
162
|
-
*
|
|
163
|
-
* REQUIRED OPTIONS
|
|
164
|
-
*
|
|
165
|
-
* These options cannot be changed by the user.
|
|
166
|
-
*
|
|
167
|
-
**************************************************************************/
|
|
168
|
-
const requiredOptions = {
|
|
169
|
-
/**
|
|
170
|
-
* This is required because it's standard practice and also to simplify
|
|
171
|
-
* some workflow design.
|
|
172
|
-
*/
|
|
173
|
-
defaultReleaseBranch: "main",
|
|
174
|
-
/**
|
|
175
|
-
* Use PNPM instead of the default (Yarn). Much of the ecosystem depends
|
|
176
|
-
* on PNPM and making monorepos PNPM only simplifies many configurations.
|
|
177
|
-
*/
|
|
178
|
-
packageManager: javascript_1.NodePackageManager.PNPM,
|
|
179
|
-
/**
|
|
180
|
-
* Some additional pre-build steps if we're using turbo's remote cache.
|
|
181
|
-
*/
|
|
182
|
-
buildWorkflowOptions: {
|
|
183
|
-
permissions: {
|
|
184
|
-
...buildWorkflowOptions?.permissions,
|
|
185
|
-
...userOptions.buildWorkflowOptions?.permissions,
|
|
186
|
-
},
|
|
187
|
-
preBuildSteps: [
|
|
188
|
-
...(buildWorkflowOptions?.preBuildSteps ?? []),
|
|
189
|
-
...(userOptions.buildWorkflowOptions?.preBuildSteps ?? []),
|
|
190
|
-
],
|
|
191
|
-
},
|
|
192
|
-
};
|
|
193
|
-
/***************************************************************************
|
|
194
|
-
*
|
|
195
|
-
* CONSTRUCTOR
|
|
196
|
-
*
|
|
197
|
-
* Combines default options with user provided options and required options.
|
|
198
|
-
* Store the options in a const so we can use them after super(), farther
|
|
199
|
-
* into the constructor for additional configuration.
|
|
200
|
-
*
|
|
201
|
-
**************************************************************************/
|
|
202
|
-
const options = (0, ts_deepmerge_1.merge)(defaultOptions, userOptions, requiredOptions);
|
|
203
|
-
super({ ...options });
|
|
204
|
-
/**
|
|
205
|
-
* List of functions to call after dependencies have been installed.
|
|
206
|
-
*/
|
|
207
|
-
this.postInstallDependencies = new Array();
|
|
208
|
-
/***************************************************************************
|
|
209
|
-
*
|
|
210
|
-
* PUBLIC PROPS
|
|
211
|
-
*
|
|
212
|
-
* Some props are hidden by Projen and we need to expose them for the
|
|
213
|
-
* monorepo to work properly. This is where we store them.
|
|
214
|
-
*
|
|
215
|
-
**************************************************************************/
|
|
216
|
-
this.pnpmVersion = options.pnpmVersion;
|
|
217
|
-
/***************************************************************************
|
|
218
|
-
*
|
|
219
|
-
* CUSTOM CONFIGS
|
|
220
|
-
*
|
|
221
|
-
* We add some additional configurations to the monorepo root project below
|
|
222
|
-
* such as Turborepo, VS Code config, and the PNPM workspace file.
|
|
223
|
-
*
|
|
224
|
-
**************************************************************************/
|
|
225
|
-
/**
|
|
226
|
-
* Add VSCode configuration
|
|
227
|
-
*/
|
|
228
|
-
new vscode_1.VSCodeConfig(this);
|
|
229
|
-
/**
|
|
230
|
-
* Add workspace definition to PNPM root
|
|
231
|
-
*/
|
|
232
|
-
new pnpm_workspace_1.PnpmWorkspace(this, options.pnpmOptions?.pnpmWorkspaceOptions);
|
|
233
|
-
/**
|
|
234
|
-
* Turn on turborepo support if requested.
|
|
235
|
-
*/
|
|
236
|
-
if (options.turbo) {
|
|
237
|
-
new turbo_repo_1.TurboRepo(this, options.turboOptions);
|
|
238
|
-
this.buildWorkflow?.addPostBuildSteps({
|
|
239
|
-
name: "Build Sub Projects",
|
|
240
|
-
run: `npx projen ${turbo_repo_1.ROOT_CI_TASK_NAME}`,
|
|
241
|
-
});
|
|
242
|
-
}
|
|
243
|
-
/**
|
|
244
|
-
* Add reset task if enabled.
|
|
245
|
-
*/
|
|
246
|
-
if (options.resetTask !== false) {
|
|
247
|
-
const defaultResetTaskOptions = {
|
|
248
|
-
pathsToRemove: ["node_modules", ".turbo", "dist", "lib"],
|
|
249
|
-
};
|
|
250
|
-
const userResetTaskOptions = options.resetTaskOptions ?? {};
|
|
251
|
-
const resetTaskOptions = (0, ts_deepmerge_1.merge)(defaultResetTaskOptions, {
|
|
252
|
-
...userResetTaskOptions,
|
|
253
|
-
pathsToRemove: [
|
|
254
|
-
...(defaultResetTaskOptions.pathsToRemove ?? []),
|
|
255
|
-
...(userResetTaskOptions.pathsToRemove ?? []),
|
|
256
|
-
],
|
|
257
|
-
});
|
|
258
|
-
new reset_task_1.ResetTask(this, resetTaskOptions);
|
|
259
|
-
}
|
|
260
|
-
/**
|
|
261
|
-
* Specify package manager
|
|
262
|
-
*/
|
|
263
|
-
// const pnpmVersion = options.pnpmVersion ?? VERSION.PNPM_VERSION;
|
|
264
|
-
this.package.file.addOverride("packageManager", `pnpm@${options.pnpmVersion}`);
|
|
265
|
-
/**
|
|
266
|
-
* Add some silly things to the gitignore.
|
|
267
|
-
*/
|
|
268
|
-
this.gitignore?.addPatterns(".DS_Store");
|
|
269
|
-
/**
|
|
270
|
-
* Use catalog version for constructs version
|
|
271
|
-
*/
|
|
272
|
-
this.addDevDeps("constructs@catalog:");
|
|
273
|
-
/**
|
|
274
|
-
* Add a task on the monorepo's root project that will attempt to upgrade
|
|
275
|
-
* the @codedrifters/configulator package version nightly. This keeps the
|
|
276
|
-
* project up-to-date with the latest official CodeDrifters configs..
|
|
277
|
-
*/
|
|
278
|
-
if (options.upgradeConfigulatorTask !== false) {
|
|
279
|
-
this.upgradeConfigulatorTask = new javascript_1.UpgradeDependencies(this, (0, ts_deepmerge_1.merge)({
|
|
280
|
-
include: ["@codedrifters/configulator", "@codedrifters/utils"],
|
|
281
|
-
taskName: `upgrade-codedrifters-configulator`,
|
|
282
|
-
workflowOptions: {
|
|
283
|
-
schedule: javascript_1.UpgradeDependenciesSchedule.DAILY,
|
|
284
|
-
},
|
|
285
|
-
}, options.upgradeConfigulatorTaskOptions ?? {}));
|
|
286
|
-
}
|
|
287
|
-
/**
|
|
288
|
-
* Update all packages after the root of the monorepo's updated.
|
|
289
|
-
* Run the default task after the upgrade to ensure all packages are
|
|
290
|
-
* updated. In particular make sure the pnpm-workspace file was not
|
|
291
|
-
* tampered with during the upgrade.
|
|
292
|
-
*/
|
|
293
|
-
this.tasks.tryFind("post-upgrade")?.exec("pnpm upgrade -r");
|
|
294
|
-
this.tasks.tryFind("post-upgrade")?.spawn(this.defaultTask);
|
|
295
|
-
}
|
|
296
|
-
/**
|
|
297
|
-
* Allows a sub project to request installation of dependency at the Monorepo root
|
|
298
|
-
* They must provide a function that is executed after dependencies have been installed
|
|
299
|
-
* If this function returns true, the install command is run for a second time after all sub project requests have run.
|
|
300
|
-
* This is used to resolve dependency versions from `*` to a concrete version constraint.
|
|
301
|
-
*/
|
|
302
|
-
requestInstallDependencies(resolver) {
|
|
303
|
-
this.postInstallDependencies.push(resolver.resolveDepsAndWritePackageJson);
|
|
304
|
-
}
|
|
305
|
-
/**
|
|
306
|
-
* Hooks into the install dependencies cycle
|
|
307
|
-
*/
|
|
308
|
-
postSynthesize() {
|
|
309
|
-
if (this.postInstallDependencies.length) {
|
|
310
|
-
const nodePkg = this.package;
|
|
311
|
-
nodePkg.installDependencies();
|
|
312
|
-
const completedRequests = this.postInstallDependencies.map((request) => request());
|
|
313
|
-
if (completedRequests.some(Boolean)) {
|
|
314
|
-
nodePkg.installDependencies();
|
|
315
|
-
}
|
|
316
|
-
this.postInstallDependencies = [];
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
exports.MonorepoProject = MonorepoProject;
|
|
321
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ub3JlcG8tcHJvamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9qZWN0cy9tb25vcmVwby1wcm9qZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHNEQUsrQjtBQUMvQixzREFHK0I7QUFDL0IsK0NBQXFDO0FBQ3JDLDJEQUE2RTtBQUM3RSxvREFBa0U7QUFDbEUsb0RBSTZCO0FBQzdCLDBDQUFzQztBQUN0Qyw2Q0FBZ0Q7QUFxRmhELE1BQWEsZUFBZ0IsU0FBUSxpQ0FBb0I7SUFrQnZELFlBQVksV0FBbUM7UUFDN0M7Ozs7OztvRkFNNEU7UUFFNUUsTUFBTSxvQkFBb0IsR0FBa0MsV0FBVzthQUNwRSxZQUFZLEVBQUUsa0JBQWtCO1lBQ2pDLENBQUMsQ0FBQyxzQkFBUyxDQUFDLG9CQUFvQixDQUM1QixXQUFXLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUM1QztZQUNILENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFUDs7Ozs7O29GQU00RTtRQUU1RSxNQUFNLGNBQWMsR0FHaEI7WUFDRjs7ZUFFRztZQUNILFVBQVUsRUFBRSxJQUFJO1lBRWhCOztlQUVHO1lBQ0gsYUFBYSxFQUFFLFVBQVU7WUFFekI7O2VBRUc7WUFDSCxRQUFRLEVBQUUsSUFBSTtZQUVkOztlQUVHO1lBQ0gsUUFBUSxFQUFFLEtBQUs7WUFFZjs7O2VBR0c7WUFDSCxhQUFhLEVBQUU7Z0JBQ2IsT0FBTyxFQUFFLEtBQUs7Z0JBRWQ7Ozs7bUJBSUc7Z0JBQ0gsc0JBQXNCLEVBQUU7b0JBQ3RCLG9CQUFvQixFQUFFO3dCQUNwQjs7Ozs7Ozs7Ozs7Ozs7MkJBY0c7d0JBQ0gsS0FBSyxFQUFFOzRCQUNMLE1BQU07NEJBQ04sS0FBSzs0QkFDTCxNQUFNOzRCQUNOLE9BQU87NEJBQ1AsVUFBVTs0QkFDVixNQUFNOzRCQUNOLE1BQU07NEJBQ04sT0FBTzs0QkFDUCxJQUFJOzRCQUNKLE9BQU87NEJBQ1AsUUFBUTt5QkFDVDtxQkFDRjtpQkFD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MENBa1lDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnVpbGRXb3JrZmxvd09wdGlvbnMgfSBmcm9tIFwicHJvamVuL2xpYi9idWlsZFwiO1xuaW1wb3J0IHtcbiAgTm9kZVBhY2thZ2VNYW5hZ2VyLFxuICBVcGdyYWRlRGVwZW5kZW5jaWVzLFxuICBVcGdyYWRlRGVwZW5kZW5jaWVzT3B0aW9ucyxcbiAgVXBncmFkZURlcGVuZGVuY2llc1NjaGVkdWxlLFxufSBmcm9tIFwicHJvamVuL2xpYi9qYXZhc2NyaXB0XCI7XG5pbXBvcnQge1xuICBUeXBlU2NyaXB0QXBwUHJvamVjdCxcbiAgVHlwZVNjcmlwdFByb2plY3RPcHRpb25zLFxufSBmcm9tIFwicHJvamVuL2xpYi90eXBlc2NyaXB0XCI7XG5pbXBvcnQgeyBtZXJnZSB9IGZyb20gXCJ0cy1kZWVwbWVyZ2VcIjtcbmltcG9ydCB7IFBucG1Xb3Jrc3BhY2UsIFBucG1Xb3Jrc3BhY2VPcHRpb25zIH0gZnJvbSBcIi4uL3BucG0vcG5wbS13b3Jrc3BhY2VcIjtcbmltcG9ydCB7IFJlc2V0VGFzaywgUmVzZXRUYXNrT3B0aW9ucyB9IGZyb20gXCIuLi90YXNrcy9yZXNldC10YXNrXCI7XG5pbXBvcnQge1xuICBST09UX0NJX1RBU0tfTkFNRSxcbiAgVHVyYm9SZXBvLFxuICBUdXJib1JlcG9PcHRpb25zLFxufSBmcm9tIFwiLi4vdHVyYm8vdHVyYm8tcmVwb1wiO1xuaW1wb3J0IHsgVkVSU0lPTiB9IGZyb20gXCIuLi92ZXJzaW9uc1wiO1xuaW1wb3J0IHsgVlNDb2RlQ29uZmlnIH0gZnJvbSBcIi4uL3ZzY29kZS92c2NvZGVcIjtcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqXG4gKiBNb25vcmVwbyBSb290IFByb2plY3RcbiAqXG4gKiBUaGlzIHByb2plY3Qgc2hvdWxkIGJlIHVzZWQgYXMgdGhlIGJhc2UgcHJvamVjdCBmb3Igb3RoZXIgcHJvamVjdHMgaW4gYVxuICogbW9ub3JlcG8uIFRoZSBNb25vcmVwbyByb290IHByb2plY3QgZ2VuZXJhbGx5IHdvbid0IGNvbnRhaW4gYW55IGNvZGUsIGJ1dCBpdFxuICogd2lsbCBjb250YWluIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBtb25vcmVwbywgc3VjaCBhcyBwYWNrYWdlIG1hbmFnZW1lbnQsXG4gKiBsaW50aW5nLCB0ZXN0aW5nLCBhbmQgb3RoZXIgcHJvamVjdC13aWRlIHNldHRpbmdzLlxuICpcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbmV4cG9ydCBpbnRlcmZhY2UgSURlcGVuZGVuY3lSZXNvbHZlciB7XG4gIHJlc29sdmVEZXBzQW5kV3JpdGVQYWNrYWdlSnNvbigpOiBib29sZWFuO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIG1vbm9yZXBvLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1vbm9yZXBvUHJvamVjdE9wdGlvbnMgZXh0ZW5kcyBPbWl0PFxuICBUeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMsXG4gIFwiZGVmYXVsdFJlbGVhc2VCcmFuY2hcIlxuPiB7XG4gIC8qKlxuICAgKiBUdXJuIG9uIFR1cmJvcmVwbyBzdXBwb3J0LlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICB0dXJibz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9wdGlvbnNhbCBvcHRpb25zIGZvciB0dXJib3JlcG8gY29uZmlnXG4gICAqL1xuICB0dXJib09wdGlvbnM/OiBUdXJib1JlcG9PcHRpb25zO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgdGhlIHJlc2V0IHRhc2sgdGhhdCBkZWxldGVzIGFsbCBidWlsZCBhcnRpZmFjdHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlc2V0VGFzaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIHRoZSByZXNldCB0YXNrLlxuICAgKi9cbiAgcmVzZXRUYXNrT3B0aW9ucz86IFJlc2V0VGFza09wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFBOUE0gb3B0aW9ucyBmb3IgdGhlIG1vbm9yZXBvLlxuICAgKi9cbiAgcG5wbU9wdGlvbnM/OiB7XG4gICAgLyoqXG4gICAgICogVGhlIHZlcnNpb24gb2YgUE5QTSB0byB1c2UgaW4gdGhlIG1vbm9yZXBvLlxuICAgICAqIEBkZWZhdWx0IFZFUlNJT04uUE5QTV9WRVJTSU9OXG4gICAgICogQHNlZSB7QGxpbmsgc3JjL3ZlcnNpb25zLnRzfVxuICAgICAqL1xuICAgIHZlcnNpb24/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBPcHRpb25hbCBwbnBtIG9wdGlvbnMgZm9yIHRoZSBtb25vcmVwbyB3b3Jrc3BhY2UgZmlsZS5cbiAgICAgKi9cbiAgICBwbnBtV29ya3NwYWNlT3B0aW9ucz86IFBucG1Xb3Jrc3BhY2VPcHRpb25zO1xuICB9O1xuXG4gIC8qKlxuICAgKiBUdXJuIG9uIHRoZSB1cGdyYWRlIGNvbmZpZ3VyYXRvciB0YXNrIHRoYXQgd2lsbCBhdHRlbXB0IHRvIHVwZ3JhZGUgdGhlXG4gICAqIEBjb2RlZHJpZnRlcnMvY29uZmlndWxhdG9yIHBhY2thZ2UgdmVyc2lvbiBuaWdodGx5LiBUaGlzIGtlZXBzIHRoZVxuICAgKiBwcm9qZWN0IHVwLXRvLWRhdGUgd2l0aCB0aGUgbGF0ZXN0IG9mZmljaWFsIENvZGVEcmlmdGVycyBjb25maWdzLi5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgdXBncmFkZUNvbmZpZ3VsYXRvclRhc2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciB0aGUgdXBncmFkZSBjb25maWd1cmF0b3IgdGFzay5cbiAgICpcbiAgICogQGRlZmF1bHQ6IGRhaWx5IHNjaGVkdWxlXG4gICAqL1xuICByZWFkb25seSB1cGdyYWRlQ29uZmlndWxhdG9yVGFza09wdGlvbnM/OiBVcGdyYWRlRGVwZW5kZW5jaWVzT3B0aW9ucztcbn1cblxuaW50ZXJmYWNlIEFwcGxpZWRPcHRpb25zXG4gIGV4dGVuZHMgVHlwZVNjcmlwdFByb2plY3RPcHRpb25zLCBNb25vcmVwb1Byb2plY3RPcHRpb25zIHt9XG5cbmV4cG9ydCBjbGFzcyBNb25vcmVwb1Byb2plY3QgZXh0ZW5kcyBUeXBlU2NyaXB0QXBwUHJvamVjdCB7XG4gIC8qKlxuICAgKiBWZXJzaW9uIG9mIFBOUE0gd2hpY2ggdGhlIHdob2xlIG1vbm9yZXBvIHNob3VsZCB1c2UuXG4gICAqL1xuICByZWFkb25seSBwbnBtVmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCB0YXNrIHRoYXQgd2lsbCBhdHRlbXB0IHRvIHVwZ3JhZGUgdGhlIEBjb2RlZHJpZnRlcnMvY29uZmlndWxhdG9yXG4gICAqIHBhY2thZ2UgdmVyc2lvbiBuaWdodGx5LiBUaGlzIGtlZXBzIHRoZSBwcm9qZWN0IHVwLXRvLWRhdGUgd2l0aCB0aGUgbGF0ZXN0XG4gICAqIG9mZmljaWFsIENvZGVEcmlmdGVycyBjb25maWdzLlxuICAgKi9cbiAgcmVhZG9ubHkgdXBncmFkZUNvbmZpZ3VsYXRvclRhc2s/OiBVcGdyYWRlRGVwZW5kZW5jaWVzO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGZ1bmN0aW9ucyB0byBjYWxsIGFmdGVyIGRlcGVuZGVuY2llcyBoYXZlIGJlZW4gaW5zdGFsbGVkLlxuICAgKi9cbiAgcHJpdmF0ZSBwb3N0SW5zdGFsbERlcGVuZGVuY2llcyA9IG5ldyBBcnJheTwoKSA9PiBib29sZWFuPigpO1xuXG4gIGNvbnN0cnVjdG9yKHVzZXJPcHRpb25zOiBNb25vcmVwb1Byb2plY3RPcHRpb25zKSB7XG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqXG4gICAgICogQlVJTEQgV09SS0ZMT1cgT1BUSU9OU1xuICAgICAqXG4gICAgICogZGlzY292ZXIgc29tZSB0dXJibyBvcHRpb25zIGZvciBidWlsZCB3b3JrZmxvdywgaWYgbmVlZGVkLlxuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgY29uc3QgYnVpbGRXb3JrZmxvd09wdGlvbnM6IFBhcnRpYWw8QnVpbGRXb3JrZmxvd09wdGlvbnM+ID0gdXNlck9wdGlvbnNcbiAgICAgIC50dXJib09wdGlvbnM/LnJlbW90ZUNhY2hlT3B0aW9uc1xuICAgICAgPyBUdXJib1JlcG8uYnVpbGRXb3JrZmxvd09wdGlvbnMoXG4gICAgICAgICAgdXNlck9wdGlvbnMudHVyYm9PcHRpb25zLnJlbW90ZUNhY2hlT3B0aW9ucyxcbiAgICAgICAgKVxuICAgICAgOiB7fTtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKlxuICAgICAqIERFRkFVTFQgT1BUSU9OU1xuICAgICAqXG4gICAgICogVGhlc2UgYXJlIHRoZSBkZWZhdWx0IG9wdGlvbnMgdW5sZXNzIHlvdSBvdmVycmlkZSB3aXRoIG9wdGlvbiBpbnB1dHMuXG4gICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICBjb25zdCBkZWZhdWx0T3B0aW9uczogT21pdDxcbiAgICAgIE1vbm9yZXBvUHJvamVjdE9wdGlvbnMsXG4gICAgICBcIm5hbWVcIiB8IFwiZGVmYXVsdFJlbGVhc2VCcmFuY2hcIlxuICAgID4gPSB7XG4gICAgICAvKipcbiAgICAgICAqIFVzZSB0eXBlc2NyaXB0IGJhc2VkIGNvbmZpZyBmaWxlLlxuICAgICAgICovXG4gICAgICBwcm9qZW5yY1RzOiB0cnVlLFxuXG4gICAgICAvKipcbiAgICAgICAqIFByb2plbiB2ZXJzaW9uIHNob3VsZCBiZSBwaW5uZWQgdG8gdGhlIGxvY2FsIHNwZWNpZmllZCB2ZXJzaW9uLlxuICAgICAgICovXG4gICAgICBwcm9qZW5WZXJzaW9uOiBcImNhdGFsb2c6XCIsXG5cbiAgICAgIC8qKlxuICAgICAgICogVXNlIFByZXR0aWVyIGZvciBjb2RlIGZvcm1hdHRpbmcuXG4gICAgICAgKi9cbiAgICAgIHByZXR0aWVyOiB0cnVlLFxuXG4gICAgICAvKipcbiAgICAgICAqIE5vdCBsaWNlbnNlZCBieSBkZWZhdWx0LlxuICAgICAgICovXG4gICAgICBsaWNlbnNlZDogZmFsc2UsXG5cbiAgICAgIC8qKlxuICAgICAgICogR2l0SHViIG9wdGlvbnMgZm9yIHRoZSBtb25vcmVwby5cbiAgICAgICAqIERvbid0IGVuYWJsZSBtZXJnaWZ5IGJ5IGRlZmF1bHQuXG4gICAgICAgKi9cbiAgICAgIGdpdGh1Yk9wdGlvbnM6IHtcbiAgICAgICAgbWVyZ2lmeTogZmFsc2UsXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIENvbmZpZ3VyZSBwdWxsIHJlcXVlc3QgbGludGluZyB0byB2YWxpZGF0ZSBQUiB0aXRsZXMgZm9sbG93IENvbnZlbnRpb25hbCBDb21taXRzLlxuICAgICAgICAgKiBCeSBkZWZhdWx0LCBhbGwgY29udmVudGlvbmFsIGNvbW1pdCB0eXBlcyBhcmUgYWxsb3dlZCwgcHJvdmlkaW5nIGZsZXhpYmlsaXR5XG4gICAgICAgICAqIGZvciBkaWZmZXJlbnQgdHlwZXMgb2YgY2hhbmdlcyAoZmVhdHVyZXMsIGZpeGVzLCBkb2N1bWVudGF0aW9uLCByZWZhY3RvcmluZywgZXRjLikuXG4gICAgICAgICAqL1xuICAgICAgICBwdWxsUmVxdWVzdExpbnRPcHRpb25zOiB7XG4gICAgICAgICAgc2VtYW50aWNUaXRsZU9wdGlvbnM6IHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQWxsb3dlZCBjb252ZW50aW9uYWwgY29tbWl0IHR5cGVzIGZvciBQUiB0aXRsZXMuXG4gICAgICAgICAgICAgKiBUaGlzIGluY2x1ZGVzIGFsbCBzdGFuZGFyZCB0eXBlcyBmcm9tIHRoZSBDb252ZW50aW9uYWwgQ29tbWl0cyBzcGVjaWZpY2F0aW9uOlxuICAgICAgICAgICAgICogLSBmZWF0OiBOZXcgZmVhdHVyZXNcbiAgICAgICAgICAgICAqIC0gZml4OiBCdWcgZml4ZXNcbiAgICAgICAgICAgICAqIC0gZG9jczogRG9jdW1lbnRhdGlvbiBjaGFuZ2VzXG4gICAgICAgICAgICAgKiAtIHN0eWxlOiBDb2RlIHN0eWxlIGNoYW5nZXMgKGZvcm1hdHRpbmcsIGV0Yy4pXG4gICAgICAgICAgICAgKiAtIHJlZmFjdG9yOiBDb2RlIHJlZmFjdG9yaW5nXG4gICAgICAgICAgICAgKiAtIHBlcmY6IFBlcmZvcm1hbmNlIGltcHJvdmVtZW50c1xuICAgICAgICAgICAgICogLSB0ZXN0OiBUZXN0IGFkZGl0aW9ucyBvciBjaGFuZ2VzXG4gICAgICAgICAgICAgKiAtIGJ1aWxkOiBCdWlsZCBzeXN0ZW0gY2hhbmdlc1xuICAgICAgICAgICAgICogLSBjaTogQ0kgY29uZmlndXJhdGlvbiBjaGFuZ2VzXG4gICAgICAgICAgICAgKiAtIGNob3JlOiBNYWludGVuYW5jZSB0YXNrc1xuICAgICAgICAgICAgICogLSByZXZlcnQ6IFJldmVydCBjb21taXRzXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHR5cGVzOiBbXG4gICAgICAgICAgICAgIFwiZmVhdFwiLFxuICAgICAgICAgICAgICBcImZpeFwiLFxuICAgICAgICAgICAgICBcImRvY3NcIixcbiAgICAgICAgICAgICAgXCJzdHlsZVwiLFxuICAgICAgICAgICAgICBcInJlZmFjdG9yXCIsXG4gICAgICAgICAgICAgIFwicGVyZlwiLFxuICAgICAgICAgICAgICBcInRlc3RcIixcbiAgICAgICAgICAgICAgXCJidWlsZFwiLFxuICAgICAgICAgICAgICBcImNpXCIsXG4gICAgICAgICAgICAgIFwiY2hvcmVcIixcbiAgICAgICAgICAgICAgXCJyZXZlcnRcIixcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG5cbiAgICAgIC8qKlxuICAgICAgICogRGVmYXVsdCBQTlBNIHZlcnNpb24gdG8gdXNlIGluIHRoZSBtb25vcmVwby5cbiAgICAgICAqL1xuICAgICAgcG5wbVZlcnNpb246IFZFUlNJT04uUE5QTV9WRVJTSU9OLFxuXG4gICAgICAvKipcbiAgICAgICAqIFdlIGRvbid0IHdhbnQgc2FtcGxlIGNvZGUgZ2VuZXJhdGVkIGZvciB0aGUgcm9vdCBwcm9qZWN0LlxuICAgICAgICovXG4gICAgICBzYW1wbGVDb2RlOiBmYWxzZSxcblxuICAgICAgLyoqXG4gICAgICAgKiBKZXN0IGlzIG5vdCByZXF1aXJlZCBpbiB0aGUgcm9vdCBwcm9qZWN0LlxuICAgICAgICovXG4gICAgICBqZXN0OiBmYWxzZSxcblxuICAgICAgLyoqXG4gICAgICAgKiBEb24ndCByZWxlYXNlIHRoZSByb290IHByb2plY3QuXG4gICAgICAgKi9cbiAgICAgIHJlbGVhc2U6IGZhbHNlLFxuXG4gICAgICAvKipcbiAgICAgICAqIFVwcGdyYWRlIGRlcGVuZGVuY2llcyBhdXRvbWF0aWNhbGx5IHVubGVzcyBvdGhlcndpc2UgaW5zdHJ1Y3RlZC5cbiAgICAgICAqL1xuICAgICAgZGVwc1VwZ3JhZGU6IHRydWUsXG4gICAgICBkZXBzVXBncmFkZU9wdGlvbnM6IHtcbiAgICAgICAgd29ya2Zsb3dPcHRpb25zOiB7XG4gICAgICAgICAgc2NoZWR1bGU6IFVwZ3JhZGVEZXBlbmRlbmNpZXNTY2hlZHVsZS5XRUVLTFksXG4gICAgICAgIH0sXG4gICAgICAgIGNvb2xkb3duOiAxLFxuICAgICAgfSxcblxuICAgICAgLyoqXG4gICAgICAgKiBEaXNhYmxlIHRzY29uZmlnLmRldi5qc29uIGluIHRoZSByb290IHNpbmNlIHdlIGFyZW4ndCBnb2luZyB0byBiZVxuICAgICAgICogZGV2ZWxvcGluZyBhbnkgY29kZSBoZXJlLiBJdCdzIGp1c3QgYSB0YXNrIHJ1bm5lciBhbmQgY29uZmlndXJhdGlvblxuICAgICAgICogdG9vbCBmb3Igc3ViLXByb2plY3RzLlxuICAgICAgICovXG4gICAgICBkaXNhYmxlVHNjb25maWdEZXY6IHRydWUsXG5cbiAgICAgIC8qKlxuICAgICAgICogS2lsbCB0aGUgc3JjZGlyIGluIHRoZSByb290IHNpbmNlIHdlIGFyZW4ndCB1c2luZyBvbmUuXG4gICAgICAgKi9cbiAgICAgIHRzY29uZmlnOiB7XG4gICAgICAgIGNvbXBpbGVyT3B0aW9uczoge1xuICAgICAgICAgIHJvb3REaXI6IHVuZGVmaW5lZCxcbiAgICAgICAgfSxcbiAgICAgICAgZXhjbHVkZTogW1wibm9kZV9tb2R1bGVzXCJdLFxuICAgICAgfSxcblxuICAgICAgLyoqXG4gICAgICAgKiBFbmFibGUgdHVyYm9yZXBvIGJ5IGRlZmF1bHQuXG4gICAgICAgKi9cbiAgICAgIHR1cmJvOiB0cnVlLFxuXG4gICAgICAvKipcbiAgICAgICAqIEVuYWJsZSByZXNldCB0YXNrIGJ5IGRlZmF1bHQuXG4gICAgICAgKi9cbiAgICAgIHJlc2V0VGFzazogdHJ1ZSxcblxuICAgICAgLyoqXG4gICAgICAgKiBJbmNsdWRlIHNlbGYgYXMgYSBkZXZEZXBcbiAgICAgICAqL1xuICAgICAgZGV2RGVwczogW1wiQGNvZGVkcmlmdGVycy9jb25maWd1bGF0b3JcIiwgXCJAY29kZWRyaWZ0ZXJzL3V0aWxzXCJdLFxuXG4gICAgICAvKipcbiAgICAgICAqIFBOUE0gb3B0aW9ucyBmb3IgdGhlIG1vbm9yZXBvLlxuICAgICAgICovXG4gICAgICBwbnBtT3B0aW9uczoge1xuICAgICAgICBwbnBtV29ya3NwYWNlT3B0aW9uczoge1xuICAgICAgICAgIGRlZmF1bHRDYXRhbG9nOiB7XG4gICAgICAgICAgICBbXCJhd3MtY2RrXCJdOiBWRVJTSU9OLkFXU19DREtfQ0xJX1ZFUlNJT04sXG4gICAgICAgICAgICBbXCJhd3MtY2RrLWxpYlwiXTogVkVSU0lPTi5BV1NfQ0RLX0xJQl9WRVJTSU9OLFxuICAgICAgICAgICAgW1wicHJvamVuXCJdOiBWRVJTSU9OLlBST0pFTl9WRVJTSU9OLFxuICAgICAgICAgICAgW1wiY29uc3RydWN0c1wiXTogVkVSU0lPTi5BV1NfQ09OU1RSVUNUU19WRVJTSU9OLFxuICAgICAgICAgICAgW1widHVyYm9cIl06IFZFUlNJT04uVFVSQk9fVkVSU0lPTixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqXG4gICAgICogUkVRVUlSRUQgT1BUSU9OU1xuICAgICAqXG4gICAgICogVGhlc2Ugb3B0aW9ucyBjYW5ub3QgYmUgY2hhbmdlZCBieSB0aGUgdXNlci5cbiAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIGNvbnN0IHJlcXVpcmVkT3B0aW9uczogT21pdDxUeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMsIFwibmFtZVwiPiA9IHtcbiAgICAgIC8qKlxuICAgICAgICogVGhpcyBpcyByZXF1aXJlZCBiZWNhdXNlIGl0J3Mgc3RhbmRhcmQgcHJhY3RpY2UgYW5kIGFsc28gdG8gc2ltcGxpZnlcbiAgICAgICAqIHNvbWUgd29ya2Zsb3cgZGVzaWduLlxuICAgICAgICovXG4gICAgICBkZWZhdWx0UmVsZWFzZUJyYW5jaDogXCJtYWluXCIsXG5cbiAgICAgIC8qKlxuICAgICAgICogVXNlIFBOUE0gaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCAoWWFybikuIE11Y2ggb2YgdGhlIGVjb3N5c3RlbSBkZXBlbmRzXG4gICAgICAgKiBvbiBQTlBNIGFuZCBtYWtpbmcgbW9ub3JlcG9zIFBOUE0gb25seSBzaW1wbGlmaWVzIG1hbnkgY29uZmlndXJhdGlvbnMuXG4gICAgICAgKi9cbiAgICAgIHBhY2thZ2VNYW5hZ2VyOiBOb2RlUGFja2FnZU1hbmFnZXIuUE5QTSxcblxuICAgICAgLyoqXG4gICAgICAgKiBTb21lIGFkZGl0aW9uYWwgcHJlLWJ1aWxkIHN0ZXBzIGlmIHdlJ3JlIHVzaW5nIHR1cmJvJ3MgcmVtb3RlIGNhY2hlLlxuICAgICAgICovXG4gICAgICBidWlsZFdvcmtmbG93T3B0aW9uczoge1xuICAgICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICAgIC4uLmJ1aWxkV29ya2Zsb3dPcHRpb25zPy5wZXJtaXNzaW9ucyxcbiAgICAgICAgICAuLi51c2VyT3B0aW9ucy5idWlsZFdvcmtmbG93T3B0aW9ucz8ucGVybWlzc2lvbnMsXG4gICAgICAgIH0sXG4gICAgICAgIHByZUJ1aWxkU3RlcHM6IFtcbiAgICAgICAgICAuLi4oYnVpbGRXb3JrZmxvd09wdGlvbnM/LnByZUJ1aWxkU3RlcHMgPz8gW10pLFxuICAgICAgICAgIC4uLih1c2VyT3B0aW9ucy5idWlsZFdvcmtmbG93T3B0aW9ucz8ucHJlQnVpbGRTdGVwcyA/PyBbXSksXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICpcbiAgICAgKiBDT05TVFJVQ1RPUlxuICAgICAqXG4gICAgICogQ29tYmluZXMgZGVmYXVsdCBvcHRpb25zIHdpdGggdXNlciBwcm92aWRlZCBvcHRpb25zIGFuZCByZXF1aXJlZCBvcHRpb25zLlxuICAgICAqIFN0b3JlIHRoZSBvcHRpb25zIGluIGEgY29uc3Qgc28gd2UgY2FuIHVzZSB0aGVtIGFmdGVyIHN1cGVyKCksIGZhcnRoZXJcbiAgICAgKiBpbnRvIHRoZSBjb25zdHJ1Y3RvciBmb3IgYWRkaXRpb25hbCBjb25maWd1cmF0aW9uLlxuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgY29uc3Qgb3B0aW9uczogQXBwbGllZE9wdGlvbnMgPSBtZXJnZShcbiAgICAgIGRlZmF1bHRPcHRpb25zLFxuICAgICAgdXNlck9wdGlvbnMsXG4gICAgICByZXF1aXJlZE9wdGlvbnMsXG4gICAgKTtcblxuICAgIHN1cGVyKHsgLi4ub3B0aW9ucyB9KTtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKlxuICAgICAqIFBVQkxJQyBQUk9QU1xuICAgICAqXG4gICAgICogU29tZSBwcm9wcyBhcmUgaGlkZGVuIGJ5IFByb2plbiBhbmQgd2UgbmVlZCB0byBleHBvc2UgdGhlbSBmb3IgdGhlXG4gICAgICogbW9ub3JlcG8gdG8gd29yayBwcm9wZXJseS4gVGhpcyBpcyB3aGVyZSB3ZSBzdG9yZSB0aGVtLlxuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgdGhpcy5wbnBtVmVyc2lvbiA9IG9wdGlvbnMucG5wbVZlcnNpb24hO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqXG4gICAgICogQ1VTVE9NIENPTkZJR1NcbiAgICAgKlxuICAgICAqIFdlIGFkZCBzb21lIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbnMgdG8gdGhlIG1vbm9yZXBvIHJvb3QgcHJvamVjdCBiZWxvd1xuICAgICAqIHN1Y2ggYXMgVHVyYm9yZXBvLCBWUyBDb2RlIGNvbmZpZywgYW5kIHRoZSBQTlBNIHdvcmtzcGFjZSBmaWxlLlxuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgLyoqXG4gICAgICogQWRkIFZTQ29kZSBjb25maWd1cmF0aW9uXG4gICAgICovXG4gICAgbmV3IFZTQ29kZUNvbmZpZyh0aGlzKTtcblxuICAgIC8qKlxuICAgICAqIEFkZCB3b3Jrc3BhY2UgZGVmaW5pdGlvbiB0byBQTlBNIHJvb3RcbiAgICAgKi9cbiAgICBuZXcgUG5wbVdvcmtzcGFjZSh0aGlzLCBvcHRpb25zLnBucG1PcHRpb25zPy5wbnBtV29ya3NwYWNlT3B0aW9ucyk7XG5cbiAgICAvKipcbiAgICAgKiBUdXJuIG9uIHR1cmJvcmVwbyBzdXBwb3J0IGlmIHJlcXVlc3RlZC5cbiAgICAgKi9cbiAgICBpZiAob3B0aW9ucy50dXJibykge1xuICAgICAgbmV3IFR1cmJvUmVwbyh0aGlzLCBvcHRpb25zLnR1cmJvT3B0aW9ucyk7XG5cbiAgICAgIHRoaXMuYnVpbGRXb3JrZmxvdz8uYWRkUG9zdEJ1aWxkU3RlcHMoe1xuICAgICAgICBuYW1lOiBcIkJ1aWxkIFN1YiBQcm9qZWN0c1wiLFxuICAgICAgICBydW46IGBucHggcHJvamVuICR7Uk9PVF9DSV9UQVNLX05BTUV9YCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCByZXNldCB0YXNrIGlmIGVuYWJsZWQuXG4gICAgICovXG4gICAgaWYgKG9wdGlvbnMucmVzZXRUYXNrICE9PSBmYWxzZSkge1xuICAgICAgY29uc3QgZGVmYXVsdFJlc2V0VGFza09wdGlvbnM6IFJlc2V0VGFza09wdGlvbnMgPSB7XG4gICAgICAgIHBhdGhzVG9SZW1vdmU6IFtcIm5vZGVfbW9kdWxlc1wiLCBcIi50dXJib1wiLCBcImRpc3RcIiwgXCJsaWJcIl0sXG4gICAgICB9O1xuICAgICAgY29uc3QgdXNlclJlc2V0VGFza09wdGlvbnMgPSBvcHRpb25zLnJlc2V0VGFza09wdGlvbnMgPz8ge307XG4gICAgICBjb25zdCByZXNldFRhc2tPcHRpb25zOiBSZXNldFRhc2tPcHRpb25zID0gbWVyZ2UoXG4gICAgICAgIGRlZmF1bHRSZXNldFRhc2tPcHRpb25zLFxuICAgICAgICB7XG4gICAgICAgICAgLi4udXNlclJlc2V0VGFza09wdGlvbnMsXG4gICAgICAgICAgcGF0aHNUb1JlbW92ZTogW1xuICAgICAgICAgICAgLi4uKGRlZmF1bHRSZXNldFRhc2tPcHRpb25zLnBhdGhzVG9SZW1vdmUgPz8gW10pLFxuICAgICAgICAgICAgLi4uKHVzZXJSZXNldFRhc2tPcHRpb25zLnBhdGhzVG9SZW1vdmUgPz8gW10pLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgICAgbmV3IFJlc2V0VGFzayh0aGlzLCByZXNldFRhc2tPcHRpb25zKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTcGVjaWZ5IHBhY2thZ2UgbWFuYWdlclxuICAgICAqL1xuICAgIC8vIGNvbnN0IHBucG1WZXJzaW9uID0gb3B0aW9ucy5wbnBtVmVyc2lvbiA/PyBWRVJTSU9OLlBOUE1fVkVSU0lPTjtcbiAgICB0aGlzLnBhY2thZ2UuZmlsZS5hZGRPdmVycmlkZShcbiAgICAgIFwicGFja2FnZU1hbmFnZXJcIixcbiAgICAgIGBwbnBtQCR7b3B0aW9ucy5wbnBtVmVyc2lvbn1gLFxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiBBZGQgc29tZSBzaWxseSB0aGluZ3MgdG8gdGhlIGdpdGlnbm9yZS5cbiAgICAgKi9cbiAgICB0aGlzLmdpdGlnbm9yZT8uYWRkUGF0dGVybnMoXCIuRFNfU3RvcmVcIik7XG5cbiAgICAvKipcbiAgICAgKiBVc2UgY2F0YWxvZyB2ZXJzaW9uIGZvciBjb25zdHJ1Y3RzIHZlcnNpb25cbiAgICAgKi9cbiAgICB0aGlzLmFkZERldkRlcHMoXCJjb25zdHJ1Y3RzQGNhdGFsb2c6XCIpO1xuXG4gICAgLyoqXG4gICAgICogQWRkIGEgdGFzayBvbiB0aGUgbW9ub3JlcG8ncyByb290IHByb2plY3QgdGhhdCB3aWxsIGF0dGVtcHQgdG8gdXBncmFkZVxuICAgICAqIHRoZSBAY29kZWRyaWZ0ZXJzL2NvbmZpZ3VsYXRvciBwYWNrYWdlIHZlcnNpb24gbmlnaHRseS4gVGhpcyBrZWVwcyB0aGVcbiAgICAgKiBwcm9qZWN0IHVwLXRvLWRhdGUgd2l0aCB0aGUgbGF0ZXN0IG9mZmljaWFsIENvZGVEcmlmdGVycyBjb25maWdzLi5cbiAgICAgKi9cbiAgICBpZiAob3B0aW9ucy51cGdyYWRlQ29uZmlndWxhdG9yVGFzayAhPT0gZmFsc2UpIHtcbiAgICAgIHRoaXMudXBncmFkZUNvbmZpZ3VsYXRvclRhc2sgPSBuZXcgVXBncmFkZURlcGVuZGVuY2llcyhcbiAgICAgICAgdGhpcyxcbiAgICAgICAgbWVyZ2UoXG4gICAgICAgICAge1xuICAgICAgICAgICAgaW5jbHVkZTogW1wiQGNvZGVkcmlmdGVycy9jb25maWd1bGF0b3JcIiwgXCJAY29kZWRyaWZ0ZXJzL3V0aWxzXCJdLFxuICAgICAgICAgICAgdGFza05hbWU6IGB1cGdyYWRlLWNvZGVkcmlmdGVycy1jb25maWd1bGF0b3JgLFxuICAgICAgICAgICAgd29ya2Zsb3dPcHRpb25zOiB7XG4gICAgICAgICAgICAgIHNjaGVkdWxlOiBVcGdyYWRlRGVwZW5kZW5jaWVzU2NoZWR1bGUuREFJTFksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgb3B0aW9ucy51cGdyYWRlQ29uZmlndWxhdG9yVGFza09wdGlvbnMgPz8ge30sXG4gICAgICAgICksXG4gICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZSBhbGwgcGFja2FnZXMgYWZ0ZXIgdGhlIHJvb3Qgb2YgdGhlIG1vbm9yZXBvJ3MgdXBkYXRlZC5cbiAgICAgKiBSdW4gdGhlIGRlZmF1bHQgdGFzayBhZnRlciB0aGUgdXBncmFkZSB0byBlbnN1cmUgYWxsIHBhY2thZ2VzIGFyZVxuICAgICAqIHVwZGF0ZWQuIEluIHBhcnRpY3VsYXIgbWFrZSBzdXJlIHRoZSBwbnBtLXdvcmtzcGFjZSBmaWxlIHdhcyBub3RcbiAgICAgKiB0YW1wZXJlZCB3aXRoIGR1cmluZyB0aGUgdXBncmFkZS5cbiAgICAgKi9cbiAgICB0aGlzLnRhc2tzLnRyeUZpbmQoXCJwb3N0LXVwZ3JhZGVcIik/LmV4ZWMoXCJwbnBtIHVwZ3JhZGUgLXJcIik7XG4gICAgdGhpcy50YXNrcy50cnlGaW5kKFwicG9zdC11cGdyYWRlXCIpPy5zcGF3bih0aGlzLmRlZmF1bHRUYXNrISk7XG4gIH1cblxuICAvKipcbiAgICogQWxsb3dzIGEgc3ViIHByb2plY3QgdG8gcmVxdWVzdCBpbnN0YWxsYXRpb24gb2YgZGVwZW5kZW5jeSBhdCB0aGUgTW9ub3JlcG8gcm9vdFxuICAgKiBUaGV5IG11c3QgcHJvdmlkZSBhIGZ1bmN0aW9uIHRoYXQgaXMgZXhlY3V0ZWQgYWZ0ZXIgZGVwZW5kZW5jaWVzIGhhdmUgYmVlbiBpbnN0YWxsZWRcbiAgICogSWYgdGhpcyBmdW5jdGlvbiByZXR1cm5zIHRydWUsIHRoZSBpbnN0YWxsIGNvbW1hbmQgaXMgcnVuIGZvciBhIHNlY29uZCB0aW1lIGFmdGVyIGFsbCBzdWIgcHJvamVjdCByZXF1ZXN0cyBoYXZlIHJ1bi5cbiAgICogVGhpcyBpcyB1c2VkIHRvIHJlc29sdmUgZGVwZW5kZW5jeSB2ZXJzaW9ucyBmcm9tIGAqYCB0byBhIGNvbmNyZXRlIHZlcnNpb24gY29uc3RyYWludC5cbiAgICovXG4gIHB1YmxpYyByZXF1ZXN0SW5zdGFsbERlcGVuZGVuY2llcyhyZXNvbHZlcjogSURlcGVuZGVuY3lSZXNvbHZlcikge1xuICAgIHRoaXMucG9zdEluc3RhbGxEZXBlbmRlbmNpZXMucHVzaChyZXNvbHZlci5yZXNvbHZlRGVwc0FuZFdyaXRlUGFja2FnZUpzb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIEhvb2tzIGludG8gdGhlIGluc3RhbGwgZGVwZW5kZW5jaWVzIGN5Y2xlXG4gICAqL1xuICBwdWJsaWMgcG9zdFN5bnRoZXNpemUoKSB7XG4gICAgaWYgKHRoaXMucG9zdEluc3RhbGxEZXBlbmRlbmNpZXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBub2RlUGtnOiBhbnkgPSB0aGlzLnBhY2thZ2U7XG4gICAgICBub2RlUGtnLmluc3RhbGxEZXBlbmRlbmNpZXMoKTtcblxuICAgICAgY29uc3QgY29tcGxldGVkUmVxdWVzdHMgPSB0aGlzLnBvc3RJbnN0YWxsRGVwZW5kZW5jaWVzLm1hcCgocmVxdWVzdCkgPT5cbiAgICAgICAgcmVxdWVzdCgpLFxuICAgICAgKTtcbiAgICAgIGlmIChjb21wbGV0ZWRSZXF1ZXN0cy5zb21lKEJvb2xlYW4pKSB7XG4gICAgICAgIG5vZGVQa2cuaW5zdGFsbERlcGVuZGVuY2llcygpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnBvc3RJbnN0YWxsRGVwZW5kZW5jaWVzID0gW107XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { typescript } from "projen";
|
|
2
|
-
import { ResetTaskOptions } from "../tasks/reset-task";
|
|
3
|
-
/**
|
|
4
|
-
* Configuration options for TypeScriptProject.
|
|
5
|
-
*/
|
|
6
|
-
export interface TypeScriptProjectOptions extends Omit<typescript.TypeScriptProjectOptions, "defaultReleaseBranch"> {
|
|
7
|
-
/**
|
|
8
|
-
* Enable the reset task that deletes all build artifacts.
|
|
9
|
-
*
|
|
10
|
-
* @default true
|
|
11
|
-
*/
|
|
12
|
-
readonly resetTask?: boolean;
|
|
13
|
-
/**
|
|
14
|
-
* Options for the reset task.
|
|
15
|
-
*/
|
|
16
|
-
readonly resetTaskOptions?: ResetTaskOptions;
|
|
17
|
-
}
|
|
18
|
-
export declare class TypeScriptProject extends typescript.TypeScriptProject {
|
|
19
|
-
constructor(userOptions: TypeScriptProjectOptions);
|
|
20
|
-
}
|