@codedrifters/configulator 0.0.0 → 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +761 -1
- package/lib/aws/aws-deployment-config.d.ts +45 -108
- package/lib/aws/aws-deployment-config.js +69 -100
- package/lib/aws/aws-deployment-target.d.ts +210 -0
- package/lib/aws/aws-deployment-target.js +202 -0
- package/lib/aws/index.d.ts +1 -1
- package/lib/aws/index.js +2 -2
- package/lib/index.d.ts +9 -0
- package/lib/index.js +26 -0
- package/lib/jsii/index.d.ts +1 -0
- package/lib/jsii/index.js +18 -0
- package/lib/jsii/jsii-faker.d.ts +47 -0
- package/lib/jsii/jsii-faker.js +103 -0
- package/lib/pnpm/pnpm-workspace.d.ts +240 -1
- package/lib/pnpm/pnpm-workspace.js +155 -15
- package/lib/projects/index.d.ts +2 -0
- package/lib/projects/index.js +19 -0
- package/lib/projects/monorepo-project.d.ts +50 -0
- package/lib/projects/monorepo-project.js +203 -0
- package/lib/projects/typescript-project.d.ts +4 -0
- package/lib/projects/typescript-project.js +150 -0
- package/lib/turbo/turbo-repo.d.ts +116 -9
- package/lib/turbo/turbo-repo.js +107 -20
- package/lib/versions.d.ts +19 -7
- package/lib/versions.js +20 -8
- package/lib/vscode/vscode.js +2 -1
- package/lib/workflows/aws-deploy-workflow.d.ts +84 -0
- package/lib/workflows/aws-deploy-workflow.js +312 -0
- package/lib/workflows/index.d.ts +1 -2
- package/lib/workflows/index.js +2 -3
- package/package.json +21 -20
- package/lib/workflows/build-workflow.d.ts +0 -13
- package/lib/workflows/build-workflow.js +0 -64
- package/lib/workflows/deploy-workflow.d.ts +0 -17
- package/lib/workflows/deploy-workflow.js +0 -113
- package/lib/workflows/steps/deploy.d.ts +0 -4
- package/lib/workflows/steps/deploy.js +0 -62
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.JsiiFaker = void 0;
|
|
37
|
+
const spec = __importStar(require("@jsii/spec"));
|
|
38
|
+
const projen_1 = require("projen");
|
|
39
|
+
/**
|
|
40
|
+
* The FQNs for the base classes and options used by Jsii.
|
|
41
|
+
*
|
|
42
|
+
* These are the defaults used by Projen's TypeScriptProject.
|
|
43
|
+
*/
|
|
44
|
+
const ProjenBaseFqn = {
|
|
45
|
+
TYPESCRIPT_PROJECT: "projen.typescript.TypeScriptProject",
|
|
46
|
+
TYPESCRIPT_PROJECT_OPTIONS: "projen.typescript.TypeScriptProjectOptions",
|
|
47
|
+
};
|
|
48
|
+
class JsiiFaker extends projen_1.Component {
|
|
49
|
+
// find project singleton
|
|
50
|
+
static of(project) {
|
|
51
|
+
const isDefined = (c) => c instanceof JsiiFaker;
|
|
52
|
+
return project.components.find(isDefined);
|
|
53
|
+
}
|
|
54
|
+
constructor(project) {
|
|
55
|
+
super(project);
|
|
56
|
+
this.project = project;
|
|
57
|
+
this._types = {};
|
|
58
|
+
this.toJSON = () => {
|
|
59
|
+
return {
|
|
60
|
+
types: this._types,
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* In JSII, the assembly name is essentially the package name. It's used as a
|
|
65
|
+
* scope when targeting types and metadata in other "jsii assemblies" that
|
|
66
|
+
* might be in sub-packages used by the project.
|
|
67
|
+
*
|
|
68
|
+
* For this case, we'll just use the package name from Projen.
|
|
69
|
+
*/
|
|
70
|
+
this._assemblyName = this.project.package.packageName;
|
|
71
|
+
new projen_1.JsonFile(project, ".jsii", {
|
|
72
|
+
obj: () => {
|
|
73
|
+
return {
|
|
74
|
+
name: this._assemblyName,
|
|
75
|
+
types: this._types,
|
|
76
|
+
};
|
|
77
|
+
},
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
addClassType(options) {
|
|
81
|
+
const fqn = [this._assemblyName, options.name].join(".");
|
|
82
|
+
const type = {
|
|
83
|
+
assembly: this._assemblyName,
|
|
84
|
+
base: options.baseFqn ?? ProjenBaseFqn.TYPESCRIPT_PROJECT,
|
|
85
|
+
fqn,
|
|
86
|
+
kind: spec.TypeKind.Class,
|
|
87
|
+
name: options.name,
|
|
88
|
+
initializer: {
|
|
89
|
+
parameters: [
|
|
90
|
+
{
|
|
91
|
+
name: "options",
|
|
92
|
+
type: {
|
|
93
|
+
fqn: options.optionsFqn ?? ProjenBaseFqn.TYPESCRIPT_PROJECT_OPTIONS,
|
|
94
|
+
},
|
|
95
|
+
},
|
|
96
|
+
],
|
|
97
|
+
},
|
|
98
|
+
};
|
|
99
|
+
this._types[fqn] = type;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
exports.JsiiFaker = JsiiFaker;
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNpaS1mYWtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9qc2lpL2pzaWktZmFrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaURBQW1DO0FBQ25DLG1DQUE2QztBQUk3Qzs7OztHQUlHO0FBQ0gsTUFBTSxhQUFhLEdBQUc7SUFDcEIsa0JBQWtCLEVBQUUscUNBQXFDO0lBQ3pELDBCQUEwQixFQUFFLDRDQUE0QztDQUNoRSxDQUFDO0FBeUJYLE1BQWEsU0FBVSxTQUFRLGtCQUFTO0lBQ3RDLHlCQUF5QjtJQUNsQixNQUFNLENBQUMsRUFBRSxDQUFDLE9BQTBCO1FBQ3pDLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBWSxFQUFrQixFQUFFLENBQUMsQ0FBQyxZQUFZLFNBQVMsQ0FBQztRQUMzRSxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFLRCxZQUE0QixPQUEwQjtRQUNwRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFEVyxZQUFPLEdBQVAsT0FBTyxDQUFtQjtRQUY5QyxXQUFNLEdBQWtDLEVBQUUsQ0FBQztRQXdCNUMsV0FBTSxHQUFHLEdBQUcsRUFBRTtZQUNuQixPQUFPO2dCQUNMLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTTthQUNuQixDQUFDO1FBQ0osQ0FBQyxDQUFDO1FBdkJBOzs7Ozs7V0FNRztRQUNILElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBRXRELElBQUksaUJBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFO1lBQzdCLEdBQUcsRUFBRSxHQUFHLEVBQUU7Z0JBQ1IsT0FBTztvQkFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWE7b0JBQ3hCLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTTtpQkFDbkIsQ0FBQztZQUNKLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBUU0sWUFBWSxDQUFDLE9BQXlCO1FBQzNDLE1BQU0sR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sSUFBSSxHQUFtQjtZQUMzQixRQUFRLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDNUIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxPQUFPLElBQUksYUFBYSxDQUFDLGtCQUFrQjtZQUN6RCxHQUFHO1lBQ0gsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSztZQUN6QixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDbEIsV0FBVyxFQUFFO2dCQUNYLFVBQVUsRUFBRTtvQkFDVjt3QkFDRSxJQUFJLEVBQUUsU0FBUzt3QkFDZixJQUFJLEVBQUU7NEJBQ0osR0FBRyxFQUNELE9BQU8sQ0FBQyxVQUFVLElBQUksYUFBYSxDQUFDLDBCQUEwQjt5QkFDakU7cUJBQ0Y7aUJBQ0Y7YUFDRjtTQUNGLENBQUM7UUFFRixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztJQUMxQixDQUFDO0NBQ0Y7QUE3REQsOEJBNkRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgc3BlYyBmcm9tIFwiQGpzaWkvc3BlY1wiO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBKc29uRmlsZSB9IGZyb20gXCJwcm9qZW5cIjtcbmltcG9ydCB7IFR5cGVTY3JpcHRQcm9qZWN0IH0gZnJvbSBcInByb2plbi9saWIvdHlwZXNjcmlwdFwiO1xuaW1wb3J0IHsgVmFsdWVPZiB9IGZyb20gXCJ0eXBlLWZlc3RcIjtcblxuLyoqXG4gKiBUaGUgRlFOcyBmb3IgdGhlIGJhc2UgY2xhc3NlcyBhbmQgb3B0aW9ucyB1c2VkIGJ5IEpzaWkuXG4gKlxuICogVGhlc2UgYXJlIHRoZSBkZWZhdWx0cyB1c2VkIGJ5IFByb2plbidzIFR5cGVTY3JpcHRQcm9qZWN0LlxuICovXG5jb25zdCBQcm9qZW5CYXNlRnFuID0ge1xuICBUWVBFU0NSSVBUX1BST0pFQ1Q6IFwicHJvamVuLnR5cGVzY3JpcHQuVHlwZVNjcmlwdFByb2plY3RcIixcbiAgVFlQRVNDUklQVF9QUk9KRUNUX09QVElPTlM6IFwicHJvamVuLnR5cGVzY3JpcHQuVHlwZVNjcmlwdFByb2plY3RPcHRpb25zXCIsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgaW50ZXJmYWNlIENsYXNzVHlwZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGNsYXNzLlxuICAgKlxuICAgKiBAZXhhbXBsZSBcIk15UHJvamVjdFwiXG4gICAqL1xuICBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBGUU4gZm9yIHRoZSBiYXNlIGNsYXNzIHRoaXMgY2xhc3MgaXMgZXh0ZW5kaW5nLlxuICAgKlxuICAgKiBAZGVmYXVsdCBQcm9qZW5CYXNlRnFuLlRZUEVTQ1JJUFRfUFJPSkVDVFxuICAgKi9cbiAgYmFzZUZxbj86IFZhbHVlT2Y8dHlwZW9mIFByb2plbkJhc2VGcW4+IHwgc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgRlFOIGZvciB0aGUgb3B0aW9ucyBmb3IgdGhpcyBjbGFzcy5cbiAgICpcbiAgICogQGRlZmF1bHQgUHJvamVuQmFzZUZxbi5UWVBFU0NSSVBUX1BST0pFQ1RfT1BUSU9OU1xuICAgKi9cbiAgb3B0aW9uc0Zxbj86IFZhbHVlT2Y8dHlwZW9mIFByb2plbkJhc2VGcW4+IHwgc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgSnNpaUZha2VyIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgLy8gZmluZCBwcm9qZWN0IHNpbmdsZXRvblxuICBwdWJsaWMgc3RhdGljIG9mKHByb2plY3Q6IFR5cGVTY3JpcHRQcm9qZWN0KTogSnNpaUZha2VyIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBpc0RlZmluZWQgPSAoYzogQ29tcG9uZW50KTogYyBpcyBKc2lpRmFrZXIgPT4gYyBpbnN0YW5jZW9mIEpzaWlGYWtlcjtcbiAgICByZXR1cm4gcHJvamVjdC5jb21wb25lbnRzLmZpbmQoaXNEZWZpbmVkKTtcbiAgfVxuXG4gIHByaXZhdGUgX2Fzc2VtYmx5TmFtZTogc3RyaW5nO1xuICBwcml2YXRlIF90eXBlczogeyBbbmFtZTogc3RyaW5nXTogc3BlYy5UeXBlIH0gPSB7fTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgcHJvamVjdDogVHlwZVNjcmlwdFByb2plY3QpIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIC8qKlxuICAgICAqIEluIEpTSUksIHRoZSBhc3NlbWJseSBuYW1lIGlzIGVzc2VudGlhbGx5IHRoZSBwYWNrYWdlIG5hbWUuIEl0J3MgdXNlZCBhcyBhXG4gICAgICogc2NvcGUgd2hlbiB0YXJnZXRpbmcgdHlwZXMgYW5kIG1ldGFkYXRhIGluIG90aGVyIFwianNpaSBhc3NlbWJsaWVzXCIgdGhhdFxuICAgICAqIG1pZ2h0IGJlIGluIHN1Yi1wYWNrYWdlcyB1c2VkIGJ5IHRoZSBwcm9qZWN0LlxuICAgICAqXG4gICAgICogRm9yIHRoaXMgY2FzZSwgd2UnbGwganVzdCB1c2UgdGhlIHBhY2thZ2UgbmFtZSBmcm9tIFByb2plbi5cbiAgICAgKi9cbiAgICB0aGlzLl9hc3NlbWJseU5hbWUgPSB0aGlzLnByb2plY3QucGFja2FnZS5wYWNrYWdlTmFtZTtcblxuICAgIG5ldyBKc29uRmlsZShwcm9qZWN0LCBcIi5qc2lpXCIsIHtcbiAgICAgIG9iajogKCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG5hbWU6IHRoaXMuX2Fzc2VtYmx5TmFtZSxcbiAgICAgICAgICB0eXBlczogdGhpcy5fdHlwZXMsXG4gICAgICAgIH07XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHRvSlNPTiA9ICgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZXM6IHRoaXMuX3R5cGVzLFxuICAgIH07XG4gIH07XG5cbiAgcHVibGljIGFkZENsYXNzVHlwZShvcHRpb25zOiBDbGFzc1R5cGVPcHRpb25zKSB7XG4gICAgY29uc3QgZnFuID0gW3RoaXMuX2Fzc2VtYmx5TmFtZSwgb3B0aW9ucy5uYW1lXS5qb2luKFwiLlwiKTtcbiAgICBjb25zdCB0eXBlOiBzcGVjLkNsYXNzVHlwZSA9IHtcbiAgICAgIGFzc2VtYmx5OiB0aGlzLl9hc3NlbWJseU5hbWUsXG4gICAgICBiYXNlOiBvcHRpb25zLmJhc2VGcW4gPz8gUHJvamVuQmFzZUZxbi5UWVBFU0NSSVBUX1BST0pFQ1QsXG4gICAgICBmcW4sXG4gICAgICBraW5kOiBzcGVjLlR5cGVLaW5kLkNsYXNzLFxuICAgICAgbmFtZTogb3B0aW9ucy5uYW1lLFxuICAgICAgaW5pdGlhbGl6ZXI6IHtcbiAgICAgICAgcGFyYW1ldGVyczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwib3B0aW9uc1wiLFxuICAgICAgICAgICAgdHlwZToge1xuICAgICAgICAgICAgICBmcW46XG4gICAgICAgICAgICAgICAgb3B0aW9ucy5vcHRpb25zRnFuID8/IFByb2plbkJhc2VGcW4uVFlQRVNDUklQVF9QUk9KRUNUX09QVElPTlMsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICB0aGlzLl90eXBlc1tmcW5dID0gdHlwZTtcbiAgfVxufVxuIl19
|
|
@@ -1,5 +1,244 @@
|
|
|
1
1
|
import { Component, Project } from "projen";
|
|
2
|
+
import { ValueOf } from "type-fest";
|
|
3
|
+
/**
|
|
4
|
+
* Predefined minimum release age values in minutes.
|
|
5
|
+
*/
|
|
6
|
+
export declare const MIMIMUM_RELEASE_AGE: {
|
|
7
|
+
ZERO_DAYS: number;
|
|
8
|
+
ONE_HOUR: number;
|
|
9
|
+
SIX_HOURS: number;
|
|
10
|
+
TWELVE_HOURS: number;
|
|
11
|
+
ONE_DAY: number;
|
|
12
|
+
TWO_DAYS: number;
|
|
13
|
+
THREE_DAYS: number;
|
|
14
|
+
FOUR_DAYS: number;
|
|
15
|
+
FIVE_DAYS: number;
|
|
16
|
+
SIX_DAYS: number;
|
|
17
|
+
ONE_WEEK: number;
|
|
18
|
+
};
|
|
19
|
+
export interface PnpmWorkspaceOptions {
|
|
20
|
+
/**
|
|
21
|
+
* Filename for the pnpm workspace file. This should probably never change.
|
|
22
|
+
*
|
|
23
|
+
* @default "pnpm-workspace.yaml"
|
|
24
|
+
*/
|
|
25
|
+
readonly fileName?: string;
|
|
26
|
+
/**
|
|
27
|
+
* To reduce the risk of installing compromised packages, you can delay the
|
|
28
|
+
* installation of newly published versions. In most cases, malicious releases
|
|
29
|
+
* are discovered and removed from the registry within an hour.
|
|
30
|
+
*
|
|
31
|
+
* minimumReleaseAge defines the minimum number of minutes that must pass
|
|
32
|
+
* after a version is published before pnpm will install it. This applies to
|
|
33
|
+
* all dependencies, including transitive ones.
|
|
34
|
+
*
|
|
35
|
+
* Note: this should match depsUpgradeOptions.cooldown in the project config.
|
|
36
|
+
*
|
|
37
|
+
* See: https://pnpm.io/settings#minimumreleaseage
|
|
38
|
+
*
|
|
39
|
+
* @default MIMIMUM_RELEASE_AGE.ONE_DAY
|
|
40
|
+
*/
|
|
41
|
+
readonly minimumReleaseAge?: ValueOf<typeof MIMIMUM_RELEASE_AGE>;
|
|
42
|
+
/**
|
|
43
|
+
* If you set minimumReleaseAge but need certain dependencies to always
|
|
44
|
+
* install the newest version immediately, you can list them under
|
|
45
|
+
* minimumReleaseAgeExclude. The exclusion works by package name and applies
|
|
46
|
+
* to all versions of that package.
|
|
47
|
+
*
|
|
48
|
+
* @default - no exclusions (empty array)
|
|
49
|
+
*
|
|
50
|
+
* See: https://pnpm.io/settings#minimumreleaseageexclude
|
|
51
|
+
*/
|
|
52
|
+
readonly minimumReleaseAgeExclude?: Array<string>;
|
|
53
|
+
/**
|
|
54
|
+
* A list of package names that are allowed to execute "preinstall",
|
|
55
|
+
* "install", and/or "postinstall" scripts during installation. Only the
|
|
56
|
+
* packages listed in this array will be able to run those lifecycle scripts.
|
|
57
|
+
* If onlyBuiltDependenciesFile and neverBuiltDependencies are omitted, this
|
|
58
|
+
* configuration option will default to blocking all install scripts.
|
|
59
|
+
*
|
|
60
|
+
* You may restrict allowances to specific versions (and lists of versions
|
|
61
|
+
* using a disjunction with ||). When versions are specified, only those
|
|
62
|
+
* versions of the package may run lifecycle scripts:
|
|
63
|
+
*
|
|
64
|
+
* See: https://pnpm.io/settings#onlybuiltdependencies
|
|
65
|
+
*
|
|
66
|
+
* @default none (empty array)
|
|
67
|
+
*/
|
|
68
|
+
readonly onlyBuiltDependencies?: Array<string>;
|
|
69
|
+
/**
|
|
70
|
+
* A list of package names that are NOT allowed to execute "preinstall",
|
|
71
|
+
* "install", and/or "postinstall" scripts during installation and will not
|
|
72
|
+
* warn or ask to be executed.
|
|
73
|
+
*
|
|
74
|
+
* This is useful when you want to hide the warning because you know the
|
|
75
|
+
* lifecycle scripts are not needed.
|
|
76
|
+
*
|
|
77
|
+
* https://pnpm.io/settings#ignoredbuiltdependencies
|
|
78
|
+
*
|
|
79
|
+
* @default none (empty array)
|
|
80
|
+
*/
|
|
81
|
+
readonly ignoredBuiltDependencies?: Array<string>;
|
|
82
|
+
/**
|
|
83
|
+
* Additional subproject paths to include in the workspace packages array.
|
|
84
|
+
* These will be combined with any subprojects discovered via projen's
|
|
85
|
+
* project.subprojects property. Paths should be relative to the project root.
|
|
86
|
+
*
|
|
87
|
+
* @default none (empty array)
|
|
88
|
+
*/
|
|
89
|
+
readonly subprojects?: Array<string>;
|
|
90
|
+
/**
|
|
91
|
+
* Catalog of reusable dependency version ranges.
|
|
92
|
+
*
|
|
93
|
+
* The catalog allows you to define dependency versions as reusable constants
|
|
94
|
+
* that can be referenced in package.json files using the catalog: protocol.
|
|
95
|
+
*
|
|
96
|
+
* Example:
|
|
97
|
+
* ```yaml
|
|
98
|
+
* catalog:
|
|
99
|
+
* react: ^18.0.0
|
|
100
|
+
* typescript: ^5.0.0
|
|
101
|
+
* ```
|
|
102
|
+
*
|
|
103
|
+
* Then in package.json:
|
|
104
|
+
* ```json
|
|
105
|
+
* {
|
|
106
|
+
* "dependencies": {
|
|
107
|
+
* "react": "catalog:react"
|
|
108
|
+
* }
|
|
109
|
+
* }
|
|
110
|
+
* ```
|
|
111
|
+
*
|
|
112
|
+
* @default undefined (not included in output)
|
|
113
|
+
*
|
|
114
|
+
* See: https://pnpm.io/pnpm-workspace_yaml#catalog
|
|
115
|
+
*/
|
|
116
|
+
readonly defaultCatalog?: {
|
|
117
|
+
[key: string]: string;
|
|
118
|
+
};
|
|
119
|
+
/**
|
|
120
|
+
* Named catalogs of reusable dependency version ranges.
|
|
121
|
+
*
|
|
122
|
+
* Multiple named catalogs with arbitrarily chosen names can be configured under the namedCatalogs key.
|
|
123
|
+
*
|
|
124
|
+
* Example:
|
|
125
|
+
* ```yaml
|
|
126
|
+
* namedCatalogs:
|
|
127
|
+
* frontend:
|
|
128
|
+
* react: ^18.0.0
|
|
129
|
+
* typescript: ^5.0.0
|
|
130
|
+
* backend:
|
|
131
|
+
* express: ^4.18.0
|
|
132
|
+
* ```
|
|
133
|
+
*
|
|
134
|
+
* Then in package.json:
|
|
135
|
+
* ```json
|
|
136
|
+
* {
|
|
137
|
+
* "dependencies": {
|
|
138
|
+
* "react": "catalog:frontend/react"
|
|
139
|
+
* }
|
|
140
|
+
* }
|
|
141
|
+
* ```
|
|
142
|
+
*
|
|
143
|
+
* @default undefined (not included in output)
|
|
144
|
+
*
|
|
145
|
+
* See: https://pnpm.io/catalogs
|
|
146
|
+
*/
|
|
147
|
+
readonly namedCatalogs?: {
|
|
148
|
+
[catalogName: string]: {
|
|
149
|
+
[dependencyName: string]: string;
|
|
150
|
+
};
|
|
151
|
+
};
|
|
152
|
+
}
|
|
2
153
|
export declare class PnpmWorkspace extends Component {
|
|
154
|
+
/**
|
|
155
|
+
* Get the pnpm workspace component of a project. If it does not exist,
|
|
156
|
+
* return undefined.
|
|
157
|
+
*
|
|
158
|
+
* @param project
|
|
159
|
+
* @returns
|
|
160
|
+
*/
|
|
3
161
|
static of(project: Project): PnpmWorkspace | undefined;
|
|
4
|
-
|
|
162
|
+
/**
|
|
163
|
+
* Filename for the pnpm workspace file.
|
|
164
|
+
*/
|
|
165
|
+
readonly fileName: string;
|
|
166
|
+
/**
|
|
167
|
+
* To reduce the risk of installing compromised packages, you can delay the
|
|
168
|
+
* installation of newly published versions. In most cases, malicious releases
|
|
169
|
+
* are discovered and removed from the registry within an hour.
|
|
170
|
+
*
|
|
171
|
+
* minimumReleaseAge defines the minimum number of minutes that must pass
|
|
172
|
+
* after a version is published before pnpm will install it. This applies to
|
|
173
|
+
* all dependencies, including transitive ones.
|
|
174
|
+
*
|
|
175
|
+
* Note: this should match depsUpgradeOptions.cooldown in the project config.
|
|
176
|
+
*
|
|
177
|
+
* See: https://pnpm.io/settings#minimumreleaseage
|
|
178
|
+
*/
|
|
179
|
+
minimumReleaseAge: ValueOf<typeof MIMIMUM_RELEASE_AGE>;
|
|
180
|
+
/**
|
|
181
|
+
* If you set minimumReleaseAge but need certain dependencies to always
|
|
182
|
+
* install the newest version immediately, you can list them under
|
|
183
|
+
* minimumReleaseAgeExclude. The exclusion works by package name and applies
|
|
184
|
+
* to all versions of that package.
|
|
185
|
+
*
|
|
186
|
+
* See: https://pnpm.io/settings#minimumreleaseageexclude
|
|
187
|
+
*/
|
|
188
|
+
minimumReleaseAgeExclude: Array<string>;
|
|
189
|
+
/**
|
|
190
|
+
* A list of package names that are allowed to execute "preinstall",
|
|
191
|
+
* "install", and/or "postinstall" scripts during installation. Only the
|
|
192
|
+
* packages listed in this array will be able to run those lifecycle scripts.
|
|
193
|
+
* If onlyBuiltDependenciesFile and neverBuiltDependencies are omitted, this
|
|
194
|
+
* configuration option will default to blocking all install scripts.
|
|
195
|
+
*
|
|
196
|
+
* You may restrict allowances to specific versions (and lists of versions
|
|
197
|
+
* using a disjunction with ||). When versions are specified, only those
|
|
198
|
+
* versions of the package may run lifecycle scripts:
|
|
199
|
+
*
|
|
200
|
+
* See: https://pnpm.io/settings#onlybuiltdependencies
|
|
201
|
+
*/
|
|
202
|
+
onlyBuiltDependencies: Array<string>;
|
|
203
|
+
/**
|
|
204
|
+
* A list of package names that are NOT allowed to execute "preinstall",
|
|
205
|
+
* "install", and/or "postinstall" scripts during installation and will not
|
|
206
|
+
* warn or ask to be executed.
|
|
207
|
+
*
|
|
208
|
+
* This is useful when you want to hide the warning because you know the
|
|
209
|
+
* lifecycle scripts are not needed.
|
|
210
|
+
*
|
|
211
|
+
* https://pnpm.io/settings#ignoredbuiltdependencies
|
|
212
|
+
*/
|
|
213
|
+
ignoredBuiltDependencies: Array<string>;
|
|
214
|
+
/**
|
|
215
|
+
* Additional subproject paths to include in the workspace packages array.
|
|
216
|
+
* These will be combined with any subprojects discovered via projen's
|
|
217
|
+
* project.subprojects property.
|
|
218
|
+
*/
|
|
219
|
+
subprojects: Array<string>;
|
|
220
|
+
/**
|
|
221
|
+
* Default catalog of reusable dependency version ranges.
|
|
222
|
+
*
|
|
223
|
+
* The default catalog is used to define dependency versions as reusable constants
|
|
224
|
+
* that can be referenced in package.json files using the catalog: protocol.
|
|
225
|
+
*
|
|
226
|
+
* See:https://pnpm.io/catalogs
|
|
227
|
+
*/
|
|
228
|
+
defaultCatalog?: {
|
|
229
|
+
[key: string]: string;
|
|
230
|
+
};
|
|
231
|
+
/**
|
|
232
|
+
* Named catalogs of reusable dependency version ranges.
|
|
233
|
+
*
|
|
234
|
+
* Multiple named catalogs with arbitrarily chosen names can be configured under the namedCatalogs key.
|
|
235
|
+
*
|
|
236
|
+
* See: https://pnpm.io/catalogs
|
|
237
|
+
*/
|
|
238
|
+
namedCatalogs?: {
|
|
239
|
+
[catalogName: string]: {
|
|
240
|
+
[dependencyName: string]: string;
|
|
241
|
+
};
|
|
242
|
+
};
|
|
243
|
+
constructor(project: Project, options?: PnpmWorkspaceOptions);
|
|
5
244
|
}
|
|
@@ -1,36 +1,176 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PnpmWorkspace = void 0;
|
|
3
|
+
exports.PnpmWorkspace = exports.MIMIMUM_RELEASE_AGE = void 0;
|
|
4
4
|
const path_1 = require("path");
|
|
5
5
|
const projen_1 = require("projen");
|
|
6
|
+
/**
|
|
7
|
+
* Predefined minimum release age values in minutes.
|
|
8
|
+
*/
|
|
9
|
+
exports.MIMIMUM_RELEASE_AGE = {
|
|
10
|
+
ZERO_DAYS: 0,
|
|
11
|
+
ONE_HOUR: 60,
|
|
12
|
+
SIX_HOURS: 360,
|
|
13
|
+
TWELVE_HOURS: 720,
|
|
14
|
+
ONE_DAY: 1440,
|
|
15
|
+
TWO_DAYS: 2880,
|
|
16
|
+
THREE_DAYS: 4320,
|
|
17
|
+
FOUR_DAYS: 5760,
|
|
18
|
+
FIVE_DAYS: 7200,
|
|
19
|
+
SIX_DAYS: 8640,
|
|
20
|
+
ONE_WEEK: 10080,
|
|
21
|
+
};
|
|
6
22
|
class PnpmWorkspace extends projen_1.Component {
|
|
23
|
+
/**
|
|
24
|
+
* Get the pnpm workspace component of a project. If it does not exist,
|
|
25
|
+
* return undefined.
|
|
26
|
+
*
|
|
27
|
+
* @param project
|
|
28
|
+
* @returns
|
|
29
|
+
*/
|
|
7
30
|
static of(project) {
|
|
8
31
|
const isDefined = (c) => c instanceof PnpmWorkspace;
|
|
9
32
|
return project.root.components.find(isDefined);
|
|
10
33
|
}
|
|
11
|
-
constructor(project) {
|
|
34
|
+
constructor(project, options = {}) {
|
|
12
35
|
super(project);
|
|
13
|
-
|
|
36
|
+
/***************************************************************************
|
|
37
|
+
*
|
|
38
|
+
* CLEAR package,json
|
|
39
|
+
*
|
|
40
|
+
* It appears that if ANY pnpm settings exist in the package.json file, all
|
|
41
|
+
* of the setting in the pnpm-workspace.yaml file are ignored. so we need to
|
|
42
|
+
* clear out anything that was placed into the package.json file.
|
|
43
|
+
*
|
|
44
|
+
**************************************************************************/
|
|
45
|
+
project.tryFindObjectFile("package.json")?.addDeletionOverride("pnpm");
|
|
46
|
+
/***************************************************************************
|
|
47
|
+
*
|
|
48
|
+
* Setup pnpm-workspace.yaml file.
|
|
49
|
+
*
|
|
50
|
+
* Now that the package.json file is cleared of any pnpm settings, we can
|
|
51
|
+
* safely write settings to the pnpm-workspace.yaml file.
|
|
52
|
+
*
|
|
53
|
+
**************************************************************************
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Set filename to default if not provided.
|
|
57
|
+
*/
|
|
58
|
+
this.fileName = options.fileName ?? "pnpm-workspace.yaml";
|
|
59
|
+
/**
|
|
60
|
+
* Set minimum release age to default if not provided
|
|
61
|
+
*/
|
|
62
|
+
this.minimumReleaseAge = options.minimumReleaseAge
|
|
63
|
+
? options.minimumReleaseAge
|
|
64
|
+
: exports.MIMIMUM_RELEASE_AGE.ONE_DAY;
|
|
65
|
+
/**
|
|
66
|
+
* Set minimum release age exclude to empty array if not provided
|
|
67
|
+
*/
|
|
68
|
+
this.minimumReleaseAgeExclude = options.minimumReleaseAgeExclude
|
|
69
|
+
? ["@codedrifters/*", ...options.minimumReleaseAgeExclude]
|
|
70
|
+
: ["@codedrifters/*"];
|
|
71
|
+
/**
|
|
72
|
+
* Set only built dependencies to empty array if not provided
|
|
73
|
+
*/
|
|
74
|
+
this.onlyBuiltDependencies = options.onlyBuiltDependencies
|
|
75
|
+
? options.onlyBuiltDependencies
|
|
76
|
+
: [];
|
|
77
|
+
/**
|
|
78
|
+
* Set ignored built dependencies to empty array if not provided
|
|
79
|
+
*/
|
|
80
|
+
this.ignoredBuiltDependencies = options.ignoredBuiltDependencies
|
|
81
|
+
? options.ignoredBuiltDependencies
|
|
82
|
+
: [];
|
|
83
|
+
/**
|
|
84
|
+
* Store additional subproject paths if provided
|
|
85
|
+
*/
|
|
86
|
+
this.subprojects = options.subprojects ?? [];
|
|
87
|
+
/**
|
|
88
|
+
* Store catalog if provided
|
|
89
|
+
*/
|
|
90
|
+
this.defaultCatalog = options.defaultCatalog;
|
|
91
|
+
/**
|
|
92
|
+
* Store named catalogs if provided
|
|
93
|
+
*/
|
|
94
|
+
this.namedCatalogs = options.namedCatalogs;
|
|
14
95
|
/**
|
|
15
96
|
* In case that this file is in a package, don't package it.
|
|
16
97
|
*/
|
|
17
|
-
project.addPackageIgnore(fileName);
|
|
98
|
+
project.addPackageIgnore(this.fileName);
|
|
18
99
|
/**
|
|
19
100
|
* Write pnpm workspace file
|
|
20
101
|
*/
|
|
21
|
-
new projen_1.YamlFile(this.project, fileName, {
|
|
22
|
-
obj: {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
102
|
+
new projen_1.YamlFile(this.project, this.fileName, {
|
|
103
|
+
obj: () => {
|
|
104
|
+
const pnpmConfig = {};
|
|
105
|
+
const packages = new Array();
|
|
106
|
+
/**
|
|
107
|
+
* Add projen subprojects to the packages array.
|
|
108
|
+
*/
|
|
109
|
+
for (const subproject of project.subprojects) {
|
|
110
|
+
// grab the relative out directory
|
|
111
|
+
packages.push((0, path_1.relative)(this.project.outdir, subproject.outdir));
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Add additional subproject paths provided via options.
|
|
115
|
+
* Use a Set to deduplicate paths to avoid including the same
|
|
116
|
+
* subproject multiple times.
|
|
117
|
+
*/
|
|
118
|
+
const packageSet = new Set(packages);
|
|
119
|
+
for (const subprojectPath of this.subprojects) {
|
|
120
|
+
packageSet.add(subprojectPath);
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Convert back to array if we added any additional paths
|
|
124
|
+
*/
|
|
125
|
+
if (this.subprojects.length > 0) {
|
|
126
|
+
packages.length = 0;
|
|
127
|
+
packages.push(...packageSet);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Set minimum release age.
|
|
131
|
+
*/
|
|
132
|
+
pnpmConfig.minimumReleaseAge = this.minimumReleaseAge;
|
|
133
|
+
/**
|
|
134
|
+
* Set minimum release age exclude if any are provided.
|
|
135
|
+
*/
|
|
136
|
+
if (this.minimumReleaseAgeExclude.length > 0) {
|
|
137
|
+
pnpmConfig.minimumReleaseAgeExclude = this.minimumReleaseAgeExclude;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Set only built dependencies if any are provided.
|
|
141
|
+
*/
|
|
142
|
+
if (this.onlyBuiltDependencies.length > 0) {
|
|
143
|
+
pnpmConfig.onlyBuiltDependencies = this.onlyBuiltDependencies;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Set ignored built dependencies if any are provided.
|
|
147
|
+
*/
|
|
148
|
+
if (this.ignoredBuiltDependencies.length > 0) {
|
|
149
|
+
pnpmConfig.ignoreBuiltDependencies = this.ignoredBuiltDependencies;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Set default catalog if provided.
|
|
153
|
+
*/
|
|
154
|
+
if (this.defaultCatalog &&
|
|
155
|
+
Object.keys(this.defaultCatalog).length > 0) {
|
|
156
|
+
pnpmConfig.catalog = this.defaultCatalog;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Set named catalogs if provided.
|
|
160
|
+
*/
|
|
161
|
+
if (this.namedCatalogs && Object.keys(this.namedCatalogs).length > 0) {
|
|
162
|
+
pnpmConfig.namedCatalogs = this.namedCatalogs;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Return the final pnpm config object.
|
|
166
|
+
*/
|
|
167
|
+
return {
|
|
168
|
+
...(packages.length > 0 ? { packages } : {}),
|
|
169
|
+
...(pnpmConfig ? { ...pnpmConfig } : {}),
|
|
170
|
+
};
|
|
31
171
|
},
|
|
32
172
|
});
|
|
33
173
|
}
|
|
34
174
|
}
|
|
35
175
|
exports.PnpmWorkspace = PnpmWorkspace;
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG5wbS13b3Jrc3BhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcG5wbS9wbnBtLXdvcmtzcGFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBZ0M7QUFDaEMsbUNBQXNEO0FBRXRELE1BQWEsYUFBYyxTQUFRLGtCQUFTO0lBQ25DLE1BQU0sQ0FBQyxFQUFFLENBQUMsT0FBZ0I7UUFDL0IsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFZLEVBQXNCLEVBQUUsQ0FDckQsQ0FBQyxZQUFZLGFBQWEsQ0FBQztRQUM3QixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsWUFBWSxPQUFnQjtRQUMxQixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFZixNQUFNLFFBQVEsR0FBVyxxQkFBcUIsQ0FBQztRQUUvQzs7V0FFRztRQUNILE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVuQzs7V0FFRztRQUNILElBQUksaUJBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRTtZQUNuQyxHQUFHLEVBQUU7Z0JBQ0gsUUFBUSxFQUFFLEdBQUcsRUFBRTtvQkFDYixNQUFNLFFBQVEsR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO29CQUNyQyxLQUFLLE1BQU0sVUFBVSxJQUFJLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQzt3QkFDN0Msa0NBQWtDO3dCQUNsQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUEsZUFBUSxFQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO29CQUNsRSxDQUFDO29CQUNELE9BQU8sUUFBUSxDQUFDO2dCQUNsQixDQUFDO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFqQ0Qsc0NBaUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVsYXRpdmUgfSBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBQcm9qZWN0LCBZYW1sRmlsZSB9IGZyb20gXCJwcm9qZW5cIjtcblxuZXhwb3J0IGNsYXNzIFBucG1Xb3Jrc3BhY2UgZXh0ZW5kcyBDb21wb25lbnQge1xuICBwdWJsaWMgc3RhdGljIG9mKHByb2plY3Q6IFByb2plY3QpOiBQbnBtV29ya3NwYWNlIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBpc0RlZmluZWQgPSAoYzogQ29tcG9uZW50KTogYyBpcyBQbnBtV29ya3NwYWNlID0+XG4gICAgICBjIGluc3RhbmNlb2YgUG5wbVdvcmtzcGFjZTtcbiAgICByZXR1cm4gcHJvamVjdC5yb290LmNvbXBvbmVudHMuZmluZChpc0RlZmluZWQpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCkge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgY29uc3QgZmlsZU5hbWU6IHN0cmluZyA9IFwicG5wbS13b3Jrc3BhY2UueWFtbFwiO1xuXG4gICAgLyoqXG4gICAgICogSW4gY2FzZSB0aGF0IHRoaXMgZmlsZSBpcyBpbiBhIHBhY2thZ2UsIGRvbid0IHBhY2thZ2UgaXQuXG4gICAgICovXG4gICAgcHJvamVjdC5hZGRQYWNrYWdlSWdub3JlKGZpbGVOYW1lKTtcblxuICAgIC8qKlxuICAgICAqIFdyaXRlIHBucG0gd29ya3NwYWNlIGZpbGVcbiAgICAgKi9cbiAgICBuZXcgWWFtbEZpbGUodGhpcy5wcm9qZWN0LCBmaWxlTmFtZSwge1xuICAgICAgb2JqOiB7XG4gICAgICAgIHBhY2thZ2VzOiAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgcGFja2FnZXMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICAgICAgICAgIGZvciAoY29uc3Qgc3VicHJvamVjdCBvZiBwcm9qZWN0LnN1YnByb2plY3RzKSB7XG4gICAgICAgICAgICAvLyBncmFiIHRoZSByZWxhdGl2ZSBvdXQgZGlyZWN0b3J5XG4gICAgICAgICAgICBwYWNrYWdlcy5wdXNoKHJlbGF0aXZlKHRoaXMucHJvamVjdC5vdXRkaXIsIHN1YnByb2plY3Qub3V0ZGlyKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBwYWNrYWdlcztcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG5wbS13b3Jrc3BhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcG5wbS9wbnBtLXdvcmtzcGFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBZ0M7QUFDaEMsbUNBQXNEO0FBR3REOztHQUVHO0FBQ1UsUUFBQSxtQkFBbUIsR0FBRztJQUNqQyxTQUFTLEVBQUUsQ0FBQztJQUNaLFFBQVEsRUFBRSxFQUFFO0lBQ1osU0FBUyxFQUFFLEdBQUc7SUFDZCxZQUFZLEVBQUUsR0FBRztJQUNqQixPQUFPLEVBQUUsSUFBSTtJQUNiLFFBQVEsRUFBRSxJQUFJO0lBQ2QsVUFBVSxFQUFFLElBQUk7SUFDaEIsU0FBUyxFQUFFLElBQUk7SUFDZixTQUFTLEVBQUUsSUFBSTtJQUNmLFFBQVEsRUFBRSxJQUFJO0lBQ2QsUUFBUSxFQUFFLEtBQUs7Q0FDaEIsQ0FBQztBQTRJRixNQUFhLGFBQWMsU0FBUSxrQkFBUztJQUMxQzs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQWdCO1FBQy9CLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBWSxFQUFzQixFQUFFLENBQ3JELENBQUMsWUFBWSxhQUFhLENBQUM7UUFDN0IsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQXVGRCxZQUFZLE9BQWdCLEVBQUUsVUFBZ0MsRUFBRTtRQUM5RCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFZjs7Ozs7Ozs7b0ZBUTRFO1FBRTVFLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsRUFBRSxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV2RTs7Ozs7Ozs7Ozs7V0FXRztRQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsSUFBSSxxQkFBcUIsQ0FBQztRQUUxRDs7V0FFRztRQUNILElBQUksQ0FBQyxp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LENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUM3QyxVQUFVLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDO2dCQUNyRSxDQUFDO2dCQUVEOzttQkFFRztnQkFDSCxJQUNFLElBQUksQ0FBQyxjQUFjO29CQUNuQixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUMzQyxDQUFDO29CQUNELFVBQVUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztnQkFDM0MsQ0FBQztnQkFFRDs7bUJBRUc7Z0JBQ0gsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDckUsVUFBVSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO2dCQUNoRCxDQUFDO2dCQUVEOzttQkFFRztnQkFDSCxPQUFPO29CQUNMLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUM1QyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztpQkFDekMsQ0FBQztZQUNKLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUF2UUQsc0NBdVFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVsYXRpdmUgfSBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBQcm9qZWN0LCBZYW1sRmlsZSB9IGZyb20gXCJwcm9qZW5cIjtcbmltcG9ydCB7IFZhbHVlT2YgfSBmcm9tIFwidHlwZS1mZXN0XCI7XG5cbi8qKlxuICogUHJlZGVmaW5lZCBtaW5pbXVtIHJlbGVhc2UgYWdlIHZhbHVlcyBpbiBtaW51dGVzLlxuICovXG5leHBvcnQgY29uc3QgTUlNSU1VTV9SRUxFQVNFX0FHRSA9IHtcbiAgWkVST19EQVlTOiAwLFxuICBPTkVfSE9VUjogNjAsXG4gIFNJWF9IT1VSUzogMzYwLFxuICBUV0VMVkVfSE9VUlM6IDcyMCxcbiAgT05FX0RBWTogMTQ0MCxcbiAgVFdPX0RBWVM6IDI4ODAsXG4gIFRIUkVFX0RBWVM6IDQzMjAsXG4gIEZPVVJfREFZUzogNTc2MCxcbiAgRklWRV9EQVlTOiA3MjAwLFxuICBTSVhfREFZUzogODY0MCxcbiAgT05FX1dFRUs6IDEwMDgwLFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBQbnBtV29ya3NwYWNlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBGaWxlbmFtZSBmb3IgdGhlIHBucG0gd29ya3NwYWNlIGZpbGUuIFRoaXMgc2hvdWxkIHByb2JhYmx5IG5ldmVyIGNoYW5nZS5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJwbnBtLXdvcmtzcGFjZS55YW1sXCJcbiAgICovXG4gIHJlYWRvbmx5IGZpbGVOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUbyByZWR1Y2UgdGhlIHJpc2sgb2YgaW5zdGFsbGluZyBjb21wcm9taXNlZCBwYWNrYWdlcywgeW91IGNhbiBkZWxheSB0aGVcbiAgICogaW5zdGFsbGF0aW9uIG9mIG5ld2x5IHB1Ymxpc2hlZCB2ZXJzaW9ucy4gSW4gbW9zdCBjYXNlcywgbWFsaWNpb3VzIHJlbGVhc2VzXG4gICAqIGFyZSBkaXNjb3ZlcmVkIGFuZCByZW1vdmVkIGZyb20gdGhlIHJlZ2lzdHJ5IHdpdGhpbiBhbiBob3VyLlxuICAgKlxuICAgKiBtaW5pbXVtUmVsZWFzZUFnZSBkZWZpbmVzIHRoZSBtaW5pbXVtIG51bWJlciBvZiBtaW51dGVzIHRoYXQgbXVzdCBwYXNzXG4gICAqIGFmdGVyIGEgdmVyc2lvbiBpcyBwdWJsaXNoZWQgYmVmb3JlIHBucG0gd2lsbCBpbnN0YWxsIGl0LiBUaGlzIGFwcGxpZXMgdG9cbiAgICogYWxsIGRlcGVuZGVuY2llcywgaW5jbHVkaW5nIHRyYW5zaXRpdmUgb25lcy5cbiAgICpcbiAgICogTm90ZTogdGhpcyBzaG91bGQgbWF0Y2ggZGVwc1VwZ3JhZGVPcHRpb25zLmNvb2xkb3duIGluIHRoZSBwcm9qZWN0IGNvbmZpZy5cbiAgICpcbiAgICogU2VlOiBodHRwczovL3BucG0uaW8vc2V0dGluZ3MjbWluaW11bXJlbGVhc2VhZ2VcbiAgICpcbiAgICogQGRlZmF1bHQgTUlNSU1VTV9SRUxFQVNFX0FHRS5PTkVfREFZXG4gICAqL1xuICByZWFkb25seSBtaW5pbXVtUmVsZWFzZUFnZT86IFZhbHVlT2Y8dHlwZW9mIE1JTUlNVU1fUkVMRUFTRV9BR0U+O1xuXG4gIC8qKlxuICAgKiBJZiB5b3Ugc2V0IG1pbmltdW1SZWxlYXNlQWdlIGJ1dCBuZWVkIGNlcnRhaW4gZGVwZW5kZW5jaWVzIHRvIGFsd2F5c1xuICAgKiBpbnN0YWxsIHRoZSBuZXdlc3QgdmVyc2lvbiBpbW1lZGlhdGVseSwgeW91IGNhbiBsaXN0IHRoZW0gdW5kZXJcbiAgICogbWluaW11bVJlbGVhc2VBZ2VFeGNsdWRlLiBUaGUgZXhjbHVzaW9uIHdvcmtzIGJ5IHBhY2thZ2UgbmFtZSBhbmQgYXBwbGllc1xuICAgKiB0byBhbGwgdmVyc2lvbnMgb2YgdGhhdCBwYWNrYWdlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGV4Y2x1c2lvbnMgKGVtcHR5IGFycmF5KVxuICAgKlxuICAgKiBTZWU6IGh0dHBzOi8vcG5wbS5pby9zZXR0aW5ncyNtaW5pbXVtcmVsZWFzZWFnZWV4Y2x1ZGVcbiAgICovXG4gIHJlYWRvbmx5IG1pbmltdW1SZWxlYXNlQWdlRXhjbHVkZT86IEFycmF5PHN0cmluZz47XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBwYWNrYWdlIG5hbWVzIHRoYXQgYXJlIGFsbG93ZWQgdG8gZXhlY3V0ZSBcInByZWluc3RhbGxcIixcbiAgICogXCJpbnN0YWxsXCIsIGFuZC9vciBcInBvc3RpbnN0YWxsXCIgc2NyaXB0cyBkdXJpbmcgaW5zdGFsbGF0aW9uLiBPbmx5IHRoZVxuICAgKiBwYWNrYWdlcyBsaXN0ZWQgaW4gdGhpcyBhcnJheSB3aWxsIGJlIGFibGUgdG8gcnVuIHRob3NlIGxpZmVjeWNsZSBzY3JpcHRzLlxuICAgKiBJZiBvbmx5QnVpbHREZXBlbmRlbmNpZXNGaWxlIGFuZCBuZXZlckJ1aWx0RGVwZW5kZW5jaWVzIGFyZSBvbWl0dGVkLCB0aGlzXG4gICAqIGNvbmZpZ3VyYXRpb24gb3B0aW9uIHdpbGwgZGVmYXVsdCB0byBibG9ja2luZyBhbGwgaW5zdGFsbCBzY3JpcHRzLlxuICAgKlxuICAgKiBZb3UgbWF5IHJlc3RyaWN0IGFsbG93YW5jZXMgdG8gc3BlY2lmaWMgdmVyc2lvbnMgKGFuZCBsaXN0cyBvZiB2ZXJzaW9uc1xuICAgKiB1c2luZyBhIGRpc2p1bmN0aW9uIHdpdGggfHwpLiBXaGVuIHZlcnNpb25zIGFyZSBzcGVjaWZpZWQsIG9ubHkgdGhvc2VcbiAgICogdmVyc2lvbnMgb2YgdGhlIHBhY2thZ2UgbWF5IHJ1biBsaWZlY3ljbGUgc2NyaXB0czpcbiAgICpcbiAgICogU2VlOiBodHRwczovL3BucG0uaW8vc2V0dGluZ3Mjb25seWJ1aWx0ZGVwZW5kZW5jaWVzXG4gICAqXG4gICAqIEBkZWZhdWx0IG5vbmUgKGVtcHR5IGFycmF5KVxuICAgKi9cbiAgcmVhZG9ubHkgb25seUJ1aWx0RGVwZW5kZW5jaWVzPzogQXJyYXk8c3RyaW5nPjtcblxuICAvKipcbiAgICogQSBsaXN0IG9mIHBhY2thZ2UgbmFtZXMgdGhhdCBhcmUgTk9UIGFsbG93ZWQgdG8gZXhlY3V0ZSBcInByZWluc3RhbGxcIixcbiAgICogXCJpbnN0YWxsXCIsIGFuZC9vciBcInBvc3RpbnN0YWxsXCIgc2NyaXB0cyBkdXJpbmcgaW5zdGFsbGF0aW9uIGFuZCB3aWxsIG5vdFxuICAgKiB3YXJuIG9yIGFzayB0byBiZSBleGVjdXRlZC5cbiAgICpcbiAgICogVGhpcyBpcyB1c2VmdWwgd2hlbiB5b3Ugd2FudCB0byBoaWRlIHRoZSB3YXJuaW5nIGJlY2F1c2UgeW91IGtub3cgdGhlXG4gICAqIGxpZmVjeWNsZSBzY3JpcHRzIGFyZSBub3QgbmVlZGVkLlxuICAgKlxuICAgKiBodHRwczovL3BucG0uaW8vc2V0dGluZ3MjaWdub3JlZGJ1aWx0ZGVwZW5kZW5jaWVzXG4gICAqXG4gICAqIEBkZWZhdWx0IG5vbmUgKGVtcHR5IGFycmF5KVxuICAgKi9cbiAgcmVhZG9ubHkgaWdub3JlZEJ1aWx0RGVwZW5kZW5jaWVzPzogQXJyYXk8c3RyaW5nPjtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBzdWJwcm9qZWN0IHBhdGhzIHRvIGluY2x1ZGUgaW4gdGhlIHdvcmtzcGFjZSBwYWNrYWdlcyBhcnJheS5cbiAgICogVGhlc2Ugd2lsbCBiZSBjb21iaW5lZCB3aXRoIGFueSBzdWJwcm9qZWN0cyBkaXNjb3ZlcmVkIHZpYSBwcm9qZW4nc1xuICAgKiBwcm9qZWN0LnN1YnByb2plY3RzIHByb3BlcnR5LiBQYXRocyBzaG91bGQgYmUgcmVsYXRpdmUgdG8gdGhlIHByb2plY3Qgcm9vdC5cbiAgICpcbiAgICogQGRlZmF1bHQgbm9uZSAoZW1wdHkgYXJyYXkpXG4gICAqL1xuICByZWFkb25seSBzdWJwcm9qZWN0cz86IEFycmF5PHN0cmluZz47XG5cbiAgLyoqXG4gICAqIENhdGFsb2cgb2YgcmV1c2FibGUgZGVwZW5kZW5jeSB2ZXJzaW9uIHJhbmdlcy5cbiAgICpcbiAgICogVGhlIGNhdGFsb2cgYWxsb3dzIHlvdSB0byBkZWZpbmUgZGVwZW5kZW5jeSB2ZXJzaW9ucyBhcyByZXVzYWJsZSBjb25zdGFudHNcbiAgICogdGhhdCBjYW4gYmUgcmVmZXJlbmNlZCBpbiBwYWNrYWdlLmpzb24gZmlsZXMgdXNpbmcgdGhlIGNhdGFsb2c6IHByb3RvY29sLlxuICAgKlxuICAgKiBFeGFtcGxlOlxuICAgKiBgYGB5YW1sXG4gICAqIGNhdGFsb2c6XG4gICAqICAgcmVhY3Q6IF4xOC4wLjBcbiAgICogICB0eXBlc2NyaXB0OiBeNS4wLjBcbiAgICogYGBgXG4gICAqXG4gICAqIFRoZW4gaW4gcGFja2FnZS5qc29uOlxuICAgKiBgYGBqc29uXG4gICAqIHtcbiAgICogICBcImRlcGVuZGVuY2llc1wiOiB7XG4gICAqICAgICBcInJlYWN0XCI6IFwiY2F0YWxvZzpyZWFjdFwiXG4gICAqICAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKlxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWQgKG5vdCBpbmNsdWRlZCBpbiBvdXRwdXQpXG4gICAqXG4gICAqIFNlZTogaHR0cHM6Ly9wbnBtLmlvL3BucG0td29ya3NwYWNlX3lhbWwjY2F0YWxvZ1xuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdENhdGFsb2c/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBOYW1lZCBjYXRhbG9ncyBvZiByZXVzYWJsZSBkZXBlbmRlbmN5IHZlcnNpb24gcmFuZ2VzLlxuICAgKlxuICAgKiBNdWx0aXBsZSBuYW1lZCBjYXRhbG9ncyB3aXRoIGFyYml0cmFyaWx5IGNob3NlbiBuYW1lcyBjYW4gYmUgY29uZmlndXJlZCB1bmRlciB0aGUgbmFtZWRDYXRhbG9ncyBrZXkuXG4gICAqXG4gICAqIEV4YW1wbGU6XG4gICAqIGBgYHlhbWxcbiAgICogbmFtZWRDYXRhbG9nczpcbiAgICogICBmcm9udGVuZDpcbiAgICogICAgIHJlYWN0OiBeMTguMC4wXG4gICAqICAgICB0eXBlc2NyaXB0OiBeNS4wLjBcbiAgICogICBiYWNrZW5kOlxuICAgKiAgICAgZXhwcmVzczogXjQuMTguMFxuICAgKiBgYGBcbiAgICpcbiAgICogVGhlbiBpbiBwYWNrYWdlLmpzb246XG4gICAqIGBgYGpzb25cbiAgICoge1xuICAgKiAgIFwiZGVwZW5kZW5jaWVzXCI6IHtcbiAgICogICAgIFwicmVhY3RcIjogXCJjYXRhbG9nOmZyb250ZW5kL3JlYWN0XCJcbiAgICogICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZCAobm90IGluY2x1ZGVkIGluIG91dHB1dClcbiAgICpcbiAgICogU2VlOiBodHRwczovL3BucG0uaW8vY2F0YWxvZ3NcbiAgICovXG4gIHJlYWRvbmx5IG5hbWVkQ2F0YWxvZ3M/OiB7XG4gICAgW2NhdGFsb2dOYW1lOiBzdHJpbmddOiB7IFtkZXBlbmRlbmN5TmFtZTogc3RyaW5nXTogc3RyaW5nIH07XG4gIH07XG59XG5cbmV4cG9ydCBjbGFzcyBQbnBtV29ya3NwYWNlIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIEdldCB0aGUgcG5wbSB3b3Jrc3BhY2UgY29tcG9uZW50IG9mIGEgcHJvamVjdC4gSWYgaXQgZG9lcyBub3QgZXhpc3QsXG4gICAqIHJldHVybiB1bmRlZmluZWQuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9qZWN0XG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHByb2plY3Q6IFByb2plY3QpOiBQbnBtV29ya3NwYWNlIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBpc0RlZmluZWQgPSAoYzogQ29tcG9uZW50KTogYyBpcyBQbnBtV29ya3NwYWNlID0+XG4gICAgICBjIGluc3RhbmNlb2YgUG5wbVdvcmtzcGFjZTtcbiAgICByZXR1cm4gcHJvamVjdC5yb290LmNvbXBvbmVudHMuZmluZChpc0RlZmluZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbGVuYW1lIGZvciB0aGUgcG5wbSB3b3Jrc3BhY2UgZmlsZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBmaWxlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUbyByZWR1Y2UgdGhlIHJpc2sgb2YgaW5zdGFsbGluZyBjb21wcm9taXNlZCBwYWNrYWdlcywgeW91IGNhbiBkZWxheSB0aGVcbiAgICogaW5zdGFsbGF0aW9uIG9mIG5ld2x5IHB1Ymxpc2hlZCB2ZXJzaW9ucy4gSW4gbW9zdCBjYXNlcywgbWFsaWNpb3VzIHJlbGVhc2VzXG4gICAqIGFyZSBkaXNjb3ZlcmVkIGFuZCByZW1vdmVkIGZyb20gdGhlIHJlZ2lzdHJ5IHdpdGhpbiBhbiBob3VyLlxuICAgKlxuICAgKiBtaW5pbXVtUmVsZWFzZUFnZSBkZWZpbmVzIHRoZSBtaW5pbXVtIG51bWJlciBvZiBtaW51dGVzIHRoYXQgbXVzdCBwYXNzXG4gICAqIGFmdGVyIGEgdmVyc2lvbiBpcyBwdWJsaXNoZWQgYmVmb3JlIHBucG0gd2lsbCBpbnN0YWxsIGl0LiBUaGlzIGFwcGxpZXMgdG9cbiAgICogYWxsIGRlcGVuZGVuY2llcywgaW5jbHVkaW5nIHRyYW5zaXRpdmUgb25lcy5cbiAgICpcbiAgICogTm90ZTogdGhpcyBzaG91bGQgbWF0Y2ggZGVwc1VwZ3JhZGVPcHRpb25zLmNvb2xkb3duIGluIHRoZSBwcm9qZWN0IGNvbmZpZy5cbiAgICpcbiAgICogU2VlOiBodHRwczovL3BucG0uaW8vc2V0dGluZ3MjbWluaW11bXJlbGVhc2VhZ2VcbiAgICovXG4gIHB1YmxpYyBtaW5pbXVtUmVsZWFzZUFnZTogVmFsdWVPZjx0eXBlb2YgTUlNSU1VTV9SRUxFQVNFX0FHRT47XG5cbiAgLyoqXG4gICAqIElmIHlvdSBzZXQgbWluaW11bVJlbGVhc2VBZ2UgYnV0IG5lZWQgY2VydGFpbiBkZXBlbmRlbmNpZXMgdG8gYWx3YXlzXG4gICAqIGluc3RhbGwgdGhlIG5ld2VzdCB2ZXJzaW9uIGltbWVkaWF0ZWx5LCB5b3UgY2FuIGxpc3QgdGhlbSB1bmRlclxuICAgKiBtaW5pbXVtUmVsZWFzZUFnZUV4Y2x1ZGUuIFRoZSBleGNsdXNpb24gd29ya3MgYnkgcGFja2FnZSBuYW1lIGFuZCBhcHBsaWVzXG4gICAqIHRvIGFsbCB2ZXJzaW9ucyBvZiB0aGF0IHBhY2thZ2UuXG4gICAqXG4gICAqIFNlZTogaHR0cHM6Ly9wbnBtLmlvL3NldHRpbmdzI21pbmltdW1yZWxlYXNlYWdlZXhjbHVkZVxuICAgKi9cbiAgcHVibGljIG1pbmltdW1SZWxlYXNlQWdlRXhjbHVkZTogQXJyYXk8c3RyaW5nPjtcblxuICAvKipcbiAgICogQSBsaXN0IG9mIHBhY2thZ2UgbmFtZXMgdGhhdCBhcmUgYWxsb3dlZCB0byBleGVjdXRlIFwicHJlaW5zdGFsbFwiLFxuICAgKiBcImluc3RhbGxcIiwgYW5kL29yIFwicG9zdGluc3RhbGxcIiBzY3JpcHRzIGR1cmluZyBpbnN0YWxsYXRpb24uIE9ubHkgdGhlXG4gICAqIHBhY2thZ2VzIGxpc3RlZCBpbiB0aGlzIGFycmF5IHdpbGwgYmUgYWJsZSB0byBydW4gdGhvc2UgbGlmZWN5Y2xlIHNjcmlwdHMuXG4gICAqIElmIG9ubHlCdWlsdERlcGVuZGVuY2llc0ZpbGUgYW5kIG5ldmVyQnVpbHREZXBlbmRlbmNpZXMgYXJlIG9taXR0ZWQsIHRoaXNcbiAgICogY29uZmlndXJhdGlvbiBvcHRpb24gd2lsbCBkZWZhdWx0IHRvIGJsb2NraW5nIGFsbCBpbnN0YWxsIHNjcmlwdHMuXG4gICAqXG4gICAqIFlvdSBtYXkgcmVzdHJpY3QgYWxsb3dhbmNlcyB0byBzcGVjaWZpYyB2ZXJzaW9ucyAoYW5kIGxpc3RzIG9mIHZlcnNpb25zXG4gICAqIHVzaW5nIGEgZGlzanVuY3Rpb24gd2l0aCB8fCkuIFdoZW4gdmVyc2lvbnMgYXJlIHNwZWNpZmllZCwgb25seSB0aG9zZVxuICAgKiB2ZXJzaW9ucyBvZiB0aGUgcGFja2FnZSBtYXkgcnVuIGxpZmVjeWNsZSBzY3JpcHRzOlxuICAgKlxuICAgKiBTZWU6IGh0dHBzOi8vcG5wbS5pby9zZXR0aW5ncyNvbmx5YnVpbHRkZXBlbmRlbmNpZXNcbiAgICovXG4gIHB1YmxpYyBvbmx5QnVpbHREZXBlbmRlbmNpZXM6IEFycmF5PHN0cmluZz47XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBwYWNrYWdlIG5hbWVzIHRoYXQgYXJlIE5PVCBhbGxvd2VkIHRvIGV4ZWN1dGUgXCJwcmVpbnN0YWxsXCIsXG4gICAqIFwiaW5zdGFsbFwiLCBhbmQvb3IgXCJwb3N0aW5zdGFsbFwiIHNjcmlwdHMgZHVyaW5nIGluc3RhbGxhdGlvbiBhbmQgd2lsbCBub3RcbiAgICogd2FybiBvciBhc2sgdG8gYmUgZXhlY3V0ZWQuXG4gICAqXG4gICAqIFRoaXMgaXMgdXNlZnVsIHdoZW4geW91IHdhbnQgdG8gaGlkZSB0aGUgd2FybmluZyBiZWNhdXNlIHlvdSBrbm93IHRoZVxuICAgKiBsaWZlY3ljbGUgc2NyaXB0cyBhcmUgbm90IG5lZWRlZC5cbiAgICpcbiAgICogaHR0cHM6Ly9wbnBtLmlvL3NldHRpbmdzI2lnbm9yZWRidWlsdGRlcGVuZGVuY2llc1xuICAgKi9cbiAgcHVibGljIGlnbm9yZWRCdWlsdERlcGVuZGVuY2llczogQXJyYXk8c3RyaW5nPjtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBzdWJwcm9qZWN0IHBhdGhzIHRvIGluY2x1ZGUgaW4gdGhlIHdvcmtzcGFjZSBwYWNrYWdlcyBhcnJheS5cbiAgICogVGhlc2Ugd2lsbCBiZSBjb21iaW5lZCB3aXRoIGFueSBzdWJwcm9qZWN0cyBkaXNjb3ZlcmVkIHZpYSBwcm9qZW4nc1xuICAgKiBwcm9qZWN0LnN1YnByb2plY3RzIHByb3BlcnR5LlxuICAgKi9cbiAgcHVibGljIHN1YnByb2plY3RzOiBBcnJheTxzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBEZWZhdWx0IGNhdGFsb2cgb2YgcmV1c2FibGUgZGVwZW5kZW5jeSB2ZXJzaW9uIHJhbmdlcy5cbiAgICpcbiAgICogVGhlIGRlZmF1bHQgY2F0YWxvZyBpcyB1c2VkIHRvIGRlZmluZSBkZXBlbmRlbmN5IHZlcnNpb25zIGFzIHJldXNhYmxlIGNvbnN0YW50c1xuICAgKiB0aGF0IGNhbiBiZSByZWZlcmVuY2VkIGluIHBhY2thZ2UuanNvbiBmaWxlcyB1c2luZyB0aGUgY2F0YWxvZzogcHJvdG9jb2wuXG4gICAqXG4gICAqIFNlZTpodHRwczovL3BucG0uaW8vY2F0YWxvZ3NcbiAgICovXG4gIHB1YmxpYyBkZWZhdWx0Q2F0YWxvZz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIE5hbWVkIGNhdGFsb2dzIG9mIHJldXNhYmxlIGRlcGVuZGVuY3kgdmVyc2lvbiByYW5nZXMuXG4gICAqXG4gICAqIE11bHRpcGxlIG5hbWVkIGNhdGFsb2dzIHdpdGggYXJiaXRyYXJpbHkgY2hvc2VuIG5hbWVzIGNhbiBiZSBjb25maWd1cmVkIHVuZGVyIHRoZSBuYW1lZENhdGFsb2dzIGtleS5cbiAgICpcbiAgICogU2VlOiBodHRwczovL3BucG0uaW8vY2F0YWxvZ3NcbiAgICovXG4gIHB1YmxpYyBuYW1lZENhdGFsb2dzPzoge1xuICAgIFtjYXRhbG9nTmFtZTogc3RyaW5nXTogeyBbZGVwZW5kZW5jeU5hbWU6IHN0cmluZ106IHN0cmluZyB9O1xuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIG9wdGlvbnM6IFBucG1Xb3Jrc3BhY2VPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKlxuICAgICAqIENMRUFSIHBhY2thZ2UsanNvblxuICAgICAqXG4gICAgICogSXQgYXBwZWFycyB0aGF0IGlmIEFOWSBwbnBtIHNldHRpbmdzIGV4aXN0IGluIHRoZSBwYWNrYWdlLmpzb24gZmlsZSwgYWxsXG4gICAgICogb2YgdGhlIHNldHRpbmcgaW4gdGhlIHBucG0td29ya3NwYWNlLnlhbWwgZmlsZSBhcmUgaWdub3JlZC4gc28gd2UgbmVlZCB0b1xuICAgICAqIGNsZWFyIG91dCBhbnl0aGluZyB0aGF0IHdhcyBwbGFjZWQgaW50byB0aGUgcGFja2FnZS5qc29uIGZpbGUuXG4gICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICBwcm9qZWN0LnRyeUZpbmRPYmplY3RGaWxlKFwicGFja2FnZS5qc29uXCIpPy5hZGREZWxldGlvbk92ZXJyaWRlKFwicG5wbVwiKTtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKiBcbiAgICAgKiBTZXR1cCBwbnBtLXdvcmtzcGFjZS55YW1sIGZpbGUuXG4gICAgICogXG4gICAgICogTm93IHRoYXQgdGhlIHBhY2thZ2UuanNvbiBmaWxlIGlzIGNsZWFyZWQgb2YgYW55IHBucG0gc2V0dGluZ3MsIHdlIGNhblxuICAgICAqIHNhZmVseSB3cml0ZSBzZXR0aW5ncyB0byB0aGUgcG5wbS13b3Jrc3BhY2UueWFtbCBmaWxlLlxuICAgICAqIFxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG4gICAgLyoqXG4gICAgICogU2V0IGZpbGVuYW1lIHRvIGRlZmF1bHQgaWYgbm90IHByb3ZpZGVkLlxuICAgICAqL1xuICAgIHRoaXMuZmlsZU5hbWUgPSBvcHRpb25zLmZpbGVOYW1lID8/IFwicG5wbS13b3Jrc3BhY2UueWFtbFwiO1xuXG4gICAgLyoqXG4gICAgICogU2V0IG1pbmltdW0gcmVsZWFzZSBhZ2UgdG8gZGVmYXVsdCBpZiBub3QgcHJvdmlkZWRcbiAgICAgKi9cbiAgICB0aGlzLm1pbmltdW1SZWxlYXNlQWdlID0gb3B0aW9ucy5taW5pbXVtUmVsZWFzZUFnZVxuICAgICAgPyBvcHRpb25zLm1pbmltdW1SZWxlYXNlQWdlXG4gICAgICA6IE1JTUlNVU1fUkVMRUFTRV9BR0UuT05FX0RBWTtcblxuICAgIC8qKlxuICAgICAqIFNldCBtaW5pbXVtIHJlbGVhc2UgYWdlIGV4Y2x1ZGUgdG8gZW1wdHkgYXJyYXkgaWYgbm90IHByb3ZpZGVkXG4gICAgICovXG4gICAgdGhpcy5taW5pbXVtUmVsZWFzZUFnZUV4Y2x1ZGUgPSBvcHRpb25zLm1pbmltdW1SZWxlYXNlQWdlRXhjbHVkZVxuICAgICAgPyBbXCJAY29kZWRyaWZ0ZXJzLypcIiwgLi4ub3B0aW9ucy5taW5pbXVtUmVsZWFzZUFnZUV4Y2x1ZGVdXG4gICAgICA6IFtcIkBjb2RlZHJpZnRlcnMvKlwiXTtcblxuICAgIC8qKlxuICAgICAqIFNldCBvbmx5IGJ1aWx0IGRlcGVuZGVuY2llcyB0byBlbXB0eSBhcnJheSBpZiBub3QgcHJvdmlkZWRcbiAgICAgKi9cbiAgICB0aGlzLm9ubHlCdWlsdERlcGVuZGVuY2llcyA9IG9wdGlvbnMub25seUJ1aWx0RGVwZW5kZW5jaWVzXG4gICAgICA/IG9wdGlvbnMub25seUJ1aWx0RGVwZW5kZW5jaWVzXG4gICAgICA6IFtdO1xuXG4gICAgLyoqXG4gICAgICogU2V0IGlnbm9yZWQgYnVpbHQgZGVwZW5kZW5jaWVzIHRvIGVtcHR5IGFycmF5IGlmIG5vdCBwcm92aWRlZFxuICAgICAqL1xuICAgIHRoaXMuaWdub3JlZEJ1aWx0RGVwZW5kZW5jaWVzID0gb3B0aW9ucy5pZ25vcmVkQnVpbHREZXBlbmRlbmNpZXNcbiAgICAgID8gb3B0aW9ucy5pZ25vcmVkQnVpbHREZXBlbmRlbmNpZXNcbiAgICAgIDogW107XG5cbiAgICAvKipcbiAgICAgKiBTdG9yZSBhZGRpdGlvbmFsIHN1YnByb2plY3QgcGF0aHMgaWYgcHJvdmlkZWRcbiAgICAgKi9cbiAgICB0aGlzLnN1YnByb2plY3RzID0gb3B0aW9ucy5zdWJwcm9qZWN0cyA/PyBbXTtcblxuICAgIC8qKlxuICAgICAqIFN0b3JlIGNhdGFsb2cgaWYgcHJvdmlkZWRcbiAgICAgKi9cbiAgICB0aGlzLmRlZmF1bHRDYXRhbG9nID0gb3B0aW9ucy5kZWZhdWx0Q2F0YWxvZztcblxuICAgIC8qKlxuICAgICAqIFN0b3JlIG5hbWVkIGNhdGFsb2dzIGlmIHByb3ZpZGVkXG4gICAgICovXG4gICAgdGhpcy5uYW1lZENhdGFsb2dzID0gb3B0aW9ucy5uYW1lZENhdGFsb2dzO1xuXG4gICAgLyoqXG4gICAgICogSW4gY2FzZSB0aGF0IHRoaXMgZmlsZSBpcyBpbiBhIHBhY2thZ2UsIGRvbid0IHBhY2thZ2UgaXQuXG4gICAgICovXG4gICAgcHJvamVjdC5hZGRQYWNrYWdlSWdub3JlKHRoaXMuZmlsZU5hbWUpO1xuXG4gICAgLyoqXG4gICAgICogV3JpdGUgcG5wbSB3b3Jrc3BhY2UgZmlsZVxuICAgICAqL1xuICAgIG5ldyBZYW1sRmlsZSh0aGlzLnByb2plY3QsIHRoaXMuZmlsZU5hbWUsIHtcbiAgICAgIG9iajogKCkgPT4ge1xuICAgICAgICBjb25zdCBwbnBtQ29uZmlnOiBhbnkgPSB7fTtcbiAgICAgICAgY29uc3QgcGFja2FnZXMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBZGQgcHJvamVuIHN1YnByb2plY3RzIHRvIHRoZSBwYWNrYWdlcyBhcnJheS5cbiAgICAgICAgICovXG4gICAgICAgIGZvciAoY29uc3Qgc3VicHJvamVjdCBvZiBwcm9qZWN0LnN1YnByb2plY3RzKSB7XG4gICAgICAgICAgLy8gZ3JhYiB0aGUgcmVsYXRpdmUgb3V0IGRpcmVjdG9yeVxuICAgICAgICAgIHBhY2thZ2VzLnB1c2gocmVsYXRpdmUodGhpcy5wcm9qZWN0Lm91dGRpciwgc3VicHJvamVjdC5vdXRkaXIpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBZGQgYWRkaXRpb25hbCBzdWJwcm9qZWN0IHBhdGhzIHByb3ZpZGVkIHZpYSBvcHRpb25zLlxuICAgICAgICAgKiBVc2UgYSBTZXQgdG8gZGVkdXBsaWNhdGUgcGF0aHMgdG8gYXZvaWQgaW5jbHVkaW5nIHRoZSBzYW1lXG4gICAgICAgICAqIHN1YnByb2plY3QgbXVsdGlwbGUgdGltZXMuXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBwYWNrYWdlU2V0ID0gbmV3IFNldChwYWNrYWdlcyk7XG4gICAgICAgIGZvciAoY29uc3Qgc3VicHJvamVjdFBhdGggb2YgdGhpcy5zdWJwcm9qZWN0cykge1xuICAgICAgICAgIHBhY2thZ2VTZXQuYWRkKHN1YnByb2plY3RQYXRoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDb252ZXJ0IGJhY2sgdG8gYXJyYXkgaWYgd2UgYWRkZWQgYW55IGFkZGl0aW9uYWwgcGF0aHNcbiAgICAgICAgICovXG4gICAgICAgIGlmICh0aGlzLnN1YnByb2plY3RzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBwYWNrYWdlcy5sZW5ndGggPSAwO1xuICAgICAgICAgIHBhY2thZ2VzLnB1c2goLi4ucGFja2FnZVNldCk7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogU2V0IG1pbmltdW0gcmVsZWFzZSBhZ2UuXG4gICAgICAgICAqL1xuICAgICAgICBwbnBtQ29uZmlnLm1pbmltdW1SZWxlYXNlQWdlID0gdGhpcy5taW5pbXVtUmVsZWFzZUFnZTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogU2V0IG1pbmltdW0gcmVsZWFzZSBhZ2UgZXhjbHVkZSBpZiBhbnkgYXJlIHByb3ZpZGVkLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHRoaXMubWluaW11bVJlbGVhc2VBZ2VFeGNsdWRlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBwbnBtQ29uZmlnLm1pbmltdW1SZWxlYXNlQWdlRXhjbHVkZSA9IHRoaXMubWluaW11bVJlbGVhc2VBZ2VFeGNsdWRlO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNldCBvbmx5IGJ1aWx0IGRlcGVuZGVuY2llcyBpZiBhbnkgYXJlIHByb3ZpZGVkLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHRoaXMub25seUJ1aWx0RGVwZW5kZW5jaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBwbnBtQ29uZmlnLm9ubHlCdWlsdERlcGVuZGVuY2llcyA9IHRoaXMub25seUJ1aWx0RGVwZW5kZW5jaWVzO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNldCBpZ25vcmVkIGJ1aWx0IGRlcGVuZGVuY2llcyBpZiBhbnkgYXJlIHByb3ZpZGVkLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHRoaXMuaWdub3JlZEJ1aWx0RGVwZW5kZW5jaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBwbnBtQ29uZmlnLmlnbm9yZUJ1aWx0RGVwZW5kZW5jaWVzID0gdGhpcy5pZ25vcmVkQnVpbHREZXBlbmRlbmNpZXM7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogU2V0IGRlZmF1bHQgY2F0YWxvZyBpZiBwcm92aWRlZC5cbiAgICAgICAgICovXG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLmRlZmF1bHRDYXRhbG9nICYmXG4gICAgICAgICAgT2JqZWN0LmtleXModGhpcy5kZWZhdWx0Q2F0YWxvZykubGVuZ3RoID4gMFxuICAgICAgICApIHtcbiAgICAgICAgICBwbnBtQ29uZmlnLmNhdGFsb2cgPSB0aGlzLmRlZmF1bHRDYXRhbG9nO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNldCBuYW1lZCBjYXRhbG9ncyBpZiBwcm92aWRlZC5cbiAgICAgICAgICovXG4gICAgICAgIGlmICh0aGlzLm5hbWVkQ2F0YWxvZ3MgJiYgT2JqZWN0LmtleXModGhpcy5uYW1lZENhdGFsb2dzKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcG5wbUNvbmZpZy5uYW1lZENhdGFsb2dzID0gdGhpcy5uYW1lZENhdGFsb2dzO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFJldHVybiB0aGUgZmluYWwgcG5wbSBjb25maWcgb2JqZWN0LlxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi4ocGFja2FnZXMubGVuZ3RoID4gMCA/IHsgcGFja2FnZXMgfSA6IHt9KSxcbiAgICAgICAgICAuLi4ocG5wbUNvbmZpZyA/IHsgLi4ucG5wbUNvbmZpZyB9IDoge30pLFxuICAgICAgICB9O1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./monorepo-project"), exports);
|
|
18
|
+
__exportStar(require("./typescript-project"), exports);
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvamVjdHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFEQUFtQztBQUNuQyx1REFBcUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9tb25vcmVwby1wcm9qZWN0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi90eXBlc2NyaXB0LXByb2plY3RcIjtcbiJdfQ==
|