@otonoma/paranet-client 2.15.0-rc.7 → 2.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/client.d.ts +169 -0
- package/dist/cjs/client.d.ts.map +1 -0
- package/dist/cjs/graphql.d.ts +8 -0
- package/dist/cjs/graphql.d.ts.map +1 -0
- package/dist/cjs/index.cjs +7920 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/cjs/index.d.ts +13 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/pncp.d.ts +130 -0
- package/dist/cjs/pncp.d.ts.map +1 -0
- package/dist/cjs/proto/broker.grpc.client.d.ts +154 -0
- package/dist/cjs/proto/broker.grpc.client.d.ts.map +1 -0
- package/dist/cjs/proto/broker.grpc.d.ts +6 -0
- package/dist/cjs/proto/broker.grpc.d.ts.map +1 -0
- package/dist/cjs/proto/broker_api.d.ts +333 -0
- package/dist/cjs/proto/broker_api.d.ts.map +1 -0
- package/dist/cjs/proto/google/protobuf/descriptor.d.ts +2507 -0
- package/dist/cjs/proto/google/protobuf/descriptor.d.ts.map +1 -0
- package/dist/cjs/proto/google/protobuf/timestamp.d.ts +157 -0
- package/dist/cjs/proto/google/protobuf/timestamp.d.ts.map +1 -0
- package/dist/cjs/proto/grpc/health/v1/health.client.d.ts +79 -0
- package/dist/cjs/proto/grpc/health/v1/health.client.d.ts.map +1 -0
- package/dist/cjs/proto/grpc/health/v1/health.d.ts +74 -0
- package/dist/cjs/proto/grpc/health/v1/health.d.ts.map +1 -0
- package/dist/cjs/proto/identifiers.d.ts +82 -0
- package/dist/cjs/proto/identifiers.d.ts.map +1 -0
- package/dist/cjs/proto/mediums.d.ts +71 -0
- package/dist/cjs/proto/mediums.d.ts.map +1 -0
- package/dist/cjs/proto/observation.d.ts +287 -0
- package/dist/cjs/proto/observation.d.ts.map +1 -0
- package/dist/cjs/proto/otonoma/common/value.d.ts +127 -0
- package/dist/cjs/proto/otonoma/common/value.d.ts.map +1 -0
- package/dist/cjs/proto/pncp.d.ts +596 -0
- package/dist/cjs/proto/pncp.d.ts.map +1 -0
- package/dist/cjs/schema/paranet.d.ts +337 -0
- package/dist/cjs/schema/paranet.d.ts.map +1 -0
- package/dist/cjs/util.d.ts +5 -0
- package/dist/cjs/util.d.ts.map +1 -0
- package/dist/esm/client.d.ts +169 -0
- package/dist/esm/client.d.ts.map +1 -0
- package/dist/esm/graphql.d.ts +8 -0
- package/dist/esm/graphql.d.ts.map +1 -0
- package/dist/esm/index.d.ts +13 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.mjs +7868 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/pncp.d.ts +130 -0
- package/dist/esm/pncp.d.ts.map +1 -0
- package/dist/esm/proto/broker.grpc.client.d.ts +154 -0
- package/dist/esm/proto/broker.grpc.client.d.ts.map +1 -0
- package/dist/esm/proto/broker.grpc.d.ts +6 -0
- package/dist/esm/proto/broker.grpc.d.ts.map +1 -0
- package/dist/esm/proto/broker_api.d.ts +333 -0
- package/dist/esm/proto/broker_api.d.ts.map +1 -0
- package/dist/esm/proto/google/protobuf/descriptor.d.ts +2507 -0
- package/dist/esm/proto/google/protobuf/descriptor.d.ts.map +1 -0
- package/dist/esm/proto/google/protobuf/timestamp.d.ts +157 -0
- package/dist/esm/proto/google/protobuf/timestamp.d.ts.map +1 -0
- package/dist/esm/proto/grpc/health/v1/health.client.d.ts +79 -0
- package/dist/esm/proto/grpc/health/v1/health.client.d.ts.map +1 -0
- package/dist/esm/proto/grpc/health/v1/health.d.ts +74 -0
- package/dist/esm/proto/grpc/health/v1/health.d.ts.map +1 -0
- package/dist/esm/proto/identifiers.d.ts +82 -0
- package/dist/esm/proto/identifiers.d.ts.map +1 -0
- package/dist/esm/proto/mediums.d.ts +71 -0
- package/dist/esm/proto/mediums.d.ts.map +1 -0
- package/dist/esm/proto/observation.d.ts +287 -0
- package/dist/esm/proto/observation.d.ts.map +1 -0
- package/dist/esm/proto/otonoma/common/value.d.ts +127 -0
- package/dist/esm/proto/otonoma/common/value.d.ts.map +1 -0
- package/dist/esm/proto/pncp.d.ts +596 -0
- package/dist/esm/proto/pncp.d.ts.map +1 -0
- package/dist/esm/schema/paranet.d.ts +337 -0
- package/dist/esm/schema/paranet.d.ts.map +1 -0
- package/dist/esm/util.d.ts +5 -0
- package/dist/esm/util.d.ts.map +1 -0
- package/dist/index.d.cts +2349 -0
- package/dist/index.d.mts +2349 -0
- package/dist/proto/google/protobuf/descriptor.d.ts +9 -1
- package/dist/proto/google/protobuf/descriptor.d.ts.map +1 -1
- package/dist/proto/google/protobuf/descriptor.js +8 -0
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../node_modules/@protobuf-ts/runtime/build/es2015/json-typings.js","../../node_modules/@protobuf-ts/runtime/build/es2015/base64.js","../../node_modules/@protobuf-ts/runtime/build/es2015/binary-format-contract.js","../../node_modules/@protobuf-ts/runtime/build/es2015/goog-varint.js","../../node_modules/@protobuf-ts/runtime/build/es2015/pb-long.js","../../node_modules/@protobuf-ts/runtime/build/es2015/binary-reader.js","../../node_modules/@protobuf-ts/runtime/build/es2015/assert.js","../../node_modules/@protobuf-ts/runtime/build/es2015/binary-writer.js","../../node_modules/@protobuf-ts/runtime/build/es2015/json-format-contract.js","../../node_modules/@protobuf-ts/runtime/build/es2015/message-type-contract.js","../../node_modules/@protobuf-ts/runtime/build/es2015/lower-camel-case.js","../../node_modules/@protobuf-ts/runtime/build/es2015/reflection-info.js","../../node_modules/@protobuf-ts/runtime/build/es2015/oneof.js","../../node_modules/@protobuf-ts/runtime/build/es2015/reflection-type-check.js","../../node_modules/@protobuf-ts/runtime/build/es2015/reflection-long-convert.js","../../node_modules/@protobuf-ts/runtime/build/es2015/reflection-json-reader.js","../../node_modules/@protobuf-ts/runtime/build/es2015/reflection-json-writer.js","../../node_modules/@protobuf-ts/runtime/build/es2015/reflection-scalar-default.js","../../node_modules/@protobuf-ts/runtime/build/es2015/reflection-binary-reader.js","../../node_modules/@protobuf-ts/runtime/build/es2015/reflection-binary-writer.js","../../node_modules/@protobuf-ts/runtime/build/es2015/reflection-create.js","../../node_modules/@protobuf-ts/runtime/build/es2015/reflection-merge-partial.js","../../node_modules/@protobuf-ts/runtime/build/es2015/reflection-equals.js","../../node_modules/@protobuf-ts/runtime/build/es2015/message-type.js","../../src/proto/google/protobuf/timestamp.ts","../../src/proto/identifiers.ts","../../src/proto/otonoma/common/value.ts","../../src/proto/pncp.ts","../../src/proto/mediums.ts","../../src/proto/broker_api.ts","../../src/proto/observation.ts","../../node_modules/@protobuf-ts/runtime-rpc/build/es2015/reflection-info.js","../../node_modules/@protobuf-ts/runtime-rpc/build/es2015/service-type.js","../../node_modules/@protobuf-ts/runtime-rpc/build/es2015/rpc-error.js","../../node_modules/@protobuf-ts/runtime-rpc/build/es2015/rpc-options.js","../../node_modules/@protobuf-ts/runtime-rpc/build/es2015/deferred.js","../../node_modules/@protobuf-ts/runtime-rpc/build/es2015/rpc-output-stream.js","../../node_modules/@protobuf-ts/runtime-rpc/build/es2015/unary-call.js","../../node_modules/@protobuf-ts/runtime-rpc/build/es2015/server-streaming-call.js","../../node_modules/@protobuf-ts/runtime-rpc/build/es2015/rpc-interceptor.js","../../src/proto/broker.grpc.ts","../../src/proto/broker.grpc.client.ts","../../node_modules/jwt-decode/build/esm/index.js","../../node_modules/@protobuf-ts/grpcweb-transport/build/es2015/goog-grpc-status-code.js","../../node_modules/@protobuf-ts/grpcweb-transport/build/es2015/grpc-web-format.js","../../node_modules/@protobuf-ts/grpcweb-transport/build/es2015/grpc-web-transport.js","../../src/util.ts","../../src/proto/grpc/health/v1/health.ts","../../src/proto/grpc/health/v1/health.client.ts","../../src/client.ts","../../src/graphql.ts","../../src/pncp.ts"],"sourcesContent":["/**\n * Get the type of a JSON value.\n * Distinguishes between array, null and object.\n */\nexport function typeofJsonValue(value) {\n let t = typeof value;\n if (t == \"object\") {\n if (Array.isArray(value))\n return \"array\";\n if (value === null)\n return \"null\";\n }\n return t;\n}\n/**\n * Is this a JSON object (instead of an array or null)?\n */\nexport function isJsonObject(value) {\n return value !== null && typeof value == \"object\" && !Array.isArray(value);\n}\n","// lookup table from base64 character to byte\nlet encTable = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n// lookup table from base64 character *code* to byte because lookup by number is fast\nlet decTable = [];\nfor (let i = 0; i < encTable.length; i++)\n decTable[encTable[i].charCodeAt(0)] = i;\n// support base64url variants\ndecTable[\"-\".charCodeAt(0)] = encTable.indexOf(\"+\");\ndecTable[\"_\".charCodeAt(0)] = encTable.indexOf(\"/\");\n/**\n * Decodes a base64 string to a byte array.\n *\n * - ignores white-space, including line breaks and tabs\n * - allows inner padding (can decode concatenated base64 strings)\n * - does not require padding\n * - understands base64url encoding:\n * \"-\" instead of \"+\",\n * \"_\" instead of \"/\",\n * no padding\n */\nexport function base64decode(base64Str) {\n // estimate byte size, not accounting for inner padding and whitespace\n let es = base64Str.length * 3 / 4;\n // if (es % 3 !== 0)\n // throw new Error('invalid base64 string');\n if (base64Str[base64Str.length - 2] == '=')\n es -= 2;\n else if (base64Str[base64Str.length - 1] == '=')\n es -= 1;\n let bytes = new Uint8Array(es), bytePos = 0, // position in byte array\n groupPos = 0, // position in base64 group\n b, // current byte\n p = 0 // previous byte\n ;\n for (let i = 0; i < base64Str.length; i++) {\n b = decTable[base64Str.charCodeAt(i)];\n if (b === undefined) {\n // noinspection FallThroughInSwitchStatementJS\n switch (base64Str[i]) {\n case '=':\n groupPos = 0; // reset state when padding found\n case '\\n':\n case '\\r':\n case '\\t':\n case ' ':\n continue; // skip white-space, and padding\n default:\n throw Error(`invalid base64 string.`);\n }\n }\n switch (groupPos) {\n case 0:\n p = b;\n groupPos = 1;\n break;\n case 1:\n bytes[bytePos++] = p << 2 | (b & 48) >> 4;\n p = b;\n groupPos = 2;\n break;\n case 2:\n bytes[bytePos++] = (p & 15) << 4 | (b & 60) >> 2;\n p = b;\n groupPos = 3;\n break;\n case 3:\n bytes[bytePos++] = (p & 3) << 6 | b;\n groupPos = 0;\n break;\n }\n }\n if (groupPos == 1)\n throw Error(`invalid base64 string.`);\n return bytes.subarray(0, bytePos);\n}\n/**\n * Encodes a byte array to a base64 string.\n * Adds padding at the end.\n * Does not insert newlines.\n */\nexport function base64encode(bytes) {\n let base64 = '', groupPos = 0, // position in base64 group\n b, // current byte\n p = 0; // carry over from previous byte\n for (let i = 0; i < bytes.length; i++) {\n b = bytes[i];\n switch (groupPos) {\n case 0:\n base64 += encTable[b >> 2];\n p = (b & 3) << 4;\n groupPos = 1;\n break;\n case 1:\n base64 += encTable[p | b >> 4];\n p = (b & 15) << 2;\n groupPos = 2;\n break;\n case 2:\n base64 += encTable[p | b >> 6];\n base64 += encTable[b & 63];\n groupPos = 0;\n break;\n }\n }\n // padding required?\n if (groupPos) {\n base64 += encTable[p];\n base64 += '=';\n if (groupPos == 1)\n base64 += '=';\n }\n return base64;\n}\n","/**\n * This handler implements the default behaviour for unknown fields.\n * When reading data, unknown fields are stored on the message, in a\n * symbol property.\n * When writing data, the symbol property is queried and unknown fields\n * are serialized into the output again.\n */\nexport var UnknownFieldHandler;\n(function (UnknownFieldHandler) {\n /**\n * The symbol used to store unknown fields for a message.\n * The property must conform to `UnknownFieldContainer`.\n */\n UnknownFieldHandler.symbol = Symbol.for(\"protobuf-ts/unknown\");\n /**\n * Store an unknown field during binary read directly on the message.\n * This method is compatible with `BinaryReadOptions.readUnknownField`.\n */\n UnknownFieldHandler.onRead = (typeName, message, fieldNo, wireType, data) => {\n let container = is(message) ? message[UnknownFieldHandler.symbol] : message[UnknownFieldHandler.symbol] = [];\n container.push({ no: fieldNo, wireType, data });\n };\n /**\n * Write unknown fields stored for the message to the writer.\n * This method is compatible with `BinaryWriteOptions.writeUnknownFields`.\n */\n UnknownFieldHandler.onWrite = (typeName, message, writer) => {\n for (let { no, wireType, data } of UnknownFieldHandler.list(message))\n writer.tag(no, wireType).raw(data);\n };\n /**\n * List unknown fields stored for the message.\n * Note that there may be multiples fields with the same number.\n */\n UnknownFieldHandler.list = (message, fieldNo) => {\n if (is(message)) {\n let all = message[UnknownFieldHandler.symbol];\n return fieldNo ? all.filter(uf => uf.no == fieldNo) : all;\n }\n return [];\n };\n /**\n * Returns the last unknown field by field number.\n */\n UnknownFieldHandler.last = (message, fieldNo) => UnknownFieldHandler.list(message, fieldNo).slice(-1)[0];\n const is = (message) => message && Array.isArray(message[UnknownFieldHandler.symbol]);\n})(UnknownFieldHandler || (UnknownFieldHandler = {}));\n/**\n * Merges binary write or read options. Later values override earlier values.\n */\nexport function mergeBinaryOptions(a, b) {\n return Object.assign(Object.assign({}, a), b);\n}\n/**\n * Protobuf binary format wire types.\n *\n * A wire type provides just enough information to find the length of the\n * following value.\n *\n * See https://developers.google.com/protocol-buffers/docs/encoding#structure\n */\nexport var WireType;\n(function (WireType) {\n /**\n * Used for int32, int64, uint32, uint64, sint32, sint64, bool, enum\n */\n WireType[WireType[\"Varint\"] = 0] = \"Varint\";\n /**\n * Used for fixed64, sfixed64, double.\n * Always 8 bytes with little-endian byte order.\n */\n WireType[WireType[\"Bit64\"] = 1] = \"Bit64\";\n /**\n * Used for string, bytes, embedded messages, packed repeated fields\n *\n * Only repeated numeric types (types which use the varint, 32-bit,\n * or 64-bit wire types) can be packed. In proto3, such fields are\n * packed by default.\n */\n WireType[WireType[\"LengthDelimited\"] = 2] = \"LengthDelimited\";\n /**\n * Used for groups\n * @deprecated\n */\n WireType[WireType[\"StartGroup\"] = 3] = \"StartGroup\";\n /**\n * Used for groups\n * @deprecated\n */\n WireType[WireType[\"EndGroup\"] = 4] = \"EndGroup\";\n /**\n * Used for fixed32, sfixed32, float.\n * Always 4 bytes with little-endian byte order.\n */\n WireType[WireType[\"Bit32\"] = 5] = \"Bit32\";\n})(WireType || (WireType = {}));\n","// Copyright 2008 Google Inc. All rights reserved.\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//\n// Code generated by the Protocol Buffer compiler is owned by the owner\n// of the input file used when generating it. This code is not\n// standalone and requires a support library to be linked with it. This\n// support library is itself covered by the above license.\n/**\n * Read a 64 bit varint as two JS numbers.\n *\n * Returns tuple:\n * [0]: low bits\n * [0]: high bits\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L175\n */\nexport function varint64read() {\n let lowBits = 0;\n let highBits = 0;\n for (let shift = 0; shift < 28; shift += 7) {\n let b = this.buf[this.pos++];\n lowBits |= (b & 0x7F) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n let middleByte = this.buf[this.pos++];\n // last four bits of the first 32 bit number\n lowBits |= (middleByte & 0x0F) << 28;\n // 3 upper bits are part of the next 32 bit number\n highBits = (middleByte & 0x70) >> 4;\n if ((middleByte & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n for (let shift = 3; shift <= 31; shift += 7) {\n let b = this.buf[this.pos++];\n highBits |= (b & 0x7F) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n throw new Error('invalid varint');\n}\n/**\n * Write a 64 bit varint, given as two JS numbers, to the given bytes array.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/writer.js#L344\n */\nexport function varint64write(lo, hi, bytes) {\n for (let i = 0; i < 28; i = i + 7) {\n const shift = lo >>> i;\n const hasNext = !((shift >>> 7) == 0 && hi == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xFF;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n const splitBits = ((lo >>> 28) & 0x0F) | ((hi & 0x07) << 4);\n const hasMoreBits = !((hi >> 3) == 0);\n bytes.push((hasMoreBits ? splitBits | 0x80 : splitBits) & 0xFF);\n if (!hasMoreBits) {\n return;\n }\n for (let i = 3; i < 31; i = i + 7) {\n const shift = hi >>> i;\n const hasNext = !((shift >>> 7) == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xFF;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n bytes.push((hi >>> 31) & 0x01);\n}\n// constants for binary math\nconst TWO_PWR_32_DBL = (1 << 16) * (1 << 16);\n/**\n * Parse decimal string of 64 bit integer value as two JS numbers.\n *\n * Returns tuple:\n * [0]: minus sign?\n * [1]: low bits\n * [2]: high bits\n *\n * Copyright 2008 Google Inc.\n */\nexport function int64fromString(dec) {\n // Check for minus sign.\n let minus = dec[0] == '-';\n if (minus)\n dec = dec.slice(1);\n // Work 6 decimal digits at a time, acting like we're converting base 1e6\n // digits to binary. This is safe to do with floating point math because\n // Number.isSafeInteger(ALL_32_BITS * 1e6) == true.\n const base = 1e6;\n let lowBits = 0;\n let highBits = 0;\n function add1e6digit(begin, end) {\n // Note: Number('') is 0.\n const digit1e6 = Number(dec.slice(begin, end));\n highBits *= base;\n lowBits = lowBits * base + digit1e6;\n // Carry bits from lowBits to highBits\n if (lowBits >= TWO_PWR_32_DBL) {\n highBits = highBits + ((lowBits / TWO_PWR_32_DBL) | 0);\n lowBits = lowBits % TWO_PWR_32_DBL;\n }\n }\n add1e6digit(-24, -18);\n add1e6digit(-18, -12);\n add1e6digit(-12, -6);\n add1e6digit(-6);\n return [minus, lowBits, highBits];\n}\n/**\n * Format 64 bit integer value (as two JS numbers) to decimal string.\n *\n * Copyright 2008 Google Inc.\n */\nexport function int64toString(bitsLow, bitsHigh) {\n // Skip the expensive conversion if the number is small enough to use the\n // built-in conversions.\n if ((bitsHigh >>> 0) <= 0x1FFFFF) {\n return '' + (TWO_PWR_32_DBL * bitsHigh + (bitsLow >>> 0));\n }\n // What this code is doing is essentially converting the input number from\n // base-2 to base-1e7, which allows us to represent the 64-bit range with\n // only 3 (very large) digits. Those digits are then trivial to convert to\n // a base-10 string.\n // The magic numbers used here are -\n // 2^24 = 16777216 = (1,6777216) in base-1e7.\n // 2^48 = 281474976710656 = (2,8147497,6710656) in base-1e7.\n // Split 32:32 representation into 16:24:24 representation so our\n // intermediate digits don't overflow.\n let low = bitsLow & 0xFFFFFF;\n let mid = (((bitsLow >>> 24) | (bitsHigh << 8)) >>> 0) & 0xFFFFFF;\n let high = (bitsHigh >> 16) & 0xFFFF;\n // Assemble our three base-1e7 digits, ignoring carries. The maximum\n // value in a digit at this step is representable as a 48-bit integer, which\n // can be stored in a 64-bit floating point number.\n let digitA = low + (mid * 6777216) + (high * 6710656);\n let digitB = mid + (high * 8147497);\n let digitC = (high * 2);\n // Apply carries from A to B and from B to C.\n let base = 10000000;\n if (digitA >= base) {\n digitB += Math.floor(digitA / base);\n digitA %= base;\n }\n if (digitB >= base) {\n digitC += Math.floor(digitB / base);\n digitB %= base;\n }\n // Convert base-1e7 digits to base-10, with optional leading zeroes.\n function decimalFrom1e7(digit1e7, needLeadingZeros) {\n let partial = digit1e7 ? String(digit1e7) : '';\n if (needLeadingZeros) {\n return '0000000'.slice(partial.length) + partial;\n }\n return partial;\n }\n return decimalFrom1e7(digitC, /*needLeadingZeros=*/ 0) +\n decimalFrom1e7(digitB, /*needLeadingZeros=*/ digitC) +\n // If the final 1e7 digit didn't need leading zeros, we would have\n // returned via the trivial code path at the top.\n decimalFrom1e7(digitA, /*needLeadingZeros=*/ 1);\n}\n/**\n * Write a 32 bit varint, signed or unsigned. Same as `varint64write(0, value, bytes)`\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/1b18833f4f2a2f681f4e4a25cdf3b0a43115ec26/js/binary/encoder.js#L144\n */\nexport function varint32write(value, bytes) {\n if (value >= 0) {\n // write value as varint 32\n while (value > 0x7f) {\n bytes.push((value & 0x7f) | 0x80);\n value = value >>> 7;\n }\n bytes.push(value);\n }\n else {\n for (let i = 0; i < 9; i++) {\n bytes.push(value & 127 | 128);\n value = value >> 7;\n }\n bytes.push(1);\n }\n}\n/**\n * Read an unsigned 32 bit varint.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L220\n */\nexport function varint32read() {\n let b = this.buf[this.pos++];\n let result = b & 0x7F;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7F) << 7;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7F) << 14;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7F) << 21;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n // Extract only last 4 bits\n b = this.buf[this.pos++];\n result |= (b & 0x0F) << 28;\n for (let readBytes = 5; ((b & 0x80) !== 0) && readBytes < 10; readBytes++)\n b = this.buf[this.pos++];\n if ((b & 0x80) != 0)\n throw new Error('invalid varint');\n this.assertBounds();\n // Result can have 32 bits, convert it to unsigned\n return result >>> 0;\n}\n","import { int64fromString, int64toString } from \"./goog-varint\";\nlet BI;\nexport function detectBi() {\n const dv = new DataView(new ArrayBuffer(8));\n const ok = globalThis.BigInt !== undefined\n && typeof dv.getBigInt64 === \"function\"\n && typeof dv.getBigUint64 === \"function\"\n && typeof dv.setBigInt64 === \"function\"\n && typeof dv.setBigUint64 === \"function\";\n BI = ok ? {\n MIN: BigInt(\"-9223372036854775808\"),\n MAX: BigInt(\"9223372036854775807\"),\n UMIN: BigInt(\"0\"),\n UMAX: BigInt(\"18446744073709551615\"),\n C: BigInt,\n V: dv,\n } : undefined;\n}\ndetectBi();\nfunction assertBi(bi) {\n if (!bi)\n throw new Error(\"BigInt unavailable, see https://github.com/timostamm/protobuf-ts/blob/v1.0.8/MANUAL.md#bigint-support\");\n}\n// used to validate from(string) input (when bigint is unavailable)\nconst RE_DECIMAL_STR = /^-?[0-9]+$/;\n// constants for binary math\nconst TWO_PWR_32_DBL = 0x100000000;\nconst HALF_2_PWR_32 = 0x080000000;\n// base class for PbLong and PbULong provides shared code\nclass SharedPbLong {\n /**\n * Create a new instance with the given bits.\n */\n constructor(lo, hi) {\n this.lo = lo | 0;\n this.hi = hi | 0;\n }\n /**\n * Is this instance equal to 0?\n */\n isZero() {\n return this.lo == 0 && this.hi == 0;\n }\n /**\n * Convert to a native number.\n */\n toNumber() {\n let result = this.hi * TWO_PWR_32_DBL + (this.lo >>> 0);\n if (!Number.isSafeInteger(result))\n throw new Error(\"cannot convert to safe number\");\n return result;\n }\n}\n/**\n * 64-bit unsigned integer as two 32-bit values.\n * Converts between `string`, `number` and `bigint` representations.\n */\nexport class PbULong extends SharedPbLong {\n /**\n * Create instance from a `string`, `number` or `bigint`.\n */\n static from(value) {\n if (BI)\n // noinspection FallThroughInSwitchStatementJS\n switch (typeof value) {\n case \"string\":\n if (value == \"0\")\n return this.ZERO;\n if (value == \"\")\n throw new Error('string is no integer');\n value = BI.C(value);\n case \"number\":\n if (value === 0)\n return this.ZERO;\n value = BI.C(value);\n case \"bigint\":\n if (!value)\n return this.ZERO;\n if (value < BI.UMIN)\n throw new Error('signed value for ulong');\n if (value > BI.UMAX)\n throw new Error('ulong too large');\n BI.V.setBigUint64(0, value, true);\n return new PbULong(BI.V.getInt32(0, true), BI.V.getInt32(4, true));\n }\n else\n switch (typeof value) {\n case \"string\":\n if (value == \"0\")\n return this.ZERO;\n value = value.trim();\n if (!RE_DECIMAL_STR.test(value))\n throw new Error('string is no integer');\n let [minus, lo, hi] = int64fromString(value);\n if (minus)\n throw new Error('signed value for ulong');\n return new PbULong(lo, hi);\n case \"number\":\n if (value == 0)\n return this.ZERO;\n if (!Number.isSafeInteger(value))\n throw new Error('number is no integer');\n if (value < 0)\n throw new Error('signed value for ulong');\n return new PbULong(value, value / TWO_PWR_32_DBL);\n }\n throw new Error('unknown value ' + typeof value);\n }\n /**\n * Convert to decimal string.\n */\n toString() {\n return BI ? this.toBigInt().toString() : int64toString(this.lo, this.hi);\n }\n /**\n * Convert to native bigint.\n */\n toBigInt() {\n assertBi(BI);\n BI.V.setInt32(0, this.lo, true);\n BI.V.setInt32(4, this.hi, true);\n return BI.V.getBigUint64(0, true);\n }\n}\n/**\n * ulong 0 singleton.\n */\nPbULong.ZERO = new PbULong(0, 0);\n/**\n * 64-bit signed integer as two 32-bit values.\n * Converts between `string`, `number` and `bigint` representations.\n */\nexport class PbLong extends SharedPbLong {\n /**\n * Create instance from a `string`, `number` or `bigint`.\n */\n static from(value) {\n if (BI)\n // noinspection FallThroughInSwitchStatementJS\n switch (typeof value) {\n case \"string\":\n if (value == \"0\")\n return this.ZERO;\n if (value == \"\")\n throw new Error('string is no integer');\n value = BI.C(value);\n case \"number\":\n if (value === 0)\n return this.ZERO;\n value = BI.C(value);\n case \"bigint\":\n if (!value)\n return this.ZERO;\n if (value < BI.MIN)\n throw new Error('signed long too small');\n if (value > BI.MAX)\n throw new Error('signed long too large');\n BI.V.setBigInt64(0, value, true);\n return new PbLong(BI.V.getInt32(0, true), BI.V.getInt32(4, true));\n }\n else\n switch (typeof value) {\n case \"string\":\n if (value == \"0\")\n return this.ZERO;\n value = value.trim();\n if (!RE_DECIMAL_STR.test(value))\n throw new Error('string is no integer');\n let [minus, lo, hi] = int64fromString(value);\n if (minus) {\n if (hi > HALF_2_PWR_32 || (hi == HALF_2_PWR_32 && lo != 0))\n throw new Error('signed long too small');\n }\n else if (hi >= HALF_2_PWR_32)\n throw new Error('signed long too large');\n let pbl = new PbLong(lo, hi);\n return minus ? pbl.negate() : pbl;\n case \"number\":\n if (value == 0)\n return this.ZERO;\n if (!Number.isSafeInteger(value))\n throw new Error('number is no integer');\n return value > 0\n ? new PbLong(value, value / TWO_PWR_32_DBL)\n : new PbLong(-value, -value / TWO_PWR_32_DBL).negate();\n }\n throw new Error('unknown value ' + typeof value);\n }\n /**\n * Do we have a minus sign?\n */\n isNegative() {\n return (this.hi & HALF_2_PWR_32) !== 0;\n }\n /**\n * Negate two's complement.\n * Invert all the bits and add one to the result.\n */\n negate() {\n let hi = ~this.hi, lo = this.lo;\n if (lo)\n lo = ~lo + 1;\n else\n hi += 1;\n return new PbLong(lo, hi);\n }\n /**\n * Convert to decimal string.\n */\n toString() {\n if (BI)\n return this.toBigInt().toString();\n if (this.isNegative()) {\n let n = this.negate();\n return '-' + int64toString(n.lo, n.hi);\n }\n return int64toString(this.lo, this.hi);\n }\n /**\n * Convert to native bigint.\n */\n toBigInt() {\n assertBi(BI);\n BI.V.setInt32(0, this.lo, true);\n BI.V.setInt32(4, this.hi, true);\n return BI.V.getBigInt64(0, true);\n }\n}\n/**\n * long 0 singleton.\n */\nPbLong.ZERO = new PbLong(0, 0);\n","import { WireType } from \"./binary-format-contract\";\nimport { PbLong, PbULong } from \"./pb-long\";\nimport { varint32read, varint64read } from \"./goog-varint\";\nconst defaultsRead = {\n readUnknownField: true,\n readerFactory: bytes => new BinaryReader(bytes),\n};\n/**\n * Make options for reading binary data form partial options.\n */\nexport function binaryReadOptions(options) {\n return options ? Object.assign(Object.assign({}, defaultsRead), options) : defaultsRead;\n}\nexport class BinaryReader {\n constructor(buf, textDecoder) {\n this.varint64 = varint64read; // dirty cast for `this`\n /**\n * Read a `uint32` field, an unsigned 32 bit varint.\n */\n this.uint32 = varint32read; // dirty cast for `this` and access to protected `buf`\n this.buf = buf;\n this.len = buf.length;\n this.pos = 0;\n this.view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);\n this.textDecoder = textDecoder !== null && textDecoder !== void 0 ? textDecoder : new TextDecoder(\"utf-8\", {\n fatal: true,\n ignoreBOM: true,\n });\n }\n /**\n * Reads a tag - field number and wire type.\n */\n tag() {\n let tag = this.uint32(), fieldNo = tag >>> 3, wireType = tag & 7;\n if (fieldNo <= 0 || wireType < 0 || wireType > 5)\n throw new Error(\"illegal tag: field no \" + fieldNo + \" wire type \" + wireType);\n return [fieldNo, wireType];\n }\n /**\n * Skip one element on the wire and return the skipped data.\n * Supports WireType.StartGroup since v2.0.0-alpha.23.\n */\n skip(wireType) {\n let start = this.pos;\n // noinspection FallThroughInSwitchStatementJS\n switch (wireType) {\n case WireType.Varint:\n while (this.buf[this.pos++] & 0x80) {\n // ignore\n }\n break;\n case WireType.Bit64:\n this.pos += 4;\n case WireType.Bit32:\n this.pos += 4;\n break;\n case WireType.LengthDelimited:\n let len = this.uint32();\n this.pos += len;\n break;\n case WireType.StartGroup:\n // From descriptor.proto: Group type is deprecated, not supported in proto3.\n // But we must still be able to parse and treat as unknown.\n let t;\n while ((t = this.tag()[1]) !== WireType.EndGroup) {\n this.skip(t);\n }\n break;\n default:\n throw new Error(\"cant skip wire type \" + wireType);\n }\n this.assertBounds();\n return this.buf.subarray(start, this.pos);\n }\n /**\n * Throws error if position in byte array is out of range.\n */\n assertBounds() {\n if (this.pos > this.len)\n throw new RangeError(\"premature EOF\");\n }\n /**\n * Read a `int32` field, a signed 32 bit varint.\n */\n int32() {\n return this.uint32() | 0;\n }\n /**\n * Read a `sint32` field, a signed, zigzag-encoded 32-bit varint.\n */\n sint32() {\n let zze = this.uint32();\n // decode zigzag\n return (zze >>> 1) ^ -(zze & 1);\n }\n /**\n * Read a `int64` field, a signed 64-bit varint.\n */\n int64() {\n return new PbLong(...this.varint64());\n }\n /**\n * Read a `uint64` field, an unsigned 64-bit varint.\n */\n uint64() {\n return new PbULong(...this.varint64());\n }\n /**\n * Read a `sint64` field, a signed, zig-zag-encoded 64-bit varint.\n */\n sint64() {\n let [lo, hi] = this.varint64();\n // decode zig zag\n let s = -(lo & 1);\n lo = ((lo >>> 1 | (hi & 1) << 31) ^ s);\n hi = (hi >>> 1 ^ s);\n return new PbLong(lo, hi);\n }\n /**\n * Read a `bool` field, a variant.\n */\n bool() {\n let [lo, hi] = this.varint64();\n return lo !== 0 || hi !== 0;\n }\n /**\n * Read a `fixed32` field, an unsigned, fixed-length 32-bit integer.\n */\n fixed32() {\n return this.view.getUint32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `sfixed32` field, a signed, fixed-length 32-bit integer.\n */\n sfixed32() {\n return this.view.getInt32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `fixed64` field, an unsigned, fixed-length 64 bit integer.\n */\n fixed64() {\n return new PbULong(this.sfixed32(), this.sfixed32());\n }\n /**\n * Read a `fixed64` field, a signed, fixed-length 64-bit integer.\n */\n sfixed64() {\n return new PbLong(this.sfixed32(), this.sfixed32());\n }\n /**\n * Read a `float` field, 32-bit floating point number.\n */\n float() {\n return this.view.getFloat32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `double` field, a 64-bit floating point number.\n */\n double() {\n return this.view.getFloat64((this.pos += 8) - 8, true);\n }\n /**\n * Read a `bytes` field, length-delimited arbitrary data.\n */\n bytes() {\n let len = this.uint32();\n let start = this.pos;\n this.pos += len;\n this.assertBounds();\n return this.buf.subarray(start, start + len);\n }\n /**\n * Read a `string` field, length-delimited data converted to UTF-8 text.\n */\n string() {\n return this.textDecoder.decode(this.bytes());\n }\n}\n","/**\n * assert that condition is true or throw error (with message)\n */\nexport function assert(condition, msg) {\n if (!condition) {\n throw new Error(msg);\n }\n}\n/**\n * assert that value cannot exist = type `never`. throw runtime error if it does.\n */\nexport function assertNever(value, msg) {\n throw new Error(msg !== null && msg !== void 0 ? msg : 'Unexpected object: ' + value);\n}\nconst FLOAT32_MAX = 3.4028234663852886e+38, FLOAT32_MIN = -3.4028234663852886e+38, UINT32_MAX = 0xFFFFFFFF, INT32_MAX = 0X7FFFFFFF, INT32_MIN = -0X80000000;\nexport function assertInt32(arg) {\n if (typeof arg !== \"number\")\n throw new Error('invalid int 32: ' + typeof arg);\n if (!Number.isInteger(arg) || arg > INT32_MAX || arg < INT32_MIN)\n throw new Error('invalid int 32: ' + arg);\n}\nexport function assertUInt32(arg) {\n if (typeof arg !== \"number\")\n throw new Error('invalid uint 32: ' + typeof arg);\n if (!Number.isInteger(arg) || arg > UINT32_MAX || arg < 0)\n throw new Error('invalid uint 32: ' + arg);\n}\nexport function assertFloat32(arg) {\n if (typeof arg !== \"number\")\n throw new Error('invalid float 32: ' + typeof arg);\n if (!Number.isFinite(arg))\n return;\n if (arg > FLOAT32_MAX || arg < FLOAT32_MIN)\n throw new Error('invalid float 32: ' + arg);\n}\n","import { PbLong, PbULong } from \"./pb-long\";\nimport { varint32write, varint64write } from \"./goog-varint\";\nimport { assertFloat32, assertInt32, assertUInt32 } from \"./assert\";\nconst defaultsWrite = {\n writeUnknownFields: true,\n writerFactory: () => new BinaryWriter(),\n};\n/**\n * Make options for writing binary data form partial options.\n */\nexport function binaryWriteOptions(options) {\n return options ? Object.assign(Object.assign({}, defaultsWrite), options) : defaultsWrite;\n}\nexport class BinaryWriter {\n constructor(textEncoder) {\n /**\n * Previous fork states.\n */\n this.stack = [];\n this.textEncoder = textEncoder !== null && textEncoder !== void 0 ? textEncoder : new TextEncoder();\n this.chunks = [];\n this.buf = [];\n }\n /**\n * Return all bytes written and reset this writer.\n */\n finish() {\n this.chunks.push(new Uint8Array(this.buf)); // flush the buffer\n let len = 0;\n for (let i = 0; i < this.chunks.length; i++)\n len += this.chunks[i].length;\n let bytes = new Uint8Array(len);\n let offset = 0;\n for (let i = 0; i < this.chunks.length; i++) {\n bytes.set(this.chunks[i], offset);\n offset += this.chunks[i].length;\n }\n this.chunks = [];\n return bytes;\n }\n /**\n * Start a new fork for length-delimited data like a message\n * or a packed repeated field.\n *\n * Must be joined later with `join()`.\n */\n fork() {\n this.stack.push({ chunks: this.chunks, buf: this.buf });\n this.chunks = [];\n this.buf = [];\n return this;\n }\n /**\n * Join the last fork. Write its length and bytes, then\n * return to the previous state.\n */\n join() {\n // get chunk of fork\n let chunk = this.finish();\n // restore previous state\n let prev = this.stack.pop();\n if (!prev)\n throw new Error('invalid state, fork stack empty');\n this.chunks = prev.chunks;\n this.buf = prev.buf;\n // write length of chunk as varint\n this.uint32(chunk.byteLength);\n return this.raw(chunk);\n }\n /**\n * Writes a tag (field number and wire type).\n *\n * Equivalent to `uint32( (fieldNo << 3 | type) >>> 0 )`.\n *\n * Generated code should compute the tag ahead of time and call `uint32()`.\n */\n tag(fieldNo, type) {\n return this.uint32((fieldNo << 3 | type) >>> 0);\n }\n /**\n * Write a chunk of raw bytes.\n */\n raw(chunk) {\n if (this.buf.length) {\n this.chunks.push(new Uint8Array(this.buf));\n this.buf = [];\n }\n this.chunks.push(chunk);\n return this;\n }\n /**\n * Write a `uint32` value, an unsigned 32 bit varint.\n */\n uint32(value) {\n assertUInt32(value);\n // write value as varint 32, inlined for speed\n while (value > 0x7f) {\n this.buf.push((value & 0x7f) | 0x80);\n value = value >>> 7;\n }\n this.buf.push(value);\n return this;\n }\n /**\n * Write a `int32` value, a signed 32 bit varint.\n */\n int32(value) {\n assertInt32(value);\n varint32write(value, this.buf);\n return this;\n }\n /**\n * Write a `bool` value, a variant.\n */\n bool(value) {\n this.buf.push(value ? 1 : 0);\n return this;\n }\n /**\n * Write a `bytes` value, length-delimited arbitrary data.\n */\n bytes(value) {\n this.uint32(value.byteLength); // write length of chunk as varint\n return this.raw(value);\n }\n /**\n * Write a `string` value, length-delimited data converted to UTF-8 text.\n */\n string(value) {\n let chunk = this.textEncoder.encode(value);\n this.uint32(chunk.byteLength); // write length of chunk as varint\n return this.raw(chunk);\n }\n /**\n * Write a `float` value, 32-bit floating point number.\n */\n float(value) {\n assertFloat32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setFloat32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `double` value, a 64-bit floating point number.\n */\n double(value) {\n let chunk = new Uint8Array(8);\n new DataView(chunk.buffer).setFloat64(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `fixed32` value, an unsigned, fixed-length 32-bit integer.\n */\n fixed32(value) {\n assertUInt32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setUint32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `sfixed32` value, a signed, fixed-length 32-bit integer.\n */\n sfixed32(value) {\n assertInt32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setInt32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `sint32` value, a signed, zigzag-encoded 32-bit varint.\n */\n sint32(value) {\n assertInt32(value);\n // zigzag encode\n value = ((value << 1) ^ (value >> 31)) >>> 0;\n varint32write(value, this.buf);\n return this;\n }\n /**\n * Write a `fixed64` value, a signed, fixed-length 64-bit integer.\n */\n sfixed64(value) {\n let chunk = new Uint8Array(8);\n let view = new DataView(chunk.buffer);\n let long = PbLong.from(value);\n view.setInt32(0, long.lo, true);\n view.setInt32(4, long.hi, true);\n return this.raw(chunk);\n }\n /**\n * Write a `fixed64` value, an unsigned, fixed-length 64 bit integer.\n */\n fixed64(value) {\n let chunk = new Uint8Array(8);\n let view = new DataView(chunk.buffer);\n let long = PbULong.from(value);\n view.setInt32(0, long.lo, true);\n view.setInt32(4, long.hi, true);\n return this.raw(chunk);\n }\n /**\n * Write a `int64` value, a signed 64-bit varint.\n */\n int64(value) {\n let long = PbLong.from(value);\n varint64write(long.lo, long.hi, this.buf);\n return this;\n }\n /**\n * Write a `sint64` value, a signed, zig-zag-encoded 64-bit varint.\n */\n sint64(value) {\n let long = PbLong.from(value), \n // zigzag encode\n sign = long.hi >> 31, lo = (long.lo << 1) ^ sign, hi = ((long.hi << 1) | (long.lo >>> 31)) ^ sign;\n varint64write(lo, hi, this.buf);\n return this;\n }\n /**\n * Write a `uint64` value, an unsigned 64-bit varint.\n */\n uint64(value) {\n let long = PbULong.from(value);\n varint64write(long.lo, long.hi, this.buf);\n return this;\n }\n}\n","const defaultsWrite = {\n emitDefaultValues: false,\n enumAsInteger: false,\n useProtoFieldName: false,\n prettySpaces: 0,\n}, defaultsRead = {\n ignoreUnknownFields: false,\n};\n/**\n * Make options for reading JSON data from partial options.\n */\nexport function jsonReadOptions(options) {\n return options ? Object.assign(Object.assign({}, defaultsRead), options) : defaultsRead;\n}\n/**\n * Make options for writing JSON data from partial options.\n */\nexport function jsonWriteOptions(options) {\n return options ? Object.assign(Object.assign({}, defaultsWrite), options) : defaultsWrite;\n}\n/**\n * Merges JSON write or read options. Later values override earlier values. Type registries are merged.\n */\nexport function mergeJsonOptions(a, b) {\n var _a, _b;\n let c = Object.assign(Object.assign({}, a), b);\n c.typeRegistry = [...((_a = a === null || a === void 0 ? void 0 : a.typeRegistry) !== null && _a !== void 0 ? _a : []), ...((_b = b === null || b === void 0 ? void 0 : b.typeRegistry) !== null && _b !== void 0 ? _b : [])];\n return c;\n}\n","/**\n * The symbol used as a key on message objects to store the message type.\n *\n * Note that this is an experimental feature - it is here to stay, but\n * implementation details may change without notice.\n */\nexport const MESSAGE_TYPE = Symbol.for(\"protobuf-ts/message-type\");\n","/**\n * Converts snake_case to lowerCamelCase.\n *\n * Should behave like protoc:\n * https://github.com/protocolbuffers/protobuf/blob/e8ae137c96444ea313485ed1118c5e43b2099cf1/src/google/protobuf/compiler/java/java_helpers.cc#L118\n */\nexport function lowerCamelCase(snakeCase) {\n let capNext = false;\n const sb = [];\n for (let i = 0; i < snakeCase.length; i++) {\n let next = snakeCase.charAt(i);\n if (next == '_') {\n capNext = true;\n }\n else if (/\\d/.test(next)) {\n sb.push(next);\n capNext = true;\n }\n else if (capNext) {\n sb.push(next.toUpperCase());\n capNext = false;\n }\n else if (i == 0) {\n sb.push(next.toLowerCase());\n }\n else {\n sb.push(next);\n }\n }\n return sb.join('');\n}\n","import { lowerCamelCase } from \"./lower-camel-case\";\n/**\n * Scalar value types. This is a subset of field types declared by protobuf\n * enum google.protobuf.FieldDescriptorProto.Type The types GROUP and MESSAGE\n * are omitted, but the numerical values are identical.\n */\nexport var ScalarType;\n(function (ScalarType) {\n // 0 is reserved for errors.\n // Order is weird for historical reasons.\n ScalarType[ScalarType[\"DOUBLE\"] = 1] = \"DOUBLE\";\n ScalarType[ScalarType[\"FLOAT\"] = 2] = \"FLOAT\";\n // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if\n // negative values are likely.\n ScalarType[ScalarType[\"INT64\"] = 3] = \"INT64\";\n ScalarType[ScalarType[\"UINT64\"] = 4] = \"UINT64\";\n // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if\n // negative values are likely.\n ScalarType[ScalarType[\"INT32\"] = 5] = \"INT32\";\n ScalarType[ScalarType[\"FIXED64\"] = 6] = \"FIXED64\";\n ScalarType[ScalarType[\"FIXED32\"] = 7] = \"FIXED32\";\n ScalarType[ScalarType[\"BOOL\"] = 8] = \"BOOL\";\n ScalarType[ScalarType[\"STRING\"] = 9] = \"STRING\";\n // Tag-delimited aggregate.\n // Group type is deprecated and not supported in proto3. However, Proto3\n // implementations should still be able to parse the group wire format and\n // treat group fields as unknown fields.\n // TYPE_GROUP = 10,\n // TYPE_MESSAGE = 11, // Length-delimited aggregate.\n // New in version 2.\n ScalarType[ScalarType[\"BYTES\"] = 12] = \"BYTES\";\n ScalarType[ScalarType[\"UINT32\"] = 13] = \"UINT32\";\n // TYPE_ENUM = 14,\n ScalarType[ScalarType[\"SFIXED32\"] = 15] = \"SFIXED32\";\n ScalarType[ScalarType[\"SFIXED64\"] = 16] = \"SFIXED64\";\n ScalarType[ScalarType[\"SINT32\"] = 17] = \"SINT32\";\n ScalarType[ScalarType[\"SINT64\"] = 18] = \"SINT64\";\n})(ScalarType || (ScalarType = {}));\n/**\n * JavaScript representation of 64 bit integral types. Equivalent to the\n * field option \"jstype\".\n *\n * By default, protobuf-ts represents 64 bit types as `bigint`.\n *\n * You can change the default behaviour by enabling the plugin parameter\n * `long_type_string`, which will represent 64 bit types as `string`.\n *\n * Alternatively, you can change the behaviour for individual fields\n * with the field option \"jstype\":\n *\n * ```protobuf\n * uint64 my_field = 1 [jstype = JS_STRING];\n * uint64 other_field = 2 [jstype = JS_NUMBER];\n * ```\n */\nexport var LongType;\n(function (LongType) {\n /**\n * Use JavaScript `bigint`.\n *\n * Field option `[jstype = JS_NORMAL]`.\n */\n LongType[LongType[\"BIGINT\"] = 0] = \"BIGINT\";\n /**\n * Use JavaScript `string`.\n *\n * Field option `[jstype = JS_STRING]`.\n */\n LongType[LongType[\"STRING\"] = 1] = \"STRING\";\n /**\n * Use JavaScript `number`.\n *\n * Large values will loose precision.\n *\n * Field option `[jstype = JS_NUMBER]`.\n */\n LongType[LongType[\"NUMBER\"] = 2] = \"NUMBER\";\n})(LongType || (LongType = {}));\n/**\n * Protobuf 2.1.0 introduced packed repeated fields.\n * Setting the field option `[packed = true]` enables packing.\n *\n * In proto3, all repeated fields are packed by default.\n * Setting the field option `[packed = false]` disables packing.\n *\n * Packed repeated fields are encoded with a single tag,\n * then a length-delimiter, then the element values.\n *\n * Unpacked repeated fields are encoded with a tag and\n * value for each element.\n *\n * `bytes` and `string` cannot be packed.\n */\nexport var RepeatType;\n(function (RepeatType) {\n /**\n * The field is not repeated.\n */\n RepeatType[RepeatType[\"NO\"] = 0] = \"NO\";\n /**\n * The field is repeated and should be packed.\n * Invalid for `bytes` and `string`, they cannot be packed.\n */\n RepeatType[RepeatType[\"PACKED\"] = 1] = \"PACKED\";\n /**\n * The field is repeated but should not be packed.\n * The only valid repeat type for repeated `bytes` and `string`.\n */\n RepeatType[RepeatType[\"UNPACKED\"] = 2] = \"UNPACKED\";\n})(RepeatType || (RepeatType = {}));\n/**\n * Turns PartialFieldInfo into FieldInfo.\n */\nexport function normalizeFieldInfo(field) {\n var _a, _b, _c, _d;\n field.localName = (_a = field.localName) !== null && _a !== void 0 ? _a : lowerCamelCase(field.name);\n field.jsonName = (_b = field.jsonName) !== null && _b !== void 0 ? _b : lowerCamelCase(field.name);\n field.repeat = (_c = field.repeat) !== null && _c !== void 0 ? _c : RepeatType.NO;\n field.opt = (_d = field.opt) !== null && _d !== void 0 ? _d : (field.repeat ? false : field.oneof ? false : field.kind == \"message\");\n return field;\n}\n/**\n * Read custom field options from a generated message type.\n *\n * @deprecated use readFieldOption()\n */\nexport function readFieldOptions(messageType, fieldName, extensionName, extensionType) {\n var _a;\n const options = (_a = messageType.fields.find((m, i) => m.localName == fieldName || i == fieldName)) === null || _a === void 0 ? void 0 : _a.options;\n return options && options[extensionName] ? extensionType.fromJson(options[extensionName]) : undefined;\n}\nexport function readFieldOption(messageType, fieldName, extensionName, extensionType) {\n var _a;\n const options = (_a = messageType.fields.find((m, i) => m.localName == fieldName || i == fieldName)) === null || _a === void 0 ? void 0 : _a.options;\n if (!options) {\n return undefined;\n }\n const optionVal = options[extensionName];\n if (optionVal === undefined) {\n return optionVal;\n }\n return extensionType ? extensionType.fromJson(optionVal) : optionVal;\n}\nexport function readMessageOption(messageType, extensionName, extensionType) {\n const options = messageType.options;\n const optionVal = options[extensionName];\n if (optionVal === undefined) {\n return optionVal;\n }\n return extensionType ? extensionType.fromJson(optionVal) : optionVal;\n}\n","/**\n * Is the given value a valid oneof group?\n *\n * We represent protobuf `oneof` as algebraic data types (ADT) in generated\n * code. But when working with messages of unknown type, the ADT does not\n * help us.\n *\n * This type guard checks if the given object adheres to the ADT rules, which\n * are as follows:\n *\n * 1) Must be an object.\n *\n * 2) Must have a \"oneofKind\" discriminator property.\n *\n * 3) If \"oneofKind\" is `undefined`, no member field is selected. The object\n * must not have any other properties.\n *\n * 4) If \"oneofKind\" is a `string`, the member field with this name is\n * selected.\n *\n * 5) If a member field is selected, the object must have a second property\n * with this name. The property must not be `undefined`.\n *\n * 6) No extra properties are allowed. The object has either one property\n * (no selection) or two properties (selection).\n *\n */\nexport function isOneofGroup(any) {\n if (typeof any != 'object' || any === null || !any.hasOwnProperty('oneofKind')) {\n return false;\n }\n switch (typeof any.oneofKind) {\n case \"string\":\n if (any[any.oneofKind] === undefined)\n return false;\n return Object.keys(any).length == 2;\n case \"undefined\":\n return Object.keys(any).length == 1;\n default:\n return false;\n }\n}\n/**\n * Returns the value of the given field in a oneof group.\n */\nexport function getOneofValue(oneof, kind) {\n return oneof[kind];\n}\nexport function setOneofValue(oneof, kind, value) {\n if (oneof.oneofKind !== undefined) {\n delete oneof[oneof.oneofKind];\n }\n oneof.oneofKind = kind;\n if (value !== undefined) {\n oneof[kind] = value;\n }\n}\nexport function setUnknownOneofValue(oneof, kind, value) {\n if (oneof.oneofKind !== undefined) {\n delete oneof[oneof.oneofKind];\n }\n oneof.oneofKind = kind;\n if (value !== undefined && kind !== undefined) {\n oneof[kind] = value;\n }\n}\n/**\n * Removes the selected field in a oneof group.\n *\n * Note that the recommended way to modify a oneof group is to set\n * a new object:\n *\n * ```ts\n * message.result = { oneofKind: undefined };\n * ```\n */\nexport function clearOneofValue(oneof) {\n if (oneof.oneofKind !== undefined) {\n delete oneof[oneof.oneofKind];\n }\n oneof.oneofKind = undefined;\n}\n/**\n * Returns the selected value of the given oneof group.\n *\n * Not that the recommended way to access a oneof group is to check\n * the \"oneofKind\" property and let TypeScript narrow down the union\n * type for you:\n *\n * ```ts\n * if (message.result.oneofKind === \"error\") {\n * message.result.error; // string\n * }\n * ```\n *\n * In the rare case you just need the value, and do not care about\n * which protobuf field is selected, you can use this function\n * for convenience.\n */\nexport function getSelectedOneofValue(oneof) {\n if (oneof.oneofKind === undefined) {\n return undefined;\n }\n return oneof[oneof.oneofKind];\n}\n","import { LongType, ScalarType } from \"./reflection-info\";\nimport { isOneofGroup } from \"./oneof\";\n// noinspection JSMethodCanBeStatic\nexport class ReflectionTypeCheck {\n constructor(info) {\n var _a;\n this.fields = (_a = info.fields) !== null && _a !== void 0 ? _a : [];\n }\n prepare() {\n if (this.data)\n return;\n const req = [], known = [], oneofs = [];\n for (let field of this.fields) {\n if (field.oneof) {\n if (!oneofs.includes(field.oneof)) {\n oneofs.push(field.oneof);\n req.push(field.oneof);\n known.push(field.oneof);\n }\n }\n else {\n known.push(field.localName);\n switch (field.kind) {\n case \"scalar\":\n case \"enum\":\n if (!field.opt || field.repeat)\n req.push(field.localName);\n break;\n case \"message\":\n if (field.repeat)\n req.push(field.localName);\n break;\n case \"map\":\n req.push(field.localName);\n break;\n }\n }\n }\n this.data = { req, known, oneofs: Object.values(oneofs) };\n }\n /**\n * Is the argument a valid message as specified by the\n * reflection information?\n *\n * Checks all field types recursively. The `depth`\n * specifies how deep into the structure the check will be.\n *\n * With a depth of 0, only the presence of fields\n * is checked.\n *\n * With a depth of 1 or more, the field types are checked.\n *\n * With a depth of 2 or more, the members of map, repeated\n * and message fields are checked.\n *\n * Message fields will be checked recursively with depth - 1.\n *\n * The number of map entries / repeated values being checked\n * is < depth.\n */\n is(message, depth, allowExcessProperties = false) {\n if (depth < 0)\n return true;\n if (message === null || message === undefined || typeof message != 'object')\n return false;\n this.prepare();\n let keys = Object.keys(message), data = this.data;\n // if a required field is missing in arg, this cannot be a T\n if (keys.length < data.req.length || data.req.some(n => !keys.includes(n)))\n return false;\n if (!allowExcessProperties) {\n // if the arg contains a key we dont know, this is not a literal T\n if (keys.some(k => !data.known.includes(k)))\n return false;\n }\n // \"With a depth of 0, only the presence and absence of fields is checked.\"\n // \"With a depth of 1 or more, the field types are checked.\"\n if (depth < 1) {\n return true;\n }\n // check oneof group\n for (const name of data.oneofs) {\n const group = message[name];\n if (!isOneofGroup(group))\n return false;\n if (group.oneofKind === undefined)\n continue;\n const field = this.fields.find(f => f.localName === group.oneofKind);\n if (!field)\n return false; // we found no field, but have a kind, something is wrong\n if (!this.field(group[group.oneofKind], field, allowExcessProperties, depth))\n return false;\n }\n // check types\n for (const field of this.fields) {\n if (field.oneof !== undefined)\n continue;\n if (!this.field(message[field.localName], field, allowExcessProperties, depth))\n return false;\n }\n return true;\n }\n field(arg, field, allowExcessProperties, depth) {\n let repeated = field.repeat;\n switch (field.kind) {\n case \"scalar\":\n if (arg === undefined)\n return field.opt;\n if (repeated)\n return this.scalars(arg, field.T, depth, field.L);\n return this.scalar(arg, field.T, field.L);\n case \"enum\":\n if (arg === undefined)\n return field.opt;\n if (repeated)\n return this.scalars(arg, ScalarType.INT32, depth);\n return this.scalar(arg, ScalarType.INT32);\n case \"message\":\n if (arg === undefined)\n return true;\n if (repeated)\n return this.messages(arg, field.T(), allowExcessProperties, depth);\n return this.message(arg, field.T(), allowExcessProperties, depth);\n case \"map\":\n if (typeof arg != 'object' || arg === null)\n return false;\n if (depth < 2)\n return true;\n if (!this.mapKeys(arg, field.K, depth))\n return false;\n switch (field.V.kind) {\n case \"scalar\":\n return this.scalars(Object.values(arg), field.V.T, depth, field.V.L);\n case \"enum\":\n return this.scalars(Object.values(arg), ScalarType.INT32, depth);\n case \"message\":\n return this.messages(Object.values(arg), field.V.T(), allowExcessProperties, depth);\n }\n break;\n }\n return true;\n }\n message(arg, type, allowExcessProperties, depth) {\n if (allowExcessProperties) {\n return type.isAssignable(arg, depth);\n }\n return type.is(arg, depth);\n }\n messages(arg, type, allowExcessProperties, depth) {\n if (!Array.isArray(arg))\n return false;\n if (depth < 2)\n return true;\n if (allowExcessProperties) {\n for (let i = 0; i < arg.length && i < depth; i++)\n if (!type.isAssignable(arg[i], depth - 1))\n return false;\n }\n else {\n for (let i = 0; i < arg.length && i < depth; i++)\n if (!type.is(arg[i], depth - 1))\n return false;\n }\n return true;\n }\n scalar(arg, type, longType) {\n let argType = typeof arg;\n switch (type) {\n case ScalarType.UINT64:\n case ScalarType.FIXED64:\n case ScalarType.INT64:\n case ScalarType.SFIXED64:\n case ScalarType.SINT64:\n switch (longType) {\n case LongType.BIGINT:\n return argType == \"bigint\";\n case LongType.NUMBER:\n return argType == \"number\" && !isNaN(arg);\n default:\n return argType == \"string\";\n }\n case ScalarType.BOOL:\n return argType == 'boolean';\n case ScalarType.STRING:\n return argType == 'string';\n case ScalarType.BYTES:\n return arg instanceof Uint8Array;\n case ScalarType.DOUBLE:\n case ScalarType.FLOAT:\n return argType == 'number' && !isNaN(arg);\n default:\n // case ScalarType.UINT32:\n // case ScalarType.FIXED32:\n // case ScalarType.INT32:\n // case ScalarType.SINT32:\n // case ScalarType.SFIXED32:\n return argType == 'number' && Number.isInteger(arg);\n }\n }\n scalars(arg, type, depth, longType) {\n if (!Array.isArray(arg))\n return false;\n if (depth < 2)\n return true;\n if (Array.isArray(arg))\n for (let i = 0; i < arg.length && i < depth; i++)\n if (!this.scalar(arg[i], type, longType))\n return false;\n return true;\n }\n mapKeys(map, type, depth) {\n let keys = Object.keys(map);\n switch (type) {\n case ScalarType.INT32:\n case ScalarType.FIXED32:\n case ScalarType.SFIXED32:\n case ScalarType.SINT32:\n case ScalarType.UINT32:\n return this.scalars(keys.slice(0, depth).map(k => parseInt(k)), type, depth);\n case ScalarType.BOOL:\n return this.scalars(keys.slice(0, depth).map(k => k == 'true' ? true : k == 'false' ? false : k), type, depth);\n default:\n return this.scalars(keys, type, depth, LongType.STRING);\n }\n }\n}\n","import { LongType } from \"./reflection-info\";\n/**\n * Utility method to convert a PbLong or PbUlong to a JavaScript\n * representation during runtime.\n *\n * Works with generated field information, `undefined` is equivalent\n * to `STRING`.\n */\nexport function reflectionLongConvert(long, type) {\n switch (type) {\n case LongType.BIGINT:\n return long.toBigInt();\n case LongType.NUMBER:\n return long.toNumber();\n default:\n // case undefined:\n // case LongType.STRING:\n return long.toString();\n }\n}\n","import { isJsonObject, typeofJsonValue } from \"./json-typings\";\nimport { base64decode } from \"./base64\";\nimport { LongType, ScalarType } from \"./reflection-info\";\nimport { PbLong, PbULong } from \"./pb-long\";\nimport { assert, assertFloat32, assertInt32, assertUInt32 } from \"./assert\";\nimport { reflectionLongConvert } from \"./reflection-long-convert\";\n/**\n * Reads proto3 messages in canonical JSON format using reflection information.\n *\n * https://developers.google.com/protocol-buffers/docs/proto3#json\n */\nexport class ReflectionJsonReader {\n constructor(info) {\n this.info = info;\n }\n prepare() {\n var _a;\n if (this.fMap === undefined) {\n this.fMap = {};\n const fieldsInput = (_a = this.info.fields) !== null && _a !== void 0 ? _a : [];\n for (const field of fieldsInput) {\n this.fMap[field.name] = field;\n this.fMap[field.jsonName] = field;\n this.fMap[field.localName] = field;\n }\n }\n }\n // Cannot parse JSON <type of jsonValue> for <type name>#<fieldName>.\n assert(condition, fieldName, jsonValue) {\n if (!condition) {\n let what = typeofJsonValue(jsonValue);\n if (what == \"number\" || what == \"boolean\")\n what = jsonValue.toString();\n throw new Error(`Cannot parse JSON ${what} for ${this.info.typeName}#${fieldName}`);\n }\n }\n /**\n * Reads a message from canonical JSON format into the target message.\n *\n * Repeated fields are appended. Map entries are added, overwriting\n * existing keys.\n *\n * If a message field is already present, it will be merged with the\n * new data.\n */\n read(input, message, options) {\n this.prepare();\n const oneofsHandled = [];\n for (const [jsonKey, jsonValue] of Object.entries(input)) {\n const field = this.fMap[jsonKey];\n if (!field) {\n if (!options.ignoreUnknownFields)\n throw new Error(`Found unknown field while reading ${this.info.typeName} from JSON format. JSON key: ${jsonKey}`);\n continue;\n }\n const localName = field.localName;\n // handle oneof ADT\n let target; // this will be the target for the field value, whether it is member of a oneof or not\n if (field.oneof) {\n if (jsonValue === null && (field.kind !== 'enum' || field.T()[0] !== 'google.protobuf.NullValue')) {\n continue;\n }\n // since json objects are unordered by specification, it is not possible to take the last of multiple oneofs\n if (oneofsHandled.includes(field.oneof))\n throw new Error(`Multiple members of the oneof group \"${field.oneof}\" of ${this.info.typeName} are present in JSON.`);\n oneofsHandled.push(field.oneof);\n target = message[field.oneof] = {\n oneofKind: localName\n };\n }\n else {\n target = message;\n }\n // we have handled oneof above. we just have read the value into `target`.\n if (field.kind == 'map') {\n if (jsonValue === null) {\n continue;\n }\n // check input\n this.assert(isJsonObject(jsonValue), field.name, jsonValue);\n // our target to put map entries into\n const fieldObj = target[localName];\n // read entries\n for (const [jsonObjKey, jsonObjValue] of Object.entries(jsonValue)) {\n this.assert(jsonObjValue !== null, field.name + \" map value\", null);\n // read value\n let val;\n switch (field.V.kind) {\n case \"message\":\n val = field.V.T().internalJsonRead(jsonObjValue, options);\n break;\n case \"enum\":\n val = this.enum(field.V.T(), jsonObjValue, field.name, options.ignoreUnknownFields);\n if (val === false)\n continue;\n break;\n case \"scalar\":\n val = this.scalar(jsonObjValue, field.V.T, field.V.L, field.name);\n break;\n }\n this.assert(val !== undefined, field.name + \" map value\", jsonObjValue);\n // read key\n let key = jsonObjKey;\n if (field.K == ScalarType.BOOL)\n key = key == \"true\" ? true : key == \"false\" ? false : key;\n key = this.scalar(key, field.K, LongType.STRING, field.name).toString();\n fieldObj[key] = val;\n }\n }\n else if (field.repeat) {\n if (jsonValue === null)\n continue;\n // check input\n this.assert(Array.isArray(jsonValue), field.name, jsonValue);\n // our target to put array entries into\n const fieldArr = target[localName];\n // read array entries\n for (const jsonItem of jsonValue) {\n this.assert(jsonItem !== null, field.name, null);\n let val;\n switch (field.kind) {\n case \"message\":\n val = field.T().internalJsonRead(jsonItem, options);\n break;\n case \"enum\":\n val = this.enum(field.T(), jsonItem, field.name, options.ignoreUnknownFields);\n if (val === false)\n continue;\n break;\n case \"scalar\":\n val = this.scalar(jsonItem, field.T, field.L, field.name);\n break;\n }\n this.assert(val !== undefined, field.name, jsonValue);\n fieldArr.push(val);\n }\n }\n else {\n switch (field.kind) {\n case \"message\":\n if (jsonValue === null && field.T().typeName != 'google.protobuf.Value') {\n this.assert(field.oneof === undefined, field.name + \" (oneof member)\", null);\n continue;\n }\n target[localName] = field.T().internalJsonRead(jsonValue, options, target[localName]);\n break;\n case \"enum\":\n if (jsonValue === null)\n continue;\n let val = this.enum(field.T(), jsonValue, field.name, options.ignoreUnknownFields);\n if (val === false)\n continue;\n target[localName] = val;\n break;\n case \"scalar\":\n if (jsonValue === null)\n continue;\n target[localName] = this.scalar(jsonValue, field.T, field.L, field.name);\n break;\n }\n }\n }\n }\n /**\n * Returns `false` for unrecognized string representations.\n *\n * google.protobuf.NullValue accepts only JSON `null` (or the old `\"NULL_VALUE\"`).\n */\n enum(type, json, fieldName, ignoreUnknownFields) {\n if (type[0] == 'google.protobuf.NullValue')\n assert(json === null || json === \"NULL_VALUE\", `Unable to parse field ${this.info.typeName}#${fieldName}, enum ${type[0]} only accepts null.`);\n if (json === null)\n // we require 0 to be default value for all enums\n return 0;\n switch (typeof json) {\n case \"number\":\n assert(Number.isInteger(json), `Unable to parse field ${this.info.typeName}#${fieldName}, enum can only be integral number, got ${json}.`);\n return json;\n case \"string\":\n let localEnumName = json;\n if (type[2] && json.substring(0, type[2].length) === type[2])\n // lookup without the shared prefix\n localEnumName = json.substring(type[2].length);\n let enumNumber = type[1][localEnumName];\n if (typeof enumNumber === 'undefined' && ignoreUnknownFields) {\n return false;\n }\n assert(typeof enumNumber == \"number\", `Unable to parse field ${this.info.typeName}#${fieldName}, enum ${type[0]} has no value for \"${json}\".`);\n return enumNumber;\n }\n assert(false, `Unable to parse field ${this.info.typeName}#${fieldName}, cannot parse enum value from ${typeof json}\".`);\n }\n scalar(json, type, longType, fieldName) {\n let e;\n try {\n switch (type) {\n // float, double: JSON value will be a number or one of the special string values \"NaN\", \"Infinity\", and \"-Infinity\".\n // Either numbers or strings are accepted. Exponent notation is also accepted.\n case ScalarType.DOUBLE:\n case ScalarType.FLOAT:\n if (json === null)\n return .0;\n if (json === \"NaN\")\n return Number.NaN;\n if (json === \"Infinity\")\n return Number.POSITIVE_INFINITY;\n if (json === \"-Infinity\")\n return Number.NEGATIVE_INFINITY;\n if (json === \"\") {\n e = \"empty string\";\n break;\n }\n if (typeof json == \"string\" && json.trim().length !== json.length) {\n e = \"extra whitespace\";\n break;\n }\n if (typeof json != \"string\" && typeof json != \"number\") {\n break;\n }\n let float = Number(json);\n if (Number.isNaN(float)) {\n e = \"not a number\";\n break;\n }\n if (!Number.isFinite(float)) {\n // infinity and -infinity are handled by string representation above, so this is an error\n e = \"too large or small\";\n break;\n }\n if (type == ScalarType.FLOAT)\n assertFloat32(float);\n return float;\n // int32, fixed32, uint32: JSON value will be a decimal number. Either numbers or strings are accepted.\n case ScalarType.INT32:\n case ScalarType.FIXED32:\n case ScalarType.SFIXED32:\n case ScalarType.SINT32:\n case ScalarType.UINT32:\n if (json === null)\n return 0;\n let int32;\n if (typeof json == \"number\")\n int32 = json;\n else if (json === \"\")\n e = \"empty string\";\n else if (typeof json == \"string\") {\n if (json.trim().length !== json.length)\n e = \"extra whitespace\";\n else\n int32 = Number(json);\n }\n if (int32 === undefined)\n break;\n if (type == ScalarType.UINT32)\n assertUInt32(int32);\n else\n assertInt32(int32);\n return int32;\n // int64, fixed64, uint64: JSON value will be a decimal string. Either numbers or strings are accepted.\n case ScalarType.INT64:\n case ScalarType.SFIXED64:\n case ScalarType.SINT64:\n if (json === null)\n return reflectionLongConvert(PbLong.ZERO, longType);\n if (typeof json != \"number\" && typeof json != \"string\")\n break;\n return reflectionLongConvert(PbLong.from(json), longType);\n case ScalarType.FIXED64:\n case ScalarType.UINT64:\n if (json === null)\n return reflectionLongConvert(PbULong.ZERO, longType);\n if (typeof json != \"number\" && typeof json != \"string\")\n break;\n return reflectionLongConvert(PbULong.from(json), longType);\n // bool:\n case ScalarType.BOOL:\n if (json === null)\n return false;\n if (typeof json !== \"boolean\")\n break;\n return json;\n // string:\n case ScalarType.STRING:\n if (json === null)\n return \"\";\n if (typeof json !== \"string\") {\n e = \"extra whitespace\";\n break;\n }\n try {\n encodeURIComponent(json);\n }\n catch (e) {\n e = \"invalid UTF8\";\n break;\n }\n return json;\n // bytes: JSON value will be the data encoded as a string using standard base64 encoding with paddings.\n // Either standard or URL-safe base64 encoding with/without paddings are accepted.\n case ScalarType.BYTES:\n if (json === null || json === \"\")\n return new Uint8Array(0);\n if (typeof json !== 'string')\n break;\n return base64decode(json);\n }\n }\n catch (error) {\n e = error.message;\n }\n this.assert(false, fieldName + (e ? \" - \" + e : \"\"), json);\n }\n}\n","import { base64encode } from \"./base64\";\nimport { PbLong, PbULong } from \"./pb-long\";\nimport { ScalarType } from \"./reflection-info\";\nimport { assert, assertFloat32, assertInt32, assertUInt32 } from \"./assert\";\n/**\n * Writes proto3 messages in canonical JSON format using reflection\n * information.\n *\n * https://developers.google.com/protocol-buffers/docs/proto3#json\n */\nexport class ReflectionJsonWriter {\n constructor(info) {\n var _a;\n this.fields = (_a = info.fields) !== null && _a !== void 0 ? _a : [];\n }\n /**\n * Converts the message to a JSON object, based on the field descriptors.\n */\n write(message, options) {\n const json = {}, source = message;\n for (const field of this.fields) {\n // field is not part of a oneof, simply write as is\n if (!field.oneof) {\n let jsonValue = this.field(field, source[field.localName], options);\n if (jsonValue !== undefined)\n json[options.useProtoFieldName ? field.name : field.jsonName] = jsonValue;\n continue;\n }\n // field is part of a oneof\n const group = source[field.oneof];\n if (group.oneofKind !== field.localName)\n continue; // not selected, skip\n const opt = field.kind == 'scalar' || field.kind == 'enum'\n ? Object.assign(Object.assign({}, options), { emitDefaultValues: true }) : options;\n let jsonValue = this.field(field, group[field.localName], opt);\n assert(jsonValue !== undefined);\n json[options.useProtoFieldName ? field.name : field.jsonName] = jsonValue;\n }\n return json;\n }\n field(field, value, options) {\n let jsonValue = undefined;\n if (field.kind == 'map') {\n assert(typeof value == \"object\" && value !== null);\n const jsonObj = {};\n switch (field.V.kind) {\n case \"scalar\":\n for (const [entryKey, entryValue] of Object.entries(value)) {\n const val = this.scalar(field.V.T, entryValue, field.name, false, true);\n assert(val !== undefined);\n jsonObj[entryKey.toString()] = val; // JSON standard allows only (double quoted) string as property key\n }\n break;\n case \"message\":\n const messageType = field.V.T();\n for (const [entryKey, entryValue] of Object.entries(value)) {\n const val = this.message(messageType, entryValue, field.name, options);\n assert(val !== undefined);\n jsonObj[entryKey.toString()] = val; // JSON standard allows only (double quoted) string as property key\n }\n break;\n case \"enum\":\n const enumInfo = field.V.T();\n for (const [entryKey, entryValue] of Object.entries(value)) {\n assert(entryValue === undefined || typeof entryValue == 'number');\n const val = this.enum(enumInfo, entryValue, field.name, false, true, options.enumAsInteger);\n assert(val !== undefined);\n jsonObj[entryKey.toString()] = val; // JSON standard allows only (double quoted) string as property key\n }\n break;\n }\n if (options.emitDefaultValues || Object.keys(jsonObj).length > 0)\n jsonValue = jsonObj;\n }\n else if (field.repeat) {\n assert(Array.isArray(value));\n const jsonArr = [];\n switch (field.kind) {\n case \"scalar\":\n for (let i = 0; i < value.length; i++) {\n const val = this.scalar(field.T, value[i], field.name, field.opt, true);\n assert(val !== undefined);\n jsonArr.push(val);\n }\n break;\n case \"enum\":\n const enumInfo = field.T();\n for (let i = 0; i < value.length; i++) {\n assert(value[i] === undefined || typeof value[i] == 'number');\n const val = this.enum(enumInfo, value[i], field.name, field.opt, true, options.enumAsInteger);\n assert(val !== undefined);\n jsonArr.push(val);\n }\n break;\n case \"message\":\n const messageType = field.T();\n for (let i = 0; i < value.length; i++) {\n const val = this.message(messageType, value[i], field.name, options);\n assert(val !== undefined);\n jsonArr.push(val);\n }\n break;\n }\n // add converted array to json output\n if (options.emitDefaultValues || jsonArr.length > 0 || options.emitDefaultValues)\n jsonValue = jsonArr;\n }\n else {\n switch (field.kind) {\n case \"scalar\":\n jsonValue = this.scalar(field.T, value, field.name, field.opt, options.emitDefaultValues);\n break;\n case \"enum\":\n jsonValue = this.enum(field.T(), value, field.name, field.opt, options.emitDefaultValues, options.enumAsInteger);\n break;\n case \"message\":\n jsonValue = this.message(field.T(), value, field.name, options);\n break;\n }\n }\n return jsonValue;\n }\n /**\n * Returns `null` as the default for google.protobuf.NullValue.\n */\n enum(type, value, fieldName, optional, emitDefaultValues, enumAsInteger) {\n if (type[0] == 'google.protobuf.NullValue')\n return !emitDefaultValues && !optional ? undefined : null;\n if (value === undefined) {\n assert(optional);\n return undefined;\n }\n if (value === 0 && !emitDefaultValues && !optional)\n // we require 0 to be default value for all enums\n return undefined;\n assert(typeof value == 'number');\n assert(Number.isInteger(value));\n if (enumAsInteger || !type[1].hasOwnProperty(value))\n // if we don't now the enum value, just return the number\n return value;\n if (type[2])\n // restore the dropped prefix\n return type[2] + type[1][value];\n return type[1][value];\n }\n message(type, value, fieldName, options) {\n if (value === undefined)\n return options.emitDefaultValues ? null : undefined;\n return type.internalJsonWrite(value, options);\n }\n scalar(type, value, fieldName, optional, emitDefaultValues) {\n if (value === undefined) {\n assert(optional);\n return undefined;\n }\n const ed = emitDefaultValues || optional;\n // noinspection FallThroughInSwitchStatementJS\n switch (type) {\n // int32, fixed32, uint32: JSON value will be a decimal number. Either numbers or strings are accepted.\n case ScalarType.INT32:\n case ScalarType.SFIXED32:\n case ScalarType.SINT32:\n if (value === 0)\n return ed ? 0 : undefined;\n assertInt32(value);\n return value;\n case ScalarType.FIXED32:\n case ScalarType.UINT32:\n if (value === 0)\n return ed ? 0 : undefined;\n assertUInt32(value);\n return value;\n // float, double: JSON value will be a number or one of the special string values \"NaN\", \"Infinity\", and \"-Infinity\".\n // Either numbers or strings are accepted. Exponent notation is also accepted.\n case ScalarType.FLOAT:\n assertFloat32(value);\n case ScalarType.DOUBLE:\n if (value === 0)\n return ed ? 0 : undefined;\n assert(typeof value == 'number');\n if (Number.isNaN(value))\n return 'NaN';\n if (value === Number.POSITIVE_INFINITY)\n return 'Infinity';\n if (value === Number.NEGATIVE_INFINITY)\n return '-Infinity';\n return value;\n // string:\n case ScalarType.STRING:\n if (value === \"\")\n return ed ? '' : undefined;\n assert(typeof value == 'string');\n return value;\n // bool:\n case ScalarType.BOOL:\n if (value === false)\n return ed ? false : undefined;\n assert(typeof value == 'boolean');\n return value;\n // JSON value will be a decimal string. Either numbers or strings are accepted.\n case ScalarType.UINT64:\n case ScalarType.FIXED64:\n assert(typeof value == 'number' || typeof value == 'string' || typeof value == 'bigint');\n let ulong = PbULong.from(value);\n if (ulong.isZero() && !ed)\n return undefined;\n return ulong.toString();\n // JSON value will be a decimal string. Either numbers or strings are accepted.\n case ScalarType.INT64:\n case ScalarType.SFIXED64:\n case ScalarType.SINT64:\n assert(typeof value == 'number' || typeof value == 'string' || typeof value == 'bigint');\n let long = PbLong.from(value);\n if (long.isZero() && !ed)\n return undefined;\n return long.toString();\n // bytes: JSON value will be the data encoded as a string using standard base64 encoding with paddings.\n // Either standard or URL-safe base64 encoding with/without paddings are accepted.\n case ScalarType.BYTES:\n assert(value instanceof Uint8Array);\n if (!value.byteLength)\n return ed ? \"\" : undefined;\n return base64encode(value);\n }\n }\n}\n","import { LongType, ScalarType } from \"./reflection-info\";\nimport { reflectionLongConvert } from \"./reflection-long-convert\";\nimport { PbLong, PbULong } from \"./pb-long\";\n/**\n * Creates the default value for a scalar type.\n */\nexport function reflectionScalarDefault(type, longType = LongType.STRING) {\n switch (type) {\n case ScalarType.BOOL:\n return false;\n case ScalarType.UINT64:\n case ScalarType.FIXED64:\n return reflectionLongConvert(PbULong.ZERO, longType);\n case ScalarType.INT64:\n case ScalarType.SFIXED64:\n case ScalarType.SINT64:\n return reflectionLongConvert(PbLong.ZERO, longType);\n case ScalarType.DOUBLE:\n case ScalarType.FLOAT:\n return 0.0;\n case ScalarType.BYTES:\n return new Uint8Array(0);\n case ScalarType.STRING:\n return \"\";\n default:\n // case ScalarType.INT32:\n // case ScalarType.UINT32:\n // case ScalarType.SINT32:\n // case ScalarType.FIXED32:\n // case ScalarType.SFIXED32:\n return 0;\n }\n}\n","import { UnknownFieldHandler, WireType } from \"./binary-format-contract\";\nimport { LongType, ScalarType } from \"./reflection-info\";\nimport { reflectionLongConvert } from \"./reflection-long-convert\";\nimport { reflectionScalarDefault } from \"./reflection-scalar-default\";\n/**\n * Reads proto3 messages in binary format using reflection information.\n *\n * https://developers.google.com/protocol-buffers/docs/encoding\n */\nexport class ReflectionBinaryReader {\n constructor(info) {\n this.info = info;\n }\n prepare() {\n var _a;\n if (!this.fieldNoToField) {\n const fieldsInput = (_a = this.info.fields) !== null && _a !== void 0 ? _a : [];\n this.fieldNoToField = new Map(fieldsInput.map(field => [field.no, field]));\n }\n }\n /**\n * Reads a message from binary format into the target message.\n *\n * Repeated fields are appended. Map entries are added, overwriting\n * existing keys.\n *\n * If a message field is already present, it will be merged with the\n * new data.\n */\n read(reader, message, options, length) {\n this.prepare();\n const end = length === undefined ? reader.len : reader.pos + length;\n while (reader.pos < end) {\n // read the tag and find the field\n const [fieldNo, wireType] = reader.tag(), field = this.fieldNoToField.get(fieldNo);\n if (!field) {\n let u = options.readUnknownField;\n if (u == \"throw\")\n throw new Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.info.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.info.typeName, message, fieldNo, wireType, d);\n continue;\n }\n // target object for the field we are reading\n let target = message, repeated = field.repeat, localName = field.localName;\n // if field is member of oneof ADT, use ADT as target\n if (field.oneof) {\n target = target[field.oneof];\n // if other oneof member selected, set new ADT\n if (target.oneofKind !== localName)\n target = message[field.oneof] = {\n oneofKind: localName\n };\n }\n // we have handled oneof above, we just have read the value into `target[localName]`\n switch (field.kind) {\n case \"scalar\":\n case \"enum\":\n let T = field.kind == \"enum\" ? ScalarType.INT32 : field.T;\n let L = field.kind == \"scalar\" ? field.L : undefined;\n if (repeated) {\n let arr = target[localName]; // safe to assume presence of array, oneof cannot contain repeated values\n if (wireType == WireType.LengthDelimited && T != ScalarType.STRING && T != ScalarType.BYTES) {\n let e = reader.uint32() + reader.pos;\n while (reader.pos < e)\n arr.push(this.scalar(reader, T, L));\n }\n else\n arr.push(this.scalar(reader, T, L));\n }\n else\n target[localName] = this.scalar(reader, T, L);\n break;\n case \"message\":\n if (repeated) {\n let arr = target[localName]; // safe to assume presence of array, oneof cannot contain repeated values\n let msg = field.T().internalBinaryRead(reader, reader.uint32(), options);\n arr.push(msg);\n }\n else\n target[localName] = field.T().internalBinaryRead(reader, reader.uint32(), options, target[localName]);\n break;\n case \"map\":\n let [mapKey, mapVal] = this.mapEntry(field, reader, options);\n // safe to assume presence of map object, oneof cannot contain repeated values\n target[localName][mapKey] = mapVal;\n break;\n }\n }\n }\n /**\n * Read a map field, expecting key field = 1, value field = 2\n */\n mapEntry(field, reader, options) {\n let length = reader.uint32();\n let end = reader.pos + length;\n let key = undefined; // javascript only allows number or string for object properties\n let val = undefined;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case 1:\n if (field.K == ScalarType.BOOL)\n key = reader.bool().toString();\n else\n // long types are read as string, number types are okay as number\n key = this.scalar(reader, field.K, LongType.STRING);\n break;\n case 2:\n switch (field.V.kind) {\n case \"scalar\":\n val = this.scalar(reader, field.V.T, field.V.L);\n break;\n case \"enum\":\n val = reader.int32();\n break;\n case \"message\":\n val = field.V.T().internalBinaryRead(reader, reader.uint32(), options);\n break;\n }\n break;\n default:\n throw new Error(`Unknown field ${fieldNo} (wire type ${wireType}) in map entry for ${this.info.typeName}#${field.name}`);\n }\n }\n if (key === undefined) {\n let keyRaw = reflectionScalarDefault(field.K);\n key = field.K == ScalarType.BOOL ? keyRaw.toString() : keyRaw;\n }\n if (val === undefined)\n switch (field.V.kind) {\n case \"scalar\":\n val = reflectionScalarDefault(field.V.T, field.V.L);\n break;\n case \"enum\":\n val = 0;\n break;\n case \"message\":\n val = field.V.T().create();\n break;\n }\n return [key, val];\n }\n scalar(reader, type, longType) {\n switch (type) {\n case ScalarType.INT32:\n return reader.int32();\n case ScalarType.STRING:\n return reader.string();\n case ScalarType.BOOL:\n return reader.bool();\n case ScalarType.DOUBLE:\n return reader.double();\n case ScalarType.FLOAT:\n return reader.float();\n case ScalarType.INT64:\n return reflectionLongConvert(reader.int64(), longType);\n case ScalarType.UINT64:\n return reflectionLongConvert(reader.uint64(), longType);\n case ScalarType.FIXED64:\n return reflectionLongConvert(reader.fixed64(), longType);\n case ScalarType.FIXED32:\n return reader.fixed32();\n case ScalarType.BYTES:\n return reader.bytes();\n case ScalarType.UINT32:\n return reader.uint32();\n case ScalarType.SFIXED32:\n return reader.sfixed32();\n case ScalarType.SFIXED64:\n return reflectionLongConvert(reader.sfixed64(), longType);\n case ScalarType.SINT32:\n return reader.sint32();\n case ScalarType.SINT64:\n return reflectionLongConvert(reader.sint64(), longType);\n }\n }\n}\n","import { UnknownFieldHandler, WireType } from \"./binary-format-contract\";\nimport { RepeatType, ScalarType } from \"./reflection-info\";\nimport { assert } from \"./assert\";\nimport { PbLong, PbULong } from \"./pb-long\";\n/**\n * Writes proto3 messages in binary format using reflection information.\n *\n * https://developers.google.com/protocol-buffers/docs/encoding\n */\nexport class ReflectionBinaryWriter {\n constructor(info) {\n this.info = info;\n }\n prepare() {\n if (!this.fields) {\n const fieldsInput = this.info.fields ? this.info.fields.concat() : [];\n this.fields = fieldsInput.sort((a, b) => a.no - b.no);\n }\n }\n /**\n * Writes the message to binary format.\n */\n write(message, writer, options) {\n this.prepare();\n for (const field of this.fields) {\n let value, // this will be our field value, whether it is member of a oneof or not\n emitDefault, // whether we emit the default value (only true for oneof members)\n repeated = field.repeat, localName = field.localName;\n // handle oneof ADT\n if (field.oneof) {\n const group = message[field.oneof];\n if (group.oneofKind !== localName)\n continue; // if field is not selected, skip\n value = group[localName];\n emitDefault = true;\n }\n else {\n value = message[localName];\n emitDefault = false;\n }\n // we have handled oneof above. we just have to honor `emitDefault`.\n switch (field.kind) {\n case \"scalar\":\n case \"enum\":\n let T = field.kind == \"enum\" ? ScalarType.INT32 : field.T;\n if (repeated) {\n assert(Array.isArray(value));\n if (repeated == RepeatType.PACKED)\n this.packed(writer, T, field.no, value);\n else\n for (const item of value)\n this.scalar(writer, T, field.no, item, true);\n }\n else if (value === undefined)\n assert(field.opt);\n else\n this.scalar(writer, T, field.no, value, emitDefault || field.opt);\n break;\n case \"message\":\n if (repeated) {\n assert(Array.isArray(value));\n for (const item of value)\n this.message(writer, options, field.T(), field.no, item);\n }\n else {\n this.message(writer, options, field.T(), field.no, value);\n }\n break;\n case \"map\":\n assert(typeof value == 'object' && value !== null);\n for (const [key, val] of Object.entries(value))\n this.mapEntry(writer, options, field, key, val);\n break;\n }\n }\n let u = options.writeUnknownFields;\n if (u !== false)\n (u === true ? UnknownFieldHandler.onWrite : u)(this.info.typeName, message, writer);\n }\n mapEntry(writer, options, field, key, value) {\n writer.tag(field.no, WireType.LengthDelimited);\n writer.fork();\n // javascript only allows number or string for object properties\n // we convert from our representation to the protobuf type\n let keyValue = key;\n switch (field.K) {\n case ScalarType.INT32:\n case ScalarType.FIXED32:\n case ScalarType.UINT32:\n case ScalarType.SFIXED32:\n case ScalarType.SINT32:\n keyValue = Number.parseInt(key);\n break;\n case ScalarType.BOOL:\n assert(key == 'true' || key == 'false');\n keyValue = key == 'true';\n break;\n }\n // write key, expecting key field number = 1\n this.scalar(writer, field.K, 1, keyValue, true);\n // write value, expecting value field number = 2\n switch (field.V.kind) {\n case 'scalar':\n this.scalar(writer, field.V.T, 2, value, true);\n break;\n case 'enum':\n this.scalar(writer, ScalarType.INT32, 2, value, true);\n break;\n case 'message':\n this.message(writer, options, field.V.T(), 2, value);\n break;\n }\n writer.join();\n }\n message(writer, options, handler, fieldNo, value) {\n if (value === undefined)\n return;\n handler.internalBinaryWrite(value, writer.tag(fieldNo, WireType.LengthDelimited).fork(), options);\n writer.join();\n }\n /**\n * Write a single scalar value.\n */\n scalar(writer, type, fieldNo, value, emitDefault) {\n let [wireType, method, isDefault] = this.scalarInfo(type, value);\n if (!isDefault || emitDefault) {\n writer.tag(fieldNo, wireType);\n writer[method](value);\n }\n }\n /**\n * Write an array of scalar values in packed format.\n */\n packed(writer, type, fieldNo, value) {\n if (!value.length)\n return;\n assert(type !== ScalarType.BYTES && type !== ScalarType.STRING);\n // write tag\n writer.tag(fieldNo, WireType.LengthDelimited);\n // begin length-delimited\n writer.fork();\n // write values without tags\n let [, method,] = this.scalarInfo(type);\n for (let i = 0; i < value.length; i++)\n writer[method](value[i]);\n // end length delimited\n writer.join();\n }\n /**\n * Get information for writing a scalar value.\n *\n * Returns tuple:\n * [0]: appropriate WireType\n * [1]: name of the appropriate method of IBinaryWriter\n * [2]: whether the given value is a default value\n *\n * If argument `value` is omitted, [2] is always false.\n */\n scalarInfo(type, value) {\n let t = WireType.Varint;\n let m;\n let i = value === undefined;\n let d = value === 0;\n switch (type) {\n case ScalarType.INT32:\n m = \"int32\";\n break;\n case ScalarType.STRING:\n d = i || !value.length;\n t = WireType.LengthDelimited;\n m = \"string\";\n break;\n case ScalarType.BOOL:\n d = value === false;\n m = \"bool\";\n break;\n case ScalarType.UINT32:\n m = \"uint32\";\n break;\n case ScalarType.DOUBLE:\n t = WireType.Bit64;\n m = \"double\";\n break;\n case ScalarType.FLOAT:\n t = WireType.Bit32;\n m = \"float\";\n break;\n case ScalarType.INT64:\n d = i || PbLong.from(value).isZero();\n m = \"int64\";\n break;\n case ScalarType.UINT64:\n d = i || PbULong.from(value).isZero();\n m = \"uint64\";\n break;\n case ScalarType.FIXED64:\n d = i || PbULong.from(value).isZero();\n t = WireType.Bit64;\n m = \"fixed64\";\n break;\n case ScalarType.BYTES:\n d = i || !value.byteLength;\n t = WireType.LengthDelimited;\n m = \"bytes\";\n break;\n case ScalarType.FIXED32:\n t = WireType.Bit32;\n m = \"fixed32\";\n break;\n case ScalarType.SFIXED32:\n t = WireType.Bit32;\n m = \"sfixed32\";\n break;\n case ScalarType.SFIXED64:\n d = i || PbLong.from(value).isZero();\n t = WireType.Bit64;\n m = \"sfixed64\";\n break;\n case ScalarType.SINT32:\n m = \"sint32\";\n break;\n case ScalarType.SINT64:\n d = i || PbLong.from(value).isZero();\n m = \"sint64\";\n break;\n }\n return [t, m, i || d];\n }\n}\n","import { reflectionScalarDefault } from \"./reflection-scalar-default\";\nimport { MESSAGE_TYPE } from './message-type-contract';\n/**\n * Creates an instance of the generic message, using the field\n * information.\n */\nexport function reflectionCreate(type) {\n /**\n * This ternary can be removed in the next major version.\n * The `Object.create()` code path utilizes a new `messagePrototype`\n * property on the `IMessageType` which has this same `MESSAGE_TYPE`\n * non-enumerable property on it. Doing it this way means that we only\n * pay the cost of `Object.defineProperty()` once per `IMessageType`\n * class of once per \"instance\". The falsy code path is only provided\n * for backwards compatibility in cases where the runtime library is\n * updated without also updating the generated code.\n */\n const msg = type.messagePrototype\n ? Object.create(type.messagePrototype)\n : Object.defineProperty({}, MESSAGE_TYPE, { value: type });\n for (let field of type.fields) {\n let name = field.localName;\n if (field.opt)\n continue;\n if (field.oneof)\n msg[field.oneof] = { oneofKind: undefined };\n else if (field.repeat)\n msg[name] = [];\n else\n switch (field.kind) {\n case \"scalar\":\n msg[name] = reflectionScalarDefault(field.T, field.L);\n break;\n case \"enum\":\n // we require 0 to be default value for all enums\n msg[name] = 0;\n break;\n case \"map\":\n msg[name] = {};\n break;\n }\n }\n return msg;\n}\n","/**\n * Copy partial data into the target message.\n *\n * If a singular scalar or enum field is present in the source, it\n * replaces the field in the target.\n *\n * If a singular message field is present in the source, it is merged\n * with the target field by calling mergePartial() of the responsible\n * message type.\n *\n * If a repeated field is present in the source, its values replace\n * all values in the target array, removing extraneous values.\n * Repeated message fields are copied, not merged.\n *\n * If a map field is present in the source, entries are added to the\n * target map, replacing entries with the same key. Entries that only\n * exist in the target remain. Entries with message values are copied,\n * not merged.\n *\n * Note that this function differs from protobuf merge semantics,\n * which appends repeated fields.\n */\nexport function reflectionMergePartial(info, target, source) {\n let fieldValue, // the field value we are working with\n input = source, output; // where we want our field value to go\n for (let field of info.fields) {\n let name = field.localName;\n if (field.oneof) {\n const group = input[field.oneof]; // this is the oneof`s group in the source\n if ((group === null || group === void 0 ? void 0 : group.oneofKind) == undefined) { // the user is free to omit\n continue; // we skip this field, and all other members too\n }\n fieldValue = group[name]; // our value comes from the the oneof group of the source\n output = target[field.oneof]; // and our output is the oneof group of the target\n output.oneofKind = group.oneofKind; // always update discriminator\n if (fieldValue == undefined) {\n delete output[name]; // remove any existing value\n continue; // skip further work on field\n }\n }\n else {\n fieldValue = input[name]; // we are using the source directly\n output = target; // we want our field value to go directly into the target\n if (fieldValue == undefined) {\n continue; // skip further work on field, existing value is used as is\n }\n }\n if (field.repeat)\n output[name].length = fieldValue.length; // resize target array to match source array\n // now we just work with `fieldValue` and `output` to merge the value\n switch (field.kind) {\n case \"scalar\":\n case \"enum\":\n if (field.repeat)\n for (let i = 0; i < fieldValue.length; i++)\n output[name][i] = fieldValue[i]; // not a reference type\n else\n output[name] = fieldValue; // not a reference type\n break;\n case \"message\":\n let T = field.T();\n if (field.repeat)\n for (let i = 0; i < fieldValue.length; i++)\n output[name][i] = T.create(fieldValue[i]);\n else if (output[name] === undefined)\n output[name] = T.create(fieldValue); // nothing to merge with\n else\n T.mergePartial(output[name], fieldValue);\n break;\n case \"map\":\n // Map and repeated fields are simply overwritten, not appended or merged\n switch (field.V.kind) {\n case \"scalar\":\n case \"enum\":\n Object.assign(output[name], fieldValue); // elements are not reference types\n break;\n case \"message\":\n let T = field.V.T();\n for (let k of Object.keys(fieldValue))\n output[name][k] = T.create(fieldValue[k]);\n break;\n }\n break;\n }\n }\n}\n","import { ScalarType } from \"./reflection-info\";\n/**\n * Determines whether two message of the same type have the same field values.\n * Checks for deep equality, traversing repeated fields, oneof groups, maps\n * and messages recursively.\n * Will also return true if both messages are `undefined`.\n */\nexport function reflectionEquals(info, a, b) {\n if (a === b)\n return true;\n if (!a || !b)\n return false;\n for (let field of info.fields) {\n let localName = field.localName;\n let val_a = field.oneof ? a[field.oneof][localName] : a[localName];\n let val_b = field.oneof ? b[field.oneof][localName] : b[localName];\n switch (field.kind) {\n case \"enum\":\n case \"scalar\":\n let t = field.kind == \"enum\" ? ScalarType.INT32 : field.T;\n if (!(field.repeat\n ? repeatedPrimitiveEq(t, val_a, val_b)\n : primitiveEq(t, val_a, val_b)))\n return false;\n break;\n case \"map\":\n if (!(field.V.kind == \"message\"\n ? repeatedMsgEq(field.V.T(), objectValues(val_a), objectValues(val_b))\n : repeatedPrimitiveEq(field.V.kind == \"enum\" ? ScalarType.INT32 : field.V.T, objectValues(val_a), objectValues(val_b))))\n return false;\n break;\n case \"message\":\n let T = field.T();\n if (!(field.repeat\n ? repeatedMsgEq(T, val_a, val_b)\n : T.equals(val_a, val_b)))\n return false;\n break;\n }\n }\n return true;\n}\nconst objectValues = Object.values;\nfunction primitiveEq(type, a, b) {\n if (a === b)\n return true;\n if (type !== ScalarType.BYTES)\n return false;\n let ba = a;\n let bb = b;\n if (ba.length !== bb.length)\n return false;\n for (let i = 0; i < ba.length; i++)\n if (ba[i] != bb[i])\n return false;\n return true;\n}\nfunction repeatedPrimitiveEq(type, a, b) {\n if (a.length !== b.length)\n return false;\n for (let i = 0; i < a.length; i++)\n if (!primitiveEq(type, a[i], b[i]))\n return false;\n return true;\n}\nfunction repeatedMsgEq(type, a, b) {\n if (a.length !== b.length)\n return false;\n for (let i = 0; i < a.length; i++)\n if (!type.equals(a[i], b[i]))\n return false;\n return true;\n}\n","import { MESSAGE_TYPE } from \"./message-type-contract\";\nimport { normalizeFieldInfo } from \"./reflection-info\";\nimport { ReflectionTypeCheck } from \"./reflection-type-check\";\nimport { ReflectionJsonReader } from \"./reflection-json-reader\";\nimport { ReflectionJsonWriter } from \"./reflection-json-writer\";\nimport { ReflectionBinaryReader } from \"./reflection-binary-reader\";\nimport { ReflectionBinaryWriter } from \"./reflection-binary-writer\";\nimport { reflectionCreate } from \"./reflection-create\";\nimport { reflectionMergePartial } from \"./reflection-merge-partial\";\nimport { typeofJsonValue } from \"./json-typings\";\nimport { jsonReadOptions, jsonWriteOptions, } from \"./json-format-contract\";\nimport { reflectionEquals } from \"./reflection-equals\";\nimport { binaryWriteOptions } from \"./binary-writer\";\nimport { binaryReadOptions } from \"./binary-reader\";\nconst baseDescriptors = Object.getOwnPropertyDescriptors(Object.getPrototypeOf({}));\nconst messageTypeDescriptor = baseDescriptors[MESSAGE_TYPE] = {};\n/**\n * This standard message type provides reflection-based\n * operations to work with a message.\n */\nexport class MessageType {\n constructor(name, fields, options) {\n this.defaultCheckDepth = 16;\n this.typeName = name;\n this.fields = fields.map(normalizeFieldInfo);\n this.options = options !== null && options !== void 0 ? options : {};\n messageTypeDescriptor.value = this;\n this.messagePrototype = Object.create(null, baseDescriptors);\n this.refTypeCheck = new ReflectionTypeCheck(this);\n this.refJsonReader = new ReflectionJsonReader(this);\n this.refJsonWriter = new ReflectionJsonWriter(this);\n this.refBinReader = new ReflectionBinaryReader(this);\n this.refBinWriter = new ReflectionBinaryWriter(this);\n }\n create(value) {\n let message = reflectionCreate(this);\n if (value !== undefined) {\n reflectionMergePartial(this, message, value);\n }\n return message;\n }\n /**\n * Clone the message.\n *\n * Unknown fields are discarded.\n */\n clone(message) {\n let copy = this.create();\n reflectionMergePartial(this, copy, message);\n return copy;\n }\n /**\n * Determines whether two message of the same type have the same field values.\n * Checks for deep equality, traversing repeated fields, oneof groups, maps\n * and messages recursively.\n * Will also return true if both messages are `undefined`.\n */\n equals(a, b) {\n return reflectionEquals(this, a, b);\n }\n /**\n * Is the given value assignable to our message type\n * and contains no [excess properties](https://www.typescriptlang.org/docs/handbook/interfaces.html#excess-property-checks)?\n */\n is(arg, depth = this.defaultCheckDepth) {\n return this.refTypeCheck.is(arg, depth, false);\n }\n /**\n * Is the given value assignable to our message type,\n * regardless of [excess properties](https://www.typescriptlang.org/docs/handbook/interfaces.html#excess-property-checks)?\n */\n isAssignable(arg, depth = this.defaultCheckDepth) {\n return this.refTypeCheck.is(arg, depth, true);\n }\n /**\n * Copy partial data into the target message.\n */\n mergePartial(target, source) {\n reflectionMergePartial(this, target, source);\n }\n /**\n * Create a new message from binary format.\n */\n fromBinary(data, options) {\n let opt = binaryReadOptions(options);\n return this.internalBinaryRead(opt.readerFactory(data), data.byteLength, opt);\n }\n /**\n * Read a new message from a JSON value.\n */\n fromJson(json, options) {\n return this.internalJsonRead(json, jsonReadOptions(options));\n }\n /**\n * Read a new message from a JSON string.\n * This is equivalent to `T.fromJson(JSON.parse(json))`.\n */\n fromJsonString(json, options) {\n let value = JSON.parse(json);\n return this.fromJson(value, options);\n }\n /**\n * Write the message to canonical JSON value.\n */\n toJson(message, options) {\n return this.internalJsonWrite(message, jsonWriteOptions(options));\n }\n /**\n * Convert the message to canonical JSON string.\n * This is equivalent to `JSON.stringify(T.toJson(t))`\n */\n toJsonString(message, options) {\n var _a;\n let value = this.toJson(message, options);\n return JSON.stringify(value, null, (_a = options === null || options === void 0 ? void 0 : options.prettySpaces) !== null && _a !== void 0 ? _a : 0);\n }\n /**\n * Write the message to binary format.\n */\n toBinary(message, options) {\n let opt = binaryWriteOptions(options);\n return this.internalBinaryWrite(message, opt.writerFactory(), opt).finish();\n }\n /**\n * This is an internal method. If you just want to read a message from\n * JSON, use `fromJson()` or `fromJsonString()`.\n *\n * Reads JSON value and merges the fields into the target\n * according to protobuf rules. If the target is omitted,\n * a new instance is created first.\n */\n internalJsonRead(json, options, target) {\n if (json !== null && typeof json == \"object\" && !Array.isArray(json)) {\n let message = target !== null && target !== void 0 ? target : this.create();\n this.refJsonReader.read(json, message, options);\n return message;\n }\n throw new Error(`Unable to parse message ${this.typeName} from JSON ${typeofJsonValue(json)}.`);\n }\n /**\n * This is an internal method. If you just want to write a message\n * to JSON, use `toJson()` or `toJsonString().\n *\n * Writes JSON value and returns it.\n */\n internalJsonWrite(message, options) {\n return this.refJsonWriter.write(message, options);\n }\n /**\n * This is an internal method. If you just want to write a message\n * in binary format, use `toBinary()`.\n *\n * Serializes the message in binary format and appends it to the given\n * writer. Returns passed writer.\n */\n internalBinaryWrite(message, writer, options) {\n this.refBinWriter.write(message, writer, options);\n return writer;\n }\n /**\n * This is an internal method. If you just want to read a message from\n * binary data, use `fromBinary()`.\n *\n * Reads data from binary format and merges the fields into\n * the target according to protobuf rules. If the target is\n * omitted, a new instance is created first.\n */\n internalBinaryRead(reader, length, options, target) {\n let message = target !== null && target !== void 0 ? target : this.create();\n this.refBinReader.read(reader, message, options, length);\n return message;\n }\n}\n","// @generated by protobuf-ts 2.9.4\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 ProtoJSON serializer should always use UTC (as indicated by\n * \"Z\") when printing the Timestamp type and a ProtoJSON 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 1970-01-01T00:00:00Z. Must\n * be between -62135596800 and 253402300799 inclusive (which corresponds to\n * 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z).\n *\n * @generated from protobuf field: int64 seconds = 1;\n */\n seconds: bigint;\n /**\n * Non-negative fractions of a second at nanosecond resolution. This field is\n * the nanosecond portion of the duration, not an alternative to seconds.\n * Negative second values with fractions must still have non-negative nanos\n * values that count forward in time. Must be between 0 and 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) * 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.9.4\n// @generated from protobuf file \"identifiers.proto\" (package \"pncp.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\";\n/**\n * Identifier type for conversations.\n * This type encapsulates the conversation ID and the membership of the recipient of the particular message.\n * Membership is restricted to a known set.\n *\n * @generated from protobuf message pncp.v1.ConversationId\n */\nexport interface ConversationId {\n /**\n * @generated from protobuf field: string id = 1;\n */\n id: string;\n /**\n * @generated from protobuf field: pncp.v1.ConversationMembership membership = 2;\n */\n membership: ConversationMembership;\n}\n/**\n * EntityId is a versioned id for any paranet identity.\n *\n * @generated from protobuf message pncp.v1.EntityId\n */\nexport interface EntityId {\n /**\n * A unique ID associated with an entity.\n *\n * @generated from protobuf field: string id = 1;\n */\n id: string;\n /**\n * This is a packed semver version string. We could expand this out, but there is a lot of\n * complexity in semver, it is best to leave it as a string and use a library to parse it internally.\n *\n * @generated from protobuf field: string version = 2;\n */\n version: string;\n}\n/**\n * @generated from protobuf enum pncp.v1.ConversationMembership\n */\nexport enum ConversationMembership {\n /**\n * @generated from protobuf enum value: REQUESTER = 0;\n */\n REQUESTER = 0,\n /**\n * @generated from protobuf enum value: FULFILLER = 1;\n */\n FULFILLER = 1,\n /**\n * @generated from protobuf enum value: OBSERVER = 2;\n */\n OBSERVER = 2\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass ConversationId$Type extends MessageType<ConversationId> {\n constructor() {\n super(\"pncp.v1.ConversationId\", [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"membership\", kind: \"enum\", T: () => [\"pncp.v1.ConversationMembership\", ConversationMembership] }\n ]);\n }\n create(value?: PartialMessage<ConversationId>): ConversationId {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.id = \"\";\n message.membership = 0;\n if (value !== undefined)\n reflectionMergePartial<ConversationId>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ConversationId): ConversationId {\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 id */ 1:\n message.id = reader.string();\n break;\n case /* pncp.v1.ConversationMembership membership */ 2:\n message.membership = 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: ConversationId, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string id = 1; */\n if (message.id !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.id);\n /* pncp.v1.ConversationMembership membership = 2; */\n if (message.membership !== 0)\n writer.tag(2, WireType.Varint).int32(message.membership);\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 pncp.v1.ConversationId\n */\nexport const ConversationId = new ConversationId$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass EntityId$Type extends MessageType<EntityId> {\n constructor() {\n super(\"pncp.v1.EntityId\", [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"version\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<EntityId>): EntityId {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.id = \"\";\n message.version = \"\";\n if (value !== undefined)\n reflectionMergePartial<EntityId>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: EntityId): EntityId {\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 id */ 1:\n message.id = reader.string();\n break;\n case /* string version */ 2:\n message.version = 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: EntityId, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string id = 1; */\n if (message.id !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.id);\n /* string version = 2; */\n if (message.version !== \"\")\n writer.tag(2, WireType.LengthDelimited).string(message.version);\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 pncp.v1.EntityId\n */\nexport const EntityId = new EntityId$Type();\n","// @generated by protobuf-ts 2.9.4\n// @generated from protobuf file \"otonoma/common/value.proto\" (package \"otonoma.common\", 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\";\n/**\n * @generated from protobuf message otonoma.common.Value\n */\nexport interface Value {\n /**\n * @generated from protobuf oneof: kind\n */\n kind: {\n oneofKind: \"nullValue\";\n /**\n * @generated from protobuf field: otonoma.common.NullValue null_value = 1;\n */\n nullValue: NullValue;\n } | {\n oneofKind: \"numberValue\";\n /**\n * @generated from protobuf field: double number_value = 2;\n */\n numberValue: number;\n } | {\n oneofKind: \"negIntValue\";\n /**\n * @generated from protobuf field: int64 neg_int_value = 3;\n */\n negIntValue: bigint;\n } | {\n oneofKind: \"posIntValue\";\n /**\n * @generated from protobuf field: uint64 pos_int_value = 4;\n */\n posIntValue: bigint;\n } | {\n oneofKind: \"stringValue\";\n /**\n * @generated from protobuf field: string string_value = 5;\n */\n stringValue: string;\n } | {\n oneofKind: \"boolValue\";\n /**\n * @generated from protobuf field: bool bool_value = 6;\n */\n boolValue: boolean;\n } | {\n oneofKind: \"structValue\";\n /**\n * @generated from protobuf field: otonoma.common.Struct struct_value = 7;\n */\n structValue: Struct;\n } | {\n oneofKind: \"listValue\";\n /**\n * @generated from protobuf field: otonoma.common.ListValue list_value = 8;\n */\n listValue: ListValue;\n } | {\n oneofKind: undefined;\n };\n}\n/**\n * @generated from protobuf message otonoma.common.Struct\n */\nexport interface Struct {\n /**\n * @generated from protobuf field: map<string, otonoma.common.Value> fields = 1;\n */\n fields: {\n [key: string]: Value;\n };\n}\n/**\n * @generated from protobuf message otonoma.common.ListValue\n */\nexport interface ListValue {\n /**\n * @generated from protobuf field: repeated otonoma.common.Value values = 1;\n */\n values: Value[];\n}\n/**\n * @generated from protobuf enum otonoma.common.NullValue\n */\nexport enum NullValue {\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 Value$Type extends MessageType<Value> {\n constructor() {\n super(\"otonoma.common.Value\", [\n { no: 1, name: \"null_value\", kind: \"enum\", oneof: \"kind\", T: () => [\"otonoma.common.NullValue\", NullValue] },\n { no: 2, name: \"number_value\", kind: \"scalar\", oneof: \"kind\", T: 1 /*ScalarType.DOUBLE*/ },\n { no: 3, name: \"neg_int_value\", kind: \"scalar\", oneof: \"kind\", T: 3 /*ScalarType.INT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 4, name: \"pos_int_value\", kind: \"scalar\", oneof: \"kind\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 5, name: \"string_value\", kind: \"scalar\", oneof: \"kind\", T: 9 /*ScalarType.STRING*/ },\n { no: 6, name: \"bool_value\", kind: \"scalar\", oneof: \"kind\", T: 8 /*ScalarType.BOOL*/ },\n { no: 7, name: \"struct_value\", kind: \"message\", oneof: \"kind\", T: () => Struct },\n { no: 8, name: \"list_value\", kind: \"message\", oneof: \"kind\", T: () => ListValue }\n ]);\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 /* otonoma.common.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 /* int64 neg_int_value */ 3:\n message.kind = {\n oneofKind: \"negIntValue\",\n negIntValue: reader.int64().toBigInt()\n };\n break;\n case /* uint64 pos_int_value */ 4:\n message.kind = {\n oneofKind: \"posIntValue\",\n posIntValue: reader.uint64().toBigInt()\n };\n break;\n case /* string string_value */ 5:\n message.kind = {\n oneofKind: \"stringValue\",\n stringValue: reader.string()\n };\n break;\n case /* bool bool_value */ 6:\n message.kind = {\n oneofKind: \"boolValue\",\n boolValue: reader.bool()\n };\n break;\n case /* otonoma.common.Struct struct_value */ 7:\n message.kind = {\n oneofKind: \"structValue\",\n structValue: Struct.internalBinaryRead(reader, reader.uint32(), options, (message.kind as any).structValue)\n };\n break;\n case /* otonoma.common.ListValue list_value */ 8:\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 /* otonoma.common.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 /* int64 neg_int_value = 3; */\n if (message.kind.oneofKind === \"negIntValue\")\n writer.tag(3, WireType.Varint).int64(message.kind.negIntValue);\n /* uint64 pos_int_value = 4; */\n if (message.kind.oneofKind === \"posIntValue\")\n writer.tag(4, WireType.Varint).uint64(message.kind.posIntValue);\n /* string string_value = 5; */\n if (message.kind.oneofKind === \"stringValue\")\n writer.tag(5, WireType.LengthDelimited).string(message.kind.stringValue);\n /* bool bool_value = 6; */\n if (message.kind.oneofKind === \"boolValue\")\n writer.tag(6, WireType.Varint).bool(message.kind.boolValue);\n /* otonoma.common.Struct struct_value = 7; */\n if (message.kind.oneofKind === \"structValue\")\n Struct.internalBinaryWrite(message.kind.structValue, writer.tag(7, WireType.LengthDelimited).fork(), options).join();\n /* otonoma.common.ListValue list_value = 8; */\n if (message.kind.oneofKind === \"listValue\")\n ListValue.internalBinaryWrite(message.kind.listValue, writer.tag(8, 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 otonoma.common.Value\n */\nexport const Value = new Value$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Struct$Type extends MessageType<Struct> {\n constructor() {\n super(\"otonoma.common.Struct\", [\n { no: 1, name: \"fields\", kind: \"map\", K: 9 /*ScalarType.STRING*/, V: { kind: \"message\", T: () => Value } }\n ]);\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, otonoma.common.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 field otonoma.common.Struct.fields\");\n }\n }\n map[key ?? \"\"] = val ?? Value.create();\n }\n internalBinaryWrite(message: Struct, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* map<string, otonoma.common.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 otonoma.common.Struct\n */\nexport const Struct = new Struct$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ListValue$Type extends MessageType<ListValue> {\n constructor() {\n super(\"otonoma.common.ListValue\", [\n { no: 1, name: \"values\", kind: \"message\", repeat: 1 /*RepeatType.PACKED*/, T: () => Value }\n ]);\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 otonoma.common.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 otonoma.common.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 otonoma.common.ListValue\n */\nexport const ListValue = new ListValue$Type();\n","// @generated by protobuf-ts 2.9.4\n// @generated from protobuf file \"pncp.proto\" (package \"pncp.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 { Timestamp } from \"./google/protobuf/timestamp\";\nimport { EntityId } from \"./identifiers\";\nimport { ConversationId } from \"./identifiers\";\nimport { Value } from \"./otonoma/common/value\";\n/**\n * A core packet comprised of either a request or a message. Some APIs make use of this wrapped type\n * instead of providing specific APIs for either request or messages.\n *\n * @generated from protobuf message pncp.v1.PncpPacket\n */\nexport interface PncpPacket {\n /**\n * @generated from protobuf oneof: body\n */\n body: {\n oneofKind: \"request\";\n /**\n * @generated from protobuf field: pncp.v1.PncpRequest request = 1;\n */\n request: PncpRequest;\n } | {\n oneofKind: \"message\";\n /**\n * @generated from protobuf field: pncp.v1.PncpMessage message = 2;\n */\n message: PncpMessage;\n } | {\n oneofKind: undefined;\n };\n}\n/**\n * A PNCP request begins a conversation between two actors.\n *\n * @generated from protobuf message pncp.v1.PncpRequest\n */\nexport interface PncpRequest {\n /**\n * The core body to the request.\n *\n * @generated from protobuf field: pncp.v1.PncpSkillMessage body = 1;\n */\n body?: PncpSkillMessage;\n /**\n * Callback information provided on subsequent PNCP responses.\n * This is mostly used to associate a request with a response on the actor side.\n *\n * @generated from protobuf field: optional otonoma.common.Value callback = 2;\n */\n callback?: Value;\n /**\n * Parent conversation ID, if this request is a sub request. If this is a new request this field\n * must be left blank.\n *\n * @generated from protobuf field: optional pncp.v1.ConversationId parent_id = 3;\n */\n parentId?: ConversationId;\n /**\n * Identity of the base actor is determined through the provided authentication token on the request.\n * However, paraflow actors are able to run multiple versions of an actor at once and they will be\n * marshalled through the same connection and authentication. As such, we need the actor to provide\n * the author information in such cases.\n *\n * @generated from protobuf field: optional pncp.v1.EntityId author = 4;\n */\n author?: EntityId;\n /**\n * @generated from protobuf field: pncp.v1.SkillMatchStrategy match_strategy = 5;\n */\n matchStrategy: SkillMatchStrategy;\n /**\n * version request spec for the (subject, action) pair. If not provided, the default (typically latest)\n * is used instead.\n *\n * @generated from protobuf field: optional string version_req = 6;\n */\n versionReq?: string;\n /**\n * Optionally specify the exact actor that should match.\n *\n * @generated from protobuf field: optional string target_actor_id = 7;\n */\n targetActorId?: string;\n /**\n * TODO: We might not need these fields anymore. We will see.\n *\n * @generated from protobuf field: optional otonoma.common.Value key = 8;\n */\n key?: Value;\n /**\n * @generated from protobuf field: optional pncp.v1.PncpRequestMediumInfo medium_info = 9;\n */\n mediumInfo?: PncpRequestMediumInfo;\n /**\n * If this is true, a match is required to be made upon the initial request. If it is false, the\n * broker can store the message and conversation in an unmatched state and rematch it at a later\n * time based on later actor availability.\n * If the corresponding skill is a `Broadcast` skill, this field is not considered as they are\n * not matched.\n *\n * @generated from protobuf field: bool must_match = 10;\n */\n mustMatch: boolean;\n /**\n * Specifies whether this request should use the provided actor lock or not.\n *\n * @generated from protobuf field: bool use_lock = 11;\n */\n useLock: boolean;\n}\n/**\n * @generated from protobuf message pncp.v1.PncpRequestMediumInfo\n */\nexport interface PncpRequestMediumInfo {\n /**\n * ID of the medium that made the request.\n *\n * @generated from protobuf field: pncp.v1.EntityId id = 1;\n */\n id?: EntityId;\n /**\n * Unique information identifying the user from the medium.\n *\n * @generated from protobuf field: optional otonoma.common.Value user_info = 2;\n */\n userInfo?: Value;\n}\n/**\n * Represents a skill request message. This message is the core \"body\" of a `PncpRequest`.\n *\n * @generated from protobuf message pncp.v1.PncpSkillMessage\n */\nexport interface PncpSkillMessage {\n /**\n * Subject of the request.\n *\n * @generated from protobuf field: string subject = 1;\n */\n subject: string;\n /**\n * Action associated with the request.\n *\n * @generated from protobuf field: string action = 2;\n */\n action: string;\n /**\n * The request data.\n *\n * @generated from protobuf field: otonoma.common.Value body = 5;\n */\n body?: Value;\n /**\n * Taint data labels\n *\n * @generated from protobuf field: optional string taint = 6;\n */\n taint?: string;\n}\n/**\n * A PNCP Message is a message internal to a conversation. Notably, this does not include requests, which\n * begin a conversation automatically per their request.\n *\n * @generated from protobuf message pncp.v1.PncpMessage\n */\nexport interface PncpMessage {\n /**\n * The ID associated with this message.\n *\n * @generated from protobuf field: pncp.v1.ConversationId id = 1;\n */\n id?: ConversationId;\n /**\n * The kind of message. Certain other fields are only optionally present depending on the value\n * of this field.\n *\n * @generated from protobuf field: pncp.v1.PncpMessageKind kind = 10;\n */\n kind: PncpMessageKind;\n /**\n * The core data of the message.\n *\n * @generated from protobuf field: otonoma.common.Value body = 11;\n */\n body?: Value;\n /**\n * @generated from protobuf oneof: extra\n */\n extra: {\n oneofKind: \"question\";\n /**\n * @generated from protobuf field: pncp.v1.PncpQuestionEx question = 12;\n */\n question: PncpQuestionEx;\n } | {\n oneofKind: \"answer\";\n /**\n * @generated from protobuf field: pncp.v1.PncpAnswerEx answer = 13;\n */\n answer: PncpAnswerEx;\n } | {\n oneofKind: undefined;\n };\n /**\n * Taint data labels\n *\n * @generated from protobuf field: optional string taint = 14;\n */\n taint?: string;\n}\n/**\n * @generated from protobuf message pncp.v1.PncpQuestionEx\n */\nexport interface PncpQuestionEx {\n /**\n * ID of the question.\n *\n * @generated from protobuf field: string id = 1;\n */\n id: string;\n /**\n * @generated from protobuf field: optional otonoma.common.Value callback = 2;\n */\n callback?: Value;\n}\n/**\n * @generated from protobuf message pncp.v1.PncpAnswerEx\n */\nexport interface PncpAnswerEx {\n /**\n * Message ID of the question being replied to.\n *\n * @generated from protobuf field: string reply_to = 1;\n */\n replyTo: string;\n}\n/**\n * Response on the callback is a stream of these messages.\n * The message format is a bit cumbersome as we are required to have one stream of messages.\n *\n * @generated from protobuf message pncp.v1.PncpCallback\n */\nexport interface PncpCallback {\n /**\n * @generated from protobuf oneof: body\n */\n body: {\n oneofKind: \"skill\";\n /**\n * @generated from protobuf field: pncp.v1.PncpRequestCallback skill = 1;\n */\n skill: PncpRequestCallback;\n } | {\n oneofKind: \"message\";\n /**\n * @generated from protobuf field: pncp.v1.PncpMessageCallback message = 2;\n */\n message: PncpMessageCallback;\n } | {\n oneofKind: undefined;\n };\n}\n/**\n * PncpRequestCallback is how skill requests are sent to actors for fulfillment.\n *\n * @generated from protobuf message pncp.v1.PncpRequestCallback\n */\nexport interface PncpRequestCallback {\n /**\n * @generated from protobuf field: pncp.v1.ConversationId id = 1;\n */\n id?: ConversationId;\n /**\n * @generated from protobuf field: string message_id = 2;\n */\n messageId: string;\n /**\n * The core PNCP request body.\n *\n * @generated from protobuf field: pncp.v1.PncpSkillMessage body = 3;\n */\n body?: PncpSkillMessage;\n /**\n * Parent ID of the conversation that triggered this one, if one exists.\n *\n * @generated from protobuf field: optional pncp.v1.ConversationId parent_id = 4;\n */\n parentId?: ConversationId;\n /**\n * Time the conversation was created.\n *\n * @generated from protobuf field: google.protobuf.Timestamp time_created = 5;\n */\n timeCreated?: Timestamp;\n /**\n * Author of the request.\n *\n * @generated from protobuf field: pncp.v1.EntityId author_id = 6;\n */\n authorId?: EntityId;\n /**\n * The actor ID of the receiving actor. This is the reflection of the PncpRequest author field.\n * See notes on PncpRequest.author for why this is necessary.\n *\n * @generated from protobuf field: optional pncp.v1.EntityId target_actor_id = 7;\n */\n targetActorId?: EntityId;\n /**\n * Parameter data. These fields are actor or skill specific metadata populated dynamically\n * by the broker.\n *\n * @generated from protobuf field: pncp.v1.ParameterData parameters = 8;\n */\n parameters?: ParameterData;\n /**\n * @generated from protobuf field: uint32 flags = 9;\n */\n flags: number;\n}\n/**\n * Context flags (default 0)\n *\n * @generated from protobuf enum pncp.v1.PncpRequestCallback.CallbackFlags\n */\nexport enum PncpRequestCallback_CallbackFlags {\n /**\n * @generated from protobuf enum value: FLAG_NONE = 0;\n */\n FLAG_NONE = 0,\n /**\n * privileged actor request\n *\n * @generated from protobuf enum value: FLAG_PRIVILEGED = 1;\n */\n FLAG_PRIVILEGED = 1\n}\n/**\n * A message callback is a callback containing a message sent to an actor.\n * This is how PncpMessages are routed to an actor.\n *\n * @generated from protobuf message pncp.v1.PncpMessageCallback\n */\nexport interface PncpMessageCallback {\n /**\n * @generated from protobuf field: pncp.v1.ConversationId id = 1;\n */\n id?: ConversationId;\n /**\n * @generated from protobuf field: string message_id = 2;\n */\n messageId: string;\n /**\n * @generated from protobuf field: google.protobuf.Timestamp time_created = 3;\n */\n timeCreated?: Timestamp;\n /**\n * Returned key from initial request.\n *\n * @generated from protobuf field: optional otonoma.common.Value key = 4;\n */\n key?: Value;\n /**\n * The core body of the message.\n *\n * @generated from protobuf field: pncp.v1.PncpMessage message = 5;\n */\n message?: PncpMessage;\n /**\n * Certain message types (notably: Question) can provide params.\n *\n * @generated from protobuf field: optional otonoma.common.Value params = 6;\n */\n params?: Value;\n /**\n * Callback provided on the initial message.\n *\n * @generated from protobuf field: optional otonoma.common.Value callback = 7;\n */\n callback?: Value;\n /**\n * TODO: Do we need this?\n *\n * @generated from protobuf field: optional otonoma.common.Value medium = 8;\n */\n medium?: Value;\n /**\n * @generated from protobuf field: pncp.v1.ConversationState conversation_state = 9;\n */\n conversationState: ConversationState;\n}\n/**\n * @generated from protobuf message pncp.v1.ParameterData\n */\nexport interface ParameterData {\n /**\n * @generated from protobuf field: optional otonoma.common.Value provider = 1;\n */\n provider?: Value;\n /**\n * @generated from protobuf field: optional otonoma.common.Value skill = 2;\n */\n skill?: Value;\n /**\n * @generated from protobuf field: optional otonoma.common.Value medium = 3;\n */\n medium?: Value;\n}\n/**\n * Match strategy. Defaults to `BEST`.\n *\n * @generated from protobuf enum pncp.v1.SkillMatchStrategy\n */\nexport enum SkillMatchStrategy {\n /**\n * @generated from protobuf enum value: BEST = 0;\n */\n BEST = 0,\n /**\n * @generated from protobuf enum value: FIRST = 1;\n */\n FIRST = 1,\n /**\n * @generated from protobuf enum value: STRICT = 2;\n */\n STRICT = 2\n}\n// NOTE (JAB, 2024-07-08): Protobuf uses C++ scoping rules for enum variants, meaning the name of the enum\n// does not sub-namespace them and two enums next to each other in the same module have the same scope.\n\n/**\n * @generated from protobuf enum pncp.v1.PncpMessageKind\n */\nexport enum PncpMessageKind {\n /**\n * @generated from protobuf enum value: PNCP_RESPONSE = 0;\n */\n PNCP_RESPONSE = 0,\n /**\n * @generated from protobuf enum value: PNCP_STATUS = 1;\n */\n PNCP_STATUS = 1,\n /**\n * @generated from protobuf enum value: PNCP_CANCEL = 2;\n */\n PNCP_CANCEL = 2,\n /**\n * @generated from protobuf enum value: PNCP_ERROR = 3;\n */\n PNCP_ERROR = 3,\n /**\n * @generated from protobuf enum value: PNCP_QUESTION = 4;\n */\n PNCP_QUESTION = 4,\n /**\n * @generated from protobuf enum value: PNCP_ANSWER = 5;\n */\n PNCP_ANSWER = 5\n}\n// These messages represent messages sent back to the actor from the broker.\n\n/**\n * @generated from protobuf enum pncp.v1.ConversationState\n */\nexport enum ConversationState {\n /**\n * @generated from protobuf enum value: STATE_IN_PROGRESS = 0;\n */\n STATE_IN_PROGRESS = 0,\n /**\n * @generated from protobuf enum value: STATE_COMPLETED = 1;\n */\n STATE_COMPLETED = 1,\n /**\n * @generated from protobuf enum value: STATE_ERRORED = 2;\n */\n STATE_ERRORED = 2,\n /**\n * @generated from protobuf enum value: STATE_CANCELED = 3;\n */\n STATE_CANCELED = 3,\n /**\n * @generated from protobuf enum value: STATE_UNMATCHED = 4;\n */\n STATE_UNMATCHED = 4\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass PncpPacket$Type extends MessageType<PncpPacket> {\n constructor() {\n super(\"pncp.v1.PncpPacket\", [\n { no: 1, name: \"request\", kind: \"message\", oneof: \"body\", T: () => PncpRequest },\n { no: 2, name: \"message\", kind: \"message\", oneof: \"body\", T: () => PncpMessage }\n ]);\n }\n create(value?: PartialMessage<PncpPacket>): PncpPacket {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.body = { oneofKind: undefined };\n if (value !== undefined)\n reflectionMergePartial<PncpPacket>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PncpPacket): PncpPacket {\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 /* pncp.v1.PncpRequest request */ 1:\n message.body = {\n oneofKind: \"request\",\n request: PncpRequest.internalBinaryRead(reader, reader.uint32(), options, (message.body as any).request)\n };\n break;\n case /* pncp.v1.PncpMessage message */ 2:\n message.body = {\n oneofKind: \"message\",\n message: PncpMessage.internalBinaryRead(reader, reader.uint32(), options, (message.body as any).message)\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: PncpPacket, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* pncp.v1.PncpRequest request = 1; */\n if (message.body.oneofKind === \"request\")\n PncpRequest.internalBinaryWrite(message.body.request, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n /* pncp.v1.PncpMessage message = 2; */\n if (message.body.oneofKind === \"message\")\n PncpMessage.internalBinaryWrite(message.body.message, 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 pncp.v1.PncpPacket\n */\nexport const PncpPacket = new PncpPacket$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass PncpRequest$Type extends MessageType<PncpRequest> {\n constructor() {\n super(\"pncp.v1.PncpRequest\", [\n { no: 1, name: \"body\", kind: \"message\", T: () => PncpSkillMessage },\n { no: 2, name: \"callback\", kind: \"message\", T: () => Value },\n { no: 3, name: \"parent_id\", kind: \"message\", T: () => ConversationId },\n { no: 4, name: \"author\", kind: \"message\", T: () => EntityId },\n { no: 5, name: \"match_strategy\", kind: \"enum\", T: () => [\"pncp.v1.SkillMatchStrategy\", SkillMatchStrategy] },\n { no: 6, name: \"version_req\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n { no: 7, name: \"target_actor_id\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n { no: 8, name: \"key\", kind: \"message\", T: () => Value },\n { no: 9, name: \"medium_info\", kind: \"message\", T: () => PncpRequestMediumInfo },\n { no: 10, name: \"must_match\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ },\n { no: 11, name: \"use_lock\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ }\n ]);\n }\n create(value?: PartialMessage<PncpRequest>): PncpRequest {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.matchStrategy = 0;\n message.mustMatch = false;\n message.useLock = false;\n if (value !== undefined)\n reflectionMergePartial<PncpRequest>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PncpRequest): PncpRequest {\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 /* pncp.v1.PncpSkillMessage body */ 1:\n message.body = PncpSkillMessage.internalBinaryRead(reader, reader.uint32(), options, message.body);\n break;\n case /* optional otonoma.common.Value callback */ 2:\n message.callback = Value.internalBinaryRead(reader, reader.uint32(), options, message.callback);\n break;\n case /* optional pncp.v1.ConversationId parent_id */ 3:\n message.parentId = ConversationId.internalBinaryRead(reader, reader.uint32(), options, message.parentId);\n break;\n case /* optional pncp.v1.EntityId author */ 4:\n message.author = EntityId.internalBinaryRead(reader, reader.uint32(), options, message.author);\n break;\n case /* pncp.v1.SkillMatchStrategy match_strategy */ 5:\n message.matchStrategy = reader.int32();\n break;\n case /* optional string version_req */ 6:\n message.versionReq = reader.string();\n break;\n case /* optional string target_actor_id */ 7:\n message.targetActorId = reader.string();\n break;\n case /* optional otonoma.common.Value key */ 8:\n message.key = Value.internalBinaryRead(reader, reader.uint32(), options, message.key);\n break;\n case /* optional pncp.v1.PncpRequestMediumInfo medium_info */ 9:\n message.mediumInfo = PncpRequestMediumInfo.internalBinaryRead(reader, reader.uint32(), options, message.mediumInfo);\n break;\n case /* bool must_match */ 10:\n message.mustMatch = reader.bool();\n break;\n case /* bool use_lock */ 11:\n message.useLock = reader.bool();\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: PncpRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* pncp.v1.PncpSkillMessage body = 1; */\n if (message.body)\n PncpSkillMessage.internalBinaryWrite(message.body, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n /* optional otonoma.common.Value callback = 2; */\n if (message.callback)\n Value.internalBinaryWrite(message.callback, writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n /* optional pncp.v1.ConversationId parent_id = 3; */\n if (message.parentId)\n ConversationId.internalBinaryWrite(message.parentId, writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n /* optional pncp.v1.EntityId author = 4; */\n if (message.author)\n EntityId.internalBinaryWrite(message.author, writer.tag(4, WireType.LengthDelimited).fork(), options).join();\n /* pncp.v1.SkillMatchStrategy match_strategy = 5; */\n if (message.matchStrategy !== 0)\n writer.tag(5, WireType.Varint).int32(message.matchStrategy);\n /* optional string version_req = 6; */\n if (message.versionReq !== undefined)\n writer.tag(6, WireType.LengthDelimited).string(message.versionReq);\n /* optional string target_actor_id = 7; */\n if (message.targetActorId !== undefined)\n writer.tag(7, WireType.LengthDelimited).string(message.targetActorId);\n /* optional otonoma.common.Value key = 8; */\n if (message.key)\n Value.internalBinaryWrite(message.key, writer.tag(8, WireType.LengthDelimited).fork(), options).join();\n /* optional pncp.v1.PncpRequestMediumInfo medium_info = 9; */\n if (message.mediumInfo)\n PncpRequestMediumInfo.internalBinaryWrite(message.mediumInfo, writer.tag(9, WireType.LengthDelimited).fork(), options).join();\n /* bool must_match = 10; */\n if (message.mustMatch !== false)\n writer.tag(10, WireType.Varint).bool(message.mustMatch);\n /* bool use_lock = 11; */\n if (message.useLock !== false)\n writer.tag(11, WireType.Varint).bool(message.useLock);\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 pncp.v1.PncpRequest\n */\nexport const PncpRequest = new PncpRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass PncpRequestMediumInfo$Type extends MessageType<PncpRequestMediumInfo> {\n constructor() {\n super(\"pncp.v1.PncpRequestMediumInfo\", [\n { no: 1, name: \"id\", kind: \"message\", T: () => EntityId },\n { no: 2, name: \"user_info\", kind: \"message\", T: () => Value }\n ]);\n }\n create(value?: PartialMessage<PncpRequestMediumInfo>): PncpRequestMediumInfo {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<PncpRequestMediumInfo>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PncpRequestMediumInfo): PncpRequestMediumInfo {\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 /* pncp.v1.EntityId id */ 1:\n message.id = EntityId.internalBinaryRead(reader, reader.uint32(), options, message.id);\n break;\n case /* optional otonoma.common.Value user_info */ 2:\n message.userInfo = Value.internalBinaryRead(reader, reader.uint32(), options, message.userInfo);\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: PncpRequestMediumInfo, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* pncp.v1.EntityId id = 1; */\n if (message.id)\n EntityId.internalBinaryWrite(message.id, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n /* optional otonoma.common.Value user_info = 2; */\n if (message.userInfo)\n Value.internalBinaryWrite(message.userInfo, 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 pncp.v1.PncpRequestMediumInfo\n */\nexport const PncpRequestMediumInfo = new PncpRequestMediumInfo$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass PncpSkillMessage$Type extends MessageType<PncpSkillMessage> {\n constructor() {\n super(\"pncp.v1.PncpSkillMessage\", [\n { no: 1, name: \"subject\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"action\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 5, name: \"body\", kind: \"message\", T: () => Value },\n { no: 6, name: \"taint\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<PncpSkillMessage>): PncpSkillMessage {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.subject = \"\";\n message.action = \"\";\n if (value !== undefined)\n reflectionMergePartial<PncpSkillMessage>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PncpSkillMessage): PncpSkillMessage {\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 subject */ 1:\n message.subject = reader.string();\n break;\n case /* string action */ 2:\n message.action = reader.string();\n break;\n case /* otonoma.common.Value body */ 5:\n message.body = Value.internalBinaryRead(reader, reader.uint32(), options, message.body);\n break;\n case /* optional string taint */ 6:\n message.taint = 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: PncpSkillMessage, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string subject = 1; */\n if (message.subject !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.subject);\n /* string action = 2; */\n if (message.action !== \"\")\n writer.tag(2, WireType.LengthDelimited).string(message.action);\n /* otonoma.common.Value body = 5; */\n if (message.body)\n Value.internalBinaryWrite(message.body, writer.tag(5, WireType.LengthDelimited).fork(), options).join();\n /* optional string taint = 6; */\n if (message.taint !== undefined)\n writer.tag(6, WireType.LengthDelimited).string(message.taint);\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 pncp.v1.PncpSkillMessage\n */\nexport const PncpSkillMessage = new PncpSkillMessage$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass PncpMessage$Type extends MessageType<PncpMessage> {\n constructor() {\n super(\"pncp.v1.PncpMessage\", [\n { no: 1, name: \"id\", kind: \"message\", T: () => ConversationId },\n { no: 10, name: \"kind\", kind: \"enum\", T: () => [\"pncp.v1.PncpMessageKind\", PncpMessageKind] },\n { no: 11, name: \"body\", kind: \"message\", T: () => Value },\n { no: 12, name: \"question\", kind: \"message\", oneof: \"extra\", T: () => PncpQuestionEx },\n { no: 13, name: \"answer\", kind: \"message\", oneof: \"extra\", T: () => PncpAnswerEx },\n { no: 14, name: \"taint\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<PncpMessage>): PncpMessage {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.kind = 0;\n message.extra = { oneofKind: undefined };\n if (value !== undefined)\n reflectionMergePartial<PncpMessage>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PncpMessage): PncpMessage {\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 /* pncp.v1.ConversationId id */ 1:\n message.id = ConversationId.internalBinaryRead(reader, reader.uint32(), options, message.id);\n break;\n case /* pncp.v1.PncpMessageKind kind */ 10:\n message.kind = reader.int32();\n break;\n case /* otonoma.common.Value body */ 11:\n message.body = Value.internalBinaryRead(reader, reader.uint32(), options, message.body);\n break;\n case /* pncp.v1.PncpQuestionEx question */ 12:\n message.extra = {\n oneofKind: \"question\",\n question: PncpQuestionEx.internalBinaryRead(reader, reader.uint32(), options, (message.extra as any).question)\n };\n break;\n case /* pncp.v1.PncpAnswerEx answer */ 13:\n message.extra = {\n oneofKind: \"answer\",\n answer: PncpAnswerEx.internalBinaryRead(reader, reader.uint32(), options, (message.extra as any).answer)\n };\n break;\n case /* optional string taint */ 14:\n message.taint = 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: PncpMessage, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* pncp.v1.ConversationId id = 1; */\n if (message.id)\n ConversationId.internalBinaryWrite(message.id, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n /* pncp.v1.PncpMessageKind kind = 10; */\n if (message.kind !== 0)\n writer.tag(10, WireType.Varint).int32(message.kind);\n /* otonoma.common.Value body = 11; */\n if (message.body)\n Value.internalBinaryWrite(message.body, writer.tag(11, WireType.LengthDelimited).fork(), options).join();\n /* pncp.v1.PncpQuestionEx question = 12; */\n if (message.extra.oneofKind === \"question\")\n PncpQuestionEx.internalBinaryWrite(message.extra.question, writer.tag(12, WireType.LengthDelimited).fork(), options).join();\n /* pncp.v1.PncpAnswerEx answer = 13; */\n if (message.extra.oneofKind === \"answer\")\n PncpAnswerEx.internalBinaryWrite(message.extra.answer, writer.tag(13, WireType.LengthDelimited).fork(), options).join();\n /* optional string taint = 14; */\n if (message.taint !== undefined)\n writer.tag(14, WireType.LengthDelimited).string(message.taint);\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 pncp.v1.PncpMessage\n */\nexport const PncpMessage = new PncpMessage$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass PncpQuestionEx$Type extends MessageType<PncpQuestionEx> {\n constructor() {\n super(\"pncp.v1.PncpQuestionEx\", [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"callback\", kind: \"message\", T: () => Value }\n ]);\n }\n create(value?: PartialMessage<PncpQuestionEx>): PncpQuestionEx {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.id = \"\";\n if (value !== undefined)\n reflectionMergePartial<PncpQuestionEx>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PncpQuestionEx): PncpQuestionEx {\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 id */ 1:\n message.id = reader.string();\n break;\n case /* optional otonoma.common.Value callback */ 2:\n message.callback = Value.internalBinaryRead(reader, reader.uint32(), options, message.callback);\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: PncpQuestionEx, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string id = 1; */\n if (message.id !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.id);\n /* optional otonoma.common.Value callback = 2; */\n if (message.callback)\n Value.internalBinaryWrite(message.callback, 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 pncp.v1.PncpQuestionEx\n */\nexport const PncpQuestionEx = new PncpQuestionEx$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass PncpAnswerEx$Type extends MessageType<PncpAnswerEx> {\n constructor() {\n super(\"pncp.v1.PncpAnswerEx\", [\n { no: 1, name: \"reply_to\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<PncpAnswerEx>): PncpAnswerEx {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.replyTo = \"\";\n if (value !== undefined)\n reflectionMergePartial<PncpAnswerEx>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PncpAnswerEx): PncpAnswerEx {\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 reply_to */ 1:\n message.replyTo = 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: PncpAnswerEx, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string reply_to = 1; */\n if (message.replyTo !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.replyTo);\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 pncp.v1.PncpAnswerEx\n */\nexport const PncpAnswerEx = new PncpAnswerEx$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass PncpCallback$Type extends MessageType<PncpCallback> {\n constructor() {\n super(\"pncp.v1.PncpCallback\", [\n { no: 1, name: \"skill\", kind: \"message\", oneof: \"body\", T: () => PncpRequestCallback },\n { no: 2, name: \"message\", kind: \"message\", oneof: \"body\", T: () => PncpMessageCallback }\n ]);\n }\n create(value?: PartialMessage<PncpCallback>): PncpCallback {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.body = { oneofKind: undefined };\n if (value !== undefined)\n reflectionMergePartial<PncpCallback>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PncpCallback): PncpCallback {\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 /* pncp.v1.PncpRequestCallback skill */ 1:\n message.body = {\n oneofKind: \"skill\",\n skill: PncpRequestCallback.internalBinaryRead(reader, reader.uint32(), options, (message.body as any).skill)\n };\n break;\n case /* pncp.v1.PncpMessageCallback message */ 2:\n message.body = {\n oneofKind: \"message\",\n message: PncpMessageCallback.internalBinaryRead(reader, reader.uint32(), options, (message.body as any).message)\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: PncpCallback, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* pncp.v1.PncpRequestCallback skill = 1; */\n if (message.body.oneofKind === \"skill\")\n PncpRequestCallback.internalBinaryWrite(message.body.skill, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n /* pncp.v1.PncpMessageCallback message = 2; */\n if (message.body.oneofKind === \"message\")\n PncpMessageCallback.internalBinaryWrite(message.body.message, 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 pncp.v1.PncpCallback\n */\nexport const PncpCallback = new PncpCallback$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass PncpRequestCallback$Type extends MessageType<PncpRequestCallback> {\n constructor() {\n super(\"pncp.v1.PncpRequestCallback\", [\n { no: 1, name: \"id\", kind: \"message\", T: () => ConversationId },\n { no: 2, name: \"message_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 3, name: \"body\", kind: \"message\", T: () => PncpSkillMessage },\n { no: 4, name: \"parent_id\", kind: \"message\", T: () => ConversationId },\n { no: 5, name: \"time_created\", kind: \"message\", T: () => Timestamp },\n { no: 6, name: \"author_id\", kind: \"message\", T: () => EntityId },\n { no: 7, name: \"target_actor_id\", kind: \"message\", T: () => EntityId },\n { no: 8, name: \"parameters\", kind: \"message\", T: () => ParameterData },\n { no: 9, name: \"flags\", kind: \"scalar\", T: 13 /*ScalarType.UINT32*/ }\n ]);\n }\n create(value?: PartialMessage<PncpRequestCallback>): PncpRequestCallback {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.messageId = \"\";\n message.flags = 0;\n if (value !== undefined)\n reflectionMergePartial<PncpRequestCallback>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PncpRequestCallback): PncpRequestCallback {\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 /* pncp.v1.ConversationId id */ 1:\n message.id = ConversationId.internalBinaryRead(reader, reader.uint32(), options, message.id);\n break;\n case /* string message_id */ 2:\n message.messageId = reader.string();\n break;\n case /* pncp.v1.PncpSkillMessage body */ 3:\n message.body = PncpSkillMessage.internalBinaryRead(reader, reader.uint32(), options, message.body);\n break;\n case /* optional pncp.v1.ConversationId parent_id */ 4:\n message.parentId = ConversationId.internalBinaryRead(reader, reader.uint32(), options, message.parentId);\n break;\n case /* google.protobuf.Timestamp time_created */ 5:\n message.timeCreated = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.timeCreated);\n break;\n case /* pncp.v1.EntityId author_id */ 6:\n message.authorId = EntityId.internalBinaryRead(reader, reader.uint32(), options, message.authorId);\n break;\n case /* optional pncp.v1.EntityId target_actor_id */ 7:\n message.targetActorId = EntityId.internalBinaryRead(reader, reader.uint32(), options, message.targetActorId);\n break;\n case /* pncp.v1.ParameterData parameters */ 8:\n message.parameters = ParameterData.internalBinaryRead(reader, reader.uint32(), options, message.parameters);\n break;\n case /* uint32 flags */ 9:\n message.flags = reader.uint32();\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: PncpRequestCallback, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* pncp.v1.ConversationId id = 1; */\n if (message.id)\n ConversationId.internalBinaryWrite(message.id, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n /* string message_id = 2; */\n if (message.messageId !== \"\")\n writer.tag(2, WireType.LengthDelimited).string(message.messageId);\n /* pncp.v1.PncpSkillMessage body = 3; */\n if (message.body)\n PncpSkillMessage.internalBinaryWrite(message.body, writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n /* optional pncp.v1.ConversationId parent_id = 4; */\n if (message.parentId)\n ConversationId.internalBinaryWrite(message.parentId, writer.tag(4, WireType.LengthDelimited).fork(), options).join();\n /* google.protobuf.Timestamp time_created = 5; */\n if (message.timeCreated)\n Timestamp.internalBinaryWrite(message.timeCreated, writer.tag(5, WireType.LengthDelimited).fork(), options).join();\n /* pncp.v1.EntityId author_id = 6; */\n if (message.authorId)\n EntityId.internalBinaryWrite(message.authorId, writer.tag(6, WireType.LengthDelimited).fork(), options).join();\n /* optional pncp.v1.EntityId target_actor_id = 7; */\n if (message.targetActorId)\n EntityId.internalBinaryWrite(message.targetActorId, writer.tag(7, WireType.LengthDelimited).fork(), options).join();\n /* pncp.v1.ParameterData parameters = 8; */\n if (message.parameters)\n ParameterData.internalBinaryWrite(message.parameters, writer.tag(8, WireType.LengthDelimited).fork(), options).join();\n /* uint32 flags = 9; */\n if (message.flags !== 0)\n writer.tag(9, WireType.Varint).uint32(message.flags);\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 pncp.v1.PncpRequestCallback\n */\nexport const PncpRequestCallback = new PncpRequestCallback$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass PncpMessageCallback$Type extends MessageType<PncpMessageCallback> {\n constructor() {\n super(\"pncp.v1.PncpMessageCallback\", [\n { no: 1, name: \"id\", kind: \"message\", T: () => ConversationId },\n { no: 2, name: \"message_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 3, name: \"time_created\", kind: \"message\", T: () => Timestamp },\n { no: 4, name: \"key\", kind: \"message\", T: () => Value },\n { no: 5, name: \"message\", kind: \"message\", T: () => PncpMessage },\n { no: 6, name: \"params\", kind: \"message\", T: () => Value },\n { no: 7, name: \"callback\", kind: \"message\", T: () => Value },\n { no: 8, name: \"medium\", kind: \"message\", T: () => Value },\n { no: 9, name: \"conversation_state\", kind: \"enum\", T: () => [\"pncp.v1.ConversationState\", ConversationState] }\n ]);\n }\n create(value?: PartialMessage<PncpMessageCallback>): PncpMessageCallback {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.messageId = \"\";\n message.conversationState = 0;\n if (value !== undefined)\n reflectionMergePartial<PncpMessageCallback>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PncpMessageCallback): PncpMessageCallback {\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 /* pncp.v1.ConversationId id */ 1:\n message.id = ConversationId.internalBinaryRead(reader, reader.uint32(), options, message.id);\n break;\n case /* string message_id */ 2:\n message.messageId = reader.string();\n break;\n case /* google.protobuf.Timestamp time_created */ 3:\n message.timeCreated = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.timeCreated);\n break;\n case /* optional otonoma.common.Value key */ 4:\n message.key = Value.internalBinaryRead(reader, reader.uint32(), options, message.key);\n break;\n case /* pncp.v1.PncpMessage message */ 5:\n message.message = PncpMessage.internalBinaryRead(reader, reader.uint32(), options, message.message);\n break;\n case /* optional otonoma.common.Value params */ 6:\n message.params = Value.internalBinaryRead(reader, reader.uint32(), options, message.params);\n break;\n case /* optional otonoma.common.Value callback */ 7:\n message.callback = Value.internalBinaryRead(reader, reader.uint32(), options, message.callback);\n break;\n case /* optional otonoma.common.Value medium */ 8:\n message.medium = Value.internalBinaryRead(reader, reader.uint32(), options, message.medium);\n break;\n case /* pncp.v1.ConversationState conversation_state */ 9:\n message.conversationState = 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: PncpMessageCallback, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* pncp.v1.ConversationId id = 1; */\n if (message.id)\n ConversationId.internalBinaryWrite(message.id, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n /* string message_id = 2; */\n if (message.messageId !== \"\")\n writer.tag(2, WireType.LengthDelimited).string(message.messageId);\n /* google.protobuf.Timestamp time_created = 3; */\n if (message.timeCreated)\n Timestamp.internalBinaryWrite(message.timeCreated, writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n /* optional otonoma.common.Value key = 4; */\n if (message.key)\n Value.internalBinaryWrite(message.key, writer.tag(4, WireType.LengthDelimited).fork(), options).join();\n /* pncp.v1.PncpMessage message = 5; */\n if (message.message)\n PncpMessage.internalBinaryWrite(message.message, writer.tag(5, WireType.LengthDelimited).fork(), options).join();\n /* optional otonoma.common.Value params = 6; */\n if (message.params)\n Value.internalBinaryWrite(message.params, writer.tag(6, WireType.LengthDelimited).fork(), options).join();\n /* optional otonoma.common.Value callback = 7; */\n if (message.callback)\n Value.internalBinaryWrite(message.callback, writer.tag(7, WireType.LengthDelimited).fork(), options).join();\n /* optional otonoma.common.Value medium = 8; */\n if (message.medium)\n Value.internalBinaryWrite(message.medium, writer.tag(8, WireType.LengthDelimited).fork(), options).join();\n /* pncp.v1.ConversationState conversation_state = 9; */\n if (message.conversationState !== 0)\n writer.tag(9, WireType.Varint).int32(message.conversationState);\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 pncp.v1.PncpMessageCallback\n */\nexport const PncpMessageCallback = new PncpMessageCallback$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ParameterData$Type extends MessageType<ParameterData> {\n constructor() {\n super(\"pncp.v1.ParameterData\", [\n { no: 1, name: \"provider\", kind: \"message\", T: () => Value },\n { no: 2, name: \"skill\", kind: \"message\", T: () => Value },\n { no: 3, name: \"medium\", kind: \"message\", T: () => Value }\n ]);\n }\n create(value?: PartialMessage<ParameterData>): ParameterData {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ParameterData>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ParameterData): ParameterData {\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 /* optional otonoma.common.Value provider */ 1:\n message.provider = Value.internalBinaryRead(reader, reader.uint32(), options, message.provider);\n break;\n case /* optional otonoma.common.Value skill */ 2:\n message.skill = Value.internalBinaryRead(reader, reader.uint32(), options, message.skill);\n break;\n case /* optional otonoma.common.Value medium */ 3:\n message.medium = Value.internalBinaryRead(reader, reader.uint32(), options, message.medium);\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: ParameterData, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* optional otonoma.common.Value provider = 1; */\n if (message.provider)\n Value.internalBinaryWrite(message.provider, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n /* optional otonoma.common.Value skill = 2; */\n if (message.skill)\n Value.internalBinaryWrite(message.skill, writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n /* optional otonoma.common.Value medium = 3; */\n if (message.medium)\n Value.internalBinaryWrite(message.medium, writer.tag(3, 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 pncp.v1.ParameterData\n */\nexport const ParameterData = new ParameterData$Type();\n","// @generated by protobuf-ts 2.9.4\n// @generated from protobuf file \"mediums.proto\" (package \"pncp.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 { PncpMessage } from \"./pncp\";\nimport { Value } from \"./otonoma/common/value\";\nimport { ConversationId } from \"./identifiers\";\n/**\n * @generated from protobuf message pncp.v1.KeyOrId\n */\nexport interface KeyOrId {\n /**\n * @generated from protobuf oneof: body\n */\n body: {\n oneofKind: \"id\";\n /**\n * @generated from protobuf field: pncp.v1.ConversationId id = 1;\n */\n id: ConversationId;\n } | {\n oneofKind: \"key\";\n /**\n * @generated from protobuf field: otonoma.common.Value key = 2;\n */\n key: Value;\n } | {\n oneofKind: undefined;\n };\n}\n/**\n * A PNCP message received from a medium.\n *\n * @generated from protobuf message pncp.v1.PncpMediumMessage\n */\nexport interface PncpMediumMessage {\n /**\n * @generated from protobuf field: pncp.v1.KeyOrId conversation = 1;\n */\n conversation?: KeyOrId;\n /**\n * The id field in this case can be empty.\n *\n * @generated from protobuf field: pncp.v1.PncpMessage pncp = 2;\n */\n pncp?: PncpMessage;\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass KeyOrId$Type extends MessageType<KeyOrId> {\n constructor() {\n super(\"pncp.v1.KeyOrId\", [\n { no: 1, name: \"id\", kind: \"message\", oneof: \"body\", T: () => ConversationId },\n { no: 2, name: \"key\", kind: \"message\", oneof: \"body\", T: () => Value }\n ]);\n }\n create(value?: PartialMessage<KeyOrId>): KeyOrId {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.body = { oneofKind: undefined };\n if (value !== undefined)\n reflectionMergePartial<KeyOrId>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: KeyOrId): KeyOrId {\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 /* pncp.v1.ConversationId id */ 1:\n message.body = {\n oneofKind: \"id\",\n id: ConversationId.internalBinaryRead(reader, reader.uint32(), options, (message.body as any).id)\n };\n break;\n case /* otonoma.common.Value key */ 2:\n message.body = {\n oneofKind: \"key\",\n key: Value.internalBinaryRead(reader, reader.uint32(), options, (message.body as any).key)\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: KeyOrId, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* pncp.v1.ConversationId id = 1; */\n if (message.body.oneofKind === \"id\")\n ConversationId.internalBinaryWrite(message.body.id, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n /* otonoma.common.Value key = 2; */\n if (message.body.oneofKind === \"key\")\n Value.internalBinaryWrite(message.body.key, 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 pncp.v1.KeyOrId\n */\nexport const KeyOrId = new KeyOrId$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass PncpMediumMessage$Type extends MessageType<PncpMediumMessage> {\n constructor() {\n super(\"pncp.v1.PncpMediumMessage\", [\n { no: 1, name: \"conversation\", kind: \"message\", T: () => KeyOrId },\n { no: 2, name: \"pncp\", kind: \"message\", T: () => PncpMessage }\n ]);\n }\n create(value?: PartialMessage<PncpMediumMessage>): PncpMediumMessage {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<PncpMediumMessage>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PncpMediumMessage): PncpMediumMessage {\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 /* pncp.v1.KeyOrId conversation */ 1:\n message.conversation = KeyOrId.internalBinaryRead(reader, reader.uint32(), options, message.conversation);\n break;\n case /* pncp.v1.PncpMessage pncp */ 2:\n message.pncp = PncpMessage.internalBinaryRead(reader, reader.uint32(), options, message.pncp);\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: PncpMediumMessage, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* pncp.v1.KeyOrId conversation = 1; */\n if (message.conversation)\n KeyOrId.internalBinaryWrite(message.conversation, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n /* pncp.v1.PncpMessage pncp = 2; */\n if (message.pncp)\n PncpMessage.internalBinaryWrite(message.pncp, 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 pncp.v1.PncpMediumMessage\n */\nexport const PncpMediumMessage = new PncpMediumMessage$Type();\n","// @generated by protobuf-ts 2.9.4\n// @generated from protobuf file \"broker_api.proto\" (package \"pncp.v1\", syntax proto3)\n// tslint:disable\n//\n// TODO: Rename this file.\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 { MessageType } from \"@protobuf-ts/runtime\";\nimport { PncpPacket } from \"./pncp\";\nimport { EntityId } from \"./identifiers\";\nimport { ConversationState } from \"./pncp\";\nimport { Timestamp } from \"./google/protobuf/timestamp\";\nimport { ConversationId } from \"./identifiers\";\n/**\n * Response generated from the paranet in response to direct requests.\n *\n * @generated from protobuf message pncp.v1.MessageResponse\n */\nexport interface MessageResponse {\n /**\n * @generated from protobuf field: pncp.v1.ConversationId id = 1;\n */\n id?: ConversationId;\n /**\n * @generated from protobuf field: string message_id = 2;\n */\n messageId: string;\n /**\n * @generated from protobuf field: google.protobuf.Timestamp time_created = 3;\n */\n timeCreated?: Timestamp;\n /**\n * / Current state of the conversation after this request was made.\n *\n * @generated from protobuf field: pncp.v1.ConversationState state = 4;\n */\n state: ConversationState;\n /**\n * Information on what happened with the message.\n *\n * @generated from protobuf field: pncp.v1.ResponseKind kind = 5;\n */\n kind: ResponseKind;\n /**\n * Id of the actor that was matched to, if the message was routed to an actor.\n * Only optional for BROADCAST kind.\n *\n * @generated from protobuf field: optional pncp.v1.EntityId matched_id = 6;\n */\n matchedId?: EntityId;\n}\n// Callback messages.\n\n/**\n * Currently no inputs are required. This may change in the future.\n *\n * @generated from protobuf message pncp.v1.PncpCallbackRequest\n */\nexport interface PncpCallbackRequest {\n /**\n * If this is true, skill forwarding will not be checked when this actor connects.\n *\n * @generated from protobuf field: bool disable_skill_forwarding = 1;\n */\n disableSkillForwarding: boolean;\n /**\n * If this is true, open messages to this actor will be sent through the channel again.\n *\n * @generated from protobuf field: bool send_open_messages = 2;\n */\n sendOpenMessages: boolean;\n /**\n * List of actor IDs that we want to receive messages for on this connection.\n * If this is empty, the default is only the actor associated with this user.\n *\n * @generated from protobuf field: repeated string actor_ids = 3;\n */\n actorIds: string[];\n}\n// Login messages.\n\n/**\n * @generated from protobuf message pncp.v1.LoginRequest\n */\nexport interface LoginRequest {\n /**\n * @generated from protobuf field: string actor_id = 1;\n */\n actorId: string;\n /**\n * @generated from protobuf oneof: secret\n */\n secret: {\n oneofKind: \"password\";\n /**\n * @generated from protobuf field: string password = 2;\n */\n password: string;\n } | {\n oneofKind: \"token\";\n /**\n * @generated from protobuf field: string token = 3;\n */\n token: string;\n } | {\n oneofKind: \"jwt\";\n /**\n * @generated from protobuf field: string jwt = 4;\n */\n jwt: string;\n } | {\n oneofKind: undefined;\n };\n}\n/**\n * @generated from protobuf message pncp.v1.RefreshTokenRequest\n */\nexport interface RefreshTokenRequest {\n /**\n * @generated from protobuf field: string token = 1;\n */\n token: string;\n /**\n * @generated from protobuf field: string refresh_token = 2;\n */\n refreshToken: string;\n}\n/**\n * @generated from protobuf message pncp.v1.LoginResponse\n */\nexport interface LoginResponse {\n /**\n * Paranet token, must be provided on every request in the authorization header.\n *\n * @generated from protobuf field: string token = 1;\n */\n token: string;\n /**\n * Refresh token, usable to automatically regenerate a login token.\n *\n * @generated from protobuf field: string refresh_token = 2;\n */\n refreshToken: string;\n}\n// Cross domain messages.\n\n/**\n * @generated from protobuf message pncp.v1.CrossDomainMessage\n */\nexport interface CrossDomainMessage {\n /**\n * The originating conversation ID.\n *\n * @generated from protobuf field: pncp.v1.ConversationId id = 1;\n */\n id?: ConversationId;\n /**\n * @generated from protobuf field: pncp.v1.EntityId author = 2;\n */\n author?: EntityId;\n /**\n * Pncp skill request or message.\n *\n * @generated from protobuf field: pncp.v1.PncpPacket body = 3;\n */\n body?: PncpPacket;\n}\n/**\n * @generated from protobuf message pncp.v1.CrossDomainResponse\n */\nexport interface CrossDomainResponse {\n /**\n * The originating conversation ID.\n *\n * @generated from protobuf field: pncp.v1.ConversationId id = 1;\n */\n id?: ConversationId;\n /**\n * @generated from protobuf oneof: body\n */\n body: {\n oneofKind: \"response\";\n /**\n * The response generated from the request.\n *\n * @generated from protobuf field: pncp.v1.MessageResponse response = 2;\n */\n response: MessageResponse;\n } | {\n oneofKind: \"error\";\n /**\n * @generated from protobuf field: string error = 3;\n */\n error: string;\n } | {\n oneofKind: undefined;\n };\n}\n/**\n * @generated from protobuf message pncp.v1.CrossDomainStreamMessage\n */\nexport interface CrossDomainStreamMessage {\n /**\n * @generated from protobuf oneof: body\n */\n body: {\n oneofKind: \"msg\";\n /**\n * @generated from protobuf field: pncp.v1.CrossDomainMessage msg = 1;\n */\n msg: CrossDomainMessage;\n } | {\n oneofKind: \"federationSync\";\n /**\n * @generated from protobuf field: pncp.v1.CrossDomainFederationSync federation_sync = 2;\n */\n federationSync: CrossDomainFederationSync;\n } | {\n oneofKind: undefined;\n };\n}\n/**\n * Message which indicates a cross domain sync should be started by the child node.\n *\n * @generated from protobuf message pncp.v1.CrossDomainFederationSync\n */\nexport interface CrossDomainFederationSync {\n}\n/**\n * @generated from protobuf enum pncp.v1.ResponseKind\n */\nexport enum ResponseKind {\n /**\n * @generated from protobuf enum value: MATCH = 0;\n */\n MATCH = 0,\n /**\n * @generated from protobuf enum value: BROADCAST = 1;\n */\n BROADCAST = 1,\n /**\n * @generated from protobuf enum value: DATA = 2;\n */\n DATA = 2,\n /**\n * @generated from protobuf enum value: UNMATCHED = 3;\n */\n UNMATCHED = 3\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass MessageResponse$Type extends MessageType<MessageResponse> {\n constructor() {\n super(\"pncp.v1.MessageResponse\", [\n { no: 1, name: \"id\", kind: \"message\", T: () => ConversationId },\n { no: 2, name: \"message_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 3, name: \"time_created\", kind: \"message\", T: () => Timestamp },\n { no: 4, name: \"state\", kind: \"enum\", T: () => [\"pncp.v1.ConversationState\", ConversationState] },\n { no: 5, name: \"kind\", kind: \"enum\", T: () => [\"pncp.v1.ResponseKind\", ResponseKind] },\n { no: 6, name: \"matched_id\", kind: \"message\", T: () => EntityId }\n ]);\n }\n create(value?: PartialMessage<MessageResponse>): MessageResponse {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.messageId = \"\";\n message.state = 0;\n message.kind = 0;\n if (value !== undefined)\n reflectionMergePartial<MessageResponse>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MessageResponse): MessageResponse {\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 /* pncp.v1.ConversationId id */ 1:\n message.id = ConversationId.internalBinaryRead(reader, reader.uint32(), options, message.id);\n break;\n case /* string message_id */ 2:\n message.messageId = reader.string();\n break;\n case /* google.protobuf.Timestamp time_created */ 3:\n message.timeCreated = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.timeCreated);\n break;\n case /* pncp.v1.ConversationState state */ 4:\n message.state = reader.int32();\n break;\n case /* pncp.v1.ResponseKind kind */ 5:\n message.kind = reader.int32();\n break;\n case /* optional pncp.v1.EntityId matched_id */ 6:\n message.matchedId = EntityId.internalBinaryRead(reader, reader.uint32(), options, message.matchedId);\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: MessageResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* pncp.v1.ConversationId id = 1; */\n if (message.id)\n ConversationId.internalBinaryWrite(message.id, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n /* string message_id = 2; */\n if (message.messageId !== \"\")\n writer.tag(2, WireType.LengthDelimited).string(message.messageId);\n /* google.protobuf.Timestamp time_created = 3; */\n if (message.timeCreated)\n Timestamp.internalBinaryWrite(message.timeCreated, writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n /* pncp.v1.ConversationState state = 4; */\n if (message.state !== 0)\n writer.tag(4, WireType.Varint).int32(message.state);\n /* pncp.v1.ResponseKind kind = 5; */\n if (message.kind !== 0)\n writer.tag(5, WireType.Varint).int32(message.kind);\n /* optional pncp.v1.EntityId matched_id = 6; */\n if (message.matchedId)\n EntityId.internalBinaryWrite(message.matchedId, 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 pncp.v1.MessageResponse\n */\nexport const MessageResponse = new MessageResponse$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass PncpCallbackRequest$Type extends MessageType<PncpCallbackRequest> {\n constructor() {\n super(\"pncp.v1.PncpCallbackRequest\", [\n { no: 1, name: \"disable_skill_forwarding\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ },\n { no: 2, name: \"send_open_messages\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ },\n { no: 3, name: \"actor_ids\", kind: \"scalar\", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<PncpCallbackRequest>): PncpCallbackRequest {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.disableSkillForwarding = false;\n message.sendOpenMessages = false;\n message.actorIds = [];\n if (value !== undefined)\n reflectionMergePartial<PncpCallbackRequest>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PncpCallbackRequest): PncpCallbackRequest {\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 /* bool disable_skill_forwarding */ 1:\n message.disableSkillForwarding = reader.bool();\n break;\n case /* bool send_open_messages */ 2:\n message.sendOpenMessages = reader.bool();\n break;\n case /* repeated string actor_ids */ 3:\n message.actorIds.push(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: PncpCallbackRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* bool disable_skill_forwarding = 1; */\n if (message.disableSkillForwarding !== false)\n writer.tag(1, WireType.Varint).bool(message.disableSkillForwarding);\n /* bool send_open_messages = 2; */\n if (message.sendOpenMessages !== false)\n writer.tag(2, WireType.Varint).bool(message.sendOpenMessages);\n /* repeated string actor_ids = 3; */\n for (let i = 0; i < message.actorIds.length; i++)\n writer.tag(3, WireType.LengthDelimited).string(message.actorIds[i]);\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 pncp.v1.PncpCallbackRequest\n */\nexport const PncpCallbackRequest = new PncpCallbackRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass LoginRequest$Type extends MessageType<LoginRequest> {\n constructor() {\n super(\"pncp.v1.LoginRequest\", [\n { no: 1, name: \"actor_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"password\", kind: \"scalar\", oneof: \"secret\", T: 9 /*ScalarType.STRING*/ },\n { no: 3, name: \"token\", kind: \"scalar\", oneof: \"secret\", T: 9 /*ScalarType.STRING*/ },\n { no: 4, name: \"jwt\", kind: \"scalar\", oneof: \"secret\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<LoginRequest>): LoginRequest {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.actorId = \"\";\n message.secret = { oneofKind: undefined };\n if (value !== undefined)\n reflectionMergePartial<LoginRequest>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: LoginRequest): LoginRequest {\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 actor_id */ 1:\n message.actorId = reader.string();\n break;\n case /* string password */ 2:\n message.secret = {\n oneofKind: \"password\",\n password: reader.string()\n };\n break;\n case /* string token */ 3:\n message.secret = {\n oneofKind: \"token\",\n token: reader.string()\n };\n break;\n case /* string jwt */ 4:\n message.secret = {\n oneofKind: \"jwt\",\n jwt: reader.string()\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: LoginRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string actor_id = 1; */\n if (message.actorId !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.actorId);\n /* string password = 2; */\n if (message.secret.oneofKind === \"password\")\n writer.tag(2, WireType.LengthDelimited).string(message.secret.password);\n /* string token = 3; */\n if (message.secret.oneofKind === \"token\")\n writer.tag(3, WireType.LengthDelimited).string(message.secret.token);\n /* string jwt = 4; */\n if (message.secret.oneofKind === \"jwt\")\n writer.tag(4, WireType.LengthDelimited).string(message.secret.jwt);\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 pncp.v1.LoginRequest\n */\nexport const LoginRequest = new LoginRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass RefreshTokenRequest$Type extends MessageType<RefreshTokenRequest> {\n constructor() {\n super(\"pncp.v1.RefreshTokenRequest\", [\n { no: 1, name: \"token\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"refresh_token\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<RefreshTokenRequest>): RefreshTokenRequest {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.token = \"\";\n message.refreshToken = \"\";\n if (value !== undefined)\n reflectionMergePartial<RefreshTokenRequest>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RefreshTokenRequest): RefreshTokenRequest {\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 token */ 1:\n message.token = reader.string();\n break;\n case /* string refresh_token */ 2:\n message.refreshToken = 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: RefreshTokenRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string token = 1; */\n if (message.token !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.token);\n /* string refresh_token = 2; */\n if (message.refreshToken !== \"\")\n writer.tag(2, WireType.LengthDelimited).string(message.refreshToken);\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 pncp.v1.RefreshTokenRequest\n */\nexport const RefreshTokenRequest = new RefreshTokenRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass LoginResponse$Type extends MessageType<LoginResponse> {\n constructor() {\n super(\"pncp.v1.LoginResponse\", [\n { no: 1, name: \"token\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"refresh_token\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<LoginResponse>): LoginResponse {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.token = \"\";\n message.refreshToken = \"\";\n if (value !== undefined)\n reflectionMergePartial<LoginResponse>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: LoginResponse): LoginResponse {\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 token */ 1:\n message.token = reader.string();\n break;\n case /* string refresh_token */ 2:\n message.refreshToken = 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: LoginResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string token = 1; */\n if (message.token !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.token);\n /* string refresh_token = 2; */\n if (message.refreshToken !== \"\")\n writer.tag(2, WireType.LengthDelimited).string(message.refreshToken);\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 pncp.v1.LoginResponse\n */\nexport const LoginResponse = new LoginResponse$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass CrossDomainMessage$Type extends MessageType<CrossDomainMessage> {\n constructor() {\n super(\"pncp.v1.CrossDomainMessage\", [\n { no: 1, name: \"id\", kind: \"message\", T: () => ConversationId },\n { no: 2, name: \"author\", kind: \"message\", T: () => EntityId },\n { no: 3, name: \"body\", kind: \"message\", T: () => PncpPacket }\n ]);\n }\n create(value?: PartialMessage<CrossDomainMessage>): CrossDomainMessage {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<CrossDomainMessage>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CrossDomainMessage): CrossDomainMessage {\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 /* pncp.v1.ConversationId id */ 1:\n message.id = ConversationId.internalBinaryRead(reader, reader.uint32(), options, message.id);\n break;\n case /* pncp.v1.EntityId author */ 2:\n message.author = EntityId.internalBinaryRead(reader, reader.uint32(), options, message.author);\n break;\n case /* pncp.v1.PncpPacket body */ 3:\n message.body = PncpPacket.internalBinaryRead(reader, reader.uint32(), options, message.body);\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: CrossDomainMessage, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* pncp.v1.ConversationId id = 1; */\n if (message.id)\n ConversationId.internalBinaryWrite(message.id, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n /* pncp.v1.EntityId author = 2; */\n if (message.author)\n EntityId.internalBinaryWrite(message.author, writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n /* pncp.v1.PncpPacket body = 3; */\n if (message.body)\n PncpPacket.internalBinaryWrite(message.body, writer.tag(3, 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 pncp.v1.CrossDomainMessage\n */\nexport const CrossDomainMessage = new CrossDomainMessage$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass CrossDomainResponse$Type extends MessageType<CrossDomainResponse> {\n constructor() {\n super(\"pncp.v1.CrossDomainResponse\", [\n { no: 1, name: \"id\", kind: \"message\", T: () => ConversationId },\n { no: 2, name: \"response\", kind: \"message\", oneof: \"body\", T: () => MessageResponse },\n { no: 3, name: \"error\", kind: \"scalar\", oneof: \"body\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<CrossDomainResponse>): CrossDomainResponse {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.body = { oneofKind: undefined };\n if (value !== undefined)\n reflectionMergePartial<CrossDomainResponse>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CrossDomainResponse): CrossDomainResponse {\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 /* pncp.v1.ConversationId id */ 1:\n message.id = ConversationId.internalBinaryRead(reader, reader.uint32(), options, message.id);\n break;\n case /* pncp.v1.MessageResponse response */ 2:\n message.body = {\n oneofKind: \"response\",\n response: MessageResponse.internalBinaryRead(reader, reader.uint32(), options, (message.body as any).response)\n };\n break;\n case /* string error */ 3:\n message.body = {\n oneofKind: \"error\",\n error: reader.string()\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: CrossDomainResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* pncp.v1.ConversationId id = 1; */\n if (message.id)\n ConversationId.internalBinaryWrite(message.id, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n /* pncp.v1.MessageResponse response = 2; */\n if (message.body.oneofKind === \"response\")\n MessageResponse.internalBinaryWrite(message.body.response, writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n /* string error = 3; */\n if (message.body.oneofKind === \"error\")\n writer.tag(3, WireType.LengthDelimited).string(message.body.error);\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 pncp.v1.CrossDomainResponse\n */\nexport const CrossDomainResponse = new CrossDomainResponse$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass CrossDomainStreamMessage$Type extends MessageType<CrossDomainStreamMessage> {\n constructor() {\n super(\"pncp.v1.CrossDomainStreamMessage\", [\n { no: 1, name: \"msg\", kind: \"message\", oneof: \"body\", T: () => CrossDomainMessage },\n { no: 2, name: \"federation_sync\", kind: \"message\", oneof: \"body\", T: () => CrossDomainFederationSync }\n ]);\n }\n create(value?: PartialMessage<CrossDomainStreamMessage>): CrossDomainStreamMessage {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.body = { oneofKind: undefined };\n if (value !== undefined)\n reflectionMergePartial<CrossDomainStreamMessage>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CrossDomainStreamMessage): CrossDomainStreamMessage {\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 /* pncp.v1.CrossDomainMessage msg */ 1:\n message.body = {\n oneofKind: \"msg\",\n msg: CrossDomainMessage.internalBinaryRead(reader, reader.uint32(), options, (message.body as any).msg)\n };\n break;\n case /* pncp.v1.CrossDomainFederationSync federation_sync */ 2:\n message.body = {\n oneofKind: \"federationSync\",\n federationSync: CrossDomainFederationSync.internalBinaryRead(reader, reader.uint32(), options, (message.body as any).federationSync)\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: CrossDomainStreamMessage, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* pncp.v1.CrossDomainMessage msg = 1; */\n if (message.body.oneofKind === \"msg\")\n CrossDomainMessage.internalBinaryWrite(message.body.msg, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n /* pncp.v1.CrossDomainFederationSync federation_sync = 2; */\n if (message.body.oneofKind === \"federationSync\")\n CrossDomainFederationSync.internalBinaryWrite(message.body.federationSync, 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 pncp.v1.CrossDomainStreamMessage\n */\nexport const CrossDomainStreamMessage = new CrossDomainStreamMessage$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass CrossDomainFederationSync$Type extends MessageType<CrossDomainFederationSync> {\n constructor() {\n super(\"pncp.v1.CrossDomainFederationSync\", []);\n }\n create(value?: PartialMessage<CrossDomainFederationSync>): CrossDomainFederationSync {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<CrossDomainFederationSync>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CrossDomainFederationSync): CrossDomainFederationSync {\n return target ?? this.create();\n }\n internalBinaryWrite(message: CrossDomainFederationSync, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\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 pncp.v1.CrossDomainFederationSync\n */\nexport const CrossDomainFederationSync = new CrossDomainFederationSync$Type();\n","// @generated by protobuf-ts 2.9.4\n// @generated from protobuf file \"observation.proto\" (package \"pncp.v1\", syntax proto3)\n// tslint:disable\n//\n// Observeration related message types.\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 { MessageType } from \"@protobuf-ts/runtime\";\nimport { ConversationId } from \"./identifiers\";\nimport { PncpCallback } from \"./pncp\";\nimport { PncpMessageKind } from \"./pncp\";\nimport { Value } from \"./otonoma/common/value\";\nimport { EntityId } from \"./identifiers\";\n/**\n * A request to begin observation. This includes general metadata as well as information around the\n * observation being requested. All observation specific fields are optional and if not present will match\n * all fields that correspond to that value.\n *\n * @generated from protobuf message pncp.v1.ObservationRequest\n */\nexport interface ObservationRequest {\n /**\n * @generated from protobuf field: pncp.v1.ObservationInit body = 1;\n */\n body?: ObservationInit;\n /**\n * TODO: Figure out what to do with this one.\n *\n * @generated from protobuf field: optional string skill_observance = 2;\n */\n skillObservance?: string;\n // Various metadata related fields for the request.\n\n /**\n * This is analogous to the PncpRequest.author field. See notes there for why it is required.\n *\n * @generated from protobuf field: pncp.v1.EntityId author = 3;\n */\n author?: EntityId;\n /**\n * @generated from protobuf field: pncp.v1.ObservationStartPoint start_point = 4;\n */\n startPoint: ObservationStartPoint;\n /**\n * Optional sequence ID, used to determine where the stream should start when start_point == OBS_START_SEQ.\n * Note, that this value is a message ID.\n *\n * @generated from protobuf field: optional string seq_id = 5;\n */\n seqId?: string;\n /**\n * @generated from protobuf field: optional otonoma.common.Value callback = 6;\n */\n callback?: Value;\n /**\n * If this is true then the observer stream is not tracked in the ledger.\n *\n * @generated from protobuf field: bool untracked = 7;\n */\n untracked: boolean;\n /**\n * Optional sequence offset, used to determine where the stream should start when start_point == OBS_START_OFFSET.\n * Ignored otherwise.\n * This field is an offset from the end of the stream. For example, if the caller provides `20` for this value,\n * the stream will begin 20 messages back in the observer stream. If there are less than 20 messages in the current\n * stream, it will send all of the current messages in the stream.\n *\n * N.B. (implementation detail): This requires a reordering in the ledger. As such, this query should be used with\n * only relatively small values (<10000) to avoid too much performance impact on the ledger.\n *\n * @generated from protobuf field: optional uint64 seq_offset = 8;\n */\n seqOffset?: bigint;\n}\n/**\n * Fields that indicate what is being observed by an observation request.\n *\n * @generated from protobuf message pncp.v1.ObservationInit\n */\nexport interface ObservationInit {\n /**\n * @generated from protobuf field: optional string subject = 1;\n */\n subject?: string;\n /**\n * @generated from protobuf field: optional string action = 2;\n */\n action?: string;\n /**\n * @generated from protobuf field: optional string requester = 3;\n */\n requester?: string;\n /**\n * @generated from protobuf field: optional string fulfiller = 4;\n */\n fulfiller?: string;\n /**\n * @generated from protobuf field: repeated pncp.v1.ObservationMessageFilter filters = 5;\n */\n filters: ObservationMessageFilter[];\n /**\n * @generated from protobuf field: optional string conversation_id = 6;\n */\n conversationId?: string; // skill_id could be a field here as well.\n}\n/**\n * @generated from protobuf message pncp.v1.ObservationMessageFilter\n */\nexport interface ObservationMessageFilter {\n /**\n * @generated from protobuf field: pncp.v1.ObservationMessageType kind = 1;\n */\n kind: ObservationMessageType;\n /**\n * if kind == PNCP then this field can be populated to further restrict the filter to specific PNCP types.\n *\n * @generated from protobuf field: optional pncp.v1.PncpMessageKind pncp = 2;\n */\n pncp?: PncpMessageKind;\n}\n/**\n * A single observation message.\n *\n * @generated from protobuf message pncp.v1.ObservationCallback\n */\nexport interface ObservationCallback {\n /**\n * Subject of the original skill request.\n *\n * @generated from protobuf field: string subject = 1;\n */\n subject: string;\n /**\n * Action of the original skill request.\n *\n * @generated from protobuf field: string action = 2;\n */\n action: string;\n /**\n * Requester of the conversation, not this particular message.\n *\n * @generated from protobuf field: pncp.v1.EntityId requester = 3;\n */\n requester?: EntityId;\n /**\n * fulfiller, if one exists.\n *\n * @generated from protobuf field: optional pncp.v1.EntityId fulfiller = 4;\n */\n fulfiller?: EntityId;\n /**\n * The callback message being observed.\n *\n * @generated from protobuf field: pncp.v1.PncpCallback message = 5;\n */\n message?: PncpCallback;\n /**\n * This is a unique ID corresponding to this observation stream.\n *\n * @generated from protobuf field: pncp.v1.ConversationId id = 6;\n */\n id?: ConversationId;\n /**\n * Actor that initiated this stream.\n *\n * @generated from protobuf field: pncp.v1.EntityId author = 7;\n */\n author?: EntityId;\n /**\n * Optional callback data used to identify this stream.\n *\n * @generated from protobuf field: optional otonoma.common.Value callback = 8;\n */\n callback?: Value;\n /**\n * The previous message ID, used for sequencing.\n *\n * @generated from protobuf field: optional string prev_mid = 9;\n */\n prevMid?: string;\n /**\n * @generated from protobuf field: pncp.v1.EntityId skill_id = 10;\n */\n skillId?: EntityId;\n}\n/**\n * Wrapper around observations used for allowing us to send different message types in the future, or no\n * message for keep alive purposes.\n *\n * @generated from protobuf message pncp.v1.ObservationMessageWrapper\n */\nexport interface ObservationMessageWrapper {\n /**\n * @generated from protobuf field: pncp.v1.ObservationCallback body = 1;\n */\n body?: ObservationCallback;\n}\n/**\n * @generated from protobuf enum pncp.v1.ObservationMessageType\n */\nexport enum ObservationMessageType {\n /**\n * @generated from protobuf enum value: OBS_MESSAGE_TYPE_SKILL = 0;\n */\n OBS_MESSAGE_TYPE_SKILL = 0,\n /**\n * @generated from protobuf enum value: OBS_MESSAGE_TYPE_PNCP = 1;\n */\n OBS_MESSAGE_TYPE_PNCP = 1\n}\n/**\n * @generated from protobuf enum pncp.v1.ObservationStartPoint\n */\nexport enum ObservationStartPoint {\n /**\n * The default choice, begin at the current head of the stream.\n *\n * @generated from protobuf enum value: OBS_START_HEAD = 0;\n */\n OBS_START_HEAD = 0,\n /**\n * Begin at the last sequence point, determined by the corresponding field.\n *\n * @generated from protobuf enum value: OBS_START_SEQ = 1;\n */\n OBS_START_SEQ = 1,\n /**\n * Start from the beginning of the stream.\n *\n * @generated from protobuf enum value: OBS_START_BEGINNING = 2;\n */\n OBS_START_BEGINNING = 2,\n /**\n * Start from the offset provided, determined by the corresponding field.\n *\n * @generated from protobuf enum value: OBS_START_OFFSET = 3;\n */\n OBS_START_OFFSET = 3\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass ObservationRequest$Type extends MessageType<ObservationRequest> {\n constructor() {\n super(\"pncp.v1.ObservationRequest\", [\n { no: 1, name: \"body\", kind: \"message\", T: () => ObservationInit },\n { no: 2, name: \"skill_observance\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n { no: 3, name: \"author\", kind: \"message\", T: () => EntityId },\n { no: 4, name: \"start_point\", kind: \"enum\", T: () => [\"pncp.v1.ObservationStartPoint\", ObservationStartPoint] },\n { no: 5, name: \"seq_id\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n { no: 6, name: \"callback\", kind: \"message\", T: () => Value },\n { no: 7, name: \"untracked\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ },\n { no: 8, name: \"seq_offset\", kind: \"scalar\", opt: true, T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<ObservationRequest>): ObservationRequest {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.startPoint = 0;\n message.untracked = false;\n if (value !== undefined)\n reflectionMergePartial<ObservationRequest>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ObservationRequest): ObservationRequest {\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 /* pncp.v1.ObservationInit body */ 1:\n message.body = ObservationInit.internalBinaryRead(reader, reader.uint32(), options, message.body);\n break;\n case /* optional string skill_observance */ 2:\n message.skillObservance = reader.string();\n break;\n case /* pncp.v1.EntityId author */ 3:\n message.author = EntityId.internalBinaryRead(reader, reader.uint32(), options, message.author);\n break;\n case /* pncp.v1.ObservationStartPoint start_point */ 4:\n message.startPoint = reader.int32();\n break;\n case /* optional string seq_id */ 5:\n message.seqId = reader.string();\n break;\n case /* optional otonoma.common.Value callback */ 6:\n message.callback = Value.internalBinaryRead(reader, reader.uint32(), options, message.callback);\n break;\n case /* bool untracked */ 7:\n message.untracked = reader.bool();\n break;\n case /* optional uint64 seq_offset */ 8:\n message.seqOffset = reader.uint64().toBigInt();\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: ObservationRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* pncp.v1.ObservationInit body = 1; */\n if (message.body)\n ObservationInit.internalBinaryWrite(message.body, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n /* optional string skill_observance = 2; */\n if (message.skillObservance !== undefined)\n writer.tag(2, WireType.LengthDelimited).string(message.skillObservance);\n /* pncp.v1.EntityId author = 3; */\n if (message.author)\n EntityId.internalBinaryWrite(message.author, writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n /* pncp.v1.ObservationStartPoint start_point = 4; */\n if (message.startPoint !== 0)\n writer.tag(4, WireType.Varint).int32(message.startPoint);\n /* optional string seq_id = 5; */\n if (message.seqId !== undefined)\n writer.tag(5, WireType.LengthDelimited).string(message.seqId);\n /* optional otonoma.common.Value callback = 6; */\n if (message.callback)\n Value.internalBinaryWrite(message.callback, writer.tag(6, WireType.LengthDelimited).fork(), options).join();\n /* bool untracked = 7; */\n if (message.untracked !== false)\n writer.tag(7, WireType.Varint).bool(message.untracked);\n /* optional uint64 seq_offset = 8; */\n if (message.seqOffset !== undefined)\n writer.tag(8, WireType.Varint).uint64(message.seqOffset);\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 pncp.v1.ObservationRequest\n */\nexport const ObservationRequest = new ObservationRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ObservationInit$Type extends MessageType<ObservationInit> {\n constructor() {\n super(\"pncp.v1.ObservationInit\", [\n { no: 1, name: \"subject\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"action\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n { no: 3, name: \"requester\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n { no: 4, name: \"fulfiller\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n { no: 5, name: \"filters\", kind: \"message\", repeat: 1 /*RepeatType.PACKED*/, T: () => ObservationMessageFilter },\n { no: 6, name: \"conversation_id\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<ObservationInit>): ObservationInit {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.filters = [];\n if (value !== undefined)\n reflectionMergePartial<ObservationInit>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ObservationInit): ObservationInit {\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 /* optional string subject */ 1:\n message.subject = reader.string();\n break;\n case /* optional string action */ 2:\n message.action = reader.string();\n break;\n case /* optional string requester */ 3:\n message.requester = reader.string();\n break;\n case /* optional string fulfiller */ 4:\n message.fulfiller = reader.string();\n break;\n case /* repeated pncp.v1.ObservationMessageFilter filters */ 5:\n message.filters.push(ObservationMessageFilter.internalBinaryRead(reader, reader.uint32(), options));\n break;\n case /* optional string conversation_id */ 6:\n message.conversationId = 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: ObservationInit, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* optional string subject = 1; */\n if (message.subject !== undefined)\n writer.tag(1, WireType.LengthDelimited).string(message.subject);\n /* optional string action = 2; */\n if (message.action !== undefined)\n writer.tag(2, WireType.LengthDelimited).string(message.action);\n /* optional string requester = 3; */\n if (message.requester !== undefined)\n writer.tag(3, WireType.LengthDelimited).string(message.requester);\n /* optional string fulfiller = 4; */\n if (message.fulfiller !== undefined)\n writer.tag(4, WireType.LengthDelimited).string(message.fulfiller);\n /* repeated pncp.v1.ObservationMessageFilter filters = 5; */\n for (let i = 0; i < message.filters.length; i++)\n ObservationMessageFilter.internalBinaryWrite(message.filters[i], writer.tag(5, WireType.LengthDelimited).fork(), options).join();\n /* optional string conversation_id = 6; */\n if (message.conversationId !== undefined)\n writer.tag(6, WireType.LengthDelimited).string(message.conversationId);\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 pncp.v1.ObservationInit\n */\nexport const ObservationInit = new ObservationInit$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ObservationMessageFilter$Type extends MessageType<ObservationMessageFilter> {\n constructor() {\n super(\"pncp.v1.ObservationMessageFilter\", [\n { no: 1, name: \"kind\", kind: \"enum\", T: () => [\"pncp.v1.ObservationMessageType\", ObservationMessageType] },\n { no: 2, name: \"pncp\", kind: \"enum\", opt: true, T: () => [\"pncp.v1.PncpMessageKind\", PncpMessageKind] }\n ]);\n }\n create(value?: PartialMessage<ObservationMessageFilter>): ObservationMessageFilter {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.kind = 0;\n if (value !== undefined)\n reflectionMergePartial<ObservationMessageFilter>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ObservationMessageFilter): ObservationMessageFilter {\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 /* pncp.v1.ObservationMessageType kind */ 1:\n message.kind = reader.int32();\n break;\n case /* optional pncp.v1.PncpMessageKind pncp */ 2:\n message.pncp = 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: ObservationMessageFilter, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* pncp.v1.ObservationMessageType kind = 1; */\n if (message.kind !== 0)\n writer.tag(1, WireType.Varint).int32(message.kind);\n /* optional pncp.v1.PncpMessageKind pncp = 2; */\n if (message.pncp !== undefined)\n writer.tag(2, WireType.Varint).int32(message.pncp);\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 pncp.v1.ObservationMessageFilter\n */\nexport const ObservationMessageFilter = new ObservationMessageFilter$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ObservationCallback$Type extends MessageType<ObservationCallback> {\n constructor() {\n super(\"pncp.v1.ObservationCallback\", [\n { no: 1, name: \"subject\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"action\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 3, name: \"requester\", kind: \"message\", T: () => EntityId },\n { no: 4, name: \"fulfiller\", kind: \"message\", T: () => EntityId },\n { no: 5, name: \"message\", kind: \"message\", T: () => PncpCallback },\n { no: 6, name: \"id\", kind: \"message\", T: () => ConversationId },\n { no: 7, name: \"author\", kind: \"message\", T: () => EntityId },\n { no: 8, name: \"callback\", kind: \"message\", T: () => Value },\n { no: 9, name: \"prev_mid\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n { no: 10, name: \"skill_id\", kind: \"message\", T: () => EntityId }\n ]);\n }\n create(value?: PartialMessage<ObservationCallback>): ObservationCallback {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.subject = \"\";\n message.action = \"\";\n if (value !== undefined)\n reflectionMergePartial<ObservationCallback>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ObservationCallback): ObservationCallback {\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 subject */ 1:\n message.subject = reader.string();\n break;\n case /* string action */ 2:\n message.action = reader.string();\n break;\n case /* pncp.v1.EntityId requester */ 3:\n message.requester = EntityId.internalBinaryRead(reader, reader.uint32(), options, message.requester);\n break;\n case /* optional pncp.v1.EntityId fulfiller */ 4:\n message.fulfiller = EntityId.internalBinaryRead(reader, reader.uint32(), options, message.fulfiller);\n break;\n case /* pncp.v1.PncpCallback message */ 5:\n message.message = PncpCallback.internalBinaryRead(reader, reader.uint32(), options, message.message);\n break;\n case /* pncp.v1.ConversationId id */ 6:\n message.id = ConversationId.internalBinaryRead(reader, reader.uint32(), options, message.id);\n break;\n case /* pncp.v1.EntityId author */ 7:\n message.author = EntityId.internalBinaryRead(reader, reader.uint32(), options, message.author);\n break;\n case /* optional otonoma.common.Value callback */ 8:\n message.callback = Value.internalBinaryRead(reader, reader.uint32(), options, message.callback);\n break;\n case /* optional string prev_mid */ 9:\n message.prevMid = reader.string();\n break;\n case /* pncp.v1.EntityId skill_id */ 10:\n message.skillId = EntityId.internalBinaryRead(reader, reader.uint32(), options, message.skillId);\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: ObservationCallback, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string subject = 1; */\n if (message.subject !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.subject);\n /* string action = 2; */\n if (message.action !== \"\")\n writer.tag(2, WireType.LengthDelimited).string(message.action);\n /* pncp.v1.EntityId requester = 3; */\n if (message.requester)\n EntityId.internalBinaryWrite(message.requester, writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n /* optional pncp.v1.EntityId fulfiller = 4; */\n if (message.fulfiller)\n EntityId.internalBinaryWrite(message.fulfiller, writer.tag(4, WireType.LengthDelimited).fork(), options).join();\n /* pncp.v1.PncpCallback message = 5; */\n if (message.message)\n PncpCallback.internalBinaryWrite(message.message, writer.tag(5, WireType.LengthDelimited).fork(), options).join();\n /* pncp.v1.ConversationId id = 6; */\n if (message.id)\n ConversationId.internalBinaryWrite(message.id, writer.tag(6, WireType.LengthDelimited).fork(), options).join();\n /* pncp.v1.EntityId author = 7; */\n if (message.author)\n EntityId.internalBinaryWrite(message.author, writer.tag(7, WireType.LengthDelimited).fork(), options).join();\n /* optional otonoma.common.Value callback = 8; */\n if (message.callback)\n Value.internalBinaryWrite(message.callback, writer.tag(8, WireType.LengthDelimited).fork(), options).join();\n /* optional string prev_mid = 9; */\n if (message.prevMid !== undefined)\n writer.tag(9, WireType.LengthDelimited).string(message.prevMid);\n /* pncp.v1.EntityId skill_id = 10; */\n if (message.skillId)\n EntityId.internalBinaryWrite(message.skillId, writer.tag(10, 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 pncp.v1.ObservationCallback\n */\nexport const ObservationCallback = new ObservationCallback$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ObservationMessageWrapper$Type extends MessageType<ObservationMessageWrapper> {\n constructor() {\n super(\"pncp.v1.ObservationMessageWrapper\", [\n { no: 1, name: \"body\", kind: \"message\", T: () => ObservationCallback }\n ]);\n }\n create(value?: PartialMessage<ObservationMessageWrapper>): ObservationMessageWrapper {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ObservationMessageWrapper>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ObservationMessageWrapper): ObservationMessageWrapper {\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 /* pncp.v1.ObservationCallback body */ 1:\n message.body = ObservationCallback.internalBinaryRead(reader, reader.uint32(), options, message.body);\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: ObservationMessageWrapper, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* pncp.v1.ObservationCallback body = 1; */\n if (message.body)\n ObservationCallback.internalBinaryWrite(message.body, 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 pncp.v1.ObservationMessageWrapper\n */\nexport const ObservationMessageWrapper = new ObservationMessageWrapper$Type();\n","import { lowerCamelCase } from \"@protobuf-ts/runtime\";\n/**\n * Turns PartialMethodInfo into MethodInfo.\n */\nexport function normalizeMethodInfo(method, service) {\n var _a, _b, _c;\n let m = method;\n m.service = service;\n m.localName = (_a = m.localName) !== null && _a !== void 0 ? _a : lowerCamelCase(m.name);\n // noinspection PointlessBooleanExpressionJS\n m.serverStreaming = !!m.serverStreaming;\n // noinspection PointlessBooleanExpressionJS\n m.clientStreaming = !!m.clientStreaming;\n m.options = (_b = m.options) !== null && _b !== void 0 ? _b : {};\n m.idempotency = (_c = m.idempotency) !== null && _c !== void 0 ? _c : undefined;\n return m;\n}\n/**\n * Read custom method options from a generated service client.\n *\n * @deprecated use readMethodOption()\n */\nexport function readMethodOptions(service, methodName, extensionName, extensionType) {\n var _a;\n const options = (_a = service.methods.find((m, i) => m.localName === methodName || i === methodName)) === null || _a === void 0 ? void 0 : _a.options;\n return options && options[extensionName] ? extensionType.fromJson(options[extensionName]) : undefined;\n}\nexport function readMethodOption(service, methodName, extensionName, extensionType) {\n var _a;\n const options = (_a = service.methods.find((m, i) => m.localName === methodName || i === methodName)) === null || _a === void 0 ? void 0 : _a.options;\n if (!options) {\n return undefined;\n }\n const optionVal = options[extensionName];\n if (optionVal === undefined) {\n return optionVal;\n }\n return extensionType ? extensionType.fromJson(optionVal) : optionVal;\n}\nexport function readServiceOption(service, extensionName, extensionType) {\n const options = service.options;\n if (!options) {\n return undefined;\n }\n const optionVal = options[extensionName];\n if (optionVal === undefined) {\n return optionVal;\n }\n return extensionType ? extensionType.fromJson(optionVal) : optionVal;\n}\n","import { normalizeMethodInfo } from \"./reflection-info\";\nexport class ServiceType {\n constructor(typeName, methods, options) {\n this.typeName = typeName;\n this.methods = methods.map(i => normalizeMethodInfo(i, this));\n this.options = options !== null && options !== void 0 ? options : {};\n }\n}\n","/**\n * An error that occurred while calling a RPC method.\n */\nexport class RpcError extends Error {\n constructor(message, code = 'UNKNOWN', meta) {\n super(message);\n this.name = 'RpcError';\n // see https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-2.html#example\n Object.setPrototypeOf(this, new.target.prototype);\n this.code = code;\n this.meta = meta !== null && meta !== void 0 ? meta : {};\n }\n toString() {\n const l = [this.name + ': ' + this.message];\n if (this.code) {\n l.push('');\n l.push('Code: ' + this.code);\n }\n if (this.serviceName && this.methodName) {\n l.push('Method: ' + this.serviceName + '/' + this.methodName);\n }\n let m = Object.entries(this.meta);\n if (m.length) {\n l.push('');\n l.push('Meta:');\n for (let [k, v] of m) {\n l.push(` ${k}: ${v}`);\n }\n }\n return l.join('\\n');\n }\n}\n","import { mergeBinaryOptions, mergeJsonOptions } from \"@protobuf-ts/runtime\";\n/**\n * Merges custom RPC options with defaults. Returns a new instance and keeps\n * the \"defaults\" and the \"options\" unmodified.\n *\n * Merges `RpcMetadata` \"meta\", overwriting values from \"defaults\" with\n * values from \"options\". Does not append values to existing entries.\n *\n * Merges \"jsonOptions\", including \"jsonOptions.typeRegistry\", by creating\n * a new array that contains types from \"options.jsonOptions.typeRegistry\"\n * first, then types from \"defaults.jsonOptions.typeRegistry\".\n *\n * Merges \"binaryOptions\".\n *\n * Merges \"interceptors\" by creating a new array that contains interceptors\n * from \"defaults\" first, then interceptors from \"options\".\n *\n * Works with objects that extend `RpcOptions`, but only if the added\n * properties are of type Date, primitive like string, boolean, or Array\n * of primitives. If you have other property types, you have to merge them\n * yourself.\n */\nexport function mergeRpcOptions(defaults, options) {\n if (!options)\n return defaults;\n let o = {};\n copy(defaults, o);\n copy(options, o);\n for (let key of Object.keys(options)) {\n let val = options[key];\n switch (key) {\n case \"jsonOptions\":\n o.jsonOptions = mergeJsonOptions(defaults.jsonOptions, o.jsonOptions);\n break;\n case \"binaryOptions\":\n o.binaryOptions = mergeBinaryOptions(defaults.binaryOptions, o.binaryOptions);\n break;\n case \"meta\":\n o.meta = {};\n copy(defaults.meta, o.meta);\n copy(options.meta, o.meta);\n break;\n case \"interceptors\":\n o.interceptors = defaults.interceptors ? defaults.interceptors.concat(val) : val.concat();\n break;\n }\n }\n return o;\n}\nfunction copy(a, into) {\n if (!a)\n return;\n let c = into;\n for (let [k, v] of Object.entries(a)) {\n if (v instanceof Date)\n c[k] = new Date(v.getTime());\n else if (Array.isArray(v))\n c[k] = v.concat();\n else\n c[k] = v;\n }\n}\n","export var DeferredState;\n(function (DeferredState) {\n DeferredState[DeferredState[\"PENDING\"] = 0] = \"PENDING\";\n DeferredState[DeferredState[\"REJECTED\"] = 1] = \"REJECTED\";\n DeferredState[DeferredState[\"RESOLVED\"] = 2] = \"RESOLVED\";\n})(DeferredState || (DeferredState = {}));\n/**\n * A deferred promise. This is a \"controller\" for a promise, which lets you\n * pass a promise around and reject or resolve it from the outside.\n *\n * Warning: This class is to be used with care. Using it can make code very\n * difficult to read. It is intended for use in library code that exposes\n * promises, not for regular business logic.\n */\nexport class Deferred {\n /**\n * @param preventUnhandledRejectionWarning - prevents the warning\n * \"Unhandled Promise rejection\" by adding a noop rejection handler.\n * Working with calls returned from the runtime-rpc package in an\n * async function usually means awaiting one call property after\n * the other. This means that the \"status\" is not being awaited when\n * an earlier await for the \"headers\" is rejected. This causes the\n * \"unhandled promise reject\" warning. A more correct behaviour for\n * calls might be to become aware whether at least one of the\n * promises is handled and swallow the rejection warning for the\n * others.\n */\n constructor(preventUnhandledRejectionWarning = true) {\n this._state = DeferredState.PENDING;\n this._promise = new Promise((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n });\n if (preventUnhandledRejectionWarning) {\n this._promise.catch(_ => { });\n }\n }\n /**\n * Get the current state of the promise.\n */\n get state() {\n return this._state;\n }\n /**\n * Get the deferred promise.\n */\n get promise() {\n return this._promise;\n }\n /**\n * Resolve the promise. Throws if the promise is already resolved or rejected.\n */\n resolve(value) {\n if (this.state !== DeferredState.PENDING)\n throw new Error(`cannot resolve ${DeferredState[this.state].toLowerCase()}`);\n this._resolve(value);\n this._state = DeferredState.RESOLVED;\n }\n /**\n * Reject the promise. Throws if the promise is already resolved or rejected.\n */\n reject(reason) {\n if (this.state !== DeferredState.PENDING)\n throw new Error(`cannot reject ${DeferredState[this.state].toLowerCase()}`);\n this._reject(reason);\n this._state = DeferredState.REJECTED;\n }\n /**\n * Resolve the promise. Ignore if not pending.\n */\n resolvePending(val) {\n if (this._state === DeferredState.PENDING)\n this.resolve(val);\n }\n /**\n * Reject the promise. Ignore if not pending.\n */\n rejectPending(reason) {\n if (this._state === DeferredState.PENDING)\n this.reject(reason);\n }\n}\n","import { Deferred, DeferredState } from \"./deferred\";\nimport { assert } from \"@protobuf-ts/runtime\";\n/**\n * A `RpcOutputStream` that you control.\n */\nexport class RpcOutputStreamController {\n constructor() {\n this._lis = {\n nxt: [],\n msg: [],\n err: [],\n cmp: [],\n };\n this._closed = false;\n // --- RpcOutputStream async iterator API\n // iterator state.\n // is undefined when no iterator has been acquired yet.\n this._itState = { q: [] };\n }\n // --- RpcOutputStream callback API\n onNext(callback) {\n return this.addLis(callback, this._lis.nxt);\n }\n onMessage(callback) {\n return this.addLis(callback, this._lis.msg);\n }\n onError(callback) {\n return this.addLis(callback, this._lis.err);\n }\n onComplete(callback) {\n return this.addLis(callback, this._lis.cmp);\n }\n addLis(callback, list) {\n list.push(callback);\n return () => {\n let i = list.indexOf(callback);\n if (i >= 0)\n list.splice(i, 1);\n };\n }\n // remove all listeners\n clearLis() {\n for (let l of Object.values(this._lis))\n l.splice(0, l.length);\n }\n // --- Controller API\n /**\n * Is this stream already closed by a completion or error?\n */\n get closed() {\n return this._closed !== false;\n }\n /**\n * Emit message, close with error, or close successfully, but only one\n * at a time.\n * Can be used to wrap a stream by using the other stream's `onNext`.\n */\n notifyNext(message, error, complete) {\n assert((message ? 1 : 0) + (error ? 1 : 0) + (complete ? 1 : 0) <= 1, 'only one emission at a time');\n if (message)\n this.notifyMessage(message);\n if (error)\n this.notifyError(error);\n if (complete)\n this.notifyComplete();\n }\n /**\n * Emits a new message. Throws if stream is closed.\n *\n * Triggers onNext and onMessage callbacks.\n */\n notifyMessage(message) {\n assert(!this.closed, 'stream is closed');\n this.pushIt({ value: message, done: false });\n this._lis.msg.forEach(l => l(message));\n this._lis.nxt.forEach(l => l(message, undefined, false));\n }\n /**\n * Closes the stream with an error. Throws if stream is closed.\n *\n * Triggers onNext and onError callbacks.\n */\n notifyError(error) {\n assert(!this.closed, 'stream is closed');\n this._closed = error;\n this.pushIt(error);\n this._lis.err.forEach(l => l(error));\n this._lis.nxt.forEach(l => l(undefined, error, false));\n this.clearLis();\n }\n /**\n * Closes the stream successfully. Throws if stream is closed.\n *\n * Triggers onNext and onComplete callbacks.\n */\n notifyComplete() {\n assert(!this.closed, 'stream is closed');\n this._closed = true;\n this.pushIt({ value: null, done: true });\n this._lis.cmp.forEach(l => l());\n this._lis.nxt.forEach(l => l(undefined, undefined, true));\n this.clearLis();\n }\n /**\n * Creates an async iterator (that can be used with `for await {...}`)\n * to consume the stream.\n *\n * Some things to note:\n * - If an error occurs, the `for await` will throw it.\n * - If an error occurred before the `for await` was started, `for await`\n * will re-throw it.\n * - If the stream is already complete, the `for await` will be empty.\n * - If your `for await` consumes slower than the stream produces,\n * for example because you are relaying messages in a slow operation,\n * messages are queued.\n */\n [Symbol.asyncIterator]() {\n // if we are closed, we are definitely not receiving any more messages.\n // but we can't let the iterator get stuck. we want to either:\n // a) finish the new iterator immediately, because we are completed\n // b) reject the new iterator, because we errored\n if (this._closed === true)\n this.pushIt({ value: null, done: true });\n else if (this._closed !== false)\n this.pushIt(this._closed);\n // the async iterator\n return {\n next: () => {\n let state = this._itState;\n assert(state, \"bad state\"); // if we don't have a state here, code is broken\n // there should be no pending result.\n // did the consumer call next() before we resolved our previous result promise?\n assert(!state.p, \"iterator contract broken\");\n // did we produce faster than the iterator consumed?\n // return the oldest result from the queue.\n let first = state.q.shift();\n if (first)\n return (\"value\" in first) ? Promise.resolve(first) : Promise.reject(first);\n // we have no result ATM, but we promise one.\n // as soon as we have a result, we must resolve promise.\n state.p = new Deferred();\n return state.p.promise;\n },\n };\n }\n // \"push\" a new iterator result.\n // this either resolves a pending promise, or enqueues the result.\n pushIt(result) {\n let state = this._itState;\n // is the consumer waiting for us?\n if (state.p) {\n // yes, consumer is waiting for this promise.\n const p = state.p;\n assert(p.state == DeferredState.PENDING, \"iterator contract broken\");\n // resolve the promise\n (\"value\" in result) ? p.resolve(result) : p.reject(result);\n // must cleanup, otherwise iterator.next() would pick it up again.\n delete state.p;\n }\n else {\n // we are producing faster than the iterator consumes.\n // push result onto queue.\n state.q.push(result);\n }\n }\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n/**\n * A unary RPC call. Unary means there is exactly one input message and\n * exactly one output message unless an error occurred.\n */\nexport class UnaryCall {\n constructor(method, requestHeaders, request, headers, response, status, trailers) {\n this.method = method;\n this.requestHeaders = requestHeaders;\n this.request = request;\n this.headers = headers;\n this.response = response;\n this.status = status;\n this.trailers = trailers;\n }\n /**\n * If you are only interested in the final outcome of this call,\n * you can await it to receive a `FinishedUnaryCall`.\n */\n then(onfulfilled, onrejected) {\n return this.promiseFinished().then(value => onfulfilled ? Promise.resolve(onfulfilled(value)) : value, reason => onrejected ? Promise.resolve(onrejected(reason)) : Promise.reject(reason));\n }\n promiseFinished() {\n return __awaiter(this, void 0, void 0, function* () {\n let [headers, response, status, trailers] = yield Promise.all([this.headers, this.response, this.status, this.trailers]);\n return {\n method: this.method,\n requestHeaders: this.requestHeaders,\n request: this.request,\n headers,\n response,\n status,\n trailers\n };\n });\n }\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n/**\n * A server streaming RPC call. The client provides exactly one input message\n * but the server may respond with 0, 1, or more messages.\n */\nexport class ServerStreamingCall {\n constructor(method, requestHeaders, request, headers, response, status, trailers) {\n this.method = method;\n this.requestHeaders = requestHeaders;\n this.request = request;\n this.headers = headers;\n this.responses = response;\n this.status = status;\n this.trailers = trailers;\n }\n /**\n * Instead of awaiting the response status and trailers, you can\n * just as well await this call itself to receive the server outcome.\n * You should first setup some listeners to the `request` to\n * see the actual messages the server replied with.\n */\n then(onfulfilled, onrejected) {\n return this.promiseFinished().then(value => onfulfilled ? Promise.resolve(onfulfilled(value)) : value, reason => onrejected ? Promise.resolve(onrejected(reason)) : Promise.reject(reason));\n }\n promiseFinished() {\n return __awaiter(this, void 0, void 0, function* () {\n let [headers, status, trailers] = yield Promise.all([this.headers, this.status, this.trailers]);\n return {\n method: this.method,\n requestHeaders: this.requestHeaders,\n request: this.request,\n headers,\n status,\n trailers,\n };\n });\n }\n}\n","import { assertNever } from \"@protobuf-ts/runtime\";\n/**\n * Creates a \"stack\" of of all interceptors specified in the given `RpcOptions`.\n * Used by generated client implementations.\n * @internal\n */\nexport function stackIntercept(kind, transport, method, options, input) {\n var _a, _b, _c, _d;\n if (kind == \"unary\") {\n let tail = (mtd, inp, opt) => transport.unary(mtd, inp, opt);\n for (const curr of ((_a = options.interceptors) !== null && _a !== void 0 ? _a : []).filter(i => i.interceptUnary).reverse()) {\n const next = tail;\n tail = (mtd, inp, opt) => curr.interceptUnary(next, mtd, inp, opt);\n }\n return tail(method, input, options);\n }\n if (kind == \"serverStreaming\") {\n let tail = (mtd, inp, opt) => transport.serverStreaming(mtd, inp, opt);\n for (const curr of ((_b = options.interceptors) !== null && _b !== void 0 ? _b : []).filter(i => i.interceptServerStreaming).reverse()) {\n const next = tail;\n tail = (mtd, inp, opt) => curr.interceptServerStreaming(next, mtd, inp, opt);\n }\n return tail(method, input, options);\n }\n if (kind == \"clientStreaming\") {\n let tail = (mtd, opt) => transport.clientStreaming(mtd, opt);\n for (const curr of ((_c = options.interceptors) !== null && _c !== void 0 ? _c : []).filter(i => i.interceptClientStreaming).reverse()) {\n const next = tail;\n tail = (mtd, opt) => curr.interceptClientStreaming(next, mtd, opt);\n }\n return tail(method, options);\n }\n if (kind == \"duplex\") {\n let tail = (mtd, opt) => transport.duplex(mtd, opt);\n for (const curr of ((_d = options.interceptors) !== null && _d !== void 0 ? _d : []).filter(i => i.interceptDuplex).reverse()) {\n const next = tail;\n tail = (mtd, opt) => curr.interceptDuplex(next, mtd, opt);\n }\n return tail(method, options);\n }\n assertNever(kind);\n}\n/**\n * @deprecated replaced by `stackIntercept()`, still here to support older generated code\n */\nexport function stackUnaryInterceptors(transport, method, input, options) {\n return stackIntercept(\"unary\", transport, method, options, input);\n}\n/**\n * @deprecated replaced by `stackIntercept()`, still here to support older generated code\n */\nexport function stackServerStreamingInterceptors(transport, method, input, options) {\n return stackIntercept(\"serverStreaming\", transport, method, options, input);\n}\n/**\n * @deprecated replaced by `stackIntercept()`, still here to support older generated code\n */\nexport function stackClientStreamingInterceptors(transport, method, options) {\n return stackIntercept(\"clientStreaming\", transport, method, options);\n}\n/**\n * @deprecated replaced by `stackIntercept()`, still here to support older generated code\n */\nexport function stackDuplexStreamingInterceptors(transport, method, options) {\n return stackIntercept(\"duplex\", transport, method, options);\n}\n","// @generated by protobuf-ts 2.9.4\n// @generated from protobuf file \"broker.grpc.proto\" (package \"pncp.v1\", syntax proto3)\n// tslint:disable\nimport { PncpMediumMessage } from \"./mediums\";\nimport { RefreshTokenRequest } from \"./broker_api\";\nimport { LoginResponse } from \"./broker_api\";\nimport { LoginRequest } from \"./broker_api\";\nimport { CrossDomainStreamMessage } from \"./broker_api\";\nimport { CrossDomainResponse } from \"./broker_api\";\nimport { CrossDomainMessage } from \"./broker_api\";\nimport { ObservationMessageWrapper } from \"./observation\";\nimport { ObservationRequest } from \"./observation\";\nimport { PncpCallback } from \"./pncp\";\nimport { PncpCallbackRequest } from \"./broker_api\";\nimport { PncpMessage } from \"./pncp\";\nimport { MessageResponse } from \"./broker_api\";\nimport { PncpRequest } from \"./pncp\";\nimport { ServiceType } from \"@protobuf-ts/runtime-rpc\";\n/**\n * @generated ServiceType for protobuf service pncp.v1.Broker\n */\nexport const Broker = new ServiceType(\"pncp.v1.Broker\", [\n { name: \"SkillRequest\", options: {}, I: PncpRequest, O: MessageResponse },\n { name: \"PncpMessageRequest\", options: {}, I: PncpMessage, O: MessageResponse },\n { name: \"PncpCallbackStream\", serverStreaming: true, options: {}, I: PncpCallbackRequest, O: PncpCallback },\n { name: \"CreateObserverStream\", serverStreaming: true, options: {}, I: ObservationRequest, O: ObservationMessageWrapper },\n { name: \"CrossDomainRequest\", options: {}, I: CrossDomainMessage, O: CrossDomainResponse },\n { name: \"CrossDomainStream\", serverStreaming: true, clientStreaming: true, options: {}, I: CrossDomainResponse, O: CrossDomainStreamMessage },\n { name: \"Login\", options: { unauthenticated: true }, I: LoginRequest, O: LoginResponse },\n { name: \"RefreshToken\", options: { unauthenticated: true }, I: RefreshTokenRequest, O: LoginResponse },\n { name: \"PncpMediumMessageRequest\", options: { unauthenticated: true }, I: PncpMediumMessage, O: MessageResponse }\n]);\n","// @generated by protobuf-ts 2.9.4\n// @generated from protobuf file \"broker.grpc.proto\" (package \"pncp.v1\", syntax proto3)\n// tslint:disable\nimport type { RpcTransport } from \"@protobuf-ts/runtime-rpc\";\nimport type { ServiceInfo } from \"@protobuf-ts/runtime-rpc\";\nimport { Broker } from \"./broker.grpc\";\nimport type { PncpMediumMessage } from \"./mediums\";\nimport type { RefreshTokenRequest } from \"./broker_api\";\nimport type { LoginResponse } from \"./broker_api\";\nimport type { LoginRequest } from \"./broker_api\";\nimport type { CrossDomainStreamMessage } from \"./broker_api\";\nimport type { DuplexStreamingCall } from \"@protobuf-ts/runtime-rpc\";\nimport type { CrossDomainResponse } from \"./broker_api\";\nimport type { CrossDomainMessage } from \"./broker_api\";\nimport type { ObservationMessageWrapper } from \"./observation\";\nimport type { ObservationRequest } from \"./observation\";\nimport type { PncpCallback } from \"./pncp\";\nimport type { PncpCallbackRequest } from \"./broker_api\";\nimport type { ServerStreamingCall } from \"@protobuf-ts/runtime-rpc\";\nimport type { PncpMessage } from \"./pncp\";\nimport { stackIntercept } from \"@protobuf-ts/runtime-rpc\";\nimport type { MessageResponse } from \"./broker_api\";\nimport type { PncpRequest } from \"./pncp\";\nimport type { UnaryCall } from \"@protobuf-ts/runtime-rpc\";\nimport type { RpcOptions } from \"@protobuf-ts/runtime-rpc\";\n// NOTE (JAB, 2024-06-11): Some protobuf compilers (notably, protoc) don't like it when your rpc and\n// messages have the same name. We ran into this with rpc PncpMessageRequest being originally named\n// PncpMessage. This produces a cryptic error message like:\n// broker.grpc.proto:22:19: \"PncpMessage\" is not a message type.\n\n/**\n * @generated from protobuf service pncp.v1.Broker\n */\nexport interface IBrokerClient {\n /**\n * A skill request initiates a conversation between the requesting actor and the corresponding matched\n * actor. Any further messages within the conversation are sent via PncpMessage.\n * Messages are forwarded to actors depending on the actor configuration, but the majority of actors\n * will receive their messages as a callback on `PncpCallbackStream`.\n *\n * @generated from protobuf rpc: SkillRequest(pncp.v1.PncpRequest) returns (pncp.v1.MessageResponse);\n */\n skillRequest(input: PncpRequest, options?: RpcOptions): UnaryCall<PncpRequest, MessageResponse>;\n /**\n * Follow up messages within a conversation are sent with via this endpoint.\n *\n * @generated from protobuf rpc: PncpMessageRequest(pncp.v1.PncpMessage) returns (pncp.v1.MessageResponse);\n */\n pncpMessageRequest(input: PncpMessage, options?: RpcOptions): UnaryCall<PncpMessage, MessageResponse>;\n /**\n * The callback stream for an actor to receive all Pncp type messages. This includes skill requests\n * and all additional Pncp messages sent in the conversation thread.\n *\n * @generated from protobuf rpc: PncpCallbackStream(pncp.v1.PncpCallbackRequest) returns (stream pncp.v1.PncpCallback);\n */\n pncpCallbackStream(input: PncpCallbackRequest, options?: RpcOptions): ServerStreamingCall<PncpCallbackRequest, PncpCallback>;\n /**\n * Creates a new observation stream.\n *\n * @generated from protobuf rpc: CreateObserverStream(pncp.v1.ObservationRequest) returns (stream pncp.v1.ObservationMessageWrapper);\n */\n createObserverStream(input: ObservationRequest, options?: RpcOptions): ServerStreamingCall<ObservationRequest, ObservationMessageWrapper>;\n /**\n * A direct cross domain request, posted from one node to another. The other node is often expected to post\n * the results back.\n *\n * @generated from protobuf rpc: CrossDomainRequest(pncp.v1.CrossDomainMessage) returns (pncp.v1.CrossDomainResponse);\n */\n crossDomainRequest(input: CrossDomainMessage, options?: RpcOptions): UnaryCall<CrossDomainMessage, CrossDomainResponse>;\n /**\n * Inverted API for an edge node to connect to another node. It creates this stream so that the node it\n * connects to can stream messages back to the edge node. The edge node is then required to stream\n * `MessageResponse` to each incoming message back to the connected node.\n *\n * @generated from protobuf rpc: CrossDomainStream(stream pncp.v1.CrossDomainResponse) returns (stream pncp.v1.CrossDomainStreamMessage);\n */\n crossDomainStream(options?: RpcOptions): DuplexStreamingCall<CrossDomainResponse, CrossDomainStreamMessage>;\n /**\n * @generated from protobuf rpc: Login(pncp.v1.LoginRequest) returns (pncp.v1.LoginResponse);\n */\n login(input: LoginRequest, options?: RpcOptions): UnaryCall<LoginRequest, LoginResponse>;\n /**\n * @generated from protobuf rpc: RefreshToken(pncp.v1.RefreshTokenRequest) returns (pncp.v1.LoginResponse);\n */\n refreshToken(input: RefreshTokenRequest, options?: RpcOptions): UnaryCall<RefreshTokenRequest, LoginResponse>;\n /**\n * A PNCP message received from a medium. Note, that we are likely to rework mediums.\n * Given currently limitations with mediums this route is left unauthenticated.\n *\n * @generated from protobuf rpc: PncpMediumMessageRequest(pncp.v1.PncpMediumMessage) returns (pncp.v1.MessageResponse);\n */\n pncpMediumMessageRequest(input: PncpMediumMessage, options?: RpcOptions): UnaryCall<PncpMediumMessage, MessageResponse>;\n}\n// NOTE (JAB, 2024-06-11): Some protobuf compilers (notably, protoc) don't like it when your rpc and\n// messages have the same name. We ran into this with rpc PncpMessageRequest being originally named\n// PncpMessage. This produces a cryptic error message like:\n// broker.grpc.proto:22:19: \"PncpMessage\" is not a message type.\n\n/**\n * @generated from protobuf service pncp.v1.Broker\n */\nexport class BrokerClient implements IBrokerClient, ServiceInfo {\n typeName = Broker.typeName;\n methods = Broker.methods;\n options = Broker.options;\n constructor(private readonly _transport: RpcTransport) {\n }\n /**\n * A skill request initiates a conversation between the requesting actor and the corresponding matched\n * actor. Any further messages within the conversation are sent via PncpMessage.\n * Messages are forwarded to actors depending on the actor configuration, but the majority of actors\n * will receive their messages as a callback on `PncpCallbackStream`.\n *\n * @generated from protobuf rpc: SkillRequest(pncp.v1.PncpRequest) returns (pncp.v1.MessageResponse);\n */\n skillRequest(input: PncpRequest, options?: RpcOptions): UnaryCall<PncpRequest, MessageResponse> {\n const method = this.methods[0], opt = this._transport.mergeOptions(options);\n return stackIntercept<PncpRequest, MessageResponse>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * Follow up messages within a conversation are sent with via this endpoint.\n *\n * @generated from protobuf rpc: PncpMessageRequest(pncp.v1.PncpMessage) returns (pncp.v1.MessageResponse);\n */\n pncpMessageRequest(input: PncpMessage, options?: RpcOptions): UnaryCall<PncpMessage, MessageResponse> {\n const method = this.methods[1], opt = this._transport.mergeOptions(options);\n return stackIntercept<PncpMessage, MessageResponse>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * The callback stream for an actor to receive all Pncp type messages. This includes skill requests\n * and all additional Pncp messages sent in the conversation thread.\n *\n * @generated from protobuf rpc: PncpCallbackStream(pncp.v1.PncpCallbackRequest) returns (stream pncp.v1.PncpCallback);\n */\n pncpCallbackStream(input: PncpCallbackRequest, options?: RpcOptions): ServerStreamingCall<PncpCallbackRequest, PncpCallback> {\n const method = this.methods[2], opt = this._transport.mergeOptions(options);\n return stackIntercept<PncpCallbackRequest, PncpCallback>(\"serverStreaming\", this._transport, method, opt, input);\n }\n /**\n * Creates a new observation stream.\n *\n * @generated from protobuf rpc: CreateObserverStream(pncp.v1.ObservationRequest) returns (stream pncp.v1.ObservationMessageWrapper);\n */\n createObserverStream(input: ObservationRequest, options?: RpcOptions): ServerStreamingCall<ObservationRequest, ObservationMessageWrapper> {\n const method = this.methods[3], opt = this._transport.mergeOptions(options);\n return stackIntercept<ObservationRequest, ObservationMessageWrapper>(\"serverStreaming\", this._transport, method, opt, input);\n }\n /**\n * A direct cross domain request, posted from one node to another. The other node is often expected to post\n * the results back.\n *\n * @generated from protobuf rpc: CrossDomainRequest(pncp.v1.CrossDomainMessage) returns (pncp.v1.CrossDomainResponse);\n */\n crossDomainRequest(input: CrossDomainMessage, options?: RpcOptions): UnaryCall<CrossDomainMessage, CrossDomainResponse> {\n const method = this.methods[4], opt = this._transport.mergeOptions(options);\n return stackIntercept<CrossDomainMessage, CrossDomainResponse>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * Inverted API for an edge node to connect to another node. It creates this stream so that the node it\n * connects to can stream messages back to the edge node. The edge node is then required to stream\n * `MessageResponse` to each incoming message back to the connected node.\n *\n * @generated from protobuf rpc: CrossDomainStream(stream pncp.v1.CrossDomainResponse) returns (stream pncp.v1.CrossDomainStreamMessage);\n */\n crossDomainStream(options?: RpcOptions): DuplexStreamingCall<CrossDomainResponse, CrossDomainStreamMessage> {\n const method = this.methods[5], opt = this._transport.mergeOptions(options);\n return stackIntercept<CrossDomainResponse, CrossDomainStreamMessage>(\"duplex\", this._transport, method, opt);\n }\n /**\n * @generated from protobuf rpc: Login(pncp.v1.LoginRequest) returns (pncp.v1.LoginResponse);\n */\n login(input: LoginRequest, options?: RpcOptions): UnaryCall<LoginRequest, LoginResponse> {\n const method = this.methods[6], opt = this._transport.mergeOptions(options);\n return stackIntercept<LoginRequest, LoginResponse>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: RefreshToken(pncp.v1.RefreshTokenRequest) returns (pncp.v1.LoginResponse);\n */\n refreshToken(input: RefreshTokenRequest, options?: RpcOptions): UnaryCall<RefreshTokenRequest, LoginResponse> {\n const method = this.methods[7], opt = this._transport.mergeOptions(options);\n return stackIntercept<RefreshTokenRequest, LoginResponse>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * A PNCP message received from a medium. Note, that we are likely to rework mediums.\n * Given currently limitations with mediums this route is left unauthenticated.\n *\n * @generated from protobuf rpc: PncpMediumMessageRequest(pncp.v1.PncpMediumMessage) returns (pncp.v1.MessageResponse);\n */\n pncpMediumMessageRequest(input: PncpMediumMessage, options?: RpcOptions): UnaryCall<PncpMediumMessage, MessageResponse> {\n const method = this.methods[8], opt = this._transport.mergeOptions(options);\n return stackIntercept<PncpMediumMessage, MessageResponse>(\"unary\", this._transport, method, opt, input);\n }\n}\n","export class InvalidTokenError extends Error {\n}\nInvalidTokenError.prototype.name = \"InvalidTokenError\";\nfunction b64DecodeUnicode(str) {\n return decodeURIComponent(atob(str).replace(/(.)/g, (m, p) => {\n let code = p.charCodeAt(0).toString(16).toUpperCase();\n if (code.length < 2) {\n code = \"0\" + code;\n }\n return \"%\" + code;\n }));\n}\nfunction base64UrlDecode(str) {\n let output = str.replace(/-/g, \"+\").replace(/_/g, \"/\");\n switch (output.length % 4) {\n case 0:\n break;\n case 2:\n output += \"==\";\n break;\n case 3:\n output += \"=\";\n break;\n default:\n throw new Error(\"base64 string is not of the correct length\");\n }\n try {\n return b64DecodeUnicode(output);\n }\n catch (err) {\n return atob(output);\n }\n}\nexport function jwtDecode(token, options) {\n if (typeof token !== \"string\") {\n throw new InvalidTokenError(\"Invalid token specified: must be a string\");\n }\n options || (options = {});\n const pos = options.header === true ? 0 : 1;\n const part = token.split(\".\")[pos];\n if (typeof part !== \"string\") {\n throw new InvalidTokenError(`Invalid token specified: missing part #${pos + 1}`);\n }\n let decoded;\n try {\n decoded = base64UrlDecode(part);\n }\n catch (e) {\n throw new InvalidTokenError(`Invalid token specified: invalid base64 for part #${pos + 1} (${e.message})`);\n }\n try {\n return JSON.parse(decoded);\n }\n catch (e) {\n throw new InvalidTokenError(`Invalid token specified: invalid json for part #${pos + 1} (${e.message})`);\n }\n}\n","// Copyright 2016 gRPC authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * See [grpc status_code_enum.h](https://github.com/grpc/grpc/blob/a19d8dcfb50caa81cddc25bc1a6afdd7a2f497b7/include/grpcpp/impl/codegen/status_code_enum.h#L24)\n *\n * Copyright 2020 Google LLC\n */\nexport var GrpcStatusCode;\n(function (GrpcStatusCode) {\n /**\n * Not an error; returned on success.\n */\n GrpcStatusCode[GrpcStatusCode[\"OK\"] = 0] = \"OK\";\n /**\n * The operation was cancelled (typically by the caller).\n */\n GrpcStatusCode[GrpcStatusCode[\"CANCELLED\"] = 1] = \"CANCELLED\";\n /**\n * Unknown error. An example of where this error may be returned is if a\n * Status value received from another address space belongs to an error-space\n * that is not known in this address space. Also errors raised by APIs that\n * do not return enough error information may be converted to this error.\n */\n GrpcStatusCode[GrpcStatusCode[\"UNKNOWN\"] = 2] = \"UNKNOWN\";\n /**\n * Client specified an invalid argument. Note that this differs from\n * FAILED_PRECONDITION. INVALID_ARGUMENT indicates arguments that are\n * problematic regardless of the state of the system (e.g., a malformed file\n * name).\n */\n GrpcStatusCode[GrpcStatusCode[\"INVALID_ARGUMENT\"] = 3] = \"INVALID_ARGUMENT\";\n /**\n * Deadline expired before operation could complete. For operations that\n * change the state of the system, this error may be returned even if the\n * operation has completed successfully. For example, a successful response\n * from a server could have been delayed long enough for the deadline to\n * expire.\n */\n GrpcStatusCode[GrpcStatusCode[\"DEADLINE_EXCEEDED\"] = 4] = \"DEADLINE_EXCEEDED\";\n /**\n * Some requested entity (e.g., file or directory) was not found.\n */\n GrpcStatusCode[GrpcStatusCode[\"NOT_FOUND\"] = 5] = \"NOT_FOUND\";\n /**\n * Some entity that we attempted to create (e.g., file or directory) already\n * exists.\n */\n GrpcStatusCode[GrpcStatusCode[\"ALREADY_EXISTS\"] = 6] = \"ALREADY_EXISTS\";\n /**\n * The caller does not have permission to execute the specified operation.\n * PERMISSION_DENIED must not be used for rejections caused by exhausting\n * some resource (use RESOURCE_EXHAUSTED instead for those errors).\n * PERMISSION_DENIED must not be used if the caller can not be identified\n * (use UNAUTHENTICATED instead for those errors).\n */\n GrpcStatusCode[GrpcStatusCode[\"PERMISSION_DENIED\"] = 7] = \"PERMISSION_DENIED\";\n /**\n * The request does not have valid authentication credentials for the\n * operation.\n */\n GrpcStatusCode[GrpcStatusCode[\"UNAUTHENTICATED\"] = 16] = \"UNAUTHENTICATED\";\n /**\n * Some resource has been exhausted, perhaps a per-user quota, or perhaps the\n * entire file system is out of space.\n */\n GrpcStatusCode[GrpcStatusCode[\"RESOURCE_EXHAUSTED\"] = 8] = \"RESOURCE_EXHAUSTED\";\n /**\n * Operation was rejected because the system is not in a state required for\n * the operations execution. For example, directory to be deleted may be\n * non-empty, an rmdir operation is applied to a non-directory, etc.\n *\n * A litmus test that may help a service implementor in deciding\n * between FAILED_PRECONDITION, ABORTED, and UNAVAILABLE:\n * (a) Use UNAVAILABLE if the client can retry just the failing call.\n * (b) Use ABORTED if the client should retry at a higher-level\n * (e.g., restarting a read-modify-write sequence).\n * (c) Use FAILED_PRECONDITION if the client should not retry until\n * the system state has been explicitly fixed. E.g., if an \"rmdir\"\n * fails because the directory is non-empty, FAILED_PRECONDITION\n * should be returned since the client should not retry unless\n * they have first fixed up the directory by deleting files from it.\n * (d) Use FAILED_PRECONDITION if the client performs conditional\n * REST Get/Update/Delete on a resource and the resource on the\n * server does not match the condition. E.g., conflicting\n * read-modify-write on the same resource.\n */\n GrpcStatusCode[GrpcStatusCode[\"FAILED_PRECONDITION\"] = 9] = \"FAILED_PRECONDITION\";\n /**\n * The operation was aborted, typically due to a concurrency issue like\n * sequencer check failures, transaction aborts, etc.\n *\n * See litmus test above for deciding between FAILED_PRECONDITION, ABORTED,\n * and UNAVAILABLE.\n */\n GrpcStatusCode[GrpcStatusCode[\"ABORTED\"] = 10] = \"ABORTED\";\n /**\n * Operation was attempted past the valid range. E.g., seeking or reading\n * past end of file.\n *\n * Unlike INVALID_ARGUMENT, this error indicates a problem that may be fixed\n * if the system state changes. For example, a 32-bit file system will\n * generate INVALID_ARGUMENT if asked to read at an offset that is not in the\n * range [0,2^32-1], but it will generate OUT_OF_RANGE if asked to read from\n * an offset past the current file size.\n *\n * There is a fair bit of overlap between FAILED_PRECONDITION and\n * OUT_OF_RANGE. We recommend using OUT_OF_RANGE (the more specific error)\n * when it applies so that callers who are iterating through a space can\n * easily look for an OUT_OF_RANGE error to detect when they are done.\n */\n GrpcStatusCode[GrpcStatusCode[\"OUT_OF_RANGE\"] = 11] = \"OUT_OF_RANGE\";\n /**\n * Operation is not implemented or not supported/enabled in this service.\n */\n GrpcStatusCode[GrpcStatusCode[\"UNIMPLEMENTED\"] = 12] = \"UNIMPLEMENTED\";\n /**\n * Internal errors. Means some invariants expected by underlying System has\n * been broken. If you see one of these errors, Something is very broken.\n */\n GrpcStatusCode[GrpcStatusCode[\"INTERNAL\"] = 13] = \"INTERNAL\";\n /**\n * The service is currently unavailable. This is a most likely a transient\n * condition and may be corrected by retrying with a backoff.\n *\n * See litmus test above for deciding between FAILED_PRECONDITION, ABORTED,\n * and UNAVAILABLE.\n */\n GrpcStatusCode[GrpcStatusCode[\"UNAVAILABLE\"] = 14] = \"UNAVAILABLE\";\n /**\n * Unrecoverable data loss or corruption.\n */\n GrpcStatusCode[GrpcStatusCode[\"DATA_LOSS\"] = 15] = \"DATA_LOSS\";\n})(GrpcStatusCode || (GrpcStatusCode = {}));\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { base64decode, base64encode } from \"@protobuf-ts/runtime\";\nimport { RpcError } from \"@protobuf-ts/runtime-rpc\";\nimport { GrpcStatusCode } from \"./goog-grpc-status-code\";\n/**\n * Create fetch API headers for a grpc-web request.\n */\nexport function createGrpcWebRequestHeader(headers, format, timeout, meta, userAgent) {\n // add meta as headers\n if (meta) {\n for (let [k, v] of Object.entries(meta)) {\n if (typeof v == \"string\")\n headers.append(k, v);\n else\n for (let i of v)\n headers.append(k, i);\n }\n }\n // set standard headers (possibly overwriting meta)\n headers.set('Content-Type', format === \"text\" ? \"application/grpc-web-text\" : \"application/grpc-web+proto\");\n if (format == \"text\") {\n // The client library should indicate to the server via the \"Accept\" header that\n // the response stream needs to be text encoded e.g. when XHR is used or due to\n // security policies with XHR\n headers.set(\"Accept\", \"application/grpc-web-text\");\n }\n headers.set('X-Grpc-Web', \"1\");\n if (userAgent)\n headers.set(\"X-User-Agent\", userAgent);\n if (typeof timeout === \"number\") {\n if (timeout <= 0) {\n // we raise an error ourselves because header \"grpc-timeout\" must be a positive integer\n throw new RpcError(`timeout ${timeout} ms exceeded`, GrpcStatusCode[GrpcStatusCode.DEADLINE_EXCEEDED]);\n }\n headers.set('grpc-timeout', `${timeout}m`);\n }\n else if (timeout) {\n const deadline = timeout.getTime();\n const now = Date.now();\n if (deadline <= now) {\n // we raise an error ourselves because header \"grpc-timeout\" must be a positive integer\n throw new RpcError(`deadline ${timeout} exceeded`, GrpcStatusCode[GrpcStatusCode.DEADLINE_EXCEEDED]);\n }\n headers.set('grpc-timeout', `${deadline - now}m`);\n }\n return headers;\n}\nexport function createGrpcWebRequestBody(message, format) {\n let body = new Uint8Array(5 + message.length); // we need 5 bytes for frame type + message length\n body[0] = GrpcWebFrame.DATA; // first byte is frame type\n // 4 bytes message length\n for (let msgLen = message.length, i = 4; i > 0; i--) {\n body[i] = (msgLen % 256);\n msgLen >>>= 8;\n }\n body.set(message, 5); // reset is message\n return format === \"binary\" ? body : base64encode(body);\n}\nexport function readGrpcWebResponseHeader(headersOrFetchResponse, httpStatus, httpStatusText) {\n if (arguments.length === 1) {\n let fetchResponse = headersOrFetchResponse;\n // Cloudflare Workers throw when the type property of a fetch response\n // is accessed, so wrap access with try/catch. See:\n // * https://developers.cloudflare.com/workers/runtime-apis/response/#properties\n // * https://github.com/cloudflare/miniflare/blob/72f046e/packages/core/src/standards/http.ts#L646\n let responseType;\n try {\n responseType = fetchResponse.type;\n }\n catch (_a) { }\n switch (responseType) {\n case \"error\":\n case \"opaque\":\n case \"opaqueredirect\":\n // see https://developer.mozilla.org/en-US/docs/Web/API/Response/type\n throw new RpcError(`fetch response type ${fetchResponse.type}`, GrpcStatusCode[GrpcStatusCode.UNKNOWN]);\n }\n return readGrpcWebResponseHeader(fetchHeadersToHttp(fetchResponse.headers), fetchResponse.status, fetchResponse.statusText);\n }\n let headers = headersOrFetchResponse, httpOk = httpStatus >= 200 && httpStatus < 300, responseMeta = parseMetadata(headers), [statusCode, statusDetail] = parseStatus(headers);\n if ((statusCode === undefined || statusCode === GrpcStatusCode.OK) && !httpOk) {\n statusCode = httpStatusToGrpc(httpStatus);\n statusDetail = httpStatusText;\n }\n return [statusCode, statusDetail, responseMeta];\n}\n/**\n * Parses a grpc status (code and optional text) and meta data from response\n * trailers.\n *\n * Response trailers are expected as a byte array, but are actually just an\n * ASCII string with HTTP headers. Just pass the data of a grpc-web trailer\n * frame.\n */\nexport function readGrpcWebResponseTrailer(data) {\n let headers = parseTrailer(data), [code, detail] = parseStatus(headers), meta = parseMetadata(headers);\n return [code !== null && code !== void 0 ? code : GrpcStatusCode.OK, detail, meta];\n}\n/**\n * A grpc-frame type. Can be used to determine type of frame emitted by\n * `readGrpcWebResponseBody()`.\n */\nexport var GrpcWebFrame;\n(function (GrpcWebFrame) {\n GrpcWebFrame[GrpcWebFrame[\"DATA\"] = 0] = \"DATA\";\n GrpcWebFrame[GrpcWebFrame[\"TRAILER\"] = 128] = \"TRAILER\";\n})(GrpcWebFrame || (GrpcWebFrame = {}));\n/**\n * Parses a grpc-web response (unary or server streaming) from a fetch API\n * stream.\n *\n * Emits grpc-web frames.\n *\n * The returned promise resolves when the response is complete.\n */\nexport function readGrpcWebResponseBody(stream, contentType, onFrame) {\n return __awaiter(this, void 0, void 0, function* () {\n let streamReader, base64queue = \"\", byteQueue = new Uint8Array(0), format = parseFormat(contentType);\n // allows to read streams from the 'node-fetch' polyfill which uses\n // node.js ReadableStream instead of the what-wg streams api ReadableStream\n if (isReadableStream(stream)) {\n let whatWgReadableStream = stream.getReader();\n streamReader = {\n next: () => whatWgReadableStream.read()\n };\n }\n else {\n streamReader = stream[Symbol.asyncIterator]();\n }\n while (true) {\n let result = yield streamReader.next();\n if (result.value !== undefined) {\n if (format === \"text\") {\n // the statements below just decode base64 and append to `bytesUnread`\n // add incoming base64 to queue\n for (let i = 0; i < result.value.length; i++)\n base64queue += String.fromCharCode(result.value[i]);\n // if the base64 queue is not a multiple of 4,\n // we have to wait for more data\n let safeLen = base64queue.length - base64queue.length % 4;\n if (safeLen === 0)\n continue;\n // decode safe chunk of base64 and add to byte queue\n byteQueue = concatBytes(byteQueue, base64decode(base64queue.substring(0, safeLen)));\n base64queue = base64queue.substring(safeLen);\n }\n else {\n byteQueue = concatBytes(byteQueue, result.value);\n }\n // read all fully available data frames\n while (byteQueue.length >= 5 && byteQueue[0] === GrpcWebFrame.DATA) {\n let msgLen = 0;\n for (let i = 1; i < 5; i++)\n msgLen = (msgLen << 8) + byteQueue[i];\n if (byteQueue.length - 5 >= msgLen) {\n // we have the entire message\n onFrame(GrpcWebFrame.DATA, byteQueue.subarray(5, 5 + msgLen));\n byteQueue = byteQueue.subarray(5 + msgLen);\n }\n else\n break; // wait for more data\n }\n }\n // exit, but emit trailer if exists\n if (result.done) {\n if (byteQueue.length === 0)\n break;\n if (byteQueue[0] !== GrpcWebFrame.TRAILER || byteQueue.length < 5)\n throw new RpcError(\"premature EOF\", GrpcStatusCode[GrpcStatusCode.DATA_LOSS]);\n onFrame(GrpcWebFrame.TRAILER, byteQueue.subarray(5));\n break;\n }\n }\n });\n}\n// internal\nconst isReadableStream = (s) => {\n return typeof s.getReader == \"function\";\n};\n// internal\nfunction concatBytes(a, b) {\n let n = new Uint8Array(a.length + b.length);\n n.set(a);\n n.set(b, a.length);\n return n;\n}\n// determines format from response \"content-type\" value.\n// throws if value is unknown or missing.\nfunction parseFormat(contentType) {\n // > the sender *should* always specify the message format, e.g. +proto, +json\n //\n // > the receiver should assume the default is \"+proto\" when the message format is\n // > missing in Content-Type (as \"application/grpc-web\")\n //\n // see https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-WEB.md\n switch (contentType) {\n case \"application/grpc-web-text\":\n case \"application/grpc-web-text+proto\":\n return \"text\";\n case \"application/grpc-web\":\n case \"application/grpc-web+proto\":\n return \"binary\";\n case undefined:\n case null:\n throw new RpcError(\"missing response content type\", GrpcStatusCode[GrpcStatusCode.INTERNAL]);\n default:\n throw new RpcError(\"unexpected response content type: \" + contentType, GrpcStatusCode[GrpcStatusCode.INTERNAL]);\n }\n}\n// returns error code on parse failure\nfunction parseStatus(headers) {\n let code, message;\n let m = headers['grpc-message'];\n if (m !== undefined) {\n if (Array.isArray(m))\n return [GrpcStatusCode.INTERNAL, \"invalid grpc-web message\"];\n message = m;\n }\n let s = headers['grpc-status'];\n if (s !== undefined) {\n if (Array.isArray(s))\n return [GrpcStatusCode.INTERNAL, \"invalid grpc-web status\"];\n code = parseInt(s, 10);\n if (GrpcStatusCode[code] === undefined)\n return [GrpcStatusCode.INTERNAL, \"invalid grpc-web status\"];\n }\n return [code, message];\n}\n// skips grpc-web headers\nfunction parseMetadata(headers) {\n let meta = {};\n for (let [k, v] of Object.entries(headers))\n switch (k) {\n case 'grpc-message':\n case 'grpc-status':\n case 'content-type':\n break;\n default:\n meta[k] = v;\n }\n return meta;\n}\n// parse trailer data (ASCII) to our headers rep\nfunction parseTrailer(trailerData) {\n let headers = {};\n for (let chunk of String.fromCharCode.apply(String, trailerData).trim().split(\"\\r\\n\")) {\n if (chunk == \"\")\n continue;\n let [key, ...val] = chunk.split(\":\");\n const value = val.join(\":\").trim();\n key = key.trim();\n let e = headers[key];\n if (typeof e == \"string\")\n headers[key] = [e, value];\n else if (Array.isArray(e))\n e.push(value);\n else\n headers[key] = value;\n }\n return headers;\n}\n// fetch API to our headers rep\nfunction fetchHeadersToHttp(fetchHeaders) {\n let headers = {};\n fetchHeaders.forEach((value, key) => {\n let e = headers[key];\n if (typeof e == \"string\")\n headers[key] = [e, value];\n else if (Array.isArray(e))\n e.push(value);\n else\n headers[key] = value;\n });\n return headers;\n}\n// internal\nfunction httpStatusToGrpc(httpStatus) {\n switch (httpStatus) {\n case 200:\n return GrpcStatusCode.OK;\n case 400:\n return GrpcStatusCode.INVALID_ARGUMENT;\n case 401:\n return GrpcStatusCode.UNAUTHENTICATED;\n case 403:\n return GrpcStatusCode.PERMISSION_DENIED;\n case 404:\n return GrpcStatusCode.NOT_FOUND;\n case 409:\n return GrpcStatusCode.ABORTED;\n case 412:\n return GrpcStatusCode.FAILED_PRECONDITION;\n case 429:\n return GrpcStatusCode.RESOURCE_EXHAUSTED;\n case 499:\n return GrpcStatusCode.CANCELLED;\n case 500:\n return GrpcStatusCode.UNKNOWN;\n case 501:\n return GrpcStatusCode.UNIMPLEMENTED;\n case 503:\n return GrpcStatusCode.UNAVAILABLE;\n case 504:\n return GrpcStatusCode.DEADLINE_EXCEEDED;\n default:\n return GrpcStatusCode.UNKNOWN;\n }\n}\n","import { Deferred, RpcError, RpcOutputStreamController, ServerStreamingCall, UnaryCall, mergeRpcOptions } from \"@protobuf-ts/runtime-rpc\";\nimport { GrpcWebFrame, createGrpcWebRequestBody, createGrpcWebRequestHeader, readGrpcWebResponseBody, readGrpcWebResponseHeader, readGrpcWebResponseTrailer } from \"./grpc-web-format\";\nimport { GrpcStatusCode } from \"./goog-grpc-status-code\";\n/**\n * Implements the grpc-web protocol, supporting text format or binary\n * format on the wire. Uses the fetch API to do the HTTP requests.\n *\n * Does not support client streaming or duplex calls because grpc-web\n * does not support them.\n */\nexport class GrpcWebFetchTransport {\n constructor(defaultOptions) {\n this.defaultOptions = defaultOptions;\n }\n mergeOptions(options) {\n return mergeRpcOptions(this.defaultOptions, options);\n }\n /**\n * Create an URI for a gRPC web call.\n *\n * Takes the `baseUrl` option and appends:\n * - slash \"/\"\n * - package name\n * - dot \".\"\n * - service name\n * - slash \"/\"\n * - method name\n *\n * If the service was declared without a package, the package name and dot\n * are omitted.\n *\n * All names are used exactly like declared in .proto.\n */\n makeUrl(method, options) {\n let base = options.baseUrl;\n if (base.endsWith('/'))\n base = base.substring(0, base.length - 1);\n return `${base}/${method.service.typeName}/${method.name}`;\n }\n clientStreaming(method /*, options: RpcOptions*/) {\n const e = new RpcError('Client streaming is not supported by grpc-web', GrpcStatusCode[GrpcStatusCode.UNIMPLEMENTED]);\n e.methodName = method.name;\n e.serviceName = method.service.typeName;\n throw e;\n }\n duplex(method /*, options: RpcOptions*/) {\n const e = new RpcError('Duplex streaming is not supported by grpc-web', GrpcStatusCode[GrpcStatusCode.UNIMPLEMENTED]);\n e.methodName = method.name;\n e.serviceName = method.service.typeName;\n throw e;\n }\n serverStreaming(method, input, options) {\n var _a, _b, _c, _d, _e;\n let opt = options, format = (_a = opt.format) !== null && _a !== void 0 ? _a : 'text', fetch = (_b = opt.fetch) !== null && _b !== void 0 ? _b : globalThis.fetch, fetchInit = (_c = opt.fetchInit) !== null && _c !== void 0 ? _c : {}, url = this.makeUrl(method, opt), inputBytes = method.I.toBinary(input, opt.binaryOptions), defHeader = new Deferred(), responseStream = new RpcOutputStreamController(), responseEmptyBody = true, maybeStatus, defStatus = new Deferred(), maybeTrailer, defTrailer = new Deferred();\n fetch(url, Object.assign(Object.assign({}, fetchInit), { method: 'POST', headers: createGrpcWebRequestHeader(new globalThis.Headers(), format, opt.timeout, opt.meta), body: createGrpcWebRequestBody(inputBytes, format), signal: (_d = options.abort) !== null && _d !== void 0 ? _d : null // node-fetch@3.0.0-beta.9 rejects `undefined`\n }))\n .then(fetchResponse => {\n let [code, detail, meta] = readGrpcWebResponseHeader(fetchResponse);\n defHeader.resolve(meta);\n if (code != null && code !== GrpcStatusCode.OK)\n throw new RpcError(detail !== null && detail !== void 0 ? detail : GrpcStatusCode[code], GrpcStatusCode[code], meta);\n if (code != null)\n maybeStatus = {\n code: GrpcStatusCode[code],\n detail: detail !== null && detail !== void 0 ? detail : GrpcStatusCode[code]\n };\n return fetchResponse;\n })\n .then(fetchResponse => {\n if (!fetchResponse.body)\n throw new RpcError('missing response body', GrpcStatusCode[GrpcStatusCode.INTERNAL]);\n return readGrpcWebResponseBody(fetchResponse.body, fetchResponse.headers.get('content-type'), (type, data) => {\n switch (type) {\n case GrpcWebFrame.DATA:\n responseStream.notifyMessage(method.O.fromBinary(data, opt.binaryOptions));\n responseEmptyBody = false;\n break;\n case GrpcWebFrame.TRAILER:\n let code, detail;\n [code, detail, maybeTrailer] = readGrpcWebResponseTrailer(data);\n maybeStatus = {\n code: GrpcStatusCode[code],\n detail: detail !== null && detail !== void 0 ? detail : GrpcStatusCode[code]\n };\n break;\n }\n });\n })\n .then(() => {\n if (!maybeTrailer && !responseEmptyBody)\n throw new RpcError(`missing trailers`, GrpcStatusCode[GrpcStatusCode.DATA_LOSS]);\n // istanbul ignore if - this should be impossible and only here to satisfy TypeScript\n if (!maybeStatus)\n throw new RpcError(`missing status`, GrpcStatusCode[GrpcStatusCode.INTERNAL]);\n if (maybeStatus.code !== 'OK')\n throw new RpcError(maybeStatus.detail, maybeStatus.code, maybeTrailer);\n responseStream.notifyComplete();\n defStatus.resolve(maybeStatus);\n defTrailer.resolve(maybeTrailer || {});\n })\n .catch(reason => {\n let error;\n if (reason instanceof RpcError)\n error = reason;\n else if (reason instanceof Error && reason.name === 'AbortError')\n // aborted\n error = new RpcError(reason.message, GrpcStatusCode[GrpcStatusCode.CANCELLED]);\n else\n // RpcErrors are thrown by us, everything else is an internal error\n error = new RpcError(reason instanceof Error ? reason.message : \"\" + reason, GrpcStatusCode[GrpcStatusCode.INTERNAL]);\n error.methodName = method.name;\n error.serviceName = method.service.typeName;\n defHeader.rejectPending(error);\n responseStream.notifyError(error);\n defStatus.rejectPending(error);\n defTrailer.rejectPending(error);\n });\n return new ServerStreamingCall(method, (_e = opt.meta) !== null && _e !== void 0 ? _e : {}, input, defHeader.promise, responseStream, defStatus.promise, defTrailer.promise);\n }\n unary(method, input, options) {\n var _a, _b, _c, _d, _e;\n let opt = options, format = (_a = opt.format) !== null && _a !== void 0 ? _a : 'text', fetch = (_b = opt.fetch) !== null && _b !== void 0 ? _b : globalThis.fetch, fetchInit = (_c = opt.fetchInit) !== null && _c !== void 0 ? _c : {}, url = this.makeUrl(method, opt), inputBytes = method.I.toBinary(input, opt.binaryOptions), defHeader = new Deferred(), maybeMessage, defMessage = new Deferred(), maybeStatus, defStatus = new Deferred(), maybeTrailer, defTrailer = new Deferred();\n fetch(url, Object.assign(Object.assign({}, fetchInit), { method: 'POST', headers: createGrpcWebRequestHeader(new globalThis.Headers(), format, opt.timeout, opt.meta), body: createGrpcWebRequestBody(inputBytes, format), signal: (_d = options.abort) !== null && _d !== void 0 ? _d : null // node-fetch@3.0.0-beta.9 rejects `undefined`\n }))\n .then(fetchResponse => {\n let [code, detail, meta] = readGrpcWebResponseHeader(fetchResponse);\n defHeader.resolve(meta);\n if (code != null && code !== GrpcStatusCode.OK)\n throw new RpcError(detail !== null && detail !== void 0 ? detail : GrpcStatusCode[code], GrpcStatusCode[code], meta);\n if (code != null)\n maybeStatus = {\n code: GrpcStatusCode[code],\n detail: detail !== null && detail !== void 0 ? detail : GrpcStatusCode[code]\n };\n return fetchResponse;\n })\n .then(fetchResponse => {\n if (!fetchResponse.body)\n throw new RpcError('missing response body', GrpcStatusCode[GrpcStatusCode.INTERNAL]);\n return readGrpcWebResponseBody(fetchResponse.body, fetchResponse.headers.get('content-type'), (type, data) => {\n switch (type) {\n case GrpcWebFrame.DATA:\n if (maybeMessage)\n throw new RpcError(`unary call received 2nd message`, GrpcStatusCode[GrpcStatusCode.DATA_LOSS]);\n maybeMessage = method.O.fromBinary(data, opt.binaryOptions);\n break;\n case GrpcWebFrame.TRAILER:\n let code, detail;\n [code, detail, maybeTrailer] = readGrpcWebResponseTrailer(data);\n maybeStatus = {\n code: GrpcStatusCode[code],\n detail: detail !== null && detail !== void 0 ? detail : GrpcStatusCode[code]\n };\n break;\n }\n });\n })\n .then(() => {\n if (!maybeTrailer && maybeMessage)\n throw new RpcError(`missing trailers`, GrpcStatusCode[GrpcStatusCode.DATA_LOSS]);\n // istanbul ignore if - this should be impossible and only here to satisfy TypeScript\n if (!maybeStatus)\n throw new RpcError(`missing status`, GrpcStatusCode[GrpcStatusCode.INTERNAL]);\n if (!maybeMessage && maybeStatus.code === 'OK')\n throw new RpcError('expected error status', GrpcStatusCode[GrpcStatusCode.DATA_LOSS]);\n if (!maybeMessage)\n throw new RpcError(maybeStatus.detail, maybeStatus.code, maybeTrailer);\n defMessage.resolve(maybeMessage);\n if (maybeStatus.code !== 'OK')\n throw new RpcError(maybeStatus.detail, maybeStatus.code, maybeTrailer);\n defStatus.resolve(maybeStatus);\n defTrailer.resolve(maybeTrailer || {});\n })\n .catch(reason => {\n let error;\n if (reason instanceof RpcError)\n error = reason;\n else if (reason instanceof Error && reason.name === 'AbortError')\n // aborted\n error = new RpcError(reason.message, GrpcStatusCode[GrpcStatusCode.CANCELLED]);\n else\n // RpcErrors are thrown by us, everything else is an internal error\n error = new RpcError(reason instanceof Error ? reason.message : \"\" + reason, GrpcStatusCode[GrpcStatusCode.INTERNAL]);\n error.methodName = method.name;\n error.serviceName = method.service.typeName;\n defHeader.rejectPending(error);\n defMessage.rejectPending(error);\n defStatus.rejectPending(error);\n defTrailer.rejectPending(error);\n });\n return new UnaryCall(method, (_e = opt.meta) !== null && _e !== void 0 ? _e : {}, input, defHeader.promise, defMessage.promise, defStatus.promise, defTrailer.promise);\n }\n}\n","// Utility wrappers for protobuf.\n\nimport { JsonValue, JsonObject, typeofJsonValue, isJsonObject, JsonReadOptions } from \"@protobuf-ts/runtime\";\nimport { jsonReadOptions } from \"@protobuf-ts/runtime\";\nimport { Value, NullValue, ListValue, Struct } from \"./proto/otonoma/common/value\";\n\n\n// Hijack the fromJson function, provide our own implementation that is the sensible choice.\nValue.fromJson = (json: JsonValue, options) => fromJsonValueInner(json, jsonReadOptions(options));\nexport function fromJsonValue(json: JsonValue): Value {\n return fromJsonValueInner(json, { ignoreUnknownFields: false });\n}\n\n// Converts a json value to a otonoma common Value.\nfunction fromJsonValueInner(json: JsonValue, options: JsonReadOptions, target?: Value): Value {\n if (!target)\n target = Value.create();\n switch (typeof json) {\n case \"undefined\":\n // NOTE: We coalesce undefined to null, which is fine for our purposes.\n target.kind = { oneofKind: \"nullValue\", nullValue: NullValue.NULL_VALUE };\n break;\n case \"bigint\":\n if (json < 0) {\n target.kind = { oneofKind: \"negIntValue\", negIntValue: json };\n } else {\n target.kind = { oneofKind: \"posIntValue\", posIntValue: json };\n }\n break;\n case \"number\":\n // Check the number further.\n if (Number.isNaN(json) || !Number.isFinite(json)) {\n // TODO: We could special case NaN and Inf.\n throw \"PNCP cannot handle NaN or infinite values yet.\";\n }\n if (Number.isInteger(json)) {\n if (json < 0) {\n target.kind = { oneofKind: \"negIntValue\", negIntValue: BigInt(json) };\n } else {\n target.kind = { oneofKind: \"posIntValue\", posIntValue: BigInt(json) };\n }\n } else {\n target.kind = { oneofKind: \"numberValue\", numberValue: json };\n }\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 \" + Value.typeName + \" from JSON \" + typeofJsonValue(json));\n }\n return target;\n}\n\nListValue.fromJson = (json: Array<JsonValue>) => {\n if (!globalThis.Array.isArray(json))\n throw new globalThis.Error(\"Unable to parse \" + ListValue.typeName + \" from JSON \" + typeofJsonValue(json));\n let target = ListValue.create();\n let values = json.map(v => Value.fromJson(v));\n target.values.push(...values);\n return target;\n};\n\nStruct.fromJson = (json: JsonObject) => {\n\n if (!isJsonObject(json))\n throw new globalThis.Error(\"Unable to parse message \" + Struct.typeName + \" from JSON \" + typeofJsonValue(json) + \".\");\n let target = Struct.create();\n for (let [k, v] of globalThis.Object.entries(json)) {\n target.fields[k] = Value.fromJson(v);\n }\n return target;\n};\n\nValue.toJson = (message: Value, options) => fromValueToJson(message);\n\nexport function fromValueToJson(message: Value): 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 \"negIntValue\": return Number(message.kind.negIntValue);\n case \"posIntValue\": return Number(message.kind.posIntValue);\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 = Value.fields.find(f => f.no === 8);\n if (listValueField?.kind !== \"message\")\n throw new globalThis.Error();\n return listValueField.T().toJson(message.kind.listValue);\n case \"structValue\":\n let structValueField = Value.fields.find(f => f.no === 7);\n if (structValueField?.kind !== \"message\")\n throw new globalThis.Error();\n return structValueField.T().toJson(message.kind.structValue);\n }\n\n}\n\nStruct.toJson = (message: Struct) => {\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\nListValue.toJson = (message: ListValue) => {\n return message.values.map(v => Value.toJson(v));\n}\n","// @generated by protobuf-ts 2.9.4\n// @generated from protobuf file \"grpc/health/v1/health.proto\" (package \"grpc.health.v1\", syntax proto3)\n// tslint:disable\n//\n// Copyright 2015 The gRPC Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n//\n//\n// The canonical version of this proto can be found at\n// https://github.com/grpc/grpc-proto/blob/master/grpc/health/v1/health.proto\n//\nimport { ServiceType } from \"@protobuf-ts/runtime-rpc\";\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\";\n/**\n * @generated from protobuf message grpc.health.v1.HealthCheckRequest\n */\nexport interface HealthCheckRequest {\n /**\n * @generated from protobuf field: string service = 1;\n */\n service: string;\n}\n/**\n * @generated from protobuf message grpc.health.v1.HealthCheckResponse\n */\nexport interface HealthCheckResponse {\n /**\n * @generated from protobuf field: grpc.health.v1.HealthCheckResponse.ServingStatus status = 1;\n */\n status: HealthCheckResponse_ServingStatus;\n}\n/**\n * @generated from protobuf enum grpc.health.v1.HealthCheckResponse.ServingStatus\n */\nexport enum HealthCheckResponse_ServingStatus {\n /**\n * @generated from protobuf enum value: UNKNOWN = 0;\n */\n UNKNOWN = 0,\n /**\n * @generated from protobuf enum value: SERVING = 1;\n */\n SERVING = 1,\n /**\n * @generated from protobuf enum value: NOT_SERVING = 2;\n */\n NOT_SERVING = 2,\n /**\n * Used only by the Watch method.\n *\n * @generated from protobuf enum value: SERVICE_UNKNOWN = 3;\n */\n SERVICE_UNKNOWN = 3\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass HealthCheckRequest$Type extends MessageType<HealthCheckRequest> {\n constructor() {\n super(\"grpc.health.v1.HealthCheckRequest\", [\n { no: 1, name: \"service\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<HealthCheckRequest>): HealthCheckRequest {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.service = \"\";\n if (value !== undefined)\n reflectionMergePartial<HealthCheckRequest>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: HealthCheckRequest): HealthCheckRequest {\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 service */ 1:\n message.service = 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: HealthCheckRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string service = 1; */\n if (message.service !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.service);\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 grpc.health.v1.HealthCheckRequest\n */\nexport const HealthCheckRequest = new HealthCheckRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass HealthCheckResponse$Type extends MessageType<HealthCheckResponse> {\n constructor() {\n super(\"grpc.health.v1.HealthCheckResponse\", [\n { no: 1, name: \"status\", kind: \"enum\", T: () => [\"grpc.health.v1.HealthCheckResponse.ServingStatus\", HealthCheckResponse_ServingStatus] }\n ]);\n }\n create(value?: PartialMessage<HealthCheckResponse>): HealthCheckResponse {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.status = 0;\n if (value !== undefined)\n reflectionMergePartial<HealthCheckResponse>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: HealthCheckResponse): HealthCheckResponse {\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 /* grpc.health.v1.HealthCheckResponse.ServingStatus status */ 1:\n message.status = 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: HealthCheckResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* grpc.health.v1.HealthCheckResponse.ServingStatus status = 1; */\n if (message.status !== 0)\n writer.tag(1, WireType.Varint).int32(message.status);\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 grpc.health.v1.HealthCheckResponse\n */\nexport const HealthCheckResponse = new HealthCheckResponse$Type();\n/**\n * @generated ServiceType for protobuf service grpc.health.v1.Health\n */\nexport const Health = new ServiceType(\"grpc.health.v1.Health\", [\n { name: \"Check\", options: {}, I: HealthCheckRequest, O: HealthCheckResponse },\n { name: \"Watch\", serverStreaming: true, options: {}, I: HealthCheckRequest, O: HealthCheckResponse }\n]);\n","// @generated by protobuf-ts 2.9.4\n// @generated from protobuf file \"grpc/health/v1/health.proto\" (package \"grpc.health.v1\", syntax proto3)\n// tslint:disable\n//\n// Copyright 2015 The gRPC Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n//\n//\n// The canonical version of this proto can be found at\n// https://github.com/grpc/grpc-proto/blob/master/grpc/health/v1/health.proto\n//\nimport type { RpcTransport } from \"@protobuf-ts/runtime-rpc\";\nimport type { ServiceInfo } from \"@protobuf-ts/runtime-rpc\";\nimport { Health } from \"./health\";\nimport type { ServerStreamingCall } from \"@protobuf-ts/runtime-rpc\";\nimport { stackIntercept } from \"@protobuf-ts/runtime-rpc\";\nimport type { HealthCheckResponse } from \"./health\";\nimport type { HealthCheckRequest } from \"./health\";\nimport type { UnaryCall } from \"@protobuf-ts/runtime-rpc\";\nimport type { RpcOptions } from \"@protobuf-ts/runtime-rpc\";\n/**\n * @generated from protobuf service grpc.health.v1.Health\n */\nexport interface IHealthClient {\n /**\n * If the requested service is unknown, the call will fail with status\n * NOT_FOUND.\n *\n * @generated from protobuf rpc: Check(grpc.health.v1.HealthCheckRequest) returns (grpc.health.v1.HealthCheckResponse);\n */\n check(input: HealthCheckRequest, options?: RpcOptions): UnaryCall<HealthCheckRequest, HealthCheckResponse>;\n /**\n * Performs a watch for the serving status of the requested service.\n * The server will immediately send back a message indicating the current\n * serving status. It will then subsequently send a new message whenever\n * the service's serving status changes.\n *\n * If the requested service is unknown when the call is received, the\n * server will send a message setting the serving status to\n * SERVICE_UNKNOWN but will *not* terminate the call. If at some\n * future point, the serving status of the service becomes known, the\n * server will send a new message with the service's serving status.\n *\n * If the call terminates with status UNIMPLEMENTED, then clients\n * should assume this method is not supported and should not retry the\n * call. If the call terminates with any other status (including OK),\n * clients should retry the call with appropriate exponential backoff.\n *\n * @generated from protobuf rpc: Watch(grpc.health.v1.HealthCheckRequest) returns (stream grpc.health.v1.HealthCheckResponse);\n */\n watch(input: HealthCheckRequest, options?: RpcOptions): ServerStreamingCall<HealthCheckRequest, HealthCheckResponse>;\n}\n/**\n * @generated from protobuf service grpc.health.v1.Health\n */\nexport class HealthClient implements IHealthClient, ServiceInfo {\n typeName = Health.typeName;\n methods = Health.methods;\n options = Health.options;\n constructor(private readonly _transport: RpcTransport) {\n }\n /**\n * If the requested service is unknown, the call will fail with status\n * NOT_FOUND.\n *\n * @generated from protobuf rpc: Check(grpc.health.v1.HealthCheckRequest) returns (grpc.health.v1.HealthCheckResponse);\n */\n check(input: HealthCheckRequest, options?: RpcOptions): UnaryCall<HealthCheckRequest, HealthCheckResponse> {\n const method = this.methods[0], opt = this._transport.mergeOptions(options);\n return stackIntercept<HealthCheckRequest, HealthCheckResponse>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * Performs a watch for the serving status of the requested service.\n * The server will immediately send back a message indicating the current\n * serving status. It will then subsequently send a new message whenever\n * the service's serving status changes.\n *\n * If the requested service is unknown when the call is received, the\n * server will send a message setting the serving status to\n * SERVICE_UNKNOWN but will *not* terminate the call. If at some\n * future point, the serving status of the service becomes known, the\n * server will send a new message with the service's serving status.\n *\n * If the call terminates with status UNIMPLEMENTED, then clients\n * should assume this method is not supported and should not retry the\n * call. If the call terminates with any other status (including OK),\n * clients should retry the call with appropriate exponential backoff.\n *\n * @generated from protobuf rpc: Watch(grpc.health.v1.HealthCheckRequest) returns (stream grpc.health.v1.HealthCheckResponse);\n */\n watch(input: HealthCheckRequest, options?: RpcOptions): ServerStreamingCall<HealthCheckRequest, HealthCheckResponse> {\n const method = this.methods[1], opt = this._transport.mergeOptions(options);\n return stackIntercept<HealthCheckRequest, HealthCheckResponse>(\"serverStreaming\", this._transport, method, opt, input);\n }\n}\n","// Wrapper client around the paranet broker and data service.\n\nimport { BrokerClient } from \"./proto/broker.grpc.client\";\nimport { ConversationId, ConversationMembership } from \"./proto/identifiers\";\nimport {\n PncpRequest,\n PncpMessage,\n PncpCallback,\n SkillMatchStrategy,\n PncpMessageKind,\n} from \"./proto/pncp\";\nimport { LoginRequest, MessageResponse, PncpCallbackRequest, RefreshTokenRequest } from \"./proto/broker_api\";\nimport { jwtDecode } from \"jwt-decode\";\nimport { ObservationCallback, ObservationMessageWrapper, ObservationRequest } from \"./proto/observation\";\n\nimport { GrpcWebFetchTransport } from \"@protobuf-ts/grpcweb-transport\";\nimport { RpcError, RpcMetadata, RpcOptions, ServerStreamingCall, UnaryCall } from \"@protobuf-ts/runtime-rpc\";\nimport { fromJsonValue } from \"./util\";\nimport { Value } from \"./proto/otonoma/common/value\";\nimport { MessageRequest, PncpMessageObject, SkillRequest } from \"./pncp\";\nimport { HealthClient } from \"./proto/grpc/health/v1/health.client\";\nimport { HealthCheckRequest, HealthCheckResponse_ServingStatus } from \"./proto/grpc/health/v1/health\";\n\nexport interface ParanetClientInit {\n endpoint: string;\n actorId?: string;\n}\n\nexport interface PncpClientInit {\n endpoint: string;\n actorId?: string;\n actorVersion?: string;\n token?: string;\n refreshToken?: string;\n // Allows overriding the fetch implementation, needed for non-web UIs that don't provide\n // a complete fetch implementation by default (e.g. react-native).\n fetch?: any;\n}\n\nexport class PncpClient {\n transport: GrpcWebFetchTransport;\n inner: BrokerClient;\n health: HealthClient;\n endpoint: string;\n actorId?: string;\n actorVersion?: string;\n token?: string;\n refreshToken?: string;\n tokenExp?: Date;\n tokenCb?: (token: string, refresh: string) => void;\n\n constructor(init: PncpClientInit) {\n this.actorId = init.actorId;\n this.endpoint = init.endpoint;\n this.actorVersion = init.actorVersion;\n // TODO: Consider passing in transport config.\n this.transport = new GrpcWebFetchTransport({\n baseUrl: init.endpoint,\n format: \"binary\",\n fetch: init.fetch,\n // TODO: Consider other methods here.\n });\n this.inner = new BrokerClient(this.transport);\n this.health = new HealthClient(this.transport);\n }\n\n public async healthCheck(service: string = \"\"): Promise<boolean> {\n const req: HealthCheckRequest = { service };\n const response = this.health.check(req);\n await response.status;\n const data = await response.response;\n return data.status === HealthCheckResponse_ServingStatus.SERVING;\n }\n\n public async pncpRequest(req: SkillRequest): Promise<MessageResponse> {\n let version = req.actorVersion || this.actorVersion || \"\";\n let actorId = req.actorId || this.actorId;\n if (!actorId) {\n throw new Error(\"Invalid request, must know the actor ID\");\n }\n\n let pncpReq: PncpRequest = {\n body: {\n subject: req.subject,\n action: req.action,\n body: Value.fromJson(req.body),\n },\n author: {\n id: actorId,\n version,\n },\n callback: req.callback ? fromJsonValue(req.callback) : undefined,\n parentId: req.parentConversationId,\n versionReq: req.versionReq,\n targetActorId: req.targetId,\n matchStrategy: req.matchStrategy || SkillMatchStrategy.BEST,\n mustMatch: req.mustMatch || true,\n useLock: req.useLock || false,\n };\n return await this.directPncpRequest(pncpReq);\n }\n\n public async directPncpRequest(req: PncpRequest): Promise<MessageResponse> {\n let response = await this.issue(req, BrokerClient.prototype.skillRequest);\n return response;\n }\n\n public async pncpMessage(data: MessageRequest): Promise<MessageResponse> {\n const [id, tag] = data.conversation.split(\"@\");\n const membership = tag === \"requester\" ? ConversationMembership.REQUESTER : tag === \"fulfiller\" ? ConversationMembership.FULFILLER : ConversationMembership.OBSERVER;\n let pncpId: ConversationId = { id, membership };\n return await this.pncpMessageObject({ id: pncpId, body: data.message });\n\n }\n\n public async pncpMessageObject(data: PncpMessageObject): Promise<MessageResponse> {\n let extra: any;\n switch (data.body.type) {\n case PncpMessageKind.PNCP_QUESTION: {\n extra = {\n oneofKind: \"question\",\n question: {\n id: data.body.value.id,\n callback: data.body.value.callback ? fromJsonValue(data.body.value.callback) : undefined,\n }\n };\n break;\n }\n case PncpMessageKind.PNCP_ANSWER: {\n extra = {\n oneofKind: \"answer\",\n answer: {\n replyTo: data.body.value.reply_to,\n }\n };\n break;\n }\n default: extra = { oneofKind: undefined };\n }\n let pncpMsg: PncpMessage = {\n id: data.id,\n kind: data.body.type,\n body: fromJsonValue(data.body.value.data),\n extra,\n };\n\n return await this.directPncpMessage(pncpMsg);\n }\n\n public async directPncpMessage(data: PncpMessage): Promise<MessageResponse> {\n let response = await this.issue(data, BrokerClient.prototype.pncpMessageRequest);\n return response;\n }\n\n // Creates a new pncp callback listener.\n public pncpListener(config?: { sendOpen?: boolean, actorIds?: string[] }): PncpListener {\n let shouldSendOpen = !!config?.sendOpen;\n return new PncpListener(this, shouldSendOpen, config?.actorIds || []);\n }\n\n public observerListener(init: ObservationRequest): ParanetObserverListener {\n return new ParanetObserverListener(this, init);\n }\n\n public async login(creds: LoginCredentials): Promise<TokenResponse> {\n let secret: any;\n let actorId = creds.actorId || this.actorId;\n if (!actorId) {\n throw new Error(\"Must have an actor ID to login\");\n }\n this.actorId = actorId;\n switch (creds.kind) {\n case \"token\":\n secret = { oneofKind: \"token\", token: creds.secret }; break;\n case \"password\": secret = { oneofKind: \"password\", password: creds.secret }; break;\n default:\n throw new Error(\"Invalid creds type\");\n }\n let req: LoginRequest = {\n actorId: this.actorId,\n secret,\n };\n\n let response = await this.issue(req, BrokerClient.prototype.login);\n let token = response.token;\n let refresh_token = response.refreshToken;\n this.setTokens(token, refresh_token);\n return { refresh_token, access_token: token };\n }\n\n public async refreshAuth(): Promise<TokenResponse> {\n if (!this.token || !this.refreshToken) {\n throw new Error(\"Cannot refresh auth, no tokens set.\");\n }\n let req: RefreshTokenRequest = {\n token: this.token,\n refreshToken: this.refreshToken,\n };\n let response = await this.issue(req, BrokerClient.prototype.refreshToken);\n let token = response.token;\n let refreshToken = response.refreshToken;\n this.setTokens(token, refreshToken);\n return { refresh_token: refreshToken, access_token: token };\n }\n\n public logout() {\n this.setTokens();\n }\n\n public setTokens(token?: string, refresh?: string) {\n this.token = token;\n this.refreshToken = refresh;\n if (token && refresh) {\n let decoded = jwtDecode(token);\n this.tokenExp = decoded.exp ? new Date(decoded.exp * 1000) : undefined;\n if (this.tokenCb) {\n this.tokenCb(token, refresh);\n }\n }\n }\n\n public setTokenCb(cb: (token: string, refresh: string) => void) {\n this.tokenCb = cb;\n }\n\n public hasTokens(): boolean {\n return this.token != undefined;\n }\n\n public getTokens(): { token?: string; refresh?: string } {\n return { token: this.token, refresh: this.refreshToken };\n }\n\n public isTokenValid(): boolean {\n if (!this.tokenExp) {\n return false;\n }\n let now = new Date();\n // Add one minute to now. This will make it so the token \"expires\" sooner than it really\n // does, but allow a more clear indication that it is time to refresh.\n now.setTime(now.getTime() + 1000 * 60);\n return now < this.tokenExp;\n }\n\n getMetadata(): RpcMetadata {\n return {\n 'x-actor-id': this.actorId!,\n ...(this.token && { 'authorization': `Bearer ${this.token}` })\n };\n }\n\n async issue<R extends object, T extends object>(req: R, f: (this: BrokerClient, req: R, metadata: RpcOptions) => UnaryCall<R, T>): Promise<T> {\n let md = this.getMetadata();\n let response = f.bind(this.inner)(req, {\n meta: md,\n });\n // Rejects if it failed.\n await response.status;\n let data = await response.response;\n return data;\n }\n}\n\nexport abstract class ParanetListener<Treq extends object, Tres extends object, TresIn extends object = Tres> {\n client: PncpClient;\n start?: (client: PncpClient) => void;\n msg?: (msg: Tres, client: PncpClient) => void;\n error?: (msg: string, fatal: boolean) => void;\n disconnected?: () => void;\n reconnected?: () => void;\n shouldAutoReconnect: boolean = true;\n\n streamState?: {\n stream: ServerStreamingCall<Treq, TresIn>;\n abort: AbortController;\n };\n\n protected constructor(client: PncpClient) {\n this.client = client;\n }\n\n protected abstract getRequest(): RpcStreamRequest<Treq, TresIn>;\n protected abstract getRes(t: TresIn): Tres | null;\n\n public onmessage(f: (msg: Tres, client: PncpClient) => void): this {\n this.msg = f;\n return this;\n }\n\n public onstart(f: (client: PncpClient) => void): this {\n this.start = f;\n return this;\n }\n\n public onerror(f: (msg: string, isFatal: boolean) => void): this {\n this.error = f;\n return this;\n }\n\n public ondisconnect(f: () => void): this {\n this.disconnected = f;\n return this;\n }\n\n public onreconnect(f: () => void): this {\n this.reconnected = f;\n return this;\n }\n\n public autoReconnect(v: boolean): this {\n this.shouldAutoReconnect = v;\n return this;\n }\n\n\n public connect() {\n this.makeDecoratedStream(false);\n }\n\n public disconnect() {\n if (this.streamState) {\n this.streamState.abort.abort(\"disconnect called.\");\n this.streamState = undefined;\n }\n }\n\n makeDecoratedStream(isReconnect: boolean, timeout = 100) {\n if (this.streamState) {\n this.disconnect();\n }\n\n // Set it up as a new one when we create a new stream.\n let abort = new AbortController();\n\n let { method, body } = this.getRequest();\n let stream = method.bind(this.client.inner)(body, {\n meta: this.client.getMetadata(),\n abort: abort.signal\n });\n this.streamState = { stream, abort };\n // Wait for the headers, indicating success.\n // Note: This doesn't seem to work on firefox for some reason.\n // Seems to be working fine in chrome though.\n stream.headers.then((_headers) => {\n this.start?.(this.client);\n if (isReconnect) {\n this.reconnected?.();\n }\n }).catch((err: RpcError) => {\n // We need this catch here because of retry looping.\n // We don't need to call this.error on this because it will come through on the onError still.\n });\n\n // Handle the message stream finally.\n stream.responses.onMessage((msg) => {\n let unwrapped = this.getRes(msg);\n if (unwrapped) {\n this.msg?.(unwrapped, this.client);\n }\n });\n\n stream.responses.onError(async (err) => {\n // Check if we aborted to know if we should retry or not.\n this.disconnected?.();\n if (!abort.signal.aborted) {\n if (err.name == \"RpcError\") {\n let rpcErr = err as RpcError;\n if (rpcErr.code == \"UNAUTHENTICATED\") {\n try {\n await this.client.refreshAuth();\n } catch (e) {\n this.error?.(err.message, true);\n abort.abort(\"Unauthenticated\");\n // Exit early in this case.\n return;\n }\n }\n }\n this.error?.(err.message, false);\n if (this.shouldAutoReconnect) {\n // Increase timeout, saturated at 10000ms.\n timeout = 2 * timeout + 1;\n if (timeout > 10000)\n timeout = 10000;\n setTimeout(() => this.makeDecoratedStream(true, timeout), timeout);\n }\n }\n\n });\n // Semantically, this should never happen for a paranet connection, however, it might\n // at some point in the future, so we should handle this case appropriately.\n stream.responses.onComplete(() => {\n this.disconnected?.();\n });\n }\n}\n\nexport class PncpListener extends ParanetListener<PncpCallbackRequest, PncpCallback> {\n sendOpen: boolean;\n additionals: string[];\n constructor(client: PncpClient, sendOpen: boolean, additionals: string[]) {\n super(client);\n this.sendOpen = sendOpen;\n this.additionals = additionals;\n }\n\n protected getRequest(): RpcStreamRequest<PncpCallbackRequest, PncpCallback> {\n return {\n method: BrokerClient.prototype.pncpCallbackStream,\n body: {\n disableSkillForwarding: false,\n sendOpenMessages: this.sendOpen,\n actorIds: this.additionals,\n }\n };\n }\n\n protected getRes(t: PncpCallback): PncpCallback | null {\n if (t.body.oneofKind == undefined) return null;\n return t;\n }\n}\n\ninterface RpcStreamRequest<TReq extends object, TRes extends object> {\n method: (this: BrokerClient, body: TReq, meta: RpcOptions) => ServerStreamingCall<TReq, TRes>;\n body: TReq;\n}\n\nexport class ParanetObserverListener extends ParanetListener<ObservationRequest, ObservationCallback, ObservationMessageWrapper> {\n init: ObservationRequest;\n constructor(client: PncpClient, init: ObservationRequest) {\n super(client);\n this.init = init;\n }\n\n protected getRequest(): RpcStreamRequest<ObservationRequest, ObservationMessageWrapper> {\n return {\n method: BrokerClient.prototype.createObserverStream,\n body: this.init,\n };\n }\n\n protected getRes(t: ObservationMessageWrapper): ObservationCallback | null {\n if (t.body) return t.body;\n return null;\n }\n}\n\nexport abstract class BaseClient {\n actorId?: string;\n endpoint: string;\n // Access token, provided on login calls.\n protected token?: string;\n protected refreshToken?: string;\n protected tokenExp?: Date;\n protected tokenCb?: (token: string, refresh: string) => void;\n\n constructor(init: ParanetClientInit) {\n this.endpoint = cleanUrl(init.endpoint);\n this.actorId = init.actorId;\n }\n\n public getEndpoint(): string {\n return this.endpoint;\n }\n\n // Logs in this client and stores the token on the client.\n public async login(secret: LoginCredentials): Promise<TokenResponse> {\n let id = secret.actorId || this.actorId;\n if (!id) {\n throw new Error(\"Missing actor ID\");\n }\n let response: TokenResponse = await this.postJson(\n \"login\",\n {\n id,\n ...secret,\n }\n );\n this.actorId = id;\n\n this.setTokens(response.access_token, response.refresh_token);\n return response;\n }\n\n public async refreshAuth(): Promise<TokenResponse> {\n let tokens: TokenResponse = await this.postJson(\n \"token/refresh\",\n {\n token: this.token,\n refresh_token: this.refreshToken,\n }\n );\n this.setTokens(tokens.access_token, tokens.refresh_token);\n return tokens;\n }\n\n public logout() {\n this.setTokens();\n }\n\n public setTokens(token?: string, refresh?: string) {\n this.token = token;\n this.refreshToken = refresh;\n if (token && refresh) {\n let decoded = jwtDecode(token);\n this.tokenExp = decoded.exp ? new Date(decoded.exp * 1000) : undefined;\n if (this.tokenCb) {\n this.tokenCb(token, refresh);\n }\n }\n }\n\n public setTokenCb(cb: (token: string, refresh: string) => void) {\n this.tokenCb = cb;\n }\n\n public hasTokens(): boolean {\n return this.token != undefined;\n }\n\n public getTokens(): { token?: string; refresh?: string } {\n return { token: this.token, refresh: this.refreshToken };\n }\n\n public isTokenValid(): boolean {\n if (!this.tokenExp) {\n return false;\n }\n let now = new Date();\n // Add one minute to now. This will make it so the token \"expires\" sooner than it really\n // does, but allow a more clear indication that it is time to refresh.\n now.setTime(now.getTime() + 1000 * 60);\n return now < this.tokenExp;\n }\n\n protected async postJson<T>(path: string, body: any): Promise<T> {\n let response = await this.post_(path, JSON.stringify(body), { \"content-type\": \"application/json\" });\n return await response.json();\n }\n\n protected async post_(path: string, body: any, headers?: Record<string, string>): Promise<Response> {\n let response = await this.fetch(path, \"POST\", body, headers);\n return response;\n }\n\n protected async get<T>(path: string): Promise<T> {\n let response = await this.fetch(path, \"GET\");\n return await response.json();\n }\n\n protected async fetch(path: string, method: string, body?: any, headers?: Record<string, string>): Promise<Response> {\n let url = `${this.endpoint}/${path}`;\n const mkFetch = () => fetch(url, {\n method,\n body,\n headers: {\n ...(headers || {}),\n ...this.getHeaders(),\n },\n });\n let response = await mkFetch();\n if (response.status == 401) {\n await this.refreshAuth();\n response = await mkFetch();\n }\n if (response.status != 200) {\n let text = await response.text();\n throw new Error(\n `Failed to read from endpoint \"${url}\" (${response.status}): ${text} `\n );\n }\n\n return response;\n }\n\n getHeaders(): any {\n return {\n \"X-ACTOR-ID\": this.actorId,\n ...(this.token && { Authorization: `Bearer ${this.token}` }),\n };\n }\n}\n\nexport class ParanetServiceClient extends BaseClient {\n constructor(init: ParanetClientInit) {\n super(init);\n }\n\n public serviceEndpoint(): string {\n return this.endpoint;\n }\n\n // TODO fill in a specific type.\n // TODO: At a higher level than this we need a schema manager which properly parses\n // schemas and caches them.\n public async schemaFetch(path: string): Promise<any> {\n return await this.get(`schema/${path}`);\n }\n\n public async documentFetch({ name, id }: DocumentArgs): Promise<Response> {\n if (name) {\n return await this.fetch(`document/fetch/name/${name}`, \"GET\");\n }\n\n if (id) {\n return await this.fetch(`document/fetch/id/${id}`, \"GET\");\n }\n\n throw new Error(\"Must provide either a name or id to fetch a document.\");\n }\n\n public async documentUpload(data: File | any, args?: DocumentArgs): Promise<DocumentInfo> {\n const formData = new FormData();\n let md = {\n public: args?.public,\n };\n formData.set(\"md\", new Blob([JSON.stringify(md)], { type: 'application/json' }));\n formData.set(\"file\", data);\n let response: Response | null = null;\n if (args?.name) {\n const url = `document/upload/name/${args.name}`;\n response = await this.post_(url, formData);\n }\n else if (args?.id) {\n const url = `document/upload/id/${args.id}`;\n response = await this.post_(url, formData);\n } else {\n response = await this.post_(\"document/upload\", formData);\n }\n\n return await response.json();\n }\n\n public async graphql(query: string, inputs?: Record<string, any>): Promise<any> {\n let response: any = await this.postJson(\n \"graphql\",\n {\n query,\n variables: inputs,\n }\n );\n\n return response;\n }\n}\n\nexport class SysClient extends BaseClient {\n constructor(init: ParanetClientInit) {\n super(init);\n }\n\n public async nodeInfo(): Promise<NodeInfo> {\n return await this.get('node-info');\n }\n}\n\nexport interface LoginCredentials {\n // Use the default if not provided.\n actorId?: string;\n secret: string;\n kind: \"password\" | \"token\" | \"jwt\";\n}\n\nexport type TokenResponse = {\n access_token: string;\n refresh_token: string;\n};\n\n// Some util functions.\nfunction cleanUrl(url: string): string {\n if (url.endsWith(\"/\")) {\n url = url.slice(0, url.length - 1);\n }\n return url;\n}\n\nexport interface DocumentArgs {\n name?: string;\n id?: string;\n public?: boolean;\n}\n\nexport interface DocumentInfo {\n id: string;\n contentType: string;\n}\n\nexport interface NodeInfo {\n id: string;\n name: string;\n versions: {\n broker: string;\n expected_paraflow: string;\n expected_paracord: string;\n para_version: string;\n platform_version: string;\n platform_channel: string;\n }\n}\n","import { PncpMessageBody, PncpMessageObject, PncpRequestObject, PncpPacketObject } from \"./pncp\";\nimport * as schema from \"./schema/paranet\";\nimport * as proto from \"./proto/pncp\";\nimport { ConversationId, ConversationMembership } from \"./proto/identifiers\";\n\nexport function gqlSimplifyPncpPacket(req: schema.PncpPacket): PncpPacketObject {\n switch (req.type) {\n case \"request\": return { type: \"request\", body: gqlSimplifyPncpRequest(req.body) };\n case \"message\": return { type: \"message\", body: gqlSimplifyPncpMessage(req.body) };\n }\n}\n\n// Provide conversions from graphql returned objects into the equivalent pncp objects.\nexport function gqlSimplifyPncpRequest(req: schema.PncpRequest): PncpRequestObject {\n return {\n body: {\n subject: req.body.subject,\n action: req.body.action,\n body: req.body.body,\n },\n key: req.key,\n author: req.author,\n callback: req.callback,\n parentId: req.parentId ? req.parentId : undefined,\n mediumInfo: req.mediumInfo ? { id: req.mediumInfo.id, userInfo: req.mediumInfo.userInfo } : undefined,\n versionReq: req.versionReq ? req.versionReq : undefined,\n matchStrategy: req.matchStrategy ? simplifyMatchStrategy(req.matchStrategy) : proto.SkillMatchStrategy.BEST,\n };\n}\n\nfunction simplifyMatchStrategy(matchStrategy: schema.SkillMatchStrategy): proto.SkillMatchStrategy {\n switch (matchStrategy) {\n case \"BEST\": return proto.SkillMatchStrategy.BEST;\n case \"FIRST\": return proto.SkillMatchStrategy.FIRST;\n case \"STRICT\": return proto.SkillMatchStrategy.STRICT;\n }\n}\n\nexport function gqlSimplifyPncpMessage(req: schema.PncpMessage): PncpMessageObject {\n let body: PncpMessageBody;\n let b = req.message.body;\n switch (req.message.type) {\n case \"response\": body = { type: proto.PncpMessageKind.PNCP_RESPONSE, value: { data: b.data } }; break;\n case \"error\": body = { type: proto.PncpMessageKind.PNCP_ERROR, value: { data: b.data } }; break;\n case \"status\": body = { type: proto.PncpMessageKind.PNCP_STATUS, value: { data: b.data } }; break;\n case \"cancel\": body = { type: proto.PncpMessageKind.PNCP_CANCEL, value: { data: b.data } }; break;\n case \"answer\": body = { type: proto.PncpMessageKind.PNCP_ANSWER, value: { data: b.data, reply_to: b.replyTo } }; break;\n case \"question\": body = { type: proto.PncpMessageKind.PNCP_QUESTION, value: { data: b.data, id: b.id, callback: b.callback } }; break;\n }\n return {\n id: splitConversationId(req.id),\n body,\n };\n}\n\nexport function splitConversationId(convId: string): ConversationId {\n let [id, tag] = convId.split('@');\n let membership: ConversationMembership = ConversationMembership.REQUESTER;\n switch (tag) {\n case \"requester\": membership = ConversationMembership.REQUESTER; break;\n case \"fulfiller\": membership = ConversationMembership.FULFILLER; break;\n case \"observer\": membership = ConversationMembership.OBSERVER; break;\n default: throw new Error(\"Unexpected conversation tag: \" + tag);\n }\n\n return { id, membership };\n}\n/*\n// Simple constructors for a graphql client to the service to auto manage login and such.\n\n// import { HttpLink, ApolloLink, ApolloClient, gql } from \"@apollo/client\";\n// import { setContext } from \"@apollo/client/link/context\";\n// import { PncpClient } from \"./client\";\n\n// Creates an `ApolloLink` which can connect to the paranet with appropriate authentication.\n// export function createParanetApolloLink(cl: PncpClient): ApolloLink {\n// const paranetServiceLink = new HttpLink({\n// uri: `${cl.serviceEndpoint()}/graphql`,\n// });\n// \n// const authLink = setContext(async (_, { headers }) => {\n// if (!cl.hasTokens()) {\n// return {\n// headers,\n// };\n// }\n// if (!cl.isTokenValid()) {\n// console.log(\"GQL LINK: ATTEMPTING TOKEN REFRESH\");\n// await cl.refreshAuth();\n// }\n// let { token } = cl.getTokens();\n// return {\n// headers: {\n// ...headers,\n// Authorization: token ? `Bearer ${token}` : \"\",\n// },\n// };\n// });\n// \n// return authLink.concat(paranetServiceLink);\n// }\n\n*/\n","import { Timestamp } from \"./proto/google/protobuf/timestamp\";\nimport { Value } from \"./proto/otonoma/common/value\";\nimport { ConversationId, EntityId } from \"./proto/identifiers\";\nimport { ObservationCallback } from \"./proto/observation\";\nimport { ConversationState, PncpCallback, PncpMessage, PncpMessageCallback, PncpMessageKind, PncpRequestCallback, SkillMatchStrategy } from \"./proto/pncp\";\n\n// Type exports for working with PNCP request data in more typescript/javascript friendly ways.\nexport interface SkillRequest {\n actorId?: string;\n actorVersion?: string;\n subject: string;\n action: string;\n body: any;\n versionReq?: string;\n callback?: any;\n parentConversationId?: ConversationId;\n targetId?: string;\n matchStrategy?: SkillMatchStrategy;\n mustMatch?: boolean;\n useLock?: boolean;\n allowOpenMatch?: boolean;\n}\n\n// Useful for reading data out of the ledger.\nexport type PncpPacketObject = {\n type: \"request\",\n body: PncpRequestObject,\n} | {\n type: \"message\",\n body: PncpMessageObject,\n};\n\nexport type PncpRequestObject = {\n body: PncpSkillMessageObject;\n callback?: any;\n parentId?: string;\n author: string;\n matchStrategy: SkillMatchStrategy;\n versionReq?: string;\n targetActorId?: string;\n key?: any;\n targetInstanceId?: string;\n mediumInfo?: PncpRequestMediumInfoObject;\n};\n\nexport type PncpRequestMediumInfoObject = {\n id: string;\n userInfo: any;\n};\n\nexport type PncpSkillMessageObject = {\n subject: string;\n action: string;\n body: any;\n};\n\nexport interface MessageRequest {\n conversation: string;\n message: PncpMessageBody;\n}\n\nexport interface PncpDataMessage {\n data: any;\n}\n\nexport interface PncpQuestionMessage {\n id: string;\n data: any;\n callback?: any;\n}\n\nexport interface PncpAnswerMessage {\n reply_to: string;\n data: any;\n}\n\nexport type PncpMessageBody =\n | { type: typeof PncpMessageKind.PNCP_RESPONSE; value: PncpDataMessage }\n | { type: typeof PncpMessageKind.PNCP_STATUS; value: PncpDataMessage }\n | { type: typeof PncpMessageKind.PNCP_CANCEL; value: PncpDataMessage }\n | { type: typeof PncpMessageKind.PNCP_ERROR; value: PncpDataMessage }\n | { type: typeof PncpMessageKind.PNCP_QUESTION; value: PncpQuestionMessage }\n | { type: typeof PncpMessageKind.PNCP_ANSWER; value: PncpAnswerMessage };\n\n\nexport type PncpCallbackObject = PncpRequestCallbackObject | PncpMessageCallbackObject;\n\nexport type PncpRequestCallbackObject = {\n type: \"skill\";\n id: ConversationId;\n messageId: string;\n parentId?: ConversationId;\n body: PncpSkillMessageObject;\n timeCreated: Date;\n authorId: EntityId;\n targetActorId: EntityId;\n parameters: {\n provider?: any;\n skill?: any;\n medium?: any;\n }\n};\n\nexport type PncpMessageCallbackObject = {\n type: \"message\";\n id: ConversationId;\n messageId: string;\n timeCreated: Date;\n key?: any;\n message: PncpMessageObject;\n params?: any;\n callback?: any;\n medium?: any;\n conversationState: ConversationState;\n};\n\nexport type PncpMessageObject = {\n id: ConversationId;\n body: PncpMessageBody;\n};\n\n\nexport function simplifyPncpCallback(cb: PncpCallback): PncpCallbackObject {\n switch (cb.body.oneofKind) {\n case \"skill\": return simplifyPncpRequestCallback(cb.body.skill);\n case \"message\": return simplifyPncpMessageCallback(cb.body.message);\n default: throw Error(\"Unreachable\");\n }\n}\n\nexport function simplifyPncpRequestCallback(cb: PncpRequestCallback): PncpRequestCallbackObject {\n return {\n type: \"skill\",\n id: cb.id!,\n messageId: cb.messageId,\n parentId: cb.parentId,\n body: {\n subject: cb.body!.subject,\n action: cb.body!.action,\n body: Value.toJson(cb.body!.body!),\n },\n authorId: cb.authorId!,\n timeCreated: Timestamp.toDate(cb.timeCreated!),\n targetActorId: cb.targetActorId!,\n parameters: {\n provider: cb.parameters?.provider && Value.toJson(cb.parameters.provider),\n skill: cb.parameters?.skill && Value.toJson(cb.parameters.skill),\n medium: cb.parameters?.medium && Value.toJson(cb.parameters.medium),\n },\n };\n}\n\nexport function simplifyPncpMessageCallback(cb: PncpMessageCallback): PncpMessageCallbackObject {\n return {\n type: \"message\",\n id: cb.id!,\n messageId: cb.messageId,\n timeCreated: Timestamp.toDate(cb.timeCreated!),\n key: cb.key && Value.toJson(cb.key),\n message: simplifyPncpMessage(cb.message!),\n params: cb.params && Value.toJson(cb.params),\n callback: cb.callback && Value.toJson(cb.callback),\n medium: cb.medium && Value.toJson(cb.medium),\n conversationState: cb.conversationState,\n };\n}\n\nexport function simplifyPncpMessage(msg: PncpMessage): PncpMessageObject {\n let body: PncpMessageBody;\n switch (msg.kind) {\n case PncpMessageKind.PNCP_CANCEL:\n case PncpMessageKind.PNCP_STATUS:\n case PncpMessageKind.PNCP_ERROR:\n case PncpMessageKind.PNCP_RESPONSE: {\n body = {\n type: msg.kind, value: { data: Value.toJson(msg.body!) }\n };\n break;\n }\n case PncpMessageKind.PNCP_QUESTION: {\n let extra = msg.extra;\n if (extra.oneofKind != \"question\") throw Error(\"Invalid PNCP\");\n body = {\n type: msg.kind,\n value: {\n data: Value.toJson(msg.body!),\n id: extra.question.id,\n callback: extra.question.callback && Value.toJson(extra.question.callback)\n }\n };\n break;\n }\n case PncpMessageKind.PNCP_ANSWER: {\n let extra = msg.extra;\n if (extra.oneofKind != \"answer\") throw Error(\"Invalid PNCP\");\n body = {\n type: msg.kind,\n value: {\n data: Value.toJson(msg.body!),\n reply_to: extra.answer.replyTo,\n },\n };\n break;\n }\n }\n\n return { id: msg.id!, body };\n}\n\n\n\n\nexport type ObservationCallbackObject = {\n subject: string;\n action: string;\n requester: EntityId;\n fulfiller: EntityId;\n message: PncpCallbackObject;\n id: ConversationId;\n callback?: any;\n prevMid?: string;\n skillId: EntityId;\n};\n\nexport function simplifyObservationCallback(cb: ObservationCallback): ObservationCallbackObject {\n return {\n subject: cb.subject,\n action: cb.action,\n requester: cb.requester!,\n fulfiller: cb.fulfiller!,\n message: simplifyPncpCallback(cb.message!),\n id: cb.id!,\n callback: cb.callback && Value.toJson(cb.callback),\n prevMid: cb.prevMid,\n skillId: cb.skillId!,\n };\n}\n"],"names":["TWO_PWR_32_DBL","defaultsRead","defaultsWrite","ConversationMembership","NullValue","PncpRequestCallback_CallbackFlags","SkillMatchStrategy","PncpMessageKind","ConversationState","ResponseKind","ObservationMessageType","ObservationStartPoint","__awaiter","this","proto.SkillMatchStrategy","proto.PncpMessageKind"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,31,32,33,34,35,36,37,38,39,42,43,44,45]}
|