projen-pipelines 0.2.12 → 0.2.14

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.
Files changed (49) hide show
  1. package/.jsii +5703 -1380
  2. package/API.md +5813 -1492
  3. package/README.md +253 -0
  4. package/docs/drift-detection.md +264 -0
  5. package/lib/assign-approver/base.js +1 -1
  6. package/lib/assign-approver/github.js +1 -1
  7. package/lib/awscdk/base.d.ts +21 -0
  8. package/lib/awscdk/base.js +246 -2
  9. package/lib/awscdk/bash.js +1 -1
  10. package/lib/awscdk/github.js +1 -1
  11. package/lib/awscdk/gitlab.js +1 -1
  12. package/lib/drift/base.d.ts +64 -0
  13. package/lib/drift/base.js +18 -0
  14. package/lib/drift/bash.d.ts +15 -0
  15. package/lib/drift/bash.js +170 -0
  16. package/lib/drift/detect-drift.d.ts +54 -0
  17. package/lib/drift/detect-drift.js +259 -0
  18. package/lib/drift/github.d.ts +21 -0
  19. package/lib/drift/github.js +232 -0
  20. package/lib/drift/gitlab.d.ts +20 -0
  21. package/lib/drift/gitlab.js +138 -0
  22. package/lib/drift/index.d.ts +5 -0
  23. package/lib/drift/index.js +22 -0
  24. package/lib/drift/step.d.ts +14 -0
  25. package/lib/drift/step.js +48 -0
  26. package/lib/index.d.ts +2 -0
  27. package/lib/index.js +3 -1
  28. package/lib/steps/artifact-steps.js +2 -2
  29. package/lib/steps/aws-assume-role.step.js +1 -1
  30. package/lib/steps/registries.js +2 -2
  31. package/lib/steps/step.d.ts +6 -1
  32. package/lib/steps/step.js +14 -10
  33. package/lib/versioning/computation.d.ts +63 -0
  34. package/lib/versioning/computation.js +121 -0
  35. package/lib/versioning/config.d.ts +41 -0
  36. package/lib/versioning/config.js +91 -0
  37. package/lib/versioning/index.d.ts +7 -0
  38. package/lib/versioning/index.js +46 -0
  39. package/lib/versioning/outputs.d.ts +87 -0
  40. package/lib/versioning/outputs.js +166 -0
  41. package/lib/versioning/setup.d.ts +30 -0
  42. package/lib/versioning/setup.js +165 -0
  43. package/lib/versioning/strategy.d.ts +21 -0
  44. package/lib/versioning/strategy.js +51 -0
  45. package/lib/versioning/types.d.ts +183 -0
  46. package/lib/versioning/types.js +3 -0
  47. package/lib/versioning/version-info.d.ts +106 -0
  48. package/lib/versioning/version-info.js +269 -0
  49. package/package.json +2 -1
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ var _a, _b, _c;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.VersionComputer = exports.CompositeComputation = exports.VersionComputationStrategy = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const version_info_1 = require("./version-info");
7
+ /**
8
+ * Base class for version computation strategies
9
+ */
10
+ class VersionComputationStrategy {
11
+ constructor(strategy) {
12
+ this.strategy = strategy;
13
+ }
14
+ /**
15
+ * Create VersionInfo from context
16
+ */
17
+ createVersionInfo(context) {
18
+ const version = this.computeVersion(context);
19
+ return version_info_1.VersionInfo.create({
20
+ version,
21
+ commitHash: context.gitInfo.commitHash,
22
+ commitHashShort: context.gitInfo.commitHashShort,
23
+ branch: context.gitInfo.branch,
24
+ tag: context.gitInfo.tag,
25
+ commitsSinceTag: context.gitInfo.commitsSinceTag,
26
+ commitCount: context.gitInfo.commitCount,
27
+ packageVersion: context.gitInfo.packageVersion,
28
+ deployedAt: new Date().toISOString(),
29
+ deployedBy: context.deployedBy,
30
+ buildNumber: context.buildNumber,
31
+ environment: context.environment,
32
+ repository: context.repository,
33
+ pipelineVersion: context.pipelineVersion,
34
+ });
35
+ }
36
+ }
37
+ exports.VersionComputationStrategy = VersionComputationStrategy;
38
+ _a = JSII_RTTI_SYMBOL_1;
39
+ VersionComputationStrategy[_a] = { fqn: "projen-pipelines.VersionComputationStrategy", version: "0.2.14" };
40
+ /**
41
+ * Composite version computation that combines multiple strategies
42
+ */
43
+ class CompositeComputation extends VersionComputationStrategy {
44
+ constructor(strategy) {
45
+ super(strategy);
46
+ }
47
+ computeVersion(context) {
48
+ let result = this.strategy.format;
49
+ const { gitInfo } = context;
50
+ // Replace git tag variables
51
+ if (this.strategy.components.gitTag) {
52
+ let tagValue = gitInfo.tag ?? '0.0.0';
53
+ if (this.strategy.components.gitTag.stripPrefix && gitInfo.tag) {
54
+ tagValue = gitInfo.tag.replace(new RegExp(`^${this.strategy.components.gitTag.stripPrefix}`), '');
55
+ }
56
+ result = result.replace('{git-tag}', tagValue);
57
+ }
58
+ // Replace package version
59
+ if (this.strategy.components.packageJson) {
60
+ const packageValue = gitInfo.packageVersion ?? '0.0.0';
61
+ result = result.replace('{package-version}', packageValue);
62
+ }
63
+ // Replace commit count
64
+ if (this.strategy.components.commitCount) {
65
+ let countValue;
66
+ if (this.strategy.components.commitCount.countFrom === 'since-tag' && gitInfo.commitsSinceTag !== undefined) {
67
+ countValue = gitInfo.commitsSinceTag.toString();
68
+ }
69
+ else {
70
+ // Default to total commit count for 'all' or undefined
71
+ countValue = gitInfo.commitCount.toString();
72
+ }
73
+ if (this.strategy.components.commitCount.padding) {
74
+ countValue = countValue.padStart(this.strategy.components.commitCount.padding, '0');
75
+ }
76
+ result = result.replace('{commit-count}', countValue);
77
+ }
78
+ // Replace commit hash
79
+ result = result.replace('{commit-hash}', gitInfo.commitHash);
80
+ result = result.replace('{commit-hash:8}', gitInfo.commitHashShort);
81
+ // Replace branch
82
+ result = result.replace('{branch}', gitInfo.branch);
83
+ // Replace build number
84
+ if (context.buildNumber) {
85
+ result = result.replace('{build-number}', context.buildNumber);
86
+ }
87
+ return result;
88
+ }
89
+ }
90
+ exports.CompositeComputation = CompositeComputation;
91
+ _b = JSII_RTTI_SYMBOL_1;
92
+ CompositeComputation[_b] = { fqn: "projen-pipelines.CompositeComputation", version: "0.2.14" };
93
+ /**
94
+ * Main version computer that handles strategy selection
95
+ */
96
+ class VersionComputer {
97
+ constructor(strategy) {
98
+ this.strategy = this.createStrategy(strategy);
99
+ }
100
+ /**
101
+ * Compute version info from context
102
+ */
103
+ async computeVersionInfo(context) {
104
+ try {
105
+ return this.strategy.createVersionInfo(context);
106
+ }
107
+ catch (error) {
108
+ throw new Error(`Strategy '${this.strategy.strategy.format}' failed: ${error}`);
109
+ }
110
+ }
111
+ /**
112
+ * Create strategy instance from configuration
113
+ */
114
+ createStrategy(strategy) {
115
+ return new CompositeComputation(strategy);
116
+ }
117
+ }
118
+ exports.VersionComputer = VersionComputer;
119
+ _c = JSII_RTTI_SYMBOL_1;
120
+ VersionComputer[_c] = { fqn: "projen-pipelines.VersionComputer", version: "0.2.14" };
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHV0YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmVyc2lvbmluZy9jb21wdXRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLGlEQUE2QztBQTJCN0M7O0dBRUc7QUFDSCxNQUFzQiwwQkFBMEI7SUFDOUMsWUFBc0MsUUFBNEI7UUFBNUIsYUFBUSxHQUFSLFFBQVEsQ0FBb0I7SUFBSSxDQUFDO0lBT3ZFOztPQUVHO0lBQ0ksaUJBQWlCLENBQUMsT0FBMkI7UUFDbEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU3QyxPQUFPLDBCQUFXLENBQUMsTUFBTSxDQUFDO1lBQ3hCLE9BQU87WUFDUCxVQUFVLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVO1lBQ3RDLGVBQWUsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLGVBQWU7WUFDaEQsTUFBTSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTTtZQUM5QixHQUFHLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHO1lBQ3hCLGVBQWUsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLGVBQWU7WUFDaEQsV0FBVyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVztZQUN4QyxjQUFjLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjO1lBQzlDLFVBQVUsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRTtZQUNwQyxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVU7WUFDOUIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXO1lBQ2hDLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVztZQUNoQyxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVU7WUFDOUIsZUFBZSxFQUFFLE9BQU8sQ0FBQyxlQUFlO1NBQ3pDLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBOUJILGdFQStCQzs7O0FBR0Q7O0dB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RCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOztBQXRESCxvREF1REM7OztBQUVEOztHQUVHO0FBQ0gsTUFBYSxlQUFlO0lBRzFCLFlBQ0UsUUFBNkI7UUFFN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxPQUEyQjtRQUN6RCxJQUFJLENBQUM7WUFDSCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxhQUFhLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDbEYsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNLLGNBQWMsQ0FBQyxRQUE2QjtRQUNsRCxPQUFPLElBQUksb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDNUMsQ0FBQzs7QUF6QkgsMENBMEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmVyc2lvbmluZ1N0cmF0ZWd5IH0gZnJvbSAnLi9zdHJhdGVneSc7XG5pbXBvcnQgeyBJVmVyc2lvbmluZ1N0cmF0ZWd5IH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBWZXJzaW9uSW5mbyB9IGZyb20gJy4vdmVyc2lvbi1pbmZvJztcblxuLyoqXG4gKiBHaXQgaW5mb3JtYXRpb24gZXh0cmFjdGVkIGZyb20gcmVwb3NpdG9yeVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdpdEluZm8ge1xuICByZWFkb25seSBjb21taXRIYXNoOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNvbW1pdEhhc2hTaG9ydDogc3RyaW5nO1xuICByZWFkb25seSBicmFuY2g6IHN0cmluZztcbiAgcmVhZG9ubHkgdGFnPzogc3RyaW5nO1xuICByZWFkb25seSBjb21taXRzU2luY2VUYWc/OiBudW1iZXI7XG4gIHJlYWRvbmx5IGNvbW1pdENvdW50OiBudW1iZXI7XG4gIHJlYWRvbmx5IHBhY2thZ2VWZXJzaW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbnRleHQgZm9yIHZlcnNpb24gY29tcHV0YXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb21wdXRhdGlvbkNvbnRleHQge1xuICByZWFkb25seSBnaXRJbmZvOiBHaXRJbmZvO1xuICByZWFkb25seSBlbnZpcm9ubWVudDogc3RyaW5nO1xuICByZWFkb25seSBkZXBsb3llZEJ5OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGJ1aWxkTnVtYmVyPzogc3RyaW5nO1xuICByZWFkb25seSByZXBvc2l0b3J5Pzogc3RyaW5nO1xuICByZWFkb25seSBwaXBlbGluZVZlcnNpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgdmVyc2lvbiBjb21wdXRhdGlvbiBzdHJhdGVnaWVzXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBWZXJzaW9uQ29tcHV0YXRpb25TdHJhdGVneSB7XG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgc3RyYXRlZ3k6IFZlcnNpb25pbmdTdHJhdGVneSkgeyB9XG5cbiAgLyoqXG4gICAqIENvbXB1dGUgdmVyc2lvbiBzdHJpbmcgZnJvbSBjb250ZXh0XG4gICAqL1xuICBhYnN0cmFjdCBjb21wdXRlVmVyc2lvbihjb250ZXh0OiBDb21wdXRhdGlvbkNvbnRleHQpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBWZXJzaW9uSW5mbyBmcm9tIGNvbnRleHRcbiAgICovXG4gIHB1YmxpYyBjcmVhdGVWZXJzaW9uSW5mbyhjb250ZXh0OiBDb21wdXRhdGlvbkNvbnRleHQpOiBWZXJzaW9uSW5mbyB7XG4gICAgY29uc3QgdmVyc2lvbiA9IHRoaXMuY29tcHV0ZVZlcnNpb24oY29udGV4dCk7XG5cbiAgICByZXR1cm4gVmVyc2lvbkluZm8uY3JlYXRlKHtcbiAgICAgIHZlcnNpb24sXG4gICAgICBjb21taXRIYXNoOiBjb250ZXh0LmdpdEluZm8uY29tbWl0SGFzaCxcbiAgICAgIGNvbW1pdEhhc2hTaG9ydDogY29udGV4dC5naXRJbmZvLmNvbW1pdEhhc2hTaG9ydCxcbiAgICAgIGJyYW5jaDogY29udGV4dC5naXRJbmZvLmJyYW5jaCxcbiAgICAgIHRhZzogY29udGV4dC5naXRJbmZvLnRhZyxcbiAgICAgIGNvbW1pdHNTaW5jZVRhZzogY29udGV4dC5naXRJbmZvLmNvbW1pdHNTaW5jZVRhZyxcbiAgICAgIGNvbW1pdENvdW50OiBjb250ZXh0LmdpdEluZm8uY29tbWl0Q291bnQsXG4gICAgICBwYWNrYWdlVmVyc2lvbjogY29udGV4dC5naXRJbmZvLnBhY2thZ2VWZXJzaW9uLFxuICAgICAgZGVwbG95ZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgZGVwbG95ZWRCeTogY29udGV4dC5kZXBsb3llZEJ5LFxuICAgICAgYnVpbGROdW1iZXI6IGNvbnRleHQuYnVpbGROdW1iZXIsXG4gICAgICBlbnZpcm9ubWVudDogY29udGV4dC5lbnZpcm9ubWVudCxcbiAgICAgIHJlcG9zaXRvcnk6IGNvbnRleHQucmVwb3NpdG9yeSxcbiAgICAgIHBpcGVsaW5lVmVyc2lvbjogY29udGV4dC5waXBlbGluZVZlcnNpb24sXG4gICAgfSk7XG4gIH1cbn1cblxuXG4vKipcbiAqIENvbXBvc2l0ZSB2ZXJzaW9uIGNvbXB1dGF0aW9uIHRoYXQgY29tYmluZXMgbXVsdGlwbGUgc3RyYXRlZ2llc1xuICovXG5leHBvcnQgY2xhc3MgQ29tcG9zaXRlQ29tcHV0YXRpb24gZXh0ZW5kcyBWZXJzaW9uQ29tcHV0YXRpb25TdHJhdGVneSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHN0cmF0ZWd5OiBWZXJzaW9uaW5nU3RyYXRlZ3ksXG4gICkge1xuICAgIHN1cGVyKHN0cmF0ZWd5KTtcbiAgfVxuXG4gIHB1YmxpYyBjb21wdXRlVmVyc2lvbihjb250ZXh0OiBDb21wdXRhdGlvbkNvbnRleHQpOiBzdHJpbmcge1xuICAgIGxldCByZXN1bHQgPSB0aGlzLnN0cmF0ZWd5LmZvcm1hdDtcbiAgICBjb25zdCB7IGdpdEluZm8gfSA9IGNvbnRleHQ7XG5cbiAgICAvLyBSZXBsYWNlIGdpdCB0YWcgdmFyaWFibGVzXG4gICAgaWYgKHRoaXMuc3RyYXRlZ3kuY29tcG9uZW50cy5naXRUYWcpIHtcbiAgICAgIGxldCB0YWdWYWx1ZSA9IGdpdEluZm8udGFnID8/ICcwLjAuMCc7XG4gICAgICBpZiAodGhpcy5zdHJhdGVneS5jb21wb25lbnRzLmdpdFRhZy5zdHJpcFByZWZpeCAmJiBnaXRJbmZvLnRhZykge1xuICAgICAgICB0YWdWYWx1ZSA9IGdpdEluZm8udGFnLnJlcGxhY2UobmV3IFJlZ0V4cChgXiR7dGhpcy5zdHJhdGVneS5jb21wb25lbnRzLmdpdFRhZy5zdHJpcFByZWZpeH1gKSwgJycpO1xuICAgICAgfVxuICAgICAgcmVzdWx0ID0gcmVzdWx0LnJlcGxhY2UoJ3tnaXQtdGFnfScsIHRhZ1ZhbHVlKTtcbiAgICB9XG5cbiAgICAvLyBSZXBsYWNlIHBhY2thZ2UgdmVyc2lvblxuICAgIGlmICh0aGlzLnN0cmF0ZWd5LmNvbXBvbmVudHMucGFja2FnZUpzb24pIHtcbiAgICAgIGNvbnN0IHBhY2thZ2VWYWx1ZSA9IGdpdEluZm8ucGFja2FnZVZlcnNpb24gPz8gJzAuMC4wJztcbiAgICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKCd7cGFja2FnZS12ZXJzaW9ufScsIHBhY2thZ2VWYWx1ZSk7XG4gICAgfVxuXG4gICAgLy8gUmVwbGFjZSBjb21taXQgY291bnRcbiAgICBpZiAodGhpcy5zdHJhdGVneS5jb21wb25lbnRzLmNvbW1pdENvdW50KSB7XG4gICAgICBsZXQgY291bnRWYWx1ZTogc3RyaW5nO1xuICAgICAgaWYgKHRoaXMuc3RyYXRlZ3kuY29tcG9uZW50cy5jb21taXRDb3VudC5jb3VudEZyb20gPT09ICdzaW5jZS10YWcnICYmIGdpdEluZm8uY29tbWl0c1NpbmNlVGFnICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY291bnRWYWx1ZSA9IGdpdEluZm8uY29tbWl0c1NpbmNlVGFnLnRvU3RyaW5nKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBEZWZhdWx0IHRvIHRvdGFsIGNvbW1pdCBjb3VudCBmb3IgJ2FsbCcgb3IgdW5kZWZpbmVkXG4gICAgICAgIGNvdW50VmFsdWUgPSBnaXRJbmZvLmNvbW1pdENvdW50LnRvU3RyaW5nKCk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5zdHJhdGVneS5jb21wb25lbnRzLmNvbW1pdENvdW50LnBhZGRpbmcpIHtcbiAgICAgICAgY291bnRWYWx1ZSA9IGNvdW50VmFsdWUucGFkU3RhcnQodGhpcy5zdHJhdGVneS5jb21wb25lbnRzLmNvbW1pdENvdW50LnBhZGRpbmcsICcwJyk7XG4gICAgICB9XG4gICAgICByZXN1bHQgPSByZXN1bHQucmVwbGFjZSgne2NvbW1pdC1jb3VudH0nLCBjb3VudFZhbHVlKTtcbiAgICB9XG5cbiAgICAvLyBSZXBsYWNlIGNvbW1pdCBoYXNoXG4gICAgcmVzdWx0ID0gcmVzdWx0LnJlcGxhY2UoJ3tjb21taXQtaGFzaH0nLCBnaXRJbmZvLmNvbW1pdEhhc2gpO1xuICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKCd7Y29tbWl0LWhhc2g6OH0nLCBnaXRJbmZvLmNvbW1pdEhhc2hTaG9ydCk7XG5cbiAgICAvLyBSZXBsYWNlIGJyYW5jaFxuICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKCd7YnJhbmNofScsIGdpdEluZm8uYnJhbmNoKTtcblxuICAgIC8vIFJlcGxhY2UgYnVpbGQgbnVtYmVyXG4gICAgaWYgKGNvbnRleHQuYnVpbGROdW1iZXIpIHtcbiAgICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKCd7YnVpbGQtbnVtYmVyfScsIGNvbnRleHQuYnVpbGROdW1iZXIpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cblxuLyoqXG4gKiBNYWluIHZlcnNpb24gY29tcHV0ZXIgdGhhdCBoYW5kbGVzIHN0cmF0ZWd5IHNlbGVjdGlvblxuICovXG5leHBvcnQgY2xhc3MgVmVyc2lvbkNvbXB1dGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBzdHJhdGVneTogVmVyc2lvbkNvbXB1dGF0aW9uU3RyYXRlZ3k7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc3RyYXRlZ3k6IElWZXJzaW9uaW5nU3RyYXRlZ3ksXG4gICkge1xuICAgIHRoaXMuc3RyYXRlZ3kgPSB0aGlzLmNyZWF0ZVN0cmF0ZWd5KHN0cmF0ZWd5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wdXRlIHZlcnNpb24gaW5mbyBmcm9tIGNvbnRleHRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBjb21wdXRlVmVyc2lvbkluZm8oY29udGV4dDogQ29tcHV0YXRpb25Db250ZXh0KTogUHJvbWlzZTxWZXJzaW9uSW5mbz4ge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gdGhpcy5zdHJhdGVneS5jcmVhdGVWZXJzaW9uSW5mbyhjb250ZXh0KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBTdHJhdGVneSAnJHt0aGlzLnN0cmF0ZWd5LnN0cmF0ZWd5LmZvcm1hdH0nIGZhaWxlZDogJHtlcnJvcn1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIHN0cmF0ZWd5IGluc3RhbmNlIGZyb20gY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVTdHJhdGVneShzdHJhdGVneTogSVZlcnNpb25pbmdTdHJhdGVneSk6IFZlcnNpb25Db21wdXRhdGlvblN0cmF0ZWd5IHtcbiAgICByZXR1cm4gbmV3IENvbXBvc2l0ZUNvbXB1dGF0aW9uKHN0cmF0ZWd5KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,41 @@
1
+ import { VersioningConfig, IVersioningStrategy, StandardConfigOptions, VersioningOutputConfig, StageOverrides } from './types';
2
+ export interface CustomVersioningConfig {
3
+ readonly enabled?: boolean;
4
+ readonly strategy: IVersioningStrategy;
5
+ readonly outputs: VersioningOutputConfig;
6
+ readonly stageOverrides?: StageOverrides;
7
+ }
8
+ /**
9
+ * Main versioning configuration class with factory methods
10
+ */
11
+ export declare class VersioningConfigurations {
12
+ /**
13
+ * Standard configuration with commit count strategy
14
+ */
15
+ static standard(options?: StandardConfigOptions): VersioningConfig;
16
+ /**
17
+ * Minimal configuration for testing
18
+ */
19
+ static minimal(): VersioningConfig;
20
+ /**
21
+ * Create a custom configuration
22
+ */
23
+ static custom(config: CustomVersioningConfig): VersioningConfig;
24
+ }
25
+ /**
26
+ * Utility functions for versioning configuration
27
+ */
28
+ export declare class VersioningConfigUtils {
29
+ /**
30
+ * Resolve configuration for a specific stage
31
+ */
32
+ static resolveForStage(config: VersioningConfig, stage: string): VersioningConfig;
33
+ /**
34
+ * Validate configuration
35
+ */
36
+ static validate(config: VersioningConfig): string[];
37
+ /**
38
+ * Get default configuration
39
+ */
40
+ static default(): VersioningConfig;
41
+ }
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ var _a, _b;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.VersioningConfigUtils = exports.VersioningConfigurations = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const outputs_1 = require("./outputs");
7
+ const strategy_1 = require("./strategy");
8
+ /**
9
+ * Main versioning configuration class with factory methods
10
+ */
11
+ class VersioningConfigurations {
12
+ /**
13
+ * Standard configuration with commit count strategy
14
+ */
15
+ static standard(options) {
16
+ return {
17
+ enabled: true,
18
+ strategy: strategy_1.VersioningStrategy.commitCount(),
19
+ outputs: outputs_1.VersioningOutputs.standard({
20
+ parameterName: typeof options?.parameterStore === 'string' ? options.parameterStore : undefined,
21
+ format: options?.format,
22
+ }),
23
+ };
24
+ }
25
+ /**
26
+ * Minimal configuration for testing
27
+ */
28
+ static minimal() {
29
+ return {
30
+ enabled: true,
31
+ strategy: strategy_1.VersioningStrategy.commitHash(),
32
+ outputs: outputs_1.VersioningOutputs.minimal(),
33
+ };
34
+ }
35
+ /**
36
+ * Create a custom configuration
37
+ */
38
+ static custom(config) {
39
+ return {
40
+ enabled: config.enabled ?? true,
41
+ strategy: config.strategy,
42
+ outputs: config.outputs,
43
+ stageOverrides: config.stageOverrides,
44
+ };
45
+ }
46
+ }
47
+ exports.VersioningConfigurations = VersioningConfigurations;
48
+ _a = JSII_RTTI_SYMBOL_1;
49
+ VersioningConfigurations[_a] = { fqn: "projen-pipelines.VersioningConfigurations", version: "0.2.14" };
50
+ /**
51
+ * Utility functions for versioning configuration
52
+ */
53
+ class VersioningConfigUtils {
54
+ /**
55
+ * Resolve configuration for a specific stage
56
+ */
57
+ static resolveForStage(config, stage) {
58
+ const stageOverride = config.stageOverrides?.[stage];
59
+ if (!stageOverride) {
60
+ return config;
61
+ }
62
+ return {
63
+ ...config,
64
+ ...stageOverride,
65
+ outputs: stageOverride.outputs ? { ...config.outputs, ...stageOverride.outputs } : config.outputs,
66
+ };
67
+ }
68
+ /**
69
+ * Validate configuration
70
+ */
71
+ static validate(config) {
72
+ const errors = [];
73
+ if (!config.strategy) {
74
+ errors.push('Strategy is required');
75
+ }
76
+ if (!config.outputs) {
77
+ errors.push('Outputs configuration is required');
78
+ }
79
+ return errors;
80
+ }
81
+ /**
82
+ * Get default configuration
83
+ */
84
+ static default() {
85
+ return VersioningConfigurations.standard();
86
+ }
87
+ }
88
+ exports.VersioningConfigUtils = VersioningConfigUtils;
89
+ _b = JSII_RTTI_SYMBOL_1;
90
+ VersioningConfigUtils[_b] = { fqn: "projen-pipelines.VersioningConfigUtils", version: "0.2.14" };
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZlcnNpb25pbmcvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsdUNBQThDO0FBQzlDLHlDQUFnRDtBQVdoRDs7R0FFRztBQUNILE1BQWEsd0JBQXdCO0lBQ25DOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUErQjtRQUNwRCxPQUFPO1lBQ0wsT0FBTyxFQUFFLElBQUk7WUFDYixRQUFRLEVBQUUsNkJBQWtCLENBQUMsV0FBVyxFQUFFO1lBQzFDLE9BQU8sRUFBRSwyQkFBaUIsQ0FBQyxRQUFRLENBQUM7Z0JBQ2xDLGFBQWEsRUFBRSxPQUFPLE9BQU8sRUFBRSxjQUFjLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxTQUFTO2dCQUMvRixNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU07YUFDeEIsQ0FBQztTQUNILENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsT0FBTztRQUNuQixPQUFPO1lBQ0wsT0FBTyxFQUFFLElBQUk7WUFDYixRQUFRLEVBQUUsNkJBQWtCLENBQUMsVUFBVSxFQUFFO1lBQ3pDLE9BQU8sRUFBRSwyQkFBaUIsQ0FBQyxPQUFPLEVBQUU7U0FDckMsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBOEI7UUFDakQsT0FBTztZQUNMLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxJQUFJLElBQUk7WUFDL0IsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1lBQ3pCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztZQUN2QixjQUFjLEVBQUUsTUFBTSxDQUFDLGNBQWM7U0FDdEMsQ0FBQztJQUNKLENBQUM7O0FBcENILDREQXFDQzs7O0FBRUQ7O0dBRUc7QUFDSCxNQUFhLHFCQUFxQjtJQUNoQzs7T0FFRztJQUNJLE1BQU0sQ0FBQyxlQUFlLENBQUMsTUFBd0IsRUFBRSxLQUFhO1FBQ25FLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDbkIsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUVELE9BQU87WUFDTCxHQUFHLE1BQU07WUFDVCxHQUFHLGFBQWE7WUFDaEIsT0FBTyxFQUFFLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxNQUFNLENBQUMsT0FBTyxFQUFFLEdBQUcsYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTztTQUNsRyxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUF3QjtRQUM3QyxNQUFNLE1BQU0sR0FBYSxFQUFFLENBQUM7UUFFNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNyQixNQUFNLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEIsTUFBTSxDQUFDLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsT0FBTztRQUNuQixPQUFPLHdCQUF3QixDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzdDLENBQUM7O0FBdkNILHNEQXdDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZlcnNpb25pbmdPdXRwdXRzIH0gZnJvbSAnLi9vdXRwdXRzJztcbmltcG9ydCB7IFZlcnNpb25pbmdTdHJhdGVneSB9IGZyb20gJy4vc3RyYXRlZ3knO1xuaW1wb3J0IHsgVmVyc2lvbmluZ0NvbmZpZywgSVZlcnNpb25pbmdTdHJhdGVneSwgU3RhbmRhcmRDb25maWdPcHRpb25zLCBWZXJzaW9uaW5nT3V0cHV0Q29uZmlnLCBTdGFnZU92ZXJyaWRlcyB9IGZyb20gJy4vdHlwZXMnO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tVmVyc2lvbmluZ0NvbmZpZyB7XG4gIHJlYWRvbmx5IGVuYWJsZWQ/OiBib29sZWFuO1xuICByZWFkb25seSBzdHJhdGVneTogSVZlcnNpb25pbmdTdHJhdGVneTtcbiAgcmVhZG9ubHkgb3V0cHV0czogVmVyc2lvbmluZ091dHB1dENvbmZpZztcbiAgcmVhZG9ubHkgc3RhZ2VPdmVycmlkZXM/OiBTdGFnZU92ZXJyaWRlcztcbn1cblxuLyoqXG4gKiBNYWluIHZlcnNpb25pbmcgY29uZmlndXJhdGlvbiBjbGFzcyB3aXRoIGZhY3RvcnkgbWV0aG9kc1xuICovXG5leHBvcnQgY2xhc3MgVmVyc2lvbmluZ0NvbmZpZ3VyYXRpb25zIHtcbiAgLyoqXG4gICAqIFN0YW5kYXJkIGNvbmZpZ3VyYXRpb24gd2l0aCBjb21taXQgY291bnQgc3RyYXRlZ3lcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgc3RhbmRhcmQob3B0aW9ucz86IFN0YW5kYXJkQ29uZmlnT3B0aW9ucyk6IFZlcnNpb25pbmdDb25maWcge1xuICAgIHJldHVybiB7XG4gICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgc3RyYXRlZ3k6IFZlcnNpb25pbmdTdHJhdGVneS5jb21taXRDb3VudCgpLFxuICAgICAgb3V0cHV0czogVmVyc2lvbmluZ091dHB1dHMuc3RhbmRhcmQoe1xuICAgICAgICBwYXJhbWV0ZXJOYW1lOiB0eXBlb2Ygb3B0aW9ucz8ucGFyYW1ldGVyU3RvcmUgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5wYXJhbWV0ZXJTdG9yZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgZm9ybWF0OiBvcHRpb25zPy5mb3JtYXQsXG4gICAgICB9KSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIE1pbmltYWwgY29uZmlndXJhdGlvbiBmb3IgdGVzdGluZ1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBtaW5pbWFsKCk6IFZlcnNpb25pbmdDb25maWcge1xuICAgIHJldHVybiB7XG4gICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgc3RyYXRlZ3k6IFZlcnNpb25pbmdTdHJhdGVneS5jb21taXRIYXNoKCksXG4gICAgICBvdXRwdXRzOiBWZXJzaW9uaW5nT3V0cHV0cy5taW5pbWFsKCksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBjdXN0b20gY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjdXN0b20oY29uZmlnOiBDdXN0b21WZXJzaW9uaW5nQ29uZmlnKTogVmVyc2lvbmluZ0NvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGVuYWJsZWQ6IGNvbmZpZy5lbmFibGVkID8/IHRydWUsXG4gICAgICBzdHJhdGVneTogY29uZmlnLnN0cmF0ZWd5LFxuICAgICAgb3V0cHV0czogY29uZmlnLm91dHB1dHMsXG4gICAgICBzdGFnZU92ZXJyaWRlczogY29uZmlnLnN0YWdlT3ZlcnJpZGVzLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBVdGlsaXR5IGZ1bmN0aW9ucyBmb3IgdmVyc2lvbmluZyBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBjbGFzcyBWZXJzaW9uaW5nQ29uZmlnVXRpbHMge1xuICAvKipcbiAgICogUmVzb2x2ZSBjb25maWd1cmF0aW9uIGZvciBhIHNwZWNpZmljIHN0YWdlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlc29sdmVGb3JTdGFnZShjb25maWc6IFZlcnNpb25pbmdDb25maWcsIHN0YWdlOiBzdHJpbmcpOiBWZXJzaW9uaW5nQ29uZmlnIHtcbiAgICBjb25zdCBzdGFnZU92ZXJyaWRlID0gY29uZmlnLnN0YWdlT3ZlcnJpZGVzPy5bc3RhZ2VdO1xuICAgIGlmICghc3RhZ2VPdmVycmlkZSkge1xuICAgICAgcmV0dXJuIGNvbmZpZztcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uY29uZmlnLFxuICAgICAgLi4uc3RhZ2VPdmVycmlkZSxcbiAgICAgIG91dHB1dHM6IHN0YWdlT3ZlcnJpZGUub3V0cHV0cyA/IHsgLi4uY29uZmlnLm91dHB1dHMsIC4uLnN0YWdlT3ZlcnJpZGUub3V0cHV0cyB9IDogY29uZmlnLm91dHB1dHMsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSBjb25maWd1cmF0aW9uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHZhbGlkYXRlKGNvbmZpZzogVmVyc2lvbmluZ0NvbmZpZyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG5cbiAgICBpZiAoIWNvbmZpZy5zdHJhdGVneSkge1xuICAgICAgZXJyb3JzLnB1c2goJ1N0cmF0ZWd5IGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuXG4gICAgaWYgKCFjb25maWcub3V0cHV0cykge1xuICAgICAgZXJyb3JzLnB1c2goJ091dHB1dHMgY29uZmlndXJhdGlvbiBpcyByZXF1aXJlZCcpO1xuICAgIH1cblxuICAgIHJldHVybiBlcnJvcnM7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGRlZmF1bHQgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBkZWZhdWx0KCk6IFZlcnNpb25pbmdDb25maWcge1xuICAgIHJldHVybiBWZXJzaW9uaW5nQ29uZmlndXJhdGlvbnMuc3RhbmRhcmQoKTtcbiAgfVxufSJdfQ==
@@ -0,0 +1,7 @@
1
+ export * from './types';
2
+ export { VersionInfo, VersionInfoBuilder } from './version-info';
3
+ export { VersioningStrategy, } from './strategy';
4
+ export { OutputConfigBase, CloudFormationOutput, ParameterStoreOutput, OutputFormat, VersioningOutputs, } from './outputs';
5
+ export { GitInfo, ComputationContext, VersionComputationStrategy, CompositeComputation, VersionComputer, } from './computation';
6
+ export { CustomVersioningConfig, VersioningConfigurations, VersioningConfigUtils, } from './config';
7
+ export { VersioningSetup, } from './setup';
@@ -0,0 +1,46 @@
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
+ exports.VersioningSetup = exports.VersioningConfigUtils = exports.VersioningConfigurations = exports.VersionComputer = exports.CompositeComputation = exports.VersionComputationStrategy = exports.VersioningOutputs = exports.OutputFormat = exports.ParameterStoreOutput = exports.CloudFormationOutput = exports.OutputConfigBase = exports.VersioningStrategy = exports.VersionInfoBuilder = exports.VersionInfo = void 0;
18
+ // Types
19
+ __exportStar(require("./types"), exports);
20
+ // Version Information
21
+ var version_info_1 = require("./version-info");
22
+ Object.defineProperty(exports, "VersionInfo", { enumerable: true, get: function () { return version_info_1.VersionInfo; } });
23
+ Object.defineProperty(exports, "VersionInfoBuilder", { enumerable: true, get: function () { return version_info_1.VersionInfoBuilder; } });
24
+ // Strategies
25
+ var strategy_1 = require("./strategy");
26
+ Object.defineProperty(exports, "VersioningStrategy", { enumerable: true, get: function () { return strategy_1.VersioningStrategy; } });
27
+ // Outputs
28
+ var outputs_1 = require("./outputs");
29
+ Object.defineProperty(exports, "OutputConfigBase", { enumerable: true, get: function () { return outputs_1.OutputConfigBase; } });
30
+ Object.defineProperty(exports, "CloudFormationOutput", { enumerable: true, get: function () { return outputs_1.CloudFormationOutput; } });
31
+ Object.defineProperty(exports, "ParameterStoreOutput", { enumerable: true, get: function () { return outputs_1.ParameterStoreOutput; } });
32
+ Object.defineProperty(exports, "OutputFormat", { enumerable: true, get: function () { return outputs_1.OutputFormat; } });
33
+ Object.defineProperty(exports, "VersioningOutputs", { enumerable: true, get: function () { return outputs_1.VersioningOutputs; } });
34
+ // Computation
35
+ var computation_1 = require("./computation");
36
+ Object.defineProperty(exports, "VersionComputationStrategy", { enumerable: true, get: function () { return computation_1.VersionComputationStrategy; } });
37
+ Object.defineProperty(exports, "CompositeComputation", { enumerable: true, get: function () { return computation_1.CompositeComputation; } });
38
+ Object.defineProperty(exports, "VersionComputer", { enumerable: true, get: function () { return computation_1.VersionComputer; } });
39
+ // Configuration
40
+ var config_1 = require("./config");
41
+ Object.defineProperty(exports, "VersioningConfigurations", { enumerable: true, get: function () { return config_1.VersioningConfigurations; } });
42
+ Object.defineProperty(exports, "VersioningConfigUtils", { enumerable: true, get: function () { return config_1.VersioningConfigUtils; } });
43
+ // Setup
44
+ var setup_1 = require("./setup");
45
+ Object.defineProperty(exports, "VersioningSetup", { enumerable: true, get: function () { return setup_1.VersioningSetup; } });
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmVyc2lvbmluZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLFFBQVE7QUFDUiwwQ0FBd0I7QUFFeEIsc0JBQXNCO0FBQ3RCLCtDQUFpRTtBQUF4RCwyR0FBQSxXQUFXLE9BQUE7QUFBRSxrSEFBQSxrQkFBa0IsT0FBQTtBQUV4QyxhQUFhO0FBQ2IsdUNBRW9CO0FBRGxCLDhHQUFBLGtCQUFrQixPQUFBO0FBR3BCLFVBQVU7QUFDVixxQ0FNbUI7QUFMakIsMkdBQUEsZ0JBQWdCLE9BQUE7QUFDaEIsK0dBQUEsb0JBQW9CLE9BQUE7QUFDcEIsK0dBQUEsb0JBQW9CLE9BQUE7QUFDcEIsdUdBQUEsWUFBWSxPQUFBO0FBQ1osNEdBQUEsaUJBQWlCLE9BQUE7QUFHbkIsY0FBYztBQUNkLDZDQU11QjtBQUhyQix5SEFBQSwwQkFBMEIsT0FBQTtBQUMxQixtSEFBQSxvQkFBb0IsT0FBQTtBQUNwQiw4R0FBQSxlQUFlLE9BQUE7QUFHakIsZ0JBQWdCO0FBQ2hCLG1DQUlrQjtBQUZoQixrSEFBQSx3QkFBd0IsT0FBQTtBQUN4QiwrR0FBQSxxQkFBcUIsT0FBQTtBQUd2QixRQUFRO0FBQ1IsaUNBRWlCO0FBRGYsd0dBQUEsZUFBZSxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVHlwZXNcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuXG4vLyBWZXJzaW9uIEluZm9ybWF0aW9uXG5leHBvcnQgeyBWZXJzaW9uSW5mbywgVmVyc2lvbkluZm9CdWlsZGVyIH0gZnJvbSAnLi92ZXJzaW9uLWluZm8nO1xuXG4vLyBTdHJhdGVnaWVzXG5leHBvcnQge1xuICBWZXJzaW9uaW5nU3RyYXRlZ3ksXG59IGZyb20gJy4vc3RyYXRlZ3knO1xuXG4vLyBPdXRwdXRzXG5leHBvcnQge1xuICBPdXRwdXRDb25maWdCYXNlLFxuICBDbG91ZEZvcm1hdGlvbk91dHB1dCxcbiAgUGFyYW1ldGVyU3RvcmVPdXRwdXQsXG4gIE91dHB1dEZvcm1hdCxcbiAgVmVyc2lvbmluZ091dHB1dHMsXG59IGZyb20gJy4vb3V0cHV0cyc7XG5cbi8vIENvbXB1dGF0aW9uXG5leHBvcnQge1xuICBHaXRJbmZvLFxuICBDb21wdXRhdGlvbkNvbnRleHQsXG4gIFZlcnNpb25Db21wdXRhdGlvblN0cmF0ZWd5LFxuICBDb21wb3NpdGVDb21wdXRhdGlvbixcbiAgVmVyc2lvbkNvbXB1dGVyLFxufSBmcm9tICcuL2NvbXB1dGF0aW9uJztcblxuLy8gQ29uZmlndXJhdGlvblxuZXhwb3J0IHtcbiAgQ3VzdG9tVmVyc2lvbmluZ0NvbmZpZyxcbiAgVmVyc2lvbmluZ0NvbmZpZ3VyYXRpb25zLFxuICBWZXJzaW9uaW5nQ29uZmlnVXRpbHMsXG59IGZyb20gJy4vY29uZmlnJztcblxuLy8gU2V0dXBcbmV4cG9ydCB7XG4gIFZlcnNpb25pbmdTZXR1cCxcbn0gZnJvbSAnLi9zZXR1cCc7XG4iXX0=
@@ -0,0 +1,87 @@
1
+ import { CloudFormationOutputConfig, ParameterStoreConfig, VersioningOutputConfig, StandardOutputOptions, CloudFormationOnlyOptions, HierarchicalParametersOptions } from './types';
2
+ /**
3
+ * Base class for output configurations
4
+ */
5
+ export declare abstract class OutputConfigBase {
6
+ readonly type: string;
7
+ protected constructor(type: string);
8
+ /**
9
+ * Convert to configuration object
10
+ */
11
+ abstract toConfig(): any;
12
+ }
13
+ /**
14
+ * CloudFormation output configuration
15
+ */
16
+ export declare class CloudFormationOutput extends OutputConfigBase {
17
+ private readonly config?;
18
+ static readonly TYPE = "cloudformation";
19
+ /**
20
+ * Enable CloudFormation outputs with default configuration
21
+ */
22
+ static enabled(): CloudFormationOutput;
23
+ /**
24
+ * Disable CloudFormation outputs
25
+ */
26
+ static disabled(): CloudFormationOutput;
27
+ /**
28
+ * Configure CloudFormation outputs with custom settings
29
+ */
30
+ static withConfig(config: CloudFormationOutputConfig): CloudFormationOutput;
31
+ private constructor();
32
+ toConfig(): any;
33
+ }
34
+ /**
35
+ * SSM Parameter Store output configuration
36
+ */
37
+ export declare class ParameterStoreOutput extends OutputConfigBase {
38
+ private readonly config?;
39
+ static readonly TYPE = "parameterStore";
40
+ /**
41
+ * Enable Parameter Store outputs with parameter name
42
+ */
43
+ static enabled(parameterName: string): ParameterStoreOutput;
44
+ /**
45
+ * Disable Parameter Store outputs
46
+ */
47
+ static disabled(): ParameterStoreOutput;
48
+ /**
49
+ * Configure Parameter Store outputs with custom settings
50
+ */
51
+ static withConfig(config: ParameterStoreConfig): ParameterStoreOutput;
52
+ /**
53
+ * Configure Parameter Store with hierarchical parameters
54
+ */
55
+ static hierarchical(basePath: string, options?: HierarchicalParametersOptions): ParameterStoreOutput;
56
+ private constructor();
57
+ toConfig(): any;
58
+ }
59
+ /**
60
+ * Output format types
61
+ */
62
+ export declare class OutputFormat {
63
+ static readonly PLAIN: "plain";
64
+ static readonly STRUCTURED: "structured";
65
+ private constructor();
66
+ }
67
+ /**
68
+ * Factory class for output configurations
69
+ */
70
+ export declare class VersioningOutputs {
71
+ /**
72
+ * Create output configuration with CloudFormation and SSM Parameter Store
73
+ */
74
+ static standard(options?: StandardOutputOptions): VersioningOutputConfig;
75
+ /**
76
+ * Create output configuration with only CloudFormation
77
+ */
78
+ static cloudFormationOnly(options?: CloudFormationOnlyOptions): VersioningOutputConfig;
79
+ /**
80
+ * Create output configuration with hierarchical SSM parameters
81
+ */
82
+ static hierarchicalParameters(basePath: string, options?: HierarchicalParametersOptions): VersioningOutputConfig;
83
+ /**
84
+ * Create minimal output configuration (CloudFormation only, plain format)
85
+ */
86
+ static minimal(): VersioningOutputConfig;
87
+ }
@@ -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.14" };
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.14" };
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.14" };
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.14" };
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.14" };
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
+ }