timonel 2.2.0 → 2.3.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.
@@ -1,14 +1,95 @@
1
+ /**
2
+ * @fileoverview Helm chart writer for generating complete Helm chart structures
3
+ * @since 1.0.0
4
+ */
1
5
  import * as fs from 'fs';
2
6
  import * as path from 'path';
3
7
  import YAML from 'yaml';
8
+ import { SecurityUtils } from './security.js';
9
+ /**
10
+ * Helm chart writer for generating complete chart structures
11
+ *
12
+ * This class provides static methods to generate a complete Helm chart
13
+ * including Chart.yaml, values.yaml, templates, and auxiliary files.
14
+ *
15
+ * @class HelmChartWriter
16
+ * @since 1.0.0
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * HelmChartWriter.write({
21
+ * outDir: './dist/my-chart',
22
+ * meta: { name: 'my-app', version: '1.0.0' },
23
+ * assets: []
24
+ * });
25
+ * ```
26
+ */
4
27
  export class HelmChartWriter {
28
+ /**
29
+ * Writes a complete Helm chart to the specified directory
30
+ *
31
+ * Creates the full directory structure and writes all necessary files
32
+ * for a valid Helm chart including Chart.yaml, values files, templates,
33
+ * and auxiliary files.
34
+ *
35
+ * @param {HelmChartWriteOptions} opts - Chart configuration options
36
+ * @throws {Error} If output directory path is invalid
37
+ * @throws {Error} If chart metadata is invalid
38
+ *
39
+ * @example
40
+ * ```typescript
41
+ * HelmChartWriter.write({
42
+ * outDir: './charts/my-app',
43
+ * meta: {
44
+ * name: 'my-app',
45
+ * version: '1.0.0',
46
+ * description: 'My application'
47
+ * },
48
+ * defaultValues: { replicas: 3 },
49
+ * assets: []
50
+ * });
51
+ * ```
52
+ *
53
+ * @since 1.0.0
54
+ */
5
55
  static write(opts) {
6
56
  const { outDir, meta, defaultValues = {}, envValues = {}, assets, helpersTpl, notesTpl, valuesSchema, } = opts;
7
- // Prepare structure
57
+ // Validate output directory path
58
+ const validatedOutDir = SecurityUtils.validatePath(outDir, process.cwd());
59
+ // Create directory structure
60
+ this.createDirectories(validatedOutDir);
61
+ // Write chart files
62
+ this.writeChartYaml(validatedOutDir, meta);
63
+ this.writeValuesFiles(validatedOutDir, defaultValues, envValues);
64
+ this.writeAssets(validatedOutDir, assets);
65
+ this.writeHelpers(validatedOutDir, helpersTpl);
66
+ this.writeNotes(validatedOutDir, notesTpl);
67
+ this.writeSchema(validatedOutDir, valuesSchema);
68
+ this.writeHelmIgnore(validatedOutDir);
69
+ }
70
+ /**
71
+ * Creates the necessary directory structure for the chart
72
+ *
73
+ * @private
74
+ * @param {string} outDir - Output directory path
75
+ * @throws {Error} If directories cannot be created
76
+ * @since 1.0.0
77
+ */
78
+ static createDirectories(outDir) {
8
79
  // eslint-disable-next-line security/detect-non-literal-fs-filename -- Chart writer needs dynamic paths
9
80
  fs.mkdirSync(path.join(outDir, 'templates'), { recursive: true });
10
81
  // Create crds directory only if needed later
11
- // Chart.yaml
82
+ }
83
+ /**
84
+ * Writes the Chart.yaml file with chart metadata
85
+ *
86
+ * @private
87
+ * @param {string} outDir - Output directory path
88
+ * @param {HelmChartMeta} meta - Chart metadata
89
+ * @throws {Error} If Chart.yaml cannot be written
90
+ * @since 1.0.0
91
+ */
92
+ static writeChartYaml(outDir, meta) {
12
93
  const chartYaml = YAML.stringify({
13
94
  apiVersion: 'v2',
14
95
  name: meta.name,
@@ -26,40 +107,97 @@ export class HelmChartWriter {
26
107
  });
27
108
  // eslint-disable-next-line security/detect-non-literal-fs-filename -- Chart writer needs dynamic paths
28
109
  fs.writeFileSync(path.join(outDir, 'Chart.yaml'), chartYaml);
29
- // values.yaml and env values files
110
+ }
111
+ /**
112
+ * Writes values.yaml and environment-specific values files
113
+ *
114
+ * @private
115
+ * @param {string} outDir - Output directory path
116
+ * @param {Record<string, unknown>} defaultValues - Default values
117
+ * @param {EnvValuesMap} envValues - Environment-specific values
118
+ * @throws {Error} If values files cannot be written
119
+ * @since 1.0.0
120
+ */
121
+ static writeValuesFiles(outDir, defaultValues, envValues) {
30
122
  // eslint-disable-next-line security/detect-non-literal-fs-filename -- Chart writer needs dynamic paths
31
123
  fs.writeFileSync(path.join(outDir, 'values.yaml'), YAML.stringify(defaultValues));
32
124
  for (const [env, values] of Object.entries(envValues)) {
125
+ // Use centralized environment name sanitization
126
+ const sanitizedEnv = SecurityUtils.sanitizeEnvironmentName(env);
33
127
  // eslint-disable-next-line security/detect-non-literal-fs-filename -- Chart writer needs dynamic paths
34
- fs.writeFileSync(path.join(outDir, `values-${env}.yaml`), YAML.stringify(values));
128
+ fs.writeFileSync(path.join(outDir, `values-${sanitizedEnv}.yaml`), YAML.stringify(values));
35
129
  }
36
- // templates/ and crds/
130
+ }
131
+ /**
132
+ * Writes Kubernetes manifest assets to templates directory
133
+ *
134
+ * @private
135
+ * @param {string} outDir - Output directory path
136
+ * @param {SynthAsset[]} assets - Kubernetes manifests to write
137
+ * @since 1.0.0
138
+ */
139
+ static writeAssets(outDir, assets) {
37
140
  writeAssets(outDir, assets);
38
- // Optional helpers
39
- if (helpersTpl) {
40
- let content = '';
41
- if (typeof helpersTpl === 'string') {
42
- content = helpersTpl.endsWith('\n') ? helpersTpl : helpersTpl + '\n';
43
- }
44
- else if (Array.isArray(helpersTpl)) {
45
- content = helpersTpl
46
- .map((h) => [`{{- define "${h.name}" -}}`, h.body.trimEnd(), '{{- end }}', ''].join('\n'))
47
- .join('\n');
48
- }
49
- // eslint-disable-next-line security/detect-non-literal-fs-filename -- Chart writer needs dynamic paths
50
- fs.writeFileSync(path.join(outDir, 'templates', '_helpers.tpl'), content);
51
- }
52
- // Optional NOTES.txt
53
- if (notesTpl) {
54
- // eslint-disable-next-line security/detect-non-literal-fs-filename -- Chart writer needs dynamic paths
55
- fs.writeFileSync(path.join(outDir, 'templates', 'NOTES.txt'), notesTpl.endsWith('\n') ? notesTpl : notesTpl + '\n');
141
+ }
142
+ /**
143
+ * Writes Helm template helpers to _helpers.tpl file
144
+ *
145
+ * @private
146
+ * @param {string} outDir - Output directory path
147
+ * @param {string | HelperDefinition[]} [helpersTpl] - Helpers content
148
+ * @since 1.0.0
149
+ */
150
+ static writeHelpers(outDir, helpersTpl) {
151
+ if (!helpersTpl)
152
+ return;
153
+ let content = '';
154
+ if (typeof helpersTpl === 'string') {
155
+ content = helpersTpl.endsWith('\n') ? helpersTpl : helpersTpl + '\n';
56
156
  }
57
- // Optional values.schema.json
58
- if (valuesSchema) {
59
- // eslint-disable-next-line security/detect-non-literal-fs-filename -- Chart writer needs dynamic paths
60
- fs.writeFileSync(path.join(outDir, 'values.schema.json'), JSON.stringify(valuesSchema, null, 2) + '\n');
157
+ else if (Array.isArray(helpersTpl)) {
158
+ content = helpersTpl
159
+ .map((h) => [`{{- define "${h.name}" -}}`, h.body.trimEnd(), '{{- end }}', ''].join('\n'))
160
+ .join('\n');
61
161
  }
62
- // Emit a default .helmignore if missing
162
+ // eslint-disable-next-line security/detect-non-literal-fs-filename -- Chart writer needs dynamic paths
163
+ fs.writeFileSync(path.join(outDir, 'templates', '_helpers.tpl'), content);
164
+ }
165
+ /**
166
+ * Writes NOTES.txt file for post-install instructions
167
+ *
168
+ * @private
169
+ * @param {string} outDir - Output directory path
170
+ * @param {string} [notesTpl] - Notes content
171
+ * @since 1.0.0
172
+ */
173
+ static writeNotes(outDir, notesTpl) {
174
+ if (!notesTpl)
175
+ return;
176
+ // eslint-disable-next-line security/detect-non-literal-fs-filename -- Chart writer needs dynamic paths
177
+ fs.writeFileSync(path.join(outDir, 'templates', 'NOTES.txt'), notesTpl.endsWith('\n') ? notesTpl : notesTpl + '\n');
178
+ }
179
+ /**
180
+ * Writes values.schema.json for values validation
181
+ *
182
+ * @private
183
+ * @param {string} outDir - Output directory path
184
+ * @param {Record<string, unknown>} [valuesSchema] - JSON schema
185
+ * @since 1.0.0
186
+ */
187
+ static writeSchema(outDir, valuesSchema) {
188
+ if (!valuesSchema)
189
+ return;
190
+ // eslint-disable-next-line security/detect-non-literal-fs-filename -- Chart writer needs dynamic paths
191
+ fs.writeFileSync(path.join(outDir, 'values.schema.json'), JSON.stringify(valuesSchema, null, 2) + '\n');
192
+ }
193
+ /**
194
+ * Writes .helmignore file with common ignore patterns
195
+ *
196
+ * @private
197
+ * @param {string} outDir - Output directory path
198
+ * @since 1.0.0
199
+ */
200
+ static writeHelmIgnore(outDir) {
63
201
  const helmIgnorePath = path.join(outDir, '.helmignore');
64
202
  // eslint-disable-next-line security/detect-non-literal-fs-filename -- Chart writer needs dynamic paths
65
203
  if (!fs.existsSync(helmIgnorePath)) {
@@ -90,35 +228,91 @@ export class HelmChartWriter {
90
228
  }
91
229
  }
92
230
  }
231
+ /**
232
+ * Splits YAML string into individual documents
233
+ *
234
+ * @private
235
+ * @param {string} yamlStr - YAML string with potential document separators
236
+ * @returns {string[]} Array of individual YAML documents
237
+ * @since 1.0.0
238
+ */
93
239
  function splitDocs(yamlStr) {
94
240
  return yamlStr
95
241
  .split(/^---\s*$/m)
96
242
  .map((p) => p.trim())
97
243
  .filter((p) => p.length);
98
244
  }
245
+ /**
246
+ * Writes all synthesized assets to the chart directory
247
+ *
248
+ * @private
249
+ * @param {string} outDir - Output directory path
250
+ * @param {SynthAsset[]} assets - Assets to write
251
+ * @throws {Error} If asset ID contains invalid characters
252
+ * @since 1.0.0
253
+ */
99
254
  function writeAssets(outDir, assets) {
100
255
  for (const asset of assets) {
256
+ // Sanitize asset ID to prevent path traversal
257
+ const sanitizedId = asset.id.replace(/[^a-zA-Z0-9-_]/g, '');
258
+ if (sanitizedId !== asset.id) {
259
+ throw new Error(`Invalid asset ID: ${SecurityUtils.sanitizeLogMessage(asset.id)}`);
260
+ }
261
+ const targetDir = getTargetDirectory(asset.target);
101
262
  if (asset.singleFile) {
102
- // Write as a single file without splitting documents
103
- const filename = `${asset.id}.yaml`;
104
- const dir = asset.target === 'crds' ? 'crds' : 'templates';
105
- // eslint-disable-next-line security/detect-non-literal-fs-filename -- Chart writer needs dynamic paths
106
- fs.mkdirSync(path.join(outDir, dir), { recursive: true });
107
- // eslint-disable-next-line security/detect-non-literal-fs-filename -- Chart writer needs dynamic paths
108
- fs.writeFileSync(path.join(outDir, dir, filename), asset.yaml + '\n');
263
+ writeSingleAssetFile(outDir, targetDir, sanitizedId, asset.yaml);
109
264
  }
110
265
  else {
111
- // Split documents and create descriptive files following Helm best practices
112
- const parts = splitDocs(asset.yaml);
113
- parts.forEach((doc, index) => {
114
- const filename = `${asset.id}${parts.length > 1 ? `-${index + 1}` : ''}.yaml`;
115
- const dir = asset.target === 'crds' ? 'crds' : 'templates';
116
- // eslint-disable-next-line security/detect-non-literal-fs-filename -- Chart writer needs dynamic paths
117
- fs.mkdirSync(path.join(outDir, dir), { recursive: true });
118
- // eslint-disable-next-line security/detect-non-literal-fs-filename -- Chart writer needs dynamic paths
119
- fs.writeFileSync(path.join(outDir, dir, filename), doc + '\n');
120
- });
266
+ writeMultipleAssetFiles(outDir, targetDir, sanitizedId, asset.yaml);
121
267
  }
122
268
  }
123
269
  }
270
+ /**
271
+ * Gets the target directory for an asset
272
+ *
273
+ * @private
274
+ * @param {('templates' | 'crds')} [target] - Target directory type
275
+ * @returns {string} Directory name
276
+ * @since 1.0.0
277
+ */
278
+ function getTargetDirectory(target) {
279
+ return target === 'crds' ? 'crds' : 'templates';
280
+ }
281
+ /**
282
+ * Writes a single asset file without document splitting
283
+ *
284
+ * @private
285
+ * @param {string} outDir - Output directory path
286
+ * @param {string} targetDir - Target subdirectory
287
+ * @param {string} assetId - Asset identifier
288
+ * @param {string} yaml - YAML content
289
+ * @since 1.0.0
290
+ */
291
+ function writeSingleAssetFile(outDir, targetDir, assetId, yaml) {
292
+ const filename = `${assetId}.yaml`;
293
+ // eslint-disable-next-line security/detect-non-literal-fs-filename -- Chart writer needs dynamic paths
294
+ fs.mkdirSync(path.join(outDir, targetDir), { recursive: true });
295
+ // eslint-disable-next-line security/detect-non-literal-fs-filename -- Chart writer needs dynamic paths
296
+ fs.writeFileSync(path.join(outDir, targetDir, filename), yaml + '\n');
297
+ }
298
+ /**
299
+ * Writes multiple asset files by splitting YAML documents
300
+ *
301
+ * @private
302
+ * @param {string} outDir - Output directory path
303
+ * @param {string} targetDir - Target subdirectory
304
+ * @param {string} assetId - Asset identifier
305
+ * @param {string} yaml - YAML content with potential multiple documents
306
+ * @since 1.0.0
307
+ */
308
+ function writeMultipleAssetFiles(outDir, targetDir, assetId, yaml) {
309
+ const parts = splitDocs(yaml);
310
+ parts.forEach((doc, index) => {
311
+ const filename = `${assetId}${parts.length > 1 ? `-${index + 1}` : ''}.yaml`;
312
+ // eslint-disable-next-line security/detect-non-literal-fs-filename -- Chart writer needs dynamic paths
313
+ fs.mkdirSync(path.join(outDir, targetDir), { recursive: true });
314
+ // eslint-disable-next-line security/detect-non-literal-fs-filename -- Chart writer needs dynamic paths
315
+ fs.writeFileSync(path.join(outDir, targetDir, filename), doc + '\n');
316
+ });
317
+ }
124
318
  //# sourceMappingURL=HelmChartWriter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HelmChartWriter.js","sourceRoot":"","sources":["../../src/lib/HelmChartWriter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HelmChartWriter.js","sourceRoot":"","sources":["../../src/lib/HelmChartWriter.ts"],"names":[],"mappings":"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"}