timonel 2.3.0 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/README.md +5 -1
- package/SECURITY.md +3 -3
- package/dist/cli.js +33 -38
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +9 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/{HelmChartWriter.d.ts → helmChartWriter.d.ts} +1 -1
- package/dist/lib/{HelmChartWriter.d.ts.map → helmChartWriter.d.ts.map} +1 -1
- package/dist/lib/{HelmChartWriter.js → helmChartWriter.js} +1 -1
- package/dist/lib/{HelmChartWriter.js.map → helmChartWriter.js.map} +1 -1
- package/dist/lib/resources/autoscaling/autoscalingResources.d.ts +26 -0
- package/dist/lib/resources/autoscaling/autoscalingResources.d.ts.map +1 -0
- package/dist/lib/resources/autoscaling/autoscalingResources.js +35 -0
- package/dist/lib/resources/autoscaling/autoscalingResources.js.map +1 -0
- package/dist/lib/resources/baseResourceProvider.d.ts +47 -0
- package/dist/lib/resources/baseResourceProvider.d.ts.map +1 -0
- package/dist/lib/resources/baseResourceProvider.js +83 -0
- package/dist/lib/resources/baseResourceProvider.js.map +1 -0
- package/dist/lib/resources/cloud/aws/awsResources.d.ts +165 -0
- package/dist/lib/resources/cloud/aws/awsResources.d.ts.map +1 -0
- package/dist/lib/resources/cloud/aws/awsResources.js +187 -0
- package/dist/lib/resources/cloud/aws/awsResources.js.map +1 -0
- package/dist/lib/resources/cloud/azure/azureResources.d.ts +169 -0
- package/dist/lib/resources/cloud/azure/azureResources.d.ts.map +1 -0
- package/dist/lib/resources/cloud/azure/azureResources.js +218 -0
- package/dist/lib/resources/cloud/azure/azureResources.js.map +1 -0
- package/dist/lib/resources/cloud/gcp/gcpResources.d.ts +133 -0
- package/dist/lib/resources/cloud/gcp/gcpResources.d.ts.map +1 -0
- package/dist/lib/resources/cloud/gcp/gcpResources.js +162 -0
- package/dist/lib/resources/cloud/gcp/gcpResources.js.map +1 -0
- package/dist/lib/resources/core/coreResources.d.ts +766 -0
- package/dist/lib/resources/core/coreResources.d.ts.map +1 -0
- package/dist/lib/resources/core/coreResources.js +1043 -0
- package/dist/lib/resources/core/coreResources.js.map +1 -0
- package/dist/lib/resources/core/storageResources.d.ts +133 -0
- package/dist/lib/resources/core/storageResources.d.ts.map +1 -0
- package/dist/lib/resources/core/storageResources.js +120 -0
- package/dist/lib/resources/core/storageResources.js.map +1 -0
- package/dist/lib/resources/validation/validationResources.d.ts +26 -0
- package/dist/lib/resources/validation/validationResources.d.ts.map +1 -0
- package/dist/lib/resources/validation/validationResources.js +33 -0
- package/dist/lib/resources/validation/validationResources.js.map +1 -0
- package/dist/lib/rutter.d.ts +567 -0
- package/dist/lib/rutter.d.ts.map +1 -0
- package/dist/lib/rutter.js +694 -0
- package/dist/lib/rutter.js.map +1 -0
- package/dist/lib/security.d.ts +21 -0
- package/dist/lib/security.d.ts.map +1 -1
- package/dist/lib/security.js +21 -0
- package/dist/lib/security.js.map +1 -1
- package/dist/lib/umbrella.d.ts +22 -2
- package/dist/lib/umbrella.d.ts.map +1 -1
- package/dist/lib/umbrella.js +21 -1
- package/dist/lib/umbrella.js.map +1 -1
- package/dist/lib/umbrellaRutter.d.ts +97 -0
- package/dist/lib/umbrellaRutter.d.ts.map +1 -0
- package/dist/lib/{UmbrellaRutter.js → umbrellaRutter.js} +44 -1
- package/dist/lib/umbrellaRutter.js.map +1 -0
- package/dist/lib/utils/helmHelpers.d.ts +58 -0
- package/dist/lib/utils/helmHelpers.d.ts.map +1 -0
- package/dist/lib/utils/helmHelpers.js +155 -0
- package/dist/lib/utils/helmHelpers.js.map +1 -0
- package/dist/lib/utils/podTemplates.d.ts +192 -0
- package/dist/lib/utils/podTemplates.d.ts.map +1 -0
- package/dist/lib/utils/podTemplates.js +331 -0
- package/dist/lib/utils/podTemplates.js.map +1 -0
- package/dist/lib/utils/resourceNaming.d.ts +57 -0
- package/dist/lib/utils/resourceNaming.d.ts.map +1 -0
- package/dist/lib/utils/resourceNaming.js +82 -0
- package/dist/lib/utils/resourceNaming.js.map +1 -0
- package/package.json +2 -1
- package/dist/lib/Rutter.d.ts +0 -2688
- package/dist/lib/Rutter.d.ts.map +0 -1
- package/dist/lib/Rutter.js +0 -2863
- package/dist/lib/Rutter.js.map +0 -1
- package/dist/lib/UmbrellaRutter.d.ts +0 -34
- package/dist/lib/UmbrellaRutter.d.ts.map +0 -1
- package/dist/lib/UmbrellaRutter.js.map +0 -1
package/dist/lib/security.d.ts
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Security utilities for input validation and sanitization
|
|
3
|
+
* Focused on CLI tool security concerns: path traversal, injection prevention
|
|
4
|
+
* @since 2.2.0
|
|
5
|
+
*/
|
|
1
6
|
/**
|
|
2
7
|
* Security utilities for input validation and sanitization
|
|
3
8
|
* Focused on CLI tool security concerns: path traversal, injection prevention
|
|
9
|
+
*
|
|
10
|
+
* @since 2.2.0
|
|
4
11
|
*/
|
|
5
12
|
export declare class SecurityUtils {
|
|
6
13
|
/**
|
|
@@ -9,12 +16,16 @@ export declare class SecurityUtils {
|
|
|
9
16
|
* @param allowedBasePath - The base path that the input should be within
|
|
10
17
|
* @returns Sanitized path if valid
|
|
11
18
|
* @throws Error if path is invalid or contains traversal sequences
|
|
19
|
+
*
|
|
20
|
+
* @since 2.2.0
|
|
12
21
|
*/
|
|
13
22
|
static validatePath(inputPath: string, allowedBasePath: string): string;
|
|
14
23
|
/**
|
|
15
24
|
* Sanitizes log messages to prevent log injection attacks
|
|
16
25
|
* @param message - The message to sanitize
|
|
17
26
|
* @returns Sanitized message with control characters removed
|
|
27
|
+
*
|
|
28
|
+
* @since 2.2.0
|
|
18
29
|
*/
|
|
19
30
|
static sanitizeLogMessage(message: string): string;
|
|
20
31
|
/**
|
|
@@ -22,30 +33,40 @@ export declare class SecurityUtils {
|
|
|
22
33
|
* @param env - Environment name to sanitize
|
|
23
34
|
* @returns Sanitized environment name
|
|
24
35
|
* @throws Error if environment name is invalid
|
|
36
|
+
*
|
|
37
|
+
* @since 2.2.0
|
|
25
38
|
*/
|
|
26
39
|
static sanitizeEnvironmentName(env: string): string;
|
|
27
40
|
/**
|
|
28
41
|
* Validates TypeScript file extensions for dynamic imports
|
|
29
42
|
* @param filePath - The file path to validate
|
|
30
43
|
* @returns True if the file has a valid TypeScript extension
|
|
44
|
+
*
|
|
45
|
+
* @since 2.2.0
|
|
31
46
|
*/
|
|
32
47
|
static isValidTypeScriptFile(filePath: string): boolean;
|
|
33
48
|
/**
|
|
34
49
|
* Validates Helm template path syntax
|
|
35
50
|
* @param templatePath - The template path to validate
|
|
36
51
|
* @returns True if the path is valid for Helm templates
|
|
52
|
+
*
|
|
53
|
+
* @since 2.2.0
|
|
37
54
|
*/
|
|
38
55
|
static isValidHelmTemplatePath(templatePath: string): boolean;
|
|
39
56
|
/**
|
|
40
57
|
* Validates chart names according to Helm conventions
|
|
41
58
|
* @param chartName - Chart name to validate
|
|
42
59
|
* @returns True if chart name follows Helm naming rules
|
|
60
|
+
*
|
|
61
|
+
* @since 2.2.0
|
|
43
62
|
*/
|
|
44
63
|
static isValidChartName(chartName: string): boolean;
|
|
45
64
|
/**
|
|
46
65
|
* Validates subchart names according to Helm conventions
|
|
47
66
|
* @param subchartName - Subchart name to validate
|
|
48
67
|
* @returns True if subchart name is valid
|
|
68
|
+
*
|
|
69
|
+
* @since 2.2.0
|
|
49
70
|
*/
|
|
50
71
|
static isValidSubchartName(subchartName: string): boolean;
|
|
51
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/lib/security.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/lib/security.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;;GAKG;AACH,qBAAa,aAAa;IACxB;;;;;;;;OAQG;IACH,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM;IA2BvE;;;;;;OAMG;IACH,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAgBlD;;;;;;;OAOG;IACH,MAAM,CAAC,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAmBnD;;;;;;OAMG;IACH,MAAM,CAAC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAMvD;;;;;;OAMG;IACH,MAAM,CAAC,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IAU7D;;;;;;OAMG;IACH,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAWnD;;;;;;OAMG;IACH,MAAM,CAAC,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;CAG1D"}
|
package/dist/lib/security.js
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Security utilities for input validation and sanitization
|
|
3
|
+
* Focused on CLI tool security concerns: path traversal, injection prevention
|
|
4
|
+
* @since 2.2.0
|
|
5
|
+
*/
|
|
1
6
|
import * as path from 'path';
|
|
2
7
|
/**
|
|
3
8
|
* Security utilities for input validation and sanitization
|
|
4
9
|
* Focused on CLI tool security concerns: path traversal, injection prevention
|
|
10
|
+
*
|
|
11
|
+
* @since 2.2.0
|
|
5
12
|
*/
|
|
6
13
|
export class SecurityUtils {
|
|
7
14
|
/**
|
|
@@ -10,6 +17,8 @@ export class SecurityUtils {
|
|
|
10
17
|
* @param allowedBasePath - The base path that the input should be within
|
|
11
18
|
* @returns Sanitized path if valid
|
|
12
19
|
* @throws Error if path is invalid or contains traversal sequences
|
|
20
|
+
*
|
|
21
|
+
* @since 2.2.0
|
|
13
22
|
*/
|
|
14
23
|
static validatePath(inputPath, allowedBasePath) {
|
|
15
24
|
if (!inputPath || typeof inputPath !== 'string') {
|
|
@@ -35,6 +44,8 @@ export class SecurityUtils {
|
|
|
35
44
|
* Sanitizes log messages to prevent log injection attacks
|
|
36
45
|
* @param message - The message to sanitize
|
|
37
46
|
* @returns Sanitized message with control characters removed
|
|
47
|
+
*
|
|
48
|
+
* @since 2.2.0
|
|
38
49
|
*/
|
|
39
50
|
static sanitizeLogMessage(message) {
|
|
40
51
|
if (typeof message !== 'string') {
|
|
@@ -53,6 +64,8 @@ export class SecurityUtils {
|
|
|
53
64
|
* @param env - Environment name to sanitize
|
|
54
65
|
* @returns Sanitized environment name
|
|
55
66
|
* @throws Error if environment name is invalid
|
|
67
|
+
*
|
|
68
|
+
* @since 2.2.0
|
|
56
69
|
*/
|
|
57
70
|
static sanitizeEnvironmentName(env) {
|
|
58
71
|
if (!env || typeof env !== 'string') {
|
|
@@ -72,6 +85,8 @@ export class SecurityUtils {
|
|
|
72
85
|
* Validates TypeScript file extensions for dynamic imports
|
|
73
86
|
* @param filePath - The file path to validate
|
|
74
87
|
* @returns True if the file has a valid TypeScript extension
|
|
88
|
+
*
|
|
89
|
+
* @since 2.2.0
|
|
75
90
|
*/
|
|
76
91
|
static isValidTypeScriptFile(filePath) {
|
|
77
92
|
const allowedExtensions = ['.ts', '.tsx'];
|
|
@@ -82,6 +97,8 @@ export class SecurityUtils {
|
|
|
82
97
|
* Validates Helm template path syntax
|
|
83
98
|
* @param templatePath - The template path to validate
|
|
84
99
|
* @returns True if the path is valid for Helm templates
|
|
100
|
+
*
|
|
101
|
+
* @since 2.2.0
|
|
85
102
|
*/
|
|
86
103
|
static isValidHelmTemplatePath(templatePath) {
|
|
87
104
|
if (!templatePath || typeof templatePath !== 'string') {
|
|
@@ -95,6 +112,8 @@ export class SecurityUtils {
|
|
|
95
112
|
* Validates chart names according to Helm conventions
|
|
96
113
|
* @param chartName - Chart name to validate
|
|
97
114
|
* @returns True if chart name follows Helm naming rules
|
|
115
|
+
*
|
|
116
|
+
* @since 2.2.0
|
|
98
117
|
*/
|
|
99
118
|
static isValidChartName(chartName) {
|
|
100
119
|
if (!chartName || typeof chartName !== 'string') {
|
|
@@ -109,6 +128,8 @@ export class SecurityUtils {
|
|
|
109
128
|
* Validates subchart names according to Helm conventions
|
|
110
129
|
* @param subchartName - Subchart name to validate
|
|
111
130
|
* @returns True if subchart name is valid
|
|
131
|
+
*
|
|
132
|
+
* @since 2.2.0
|
|
112
133
|
*/
|
|
113
134
|
static isValidSubchartName(subchartName) {
|
|
114
135
|
return this.isValidChartName(subchartName);
|
package/dist/lib/security.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/lib/security.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B
|
|
1
|
+
{"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/lib/security.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/umbrella.d.ts
CHANGED
|
@@ -1,7 +1,27 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Umbrella chart utilities for managing multiple subcharts as a single unit
|
|
3
|
+
* @since 0.2.0
|
|
4
|
+
*/
|
|
5
|
+
import type { UmbrellaRutter, UmbrellaRutterProps } from './umbrellaRutter.js';
|
|
2
6
|
/**
|
|
3
7
|
* Create an umbrella chart from multiple Rutter instances
|
|
8
|
+
*
|
|
9
|
+
* @param props - Umbrella chart configuration
|
|
10
|
+
* @returns UmbrellaRutter instance for managing subcharts
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* const umbrella = createUmbrella({
|
|
15
|
+
* meta: { name: 'my-umbrella', version: '1.0.0' },
|
|
16
|
+
* subcharts: [
|
|
17
|
+
* { name: 'frontend', rutter: frontendChart },
|
|
18
|
+
* { name: 'backend', rutter: backendChart }
|
|
19
|
+
* ]
|
|
20
|
+
* });
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* @since 0.2.0
|
|
4
24
|
*/
|
|
5
25
|
export declare function createUmbrella(props: UmbrellaRutterProps): UmbrellaRutter;
|
|
6
|
-
export type { UmbrellaRutterProps, SubchartSpec } from './
|
|
26
|
+
export type { UmbrellaRutterProps, SubchartSpec } from './umbrellaRutter.js';
|
|
7
27
|
//# sourceMappingURL=umbrella.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"umbrella.d.ts","sourceRoot":"","sources":["../../src/lib/umbrella.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG/E
|
|
1
|
+
{"version":3,"file":"umbrella.d.ts","sourceRoot":"","sources":["../../src/lib/umbrella.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG/E;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,cAAc,CAEzE;AAGD,YAAY,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/lib/umbrella.js
CHANGED
|
@@ -1,6 +1,26 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Umbrella chart utilities for managing multiple subcharts as a single unit
|
|
3
|
+
* @since 0.2.0
|
|
4
|
+
*/
|
|
5
|
+
import { UmbrellaRutter as UmbrellaRutterClass } from './umbrellaRutter.js';
|
|
2
6
|
/**
|
|
3
7
|
* Create an umbrella chart from multiple Rutter instances
|
|
8
|
+
*
|
|
9
|
+
* @param props - Umbrella chart configuration
|
|
10
|
+
* @returns UmbrellaRutter instance for managing subcharts
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* const umbrella = createUmbrella({
|
|
15
|
+
* meta: { name: 'my-umbrella', version: '1.0.0' },
|
|
16
|
+
* subcharts: [
|
|
17
|
+
* { name: 'frontend', rutter: frontendChart },
|
|
18
|
+
* { name: 'backend', rutter: backendChart }
|
|
19
|
+
* ]
|
|
20
|
+
* });
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* @since 0.2.0
|
|
4
24
|
*/
|
|
5
25
|
export function createUmbrella(props) {
|
|
6
26
|
return new UmbrellaRutterClass(props);
|
package/dist/lib/umbrella.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"umbrella.js","sourceRoot":"","sources":["../../src/lib/umbrella.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"umbrella.js","sourceRoot":"","sources":["../../src/lib/umbrella.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,cAAc,IAAI,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE5E;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,cAAc,CAAC,KAA0B;IACvD,OAAO,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview UmbrellaRutter class for managing Helm umbrella charts with multiple subcharts
|
|
3
|
+
* @since 0.2.0
|
|
4
|
+
*/
|
|
5
|
+
import type { Rutter } from './rutter.js';
|
|
6
|
+
import type { HelmChartMeta } from './helmChartWriter.js';
|
|
7
|
+
/**
|
|
8
|
+
* Configuration for a subchart within an umbrella chart
|
|
9
|
+
*
|
|
10
|
+
* @since 0.2.0
|
|
11
|
+
*/
|
|
12
|
+
export interface SubchartSpec {
|
|
13
|
+
/** Name of the subchart */
|
|
14
|
+
name: string;
|
|
15
|
+
/** Rutter instance that generates the subchart */
|
|
16
|
+
rutter: Rutter;
|
|
17
|
+
/** Version of the subchart (optional) */
|
|
18
|
+
version?: string;
|
|
19
|
+
/** Helm condition for enabling/disabling the subchart */
|
|
20
|
+
condition?: string;
|
|
21
|
+
/** Tags for grouping subcharts */
|
|
22
|
+
tags?: string[];
|
|
23
|
+
/** Repository URL for the subchart */
|
|
24
|
+
repository?: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Configuration properties for UmbrellaRutter
|
|
28
|
+
*
|
|
29
|
+
* @since 0.2.0
|
|
30
|
+
*/
|
|
31
|
+
export interface UmbrellaRutterProps {
|
|
32
|
+
/** Metadata for the umbrella chart */
|
|
33
|
+
meta: HelmChartMeta;
|
|
34
|
+
/** Array of subchart specifications */
|
|
35
|
+
subcharts: SubchartSpec[];
|
|
36
|
+
/** Default values for the umbrella chart */
|
|
37
|
+
defaultValues?: Record<string, unknown>;
|
|
38
|
+
/** Environment-specific values */
|
|
39
|
+
envValues?: Record<string, Record<string, unknown>>;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* UmbrellaRutter manages multiple Rutter instances as subcharts
|
|
43
|
+
* to create Helm umbrella charts with dependencies.
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```typescript
|
|
47
|
+
* const umbrella = new UmbrellaRutter({
|
|
48
|
+
* meta: { name: 'my-app', version: '1.0.0' },
|
|
49
|
+
* subcharts: [
|
|
50
|
+
* { name: 'frontend', rutter: frontendChart },
|
|
51
|
+
* { name: 'backend', rutter: backendChart }
|
|
52
|
+
* ]
|
|
53
|
+
* });
|
|
54
|
+
*
|
|
55
|
+
* umbrella.write('./charts/my-app');
|
|
56
|
+
* ```
|
|
57
|
+
*
|
|
58
|
+
* @since 0.2.0
|
|
59
|
+
*/
|
|
60
|
+
export declare class UmbrellaRutter {
|
|
61
|
+
private readonly props;
|
|
62
|
+
/**
|
|
63
|
+
* Creates a new UmbrellaRutter instance
|
|
64
|
+
*
|
|
65
|
+
* @param props - Configuration properties for the umbrella chart
|
|
66
|
+
* @throws {Error} If chart metadata is invalid
|
|
67
|
+
*
|
|
68
|
+
* @since 0.2.0
|
|
69
|
+
*/
|
|
70
|
+
constructor(props: UmbrellaRutterProps);
|
|
71
|
+
private validateMetadata;
|
|
72
|
+
/**
|
|
73
|
+
* Write the umbrella chart with all subcharts to the output directory
|
|
74
|
+
*
|
|
75
|
+
* Creates the complete umbrella chart structure including:
|
|
76
|
+
* - Parent Chart.yaml with dependencies
|
|
77
|
+
* - Parent values.yaml with global and subchart values
|
|
78
|
+
* - Individual subchart directories under charts/
|
|
79
|
+
* - NOTES.txt template
|
|
80
|
+
*
|
|
81
|
+
* @param outDir - Output directory path for the umbrella chart
|
|
82
|
+
* @throws {Error} If output directory path is invalid
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* ```typescript
|
|
86
|
+
* umbrella.write('./dist/my-umbrella-chart');
|
|
87
|
+
* ```
|
|
88
|
+
*
|
|
89
|
+
* @since 0.2.0
|
|
90
|
+
*/
|
|
91
|
+
write(outDir: string): void;
|
|
92
|
+
private writeParentChart;
|
|
93
|
+
private writeParentValues;
|
|
94
|
+
private deepMerge;
|
|
95
|
+
private generateNotesTemplate;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=umbrellaRutter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"umbrellaRutter.d.ts","sourceRoot":"","sources":["../../src/lib/umbrellaRutter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG1D;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,sCAAsC;IACtC,IAAI,EAAE,aAAa,CAAC;IACpB,uCAAuC;IACvC,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,4CAA4C;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACrD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsB;IAE5C;;;;;;;OAOG;gBACS,KAAK,EAAE,mBAAmB;IAMtC,OAAO,CAAC,gBAAgB;IAcxB;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAoC3B,OAAO,CAAC,gBAAgB;IA4BxB,OAAO,CAAC,iBAAiB;IAgCzB,OAAO,CAAC,SAAS;IAqBjB,OAAO,CAAC,qBAAqB;CAe9B"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview UmbrellaRutter class for managing Helm umbrella charts with multiple subcharts
|
|
3
|
+
* @since 0.2.0
|
|
4
|
+
*/
|
|
1
5
|
import { writeFileSync, mkdirSync } from 'fs';
|
|
2
6
|
import { join } from 'path';
|
|
3
7
|
import YAML from 'yaml';
|
|
@@ -5,8 +9,31 @@ import { SecurityUtils } from './security.js';
|
|
|
5
9
|
/**
|
|
6
10
|
* UmbrellaRutter manages multiple Rutter instances as subcharts
|
|
7
11
|
* to create Helm umbrella charts with dependencies.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* const umbrella = new UmbrellaRutter({
|
|
16
|
+
* meta: { name: 'my-app', version: '1.0.0' },
|
|
17
|
+
* subcharts: [
|
|
18
|
+
* { name: 'frontend', rutter: frontendChart },
|
|
19
|
+
* { name: 'backend', rutter: backendChart }
|
|
20
|
+
* ]
|
|
21
|
+
* });
|
|
22
|
+
*
|
|
23
|
+
* umbrella.write('./charts/my-app');
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* @since 0.2.0
|
|
8
27
|
*/
|
|
9
28
|
export class UmbrellaRutter {
|
|
29
|
+
/**
|
|
30
|
+
* Creates a new UmbrellaRutter instance
|
|
31
|
+
*
|
|
32
|
+
* @param props - Configuration properties for the umbrella chart
|
|
33
|
+
* @throws {Error} If chart metadata is invalid
|
|
34
|
+
*
|
|
35
|
+
* @since 0.2.0
|
|
36
|
+
*/
|
|
10
37
|
constructor(props) {
|
|
11
38
|
// Validate chart metadata
|
|
12
39
|
this.validateMetadata(props.meta);
|
|
@@ -26,6 +53,22 @@ export class UmbrellaRutter {
|
|
|
26
53
|
}
|
|
27
54
|
/**
|
|
28
55
|
* Write the umbrella chart with all subcharts to the output directory
|
|
56
|
+
*
|
|
57
|
+
* Creates the complete umbrella chart structure including:
|
|
58
|
+
* - Parent Chart.yaml with dependencies
|
|
59
|
+
* - Parent values.yaml with global and subchart values
|
|
60
|
+
* - Individual subchart directories under charts/
|
|
61
|
+
* - NOTES.txt template
|
|
62
|
+
*
|
|
63
|
+
* @param outDir - Output directory path for the umbrella chart
|
|
64
|
+
* @throws {Error} If output directory path is invalid
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```typescript
|
|
68
|
+
* umbrella.write('./dist/my-umbrella-chart');
|
|
69
|
+
* ```
|
|
70
|
+
*
|
|
71
|
+
* @since 0.2.0
|
|
29
72
|
*/
|
|
30
73
|
write(outDir) {
|
|
31
74
|
// Validate output directory path
|
|
@@ -141,4 +184,4 @@ ${this.props.subcharts.map((s) => ` - charts/${s.name}/README.md`).join('\n')}
|
|
|
141
184
|
`;
|
|
142
185
|
}
|
|
143
186
|
}
|
|
144
|
-
//# sourceMappingURL=
|
|
187
|
+
//# sourceMappingURL=umbrellaRutter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"umbrellaRutter.js","sourceRoot":"","sources":["../../src/lib/umbrellaRutter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Helm chart helpers and templates
|
|
3
|
+
* @since 2.5.0
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Helper definition for Helm templates
|
|
7
|
+
* @interface HelperDefinition
|
|
8
|
+
* @since 2.5.0
|
|
9
|
+
*/
|
|
10
|
+
export interface HelperDefinition {
|
|
11
|
+
/** Helper name (without quotes or hyphens) */
|
|
12
|
+
name: string;
|
|
13
|
+
/** Helper template content */
|
|
14
|
+
template: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Standard Helm chart helpers following best practices
|
|
18
|
+
* @since 2.5.0
|
|
19
|
+
*/
|
|
20
|
+
export declare const STANDARD_HELPERS: HelperDefinition[];
|
|
21
|
+
/**
|
|
22
|
+
* AWS-specific Helm helpers
|
|
23
|
+
* @since 2.5.0
|
|
24
|
+
*/
|
|
25
|
+
export declare const AWS_HELPERS: HelperDefinition[];
|
|
26
|
+
/**
|
|
27
|
+
* Azure-specific Helm helpers
|
|
28
|
+
* @since 2.5.0
|
|
29
|
+
*/
|
|
30
|
+
export declare const AZURE_HELPERS: HelperDefinition[];
|
|
31
|
+
/**
|
|
32
|
+
* GCP-specific Helm helpers
|
|
33
|
+
* @since 2.5.0
|
|
34
|
+
*/
|
|
35
|
+
export declare const GCP_HELPERS: HelperDefinition[];
|
|
36
|
+
/**
|
|
37
|
+
* Converts helper definitions to Helm template format
|
|
38
|
+
* @param helpers - Array of helper definitions
|
|
39
|
+
* @returns Formatted Helm template string
|
|
40
|
+
* @since 2.5.0
|
|
41
|
+
*/
|
|
42
|
+
export declare function formatHelpers(helpers: HelperDefinition[]): string;
|
|
43
|
+
/**
|
|
44
|
+
* Gets default helpers based on cloud provider
|
|
45
|
+
* @param cloudProvider - Target cloud provider
|
|
46
|
+
* @returns Combined standard and cloud-specific helpers
|
|
47
|
+
* @since 2.5.0
|
|
48
|
+
*/
|
|
49
|
+
export declare function getDefaultHelpers(cloudProvider?: 'aws' | 'azure' | 'gcp'): HelperDefinition[];
|
|
50
|
+
/**
|
|
51
|
+
* Generates complete _helpers.tpl content
|
|
52
|
+
* @param cloudProvider - Optional cloud provider for specific helpers
|
|
53
|
+
* @param customHelpers - Additional custom helpers
|
|
54
|
+
* @returns Complete helpers template content
|
|
55
|
+
* @since 2.5.0
|
|
56
|
+
*/
|
|
57
|
+
export declare function generateHelpersTemplate(cloudProvider?: 'aws' | 'azure' | 'gcp', customHelpers?: HelperDefinition[]): string;
|
|
58
|
+
//# sourceMappingURL=helmHelpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helmHelpers.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/helmHelpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,gBAAgB,EAoC9C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,gBAAgB,EAiBzC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,gBAAgB,EAa3C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,gBAAgB,EAazC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAWjE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,gBAAgB,EAAE,CAgB7F;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,aAAa,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,KAAK,EACvC,aAAa,CAAC,EAAE,gBAAgB,EAAE,GACjC,MAAM,CAQR"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Helm chart helpers and templates
|
|
3
|
+
* @since 2.5.0
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Standard Helm chart helpers following best practices
|
|
7
|
+
* @since 2.5.0
|
|
8
|
+
*/
|
|
9
|
+
export const STANDARD_HELPERS = [
|
|
10
|
+
{
|
|
11
|
+
name: 'chart.name',
|
|
12
|
+
template: `{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}`,
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
name: 'chart.fullname',
|
|
16
|
+
template: `{{- if .Values.fullnameOverride }}
|
|
17
|
+
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
|
|
18
|
+
{{- else }}
|
|
19
|
+
{{- $name := default .Chart.Name .Values.nameOverride }}
|
|
20
|
+
{{- if contains $name .Release.Name }}
|
|
21
|
+
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
|
|
22
|
+
{{- else }}
|
|
23
|
+
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
|
|
24
|
+
{{- end }}
|
|
25
|
+
{{- end }}`,
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
name: 'chart.chart',
|
|
29
|
+
template: `{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}`,
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
name: 'chart.labels',
|
|
33
|
+
template: `helm.sh/chart: {{ include "chart.chart" . }}
|
|
34
|
+
{{ include "chart.selectorLabels" . }}
|
|
35
|
+
{{- if .Chart.AppVersion }}
|
|
36
|
+
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
|
37
|
+
{{- end }}
|
|
38
|
+
app.kubernetes.io/managed-by: {{ .Release.Service }}`,
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
name: 'chart.selectorLabels',
|
|
42
|
+
template: `app.kubernetes.io/name: {{ include "chart.name" . }}
|
|
43
|
+
app.kubernetes.io/instance: {{ .Release.Name }}`,
|
|
44
|
+
},
|
|
45
|
+
];
|
|
46
|
+
/**
|
|
47
|
+
* AWS-specific Helm helpers
|
|
48
|
+
* @since 2.5.0
|
|
49
|
+
*/
|
|
50
|
+
export const AWS_HELPERS = [
|
|
51
|
+
{
|
|
52
|
+
name: 'aws.region',
|
|
53
|
+
template: `{{- .Values.aws.region | default "us-east-1" }}`,
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
name: 'aws.accountId',
|
|
57
|
+
template: `{{- required "AWS Account ID is required" .Values.aws.accountId }}`,
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'aws.irsaRoleArn',
|
|
61
|
+
template: `{{- printf "arn:aws:iam::%s:role/%s" (include "aws.accountId" .) .Values.aws.irsaRoleName }}`,
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
name: 'aws.ecrRepository',
|
|
65
|
+
template: `{{- printf "%s.dkr.ecr.%s.amazonaws.com/%s" (include "aws.accountId" .) (include "aws.region" .) .Values.aws.ecrRepositoryName }}`,
|
|
66
|
+
},
|
|
67
|
+
];
|
|
68
|
+
/**
|
|
69
|
+
* Azure-specific Helm helpers
|
|
70
|
+
* @since 2.5.0
|
|
71
|
+
*/
|
|
72
|
+
export const AZURE_HELPERS = [
|
|
73
|
+
{
|
|
74
|
+
name: 'azure.resourceGroup',
|
|
75
|
+
template: `{{- required "Azure Resource Group is required" .Values.azure.resourceGroup }}`,
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
name: 'azure.subscriptionId',
|
|
79
|
+
template: `{{- required "Azure Subscription ID is required" .Values.azure.subscriptionId }}`,
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
name: 'azure.acrLoginServer',
|
|
83
|
+
template: `{{- printf "%s.azurecr.io" .Values.azure.acrName }}`,
|
|
84
|
+
},
|
|
85
|
+
];
|
|
86
|
+
/**
|
|
87
|
+
* GCP-specific Helm helpers
|
|
88
|
+
* @since 2.5.0
|
|
89
|
+
*/
|
|
90
|
+
export const GCP_HELPERS = [
|
|
91
|
+
{
|
|
92
|
+
name: 'gcp.projectId',
|
|
93
|
+
template: `{{- required "GCP Project ID is required" .Values.gcp.projectId }}`,
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
name: 'gcp.region',
|
|
97
|
+
template: `{{- .Values.gcp.region | default "us-central1" }}`,
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
name: 'gcp.garRepository',
|
|
101
|
+
template: `{{- printf "%s-docker.pkg.dev/%s/%s" (include "gcp.region" .) (include "gcp.projectId" .) .Values.gcp.repositoryName }}`,
|
|
102
|
+
},
|
|
103
|
+
];
|
|
104
|
+
/**
|
|
105
|
+
* Converts helper definitions to Helm template format
|
|
106
|
+
* @param helpers - Array of helper definitions
|
|
107
|
+
* @returns Formatted Helm template string
|
|
108
|
+
* @since 2.5.0
|
|
109
|
+
*/
|
|
110
|
+
export function formatHelpers(helpers) {
|
|
111
|
+
return helpers
|
|
112
|
+
.map((helper) => `{{/*
|
|
113
|
+
${helper.name}
|
|
114
|
+
*/}}
|
|
115
|
+
{{- define "${helper.name}" -}}
|
|
116
|
+
${helper.template}
|
|
117
|
+
{{- end }}`)
|
|
118
|
+
.join('\n\n');
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Gets default helpers based on cloud provider
|
|
122
|
+
* @param cloudProvider - Target cloud provider
|
|
123
|
+
* @returns Combined standard and cloud-specific helpers
|
|
124
|
+
* @since 2.5.0
|
|
125
|
+
*/
|
|
126
|
+
export function getDefaultHelpers(cloudProvider) {
|
|
127
|
+
const helpers = [...STANDARD_HELPERS];
|
|
128
|
+
switch (cloudProvider) {
|
|
129
|
+
case 'aws':
|
|
130
|
+
helpers.push(...AWS_HELPERS);
|
|
131
|
+
break;
|
|
132
|
+
case 'azure':
|
|
133
|
+
helpers.push(...AZURE_HELPERS);
|
|
134
|
+
break;
|
|
135
|
+
case 'gcp':
|
|
136
|
+
helpers.push(...GCP_HELPERS);
|
|
137
|
+
break;
|
|
138
|
+
}
|
|
139
|
+
return helpers;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Generates complete _helpers.tpl content
|
|
143
|
+
* @param cloudProvider - Optional cloud provider for specific helpers
|
|
144
|
+
* @param customHelpers - Additional custom helpers
|
|
145
|
+
* @returns Complete helpers template content
|
|
146
|
+
* @since 2.5.0
|
|
147
|
+
*/
|
|
148
|
+
export function generateHelpersTemplate(cloudProvider, customHelpers) {
|
|
149
|
+
const helpers = getDefaultHelpers(cloudProvider);
|
|
150
|
+
if (customHelpers) {
|
|
151
|
+
helpers.push(...customHelpers);
|
|
152
|
+
}
|
|
153
|
+
return formatHelpers(helpers);
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=helmHelpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helmHelpers.js","sourceRoot":"","sources":["../../../src/lib/utils/helmHelpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAuB;IAClD;QACE,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,6EAA6E;KACxF;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE;;;;;;;;;WASH;KACR;IACD;QACE,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,gGAAgG;KAC3G;IACD;QACE,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE;;;;;qDAKuC;KAClD;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE;gDACkC;KAC7C;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAuB;IAC7C;QACE,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,iDAAiD;KAC5D;IACD;QACE,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,oEAAoE;KAC/E;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,8FAA8F;KACzG;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,mIAAmI;KAC9I;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAuB;IAC/C;QACE,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,gFAAgF;KAC3F;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,kFAAkF;KAC7F;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,qDAAqD;KAChE;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAuB;IAC7C;QACE,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,oEAAoE;KAC/E;IACD;QACE,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,mDAAmD;KAC9D;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,yHAAyH;KACpI;CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,OAA2B;IACvD,OAAO,OAAO;SACX,GAAG,CACF,CAAC,MAAM,EAAE,EAAE,CAAC;EAChB,MAAM,CAAC,IAAI;;cAEC,MAAM,CAAC,IAAI;EACvB,MAAM,CAAC,QAAQ;WACN,CACN;SACA,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,aAAuC;IACvE,MAAM,OAAO,GAAG,CAAC,GAAG,gBAAgB,CAAC,CAAC;IAEtC,QAAQ,aAAa,EAAE,CAAC;QACtB,KAAK,KAAK;YACR,OAAO,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;YAC7B,MAAM;QACR,KAAK,OAAO;YACV,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;YAC/B,MAAM;QACR,KAAK,KAAK;YACR,OAAO,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;YAC7B,MAAM;IACV,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CACrC,aAAuC,EACvC,aAAkC;IAElC,MAAM,OAAO,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAEjD,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC"}
|