@namzu/sandbox 26.0.0 → 28.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/CHANGELOG.md +62 -7
- package/README.md +20 -7
- package/dist/backends/firecracker/protocol.d.ts +46 -0
- package/dist/backends/firecracker/protocol.d.ts.map +1 -1
- package/dist/backends/firecracker/protocol.js +31 -0
- package/dist/backends/firecracker/protocol.js.map +1 -1
- package/dist/backends/firecracker/transport.d.ts +15 -1
- package/dist/backends/firecracker/transport.d.ts.map +1 -1
- package/dist/backends/firecracker/transport.js +16 -0
- package/dist/backends/firecracker/transport.js.map +1 -1
- package/dist/backends/kubernetes/allocation.d.ts +115 -0
- package/dist/backends/kubernetes/allocation.d.ts.map +1 -0
- package/dist/backends/kubernetes/allocation.js +130 -0
- package/dist/backends/kubernetes/allocation.js.map +1 -0
- package/dist/backends/kubernetes/egress-policy.d.ts +111 -35
- package/dist/backends/kubernetes/egress-policy.d.ts.map +1 -1
- package/dist/backends/kubernetes/egress-policy.js +81 -41
- package/dist/backends/kubernetes/egress-policy.js.map +1 -1
- package/dist/backends/kubernetes/identity.d.ts +129 -0
- package/dist/backends/kubernetes/identity.d.ts.map +1 -1
- package/dist/backends/kubernetes/identity.js +150 -0
- package/dist/backends/kubernetes/identity.js.map +1 -1
- package/dist/backends/kubernetes/index.d.ts +23 -1
- package/dist/backends/kubernetes/index.d.ts.map +1 -1
- package/dist/backends/kubernetes/index.js +22 -3
- package/dist/backends/kubernetes/index.js.map +1 -1
- package/dist/backends/kubernetes/objects.d.ts +76 -0
- package/dist/backends/kubernetes/objects.d.ts.map +1 -1
- package/dist/backends/kubernetes/objects.js +61 -0
- package/dist/backends/kubernetes/objects.js.map +1 -1
- package/dist/backends/kubernetes/per-sandbox-fence.d.ts +194 -0
- package/dist/backends/kubernetes/per-sandbox-fence.d.ts.map +1 -0
- package/dist/backends/kubernetes/per-sandbox-fence.js +522 -0
- package/dist/backends/kubernetes/per-sandbox-fence.js.map +1 -0
- package/dist/backends/kubernetes/per-sandbox-policy.d.ts +45 -3
- package/dist/backends/kubernetes/per-sandbox-policy.d.ts.map +1 -1
- package/dist/backends/kubernetes/per-sandbox-policy.js +98 -8
- package/dist/backends/kubernetes/per-sandbox-policy.js.map +1 -1
- package/dist/backends/kubernetes/sandbox.d.ts +4 -9
- package/dist/backends/kubernetes/sandbox.d.ts.map +1 -1
- package/dist/backends/kubernetes/sandbox.js +4 -9
- package/dist/backends/kubernetes/sandbox.js.map +1 -1
- package/dist/backends/kubernetes/transport.d.ts +108 -1
- package/dist/backends/kubernetes/transport.d.ts.map +1 -1
- package/dist/backends/kubernetes/transport.js +150 -6
- package/dist/backends/kubernetes/transport.js.map +1 -1
- package/dist/backends/kubernetes/workspace-allocate.d.ts +206 -0
- package/dist/backends/kubernetes/workspace-allocate.d.ts.map +1 -0
- package/dist/backends/kubernetes/workspace-allocate.js +332 -0
- package/dist/backends/kubernetes/workspace-allocate.js.map +1 -0
- package/dist/backends/kubernetes/workspace-observe.d.ts +187 -0
- package/dist/backends/kubernetes/workspace-observe.d.ts.map +1 -0
- package/dist/backends/kubernetes/workspace-observe.js +343 -0
- package/dist/backends/kubernetes/workspace-observe.js.map +1 -0
- package/dist/backends/kubernetes/workspace-per-sandbox.d.ts +94 -0
- package/dist/backends/kubernetes/workspace-per-sandbox.d.ts.map +1 -0
- package/dist/backends/kubernetes/workspace-per-sandbox.js +119 -0
- package/dist/backends/kubernetes/workspace-per-sandbox.js.map +1 -0
- package/dist/backends/kubernetes/workspace.d.ts +139 -5
- package/dist/backends/kubernetes/workspace.d.ts.map +1 -1
- package/dist/backends/kubernetes/workspace.js +434 -36
- package/dist/backends/kubernetes/workspace.js.map +1 -1
- package/dist/index.d.ts +83 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +100 -6
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/src/backends/firecracker/protocol.ts +47 -0
- package/src/backends/firecracker/transport.ts +31 -0
- package/src/backends/kubernetes/allocation.ts +199 -0
- package/src/backends/kubernetes/egress-policy.ts +165 -42
- package/src/backends/kubernetes/identity.ts +210 -0
- package/src/backends/kubernetes/index.ts +61 -2
- package/src/backends/kubernetes/objects.ts +98 -0
- package/src/backends/kubernetes/per-sandbox-fence.ts +800 -0
- package/src/backends/kubernetes/per-sandbox-policy.ts +152 -17
- package/src/backends/kubernetes/sandbox.ts +4 -9
- package/src/backends/kubernetes/transport.ts +203 -4
- package/src/backends/kubernetes/workspace-allocate.ts +607 -0
- package/src/backends/kubernetes/workspace-observe.ts +590 -0
- package/src/backends/kubernetes/workspace-per-sandbox.ts +179 -0
- package/src/backends/kubernetes/workspace.ts +655 -34
- package/src/index.ts +193 -3
|
@@ -430,6 +430,50 @@ export interface KubernetesPerSandboxEgressConfig {
|
|
|
430
430
|
* leave `tlsServerNames` off for a domain list.
|
|
431
431
|
*/
|
|
432
432
|
readonly narrowing?: KubernetesCiliumEgressNarrowing;
|
|
433
|
+
/**
|
|
434
|
+
* The identity the operator's fence bounds, spelled as the API server
|
|
435
|
+
* spells a user: `system:serviceaccount:<namespace>:<name>` for a
|
|
436
|
+
* ServiceAccount. When set, the fence check requires the policy's
|
|
437
|
+
* `matchConditions` to name exactly this identity
|
|
438
|
+
* (`request.userInfo.username == '<identity>'`), and refuses before any
|
|
439
|
+
* write when they name another one or none.
|
|
440
|
+
*
|
|
441
|
+
* Unset (the default), the identity is not checked: the shipped fence
|
|
442
|
+
* names `system:serviceaccount:namzu-sandboxes:namzu-sandbox-host`, and a
|
|
443
|
+
* host that authenticates as something else would otherwise hold the write
|
|
444
|
+
* verbs with a fence that never matches it — which reads exactly like an
|
|
445
|
+
* enforced one. Set it whenever you know who the host is.
|
|
446
|
+
*/
|
|
447
|
+
readonly hostIdentity?: string;
|
|
448
|
+
/**
|
|
449
|
+
* The operator-pinned set of hosts and ports a host may grant. Names the
|
|
450
|
+
* `ConfigMap` that holds it; see
|
|
451
|
+
* `k8s/manifests/validatingadmissionpolicy-cilium-permitted-hosts.yaml`
|
|
452
|
+
* for the companion policy that enforces it at admission and the shape of
|
|
453
|
+
* the ConfigMap.
|
|
454
|
+
*
|
|
455
|
+
* Set, three things change and nothing else does:
|
|
456
|
+
*
|
|
457
|
+
* - the fence check additionally proves the companion policy and its
|
|
458
|
+
* binding (the policy name with `-hosts` appended, and its binding),
|
|
459
|
+
* including that the binding's `paramRef` is THIS ConfigMap and denies
|
|
460
|
+
* when it is missing;
|
|
461
|
+
* - every `setNetworkPolicy` call with a non-empty list reads the
|
|
462
|
+
* ConfigMap first and refuses locally, with a named error and nothing
|
|
463
|
+
* written, a host or a port outside it. A narrowing that leaves a
|
|
464
|
+
* host's ports unrestricted is a port outside any list;
|
|
465
|
+
* - a missing or malformed ConfigMap refuses every such call.
|
|
466
|
+
*
|
|
467
|
+
* Unset (the default), none of that runs and behaviour is what it was.
|
|
468
|
+
*/
|
|
469
|
+
readonly permittedHostsParam?: KubernetesPermittedHostsParam;
|
|
470
|
+
}
|
|
471
|
+
/** Where the operator-pinned permitted hosts and ports live. */
|
|
472
|
+
export interface KubernetesPermittedHostsParam {
|
|
473
|
+
/** The `ConfigMap`'s name. */
|
|
474
|
+
readonly name: string;
|
|
475
|
+
/** Its namespace. */
|
|
476
|
+
readonly namespace: string;
|
|
433
477
|
}
|
|
434
478
|
/**
|
|
435
479
|
* Default {@link KubernetesEgressConfig.profileLabelKey} — this backend's
|
|
@@ -507,10 +551,10 @@ export declare const DEFAULT_PER_SANDBOX_EGRESS_LABEL_KEY = "sandbox.namzu.ai/pe
|
|
|
507
551
|
* belongs to.
|
|
508
552
|
*/
|
|
509
553
|
export declare class KubernetesPerSandboxEgressConfigError extends Error {
|
|
510
|
-
readonly field: 'engine' | 'admissionPolicyName' | 'admissionPolicyBindingName' | 'labelKey';
|
|
554
|
+
readonly field: 'engine' | 'admissionPolicyName' | 'admissionPolicyBindingName' | 'labelKey' | 'hostIdentity' | 'permittedHostsParam.name' | 'permittedHostsParam.namespace';
|
|
511
555
|
readonly value: string;
|
|
512
556
|
readonly name = "KubernetesPerSandboxEgressConfigError";
|
|
513
|
-
constructor(field: 'engine' | 'admissionPolicyName' | 'admissionPolicyBindingName' | 'labelKey', value: string, reason: string);
|
|
557
|
+
constructor(field: 'engine' | 'admissionPolicyName' | 'admissionPolicyBindingName' | 'labelKey' | 'hostIdentity' | 'permittedHostsParam.name' | 'permittedHostsParam.namespace', value: string, reason: string);
|
|
514
558
|
}
|
|
515
559
|
/**
|
|
516
560
|
* The per-sandbox selector label KEY this config asks for, or nothing at all
|
|
@@ -535,44 +579,23 @@ export declare function perSandboxEgressLabelKey(egress: KubernetesEgressConfig
|
|
|
535
579
|
*/
|
|
536
580
|
export declare function assertPerSandboxEgressIsUsable(egress: KubernetesEgressConfig | undefined): void;
|
|
537
581
|
/**
|
|
538
|
-
*
|
|
539
|
-
*
|
|
540
|
-
*
|
|
541
|
-
*
|
|
542
|
-
*
|
|
543
|
-
*
|
|
544
|
-
*
|
|
545
|
-
*
|
|
546
|
-
*
|
|
547
|
-
*
|
|
548
|
-
*
|
|
549
|
-
*
|
|
550
|
-
* believe it narrowed a workspace's egress.
|
|
551
|
-
*
|
|
552
|
-
* NOT a variant of {@link KubernetesPerSandboxEgressConfigError}, which is
|
|
553
|
-
* about a `perSandbox` value this backend cannot honour ANYWHERE (an engine
|
|
554
|
-
* with no hostname concept, an unnamed fence). This one is about a `perSandbox`
|
|
555
|
-
* value it honours perfectly well on the other entry point, so a caller
|
|
556
|
-
* catching the sibling for a typo'd value does not also catch a correct
|
|
557
|
-
* configuration aimed at the wrong path.
|
|
582
|
+
* Formerly the refusal of `config.egress.perSandbox` on
|
|
583
|
+
* `createKubernetesWorkspace` and `allocateKubernetesWorkspace`, which could
|
|
584
|
+
* not carry the capability. They carry it now: the workspace's pod template
|
|
585
|
+
* gets the per-sandbox selector label, the `Sandbox` owns the policies, and
|
|
586
|
+
* the handle serves `setNetworkPolicy`.
|
|
587
|
+
*
|
|
588
|
+
* Nothing throws this any more. It stays exported so an existing
|
|
589
|
+
* `catch (err) { if (err instanceof KubernetesWorkspacePerSandboxEgressConfigError) … }`
|
|
590
|
+
* keeps compiling and simply never matches; it will be removed in a later
|
|
591
|
+
* major.
|
|
592
|
+
*
|
|
593
|
+
* @deprecated No workspace entry point refuses `egress.perSandbox` any more.
|
|
558
594
|
*/
|
|
559
595
|
export declare class KubernetesWorkspacePerSandboxEgressConfigError extends Error {
|
|
560
596
|
readonly name = "KubernetesWorkspacePerSandboxEgressConfigError";
|
|
561
597
|
constructor();
|
|
562
598
|
}
|
|
563
|
-
/**
|
|
564
|
-
* Refuse `config.egress.perSandbox` on the entry point that cannot carry it —
|
|
565
|
-
* `createKubernetesWorkspace`. See
|
|
566
|
-
* {@link KubernetesWorkspacePerSandboxEgressConfigError}.
|
|
567
|
-
*
|
|
568
|
-
* Deliberately not {@link assertPerSandboxEgressIsUsable}, which validates the
|
|
569
|
-
* same config for the path that DOES honour it: a workspace has nothing to
|
|
570
|
-
* validate the option for, whatever its `engine` or `admissionPolicyName` say,
|
|
571
|
-
* because it serves no `setNetworkPolicy` at all. Calling that validator here
|
|
572
|
-
* instead would be worse than saying nothing — it would report a
|
|
573
|
-
* `perSandbox` this deployment can use as if it were in use.
|
|
574
|
-
*/
|
|
575
|
-
export declare function assertWorkspaceCarriesNoPerSandboxEgress(egress: KubernetesEgressConfig | undefined): void;
|
|
576
599
|
/**
|
|
577
600
|
* The ONE composer for a sandbox pod's `additionalPodMetadata.labels`.
|
|
578
601
|
*
|
|
@@ -946,6 +969,13 @@ export declare const CONFIG_LEVEL_NARROWING_REFUSAL: HostsFitNarrowingContext;
|
|
|
946
969
|
* still, before it reads the fence.
|
|
947
970
|
*/
|
|
948
971
|
export declare function assertHostsFitNarrowing(allowedHosts: readonly string[], narrowing: KubernetesCiliumEgressNarrowing | undefined, context: HostsFitNarrowingContext): void;
|
|
972
|
+
/**
|
|
973
|
+
* The port list a narrowed translation applies to `host`, before splitting
|
|
974
|
+
* out the TLS subset — see {@link KubernetesCiliumEgressNarrowing.ports}.
|
|
975
|
+
* `undefined` means no port restriction: the host's `toFQDNs` rule carries
|
|
976
|
+
* no `toPorts` at all.
|
|
977
|
+
*/
|
|
978
|
+
export declare function narrowedHostPorts(host: string, narrowing: KubernetesCiliumEgressNarrowing): readonly number[] | undefined;
|
|
949
979
|
/**
|
|
950
980
|
* One allowlist entry, expanded to the `toFQDNs` entries it means.
|
|
951
981
|
*
|
|
@@ -1187,11 +1217,49 @@ export interface EgressAllowance {
|
|
|
1187
1217
|
readonly kind: 'NetworkPolicy' | 'CiliumNetworkPolicy';
|
|
1188
1218
|
readonly name: string;
|
|
1189
1219
|
};
|
|
1220
|
+
/**
|
|
1221
|
+
* Further objects whose `spec` was compared to its translation by
|
|
1222
|
+
* {@link verifyEgressPolicyApplied}, and which the union rule therefore
|
|
1223
|
+
* does not judge rule by rule either. Set only by
|
|
1224
|
+
* {@link unionEgressAllowance}: the post-write check of a per-sandbox
|
|
1225
|
+
* policy is a question about TWO named objects, the operator's baseline
|
|
1226
|
+
* and the policy just written.
|
|
1227
|
+
*/
|
|
1228
|
+
readonly alsoNamed?: readonly {
|
|
1229
|
+
readonly kind: 'NetworkPolicy' | 'CiliumNetworkPolicy';
|
|
1230
|
+
readonly name: string;
|
|
1231
|
+
}[];
|
|
1190
1232
|
}
|
|
1191
1233
|
/**
|
|
1192
1234
|
* The allowance a translated policy expresses. See {@link EgressAllowance}.
|
|
1193
1235
|
*/
|
|
1194
1236
|
export declare function egressAllowance(translated: KubernetesTranslatedEgressPolicy): EgressAllowance;
|
|
1237
|
+
/**
|
|
1238
|
+
* What the pod may reach when TWO translated policies both select it: the
|
|
1239
|
+
* operator's baseline and one per-sandbox policy this backend wrote.
|
|
1240
|
+
*
|
|
1241
|
+
* Kubernetes unions every policy that selects a pod, so the boundary a
|
|
1242
|
+
* per-sandbox write is supposed to produce is exactly baseline PLUS the
|
|
1243
|
+
* written policy, and a third policy allowing more than that is what the
|
|
1244
|
+
* post-write check refuses. Each field is the union of the two sides':
|
|
1245
|
+
*
|
|
1246
|
+
* - destinations and `toFQDNs` names concatenate;
|
|
1247
|
+
* - `permitsEverything` is either side's, and `permitsNothing` is both
|
|
1248
|
+
* sides' — a `no-network` baseline permits nothing, and a baseline that
|
|
1249
|
+
* permits nothing plus a per-sandbox policy that permits one name permits
|
|
1250
|
+
* that name, not nothing;
|
|
1251
|
+
* - DNS lookups: a side that permits nothing contributes no names, a side
|
|
1252
|
+
* that does not narrow DNS contributes every name, and the union of name
|
|
1253
|
+
* lists is their concatenation. This is the one field where the naive
|
|
1254
|
+
* union is wrong: a `no-network` baseline reports `'all'` because a core
|
|
1255
|
+
* policy "cannot narrow DNS", and taking that at face value would let any
|
|
1256
|
+
* other policy open the resolver to every name beside a narrowed grant.
|
|
1257
|
+
*
|
|
1258
|
+
* Both objects are marked as named: each had its `spec` compared to its own
|
|
1259
|
+
* translation before this check runs, and neither's `.domain` entries (a
|
|
1260
|
+
* `matchName` plus a `matchPattern`) are expressible in an allowance.
|
|
1261
|
+
*/
|
|
1262
|
+
export declare function unionEgressAllowance(baseline: EgressAllowance, added: EgressAllowance): EgressAllowance;
|
|
1195
1263
|
/** One egress rule, judged against the translation. */
|
|
1196
1264
|
export interface EgressRuleVerdict {
|
|
1197
1265
|
readonly beyond: boolean | 'unknown';
|
|
@@ -1386,5 +1454,13 @@ export declare class KubernetesEgressPolicyUnionError extends Error {
|
|
|
1386
1454
|
* acquire path's cleanup.
|
|
1387
1455
|
*/
|
|
1388
1456
|
export declare function verifyEgressPolicyUnion(client: KubernetesClient, translated: KubernetesTranslatedEgressPolicy, target: EgressVerificationTarget, signal?: AbortSignal): Promise<void>;
|
|
1457
|
+
/**
|
|
1458
|
+
* {@link verifyEgressPolicyUnion} against an allowance the caller already
|
|
1459
|
+
* built — the entry point for a question about more than one translation,
|
|
1460
|
+
* which is what the post-write check of a per-sandbox policy is: the pod's
|
|
1461
|
+
* boundary is the baseline's allowance plus the written policy's, see
|
|
1462
|
+
* {@link unionEgressAllowance}.
|
|
1463
|
+
*/
|
|
1464
|
+
export declare function verifyEgressPolicyUnionAgainst(client: KubernetesClient, allowance: EgressAllowance, target: EgressVerificationTarget, signal?: AbortSignal): Promise<void>;
|
|
1389
1465
|
export {};
|
|
1390
1466
|
//# sourceMappingURL=egress-policy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"egress-policy.d.ts","sourceRoot":"","sources":["../../../src/backends/kubernetes/egress-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4EG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAKlD,OAAO,EACN,KAAK,aAAa,EAElB,KAAK,kBAAkB,EAWvB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAA8B,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACnF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AAc5D;;;;;GAKG;AACH,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,QAAQ,CAAA;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,MAAM,0BAA0B,GACnC;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;CAAE,GAC/B;IACA,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAA;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACvC,CAAA;AAEJ;;;;;GAKG;AACH,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG,0BAA0B,CAAA;AAE9E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,MAAM,4BAA4B,GAAG,OAAO,GAAG,mBAAmB,CAAA;AAExE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,4BAA4B;IAC5C,kFAAkF;IAClF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,qCAAqC;IACrC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,sEAAsE;IACtE,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC3C;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,+BAA+B;IAC/C;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAClC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAA;IAChE;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,4BAA4B,CAAA;IAC1D;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACrC;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAA;IACvC;;;;;OAKG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IACnC,0CAA0C;IAC1C,QAAQ,CAAC,MAAM,CAAC,EAAE,sBAAsB,CAAA;IACxC,mEAAmE;IACnE,QAAQ,CAAC,MAAM,CAAC,EAAE,4BAA4B,CAAA;IAC9C;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,+BAA+B,CAAA;IAC1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB;;;;;;;OAOG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,gCAAgC,CAAA;CACtD;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,WAAW,gCAAgC;IAChD;;;;;;;;OAQG;IACH,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAA;IACvC;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAA;IACpC;;;;;;;;OAQG;IACH,QAAQ,CAAC,0BAA0B,CAAC,EAAE,MAAM,CAAA;IAC5C;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,+BAA+B,CAAA;CACpD;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,gCAAgC,oCAAoC,CAAA;AAEjF,6EAA6E;AAC7E,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACtB;AAwBD;;;;;;;;;;GAUG;AACH,qBAAa,kCAAmC,SAAQ,KAAK;IAI3D,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,iBAAiB;IAC7C,QAAQ,CAAC,KAAK,EAAE,MAAM;IAJvB,SAAkB,IAAI,wCAAuC;gBAGnD,KAAK,EAAE,SAAS,GAAG,iBAAiB,EACpC,KAAK,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM;CAMf;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CACjC,MAAM,EAAE,sBAAsB,GAAG,SAAS,GACxC,kBAAkB,GAAG,SAAS,CAmBhC;AA+CD;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,sBAAsB,GAAG,SAAS,GAAG,IAAI,CAE5F;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oCAAoC,wCAAwC,CAAA;AAEzF;;;;;;;;;;;;GAYG;AACH,qBAAa,qCAAsC,SAAQ,KAAK;IAI9D,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,qBAAqB,GAAG,4BAA4B,GAAG,UAAU;IAC5F,QAAQ,CAAC,KAAK,EAAE,MAAM;IAJvB,SAAkB,IAAI,2CAA0C;gBAGtD,KAAK,EAAE,QAAQ,GAAG,qBAAqB,GAAG,4BAA4B,GAAG,UAAU,EACnF,KAAK,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM;CAMf;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACvC,MAAM,EAAE,sBAAsB,GAAG,SAAS,GACxC,MAAM,GAAG,SAAS,CA2BpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,sBAAsB,GAAG,SAAS,GAAG,IAAI,CAyC/F;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,8CAA+C,SAAQ,KAAK;IACxE,SAAkB,IAAI,oDAAmD;;CAOzE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wCAAwC,CACvD,MAAM,EAAE,sBAAsB,GAAG,SAAS,GACxC,IAAI,CAGN;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,0BAA0B,CACzC,MAAM,EAAE,sBAAsB,GAAG,SAAS,EAC1C,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GACtC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAalC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,qBAAa,gCAAiC,SAAQ,KAAK;IAIzD,2EAA2E;IAC3E,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7D,QAAQ,CAAC,SAAS,EAAE,MAAM;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM;IAC1B,uEAAuE;IACvE,QAAQ,CAAC,gBAAgB,EAAE,MAAM;IACjC,0DAA0D;IAC1D,QAAQ,CAAC,iBAAiB,EAAE,MAAM;IAClC,qEAAqE;IACrE,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB;IAZtC,SAAkB,IAAI,sCAAqC;;IAG1D,2EAA2E;IAClE,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACpD,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM;IAC1B,uEAAuE;IAC9D,gBAAgB,EAAE,MAAM;IACjC,0DAA0D;IACjD,iBAAiB,EAAE,MAAM;IAClC,qEAAqE;IAC5D,OAAO,CAAC,EAAE,kBAAkB,YAAA;CAMtC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,kCAAmC,SAAQ,KAAK;IAI3D,uEAAuE;IACvE,QAAQ,CAAC,YAAY,EAAE,kBAAkB;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAN1D,SAAkB,IAAI,wCAAuC;;IAG5D,uEAAuE;IAC9D,YAAY,EAAE,kBAAkB,EAChC,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAM1D;AAED,8EAA8E;AAC9E,wBAAgB,8BAA8B,CAC7C,MAAM,EAAE,sBAAsB,GAAG,SAAS,GACxC,OAAO,CAET;AAED,+EAA+E;AAC/E,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB;;;;;OAKG;IACH,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAA;IACpC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAA;CACrC;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACzC,MAAM,EAAE,kBAAkB,GACxB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAKlC;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,gCAAgC;IAChD,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,qBAAqB,CAAA;IACtD;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAA;IACnD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CACpD;AASD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CAAC,mBAAmB,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAW7F;AAED;;;;;;GAMG;AACH,qBAAa,wCAAyC,SAAQ,KAAK;IAGtD,QAAQ,CAAC,UAAU,EAAE,QAAQ,GAAG,UAAU;IAFtD,SAAkB,IAAI,8CAA6C;gBAE9C,UAAU,EAAE,QAAQ,GAAG,UAAU;CAKtD;AAED;;;;;;;GAOG;AACH,qBAAa,iCAAkC,SAAQ,KAAK;IAI1D,QAAQ,CAAC,KAAK,EAAE,MAAM;IAHvB,SAAkB,IAAI,uCAAsC;gBAGlD,KAAK,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM;CASf;AAED;;;;;;;GAOG;AACH,qBAAa,yCAA0C,SAAQ,KAAK;IAIlE,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAC,MAAM,CAAC;IACnD,QAAQ,CAAC,MAAM,EAAE,sBAAsB;IAJxC,SAAkB,IAAI,+CAA8C;gBAG1D,UAAU,EAAE,sBAAsB,CAAC,MAAM,CAAC,EAC1C,MAAM,EAAE,sBAAsB;CAMxC;AAUD;;;;;;;;;;;;GAYG;AACH,qBAAa,gCAAiC,SAAQ,KAAK;IAIzD,QAAQ,CAAC,IAAI,EAAE,MAAM;IAHtB,SAAkB,IAAI,sCAAqC;gBAGjD,IAAI,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM;CAMf;AAKD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAyDpD;AAqBD;;;;;;;;GAQG;AACH;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,CAC5C,SAAS,EAAE,+BAA+B,EAC1C,SAAS,SAAoB,GAC3B,IAAI,CAkDN;AA2BD;;;;;;;;GAQG;AACH,wBAAgB,+BAA+B,CAC9C,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,sBAAsB,EAC9B,SAAS,CAAC,EAAE,+BAA+B,GACzC,IAAI,CAoBN;AAyMD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,wBAAwB;IACxC;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC1B;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,6BAA6B,EAAE,wBAE3C,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,8BAA8B,EAAE,wBAE5C,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,uBAAuB,CACtC,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,SAAS,EAAE,+BAA+B,GAAG,SAAS,EACtD,OAAO,EAAE,wBAAwB,GAC/B,IAAI,CASN;AAqED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAI5F;AA2DD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,2BAA2B;IAC3C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,kEAAkE;IAClE,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACzD,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;IACxC,mEAAmE;IACnE,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAA;IACnD,QAAQ,CAAC,SAAS,CAAC,EAAE,+BAA+B,CAAA;IACpD,+EAA+E;IAC/E,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,wBAAwB,EAAE,CAAA;IAC9D;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,cAAc,EAAE,wBAAwB,CAAA;CACjD;AAED,wBAAgB,yBAAyB,CACxC,OAAO,EAAE,2BAA2B,GAClC,gCAAgC,CAwElC;AAmBD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,qBAAqB,CAC1C,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,kBAAkB,EAC1B,eAAe,CAAC,EAAE,+BAA+B,GAC/C,OAAO,CAAC,gCAAgC,CAAC,CAqC3C;AAED;;;;;;GAMG;AACH,qBAAa,qCAAsC,SAAQ,KAAK;IAI9D,QAAQ,CAAC,YAAY,EAAE,eAAe,GAAG,qBAAqB;IAC9D,QAAQ,CAAC,IAAI,EAAE,MAAM;IAJtB,SAAkB,IAAI,2CAA0C;gBAGtD,YAAY,EAAE,eAAe,GAAG,qBAAqB,EACrD,IAAI,EAAE,MAAM;CAMtB;AAED,gFAAgF;AAChF,qBAAa,mCAAoC,SAAQ,KAAK;IAI5D,QAAQ,CAAC,YAAY,EAAE,eAAe,GAAG,qBAAqB;IAC9D,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM;IALxB,SAAkB,IAAI,yCAAwC;gBAGpD,YAAY,EAAE,eAAe,GAAG,qBAAqB,EACrD,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM;CAMxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAsB,yBAAyB,CAC9C,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,gCAAgC,EAC5C,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC,CAsJf;AAWD,2DAA2D;AAC3D,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACrB;AAuDD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAgB/D;AAyBD,mFAAmF;AACnF,UAAU,SAAS;IAClB,qFAAqF;IACrF,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CACrB;AAKD,gEAAgE;AAChE,KAAK,UAAU,GACZ;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;CAAE,GAC/B;IACA,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAA;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACpB,GACD;IACA,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACpB,CAAA;AAEJ,UAAU,kBAAkB;IAC3B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,SAAS,EAAE,CAAA;CAC5C;AAED,kFAAkF;AAClF,UAAU,WAAW;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,SAAS,EAAE,CAAA;CAC5C;AAkBD;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,YAAY,EAAE,SAAS,kBAAkB,EAAE,CAAA;IACpD;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,CAAA;IACtC;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,aAAa,EAAE,KAAK,GAAG,SAAS,MAAM,EAAE,CAAA;IACjD,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAA;IACnC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;IAChC,oDAAoD;IACpD,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAA;IACnD;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,WAAW,EAAE;QACrB,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,qBAAqB,CAAA;QACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KACrB,CAAA;CACD;AAsED;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,gCAAgC,GAAG,eAAe,CA+F7F;AAqID,uDAAuD;AACvD,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAA;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACxB;AA2WD,wCAAwC;AACxC,MAAM,WAAW,wBAAwB;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B;;;;;;;OAOG;IACH,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACpD,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAA;IACvC,mFAAmF;IACnF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACxB;AAED,0EAA0E;AAC1E,MAAM,MAAM,mBAAmB;AAC9B,qEAAqE;AACnE,QAAQ;AACV,kEAAkE;GAChE,eAAe;AACjB,oDAAoD;GAClD,iBAAiB;AACnB,iFAAiF;GAC/E,mBAAmB;AACrB,mDAAmD;GACjD,eAAe,CAAA;AAElB,6CAA6C;AAC7C,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,qBAAqB,CAAA;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAA;IACrC,qEAAqE;IACrE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACxB;AAED;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,mBAAmB,GAAG,sBAAsB,GAAG,qBAAqB,GAAG,eAAe,CAAA;AAElG;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,qBAAqB,CAAA;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAA;IAC/B;;;;;;OAMG;IACH,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,KAAK,EAAE,SAAS,iBAAiB,EAAE,CAAA;IAC5C,+DAA+D;IAC/D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0CG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAC9B;AA+CD,uFAAuF;AACvF,wBAAgB,sBAAsB,CACrC,KAAK,EAAE,SAAS,OAAO,EAAE,EACzB,MAAM,EAAE,wBAAwB,EAChC,SAAS,EAAE,eAAe,GACxB,oBAAoB,EAAE,CA6CxB;AAED,qEAAqE;AACrE,wBAAgB,wBAAwB,CACvC,KAAK,EAAE,SAAS,OAAO,EAAE,EACzB,MAAM,EAAE,wBAAwB,EAChC,SAAS,EAAE,eAAe,GACxB,oBAAoB,EAAE,CAqDxB;AAwDD,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,QAAQ,EAAE,SAAS,oBAAoB,EAAE,CAAA;IAClD,uEAAuE;IACvE,QAAQ,CAAC,OAAO,CAAC,EAAE;QAClB,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAA;QAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KACxB,CAAA;CACD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAChC,SAAS,EAAE,SAAS,oBAAoB,EAAE,EAC1C,SAAS,EAAE,eAAe,GACxB,mBAAmB,CA8GrB;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,gCAAiC,SAAQ,KAAK;IAIzD,QAAQ,CAAC,OAAO,EAAE,mBAAmB;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpD,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAC,MAAM,CAAC;IACnD,QAAQ,CAAC,QAAQ,EAAE,SAAS,oBAAoB,EAAE;IAElD,iEAAiE;IACjE,QAAQ,CAAC,MAAM,EAAE,SAAS,kBAAkB,EAAE;IAV/C,SAAkB,IAAI,sCAAqC;gBAGjD,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC3C,UAAU,EAAE,sBAAsB,CAAC,MAAM,CAAC,EAC1C,QAAQ,EAAE,SAAS,oBAAoB,EAAE,EAClD,OAAO,EAAE,MAAM;IACf,iEAAiE;IACxD,MAAM,GAAE,SAAS,kBAAkB,EAAO;CAMpD;AAuCD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,uBAAuB,CAC5C,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,gCAAgC,EAC5C,MAAM,EAAE,wBAAwB,EAChC,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC,CAqDf"}
|
|
1
|
+
{"version":3,"file":"egress-policy.d.ts","sourceRoot":"","sources":["../../../src/backends/kubernetes/egress-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4EG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAKlD,OAAO,EACN,KAAK,aAAa,EAElB,KAAK,kBAAkB,EAWvB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAA8B,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACnF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AAc5D;;;;;GAKG;AACH,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,QAAQ,CAAA;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,MAAM,0BAA0B,GACnC;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;CAAE,GAC/B;IACA,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAA;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACvC,CAAA;AAEJ;;;;;GAKG;AACH,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG,0BAA0B,CAAA;AAE9E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,MAAM,4BAA4B,GAAG,OAAO,GAAG,mBAAmB,CAAA;AAExE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,4BAA4B;IAC5C,kFAAkF;IAClF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,qCAAqC;IACrC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,sEAAsE;IACtE,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC3C;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,+BAA+B;IAC/C;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAClC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAA;IAChE;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,4BAA4B,CAAA;IAC1D;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACrC;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAA;IACvC;;;;;OAKG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IACnC,0CAA0C;IAC1C,QAAQ,CAAC,MAAM,CAAC,EAAE,sBAAsB,CAAA;IACxC,mEAAmE;IACnE,QAAQ,CAAC,MAAM,CAAC,EAAE,4BAA4B,CAAA;IAC9C;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,+BAA+B,CAAA;IAC1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB;;;;;;;OAOG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,gCAAgC,CAAA;CACtD;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,WAAW,gCAAgC;IAChD;;;;;;;;OAQG;IACH,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAA;IACvC;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAA;IACpC;;;;;;;;OAQG;IACH,QAAQ,CAAC,0BAA0B,CAAC,EAAE,MAAM,CAAA;IAC5C;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,+BAA+B,CAAA;IACpD;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,6BAA6B,CAAA;CAC5D;AAED,gEAAgE;AAChE,MAAM,WAAW,6BAA6B;IAC7C,8BAA8B;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,qBAAqB;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC1B;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,gCAAgC,oCAAoC,CAAA;AAEjF,6EAA6E;AAC7E,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACtB;AAwBD;;;;;;;;;;GAUG;AACH,qBAAa,kCAAmC,SAAQ,KAAK;IAI3D,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,iBAAiB;IAC7C,QAAQ,CAAC,KAAK,EAAE,MAAM;IAJvB,SAAkB,IAAI,wCAAuC;gBAGnD,KAAK,EAAE,SAAS,GAAG,iBAAiB,EACpC,KAAK,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM;CAMf;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CACjC,MAAM,EAAE,sBAAsB,GAAG,SAAS,GACxC,kBAAkB,GAAG,SAAS,CAmBhC;AA+CD;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,sBAAsB,GAAG,SAAS,GAAG,IAAI,CAE5F;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oCAAoC,wCAAwC,CAAA;AAEzF;;;;;;;;;;;;GAYG;AACH,qBAAa,qCAAsC,SAAQ,KAAK;IAI9D,QAAQ,CAAC,KAAK,EACX,QAAQ,GACR,qBAAqB,GACrB,4BAA4B,GAC5B,UAAU,GACV,cAAc,GACd,0BAA0B,GAC1B,+BAA+B;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM;IAXvB,SAAkB,IAAI,2CAA0C;gBAGtD,KAAK,EACX,QAAQ,GACR,qBAAqB,GACrB,4BAA4B,GAC5B,UAAU,GACV,cAAc,GACd,0BAA0B,GAC1B,+BAA+B,EACzB,KAAK,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM;CAMf;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACvC,MAAM,EAAE,sBAAsB,GAAG,SAAS,GACxC,MAAM,GAAG,SAAS,CA2BpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,sBAAsB,GAAG,SAAS,GAAG,IAAI,CA6D/F;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,8CAA+C,SAAQ,KAAK;IACxE,SAAkB,IAAI,oDAAmD;;CAOzE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,0BAA0B,CACzC,MAAM,EAAE,sBAAsB,GAAG,SAAS,EAC1C,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GACtC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAalC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,qBAAa,gCAAiC,SAAQ,KAAK;IAIzD,2EAA2E;IAC3E,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7D,QAAQ,CAAC,SAAS,EAAE,MAAM;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM;IAC1B,uEAAuE;IACvE,QAAQ,CAAC,gBAAgB,EAAE,MAAM;IACjC,0DAA0D;IAC1D,QAAQ,CAAC,iBAAiB,EAAE,MAAM;IAClC,qEAAqE;IACrE,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB;IAZtC,SAAkB,IAAI,sCAAqC;;IAG1D,2EAA2E;IAClE,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACpD,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM;IAC1B,uEAAuE;IAC9D,gBAAgB,EAAE,MAAM;IACjC,0DAA0D;IACjD,iBAAiB,EAAE,MAAM;IAClC,qEAAqE;IAC5D,OAAO,CAAC,EAAE,kBAAkB,YAAA;CAMtC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,kCAAmC,SAAQ,KAAK;IAI3D,uEAAuE;IACvE,QAAQ,CAAC,YAAY,EAAE,kBAAkB;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAN1D,SAAkB,IAAI,wCAAuC;;IAG5D,uEAAuE;IAC9D,YAAY,EAAE,kBAAkB,EAChC,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAM1D;AAED,8EAA8E;AAC9E,wBAAgB,8BAA8B,CAC7C,MAAM,EAAE,sBAAsB,GAAG,SAAS,GACxC,OAAO,CAET;AAED,+EAA+E;AAC/E,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB;;;;;OAKG;IACH,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAA;IACpC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAA;CACrC;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACzC,MAAM,EAAE,kBAAkB,GACxB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAKlC;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,gCAAgC;IAChD,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,qBAAqB,CAAA;IACtD;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAA;IACnD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CACpD;AASD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CAAC,mBAAmB,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAW7F;AAED;;;;;;GAMG;AACH,qBAAa,wCAAyC,SAAQ,KAAK;IAGtD,QAAQ,CAAC,UAAU,EAAE,QAAQ,GAAG,UAAU;IAFtD,SAAkB,IAAI,8CAA6C;gBAE9C,UAAU,EAAE,QAAQ,GAAG,UAAU;CAKtD;AAED;;;;;;;GAOG;AACH,qBAAa,iCAAkC,SAAQ,KAAK;IAI1D,QAAQ,CAAC,KAAK,EAAE,MAAM;IAHvB,SAAkB,IAAI,uCAAsC;gBAGlD,KAAK,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM;CASf;AAED;;;;;;;GAOG;AACH,qBAAa,yCAA0C,SAAQ,KAAK;IAIlE,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAC,MAAM,CAAC;IACnD,QAAQ,CAAC,MAAM,EAAE,sBAAsB;IAJxC,SAAkB,IAAI,+CAA8C;gBAG1D,UAAU,EAAE,sBAAsB,CAAC,MAAM,CAAC,EAC1C,MAAM,EAAE,sBAAsB;CAMxC;AAUD;;;;;;;;;;;;GAYG;AACH,qBAAa,gCAAiC,SAAQ,KAAK;IAIzD,QAAQ,CAAC,IAAI,EAAE,MAAM;IAHtB,SAAkB,IAAI,sCAAqC;gBAGjD,IAAI,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM;CAMf;AAKD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAyDpD;AAqBD;;;;;;;;GAQG;AACH;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,CAC5C,SAAS,EAAE,+BAA+B,EAC1C,SAAS,SAAoB,GAC3B,IAAI,CAkDN;AA2BD;;;;;;;;GAQG;AACH,wBAAgB,+BAA+B,CAC9C,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,sBAAsB,EAC9B,SAAS,CAAC,EAAE,+BAA+B,GACzC,IAAI,CAoBN;AAyMD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,wBAAwB;IACxC;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC1B;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,6BAA6B,EAAE,wBAE3C,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,8BAA8B,EAAE,wBAE5C,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,uBAAuB,CACtC,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,SAAS,EAAE,+BAA+B,GAAG,SAAS,EACtD,OAAO,EAAE,wBAAwB,GAC/B,IAAI,CASN;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAChC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,+BAA+B,GACxC,SAAS,MAAM,EAAE,GAAG,SAAS,CAQ/B;AAkDD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAI5F;AA2DD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,2BAA2B;IAC3C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,kEAAkE;IAClE,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACzD,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;IACxC,mEAAmE;IACnE,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAA;IACnD,QAAQ,CAAC,SAAS,CAAC,EAAE,+BAA+B,CAAA;IACpD,+EAA+E;IAC/E,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,wBAAwB,EAAE,CAAA;IAC9D;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,cAAc,EAAE,wBAAwB,CAAA;CACjD;AAED,wBAAgB,yBAAyB,CACxC,OAAO,EAAE,2BAA2B,GAClC,gCAAgC,CAwElC;AAmBD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,qBAAqB,CAC1C,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,kBAAkB,EAC1B,eAAe,CAAC,EAAE,+BAA+B,GAC/C,OAAO,CAAC,gCAAgC,CAAC,CAqC3C;AAED;;;;;;GAMG;AACH,qBAAa,qCAAsC,SAAQ,KAAK;IAI9D,QAAQ,CAAC,YAAY,EAAE,eAAe,GAAG,qBAAqB;IAC9D,QAAQ,CAAC,IAAI,EAAE,MAAM;IAJtB,SAAkB,IAAI,2CAA0C;gBAGtD,YAAY,EAAE,eAAe,GAAG,qBAAqB,EACrD,IAAI,EAAE,MAAM;CAMtB;AAED,gFAAgF;AAChF,qBAAa,mCAAoC,SAAQ,KAAK;IAI5D,QAAQ,CAAC,YAAY,EAAE,eAAe,GAAG,qBAAqB;IAC9D,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM;IALxB,SAAkB,IAAI,yCAAwC;gBAGpD,YAAY,EAAE,eAAe,GAAG,qBAAqB,EACrD,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM;CAMxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAsB,yBAAyB,CAC9C,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,gCAAgC,EAC5C,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC,CAsJf;AAWD,2DAA2D;AAC3D,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACrB;AAuDD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAgB/D;AAyBD,mFAAmF;AACnF,UAAU,SAAS;IAClB,qFAAqF;IACrF,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CACrB;AAKD,gEAAgE;AAChE,KAAK,UAAU,GACZ;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;CAAE,GAC/B;IACA,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAA;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACpB,GACD;IACA,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACpB,CAAA;AAEJ,UAAU,kBAAkB;IAC3B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,SAAS,EAAE,CAAA;CAC5C;AAED,kFAAkF;AAClF,UAAU,WAAW;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,SAAS,EAAE,CAAA;CAC5C;AAkBD;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,YAAY,EAAE,SAAS,kBAAkB,EAAE,CAAA;IACpD;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,CAAA;IACtC;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,aAAa,EAAE,KAAK,GAAG,SAAS,MAAM,EAAE,CAAA;IACjD,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAA;IACnC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;IAChC,oDAAoD;IACpD,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAA;IACnD;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,WAAW,EAAE;QACrB,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,qBAAqB,CAAA;QACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KACrB,CAAA;IACD;;;;;;;OAOG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS;QAC7B,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,qBAAqB,CAAA;QACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KACrB,EAAE,CAAA;CACH;AAsED;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,gCAAgC,GAAG,eAAe,CA+F7F;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,oBAAoB,CACnC,QAAQ,EAAE,eAAe,EACzB,KAAK,EAAE,eAAe,GACpB,eAAe,CAmBjB;AAqID,uDAAuD;AACvD,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAA;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACxB;AA2WD,wCAAwC;AACxC,MAAM,WAAW,wBAAwB;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B;;;;;;;OAOG;IACH,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACpD,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAA;IACvC,mFAAmF;IACnF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACxB;AAED,0EAA0E;AAC1E,MAAM,MAAM,mBAAmB;AAC9B,qEAAqE;AACnE,QAAQ;AACV,kEAAkE;GAChE,eAAe;AACjB,oDAAoD;GAClD,iBAAiB;AACnB,iFAAiF;GAC/E,mBAAmB;AACrB,mDAAmD;GACjD,eAAe,CAAA;AAElB,6CAA6C;AAC7C,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,qBAAqB,CAAA;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAA;IACrC,qEAAqE;IACrE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACxB;AAED;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,mBAAmB,GAAG,sBAAsB,GAAG,qBAAqB,GAAG,eAAe,CAAA;AAElG;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,qBAAqB,CAAA;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAA;IAC/B;;;;;;OAMG;IACH,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,KAAK,EAAE,SAAS,iBAAiB,EAAE,CAAA;IAC5C,+DAA+D;IAC/D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0CG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAC9B;AAiDD,uFAAuF;AACvF,wBAAgB,sBAAsB,CACrC,KAAK,EAAE,SAAS,OAAO,EAAE,EACzB,MAAM,EAAE,wBAAwB,EAChC,SAAS,EAAE,eAAe,GACxB,oBAAoB,EAAE,CA6CxB;AAED,qEAAqE;AACrE,wBAAgB,wBAAwB,CACvC,KAAK,EAAE,SAAS,OAAO,EAAE,EACzB,MAAM,EAAE,wBAAwB,EAChC,SAAS,EAAE,eAAe,GACxB,oBAAoB,EAAE,CAqDxB;AAwDD,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,QAAQ,EAAE,SAAS,oBAAoB,EAAE,CAAA;IAClD,uEAAuE;IACvE,QAAQ,CAAC,OAAO,CAAC,EAAE;QAClB,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAA;QAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KACxB,CAAA;CACD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAChC,SAAS,EAAE,SAAS,oBAAoB,EAAE,EAC1C,SAAS,EAAE,eAAe,GACxB,mBAAmB,CA8GrB;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,gCAAiC,SAAQ,KAAK;IAIzD,QAAQ,CAAC,OAAO,EAAE,mBAAmB;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpD,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAC,MAAM,CAAC;IACnD,QAAQ,CAAC,QAAQ,EAAE,SAAS,oBAAoB,EAAE;IAElD,iEAAiE;IACjE,QAAQ,CAAC,MAAM,EAAE,SAAS,kBAAkB,EAAE;IAV/C,SAAkB,IAAI,sCAAqC;gBAGjD,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC3C,UAAU,EAAE,sBAAsB,CAAC,MAAM,CAAC,EAC1C,QAAQ,EAAE,SAAS,oBAAoB,EAAE,EAClD,OAAO,EAAE,MAAM;IACf,iEAAiE;IACxD,MAAM,GAAE,SAAS,kBAAkB,EAAO;CAMpD;AAuCD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,uBAAuB,CAC5C,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,gCAAgC,EAC5C,MAAM,EAAE,wBAAwB,EAChC,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;;;;;GAMG;AACH,wBAAsB,8BAA8B,CACnD,MAAM,EAAE,gBAAgB,EACxB,SAAS,EAAE,eAAe,EAC1B,MAAM,EAAE,wBAAwB,EAChC,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC,CAoDf"}
|
|
@@ -314,53 +314,40 @@ export function assertPerSandboxEgressIsUsable(egress) {
|
|
|
314
314
|
if (perSandbox.narrowing !== undefined) {
|
|
315
315
|
assertCiliumNarrowingIsUsable(perSandbox.narrowing, 'perSandbox.narrowing');
|
|
316
316
|
}
|
|
317
|
+
const { hostIdentity, permittedHostsParam } = perSandbox;
|
|
318
|
+
if (hostIdentity !== undefined && (hostIdentity === '' || hostIdentity.trim() !== hostIdentity)) {
|
|
319
|
+
throw new KubernetesPerSandboxEgressConfigError('hostIdentity', hostIdentity, 'is not a user name (an empty or space-padded identity matches nothing, so the fence check would refuse every write)');
|
|
320
|
+
}
|
|
321
|
+
if (permittedHostsParam !== undefined) {
|
|
322
|
+
for (const field of ['name', 'namespace']) {
|
|
323
|
+
const value = permittedHostsParam[field];
|
|
324
|
+
if (typeof value !== 'string' || value === '' || value.trim() !== value) {
|
|
325
|
+
throw new KubernetesPerSandboxEgressConfigError(`permittedHostsParam.${field}`, String(value), 'is not an object name (the parameter ConfigMap is named by both fields, and an empty or space-padded one names nothing, so every write would be refused)');
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
}
|
|
317
329
|
perSandboxEgressLabelKey(egress);
|
|
318
330
|
}
|
|
319
331
|
/**
|
|
320
|
-
*
|
|
321
|
-
*
|
|
322
|
-
*
|
|
323
|
-
*
|
|
324
|
-
*
|
|
325
|
-
*
|
|
326
|
-
*
|
|
327
|
-
*
|
|
328
|
-
*
|
|
329
|
-
*
|
|
330
|
-
*
|
|
331
|
-
*
|
|
332
|
-
* believe it narrowed a workspace's egress.
|
|
333
|
-
*
|
|
334
|
-
* NOT a variant of {@link KubernetesPerSandboxEgressConfigError}, which is
|
|
335
|
-
* about a `perSandbox` value this backend cannot honour ANYWHERE (an engine
|
|
336
|
-
* with no hostname concept, an unnamed fence). This one is about a `perSandbox`
|
|
337
|
-
* value it honours perfectly well on the other entry point, so a caller
|
|
338
|
-
* catching the sibling for a typo'd value does not also catch a correct
|
|
339
|
-
* configuration aimed at the wrong path.
|
|
332
|
+
* Formerly the refusal of `config.egress.perSandbox` on
|
|
333
|
+
* `createKubernetesWorkspace` and `allocateKubernetesWorkspace`, which could
|
|
334
|
+
* not carry the capability. They carry it now: the workspace's pod template
|
|
335
|
+
* gets the per-sandbox selector label, the `Sandbox` owns the policies, and
|
|
336
|
+
* the handle serves `setNetworkPolicy`.
|
|
337
|
+
*
|
|
338
|
+
* Nothing throws this any more. It stays exported so an existing
|
|
339
|
+
* `catch (err) { if (err instanceof KubernetesWorkspacePerSandboxEgressConfigError) … }`
|
|
340
|
+
* keeps compiling and simply never matches; it will be removed in a later
|
|
341
|
+
* major.
|
|
342
|
+
*
|
|
343
|
+
* @deprecated No workspace entry point refuses `egress.perSandbox` any more.
|
|
340
344
|
*/
|
|
341
345
|
export class KubernetesWorkspacePerSandboxEgressConfigError extends Error {
|
|
342
346
|
name = 'KubernetesWorkspacePerSandboxEgressConfigError';
|
|
343
347
|
constructor() {
|
|
344
|
-
super(
|
|
348
|
+
super('kubernetes: config.egress.perSandbox is set on a workspace entry point. This error is no longer thrown: workspaces serve per-sandbox egress.');
|
|
345
349
|
}
|
|
346
350
|
}
|
|
347
|
-
/**
|
|
348
|
-
* Refuse `config.egress.perSandbox` on the entry point that cannot carry it —
|
|
349
|
-
* `createKubernetesWorkspace`. See
|
|
350
|
-
* {@link KubernetesWorkspacePerSandboxEgressConfigError}.
|
|
351
|
-
*
|
|
352
|
-
* Deliberately not {@link assertPerSandboxEgressIsUsable}, which validates the
|
|
353
|
-
* same config for the path that DOES honour it: a workspace has nothing to
|
|
354
|
-
* validate the option for, whatever its `engine` or `admissionPolicyName` say,
|
|
355
|
-
* because it serves no `setNetworkPolicy` at all. Calling that validator here
|
|
356
|
-
* instead would be worse than saying nothing — it would report a
|
|
357
|
-
* `perSandbox` this deployment can use as if it were in use.
|
|
358
|
-
*/
|
|
359
|
-
export function assertWorkspaceCarriesNoPerSandboxEgress(egress) {
|
|
360
|
-
if (egress?.perSandbox === undefined)
|
|
361
|
-
return;
|
|
362
|
-
throw new KubernetesWorkspacePerSandboxEgressConfigError();
|
|
363
|
-
}
|
|
364
351
|
/**
|
|
365
352
|
* The ONE composer for a sandbox pod's `additionalPodMetadata.labels`.
|
|
366
353
|
*
|
|
@@ -1074,7 +1061,7 @@ export function assertHostsFitNarrowing(allowedHosts, narrowing, context) {
|
|
|
1074
1061
|
* `undefined` means no port restriction: the host's `toFQDNs` rule carries
|
|
1075
1062
|
* no `toPorts` at all.
|
|
1076
1063
|
*/
|
|
1077
|
-
function narrowedHostPorts(host, narrowing) {
|
|
1064
|
+
export function narrowedHostPorts(host, narrowing) {
|
|
1078
1065
|
const explicit = narrowing.hostPorts?.[host] ?? narrowing.ports;
|
|
1079
1066
|
if (explicit !== undefined)
|
|
1080
1067
|
return explicit;
|
|
@@ -1821,6 +1808,49 @@ export function egressAllowance(translated) {
|
|
|
1821
1808
|
namedObject: { kind: translated.kind, name: translated.name },
|
|
1822
1809
|
};
|
|
1823
1810
|
}
|
|
1811
|
+
/**
|
|
1812
|
+
* What the pod may reach when TWO translated policies both select it: the
|
|
1813
|
+
* operator's baseline and one per-sandbox policy this backend wrote.
|
|
1814
|
+
*
|
|
1815
|
+
* Kubernetes unions every policy that selects a pod, so the boundary a
|
|
1816
|
+
* per-sandbox write is supposed to produce is exactly baseline PLUS the
|
|
1817
|
+
* written policy, and a third policy allowing more than that is what the
|
|
1818
|
+
* post-write check refuses. Each field is the union of the two sides':
|
|
1819
|
+
*
|
|
1820
|
+
* - destinations and `toFQDNs` names concatenate;
|
|
1821
|
+
* - `permitsEverything` is either side's, and `permitsNothing` is both
|
|
1822
|
+
* sides' — a `no-network` baseline permits nothing, and a baseline that
|
|
1823
|
+
* permits nothing plus a per-sandbox policy that permits one name permits
|
|
1824
|
+
* that name, not nothing;
|
|
1825
|
+
* - DNS lookups: a side that permits nothing contributes no names, a side
|
|
1826
|
+
* that does not narrow DNS contributes every name, and the union of name
|
|
1827
|
+
* lists is their concatenation. This is the one field where the naive
|
|
1828
|
+
* union is wrong: a `no-network` baseline reports `'all'` because a core
|
|
1829
|
+
* policy "cannot narrow DNS", and taking that at face value would let any
|
|
1830
|
+
* other policy open the resolver to every name beside a narrowed grant.
|
|
1831
|
+
*
|
|
1832
|
+
* Both objects are marked as named: each had its `spec` compared to its own
|
|
1833
|
+
* translation before this check runs, and neither's `.domain` entries (a
|
|
1834
|
+
* `matchName` plus a `matchPattern`) are expressible in an allowance.
|
|
1835
|
+
*/
|
|
1836
|
+
export function unionEgressAllowance(baseline, added) {
|
|
1837
|
+
const dnsOf = (side) => side.permitsNothing ? [] : side.dnsNarrowedTo;
|
|
1838
|
+
const baselineDns = dnsOf(baseline);
|
|
1839
|
+
const addedDns = dnsOf(added);
|
|
1840
|
+
const dnsNarrowedTo = baselineDns === 'all' || addedDns === 'all'
|
|
1841
|
+
? 'all'
|
|
1842
|
+
: [...new Set([...baselineDns, ...addedDns])];
|
|
1843
|
+
return {
|
|
1844
|
+
destinations: [...baseline.destinations, ...added.destinations],
|
|
1845
|
+
fqdns: [...baseline.fqdns, ...added.fqdns],
|
|
1846
|
+
dnsNarrowedTo,
|
|
1847
|
+
permitsEverything: baseline.permitsEverything || added.permitsEverything,
|
|
1848
|
+
permitsNothing: baseline.permitsNothing && added.permitsNothing,
|
|
1849
|
+
policyKind: baseline.policyKind,
|
|
1850
|
+
namedObject: baseline.namedObject,
|
|
1851
|
+
alsoNamed: [...(baseline.alsoNamed ?? []), added.namedObject, ...(added.alsoNamed ?? [])],
|
|
1852
|
+
};
|
|
1853
|
+
}
|
|
1824
1854
|
// ---------------------------------------------------------------------------
|
|
1825
1855
|
// Is one policy's rule inside the translation
|
|
1826
1856
|
// ---------------------------------------------------------------------------
|
|
@@ -2327,7 +2357,8 @@ function unreadableEgressPolicy(kind, name, detail) {
|
|
|
2327
2357
|
* earlier on the create path.
|
|
2328
2358
|
*/
|
|
2329
2359
|
function isNamedObject(allowance, kind, name) {
|
|
2330
|
-
|
|
2360
|
+
const matches = (entry) => entry.kind === kind && entry.name === name;
|
|
2361
|
+
return matches(allowance.namedObject) || (allowance.alsoNamed ?? []).some(matches);
|
|
2331
2362
|
}
|
|
2332
2363
|
/** Every core `NetworkPolicy` in the list, reduced to {@link EgressPolicyDocument}. */
|
|
2333
2364
|
export function readCoreEgressPolicies(items, target, allowance) {
|
|
@@ -2663,7 +2694,16 @@ function formatEgressRemedy(refusal, unread) {
|
|
|
2663
2694
|
* acquire path's cleanup.
|
|
2664
2695
|
*/
|
|
2665
2696
|
export async function verifyEgressPolicyUnion(client, translated, target, signal) {
|
|
2666
|
-
|
|
2697
|
+
await verifyEgressPolicyUnionAgainst(client, egressAllowance(translated), target, signal);
|
|
2698
|
+
}
|
|
2699
|
+
/**
|
|
2700
|
+
* {@link verifyEgressPolicyUnion} against an allowance the caller already
|
|
2701
|
+
* built — the entry point for a question about more than one translation,
|
|
2702
|
+
* which is what the post-write check of a per-sandbox policy is: the pod's
|
|
2703
|
+
* boundary is the baseline's allowance plus the written policy's, see
|
|
2704
|
+
* {@link unionEgressAllowance}.
|
|
2705
|
+
*/
|
|
2706
|
+
export async function verifyEgressPolicyUnionAgainst(client, allowance, target, signal) {
|
|
2667
2707
|
const documents = [];
|
|
2668
2708
|
try {
|
|
2669
2709
|
documents.push(...readCoreEgressPolicies(await listPolicies(client, networkPolicyCollectionPath(target.namespace), 'networkpolicies', signal), target, allowance));
|