projen-pipelines 0.2.11 → 0.2.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+ var _a, _b, _c, _d, _e;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.VersioningOutputs = exports.OutputFormat = exports.ParameterStoreOutput = exports.CloudFormationOutput = exports.OutputConfigBase = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ /**
7
+ * Base class for output configurations
8
+ */
9
+ class OutputConfigBase {
10
+ constructor(type) {
11
+ this.type = type;
12
+ }
13
+ }
14
+ exports.OutputConfigBase = OutputConfigBase;
15
+ _a = JSII_RTTI_SYMBOL_1;
16
+ OutputConfigBase[_a] = { fqn: "projen-pipelines.OutputConfigBase", version: "0.2.13" };
17
+ /**
18
+ * CloudFormation output configuration
19
+ */
20
+ class CloudFormationOutput extends OutputConfigBase {
21
+ /**
22
+ * Enable CloudFormation outputs with default configuration
23
+ */
24
+ static enabled() {
25
+ return new CloudFormationOutput({ enabled: true });
26
+ }
27
+ /**
28
+ * Disable CloudFormation outputs
29
+ */
30
+ static disabled() {
31
+ return new CloudFormationOutput({ enabled: false });
32
+ }
33
+ /**
34
+ * Configure CloudFormation outputs with custom settings
35
+ */
36
+ static withConfig(config) {
37
+ return new CloudFormationOutput({ ...config });
38
+ }
39
+ constructor(config) {
40
+ super(CloudFormationOutput.TYPE);
41
+ this.config = config;
42
+ }
43
+ toConfig() {
44
+ if (!this.config) {
45
+ return { enabled: true };
46
+ }
47
+ return this.config;
48
+ }
49
+ }
50
+ exports.CloudFormationOutput = CloudFormationOutput;
51
+ _b = JSII_RTTI_SYMBOL_1;
52
+ CloudFormationOutput[_b] = { fqn: "projen-pipelines.CloudFormationOutput", version: "0.2.13" };
53
+ CloudFormationOutput.TYPE = 'cloudformation';
54
+ /**
55
+ * SSM Parameter Store output configuration
56
+ */
57
+ class ParameterStoreOutput extends OutputConfigBase {
58
+ /**
59
+ * Enable Parameter Store outputs with parameter name
60
+ */
61
+ static enabled(parameterName) {
62
+ return new ParameterStoreOutput({ enabled: true, parameterName });
63
+ }
64
+ /**
65
+ * Disable Parameter Store outputs
66
+ */
67
+ static disabled() {
68
+ return new ParameterStoreOutput({ enabled: false, parameterName: '' });
69
+ }
70
+ /**
71
+ * Configure Parameter Store outputs with custom settings
72
+ */
73
+ static withConfig(config) {
74
+ return new ParameterStoreOutput({ ...config });
75
+ }
76
+ /**
77
+ * Configure Parameter Store with hierarchical parameters
78
+ */
79
+ static hierarchical(basePath, options) {
80
+ return new ParameterStoreOutput({
81
+ enabled: true,
82
+ parameterName: basePath,
83
+ hierarchical: true,
84
+ splitParameters: true,
85
+ ...options,
86
+ });
87
+ }
88
+ constructor(config) {
89
+ super(ParameterStoreOutput.TYPE);
90
+ this.config = config;
91
+ }
92
+ toConfig() {
93
+ if (!this.config) {
94
+ return { enabled: false, parameterName: '' };
95
+ }
96
+ return this.config;
97
+ }
98
+ }
99
+ exports.ParameterStoreOutput = ParameterStoreOutput;
100
+ _c = JSII_RTTI_SYMBOL_1;
101
+ ParameterStoreOutput[_c] = { fqn: "projen-pipelines.ParameterStoreOutput", version: "0.2.13" };
102
+ ParameterStoreOutput.TYPE = 'parameterStore';
103
+ /**
104
+ * Output format types
105
+ */
106
+ class OutputFormat {
107
+ constructor() { }
108
+ }
109
+ exports.OutputFormat = OutputFormat;
110
+ _d = JSII_RTTI_SYMBOL_1;
111
+ OutputFormat[_d] = { fqn: "projen-pipelines.OutputFormat", version: "0.2.13" };
112
+ OutputFormat.PLAIN = 'plain';
113
+ OutputFormat.STRUCTURED = 'structured';
114
+ /**
115
+ * Factory class for output configurations
116
+ */
117
+ class VersioningOutputs {
118
+ /**
119
+ * Create output configuration with CloudFormation and SSM Parameter Store
120
+ */
121
+ static standard(options) {
122
+ return {
123
+ cloudFormation: CloudFormationOutput.enabled().toConfig(),
124
+ parameterStore: options?.parameterName
125
+ ? ParameterStoreOutput.enabled(options.parameterName).toConfig()
126
+ : ParameterStoreOutput.disabled().toConfig(),
127
+ };
128
+ }
129
+ /**
130
+ * Create output configuration with only CloudFormation
131
+ */
132
+ static cloudFormationOnly(options) {
133
+ const cfConfig = options?.stackOutputName || options?.exportName
134
+ ? CloudFormationOutput.withConfig({
135
+ enabled: true,
136
+ exportName: options.exportName,
137
+ }).toConfig()
138
+ : CloudFormationOutput.enabled().toConfig();
139
+ return {
140
+ cloudFormation: cfConfig,
141
+ parameterStore: ParameterStoreOutput.disabled().toConfig(),
142
+ };
143
+ }
144
+ /**
145
+ * Create output configuration with hierarchical SSM parameters
146
+ */
147
+ static hierarchicalParameters(basePath, options) {
148
+ return {
149
+ cloudFormation: options?.includeCloudFormation ? CloudFormationOutput.enabled().toConfig() : CloudFormationOutput.disabled().toConfig(),
150
+ parameterStore: ParameterStoreOutput.hierarchical(basePath, {}).toConfig(),
151
+ };
152
+ }
153
+ /**
154
+ * Create minimal output configuration (CloudFormation only, plain format)
155
+ */
156
+ static minimal() {
157
+ return {
158
+ cloudFormation: CloudFormationOutput.enabled().toConfig(),
159
+ parameterStore: ParameterStoreOutput.disabled().toConfig(),
160
+ };
161
+ }
162
+ }
163
+ exports.VersioningOutputs = VersioningOutputs;
164
+ _e = JSII_RTTI_SYMBOL_1;
165
+ VersioningOutputs[_e] = { fqn: "projen-pipelines.VersioningOutputs", version: "0.2.13" };
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0cHV0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJzaW9uaW5nL291dHB1dHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQTs7R0FFRztBQUNILE1BQXNCLGdCQUFnQjtJQUNwQyxZQUFzQyxJQUFZO1FBQVosU0FBSSxHQUFKLElBQUksQ0FBUTtJQUFJLENBQUM7O0FBRHpELDRDQU9DOzs7QUFFRDs7R0FFRztBQUNILE1BQWEsb0JBQXFCLFNBQVEsZ0JBQWdCO0lBR3hEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLE9BQU87UUFDbkIsT0FBTyxJQUFJLG9CQUFvQixDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFFBQVE7UUFDcEIsT0FBTyxJQUFJLG9CQUFvQixDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFrQztRQUN6RCxPQUFPLElBQUksb0JBQW9CLENBQUMsRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELFlBQXFDLE1BQW1DO1FBQ3RFLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQURFLFdBQU0sR0FBTixNQUFNLENBQTZCO0lBRXhFLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNqQixPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQzs7QUFqQ0gsb0RBa0NDOzs7QUFqQ3dCLHlCQUFJLEdBQUcsZ0JBQWdCLENBQUM7QUFtQ2pEOztHQUVHO0FBQ0gsTUFBYSxvQkFBcUIsU0FB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QyxDQUFDLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7WUFDdkksY0FBYyxFQUFFLG9CQUFvQixDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO1NBQzNFLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsT0FBTztRQUNuQixPQUFPO1lBQ0wsY0FBYyxFQUFFLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRTtZQUN6RCxjQUFjLEVBQUUsb0JBQW9CLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO1NBQzNELENBQUM7SUFDSixDQUFDOztBQWhESCw4Q0FpREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDbG91ZEZvcm1hdGlvbk91dHB1dENvbmZpZywgUGFyYW1ldGVyU3RvcmVDb25maWcsIFZlcnNpb25pbmdPdXRwdXRDb25maWcsIFN0YW5kYXJkT3V0cHV0T3B0aW9ucywgQ2xvdWRGb3JtYXRpb25Pbmx5T3B0aW9ucywgSGllcmFyY2hpY2FsUGFyYW1ldGVyc09wdGlvbnMgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBvdXRwdXQgY29uZmlndXJhdGlvbnNcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE91dHB1dENvbmZpZ0Jhc2Uge1xuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHR5cGU6IHN0cmluZykgeyB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgdG8gY29uZmlndXJhdGlvbiBvYmplY3RcbiAgICovXG4gIGFic3RyYWN0IHRvQ29uZmlnKCk6IGFueTtcbn1cblxuLyoqXG4gKiBDbG91ZEZvcm1hdGlvbiBvdXRwdXQgY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgY2xhc3MgQ2xvdWRGb3JtYXRpb25PdXRwdXQgZXh0ZW5kcyBPdXRwdXRDb25maWdCYXNlIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBUWVBFID0gJ2Nsb3VkZm9ybWF0aW9uJztcblxuICAvKipcbiAgICogRW5hYmxlIENsb3VkRm9ybWF0aW9uIG91dHB1dHMgd2l0aCBkZWZhdWx0IGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZW5hYmxlZCgpOiBDbG91ZEZvcm1hdGlvbk91dHB1dCB7XG4gICAgcmV0dXJuIG5ldyBDbG91ZEZvcm1hdGlvbk91dHB1dCh7IGVuYWJsZWQ6IHRydWUgfSk7XG4gIH1cblxuICAvKipcbiAgICogRGlzYWJsZSBDbG91ZEZvcm1hdGlvbiBvdXRwdXRzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGRpc2FibGVkKCk6IENsb3VkRm9ybWF0aW9uT3V0cHV0IHtcbiAgICByZXR1cm4gbmV3IENsb3VkRm9ybWF0aW9uT3V0cHV0KHsgZW5hYmxlZDogZmFsc2UgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ29uZmlndXJlIENsb3VkRm9ybWF0aW9uIG91dHB1dHMgd2l0aCBjdXN0b20gc2V0dGluZ3NcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2l0aENvbmZpZyhjb25maWc6IENsb3VkRm9ybWF0aW9uT3V0cHV0Q29uZmlnKTogQ2xvdWRGb3JtYXRpb25PdXRwdXQge1xuICAgIHJldHVybiBuZXcgQ2xvdWRGb3JtYXRpb25PdXRwdXQoeyAuLi5jb25maWcgfSk7XG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY29uZmlnPzogQ2xvdWRGb3JtYXRpb25PdXRwdXRDb25maWcpIHtcbiAgICBzdXBlcihDbG91ZEZvcm1hdGlvbk91dHB1dC5UWVBFKTtcbiAgfVxuXG4gIHB1YmxpYyB0b0NvbmZpZygpOiBhbnkge1xuICAgIGlmICghdGhpcy5jb25maWcpIHtcbiAgICAgIHJldHVybiB7IGVuYWJsZWQ6IHRydWUgfTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnO1xuICB9XG59XG5cbi8qKlxuICogU1NNIFBhcmFtZXRlciBTdG9yZSBvdXRwdXQgY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgY2xhc3MgUGFyYW1ldGVyU3RvcmVPdXRwdXQgZXh0ZW5kcyBPdXRwdXRDb25maWdCYXNlIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBUWVBFID0gJ3BhcmFtZXRlclN0b3JlJztcblxuICAvKipcbiAgICogRW5hYmxlIFBhcmFtZXRlciBTdG9yZSBvdXRwdXRzIHdpdGggcGFyYW1ldGVyIG5hbWVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZW5hYmxlZChwYXJhbWV0ZXJOYW1lOiBzdHJpbmcpOiBQYXJhbWV0ZXJTdG9yZU91dHB1dCB7XG4gICAgcmV0dXJuIG5ldyBQYXJhbWV0ZXJTdG9yZU91dHB1dCh7IGVuYWJsZWQ6IHRydWUsIHBhcmFtZXRlck5hbWUgfSk7XG4gIH1cblxuICAvKipcbiAgICogRGlzYWJsZSBQYXJhbWV0ZXIgU3RvcmUgb3V0cHV0c1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBkaXNhYmxlZCgpOiBQYXJhbWV0ZXJTdG9yZU91dHB1dCB7XG4gICAgcmV0dXJuIG5ldyBQYXJhbWV0ZXJTdG9yZU91dHB1dCh7IGVuYWJsZWQ6IGZhbHNlLCBwYXJhbWV0ZXJOYW1lOiAnJyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25maWd1cmUgUGFyYW1ldGVyIFN0b3JlIG91dHB1dHMgd2l0aCBjdXN0b20gc2V0dGluZ3NcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2l0aENvbmZpZyhjb25maWc6IFBhcmFtZXRlclN0b3JlQ29uZmlnKTogUGFyYW1ldGVyU3RvcmVPdXRwdXQge1xuICAgIHJldHVybiBuZXcgUGFyYW1ldGVyU3RvcmVPdXRwdXQoeyAuLi5jb25maWcgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ29uZmlndXJlIFBhcmFtZXRlciBTdG9yZSB3aXRoIGhpZXJhcmNoaWNhbCBwYXJhbWV0ZXJzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGhpZXJhcmNoaWNhbChiYXNlUGF0aDogc3RyaW5nLCBvcHRpb25zPzogSGllcmFyY2hpY2FsUGFyYW1ldGVyc09wdGlvbnMpOiBQYXJhbWV0ZXJTdG9yZU91dHB1dCB7XG4gICAgcmV0dXJuIG5ldyBQYXJhbWV0ZXJTdG9yZU91dHB1dCh7XG4gICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgcGFyYW1ldGVyTmFtZTogYmFzZVBhdGgsXG4gICAgICBoaWVyYXJjaGljYWw6IHRydWUsXG4gICAgICBzcGxpdFBhcmFtZXRlcnM6IHRydWUsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNvbmZpZz86IFBhcmFtZXRlclN0b3JlQ29uZmlnKSB7XG4gICAgc3VwZXIoUGFyYW1ldGVyU3RvcmVPdXRwdXQuVFlQRSk7XG4gIH1cblxuICBwdWJsaWMgdG9Db25maWcoKTogYW55IHtcbiAgICBpZiAoIXRoaXMuY29uZmlnKSB7XG4gICAgICByZXR1cm4geyBlbmFibGVkOiBmYWxzZSwgcGFyYW1ldGVyTmFtZTogJycgfTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnO1xuICB9XG59XG5cbi8qKlxuICogT3V0cHV0IGZvcm1hdCB0eXBlc1xuICovXG5leHBvcnQgY2xhc3MgT3V0cHV0Rm9ybWF0IHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQTEFJTiA9ICdwbGFpbicgYXMgY29uc3Q7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU1RSVUNUVVJFRCA9ICdzdHJ1Y3R1cmVkJyBhcyBjb25zdDtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkgeyB9XG59XG5cbi8qKlxuICogRmFjdG9yeSBjbGFzcyBmb3Igb3V0cHV0IGNvbmZpZ3VyYXRpb25zXG4gKi9cbmV4cG9ydCBjbGFzcyBWZXJzaW9uaW5nT3V0cHV0cyB7XG4gIC8qKlxuICAgKiBDcmVhdGUgb3V0cHV0IGNvbmZpZ3VyYXRpb24gd2l0aCBDbG91ZEZvcm1hdGlvbiBhbmQgU1NNIFBhcmFtZXRlciBTdG9yZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzdGFuZGFyZChvcHRpb25zPzogU3RhbmRhcmRPdXRwdXRPcHRpb25zKTogVmVyc2lvbmluZ091dHB1dENvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNsb3VkRm9ybWF0aW9uOiBDbG91ZEZvcm1hdGlvbk91dHB1dC5lbmFibGVkKCkudG9Db25maWcoKSxcbiAgICAgIHBhcmFtZXRlclN0b3JlOiBvcHRpb25zPy5wYXJhbWV0ZXJOYW1lXG4gICAgICAgID8gUGFyYW1ldGVyU3RvcmVPdXRwdXQuZW5hYmxlZChvcHRpb25zLnBhcmFtZXRlck5hbWUpLnRvQ29uZmlnKClcbiAgICAgICAgOiBQYXJhbWV0ZXJTdG9yZU91dHB1dC5kaXNhYmxlZCgpLnRvQ29uZmlnKCksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgb3V0cHV0IGNvbmZpZ3VyYXRpb24gd2l0aCBvbmx5IENsb3VkRm9ybWF0aW9uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGNsb3VkRm9ybWF0aW9uT25seShvcHRpb25zPzogQ2xvdWRGb3JtYXRpb25Pbmx5T3B0aW9ucyk6IFZlcnNpb25pbmdPdXRwdXRDb25maWcge1xuICAgIGNvbnN0IGNmQ29uZmlnID0gb3B0aW9ucz8uc3RhY2tPdXRwdXROYW1lIHx8IG9wdGlvbnM/LmV4cG9ydE5hbWVcbiAgICAgID8gQ2xvdWRGb3JtYXRpb25PdXRwdXQud2l0aENvbmZpZyh7XG4gICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgIGV4cG9ydE5hbWU6IG9wdGlvbnMuZXhwb3J0TmFtZSxcbiAgICAgIH0pLnRvQ29uZmlnKClcbiAgICAgIDogQ2xvdWRGb3JtYXRpb25PdXRwdXQuZW5hYmxlZCgpLnRvQ29uZmlnKCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgY2xvdWRGb3JtYXRpb246IGNmQ29uZmlnLFxuICAgICAgcGFyYW1ldGVyU3RvcmU6IFBhcmFtZXRlclN0b3JlT3V0cHV0LmRpc2FibGVkKCkudG9Db25maWcoKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBvdXRwdXQgY29uZmlndXJhdGlvbiB3aXRoIGhpZXJhcmNoaWNhbCBTU00gcGFyYW1ldGVyc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBoaWVyYXJjaGljYWxQYXJhbWV0ZXJzKGJhc2VQYXRoOiBzdHJpbmcsIG9wdGlvbnM/OiBIaWVyYXJjaGljYWxQYXJhbWV0ZXJzT3B0aW9ucyk6IFZlcnNpb25pbmdPdXRwdXRDb25maWcge1xuICAgIHJldHVybiB7XG4gICAgICBjbG91ZEZvcm1hdGlvbjogb3B0aW9ucz8uaW5jbHVkZUNsb3VkRm9ybWF0aW9uID8gQ2xvdWRGb3JtYXRpb25PdXRwdXQuZW5hYmxlZCgpLnRvQ29uZmlnKCkgOiBDbG91ZEZvcm1hdGlvbk91dHB1dC5kaXNhYmxlZCgpLnRvQ29uZmlnKCksXG4gICAgICBwYXJhbWV0ZXJTdG9yZTogUGFyYW1ldGVyU3RvcmVPdXRwdXQuaGllcmFyY2hpY2FsKGJhc2VQYXRoLCB7fSkudG9Db25maWcoKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBtaW5pbWFsIG91dHB1dCBjb25maWd1cmF0aW9uIChDbG91ZEZvcm1hdGlvbiBvbmx5LCBwbGFpbiBmb3JtYXQpXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG1pbmltYWwoKTogVmVyc2lvbmluZ091dHB1dENvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNsb3VkRm9ybWF0aW9uOiBDbG91ZEZvcm1hdGlvbk91dHB1dC5lbmFibGVkKCkudG9Db25maWcoKSxcbiAgICAgIHBhcmFtZXRlclN0b3JlOiBQYXJhbWV0ZXJTdG9yZU91dHB1dC5kaXNhYmxlZCgpLnRvQ29uZmlnKCksXG4gICAgfTtcbiAgfVxufSJdfQ==
@@ -0,0 +1,30 @@
1
+ import { Project } from 'projen';
2
+ import { VersioningConfig } from './types';
3
+ /**
4
+ * Sets up versioning tasks and integration for a project
5
+ */
6
+ export declare class VersioningSetup {
7
+ private readonly project;
8
+ private readonly config;
9
+ constructor(project: Project, config: VersioningConfig);
10
+ /**
11
+ * Set up all versioning-related tasks and configurations
12
+ */
13
+ setup(): void;
14
+ /**
15
+ * Create the version:compute task
16
+ */
17
+ private createVersionComputeTask;
18
+ /**
19
+ * Create the version:print task
20
+ */
21
+ private createVersionPrintTask;
22
+ /**
23
+ * Integrate version computation with the build process
24
+ */
25
+ private integrateWithBuildProcess;
26
+ /**
27
+ * Generate the Node.js script for version computation
28
+ */
29
+ private generateVersionComputeScript;
30
+ }
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.VersioningSetup = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ /**
7
+ * Sets up versioning tasks and integration for a project
8
+ */
9
+ class VersioningSetup {
10
+ constructor(project, config) {
11
+ this.project = project;
12
+ this.config = config;
13
+ }
14
+ /**
15
+ * Set up all versioning-related tasks and configurations
16
+ */
17
+ setup() {
18
+ // Create version computation task
19
+ this.createVersionComputeTask();
20
+ // Create version print task
21
+ this.createVersionPrintTask();
22
+ // Add version computation to build process
23
+ this.integrateWithBuildProcess();
24
+ // Add version file to gitignore
25
+ this.project.gitignore.exclude('~version.json');
26
+ }
27
+ /**
28
+ * Create the version:compute task
29
+ */
30
+ createVersionComputeTask() {
31
+ this.project.addTask('version:compute', {
32
+ description: 'Compute version information from git',
33
+ steps: [
34
+ { exec: 'echo "Computing version information..."' },
35
+ {
36
+ exec: this.generateVersionComputeScript(),
37
+ },
38
+ ],
39
+ });
40
+ }
41
+ /**
42
+ * Create the version:print task
43
+ */
44
+ createVersionPrintTask() {
45
+ this.project.addTask('version:print', {
46
+ description: 'Print version information',
47
+ steps: [
48
+ { exec: 'cat ~version.json' },
49
+ ],
50
+ });
51
+ }
52
+ /**
53
+ * Integrate version computation with the build process
54
+ */
55
+ integrateWithBuildProcess() {
56
+ const compileTask = this.project.tasks.tryFind('compile');
57
+ const computeTask = this.project.tasks.tryFind('version:compute');
58
+ const printTask = this.project.tasks.tryFind('version:print');
59
+ if (compileTask && computeTask && printTask) {
60
+ compileTask.prependSpawn(printTask);
61
+ compileTask.prependSpawn(computeTask);
62
+ }
63
+ }
64
+ /**
65
+ * Generate the Node.js script for version computation
66
+ */
67
+ generateVersionComputeScript() {
68
+ const strategyJson = JSON.stringify(this.config.strategy).replace(/"/g, '\\"');
69
+ return `node -e "
70
+ const fs = require('fs');
71
+ const cp = require('child_process');
72
+
73
+ // Import versioning modules
74
+ const { VersionComputer, VersioningStrategy } = require('projen-pipelines');
75
+
76
+ try {
77
+ // Gather git information
78
+ const commitHash = cp.execSync('git rev-parse HEAD', {encoding: 'utf8'}).trim();
79
+ const commitHashShort = commitHash.substring(0, 8);
80
+ const commitCount = parseInt(cp.execSync('git rev-list --count HEAD', {encoding: 'utf8'}).trim());
81
+ const branch = cp.execSync('git rev-parse --abbrev-ref HEAD', {encoding: 'utf8'}).trim();
82
+
83
+ let tag = '';
84
+ let commitsSinceTag = 0;
85
+ try {
86
+ tag = cp.execSync('git describe --tags --exact-match --all', {encoding: 'utf8'}).trim();
87
+ } catch {
88
+ try {
89
+ const describeOutput = cp.execSync('git describe --tags --long --all', {encoding: 'utf8'}).trim();
90
+ const match = describeOutput.match(/^(.+)-(\\\\d+)-g[0-9a-f]+$/);
91
+ if (match) {
92
+ tag = match[1];
93
+ commitsSinceTag = parseInt(match[2]);
94
+ }
95
+ } catch {}
96
+ }
97
+
98
+ let packageVersion = '0.0.0';
99
+ try {
100
+ packageVersion = JSON.parse(fs.readFileSync('package.json', 'utf8')).version;
101
+ } catch {}
102
+
103
+ // Create computation context
104
+ const context = {
105
+ gitInfo: {
106
+ commitHash,
107
+ commitHashShort,
108
+ branch,
109
+ tag,
110
+ commitsSinceTag,
111
+ commitCount,
112
+ packageVersion
113
+ },
114
+ environment: process.env.STAGE || process.env.ENVIRONMENT || 'unknown',
115
+ deployedBy: process.env.GITHUB_ACTOR || process.env.GITLAB_USER_LOGIN || process.env.USER || 'unknown',
116
+ buildNumber: process.env.BUILD_NUMBER || process.env.GITHUB_RUN_NUMBER,
117
+ repository: process.env.GITHUB_REPOSITORY || process.env.CI_PROJECT_PATH,
118
+ pipelineVersion: process.env.PIPELINE_VERSION
119
+ };
120
+
121
+ // Create strategy from configuration
122
+ const strategyConfig = ${strategyJson};
123
+ const strategy = new VersioningStrategy(strategyConfig.format, strategyConfig.components);
124
+
125
+ // Compute version
126
+ const computer = new VersionComputer(strategy);
127
+ computer.computeVersionInfo(context).then(versionInfo => {
128
+ fs.writeFileSync('~version.json', versionInfo.toJson());
129
+ console.log('Version computed:', versionInfo.version, '(commit:', versionInfo.commitHashShort + ')');
130
+ }).catch(error => {
131
+ console.error('Error computing version:', error.message);
132
+ const fallback = {
133
+ version: '0.0.0',
134
+ commitHash: 'unknown',
135
+ commitHashShort: 'unknown',
136
+ branch: 'unknown',
137
+ commitCount: 0,
138
+ packageVersion: '0.0.0',
139
+ deployedAt: new Date().toISOString(),
140
+ deployedBy: 'unknown',
141
+ environment: 'unknown'
142
+ };
143
+ fs.writeFileSync('~version.json', JSON.stringify(fallback, null, 2));
144
+ });
145
+ } catch (e) {
146
+ console.error('Error in version computation:', e.message);
147
+ const fallback = {
148
+ version: '0.0.0',
149
+ commitHash: 'unknown',
150
+ commitHashShort: 'unknown',
151
+ branch: 'unknown',
152
+ commitCount: 0,
153
+ packageVersion: '0.0.0',
154
+ deployedAt: new Date().toISOString(),
155
+ deployedBy: 'unknown',
156
+ environment: 'unknown'
157
+ };
158
+ fs.writeFileSync('~version.json', JSON.stringify(fallback, null, 2));
159
+ }"`;
160
+ }
161
+ }
162
+ exports.VersioningSetup = VersioningSetup;
163
+ _a = JSII_RTTI_SYMBOL_1;
164
+ VersioningSetup[_a] = { fqn: "projen-pipelines.VersioningSetup", version: "0.2.13" };
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmVyc2lvbmluZy9zZXR1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUdBOztHQUVHO0FBQ0gsTUFBYSxlQUFlO0lBRTFCLFlBQTZCLE9BQWdCLEVBQW1CLE1BQXdCO1FBQTNELFlBQU8sR0FBUCxPQUFPLENBQVM7UUFBbUIsV0FBTSxHQUFOLE1BQU0sQ0FBa0I7SUFDeEYsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSztRQUNWLGtDQUFrQztRQUNsQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUVoQyw0QkFBNEI7UUFDNUIsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFFOUIsMkNBQTJDO1FBQzNDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FBRWpDLGdDQUFnQztRQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ssd0JBQXdCO1FBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFO1lBQ3RDLFdBQVcsRUFBRSxzQ0FBc0M7WUFDbkQsS0FBSyxFQUFFO2dCQUNMLEVBQUUsSUFBSSxFQUFFLHlDQUF5QyxFQUFFO2dCQUNuRDtvQkFDRSxJQUFJLEVBQUUsSUFBSSxDQUFDLDRCQUE0QixFQUFFO2lCQUMxQzthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssc0JBQXNCO1FBQzVCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRTtZQUNwQyxXQUFXLEVBQUUsMkJBQTJCO1lBQ3hDLEtBQUssRUFBRTtnQkFDTCxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRTthQUM5QjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNLLHlCQUF5QjtRQUMvQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDbEUsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTlELElBQUksV0FBVyxJQUFJLFdBQVcsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUM1QyxXQUFXLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3BDLFdBQVcsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDeEMsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNLLDRCQUE0QjtRQUNsQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUUvRSxPQUFPOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsyQkFxRGdCLFlBQVk7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQ3BDLENBQUM7SUFDRixDQUFDOztBQWhLSCwwQ0FpS0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IFZlcnNpb25pbmdDb25maWcgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBTZXRzIHVwIHZlcnNpb25pbmcgdGFza3MgYW5kIGludGVncmF0aW9uIGZvciBhIHByb2plY3RcbiAqL1xuZXhwb3J0IGNsYXNzIFZlcnNpb25pbmdTZXR1cCB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwcm9qZWN0OiBQcm9qZWN0LCBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogVmVyc2lvbmluZ0NvbmZpZykge1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB1cCBhbGwgdmVyc2lvbmluZy1yZWxhdGVkIHRhc2tzIGFuZCBjb25maWd1cmF0aW9uc1xuICAgKi9cbiAgcHVibGljIHNldHVwKCk6IHZvaWQge1xuICAgIC8vIENyZWF0ZSB2ZXJzaW9uIGNvbXB1dGF0aW9uIHRhc2tcbiAgICB0aGlzLmNyZWF0ZVZlcnNpb25Db21wdXRlVGFzaygpO1xuXG4gICAgLy8gQ3JlYXRlIHZlcnNpb24gcHJpbnQgdGFza1xuICAgIHRoaXMuY3JlYXRlVmVyc2lvblByaW50VGFzaygpO1xuXG4gICAgLy8gQWRkIHZlcnNpb24gY29tcHV0YXRpb24gdG8gYnVpbGQgcHJvY2Vzc1xuICAgIHRoaXMuaW50ZWdyYXRlV2l0aEJ1aWxkUHJvY2VzcygpO1xuXG4gICAgLy8gQWRkIHZlcnNpb24gZmlsZSB0byBnaXRpZ25vcmVcbiAgICB0aGlzLnByb2plY3QuZ2l0aWdub3JlLmV4Y2x1ZGUoJ352ZXJzaW9uLmpzb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgdGhlIHZlcnNpb246Y29tcHV0ZSB0YXNrXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZVZlcnNpb25Db21wdXRlVGFzaygpOiB2b2lkIHtcbiAgICB0aGlzLnByb2plY3QuYWRkVGFzaygndmVyc2lvbjpjb21wdXRlJywge1xuICAgICAgZGVzY3JpcHRpb246ICdDb21wdXRlIHZlcnNpb24gaW5mb3JtYXRpb24gZnJvbSBnaXQnLFxuICAgICAgc3RlcHM6IFtcbiAgICAgICAgeyBleGVjOiAnZWNobyBcIkNvbXB1dGluZyB2ZXJzaW9uIGluZm9ybWF0aW9uLi4uXCInIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBleGVjOiB0aGlzLmdlbmVyYXRlVmVyc2lvbkNvbXB1dGVTY3JpcHQoKSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIHRoZSB2ZXJzaW9uOnByaW50IHRhc2tcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlVmVyc2lvblByaW50VGFzaygpOiB2b2lkIHtcbiAgICB0aGlzLnByb2plY3QuYWRkVGFzaygndmVyc2lvbjpwcmludCcsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnUHJpbnQgdmVyc2lvbiBpbmZvcm1hdGlvbicsXG4gICAgICBzdGVwczogW1xuICAgICAgICB7IGV4ZWM6ICdjYXQgfnZlcnNpb24uanNvbicgfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSW50ZWdyYXRlIHZlcnNpb24gY29tcHV0YXRpb24gd2l0aCB0aGUgYnVpbGQgcHJvY2Vzc1xuICAgKi9cbiAgcHJpdmF0ZSBpbnRlZ3JhdGVXaXRoQnVpbGRQcm9jZXNzKCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbXBpbGVUYXNrID0gdGhpcy5wcm9qZWN0LnRhc2tzLnRyeUZpbmQoJ2NvbXBpbGUnKTtcbiAgICBjb25zdCBjb21wdXRlVGFzayA9IHRoaXMucHJvamVjdC50YXNrcy50cnlGaW5kKCd2ZXJzaW9uOmNvbXB1dGUnKTtcbiAgICBjb25zdCBwcmludFRhc2sgPSB0aGlzLnByb2plY3QudGFza3MudHJ5RmluZCgndmVyc2lvbjpwcmludCcpO1xuXG4gICAgaWYgKGNvbXBpbGVUYXNrICYmIGNvbXB1dGVUYXNrICYmIHByaW50VGFzaykge1xuICAgICAgY29tcGlsZVRhc2sucHJlcGVuZFNwYXduKHByaW50VGFzayk7XG4gICAgICBjb21waWxlVGFzay5wcmVwZW5kU3Bhd24oY29tcHV0ZVRhc2spO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSB0aGUgTm9kZS5qcyBzY3JpcHQgZm9yIHZlcnNpb24gY29tcHV0YXRpb25cbiAgICovXG4gIHByaXZhdGUgZ2VuZXJhdGVWZXJzaW9uQ29tcHV0ZVNjcmlwdCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHN0cmF0ZWd5SnNvbiA9IEpTT04uc3RyaW5naWZ5KHRoaXMuY29uZmlnLnN0cmF0ZWd5KS5yZXBsYWNlKC9cIi9nLCAnXFxcXFwiJyk7XG5cbiAgICByZXR1cm4gYG5vZGUgLWUgXCJcbmNvbnN0IGZzID0gcmVxdWlyZSgnZnMnKTtcbmNvbnN0IGNwID0gcmVxdWlyZSgnY2hpbGRfcHJvY2VzcycpO1xuXG4vLyBJbXBvcnQgdmVyc2lvbmluZyBtb2R1bGVzXG5jb25zdCB7IFZlcnNpb25Db21wdXRlciwgVmVyc2lvbmluZ1N0cmF0ZWd5IH0gPSByZXF1aXJlKCdwcm9qZW4tcGlwZWxpbmVzJyk7XG5cbnRyeSB7XG4gIC8vIEdhdGhlciBnaXQgaW5mb3JtYXRpb25cbiAgY29uc3QgY29tbWl0SGFzaCA9IGNwLmV4ZWNTeW5jKCdnaXQgcmV2LXBhcnNlIEhFQUQnLCB7ZW5jb2Rpbmc6ICd1dGY4J30pLnRyaW0oKTtcbiAgY29uc3QgY29tbWl0SGFzaFNob3J0ID0gY29tbWl0SGFzaC5zdWJzdHJpbmcoMCwgOCk7XG4gIGNvbnN0IGNvbW1pdENvdW50ID0gcGFyc2VJbnQoY3AuZXhlY1N5bmMoJ2dpdCByZXYtbGlzdCAtLWNvdW50IEhFQUQnLCB7ZW5jb2Rpbmc6ICd1dGY4J30pLnRyaW0oKSk7XG4gIGNvbnN0IGJyYW5jaCA9IGNwLmV4ZWNTeW5jKCdnaXQgcmV2LXBhcnNlIC0tYWJicmV2LXJlZiBIRUFEJywge2VuY29kaW5nOiAndXRmOCd9KS50cmltKCk7XG4gIFxuICBsZXQgdGFnID0gJyc7XG4gIGxldCBjb21taXRzU2luY2VUYWcgPSAwO1xuICB0cnkgeyBcbiAgICB0YWcgPSBjcC5leGVjU3luYygnZ2l0IGRlc2NyaWJlIC0tdGFncyAtLWV4YWN0LW1hdGNoIC0tYWxsJywge2VuY29kaW5nOiAndXRmOCd9KS50cmltKCk7XG4gIH0gY2F0Y2gge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBkZXNjcmliZU91dHB1dCA9IGNwLmV4ZWNTeW5jKCdnaXQgZGVzY3JpYmUgLS10YWdzIC0tbG9uZyAtLWFsbCcsIHtlbmNvZGluZzogJ3V0ZjgnfSkudHJpbSgpO1xuICAgICAgY29uc3QgbWF0Y2ggPSBkZXNjcmliZU91dHB1dC5tYXRjaCgvXiguKyktKFxcXFxcXFxcZCspLWdbMC05YS1mXSskLyk7XG4gICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgdGFnID0gbWF0Y2hbMV07XG4gICAgICAgIGNvbW1pdHNTaW5jZVRhZyA9IHBhcnNlSW50KG1hdGNoWzJdKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIHt9XG4gIH1cbiAgXG4gIGxldCBwYWNrYWdlVmVyc2lvbiA9ICcwLjAuMCc7XG4gIHRyeSB7XG4gICAgcGFja2FnZVZlcnNpb24gPSBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYygncGFja2FnZS5qc29uJywgJ3V0ZjgnKSkudmVyc2lvbjtcbiAgfSBjYXRjaCB7fVxuICBcbiAgLy8gQ3JlYXRlIGNvbXB1dGF0aW9uIGNvbnRleHRcbiAgY29uc3QgY29udGV4dCA9IHtcbiAgICBnaXRJbmZvOiB7XG4gICAgICBjb21taXRIYXNoLFxuICAgICAgY29tbWl0SGFzaFNob3J0LFxuICAgICAgYnJhbmNoLFxuICAgICAgdGFnLFxuICAgICAgY29tbWl0c1NpbmNlVGFnLFxuICAgICAgY29tbWl0Q291bnQsXG4gICAgICBwYWNrYWdlVmVyc2lvblxuICAgIH0sXG4gICAgZW52aXJvbm1lbnQ6IHByb2Nlc3MuZW52LlNUQUdFIHx8IHByb2Nlc3MuZW52LkVOVklST05NRU5UIHx8ICd1bmtub3duJyxcbiAgICBkZXBsb3llZEJ5OiBwcm9jZXNzLmVudi5HSVRIVUJfQUNUT1IgfHwgcHJvY2Vzcy5lbnYuR0lUTEFCX1VTRVJfTE9HSU4gfHwgcHJvY2Vzcy5lbnYuVVNFUiB8fCAndW5rbm93bicsXG4gICAgYnVpbGROdW1iZXI6IHByb2Nlc3MuZW52LkJVSUxEX05VTUJFUiB8fCBwcm9jZXNzLmVudi5HSVRIVUJfUlVOX05VTUJFUixcbiAgICByZXBvc2l0b3J5OiBwcm9jZXNzLmVudi5HSVRIVUJfUkVQT1NJVE9SWSB8fCBwcm9jZXNzLmVudi5DSV9QUk9KRUNUX1BBVEgsXG4gICAgcGlwZWxpbmVWZXJzaW9uOiBwcm9jZXNzLmVudi5QSVBFTElORV9WRVJTSU9OXG4gIH07XG4gIFxuICAvLyBDcmVhdGUgc3RyYXRlZ3kgZnJvbSBjb25maWd1cmF0aW9uXG4gIGNvbnN0IHN0cmF0ZWd5Q29uZmlnID0gJHtzdHJhdGVneUpzb259O1xuICBjb25zdCBzdHJhdGVneSA9IG5ldyBWZXJzaW9uaW5nU3RyYXRlZ3koc3RyYXRlZ3lDb25maWcuZm9ybWF0LCBzdHJhdGVneUNvbmZpZy5jb21wb25lbnRzKTtcbiAgXG4gIC8vIENvbXB1dGUgdmVyc2lvblxuICBjb25zdCBjb21wdXRlciA9IG5ldyBWZXJzaW9uQ29tcHV0ZXIoc3RyYXRlZ3kpO1xuICBjb21wdXRlci5jb21wdXRlVmVyc2lvbkluZm8oY29udGV4dCkudGhlbih2ZXJzaW9uSW5mbyA9PiB7XG4gICAgZnMud3JpdGVGaWxlU3luYygnfnZlcnNpb24uanNvbicsIHZlcnNpb25JbmZvLnRvSnNvbigpKTtcbiAgICBjb25zb2xlLmxvZygnVmVyc2lvbiBjb21wdXRlZDonLCB2ZXJzaW9uSW5mby52ZXJzaW9uLCAnKGNvbW1pdDonLCB2ZXJzaW9uSW5mby5jb21taXRIYXNoU2hvcnQgKyAnKScpO1xuICB9KS5jYXRjaChlcnJvciA9PiB7XG4gICAgY29uc29sZS5lcnJvcignRXJyb3IgY29tcHV0aW5nIHZlcnNpb246JywgZXJyb3IubWVzc2FnZSk7XG4gICAgY29uc3QgZmFsbGJhY2sgPSB7XG4gICAgICB2ZXJzaW9uOiAnMC4wLjAnLFxuICAgICAgY29tbWl0SGFzaDogJ3Vua25vd24nLFxuICAgICAgY29tbWl0SGFzaFNob3J0OiAndW5rbm93bicsXG4gICAgICBicmFuY2g6ICd1bmtub3duJyxcbiAgICAgIGNvbW1pdENvdW50OiAwLFxuICAgICAgcGFja2FnZVZlcnNpb246ICcwLjAuMCcsXG4gICAgICBkZXBsb3llZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICBkZXBsb3llZEJ5OiAndW5rbm93bicsXG4gICAgICBlbnZpcm9ubWVudDogJ3Vua25vd24nXG4gICAgfTtcbiAgICBmcy53cml0ZUZpbGVTeW5jKCd+dmVyc2lvbi5qc29uJywgSlNPTi5zdHJpbmdpZnkoZmFsbGJhY2ssIG51bGwsIDIpKTtcbiAgfSk7XG59IGNhdGNoIChlKSB7XG4gIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIHZlcnNpb24gY29tcHV0YXRpb246JywgZS5tZXNzYWdlKTtcbiAgY29uc3QgZmFsbGJhY2sgPSB7XG4gICAgdmVyc2lvbjogJzAuMC4wJyxcbiAgICBjb21taXRIYXNoOiAndW5rbm93bicsXG4gICAgY29tbWl0SGFzaFNob3J0OiAndW5rbm93bicsXG4gICAgYnJhbmNoOiAndW5rbm93bicsXG4gICAgY29tbWl0Q291bnQ6IDAsXG4gICAgcGFja2FnZVZlcnNpb246ICcwLjAuMCcsXG4gICAgZGVwbG95ZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgIGRlcGxveWVkQnk6ICd1bmtub3duJyxcbiAgICBlbnZpcm9ubWVudDogJ3Vua25vd24nXG4gIH07XG4gIGZzLndyaXRlRmlsZVN5bmMoJ352ZXJzaW9uLmpzb24nLCBKU09OLnN0cmluZ2lmeShmYWxsYmFjaywgbnVsbCwgMikpO1xufVwiYDtcbiAgfVxufVxuIl19
@@ -0,0 +1,21 @@
1
+ import { GitTagConfig, PackageJsonConfig, CommitCountConfig, IVersioningStrategy, VersioningStrategyComponents, BuildNumberConfig } from './types';
2
+ /**
3
+ * Composite versioning strategy that combines multiple strategies
4
+ */
5
+ export declare class VersioningStrategy implements IVersioningStrategy {
6
+ readonly format: string;
7
+ readonly components: VersioningStrategyComponents;
8
+ /**
9
+ * Create a composite strategy with custom format and components
10
+ */
11
+ static create(format: string, components: VersioningStrategyComponents): VersioningStrategy;
12
+ /**
13
+ * Create a build number based strategy
14
+ */
15
+ static buildNumber(config?: BuildNumberConfig): VersioningStrategy;
16
+ static gitTag(config?: GitTagConfig): VersioningStrategy;
17
+ static packageJson(config?: PackageJsonConfig): VersioningStrategy;
18
+ static commitCount(config?: CommitCountConfig): VersioningStrategy;
19
+ static commitHash(): VersioningStrategy;
20
+ private constructor();
21
+ }
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.VersioningStrategy = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ /**
7
+ * Composite versioning strategy that combines multiple strategies
8
+ */
9
+ class VersioningStrategy {
10
+ /**
11
+ * Create a composite strategy with custom format and components
12
+ */
13
+ static create(format, components) {
14
+ return new VersioningStrategy(format, components);
15
+ }
16
+ /**
17
+ * Create a build number based strategy
18
+ */
19
+ static buildNumber(config) {
20
+ const prefix = config?.prefix ?? 'build';
21
+ return new VersioningStrategy(`${prefix}-{commit-count}-{commit-hash:8}`, {
22
+ commitCount: config?.commitCount ?? { countFrom: 'all', padding: 5 },
23
+ });
24
+ }
25
+ static gitTag(config) {
26
+ return new VersioningStrategy('{git-tag}', {
27
+ gitTag: config ?? { stripPrefix: 'v' },
28
+ commitCount: { countFrom: 'all' },
29
+ });
30
+ }
31
+ static packageJson(config) {
32
+ return new VersioningStrategy('{package-version}', { packageJson: config ?? {} });
33
+ }
34
+ static commitCount(config) {
35
+ return new VersioningStrategy('{commit-count}', {
36
+ commitCount: config ?? { countFrom: 'all' },
37
+ });
38
+ }
39
+ static commitHash() {
40
+ return new VersioningStrategy('{commit-hash}', {});
41
+ }
42
+ constructor(format, components) {
43
+ this.format = format;
44
+ this.components = components;
45
+ //
46
+ }
47
+ }
48
+ exports.VersioningStrategy = VersioningStrategy;
49
+ _a = JSII_RTTI_SYMBOL_1;
50
+ VersioningStrategy[_a] = { fqn: "projen-pipelines.VersioningStrategy", version: "0.2.13" };
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmVyc2lvbmluZy9zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUdBOztHQUVHO0FBQ0gsTUFBYSxrQkFBa0I7SUFFN0I7O09BRUc7SUFDSSxNQUFNLENBQUMsTUFBTSxDQUNsQixNQUFjLEVBQ2QsVUFBd0M7UUFFeEMsT0FBTyxJQUFJLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQTBCO1FBQ2xELE1BQU0sTUFBTSxHQUFHLE1BQU0sRUFBRSxNQUFNLElBQUksT0FBTyxDQUFDO1FBQ3pDLE9BQU8sSUFBSSxrQkFBa0IsQ0FBQyxHQUFHLE1BQU0saUNBQWlDLEVBQUU7WUFDeEUsV0FBVyxFQUFFLE1BQU0sRUFBRSxXQUFXLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUU7U0FDckUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBcUI7UUFDeEMsT0FBTyxJQUFJLGtCQUFrQixDQUFDLFdBQVcsRUFBRTtZQUN6QyxNQUFNLEVBQUUsTUFBTSxJQUFJLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRTtZQUN0QyxXQUFXLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFO1NBQ2xDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQTBCO1FBQ2xELE9BQU8sSUFBSSxrQkFBa0IsQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLFdBQVcsRUFBRSxNQUFNLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRU0sTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUEwQjtRQUNsRCxPQUFPLElBQUksa0JBQWtCLENBQUMsZ0JBQWdCLEVBQUU7WUFDOUMsV0FBVyxFQUFFLE1BQU0sSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUU7U0FDNUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLE1BQU0sQ0FBQyxVQUFVO1FBQ3RCLE9BQU8sSUFBSSxrQkFBa0IsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELFlBQ2tCLE1BQWMsRUFDZCxVQUF3QztRQUR4QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsZUFBVSxHQUFWLFVBQVUsQ0FBOEI7UUFFeEQsRUFBRTtJQUNKLENBQUM7O0FBaERILGdEQWtEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdpdFRhZ0NvbmZpZywgUGFja2FnZUpzb25Db25maWcsIENvbW1pdENvdW50Q29uZmlnLCBJVmVyc2lvbmluZ1N0cmF0ZWd5LCBWZXJzaW9uaW5nU3RyYXRlZ3lDb21wb25lbnRzLCBCdWlsZE51bWJlckNvbmZpZyB9IGZyb20gJy4vdHlwZXMnO1xuXG5cbi8qKlxuICogQ29tcG9zaXRlIHZlcnNpb25pbmcgc3RyYXRlZ3kgdGhhdCBjb21iaW5lcyBtdWx0aXBsZSBzdHJhdGVnaWVzXG4gKi9cbmV4cG9ydCBjbGFzcyBWZXJzaW9uaW5nU3RyYXRlZ3kgaW1wbGVtZW50cyBJVmVyc2lvbmluZ1N0cmF0ZWd5IHtcblxuICAvKipcbiAgICogQ3JlYXRlIGEgY29tcG9zaXRlIHN0cmF0ZWd5IHdpdGggY3VzdG9tIGZvcm1hdCBhbmQgY29tcG9uZW50c1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjcmVhdGUoXG4gICAgZm9ybWF0OiBzdHJpbmcsXG4gICAgY29tcG9uZW50czogVmVyc2lvbmluZ1N0cmF0ZWd5Q29tcG9uZW50cyxcbiAgKTogVmVyc2lvbmluZ1N0cmF0ZWd5IHtcbiAgICByZXR1cm4gbmV3IFZlcnNpb25pbmdTdHJhdGVneShmb3JtYXQsIGNvbXBvbmVudHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGJ1aWxkIG51bWJlciBiYXNlZCBzdHJhdGVneVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBidWlsZE51bWJlcihjb25maWc/OiBCdWlsZE51bWJlckNvbmZpZyk6IFZlcnNpb25pbmdTdHJhdGVneSB7XG4gICAgY29uc3QgcHJlZml4ID0gY29uZmlnPy5wcmVmaXggPz8gJ2J1aWxkJztcbiAgICByZXR1cm4gbmV3IFZlcnNpb25pbmdTdHJhdGVneShgJHtwcmVmaXh9LXtjb21taXQtY291bnR9LXtjb21taXQtaGFzaDo4fWAsIHtcbiAgICAgIGNvbW1pdENvdW50OiBjb25maWc/LmNvbW1pdENvdW50ID8/IHsgY291bnRGcm9tOiAnYWxsJywgcGFkZGluZzogNSB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnaXRUYWcoY29uZmlnPzogR2l0VGFnQ29uZmlnKTogVmVyc2lvbmluZ1N0cmF0ZWd5IHtcbiAgICByZXR1cm4gbmV3IFZlcnNpb25pbmdTdHJhdGVneSgne2dpdC10YWd9Jywge1xuICAgICAgZ2l0VGFnOiBjb25maWcgPz8geyBzdHJpcFByZWZpeDogJ3YnIH0sXG4gICAgICBjb21taXRDb3VudDogeyBjb3VudEZyb206ICdhbGwnIH0sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHBhY2thZ2VKc29uKGNvbmZpZz86IFBhY2thZ2VKc29uQ29uZmlnKTogVmVyc2lvbmluZ1N0cmF0ZWd5IHtcbiAgICByZXR1cm4gbmV3IFZlcnNpb25pbmdTdHJhdGVneSgne3BhY2thZ2UtdmVyc2lvbn0nLCB7IHBhY2thZ2VKc29uOiBjb25maWcgPz8ge30gfSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNvbW1pdENvdW50KGNvbmZpZz86IENvbW1pdENvdW50Q29uZmlnKTogVmVyc2lvbmluZ1N0cmF0ZWd5IHtcbiAgICByZXR1cm4gbmV3IFZlcnNpb25pbmdTdHJhdGVneSgne2NvbW1pdC1jb3VudH0nLCB7XG4gICAgICBjb21taXRDb3VudDogY29uZmlnID8/IHsgY291bnRGcm9tOiAnYWxsJyB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjb21taXRIYXNoKCk6IFZlcnNpb25pbmdTdHJhdGVneSB7XG4gICAgcmV0dXJuIG5ldyBWZXJzaW9uaW5nU3RyYXRlZ3koJ3tjb21taXQtaGFzaH0nLCB7fSk7XG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBmb3JtYXQ6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29tcG9uZW50czogVmVyc2lvbmluZ1N0cmF0ZWd5Q29tcG9uZW50cyxcbiAgKSB7XG4gICAgLy9cbiAgfVxuXG59XG4iXX0=
@@ -0,0 +1,183 @@
1
+ export type StageOverrides = {
2
+ [stage: string]: VersioningConfig;
3
+ };
4
+ export interface VersioningConfig {
5
+ /**
6
+ * Enable versioning feature
7
+ * @default true
8
+ */
9
+ readonly enabled: boolean;
10
+ /**
11
+ * Primary versioning strategy
12
+ */
13
+ readonly strategy: IVersioningStrategy;
14
+ /**
15
+ * Output configuration
16
+ */
17
+ readonly outputs: VersioningOutputConfig;
18
+ /**
19
+ * Stage-specific overrides
20
+ */
21
+ readonly stageOverrides?: StageOverrides;
22
+ }
23
+ export interface VersioningStrategyComponents {
24
+ readonly gitTag?: GitTagConfig;
25
+ readonly packageJson?: PackageJsonConfig;
26
+ readonly commitCount?: CommitCountConfig;
27
+ }
28
+ export interface IVersioningStrategy {
29
+ /**
30
+ * Version format template
31
+ * Variables: {git-tag}, {package-version}, {commit-count}, {commit-hash},
32
+ * {commit-hash:8}, {branch}, {build-number}
33
+ */
34
+ readonly format: string;
35
+ /**
36
+ * Components to include
37
+ */
38
+ readonly components: VersioningStrategyComponents;
39
+ }
40
+ export interface GitTagConfig {
41
+ /**
42
+ * Only use annotated tags
43
+ */
44
+ readonly annotatedOnly?: boolean;
45
+ /**
46
+ * Tag pattern to match
47
+ */
48
+ readonly pattern?: string;
49
+ /**
50
+ * Strip prefix from tag
51
+ */
52
+ readonly stripPrefix?: string;
53
+ /**
54
+ * Include commits since tag
55
+ */
56
+ readonly includeSinceTag?: boolean;
57
+ }
58
+ export interface PackageJsonConfig {
59
+ /**
60
+ * Path to package.json
61
+ */
62
+ readonly path?: string;
63
+ /**
64
+ * Include pre-release version
65
+ */
66
+ readonly includePrerelease?: boolean;
67
+ /**
68
+ * Append commit info
69
+ */
70
+ readonly appendCommitInfo?: boolean;
71
+ }
72
+ export interface CommitCountConfig {
73
+ /**
74
+ * Count from: 'all' | 'branch' | 'since-tag'
75
+ */
76
+ readonly countFrom?: 'all' | 'branch' | 'since-tag';
77
+ /**
78
+ * Include branch name
79
+ */
80
+ readonly includeBranch?: boolean;
81
+ /**
82
+ * Reset on major version
83
+ */
84
+ readonly resetOnMajor?: boolean;
85
+ /**
86
+ * Padding for count
87
+ */
88
+ readonly padding?: number;
89
+ }
90
+ export interface VersioningOutputConfig {
91
+ /**
92
+ * Output to CloudFormation stack outputs
93
+ * @default true
94
+ */
95
+ readonly cloudFormation: CloudFormationOutputConfig;
96
+ /**
97
+ * Output to SSM Parameter Store
98
+ * @default false
99
+ */
100
+ readonly parameterStore: ParameterStoreConfig;
101
+ }
102
+ export interface CloudFormationOutputConfig {
103
+ readonly enabled: boolean;
104
+ readonly exportName?: string;
105
+ }
106
+ export interface ParameterStoreConfig {
107
+ readonly enabled: boolean;
108
+ readonly parameterName?: string;
109
+ readonly description?: string;
110
+ readonly allowOverwrite?: boolean;
111
+ readonly splitParameters?: boolean;
112
+ readonly hierarchical?: boolean;
113
+ }
114
+ export interface BuildNumberConfig {
115
+ readonly prefix?: string;
116
+ readonly commitCount?: CommitCountConfig;
117
+ }
118
+ export interface GitInfoInput {
119
+ readonly commitHash: string;
120
+ readonly branch: string;
121
+ readonly tag?: string;
122
+ readonly commitsSinceTag?: number;
123
+ readonly commitCount: number;
124
+ }
125
+ export interface DeploymentInfoInput {
126
+ readonly environment: string;
127
+ readonly deployedBy?: string;
128
+ readonly buildNumber?: string;
129
+ }
130
+ export interface StandardConfigOptions {
131
+ readonly parameterStore?: boolean | string;
132
+ readonly format?: 'plain' | 'structured';
133
+ }
134
+ export interface CloudFormationOnlyOptions {
135
+ readonly format?: 'plain' | 'structured';
136
+ readonly stackOutputName?: string;
137
+ readonly exportName?: string;
138
+ }
139
+ export interface HierarchicalParametersOptions {
140
+ readonly includeCloudFormation?: boolean;
141
+ readonly format?: 'plain' | 'structured';
142
+ }
143
+ export interface StandardOutputOptions {
144
+ readonly parameterName?: string;
145
+ readonly format?: 'plain' | 'structured';
146
+ }
147
+ export interface IVersionInfo {
148
+ /**
149
+ * Primary version string
150
+ */
151
+ readonly version: string;
152
+ /**
153
+ * Git information (ALWAYS included)
154
+ */
155
+ readonly commitHash: string;
156
+ readonly commitHashShort: string;
157
+ readonly branch: string;
158
+ /**
159
+ * Optional git tag information
160
+ */
161
+ readonly tag?: string;
162
+ readonly commitsSinceTag?: number;
163
+ /**
164
+ * Commit count information
165
+ */
166
+ readonly commitCount: number;
167
+ /**
168
+ * Package.json information (if applicable)
169
+ */
170
+ readonly packageVersion?: string;
171
+ /**
172
+ * Deployment metadata
173
+ */
174
+ readonly deployedAt: string;
175
+ readonly deployedBy: string;
176
+ readonly buildNumber?: string;
177
+ readonly environment: string;
178
+ /**
179
+ * Additional metadata
180
+ */
181
+ readonly repository?: string;
182
+ readonly pipelineVersion?: string;
183
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmVyc2lvbmluZy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmV4cG9ydCB0eXBlIFN0YWdlT3ZlcnJpZGVzID0geyBbc3RhZ2U6IHN0cmluZ106IFZlcnNpb25pbmdDb25maWcgfTtcblxuZXhwb3J0IGludGVyZmFjZSBWZXJzaW9uaW5nQ29uZmlnIHtcbiAgLyoqXG4gICAqIEVuYWJsZSB2ZXJzaW9uaW5nIGZlYXR1cmVcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogUHJpbWFyeSB2ZXJzaW9uaW5nIHN0cmF0ZWd5XG4gICAqL1xuICByZWFkb25seSBzdHJhdGVneTogSVZlcnNpb25pbmdTdHJhdGVneTtcblxuICAvKipcbiAgICogT3V0cHV0IGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IG91dHB1dHM6IFZlcnNpb25pbmdPdXRwdXRDb25maWc7XG5cbiAgLyoqXG4gICAqIFN0YWdlLXNwZWNpZmljIG92ZXJyaWRlc1xuICAgKi9cbiAgcmVhZG9ubHkgc3RhZ2VPdmVycmlkZXM/OiBTdGFnZU92ZXJyaWRlcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWZXJzaW9uaW5nU3RyYXRlZ3lDb21wb25lbnRzIHtcbiAgcmVhZG9ubHkgZ2l0VGFnPzogR2l0VGFnQ29uZmlnO1xuICByZWFkb25seSBwYWNrYWdlSnNvbj86IFBhY2thZ2VKc29uQ29uZmlnO1xuICByZWFkb25seSBjb21taXRDb3VudD86IENvbW1pdENvdW50Q29uZmlnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElWZXJzaW9uaW5nU3RyYXRlZ3kge1xuICAvKipcbiAgICogVmVyc2lvbiBmb3JtYXQgdGVtcGxhdGVcbiAgICogVmFyaWFibGVzOiB7Z2l0LXRhZ30sIHtwYWNrYWdlLXZlcnNpb259LCB7Y29tbWl0LWNvdW50fSwge2NvbW1pdC1oYXNofSxcbiAgICogICAgICAgICAgICB7Y29tbWl0LWhhc2g6OH0sIHticmFuY2h9LCB7YnVpbGQtbnVtYmVyfVxuICAgKi9cbiAgcmVhZG9ubHkgZm9ybWF0OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENvbXBvbmVudHMgdG8gaW5jbHVkZVxuICAgKi9cbiAgcmVhZG9ubHkgY29tcG9uZW50czogVmVyc2lvbmluZ1N0cmF0ZWd5Q29tcG9uZW50cztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHaXRUYWdDb25maWcge1xuICAvKipcbiAgICogT25seSB1c2UgYW5ub3RhdGVkIHRhZ3NcbiAgICovXG4gIHJlYWRvbmx5IGFubm90YXRlZE9ubHk/OiBib29sZWFuO1xuICAvKipcbiAgICogVGFnIHBhdHRlcm4gdG8gbWF0Y2hcbiAgICovXG4gIHJlYWRvbmx5IHBhdHRlcm4/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTdHJpcCBwcmVmaXggZnJvbSB0YWdcbiAgICovXG4gIHJlYWRvbmx5IHN0cmlwUHJlZml4Pzogc3RyaW5nO1xuICAvKipcbiAgICogSW5jbHVkZSBjb21taXRzIHNpbmNlIHRhZ1xuICAgKi9cbiAgcmVhZG9ubHkgaW5jbHVkZVNpbmNlVGFnPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYWNrYWdlSnNvbkNvbmZpZyB7XG4gIC8qKlxuICAgKiBQYXRoIHRvIHBhY2thZ2UuanNvblxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIEluY2x1ZGUgcHJlLXJlbGVhc2UgdmVyc2lvblxuICAgKi9cbiAgcmVhZG9ubHkgaW5jbHVkZVByZXJlbGVhc2U/OiBib29sZWFuO1xuICAvKipcbiAgICogQXBwZW5kIGNvbW1pdCBpbmZvXG4gICAqL1xuICByZWFkb25seSBhcHBlbmRDb21taXRJbmZvPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21taXRDb3VudENvbmZpZyB7XG4gIC8qKlxuICAgKiBDb3VudCBmcm9tOiAnYWxsJyB8ICdicmFuY2gnIHwgJ3NpbmNlLXRhZydcbiAgICovXG4gIHJlYWRvbmx5IGNvdW50RnJvbT86ICdhbGwnIHwgJ2JyYW5jaCcgfCAnc2luY2UtdGFnJztcbiAgLyoqXG4gICAqIEluY2x1ZGUgYnJhbmNoIG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGluY2x1ZGVCcmFuY2g/OiBib29sZWFuO1xuICAvKipcbiAgICogUmVzZXQgb24gbWFqb3IgdmVyc2lvblxuICAgKi9cbiAgcmVhZG9ubHkgcmVzZXRPbk1ham9yPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFBhZGRpbmcgZm9yIGNvdW50XG4gICAqL1xuICByZWFkb25seSBwYWRkaW5nPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZlcnNpb25pbmdPdXRwdXRDb25maWcge1xuICAvKipcbiAgICogT3V0cHV0IHRvIENsb3VkRm9ybWF0aW9uIHN0YWNrIG91dHB1dHNcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY2xvdWRGb3JtYXRpb246IENsb3VkRm9ybWF0aW9uT3V0cHV0Q29uZmlnO1xuXG4gIC8qKlxuICAgKiBPdXRwdXQgdG8gU1NNIFBhcmFtZXRlciBTdG9yZVxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcGFyYW1ldGVyU3RvcmU6IFBhcmFtZXRlclN0b3JlQ29uZmlnO1xuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xvdWRGb3JtYXRpb25PdXRwdXRDb25maWcge1xuICByZWFkb25seSBlbmFibGVkOiBib29sZWFuO1xuICByZWFkb25seSBleHBvcnROYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhcmFtZXRlclN0b3JlQ29uZmlnIHtcbiAgcmVhZG9ubHkgZW5hYmxlZDogYm9vbGVhbjtcbiAgcmVhZG9ubHkgcGFyYW1ldGVyTmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFsbG93T3ZlcndyaXRlPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgc3BsaXRQYXJhbWV0ZXJzPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgaGllcmFyY2hpY2FsPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZE51bWJlckNvbmZpZyB7XG4gIHJlYWRvbmx5IHByZWZpeD86IHN0cmluZztcbiAgcmVhZG9ubHkgY29tbWl0Q291bnQ/OiBDb21taXRDb3VudENvbmZpZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHaXRJbmZvSW5wdXQge1xuICByZWFkb25seSBjb21taXRIYXNoOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGJyYW5jaDogc3RyaW5nO1xuICByZWFkb25seSB0YWc/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNvbW1pdHNTaW5jZVRhZz86IG51bWJlcjtcbiAgcmVhZG9ubHkgY29tbWl0Q291bnQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZXBsb3ltZW50SW5mb0lucHV0IHtcbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ6IHN0cmluZztcbiAgcmVhZG9ubHkgZGVwbG95ZWRCeT86IHN0cmluZztcbiAgcmVhZG9ubHkgYnVpbGROdW1iZXI/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhbmRhcmRDb25maWdPcHRpb25zIHtcbiAgcmVhZG9ubHkgcGFyYW1ldGVyU3RvcmU/OiBib29sZWFuIHwgc3RyaW5nO1xuICByZWFkb25seSBmb3JtYXQ/OiAncGxhaW4nIHwgJ3N0cnVjdHVyZWQnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsb3VkRm9ybWF0aW9uT25seU9wdGlvbnMge1xuICByZWFkb25seSBmb3JtYXQ/OiAncGxhaW4nIHwgJ3N0cnVjdHVyZWQnO1xuICByZWFkb25seSBzdGFja091dHB1dE5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGV4cG9ydE5hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGllcmFyY2hpY2FsUGFyYW1ldGVyc09wdGlvbnMge1xuICByZWFkb25seSBpbmNsdWRlQ2xvdWRGb3JtYXRpb24/OiBib29sZWFuO1xuICByZWFkb25seSBmb3JtYXQ/OiAncGxhaW4nIHwgJ3N0cnVjdHVyZWQnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YW5kYXJkT3V0cHV0T3B0aW9ucyB7XG4gIHJlYWRvbmx5IHBhcmFtZXRlck5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGZvcm1hdD86ICdwbGFpbicgfCAnc3RydWN0dXJlZCc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVZlcnNpb25JbmZvIHtcbiAgLyoqXG4gICAqIFByaW1hcnkgdmVyc2lvbiBzdHJpbmdcbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogR2l0IGluZm9ybWF0aW9uIChBTFdBWVMgaW5jbHVkZWQpXG4gICAqL1xuICByZWFkb25seSBjb21taXRIYXNoOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNvbW1pdEhhc2hTaG9ydDogc3RyaW5nO1xuICByZWFkb25seSBicmFuY2g6IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgZ2l0IHRhZyBpbmZvcm1hdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgdGFnPzogc3RyaW5nO1xuICByZWFkb25seSBjb21taXRzU2luY2VUYWc/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIENvbW1pdCBjb3VudCBpbmZvcm1hdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgY29tbWl0Q291bnQ6IG51bWJlcjtcblxuICAvKipcbiAgICogUGFja2FnZS5qc29uIGluZm9ybWF0aW9uIChpZiBhcHBsaWNhYmxlKVxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnZVZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlcGxveW1lbnQgbWV0YWRhdGFcbiAgICovXG4gIHJlYWRvbmx5IGRlcGxveWVkQXQ6IHN0cmluZztcbiAgcmVhZG9ubHkgZGVwbG95ZWRCeTogc3RyaW5nO1xuICByZWFkb25seSBidWlsZE51bWJlcj86IHN0cmluZztcbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ6IHN0cmluZztcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBtZXRhZGF0YVxuICAgKi9cbiAgcmVhZG9ubHkgcmVwb3NpdG9yeT86IHN0cmluZztcbiAgcmVhZG9ubHkgcGlwZWxpbmVWZXJzaW9uPzogc3RyaW5nO1xufVxuIl19