@intentius/chant-lexicon-helm 0.19.1 → 0.20.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 +1 @@
1
- {"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/codegen/docs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA2FH,wBAAsB,YAAY,CAAC,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAoY9E"}
1
+ {"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/codegen/docs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA2FH,wBAAsB,YAAY,CAAC,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsY9E"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "algorithm": "sha256",
3
3
  "artifacts": {
4
- "manifest.json": "a3976c7c1888c9e0ae5f4ed2ab85763b70cf69aa4dc8e5464ba1915569bf96d6",
4
+ "manifest.json": "705b16ec6db30ca57dfcfa0ec3d8cdf7ef74b5f128816f3be20f153b41c34779",
5
5
  "meta.json": "14243c5730a07c6a6edc35ddd351438547d58df5cf345f2233a355b0c7611ccc",
6
6
  "types/index.d.ts": "5377696ca8698cd2999e4680feb8e8e4b54a7b49fb603a87b2f27356114d1794",
7
7
  "rules/chart-metadata.ts": "8f3377e893d5e2828460b7fe5924fca098334245a9a2fdb90f6b67e490eaf091",
@@ -34,5 +34,5 @@
34
34
  "skills/chant-helm-patterns.md": "9e79e6a46391da46709d8aa57e2825a7cd9eb981cd923f02ad60836c49b2561e",
35
35
  "skills/chant-helm-security.md": "bfc367eabceed2e84f1cf94501b407df78aeed963cec104f24a321d0962063c9"
36
36
  },
37
- "composite": "124cc1246e84a1ce57913e58faa44555867e1f57a14993ea338cd64b6eefa7e5"
37
+ "composite": "64618ab68239c3007173c1937bf9e8f66a2d262988222d01cd0a01f6bdda2a0a"
38
38
  }
@@ -1,36 +1,123 @@
1
1
  {
2
2
  "name": "helm",
3
- "version": "0.19.1",
3
+ "version": "0.20.0",
4
4
  "chantVersion": ">=0.1.0",
5
5
  "namespace": "Helm",
6
6
  "intrinsics": [
7
7
  {
8
8
  "name": "values",
9
- "description": "Proxy accessor for {{ .Values.x }} references"
9
+ "description": "Proxy accessor for {{ .Values.x }} references",
10
+ "isTag": false
10
11
  },
11
12
  {
12
13
  "name": "Release",
13
- "description": "Built-in Release object"
14
+ "description": "Built-in Release object (Name, Namespace, etc.)",
15
+ "isTag": false
14
16
  },
15
17
  {
16
18
  "name": "ChartRef",
17
- "description": "Built-in Chart object"
19
+ "description": "Built-in Chart object (Name, Version, AppVersion)",
20
+ "isTag": false
18
21
  },
19
22
  {
20
23
  "name": "include",
21
- "description": "Include a named template"
24
+ "description": "Include a named template: {{ include \"name\" . }}",
25
+ "isTag": false
26
+ },
27
+ {
28
+ "name": "required",
29
+ "description": "Require a value: {{ required \"msg\" .Values.x }}",
30
+ "isTag": false
31
+ },
32
+ {
33
+ "name": "helmDefault",
34
+ "description": "Default value: {{ default \"def\" .Values.x }}",
35
+ "isTag": false
36
+ },
37
+ {
38
+ "name": "toYaml",
39
+ "description": "Convert to YAML: {{ toYaml .Values.x | nindent N }}",
40
+ "isTag": false
41
+ },
42
+ {
43
+ "name": "quote",
44
+ "description": "Quote a value: {{ .Values.x | quote }}",
45
+ "isTag": false
46
+ },
47
+ {
48
+ "name": "printf",
49
+ "description": "Format string: {{ printf \"%s\" .Values.x }}",
50
+ "isTag": false
51
+ },
52
+ {
53
+ "name": "tpl",
54
+ "description": "Evaluate template: {{ tpl .Values.x . }}",
55
+ "isTag": false
56
+ },
57
+ {
58
+ "name": "lookup",
59
+ "description": "Lookup resource: {{ lookup \"v1\" \"Secret\" \"ns\" \"name\" }}",
60
+ "isTag": false
61
+ },
62
+ {
63
+ "name": "Capabilities",
64
+ "description": "Built-in Capabilities object (KubeVersion, APIVersions, HelmVersion)",
65
+ "isTag": false
66
+ },
67
+ {
68
+ "name": "Template",
69
+ "description": "Built-in Template object (Name, BasePath)",
70
+ "isTag": false
71
+ },
72
+ {
73
+ "name": "filesGet",
74
+ "description": ".Files.Get: {{ .Files.Get \"path\" }}",
75
+ "isTag": false
76
+ },
77
+ {
78
+ "name": "filesGlob",
79
+ "description": ".Files.Glob: {{ .Files.Glob \"pattern\" }}",
80
+ "isTag": false
81
+ },
82
+ {
83
+ "name": "filesAsConfig",
84
+ "description": ".Files.Glob.AsConfig for ConfigMap data",
85
+ "isTag": false
86
+ },
87
+ {
88
+ "name": "filesAsSecrets",
89
+ "description": ".Files.Glob.AsSecrets for Secret data",
90
+ "isTag": false
91
+ },
92
+ {
93
+ "name": "ElseIf",
94
+ "description": "Else-if chaining: {{- else if .Values.x }}...{{- end }}",
95
+ "isTag": false
22
96
  },
23
97
  {
24
98
  "name": "If",
25
- "description": "Conditional resource/value"
99
+ "description": "Conditional: {{- if .Values.x }}...{{- end }}",
100
+ "isTag": false
26
101
  },
27
102
  {
28
103
  "name": "Range",
29
- "description": "Range loop"
104
+ "description": "Range loop: {{- range .Values.x }}...{{- end }}",
105
+ "isTag": false
30
106
  },
31
107
  {
32
108
  "name": "With",
33
- "description": "With scope"
109
+ "description": "With scope: {{- with .Values.x }}...{{- end }}",
110
+ "isTag": false
111
+ },
112
+ {
113
+ "name": "withOrder",
114
+ "description": "Helm hook annotations for resource ordering (pre-install/pre-upgrade)",
115
+ "isTag": false
116
+ },
117
+ {
118
+ "name": "argoWave",
119
+ "description": "Argo CD sync wave annotation",
120
+ "isTag": false
34
121
  }
35
122
  ],
36
123
  "pseudoParameters": {}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intentius/chant-lexicon-helm",
3
- "version": "0.19.1",
3
+ "version": "0.20.0",
4
4
  "description": "Helm chart lexicon for chant — declarative IaC in TypeScript",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://intentius.io/chant",
@@ -76,7 +76,7 @@
76
76
  "@types/js-yaml": "^4.0.9"
77
77
  },
