kustodian 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +346 -0
- package/dist/cli/bin.d.ts +3 -0
- package/dist/cli/bin.d.ts.map +1 -0
- package/dist/cli/bin.js +67 -0
- package/dist/cli/bin.js.map +1 -0
- package/dist/cli/command.d.ts +57 -0
- package/dist/cli/command.d.ts.map +1 -0
- package/dist/cli/command.js +26 -0
- package/dist/cli/command.js.map +1 -0
- package/dist/cli/commands/apply.d.ts +8 -0
- package/dist/cli/commands/apply.d.ts.map +1 -0
- package/dist/cli/commands/apply.js +802 -0
- package/dist/cli/commands/apply.js.map +1 -0
- package/dist/cli/commands/init.d.ts +5 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +403 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/sources.d.ts +5 -0
- package/dist/cli/commands/sources.d.ts.map +1 -0
- package/dist/cli/commands/sources.js +377 -0
- package/dist/cli/commands/sources.js.map +1 -0
- package/dist/cli/commands/update.d.ts +5 -0
- package/dist/cli/commands/update.d.ts.map +1 -0
- package/dist/cli/commands/update.js +314 -0
- package/dist/cli/commands/update.js.map +1 -0
- package/dist/cli/commands/validate.d.ts +5 -0
- package/dist/cli/commands/validate.d.ts.map +1 -0
- package/dist/cli/commands/validate.js +126 -0
- package/dist/cli/commands/validate.js.map +1 -0
- package/dist/cli/container.d.ts +48 -0
- package/dist/cli/container.d.ts.map +1 -0
- package/dist/cli/container.js +49 -0
- package/dist/cli/container.js.map +1 -0
- package/dist/cli/index.d.ts +8 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +9 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/middleware.d.ts +118 -0
- package/dist/cli/middleware.d.ts.map +1 -0
- package/dist/cli/middleware.js +280 -0
- package/dist/cli/middleware.js.map +1 -0
- package/dist/cli/runner.d.ts +34 -0
- package/dist/cli/runner.d.ts.map +1 -0
- package/dist/cli/runner.js +156 -0
- package/dist/cli/runner.js.map +1 -0
- package/dist/cli/utils/defaults.d.ts +23 -0
- package/dist/cli/utils/defaults.d.ts.map +1 -0
- package/dist/cli/utils/defaults.js +43 -0
- package/dist/cli/utils/defaults.js.map +1 -0
- package/dist/core/error.d.ts +117 -0
- package/dist/core/error.d.ts.map +1 -0
- package/dist/core/error.js +210 -0
- package/dist/core/error.js.map +1 -0
- package/dist/core/index.d.ts +6 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +6 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/logger.d.ts +31 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +78 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/path.d.ts +57 -0
- package/dist/core/path.d.ts.map +1 -0
- package/dist/core/path.js +154 -0
- package/dist/core/path.js.map +1 -0
- package/dist/core/result.d.ts +80 -0
- package/dist/core/result.d.ts.map +1 -0
- package/dist/core/result.js +150 -0
- package/dist/core/result.js.map +1 -0
- package/dist/core/types.d.ts +80 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +5 -0
- package/dist/core/types.js.map +1 -0
- package/dist/generator/external-substitutions.d.ts +21 -0
- package/dist/generator/external-substitutions.d.ts.map +1 -0
- package/dist/generator/external-substitutions.js +49 -0
- package/dist/generator/external-substitutions.js.map +1 -0
- package/dist/generator/flux.d.ts +61 -0
- package/dist/generator/flux.d.ts.map +1 -0
- package/dist/generator/flux.js +294 -0
- package/dist/generator/flux.js.map +1 -0
- package/dist/generator/generator.d.ts +77 -0
- package/dist/generator/generator.d.ts.map +1 -0
- package/dist/generator/generator.js +183 -0
- package/dist/generator/generator.js.map +1 -0
- package/dist/generator/index.d.ts +9 -0
- package/dist/generator/index.d.ts.map +1 -0
- package/dist/generator/index.js +9 -0
- package/dist/generator/index.js.map +1 -0
- package/dist/generator/kustomization-resolution.d.ts +40 -0
- package/dist/generator/kustomization-resolution.d.ts.map +1 -0
- package/dist/generator/kustomization-resolution.js +59 -0
- package/dist/generator/kustomization-resolution.js.map +1 -0
- package/dist/generator/namespace.d.ts +74 -0
- package/dist/generator/namespace.d.ts.map +1 -0
- package/dist/generator/namespace.js +109 -0
- package/dist/generator/namespace.js.map +1 -0
- package/dist/generator/output.d.ts +56 -0
- package/dist/generator/output.d.ts.map +1 -0
- package/dist/generator/output.js +171 -0
- package/dist/generator/output.js.map +1 -0
- package/dist/generator/preservation.d.ts +45 -0
- package/dist/generator/preservation.d.ts.map +1 -0
- package/dist/generator/preservation.js +71 -0
- package/dist/generator/preservation.js.map +1 -0
- package/dist/generator/substitution.d.ts +79 -0
- package/dist/generator/substitution.d.ts.map +1 -0
- package/dist/generator/substitution.js +210 -0
- package/dist/generator/substitution.js.map +1 -0
- package/dist/generator/types.d.ts +162 -0
- package/dist/generator/types.d.ts.map +1 -0
- package/dist/generator/types.js +2 -0
- package/dist/generator/types.js.map +1 -0
- package/dist/generator/validation/cycle-detection.d.ts +25 -0
- package/dist/generator/validation/cycle-detection.d.ts.map +1 -0
- package/dist/generator/validation/cycle-detection.js +101 -0
- package/dist/generator/validation/cycle-detection.js.map +1 -0
- package/dist/generator/validation/enablement.d.ts +24 -0
- package/dist/generator/validation/enablement.d.ts.map +1 -0
- package/dist/generator/validation/enablement.js +69 -0
- package/dist/generator/validation/enablement.js.map +1 -0
- package/dist/generator/validation/graph.d.ts +29 -0
- package/dist/generator/validation/graph.d.ts.map +1 -0
- package/dist/generator/validation/graph.js +106 -0
- package/dist/generator/validation/graph.js.map +1 -0
- package/dist/generator/validation/index.d.ts +38 -0
- package/dist/generator/validation/index.d.ts.map +1 -0
- package/dist/generator/validation/index.js +64 -0
- package/dist/generator/validation/index.js.map +1 -0
- package/dist/generator/validation/reference.d.ts +45 -0
- package/dist/generator/validation/reference.d.ts.map +1 -0
- package/dist/generator/validation/reference.js +143 -0
- package/dist/generator/validation/reference.js.map +1 -0
- package/dist/generator/validation/requirements.d.ts +25 -0
- package/dist/generator/validation/requirements.d.ts.map +1 -0
- package/dist/generator/validation/requirements.js +64 -0
- package/dist/generator/validation/requirements.js.map +1 -0
- package/dist/generator/validation/types.d.ts +116 -0
- package/dist/generator/validation/types.d.ts.map +1 -0
- package/dist/generator/validation/types.js +13 -0
- package/dist/generator/validation/types.js.map +1 -0
- package/dist/k8s/exec.d.ts +20 -0
- package/dist/k8s/exec.d.ts.map +1 -0
- package/dist/k8s/exec.js +47 -0
- package/dist/k8s/exec.js.map +1 -0
- package/dist/k8s/flux.d.ts +57 -0
- package/dist/k8s/flux.d.ts.map +1 -0
- package/dist/k8s/flux.js +202 -0
- package/dist/k8s/flux.js.map +1 -0
- package/dist/k8s/index.d.ts +6 -0
- package/dist/k8s/index.d.ts.map +1 -0
- package/dist/k8s/index.js +6 -0
- package/dist/k8s/index.js.map +1 -0
- package/dist/k8s/kubeconfig.d.ts +45 -0
- package/dist/k8s/kubeconfig.d.ts.map +1 -0
- package/dist/k8s/kubeconfig.js +152 -0
- package/dist/k8s/kubeconfig.js.map +1 -0
- package/dist/k8s/kubectl.d.ts +68 -0
- package/dist/k8s/kubectl.d.ts.map +1 -0
- package/dist/k8s/kubectl.js +187 -0
- package/dist/k8s/kubectl.js.map +1 -0
- package/dist/k8s/types.d.ts +65 -0
- package/dist/k8s/types.d.ts.map +1 -0
- package/dist/k8s/types.js +2 -0
- package/dist/k8s/types.js.map +1 -0
- package/dist/loader/file.d.ts +39 -0
- package/dist/loader/file.d.ts.map +1 -0
- package/dist/loader/file.js +121 -0
- package/dist/loader/file.js.map +1 -0
- package/dist/loader/index.d.ts +5 -0
- package/dist/loader/index.d.ts.map +1 -0
- package/dist/loader/index.js +5 -0
- package/dist/loader/index.js.map +1 -0
- package/dist/loader/profile.d.ts +23 -0
- package/dist/loader/profile.d.ts.map +1 -0
- package/dist/loader/profile.js +84 -0
- package/dist/loader/profile.js.map +1 -0
- package/dist/loader/project.d.ts +76 -0
- package/dist/loader/project.d.ts.map +1 -0
- package/dist/loader/project.js +279 -0
- package/dist/loader/project.js.map +1 -0
- package/dist/loader/yaml.d.ts +15 -0
- package/dist/loader/yaml.d.ts.map +1 -0
- package/dist/loader/yaml.js +44 -0
- package/dist/loader/yaml.js.map +1 -0
- package/dist/nodes/index.d.ts +5 -0
- package/dist/nodes/index.d.ts.map +1 -0
- package/dist/nodes/index.js +5 -0
- package/dist/nodes/index.js.map +1 -0
- package/dist/nodes/kubectl-labeler.d.ts +7 -0
- package/dist/nodes/kubectl-labeler.d.ts.map +1 -0
- package/dist/nodes/kubectl-labeler.js +89 -0
- package/dist/nodes/kubectl-labeler.js.map +1 -0
- package/dist/nodes/labeler.d.ts +74 -0
- package/dist/nodes/labeler.d.ts.map +1 -0
- package/dist/nodes/labeler.js +118 -0
- package/dist/nodes/labeler.js.map +1 -0
- package/dist/nodes/profile.d.ts +58 -0
- package/dist/nodes/profile.d.ts.map +1 -0
- package/dist/nodes/profile.js +128 -0
- package/dist/nodes/profile.js.map +1 -0
- package/dist/nodes/types.d.ts +84 -0
- package/dist/nodes/types.d.ts.map +1 -0
- package/dist/nodes/types.js +77 -0
- package/dist/nodes/types.js.map +1 -0
- package/dist/plugins/generators.d.ts +49 -0
- package/dist/plugins/generators.d.ts.map +1 -0
- package/dist/plugins/generators.js +7 -0
- package/dist/plugins/generators.js.map +1 -0
- package/dist/plugins/hooks.d.ts +120 -0
- package/dist/plugins/hooks.d.ts.map +1 -0
- package/dist/plugins/hooks.js +41 -0
- package/dist/plugins/hooks.js.map +1 -0
- package/dist/plugins/index.d.ts +8 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +15 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/loader.d.ts +40 -0
- package/dist/plugins/loader.d.ts.map +1 -0
- package/dist/plugins/loader.js +236 -0
- package/dist/plugins/loader.js.map +1 -0
- package/dist/plugins/object-types.d.ts +71 -0
- package/dist/plugins/object-types.d.ts.map +1 -0
- package/dist/plugins/object-types.js +65 -0
- package/dist/plugins/object-types.js.map +1 -0
- package/dist/plugins/registry.d.ts +87 -0
- package/dist/plugins/registry.d.ts.map +1 -0
- package/dist/plugins/registry.js +158 -0
- package/dist/plugins/registry.js.map +1 -0
- package/dist/plugins/substitution-providers.d.ts +48 -0
- package/dist/plugins/substitution-providers.d.ts.map +1 -0
- package/dist/plugins/substitution-providers.js +2 -0
- package/dist/plugins/substitution-providers.js.map +1 -0
- package/dist/plugins/types.d.ts +288 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/plugins/types.js +25 -0
- package/dist/plugins/types.js.map +1 -0
- package/dist/registry/auth.d.ts +14 -0
- package/dist/registry/auth.d.ts.map +1 -0
- package/dist/registry/auth.js +40 -0
- package/dist/registry/auth.js.map +1 -0
- package/dist/registry/client.d.ts +24 -0
- package/dist/registry/client.d.ts.map +1 -0
- package/dist/registry/client.js +85 -0
- package/dist/registry/client.js.map +1 -0
- package/dist/registry/dockerhub.d.ts +6 -0
- package/dist/registry/dockerhub.d.ts.map +1 -0
- package/dist/registry/dockerhub.js +91 -0
- package/dist/registry/dockerhub.js.map +1 -0
- package/dist/registry/ghcr.d.ts +6 -0
- package/dist/registry/ghcr.d.ts.map +1 -0
- package/dist/registry/ghcr.js +95 -0
- package/dist/registry/ghcr.js.map +1 -0
- package/dist/registry/helm.d.ts +11 -0
- package/dist/registry/helm.d.ts.map +1 -0
- package/dist/registry/helm.js +124 -0
- package/dist/registry/helm.js.map +1 -0
- package/dist/registry/index.d.ts +8 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +12 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/registry/types.d.ts +55 -0
- package/dist/registry/types.d.ts.map +1 -0
- package/dist/registry/types.js +2 -0
- package/dist/registry/types.js.map +1 -0
- package/dist/registry/version.d.ts +22 -0
- package/dist/registry/version.d.ts.map +1 -0
- package/dist/registry/version.js +62 -0
- package/dist/registry/version.js.map +1 -0
- package/dist/schema/cluster.d.ts +2890 -0
- package/dist/schema/cluster.d.ts.map +1 -0
- package/dist/schema/cluster.js +231 -0
- package/dist/schema/cluster.js.map +1 -0
- package/dist/schema/common.d.ts +1059 -0
- package/dist/schema/common.d.ts.map +1 -0
- package/dist/schema/common.js +340 -0
- package/dist/schema/common.js.map +1 -0
- package/dist/schema/index.d.ts +8 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +8 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/node-list.d.ts +361 -0
- package/dist/schema/node-list.d.ts.map +1 -0
- package/dist/schema/node-list.js +104 -0
- package/dist/schema/node-list.js.map +1 -0
- package/dist/schema/profile.d.ts +166 -0
- package/dist/schema/profile.d.ts.map +1 -0
- package/dist/schema/profile.js +61 -0
- package/dist/schema/profile.js.map +1 -0
- package/dist/schema/project.d.ts +168 -0
- package/dist/schema/project.d.ts.map +1 -0
- package/dist/schema/project.js +40 -0
- package/dist/schema/project.js.map +1 -0
- package/dist/schema/sources.d.ts +338 -0
- package/dist/schema/sources.d.ts.map +1 -0
- package/dist/schema/sources.js +111 -0
- package/dist/schema/sources.js.map +1 -0
- package/dist/schema/template.d.ts +2711 -0
- package/dist/schema/template.d.ts.map +1 -0
- package/dist/schema/template.js +97 -0
- package/dist/schema/template.js.map +1 -0
- package/dist/sources/cache/index.d.ts +9 -0
- package/dist/sources/cache/index.d.ts.map +1 -0
- package/dist/sources/cache/index.js +278 -0
- package/dist/sources/cache/index.js.map +1 -0
- package/dist/sources/cache/metadata.d.ts +36 -0
- package/dist/sources/cache/metadata.d.ts.map +1 -0
- package/dist/sources/cache/metadata.js +21 -0
- package/dist/sources/cache/metadata.js.map +1 -0
- package/dist/sources/cache/ttl.d.ts +20 -0
- package/dist/sources/cache/ttl.d.ts.map +1 -0
- package/dist/sources/cache/ttl.js +53 -0
- package/dist/sources/cache/ttl.js.map +1 -0
- package/dist/sources/fetchers/git.d.ts +6 -0
- package/dist/sources/fetchers/git.d.ts.map +1 -0
- package/dist/sources/fetchers/git.js +165 -0
- package/dist/sources/fetchers/git.js.map +1 -0
- package/dist/sources/fetchers/http.d.ts +6 -0
- package/dist/sources/fetchers/http.d.ts.map +1 -0
- package/dist/sources/fetchers/http.js +159 -0
- package/dist/sources/fetchers/http.js.map +1 -0
- package/dist/sources/fetchers/index.d.ts +11 -0
- package/dist/sources/fetchers/index.d.ts.map +1 -0
- package/dist/sources/fetchers/index.js +24 -0
- package/dist/sources/fetchers/index.js.map +1 -0
- package/dist/sources/fetchers/oci.d.ts +6 -0
- package/dist/sources/fetchers/oci.d.ts.map +1 -0
- package/dist/sources/fetchers/oci.js +156 -0
- package/dist/sources/fetchers/oci.js.map +1 -0
- package/dist/sources/fetchers/types.d.ts +25 -0
- package/dist/sources/fetchers/types.d.ts.map +1 -0
- package/dist/sources/fetchers/types.js +2 -0
- package/dist/sources/fetchers/types.js.map +1 -0
- package/dist/sources/index.d.ts +6 -0
- package/dist/sources/index.d.ts.map +1 -0
- package/dist/sources/index.js +10 -0
- package/dist/sources/index.js.map +1 -0
- package/dist/sources/loader.d.ts +34 -0
- package/dist/sources/loader.d.ts.map +1 -0
- package/dist/sources/loader.js +89 -0
- package/dist/sources/loader.js.map +1 -0
- package/dist/sources/resolver.d.ts +17 -0
- package/dist/sources/resolver.d.ts.map +1 -0
- package/dist/sources/resolver.js +125 -0
- package/dist/sources/resolver.js.map +1 -0
- package/dist/sources/types.d.ts +151 -0
- package/dist/sources/types.d.ts.map +1 -0
- package/dist/sources/types.js +2 -0
- package/dist/sources/types.js.map +1 -0
- package/package.json +101 -0
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { basename, dirname, extname, join, normalize, relative, resolve } from 'node:path';
|
|
2
|
+
/**
|
|
3
|
+
* Normalizes a path, removing any leading "./" and trailing slashes.
|
|
4
|
+
*/
|
|
5
|
+
export function normalize_path(path) {
|
|
6
|
+
let normalized = normalize(path);
|
|
7
|
+
if (normalized.startsWith('./')) {
|
|
8
|
+
normalized = normalized.slice(2);
|
|
9
|
+
}
|
|
10
|
+
if (normalized.endsWith('/') && normalized.length > 1) {
|
|
11
|
+
normalized = normalized.slice(0, -1);
|
|
12
|
+
}
|
|
13
|
+
return normalized;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Joins path segments and normalizes the result.
|
|
17
|
+
*/
|
|
18
|
+
export function join_paths(...segments) {
|
|
19
|
+
return normalize(join(...segments));
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Resolves a path relative to a base path.
|
|
23
|
+
*/
|
|
24
|
+
export function resolve_path(base, path) {
|
|
25
|
+
return resolve(base, path);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Gets the relative path from one path to another.
|
|
29
|
+
*/
|
|
30
|
+
export function relative_path(from, to) {
|
|
31
|
+
return relative(from, to);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Gets the directory name from a path.
|
|
35
|
+
*/
|
|
36
|
+
export function get_dirname(path) {
|
|
37
|
+
return dirname(path);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Gets the file name from a path.
|
|
41
|
+
*/
|
|
42
|
+
export function get_basename(path, ext) {
|
|
43
|
+
return basename(path, ext);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Gets the file extension from a path.
|
|
47
|
+
*/
|
|
48
|
+
export function get_extension(path) {
|
|
49
|
+
return extname(path);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Checks if a path is absolute.
|
|
53
|
+
*/
|
|
54
|
+
export function is_absolute_path(path) {
|
|
55
|
+
return path.startsWith('/') || /^[a-zA-Z]:/.test(path);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Ensures a path starts with "./" for relative paths.
|
|
59
|
+
*/
|
|
60
|
+
export function ensure_relative(path) {
|
|
61
|
+
if (is_absolute_path(path)) {
|
|
62
|
+
return path;
|
|
63
|
+
}
|
|
64
|
+
if (path.startsWith('./') || path.startsWith('../')) {
|
|
65
|
+
return path;
|
|
66
|
+
}
|
|
67
|
+
return `./${path}`;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Removes the extension from a file path.
|
|
71
|
+
*/
|
|
72
|
+
export function remove_extension(path) {
|
|
73
|
+
const ext = extname(path);
|
|
74
|
+
if (ext) {
|
|
75
|
+
return path.slice(0, -ext.length);
|
|
76
|
+
}
|
|
77
|
+
return path;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Changes the extension of a file path.
|
|
81
|
+
*/
|
|
82
|
+
export function change_extension(path, new_ext) {
|
|
83
|
+
const without_ext = remove_extension(path);
|
|
84
|
+
const ext = new_ext.startsWith('.') ? new_ext : `.${new_ext}`;
|
|
85
|
+
return `${without_ext}${ext}`;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Checks if a path matches any of the given patterns (simple glob support).
|
|
89
|
+
*/
|
|
90
|
+
export function matches_pattern(path, patterns) {
|
|
91
|
+
const normalized = normalize_path(path);
|
|
92
|
+
for (const pattern of patterns) {
|
|
93
|
+
if (pattern === '*') {
|
|
94
|
+
return true;
|
|
95
|
+
}
|
|
96
|
+
if (pattern.startsWith('*.')) {
|
|
97
|
+
const ext = pattern.slice(1);
|
|
98
|
+
if (normalized.endsWith(ext)) {
|
|
99
|
+
return true;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
if (pattern.endsWith('/*')) {
|
|
103
|
+
const prefix = pattern.slice(0, -2);
|
|
104
|
+
if (normalized.startsWith(prefix)) {
|
|
105
|
+
return true;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
if (normalized === pattern || normalized.endsWith(`/${pattern}`)) {
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Splits a path into its segments.
|
|
116
|
+
*/
|
|
117
|
+
export function split_path(path) {
|
|
118
|
+
return normalize_path(path).split('/').filter(Boolean);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Gets the common prefix of multiple paths.
|
|
122
|
+
*/
|
|
123
|
+
export function common_path_prefix(paths) {
|
|
124
|
+
if (paths.length === 0) {
|
|
125
|
+
return '';
|
|
126
|
+
}
|
|
127
|
+
if (paths.length === 1) {
|
|
128
|
+
const path = paths[0];
|
|
129
|
+
return path ? get_dirname(path) : '';
|
|
130
|
+
}
|
|
131
|
+
const first = paths[0];
|
|
132
|
+
if (!first) {
|
|
133
|
+
return '';
|
|
134
|
+
}
|
|
135
|
+
const segments = split_path(first);
|
|
136
|
+
const common = [];
|
|
137
|
+
for (let i = 0; i < segments.length; i++) {
|
|
138
|
+
const segment = segments[i];
|
|
139
|
+
if (!segment)
|
|
140
|
+
continue;
|
|
141
|
+
const all_match = paths.every((p) => {
|
|
142
|
+
const s = split_path(p);
|
|
143
|
+
return s[i] === segment;
|
|
144
|
+
});
|
|
145
|
+
if (all_match) {
|
|
146
|
+
common.push(segment);
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
break;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return common.length > 0 ? common.join('/') : '';
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path.js","sourceRoot":"","sources":["../../src/core/path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE3F;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,IAAI,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,GAAG,QAAkB;IAC9C,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,IAAY;IACrD,OAAO,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,EAAU;IACpD,OAAO,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,GAAY;IACrD,OAAO,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,IAAI,EAAE,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,IAAI,GAAG,EAAE,CAAC;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,OAAe;IAC5D,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC;IAC9D,OAAO,GAAG,WAAW,GAAG,GAAG,EAAE,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,QAAkB;IAC9D,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACxC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClC,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,IAAI,UAAU,KAAK,OAAO,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,CAAC;YACjE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAe;IAChD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,OAAO,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvC,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YAClC,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YACxB,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,MAAM;QACR,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACnD,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A discriminated union type representing either success or failure.
|
|
3
|
+
* This is the core Result type used throughout Kustodian for error handling.
|
|
4
|
+
*/
|
|
5
|
+
export type ResultType<T, E> = SuccessType<T> | FailureType<E>;
|
|
6
|
+
export interface SuccessType<T> {
|
|
7
|
+
readonly success: true;
|
|
8
|
+
readonly value: T;
|
|
9
|
+
}
|
|
10
|
+
export interface FailureType<E> {
|
|
11
|
+
readonly success: false;
|
|
12
|
+
readonly error: E;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Creates a successful Result.
|
|
16
|
+
*/
|
|
17
|
+
export declare function success<T>(value: T): SuccessType<T>;
|
|
18
|
+
/**
|
|
19
|
+
* Creates a failed Result.
|
|
20
|
+
*/
|
|
21
|
+
export declare function failure<E>(error: E): FailureType<E>;
|
|
22
|
+
/**
|
|
23
|
+
* Type guard to check if a Result is successful.
|
|
24
|
+
*/
|
|
25
|
+
export declare function is_success<T, E>(result: ResultType<T, E>): result is SuccessType<T>;
|
|
26
|
+
/**
|
|
27
|
+
* Type guard to check if a Result is a failure.
|
|
28
|
+
*/
|
|
29
|
+
export declare function is_failure<T, E>(result: ResultType<T, E>): result is FailureType<E>;
|
|
30
|
+
/**
|
|
31
|
+
* Maps the success value of a Result using the provided function.
|
|
32
|
+
* If the Result is a failure, returns the failure unchanged.
|
|
33
|
+
*/
|
|
34
|
+
export declare function map_result<T, U, E>(result: ResultType<T, E>, fn: (value: T) => U): ResultType<U, E>;
|
|
35
|
+
/**
|
|
36
|
+
* Maps the error of a Result using the provided function.
|
|
37
|
+
* If the Result is a success, returns the success unchanged.
|
|
38
|
+
*/
|
|
39
|
+
export declare function map_error<T, E, F>(result: ResultType<T, E>, fn: (error: E) => F): ResultType<T, F>;
|
|
40
|
+
/**
|
|
41
|
+
* Chains Result operations. If the Result is successful, applies the function
|
|
42
|
+
* which returns a new Result. If the Result is a failure, returns it unchanged.
|
|
43
|
+
*/
|
|
44
|
+
export declare function flat_map<T, U, E>(result: ResultType<T, E>, fn: (value: T) => ResultType<U, E>): ResultType<U, E>;
|
|
45
|
+
/**
|
|
46
|
+
* Unwraps a Result, returning the value if successful,
|
|
47
|
+
* or throwing the error if failed.
|
|
48
|
+
*/
|
|
49
|
+
export declare function unwrap<T, E>(result: ResultType<T, E>): T;
|
|
50
|
+
/**
|
|
51
|
+
* Unwraps a Result, returning the value if successful,
|
|
52
|
+
* or a default value if failed.
|
|
53
|
+
*/
|
|
54
|
+
export declare function unwrap_or<T, E>(result: ResultType<T, E>, default_value: T): T;
|
|
55
|
+
/**
|
|
56
|
+
* Unwraps a Result, returning the value if successful,
|
|
57
|
+
* or calling the provided function with the error to get a default value.
|
|
58
|
+
*/
|
|
59
|
+
export declare function unwrap_or_else<T, E>(result: ResultType<T, E>, fn: (error: E) => T): T;
|
|
60
|
+
/**
|
|
61
|
+
* Converts a Promise to a Result.
|
|
62
|
+
* Catches any errors and wraps them in a failure Result.
|
|
63
|
+
*/
|
|
64
|
+
export declare function from_promise<T, E = Error>(promise: Promise<T>, map_error_fn?: (error: unknown) => E): Promise<ResultType<T, E>>;
|
|
65
|
+
/**
|
|
66
|
+
* Converts a function that may throw into one that returns a Result.
|
|
67
|
+
*/
|
|
68
|
+
export declare function from_try<T, E = Error>(fn: () => T, map_error_fn?: (error: unknown) => E): ResultType<T, E>;
|
|
69
|
+
/**
|
|
70
|
+
* Combines multiple Results into a single Result containing an array of values.
|
|
71
|
+
* If any Result is a failure, returns the first failure.
|
|
72
|
+
*/
|
|
73
|
+
export declare function combine<T, E>(results: ResultType<T, E>[]): ResultType<T[], E>;
|
|
74
|
+
/**
|
|
75
|
+
* Combines multiple Results into a single Result, collecting all errors.
|
|
76
|
+
* If all Results are successful, returns an array of values.
|
|
77
|
+
* If any Results fail, returns an array of all errors.
|
|
78
|
+
*/
|
|
79
|
+
export declare function combine_all<T, E>(results: ResultType<T, E>[]): ResultType<T[], E[]>;
|
|
80
|
+
//# sourceMappingURL=result.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../src/core/result.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAE/D,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CACnB;AAED,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAEnD;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAEnD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC,CAEnF;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC,CAEnF;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAChC,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EACxB,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAClB,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAKlB;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAC/B,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EACxB,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAClB,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAKlB;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAC9B,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EACxB,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,GACjC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAKlB;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAKxD;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,GAAG,CAAC,CAK7E;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAKrF;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,EAC7C,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC,GACnC,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAU3B;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,EACnC,EAAE,EAAE,MAAM,CAAC,EACX,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC,GACnC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CASlB;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAS7E;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAiBnF"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates a successful Result.
|
|
3
|
+
*/
|
|
4
|
+
export function success(value) {
|
|
5
|
+
return { success: true, value };
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Creates a failed Result.
|
|
9
|
+
*/
|
|
10
|
+
export function failure(error) {
|
|
11
|
+
return { success: false, error };
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Type guard to check if a Result is successful.
|
|
15
|
+
*/
|
|
16
|
+
export function is_success(result) {
|
|
17
|
+
return result.success;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Type guard to check if a Result is a failure.
|
|
21
|
+
*/
|
|
22
|
+
export function is_failure(result) {
|
|
23
|
+
return !result.success;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Maps the success value of a Result using the provided function.
|
|
27
|
+
* If the Result is a failure, returns the failure unchanged.
|
|
28
|
+
*/
|
|
29
|
+
export function map_result(result, fn) {
|
|
30
|
+
if (is_success(result)) {
|
|
31
|
+
return success(fn(result.value));
|
|
32
|
+
}
|
|
33
|
+
return result;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Maps the error of a Result using the provided function.
|
|
37
|
+
* If the Result is a success, returns the success unchanged.
|
|
38
|
+
*/
|
|
39
|
+
export function map_error(result, fn) {
|
|
40
|
+
if (is_failure(result)) {
|
|
41
|
+
return failure(fn(result.error));
|
|
42
|
+
}
|
|
43
|
+
return result;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Chains Result operations. If the Result is successful, applies the function
|
|
47
|
+
* which returns a new Result. If the Result is a failure, returns it unchanged.
|
|
48
|
+
*/
|
|
49
|
+
export function flat_map(result, fn) {
|
|
50
|
+
if (is_success(result)) {
|
|
51
|
+
return fn(result.value);
|
|
52
|
+
}
|
|
53
|
+
return result;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Unwraps a Result, returning the value if successful,
|
|
57
|
+
* or throwing the error if failed.
|
|
58
|
+
*/
|
|
59
|
+
export function unwrap(result) {
|
|
60
|
+
if (is_success(result)) {
|
|
61
|
+
return result.value;
|
|
62
|
+
}
|
|
63
|
+
throw result.error;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Unwraps a Result, returning the value if successful,
|
|
67
|
+
* or a default value if failed.
|
|
68
|
+
*/
|
|
69
|
+
export function unwrap_or(result, default_value) {
|
|
70
|
+
if (is_success(result)) {
|
|
71
|
+
return result.value;
|
|
72
|
+
}
|
|
73
|
+
return default_value;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Unwraps a Result, returning the value if successful,
|
|
77
|
+
* or calling the provided function with the error to get a default value.
|
|
78
|
+
*/
|
|
79
|
+
export function unwrap_or_else(result, fn) {
|
|
80
|
+
if (is_success(result)) {
|
|
81
|
+
return result.value;
|
|
82
|
+
}
|
|
83
|
+
return fn(result.error);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Converts a Promise to a Result.
|
|
87
|
+
* Catches any errors and wraps them in a failure Result.
|
|
88
|
+
*/
|
|
89
|
+
export async function from_promise(promise, map_error_fn) {
|
|
90
|
+
try {
|
|
91
|
+
const value = await promise;
|
|
92
|
+
return success(value);
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
if (map_error_fn) {
|
|
96
|
+
return failure(map_error_fn(error));
|
|
97
|
+
}
|
|
98
|
+
return failure(error);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Converts a function that may throw into one that returns a Result.
|
|
103
|
+
*/
|
|
104
|
+
export function from_try(fn, map_error_fn) {
|
|
105
|
+
try {
|
|
106
|
+
return success(fn());
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
if (map_error_fn) {
|
|
110
|
+
return failure(map_error_fn(error));
|
|
111
|
+
}
|
|
112
|
+
return failure(error);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Combines multiple Results into a single Result containing an array of values.
|
|
117
|
+
* If any Result is a failure, returns the first failure.
|
|
118
|
+
*/
|
|
119
|
+
export function combine(results) {
|
|
120
|
+
const values = [];
|
|
121
|
+
for (const result of results) {
|
|
122
|
+
if (is_failure(result)) {
|
|
123
|
+
return result;
|
|
124
|
+
}
|
|
125
|
+
values.push(result.value);
|
|
126
|
+
}
|
|
127
|
+
return success(values);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Combines multiple Results into a single Result, collecting all errors.
|
|
131
|
+
* If all Results are successful, returns an array of values.
|
|
132
|
+
* If any Results fail, returns an array of all errors.
|
|
133
|
+
*/
|
|
134
|
+
export function combine_all(results) {
|
|
135
|
+
const values = [];
|
|
136
|
+
const errors = [];
|
|
137
|
+
for (const result of results) {
|
|
138
|
+
if (is_success(result)) {
|
|
139
|
+
values.push(result.value);
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
errors.push(result.error);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
if (errors.length > 0) {
|
|
146
|
+
return failure(errors);
|
|
147
|
+
}
|
|
148
|
+
return success(values);
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=result.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/core/result.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type utilities for deep object manipulation.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Makes all properties in T optional recursively.
|
|
6
|
+
*/
|
|
7
|
+
export type DeepPartialType<T> = T extends object ? {
|
|
8
|
+
[P in keyof T]?: DeepPartialType<T[P]>;
|
|
9
|
+
} : T;
|
|
10
|
+
/**
|
|
11
|
+
* Makes all properties in T required recursively.
|
|
12
|
+
*/
|
|
13
|
+
export type DeepRequiredType<T> = T extends object ? {
|
|
14
|
+
[P in keyof T]-?: DeepRequiredType<T[P]>;
|
|
15
|
+
} : T;
|
|
16
|
+
/**
|
|
17
|
+
* Makes all properties in T readonly recursively.
|
|
18
|
+
*/
|
|
19
|
+
export type DeepReadonlyType<T> = T extends object ? {
|
|
20
|
+
readonly [P in keyof T]: DeepReadonlyType<T[P]>;
|
|
21
|
+
} : T;
|
|
22
|
+
/**
|
|
23
|
+
* Extracts keys of T that have values assignable to V.
|
|
24
|
+
*/
|
|
25
|
+
export type KeysOfType<T, V> = {
|
|
26
|
+
[K in keyof T]: T[K] extends V ? K : never;
|
|
27
|
+
}[keyof T];
|
|
28
|
+
/**
|
|
29
|
+
* Makes specific keys K of T optional.
|
|
30
|
+
*/
|
|
31
|
+
export type PartialByType<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
|
|
32
|
+
/**
|
|
33
|
+
* Makes specific keys K of T required.
|
|
34
|
+
*/
|
|
35
|
+
export type RequiredByType<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;
|
|
36
|
+
/**
|
|
37
|
+
* Extracts the type of array elements.
|
|
38
|
+
*/
|
|
39
|
+
export type ArrayElementType<T> = T extends readonly (infer U)[] ? U : never;
|
|
40
|
+
/**
|
|
41
|
+
* Makes all properties in T mutable (removes readonly).
|
|
42
|
+
*/
|
|
43
|
+
export type MutableType<T> = {
|
|
44
|
+
-readonly [P in keyof T]: T[P];
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Extracts non-nullable properties from T.
|
|
48
|
+
*/
|
|
49
|
+
export type NonNullablePropsType<T> = {
|
|
50
|
+
[K in keyof T]: NonNullable<T[K]>;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Creates a type with properties common to T and U.
|
|
54
|
+
*/
|
|
55
|
+
export type IntersectionType<T, U> = Pick<T, Extract<keyof T, keyof U>>;
|
|
56
|
+
/**
|
|
57
|
+
* Creates a type with properties in T but not in U.
|
|
58
|
+
*/
|
|
59
|
+
export type DifferenceType<T, U> = Pick<T, Exclude<keyof T, keyof U>>;
|
|
60
|
+
/**
|
|
61
|
+
* Branded type for nominal typing.
|
|
62
|
+
*/
|
|
63
|
+
export type BrandedType<T, Brand extends string> = T & {
|
|
64
|
+
readonly __brand: Brand;
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Type guard function type.
|
|
68
|
+
*/
|
|
69
|
+
export type TypeGuardType<T> = (value: unknown) => value is T;
|
|
70
|
+
/**
|
|
71
|
+
* Async function type.
|
|
72
|
+
*/
|
|
73
|
+
export type AsyncFunctionType<T extends unknown[], R> = (...args: T) => Promise<R>;
|
|
74
|
+
/**
|
|
75
|
+
* Creates a type with all properties as optional except those in K.
|
|
76
|
+
*/
|
|
77
|
+
export type WithRequiredType<T, K extends keyof T> = T & {
|
|
78
|
+
[P in K]-?: T[P];
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,CAAC,CAAC;AAEnG;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAC9C;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAC5C,CAAC,CAAC;AAEN;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAC9C;IAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACnD,CAAC,CAAC;AAEN;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK;CAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAEvF;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAEnF;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAErF;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AAE7E;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAAE,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI;KACnC,CAAC,IAAI,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAClC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAExE;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAEtE;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,KAAK,SAAS,MAAM,IAAI,CAAC,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAA;CAAE,CAAC;AAEnF;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAEnF;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG;KAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { DopplerSubstitutionType, OnePasswordSubstitutionType, SubstitutionType, TemplateType } from '../schema/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Extracts 1Password substitutions from templates.
|
|
4
|
+
*/
|
|
5
|
+
export declare function extract_onepassword_substitutions(templates: TemplateType[]): OnePasswordSubstitutionType[];
|
|
6
|
+
/**
|
|
7
|
+
* Extracts Doppler substitutions from templates.
|
|
8
|
+
*/
|
|
9
|
+
export declare function extract_doppler_substitutions(templates: TemplateType[]): DopplerSubstitutionType[];
|
|
10
|
+
/**
|
|
11
|
+
* Extracts all external substitutions (1Password and Doppler) from templates.
|
|
12
|
+
*/
|
|
13
|
+
export declare function extract_external_substitutions(templates: TemplateType[]): {
|
|
14
|
+
onepassword: OnePasswordSubstitutionType[];
|
|
15
|
+
doppler: DopplerSubstitutionType[];
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Checks if a substitution requires external resolution.
|
|
19
|
+
*/
|
|
20
|
+
export declare function is_external_substitution(sub: SubstitutionType): boolean;
|
|
21
|
+
//# sourceMappingURL=external-substitutions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"external-substitutions.d.ts","sourceRoot":"","sources":["../../src/generator/external-substitutions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,2BAA2B,EAC3B,gBAAgB,EAChB,YAAY,EACb,MAAM,oBAAoB,CAAC;AAG5B;;GAEG;AACH,wBAAgB,iCAAiC,CAC/C,SAAS,EAAE,YAAY,EAAE,GACxB,2BAA2B,EAAE,CAc/B;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,YAAY,EAAE,GACxB,uBAAuB,EAAE,CAc3B;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG;IACzE,WAAW,EAAE,2BAA2B,EAAE,CAAC;IAC3C,OAAO,EAAE,uBAAuB,EAAE,CAAC;CACpC,CAKA;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAEvE"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { is_doppler_substitution, is_onepassword_substitution } from '../schema/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Extracts 1Password substitutions from templates.
|
|
4
|
+
*/
|
|
5
|
+
export function extract_onepassword_substitutions(templates) {
|
|
6
|
+
const substitutions = [];
|
|
7
|
+
for (const template of templates) {
|
|
8
|
+
for (const kustomization of template.spec.kustomizations) {
|
|
9
|
+
for (const sub of kustomization.substitutions ?? []) {
|
|
10
|
+
if (is_onepassword_substitution(sub)) {
|
|
11
|
+
substitutions.push(sub);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return substitutions;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Extracts Doppler substitutions from templates.
|
|
20
|
+
*/
|
|
21
|
+
export function extract_doppler_substitutions(templates) {
|
|
22
|
+
const substitutions = [];
|
|
23
|
+
for (const template of templates) {
|
|
24
|
+
for (const kustomization of template.spec.kustomizations) {
|
|
25
|
+
for (const sub of kustomization.substitutions ?? []) {
|
|
26
|
+
if (is_doppler_substitution(sub)) {
|
|
27
|
+
substitutions.push(sub);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return substitutions;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Extracts all external substitutions (1Password and Doppler) from templates.
|
|
36
|
+
*/
|
|
37
|
+
export function extract_external_substitutions(templates) {
|
|
38
|
+
return {
|
|
39
|
+
onepassword: extract_onepassword_substitutions(templates),
|
|
40
|
+
doppler: extract_doppler_substitutions(templates),
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Checks if a substitution requires external resolution.
|
|
45
|
+
*/
|
|
46
|
+
export function is_external_substitution(sub) {
|
|
47
|
+
return is_onepassword_substitution(sub) || is_doppler_substitution(sub);
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=external-substitutions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"external-substitutions.js","sourceRoot":"","sources":["../../src/generator/external-substitutions.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAE1F;;GAEG;AACH,MAAM,UAAU,iCAAiC,CAC/C,SAAyB;IAEzB,MAAM,aAAa,GAAkC,EAAE,CAAC;IAExD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,KAAK,MAAM,aAAa,IAAI,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzD,KAAK,MAAM,GAAG,IAAI,aAAa,CAAC,aAAa,IAAI,EAAE,EAAE,CAAC;gBACpD,IAAI,2BAA2B,CAAC,GAAG,CAAC,EAAE,CAAC;oBACrC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,6BAA6B,CAC3C,SAAyB;IAEzB,MAAM,aAAa,GAA8B,EAAE,CAAC;IAEpD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,KAAK,MAAM,aAAa,IAAI,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzD,KAAK,MAAM,GAAG,IAAI,aAAa,CAAC,aAAa,IAAI,EAAE,EAAE,CAAC;gBACpD,IAAI,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC;oBACjC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,8BAA8B,CAAC,SAAyB;IAItE,OAAO;QACL,WAAW,EAAE,iCAAiC,CAAC,SAAS,CAAC;QACzD,OAAO,EAAE,6BAA6B,CAAC,SAAS,CAAC;KAClD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,GAAqB;IAC5D,OAAO,2BAA2B,CAAC,GAAG,CAAC,IAAI,uBAAuB,CAAC,GAAG,CAAC,CAAC;AAC1E,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { ClusterType, FluxConfigType, KustomizationType, OciConfigType, PreservationPolicyType, DependencyRefType as SchemaDependencyRefType, TemplateType } from '../schema/index.js';
|
|
2
|
+
import type { FluxKustomizationType, FluxOCIRepositoryType, KustomizePatchType, ResolvedKustomizationType } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Default interval for Flux reconciliation.
|
|
5
|
+
*/
|
|
6
|
+
export declare const DEFAULT_INTERVAL = "10m";
|
|
7
|
+
/**
|
|
8
|
+
* Default timeout for Flux reconciliation.
|
|
9
|
+
*/
|
|
10
|
+
export declare const DEFAULT_TIMEOUT = "5m";
|
|
11
|
+
/**
|
|
12
|
+
* Generates a Flux Kustomization name from template and kustomization.
|
|
13
|
+
*/
|
|
14
|
+
export declare function generate_flux_name(template_name: string, kustomization_name: string): string;
|
|
15
|
+
/**
|
|
16
|
+
* Generates the path for a Flux Kustomization.
|
|
17
|
+
* @param template_name - The template name (used if template_source_path not provided)
|
|
18
|
+
* @param kustomization_path - The kustomization's relative path
|
|
19
|
+
* @param base_path - Base path prefix (default: './templates')
|
|
20
|
+
* @param template_source_path - Optional actual source path relative to templates dir
|
|
21
|
+
*/
|
|
22
|
+
export declare function generate_flux_path(template_name: string, kustomization_path: string, base_path?: string, template_source_path?: string): string;
|
|
23
|
+
/**
|
|
24
|
+
* Generates the dependency references for a Flux Kustomization.
|
|
25
|
+
*
|
|
26
|
+
* Supports three formats:
|
|
27
|
+
* - Within-template: `database` → uses current template name
|
|
28
|
+
* - Cross-template: `secrets/doppler` → uses explicit template name
|
|
29
|
+
* - Raw external: `{ raw: { name: 'legacy-infrastructure', namespace: 'gitops-system' } }`
|
|
30
|
+
*/
|
|
31
|
+
export declare function generate_depends_on(template_name: string, depends_on: SchemaDependencyRefType[] | undefined): Array<{
|
|
32
|
+
name: string;
|
|
33
|
+
namespace?: string;
|
|
34
|
+
}> | undefined;
|
|
35
|
+
/**
|
|
36
|
+
* Generates health checks for a Flux Kustomization.
|
|
37
|
+
*/
|
|
38
|
+
export declare function generate_health_checks(kustomization: KustomizationType, namespace: string): FluxKustomizationType['spec']['healthChecks'];
|
|
39
|
+
/**
|
|
40
|
+
* Generates custom health checks with CEL expressions for a Flux Kustomization.
|
|
41
|
+
*/
|
|
42
|
+
export declare function generate_custom_health_checks(kustomization: KustomizationType, namespace: string): FluxKustomizationType['spec']['customHealthChecks'];
|
|
43
|
+
/**
|
|
44
|
+
* Generates a Flux OCIRepository resource.
|
|
45
|
+
*/
|
|
46
|
+
export declare function generate_flux_oci_repository(cluster: ClusterType, oci_config: OciConfigType, repository_name: string, flux_namespace: string, interval?: string): FluxOCIRepositoryType;
|
|
47
|
+
/**
|
|
48
|
+
* Generates a Flux Kustomization resource.
|
|
49
|
+
*/
|
|
50
|
+
export declare function generate_flux_kustomization(resolved: ResolvedKustomizationType, source_repository_name?: string, source_kind?: 'GitRepository' | 'OCIRepository', preservation?: PreservationPolicyType, template_source_path?: string, interval?: string, timeout?: string): FluxKustomizationType;
|
|
51
|
+
/**
|
|
52
|
+
* Resolves a kustomization with values from the cluster config.
|
|
53
|
+
* Includes both template-level versions and kustomization-level substitutions.
|
|
54
|
+
*/
|
|
55
|
+
export declare function resolve_kustomization(template: TemplateType, kustomization: KustomizationType, cluster_values?: Record<string, string>): ResolvedKustomizationType;
|
|
56
|
+
/**
|
|
57
|
+
* Generates Kustomize patches for Flux controllers based on cluster configuration.
|
|
58
|
+
* These patches are applied to the gotk-components during Flux bootstrap/install.
|
|
59
|
+
*/
|
|
60
|
+
export declare function generate_flux_controller_patches(flux_config: FluxConfigType): KustomizePatchType[] | undefined;
|
|
61
|
+
//# sourceMappingURL=flux.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flux.d.ts","sourceRoot":"","sources":["../../src/generator/flux.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EAEd,iBAAiB,EACjB,aAAa,EACb,sBAAsB,EACtB,iBAAiB,IAAI,uBAAuB,EAC5C,YAAY,EACb,MAAM,oBAAoB,CAAC;AAI5B,OAAO,KAAK,EACV,qBAAqB,EACrB,qBAAqB,EAErB,kBAAkB,EAClB,yBAAyB,EAC1B,MAAM,YAAY,CAAC;AAIpB;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAAQ,CAAC;AAEtC;;GAEG;AACH,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,MAAM,CAE5F;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,MAAM,EACrB,kBAAkB,EAAE,MAAM,EAC1B,SAAS,SAAgB,EACzB,oBAAoB,CAAC,EAAE,MAAM,GAC5B,MAAM,CAMR;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,uBAAuB,EAAE,GAAG,SAAS,GAChD,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,SAAS,CA6BzD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,iBAAiB,EAChC,SAAS,EAAE,MAAM,GAChB,qBAAqB,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAW/C;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,aAAa,EAAE,iBAAiB,EAChC,SAAS,EAAE,MAAM,GAChB,qBAAqB,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,CA4BrD;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,aAAa,EACzB,eAAe,EAAE,MAAM,EACvB,cAAc,EAAE,MAAM,EACtB,QAAQ,GAAE,MAAyB,GAClC,qBAAqB,CAuCvB;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,yBAAyB,EACnC,sBAAsB,SAAgB,EACtC,WAAW,GAAE,eAAe,GAAG,eAAiC,EAChE,YAAY,CAAC,EAAE,sBAAsB,EACrC,oBAAoB,CAAC,EAAE,MAAM,EAC7B,QAAQ,GAAE,MAAyB,EACnC,OAAO,GAAE,MAAwB,GAChC,qBAAqB,CA6EvB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,YAAY,EACtB,aAAa,EAAE,iBAAiB,EAChC,cAAc,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAC1C,yBAAyB,CAgB3B;AAsDD;;;GAGG;AACH,wBAAgB,gCAAgC,CAC9C,WAAW,EAAE,cAAc,GAC1B,kBAAkB,EAAE,GAAG,SAAS,CAgClC"}
|