@intentius/chant-lexicon-otel 0.81.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/README.md +49 -0
- package/dist/catalog.d.ts +18 -0
- package/dist/catalog.d.ts.map +1 -0
- package/dist/codegen/docs-cli.d.ts +3 -0
- package/dist/codegen/docs-cli.d.ts.map +1 -0
- package/dist/codegen/docs.d.ts +8 -0
- package/dist/codegen/docs.d.ts.map +1 -0
- package/dist/codegen/generate-cli.d.ts +3 -0
- package/dist/codegen/generate-cli.d.ts.map +1 -0
- package/dist/codegen/generate.d.ts +19 -0
- package/dist/codegen/generate.d.ts.map +1 -0
- package/dist/codegen/package.d.ts +7 -0
- package/dist/codegen/package.d.ts.map +1 -0
- package/dist/collector.d.ts +29 -0
- package/dist/collector.d.ts.map +1 -0
- package/dist/components/common.d.ts +144 -0
- package/dist/components/common.d.ts.map +1 -0
- package/dist/components/exporters.d.ts +86 -0
- package/dist/components/exporters.d.ts.map +1 -0
- package/dist/components/extensions.d.ts +32 -0
- package/dist/components/extensions.d.ts.map +1 -0
- package/dist/components/index.d.ts +6 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/processors.d.ts +118 -0
- package/dist/components/processors.d.ts.map +1 -0
- package/dist/components/receivers.d.ts +118 -0
- package/dist/components/receivers.d.ts.map +1 -0
- package/dist/define.d.ts +136 -0
- package/dist/define.d.ts.map +1 -0
- package/dist/detect.d.ts +2 -0
- package/dist/detect.d.ts.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/integrity.json +25 -0
- package/dist/lint/audit-catalog.d.ts +13 -0
- package/dist/lint/audit-catalog.d.ts.map +1 -0
- package/dist/lint/post-synth/index.d.ts +3 -0
- package/dist/lint/post-synth/index.d.ts.map +1 -0
- package/dist/lint/post-synth/otel-helpers.d.ts +22 -0
- package/dist/lint/post-synth/otel-helpers.d.ts.map +1 -0
- package/dist/lint/post-synth/otel101.d.ts +8 -0
- package/dist/lint/post-synth/otel101.d.ts.map +1 -0
- package/dist/lint/post-synth/otel102.d.ts +8 -0
- package/dist/lint/post-synth/otel102.d.ts.map +1 -0
- package/dist/lint/post-synth/otel103.d.ts +8 -0
- package/dist/lint/post-synth/otel103.d.ts.map +1 -0
- package/dist/lint/post-synth/otel104.d.ts +8 -0
- package/dist/lint/post-synth/otel104.d.ts.map +1 -0
- package/dist/lint/post-synth/otel105.d.ts +8 -0
- package/dist/lint/post-synth/otel105.d.ts.map +1 -0
- package/dist/lint/post-synth/otel106.d.ts +8 -0
- package/dist/lint/post-synth/otel106.d.ts.map +1 -0
- package/dist/lint/post-synth/otel107.d.ts +8 -0
- package/dist/lint/post-synth/otel107.d.ts.map +1 -0
- package/dist/lint/post-synth/otel108.d.ts +8 -0
- package/dist/lint/post-synth/otel108.d.ts.map +1 -0
- package/dist/lint/post-synth/otel109.d.ts +8 -0
- package/dist/lint/post-synth/otel109.d.ts.map +1 -0
- package/dist/lint/rules/component-id-syntax.d.ts +14 -0
- package/dist/lint/rules/component-id-syntax.d.ts.map +1 -0
- package/dist/lint/rules/index.d.ts +6 -0
- package/dist/lint/rules/index.d.ts.map +1 -0
- package/dist/lint/rules/literal-credential.d.ts +13 -0
- package/dist/lint/rules/literal-credential.d.ts.map +1 -0
- package/dist/lint/rules/otel-ast.d.ts +14 -0
- package/dist/lint/rules/otel-ast.d.ts.map +1 -0
- package/dist/lsp/completions.d.ts +4 -0
- package/dist/lsp/completions.d.ts.map +1 -0
- package/dist/lsp/hover.d.ts +4 -0
- package/dist/lsp/hover.d.ts.map +1 -0
- package/dist/manifest.json +8 -0
- package/dist/meta.json +102 -0
- package/dist/model.d.ts +53 -0
- package/dist/model.d.ts.map +1 -0
- package/dist/okf/index.md +40 -0
- package/dist/okf/rules/OTEL001.md +15 -0
- package/dist/okf/rules/OTEL002.md +11 -0
- package/dist/okf/rules/OTEL101.md +11 -0
- package/dist/okf/rules/OTEL102.md +11 -0
- package/dist/okf/rules/OTEL103.md +11 -0
- package/dist/okf/rules/OTEL104.md +11 -0
- package/dist/okf/rules/OTEL105.md +11 -0
- package/dist/okf/rules/OTEL106.md +11 -0
- package/dist/okf/rules/OTEL107.md +11 -0
- package/dist/okf/rules/OTEL108.md +11 -0
- package/dist/okf/rules/OTEL109.md +11 -0
- package/dist/okf/types/AttributesProcessor.md +9 -0
- package/dist/okf/types/BatchProcessor.md +9 -0
- package/dist/okf/types/DebugExporter.md +9 -0
- package/dist/okf/types/FileLogReceiver.md +9 -0
- package/dist/okf/types/GoogleCloudExporter.md +9 -0
- package/dist/okf/types/HealthCheckExtension.md +9 -0
- package/dist/okf/types/HostMetricsReceiver.md +9 -0
- package/dist/okf/types/K8sAttributesProcessor.md +9 -0
- package/dist/okf/types/MemoryLimiterProcessor.md +9 -0
- package/dist/okf/types/OtlpExporter.md +9 -0
- package/dist/okf/types/OtlpHttpExporter.md +9 -0
- package/dist/okf/types/OtlpReceiver.md +9 -0
- package/dist/okf/types/Pipeline.md +13 -0
- package/dist/okf/types/PprofExtension.md +9 -0
- package/dist/okf/types/PrometheusExporter.md +9 -0
- package/dist/okf/types/PrometheusReceiver.md +9 -0
- package/dist/okf/types/ResourceDetectionProcessor.md +9 -0
- package/dist/okf/types/ResourceProcessor.md +9 -0
- package/dist/okf/types/Service.md +9 -0
- package/dist/okf/types/ZPagesExtension.md +9 -0
- package/dist/package-cli.d.ts +3 -0
- package/dist/package-cli.d.ts.map +1 -0
- package/dist/pipeline.d.ts +66 -0
- package/dist/pipeline.d.ts.map +1 -0
- package/dist/platform.d.ts +57 -0
- package/dist/platform.d.ts.map +1 -0
- package/dist/plugin.d.ts +11 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/rules/component-id-syntax.ts +68 -0
- package/dist/rules/literal-credential.ts +62 -0
- package/dist/rules/otel-ast.ts +30 -0
- package/dist/rules/otel-helpers.ts +70 -0
- package/dist/rules/otel101.ts +17 -0
- package/dist/rules/otel102.ts +17 -0
- package/dist/rules/otel103.ts +17 -0
- package/dist/rules/otel104.ts +17 -0
- package/dist/rules/otel105.ts +17 -0
- package/dist/rules/otel106.ts +17 -0
- package/dist/rules/otel107.ts +17 -0
- package/dist/rules/otel108.ts +17 -0
- package/dist/rules/otel109.ts +17 -0
- package/dist/serializer.d.ts +16 -0
- package/dist/serializer.d.ts.map +1 -0
- package/dist/skill-defs.d.ts +3 -0
- package/dist/skill-defs.d.ts.map +1 -0
- package/dist/skills/chant-otel-custom-components.md +51 -0
- package/dist/skills/chant-otel-platforms.md +34 -0
- package/dist/skills/chant-otel.md +60 -0
- package/dist/topology.d.ts +56 -0
- package/dist/topology.d.ts.map +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/validate-cli.d.ts +3 -0
- package/dist/validate-cli.d.ts.map +1 -0
- package/dist/validate-config.d.ts +30 -0
- package/dist/validate-config.d.ts.map +1 -0
- package/dist/validate.d.ts +11 -0
- package/dist/validate.d.ts.map +1 -0
- package/dist/yaml.d.ts +27 -0
- package/dist/yaml.d.ts.map +1 -0
- package/package.json +74 -0
- package/src/catalog.ts +56 -0
- package/src/codegen/docs-cli.ts +4 -0
- package/src/codegen/docs.ts +90 -0
- package/src/codegen/generate-cli.ts +8 -0
- package/src/codegen/generate.ts +50 -0
- package/src/codegen/package.ts +41 -0
- package/src/collector.ts +147 -0
- package/src/components/common.ts +151 -0
- package/src/components/exporters.ts +141 -0
- package/src/components/extensions.ts +51 -0
- package/src/components/index.ts +5 -0
- package/src/components/processors.ts +208 -0
- package/src/components/receivers.ts +177 -0
- package/src/define.test.ts +131 -0
- package/src/define.ts +249 -0
- package/src/detect.ts +11 -0
- package/src/generated/lexicon-otel.json +102 -0
- package/src/index.ts +73 -0
- package/src/lint/audit-catalog.ts +102 -0
- package/src/lint/post-synth/index.ts +23 -0
- package/src/lint/post-synth/otel-helpers.ts +70 -0
- package/src/lint/post-synth/otel101.ts +17 -0
- package/src/lint/post-synth/otel102.ts +17 -0
- package/src/lint/post-synth/otel103.ts +17 -0
- package/src/lint/post-synth/otel104.ts +17 -0
- package/src/lint/post-synth/otel105.ts +17 -0
- package/src/lint/post-synth/otel106.ts +17 -0
- package/src/lint/post-synth/otel107.ts +17 -0
- package/src/lint/post-synth/otel108.ts +17 -0
- package/src/lint/post-synth/otel109.ts +17 -0
- package/src/lint/post-synth/post-synth.test.ts +184 -0
- package/src/lint/rules/component-id-syntax.ts +68 -0
- package/src/lint/rules/index.ts +9 -0
- package/src/lint/rules/literal-credential.ts +62 -0
- package/src/lint/rules/otel-ast.ts +30 -0
- package/src/lint/rules/rules.test.ts +70 -0
- package/src/lsp/completions.test.ts +23 -0
- package/src/lsp/completions.ts +15 -0
- package/src/lsp/hover.test.ts +20 -0
- package/src/lsp/hover.ts +30 -0
- package/src/model.ts +88 -0
- package/src/package-cli.ts +17 -0
- package/src/pipeline.ts +89 -0
- package/src/platform.test.ts +79 -0
- package/src/platform.ts +143 -0
- package/src/plugin.test.ts +55 -0
- package/src/plugin.ts +111 -0
- package/src/serializer.test.ts +187 -0
- package/src/serializer.ts +31 -0
- package/src/skill-defs.ts +36 -0
- package/src/skills/chant-otel-custom-components.md +51 -0
- package/src/skills/chant-otel-platforms.md +34 -0
- package/src/skills/chant-otel.md +60 -0
- package/src/topology.test.ts +80 -0
- package/src/topology.ts +122 -0
- package/src/validate-cli.ts +7 -0
- package/src/validate-config.ts +232 -0
- package/src/validate.ts +82 -0
- package/src/yaml.test.ts +56 -0
- package/src/yaml.ts +145 -0
package/dist/meta.json
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
{
|
|
2
|
+
"AttributesProcessor": {
|
|
3
|
+
"resourceType": "OTel::Processor::attributes",
|
|
4
|
+
"kind": "resource",
|
|
5
|
+
"lexicon": "otel"
|
|
6
|
+
},
|
|
7
|
+
"BatchProcessor": {
|
|
8
|
+
"resourceType": "OTel::Processor::batch",
|
|
9
|
+
"kind": "resource",
|
|
10
|
+
"lexicon": "otel"
|
|
11
|
+
},
|
|
12
|
+
"DebugExporter": {
|
|
13
|
+
"resourceType": "OTel::Exporter::debug",
|
|
14
|
+
"kind": "resource",
|
|
15
|
+
"lexicon": "otel"
|
|
16
|
+
},
|
|
17
|
+
"FileLogReceiver": {
|
|
18
|
+
"resourceType": "OTel::Receiver::filelog",
|
|
19
|
+
"kind": "resource",
|
|
20
|
+
"lexicon": "otel"
|
|
21
|
+
},
|
|
22
|
+
"GoogleCloudExporter": {
|
|
23
|
+
"resourceType": "OTel::Exporter::googlecloud",
|
|
24
|
+
"kind": "resource",
|
|
25
|
+
"lexicon": "otel"
|
|
26
|
+
},
|
|
27
|
+
"HealthCheckExtension": {
|
|
28
|
+
"resourceType": "OTel::Extension::health_check",
|
|
29
|
+
"kind": "resource",
|
|
30
|
+
"lexicon": "otel"
|
|
31
|
+
},
|
|
32
|
+
"HostMetricsReceiver": {
|
|
33
|
+
"resourceType": "OTel::Receiver::hostmetrics",
|
|
34
|
+
"kind": "resource",
|
|
35
|
+
"lexicon": "otel"
|
|
36
|
+
},
|
|
37
|
+
"K8sAttributesProcessor": {
|
|
38
|
+
"resourceType": "OTel::Processor::k8sattributes",
|
|
39
|
+
"kind": "resource",
|
|
40
|
+
"lexicon": "otel"
|
|
41
|
+
},
|
|
42
|
+
"MemoryLimiterProcessor": {
|
|
43
|
+
"resourceType": "OTel::Processor::memory_limiter",
|
|
44
|
+
"kind": "resource",
|
|
45
|
+
"lexicon": "otel"
|
|
46
|
+
},
|
|
47
|
+
"OtlpExporter": {
|
|
48
|
+
"resourceType": "OTel::Exporter::otlp",
|
|
49
|
+
"kind": "resource",
|
|
50
|
+
"lexicon": "otel"
|
|
51
|
+
},
|
|
52
|
+
"OtlpHttpExporter": {
|
|
53
|
+
"resourceType": "OTel::Exporter::otlphttp",
|
|
54
|
+
"kind": "resource",
|
|
55
|
+
"lexicon": "otel"
|
|
56
|
+
},
|
|
57
|
+
"OtlpReceiver": {
|
|
58
|
+
"resourceType": "OTel::Receiver::otlp",
|
|
59
|
+
"kind": "resource",
|
|
60
|
+
"lexicon": "otel"
|
|
61
|
+
},
|
|
62
|
+
"Pipeline": {
|
|
63
|
+
"resourceType": "OTel::Pipeline",
|
|
64
|
+
"kind": "resource",
|
|
65
|
+
"lexicon": "otel"
|
|
66
|
+
},
|
|
67
|
+
"PprofExtension": {
|
|
68
|
+
"resourceType": "OTel::Extension::pprof",
|
|
69
|
+
"kind": "resource",
|
|
70
|
+
"lexicon": "otel"
|
|
71
|
+
},
|
|
72
|
+
"PrometheusExporter": {
|
|
73
|
+
"resourceType": "OTel::Exporter::prometheus",
|
|
74
|
+
"kind": "resource",
|
|
75
|
+
"lexicon": "otel"
|
|
76
|
+
},
|
|
77
|
+
"PrometheusReceiver": {
|
|
78
|
+
"resourceType": "OTel::Receiver::prometheus",
|
|
79
|
+
"kind": "resource",
|
|
80
|
+
"lexicon": "otel"
|
|
81
|
+
},
|
|
82
|
+
"ResourceDetectionProcessor": {
|
|
83
|
+
"resourceType": "OTel::Processor::resourcedetection",
|
|
84
|
+
"kind": "resource",
|
|
85
|
+
"lexicon": "otel"
|
|
86
|
+
},
|
|
87
|
+
"ResourceProcessor": {
|
|
88
|
+
"resourceType": "OTel::Processor::resource",
|
|
89
|
+
"kind": "resource",
|
|
90
|
+
"lexicon": "otel"
|
|
91
|
+
},
|
|
92
|
+
"Service": {
|
|
93
|
+
"resourceType": "OTel::Service",
|
|
94
|
+
"kind": "resource",
|
|
95
|
+
"lexicon": "otel"
|
|
96
|
+
},
|
|
97
|
+
"ZPagesExtension": {
|
|
98
|
+
"resourceType": "OTel::Extension::zpages",
|
|
99
|
+
"kind": "resource",
|
|
100
|
+
"lexicon": "otel"
|
|
101
|
+
}
|
|
102
|
+
}
|
package/dist/model.d.ts
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The plain-data model of an OpenTelemetry Collector config.
|
|
3
|
+
*
|
|
4
|
+
* Everything else in this lexicon reads or writes this shape: the serializer
|
|
5
|
+
* builds it from declared entities, the YAML emitter prints it, the checks
|
|
6
|
+
* validate it, and `collectorTopology()` reads it back for other tools. It is
|
|
7
|
+
* exactly the collector's own top-level layout, so a parsed collector YAML
|
|
8
|
+
* file is already a `CollectorConfig` and needs no conversion.
|
|
9
|
+
*/
|
|
10
|
+
/** The three signals a collector pipeline can carry. */
|
|
11
|
+
export declare const SIGNALS: readonly ["traces", "metrics", "logs"];
|
|
12
|
+
export type Signal = (typeof SIGNALS)[number];
|
|
13
|
+
/** The component kinds this lexicon types. Connectors are not modeled yet. */
|
|
14
|
+
export declare const COMPONENT_KINDS: readonly ["receiver", "processor", "exporter", "extension"];
|
|
15
|
+
export type ComponentKind = (typeof COMPONENT_KINDS)[number];
|
|
16
|
+
/** The top-level config section each component kind lives under. */
|
|
17
|
+
export declare const SECTION_OF: Record<ComponentKind, "receivers" | "processors" | "exporters" | "extensions">;
|
|
18
|
+
/** A component id, `type` or `type/name`, exactly as the collector spells it. */
|
|
19
|
+
export type ComponentId = string;
|
|
20
|
+
/** One pipeline under `service.pipelines`. */
|
|
21
|
+
export interface PipelineConfig {
|
|
22
|
+
receivers?: ComponentId[];
|
|
23
|
+
processors?: ComponentId[];
|
|
24
|
+
exporters?: ComponentId[];
|
|
25
|
+
}
|
|
26
|
+
export interface ServiceConfig {
|
|
27
|
+
extensions?: ComponentId[];
|
|
28
|
+
telemetry?: Record<string, unknown>;
|
|
29
|
+
pipelines?: Record<string, PipelineConfig>;
|
|
30
|
+
}
|
|
31
|
+
/** A whole collector config file. Every section is optional so a partial file still parses. */
|
|
32
|
+
export interface CollectorConfig {
|
|
33
|
+
receivers?: Record<ComponentId, Record<string, unknown> | null>;
|
|
34
|
+
processors?: Record<ComponentId, Record<string, unknown> | null>;
|
|
35
|
+
exporters?: Record<ComponentId, Record<string, unknown> | null>;
|
|
36
|
+
extensions?: Record<ComponentId, Record<string, unknown> | null>;
|
|
37
|
+
connectors?: Record<ComponentId, Record<string, unknown> | null>;
|
|
38
|
+
service?: ServiceConfig;
|
|
39
|
+
}
|
|
40
|
+
/** Build a component id from a type and an optional instance name. */
|
|
41
|
+
export declare function componentId(type: string, name?: string): ComponentId;
|
|
42
|
+
/** Split a component id into its type and name, or `undefined` when it isn't valid id syntax. */
|
|
43
|
+
export declare function parseComponentId(id: string): {
|
|
44
|
+
type: string;
|
|
45
|
+
name?: string;
|
|
46
|
+
} | undefined;
|
|
47
|
+
/** True when `id` is a valid `type[/name]` component id. */
|
|
48
|
+
export declare function isComponentId(id: string): boolean;
|
|
49
|
+
/** The signal a pipeline id names, e.g. `traces` for `traces/backend`. */
|
|
50
|
+
export declare function pipelineSignal(pipelineId: string): string;
|
|
51
|
+
/** True when a parsed document has the shape of a collector config. */
|
|
52
|
+
export declare function looksLikeCollectorConfig(value: unknown): value is CollectorConfig;
|
|
53
|
+
//# sourceMappingURL=model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,wDAAwD;AACxD,eAAO,MAAM,OAAO,wCAAyC,CAAC;AAC9D,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9C,8EAA8E;AAC9E,eAAO,MAAM,eAAe,6DAA8D,CAAC;AAC3F,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,oEAAoE;AACpE,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,aAAa,EAAE,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,YAAY,CAKrG,CAAC;AAEF,iFAAiF;AACjF,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC,8CAA8C;AAC9C,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;IAC1B,UAAU,CAAC,EAAE,WAAW,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,WAAW,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC5C;AAED,+FAA+F;AAC/F,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IACjE,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAKD,sEAAsE;AACtE,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,CAEpE;AAED,iGAAiG;AACjG,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAIxF;AAED,4DAA4D;AAC5D,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED,0EAA0E;AAC1E,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAGzD;AAED,uEAAuE;AACvE,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAQjF"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
okf_version: '0.2'
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Resource types
|
|
6
|
+
|
|
7
|
+
* [AttributesProcessor](/types/AttributesProcessor.md) - OTel::Processor::attributes
|
|
8
|
+
* [BatchProcessor](/types/BatchProcessor.md) - OTel::Processor::batch
|
|
9
|
+
* [DebugExporter](/types/DebugExporter.md) - OTel::Exporter::debug
|
|
10
|
+
* [FileLogReceiver](/types/FileLogReceiver.md) - OTel::Receiver::filelog
|
|
11
|
+
* [GoogleCloudExporter](/types/GoogleCloudExporter.md) - OTel::Exporter::googlecloud
|
|
12
|
+
* [HealthCheckExtension](/types/HealthCheckExtension.md) - OTel::Extension::health_check
|
|
13
|
+
* [HostMetricsReceiver](/types/HostMetricsReceiver.md) - OTel::Receiver::hostmetrics
|
|
14
|
+
* [K8sAttributesProcessor](/types/K8sAttributesProcessor.md) - OTel::Processor::k8sattributes
|
|
15
|
+
* [MemoryLimiterProcessor](/types/MemoryLimiterProcessor.md) - OTel::Processor::memory_limiter
|
|
16
|
+
* [OtlpExporter](/types/OtlpExporter.md) - OTel::Exporter::otlp
|
|
17
|
+
* [OtlpHttpExporter](/types/OtlpHttpExporter.md) - OTel::Exporter::otlphttp
|
|
18
|
+
* [OtlpReceiver](/types/OtlpReceiver.md) - OTel::Receiver::otlp
|
|
19
|
+
* [Pipeline](/types/Pipeline.md) - OTel::Pipeline
|
|
20
|
+
* [PprofExtension](/types/PprofExtension.md) - OTel::Extension::pprof
|
|
21
|
+
* [PrometheusExporter](/types/PrometheusExporter.md) - OTel::Exporter::prometheus
|
|
22
|
+
* [PrometheusReceiver](/types/PrometheusReceiver.md) - OTel::Receiver::prometheus
|
|
23
|
+
* [ResourceDetectionProcessor](/types/ResourceDetectionProcessor.md) - OTel::Processor::resourcedetection
|
|
24
|
+
* [ResourceProcessor](/types/ResourceProcessor.md) - OTel::Processor::resource
|
|
25
|
+
* [Service](/types/Service.md) - OTel::Service
|
|
26
|
+
* [ZPagesExtension](/types/ZPagesExtension.md) - OTel::Extension::zpages
|
|
27
|
+
|
|
28
|
+
# Rules
|
|
29
|
+
|
|
30
|
+
* [OTEL001](/rules/OTEL001.md) - a component id or instance name the collector can't parse.
|
|
31
|
+
* [OTEL002](/rules/OTEL002.md) - a credential written as a literal in a component's config.
|
|
32
|
+
* [OTEL101](/rules/OTEL101.md) - A pipeline uses a receiver, processor or exporter that is not declared
|
|
33
|
+
* [OTEL102](/rules/OTEL102.md) - A pipeline has no receivers or no exporters
|
|
34
|
+
* [OTEL103](/rules/OTEL103.md) - A declared component is never used
|
|
35
|
+
* [OTEL104](/rules/OTEL104.md) - service.extensions enables an extension that is not declared
|
|
36
|
+
* [OTEL105](/rules/OTEL105.md) - memory_limiter is not the first processor in a pipeline
|
|
37
|
+
* [OTEL106](/rules/OTEL106.md) - A pipeline id or component reference is not valid collector syntax
|
|
38
|
+
* [OTEL107](/rules/OTEL107.md) - A component's config breaks its definition's rules
|
|
39
|
+
* [OTEL108](/rules/OTEL108.md) - Two components or two pipelines declare the same id
|
|
40
|
+
* [OTEL109](/rules/OTEL109.md) - A custom component has no schema pin
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: lint-rule
|
|
3
|
+
title: OTEL001
|
|
4
|
+
description: a component id or instance name the collector can't parse.
|
|
5
|
+
id: OTEL001
|
|
6
|
+
severity: error
|
|
7
|
+
category: correctness
|
|
8
|
+
lexicon: otel
|
|
9
|
+
docs: https://intentius.io/chant/lexicons/otel/rules/
|
|
10
|
+
---
|
|
11
|
+
a component id or instance name the collector can't parse.
|
|
12
|
+
|
|
13
|
+
## Applies to
|
|
14
|
+
|
|
15
|
+
- [Pipeline](/types/Pipeline.md)
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: lint-rule
|
|
3
|
+
title: OTEL002
|
|
4
|
+
description: a credential written as a literal in a component's config.
|
|
5
|
+
id: OTEL002
|
|
6
|
+
severity: error
|
|
7
|
+
category: security
|
|
8
|
+
lexicon: otel
|
|
9
|
+
docs: https://intentius.io/chant/lexicons/otel/rules/
|
|
10
|
+
---
|
|
11
|
+
a credential written as a literal in a component's config.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: post-synth-check
|
|
3
|
+
title: OTEL101
|
|
4
|
+
description: A pipeline uses a receiver, processor or exporter that is not declared
|
|
5
|
+
id: OTEL101
|
|
6
|
+
severity: error
|
|
7
|
+
category: post-synth
|
|
8
|
+
lexicon: otel
|
|
9
|
+
docs: https://intentius.io/chant/lexicons/otel/rules/
|
|
10
|
+
---
|
|
11
|
+
A pipeline uses a receiver, processor or exporter that is not declared
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: post-synth-check
|
|
3
|
+
title: OTEL102
|
|
4
|
+
description: A pipeline has no receivers or no exporters
|
|
5
|
+
id: OTEL102
|
|
6
|
+
severity: error
|
|
7
|
+
category: post-synth
|
|
8
|
+
lexicon: otel
|
|
9
|
+
docs: https://intentius.io/chant/lexicons/otel/rules/
|
|
10
|
+
---
|
|
11
|
+
A pipeline has no receivers or no exporters
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: post-synth-check
|
|
3
|
+
title: OTEL103
|
|
4
|
+
description: A declared component is never used
|
|
5
|
+
id: OTEL103
|
|
6
|
+
severity: error
|
|
7
|
+
category: post-synth
|
|
8
|
+
lexicon: otel
|
|
9
|
+
docs: https://intentius.io/chant/lexicons/otel/rules/
|
|
10
|
+
---
|
|
11
|
+
A declared component is never used
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: post-synth-check
|
|
3
|
+
title: OTEL104
|
|
4
|
+
description: service.extensions enables an extension that is not declared
|
|
5
|
+
id: OTEL104
|
|
6
|
+
severity: error
|
|
7
|
+
category: post-synth
|
|
8
|
+
lexicon: otel
|
|
9
|
+
docs: https://intentius.io/chant/lexicons/otel/rules/
|
|
10
|
+
---
|
|
11
|
+
service.extensions enables an extension that is not declared
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: post-synth-check
|
|
3
|
+
title: OTEL105
|
|
4
|
+
description: memory_limiter is not the first processor in a pipeline
|
|
5
|
+
id: OTEL105
|
|
6
|
+
severity: error
|
|
7
|
+
category: post-synth
|
|
8
|
+
lexicon: otel
|
|
9
|
+
docs: https://intentius.io/chant/lexicons/otel/rules/
|
|
10
|
+
---
|
|
11
|
+
memory_limiter is not the first processor in a pipeline
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: post-synth-check
|
|
3
|
+
title: OTEL106
|
|
4
|
+
description: A pipeline id or component reference is not valid collector syntax
|
|
5
|
+
id: OTEL106
|
|
6
|
+
severity: error
|
|
7
|
+
category: post-synth
|
|
8
|
+
lexicon: otel
|
|
9
|
+
docs: https://intentius.io/chant/lexicons/otel/rules/
|
|
10
|
+
---
|
|
11
|
+
A pipeline id or component reference is not valid collector syntax
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: post-synth-check
|
|
3
|
+
title: OTEL107
|
|
4
|
+
description: A component's config breaks its definition's rules
|
|
5
|
+
id: OTEL107
|
|
6
|
+
severity: error
|
|
7
|
+
category: post-synth
|
|
8
|
+
lexicon: otel
|
|
9
|
+
docs: https://intentius.io/chant/lexicons/otel/rules/
|
|
10
|
+
---
|
|
11
|
+
A component's config breaks its definition's rules
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: post-synth-check
|
|
3
|
+
title: OTEL108
|
|
4
|
+
description: Two components or two pipelines declare the same id
|
|
5
|
+
id: OTEL108
|
|
6
|
+
severity: error
|
|
7
|
+
category: post-synth
|
|
8
|
+
lexicon: otel
|
|
9
|
+
docs: https://intentius.io/chant/lexicons/otel/rules/
|
|
10
|
+
---
|
|
11
|
+
Two components or two pipelines declare the same id
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: post-synth-check
|
|
3
|
+
title: OTEL109
|
|
4
|
+
description: A custom component has no schema pin
|
|
5
|
+
id: OTEL109
|
|
6
|
+
severity: error
|
|
7
|
+
category: post-synth
|
|
8
|
+
lexicon: otel
|
|
9
|
+
docs: https://intentius.io/chant/lexicons/otel/rules/
|
|
10
|
+
---
|
|
11
|
+
A custom component has no schema pin
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: resource-type
|
|
3
|
+
title: AttributesProcessor
|
|
4
|
+
description: otel resource type OTel::Processor::attributes
|
|
5
|
+
name: AttributesProcessor
|
|
6
|
+
lexicon: otel
|
|
7
|
+
resource_type: OTel::Processor::attributes
|
|
8
|
+
---
|
|
9
|
+
`OTel::Processor::attributes`, a resource type of the otel lexicon.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: resource-type
|
|
3
|
+
title: GoogleCloudExporter
|
|
4
|
+
description: otel resource type OTel::Exporter::googlecloud
|
|
5
|
+
name: GoogleCloudExporter
|
|
6
|
+
lexicon: otel
|
|
7
|
+
resource_type: OTel::Exporter::googlecloud
|
|
8
|
+
---
|
|
9
|
+
`OTel::Exporter::googlecloud`, a resource type of the otel lexicon.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: resource-type
|
|
3
|
+
title: HealthCheckExtension
|
|
4
|
+
description: otel resource type OTel::Extension::health_check
|
|
5
|
+
name: HealthCheckExtension
|
|
6
|
+
lexicon: otel
|
|
7
|
+
resource_type: OTel::Extension::health_check
|
|
8
|
+
---
|
|
9
|
+
`OTel::Extension::health_check`, a resource type of the otel lexicon.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: resource-type
|
|
3
|
+
title: HostMetricsReceiver
|
|
4
|
+
description: otel resource type OTel::Receiver::hostmetrics
|
|
5
|
+
name: HostMetricsReceiver
|
|
6
|
+
lexicon: otel
|
|
7
|
+
resource_type: OTel::Receiver::hostmetrics
|
|
8
|
+
---
|
|
9
|
+
`OTel::Receiver::hostmetrics`, a resource type of the otel lexicon.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: resource-type
|
|
3
|
+
title: K8sAttributesProcessor
|
|
4
|
+
description: otel resource type OTel::Processor::k8sattributes
|
|
5
|
+
name: K8sAttributesProcessor
|
|
6
|
+
lexicon: otel
|
|
7
|
+
resource_type: OTel::Processor::k8sattributes
|
|
8
|
+
---
|
|
9
|
+
`OTel::Processor::k8sattributes`, a resource type of the otel lexicon.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: resource-type
|
|
3
|
+
title: MemoryLimiterProcessor
|
|
4
|
+
description: otel resource type OTel::Processor::memory_limiter
|
|
5
|
+
name: MemoryLimiterProcessor
|
|
6
|
+
lexicon: otel
|
|
7
|
+
resource_type: OTel::Processor::memory_limiter
|
|
8
|
+
---
|
|
9
|
+
`OTel::Processor::memory_limiter`, a resource type of the otel lexicon.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: resource-type
|
|
3
|
+
title: OtlpHttpExporter
|
|
4
|
+
description: otel resource type OTel::Exporter::otlphttp
|
|
5
|
+
name: OtlpHttpExporter
|
|
6
|
+
lexicon: otel
|
|
7
|
+
resource_type: OTel::Exporter::otlphttp
|
|
8
|
+
---
|
|
9
|
+
`OTel::Exporter::otlphttp`, a resource type of the otel lexicon.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: resource-type
|
|
3
|
+
title: Pipeline
|
|
4
|
+
description: otel resource type OTel::Pipeline
|
|
5
|
+
name: Pipeline
|
|
6
|
+
lexicon: otel
|
|
7
|
+
resource_type: OTel::Pipeline
|
|
8
|
+
---
|
|
9
|
+
`OTel::Pipeline`, a resource type of the otel lexicon.
|
|
10
|
+
|
|
11
|
+
## Governed by
|
|
12
|
+
|
|
13
|
+
- [OTEL001](/rules/OTEL001.md): a component id or instance name the collector can't parse.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: resource-type
|
|
3
|
+
title: PrometheusExporter
|
|
4
|
+
description: otel resource type OTel::Exporter::prometheus
|
|
5
|
+
name: PrometheusExporter
|
|
6
|
+
lexicon: otel
|
|
7
|
+
resource_type: OTel::Exporter::prometheus
|
|
8
|
+
---
|
|
9
|
+
`OTel::Exporter::prometheus`, a resource type of the otel lexicon.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: resource-type
|
|
3
|
+
title: PrometheusReceiver
|
|
4
|
+
description: otel resource type OTel::Receiver::prometheus
|
|
5
|
+
name: PrometheusReceiver
|
|
6
|
+
lexicon: otel
|
|
7
|
+
resource_type: OTel::Receiver::prometheus
|
|
8
|
+
---
|
|
9
|
+
`OTel::Receiver::prometheus`, a resource type of the otel lexicon.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: resource-type
|
|
3
|
+
title: ResourceDetectionProcessor
|
|
4
|
+
description: otel resource type OTel::Processor::resourcedetection
|
|
5
|
+
name: ResourceDetectionProcessor
|
|
6
|
+
lexicon: otel
|
|
7
|
+
resource_type: OTel::Processor::resourcedetection
|
|
8
|
+
---
|
|
9
|
+
`OTel::Processor::resourcedetection`, a resource type of the otel lexicon.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: resource-type
|
|
3
|
+
title: ResourceProcessor
|
|
4
|
+
description: otel resource type OTel::Processor::resource
|
|
5
|
+
name: ResourceProcessor
|
|
6
|
+
lexicon: otel
|
|
7
|
+
resource_type: OTel::Processor::resource
|
|
8
|
+
---
|
|
9
|
+
`OTel::Processor::resource`, a resource type of the otel lexicon.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-cli.d.ts","sourceRoot":"","sources":["../src/package-cli.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `Pipeline` and `Service`: the `service:` half of a collector config.
|
|
3
|
+
*
|
|
4
|
+
* A pipeline names its components either by the declared entity, which
|
|
5
|
+
* keeps the reference checked by TypeScript, or by id string (`otlp/backend`)
|
|
6
|
+
* for a component declared somewhere chant can't see. OTEL101 catches a
|
|
7
|
+
* string that names nothing declared.
|
|
8
|
+
*/
|
|
9
|
+
import type { Declarable } from "@intentius/chant/declarable";
|
|
10
|
+
import type { OTelComponent } from "./define.js";
|
|
11
|
+
import { type ComponentKind, type Signal } from "./model.js";
|
|
12
|
+
/** A reference to a component of kind `K`: the declared entity, or its id. */
|
|
13
|
+
export type ComponentRef<K extends ComponentKind> = OTelComponent<K, string, any> | string;
|
|
14
|
+
export interface PipelineProps {
|
|
15
|
+
signal: Signal;
|
|
16
|
+
/** The instance name. The pipeline id becomes `signal/name`. */
|
|
17
|
+
name?: string;
|
|
18
|
+
receivers: ComponentRef<"receiver">[];
|
|
19
|
+
processors?: ComponentRef<"processor">[];
|
|
20
|
+
exporters: ComponentRef<"exporter">[];
|
|
21
|
+
}
|
|
22
|
+
export interface PipelineEntity extends Declarable {
|
|
23
|
+
readonly props: PipelineProps;
|
|
24
|
+
/** The pipeline id under `service.pipelines`, `signal` or `signal/name`. */
|
|
25
|
+
readonly pipelineId: string;
|
|
26
|
+
}
|
|
27
|
+
export declare const PIPELINE_TYPE = "OTel::Pipeline";
|
|
28
|
+
export declare const SERVICE_TYPE = "OTel::Service";
|
|
29
|
+
/** One entry under `service.pipelines`. */
|
|
30
|
+
export declare const Pipeline: new (props: PipelineProps) => PipelineEntity;
|
|
31
|
+
export interface ServiceTelemetry {
|
|
32
|
+
logs?: {
|
|
33
|
+
level?: "debug" | "info" | "warn" | "error";
|
|
34
|
+
encoding?: "console" | "json";
|
|
35
|
+
development?: boolean;
|
|
36
|
+
output_paths?: string[];
|
|
37
|
+
error_output_paths?: string[];
|
|
38
|
+
initial_fields?: Record<string, string>;
|
|
39
|
+
sampling?: Record<string, unknown>;
|
|
40
|
+
};
|
|
41
|
+
metrics?: {
|
|
42
|
+
level?: "none" | "basic" | "normal" | "detailed";
|
|
43
|
+
readers?: Array<Record<string, unknown>>;
|
|
44
|
+
};
|
|
45
|
+
traces?: {
|
|
46
|
+
processors?: Array<Record<string, unknown>>;
|
|
47
|
+
propagators?: string[];
|
|
48
|
+
};
|
|
49
|
+
resource?: Record<string, string>;
|
|
50
|
+
}
|
|
51
|
+
export interface ServiceProps {
|
|
52
|
+
/**
|
|
53
|
+
* Extensions to enable, in start order. Leave it out and every declared
|
|
54
|
+
* extension is enabled in declaration order.
|
|
55
|
+
*/
|
|
56
|
+
extensions?: ComponentRef<"extension">[];
|
|
57
|
+
telemetry?: ServiceTelemetry;
|
|
58
|
+
}
|
|
59
|
+
export interface ServiceEntity extends Declarable {
|
|
60
|
+
readonly props: ServiceProps;
|
|
61
|
+
}
|
|
62
|
+
/** `service.extensions` and `service.telemetry`. Optional; declare at most one. */
|
|
63
|
+
export declare const Service: new (props: ServiceProps) => ServiceEntity;
|
|
64
|
+
export declare function isPipelineEntity(value: unknown): value is PipelineEntity;
|
|
65
|
+
export declare function isServiceEntity(value: unknown): value is ServiceEntity;
|
|
66
|
+
//# sourceMappingURL=pipeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAe,KAAK,aAAa,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AAEvE,8EAA8E;AAE9E,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,aAAa,IAAI,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC;AAE3F,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;IACtC,UAAU,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC;IACzC,SAAS,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,4EAA4E;IAC5E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,aAAa,mBAAmB,CAAC;AAC9C,eAAO,MAAM,YAAY,kBAAkB,CAAC;AAI5C,2CAA2C;AAC3C,eAAO,MAAM,QAAQ,EAGL,KAAK,KAAK,EAAE,aAAa,KAAK,cAAc,CAAC;AAG7D,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;QAC5C,QAAQ,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;QAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC9B,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,CAAC;IACF,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;QACjD,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;KAC1C,CAAC;IACF,MAAM,CAAC,EAAE;QACP,UAAU,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAC5C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,UAAU,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC;IACzC,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B;AAED,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC/C,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;CAC9B;AAED,mFAAmF;AACnF,eAAO,MAAM,OAAO,EAA0D,KAAK,KAAK,EAAE,YAAY,KAAK,aAAa,CAAC;AAEzH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAExE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAEtE"}
|