timonel 2.3.0 → 2.4.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 +6 -0
- package/README.md +5 -1
- package/SECURITY.md +3 -3
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -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 +584 -0
- package/dist/lib/resources/core/coreResources.d.ts.map +1 -0
- package/dist/lib/resources/core/coreResources.js +796 -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 +554 -0
- package/dist/lib/rutter.d.ts.map +1 -0
- package/dist/lib/rutter.js +665 -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/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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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "timonel",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.4.0",
|
|
5
5
|
"description": "Timonel: programmatic Helm chart generator using cdk8s (TypeScript)",
|
|
6
6
|
"bin": {
|
|
7
7
|
"timonel": "dist/cli.js",
|
|
@@ -80,6 +80,7 @@
|
|
|
80
80
|
},
|
|
81
81
|
"dependencies": {
|
|
82
82
|
"cdk8s": "^2.70.11",
|
|
83
|
+
"constructs": "^10.4.2",
|
|
83
84
|
"ts-node": "^10.9.2",
|
|
84
85
|
"yaml": "^2.8.1"
|
|
85
86
|
},
|