78
78
  "peerDependencies": {
79
- "@intentius/chant": "^0.19.1",
79
+ "@intentius/chant": "^0.20.0",
80
80
  "typescript": "^5.9.3"
81
81
  }
82
82
  }
@@ -224,7 +224,9 @@ const job = new Job({
224
224
  slug: "composites",
225
225
  title: "Composites",
226
226
  description: "Pre-built Helm chart patterns",
227
- content: `## Available composites
227
+ content: `When a composite call like these is assigned directly to a top-level \`export const\` — or destructured into a top-level export, e.g. \`export const { chart, values, deployment } = HelmWebApp({...})\` — it's one of the patterns [\`chant build --fold\`](/chant/concepts/typescript-as-data/#folded-vs-run) can reduce with no module execution (chant #1023). It still runs like any other call if it isn't a top-level export, or if its result is only reached through a nested value inside another resource's properties.
228
+
229
+ ## Available composites
228
230
 
229
231
  | Composite | Description | Resources |
230
232
  |-----------|-------------|-----------|
@@ -35,15 +35,15 @@ export async function packageLexicon(opts: PackageOptions = {}): Promise<Package
35
35
  version: pkgJson.version ?? "0.0.0",
36
36
  chantVersion: ">=0.1.0",
37
37
  namespace: "Helm",
38
- intrinsics: [
39
- { name: "values", description: "Proxy accessor for {{ .Values.x }} references" },
40
- { name: "Release", description: "Built-in Release object" },
41
- { name: "ChartRef", description: "Built-in Chart object" },
42
- { name: "include", description: "Include a named template" },
43
- { name: "If", description: "Conditional resource/value" },
44
- { name: "Range", description: "Range loop" },
45
- { name: "With", description: "With scope" },
46
- ],
38
+ // Derived from the plugin's own registration (chant #1067) — this
39
+ // used to be a hand-maintained array of 7 entries, independent of
40
+ // ../plugin.ts's real registration (which has grown to 22) and
41
+ // never updated to match. That drift is exactly why an
42
+ // independent second source of truth for the same data is
43
+ // dangerous: the generated intrinsics doc page (chant #1062) was
44
+ // silently reporting "7 intrinsic functions" for a lexicon that
45
+ // ships 22.
46
+ intrinsics: helmPlugin.intrinsics?.() ?? [],
47
47
  pseudoParameters: {},
48
48
  };
49
49
  },
package/src/plugin.ts CHANGED
@@ -31,29 +31,29 @@ export const helmPlugin: LexiconPlugin = {
31
31
 
32
32
  intrinsics(): IntrinsicDef[] {
33
33
  return [
34
- { name: "values", description: "Proxy accessor for {{ .Values.x }} references" },
35
- { name: "Release", description: "Built-in Release object (Name, Namespace, etc.)" },
36
- { name: "ChartRef", description: "Built-in Chart object (Name, Version, AppVersion)" },
37
- { name: "include", description: 'Include a named template: {{ include "name" . }}' },
38
- { name: "required", description: 'Require a value: {{ required "msg" .Values.x }}' },
39
- { name: "helmDefault", description: 'Default value: {{ default "def" .Values.x }}' },
40
- { name: "toYaml", description: "Convert to YAML: {{ toYaml .Values.x | nindent N }}" },
41
- { name: "quote", description: "Quote a value: {{ .Values.x | quote }}" },
42
- { name: "printf", description: 'Format string: {{ printf "%s" .Values.x }}' },
43
- { name: "tpl", description: "Evaluate template: {{ tpl .Values.x . }}" },
44
- { name: "lookup", description: 'Lookup resource: {{ lookup "v1" "Secret" "ns" "name" }}' },
45
- { name: "Capabilities", description: "Built-in Capabilities object (KubeVersion, APIVersions, HelmVersion)" },
46
- { name: "Template", description: "Built-in Template object (Name, BasePath)" },
47
- { name: "filesGet", description: '.Files.Get: {{ .Files.Get "path" }}' },
48
- { name: "filesGlob", description: '.Files.Glob: {{ .Files.Glob "pattern" }}' },
49
- { name: "filesAsConfig", description: ".Files.Glob.AsConfig for ConfigMap data" },
50
- { name: "filesAsSecrets", description: ".Files.Glob.AsSecrets for Secret data" },
51
- { name: "ElseIf", description: "Else-if chaining: {{- else if .Values.x }}...{{- end }}" },
52
- { name: "If", description: "Conditional: {{- if .Values.x }}...{{- end }}" },
53
- { name: "Range", description: "Range loop: {{- range .Values.x }}...{{- end }}" },
54
- { name: "With", description: "With scope: {{- with .Values.x }}...{{- end }}" },
55
- { name: "withOrder", description: "Helm hook annotations for resource ordering (pre-install/pre-upgrade)" },
56
- { name: "argoWave", description: "Argo CD sync wave annotation" },
34
+ { name: "values", description: "Proxy accessor for {{ .Values.x }} references", isTag: false },
35
+ { name: "Release", description: "Built-in Release object (Name, Namespace, etc.)", isTag: false },
36
+ { name: "ChartRef", description: "Built-in Chart object (Name, Version, AppVersion)", isTag: false },
37
+ { name: "include", description: 'Include a named template: {{ include "name" . }}', isTag: false },
38
+ { name: "required", description: 'Require a value: {{ required "msg" .Values.x }}', isTag: false },
39
+ { name: "helmDefault", description: 'Default value: {{ default "def" .Values.x }}', isTag: false },
40
+ { name: "toYaml", description: "Convert to YAML: {{ toYaml .Values.x | nindent N }}", isTag: false },
41
+ { name: "quote", description: "Quote a value: {{ .Values.x | quote }}", isTag: false },
42
+ { name: "printf", description: 'Format string: {{ printf "%s" .Values.x }}', isTag: false },
43
+ { name: "tpl", description: "Evaluate template: {{ tpl .Values.x . }}", isTag: false },
44
+ { name: "lookup", description: 'Lookup resource: {{ lookup "v1" "Secret" "ns" "name" }}', isTag: false },
45
+ { name: "Capabilities", description: "Built-in Capabilities object (KubeVersion, APIVersions, HelmVersion)", isTag: false },
46
+ { name: "Template", description: "Built-in Template object (Name, BasePath)", isTag: false },
47
+ { name: "filesGet", description: '.Files.Get: {{ .Files.Get "path" }}', isTag: false },
48
+ { name: "filesGlob", description: '.Files.Glob: {{ .Files.Glob "pattern" }}', isTag: false },
49
+ { name: "filesAsConfig", description: ".Files.Glob.AsConfig for ConfigMap data", isTag: false },
50
+ { name: "filesAsSecrets", description: ".Files.Glob.AsSecrets for Secret data", isTag: false },
51
+ { name: "ElseIf", description: "Else-if chaining: {{- else if .Values.x }}...{{- end }}", isTag: false },
52
+ { name: "If", description: "Conditional: {{- if .Values.x }}...{{- end }}", isTag: false },
53
+ { name: "Range", description: "Range loop: {{- range .Values.x }}...{{- end }}", isTag: false },
54
+ { name: "With", description: "With scope: {{- with .Values.x }}...{{- end }}", isTag: false },
55
+ { name: "withOrder", description: "Helm hook annotations for resource ordering (pre-install/pre-upgrade)", isTag: false },
56
+ { name: "argoWave", description: "Argo CD sync wave annotation", isTag: false },
57
57
  ];
58
58
  },
59
59