@xplane/core 1.0.1 → 1.2.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/dist/index.d.mts +124 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +329 -39
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -31,12 +31,24 @@ interface CompositionInput {
|
|
|
31
31
|
interface CompositionResult {
|
|
32
32
|
/** Resources to emit to Crossplane as desired composed resources. */
|
|
33
33
|
resources: DesiredResource[];
|
|
34
|
+
/**
|
|
35
|
+
* Resources that are blocked (pending resolution). The handler uses these
|
|
36
|
+
* to preserve any previously-observed documents in desired state (preventing
|
|
37
|
+
* accidental deletion), to prevent premature XR readiness, and to populate
|
|
38
|
+
* `status.xplane.blockedResources` on the XR.
|
|
39
|
+
*/
|
|
40
|
+
blockedResources: BlockedResource[];
|
|
34
41
|
/** External resources that need to be fetched via requireResource. */
|
|
35
42
|
externalResources: ExternalResourceRequest[];
|
|
36
43
|
/** Desired XR status patches (from this.xr.status assignments). */
|
|
37
44
|
xrStatus: Record<string, unknown>;
|
|
38
45
|
/** Diagnostic reports for blocked/unresolved resources. */
|
|
39
46
|
diagnostics: Diagnostic[];
|
|
47
|
+
/**
|
|
48
|
+
* When `true`, the runtime should inject a structured `status.xplane`
|
|
49
|
+
* payload on the XR. Controlled by `Composition.emitXplaneStatus`.
|
|
50
|
+
*/
|
|
51
|
+
emitXplaneStatus: boolean;
|
|
40
52
|
}
|
|
41
53
|
/** A desired composed resource ready for emission. */
|
|
42
54
|
interface DesiredResource {
|
|
@@ -46,6 +58,12 @@ interface DesiredResource {
|
|
|
46
58
|
document: Record<string, unknown>;
|
|
47
59
|
/** Whether this resource is ready (readiness already evaluated). */
|
|
48
60
|
ready: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* True when this resource is blocked (pending dependencies) and is being emitted
|
|
63
|
+
* as its previously-observed state to prevent Crossplane from deleting it.
|
|
64
|
+
* The handler must mark it as READY_FALSE and must not evaluate readiness.
|
|
65
|
+
*/
|
|
66
|
+
preserved?: boolean;
|
|
49
67
|
}
|
|
50
68
|
/** A request to fetch an external (existing) resource. */
|
|
51
69
|
interface ExternalResourceRequest {
|
|
@@ -58,6 +76,22 @@ interface ExternalResourceRequest {
|
|
|
58
76
|
/** Optional namespace. */
|
|
59
77
|
namespace?: string;
|
|
60
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* A blocked composed resource. Surfaced on the XR as
|
|
81
|
+
* `status.xplane.blockedResources` for visibility.
|
|
82
|
+
*/
|
|
83
|
+
interface BlockedResource {
|
|
84
|
+
/** Construct path name (also used as the Crossplane composed resource name). */
|
|
85
|
+
name: string;
|
|
86
|
+
/** The desired resource's apiVersion. */
|
|
87
|
+
apiVersion: string;
|
|
88
|
+
/** The desired resource's kind. */
|
|
89
|
+
kind: string;
|
|
90
|
+
/** The desired resource's metadata.name (if resolved). */
|
|
91
|
+
resourceName?: string;
|
|
92
|
+
/** Human-readable list of things this resource is waiting for. */
|
|
93
|
+
waitingFor?: string[];
|
|
94
|
+
}
|
|
61
95
|
/** A diagnostic report for a blocked resource. */
|
|
62
96
|
interface Diagnostic {
|
|
63
97
|
/** The resource name (construct path). */
|
|
@@ -126,6 +160,37 @@ interface ReadProxyMeta {
|
|
|
126
160
|
readonly owner: ResourceRef;
|
|
127
161
|
readonly path: string;
|
|
128
162
|
}
|
|
163
|
+
/**
|
|
164
|
+
* A Pending-like marker for strings produced by template literals that
|
|
165
|
+
* interpolate one or more unresolved ReadProxy values.
|
|
166
|
+
*
|
|
167
|
+
* Holds the template structure so the resolve phase can reconstruct the
|
|
168
|
+
* final string once all dependency slots are available.
|
|
169
|
+
*
|
|
170
|
+
* Invariant: parts.length === slots.length + 1
|
|
171
|
+
* result = parts[0] + resolved[0] + parts[1] + … + resolved[n-1] + parts[n]
|
|
172
|
+
*/
|
|
173
|
+
declare const PENDING_TEMPLATE_TAG: unique symbol;
|
|
174
|
+
declare class PendingTemplate {
|
|
175
|
+
/** Literal text segments between (and around) pending slots. */
|
|
176
|
+
readonly parts: readonly string[];
|
|
177
|
+
/** The pending slots — each maps to an entry in a resource's observed state. */
|
|
178
|
+
readonly slots: ReadonlyArray<{
|
|
179
|
+
source: ResourceRef;
|
|
180
|
+
path: string;
|
|
181
|
+
}>;
|
|
182
|
+
static readonly TAG: symbol;
|
|
183
|
+
readonly [PENDING_TEMPLATE_TAG] = true;
|
|
184
|
+
constructor(/** Literal text segments between (and around) pending slots. */
|
|
185
|
+
|
|
186
|
+
parts: readonly string[], /** The pending slots — each maps to an entry in a resource's observed state. */
|
|
187
|
+
|
|
188
|
+
slots: ReadonlyArray<{
|
|
189
|
+
source: ResourceRef;
|
|
190
|
+
path: string;
|
|
191
|
+
}>);
|
|
192
|
+
static is(value: unknown): value is PendingTemplate;
|
|
193
|
+
}
|
|
129
194
|
//#endregion
|
|
130
195
|
//#region src/tracking/dependency-graph.d.ts
|
|
131
196
|
/**
|
|
@@ -181,6 +246,19 @@ declare function createReadProxy<T extends object>(target: T, owner: ResourceRef
|
|
|
181
246
|
*/
|
|
182
247
|
declare function createPrimitiveReadProxy(value: string | number | boolean, owner: ResourceRef, path: string): object;
|
|
183
248
|
//#endregion
|
|
249
|
+
//#region src/tracking/token-registry.d.ts
|
|
250
|
+
interface TokenRegistry {
|
|
251
|
+
readonly byToken: Map<string, ReadProxyMeta>;
|
|
252
|
+
readonly byKey: Map<string, string>;
|
|
253
|
+
counter: number;
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Per-run AsyncLocalStorage for the template-literal token registry.
|
|
257
|
+
* Kept separate from compositionStorage (core/) to avoid circular deps.
|
|
258
|
+
*/
|
|
259
|
+
declare const tokenRegistryStorage: AsyncLocalStorage<TokenRegistry>;
|
|
260
|
+
declare function createTokenRegistry(): TokenRegistry;
|
|
261
|
+
//#endregion
|
|
184
262
|
//#region src/tracking/write-proxy.d.ts
|
|
185
263
|
/**
|
|
186
264
|
* Collector that accumulates dependency edges discovered during
|
|
@@ -253,6 +331,30 @@ declare class Composition<TSpec = Record<string, unknown>, TStatus = Record<stri
|
|
|
253
331
|
readonly graph: DependencyGraph;
|
|
254
332
|
/** The edge collector accumulating dependency edges. */
|
|
255
333
|
readonly collector: EdgeCollector;
|
|
334
|
+
/**
|
|
335
|
+
* When `true`, the runtime injects a structured `status.xplane` payload on
|
|
336
|
+
* the XR containing `emittedResources` and `blockedResources`. Defaults to
|
|
337
|
+
* `false` because writing this field requires the XRD's `openAPIV3Schema`
|
|
338
|
+
* to declare `status.xplane` (or `status` to allow unknown fields) — typed
|
|
339
|
+
* patches will otherwise be rejected by Crossplane.
|
|
340
|
+
*
|
|
341
|
+
* To enable, set in your composition's constructor:
|
|
342
|
+
*
|
|
343
|
+
* ```ts
|
|
344
|
+
* this.emitXplaneStatus = true;
|
|
345
|
+
* ```
|
|
346
|
+
*
|
|
347
|
+
* and add the following to your XRD's status schema:
|
|
348
|
+
*
|
|
349
|
+
* ```yaml
|
|
350
|
+
* status:
|
|
351
|
+
* properties:
|
|
352
|
+
* xplane:
|
|
353
|
+
* type: object
|
|
354
|
+
* x-kubernetes-preserve-unknown-fields: true
|
|
355
|
+
* ```
|
|
356
|
+
*/
|
|
357
|
+
emitXplaneStatus: boolean;
|
|
256
358
|
constructor();
|
|
257
359
|
/**
|
|
258
360
|
* Read-only accessor for Crossplane function pipeline context.
|
|
@@ -285,6 +387,8 @@ interface CompositionContext {
|
|
|
285
387
|
pipelineContext: ReadonlyMap<string, unknown>;
|
|
286
388
|
/** Pre-populated data for existing resources (from prior iterations). */
|
|
287
389
|
requiredResources: ReadonlyMap<string, Record<string, unknown>>;
|
|
390
|
+
/** Pre-populated data for composed resources (from prior iterations), keyed by `Composition/{path}`. */
|
|
391
|
+
observedComposed: ReadonlyMap<string, Record<string, unknown>>;
|
|
288
392
|
/** The dependency graph for this composition run. */
|
|
289
393
|
graph: DependencyGraph;
|
|
290
394
|
/** The edge collector for this composition run. */
|
|
@@ -434,6 +538,15 @@ declare class Resource extends Construct$1 {
|
|
|
434
538
|
allowedPattern?: RegExp;
|
|
435
539
|
extra?: string;
|
|
436
540
|
}): string;
|
|
541
|
+
/**
|
|
542
|
+
* Like {@link uniqueName} but produces names compliant with RFC 1123 DNS labels:
|
|
543
|
+
* lowercase alphanumeric characters and hyphens only, starting and ending with
|
|
544
|
+
* an alphanumeric character. Suitable for use as Kubernetes resource names.
|
|
545
|
+
*/
|
|
546
|
+
static uniqueNameRfc1123(scope: Construct$1, options?: {
|
|
547
|
+
maxLength?: number;
|
|
548
|
+
extra?: string;
|
|
549
|
+
}): string;
|
|
437
550
|
}
|
|
438
551
|
declare function getResourceInternals(resource: Resource): ResourceInternals;
|
|
439
552
|
declare function getResourceRef(resource: Resource): ResourceRef;
|
|
@@ -512,6 +625,12 @@ interface EmittedResource {
|
|
|
512
625
|
autoReady: boolean;
|
|
513
626
|
/** Custom readiness checks registered by the composition author. */
|
|
514
627
|
readyChecks: ReadyCheck[];
|
|
628
|
+
/**
|
|
629
|
+
* True when this resource is blocked (pending dependencies) but has previously-observed
|
|
630
|
+
* state that is being emitted as-is to prevent Crossplane from deleting it.
|
|
631
|
+
* The handler must mark it as READY_FALSE.
|
|
632
|
+
*/
|
|
633
|
+
preserved?: boolean;
|
|
515
634
|
}
|
|
516
635
|
//#endregion
|
|
517
636
|
//#region src/pipeline/diagnose.d.ts
|
|
@@ -533,6 +652,10 @@ declare function diagnose(state: PipelineState): PipelineState;
|
|
|
533
652
|
* Kubernetes resource document ready for Crossplane.
|
|
534
653
|
*
|
|
535
654
|
* Also extracts the XR desired status from this.xr.status assignments.
|
|
655
|
+
*
|
|
656
|
+
* For resources classified as 'blocked' that have previously-observed state,
|
|
657
|
+
* emits the observed document as-is (marked `preserved: true`) so that
|
|
658
|
+
* Crossplane does not delete them while their dependencies are still resolving.
|
|
536
659
|
*/
|
|
537
660
|
declare function emit(state: PipelineState): PipelineState;
|
|
538
661
|
//#endregion
|
|
@@ -604,5 +727,5 @@ declare function runPipeline(input: PipelineInput): PipelineState;
|
|
|
604
727
|
*/
|
|
605
728
|
declare function runComposition<TSpec, TStatus, TContext extends object>(CompositionClass: new () => Composition<TSpec, TStatus, TContext>, input: CompositionInput): CompositionResult;
|
|
606
729
|
//#endregion
|
|
607
|
-
export { Composition, type CompositionContext, type CompositionInput, type CompositionModule, type CompositionResult, Construct, DEFAULT_CHECKS, type DependencyEdge, DependencyGraph, type DesiredResource, type Diagnostic, type DiagnosticReport, EdgeCollector, type EmittedResource, type ExternalResourceRef, type ExternalResourceRequest, type KubernetesResource, Pending, type PipelineContextAccessor, type PipelineInput, type PipelineState, type ReadProxyMeta, type ReadyCheck, type ReadyCheckFn, Resource, type ResourceClassification, type ResourceConfig, type ResourceProps, type ResourceRef, type XplaneLogger, type XrProxy, compositionStorage, createPrimitiveReadProxy, createReadProxy, createWriteProxy, diagnose, emit, evaluateReadiness, getCompositionContext, getDesiredDocument, getExternalRef, getLogger, getObservedDocument, getReadProxyMeta, getReadyChecks, getResourceInternals, getResourceRef, getXrDesiredStatus, hydrate, hydrateObserved, isExternal, isReadProxy, resolve, runComposition, runPipeline, sequence, withLogger };
|
|
730
|
+
export { type BlockedResource, Composition, type CompositionContext, type CompositionInput, type CompositionModule, type CompositionResult, Construct, DEFAULT_CHECKS, type DependencyEdge, DependencyGraph, type DesiredResource, type Diagnostic, type DiagnosticReport, EdgeCollector, type EmittedResource, type ExternalResourceRef, type ExternalResourceRequest, type KubernetesResource, Pending, PendingTemplate, type PipelineContextAccessor, type PipelineInput, type PipelineState, type ReadProxyMeta, type ReadyCheck, type ReadyCheckFn, Resource, type ResourceClassification, type ResourceConfig, type ResourceProps, type ResourceRef, type XplaneLogger, type XrProxy, compositionStorage, createPrimitiveReadProxy, createReadProxy, createTokenRegistry, createWriteProxy, diagnose, emit, evaluateReadiness, getCompositionContext, getDesiredDocument, getExternalRef, getLogger, getObservedDocument, getReadProxyMeta, getReadyChecks, getResourceInternals, getResourceRef, getXrDesiredStatus, hydrate, hydrateObserved, isExternal, isReadProxy, resolve, runComposition, runPipeline, sequence, tokenRegistryStorage, withLogger };
|
|
608
731
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/contract.ts","../src/tracking/types.ts","../src/tracking/dependency-graph.ts","../src/tracking/read-proxy.ts","../src/tracking/write-proxy.ts","../src/core/composition.ts","../src/core/context.ts","../src/readiness/types.ts","../src/readiness/defaults.ts","../src/readiness/evaluate.ts","../src/core/resource.ts","../src/logging/types.ts","../src/logging/context.ts","../src/pipeline/types.ts","../src/pipeline/diagnose.ts","../src/pipeline/emit.ts","../src/pipeline/hydrate.ts","../src/pipeline/resolve.ts","../src/pipeline/sequence.ts","../src/pipeline/index.ts","../src/run.ts"],"mappings":";;;;;;;;AAeA;;;;;;;;UAAiB,gBAAA;EAQS;EANxB,EAAA,EAAI,MAAA;EAAJ;EAEA,eAAA,EAAiB,MAAA;EAAjB;EAEA,gBAAA,EAAkB,MAAA,SAAe,MAAA;EAAjC;EAEA,gBAAA,EAAkB,MAAA,SAAe,MAAA;AAAA;;;;;UASlB,iBAAA;EAAA;EAEf,SAAA,EAAW,eAAA
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/contract.ts","../src/tracking/types.ts","../src/tracking/dependency-graph.ts","../src/tracking/read-proxy.ts","../src/tracking/token-registry.ts","../src/tracking/write-proxy.ts","../src/core/composition.ts","../src/core/context.ts","../src/readiness/types.ts","../src/readiness/defaults.ts","../src/readiness/evaluate.ts","../src/core/resource.ts","../src/logging/types.ts","../src/logging/context.ts","../src/pipeline/types.ts","../src/pipeline/diagnose.ts","../src/pipeline/emit.ts","../src/pipeline/hydrate.ts","../src/pipeline/resolve.ts","../src/pipeline/sequence.ts","../src/pipeline/index.ts","../src/run.ts"],"mappings":"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"}
|