@r8s/cli 0.3.2 → 0.3.4
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/dist/catalog.d.ts.map +1 -1
- package/dist/catalog.js +110 -30
- package/dist/catalog.js.map +1 -1
- package/dist/cli.d.ts +5 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +143 -22
- package/dist/cli.js.map +1 -1
- package/dist/flux.d.ts +46 -0
- package/dist/flux.d.ts.map +1 -0
- package/dist/flux.js +342 -0
- package/dist/flux.js.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/dist/renderer.d.ts +11 -0
- package/dist/renderer.d.ts.map +1 -1
- package/dist/renderer.js +5 -1
- package/dist/renderer.js.map +1 -1
- package/package.json +1 -1
package/dist/flux.js
ADDED
|
@@ -0,0 +1,342 @@
|
|
|
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.writeFluxRecipe = writeFluxRecipe;
|
|
37
|
+
/**
|
|
38
|
+
* `r8s flux` — emit the two-Kustomization stack recipe for a fresh cluster.
|
|
39
|
+
*
|
|
40
|
+
* The stateless-install promise as an artifact: an operators Kustomization
|
|
41
|
+
* (HelmRepository + HelmRelease per declared operator — CRDs installed,
|
|
42
|
+
* operator Ready) and a stack Kustomization carrying the package resources,
|
|
43
|
+
* wired together with dependsOn + wait + healthChecks so Flux reconciles
|
|
44
|
+
* them in order (operators first, stack only once the operators are Ready).
|
|
45
|
+
*
|
|
46
|
+
* Rendered layout (output dir, default mode):
|
|
47
|
+
* stacks/<name>/operators/kustomization.yaml + manifests.yaml
|
|
48
|
+
* stacks/<name>/stack/kustomization.yaml + manifests.yaml
|
|
49
|
+
* clusters/<cluster>/stacks/<name>.yaml # the two Flux Kustomizations
|
|
50
|
+
*
|
|
51
|
+
* Two composable single-layer modes for full-catalog installs, where ~20
|
|
52
|
+
* package stacks would otherwise collide per-stack on HelmRelease names
|
|
53
|
+
* under prune — so ONE shared operators layer is emitted once and every
|
|
54
|
+
* package stack dependsOn it:
|
|
55
|
+
* --operators-only only the operators layer + the single
|
|
56
|
+
* <name>-operators Kustomization CR
|
|
57
|
+
* --shared-operators <kustomization-name>
|
|
58
|
+
* only the stack layer + the single
|
|
59
|
+
* <name>-stack CR depending on <name>
|
|
60
|
+
* instead of <name>-operators
|
|
61
|
+
*/
|
|
62
|
+
const yaml = __importStar(require("js-yaml"));
|
|
63
|
+
const fs_1 = require("fs");
|
|
64
|
+
const path_1 = require("path");
|
|
65
|
+
const core_1 = require("@r8s/core");
|
|
66
|
+
const renderer_1 = require("./renderer");
|
|
67
|
+
const RECONCILE_INTERVAL = '5m';
|
|
68
|
+
const OPERATORS_TIMEOUT = '8m';
|
|
69
|
+
const STACK_TIMEOUT = '12m';
|
|
70
|
+
const MAX_HEALTH_CHECKS = 5;
|
|
71
|
+
const DNS_LABEL_RE = /^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/;
|
|
72
|
+
/**
|
|
73
|
+
* HelmRepository + HelmRelease per declared helm operator — the Flux
|
|
74
|
+
* translation of the operator's `source: { type: 'helm', ... }` shape.
|
|
75
|
+
* The operator name doubles as the repo/release name; OCI repositories
|
|
76
|
+
* carry the `type: oci` marker, plain HTTP ones do not.
|
|
77
|
+
*/
|
|
78
|
+
function helmOperatorDocs(operators, fallbackNamespace) {
|
|
79
|
+
const docs = [];
|
|
80
|
+
for (const op of operators) {
|
|
81
|
+
if (op.source.type !== 'helm')
|
|
82
|
+
continue;
|
|
83
|
+
// Helm resources must land in a namespace — the operator's declared
|
|
84
|
+
// one, or the caller's default. (source-controller requires it.)
|
|
85
|
+
const namespace = op.source.namespace ?? fallbackNamespace ?? 'default';
|
|
86
|
+
const isOci = op.source.repository.startsWith('oci://');
|
|
87
|
+
docs.push({
|
|
88
|
+
apiVersion: 'source.toolkit.fluxcd.io/v1',
|
|
89
|
+
kind: 'HelmRepository',
|
|
90
|
+
metadata: { name: op.name, namespace },
|
|
91
|
+
spec: {
|
|
92
|
+
// OCI repos need type: oci so source-controller authenticates
|
|
93
|
+
// against the registry instead of fetching a Helm index.
|
|
94
|
+
...(isOci ? { type: 'oci' } : {}),
|
|
95
|
+
url: op.source.repository,
|
|
96
|
+
interval: RECONCILE_INTERVAL,
|
|
97
|
+
},
|
|
98
|
+
});
|
|
99
|
+
docs.push({
|
|
100
|
+
apiVersion: 'helm.toolkit.fluxcd.io/v2',
|
|
101
|
+
kind: 'HelmRelease',
|
|
102
|
+
metadata: { name: op.name, namespace },
|
|
103
|
+
spec: {
|
|
104
|
+
interval: RECONCILE_INTERVAL,
|
|
105
|
+
chart: {
|
|
106
|
+
spec: {
|
|
107
|
+
chart: op.source.chart,
|
|
108
|
+
version: op.source.version,
|
|
109
|
+
sourceRef: { kind: 'HelmRepository', name: op.name, namespace },
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
...(op.source.values ? { values: op.source.values } : {}),
|
|
113
|
+
},
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
return docs;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* healthChecks for the stack Kustomization: one apps/v1 ref per distinct
|
|
120
|
+
* Deployment/StatefulSet in the rendered resources, capped — the CR stays
|
|
121
|
+
* readable and Flux health assessment stays targeted. Empty when the
|
|
122
|
+
* package renders no long-running workloads.
|
|
123
|
+
*/
|
|
124
|
+
function pickHealthChecks(resources) {
|
|
125
|
+
const seen = new Map();
|
|
126
|
+
for (const r of resources) {
|
|
127
|
+
if (r?.kind !== 'Deployment' && r?.kind !== 'StatefulSet')
|
|
128
|
+
continue;
|
|
129
|
+
if (!r?.metadata?.name)
|
|
130
|
+
continue;
|
|
131
|
+
const ns = r.metadata.namespace;
|
|
132
|
+
const key = `${ns ?? ''}/${r.kind}/${r.metadata.name}`;
|
|
133
|
+
if (!seen.has(key)) {
|
|
134
|
+
seen.set(key, {
|
|
135
|
+
apiVersion: 'apps/v1',
|
|
136
|
+
kind: r.kind,
|
|
137
|
+
name: r.metadata.name,
|
|
138
|
+
...(ns ? { namespace: ns } : {}),
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
if (seen.size >= MAX_HEALTH_CHECKS)
|
|
142
|
+
break;
|
|
143
|
+
}
|
|
144
|
+
return Array.from(seen.values());
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* The Flux Kustomization CRs per mode. Default: the `<name>-operators` /
|
|
148
|
+
* `<name>-stack` pair wired with dependsOn. Operators-only: just the
|
|
149
|
+
* `<name>-operators` CR — the shared layer every package stack points at
|
|
150
|
+
* with `--shared-operators <name>-operators`. Shared-operators: just the
|
|
151
|
+
* `<name>-stack` CR, depending on the named shared operators Kustomization
|
|
152
|
+
* instead of the per-stack one.
|
|
153
|
+
*/
|
|
154
|
+
function fluxKustomizationDocs(name, options, mode, sharedOperatorsName, healthChecks = []) {
|
|
155
|
+
const sourceNamespace = options.sourceNamespace ?? 'flux-system';
|
|
156
|
+
const sourceRef = {
|
|
157
|
+
kind: 'GitRepository',
|
|
158
|
+
name: options.source ?? 'flux-system',
|
|
159
|
+
namespace: sourceNamespace,
|
|
160
|
+
};
|
|
161
|
+
const shared = {
|
|
162
|
+
interval: RECONCILE_INTERVAL,
|
|
163
|
+
prune: true,
|
|
164
|
+
wait: true,
|
|
165
|
+
sourceRef,
|
|
166
|
+
};
|
|
167
|
+
const operatorsDoc = {
|
|
168
|
+
apiVersion: 'kustomize.toolkit.fluxcd.io/v1',
|
|
169
|
+
kind: 'Kustomization',
|
|
170
|
+
metadata: { name: `${name}-operators`, namespace: sourceNamespace },
|
|
171
|
+
spec: { ...shared, path: `stacks/${name}/operators`, timeout: OPERATORS_TIMEOUT },
|
|
172
|
+
};
|
|
173
|
+
const dependsOnName = mode === 'shared-operators' ? sharedOperatorsName : `${name}-operators`;
|
|
174
|
+
const stackDoc = {
|
|
175
|
+
apiVersion: 'kustomize.toolkit.fluxcd.io/v1',
|
|
176
|
+
kind: 'Kustomization',
|
|
177
|
+
metadata: { name: `${name}-stack`, namespace: sourceNamespace },
|
|
178
|
+
spec: {
|
|
179
|
+
...shared,
|
|
180
|
+
path: `stacks/${name}/stack`,
|
|
181
|
+
timeout: STACK_TIMEOUT,
|
|
182
|
+
// The shared operators Kustomization is emitted by a separate r8s
|
|
183
|
+
// flux run — make the namespace explicit so the reference is
|
|
184
|
+
// self-describing (Flux resolves dependsOn in the referencing CR's
|
|
185
|
+
// namespace by default; emit the shared layer and the package stacks
|
|
186
|
+
// with the same --source-namespace). The default mode's pair is
|
|
187
|
+
// always co-located from one run, so it keeps the bare name.
|
|
188
|
+
dependsOn: [
|
|
189
|
+
mode === 'shared-operators'
|
|
190
|
+
? { name: dependsOnName, namespace: sourceNamespace }
|
|
191
|
+
: { name: dependsOnName },
|
|
192
|
+
],
|
|
193
|
+
...(healthChecks.length > 0 ? { healthChecks } : {}),
|
|
194
|
+
},
|
|
195
|
+
};
|
|
196
|
+
if (mode === 'operators-only')
|
|
197
|
+
return [operatorsDoc];
|
|
198
|
+
if (mode === 'shared-operators')
|
|
199
|
+
return [stackDoc];
|
|
200
|
+
return [operatorsDoc, stackDoc];
|
|
201
|
+
}
|
|
202
|
+
function dumpDocs(docs) {
|
|
203
|
+
return docs
|
|
204
|
+
.map((doc) => yaml.dump(doc, {
|
|
205
|
+
sortKeys: false,
|
|
206
|
+
noRefs: true,
|
|
207
|
+
lineWidth: -1,
|
|
208
|
+
}))
|
|
209
|
+
.join('---\n');
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Render `<entryFile>` and write the full Flux stack recipe under
|
|
213
|
+
* `options.out`. Exported for tests — the CLI wraps it with arg parsing.
|
|
214
|
+
*/
|
|
215
|
+
async function writeFluxRecipe(entryFile, options) {
|
|
216
|
+
if (options.operatorsOnly && options.sharedOperators) {
|
|
217
|
+
throw new Error('--operators-only and --shared-operators are mutually exclusive — ' +
|
|
218
|
+
'emit the shared operators layer as its own stack (one r8s flux run ' +
|
|
219
|
+
'with --operators-only), then point each package stack at it with --shared-operators.');
|
|
220
|
+
}
|
|
221
|
+
if (options.sharedOperators && !DNS_LABEL_RE.test(options.sharedOperators)) {
|
|
222
|
+
throw new Error(`Invalid --shared-operators name "${options.sharedOperators}" — must be a DNS label ` +
|
|
223
|
+
`(lowercase alphanumerics and '-'). It is the Kustomization CR name the stack dependsOn.`);
|
|
224
|
+
}
|
|
225
|
+
const mode = options.operatorsOnly
|
|
226
|
+
? 'operators-only'
|
|
227
|
+
: options.sharedOperators
|
|
228
|
+
? 'shared-operators'
|
|
229
|
+
: 'default';
|
|
230
|
+
const outDir = (0, path_1.resolve)(options.out);
|
|
231
|
+
const cluster = options.cluster ?? 'default';
|
|
232
|
+
const name = options.name ?? (0, path_1.basename)(entryFile).replace(/\.(tsx|ts|jsx|js)$/, '');
|
|
233
|
+
if (!DNS_LABEL_RE.test(name)) {
|
|
234
|
+
throw new Error(`Invalid stack name "${name}" — must be a DNS label (lowercase alphanumerics and '-'). Pass --name <name>.`);
|
|
235
|
+
}
|
|
236
|
+
const renderResult = await (0, renderer_1.bundleAndRender)(entryFile);
|
|
237
|
+
// A synthetic shared-operators entry may declare only operators, so the
|
|
238
|
+
// no-resources requirement applies to stack-carrying modes only.
|
|
239
|
+
if (mode !== 'operators-only' && renderResult.resources.length === 0) {
|
|
240
|
+
throw new Error(`No Kubernetes resources rendered from ${entryFile}. ` +
|
|
241
|
+
`Ensure your component returns resources with 'apiVersion' and 'kind'.`);
|
|
242
|
+
}
|
|
243
|
+
// Operators-only IS the shared operators layer — nothing to reconcile
|
|
244
|
+
// unless the entry declares operators a stack can depend on.
|
|
245
|
+
if (mode === 'operators-only' &&
|
|
246
|
+
!renderResult.operators.some((op) => op.source.type === 'helm' || op.source.type === 'manifest')) {
|
|
247
|
+
throw new Error(`No operators declared in ${entryFile}. ` +
|
|
248
|
+
`--operators-only emits the shared operators layer, so the entry must declare operators (helm or manifest sources).`);
|
|
249
|
+
}
|
|
250
|
+
const emitOperatorsLayer = mode !== 'shared-operators';
|
|
251
|
+
const emitStackLayer = mode !== 'operators-only';
|
|
252
|
+
const operatorDocs = emitOperatorsLayer
|
|
253
|
+
? helmOperatorDocs(renderResult.operators, options.namespace)
|
|
254
|
+
: [];
|
|
255
|
+
if (emitOperatorsLayer) {
|
|
256
|
+
// Helm operators translate to HelmRepository + HelmRelease above. Raw
|
|
257
|
+
// (manifest) operators keep the existing fetch-at-render path — their
|
|
258
|
+
// manifests are committed into the operators layer next to the Flux
|
|
259
|
+
// docs. OLM/flux-source operators have no recipe translation yet; say
|
|
260
|
+
// so instead of silently dropping them.
|
|
261
|
+
const unsupported = renderResult.operators.filter((op) => op.source.type !== 'helm' && op.source.type !== 'manifest');
|
|
262
|
+
for (const op of unsupported) {
|
|
263
|
+
console.error(`⚠️ Operator "${op.name}" declares source type "${op.source.type}" — not supported by the flux recipe yet, skipped.`);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
else {
|
|
267
|
+
// package stack pointing at the shared layer: the shared operators
|
|
268
|
+
// layer owns operator installation — anything declared here would
|
|
269
|
+
// collide with it under prune (same HelmRelease names). Name them,
|
|
270
|
+
// skip them.
|
|
271
|
+
if (renderResult.operators.length > 0) {
|
|
272
|
+
const declared = renderResult.operators.map((op) => op.name).join(', ');
|
|
273
|
+
console.error(`⚠️ --shared-operators "${options.sharedOperators}": operators [${declared}] declared in the entry are skipped — the shared operators layer owns operator installation.`);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
// Symmetric signal to the skipped-operators warning above: passing a
|
|
277
|
+
// real package entry (with resources) instead of the synthetic
|
|
278
|
+
// operators-only entry would silently lose those resources.
|
|
279
|
+
if (mode === 'operators-only' && renderResult.resources.length > 0) {
|
|
280
|
+
console.error(`⚠️ ${renderResult.resources.length} resources rendered are dropped in --operators-only mode (it emits only the shared operators layer — stack resources belong to a package stack, r8s flux <entry> --shared-operators ${name}-operators).`);
|
|
281
|
+
}
|
|
282
|
+
const fetchedManifests = emitOperatorsLayer &&
|
|
283
|
+
renderResult.operators.some((op) => op.source.type === 'manifest') === true
|
|
284
|
+
? await (0, core_1.fetchOperatorManifests)(renderResult.operators)
|
|
285
|
+
: [];
|
|
286
|
+
// Guardrails run over BOTH layers before anything is serialized — the
|
|
287
|
+
// stack resources and the helm chart values inside the HelmReleases
|
|
288
|
+
// (plain fetched operator manifests are external content, same policy
|
|
289
|
+
// as `r8s operators`). Per mode, only over the layers being emitted.
|
|
290
|
+
if (emitOperatorsLayer)
|
|
291
|
+
(0, renderer_1.enforceSecretGuardrails)(operatorDocs, options);
|
|
292
|
+
if (emitStackLayer)
|
|
293
|
+
(0, renderer_1.enforceSecretGuardrails)(renderResult.resources, options);
|
|
294
|
+
const redact = (docs) => options.redactSecrets ? docs.map((doc) => (0, core_1.maskSecretValues)(doc)) : docs;
|
|
295
|
+
const operatorYaml = [dumpDocs(redact(operatorDocs)), ...fetchedManifests]
|
|
296
|
+
.filter(Boolean)
|
|
297
|
+
.join('---\n');
|
|
298
|
+
const sourceNamespace = options.sourceNamespace ?? 'flux-system';
|
|
299
|
+
const kustomizationDocs = fluxKustomizationDocs(name, { ...options, sourceNamespace }, mode, options.sharedOperators, emitStackLayer ? pickHealthChecks(renderResult.resources) : []);
|
|
300
|
+
const layerKustomization = (hasManifests) => ({
|
|
301
|
+
apiVersion: 'kustomize.config.k8s.io/v1beta1',
|
|
302
|
+
kind: 'Kustomization',
|
|
303
|
+
// An empty operators layer (stack declares no operators) builds to an
|
|
304
|
+
// empty set — valid kustomize, Flux reconciles it to Ready at once.
|
|
305
|
+
...(hasManifests ? { resources: ['manifests.yaml'] } : {}),
|
|
306
|
+
});
|
|
307
|
+
const files = [];
|
|
308
|
+
const write = (relPath, content) => {
|
|
309
|
+
const absolute = (0, path_1.join)(outDir, relPath);
|
|
310
|
+
(0, fs_1.mkdirSync)((0, path_1.dirname)(absolute), { recursive: true });
|
|
311
|
+
(0, fs_1.writeFileSync)(absolute, content, 'utf-8');
|
|
312
|
+
files.push(relPath);
|
|
313
|
+
};
|
|
314
|
+
if (emitOperatorsLayer) {
|
|
315
|
+
write(`stacks/${name}/operators/kustomization.yaml`, dumpDocs([layerKustomization(operatorYaml.length > 0)]));
|
|
316
|
+
write(`stacks/${name}/operators/manifests.yaml`, operatorYaml);
|
|
317
|
+
}
|
|
318
|
+
if (emitStackLayer) {
|
|
319
|
+
write(`stacks/${name}/stack/kustomization.yaml`, dumpDocs([layerKustomization(renderResult.resources.length > 0)]));
|
|
320
|
+
write(`stacks/${name}/stack/manifests.yaml`, dumpDocs(redact(renderResult.resources)));
|
|
321
|
+
}
|
|
322
|
+
write(`clusters/${cluster}/stacks/${name}.yaml`, dumpDocs(kustomizationDocs));
|
|
323
|
+
const repoName = options.source ?? 'flux-system';
|
|
324
|
+
const recipeLabel = mode === 'operators-only'
|
|
325
|
+
? 'r8s flux shared operators recipe'
|
|
326
|
+
: mode === 'shared-operators'
|
|
327
|
+
? 'r8s flux package stack recipe'
|
|
328
|
+
: 'r8s flux recipe';
|
|
329
|
+
console.log(`\n${recipeLabel}: ${name} (cluster: ${cluster})`);
|
|
330
|
+
for (const relPath of files)
|
|
331
|
+
console.log(` ${relPath}`);
|
|
332
|
+
console.log(`\nApply to a fresh cluster (Flux bootstrapped, GitRepository "${repoName}" in ${sourceNamespace}):`);
|
|
333
|
+
console.log(` kubectl apply -f clusters/${cluster}/stacks/${name}.yaml`);
|
|
334
|
+
if (mode === 'operators-only') {
|
|
335
|
+
console.log(`\nPackage stacks point at this layer with: r8s flux <entry.tsx> --out <dir> --shared-operators ${name}-operators`);
|
|
336
|
+
}
|
|
337
|
+
else if (mode === 'shared-operators') {
|
|
338
|
+
console.log(`The stack reconciles only once the "${options.sharedOperators}" Kustomization is Ready (dependsOn + wait).`);
|
|
339
|
+
}
|
|
340
|
+
return { name, cluster, files };
|
|
341
|
+
}
|
|
342
|
+
//# sourceMappingURL=flux.js.map
|
package/dist/flux.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flux.js","sourceRoot":"","sources":["../src/flux.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0PA,0CA0LC;AApbD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,8CAA+B;AAC/B,2BAA6C;AAC7C,+BAAuD;AAEvD,oCAAoE;AACpE,yCAAyF;AAsCzF,MAAM,kBAAkB,GAAG,IAAI,CAAA;AAC/B,MAAM,iBAAiB,GAAG,IAAI,CAAA;AAC9B,MAAM,aAAa,GAAG,KAAK,CAAA;AAC3B,MAAM,iBAAiB,GAAG,CAAC,CAAA;AAE3B,MAAM,YAAY,GAAG,wCAAwC,CAAA;AAE7D;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,SAAqB,EAAE,iBAA0B;IACzE,MAAM,IAAI,GAAU,EAAE,CAAA;IAEtB,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;QAC3B,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM;YAAE,SAAQ;QACvC,oEAAoE;QACpE,iEAAiE;QACjE,MAAM,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,IAAI,iBAAiB,IAAI,SAAS,CAAA;QACvE,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;QAEvD,IAAI,CAAC,IAAI,CAAC;YACR,UAAU,EAAE,6BAA6B;YACzC,IAAI,EAAE,gBAAgB;YACtB,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE;YACtC,IAAI,EAAE;gBACJ,8DAA8D;gBAC9D,yDAAyD;gBACzD,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU;gBACzB,QAAQ,EAAE,kBAAkB;aAC7B;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,IAAI,CAAC;YACR,UAAU,EAAE,2BAA2B;YACvC,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE;YACtC,IAAI,EAAE;gBACJ,QAAQ,EAAE,kBAAkB;gBAC5B,KAAK,EAAE;oBACL,IAAI,EAAE;wBACJ,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK;wBACtB,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO;wBAC1B,SAAS,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE;qBAChE;iBACF;gBACD,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1D;SACF,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,SAAgB;IAMxC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkC,CAAA;IAEtD,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,IAAI,CAAC,EAAE,IAAI,KAAK,YAAY,IAAI,CAAC,EAAE,IAAI,KAAK,aAAa;YAAE,SAAQ;QACnE,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI;YAAE,SAAQ;QAChC,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAA;QAC/B,MAAM,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;QACtD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;gBACZ,UAAU,EAAE,SAAS;gBACrB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI;gBACrB,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACjC,CAAC,CAAA;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,IAAI,iBAAiB;YAAE,MAAK;IAC3C,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAK5B,CAAA;AACL,CAAC;AAQD;;;;;;;GAOG;AACH,SAAS,qBAAqB,CAC5B,IAAY,EACZ,OAA0B,EAC1B,IAAoB,EACpB,mBAAuC,EACvC,eAAyF,EAAE;IAE3F,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,aAAa,CAAA;IAChE,MAAM,SAAS,GAAG;QAChB,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,OAAO,CAAC,MAAM,IAAI,aAAa;QACrC,SAAS,EAAE,eAAe;KAC3B,CAAA;IACD,MAAM,MAAM,GAAG;QACb,QAAQ,EAAE,kBAAkB;QAC5B,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,IAAI;QACV,SAAS;KACV,CAAA;IAED,MAAM,YAAY,GAAG;QACnB,UAAU,EAAE,gCAAgC;QAC5C,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE;QACnE,IAAI,EAAE,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,UAAU,IAAI,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAE;KAClF,CAAA;IAED,MAAM,aAAa,GACjB,IAAI,KAAK,kBAAkB,CAAC,CAAC,CAAE,mBAA8B,CAAC,CAAC,CAAC,GAAG,IAAI,YAAY,CAAA;IACrF,MAAM,QAAQ,GAAG;QACf,UAAU,EAAE,gCAAgC;QAC5C,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE;QAC/D,IAAI,EAAE;YACJ,GAAG,MAAM;YACT,IAAI,EAAE,UAAU,IAAI,QAAQ;YAC5B,OAAO,EAAE,aAAa;YACtB,kEAAkE;YAClE,6DAA6D;YAC7D,mEAAmE;YACnE,qEAAqE;YACrE,gEAAgE;YAChE,6DAA6D;YAC7D,SAAS,EAAE;gBACT,IAAI,KAAK,kBAAkB;oBACzB,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE;oBACrD,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE;aAC5B;YACD,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrD;KACF,CAAA;IAED,IAAI,IAAI,KAAK,gBAAgB;QAAE,OAAO,CAAC,YAAY,CAAC,CAAA;IACpD,IAAI,IAAI,KAAK,kBAAkB;QAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;IAClD,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;AACjC,CAAC;AAED,SAAS,QAAQ,CAAC,IAAe;IAC/B,OAAO,IAAI;SACR,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACX,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;QACb,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,CAAC,CAAC;KACd,CAAC,CACH;SACA,IAAI,CAAC,OAAO,CAAC,CAAA;AAClB,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,eAAe,CACnC,SAAiB,EACjB,OAA0B;IAE1B,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CACb,mEAAmE;YACjE,qEAAqE;YACrE,sFAAsF,CACzF,CAAA;IACH,CAAC;IAED,IAAI,OAAO,CAAC,eAAe,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CACb,oCAAoC,OAAO,CAAC,eAAe,0BAA0B;YACnF,yFAAyF,CAC5F,CAAA;IACH,CAAC;IAED,MAAM,IAAI,GAAmB,OAAO,CAAC,aAAa;QAChD,CAAC,CAAC,gBAAgB;QAClB,CAAC,CAAC,OAAO,CAAC,eAAe;YACvB,CAAC,CAAC,kBAAkB;YACpB,CAAC,CAAC,SAAS,CAAA;IAEf,MAAM,MAAM,GAAG,IAAA,cAAO,EAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACnC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,SAAS,CAAA;IAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAA,eAAQ,EAAC,SAAS,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAA;IAElF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,uBAAuB,IAAI,gFAAgF,CAC5G,CAAA;IACH,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,IAAA,0BAAe,EAAC,SAAS,CAAC,CAAA;IAErD,wEAAwE;IACxE,iEAAiE;IACjE,IAAI,IAAI,KAAK,gBAAgB,IAAI,YAAY,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CACb,yCAAyC,SAAS,IAAI;YACpD,uEAAuE,CAC1E,CAAA;IACH,CAAC;IAED,sEAAsE;IACtE,6DAA6D;IAC7D,IACE,IAAI,KAAK,gBAAgB;QACzB,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,EAChG,CAAC;QACD,MAAM,IAAI,KAAK,CACb,4BAA4B,SAAS,IAAI;YACvC,oHAAoH,CACvH,CAAA;IACH,CAAC;IAED,MAAM,kBAAkB,GAAG,IAAI,KAAK,kBAAkB,CAAA;IACtD,MAAM,cAAc,GAAG,IAAI,KAAK,gBAAgB,CAAA;IAEhD,MAAM,YAAY,GAAG,kBAAkB;QACrC,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC;QAC7D,CAAC,CAAC,EAAE,CAAA;IAEN,IAAI,kBAAkB,EAAE,CAAC;QACvB,sEAAsE;QACtE,sEAAsE;QACtE,oEAAoE;QACpE,sEAAsE;QACtE,wCAAwC;QACxC,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,CAAC,MAAM,CAC/C,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CACnE,CAAA;QACD,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;YAC7B,OAAO,CAAC,KAAK,CACX,iBAAiB,EAAE,CAAC,IAAI,2BAA2B,EAAE,CAAC,MAAM,CAAC,IAAI,oDAAoD,CACtH,CAAA;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,mEAAmE;QACnE,kEAAkE;QAClE,mEAAmE;QACnE,aAAa;QACb,IAAI,YAAY,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACvE,OAAO,CAAC,KAAK,CACX,2BAA2B,OAAO,CAAC,eAAe,iBAAiB,QAAQ,8FAA8F,CAC1K,CAAA;QACH,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,+DAA+D;IAC/D,4DAA4D;IAC5D,IAAI,IAAI,KAAK,gBAAgB,IAAI,YAAY,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnE,OAAO,CAAC,KAAK,CACX,OAAO,YAAY,CAAC,SAAS,CAAC,MAAM,uLAAuL,IAAI,cAAc,CAC9O,CAAA;IACH,CAAC;IAED,MAAM,gBAAgB,GACpB,kBAAkB;QAClB,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK,IAAI;QACzE,CAAC,CAAC,MAAM,IAAA,6BAAsB,EAAC,YAAY,CAAC,SAAS,CAAC;QACtD,CAAC,CAAC,EAAE,CAAA;IAER,sEAAsE;IACtE,oEAAoE;IACpE,sEAAsE;IACtE,qEAAqE;IACrE,IAAI,kBAAkB;QAAE,IAAA,kCAAuB,EAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IACtE,IAAI,cAAc;QAAE,IAAA,kCAAuB,EAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAE5E,MAAM,MAAM,GAAG,CAAC,IAAW,EAAS,EAAE,CACpC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,uBAAgB,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAEzE,MAAM,YAAY,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,GAAG,gBAAgB,CAAC;SACvE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,OAAO,CAAC,CAAA;IAEhB,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,aAAa,CAAA;IAChE,MAAM,iBAAiB,GAAG,qBAAqB,CAC7C,IAAI,EACJ,EAAE,GAAG,OAAO,EAAE,eAAe,EAAE,EAC/B,IAAI,EACJ,OAAO,CAAC,eAAe,EACvB,cAAc,CAAC,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAC/D,CAAA;IAED,MAAM,kBAAkB,GAAG,CAAC,YAAqB,EAAE,EAAE,CAAC,CAAC;QACrD,UAAU,EAAE,iCAAiC;QAC7C,IAAI,EAAE,eAAe;QACrB,sEAAsE;QACtE,oEAAoE;QACpE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3D,CAAC,CAAA;IAEF,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,MAAM,KAAK,GAAG,CAAC,OAAe,EAAE,OAAe,EAAE,EAAE;QACjD,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACtC,IAAA,cAAS,EAAC,IAAA,cAAO,EAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACjD,IAAA,kBAAa,EAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;QACzC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACrB,CAAC,CAAA;IAED,IAAI,kBAAkB,EAAE,CAAC;QACvB,KAAK,CACH,UAAU,IAAI,+BAA+B,EAC7C,QAAQ,CAAC,CAAC,kBAAkB,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACxD,CAAA;QACD,KAAK,CAAC,UAAU,IAAI,2BAA2B,EAAE,YAAY,CAAC,CAAA;IAChE,CAAC;IACD,IAAI,cAAc,EAAE,CAAC;QACnB,KAAK,CACH,UAAU,IAAI,2BAA2B,EACzC,QAAQ,CAAC,CAAC,kBAAkB,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAClE,CAAA;QACD,KAAK,CAAC,UAAU,IAAI,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IACxF,CAAC;IACD,KAAK,CAAC,YAAY,OAAO,WAAW,IAAI,OAAO,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAA;IAE7E,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,IAAI,aAAa,CAAA;IAChD,MAAM,WAAW,GACf,IAAI,KAAK,gBAAgB;QACvB,CAAC,CAAC,kCAAkC;QACpC,CAAC,CAAC,IAAI,KAAK,kBAAkB;YAC3B,CAAC,CAAC,+BAA+B;YACjC,CAAC,CAAC,iBAAiB,CAAA;IACzB,OAAO,CAAC,GAAG,CAAC,KAAK,WAAW,KAAK,IAAI,cAAc,OAAO,GAAG,CAAC,CAAA;IAC9D,KAAK,MAAM,OAAO,IAAI,KAAK;QAAE,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAA;IACxD,OAAO,CAAC,GAAG,CACT,iEAAiE,QAAQ,QAAQ,eAAe,IAAI,CACrG,CAAA;IACD,OAAO,CAAC,GAAG,CAAC,+BAA+B,OAAO,WAAW,IAAI,OAAO,CAAC,CAAA;IACzE,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CACT,kGAAkG,IAAI,YAAY,CACnH,CAAA;IACH,CAAC;SAAM,IAAI,IAAI,KAAK,kBAAkB,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CACT,uCAAuC,OAAO,CAAC,eAAe,8CAA8C,CAC7G,CAAA;IACH,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;AACjC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -3,4 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.renderToYaml = void 0;
|
|
4
4
|
var renderer_1 = require("./renderer");
|
|
5
5
|
Object.defineProperty(exports, "renderToYaml", { enumerable: true, get: function () { return renderer_1.renderToYaml; } });
|
|
6
|
+
/**
|
|
7
|
+
* dist/index.js is the library export of @r8s/cli — executing it directly
|
|
8
|
+
* does nothing and exits 0, which reads as "the CLI is broken". The real
|
|
9
|
+
* binary is dist/cli.js (the package's `bin`), normally invoked as
|
|
10
|
+
* `npx r8s <command>`. The typeof guards keep this module importable under
|
|
11
|
+
* ESM/test runners where the CJS globals don't exist.
|
|
12
|
+
*/
|
|
13
|
+
if (typeof require !== 'undefined' && typeof module !== 'undefined' && require.main === module) {
|
|
14
|
+
console.error('This file is the @r8s/cli library export — there is nothing to run here.');
|
|
15
|
+
console.error('The CLI binary is dist/cli.js — invoke it as `npx r8s <command>`.');
|
|
16
|
+
process.exit(1);
|
|
17
|
+
}
|
|
6
18
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uCAAyC;AAAhC,wGAAA,YAAY,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uCAAyC;AAAhC,wGAAA,YAAY,OAAA;AAErB;;;;;;GAMG;AACH,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC/F,OAAO,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAA;IACzF,OAAO,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAA;IAClF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC"}
|
package/dist/renderer.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { render } from '@r8s/core';
|
|
1
2
|
export interface RenderOptions {
|
|
2
3
|
includeOperators?: boolean;
|
|
3
4
|
operatorsOnly?: boolean;
|
|
@@ -16,6 +17,16 @@ export interface RenderOptions {
|
|
|
16
17
|
redactSecrets?: boolean;
|
|
17
18
|
}
|
|
18
19
|
export declare function bundleAndRender(entryFile: string): Promise<import("@r8s/core").RenderResult>;
|
|
20
|
+
/**
|
|
21
|
+
* Enforce the no-plaintext-secrets guardrail on rendered resources.
|
|
22
|
+
* Runs by default so plaintext credentials can never reach rendered YAML,
|
|
23
|
+
* files, or logs. Passing `skipSecretGuardrails` bypasses it —
|
|
24
|
+
* every caller must make that an explicit, user-visible decision.
|
|
25
|
+
*
|
|
26
|
+
* Exported so other render paths (`r8s flux`) enforce the same guardrail
|
|
27
|
+
* over their own manifests before anything is serialized.
|
|
28
|
+
*/
|
|
29
|
+
export declare function enforceSecretGuardrails(resources: ReturnType<typeof render>['resources'], options: RenderOptions): void;
|
|
19
30
|
export declare function renderToYaml(entryFile: string, options?: RenderOptions): Promise<string>;
|
|
20
31
|
export declare function renderToOperatorsYaml(entryFile: string): Promise<string>;
|
|
21
32
|
//# sourceMappingURL=renderer.d.ts.map
|
package/dist/renderer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EAMP,MAAM,WAAW,CAAA;AASlB,MAAM,WAAW,aAAa;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAyBD,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,6CAuDtD;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC,WAAW,CAAC,EACjD,OAAO,EAAE,aAAa,GACrB,IAAI,CAiCN;AAED,wBAAsB,YAAY,CAChC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,MAAM,CAAC,CA4CjB;AAED,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE9E"}
|
package/dist/renderer.js
CHANGED
|
@@ -34,6 +34,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.bundleAndRender = bundleAndRender;
|
|
37
|
+
exports.enforceSecretGuardrails = enforceSecretGuardrails;
|
|
37
38
|
exports.renderToYaml = renderToYaml;
|
|
38
39
|
exports.renderToOperatorsYaml = renderToOperatorsYaml;
|
|
39
40
|
const core_1 = require("@r8s/core");
|
|
@@ -112,8 +113,11 @@ async function bundleAndRender(entryFile) {
|
|
|
112
113
|
/**
|
|
113
114
|
* Enforce the no-plaintext-secrets guardrail on rendered resources.
|
|
114
115
|
* Runs by default so plaintext credentials can never reach rendered YAML,
|
|
115
|
-
*
|
|
116
|
+
* files, or logs. Passing `skipSecretGuardrails` bypasses it —
|
|
116
117
|
* every caller must make that an explicit, user-visible decision.
|
|
118
|
+
*
|
|
119
|
+
* Exported so other render paths (`r8s flux`) enforce the same guardrail
|
|
120
|
+
* over their own manifests before anything is serialized.
|
|
117
121
|
*/
|
|
118
122
|
function enforceSecretGuardrails(resources, options) {
|
|
119
123
|
if (options.skipSecretGuardrails) {
|
package/dist/renderer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDA,0CAuDC;
|
|
1
|
+
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDA,0CAuDC;AAWD,0DAoCC;AAED,oCA+CC;AAED,sDAEC;AApND,oCAOkB;AAClB,8CAA+B;AAC/B,+BAA6C;AAC7C,2BAA+B;AAwB/B;;;;;;;;GAQG;AACH,SAAS,gBAAgB;IACvB,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,IAAA,WAAI,EAAC,GAAG,EAAE,eAAe,CAAC,CAAA;QAC5C,IAAI,IAAA,eAAU,EAAC,SAAS,CAAC,IAAI,IAAA,eAAU,EAAC,IAAA,WAAI,EAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;YAC1F,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,MAAM,MAAM,GAAG,IAAA,cAAO,EAAC,GAAG,CAAC,CAAA;QAC3B,IAAI,MAAM,KAAK,GAAG;YAAE,MAAK;QACzB,GAAG,GAAG,MAAM,CAAA;IACd,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAEM,KAAK,UAAU,eAAe,CAAC,SAAiB;IACrD,MAAM,YAAY,GAAG,IAAA,cAAO,EAAC,SAAS,CAAC,CAAA;IAEvC,IAAI,MAAM,CAAA;IACV,IAAI,CAAC;QACH,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAA;QAEzC,MAAM,GAAG,MAAM,KAAK,CAAC;YACnB,WAAW,EAAE,CAAC,YAAY,CAAC;YAC3B,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,KAAK;YACZ,GAAG,EAAE,WAAW;YAChB,eAAe,EAAE,WAAW;YAC5B,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,gBAAgB,EAAE;SAC7B,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,oBAAoB,SAAS,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC3F,CAAA;IACH,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,mCAAmC,SAAS,EAAE,CAAC,CAAA;IACjE,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAC9C,MAAM,OAAO,GAAG,8BAA8B,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAE5F,IAAI,MAAmB,CAAA;IACvB,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAgB,CAAA;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,oCAAoC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC7F,CAAA;IACH,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAA;IAEhC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,cAAc,SAAS,8CAA8C,CAAC,CAAA;IACxF,CAAC;IAED,IAAI,OAAmB,CAAA;IACvB,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;QACpC,OAAO,GAAG,SAAS,CAAC,EAAE,CAAC,CAAA;IACzB,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,SAAS,CAAA;IACrB,CAAC;IAED,OAAO,IAAA,aAAM,EAAC,OAAO,CAAC,CAAA;AACxB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,uBAAuB,CACrC,SAAiD,EACjD,OAAsB;IAEtB,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;QACjC,OAAO,CAAC,KAAK,CACX,yFAAyF;YACvF,qCAAqC,CACxC,CAAA;QACD,OAAM;IACR,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,oBAAa,EAAC,SAAkB,EAAE,CAAC,yBAAkB,CAAC,CAAC,CAAA;IAC1E,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAM;IAE/B,MAAM,OAAO,GAAG,MAAM;SACnB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,MAAM,KAAK,GAAG,CAAC,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QACtC,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAClD,KAAK,CAAC,IAAI,CAAC,iBAAiB,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC/C,CAAC;QACD,IAAI,KAAK,CAAC,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,cAAc,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA;QACxD,IAAI,KAAK,CAAC,UAAU;YAAE,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,UAAU,EAAE,CAAC,CAAA;QAChE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAA;IAEb,MAAM,IAAI,KAAK,CACb,uFAAuF;QACrF,IAAI;QACJ,GAAG,OAAO,IAAI;QACd,IAAI;QACJ,kFAAkF;QAClF,yFAAyF;QACzF,0CAA0C,CAC7C,CAAA;AACH,CAAC;AAEM,KAAK,UAAU,YAAY,CAChC,SAAiB,EACjB,UAAyB,EAAE;IAE3B,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,SAAS,CAAC,CAAA;IAErD,IAAI,YAAY,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QAClE,MAAM,IAAI,KAAK,CACb,yCAAyC,SAAS,IAAI;YACpD,uEAAuE,CAC1E,CAAA;IACH,CAAC;IAED,uEAAuE;IACvE,0DAA0D;IAC1D,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3B,uBAAuB,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAC1D,CAAC;IAED,MAAM,QAAQ,GAAa,EAAE,CAAA;IAE7B,iCAAiC;IACjC,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC,IAAI,YAAY,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7F,MAAM,iBAAiB,GAAG,MAAM,IAAA,6BAAsB,EAAC,YAAY,CAAC,SAAS,CAAC,CAAA;QAC9E,QAAQ,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,CAAA;IACrC,CAAC;IAED,0CAA0C;IAC1C,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa;YAClC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,uBAAgB,CAAC;YAC9C,CAAC,CAAC,YAAY,CAAC,SAAS,CAAA;QAC1B,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC3C,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,CAAC,CAAC;SACd,CAAC,CACH,CAAA;QACD,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAA;IAChC,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,4BAA4B,SAAS,GAAG,CAAC,CAAA;IAC3D,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AAC/B,CAAC;AAEM,KAAK,UAAU,qBAAqB,CAAC,SAAiB;IAC3D,OAAO,YAAY,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;AACzD,CAAC"}
|