@use-tusk/drift-schemas 0.1.32 → 0.1.34
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 +3 -0
- package/dist/backend/span_export_service.client.d.ts +4 -4
- package/dist/backend/test_run_service.cjs +5 -1
- package/dist/backend/test_run_service.client.cjs +1 -1
- package/dist/backend/test_run_service.client.d.cts +1 -1
- package/dist/backend/test_run_service.client.d.ts +5 -5
- package/dist/backend/test_run_service.client.js +1 -1
- package/dist/backend/test_run_service.d.cts +2 -2
- package/dist/backend/test_run_service.d.ts +2 -2
- package/dist/backend/test_run_service.js +2 -2
- package/dist/{communication-DR7GLSjb.js → communication-BqzHZp30.js} +345 -2
- package/dist/communication-BqzHZp30.js.map +1 -0
- package/dist/{communication-Bgarn3Sn.cjs → communication-DGC02tEU.cjs} +368 -1
- package/dist/communication-DGC02tEU.cjs.map +1 -0
- package/dist/{communication-Z4TqKJV5.d.cts → communication-DxNq0br3.d.cts} +149 -2
- package/dist/communication-DxNq0br3.d.cts.map +1 -0
- package/dist/{communication-CGpvyMAU.d.ts → communication-kLafmbKM.d.ts} +149 -2
- package/dist/communication-kLafmbKM.d.ts.map +1 -0
- package/dist/core/communication.cjs +5 -1
- package/dist/core/communication.client.cjs +1 -1
- package/dist/core/communication.client.d.cts +1 -1
- package/dist/core/communication.client.d.ts +5 -5
- package/dist/core/communication.client.js +1 -1
- package/dist/core/communication.d.cts +2 -2
- package/dist/core/communication.d.ts +2 -2
- package/dist/core/communication.js +2 -2
- package/dist/query/span_query.cjs +1688 -0
- package/dist/query/span_query.cjs.map +1 -0
- package/dist/query/span_query.d.cts +842 -0
- package/dist/query/span_query.d.cts.map +1 -0
- package/dist/query/span_query.d.ts +842 -0
- package/dist/query/span_query.d.ts.map +1 -0
- package/dist/query/span_query.js +1664 -0
- package/dist/query/span_query.js.map +1 -0
- package/dist/query/span_query_helpers.cjs +2177 -0
- package/dist/query/span_query_helpers.cjs.map +1 -0
- package/dist/query/span_query_helpers.d.cts +326 -0
- package/dist/query/span_query_helpers.d.cts.map +1 -0
- package/dist/query/span_query_helpers.d.ts +326 -0
- package/dist/query/span_query_helpers.d.ts.map +1 -0
- package/dist/query/span_query_helpers.js +2146 -0
- package/dist/query/span_query_helpers.js.map +1 -0
- package/dist/{test_run_service-BYoRJLSU.cjs → test_run_service-BRgR1aLX.cjs} +348 -1
- package/dist/test_run_service-BRgR1aLX.cjs.map +1 -0
- package/dist/{test_run_service-Wq2V-K6v.d.cts → test_run_service-Be9XKu-h.d.cts} +130 -2
- package/dist/test_run_service-Be9XKu-h.d.cts.map +1 -0
- package/dist/{test_run_service-BP25nTF6.js → test_run_service-DMIyUzjg.js} +325 -2
- package/dist/test_run_service-DMIyUzjg.js.map +1 -0
- package/dist/{test_run_service-Cv8GOdrM.d.ts → test_run_service-cAd5MiOG.d.ts} +130 -2
- package/dist/test_run_service-cAd5MiOG.d.ts.map +1 -0
- package/package.json +16 -3
- package/dist/communication-Bgarn3Sn.cjs.map +0 -1
- package/dist/communication-CGpvyMAU.d.ts.map +0 -1
- package/dist/communication-DR7GLSjb.js.map +0 -1
- package/dist/communication-Z4TqKJV5.d.cts.map +0 -1
- package/dist/test_run_service-BP25nTF6.js.map +0 -1
- package/dist/test_run_service-BYoRJLSU.cjs.map +0 -1
- package/dist/test_run_service-Cv8GOdrM.d.ts.map +0 -1
- package/dist/test_run_service-Wq2V-K6v.d.cts.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"span_query_helpers.js","names":["json: JsonObject","key: keyof Struct[\"fields\"] | undefined","val: Struct[\"fields\"][any] | undefined","key: keyof WhereClause[\"fields\"] | undefined","val: WhereClause[\"fields\"][any] | undefined"],"sources":["../../generated/ts/google/protobuf/struct.ts","../../generated/ts/google/protobuf/timestamp.ts","../../generated/ts/query/span_query.ts","../../src/query/span_query_helpers.ts"],"sourcesContent":["// @generated by protobuf-ts 2.11.1 with parameter generate_dependencies\n// @generated from protobuf file \"google/protobuf/struct.proto\" (package \"google.protobuf\", syntax proto3)\n// tslint:disable\n//\n// Protocol Buffers - Google's data interchange format\n// Copyright 2008 Google Inc. All rights reserved.\n// https://developers.google.com/protocol-buffers/\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\nimport type { BinaryWriteOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryWriter } from \"@protobuf-ts/runtime\";\nimport { WireType } from \"@protobuf-ts/runtime\";\nimport type { BinaryReadOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryReader } from \"@protobuf-ts/runtime\";\nimport { UnknownFieldHandler } from \"@protobuf-ts/runtime\";\nimport type { PartialMessage } from \"@protobuf-ts/runtime\";\nimport { reflectionMergePartial } from \"@protobuf-ts/runtime\";\nimport { isJsonObject } from \"@protobuf-ts/runtime\";\nimport { typeofJsonValue } from \"@protobuf-ts/runtime\";\nimport type { JsonValue } from \"@protobuf-ts/runtime\";\nimport type { JsonReadOptions } from \"@protobuf-ts/runtime\";\nimport type { JsonWriteOptions } from \"@protobuf-ts/runtime\";\nimport type { JsonObject } from \"@protobuf-ts/runtime\";\nimport { MessageType } from \"@protobuf-ts/runtime\";\n/**\n * `Struct` represents a structured data value, consisting of fields\n * which map to dynamically typed values. In some languages, `Struct`\n * might be supported by a native representation. For example, in\n * scripting languages like JS a struct is represented as an\n * object. The details of that representation are described together\n * with the proto support for the language.\n *\n * The JSON representation for `Struct` is JSON object.\n *\n * @generated from protobuf message google.protobuf.Struct\n */\nexport interface Struct {\n /**\n * Unordered map of dynamically typed values.\n *\n * @generated from protobuf field: map<string, google.protobuf.Value> fields = 1\n */\n fields: {\n [key: string]: Value;\n };\n}\n/**\n * `Value` represents a dynamically typed value which can be either\n * null, a number, a string, a boolean, a recursive struct value, or a\n * list of values. A producer of value is expected to set one of these\n * variants. Absence of any variant indicates an error.\n *\n * The JSON representation for `Value` is JSON value.\n *\n * @generated from protobuf message google.protobuf.Value\n */\nexport interface Value {\n /**\n * The kind of value.\n *\n * @generated from protobuf oneof: kind\n */\n kind: {\n oneofKind: \"nullValue\";\n /**\n * Represents a null value.\n *\n * @generated from protobuf field: google.protobuf.NullValue null_value = 1\n */\n nullValue: NullValue;\n } | {\n oneofKind: \"numberValue\";\n /**\n * Represents a double value.\n *\n * @generated from protobuf field: double number_value = 2\n */\n numberValue: number;\n } | {\n oneofKind: \"stringValue\";\n /**\n * Represents a string value.\n *\n * @generated from protobuf field: string string_value = 3\n */\n stringValue: string;\n } | {\n oneofKind: \"boolValue\";\n /**\n * Represents a boolean value.\n *\n * @generated from protobuf field: bool bool_value = 4\n */\n boolValue: boolean;\n } | {\n oneofKind: \"structValue\";\n /**\n * Represents a structured value.\n *\n * @generated from protobuf field: google.protobuf.Struct struct_value = 5\n */\n structValue: Struct;\n } | {\n oneofKind: \"listValue\";\n /**\n * Represents a repeated `Value`.\n *\n * @generated from protobuf field: google.protobuf.ListValue list_value = 6\n */\n listValue: ListValue;\n } | {\n oneofKind: undefined;\n };\n}\n/**\n * `ListValue` is a wrapper around a repeated field of values.\n *\n * The JSON representation for `ListValue` is JSON array.\n *\n * @generated from protobuf message google.protobuf.ListValue\n */\nexport interface ListValue {\n /**\n * Repeated field of dynamically typed values.\n *\n * @generated from protobuf field: repeated google.protobuf.Value values = 1\n */\n values: Value[];\n}\n/**\n * `NullValue` is a singleton enumeration to represent the null value for the\n * `Value` type union.\n *\n * The JSON representation for `NullValue` is JSON `null`.\n *\n * @generated from protobuf enum google.protobuf.NullValue\n */\nexport enum NullValue {\n /**\n * Null value.\n *\n * @generated from protobuf enum value: NULL_VALUE = 0;\n */\n NULL_VALUE = 0\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass Struct$Type extends MessageType<Struct> {\n constructor() {\n super(\"google.protobuf.Struct\", [\n { no: 1, name: \"fields\", kind: \"map\", K: 9 /*ScalarType.STRING*/, V: { kind: \"message\", T: () => Value } }\n ]);\n }\n /**\n * Encode `Struct` to JSON object.\n */\n internalJsonWrite(message: Struct, options: JsonWriteOptions): JsonValue {\n let json: JsonObject = {};\n for (let [k, v] of Object.entries(message.fields)) {\n json[k] = Value.toJson(v);\n }\n return json;\n }\n /**\n * Decode `Struct` from JSON object.\n */\n internalJsonRead(json: JsonValue, options: JsonReadOptions, target?: Struct): Struct {\n if (!isJsonObject(json))\n throw new globalThis.Error(\"Unable to parse message \" + this.typeName + \" from JSON \" + typeofJsonValue(json) + \".\");\n if (!target)\n target = this.create();\n for (let [k, v] of globalThis.Object.entries(json)) {\n target.fields[k] = Value.fromJson(v);\n }\n return target;\n }\n create(value?: PartialMessage<Struct>): Struct {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.fields = {};\n if (value !== undefined)\n reflectionMergePartial<Struct>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Struct): Struct {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* map<string, google.protobuf.Value> fields */ 1:\n this.binaryReadMap1(message.fields, reader, options);\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n private binaryReadMap1(map: Struct[\"fields\"], reader: IBinaryReader, options: BinaryReadOptions): void {\n let len = reader.uint32(), end = reader.pos + len, key: keyof Struct[\"fields\"] | undefined, val: Struct[\"fields\"][any] | undefined;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case 1:\n key = reader.string();\n break;\n case 2:\n val = Value.internalBinaryRead(reader, reader.uint32(), options);\n break;\n default: throw new globalThis.Error(\"unknown map entry field for google.protobuf.Struct.fields\");\n }\n }\n map[key ?? \"\"] = val ?? Value.create();\n }\n internalBinaryWrite(message: Struct, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* map<string, google.protobuf.Value> fields = 1; */\n for (let k of globalThis.Object.keys(message.fields)) {\n writer.tag(1, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k);\n writer.tag(2, WireType.LengthDelimited).fork();\n Value.internalBinaryWrite(message.fields[k], writer, options);\n writer.join().join();\n }\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message google.protobuf.Struct\n */\nexport const Struct = new Struct$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Value$Type extends MessageType<Value> {\n constructor() {\n super(\"google.protobuf.Value\", [\n { no: 1, name: \"null_value\", kind: \"enum\", oneof: \"kind\", T: () => [\"google.protobuf.NullValue\", NullValue] },\n { no: 2, name: \"number_value\", kind: \"scalar\", oneof: \"kind\", T: 1 /*ScalarType.DOUBLE*/ },\n { no: 3, name: \"string_value\", kind: \"scalar\", oneof: \"kind\", T: 9 /*ScalarType.STRING*/ },\n { no: 4, name: \"bool_value\", kind: \"scalar\", oneof: \"kind\", T: 8 /*ScalarType.BOOL*/ },\n { no: 5, name: \"struct_value\", kind: \"message\", oneof: \"kind\", T: () => Struct },\n { no: 6, name: \"list_value\", kind: \"message\", oneof: \"kind\", T: () => ListValue }\n ]);\n }\n /**\n * Encode `Value` to JSON value.\n */\n internalJsonWrite(message: Value, options: JsonWriteOptions): JsonValue {\n if (message.kind.oneofKind === undefined)\n throw new globalThis.Error();\n switch (message.kind.oneofKind) {\n case undefined: throw new globalThis.Error();\n case \"boolValue\": return message.kind.boolValue;\n case \"nullValue\": return null;\n case \"numberValue\":\n let numberValue = message.kind.numberValue;\n if (typeof numberValue == \"number\" && !Number.isFinite(numberValue))\n throw new globalThis.Error();\n return numberValue;\n case \"stringValue\": return message.kind.stringValue;\n case \"listValue\":\n let listValueField = this.fields.find(f => f.no === 6);\n if (listValueField?.kind !== \"message\")\n throw new globalThis.Error();\n return listValueField.T().toJson(message.kind.listValue);\n case \"structValue\":\n let structValueField = this.fields.find(f => f.no === 5);\n if (structValueField?.kind !== \"message\")\n throw new globalThis.Error();\n return structValueField.T().toJson(message.kind.structValue);\n }\n }\n /**\n * Decode `Value` from JSON value.\n */\n internalJsonRead(json: JsonValue, options: JsonReadOptions, target?: Value): Value {\n if (!target)\n target = this.create();\n switch (typeof json) {\n case \"number\":\n target.kind = { oneofKind: \"numberValue\", numberValue: json };\n break;\n case \"string\":\n target.kind = { oneofKind: \"stringValue\", stringValue: json };\n break;\n case \"boolean\":\n target.kind = { oneofKind: \"boolValue\", boolValue: json };\n break;\n case \"object\":\n if (json === null) {\n target.kind = { oneofKind: \"nullValue\", nullValue: NullValue.NULL_VALUE };\n }\n else if (globalThis.Array.isArray(json)) {\n target.kind = { oneofKind: \"listValue\", listValue: ListValue.fromJson(json) };\n }\n else {\n target.kind = { oneofKind: \"structValue\", structValue: Struct.fromJson(json) };\n }\n break;\n default: throw new globalThis.Error(\"Unable to parse \" + this.typeName + \" from JSON \" + typeofJsonValue(json));\n }\n return target;\n }\n create(value?: PartialMessage<Value>): Value {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.kind = { oneofKind: undefined };\n if (value !== undefined)\n reflectionMergePartial<Value>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Value): Value {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* google.protobuf.NullValue null_value */ 1:\n message.kind = {\n oneofKind: \"nullValue\",\n nullValue: reader.int32()\n };\n break;\n case /* double number_value */ 2:\n message.kind = {\n oneofKind: \"numberValue\",\n numberValue: reader.double()\n };\n break;\n case /* string string_value */ 3:\n message.kind = {\n oneofKind: \"stringValue\",\n stringValue: reader.string()\n };\n break;\n case /* bool bool_value */ 4:\n message.kind = {\n oneofKind: \"boolValue\",\n boolValue: reader.bool()\n };\n break;\n case /* google.protobuf.Struct struct_value */ 5:\n message.kind = {\n oneofKind: \"structValue\",\n structValue: Struct.internalBinaryRead(reader, reader.uint32(), options, (message.kind as any).structValue)\n };\n break;\n case /* google.protobuf.ListValue list_value */ 6:\n message.kind = {\n oneofKind: \"listValue\",\n listValue: ListValue.internalBinaryRead(reader, reader.uint32(), options, (message.kind as any).listValue)\n };\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: Value, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* google.protobuf.NullValue null_value = 1; */\n if (message.kind.oneofKind === \"nullValue\")\n writer.tag(1, WireType.Varint).int32(message.kind.nullValue);\n /* double number_value = 2; */\n if (message.kind.oneofKind === \"numberValue\")\n writer.tag(2, WireType.Bit64).double(message.kind.numberValue);\n /* string string_value = 3; */\n if (message.kind.oneofKind === \"stringValue\")\n writer.tag(3, WireType.LengthDelimited).string(message.kind.stringValue);\n /* bool bool_value = 4; */\n if (message.kind.oneofKind === \"boolValue\")\n writer.tag(4, WireType.Varint).bool(message.kind.boolValue);\n /* google.protobuf.Struct struct_value = 5; */\n if (message.kind.oneofKind === \"structValue\")\n Struct.internalBinaryWrite(message.kind.structValue, writer.tag(5, WireType.LengthDelimited).fork(), options).join();\n /* google.protobuf.ListValue list_value = 6; */\n if (message.kind.oneofKind === \"listValue\")\n ListValue.internalBinaryWrite(message.kind.listValue, writer.tag(6, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message google.protobuf.Value\n */\nexport const Value = new Value$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ListValue$Type extends MessageType<ListValue> {\n constructor() {\n super(\"google.protobuf.ListValue\", [\n { no: 1, name: \"values\", kind: \"message\", repeat: 2 /*RepeatType.UNPACKED*/, T: () => Value }\n ]);\n }\n /**\n * Encode `ListValue` to JSON array.\n */\n internalJsonWrite(message: ListValue, options: JsonWriteOptions): JsonValue {\n return message.values.map(v => Value.toJson(v));\n }\n /**\n * Decode `ListValue` from JSON array.\n */\n internalJsonRead(json: JsonValue, options: JsonReadOptions, target?: ListValue): ListValue {\n if (!globalThis.Array.isArray(json))\n throw new globalThis.Error(\"Unable to parse \" + this.typeName + \" from JSON \" + typeofJsonValue(json));\n if (!target)\n target = this.create();\n let values = json.map(v => Value.fromJson(v));\n target.values.push(...values);\n return target;\n }\n create(value?: PartialMessage<ListValue>): ListValue {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.values = [];\n if (value !== undefined)\n reflectionMergePartial<ListValue>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListValue): ListValue {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* repeated google.protobuf.Value values */ 1:\n message.values.push(Value.internalBinaryRead(reader, reader.uint32(), options));\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ListValue, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* repeated google.protobuf.Value values = 1; */\n for (let i = 0; i < message.values.length; i++)\n Value.internalBinaryWrite(message.values[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message google.protobuf.ListValue\n */\nexport const ListValue = new ListValue$Type();\n","// @generated by protobuf-ts 2.11.1 with parameter generate_dependencies\n// @generated from protobuf file \"google/protobuf/timestamp.proto\" (package \"google.protobuf\", syntax proto3)\n// tslint:disable\n//\n// Protocol Buffers - Google's data interchange format\n// Copyright 2008 Google Inc. All rights reserved.\n// https://developers.google.com/protocol-buffers/\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\nimport type { BinaryWriteOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryWriter } from \"@protobuf-ts/runtime\";\nimport { WireType } from \"@protobuf-ts/runtime\";\nimport type { BinaryReadOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryReader } from \"@protobuf-ts/runtime\";\nimport { UnknownFieldHandler } from \"@protobuf-ts/runtime\";\nimport type { PartialMessage } from \"@protobuf-ts/runtime\";\nimport { reflectionMergePartial } from \"@protobuf-ts/runtime\";\nimport { typeofJsonValue } from \"@protobuf-ts/runtime\";\nimport type { JsonValue } from \"@protobuf-ts/runtime\";\nimport type { JsonReadOptions } from \"@protobuf-ts/runtime\";\nimport type { JsonWriteOptions } from \"@protobuf-ts/runtime\";\nimport { PbLong } from \"@protobuf-ts/runtime\";\nimport { MessageType } from \"@protobuf-ts/runtime\";\n/**\n * A Timestamp represents a point in time independent of any time zone or local\n * calendar, encoded as a count of seconds and fractions of seconds at\n * nanosecond resolution. The count is relative to an epoch at UTC midnight on\n * January 1, 1970, in the proleptic Gregorian calendar which extends the\n * Gregorian calendar backwards to year one.\n *\n * All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n * second table is needed for interpretation, using a [24-hour linear\n * smear](https://developers.google.com/time/smear).\n *\n * The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n * restricting to that range, we ensure that we can convert to and from [RFC\n * 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n *\n * # Examples\n *\n * Example 1: Compute Timestamp from POSIX `time()`.\n *\n * Timestamp timestamp;\n * timestamp.set_seconds(time(NULL));\n * timestamp.set_nanos(0);\n *\n * Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n *\n * struct timeval tv;\n * gettimeofday(&tv, NULL);\n *\n * Timestamp timestamp;\n * timestamp.set_seconds(tv.tv_sec);\n * timestamp.set_nanos(tv.tv_usec * 1000);\n *\n * Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n *\n * FILETIME ft;\n * GetSystemTimeAsFileTime(&ft);\n * UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;\n *\n * // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n * // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n * Timestamp timestamp;\n * timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n * timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n *\n * Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n *\n * long millis = System.currentTimeMillis();\n *\n * Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n * .setNanos((int) ((millis % 1000) * 1000000)).build();\n *\n * Example 5: Compute Timestamp from Java `Instant.now()`.\n *\n * Instant now = Instant.now();\n *\n * Timestamp timestamp =\n * Timestamp.newBuilder().setSeconds(now.getEpochSecond())\n * .setNanos(now.getNano()).build();\n *\n * Example 6: Compute Timestamp from current time in Python.\n *\n * timestamp = Timestamp()\n * timestamp.GetCurrentTime()\n *\n * # JSON Mapping\n *\n * In JSON format, the Timestamp type is encoded as a string in the\n * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n * format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n * where {year} is always expressed using four digits while {month}, {day},\n * {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n * seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n * are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n * is required. A proto3 JSON serializer should always use UTC (as indicated by\n * \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n * able to accept both UTC and other timezones (as indicated by an offset).\n *\n * For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n * 01:30 UTC on January 15, 2017.\n *\n * In JavaScript, one can convert a Date object to this format using the\n * standard\n * [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n * method. In Python, a standard `datetime.datetime` object can be converted\n * to this format using\n * [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n * the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n * the Joda Time's [`ISODateTimeFormat.dateTime()`](\n * http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()\n * ) to obtain a formatter capable of generating timestamps in this format.\n *\n *\n * @generated from protobuf message google.protobuf.Timestamp\n */\nexport interface Timestamp {\n /**\n * Represents seconds of UTC time since Unix epoch\n * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n * 9999-12-31T23:59:59Z inclusive.\n *\n * @generated from protobuf field: int64 seconds = 1\n */\n seconds: bigint;\n /**\n * Non-negative fractions of a second at nanosecond resolution. Negative\n * second values with fractions must still have non-negative nanos values\n * that count forward in time. Must be from 0 to 999,999,999\n * inclusive.\n *\n * @generated from protobuf field: int32 nanos = 2\n */\n nanos: number;\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass Timestamp$Type extends MessageType<Timestamp> {\n constructor() {\n super(\"google.protobuf.Timestamp\", [\n { no: 1, name: \"seconds\", kind: \"scalar\", T: 3 /*ScalarType.INT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"nanos\", kind: \"scalar\", T: 5 /*ScalarType.INT32*/ }\n ]);\n }\n /**\n * Creates a new `Timestamp` for the current time.\n */\n now(): Timestamp {\n const msg = this.create();\n const ms = Date.now();\n msg.seconds = PbLong.from(Math.floor(ms / 1000)).toBigInt();\n msg.nanos = (ms % 1000) * 1000000;\n return msg;\n }\n /**\n * Converts a `Timestamp` to a JavaScript Date.\n */\n toDate(message: Timestamp): Date {\n return new Date(PbLong.from(message.seconds).toNumber() * 1000 + Math.ceil(message.nanos / 1000000));\n }\n /**\n * Converts a JavaScript Date to a `Timestamp`.\n */\n fromDate(date: Date): Timestamp {\n const msg = this.create();\n const ms = date.getTime();\n msg.seconds = PbLong.from(Math.floor(ms / 1000)).toBigInt();\n msg.nanos = ((ms % 1000) + (ms < 0 && ms % 1000 !== 0 ? 1000 : 0)) * 1000000;\n return msg;\n }\n /**\n * In JSON format, the `Timestamp` type is encoded as a string\n * in the RFC 3339 format.\n */\n internalJsonWrite(message: Timestamp, options: JsonWriteOptions): JsonValue {\n let ms = PbLong.from(message.seconds).toNumber() * 1000;\n if (ms < Date.parse(\"0001-01-01T00:00:00Z\") || ms > Date.parse(\"9999-12-31T23:59:59Z\"))\n throw new Error(\"Unable to encode Timestamp to JSON. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.\");\n if (message.nanos < 0)\n throw new Error(\"Unable to encode invalid Timestamp to JSON. Nanos must not be negative.\");\n let z = \"Z\";\n if (message.nanos > 0) {\n let nanosStr = (message.nanos + 1000000000).toString().substring(1);\n if (nanosStr.substring(3) === \"000000\")\n z = \".\" + nanosStr.substring(0, 3) + \"Z\";\n else if (nanosStr.substring(6) === \"000\")\n z = \".\" + nanosStr.substring(0, 6) + \"Z\";\n else\n z = \".\" + nanosStr + \"Z\";\n }\n return new Date(ms).toISOString().replace(\".000Z\", z);\n }\n /**\n * In JSON format, the `Timestamp` type is encoded as a string\n * in the RFC 3339 format.\n */\n internalJsonRead(json: JsonValue, options: JsonReadOptions, target?: Timestamp): Timestamp {\n if (typeof json !== \"string\")\n throw new Error(\"Unable to parse Timestamp from JSON \" + typeofJsonValue(json) + \".\");\n let matches = json.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(?:Z|\\.([0-9]{3,9})Z|([+-][0-9][0-9]:[0-9][0-9]))$/);\n if (!matches)\n throw new Error(\"Unable to parse Timestamp from JSON. Invalid format.\");\n let ms = Date.parse(matches[1] + \"-\" + matches[2] + \"-\" + matches[3] + \"T\" + matches[4] + \":\" + matches[5] + \":\" + matches[6] + (matches[8] ? matches[8] : \"Z\"));\n if (Number.isNaN(ms))\n throw new Error(\"Unable to parse Timestamp from JSON. Invalid value.\");\n if (ms < Date.parse(\"0001-01-01T00:00:00Z\") || ms > Date.parse(\"9999-12-31T23:59:59Z\"))\n throw new globalThis.Error(\"Unable to parse Timestamp from JSON. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.\");\n if (!target)\n target = this.create();\n target.seconds = PbLong.from(ms / 1000).toBigInt();\n target.nanos = 0;\n if (matches[7])\n target.nanos = (parseInt(\"1\" + matches[7] + \"0\".repeat(9 - matches[7].length)) - 1000000000);\n return target;\n }\n create(value?: PartialMessage<Timestamp>): Timestamp {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.seconds = 0n;\n message.nanos = 0;\n if (value !== undefined)\n reflectionMergePartial<Timestamp>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Timestamp): Timestamp {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* int64 seconds */ 1:\n message.seconds = reader.int64().toBigInt();\n break;\n case /* int32 nanos */ 2:\n message.nanos = reader.int32();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: Timestamp, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* int64 seconds = 1; */\n if (message.seconds !== 0n)\n writer.tag(1, WireType.Varint).int64(message.seconds);\n /* int32 nanos = 2; */\n if (message.nanos !== 0)\n writer.tag(2, WireType.Varint).int32(message.nanos);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message google.protobuf.Timestamp\n */\nexport const Timestamp = new Timestamp$Type();\n","// @generated by protobuf-ts 2.11.1 with parameter generate_dependencies\n// @generated from protobuf file \"query/span_query.proto\" (package \"tusk.drift.query.v1\", syntax proto3)\n// tslint:disable\nimport type { BinaryWriteOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryWriter } from \"@protobuf-ts/runtime\";\nimport { WireType } from \"@protobuf-ts/runtime\";\nimport type { BinaryReadOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryReader } from \"@protobuf-ts/runtime\";\nimport { UnknownFieldHandler } from \"@protobuf-ts/runtime\";\nimport type { PartialMessage } from \"@protobuf-ts/runtime\";\nimport { reflectionMergePartial } from \"@protobuf-ts/runtime\";\nimport { MessageType } from \"@protobuf-ts/runtime\";\nimport { Value } from \"../google/protobuf/struct\";\nimport { Timestamp } from \"../google/protobuf/timestamp\";\n/**\n * @generated from protobuf message tusk.drift.query.v1.TimestampRange\n */\nexport interface TimestampRange {\n /**\n * @generated from protobuf field: google.protobuf.Timestamp start = 1\n */\n start?: Timestamp;\n /**\n * @generated from protobuf field: google.protobuf.Timestamp end = 2\n */\n end?: Timestamp;\n}\n/**\n * Optional extraction steps applied to a JSON-backed field predicate before\n * comparisons are evaluated.\n *\n * @generated from protobuf message tusk.drift.query.v1.FieldAccess\n */\nexport interface FieldAccess {\n /**\n * @generated from protobuf field: tusk.drift.query.v1.CastType cast_as = 1\n */\n castAs: CastType;\n /**\n * @generated from protobuf field: tusk.drift.query.v1.DecodeStrategy decode = 2\n */\n decode: DecodeStrategy;\n /**\n * @generated from protobuf field: optional string then_path = 3\n */\n thenPath?: string;\n}\n/**\n * Comparison operators applied to a single field path.\n *\n * Value-typed operators intentionally use google.protobuf.Value so the JSON\n * mapping stays ergonomic for humans and AI agents. Implementations should\n * validate which operators are valid for each field and how temporal values are\n * represented.\n *\n * @generated from protobuf message tusk.drift.query.v1.FieldPredicate\n */\nexport interface FieldPredicate {\n /**\n * @generated from protobuf field: google.protobuf.Value eq = 1\n */\n eq?: Value;\n /**\n * @generated from protobuf field: google.protobuf.Value neq = 2\n */\n neq?: Value;\n /**\n * @generated from protobuf field: repeated google.protobuf.Value in_values = 3\n */\n inValues: Value[];\n /**\n * @generated from protobuf field: repeated google.protobuf.Value not_in_values = 4\n */\n notInValues: Value[];\n /**\n * @generated from protobuf field: google.protobuf.Value gt = 5\n */\n gt?: Value;\n /**\n * @generated from protobuf field: google.protobuf.Value gte = 6\n */\n gte?: Value;\n /**\n * @generated from protobuf field: google.protobuf.Value lt = 7\n */\n lt?: Value;\n /**\n * @generated from protobuf field: google.protobuf.Value lte = 8\n */\n lte?: Value;\n /**\n * @generated from protobuf field: optional string contains = 9\n */\n contains?: string;\n /**\n * @generated from protobuf field: optional string starts_with = 10\n */\n startsWith?: string;\n /**\n * @generated from protobuf field: optional string ends_with = 11\n */\n endsWith?: string;\n /**\n * @generated from protobuf field: optional bool is_null = 12\n */\n isNull?: boolean;\n /**\n * @generated from protobuf field: tusk.drift.query.v1.TimestampRange between_timestamps = 13\n */\n betweenTimestamps?: TimestampRange;\n /**\n * @generated from protobuf field: tusk.drift.query.v1.FieldAccess access = 14\n */\n access?: FieldAccess;\n}\n/**\n * Recursive query clause.\n *\n * `fields` is keyed by canonical field path, for example:\n * - \"name\"\n * - \"packageName\"\n * - \"statusCode\"\n * - \"outputValue.statusCode\"\n * - \"inputValue.body\"\n *\n * @generated from protobuf message tusk.drift.query.v1.WhereClause\n */\nexport interface WhereClause {\n /**\n * @generated from protobuf field: map<string, tusk.drift.query.v1.FieldPredicate> fields = 1\n */\n fields: {\n [key: string]: FieldPredicate;\n };\n /**\n * @generated from protobuf field: repeated tusk.drift.query.v1.WhereClause and = 2\n */\n and: WhereClause[];\n /**\n * @generated from protobuf field: repeated tusk.drift.query.v1.WhereClause or = 3\n */\n or: WhereClause[];\n /**\n * @generated from protobuf field: tusk.drift.query.v1.WhereClause not = 4\n */\n not?: WhereClause;\n}\n/**\n * @generated from protobuf message tusk.drift.query.v1.SpanOrderBy\n */\nexport interface SpanOrderBy {\n /**\n * @generated from protobuf field: tusk.drift.query.v1.SpanSortField field = 1\n */\n field: SpanSortField;\n /**\n * @generated from protobuf field: tusk.drift.query.v1.SortDirection direction = 2\n */\n direction: SortDirection;\n}\n/**\n * @generated from protobuf message tusk.drift.query.v1.MetricOrderBy\n */\nexport interface MetricOrderBy {\n /**\n * @generated from protobuf field: tusk.drift.query.v1.AggregateMetric metric = 1\n */\n metric: AggregateMetric;\n /**\n * @generated from protobuf field: tusk.drift.query.v1.SortDirection direction = 2\n */\n direction: SortDirection;\n}\n/**\n * @generated from protobuf message tusk.drift.query.v1.SchemaComparisonPeriod\n */\nexport interface SchemaComparisonPeriod {\n /**\n * @generated from protobuf field: google.protobuf.Timestamp start_date = 1\n */\n startDate?: Timestamp;\n /**\n * @generated from protobuf field: google.protobuf.Timestamp end_date = 2\n */\n endDate?: Timestamp;\n}\n/**\n * @generated from protobuf message tusk.drift.query.v1.QuerySpansRequest\n */\nexport interface QuerySpansRequest {\n /**\n * @generated from protobuf field: string observable_service_id = 1\n */\n observableServiceId: string;\n /**\n * @generated from protobuf field: optional string client_id = 2\n */\n clientId?: string;\n /**\n * @generated from protobuf field: tusk.drift.query.v1.WhereClause where = 3\n */\n where?: WhereClause;\n /**\n * @generated from protobuf field: repeated tusk.drift.query.v1.SpanOrderBy order_by = 4\n */\n orderBy: SpanOrderBy[];\n /**\n * @generated from protobuf field: optional int32 limit = 5\n */\n limit?: number;\n /**\n * @generated from protobuf field: optional int32 offset = 6\n */\n offset?: number;\n /**\n * @generated from protobuf field: optional bool include_payloads = 7\n */\n includePayloads?: boolean;\n /**\n * @generated from protobuf field: optional int32 max_payload_length = 8\n */\n maxPayloadLength?: number;\n}\n/**\n * @generated from protobuf message tusk.drift.query.v1.GetSchemaRequest\n */\nexport interface GetSchemaRequest {\n /**\n * @generated from protobuf field: string observable_service_id = 1\n */\n observableServiceId: string;\n /**\n * @generated from protobuf field: optional string package_name = 2\n */\n packageName?: string;\n /**\n * @generated from protobuf field: optional string instrumentation_name = 3\n */\n instrumentationName?: string;\n /**\n * @generated from protobuf field: optional string name = 4\n */\n name?: string;\n /**\n * @generated from protobuf field: optional bool show_example = 5\n */\n showExample?: boolean;\n /**\n * @generated from protobuf field: optional int32 max_payload_length = 6\n */\n maxPayloadLength?: number;\n}\n/**\n * @generated from protobuf message tusk.drift.query.v1.ListDistinctValuesRequest\n */\nexport interface ListDistinctValuesRequest {\n /**\n * @generated from protobuf field: string observable_service_id = 1\n */\n observableServiceId: string;\n /**\n * @generated from protobuf field: optional string client_id = 2\n */\n clientId?: string;\n /**\n * @generated from protobuf field: string field = 3\n */\n field: string;\n /**\n * @generated from protobuf field: tusk.drift.query.v1.WhereClause where = 4\n */\n where?: WhereClause;\n /**\n * @generated from protobuf field: optional int32 limit = 5\n */\n limit?: number;\n}\n/**\n * @generated from protobuf message tusk.drift.query.v1.AggregateSpansRequest\n */\nexport interface AggregateSpansRequest {\n /**\n * @generated from protobuf field: string observable_service_id = 1\n */\n observableServiceId: string;\n /**\n * @generated from protobuf field: optional string client_id = 2\n */\n clientId?: string;\n /**\n * @generated from protobuf field: tusk.drift.query.v1.WhereClause where = 3\n */\n where?: WhereClause;\n /**\n * @generated from protobuf field: repeated tusk.drift.query.v1.AggregateGroupField group_by = 4\n */\n groupBy: AggregateGroupField[];\n /**\n * @generated from protobuf field: repeated tusk.drift.query.v1.AggregateMetric metrics = 5\n */\n metrics: AggregateMetric[];\n /**\n * @generated from protobuf field: tusk.drift.query.v1.TimeBucket time_bucket = 6\n */\n timeBucket: TimeBucket;\n /**\n * @generated from protobuf field: tusk.drift.query.v1.MetricOrderBy order_by = 7\n */\n orderBy?: MetricOrderBy;\n /**\n * @generated from protobuf field: optional int32 limit = 8\n */\n limit?: number;\n}\n/**\n * @generated from protobuf message tusk.drift.query.v1.GetTraceSpansRequest\n */\nexport interface GetTraceSpansRequest {\n /**\n * @generated from protobuf field: string observable_service_id = 1\n */\n observableServiceId: string;\n /**\n * @generated from protobuf field: optional string client_id = 2\n */\n clientId?: string;\n /**\n * @generated from protobuf field: string trace_id = 3\n */\n traceId: string;\n /**\n * @generated from protobuf field: optional bool include_payloads = 4\n */\n includePayloads?: boolean;\n /**\n * @generated from protobuf field: optional int32 max_payload_length = 5\n */\n maxPayloadLength?: number;\n}\n/**\n * @generated from protobuf message tusk.drift.query.v1.GetSpansByIdsRequest\n */\nexport interface GetSpansByIdsRequest {\n /**\n * @generated from protobuf field: string observable_service_id = 1\n */\n observableServiceId: string;\n /**\n * @generated from protobuf field: repeated string ids = 2\n */\n ids: string[];\n /**\n * @generated from protobuf field: repeated tusk.drift.query.v1.SelectableSpanField fields = 3\n */\n fields: SelectableSpanField[];\n /**\n * @generated from protobuf field: optional bool include_payloads = 4\n */\n includePayloads?: boolean;\n /**\n * @generated from protobuf field: optional int32 max_payload_length = 5\n */\n maxPayloadLength?: number;\n}\n/**\n * @generated from protobuf message tusk.drift.query.v1.CompareSchemaRequest\n */\nexport interface CompareSchemaRequest {\n /**\n * @generated from protobuf field: string observable_service_id = 1\n */\n observableServiceId: string;\n /**\n * @generated from protobuf field: optional string client_id = 2\n */\n clientId?: string;\n /**\n * @generated from protobuf field: string name = 3\n */\n name: string;\n /**\n * @generated from protobuf field: tusk.drift.query.v1.SchemaComparisonPeriod period_a = 4\n */\n periodA?: SchemaComparisonPeriod;\n /**\n * @generated from protobuf field: tusk.drift.query.v1.SchemaComparisonPeriod period_b = 5\n */\n periodB?: SchemaComparisonPeriod;\n /**\n * @generated from protobuf field: optional bool include_payloads = 6\n */\n includePayloads?: boolean;\n /**\n * @generated from protobuf field: optional int32 max_payload_length = 7\n */\n maxPayloadLength?: number;\n}\n// Canonical shared query schema for filtering and analyzing recorded spans.\n// \n// This package intentionally models the user-facing query shape shared by the\n// backend, MCP tools, and CLI instead of a lower-level AST that each client\n// would need to translate. Implementations are responsible for runtime\n// validation of field keys, operator compatibility, and JSON access rules.\n\n/**\n * Selectable fields when fetching spans by ID.\n *\n * @generated from protobuf enum tusk.drift.query.v1.SelectableSpanField\n */\nexport enum SelectableSpanField {\n /**\n * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n /**\n * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_ID = 1;\n */\n ID = 1,\n /**\n * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_SPAN_ID = 2;\n */\n SPAN_ID = 2,\n /**\n * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_TRACE_ID = 3;\n */\n TRACE_ID = 3,\n /**\n * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_PARENT_SPAN_ID = 4;\n */\n PARENT_SPAN_ID = 4,\n /**\n * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_NAME = 5;\n */\n NAME = 5,\n /**\n * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_KIND = 6;\n */\n KIND = 6,\n /**\n * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_STATUS = 7;\n */\n STATUS = 7,\n /**\n * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_TIMESTAMP = 8;\n */\n TIMESTAMP = 8,\n /**\n * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_DURATION = 9;\n */\n DURATION = 9,\n /**\n * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_IS_ROOT_SPAN = 10;\n */\n IS_ROOT_SPAN = 10,\n /**\n * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_METADATA = 11;\n */\n METADATA = 11,\n /**\n * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_PACKAGE_NAME = 12;\n */\n PACKAGE_NAME = 12,\n /**\n * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_INSTRUMENTATION_NAME = 13;\n */\n INSTRUMENTATION_NAME = 13,\n /**\n * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_INPUT_VALUE = 14;\n */\n INPUT_VALUE = 14,\n /**\n * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_OUTPUT_VALUE = 15;\n */\n OUTPUT_VALUE = 15,\n /**\n * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_INPUT_SCHEMA = 16;\n */\n INPUT_SCHEMA = 16,\n /**\n * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_OUTPUT_SCHEMA = 17;\n */\n OUTPUT_SCHEMA = 17,\n /**\n * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_ENVIRONMENT = 18;\n */\n ENVIRONMENT = 18,\n /**\n * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_CREATED_AT = 19;\n */\n CREATED_AT = 19,\n /**\n * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_UPDATED_AT = 20;\n */\n UPDATED_AT = 20\n}\n/**\n * JSON-backed columns that support JSONPath extraction.\n *\n * @generated from protobuf enum tusk.drift.query.v1.JsonColumn\n */\nexport enum JsonColumn {\n /**\n * @generated from protobuf enum value: JSON_COLUMN_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n /**\n * @generated from protobuf enum value: JSON_COLUMN_INPUT_VALUE = 1;\n */\n INPUT_VALUE = 1,\n /**\n * @generated from protobuf enum value: JSON_COLUMN_OUTPUT_VALUE = 2;\n */\n OUTPUT_VALUE = 2,\n /**\n * @generated from protobuf enum value: JSON_COLUMN_METADATA = 3;\n */\n METADATA = 3,\n /**\n * @generated from protobuf enum value: JSON_COLUMN_STATUS = 4;\n */\n STATUS = 4\n}\n/**\n * Optional cast applied before comparisons.\n *\n * @generated from protobuf enum tusk.drift.query.v1.CastType\n */\nexport enum CastType {\n /**\n * @generated from protobuf enum value: CAST_TYPE_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n /**\n * @generated from protobuf enum value: CAST_TYPE_TEXT = 1;\n */\n TEXT = 1,\n /**\n * @generated from protobuf enum value: CAST_TYPE_INT = 2;\n */\n INT = 2,\n /**\n * @generated from protobuf enum value: CAST_TYPE_FLOAT = 3;\n */\n FLOAT = 3,\n /**\n * @generated from protobuf enum value: CAST_TYPE_BOOLEAN = 4;\n */\n BOOLEAN = 4\n}\n/**\n * Optional decoding applied before an additional JSONPath extraction.\n *\n * @generated from protobuf enum tusk.drift.query.v1.DecodeStrategy\n */\nexport enum DecodeStrategy {\n /**\n * @generated from protobuf enum value: DECODE_STRATEGY_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n /**\n * @generated from protobuf enum value: DECODE_STRATEGY_BASE64 = 1;\n */\n BASE64 = 1\n}\n/**\n * @generated from protobuf enum tusk.drift.query.v1.SortDirection\n */\nexport enum SortDirection {\n /**\n * @generated from protobuf enum value: SORT_DIRECTION_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n /**\n * @generated from protobuf enum value: SORT_DIRECTION_ASC = 1;\n */\n ASC = 1,\n /**\n * @generated from protobuf enum value: SORT_DIRECTION_DESC = 2;\n */\n DESC = 2\n}\n/**\n * @generated from protobuf enum tusk.drift.query.v1.SpanSortField\n */\nexport enum SpanSortField {\n /**\n * @generated from protobuf enum value: SPAN_SORT_FIELD_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n /**\n * @generated from protobuf enum value: SPAN_SORT_FIELD_TIMESTAMP = 1;\n */\n TIMESTAMP = 1,\n /**\n * @generated from protobuf enum value: SPAN_SORT_FIELD_CREATED_AT = 2;\n */\n CREATED_AT = 2,\n /**\n * @generated from protobuf enum value: SPAN_SORT_FIELD_UPDATED_AT = 3;\n */\n UPDATED_AT = 3,\n /**\n * @generated from protobuf enum value: SPAN_SORT_FIELD_DURATION = 4;\n */\n DURATION = 4,\n /**\n * @generated from protobuf enum value: SPAN_SORT_FIELD_NAME = 5;\n */\n NAME = 5,\n /**\n * @generated from protobuf enum value: SPAN_SORT_FIELD_TRACE_ID = 6;\n */\n TRACE_ID = 6\n}\n/**\n * @generated from protobuf enum tusk.drift.query.v1.AggregateMetric\n */\nexport enum AggregateMetric {\n /**\n * @generated from protobuf enum value: AGGREGATE_METRIC_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n /**\n * @generated from protobuf enum value: AGGREGATE_METRIC_COUNT = 1;\n */\n COUNT = 1,\n /**\n * @generated from protobuf enum value: AGGREGATE_METRIC_ERROR_COUNT = 2;\n */\n ERROR_COUNT = 2,\n /**\n * @generated from protobuf enum value: AGGREGATE_METRIC_ERROR_RATE = 3;\n */\n ERROR_RATE = 3,\n /**\n * @generated from protobuf enum value: AGGREGATE_METRIC_AVG_DURATION = 4;\n */\n AVG_DURATION = 4,\n /**\n * @generated from protobuf enum value: AGGREGATE_METRIC_MIN_DURATION = 5;\n */\n MIN_DURATION = 5,\n /**\n * @generated from protobuf enum value: AGGREGATE_METRIC_MAX_DURATION = 6;\n */\n MAX_DURATION = 6,\n /**\n * @generated from protobuf enum value: AGGREGATE_METRIC_P50_DURATION = 7;\n */\n P50_DURATION = 7,\n /**\n * @generated from protobuf enum value: AGGREGATE_METRIC_P95_DURATION = 8;\n */\n P95_DURATION = 8,\n /**\n * @generated from protobuf enum value: AGGREGATE_METRIC_P99_DURATION = 9;\n */\n P99_DURATION = 9\n}\n/**\n * @generated from protobuf enum tusk.drift.query.v1.AggregateGroupField\n */\nexport enum AggregateGroupField {\n /**\n * @generated from protobuf enum value: AGGREGATE_GROUP_FIELD_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n /**\n * @generated from protobuf enum value: AGGREGATE_GROUP_FIELD_NAME = 1;\n */\n NAME = 1,\n /**\n * @generated from protobuf enum value: AGGREGATE_GROUP_FIELD_KIND = 2;\n */\n KIND = 2,\n /**\n * @generated from protobuf enum value: AGGREGATE_GROUP_FIELD_PACKAGE_NAME = 3;\n */\n PACKAGE_NAME = 3,\n /**\n * @generated from protobuf enum value: AGGREGATE_GROUP_FIELD_INSTRUMENTATION_NAME = 4;\n */\n INSTRUMENTATION_NAME = 4,\n /**\n * @generated from protobuf enum value: AGGREGATE_GROUP_FIELD_ENVIRONMENT = 5;\n */\n ENVIRONMENT = 5,\n /**\n * @generated from protobuf enum value: AGGREGATE_GROUP_FIELD_STATUS_CODE = 6;\n */\n STATUS_CODE = 6\n}\n/**\n * @generated from protobuf enum tusk.drift.query.v1.TimeBucket\n */\nexport enum TimeBucket {\n /**\n * @generated from protobuf enum value: TIME_BUCKET_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n /**\n * @generated from protobuf enum value: TIME_BUCKET_HOUR = 1;\n */\n HOUR = 1,\n /**\n * @generated from protobuf enum value: TIME_BUCKET_DAY = 2;\n */\n DAY = 2,\n /**\n * @generated from protobuf enum value: TIME_BUCKET_WEEK = 3;\n */\n WEEK = 3\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass TimestampRange$Type extends MessageType<TimestampRange> {\n constructor() {\n super(\"tusk.drift.query.v1.TimestampRange\", [\n { no: 1, name: \"start\", kind: \"message\", T: () => Timestamp },\n { no: 2, name: \"end\", kind: \"message\", T: () => Timestamp }\n ]);\n }\n create(value?: PartialMessage<TimestampRange>): TimestampRange {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<TimestampRange>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TimestampRange): TimestampRange {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* google.protobuf.Timestamp start */ 1:\n message.start = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.start);\n break;\n case /* google.protobuf.Timestamp end */ 2:\n message.end = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.end);\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: TimestampRange, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* google.protobuf.Timestamp start = 1; */\n if (message.start)\n Timestamp.internalBinaryWrite(message.start, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n /* google.protobuf.Timestamp end = 2; */\n if (message.end)\n Timestamp.internalBinaryWrite(message.end, writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message tusk.drift.query.v1.TimestampRange\n */\nexport const TimestampRange = new TimestampRange$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass FieldAccess$Type extends MessageType<FieldAccess> {\n constructor() {\n super(\"tusk.drift.query.v1.FieldAccess\", [\n { no: 1, name: \"cast_as\", kind: \"enum\", T: () => [\"tusk.drift.query.v1.CastType\", CastType, \"CAST_TYPE_\"] },\n { no: 2, name: \"decode\", kind: \"enum\", T: () => [\"tusk.drift.query.v1.DecodeStrategy\", DecodeStrategy, \"DECODE_STRATEGY_\"] },\n { no: 3, name: \"then_path\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<FieldAccess>): FieldAccess {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.castAs = 0;\n message.decode = 0;\n if (value !== undefined)\n reflectionMergePartial<FieldAccess>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FieldAccess): FieldAccess {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* tusk.drift.query.v1.CastType cast_as */ 1:\n message.castAs = reader.int32();\n break;\n case /* tusk.drift.query.v1.DecodeStrategy decode */ 2:\n message.decode = reader.int32();\n break;\n case /* optional string then_path */ 3:\n message.thenPath = reader.string();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: FieldAccess, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* tusk.drift.query.v1.CastType cast_as = 1; */\n if (message.castAs !== 0)\n writer.tag(1, WireType.Varint).int32(message.castAs);\n /* tusk.drift.query.v1.DecodeStrategy decode = 2; */\n if (message.decode !== 0)\n writer.tag(2, WireType.Varint).int32(message.decode);\n /* optional string then_path = 3; */\n if (message.thenPath !== undefined)\n writer.tag(3, WireType.LengthDelimited).string(message.thenPath);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message tusk.drift.query.v1.FieldAccess\n */\nexport const FieldAccess = new FieldAccess$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass FieldPredicate$Type extends MessageType<FieldPredicate> {\n constructor() {\n super(\"tusk.drift.query.v1.FieldPredicate\", [\n { no: 1, name: \"eq\", kind: \"message\", T: () => Value },\n { no: 2, name: \"neq\", kind: \"message\", T: () => Value },\n { no: 3, name: \"in_values\", kind: \"message\", repeat: 2 /*RepeatType.UNPACKED*/, T: () => Value },\n { no: 4, name: \"not_in_values\", kind: \"message\", repeat: 2 /*RepeatType.UNPACKED*/, T: () => Value },\n { no: 5, name: \"gt\", kind: \"message\", T: () => Value },\n { no: 6, name: \"gte\", kind: \"message\", T: () => Value },\n { no: 7, name: \"lt\", kind: \"message\", T: () => Value },\n { no: 8, name: \"lte\", kind: \"message\", T: () => Value },\n { no: 9, name: \"contains\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n { no: 10, name: \"starts_with\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n { no: 11, name: \"ends_with\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n { no: 12, name: \"is_null\", kind: \"scalar\", opt: true, T: 8 /*ScalarType.BOOL*/ },\n { no: 13, name: \"between_timestamps\", kind: \"message\", T: () => TimestampRange },\n { no: 14, name: \"access\", kind: \"message\", T: () => FieldAccess }\n ]);\n }\n create(value?: PartialMessage<FieldPredicate>): FieldPredicate {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.inValues = [];\n message.notInValues = [];\n if (value !== undefined)\n reflectionMergePartial<FieldPredicate>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FieldPredicate): FieldPredicate {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* google.protobuf.Value eq */ 1:\n message.eq = Value.internalBinaryRead(reader, reader.uint32(), options, message.eq);\n break;\n case /* google.protobuf.Value neq */ 2:\n message.neq = Value.internalBinaryRead(reader, reader.uint32(), options, message.neq);\n break;\n case /* repeated google.protobuf.Value in_values */ 3:\n message.inValues.push(Value.internalBinaryRead(reader, reader.uint32(), options));\n break;\n case /* repeated google.protobuf.Value not_in_values */ 4:\n message.notInValues.push(Value.internalBinaryRead(reader, reader.uint32(), options));\n break;\n case /* google.protobuf.Value gt */ 5:\n message.gt = Value.internalBinaryRead(reader, reader.uint32(), options, message.gt);\n break;\n case /* google.protobuf.Value gte */ 6:\n message.gte = Value.internalBinaryRead(reader, reader.uint32(), options, message.gte);\n break;\n case /* google.protobuf.Value lt */ 7:\n message.lt = Value.internalBinaryRead(reader, reader.uint32(), options, message.lt);\n break;\n case /* google.protobuf.Value lte */ 8:\n message.lte = Value.internalBinaryRead(reader, reader.uint32(), options, message.lte);\n break;\n case /* optional string contains */ 9:\n message.contains = reader.string();\n break;\n case /* optional string starts_with */ 10:\n message.startsWith = reader.string();\n break;\n case /* optional string ends_with */ 11:\n message.endsWith = reader.string();\n break;\n case /* optional bool is_null */ 12:\n message.isNull = reader.bool();\n break;\n case /* tusk.drift.query.v1.TimestampRange between_timestamps */ 13:\n message.betweenTimestamps = TimestampRange.internalBinaryRead(reader, reader.uint32(), options, message.betweenTimestamps);\n break;\n case /* tusk.drift.query.v1.FieldAccess access */ 14:\n message.access = FieldAccess.internalBinaryRead(reader, reader.uint32(), options, message.access);\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: FieldPredicate, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* google.protobuf.Value eq = 1; */\n if (message.eq)\n Value.internalBinaryWrite(message.eq, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n /* google.protobuf.Value neq = 2; */\n if (message.neq)\n Value.internalBinaryWrite(message.neq, writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n /* repeated google.protobuf.Value in_values = 3; */\n for (let i = 0; i < message.inValues.length; i++)\n Value.internalBinaryWrite(message.inValues[i], writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n /* repeated google.protobuf.Value not_in_values = 4; */\n for (let i = 0; i < message.notInValues.length; i++)\n Value.internalBinaryWrite(message.notInValues[i], writer.tag(4, WireType.LengthDelimited).fork(), options).join();\n /* google.protobuf.Value gt = 5; */\n if (message.gt)\n Value.internalBinaryWrite(message.gt, writer.tag(5, WireType.LengthDelimited).fork(), options).join();\n /* google.protobuf.Value gte = 6; */\n if (message.gte)\n Value.internalBinaryWrite(message.gte, writer.tag(6, WireType.LengthDelimited).fork(), options).join();\n /* google.protobuf.Value lt = 7; */\n if (message.lt)\n Value.internalBinaryWrite(message.lt, writer.tag(7, WireType.LengthDelimited).fork(), options).join();\n /* google.protobuf.Value lte = 8; */\n if (message.lte)\n Value.internalBinaryWrite(message.lte, writer.tag(8, WireType.LengthDelimited).fork(), options).join();\n /* optional string contains = 9; */\n if (message.contains !== undefined)\n writer.tag(9, WireType.LengthDelimited).string(message.contains);\n /* optional string starts_with = 10; */\n if (message.startsWith !== undefined)\n writer.tag(10, WireType.LengthDelimited).string(message.startsWith);\n /* optional string ends_with = 11; */\n if (message.endsWith !== undefined)\n writer.tag(11, WireType.LengthDelimited).string(message.endsWith);\n /* optional bool is_null = 12; */\n if (message.isNull !== undefined)\n writer.tag(12, WireType.Varint).bool(message.isNull);\n /* tusk.drift.query.v1.TimestampRange between_timestamps = 13; */\n if (message.betweenTimestamps)\n TimestampRange.internalBinaryWrite(message.betweenTimestamps, writer.tag(13, WireType.LengthDelimited).fork(), options).join();\n /* tusk.drift.query.v1.FieldAccess access = 14; */\n if (message.access)\n FieldAccess.internalBinaryWrite(message.access, writer.tag(14, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message tusk.drift.query.v1.FieldPredicate\n */\nexport const FieldPredicate = new FieldPredicate$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass WhereClause$Type extends MessageType<WhereClause> {\n constructor() {\n super(\"tusk.drift.query.v1.WhereClause\", [\n { no: 1, name: \"fields\", kind: \"map\", K: 9 /*ScalarType.STRING*/, V: { kind: \"message\", T: () => FieldPredicate } },\n { no: 2, name: \"and\", kind: \"message\", repeat: 2 /*RepeatType.UNPACKED*/, T: () => WhereClause },\n { no: 3, name: \"or\", kind: \"message\", repeat: 2 /*RepeatType.UNPACKED*/, T: () => WhereClause },\n { no: 4, name: \"not\", kind: \"message\", T: () => WhereClause }\n ]);\n }\n create(value?: PartialMessage<WhereClause>): WhereClause {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.fields = {};\n message.and = [];\n message.or = [];\n if (value !== undefined)\n reflectionMergePartial<WhereClause>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: WhereClause): WhereClause {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* map<string, tusk.drift.query.v1.FieldPredicate> fields */ 1:\n this.binaryReadMap1(message.fields, reader, options);\n break;\n case /* repeated tusk.drift.query.v1.WhereClause and */ 2:\n message.and.push(WhereClause.internalBinaryRead(reader, reader.uint32(), options));\n break;\n case /* repeated tusk.drift.query.v1.WhereClause or */ 3:\n message.or.push(WhereClause.internalBinaryRead(reader, reader.uint32(), options));\n break;\n case /* tusk.drift.query.v1.WhereClause not */ 4:\n message.not = WhereClause.internalBinaryRead(reader, reader.uint32(), options, message.not);\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n private binaryReadMap1(map: WhereClause[\"fields\"], reader: IBinaryReader, options: BinaryReadOptions): void {\n let len = reader.uint32(), end = reader.pos + len, key: keyof WhereClause[\"fields\"] | undefined, val: WhereClause[\"fields\"][any] | undefined;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case 1:\n key = reader.string();\n break;\n case 2:\n val = FieldPredicate.internalBinaryRead(reader, reader.uint32(), options);\n break;\n default: throw new globalThis.Error(\"unknown map entry field for tusk.drift.query.v1.WhereClause.fields\");\n }\n }\n map[key ?? \"\"] = val ?? FieldPredicate.create();\n }\n internalBinaryWrite(message: WhereClause, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* map<string, tusk.drift.query.v1.FieldPredicate> fields = 1; */\n for (let k of globalThis.Object.keys(message.fields)) {\n writer.tag(1, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k);\n writer.tag(2, WireType.LengthDelimited).fork();\n FieldPredicate.internalBinaryWrite(message.fields[k], writer, options);\n writer.join().join();\n }\n /* repeated tusk.drift.query.v1.WhereClause and = 2; */\n for (let i = 0; i < message.and.length; i++)\n WhereClause.internalBinaryWrite(message.and[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n /* repeated tusk.drift.query.v1.WhereClause or = 3; */\n for (let i = 0; i < message.or.length; i++)\n WhereClause.internalBinaryWrite(message.or[i], writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n /* tusk.drift.query.v1.WhereClause not = 4; */\n if (message.not)\n WhereClause.internalBinaryWrite(message.not, writer.tag(4, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message tusk.drift.query.v1.WhereClause\n */\nexport const WhereClause = new WhereClause$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SpanOrderBy$Type extends MessageType<SpanOrderBy> {\n constructor() {\n super(\"tusk.drift.query.v1.SpanOrderBy\", [\n { no: 1, name: \"field\", kind: \"enum\", T: () => [\"tusk.drift.query.v1.SpanSortField\", SpanSortField, \"SPAN_SORT_FIELD_\"] },\n { no: 2, name: \"direction\", kind: \"enum\", T: () => [\"tusk.drift.query.v1.SortDirection\", SortDirection, \"SORT_DIRECTION_\"] }\n ]);\n }\n create(value?: PartialMessage<SpanOrderBy>): SpanOrderBy {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.field = 0;\n message.direction = 0;\n if (value !== undefined)\n reflectionMergePartial<SpanOrderBy>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SpanOrderBy): SpanOrderBy {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* tusk.drift.query.v1.SpanSortField field */ 1:\n message.field = reader.int32();\n break;\n case /* tusk.drift.query.v1.SortDirection direction */ 2:\n message.direction = reader.int32();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: SpanOrderBy, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* tusk.drift.query.v1.SpanSortField field = 1; */\n if (message.field !== 0)\n writer.tag(1, WireType.Varint).int32(message.field);\n /* tusk.drift.query.v1.SortDirection direction = 2; */\n if (message.direction !== 0)\n writer.tag(2, WireType.Varint).int32(message.direction);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message tusk.drift.query.v1.SpanOrderBy\n */\nexport const SpanOrderBy = new SpanOrderBy$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass MetricOrderBy$Type extends MessageType<MetricOrderBy> {\n constructor() {\n super(\"tusk.drift.query.v1.MetricOrderBy\", [\n { no: 1, name: \"metric\", kind: \"enum\", T: () => [\"tusk.drift.query.v1.AggregateMetric\", AggregateMetric, \"AGGREGATE_METRIC_\"] },\n { no: 2, name: \"direction\", kind: \"enum\", T: () => [\"tusk.drift.query.v1.SortDirection\", SortDirection, \"SORT_DIRECTION_\"] }\n ]);\n }\n create(value?: PartialMessage<MetricOrderBy>): MetricOrderBy {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.metric = 0;\n message.direction = 0;\n if (value !== undefined)\n reflectionMergePartial<MetricOrderBy>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MetricOrderBy): MetricOrderBy {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* tusk.drift.query.v1.AggregateMetric metric */ 1:\n message.metric = reader.int32();\n break;\n case /* tusk.drift.query.v1.SortDirection direction */ 2:\n message.direction = reader.int32();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: MetricOrderBy, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* tusk.drift.query.v1.AggregateMetric metric = 1; */\n if (message.metric !== 0)\n writer.tag(1, WireType.Varint).int32(message.metric);\n /* tusk.drift.query.v1.SortDirection direction = 2; */\n if (message.direction !== 0)\n writer.tag(2, WireType.Varint).int32(message.direction);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message tusk.drift.query.v1.MetricOrderBy\n */\nexport const MetricOrderBy = new MetricOrderBy$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SchemaComparisonPeriod$Type extends MessageType<SchemaComparisonPeriod> {\n constructor() {\n super(\"tusk.drift.query.v1.SchemaComparisonPeriod\", [\n { no: 1, name: \"start_date\", kind: \"message\", T: () => Timestamp },\n { no: 2, name: \"end_date\", kind: \"message\", T: () => Timestamp }\n ]);\n }\n create(value?: PartialMessage<SchemaComparisonPeriod>): SchemaComparisonPeriod {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<SchemaComparisonPeriod>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SchemaComparisonPeriod): SchemaComparisonPeriod {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* google.protobuf.Timestamp start_date */ 1:\n message.startDate = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.startDate);\n break;\n case /* google.protobuf.Timestamp end_date */ 2:\n message.endDate = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.endDate);\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: SchemaComparisonPeriod, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* google.protobuf.Timestamp start_date = 1; */\n if (message.startDate)\n Timestamp.internalBinaryWrite(message.startDate, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n /* google.protobuf.Timestamp end_date = 2; */\n if (message.endDate)\n Timestamp.internalBinaryWrite(message.endDate, writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message tusk.drift.query.v1.SchemaComparisonPeriod\n */\nexport const SchemaComparisonPeriod = new SchemaComparisonPeriod$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass QuerySpansRequest$Type extends MessageType<QuerySpansRequest> {\n constructor() {\n super(\"tusk.drift.query.v1.QuerySpansRequest\", [\n { no: 1, name: \"observable_service_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"client_id\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n { no: 3, name: \"where\", kind: \"message\", T: () => WhereClause },\n { no: 4, name: \"order_by\", kind: \"message\", repeat: 2 /*RepeatType.UNPACKED*/, T: () => SpanOrderBy },\n { no: 5, name: \"limit\", kind: \"scalar\", opt: true, T: 5 /*ScalarType.INT32*/ },\n { no: 6, name: \"offset\", kind: \"scalar\", opt: true, T: 5 /*ScalarType.INT32*/ },\n { no: 7, name: \"include_payloads\", kind: \"scalar\", opt: true, T: 8 /*ScalarType.BOOL*/ },\n { no: 8, name: \"max_payload_length\", kind: \"scalar\", opt: true, T: 5 /*ScalarType.INT32*/ }\n ]);\n }\n create(value?: PartialMessage<QuerySpansRequest>): QuerySpansRequest {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.observableServiceId = \"\";\n message.orderBy = [];\n if (value !== undefined)\n reflectionMergePartial<QuerySpansRequest>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: QuerySpansRequest): QuerySpansRequest {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string observable_service_id */ 1:\n message.observableServiceId = reader.string();\n break;\n case /* optional string client_id */ 2:\n message.clientId = reader.string();\n break;\n case /* tusk.drift.query.v1.WhereClause where */ 3:\n message.where = WhereClause.internalBinaryRead(reader, reader.uint32(), options, message.where);\n break;\n case /* repeated tusk.drift.query.v1.SpanOrderBy order_by */ 4:\n message.orderBy.push(SpanOrderBy.internalBinaryRead(reader, reader.uint32(), options));\n break;\n case /* optional int32 limit */ 5:\n message.limit = reader.int32();\n break;\n case /* optional int32 offset */ 6:\n message.offset = reader.int32();\n break;\n case /* optional bool include_payloads */ 7:\n message.includePayloads = reader.bool();\n break;\n case /* optional int32 max_payload_length */ 8:\n message.maxPayloadLength = reader.int32();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: QuerySpansRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string observable_service_id = 1; */\n if (message.observableServiceId !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.observableServiceId);\n /* optional string client_id = 2; */\n if (message.clientId !== undefined)\n writer.tag(2, WireType.LengthDelimited).string(message.clientId);\n /* tusk.drift.query.v1.WhereClause where = 3; */\n if (message.where)\n WhereClause.internalBinaryWrite(message.where, writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n /* repeated tusk.drift.query.v1.SpanOrderBy order_by = 4; */\n for (let i = 0; i < message.orderBy.length; i++)\n SpanOrderBy.internalBinaryWrite(message.orderBy[i], writer.tag(4, WireType.LengthDelimited).fork(), options).join();\n /* optional int32 limit = 5; */\n if (message.limit !== undefined)\n writer.tag(5, WireType.Varint).int32(message.limit);\n /* optional int32 offset = 6; */\n if (message.offset !== undefined)\n writer.tag(6, WireType.Varint).int32(message.offset);\n /* optional bool include_payloads = 7; */\n if (message.includePayloads !== undefined)\n writer.tag(7, WireType.Varint).bool(message.includePayloads);\n /* optional int32 max_payload_length = 8; */\n if (message.maxPayloadLength !== undefined)\n writer.tag(8, WireType.Varint).int32(message.maxPayloadLength);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message tusk.drift.query.v1.QuerySpansRequest\n */\nexport const QuerySpansRequest = new QuerySpansRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass GetSchemaRequest$Type extends MessageType<GetSchemaRequest> {\n constructor() {\n super(\"tusk.drift.query.v1.GetSchemaRequest\", [\n { no: 1, name: \"observable_service_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"package_name\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n { no: 3, name: \"instrumentation_name\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n { no: 4, name: \"name\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n { no: 5, name: \"show_example\", kind: \"scalar\", opt: true, T: 8 /*ScalarType.BOOL*/ },\n { no: 6, name: \"max_payload_length\", kind: \"scalar\", opt: true, T: 5 /*ScalarType.INT32*/ }\n ]);\n }\n create(value?: PartialMessage<GetSchemaRequest>): GetSchemaRequest {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.observableServiceId = \"\";\n if (value !== undefined)\n reflectionMergePartial<GetSchemaRequest>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetSchemaRequest): GetSchemaRequest {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string observable_service_id */ 1:\n message.observableServiceId = reader.string();\n break;\n case /* optional string package_name */ 2:\n message.packageName = reader.string();\n break;\n case /* optional string instrumentation_name */ 3:\n message.instrumentationName = reader.string();\n break;\n case /* optional string name */ 4:\n message.name = reader.string();\n break;\n case /* optional bool show_example */ 5:\n message.showExample = reader.bool();\n break;\n case /* optional int32 max_payload_length */ 6:\n message.maxPayloadLength = reader.int32();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: GetSchemaRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string observable_service_id = 1; */\n if (message.observableServiceId !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.observableServiceId);\n /* optional string package_name = 2; */\n if (message.packageName !== undefined)\n writer.tag(2, WireType.LengthDelimited).string(message.packageName);\n /* optional string instrumentation_name = 3; */\n if (message.instrumentationName !== undefined)\n writer.tag(3, WireType.LengthDelimited).string(message.instrumentationName);\n /* optional string name = 4; */\n if (message.name !== undefined)\n writer.tag(4, WireType.LengthDelimited).string(message.name);\n /* optional bool show_example = 5; */\n if (message.showExample !== undefined)\n writer.tag(5, WireType.Varint).bool(message.showExample);\n /* optional int32 max_payload_length = 6; */\n if (message.maxPayloadLength !== undefined)\n writer.tag(6, WireType.Varint).int32(message.maxPayloadLength);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message tusk.drift.query.v1.GetSchemaRequest\n */\nexport const GetSchemaRequest = new GetSchemaRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ListDistinctValuesRequest$Type extends MessageType<ListDistinctValuesRequest> {\n constructor() {\n super(\"tusk.drift.query.v1.ListDistinctValuesRequest\", [\n { no: 1, name: \"observable_service_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"client_id\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n { no: 3, name: \"field\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 4, name: \"where\", kind: \"message\", T: () => WhereClause },\n { no: 5, name: \"limit\", kind: \"scalar\", opt: true, T: 5 /*ScalarType.INT32*/ }\n ]);\n }\n create(value?: PartialMessage<ListDistinctValuesRequest>): ListDistinctValuesRequest {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.observableServiceId = \"\";\n message.field = \"\";\n if (value !== undefined)\n reflectionMergePartial<ListDistinctValuesRequest>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListDistinctValuesRequest): ListDistinctValuesRequest {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string observable_service_id */ 1:\n message.observableServiceId = reader.string();\n break;\n case /* optional string client_id */ 2:\n message.clientId = reader.string();\n break;\n case /* string field */ 3:\n message.field = reader.string();\n break;\n case /* tusk.drift.query.v1.WhereClause where */ 4:\n message.where = WhereClause.internalBinaryRead(reader, reader.uint32(), options, message.where);\n break;\n case /* optional int32 limit */ 5:\n message.limit = reader.int32();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ListDistinctValuesRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string observable_service_id = 1; */\n if (message.observableServiceId !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.observableServiceId);\n /* optional string client_id = 2; */\n if (message.clientId !== undefined)\n writer.tag(2, WireType.LengthDelimited).string(message.clientId);\n /* string field = 3; */\n if (message.field !== \"\")\n writer.tag(3, WireType.LengthDelimited).string(message.field);\n /* tusk.drift.query.v1.WhereClause where = 4; */\n if (message.where)\n WhereClause.internalBinaryWrite(message.where, writer.tag(4, WireType.LengthDelimited).fork(), options).join();\n /* optional int32 limit = 5; */\n if (message.limit !== undefined)\n writer.tag(5, WireType.Varint).int32(message.limit);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message tusk.drift.query.v1.ListDistinctValuesRequest\n */\nexport const ListDistinctValuesRequest = new ListDistinctValuesRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass AggregateSpansRequest$Type extends MessageType<AggregateSpansRequest> {\n constructor() {\n super(\"tusk.drift.query.v1.AggregateSpansRequest\", [\n { no: 1, name: \"observable_service_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"client_id\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n { no: 3, name: \"where\", kind: \"message\", T: () => WhereClause },\n { no: 4, name: \"group_by\", kind: \"enum\", repeat: 1 /*RepeatType.PACKED*/, T: () => [\"tusk.drift.query.v1.AggregateGroupField\", AggregateGroupField, \"AGGREGATE_GROUP_FIELD_\"] },\n { no: 5, name: \"metrics\", kind: \"enum\", repeat: 1 /*RepeatType.PACKED*/, T: () => [\"tusk.drift.query.v1.AggregateMetric\", AggregateMetric, \"AGGREGATE_METRIC_\"] },\n { no: 6, name: \"time_bucket\", kind: \"enum\", T: () => [\"tusk.drift.query.v1.TimeBucket\", TimeBucket, \"TIME_BUCKET_\"] },\n { no: 7, name: \"order_by\", kind: \"message\", T: () => MetricOrderBy },\n { no: 8, name: \"limit\", kind: \"scalar\", opt: true, T: 5 /*ScalarType.INT32*/ }\n ]);\n }\n create(value?: PartialMessage<AggregateSpansRequest>): AggregateSpansRequest {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.observableServiceId = \"\";\n message.groupBy = [];\n message.metrics = [];\n message.timeBucket = 0;\n if (value !== undefined)\n reflectionMergePartial<AggregateSpansRequest>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AggregateSpansRequest): AggregateSpansRequest {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string observable_service_id */ 1:\n message.observableServiceId = reader.string();\n break;\n case /* optional string client_id */ 2:\n message.clientId = reader.string();\n break;\n case /* tusk.drift.query.v1.WhereClause where */ 3:\n message.where = WhereClause.internalBinaryRead(reader, reader.uint32(), options, message.where);\n break;\n case /* repeated tusk.drift.query.v1.AggregateGroupField group_by */ 4:\n if (wireType === WireType.LengthDelimited)\n for (let e = reader.int32() + reader.pos; reader.pos < e;)\n message.groupBy.push(reader.int32());\n else\n message.groupBy.push(reader.int32());\n break;\n case /* repeated tusk.drift.query.v1.AggregateMetric metrics */ 5:\n if (wireType === WireType.LengthDelimited)\n for (let e = reader.int32() + reader.pos; reader.pos < e;)\n message.metrics.push(reader.int32());\n else\n message.metrics.push(reader.int32());\n break;\n case /* tusk.drift.query.v1.TimeBucket time_bucket */ 6:\n message.timeBucket = reader.int32();\n break;\n case /* tusk.drift.query.v1.MetricOrderBy order_by */ 7:\n message.orderBy = MetricOrderBy.internalBinaryRead(reader, reader.uint32(), options, message.orderBy);\n break;\n case /* optional int32 limit */ 8:\n message.limit = reader.int32();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: AggregateSpansRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string observable_service_id = 1; */\n if (message.observableServiceId !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.observableServiceId);\n /* optional string client_id = 2; */\n if (message.clientId !== undefined)\n writer.tag(2, WireType.LengthDelimited).string(message.clientId);\n /* tusk.drift.query.v1.WhereClause where = 3; */\n if (message.where)\n WhereClause.internalBinaryWrite(message.where, writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n /* repeated tusk.drift.query.v1.AggregateGroupField group_by = 4; */\n if (message.groupBy.length) {\n writer.tag(4, WireType.LengthDelimited).fork();\n for (let i = 0; i < message.groupBy.length; i++)\n writer.int32(message.groupBy[i]);\n writer.join();\n }\n /* repeated tusk.drift.query.v1.AggregateMetric metrics = 5; */\n if (message.metrics.length) {\n writer.tag(5, WireType.LengthDelimited).fork();\n for (let i = 0; i < message.metrics.length; i++)\n writer.int32(message.metrics[i]);\n writer.join();\n }\n /* tusk.drift.query.v1.TimeBucket time_bucket = 6; */\n if (message.timeBucket !== 0)\n writer.tag(6, WireType.Varint).int32(message.timeBucket);\n /* tusk.drift.query.v1.MetricOrderBy order_by = 7; */\n if (message.orderBy)\n MetricOrderBy.internalBinaryWrite(message.orderBy, writer.tag(7, WireType.LengthDelimited).fork(), options).join();\n /* optional int32 limit = 8; */\n if (message.limit !== undefined)\n writer.tag(8, WireType.Varint).int32(message.limit);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message tusk.drift.query.v1.AggregateSpansRequest\n */\nexport const AggregateSpansRequest = new AggregateSpansRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass GetTraceSpansRequest$Type extends MessageType<GetTraceSpansRequest> {\n constructor() {\n super(\"tusk.drift.query.v1.GetTraceSpansRequest\", [\n { no: 1, name: \"observable_service_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"client_id\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n { no: 3, name: \"trace_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 4, name: \"include_payloads\", kind: \"scalar\", opt: true, T: 8 /*ScalarType.BOOL*/ },\n { no: 5, name: \"max_payload_length\", kind: \"scalar\", opt: true, T: 5 /*ScalarType.INT32*/ }\n ]);\n }\n create(value?: PartialMessage<GetTraceSpansRequest>): GetTraceSpansRequest {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.observableServiceId = \"\";\n message.traceId = \"\";\n if (value !== undefined)\n reflectionMergePartial<GetTraceSpansRequest>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetTraceSpansRequest): GetTraceSpansRequest {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string observable_service_id */ 1:\n message.observableServiceId = reader.string();\n break;\n case /* optional string client_id */ 2:\n message.clientId = reader.string();\n break;\n case /* string trace_id */ 3:\n message.traceId = reader.string();\n break;\n case /* optional bool include_payloads */ 4:\n message.includePayloads = reader.bool();\n break;\n case /* optional int32 max_payload_length */ 5:\n message.maxPayloadLength = reader.int32();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: GetTraceSpansRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string observable_service_id = 1; */\n if (message.observableServiceId !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.observableServiceId);\n /* optional string client_id = 2; */\n if (message.clientId !== undefined)\n writer.tag(2, WireType.LengthDelimited).string(message.clientId);\n /* string trace_id = 3; */\n if (message.traceId !== \"\")\n writer.tag(3, WireType.LengthDelimited).string(message.traceId);\n /* optional bool include_payloads = 4; */\n if (message.includePayloads !== undefined)\n writer.tag(4, WireType.Varint).bool(message.includePayloads);\n /* optional int32 max_payload_length = 5; */\n if (message.maxPayloadLength !== undefined)\n writer.tag(5, WireType.Varint).int32(message.maxPayloadLength);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message tusk.drift.query.v1.GetTraceSpansRequest\n */\nexport const GetTraceSpansRequest = new GetTraceSpansRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass GetSpansByIdsRequest$Type extends MessageType<GetSpansByIdsRequest> {\n constructor() {\n super(\"tusk.drift.query.v1.GetSpansByIdsRequest\", [\n { no: 1, name: \"observable_service_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"ids\", kind: \"scalar\", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },\n { no: 3, name: \"fields\", kind: \"enum\", repeat: 1 /*RepeatType.PACKED*/, T: () => [\"tusk.drift.query.v1.SelectableSpanField\", SelectableSpanField, \"SELECTABLE_SPAN_FIELD_\"] },\n { no: 4, name: \"include_payloads\", kind: \"scalar\", opt: true, T: 8 /*ScalarType.BOOL*/ },\n { no: 5, name: \"max_payload_length\", kind: \"scalar\", opt: true, T: 5 /*ScalarType.INT32*/ }\n ]);\n }\n create(value?: PartialMessage<GetSpansByIdsRequest>): GetSpansByIdsRequest {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.observableServiceId = \"\";\n message.ids = [];\n message.fields = [];\n if (value !== undefined)\n reflectionMergePartial<GetSpansByIdsRequest>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetSpansByIdsRequest): GetSpansByIdsRequest {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string observable_service_id */ 1:\n message.observableServiceId = reader.string();\n break;\n case /* repeated string ids */ 2:\n message.ids.push(reader.string());\n break;\n case /* repeated tusk.drift.query.v1.SelectableSpanField fields */ 3:\n if (wireType === WireType.LengthDelimited)\n for (let e = reader.int32() + reader.pos; reader.pos < e;)\n message.fields.push(reader.int32());\n else\n message.fields.push(reader.int32());\n break;\n case /* optional bool include_payloads */ 4:\n message.includePayloads = reader.bool();\n break;\n case /* optional int32 max_payload_length */ 5:\n message.maxPayloadLength = reader.int32();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: GetSpansByIdsRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string observable_service_id = 1; */\n if (message.observableServiceId !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.observableServiceId);\n /* repeated string ids = 2; */\n for (let i = 0; i < message.ids.length; i++)\n writer.tag(2, WireType.LengthDelimited).string(message.ids[i]);\n /* repeated tusk.drift.query.v1.SelectableSpanField fields = 3; */\n if (message.fields.length) {\n writer.tag(3, WireType.LengthDelimited).fork();\n for (let i = 0; i < message.fields.length; i++)\n writer.int32(message.fields[i]);\n writer.join();\n }\n /* optional bool include_payloads = 4; */\n if (message.includePayloads !== undefined)\n writer.tag(4, WireType.Varint).bool(message.includePayloads);\n /* optional int32 max_payload_length = 5; */\n if (message.maxPayloadLength !== undefined)\n writer.tag(5, WireType.Varint).int32(message.maxPayloadLength);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message tusk.drift.query.v1.GetSpansByIdsRequest\n */\nexport const GetSpansByIdsRequest = new GetSpansByIdsRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass CompareSchemaRequest$Type extends MessageType<CompareSchemaRequest> {\n constructor() {\n super(\"tusk.drift.query.v1.CompareSchemaRequest\", [\n { no: 1, name: \"observable_service_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"client_id\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n { no: 3, name: \"name\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 4, name: \"period_a\", kind: \"message\", T: () => SchemaComparisonPeriod },\n { no: 5, name: \"period_b\", kind: \"message\", T: () => SchemaComparisonPeriod },\n { no: 6, name: \"include_payloads\", kind: \"scalar\", opt: true, T: 8 /*ScalarType.BOOL*/ },\n { no: 7, name: \"max_payload_length\", kind: \"scalar\", opt: true, T: 5 /*ScalarType.INT32*/ }\n ]);\n }\n create(value?: PartialMessage<CompareSchemaRequest>): CompareSchemaRequest {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.observableServiceId = \"\";\n message.name = \"\";\n if (value !== undefined)\n reflectionMergePartial<CompareSchemaRequest>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CompareSchemaRequest): CompareSchemaRequest {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string observable_service_id */ 1:\n message.observableServiceId = reader.string();\n break;\n case /* optional string client_id */ 2:\n message.clientId = reader.string();\n break;\n case /* string name */ 3:\n message.name = reader.string();\n break;\n case /* tusk.drift.query.v1.SchemaComparisonPeriod period_a */ 4:\n message.periodA = SchemaComparisonPeriod.internalBinaryRead(reader, reader.uint32(), options, message.periodA);\n break;\n case /* tusk.drift.query.v1.SchemaComparisonPeriod period_b */ 5:\n message.periodB = SchemaComparisonPeriod.internalBinaryRead(reader, reader.uint32(), options, message.periodB);\n break;\n case /* optional bool include_payloads */ 6:\n message.includePayloads = reader.bool();\n break;\n case /* optional int32 max_payload_length */ 7:\n message.maxPayloadLength = reader.int32();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: CompareSchemaRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string observable_service_id = 1; */\n if (message.observableServiceId !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.observableServiceId);\n /* optional string client_id = 2; */\n if (message.clientId !== undefined)\n writer.tag(2, WireType.LengthDelimited).string(message.clientId);\n /* string name = 3; */\n if (message.name !== \"\")\n writer.tag(3, WireType.LengthDelimited).string(message.name);\n /* tusk.drift.query.v1.SchemaComparisonPeriod period_a = 4; */\n if (message.periodA)\n SchemaComparisonPeriod.internalBinaryWrite(message.periodA, writer.tag(4, WireType.LengthDelimited).fork(), options).join();\n /* tusk.drift.query.v1.SchemaComparisonPeriod period_b = 5; */\n if (message.periodB)\n SchemaComparisonPeriod.internalBinaryWrite(message.periodB, writer.tag(5, WireType.LengthDelimited).fork(), options).join();\n /* optional bool include_payloads = 6; */\n if (message.includePayloads !== undefined)\n writer.tag(6, WireType.Varint).bool(message.includePayloads);\n /* optional int32 max_payload_length = 7; */\n if (message.maxPayloadLength !== undefined)\n writer.tag(7, WireType.Varint).int32(message.maxPayloadLength);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message tusk.drift.query.v1.CompareSchemaRequest\n */\nexport const CompareSchemaRequest = new CompareSchemaRequest$Type();\n","// This file is intentionally hand-authored instead of generated. It derives\n// ergonomic enum codecs and public query names from the generated protobuf\n// enums while living outside generated output so it survives schema regen.\nimport {\n AggregateGroupField,\n AggregateMetric,\n CastType,\n DecodeStrategy,\n SelectableSpanField,\n SortDirection,\n SpanSortField,\n TimeBucket,\n} from \"../../generated/ts/query/span_query\";\n\ntype EnumLike = Record<string, string | number>;\n\ntype EnumForwardKey<E extends EnumLike> = Exclude<\n {\n [K in Extract<keyof E, string>]: E[K] extends number ? K : never;\n }[Extract<keyof E, string>],\n \"UNSPECIFIED\"\n>;\n\ntype EnumValue<E extends EnumLike> = E[EnumForwardKey<E>] & number;\n\ntype SnakeToCamelCase<S extends string> = S extends `${infer Head}_${infer Tail}`\n ? `${Lowercase<Head>}${Capitalize<SnakeToCamelCase<Tail>>}`\n : Lowercase<S>;\n\nexport interface EnumCodec<TName extends string, TValue extends number> {\n readonly names: readonly TName[];\n readonly values: readonly TValue[];\n readonly byName: Readonly<Record<TName, TValue>>;\n readonly byValue: Readonly<Record<TValue, TName>>;\n normalize(value: string | number): TName | null;\n isName(value: unknown): value is TName;\n isValue(value: unknown): value is TValue;\n}\n\nfunction hasOwn(value: object, key: PropertyKey): boolean {\n return Object.prototype.hasOwnProperty.call(value, key);\n}\n\nfunction snakeToCamelCase(value: string): string {\n return value.toLowerCase().replace(/_([a-z0-9])/g, (_, char: string) => char.toUpperCase());\n}\n\nfunction createEnumCodec<E extends EnumLike, TName extends string>(\n enumObject: E,\n mapKey: (key: EnumForwardKey<E>) => TName,\n): EnumCodec<TName, EnumValue<E>> {\n const entries = Object.entries(enumObject).filter(\n (entry): entry is [EnumForwardKey<E>, EnumValue<E>] =>\n entry[0] !== \"UNSPECIFIED\" && typeof entry[1] === \"number\",\n );\n\n const pairs = entries.map(([key, value]) => [mapKey(key), value] as const);\n const reversePairs = pairs.map(([name, value]) => [value, name] as const);\n\n const byName = Object.freeze(Object.fromEntries(pairs)) as Readonly<Record<TName, EnumValue<E>>>;\n const byValue = Object.freeze(\n Object.fromEntries(reversePairs),\n ) as Readonly<Record<EnumValue<E>, TName>>;\n\n return {\n names: Object.freeze(pairs.map(([name]) => name)) as readonly TName[],\n values: Object.freeze(pairs.map(([, value]) => value)) as readonly EnumValue<E>[],\n byName,\n byValue,\n normalize(value: string | number): TName | null {\n if (typeof value === \"string\") {\n return hasOwn(byName, value) ? (value as TName) : null;\n }\n\n return hasOwn(byValue, value) ? byValue[value as EnumValue<E>] : null;\n },\n isName(value: unknown): value is TName {\n return typeof value === \"string\" && hasOwn(byName, value);\n },\n isValue(value: unknown): value is EnumValue<E> {\n return typeof value === \"number\" && Number.isInteger(value) && hasOwn(byValue, value);\n },\n };\n}\n\nfunction createCamelCaseEnumCodec<E extends EnumLike>(\n enumObject: E,\n): EnumCodec<SnakeToCamelCase<EnumForwardKey<E>>, EnumValue<E>> {\n return createEnumCodec(enumObject, (key) => snakeToCamelCase(key) as SnakeToCamelCase<typeof key>);\n}\n\nfunction createIdentityEnumCodec<E extends EnumLike>(\n enumObject: E,\n): EnumCodec<EnumForwardKey<E>, EnumValue<E>> {\n return createEnumCodec(enumObject, (key) => key);\n}\n\nexport type SelectableSpanFieldName = SnakeToCamelCase<EnumForwardKey<typeof SelectableSpanField>>;\nexport type CastTypeName = SnakeToCamelCase<EnumForwardKey<typeof CastType>>;\nexport type DecodeStrategyName = SnakeToCamelCase<EnumForwardKey<typeof DecodeStrategy>>;\nexport type SpanSortFieldName = SnakeToCamelCase<EnumForwardKey<typeof SpanSortField>>;\nexport type AggregateMetricName = SnakeToCamelCase<EnumForwardKey<typeof AggregateMetric>>;\nexport type AggregateGroupFieldName = SnakeToCamelCase<EnumForwardKey<typeof AggregateGroupField>>;\nexport type TimeBucketName = SnakeToCamelCase<EnumForwardKey<typeof TimeBucket>>;\nexport type SortDirectionName = EnumForwardKey<typeof SortDirection>;\n\nexport const selectableSpanFieldCodec = createCamelCaseEnumCodec(SelectableSpanField);\nexport const castTypeCodec = createCamelCaseEnumCodec(CastType);\nexport const decodeStrategyCodec = createCamelCaseEnumCodec(DecodeStrategy);\nexport const spanSortFieldCodec = createCamelCaseEnumCodec(SpanSortField);\nexport const aggregateMetricCodec = createCamelCaseEnumCodec(AggregateMetric);\nexport const aggregateGroupFieldCodec = createCamelCaseEnumCodec(AggregateGroupField);\nexport const timeBucketCodec = createCamelCaseEnumCodec(TimeBucket);\nexport const sortDirectionCodec = createIdentityEnumCodec(SortDirection);\n"],"mappings":"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"}
|