@intentius/chant-lexicon-k8s 0.42.1 → 0.44.2
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/api/classify.d.ts.map +1 -1
- package/dist/api/connect.d.ts.map +1 -1
- package/dist/codegen/docs.d.ts.map +1 -1
- package/dist/components/argo-app.d.ts +104 -0
- package/dist/components/argo-app.d.ts.map +1 -0
- package/dist/components/builders.d.ts +8 -0
- package/dist/components/builders.d.ts.map +1 -1
- package/dist/components/capability-plugin.d.ts +1 -0
- package/dist/components/capability-plugin.d.ts.map +1 -1
- package/dist/components/flux-reconcile.d.ts +84 -0
- package/dist/components/flux-reconcile.d.ts.map +1 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/kustomize-apply.d.ts +29 -7
- package/dist/components/kustomize-apply.d.ts.map +1 -1
- package/dist/composites/flux-app.d.ts +132 -0
- package/dist/composites/flux-app.d.ts.map +1 -0
- package/dist/composites/index.d.ts +2 -0
- package/dist/composites/index.d.ts.map +1 -1
- package/dist/config-schema.d.ts +3 -0
- package/dist/config-schema.d.ts.map +1 -1
- package/dist/config.d.ts +32 -5
- package/dist/config.d.ts.map +1 -1
- package/dist/crd/crd-sources.d.ts.map +1 -1
- package/dist/crd/parser.d.ts.map +1 -1
- package/dist/describe-resources.d.ts +10 -8
- package/dist/describe-resources.d.ts.map +1 -1
- package/dist/generated/index.d.ts +15 -4
- package/dist/generated/index.d.ts.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/integrity.json +10 -6
- package/dist/kube/connect.d.ts +5 -4
- package/dist/kube/connect.d.ts.map +1 -1
- package/dist/kube/get.d.ts +4 -4
- package/dist/kustomize/render.d.ts +15 -0
- package/dist/kustomize/render.d.ts.map +1 -0
- package/dist/kustomize/rendered-entity.d.ts +39 -0
- package/dist/kustomize/rendered-entity.d.ts.map +1 -0
- package/dist/kustomize/root.d.ts +19 -0
- package/dist/kustomize/root.d.ts.map +1 -0
- package/dist/lint/audit-catalog.d.ts.map +1 -1
- package/dist/lint/post-synth/argo-helpers.d.ts +2 -0
- package/dist/lint/post-synth/argo-helpers.d.ts.map +1 -1
- package/dist/lint/post-synth/flux002.d.ts +14 -0
- package/dist/lint/post-synth/flux002.d.ts.map +1 -0
- package/dist/lint/post-synth/flux003.d.ts +17 -0
- package/dist/lint/post-synth/flux003.d.ts.map +1 -0
- package/dist/lint/post-synth/index.d.ts.map +1 -1
- package/dist/lint/rules/flux-source-ref-pin.d.ts +16 -0
- package/dist/lint/rules/flux-source-ref-pin.d.ts.map +1 -0
- package/dist/manifest.json +1 -1
- package/dist/meta.json +92 -16
- package/dist/okf/index.md +7 -1
- package/dist/okf/rules/FLUX001.md +17 -0
- package/dist/okf/rules/FLUX002.md +19 -0
- package/dist/okf/rules/FLUX003.md +15 -0
- package/dist/okf/types/Addon.md +14 -0
- package/dist/okf/types/Bucket.md +4 -0
- package/dist/okf/types/{HelmChart.md → FluxHelmChart.md} +2 -2
- package/dist/okf/types/GitRepository.md +5 -0
- package/dist/okf/types/HelmChartConfig.md +14 -0
- package/dist/okf/types/K3sHelmChart.md +14 -0
- package/dist/okf/types/Kustomization.md +6 -0
- package/dist/okf/types/Namespace.md +1 -0
- package/dist/okf/types/Node.md +1 -0
- package/dist/okf/types/OCIRepository.md +4 -0
- package/dist/plugin.d.ts.map +1 -1
- package/dist/rules/argo-helpers.ts +2 -0
- package/dist/rules/flux-source-ref-pin.ts +52 -0
- package/dist/rules/flux002.ts +77 -0
- package/dist/rules/flux003.ts +75 -0
- package/dist/serializer.d.ts.map +1 -1
- package/dist/skills/chant-k8s-flux.md +162 -0
- package/dist/types/index.d.ts +41 -3
- package/dist/validate.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/api/classify.test.ts +37 -0
- package/src/api/classify.ts +11 -1
- package/src/api/connect.ts +10 -0
- package/src/codegen/docs.ts +11 -0
- package/src/components/argo-app.test.ts +137 -0
- package/src/components/argo-app.ts +163 -0
- package/src/components/builders.ts +8 -0
- package/src/components/capability-plugin.ts +11 -1
- package/src/components/flux-reconcile.test.ts +145 -0
- package/src/components/flux-reconcile.ts +159 -0
- package/src/components/index.ts +13 -0
- package/src/components/kustomize-apply.ts +12 -41
- package/src/composites/composites.test.ts +122 -0
- package/src/composites/flux-app.ts +274 -0
- package/src/composites/index.ts +9 -0
- package/src/config-augmentation.test.ts +72 -0
- package/src/config-schema.ts +5 -0
- package/src/config.ts +33 -5
- package/src/crd/crd-sources.ts +37 -0
- package/src/crd/parser.ts +6 -0
- package/src/describe-resources.test.ts +290 -6
- package/src/describe-resources.ts +235 -127
- package/src/generated/index.d.ts +41 -3
- package/src/generated/index.ts +15 -4
- package/src/generated/lexicon-k8s.json +92 -16
- package/src/generated/operations.json +48 -0
- package/src/index.ts +4 -0
- package/src/kube/connect.ts +5 -4
- package/src/kube/get.ts +4 -4
- package/src/kustomize/render.ts +84 -0
- package/src/kustomize/rendered-entity.ts +72 -0
- package/src/kustomize/root.test.ts +268 -0
- package/src/kustomize/root.ts +109 -0
- package/src/lint/audit-catalog.ts +2 -0
- package/src/lint/post-synth/argo-helpers.ts +2 -0
- package/src/lint/post-synth/flux002.ts +77 -0
- package/src/lint/post-synth/flux003.ts +75 -0
- package/src/lint/post-synth/index.ts +4 -0
- package/src/lint/post-synth/post-synth.test.ts +132 -0
- package/src/lint/rules/flux-source-ref-pin.ts +52 -0
- package/src/lint/rules/rules.test.ts +51 -0
- package/src/plugin.test.ts +2 -0
- package/src/plugin.ts +47 -0
- package/src/serializer.ts +34 -4
- package/src/skills/chant-k8s-flux.md +162 -0
- package/src/testdata/kustomize-root/base/deployment.yaml +17 -0
- package/src/testdata/kustomize-root/base/kustomization.yaml +3 -0
- package/src/testdata/kustomize-root/base/service.yaml +9 -0
- package/src/testdata/kustomize-root/overlays/prod/kustomization.yaml +6 -0
- package/src/validate.ts +4 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classify.d.ts","sourceRoot":"","sources":["../../src/api/classify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,+EAA+E;AAC/E,MAAM,MAAM,cAAc;AACxB,kFAAkF;AAChF;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE;AACpB,4DAA4D;GAC1D;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"classify.d.ts","sourceRoot":"","sources":["../../src/api/classify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,+EAA+E;AAC/E,MAAM,MAAM,cAAc;AACxB,kFAAkF;AAChF;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE;AACpB,4DAA4D;GAC1D;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAyBrE,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,CAwC/D;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAEvD;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAG3D;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAK5D;AAED,2DAA2D;AAC3D,eAAO,MAAM,qBAAqB,QAEuE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../src/api/connect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAwB,KAAK,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACpG,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAG/E;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;AAEjF,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iFAAiF;IACjF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,qBAAqB,CAAC;CAC/B;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../src/api/connect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAwB,KAAK,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACpG,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAG/E;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;AAEjF,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iFAAiF;IACjF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,qBAAqB,CAAC;CAC/B;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,YA2CjC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/codegen/docs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAqHH;;GAEG;AACH,wBAAsB,YAAY,CAAC,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/codegen/docs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAqHH;;GAEG;AACH,wBAAsB,YAAY,CAAC,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4iC9E"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `argo-app` — the Argo CD deploy leaf for the component model (#1549
|
|
3
|
+
* piece 2).
|
|
4
|
+
*
|
|
5
|
+
* GitOps inverts the flow kubectl-apply assumes: the controller deploys,
|
|
6
|
+
* chant declares the controller's objects and observes convergence. This
|
|
7
|
+
* capability is that inversion as one step — apply the declared
|
|
8
|
+
* `Application` CR(s) through the SAME server-side apply `kubectl-apply`
|
|
9
|
+
* uses (ownership stamping, marker-scoped prune, stack labels all
|
|
10
|
+
* identical), then block until every applied Application reports
|
|
11
|
+
* `health=Healthy && sync=Synced` via the existing `waitForArgoSync`
|
|
12
|
+
* activity (#957).
|
|
13
|
+
*
|
|
14
|
+
* The deploy unit is the CR itself under its stack label — `stack` doubles
|
|
15
|
+
* as ownership identity and deploy unit exactly as kubectl-apply's, so
|
|
16
|
+
* `chant components status --live` observes the Application through the
|
|
17
|
+
* same label sweep with zero new status walks (core
|
|
18
|
+
* `components/deploy-units.ts`).
|
|
19
|
+
*
|
|
20
|
+
* The #1074 boundary applies: nothing exported from the lexicon entry point
|
|
21
|
+
* may statically import the API-client chain, so both the applier and the
|
|
22
|
+
* wait activity are reached by dynamic import inside `run()` and their
|
|
23
|
+
* argument shapes are structural mirrors, checked against the real ones at
|
|
24
|
+
* the call site.
|
|
25
|
+
*/
|
|
26
|
+
import type { Capability } from "@intentius/chant/components/capability";
|
|
27
|
+
/** Structural mirrors of the activity modules' shapes (see the module doc). */
|
|
28
|
+
interface AppliedRef {
|
|
29
|
+
apiVersion: string;
|
|
30
|
+
kind: string;
|
|
31
|
+
name: string;
|
|
32
|
+
namespace?: string;
|
|
33
|
+
}
|
|
34
|
+
interface ApplyOutcome {
|
|
35
|
+
fieldManager: string;
|
|
36
|
+
applied: AppliedRef[];
|
|
37
|
+
pruned: AppliedRef[];
|
|
38
|
+
}
|
|
39
|
+
interface ApplierArgs {
|
|
40
|
+
manifest: string;
|
|
41
|
+
environment?: string;
|
|
42
|
+
stack?: string;
|
|
43
|
+
context?: string;
|
|
44
|
+
deleteMode?: "never" | "owned-only" | "gated";
|
|
45
|
+
}
|
|
46
|
+
type Applier = (args: ApplierArgs) => Promise<ApplyOutcome>;
|
|
47
|
+
interface ArgoWaiterArgs {
|
|
48
|
+
appName: string;
|
|
49
|
+
namespace?: string;
|
|
50
|
+
server?: string;
|
|
51
|
+
authToken?: string;
|
|
52
|
+
insecure?: boolean;
|
|
53
|
+
context?: string;
|
|
54
|
+
intervalMs?: number;
|
|
55
|
+
}
|
|
56
|
+
type ArgoWaiter = (args: ArgoWaiterArgs) => Promise<{
|
|
57
|
+
health: string;
|
|
58
|
+
sync: string;
|
|
59
|
+
}>;
|
|
60
|
+
/** One Application's final status, after the wait. */
|
|
61
|
+
export interface ArgoAppSynced {
|
|
62
|
+
name: string;
|
|
63
|
+
namespace: string;
|
|
64
|
+
health: string;
|
|
65
|
+
sync: string;
|
|
66
|
+
}
|
|
67
|
+
export interface ArgoAppOutcome extends ApplyOutcome {
|
|
68
|
+
/** Every applied Application, Healthy+Synced, in wait order. */
|
|
69
|
+
synced: ArgoAppSynced[];
|
|
70
|
+
}
|
|
71
|
+
export interface ArgoAppInput {
|
|
72
|
+
/** Path to the Application CR manifest(s) — a file, or a directory of them. */
|
|
73
|
+
manifest: string;
|
|
74
|
+
/**
|
|
75
|
+
* The deploy unit / ownership stack — same double duty as kubectl-apply's.
|
|
76
|
+
* Omitted derives from the project's `ownership.stack`, but then the unit
|
|
77
|
+
* is invisible to `components status --live`. Name it.
|
|
78
|
+
*/
|
|
79
|
+
stack?: string;
|
|
80
|
+
/** kubectl context. Omitted resolves `k8s.profiles.<ctx.env>.context`. */
|
|
81
|
+
context?: string;
|
|
82
|
+
/** Same delete vocabulary as kubectl-apply; default `never`. */
|
|
83
|
+
delete?: "never" | "owned-only";
|
|
84
|
+
/**
|
|
85
|
+
* Argo CD API base URL. When set, sync status is read from the REST API
|
|
86
|
+
* instead of the cluster — pass `authToken` with it (the `waitForArgoSync`
|
|
87
|
+
* surface, #957).
|
|
88
|
+
*/
|
|
89
|
+
server?: string;
|
|
90
|
+
/** Bearer token for the Argo CD REST API (used with `server`). */
|
|
91
|
+
authToken?: string;
|
|
92
|
+
/** Skip TLS verification for the REST API (default false). */
|
|
93
|
+
insecure?: boolean;
|
|
94
|
+
/** Poll interval in ms (default 15000). */
|
|
95
|
+
intervalMs?: number;
|
|
96
|
+
}
|
|
97
|
+
/** Factory with injectable applier + waiter, so tests assert the exact
|
|
98
|
+
* delegation without a cluster — the kubectl-apply seam. Defaults resolve by
|
|
99
|
+
* dynamic import on first run, keeping the API-client chain off the build
|
|
100
|
+
* path (#1074). */
|
|
101
|
+
export declare function createArgoAppCapability(apply?: Applier, wait?: ArgoWaiter): Capability<ArgoAppInput, ArgoAppOutcome>;
|
|
102
|
+
export declare const argoAppCapability: Capability<ArgoAppInput, ArgoAppOutcome>;
|
|
103
|
+
export {};
|
|
104
|
+
//# sourceMappingURL=argo-app.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"argo-app.d.ts","sourceRoot":"","sources":["../../src/components/argo-app.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,wCAAwC,CAAC;AAExF,+EAA+E;AAC/E,UAAU,UAAU;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,YAAY;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB;AAED,UAAU,WAAW;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,OAAO,CAAC;CAC/C;AAED,KAAK,OAAO,GAAG,CAAC,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;AAE5D,UAAU,cAAc;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,KAAK,UAAU,GAAG,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEtF,sDAAsD;AACtD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,gEAAgE;IAChE,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,+EAA+E;IAC/E,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,MAAM,CAAC,EAAE,OAAO,GAAG,YAAY,CAAC;IAChC;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAOD;;;mBAGmB;AACnB,wBAAgB,uBAAuB,CACrC,KAAK,CAAC,EAAE,OAAO,EACf,IAAI,CAAC,EAAE,UAAU,GAChB,UAAU,CAAC,YAAY,EAAE,cAAc,CAAC,CA6C1C;AAED,eAAO,MAAM,iBAAiB,0CAA4B,CAAC"}
|
|
@@ -12,10 +12,18 @@
|
|
|
12
12
|
*/
|
|
13
13
|
import type { KubectlApplyInput } from "./kubectl-apply.js";
|
|
14
14
|
import type { KustomizeApplyInput } from "./kustomize-apply.js";
|
|
15
|
+
import type { ArgoAppInput } from "./argo-app.js";
|
|
16
|
+
import type { FluxReconcileInput } from "./flux-reconcile.js";
|
|
15
17
|
export declare const kubectlApply: (input: KubectlApplyInput & {
|
|
16
18
|
noRollback?: string;
|
|
17
19
|
}) => import("@intentius/chant/components").Step;
|
|
18
20
|
export declare const kustomizeApply: (input: KustomizeApplyInput & {
|
|
19
21
|
noRollback?: string;
|
|
20
22
|
}) => import("@intentius/chant/components").Step;
|
|
23
|
+
export declare const argoApp: (input: ArgoAppInput & {
|
|
24
|
+
noRollback?: string;
|
|
25
|
+
}) => import("@intentius/chant/components").Step;
|
|
26
|
+
export declare const fluxReconcile: (input: FluxReconcileInput & {
|
|
27
|
+
noRollback?: string;
|
|
28
|
+
}) => import("@intentius/chant/components").Step;
|
|
21
29
|
//# sourceMappingURL=builders.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../../src/components/builders.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../../src/components/builders.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,eAAO,MAAM,YAAY;iBAA2C,MAAM;gDAAoB,CAAC;AAI/F,eAAO,MAAM,cAAc;iBAA6C,MAAM;gDAAsB,CAAC;AAKrG,eAAO,MAAM,OAAO;iBAAsC,MAAM;gDAAe,CAAC;AAChF,eAAO,MAAM,aAAa;iBAA4C,MAAM;gDAAqB,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type CapabilityPlugin } from "@intentius/chant/components/capability-plugin";
|
|
2
2
|
export declare const K8S_VERB_FAMILIES: {
|
|
3
3
|
readonly apply: readonly ["kubectl-apply", "kustomize-apply"];
|
|
4
|
+
readonly gitops: readonly ["argo-app", "flux-reconcile"];
|
|
4
5
|
};
|
|
5
6
|
export declare const k8sCapabilityPlugin: CapabilityPlugin;
|
|
6
7
|
//# sourceMappingURL=capability-plugin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability-plugin.d.ts","sourceRoot":"","sources":["../../src/components/capability-plugin.ts"],"names":[],"mappings":"AAWA,OAAO,EAAqB,KAAK,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;
|
|
1
|
+
{"version":3,"file":"capability-plugin.d.ts","sourceRoot":"","sources":["../../src/components/capability-plugin.ts"],"names":[],"mappings":"AAWA,OAAO,EAAqB,KAAK,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AAMzG,eAAO,MAAM,iBAAiB;;;CAKpB,CAAC;AAEX,eAAO,MAAM,mBAAmB,EAAE,gBAgBjC,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `flux-reconcile` — the Flux deploy leaf for the component model (#1549
|
|
3
|
+
* piece 2).
|
|
4
|
+
*
|
|
5
|
+
* The sibling of `argo-app` for the Flux toolkit: apply the declared Flux
|
|
6
|
+
* CRs (`GitRepository`, `Kustomization`, `HelmRelease`, `OCIRepository`, …)
|
|
7
|
+
* through the SAME server-side apply `kubectl-apply` uses — ownership
|
|
8
|
+
* stamping, marker-scoped prune, stack labels all identical — then block
|
|
9
|
+
* until every applied Flux CR reports `Ready=True` via the generic
|
|
10
|
+
* `waitForReady`. The readiness registry's Flux entries (#1554,
|
|
11
|
+
* `ConditionReasonMatch`) make that wait honest: a wedge reason like
|
|
12
|
+
* `BuildFailed` or `UpgradeFailed` fails fast instead of polling out the
|
|
13
|
+
* timeout.
|
|
14
|
+
*
|
|
15
|
+
* Sources are waited first (`source.toolkit.fluxcd.io` before the rest,
|
|
16
|
+
* applied order within each half): a Kustomization cannot become Ready
|
|
17
|
+
* before its GitRepository has an artifact, so gating on the source first
|
|
18
|
+
* surfaces a wedged clone as the source's error, not as a reconciler
|
|
19
|
+
* timeout downstream of it.
|
|
20
|
+
*
|
|
21
|
+
* The deploy unit is the CR itself under its stack label — one name, both
|
|
22
|
+
* jobs, exactly as kubectl-apply (core `components/deploy-units.ts`).
|
|
23
|
+
*
|
|
24
|
+
* The #1074 boundary applies: the applier and the wait activity are reached
|
|
25
|
+
* by dynamic import inside `run()`; their argument shapes are structural
|
|
26
|
+
* mirrors, checked against the real ones at the call site.
|
|
27
|
+
*/
|
|
28
|
+
import type { Capability } from "@intentius/chant/components/capability";
|
|
29
|
+
/** Structural mirrors of the activity modules' shapes (see the module doc). */
|
|
30
|
+
interface AppliedRef {
|
|
31
|
+
apiVersion: string;
|
|
32
|
+
kind: string;
|
|
33
|
+
name: string;
|
|
34
|
+
namespace?: string;
|
|
35
|
+
}
|
|
36
|
+
interface ApplyOutcome {
|
|
37
|
+
fieldManager: string;
|
|
38
|
+
applied: AppliedRef[];
|
|
39
|
+
pruned: AppliedRef[];
|
|
40
|
+
}
|
|
41
|
+
interface ApplierArgs {
|
|
42
|
+
manifest: string;
|
|
43
|
+
environment?: string;
|
|
44
|
+
stack?: string;
|
|
45
|
+
context?: string;
|
|
46
|
+
deleteMode?: "never" | "owned-only" | "gated";
|
|
47
|
+
}
|
|
48
|
+
type Applier = (args: ApplierArgs) => Promise<ApplyOutcome>;
|
|
49
|
+
interface ReadyWaiterArgs {
|
|
50
|
+
kind: string;
|
|
51
|
+
name: string;
|
|
52
|
+
namespace?: string;
|
|
53
|
+
group?: string;
|
|
54
|
+
environment?: string;
|
|
55
|
+
context?: string;
|
|
56
|
+
intervalMs?: number;
|
|
57
|
+
}
|
|
58
|
+
type ReadyWaiter = (args: ReadyWaiterArgs) => Promise<Record<string, unknown>>;
|
|
59
|
+
export interface FluxReconcileOutcome extends ApplyOutcome {
|
|
60
|
+
/** The Flux CRs that reached Ready, in wait order (sources first). */
|
|
61
|
+
ready: AppliedRef[];
|
|
62
|
+
}
|
|
63
|
+
export interface FluxReconcileInput {
|
|
64
|
+
/** Path to the Flux CR manifest(s) — a file, or a directory of them. */
|
|
65
|
+
manifest: string;
|
|
66
|
+
/**
|
|
67
|
+
* The deploy unit / ownership stack — same double duty as kubectl-apply's.
|
|
68
|
+
* Omitted derives from the project's `ownership.stack`, but then the unit
|
|
69
|
+
* is invisible to `components status --live`. Name it.
|
|
70
|
+
*/
|
|
71
|
+
stack?: string;
|
|
72
|
+
/** kubectl context. Omitted resolves `k8s.profiles.<ctx.env>.context`. */
|
|
73
|
+
context?: string;
|
|
74
|
+
/** Same delete vocabulary as kubectl-apply; default `never`. */
|
|
75
|
+
delete?: "never" | "owned-only";
|
|
76
|
+
/** Poll interval in ms (default 15000). */
|
|
77
|
+
intervalMs?: number;
|
|
78
|
+
}
|
|
79
|
+
/** Factory with injectable applier + waiter — the argo-app seam. Defaults
|
|
80
|
+
* resolve by dynamic import on first run (#1074). */
|
|
81
|
+
export declare function createFluxReconcileCapability(apply?: Applier, wait?: ReadyWaiter): Capability<FluxReconcileInput, FluxReconcileOutcome>;
|
|
82
|
+
export declare const fluxReconcileCapability: Capability<FluxReconcileInput, FluxReconcileOutcome>;
|
|
83
|
+
export {};
|
|
84
|
+
//# sourceMappingURL=flux-reconcile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flux-reconcile.d.ts","sourceRoot":"","sources":["../../src/components/flux-reconcile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,wCAAwC,CAAC;AAExF,+EAA+E;AAC/E,UAAU,UAAU;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,YAAY;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB;AAED,UAAU,WAAW;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,OAAO,CAAC;CAC/C;AAED,KAAK,OAAO,GAAG,CAAC,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;AAE5D,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,KAAK,WAAW,GAAG,CAAC,IAAI,EAAE,eAAe,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAE/E,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACxD,sEAAsE;IACtE,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,MAAM,CAAC,EAAE,OAAO,GAAG,YAAY,CAAC;IAChC,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAoBD;qDACqD;AACrD,wBAAgB,6BAA6B,CAC3C,KAAK,CAAC,EAAE,OAAO,EACf,IAAI,CAAC,EAAE,WAAW,GACjB,UAAU,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CA8CtD;AAED,eAAO,MAAM,uBAAuB,sDAAkC,CAAC"}
|
|
@@ -14,4 +14,6 @@ export { k8sCapabilityPlugin, K8S_VERB_FAMILIES } from "./capability-plugin.js";
|
|
|
14
14
|
export * from "./builders.js";
|
|
15
15
|
export { kubectlApplyCapability, createKubectlApplyCapability, type KubectlApplyInput, type KubectlApplyOutcome, } from "./kubectl-apply.js";
|
|
16
16
|
export { kustomizeApplyCapability, createKustomizeApplyCapability, renderCommand, type KustomizeApplyInput, type KustomizeApplyOutcome, } from "./kustomize-apply.js";
|
|
17
|
+
export { argoAppCapability, createArgoAppCapability, type ArgoAppInput, type ArgoAppOutcome, type ArgoAppSynced, } from "./argo-app.js";
|
|
18
|
+
export { fluxReconcileCapability, createFluxReconcileCapability, type FluxReconcileInput, type FluxReconcileOutcome, } from "./flux-reconcile.js";
|
|
17
19
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,cAAc,YAAY,CAAC;AAC3B,OAAO,EACL,sBAAsB,EACtB,4BAA4B,EAC5B,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,GACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,wBAAwB,EACxB,8BAA8B,EAC9B,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,GAC3B,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,cAAc,YAAY,CAAC;AAC3B,OAAO,EACL,sBAAsB,EACtB,4BAA4B,EAC5B,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,GACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,wBAAwB,EACxB,8BAA8B,EAC9B,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC7B,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,GAC1B,MAAM,kBAAkB,CAAC"}
|
|
@@ -1,8 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `kustomize-apply` — the kustomize leaf for the component model (#1548).
|
|
3
|
+
*
|
|
4
|
+
* Kustomize is a RENDERER, not a substrate: `kustomize build <dir>` emits
|
|
5
|
+
* exactly the Kubernetes manifests the existing apply pipeline was built for.
|
|
6
|
+
* So this capability is a render step in front of `kubectl-apply`'s machinery
|
|
7
|
+
* — the rendered documents go straight to the same server-side applier
|
|
8
|
+
* (inline, no temp file), which stamps the deploy-unit stack (#1539), prunes
|
|
9
|
+
* marker-scoped, retakes chant's own field conflicts (#1541/#1542), and is
|
|
10
|
+
* observed by the same `describeStackStatus` label sweep. An estate that
|
|
11
|
+
* keeps its overlay tree gets components-status honesty without adopting a
|
|
12
|
+
* single typed manifest.
|
|
13
|
+
*
|
|
14
|
+
* `stack` doubles as the ownership identity and the deploy unit, exactly as
|
|
15
|
+
* `kubectl-apply` — one name, both jobs.
|
|
16
|
+
*
|
|
17
|
+
* Renderer resolution lives in `../kustomize/render.ts` (shared with the
|
|
18
|
+
* build-root path, #1548 piece 3): `kustomize build`, falling back to
|
|
19
|
+
* `kubectl kustomize` (the same renderer vendored into kubectl) when the
|
|
20
|
+
* standalone binary is absent. Both run through an injectable runner so tests
|
|
21
|
+
* assert the exact command without either binary installed.
|
|
22
|
+
*
|
|
23
|
+
* The #1074 boundary applies as it does to kubectl-apply: nothing exported
|
|
24
|
+
* from the lexicon entry point may statically import the API-client chain, so
|
|
25
|
+
* the applier is reached by dynamic import inside `run()` and its argument
|
|
26
|
+
* shape is a structural mirror.
|
|
27
|
+
*/
|
|
1
28
|
import type { Capability } from "@intentius/chant/components/capability";
|
|
2
|
-
|
|
3
|
-
export type KustomizeRunner
|
|
4
|
-
stdout: string;
|
|
5
|
-
}>;
|
|
29
|
+
import { renderCommand, type KustomizeRunner } from "../kustomize/render.js";
|
|
30
|
+
export { renderCommand, type KustomizeRunner };
|
|
6
31
|
/** Structural mirrors of the activity module's shapes (see the module doc). */
|
|
7
32
|
interface AppliedRef {
|
|
8
33
|
apiVersion: string;
|
|
@@ -38,11 +63,8 @@ export interface KustomizeApplyInput {
|
|
|
38
63
|
/** Same delete vocabulary as kubectl-apply; default `never`. */
|
|
39
64
|
delete?: "never" | "owned-only";
|
|
40
65
|
}
|
|
41
|
-
/** The exact render command, standalone binary first. Pure; exported for tests. */
|
|
42
|
-
export declare function renderCommand(dir: string, tool?: "kustomize" | "kubectl"): string;
|
|
43
66
|
/** Factory with injectable renderer + applier, so tests assert the render
|
|
44
67
|
* command and the exact applier delegation without kustomize or a cluster. */
|
|
45
68
|
export declare function createKustomizeApplyCapability(run?: KustomizeRunner, apply?: Applier): Capability<KustomizeApplyInput, KustomizeApplyOutcome>;
|
|
46
69
|
export declare const kustomizeApplyCapability: Capability<KustomizeApplyInput, KustomizeApplyOutcome>;
|
|
47
|
-
export {};
|
|
48
70
|
//# sourceMappingURL=kustomize-apply.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kustomize-apply.d.ts","sourceRoot":"","sources":["../../src/components/kustomize-apply.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"kustomize-apply.d.ts","sourceRoot":"","sources":["../../src/components/kustomize-apply.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,wCAAwC,CAAC;AACxF,OAAO,EAEL,aAAa,EAEb,KAAK,eAAe,EACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,CAAC;AAE/C,+EAA+E;AAC/E,UAAU,UAAU;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB;AAED,UAAU,WAAW;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,OAAO,CAAC;CAC/C;AAED,KAAK,OAAO,GAAG,CAAC,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAErE,MAAM,WAAW,mBAAmB;IAClC,uFAAuF;IACvF,GAAG,EAAE,MAAM,CAAC;IACZ;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,MAAM,CAAC,EAAE,OAAO,GAAG,YAAY,CAAC;CACjC;AAED;8EAC8E;AAC9E,wBAAgB,8BAA8B,CAC5C,GAAG,GAAE,eAAwC,EAC7C,KAAK,CAAC,EAAE,OAAO,GACd,UAAU,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,CAmBxD;AAED,eAAO,MAAM,wBAAwB,wDAAmC,CAAC"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flux CD composites — turn Chant build targets into Flux sources and
|
|
3
|
+
* `Kustomization`s.
|
|
4
|
+
*
|
|
5
|
+
* The k8s lexicon stays runtime-agnostic: it only emits manifests. These
|
|
6
|
+
* composites are the opt-in bridge to Flux's reconciliation layer, the
|
|
7
|
+
* `ArgoAppFor` analogue for the source-controller/kustomize-controller pair.
|
|
8
|
+
* Authoring a `GitRepository` + `Kustomization` by hand is ~40 lines of YAML
|
|
9
|
+
* per app; `FluxAppFor` collapses the pair to one call with defaults taken
|
|
10
|
+
* from real Flux estates.
|
|
11
|
+
*
|
|
12
|
+
* - FluxGitSource(name, opts) → a single K8s::Flux::GitRepository
|
|
13
|
+
* - FluxAppFor(target, opts) → a single K8s::Flux::Kustomization
|
|
14
|
+
*
|
|
15
|
+
* The two are split deliberately: the common estate shape is one source
|
|
16
|
+
* shared by many Kustomizations. A `GitRepository` per app is the mistake
|
|
17
|
+
* this split makes hard — declare the source once, hand its result to every
|
|
18
|
+
* `FluxAppFor` that reconciles a path out of it.
|
|
19
|
+
*/
|
|
20
|
+
import { GitRepository as GitRepositoryResource, Kustomization as KustomizationResource } from "../generated/index.js";
|
|
21
|
+
/** Source kinds a Kustomization can reconcile from. */
|
|
22
|
+
export type FluxSourceKind = "GitRepository" | "OCIRepository" | "Bucket";
|
|
23
|
+
/** An explicit reference to a source declared elsewhere. */
|
|
24
|
+
export interface FluxSourceRef {
|
|
25
|
+
/** Source kind (default "GitRepository"). */
|
|
26
|
+
kind?: FluxSourceKind;
|
|
27
|
+
/** Name of the source object. */
|
|
28
|
+
name: string;
|
|
29
|
+
/** Namespace of the source, when it differs from the Kustomization's. */
|
|
30
|
+
namespace?: string;
|
|
31
|
+
}
|
|
32
|
+
export interface FluxGitSourceOptions {
|
|
33
|
+
/** Git repository URL the source-controller fetches. */
|
|
34
|
+
url: string;
|
|
35
|
+
/** Branch to track (default "main"). Ignored when `tag` is set. */
|
|
36
|
+
branch?: string;
|
|
37
|
+
/** Tag to pin instead of a branch. */
|
|
38
|
+
tag?: string;
|
|
39
|
+
/** Fetch interval (default "5m"). */
|
|
40
|
+
interval?: string;
|
|
41
|
+
/** Name of the Secret holding git credentials, for private repos. */
|
|
42
|
+
secretRef?: string;
|
|
43
|
+
/** Namespace the GitRepository lives in (default "flux-system"). */
|
|
44
|
+
fluxNamespace?: string;
|
|
45
|
+
/** Extra labels applied to the GitRepository. */
|
|
46
|
+
labels?: Record<string, string>;
|
|
47
|
+
defaults?: {
|
|
48
|
+
gitRepository?: Partial<Record<string, unknown>>;
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
export type FluxGitSourceResult = {
|
|
52
|
+
gitRepository: InstanceType<typeof GitRepositoryResource>;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Declare a Flux `GitRepository` source in one call.
|
|
56
|
+
*
|
|
57
|
+
* Declare it once and share it: every `FluxAppFor` that reconciles a path out
|
|
58
|
+
* of the same repo should take this result as its `source`.
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```ts
|
|
62
|
+
* import { FluxGitSource } from "@intentius/chant-lexicon-k8s";
|
|
63
|
+
*
|
|
64
|
+
* export const source = FluxGitSource("home-chant", {
|
|
65
|
+
* url: "https://github.com/jhgaylor/home-chant",
|
|
66
|
+
* branch: "main",
|
|
67
|
+
* });
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
export declare function FluxGitSource(name: string, options: FluxGitSourceOptions): FluxGitSourceResult;
|
|
71
|
+
export interface FluxAppForOptions {
|
|
72
|
+
/**
|
|
73
|
+
* The source to reconcile from — a `FluxGitSource` result, the name of an
|
|
74
|
+
* existing `GitRepository` (e.g. the bootstrap-created "flux-system"), or an
|
|
75
|
+
* explicit `{ kind, name }` reference for OCIRepository/Bucket sources.
|
|
76
|
+
*/
|
|
77
|
+
source: FluxGitSourceResult | FluxSourceRef | string;
|
|
78
|
+
/** Path within the source holding the manifests (e.g. "./apps/api/k8s"). */
|
|
79
|
+
path: string;
|
|
80
|
+
/** Namespace the reconciled resources land in (sets spec.targetNamespace). */
|
|
81
|
+
targetNamespace?: string;
|
|
82
|
+
/** Reconcile interval (default "10m"). */
|
|
83
|
+
interval?: string;
|
|
84
|
+
/** Delete resources that disappear from the source (default true). */
|
|
85
|
+
prune?: boolean;
|
|
86
|
+
/** Wait for reconciled resources to become ready (default true). */
|
|
87
|
+
wait?: boolean;
|
|
88
|
+
/**
|
|
89
|
+
* Names of Kustomizations that must be ready first, as a plain name list
|
|
90
|
+
* (rendered to spec.dependsOn). Validated against the build by FLUX003.
|
|
91
|
+
*/
|
|
92
|
+
dependsOn?: string[];
|
|
93
|
+
/** Timeout for health checks and apply operations. */
|
|
94
|
+
timeout?: string;
|
|
95
|
+
/** Pause reconciliation without deleting anything. */
|
|
96
|
+
suspend?: boolean;
|
|
97
|
+
/** ServiceAccount the kustomize-controller impersonates for this app. */
|
|
98
|
+
serviceAccountName?: string;
|
|
99
|
+
/** Namespace the Kustomization object itself lives in (default "flux-system"). */
|
|
100
|
+
fluxNamespace?: string;
|
|
101
|
+
/** Extra labels applied to the Kustomization. */
|
|
102
|
+
labels?: Record<string, string>;
|
|
103
|
+
defaults?: {
|
|
104
|
+
kustomization?: Partial<Record<string, unknown>>;
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
export type FluxAppForResult = {
|
|
108
|
+
kustomization: InstanceType<typeof KustomizationResource>;
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* Reconcile a Chant build target with Flux in one call — the `Kustomization`
|
|
112
|
+
* half of the GitRepository + Kustomization pair. The source is passed in,
|
|
113
|
+
* not created here, so many apps share one repo declaration.
|
|
114
|
+
*
|
|
115
|
+
* @example
|
|
116
|
+
* ```ts
|
|
117
|
+
* import { FluxGitSource, FluxAppFor } from "@intentius/chant-lexicon-k8s";
|
|
118
|
+
*
|
|
119
|
+
* export const source = FluxGitSource("home-chant", {
|
|
120
|
+
* url: "https://github.com/jhgaylor/home-chant",
|
|
121
|
+
* });
|
|
122
|
+
*
|
|
123
|
+
* export const hello = FluxAppFor("hello-chant", {
|
|
124
|
+
* source,
|
|
125
|
+
* path: "./apps/hello-chant/k8s",
|
|
126
|
+
* targetNamespace: "default",
|
|
127
|
+
* dependsOn: ["cert-manager", "traefik"],
|
|
128
|
+
* });
|
|
129
|
+
* ```
|
|
130
|
+
*/
|
|
131
|
+
export declare function FluxAppFor(target: string, options: FluxAppForOptions): FluxAppForResult;
|
|
132
|
+
//# sourceMappingURL=flux-app.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flux-app.d.ts","sourceRoot":"","sources":["../../src/composites/flux-app.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EACL,aAAa,IAAI,qBAAqB,EACtC,aAAa,IAAI,qBAAqB,EACvC,MAAM,cAAc,CAAC;AAOtB,uDAAuD;AACvD,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG,eAAe,GAAG,QAAQ,CAAC;AAE1E,4DAA4D;AAC5D,MAAM,WAAW,aAAa;IAC5B,6CAA6C;IAC7C,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,MAAM,WAAW,oBAAoB;IACnC,wDAAwD;IACxD,GAAG,EAAE,MAAM,CAAC;IACZ,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;KAAE,CAAC;CACjE;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,aAAa,EAAE,YAAY,CAAC,OAAO,qBAAqB,CAAC,CAAC;CAC3D,CAAA;AAwCD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,GAAG,mBAAmB,CAE9F;AAID,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,MAAM,EAAE,mBAAmB,GAAG,aAAa,GAAG,MAAM,CAAC;IACrD,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,oEAAoE;IACpE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kFAAkF;IAClF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;KAAE,CAAC;CACjE;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,EAAE,YAAY,CAAC,OAAO,qBAAqB,CAAC,CAAC;CAC3D,CAAA;AAqFD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,gBAAgB,CAEvF"}
|
|
@@ -83,4 +83,6 @@ export { RayService } from "./ray-service.js";
|
|
|
83
83
|
export type { RayServiceProps, RayServiceResult } from "./ray-service.js";
|
|
84
84
|
export { ArgoAppFor, ArgoAppSetForRegions, registerArgoCluster } from "./argo-app.js";
|
|
85
85
|
export type { ArgoDestination, ArgoSyncPolicy, ArgoAppForOptions, ArgoAppForResult, ArgoRegionTarget, ArgoAppSetForRegionsOptions, ArgoAppSetForRegionsResult, RegisterArgoClusterOptions, RegisterArgoClusterResult, } from "./argo-app.js";
|
|
86
|
+
export { FluxGitSource, FluxAppFor } from "./flux-app.js";
|
|
87
|
+
export type { FluxSourceKind, FluxSourceRef, FluxGitSourceOptions, FluxGitSourceResult, FluxAppForOptions, FluxAppForResult, } from "./flux-app.js";
|
|
86
88
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/composites/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/composites/index.ts"],"names":[],"mappings":"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"}
|
package/dist/config-schema.d.ts
CHANGED
|
@@ -22,6 +22,9 @@ export declare const k8sConfigSchema: z.ZodObject<{
|
|
|
22
22
|
context: z.ZodString;
|
|
23
23
|
}, z.core.$strict>>>;
|
|
24
24
|
execCredentialPlugins: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
25
|
+
kustomize: z.ZodOptional<z.ZodObject<{
|
|
26
|
+
roots: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
27
|
+
}, z.core.$strict>>;
|
|
25
28
|
}, z.core.$strict>;
|
|
26
29
|
declare module "@intentius/chant/config" {
|
|
27
30
|
interface ChantConfig {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["../src/config-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,eAAO,MAAM,uBAAuB;;kBAElC,CAAC;AAEH,eAAO,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["../src/config-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,eAAO,MAAM,uBAAuB;;kBAElC,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;kBAQ1B,CAAC;AAEH,OAAO,QAAQ,yBAAyB,CAAC;IACvC,UAAU,WAAW;QACnB,GAAG,CAAC,EAAE,cAAc,CAAC;KACtB;CACF;AAED,iEAAiE;AACjE,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;AAEjE;;;GAGG;AACH,KAAK,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,SAAS,cAAc,GAChF,cAAc,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,GACpD,IAAI,GACJ,KAAK,GACP,KAAK,CAAC;AACV,MAAM,MAAM,0BAA0B,GAAG,sBAAsB,CAAC"}
|
package/dist/config.d.ts
CHANGED
|
@@ -29,13 +29,15 @@
|
|
|
29
29
|
* resolves this via `@intentius/chant/kubectl-context`'s
|
|
30
30
|
* `resolveClusterTarget`:
|
|
31
31
|
*
|
|
32
|
-
* - A declared binding is passed explicitly
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
32
|
+
* - A declared binding is passed explicitly to the typed client on every
|
|
33
|
+
* read and write, regardless of what `kubectl` is ambiently pointed at
|
|
34
|
+
* (#1488 — the binding is a selection, not a check). A bound context the
|
|
35
|
+
* kubeconfig does not have fails with an error naming the context and the
|
|
36
|
+
* `k8s.profiles.<env>.context` binding — never by falling back to ambient.
|
|
36
37
|
* - No binding for the environment keeps today's behavior — the ambient
|
|
37
38
|
* context — but logs a visible note that nothing is pinned, so the
|
|
38
|
-
* fallback is never silent.
|
|
39
|
+
* fallback is never silent. Read failures name the context that was read
|
|
40
|
+
* and the missing binding.
|
|
39
41
|
*
|
|
40
42
|
* `ChantConfig` uses `.passthrough()` in its Zod schema so the `k8s` key is
|
|
41
43
|
* accepted at runtime without core changes, exactly like `temporal.profiles`
|
|
@@ -80,6 +82,31 @@ export interface K8sChantConfig {
|
|
|
80
82
|
* ```
|
|
81
83
|
*/
|
|
82
84
|
execCredentialPlugins?: string[];
|
|
85
|
+
/**
|
|
86
|
+
* Kustomize settings (#1548 piece 3).
|
|
87
|
+
*
|
|
88
|
+
* `roots` names kustomization directories that are build roots: each is
|
|
89
|
+
* rendered (`kustomize build`, `kubectl kustomize` fallback) at build time
|
|
90
|
+
* and the rendered documents join the manifest set — serialized into the
|
|
91
|
+
* build output, ownership-stamped, checked by post-synth rules, and
|
|
92
|
+
* observed by `lifecycle diff --live` like any declared resource. This is
|
|
93
|
+
* how an estate that keeps its overlay tree gets a declared side without
|
|
94
|
+
* converting a single manifest to typed source.
|
|
95
|
+
*
|
|
96
|
+
* Paths are relative to the project root (the directory holding
|
|
97
|
+
* `chant.config.*`), NOT `sourceDir` — the overlay tree usually lives
|
|
98
|
+
* beside the typed source, not inside it.
|
|
99
|
+
*
|
|
100
|
+
* ```ts
|
|
101
|
+
* k8s: {
|
|
102
|
+
* kustomize: { roots: ["overlays/prod"] },
|
|
103
|
+
* } satisfies K8sChantConfig
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
kustomize?: {
|
|
107
|
+
/** Kustomization directories to render into the build. */
|
|
108
|
+
roots?: string[];
|
|
109
|
+
};
|
|
83
110
|
}
|
|
84
111
|
declare module "@intentius/chant/config" {
|
|
85
112
|
interface ChantConfig {
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,8CAA8C;AAC9C,MAAM,WAAW,iBAAiB;IAChC,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC7C;;;;;;;;;;;;;;;OAeG;IACH,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IAEjC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,SAAS,CAAC,EAAE;QACV,0DAA0D;QAC1D,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;CACH;AAED,OAAO,QAAQ,yBAAyB,CAAC;IACvC,UAAU,WAAW;QACnB,GAAG,CAAC,EAAE,cAAc,CAAC;KACtB;CACF;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crd-sources.d.ts","sourceRoot":"","sources":["../../src/crd/crd-sources.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"crd-sources.d.ts","sourceRoot":"","sources":["../../src/crd/crd-sources.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAiTzC,eAAO,MAAM,WAAW,EAAE,SAAS,EAmElC,CAAC"}
|
package/dist/crd/parser.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/crd/parser.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAwD,MAAM,eAAe,CAAC;AAC1G,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/crd/parser.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAwD,MAAM,eAAe,CAAC;AAC1G,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAsEvC;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,EAAE,CAqB1D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,EAAE,CAoD5D"}
|
|
@@ -42,14 +42,16 @@
|
|
|
42
42
|
* exactly the shape `lifecycle diff --live` has always classified `orphan`.
|
|
43
43
|
* On Kubernetes that is wrong: it is expected runtime, not drift, and will be
|
|
44
44
|
* recreated the moment it is deleted. After the declared-entity reads above
|
|
45
|
-
* resolve, this
|
|
46
|
-
* each
|
|
47
|
-
* entities this very call resolved. A chain reaching one of them
|
|
48
|
-
* with `ownerChain: { root: "declared", ... }`; core's
|
|
49
|
-
* reads that as `runtime` instead of `orphan`.
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
45
|
+
* resolve, this sweeps candidate kinds in the namespaces they actually live in
|
|
46
|
+
* and walks each object's `ownerReferences` chain (`./api/owner-chain.ts`)
|
|
47
|
+
* against the entities this very call resolved. A chain reaching one of them
|
|
48
|
+
* is reported with `ownerChain: { root: "declared", ... }`; core's
|
|
49
|
+
* diff/change-set engine reads that as `runtime` instead of `orphan`.
|
|
50
|
+
*
|
|
51
|
+
* Which kinds are candidates is the cluster's own API discovery's answer
|
|
52
|
+
* (#1517): every listable kind it serves, one version per group. The sweep's
|
|
53
|
+
* bound is the namespaces the declared estate touches, never a kind table —
|
|
54
|
+
* see `addRuntimeChildren`.
|
|
53
55
|
*/
|
|
54
56
|
import type { ObservationResult } from "@intentius/chant/lexicon";
|
|
55
57
|
import type { K8sObject } from "@intentius/chant-k8s-client";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"describe-resources.d.ts","sourceRoot":"","sources":["../src/describe-resources.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"describe-resources.d.ts","sourceRoot":"","sources":["../src/describe-resources.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAwD,MAAM,0BAA0B,CAAC;AAGxH,OAAO,KAAK,EAAa,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAmBvE;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CA2CvD;AA4FD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,EAAE,GAAG,SAAS,CAetE;AAQD,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;IAC9E,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,sFAAsF;IACtF,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,wBAAwB,EACjC,OAAO,GAAE,YAAkC,GAC1C,OAAO,CAAC,iBAAiB,CAAC,CAoJ5B"}
|