typekro 0.33.5 → 0.33.6

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.
Files changed (39) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/core/aspects/apply.d.ts.map +1 -1
  3. package/dist/core/aspects/apply.js +3 -0
  4. package/dist/core/aspects/apply.js.map +1 -1
  5. package/dist/core/composition/imperative.d.ts.map +1 -1
  6. package/dist/core/composition/imperative.js +34 -1
  7. package/dist/core/composition/imperative.js.map +1 -1
  8. package/dist/core/dependencies/resolver.d.ts +1 -0
  9. package/dist/core/dependencies/resolver.d.ts.map +1 -1
  10. package/dist/core/dependencies/resolver.js +51 -18
  11. package/dist/core/dependencies/resolver.js.map +1 -1
  12. package/dist/core/metadata/resource-metadata.d.ts +9 -0
  13. package/dist/core/metadata/resource-metadata.d.ts.map +1 -1
  14. package/dist/core/metadata/resource-metadata.js.map +1 -1
  15. package/dist/factories/nats/compositions/index.d.ts +1 -0
  16. package/dist/factories/nats/compositions/index.d.ts.map +1 -1
  17. package/dist/factories/nats/compositions/index.js +1 -0
  18. package/dist/factories/nats/compositions/index.js.map +1 -1
  19. package/dist/factories/nats/compositions/nack-controller-bootstrap.d.ts +44 -0
  20. package/dist/factories/nats/compositions/nack-controller-bootstrap.d.ts.map +1 -0
  21. package/dist/factories/nats/compositions/nack-controller-bootstrap.js +157 -0
  22. package/dist/factories/nats/compositions/nack-controller-bootstrap.js.map +1 -0
  23. package/dist/factories/nats/compositions/nack-controller-migration.d.ts +18 -0
  24. package/dist/factories/nats/compositions/nack-controller-migration.d.ts.map +1 -0
  25. package/dist/factories/nats/compositions/nack-controller-migration.js +126 -0
  26. package/dist/factories/nats/compositions/nack-controller-migration.js.map +1 -0
  27. package/dist/factories/nats/compositions/nats-bootstrap.d.ts +31 -1
  28. package/dist/factories/nats/compositions/nats-bootstrap.d.ts.map +1 -1
  29. package/dist/factories/nats/compositions/nats-bootstrap.js +186 -119
  30. package/dist/factories/nats/compositions/nats-bootstrap.js.map +1 -1
  31. package/dist/factories/nats/resources/helm.d.ts +1 -0
  32. package/dist/factories/nats/resources/helm.d.ts.map +1 -1
  33. package/dist/factories/nats/resources/helm.js +1 -0
  34. package/dist/factories/nats/resources/helm.js.map +1 -1
  35. package/dist/factories/nats/types.d.ts +46 -0
  36. package/dist/factories/nats/types.d.ts.map +1 -1
  37. package/dist/factories/nats/types.js +30 -0
  38. package/dist/factories/nats/types.js.map +1 -1
  39. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"resource-metadata.js","sourceRoot":"","sources":["../../../src/core/metadata/resource-metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource-metadata.js","sourceRoot":"","sources":["../../../src/core/metadata/resource-metadata.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
+ export * from './nack-controller-bootstrap.js';
1
2
  export * from './nats-bootstrap.js';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/factories/nats/compositions/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/factories/nats/compositions/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qBAAqB,CAAC"}
@@ -1,2 +1,3 @@
1
+ export * from './nack-controller-bootstrap.js';
1
2
  export * from './nats-bootstrap.js';
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/factories/nats/compositions/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/factories/nats/compositions/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Own the single cluster-wide NACK controller used by NATS installations.
3
+ *
4
+ * The official chart's non-namespaced mode creates fixed-name ClusterRoles and
5
+ * ClusterRoleBindings. Installing the chart once per NATS cluster makes those
6
+ * resources cross-instance shared state: deleting one release can remove RBAC
7
+ * from another controller. This composition gives that state one explicit
8
+ * lifecycle owner. `natsBootstrap` consumes it through `singleton(...)`.
9
+ *
10
+ * The controller intentionally omits a default NATS URL, selecting NACK's
11
+ * `-crd-connect` mode. Each Stream, Consumer, or Account then identifies its
12
+ * own NATS system through its typed connection fields, allowing one controller
13
+ * to reconcile multiple NATS systems safely.
14
+ */
15
+ export declare const nackControllerBootstrap: import("../../../index.js").CallableComposition<{
16
+ name: string;
17
+ namespace: string;
18
+ namespaceOwnership?: "external" | "owned";
19
+ version?: string;
20
+ repositoryName?: string;
21
+ repositoryUrl?: string;
22
+ values?: Record<string, unknown>;
23
+ }, {
24
+ ready: boolean;
25
+ failed: boolean;
26
+ phase: "Ready" | "Failed" | "Installing";
27
+ version: string;
28
+ }>;
29
+ /** Explicit lifecycle alias for the cluster-wide NACK owner. */
30
+ export declare const nackControllerInstallation: import("../../../index.js").CallableComposition<{
31
+ name: string;
32
+ namespace: string;
33
+ namespaceOwnership?: "external" | "owned";
34
+ version?: string;
35
+ repositoryName?: string;
36
+ repositoryUrl?: string;
37
+ values?: Record<string, unknown>;
38
+ }, {
39
+ ready: boolean;
40
+ failed: boolean;
41
+ phase: "Ready" | "Failed" | "Installing";
42
+ version: string;
43
+ }>;
44
+ //# sourceMappingURL=nack-controller-bootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nack-controller-bootstrap.d.ts","sourceRoot":"","sources":["../../../../src/factories/nats/compositions/nack-controller-bootstrap.ts"],"names":[],"mappings":"AA8BA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;EA0FnC,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;EAA0B,CAAC"}
@@ -0,0 +1,157 @@
1
+ import { mergeValuesExpression } from '../../../core/aspects/values-merge.js';
2
+ import { kubernetesComposition } from '../../../core/composition/imperative.js';
3
+ import { Cel } from '../../../core/references/cel.js';
4
+ import { isKubernetesRef } from '../../../utils/type-guards.js';
5
+ import { helmReleaseConditionSummary } from '../../helm/status.js';
6
+ import { namespace } from '../../kubernetes/core/namespace.js';
7
+ import { DEFAULT_NACK_REPOSITORY_NAME, DEFAULT_NACK_VERSION, DEFAULT_NATS_REPOSITORY_URL, natsHelmRelease, natsHelmRepository, } from '../resources/helm.js';
8
+ import { NackControllerBootstrapConfigSchema, NackControllerBootstrapStatusSchema, } from '../types.js';
9
+ const NACK_VALUES_VALIDATION = '(!has(self.jetstream) || (' +
10
+ '(!has(self.jetstream.nats) || size(self.jetstream.nats) == 0) && ' +
11
+ '(!has(self.jetstream.tls) || size(self.jetstream.tls) == 0) && ' +
12
+ '(!has(self.jetstream.additionalArgs) || self.jetstream.additionalArgs.all(arg, ' +
13
+ '!(arg == "-s" || arg.startsWith("-s=") || arg == "--server" || ' +
14
+ 'arg.startsWith("--server=") || arg == "--namespace" || ' +
15
+ 'arg.startsWith("--namespace=") || arg == "--read-only" || ' +
16
+ 'arg.startsWith("--read-only="))))) && !has(self.rbacRules)';
17
+ /**
18
+ * Own the single cluster-wide NACK controller used by NATS installations.
19
+ *
20
+ * The official chart's non-namespaced mode creates fixed-name ClusterRoles and
21
+ * ClusterRoleBindings. Installing the chart once per NATS cluster makes those
22
+ * resources cross-instance shared state: deleting one release can remove RBAC
23
+ * from another controller. This composition gives that state one explicit
24
+ * lifecycle owner. `natsBootstrap` consumes it through `singleton(...)`.
25
+ *
26
+ * The controller intentionally omits a default NATS URL, selecting NACK's
27
+ * `-crd-connect` mode. Each Stream, Consumer, or Account then identifies its
28
+ * own NATS system through its typed connection fields, allowing one controller
29
+ * to reconcile multiple NATS systems safely.
30
+ */
31
+ export const nackControllerBootstrap = kubernetesComposition({
32
+ name: 'nack-controller-bootstrap',
33
+ kind: 'NackControllerBootstrap',
34
+ spec: NackControllerBootstrapConfigSchema,
35
+ status: NackControllerBootstrapStatusSchema,
36
+ }, (spec) => {
37
+ const graphMode = isKubernetesRef(spec.name);
38
+ const ownsNamespace = graphMode
39
+ ? Cel.expr('!has(schema.spec.namespaceOwnership) || schema.spec.namespaceOwnership == "owned"')
40
+ : spec.namespaceOwnership !== 'external';
41
+ const version = spec.version ?? DEFAULT_NACK_VERSION;
42
+ const repositoryName = spec.repositoryName ?? DEFAULT_NACK_REPOSITORY_NAME;
43
+ const repositoryUrl = spec.repositoryUrl ?? DEFAULT_NATS_REPOSITORY_URL;
44
+ if (!graphMode) {
45
+ validateNackControllerValues(spec.values);
46
+ }
47
+ const controllerName = graphMode
48
+ ? Cel.expr('"typekro-" + string(schema.spec.name) + "-controller"')
49
+ : `typekro-${spec.name}-controller`;
50
+ const protectedValues = {
51
+ jetstream: {
52
+ enabled: true,
53
+ controlLoop: true,
54
+ },
55
+ namespaced: false,
56
+ // The v0.33.5 per-installation chart used the chart default
57
+ // `jetstream-controller`. The TypeKro prefix makes this identity
58
+ // disjoint for every legal controller name, including `jetstream`, so
59
+ // the singleton can become Ready before the legacy release is retired
60
+ // without asking Helm to steal another release's ClusterRole/Binding.
61
+ nameOverride: spec.name,
62
+ namespaceOverride: spec.namespace,
63
+ serviceAccountName: controllerName,
64
+ useLegacyNames: false,
65
+ readOnly: false,
66
+ automountServiceAccountToken: true,
67
+ };
68
+ // User values are deliberately the base. The singleton invariants are the
69
+ // final overlay so ordinary chart customization remains available without
70
+ // being able to select a single NATS server, a namespace-only watch, or a
71
+ // controller that never reconciles.
72
+ const values = spec.values
73
+ ? mergeValuesExpression(spec.values, protectedValues)
74
+ : protectedValues;
75
+ namespace({
76
+ id: 'nackNamespace',
77
+ metadata: {
78
+ name: spec.namespace,
79
+ labels: {
80
+ 'app.kubernetes.io/name': 'nack',
81
+ 'app.kubernetes.io/instance': spec.name,
82
+ 'app.kubernetes.io/managed-by': 'typekro',
83
+ },
84
+ },
85
+ }).withIncludeWhen(ownsNamespace);
86
+ const repository = natsHelmRepository({
87
+ id: 'nackHelmRepository',
88
+ name: repositoryName,
89
+ namespace: spec.namespace,
90
+ url: repositoryUrl,
91
+ });
92
+ const release = natsHelmRelease({
93
+ id: 'nackHelmRelease',
94
+ name: spec.name,
95
+ namespace: spec.namespace,
96
+ chart: 'nack',
97
+ version,
98
+ values,
99
+ repositoryName,
100
+ repositoryNamespace: spec.namespace,
101
+ repositoryUrl,
102
+ });
103
+ release.dependsOn(repository);
104
+ return {
105
+ ...helmReleaseConditionSummary(release),
106
+ version,
107
+ };
108
+ }, {
109
+ schemaFieldValidations: {
110
+ values: NACK_VALUES_VALIDATION,
111
+ },
112
+ });
113
+ /** Explicit lifecycle alias for the cluster-wide NACK owner. */
114
+ export const nackControllerInstallation = nackControllerBootstrap;
115
+ function validateNackControllerValues(values) {
116
+ if (!values || typeof values !== 'object' || isKubernetesRef(values))
117
+ return;
118
+ const valuesRecord = values;
119
+ if (Object.hasOwn(valuesRecord, 'rbacRules')) {
120
+ throw new Error('NACK singleton values.rbacRules cannot replace the controller permissions. Add separate ' +
121
+ 'RBAC resources for extra access.');
122
+ }
123
+ const jetstream = valuesRecord.jetstream;
124
+ if (!jetstream || typeof jetstream !== 'object' || Array.isArray(jetstream))
125
+ return;
126
+ const nats = jetstream.nats;
127
+ if (nats &&
128
+ typeof nats === 'object' &&
129
+ !Array.isArray(nats) &&
130
+ Object.keys(nats).length > 0) {
131
+ throw new Error('NACK singleton values.jetstream.nats must be omitted. The shared controller uses ' +
132
+ 'CRD-connect mode; each JetStream resource declares its own NATS connection.');
133
+ }
134
+ const tls = jetstream.tls;
135
+ if (tls &&
136
+ typeof tls === 'object' &&
137
+ !Array.isArray(tls) &&
138
+ Object.keys(tls).length > 0) {
139
+ throw new Error('NACK singleton values.jetstream.tls must be omitted. Shared-controller connection ' +
140
+ 'security belongs on each JetStream resource.');
141
+ }
142
+ const additionalArgs = jetstream.additionalArgs;
143
+ if (Array.isArray(additionalArgs) &&
144
+ additionalArgs.some((argument) => typeof argument === 'string' &&
145
+ (argument === '-s' ||
146
+ argument.startsWith('-s=') ||
147
+ argument === '--server' ||
148
+ argument.startsWith('--server=') ||
149
+ argument === '--namespace' ||
150
+ argument.startsWith('--namespace=') ||
151
+ argument === '--read-only' ||
152
+ argument.startsWith('--read-only=')))) {
153
+ throw new Error('NACK singleton values.jetstream.additionalArgs cannot override server, namespace, or ' +
154
+ 'read-only routing invariants.');
155
+ }
156
+ }
157
+ //# sourceMappingURL=nack-controller-bootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nack-controller-bootstrap.js","sourceRoot":"","sources":["../../../../src/factories/nats/compositions/nack-controller-bootstrap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { KubernetesObjectApi } from '@kubernetes/client-node';
2
+ export interface LegacyNackRetirementOptions {
3
+ readonly namespace: string;
4
+ readonly instanceName: string;
5
+ readonly kubernetesApi: KubernetesObjectApi;
6
+ readonly timeout?: number;
7
+ readonly abortSignal?: AbortSignal;
8
+ }
9
+ /**
10
+ * Retire the v0.33.5 instance-owned NACK HelmRelease after the replacement
11
+ * singleton is Ready.
12
+ *
13
+ * This is intentionally ownership- and UID-leased. A same-named user release,
14
+ * a release belonging to another TypeKro instance, or a replacement object
15
+ * appearing during deletion is never adopted or deleted.
16
+ */
17
+ export declare function retireLegacyNackController(options: LegacyNackRetirementOptions): Promise<void>;
18
+ //# sourceMappingURL=nack-controller-migration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nack-controller-migration.d.ts","sourceRoot":"","sources":["../../../../src/factories/nats/compositions/nack-controller-migration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AASrF,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,mBAAmB,CAAC;IAC5C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;CACpC;AAED;;;;;;;GAOG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,IAAI,CAAC,CAkEf"}
@@ -0,0 +1,126 @@
1
+ import { extractTypekroTags } from '../../../core/deployment/resource-tagging.js';
2
+ import { isNotFoundError } from '../../../core/kubernetes/errors.js';
3
+ const LEGACY_NACK_RELEASE = 'nack';
4
+ const LEGACY_NACK_RESOURCE_ID = 'nackHelmRelease';
5
+ const CURRENT_NATS_RESOURCE_ID = 'natsHelmRelease';
6
+ const NATS_FACTORY_NAME = 'nats-bootstrap';
7
+ /**
8
+ * Retire the v0.33.5 instance-owned NACK HelmRelease after the replacement
9
+ * singleton is Ready.
10
+ *
11
+ * This is intentionally ownership- and UID-leased. A same-named user release,
12
+ * a release belonging to another TypeKro instance, or a replacement object
13
+ * appearing during deletion is never adopted or deleted.
14
+ */
15
+ export async function retireLegacyNackController(options) {
16
+ const identity = {
17
+ apiVersion: 'helm.toolkit.fluxcd.io/v2',
18
+ kind: 'HelmRelease',
19
+ metadata: {
20
+ name: LEGACY_NACK_RELEASE,
21
+ namespace: options.namespace,
22
+ },
23
+ };
24
+ let live;
25
+ try {
26
+ live = await options.kubernetesApi.read(identity);
27
+ }
28
+ catch (error) {
29
+ if (isNotFoundError(error))
30
+ return;
31
+ throw error;
32
+ }
33
+ const classification = classifyNackRelease(live, options.instanceName);
34
+ if (classification === 'current-nats-server')
35
+ return;
36
+ assertLegacyNackOwnership(live, options.instanceName);
37
+ const uid = live.metadata?.uid;
38
+ if (!uid) {
39
+ throw new Error(`Refusing to retire legacy NACK HelmRelease ${options.namespace}/${LEGACY_NACK_RELEASE}: ` +
40
+ 'metadata.uid is missing.');
41
+ }
42
+ await options.kubernetesApi.delete(live, undefined, undefined, undefined, undefined, 'Foreground', { preconditions: { uid } });
43
+ const timeout = options.timeout ?? 300_000;
44
+ const startedAt = Date.now();
45
+ while (Date.now() - startedAt < timeout) {
46
+ options.abortSignal?.throwIfAborted();
47
+ try {
48
+ const current = await options.kubernetesApi.read(identity);
49
+ if (current.metadata?.uid && current.metadata.uid !== uid) {
50
+ throw new Error(`Refusing to continue legacy NACK retirement for ${options.namespace}/${LEGACY_NACK_RELEASE}: ` +
51
+ `UID changed from ${uid} to ${current.metadata.uid}.`);
52
+ }
53
+ }
54
+ catch (error) {
55
+ if (isNotFoundError(error))
56
+ return;
57
+ throw error;
58
+ }
59
+ await abortableDelay(1_000, options.abortSignal);
60
+ }
61
+ throw new Error(`Timed out after ${timeout}ms retiring legacy NACK HelmRelease ` +
62
+ `${options.namespace}/${LEGACY_NACK_RELEASE} (uid ${uid}).`);
63
+ }
64
+ function assertLegacyNackOwnership(resource, instanceName) {
65
+ const tags = extractTypekroTags(resource);
66
+ const chartName = chart(resource);
67
+ const problems = [
68
+ ...(tags.factoryName === NATS_FACTORY_NAME
69
+ ? []
70
+ : [`factory=${tags.factoryName ?? '<missing>'}`]),
71
+ ...(tags.instanceName === instanceName ? [] : [`instance=${tags.instanceName ?? '<missing>'}`]),
72
+ ...(tags.resourceId === LEGACY_NACK_RESOURCE_ID
73
+ ? []
74
+ : [`resource-id=${tags.resourceId ?? '<missing>'}`]),
75
+ ...(chartName === 'nack' ? [] : [`chart=${String(chartName ?? '<missing>')}`]),
76
+ ];
77
+ if (problems.length > 0) {
78
+ throw new Error(`Refusing to retire HelmRelease ${resource.metadata?.namespace}/${resource.metadata?.name}: ` +
79
+ `it is not the v0.33.5 NACK child owned by ${NATS_FACTORY_NAME}/${instanceName} ` +
80
+ `(${problems.join(', ')}).`);
81
+ }
82
+ }
83
+ function classifyNackRelease(resource, instanceName) {
84
+ const tags = extractTypekroTags(resource);
85
+ const chartName = chart(resource);
86
+ if (tags.factoryName === NATS_FACTORY_NAME &&
87
+ tags.instanceName === instanceName &&
88
+ tags.resourceId === LEGACY_NACK_RESOURCE_ID &&
89
+ chartName === 'nack') {
90
+ return 'legacy-controller';
91
+ }
92
+ // A current NATS instance may itself be named `nack`, which means the fixed
93
+ // legacy lookup finds the successfully deployed server HelmRelease. This is
94
+ // not an ownership mismatch and there is no legacy controller left to
95
+ // retire. Match every current identity component before treating it as
96
+ // absent so a same-named foreign release still fails closed.
97
+ if (resource.metadata?.name === LEGACY_NACK_RELEASE &&
98
+ tags.factoryName === NATS_FACTORY_NAME &&
99
+ tags.instanceName === instanceName &&
100
+ tags.resourceId === CURRENT_NATS_RESOURCE_ID &&
101
+ chartName === 'nats') {
102
+ return 'current-nats-server';
103
+ }
104
+ return 'unrelated';
105
+ }
106
+ function chart(resource) {
107
+ return resource.spec?.chart?.spec?.chart;
108
+ }
109
+ function abortableDelay(milliseconds, signal) {
110
+ if (!signal) {
111
+ return new Promise((resolve) => setTimeout(resolve, milliseconds));
112
+ }
113
+ signal.throwIfAborted();
114
+ return new Promise((resolve, reject) => {
115
+ const onAbort = () => {
116
+ clearTimeout(timer);
117
+ reject(signal.reason ?? new DOMException('The operation was aborted', 'AbortError'));
118
+ };
119
+ const timer = setTimeout(() => {
120
+ signal.removeEventListener('abort', onAbort);
121
+ resolve();
122
+ }, milliseconds);
123
+ signal.addEventListener('abort', onAbort, { once: true });
124
+ });
125
+ }
126
+ //# sourceMappingURL=nack-controller-migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nack-controller-migration.js","sourceRoot":"","sources":["../../../../src/factories/nats/compositions/nack-controller-migration.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,34 @@
1
- /** Install an official NATS cluster with JetStream and the NACK controller. */
1
+ import { type NatsBootstrapBuildOptions } from '../types.js';
2
+ /**
3
+ * Build a NATS installation composition backed by one cluster-wide NACK owner.
4
+ *
5
+ * NACK ownership is deliberately build-time. Every consumer of the singleton
6
+ * must agree on an identical concrete controller spec.
7
+ */
8
+ export declare function makeNatsBootstrap(options?: NatsBootstrapBuildOptions): import("../../../index.js").CallableComposition<{
9
+ name: string;
10
+ namespace?: string;
11
+ namespaceOwnership?: "external" | "owned";
12
+ version?: string;
13
+ nackVersion?: string;
14
+ repositoryName?: string;
15
+ repositoryNamespace?: string;
16
+ repositoryUrl?: string;
17
+ replicas?: number;
18
+ storageSize?: string;
19
+ storageClassName?: string;
20
+ pvcRetentionPolicy?: "delete" | "retain";
21
+ values?: Record<string, unknown>;
22
+ nackValues?: Record<string, unknown>;
23
+ }, {
24
+ ready: boolean;
25
+ failed: boolean;
26
+ phase: "Ready" | "Failed" | "Installing";
27
+ serverVersion: string;
28
+ controllerVersion: string;
29
+ endpoint: string;
30
+ }>;
31
+ /** Install an official NATS cluster backed by the shared NACK controller. */
2
32
  export declare const natsBootstrap: import("../../../index.js").CallableComposition<{
3
33
  name: string;
4
34
  namespace?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"nats-bootstrap.d.ts","sourceRoot":"","sources":["../../../../src/factories/nats/compositions/nats-bootstrap.ts"],"names":[],"mappings":"AAuBA,+EAA+E;AAC/E,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;EAyIzB,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;EAAgB,CAAC"}
1
+ {"version":3,"file":"nats-bootstrap.d.ts","sourceRoot":"","sources":["../../../../src/factories/nats/compositions/nats-bootstrap.ts"],"names":[],"mappings":"AA0BA,OAAO,EAEL,KAAK,yBAAyB,EAK/B,MAAM,aAAa,CAAC;AASrB;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,yBAA8B;;;;;;;;;;;;;;;;;;;;;;GAqNxE;AAED,6EAA6E;AAC7E,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;EAAsB,CAAC;AAEjD,8DAA8D;AAC9D,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;EAAgB,CAAC"}